/* Verb functions update deck slide 21 (Nick, 28 Oct 2026): plain unslashed zeros, as in the app: digits from the system sans. */
@font-face{font-family:'MLB Plain Digits';src:local('Segoe UI'),local('Helvetica Neue'),local('HelveticaNeue'),local('Arial'),local('Roboto');unicode-range:U+0030-0039;font-weight:400}
@font-face{font-family:'MLB Plain Digits';src:local('Segoe UI Bold'),local('SegoeUI-Bold'),local('Helvetica Neue Bold'),local('HelveticaNeue-Bold'),local('Arial Bold'),local('Arial-BoldMT'),local('Roboto Bold'),local('Roboto-Bold');unicode-range:U+0030-0039;font-weight:600 900}
@font-face{font-family:Bricolage;src:url('/assets/fonts/bricolage.woff2') format('woff2');font-style:normal;font-weight:400 800;font-display:swap}
@font-face{font-family:Nunito;src:url('/assets/fonts/nunito.woff2') format('woff2');font-style:normal;font-weight:400 800;font-display:swap}
:root{color-scheme:light;--space-hero:58px;--space-section:72px;--bg:#f8faf7;--paper:#fffefa;--text:#182e41;--muted:#526777;--line:#d5e0e2;--blue:#0763bc;--sky:#0763bc;--yellow:#f6d965;--mint:#dff2e8;--lilac:#ece9fa;--display:Bricolage,'Avenir Next',sans-serif;--body:Nunito,'Avenir Next',sans-serif;
--app-bg:#020617;--app-panel:#0f172a;--app-panel-2:#1e293b;--app-line:#334155;--app-text:#f8fafc;--app-muted:#94a3b8;--app-dim:#64748b;--app-brand:#0ea5e9;--app-brand-deep:#0284c7;--app-brand-soft:#7dd3fc;--app-ok:#6ee7b7;--app-wrong:#fca5a5;--app-amber:#fcd34d;--app-font:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:36px}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--body);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}button:disabled{cursor:default}button,input,textarea,select{font-size:inherit}p{line-height:1.7}h1,h2,h3,h4{font-family:var(--display);font-weight:750;letter-spacing:-.045em;margin-top:0}a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:3px solid #874ca8;outline-offset:5px}[hidden]{display:none!important}.wrap{width:min(1260px,calc(100% - 96px));margin-inline:auto}.skip{position:fixed;top:-100px;left:1rem;background:var(--text);color:var(--paper);padding:16px;z-index:100}.skip:focus{top:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
/* Navigation */
.nav{height:100px;display:flex;align-items:center;justify-content:space-between;gap:28px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:10px;font-size:12px;line-height:1.1;letter-spacing:0;font-weight:650}.brand strong{font-family:var(--display);font-size:28px;letter-spacing:-.055em;font-weight:800}.brand img{flex-shrink:0}.nav-links{display:flex;gap:26px;font-size:14px;font-weight:750}.nav-links a{padding-block:12px;white-space:nowrap}.nav-links a:hover,.footer a:hover{color:var(--blue)}.nav-actions{display:flex;align-items:center;gap:12px}.nav-menu{display:none;position:relative}.nav-menu summary{list-style:none;display:grid;gap:5px;padding:12px 10px;min-width:44px;min-height:44px;align-content:center;border:1.5px solid #bdced5;border-radius:12px;cursor:pointer}.nav-menu summary::-webkit-details-marker{display:none}.nav-menu summary span{display:block;width:20px;height:2px;background:var(--text);border-radius:2px}.nav-menu-panel{position:absolute;right:0;top:calc(100% + 10px);background:var(--paper);border:1px solid var(--line);border-radius:14px;box-shadow:0 18px 44px #17304a1f;padding:10px;display:grid;min-width:250px;z-index:30}.nav-menu-panel a{padding:13px 14px;border-radius:9px;font-size:14px;font-weight:750;min-height:44px;display:flex;align-items:center}.nav-menu-panel a:hover{background:#eef4f8}
.button{display:inline-flex;align-items:center;justify-content:center;gap:22px;padding:17px 23px;border:1.5px solid transparent;border-radius:12px;font-size:15px;line-height:1.4;font-weight:800;min-height:50px;transition:transform .18s,box-shadow .18s,background .18s;text-align:center}.button:hover{transform:translateY(-3px);box-shadow:0 6px 0 #16354a12}.button:active{transform:translateY(0);box-shadow:none}.button:disabled{opacity:.55;transform:none;box-shadow:none}.button.small{padding:11px 17px;min-height:44px;font-size:13px;gap:18px}.button.compact{padding:10px 17px;min-height:42px;font-size:13px}.primary{background:var(--blue);color:#fffefa;border-color:var(--blue)}.primary:hover{background:#07559d}.outline{border-color:#bdced5;background:transparent}.light{background:var(--paper);color:var(--text);border-color:var(--line)}.text-link{display:inline-block;font-size:14px;font-weight:800;color:var(--blue);line-height:1.7;text-underline-offset:5px}.text-link:hover{text-decoration:underline}.actions{display:flex;flex-wrap:wrap;gap:25px;align-items:center}.eyebrow{font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;line-height:1.7;color:var(--blue);margin:0 0 22px}.status-dot,.live-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#31976e;margin-right:7px;box-shadow:0 0 0 4px #31976e12}.blue,.sky{color:var(--blue)}.quiet{font-size:11px!important;color:var(--muted)!important;line-height:1.65}
/* Hero */
.hero{padding-block:65px 75px;display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:center}.hero h1{font-size:clamp(65px,7.65vw,108px);letter-spacing:-.075em;line-height:.96;margin:0 0 32px;font-weight:800}.hero-click{display:inline-block;position:relative;color:var(--blue)}.hero-click svg{position:absolute;width:110%;height:24px;bottom:-13px;left:0;overflow:visible;fill:none;stroke:#f0c842;stroke-linecap:round;stroke-width:6}.intro{font-size:18px;line-height:1.65;color:var(--muted);max-width:500px;margin:0 0 28px}.intro p{margin:0 0 14px}.intro p:last-child{margin-bottom:0}.intro strong{color:var(--text)}.hero .text-link{font-size:13px}.hero-note{display:flex;align-items:center;gap:13px;margin-top:30px}.hero-note p{font-size:11px;color:var(--muted);line-height:1.55;margin:0}.hero-note strong{color:var(--text)}.mini-brains{display:flex;padding-left:0}.mini-brains img{border:2px solid var(--paper);border-radius:50%;background:var(--mint);object-fit:cover;margin-left:-9px}.mini-brains img:first-child{margin-left:0}.mini-brains img:nth-child(2){background:#fff0c6}.mini-brains img:nth-child(3){background:var(--lilac)}.hero-stage{position:relative;isolation:isolate;padding:42px 0 110px 12px;min-width:0}.hero-stage:before{content:'';position:absolute;inset:0 -18px 16px 0;background:#e4f0f8;border-radius:46% 42% 43% 45%;z-index:-2}.hero-stage:after{content:'';position:absolute;inset:5px -20px 0 12px;background-image:radial-gradient(#477aa31c 1px,transparent 1px);background-size:18px 18px;border-radius:45%;z-index:-1;pointer-events:none}.hero-spark{width:65px;height:65px;position:absolute;right:-30px;top:145px;fill:var(--yellow);transform:rotate(12deg)}
.spark-card{position:relative;background:var(--paper);border:1px solid #ccdce8;border-radius:20px;box-shadow:0 20px 60px #326ba218,0 5px 0 #aec7dc44;width:calc(100% - 28px);max-width:470px;margin-inline:auto;z-index:1}.spark-top{padding:15px 21px;display:flex;align-items:center;justify-content:space-between;gap:9px;border-bottom:1px solid #e1e8ec;font-size:9px;font-weight:800;letter-spacing:.09em}.language-choice{display:flex;align-items:center;gap:9px}.language-label{font-size:9px;font-weight:800;letter-spacing:.04em;color:var(--muted);text-align:right;max-width:90px;line-height:1.3;text-transform:none}.language-switch{display:flex;gap:3px;padding:3px;border-radius:9px;background:#eef3f6}.language-switch button{border:0;background:transparent;min-width:36px;min-height:40px;padding:5px;border-radius:6px;font-size:11px;font-weight:800;color:var(--muted)}.language-switch button[aria-pressed=true]{background:var(--blue);color:#fff;box-shadow:0 1px 4px #22415b22}.spark-body{padding:22px 24px 20px}.challenge-meta{display:flex;justify-content:space-between;gap:8px;color:#617586;font-size:9px;font-weight:800;letter-spacing:.07em}.dictation-preview h2{font-size:clamp(26px,3vw,34px);line-height:1.1;margin:16px 0 8px;letter-spacing:-.045em}.preview-desc{font-size:13px;color:var(--muted);margin:0 0 16px;line-height:1.6}.preview-screen{background:var(--app-bg);color:var(--app-text);border-radius:12px;padding:12px 14px;font-family:var(--app-font);font-size:10px;display:grid;gap:8px;border:1px solid #1e293b}.ps-question{background:var(--app-panel);border:1px solid var(--app-line);border-radius:8px;padding:8px 10px;display:grid;gap:2px}.ps-question b{font-size:11px}.ps-question i{color:var(--app-muted)}.ps-row{display:flex;justify-content:space-between;font-size:8px;color:var(--app-muted);letter-spacing:.06em;text-transform:uppercase;font-weight:700}.ps-buttons{display:flex;gap:5px;flex-wrap:wrap}.ps-buttons span{background:var(--app-line);padding:6px 9px;border-radius:7px;font-weight:700;font-size:10px}.ps-buttons .ps-play{background:#059669}.ps-answer{background:var(--app-panel);border:1px solid var(--app-line);border-radius:8px;padding:8px 10px;min-height:44px;display:grid;gap:4px}.ps-eyebrow{font-size:8px;letter-spacing:.08em;text-transform:uppercase;color:var(--app-muted);font-weight:700}.ps-placeholder{color:var(--app-dim)}.ps-foot{display:flex;justify-content:flex-end}.ps-check{background:var(--app-brand-deep);padding:6px 10px;border-radius:7px;font-weight:700}.dictation-preview .button{width:100%;margin-top:16px;gap:12px;font-size:14px}.preview-note{font-size:10px;color:var(--muted);margin:10px 0 0;line-height:1.55;text-align:center}.spark-foot{font-size:10px;display:flex;justify-content:space-between;gap:10px;border-top:1px solid #e2eaf0;padding:14px 21px;font-weight:800}.spark-foot span{color:var(--muted);font-weight:600}.brain-hint{position:absolute;right:-34px;bottom:1px;z-index:3;padding:0}.brain-hint img{display:block;width:170px;height:170px;object-fit:contain;filter:drop-shadow(0 10px 8px #38597615)}.brain-hint span{position:absolute;right:12px;bottom:6px;white-space:nowrap;font-size:10px;font-weight:800;background:var(--paper);padding:8px 13px;border:1px solid #d1ddea;border-radius:99px;box-shadow:0 4px 10px #326ba212}.stage-note{position:absolute;left:8px;bottom:23px;font-family:var(--display);font-size:13px;font-weight:600;transform:rotate(-5deg);max-width:240px}.stage-note svg{display:block;width:65px;height:45px;stroke:#678da9;stroke-width:2.5;fill:none;stroke-linecap:round;margin-left:30px;transform:rotate(15deg)}
/* The Dictation demo overlay: the app's own screen, dark, inside a light frame */
body.demo-open{overflow:hidden}.demo-overlay{position:fixed;inset:0;z-index:60;background:#0b1b2acc;backdrop-filter:blur(4px);display:flex;align-items:flex-start;justify-content:center;padding:28px 18px;overflow-y:auto}.demo-window{background:var(--paper);border-radius:20px;width:min(980px,100%);box-shadow:0 30px 80px #04101c66;margin:auto;border:1px solid #cbdbe5}.demo-bar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 22px;border-bottom:1px solid var(--line);flex-wrap:wrap}.demo-bar-title{display:flex;align-items:center;gap:12px}.demo-bar h2{font-size:18px;margin:0;letter-spacing:-.03em}.demo-badge{display:inline-block;font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;background:#fff0ba;color:#6a5416;padding:6px 10px;border-radius:99px;border:1px solid #ead994}.demo-controls{display:flex;gap:8px;flex-wrap:wrap}.demo-controls button{border:1.5px solid #bdced5;background:var(--paper);border-radius:10px;padding:9px 13px;min-height:44px;font-size:13px;font-weight:800}.demo-controls button:disabled{opacity:.45}.demo-controls .demo-primary{background:var(--blue);color:#fff;border-color:var(--blue)}.demo-caption{margin:0;padding:12px 22px;font-size:14px;font-weight:700;color:#2d4a63;background:#eef4f8;border-bottom:1px solid var(--line);min-height:44px}.demo-end{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:18px 22px;border-top:1px solid var(--line)}.demo-end .quiet{flex-basis:100%;margin:0}
.app-screen{background:var(--app-bg);color:var(--app-text);font-family:var(--app-font);font-size:14px;line-height:1.5;position:relative}.app-screen *{box-sizing:border-box}.dictation-screen{padding:22px;border-radius:0 0 18px 18px;display:grid;gap:12px}.demo-window .dictation-screen{border-radius:0}.ds-eyebrow{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--app-muted);margin:0 0 8px}.ds-brand{color:var(--app-brand)}.ds-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.ds-header-left{display:flex;align-items:center;gap:12px}.ds-home{color:var(--app-muted);font-size:13px;padding:4px 8px}.ds-name{font-weight:700;margin:0 0 2px}.ds-header-right{display:flex;flex-direction:column;align-items:flex-end;gap:6px}.ds-header-right>span:first-child{margin-right:0}.ds-timer{font-family:'MLB Plain Digits',ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--app-muted);font-size:14px}.ds-points{background:var(--app-brand-deep);color:#fff;font-weight:700;font-size:14px;padding:6px 12px;border-radius:8px}.ds-scoring{font-size:10px;font-weight:700;letter-spacing:.08em;color:var(--app-muted)}.ds-header-right{flex-direction:row;align-items:center;flex-wrap:wrap;justify-content:flex-end}.ds-panel{background:var(--app-panel);border:1px solid var(--app-line);border-radius:16px;padding:16px}.ds-question p{margin:0}.ds-question-fr{font-weight:500;font-size:16px}.ds-question-en{color:var(--app-muted);font-style:italic;font-size:14px;margin-top:4px!important}.ds-toggle-row{display:flex;align-items:center;gap:12px;padding:10px 16px;font-size:14px;color:#cbd5e1}.ds-toggle-row em{color:var(--app-dim);font-style:normal}.ds-switch{position:relative;width:44px;height:24px;border-radius:99px;background:var(--app-line);flex-shrink:0;transition:background .2s}.ds-switch i{position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:#fff;transition:transform .2s}.ds-switch.on{background:var(--app-brand-deep)}.ds-switch.on i{transform:translateX(20px)}.ds-english p:last-child{margin:0;color:#e2e8f0}.ds-panel-head{display:flex;justify-content:space-between;align-items:center;gap:10px}.ds-status{font-size:10px;color:var(--app-dim);margin:0 0 8px}.ds-buttons{display:flex;flex-wrap:wrap;gap:8px}.ds-buttons button{border:0;border-radius:12px;padding:10px 20px;font-weight:600;font-size:15px;color:#fff;min-height:44px;font-family:inherit}.ds-play{background:#059669;flex:1 1 auto}.ds-play.ds-pause{background:#d97706}.ds-grey{background:var(--app-line)}.ds-buttons button:disabled{opacity:.4}.ds-instructions{font-size:12px;color:var(--app-muted);margin:12px 0 0;line-height:1.45}.ds-textarea{min-height:100px;font-size:16px;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere;position:relative}.ds-placeholder{color:var(--app-dim)}.ds-caret{display:inline-block;width:2px;height:1.1em;background:#fff;vertical-align:-3px;animation:ds-blink 1s steps(2) infinite}@keyframes ds-blink{50%{opacity:0}}.ds-marked{margin-top:12px;padding-top:12px;border-top:1px solid var(--app-panel-2)}.ds-marked-key{text-transform:none;letter-spacing:0;font-weight:400;color:var(--app-dim);margin-left:8px}.ds-marked-words{margin:0;line-height:1.7;font-size:16px}.ds-ok{color:var(--app-ok)}.ds-wrong{color:var(--app-wrong);text-decoration:underline wavy #ef4444;text-underline-offset:3px}.ds-retry{margin-top:12px;background:#78350f4d;border:1px solid #b4530966;border-radius:10px;padding:8px 12px}.ds-retry p{margin:0;color:#fde68a;font-size:12px}.ds-accents{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:12px;padding-top:12px;border-top:1px solid var(--app-panel-2)}.ds-accents .ds-eyebrow{margin:0 4px 0 0}.ds-accent-keys{display:flex;flex-wrap:wrap;gap:6px}.ds-accent-keys button{width:36px;height:36px;border:0;border-radius:8px;background:var(--app-panel-2);color:#fff;font-size:14px;font-weight:500;font-family:inherit}.ds-counter{margin-left:auto;font-size:12px;color:var(--app-dim)}.ds-counter span+span{margin-left:10px;color:#cbd5e1;font-weight:500}.ds-actions{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:12px;flex-wrap:wrap}.ds-reveal{background:var(--app-panel-2);border:1px solid #475569;color:#e2e8f0;border-radius:12px;padding:8px 16px;font-size:14px;font-weight:500;min-height:40px;font-family:inherit}.ds-check{background:var(--app-brand-deep);border:0;color:#fff;border-radius:12px;padding:8px 20px;font-size:14px;font-weight:600;min-height:40px;font-family:inherit}.ds-check:disabled{opacity:.4}.ds-complete{background:#064e3b66;border:1px solid #047857;border-radius:16px;padding:20px;text-align:center}.ds-complete-title{color:#a7f3d0;font-size:24px;font-weight:700;margin:0 0 4px}.ds-complete-sub{color:#6ee7b7cc;font-size:14px;margin:0}.demo-focus{outline:3px solid #fde047!important;outline-offset:3px!important}.demo-pointer{position:absolute;top:0;left:0;width:26px;height:26px;margin:-13px 0 0 -13px;border-radius:50%;background:#fde047cc;border:2px solid #a16207;box-shadow:0 0 0 6px #fde04744;pointer-events:none;opacity:0;transition:transform .5s cubic-bezier(.4,0,.2,1),opacity .2s;z-index:5}.demo-pointer.visible{opacity:1}.demo-pointer.press{transform-origin:center;animation:ds-press .26s ease-out}@keyframes ds-press{50%{box-shadow:0 0 0 14px #fde04722}}
/* Strip */
.promise-strip{border-block:1px solid var(--line);background:#eff5ef;margin-top:var(--space-section)}.subject-line{display:flex;justify-content:center;align-items:center;gap:22px;padding-block:26px;font-family:var(--display);font-size:clamp(20px,2.4vw,30px);font-weight:750;letter-spacing:-.035em;color:var(--text);flex-wrap:wrap}.subject-line .dot{color:#7d9a86;font-weight:500}
/* Sections */
.section{padding-block:var(--space-section) 0}.section-intro{display:grid;grid-template-columns:1.25fr 1fr;gap:75px;align-items:end;margin-bottom:42px}.section-intro h2,.brain-copy h2,.people-statement h2,.faq-section h2{font-size:clamp(34px,4.15vw,58px);line-height:1.09;letter-spacing:-.055em;margin:0}.section-intro p:not(.eyebrow){font-size:17px;color:var(--muted);max-width:440px;margin-top:0}.section-intro .interaction-cue{font-size:12px!important;margin-bottom:0;font-weight:800;color:var(--blue)!important}.interaction-cue span{font-size:22px;margin-right:10px}.screen-frame{margin:0;background:#0b1220;border:1px solid #1e293b;border-radius:16px;padding:8px;box-shadow:0 18px 44px #0f2b4426}.screen-frame img{display:block;width:100%;height:auto;border-radius:10px}.screen-frame figcaption{font-size:11px;color:#cbd5e1;padding:10px 6px 4px;line-height:1.5}
/* Courses */
.course-cards{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-bottom:56px}.course-card{position:relative;background:var(--paper);border:1px solid #cddbe3;border-radius:20px;padding:32px 34px;box-shadow:0 12px 36px #326ba211}.course-card h3{font-size:34px;margin:10px 0 12px;letter-spacing:-.05em}.course-card p{font-size:15px;color:var(--muted);margin:0 0 20px}.course-card p strong{color:var(--text)}.course-card .quiet{margin:12px 0 0}.course-badge{display:inline-block;font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;padding:6px 11px;border-radius:99px;background:#eef2f5;color:var(--muted)}.course-badge.live{background:#e0f4e8;color:#17623c}.course-card.soon{background:#f5f7f4}.pathway{display:grid;grid-template-columns:1fr 1.2fr;gap:50px;align-items:start;background:#eef4f8;border:1px solid #d3e2ec;border-radius:22px;padding:40px;margin-bottom:40px}.pathway h3{font-size:26px;margin:0 0 14px}.pathway-question{font-family:var(--display);font-size:22px;font-weight:700;margin:0;line-height:1.3}.pathway-question-en{color:var(--muted);font-size:16px;margin:2px 0 14px}.peek summary{cursor:pointer;color:var(--blue);font-weight:800;font-size:13px;list-style:none;min-height:36px;display:flex;align-items:center}.peek summary::-webkit-details-marker{display:none}.peek summary:before{content:'+';margin-right:8px;font-size:18px}.peek[open] summary:before{content:'–'}.peek p{font-size:15px;margin:8px 0}.pathway-words{font-size:12px;color:var(--muted);line-height:1.8;margin:18px 0 0}.pathway-words b{display:block;color:var(--text);font-family:var(--display);font-size:13px;margin-bottom:4px}.pathway-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:8px;counter-reset:step}.pathway-steps li{counter-increment:step;background:var(--paper);border:1px solid #cddbe3;border-radius:11px;padding:11px 13px 11px 44px;position:relative;font-size:13px;line-height:1.4}.pathway-steps li:before{content:counter(step);position:absolute;left:12px;top:11px;width:22px;height:22px;border-radius:50%;background:var(--blue);color:#fff;font-size:11px;font-weight:800;display:grid;place-items:center}.pathway-steps b{display:block;font-family:var(--display);font-size:14px}.pathway-steps span{display:block;color:var(--muted);font-size:11px;margin-top:2px}.screen-pair{display:grid;grid-template-columns:1.15fr 1fr;gap:22px;align-items:start}
/* Activities */
.playground-section{background:#eaf3f8;border-block:1px solid #d7e5ed;padding-block:90px}.playground{display:grid;grid-template-columns:.8fr 1.5fr;gap:35px;align-items:stretch}.practice-menu{display:flex;flex-direction:column;gap:12px}.practice-menu button{display:flex;align-items:center;gap:17px;text-align:left;border:1px solid #ccdfe9;background:#f4f9fc;min-height:86px;padding:16px 22px;border-radius:13px;transition:transform .18s,background .18s}.practice-menu button:hover{transform:translateX(3px)}.practice-menu button[aria-selected=true]{background:var(--paper);border-color:#8fb8d9;box-shadow:4px 4px 0 #c2dcebd1}.subject-glyph{font-size:26px;width:35px;text-align:center}.practice-menu strong{display:block;font-family:var(--display);font-size:21px;font-weight:750}.practice-menu small{display:block;font-size:11px;color:var(--muted);margin-top:4px}.practice-menu b{margin-left:auto;color:#5e7e96;font-size:18px}.practice-panel{background:var(--paper);border:1px solid #d1e0e6;border-radius:17px;padding:28px;min-height:370px;box-shadow:0 10px 35px #467da20c}.practice-kicker{font-size:10px;color:var(--blue);font-weight:800;letter-spacing:.1em;margin:0 0 12px}.hub-layout{display:grid;grid-template-columns:1fr 1.1fr;gap:26px;align-items:start}.hub-intro{font-size:14px;color:var(--muted);margin:0 0 14px}.hub-tiles{list-style:none;margin:0 0 14px;padding:0;display:grid;gap:8px}.hub-tiles li{border:1px solid #dbe6ec;border-radius:10px;padding:10px 13px;font-size:12px;line-height:1.5;color:var(--muted);background:#fbfcfd}.hub-tiles b{display:inline-block;font-family:var(--display);font-size:15px;color:var(--text);margin-right:8px}.hub-tiles small{display:inline-block;font-size:10px;font-weight:800;color:var(--blue);letter-spacing:.04em}.hub-tiles span{display:block;margin-top:2px}.hub-copy .quiet{margin:0 0 12px}.cross-cards{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:35px}.cross-card{background:var(--paper);border:1px solid #d1e0e6;border-radius:17px;padding:28px 30px}.cross-card h3{font-size:22px;line-height:1.3;margin:0 0 10px}.cross-card p:last-child{font-size:14px;color:var(--muted);margin:0}.demo-disclaimer{text-align:center;color:var(--muted);font-size:10px;margin:24px 0 0}
/* Independent learners */
.independent-layout{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:start}.independent-columns{display:grid;gap:26px}.independent-columns h3{font-size:22px;margin:0 0 8px}.independent-columns p{font-size:15px;color:var(--muted);margin:0 0 10px}.independent-columns p strong{color:var(--text)}.independent-columns .text-link{margin-right:18px}.independent-columns .button{margin-top:4px}
/* Teacher walkthrough */
.classroom-demo{border:1px solid #cadbe5;border-radius:19px;background:#fffefa;box-shadow:0 15px 45px #30638509;overflow:hidden}.classroom-top{display:flex;justify-content:space-between;gap:18px;align-items:center;padding:18px 26px;border-bottom:1px solid #dfE8ed}.classroom-brand{display:flex;gap:10px;align-items:center;font-family:var(--display);font-size:15px}.demo-label{font-size:10px;color:var(--muted)}.journey-nav{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid #dbe4e9;background:#f4f7f9}.journey-nav button{border:0;border-right:1px solid #dbe4e9;background:transparent;font-size:13px;font-weight:800;padding:20px 15px;min-height:58px;transition:background .15s}.journey-nav button:last-child{border-right:0}.journey-nav button span{font-size:10px;color:#526777;margin-right:10px}.journey-nav button[aria-pressed=true]{background:#e6f0fb;box-shadow:inset 0 -3px var(--blue);color:#07569e}.journey-panel{display:grid;grid-template-columns:.8fr 1.4fr;gap:44px;padding:40px;min-height:420px;align-items:start}.roster-copy h3{font-size:32px;line-height:1.1;margin-bottom:20px}.roster-copy>p:not(.eyebrow){font-size:14px;color:var(--muted);max-width:400px}.builders{padding:26px 40px 34px;border-top:1px solid #dfe8ed;background:#f6f9fb}.builders .eyebrow{margin-bottom:14px}.builder-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.builder-grid b{display:block;font-family:var(--display);font-size:15px;margin-bottom:5px}.builder-grid p{font-size:12px;color:var(--muted);margin:0;line-height:1.6}
.teacher-screen{border-radius:16px;padding:22px;font-size:13px;box-shadow:0 14px 40px #0f2b4426;border:1px solid #1e293b;min-width:0}.teacher-screen h4{font-family:var(--app-font);font-size:22px;font-weight:800;letter-spacing:-.02em;margin:0 0 6px}.teacher-screen h5{font-family:var(--app-font);font-size:15px;font-weight:700;margin:16px 0 4px}.teacher-screen label{display:block;font-size:13px;color:#cbd5e1;margin:12px 0}.ts-label{display:block;font-size:13px;color:#cbd5e1;margin:0 0 6px}.teacher-screen input:not([type=checkbox]),.teacher-screen textarea{display:block;width:100%;margin-top:6px;background:var(--app-panel);border:1px solid var(--app-line);border-radius:10px;padding:9px 12px;color:#fff;font-family:inherit;font-size:14px}.teacher-screen textarea{resize:vertical;min-height:80px}.teacher-screen input::placeholder,.teacher-screen textarea::placeholder{color:var(--app-dim)}.ts-field{margin:14px 0}.ts-field .ts-label{margin-top:0}.ts-field input,.ts-field textarea{margin-top:0}.ts-hint{font-size:11px;color:var(--app-dim);margin:0 0 6px}.ts-muted{color:var(--app-muted);font-size:12px;margin:0 0 10px}.ts-eyebrow{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--app-muted);margin:0 0 6px}.ts-status{color:#a7f3d0;font-size:13px;margin:0 0 12px}.ts-error{color:#fca5a5;font-size:12px;margin:8px 0 0}.ts-file{display:block;margin-top:6px;border:1px dashed var(--app-line);border-radius:10px;padding:9px 12px;color:var(--app-dim);font-size:12px}.flow-steps{list-style:none;display:flex;gap:8px;padding:0;margin:0 0 18px;flex-wrap:wrap}.flow-steps li{font-size:11px;font-weight:700;color:var(--app-dim);border:1px solid var(--app-line);border-radius:99px;padding:6px 11px}.flow-steps li[aria-current=step]{color:#fff;background:var(--app-brand-deep);border-color:var(--app-brand-deep)}.flow-steps li.done{color:#a7f3d0;border-color:#047857}.ts-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:16px}.ts-actions.centre{justify-content:center}.ts-primary,.ts-secondary,.ts-assign{border:0;border-radius:12px;padding:10px 18px;font-weight:700;font-size:14px;min-height:44px;font-family:inherit}.ts-primary{background:var(--app-brand);color:#0f172a}.ts-primary:disabled{background:var(--app-panel-2);color:var(--app-dim)}.ts-secondary{background:var(--app-panel-2);border:1px solid var(--app-line);color:#fff}.ts-assign{background:#10b981;color:#0f172a;font-size:16px;padding:14px 32px;border-radius:16px}.ts-link{color:var(--app-brand-soft);font-size:12px;font-weight:600;background:none;border:0;padding:0}.ts-link-muted{color:var(--app-dim)}.ts-preview{background:#0f172a99;border:1px solid var(--app-line);border-radius:10px;padding:10px 12px;margin-top:8px}.ts-preview h5{margin:0 0 4px}.ts-preview p{margin:0;color:var(--app-muted);font-size:12px}.ts-join{display:grid;grid-template-columns:auto 1fr;gap:20px;align-items:start}.ts-join>div:last-child p:first-child{margin:0 0 10px;color:#cbd5e1}.ts-qr{background:#fff;color:#0f172a;border-radius:14px;padding:14px;text-align:center;width:180px}.ts-qr .ts-eyebrow{color:#475569}.ts-code{font-family:'MLB Plain Digits',ui-monospace,SFMono-Regular,Menlo,monospace;font-size:26px;font-weight:800;letter-spacing:.14em;margin:0 0 8px}.ts-qr-image{display:block;width:120px;height:120px;margin:0 auto}.ts-qr .ts-muted{color:#475569;margin:8px 0 2px;font-size:11px}.ts-url{font-size:9px;color:#64748b;margin:0;overflow-wrap:anywhere}.wrap-actions{margin-top:0}.ts-roster{list-style:none;margin:12px 0 0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:6px}.ts-roster li{display:flex;justify-content:space-between;gap:10px;background:var(--app-panel);border:1px solid var(--app-line);border-radius:8px;padding:7px 11px}.ts-roster code{font-family:'MLB Plain Digits',ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--app-amber);letter-spacing:.1em}
.ts-games{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.ts-game{text-align:left;border:0;border-radius:14px;padding:12px;color:#fff;display:grid;gap:2px;min-height:118px;transition:transform .15s;font-family:inherit}.ts-game:hover{transform:scale(1.02)}.ts-game-icon{font-size:20px}.ts-game b{font-size:13px}.ts-game small{font-size:10px;opacity:.75;font-weight:600}.ts-game>span:last-of-type{font-size:10px;opacity:.65;line-height:1.4}.ts-game.learn-it{background:linear-gradient(135deg,#059669,#115e59)}.ts-game.regurgitate{background:linear-gradient(135deg,#f59e0b,#c2410c)}.ts-game.conjugate-it{background:linear-gradient(135deg,#2563eb,#3730a3)}.ts-game.clear-the-board{background:linear-gradient(135deg,#0284c7,#1e40af)}.ts-game.timed-test{background:linear-gradient(135deg,#f97316,#b45309)}.ts-game.beat-the-clock{background:linear-gradient(135deg,#e11d48,#991b1b)}.ts-game.test-in-pairs{background:linear-gradient(135deg,#047857,#14532d)}.ts-game.spot-the-tense{background:linear-gradient(135deg,#9333ea,#5b21b6)}.ts-game.tense-recognition{background:linear-gradient(135deg,#64748b,#334155)}.ts-game-note{grid-column:1/-1;margin:6px 0 0;color:var(--app-amber)}.ts-chips{display:flex;flex-wrap:wrap;gap:8px}.ts-chips button{background:var(--app-panel);border:1px solid var(--app-line);color:#cbd5e1;border-radius:10px;padding:8px 14px;font-size:13px;font-weight:600;min-height:40px;font-family:inherit}.ts-chips button[aria-pressed=true]{background:var(--app-brand);border-color:var(--app-brand);color:#0f172a}.ts-select{background:var(--app-panel-2);border:1px solid #475569;border-radius:8px;padding:8px 12px;color:#fff;font-size:13px;max-width:260px}.ts-preview-list{margin-top:18px}.ts-preview-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px}.ts-preview-head h5{margin:0 0 6px}.ts-preview-list ol{list-style:none;margin:0;padding:0;display:grid;gap:4px;counter-reset:item}.ts-preview-list li{counter-increment:item}.ts-preview-list label{display:grid;grid-template-columns:26px 18px 1fr 1fr 1fr;gap:8px;align-items:center;background:#0f172a99;border:1px solid var(--app-line);border-radius:8px;padding:7px 8px;margin:0;font-size:12px;cursor:pointer}.ts-preview-list label:before{content:counter(item);color:var(--app-dim);font-size:11px;text-align:right}.ts-preview-list input[type=checkbox]{margin:0;accent-color:var(--app-brand)}.ts-prompt{color:#fff}.ts-hint{color:var(--app-brand-soft);font-size:11px}.ts-answer{color:var(--app-ok);font-weight:600}.ts-preview-list label:has(input:not(:checked)){opacity:.5}.ts-task{display:flex;gap:12px;align-items:center;background:var(--app-panel);border:1px solid var(--app-line);border-radius:14px;padding:12px 14px}.ts-task>span:first-child{font-size:22px}.ts-task>div{flex:1}.ts-task b{display:block;font-size:14px}.ts-task p{margin:2px 0 0}.ts-task .ts-link{color:var(--app-dim)}
.ts-table-wrap{overflow-x:auto;border:1px solid var(--app-line);border-radius:14px;margin:8px 0 14px}.ts-table{width:100%;border-collapse:collapse;font-size:13px}.ts-table th,.ts-table td{text-align:left;padding:8px 12px;border-top:1px solid #1e293b99;vertical-align:top;min-width:0;color:inherit;border-bottom:0}.ts-table thead th{background:var(--app-panel);color:var(--app-muted);font-size:10px;letter-spacing:.08em;text-transform:uppercase;border-top:0;font-weight:700}.ts-table tbody th{font-weight:600;color:#fff}.ts-table .num{text-align:right;white-space:nowrap}.ts-table td .ts-muted{margin:0;display:inline}.ts-status-pill{display:inline-block;border:1px solid var(--app-line);border-radius:99px;padding:2px 9px;font-size:11px;color:#cbd5e1}.ts-ok{color:var(--app-ok)}.ts-late{color:var(--app-amber)}.ts-progress{color:var(--app-brand-soft)}.ts-wrong{color:var(--app-wrong)}.ts-clickable{cursor:pointer}.ts-clickable:hover{background:#0f172a99}.ts-detail td{background:#0f172a66}.ts-detail-row{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:10px;font-size:12px;padding:3px 0}.ts-results-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap;margin-bottom:8px}.ts-handed{margin:0;color:#cbd5e1;font-size:13px}.ts-handed b{font-size:22px;color:#fff}.ts-table td small{display:block}
.school-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:26px;margin-top:38px;padding:34px 38px;background:#f0f4e9;border:1px solid #dce4d2;border-radius:20px}.school-col .eyebrow{margin-bottom:10px}.school-col p{font-size:13px;color:#4a5f55;margin:0 0 12px;line-height:1.65}.school-col a:not(.button){color:var(--blue);text-decoration:underline;text-underline-offset:3px;font-weight:700;line-height:2}.school-col .button{font-size:13px;padding:12px 16px;min-height:44px;gap:12px}
/* Brain characters, people, FAQ, invitation, footer */
.brain-section{display:grid;grid-template-columns:1fr 1fr;gap:100px;align-items:center;padding-block:105px}.brain-gallery{position:relative;isolation:isolate;text-align:center;padding:20px 0 0;overflow:clip}.brain-gallery>img{position:relative;width:min(350px,80%);height:auto;filter:drop-shadow(0 12px 13px #3b64900f);z-index:1;animation:brain-float 6s ease-in-out infinite}.brain-orbit{position:absolute;z-index:-1;border-radius:50%;pointer-events:none}.orbit-a{background:#f7edc9;width:340px;height:340px;top:8px;left:calc(50% - 170px)}.orbit-b{border:1px dashed #dbcca1;width:410px;height:350px;top:4px;left:calc(50% - 205px);transform:rotate(-30deg)}.brain-star{position:absolute;font-size:67px;color:#e9c143;right:15px;top:18px}.brain-caption{position:relative;margin-top:-4px;z-index:2}.brain-caption strong{display:block;font-family:var(--display);font-size:23px;font-weight:750}.brain-caption>span{display:block;font-size:12px;color:var(--muted);margin-top:8px}.brain-picker{display:flex;justify-content:center;gap:10px;margin-top:24px}.brain-picker button{width:68px;height:68px;padding:3px;background:#eef2f4;border:2px solid transparent;border-radius:14px;transition:transform .18s}.brain-picker button[aria-pressed=true]{border-color:#72a6d3;background:#e6f0f9}.brain-picker button:hover{transform:translateY(-5px)}.brain-picker img{display:block;width:100%;height:auto}.brain-copy h2{font-size:clamp(40px,4.7vw,68px)}.brain-copy>p:not(.eyebrow){font-size:17px;color:var(--muted);max-width:430px}.brain-copy .interaction-cue{font-size:12px;font-weight:800;color:var(--blue);display:block;margin-top:24px}@keyframes brain-float{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-10px) rotate(1deg)}}.people-section{background:#f0f4e9;border-block:1px solid #dce4d2;padding-block:75px}.people-layout{display:grid;grid-template-columns:1.2fr 1fr;gap:75px;align-items:center}.people-statement h2{font-size:clamp(30px,3.3vw,45px)}.people-copy .lead{font-size:19px;color:#344e41;line-height:1.7}.people-copy p{font-size:14px;color:#52675b}.people-copy .text-link{margin-top:9px}.faq-section{display:grid;grid-template-columns:.8fr 1.4fr;gap:80px}.faq-section h2{font-size:43px}.faq details{border-bottom:1px solid #d4dfdf;padding:19px 0}.faq details:first-child{padding-top:0}.faq summary{display:flex;justify-content:space-between;gap:20px;list-style:none;font-size:16px;cursor:pointer;font-weight:800;min-height:35px;align-items:center;line-height:1.5}.faq summary::-webkit-details-marker{display:none}.faq summary>span{font-size:25px;font-weight:500;color:var(--blue);transition:transform .2s}.faq details[open] summary>span{transform:rotate(45deg)}.faq details p{font-size:14px;color:var(--muted);padding-right:25px;max-width:65ch}.faq a{color:var(--blue);text-decoration:underline;text-underline-offset:4px}.invitation{position:relative;isolation:isolate;background:#e0eef8;border:1px solid #c7deec;border-radius:22px;padding:60px 65px;display:grid;grid-template-columns:1fr 290px;gap:30px;align-items:center;overflow:hidden;margin-top:var(--space-section);margin-bottom:0}.invitation h2{font-size:clamp(42px,5.5vw,74px);line-height:1.05;letter-spacing:-.06em;margin-bottom:22px}.invitation h2 span{color:var(--blue)}.invitation>div>p:not(.eyebrow){font-size:15px;color:#446781}.invitation .button{margin-top:8px}.invitation>img,.invitation>.invitation-brainy{width:280px;height:auto;position:relative;z-index:1;transform:rotate(7deg)}.invitation-doodle{font-size:270px;color:#cae1f1;position:absolute;right:0;bottom:-120px;z-index:-1}.invitation .invitation-small{font-size:11px!important;margin-top:22px}.invitation-small a{text-decoration:underline;text-underline-offset:3px}.footer{border-top:1px solid var(--line);padding-block:28px;display:flex;align-items:center;flex-wrap:wrap;gap:25px}.footer>p{font-size:12px;color:var(--muted);margin-left:15px}.footer>div{margin-left:auto;display:flex;gap:24px;font-size:12px;font-weight:750}.footer>small{flex-basis:100%;font-size:10px;color:var(--muted);padding-top:10px}.footer a{display:inline-flex;align-items:center;min-height:44px}
/* Shared information pages keep the same readable, light visual language. */
.info-main{max-width:850px;padding-block:65px}.info-main h1{font-size:clamp(35px,4.8vw,59px);line-height:1.1;letter-spacing:-.045em}.info-main h2{font-size:26px;margin-top:42px}.info-main h3{font-size:21px}.info-main p,.info-main li{color:var(--muted);font-size:16px;line-height:1.8}.info-main a:not(.button){color:var(--blue);text-decoration:underline;text-underline-offset:3px}.info-main aside{padding:22px;border-left:3px solid var(--blue);background:#eaf3f8}.info-main li{margin-bottom:12px}.info-main strong{color:var(--text)}#contact-address{overflow-wrap:anywhere}
@media(min-width:1500px){.hero{padding-block:85px 100px}.hero-stage{margin-left:25px}.hero h1{font-size:112px}}
@media(max-width:1100px){.wrap{width:calc(100% - 64px)}.hero{gap:12px}.hero h1{font-size:clamp(60px,7.4vw,84px)}.hero .actions{gap:18px}.hero .button{font-size:13px;padding:15px 17px}.hero-stage{padding-left:0}.brain-hint{right:-22px;bottom:0}.brain-hint img{width:145px;height:145px}.spark-body{padding-inline:20px}.hero-spark{right:-18px;width:45px}.section-intro{gap:40px}:root{--space-section:64px}.brain-section{gap:45px}.journey-panel{gap:28px;grid-template-columns:1fr;padding:30px}.roster-copy>p:not(.eyebrow){max-width:none}.builder-grid{grid-template-columns:1fr 1fr}.school-strip{grid-template-columns:1fr 1fr;padding:28px}.pathway{grid-template-columns:1fr;gap:26px;padding:30px}.hub-layout{grid-template-columns:1fr}.people-layout{gap:40px}.faq-section{gap:45px}.invitation{padding:45px;grid-template-columns:1fr 220px}.invitation>img,.invitation>.invitation-brainy{width:230px}.independent-layout{grid-template-columns:1fr;gap:30px}.independent-columns{grid-template-columns:repeat(3,1fr)}}
@media(max-width:900px){.nav-links{display:none}.nav-menu{display:block}}
@media(max-width:820px){html{scroll-padding-top:30px}.wrap{width:calc(100% - 40px)}.nav{height:85px}.nav .button{font-size:12px;padding:10px 13px}.brand strong{font-size:24px}.hero{grid-template-columns:1fr;gap:30px;padding-top:44px;padding-bottom:65px}.hero-copy{max-width:650px}.hero h1{font-size:clamp(70px,12vw,100px);max-width:620px}.hero .intro{font-size:17px;max-width:510px}.hero .actions{gap:25px}.hero-note{margin-top:24px}.hero-stage{width:min(500px,calc(100% - 30px));margin:0 auto;min-height:520px;padding-top:40px}.hero-stage:before{inset:0 -10px 10px}.spark-card{max-width:430px}.brain-hint{right:-18px;bottom:-5px}.hero-spark{right:-12px}.section-intro{grid-template-columns:1fr;gap:20px;align-items:start}.section-intro h2{font-size:45px}.section-intro p:not(.eyebrow){font-size:16px;max-width:570px}.section-intro .eyebrow{margin-bottom:15px}.course-cards{grid-template-columns:1fr}.course-card{padding:26px}.course-card h3{font-size:30px}.pathway-steps{grid-template-columns:1fr}.screen-pair{grid-template-columns:1fr}.journey-nav button{font-size:11px;padding:16px 9px}.journey-nav button span{display:block;margin:0 0 6px}.journey-panel{padding:24px}.roster-copy h3{font-size:29px}.teacher-screen{padding:16px}.ts-games{grid-template-columns:repeat(2,1fr)}.ts-join{grid-template-columns:1fr}.ts-roster{grid-template-columns:1fr}.ts-preview-list label{grid-template-columns:22px 18px 1fr;row-gap:2px}.ts-preview-list label .ts-hint,.ts-preview-list label .ts-answer{grid-column:3}.builders{padding:22px 24px 28px}.builder-grid{grid-template-columns:1fr}.school-strip{grid-template-columns:1fr;gap:18px}.independent-columns{grid-template-columns:1fr}.playground-section{padding-block:70px}.playground{grid-template-columns:1fr;gap:24px}.practice-menu{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.practice-menu button{padding:14px 8px;gap:6px;flex-direction:column;align-items:center;text-align:center;min-height:105px}.practice-menu strong{font-size:16px}.practice-menu small{font-size:9px}.practice-menu b{display:none}.subject-glyph{font-size:22px}.practice-panel{min-height:0;padding:22px}.cross-cards{grid-template-columns:1fr}.brain-section{gap:35px}.brain-copy h2{font-size:44px}.brain-copy>p:not(.eyebrow){font-size:15px}.orbit-a{width:260px;height:260px;left:calc(50% - 130px);top:0}.orbit-b{width:300px;height:270px;left:calc(50% - 150px)}.brain-caption strong{font-size:20px}.brain-picker{gap:7px}.brain-picker button{width:55px;height:55px}.brain-star{right:0;font-size:40px}.people-layout{grid-template-columns:1fr;gap:15px}.people-copy .lead{font-size:18px}.faq-section{grid-template-columns:1fr;gap:32px}.faq-section h2{font-size:38px}.invitation{padding:35px;grid-template-columns:1fr 155px;gap:5px}.invitation>img,.invitation>.invitation-brainy{width:195px;margin-left:-25px}.invitation h2{font-size:48px}.footer>div{flex-basis:100%;margin:0}.footer>p{margin:0}.demo-overlay{padding:0}.demo-window{border-radius:0;min-height:100%;border:0}.demo-bar{padding:12px 14px}.demo-bar h2{font-size:15px}.demo-controls button{padding:8px 10px;font-size:12px}.demo-caption{padding:10px 14px;font-size:13px}.dictation-screen{padding:14px;gap:10px}.ds-buttons button{padding:9px 12px;font-size:13px}.ds-textarea{font-size:15px}.demo-end{padding:14px}}
@media(max-width:540px){.wrap{width:calc(100% - 36px)}.nav{gap:15px;height:82px}.brand{font-size:10px;gap:7px}.brand img{width:34px;height:34px}.brand strong{font-size:25px}.nav .button{font-size:11px;gap:12px;padding:10px 12px}.nav-actions{gap:8px}.hero{padding-top:36px;gap:26px}.hero h1{font-size:clamp(60px,17vw,88px);line-height:.99;letter-spacing:-.075em;margin-bottom:28px}.hero .eyebrow{font-size:9px;letter-spacing:.095em;margin-bottom:22px}.hero .intro{font-size:16px;margin-bottom:24px}.hero .actions{gap:17px;align-items:flex-start;flex-direction:column}.hero .button{font-size:14px;padding:15px 21px}.hero-note{margin-top:24px}.hero-stage{width:calc(100% - 14px);padding:39px 0 96px;min-height:0;margin-top:8px}.spark-card{width:100%;border-radius:17px}.spark-top{padding:12px 14px;font-size:8px;flex-wrap:wrap}.language-label{max-width:80px;font-size:8px}.spark-body{padding:20px 16px 18px}.challenge-meta{font-size:8px}.dictation-preview h2{font-size:28px}.preview-screen{font-size:9px}.spark-foot{padding:13px 15px;font-size:9px}.brain-hint img{width:131px;height:131px}.brain-hint{right:-13px;bottom:-1px}.brain-hint span{font-size:9px;padding:7px 10px;right:0}.stage-note{left:0;bottom:17px;font-size:11px;max-width:190px}.stage-note svg{width:48px;height:30px}.hero-spark{top:153px;right:0;z-index:-1;width:50px}.subject-line{gap:12px;padding-block:20px}:root{--space-section:48px;--space-hero:40px}.section-intro{margin-bottom:30px;gap:18px}.section-intro h2{font-size:36px}.eyebrow{font-size:9px;letter-spacing:.1em;margin-bottom:16px}.section-intro p:not(.eyebrow){font-size:15px}.classroom-top{padding:15px}.classroom-brand{font-size:13px;gap:7px}.demo-label{font-size:8px;max-width:120px;text-align:right;line-height:1.5}.journey-nav button{font-size:10px;line-height:1.4;padding:13px 7px}.journey-nav button span{font-size:9px}.journey-panel{padding:20px 16px;gap:19px}.roster-copy h3{font-size:28px}.roster-copy p{font-size:13px!important}.teacher-screen{padding:14px;font-size:12px}.teacher-screen h4{font-size:19px}.ts-games{grid-template-columns:1fr 1fr;gap:6px}.ts-game{min-height:0;padding:10px}.ts-game>span:last-of-type{display:none}.ts-detail-row{grid-template-columns:1fr}.builders{padding:18px 16px 24px}.school-strip{padding:22px 18px}.playground-section{padding-block:58px}.practice-menu{grid-template-columns:repeat(2,minmax(0,1fr))}.practice-menu button{flex-direction:row;gap:12px;align-items:center;text-align:left;padding:12px;min-height:75px}.practice-menu strong{font-size:16px}.practice-menu small{font-size:9px}.subject-glyph{font-size:25px;flex-shrink:0;width:26px}.practice-panel{padding:18px 14px}.practice-kicker{font-size:9px!important}.hub-tiles b{font-size:14px}.demo-disclaimer{font-size:9px;max-width:290px;margin-inline:auto;line-height:1.65}.brain-section{grid-template-columns:1fr;gap:33px;padding-top:55px}.brain-gallery{max-width:370px;width:100%;margin:auto}.brain-gallery>img{width:270px}.orbit-a{width:265px;height:265px;left:calc(50% - 132px)}.orbit-b{width:310px;height:270px;left:calc(50% - 155px)}.brain-caption strong{font-size:23px}.brain-copy h2{font-size:47px}.brain-copy>p:not(.eyebrow){font-size:16px}.people-section{padding-block:55px}.people-statement h2{font-size:33px}.people-copy .lead{font-size:17px}.faq-section h2{font-size:35px}.faq summary{font-size:14px;gap:15px}.faq details p{font-size:13px;padding-right:10px}.invitation{padding:32px 23px;display:block}.invitation h2{font-size:43px;max-width:290px}.invitation .eyebrow{max-width:210px}.invitation>div>p:not(.eyebrow){font-size:14px;max-width:270px}.invitation .button{font-size:12px;gap:20px;padding:14px 16px}.invitation>img,.invitation>.invitation-brainy{position:absolute;width:105px;right:2px;top:7px;z-index:-1;opacity:.85;margin:0}.invitation .invitation-small{font-size:10px!important;max-width:270px}.invitation-doodle{font-size:220px;right:-20px;bottom:-90px}.footer{gap:17px;padding-block:25px}.footer>p{font-size:10px}.footer>div{gap:20px;flex-wrap:wrap;font-size:11px}.footer>small{font-size:9px;line-height:1.7}.info-main{padding-block:38px}.info-main h1{font-size:36px}.info-main p,.info-main li{font-size:15px}.ds-header{flex-direction:column}.ds-accents .ds-counter{margin-left:0;flex-basis:100%}.demo-controls{width:100%}.demo-controls button{flex:1 1 auto}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.brain-gallery>img{transform:none}.button:hover,.brain-picker button:hover,.ts-game:hover{transform:none}.demo-pointer{display:none}}
@media print{.nav,.footer,.hero-stage,.classroom-demo,.playground,.brain-picker,.demo-overlay{display:none}body{background:white;color:#182e41}.wrap{width:100%}.section{padding-block:25px}}
/* Three mini lessons (Nick's snagging slides 13 and 15 to 17, 30 Sep 2026) */
.lesson-tabs{display:flex;gap:6px;padding:12px 21px 0}
.lesson-tabs button{flex:1 1 0;border:1.5px solid #cfdde7;background:var(--paper);border-radius:10px;min-height:40px;padding:6px 8px;font-size:12px;font-weight:800;color:var(--muted)}
.lesson-tabs button[aria-selected=true]{background:var(--blue);border-color:var(--blue);color:#fff;box-shadow:0 2px 6px #22415b22}
.lesson-preview h2{font-size:clamp(26px,3vw,34px);line-height:1.1;margin:16px 0 8px;letter-spacing:-.045em}
.lesson-preview .button{width:100%;margin-top:16px;gap:12px;font-size:14px}
.ps-hud{display:flex;justify-content:space-between;align-items:center;gap:6px}
.ps-hud span{display:grid;text-align:center;font-family:'MLB Plain Digits',ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:700;font-size:13px}
.ps-hud small{font-family:var(--app-font);font-size:7px;letter-spacing:.08em;text-transform:uppercase;color:var(--app-dim);font-weight:600}
.ps-hud .ps-start{display:inline-block;background:#f59e0b;color:#0f172a;font-family:var(--app-font);font-size:10px;padding:5px 10px;border-radius:7px}
.ps-bar{height:4px;border-radius:9px;background:#10b981}
.ps-tt-row{display:flex;align-items:center;gap:6px;background:var(--app-panel);border:1px solid var(--app-panel-2);border-radius:9px;padding:7px 8px}
.ps-tt-row>span:first-child{flex:1;min-width:0;line-height:1.35}
.ps-tt-row em{font-style:normal;color:var(--app-amber)}
.ps-tt-row i{font-style:normal;color:#cbd5e1;font-weight:400;margin-left:4px}
.ps-tt-row small{color:var(--app-brand-soft);font-size:8px}
.ps-box{background:var(--app-panel-2);border:1px solid var(--app-line);border-radius:7px;padding:5px 7px;color:#475569;width:76px}
.ps-go{background:#f59e0b;color:#0f172a;border-radius:7px;padding:5px 7px;font-weight:700}
.ps-rg-card{display:grid;gap:2px;text-align:center;background:linear-gradient(135deg,#0e7490,#164e63);border-radius:9px;padding:10px}
.ps-rg-card small{font-size:7px;letter-spacing:.08em;text-transform:uppercase;color:#ffffffb3;font-weight:600}
.ps-rg-card b{font-size:14px}
.ps-rg-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:4px}
.ps-rg-grid span{background:var(--app-panel-2);border:1px solid var(--app-line);border-radius:6px;padding:6px 3px;text-align:center;font-size:8px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* The shared stage: the screens, the pointer and the pop-up */
.demo-stage{position:relative;background:var(--app-bg)}
.demo-caption{color:#35536d}
.demo-callout{position:absolute;top:0;left:0;z-index:6;background:#fde047;color:#1c1917;border:2px solid #a16207;border-radius:14px;padding:12px 16px;box-shadow:0 14px 34px #0009;pointer-events:none;--arrow-x:50%}
.demo-callout p{margin:0;font:700 16px/1.4 var(--app-font)}
.demo-callout::after{content:"";position:absolute;left:var(--arrow-x);bottom:-9px;width:14px;height:14px;margin-left:-7px;background:#fde047;border-right:2px solid #a16207;border-bottom:2px solid #a16207;transform:rotate(45deg)}
.demo-callout.below::after{bottom:auto;top:-9px;transform:rotate(225deg)}
.demo-callout.no-arrow::after{display:none}
.demo-callout.pop{animation:callout-pop .35s cubic-bezier(.2,.9,.3,1.3)}
@keyframes callout-pop{from{opacity:0;scale:.9}to{opacity:1;scale:1}}

/* Timed Test, as the app draws it */
.tt-screen,.rg-screen{padding:22px;display:grid;gap:12px}
.tt-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.tt-brand{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0;font-weight:700;font-size:17px}
.tt-chip{color:var(--app-amber);background:#78350f4d;font-size:13px;font-weight:500;padding:2px 8px;border-radius:99px}
.rg-chip{color:#67e8f9;background:#164e634d;font-size:13px;font-weight:500;padding:2px 8px;border-radius:99px}
.tt-sub{margin:4px 0 0;color:var(--app-muted);font-size:13px}
.tt-header-right{display:flex;gap:14px;color:var(--app-muted);font-size:13px;align-items:center}
.tt-instructions{text-align:center;color:var(--app-muted);font-size:13px;line-height:1.6}
.tt-instructions p{margin:0}
.tt-instructions [lang]{color:#e2e8f0}
.tt-hud{display:flex;justify-content:space-between;align-items:center;gap:10px}
.tt-hud div{text-align:center}
.tt-hud p{margin:0;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--app-dim)}
.tt-hud b{font:700 28px/1.2 'MLB Plain Digits',ui-monospace,SFMono-Regular,Menlo,monospace;font-variant-numeric:tabular-nums}
.tt-start{border:0;border-radius:12px;background:#f59e0b;color:#0f172a;font:700 14px var(--app-font);padding:9px 18px}
.tt-live .tt-start{background:var(--app-panel-2);border:1px solid var(--app-line);color:#fff;font-weight:500}
.tt-bar,.rg-bar{height:8px;background:var(--app-panel-2);border-radius:99px;overflow:hidden}
.tt-bar i{display:block;height:100%;width:100%;background:#10b981;transition:width 1s linear}
.tt-accents{display:flex;justify-content:flex-end;gap:6px;flex-wrap:wrap;padding-right:78px}
.tt-accents button{width:32px;height:32px;border:0;border-radius:8px;background:var(--app-panel-2);color:#fff;font:500 14px var(--app-font)}
.tt-rows{display:grid;gap:8px}
.tt-row{display:flex;align-items:center;gap:12px;background:var(--app-panel);border:1px solid var(--app-panel-2);border-radius:16px;padding:10px 16px;transition:background .2s,border-color .2s}
.tt-row.right{background:#022c2266;border-color:#059669}
.tt-row.wrong{border-color:#7f1d1d99}
.tt-row.shown{border-color:#0369a1b3}
.tt-num{color:#475569;font-size:12px;width:18px}
.tt-q{flex:1;min-width:0}
.tt-q p{margin:0;font-weight:600}
.tt-subj{color:var(--app-amber)}
.tt-dash{color:var(--app-dim);font-weight:400}
.tt-en{color:#cbd5e1;font-weight:400;margin-left:12px}
.tt-q .tt-tense{color:var(--app-brand-soft);font-size:12px;font-weight:400;margin-top:2px}
.tt-row.wrong .tt-tense span{color:var(--app-muted)}
.tt-row.shown .tt-tense span{color:#bae6fd}
.tt-answer{display:flex;gap:8px;align-items:center}
.tt-input{width:210px;background:var(--app-panel-2);border:1px solid var(--app-line);border-radius:12px;padding:8px 12px;color:#fff;white-space:nowrap;overflow:hidden}
.tt-input.empty{color:#475569}
.tt-row.right .tt-input{background:#064e3b99;border-color:#34d399;color:#ecfdf5}
.tt-row.wrong .tt-input{border-color:#b91c1c}
.tt-row.shown .tt-input{border-color:#38bdf8;color:#e0f2fe}
.tt-check{border:0;border-radius:12px;background:#f59e0b;color:#0f172a;font:700 14px var(--app-font);padding:8px 12px;min-width:66px}
.tt-row.right .tt-check{background:#10b981}

/* Regurgitate tiles, as the app draws them */
.rg-status{display:flex;justify-content:space-between;align-items:center;color:var(--app-muted);font-size:14px}
.rg-status b{color:#fff;font-size:18px}
.rg-time{font:500 18px 'MLB Plain Digits',ui-monospace,SFMono-Regular,Menlo,monospace;color:#fff}
.rg-mis{color:#fca5a5;min-width:70px;text-align:right}
.rg-bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,#10b981,#06b6d4);transition:width .3s}
.rg-card{text-align:center;border-radius:16px;padding:28px 24px;background:linear-gradient(135deg,#0e7490,#164e63);border:1px solid transparent}
.rg-card.held{background:linear-gradient(135deg,#047857,#064e3b);border-color:#34d39999}
.rg-card p{margin:0}
.rg-instr{font-size:12px;letter-spacing:.08em;text-transform:uppercase;font-weight:600;color:#ffffffb3;margin-bottom:8px!important}
.rg-prompt{font-size:28px;font-weight:700;line-height:1.3}
.rg-answer{font-size:22px;font-weight:600;color:#d1fae5}
.rg-answer:empty{display:none}
.rg-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
.rg-tile{border:1px solid var(--app-line);background:var(--app-panel-2);color:#fff;border-radius:12px;padding:16px 8px;font:500 15px var(--app-font);transition:all .2s}
.rg-tile.green{background:#059669;border-color:#34d399;transform:scale(1.05)}
.rg-tile.flash{background:#b91c1c;transform:scale(.95)}
.rg-tile.gone{opacity:0}

@media(max-width:820px){
 .tt-screen,.rg-screen{padding:14px;gap:10px}
 .tt-row{flex-wrap:wrap}
 .tt-answer{width:100%}
 .tt-input{flex:1;width:auto}
 .tt-num{display:none}
 .tt-accents{padding-right:0}
 .rg-grid{grid-template-columns:repeat(4,1fr)}
 .demo-callout p{font-size:14px}
}
@media(max-width:540px){
 .lesson-tabs{padding:10px 14px 0}
 .tt-hud b{font-size:22px}
 .tt-en{display:block;margin-left:0}
 .rg-grid{grid-template-columns:repeat(2,1fr)}
 .rg-prompt{font-size:24px}
}
@media(prefers-reduced-motion:reduce){.demo-callout.pop{animation:none}.tt-bar i,.rg-bar i{transition:none}}

/* Spaced retrieval (Nick's slides 22 and 23): the tab's panel and the practice demo */
.spaced-demo{display:grid;gap:14px;align-content:start}
.spaced-demo .button{width:100%;gap:12px;font-size:14px}
.ps-pr-head{display:flex;justify-content:space-between;font-size:12px}
.ps-pr-head span{color:var(--app-muted);font-size:10px}
.ps-pr-card{display:grid;gap:5px;background:var(--app-panel);border:1px solid var(--app-line);border-radius:10px;padding:12px}
.ps-pr-card b{font-size:14px}
.ps-pr-card small{color:var(--app-muted);font-size:10px}
.ps-pr-card strong{font-size:11px}
.ps-pr-start{background:#06b6d4;color:#0f172a;border-radius:8px;padding:7px;text-align:center;font-weight:700;margin-top:4px}
.spaced-steps{list-style:none;counter-reset:step;padding:0;margin:0 0 16px;display:grid;gap:10px}
.spaced-steps li{counter-increment:step;display:grid;grid-template-columns:34px 1fr;column-gap:12px;background:var(--paper);border:1px solid #d7e3ea;border-radius:14px;padding:12px 14px}
.spaced-steps li::before{content:counter(step);grid-row:span 2;width:30px;height:30px;border-radius:50%;background:var(--blue);color:#fff;display:grid;place-items:center;font-weight:800;font-size:14px}
.spaced-steps b{font-size:15px}
.spaced-steps span{font-size:13px;color:var(--muted);line-height:1.55}

.pr-screen{padding:22px;display:grid;gap:12px;min-height:520px;align-content:start}
.pr-head{display:flex;justify-content:space-between;align-items:center}
.pr-langs{display:flex;justify-content:center;gap:8px}
.pr-langs span{padding:8px 20px;border-radius:12px;border:2px solid #475569;background:var(--app-panel-2);color:#cbd5e1;font-size:14px;font-weight:600}
.pr-langs .on{background:#06b6d4;border-color:#22d3ee;color:#0f172a}
.pr-rule{text-align:center;color:var(--app-muted);font-size:13px;max-width:560px;margin:0 auto}
.pr-cards{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.pr-card{display:flex;flex-direction:column;gap:6px;background:var(--app-panel);border:1px solid var(--app-line);border-radius:16px;padding:18px}
.pr-card h3{margin:0;font-size:19px;color:#fff}
.pr-card p{margin:0;color:var(--app-muted);font-size:13px}
.pr-card .pr-ready{color:#fff;font-weight:600;margin-top:8px}
.pr-start{margin-top:14px;background:#06b6d4;color:#0f172a;font-weight:700;text-align:center;padding:11px;border-radius:12px}
/* Slide 114: the real card's second route, "Practise your words" (grey, as in MyPracticePage). */
.pr-start.pr-second{margin-top:8px;background:#334155;color:#fff}
.pr-hist{background:var(--app-panel-2);border:1px solid var(--app-line);text-align:center;padding:9px;border-radius:12px;font-size:13px;font-weight:600}
.pr-h{margin:6px 0 0;font-size:22px;color:#fff}
.pr-sub{margin:0;color:var(--app-muted);font-size:13px}
.pr-acts{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.pr-acts span{display:grid;gap:4px;border:1px solid var(--app-line);background:var(--app-panel);border-radius:16px;padding:14px}
.pr-acts b{color:#fff}
.pr-acts small{color:var(--app-muted);font-size:12px;line-height:1.4}
.pr-quick{background:#06b6d4;color:#0f172a;font-weight:700;text-align:center;padding:12px;border-radius:12px}
.ml-status{display:flex;justify-content:space-between;align-items:center;color:var(--app-muted);font-size:14px}
.ml-status b{color:#fff;font-size:18px}
.ml-brains{font-size:22px;display:flex;gap:4px}
.ml-brains .lost{opacity:.2;filter:grayscale(1)}
.ml-pts{color:var(--app-amber);font-weight:500}
.ml-hint{margin:0;text-align:center;color:var(--app-muted);font-size:13px}
.ml-instr{margin:0;text-align:center;color:#fff;font-weight:600}
.ml-clue{margin:0;text-align:center;color:#e2e8f0;font-size:22px;font-weight:600}
.ml-box{background:var(--app-bg);border-radius:16px;padding:22px;text-align:center;font:700 28px/1.6 'MLB Plain Digits',ui-monospace,SFMono-Regular,Menlo,monospace;box-shadow:0 0 0 1px var(--app-line)}
.ml-box.wrong{box-shadow:0 0 0 2px #dc2626}
.ml-box.correct{box-shadow:0 0 0 2px #10b981}
.ml-prefix{color:#fff}
.ml-slot{display:inline-block;min-width:.72em;border-bottom:2px solid #475569;margin:0 1.5px;color:transparent}
.ml-slot.filled{color:#fff;border-color:#94a3b8}
.ml-slot.current{border-color:#8b7ef0}
.ml-gap{color:#fff}
.ml-accents{display:flex;flex-wrap:wrap;gap:4px;justify-content:center}
.ml-accents span{width:40px;height:40px;display:grid;place-items:center;background:var(--app-panel-2);border:1px solid var(--app-line);border-radius:8px;font:18px 'MLB Plain Digits',ui-monospace,SFMono-Regular,Menlo,monospace}
.ml-submit-row{display:flex;justify-content:flex-end}
.ml-submit{background:#5b4fe0;color:#fff;font-weight:600;padding:10px 20px;border-radius:12px}
.ml-wrong{padding:12px 16px;border-radius:12px;background:#450a0a99;border:1px solid #b91c1c99;color:#fecaca;font-size:14px}
.ml-wrong strong{color:#fee2e2}
.ml-restored{margin:0;text-align:center;color:#6ee7b7;font-weight:700;font-size:26px}
.ml-nice{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 16px;border-radius:12px;background:#022c2299;border:1px solid #047857;color:#a7f3d0;font-size:14px}
.ml-nice strong{color:#d1fae5}
.ml-nice b{margin-left:8px;color:#d1fae5;font-size:16px}
.ml-replay{border:1px solid #047857;background:#064e3b66;border-radius:12px;padding:6px 12px;font-weight:600;color:#d1fae5}
@media(max-width:820px){.pr-screen{padding:14px}.pr-cards,.pr-acts{grid-template-columns:1fr}.ml-box{font-size:22px;padding:16px}.ml-clue{font-size:18px}}

/* Slide 24: a "See the demo" on every function */
.hub-tiles li .demo-link{display:block;width:max-content;margin-top:8px;border:1.5px solid var(--blue);background:var(--paper);color:var(--blue);border-radius:9px;padding:6px 12px;min-height:34px;font-size:12px;font-weight:800;cursor:pointer}
.hub-tiles li .demo-link:hover{background:var(--blue);color:#fff}
.demo-invite{margin-top:8px;padding:12px 14px;border-radius:12px;background:#eef4f8;border:1px solid #d3e1ea;font-size:13px;line-height:1.55}
.demo-invite p{margin:0 0 8px}
.demo-invite p:last-child{margin:0;display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.demo-signup{flex-basis:100%;margin:0;font-size:14px;font-weight:600;color:#2d4a63}

/* The Verbs hub demos (Nick's slide 24, second batch): each game's own screen, in the app's colours */
.vd-screen{padding:22px;display:grid;gap:12px;align-content:start;min-height:520px}
.vd-chip{color:#38bdf8;background:#0c4a6e4d;font-size:13px;font-weight:500;padding:2px 8px;border-radius:99px}
.vd-keys{display:flex;flex-wrap:wrap;gap:4px}.vd-keys span,.vd-shift{min-width:30px;padding:3px 9px;border-radius:8px;background:var(--app-panel-2);border:1px solid var(--app-line);color:#fff;font-size:14px;text-align:center}.vd-keys.off{opacity:.4}
.rg-card.verbs{background:linear-gradient(135deg,#0369a1,#0c4a6e)}.rg-card.verbs.held{background:linear-gradient(135deg,#047857,#064e3b)}
/* Learn it! */
.li-bar,.cj-bar,.tr-bar{height:8px;background:var(--app-panel-2);border-radius:99px;overflow:hidden}.li-bar i{display:block;height:100%;background:var(--app-brand);transition:width .4s}
.li-card{background:var(--app-panel);border:1px solid var(--app-panel-2);border-radius:24px;padding:28px 22px;text-align:center;display:grid;gap:12px;justify-items:center}
.li-card p{margin:0}.li-stage{font-size:30px;font-weight:800;text-transform:uppercase;letter-spacing:.03em;color:var(--app-brand-soft)}
.li-pair-row{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap}.li-pair{font-size:28px;font-weight:700;line-height:1.3}.li-eq{color:var(--app-muted);font-weight:600}
.li-hear{background:#33415599;border:1px solid #64748b;border-radius:12px;padding:6px 12px;font-size:13px;white-space:nowrap}
.li-instr{color:#cbd5e1;font-size:13px}.li-inputs{display:flex;align-items:center;gap:8px;width:100%;max-width:640px}.li-eqbig{color:var(--app-muted);font-size:22px;font-weight:700}
.li-box{flex:1;min-width:0;background:var(--app-bg);border:2px solid var(--app-line);border-radius:12px;padding:10px;font-size:18px;text-align:center;min-height:50px}
.li-box#li-fr{border-color:var(--app-brand);display:flex;justify-content:center;gap:3px;flex-wrap:wrap}.li-slot{color:#475569;min-width:12px}.li-slot.filled{color:#fff}.li-en.empty{color:#475569}.li-given{color:#fff}
.li-keys{display:flex;gap:4px;flex-wrap:wrap;justify-content:center}.li-check{background:var(--app-brand);color:#0f172a;font-weight:700;border-radius:16px;padding:10px 26px}.li-legend{color:var(--app-amber);font-size:13px}
.li-count{font:700 26px 'MLB Plain Digits',ui-monospace,SFMono-Regular,Menlo,monospace;color:#38bdf8}
.li-boxes{display:flex;gap:6px}.li-boxes span{width:28px;height:28px;border-radius:6px;border:1px solid var(--app-line);background:var(--app-panel-2);display:grid;place-items:center;font-weight:700;font-size:14px}.li-boxes .pending{border-color:var(--app-brand)}.li-boxes .ok{background:#10b981;border-color:#34d399;color:#020617}
/* Conjugate it! */
.cj-wrap{max-width:520px;width:100%;margin:0 auto;display:grid;gap:14px}.cj-nav{display:flex;justify-content:space-between}.cj-nav span{border:1px solid #475569;color:#cbd5e1;border-radius:8px;padding:5px 12px;font-size:13px}
.cj-instr{margin:0;background:#0f172ab3;border:1px solid var(--app-panel-2);border-radius:12px;padding:10px 18px;text-align:center;color:#cbd5e1;font-size:13px}.cj-instr span{display:block}
.cj-progress{display:flex;justify-content:space-between;color:var(--app-dim);font-size:12px;margin-bottom:-8px}.cj-bar{height:6px}.cj-bar i{display:block;width:0}
.cj-verb{margin:0;text-align:center;font:700 24px var(--app-font);letter-spacing:0;color:#fff}.cj-verb span{color:var(--app-dim);font-weight:400}.cj-verb span[lang]{color:#fff;font-weight:700}
.cj-toggles{display:flex;justify-content:flex-end;align-items:center;gap:8px;font-size:12px;color:var(--app-dim)}.cj-toggle{width:36px;height:20px;border-radius:99px;background:var(--app-line);position:relative}.cj-toggle:after{content:'';position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff}.cj-toggle.on{background:#2563eb}.cj-toggle.on:after{left:18px}
.cj-row{background:var(--app-panel);border:1px solid transparent;border-radius:12px;padding:14px 16px;transition:border-color .2s}.cj-row.correct{border-color:#065f46}.cj-row.amber{border-color:#78350f}
.cj-row p{margin:0}.cj-tense{font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:#60a5fa}.cj-en{text-align:center;font-size:17px;font-weight:600;color:#fde047;margin:6px 0!important}
.cj-line{display:flex;align-items:center;gap:12px}.cj-pron{width:80px;flex-shrink:0;font-weight:700;font-size:13px;line-height:1.25}
.cj-input{flex:1;min-width:0;background:var(--app-panel-2);border:1px solid var(--app-line);border-radius:8px;padding:8px 12px;font-size:16px;color:#fff}.cj-input.empty{color:#475569}.cj-input.focus{border-color:#3b82f6}
.cj-input.correct{border-color:#10b981;background:#064e3b33;color:#d1fae5}.cj-input.amber{border-color:#f59e0b;background:#78350f33}.cj-icon{font-size:20px}.cj-icon.ok{color:#34d399}.cj-icon.amber{color:#fbbf24}
.cj-keys{margin:6px 0 0 92px}.cj-retry{margin:8px 0 0 92px!important;font-size:13px;font-weight:600;color:var(--app-amber)}
.cj-next{display:block;text-align:center;border-radius:16px;padding:14px;font-weight:700;background:var(--app-panel-2);color:var(--app-dim)}.cj-next.ready{background:#059669;color:#fff}
/* Clear the Board */
.ctb-hud{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:start}.ctb-mid{grid-column:2;text-align:center;display:grid;justify-items:center;gap:8px}
.ctb-mode{padding:5px 12px;border-radius:99px;background:#022c2280;border:1px solid #065f46;color:var(--app-ok);font-size:13px;font-weight:600}
.ctb-lines{color:#e2e8f0;font-size:13px;line-height:1.7;max-width:520px}.ctb-lines p{margin:0}
.ctb-chip{display:inline-block;padding:0 6px;border-radius:6px;font-size:12px;font-weight:600;color:#fff}.ctb-chip.brand{background:#0284c7}.ctb-chip.green{background:#059669}.ctb-chip.amber{background:var(--app-panel-2);border:1px solid #92400e99;color:var(--app-amber)}
.ctb-start{background:var(--app-brand);color:#0f172a;font-weight:700;border-radius:16px;padding:10px 30px}
.ctb-boxes{display:flex;gap:14px;justify-content:flex-end}.ctb-boxes div{text-align:center}.ctb-boxes p{margin:0;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--app-dim)}.ctb-boxes b{font:700 26px 'MLB Plain Digits',ui-monospace,SFMono-Regular,Menlo,monospace;white-space:nowrap}
.ctb-rows{display:grid;gap:8px}.ctb-row{display:flex;align-items:center;gap:12px;background:var(--app-panel);border:1px solid var(--app-panel-2);border-radius:16px;padding:12px 16px}.ctb-row.amber{background:#451a0333;border-color:#92400e99}
.ctb-text{flex:1;min-width:0}.ctb-line{display:flex;flex-wrap:wrap;column-gap:24px}.ctb-line p,.ctb-answer{margin:0;font-size:17px}.ctb-line p:first-child{font-weight:600}.ctb-hint{color:var(--app-brand-soft)}.ctb-answer{color:var(--app-ok);font-weight:700}
.ctb-btns{display:flex;gap:8px;flex-shrink:0}.ctb-b{padding:7px 12px;border-radius:12px;font-size:13px;font-weight:600;color:#fff;white-space:nowrap}.ctb-b.check{background:#0284c7}.ctb-b.got{background:#059669}.ctb-b.prac{background:var(--app-panel-2);border:1px solid #92400e99;color:var(--app-amber)}.ctb-b.off{background:var(--app-panel-2);color:#475569;border-color:var(--app-panel-2)}
.ctb-foot{display:flex;justify-content:space-between;align-items:center}.ctb-foot p{margin:0;color:var(--app-dim);font-size:13px}.ctb-foot span{background:var(--app-panel-2);border:1px solid var(--app-line);border-radius:12px;padding:8px 18px;font-size:13px}
/* Beat the Clock */
.btc-top{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px}.btc-title{text-align:center}.btc-title h3{margin:0;font:800 32px var(--app-font);letter-spacing:-.01em;color:#fff}.btc-title p{margin:0;color:var(--app-muted);font-size:13px}.btc-title .btc-att{color:var(--app-brand-soft);font-weight:700}
.btc-hud{justify-self:end;display:flex;flex-direction:column;align-items:flex-end;gap:2px}.btc-time{font:700 40px 'MLB Plain Digits',ui-monospace,SFMono-Regular,Menlo,monospace;line-height:1}
.btc-progress{font-size:13px;color:var(--app-muted);white-space:nowrap}
.btc-title .btc-rule{max-width:52ch;margin:4px auto 0;color:#cbd5e1;line-height:1.45}
.btc-table{background:var(--app-panel);border:1px solid var(--app-panel-2);border-radius:16px;overflow:hidden}
.btc-row{display:grid;grid-template-columns:28px 1fr 1fr 1.3fr;gap:8px;align-items:center;padding:7px 12px;border-top:1px solid var(--app-panel-2);font-size:13px}
/* Beat the Clock deck slide 17 (27 Oct 2026): each row is checked as it is typed. Green = right first time (1 mark), amber with
   "Try again" = one more try, amber with a tick = right on the second try (half a mark), red with a cross = wrong twice (locked). */
.btc-cell{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.btc-cell .btc-input{flex:1 1 120px;min-width:0}
.btc-check{background:#f59e0b;color:#0f172a;font-weight:700;font-size:12px;border-radius:8px;padding:7px 10px;min-width:52px;text-align:center}
.btc-mark{min-width:52px;text-align:center;font-weight:800;font-size:15px;color:var(--app-ok)}.btc-half .btc-mark{color:var(--app-amber)}.btc-fail .btc-mark{color:var(--app-wrong)}
.btc-status{flex-basis:100%;color:var(--app-amber);font-size:11px;font-weight:700;line-height:1}
.btc-ok .btc-input{border-color:#34d399;background:#064e3b99;color:#ecfdf5}.btc-half .btc-input{border-color:#f59e0b;background:#78350f33}
.btc-retry .btc-input{border-color:#f59e0b;box-shadow:0 0 0 2px #f59e0b66}.btc-fail .btc-input{border-color:#b91c1c;background:#450a0a66;color:#fecaca}
.btc-fail{opacity:.85}
.btc-th{border-top:0;background:#1e293b99;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--app-muted)}.btc-n{color:#475569;font-size:12px}.btc-hint{color:var(--app-brand-soft)}.btc-keynote{color:var(--app-dim);font-size:11px;text-align:right}
.btc-input{display:block;min-height:34px;background:var(--app-bg);border:2px solid var(--app-line);border-radius:8px;padding:6px 10px;color:#fff}.btc-input.focus{border-color:var(--app-brand);box-shadow:0 0 0 2px #0ea5e966}.btc-input.amber{border-color:#f59e0b}
.btc-next{background:var(--app-brand);color:#0f172a;font-weight:700;border-radius:16px;padding:10px 30px}
.btc-review{margin:0;text-align:center;font:700 22px var(--app-font);letter-spacing:0;color:#fff}
.btc-tries{display:flex;flex-wrap:wrap;gap:2px 10px}.btc-second{display:block;font-style:normal;font-weight:700;font-size:11px;color:var(--app-amber)}
.btc-attempts{display:grid;gap:8px;max-width:380px;width:100%;margin:0 auto}.btc-attempts div{border:2px solid var(--app-panel-2);background:var(--app-panel);border-radius:12px;padding:8px 14px}.btc-attempts .best{border-color:#fbbf24;background:#451a034d}
.btc-attempts p{margin:0;display:flex;justify-content:space-between;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--app-muted);font-weight:600}.btc-attempts em{font-style:normal;color:var(--app-amber);font-weight:700;text-transform:none;letter-spacing:0}
.btc-corr{background:var(--app-panel);border:1px solid var(--app-panel-2);border-radius:16px;overflow:hidden}.btc-corr-head{margin:0;background:#1e293b99;padding:8px 16px;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--app-muted)}
.btc-corr div{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;padding:10px 16px;border-top:1px solid var(--app-panel-2);font-size:13px}.btc-corr span{color:#cbd5e1}.btc-corr s{color:var(--app-wrong)}.btc-corr b{color:var(--app-ok)}
.btc-next{justify-self:center;font-size:17px;padding:14px 30px}
/* Test in Pairs */
.tp-instr{margin:0;text-align:center;color:var(--app-muted);font-size:13px}.tp-chip,.tp-prac{display:inline-block;padding:1px 8px;border-radius:8px;border:1px solid #b45309b3;background:var(--app-panel);color:var(--app-amber);font-size:12px;font-weight:700;white-space:nowrap}
.tp-timer{display:flex;align-items:center;justify-content:center;gap:24px}.tp-timer b{font:700 54px 'MLB Plain Digits',ui-monospace,SFMono-Regular,Menlo,monospace}.tp-start{background:#06b6d4;color:#0f172a;font-weight:700;border-radius:16px;padding:10px 22px;font-size:17px}
.tp-bar{height:12px;background:var(--app-panel-2);border-radius:99px;overflow:hidden;max-width:640px;width:100%;margin:0 auto}.tp-bar i{display:block;height:100%;width:100%;background:#10b981;transition:width 1s linear}.tp-bar i.amber{background:#f59e0b}
.tp-body{display:flex;gap:18px;align-items:flex-start}.tp-list{flex:1;min-width:0;display:grid;gap:4px}.tp-turn{margin:0 0 4px;text-align:center;color:var(--app-muted);font-size:13px}
.tp-row{display:grid;grid-template-columns:24px 1.2fr 1fr 1fr auto;gap:8px;align-items:center;background:#0f172a99;border:1px solid var(--app-panel-2);border-radius:8px;padding:0 6px 0 0;min-height:40px;font-size:13px;transition:background .2s}.tp-row.amber{background:#78350f4d;border-color:#b4530999}
.tp-n{color:#475569;font-size:11px;text-align:right}.tp-q{font-weight:600}.tp-h{color:var(--app-brand-soft);font-size:11px}.tp-a{color:var(--app-ok);font-weight:700}.tp-prac.off{opacity:.4}
.tp-side{width:170px;flex-shrink:0;display:grid;gap:10px}.tp-player{border:2px solid var(--app-panel-2);background:var(--app-panel);border-radius:16px;padding:10px 12px;opacity:.7}.tp-player.on{border-color:#22d3ee;background:#083344;opacity:1}
.tp-player p{margin:0;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--app-dim)}.tp-player b{display:block}.tp-player strong{display:block;font-size:28px}.tp-player em{font-style:normal;color:var(--app-muted);font-size:11px}.tp-player.on em{color:#67e8f9}.tp-setup{text-align:center;color:var(--app-dim);font-size:11px}
/* Spot the Tense */
.sp-icon{font-size:22px}.sp-bar{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:13px;color:var(--app-muted)}.sp-bar b{color:#fff;font-weight:500}.sp-bar em{font-style:normal;color:var(--app-amber);font-weight:600;margin-left:14px}.sp-time{font-family:'MLB Plain Digits',ui-monospace,SFMono-Regular,Menlo,monospace;color:#fff}
.sp-instr{background:#0f172ab3;border:1px solid var(--app-panel-2);border-radius:12px;padding:10px 16px;text-align:center;color:#e2e8f0;font-size:14px}.sp-instr p{margin:0}.sp-instr .g{color:#34d399}.sp-instr .r{color:#f87171}
.sp-table{border:1px solid var(--app-panel-2);border-radius:16px;overflow:hidden}.sp-table table{width:100%;border-collapse:collapse;font-size:14px}.sp-table th{background:var(--app-panel);color:#cbd5e1;text-align:left;padding:10px 12px;font-weight:600}
.sp-table td{border-top:1px solid var(--app-panel-2);padding:6px 12px;position:relative}.sp-n{color:var(--app-dim);width:28px}.sp-pron{color:var(--app-muted)}
.sp-select,.sp-input{display:flex;justify-content:space-between;background:var(--app-panel);border:1px solid var(--app-line);border-radius:8px;padding:5px 8px;font-size:13px;color:#fff;min-width:140px}.sp-select i{font-style:normal;color:var(--app-dim)}.sp-input.empty{color:#475569}
.sp-select.correct,.sp-input.correct{border-color:#10b981;color:var(--app-ok)}.sp-select.wrong{border-color:#ef4444;color:var(--app-wrong)}
.sp-menu{position:absolute;z-index:3;left:12px;right:12px;top:100%;margin-top:-2px;background:#fff;color:#0f172a;border-radius:6px;box-shadow:0 8px 24px #0008;display:grid;padding:4px 0;font-size:13px}.sp-menu span{padding:4px 10px}
/* Tense Recognition */
.tr-subtitle{color:var(--app-muted);font-size:13px;font-weight:400}.tr-title{margin:0;text-align:center;font:700 24px var(--app-font);letter-spacing:0;color:#fff}.tr-instr{margin:-6px 0 0;text-align:center;color:var(--app-muted);font-size:13px}
.tr-status{display:flex;justify-content:space-between;align-items:center;color:var(--app-muted)}.tr-status b{color:#fff;font-size:18px}.tr-brains{font-size:24px}.tr-brains .lost{opacity:.2;filter:grayscale(1)}.tr-time{font:500 18px 'MLB Plain Digits',ui-monospace,SFMono-Regular,Menlo,monospace;color:#fff}
.tr-bar i{display:block;height:100%;background:linear-gradient(90deg,#10b981,#0ea5e9);transition:width .3s}
.tr-verb{background:#fff;border-radius:16px;padding:26px 20px;text-align:center;max-width:560px;width:100%;margin:6px auto;box-shadow:0 8px 20px #0006}.tr-verb p{margin:0;font-size:30px;font-weight:700;color:#1d4ed8}.tr-verb .tr-en{color:#dc2626}
.tr-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.tr-tile{background:#fff;border:2px solid #e2e8f0;border-radius:16px;padding:18px 10px;text-align:center;color:#1e293b;font-weight:500;transition:all .2s}
.tr-tile.right{background:#22c55e;border-color:#22c55e;color:#fff}.tr-tile.chosen{background:#fcd34d;border-color:#fbbf24;color:#0f172a}.tr-tile.dim{opacity:.6}.tr-back{margin:0;text-align:center;color:var(--app-dim);font-size:11px}
@media(max-width:820px){
 .vd-screen{padding:14px;gap:10px}.li-stage{font-size:22px}.li-pair{font-size:22px}.li-inputs{flex-wrap:wrap}.li-box{flex-basis:100%}.li-eqbig{display:none}
 .ctb-hud{grid-template-columns:1fr}.ctb-mid,.ctb-boxes{grid-column:1;justify-content:center}.ctb-row{flex-wrap:wrap}.ctb-btns{width:100%}
 .btc-top{grid-template-columns:1fr}.btc-hud{justify-self:center;align-items:center}.btc-row{grid-template-columns:20px 1fr;row-gap:4px}.btc-row>:nth-child(3){grid-column:2}.btc-row>:nth-child(4){grid-column:2}.btc-th>:nth-child(3),.btc-th>:nth-child(4){display:none}.btc-keyrow>:nth-child(3){text-align:left}
 .tp-body{flex-direction:column}.tp-side{width:100%;grid-template-columns:1fr 1fr}.tp-setup{grid-column:span 2}.tp-row{grid-template-columns:20px 1fr auto;padding:6px}.tp-h,.tp-a{grid-column:2}.tp-prac{grid-column:3;grid-row:1}.tp-timer b{font-size:40px}
 .sp-table{overflow-x:auto}.sp-select,.sp-input{min-width:120px}.tr-verb p{font-size:24px}.cj-keys,.cj-retry{margin-left:0!important}
}
@media(max-width:540px){.tr-tiles{gap:6px}.tr-tile{padding:14px 4px;font-size:13px}.ctb-btns{flex-wrap:wrap}.btc-title h3{font-size:26px}.li-card{padding:20px 12px}}
.rg-bar i.ml-fill{background:#6f5fe8}

/* The Vocabulary hub demos (slide 24, third batch) */
.vd-chip.cyan{color:#67e8f9;background:#164e634d}.vd-chip.accent{color:#c4b5fd;background:#4035ab4d}
.vb-title{margin:0;text-align:center;font:700 28px var(--app-font);letter-spacing:0;color:#fff}
.vb-rail{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}.vb-rail span{padding:3px 12px;border-radius:99px;font-size:12px;font-weight:600;background:var(--app-panel);color:var(--app-dim)}.vb-rail span.on{background:#06b6d4;color:#0f172a}
.vb-intro{text-align:center;display:grid;gap:4px;justify-items:center}.vb-intro b{font-size:22px}.vb-intro p{margin:0;max-width:640px;color:var(--app-muted);font-size:13px}
.vb-count{font:14px 'MLB Plain Digits',ui-monospace,SFMono-Regular,Menlo,monospace;color:#cbd5e1}.vb-count.cyan{color:#67e8f9}
.vb-row{display:grid;grid-template-columns:200px 1fr auto;align-items:center}.vb-prompt{margin:0;font-size:17px;font-weight:600}.vb-answer{margin:0;text-align:center;color:var(--app-ok);font-weight:700;font-size:17px}
.ctb-b.check.accent{background:#5b4fe0}
.vb-q{margin:8px 0 0;text-align:center;font:700 22px var(--app-font);letter-spacing:0;color:#fff}.vb-qs{margin:0;text-align:center;color:var(--app-muted);font-size:13px}
.vb-dirs{display:grid;grid-template-columns:1fr 1fr;gap:14px}.vb-dir{display:grid;gap:8px;border-radius:16px;padding:22px;background:linear-gradient(135deg,#5b4fe0,#4035ab)}.vb-dir b{font-size:17px}.vb-dir span{color:#ffffffb3;font-size:13px;line-height:1.5}
.tp-row.two{grid-template-columns:24px 1fr 1fr auto}
.ml2-name{display:block;border:2px solid var(--app-line);border-radius:12px;padding:10px 16px;font-size:17px;background:var(--app-panel)}.ml2-name.empty{color:#475569}
.ml2-help{margin:0;text-align:center;color:var(--app-muted);font-size:13px}
.ml2-paste{border:1px solid var(--app-panel-2);background:#0f172a99;border-radius:16px;padding:12px 16px;display:grid;gap:10px}.ml2-paste b{color:#67e8f9}.ml2-paste p{margin:0;color:var(--app-muted);font-size:13px}
.ml2-order{display:flex;gap:8px;flex-wrap:wrap}.ml2-order span{border:1px solid var(--app-line);border-radius:10px;padding:4px 10px;font-size:13px;color:#cbd5e1}.ml2-order span.on{background:#06b6d4;border-color:#22d3ee;color:#0f172a;font-weight:600}
.ml2-area{margin:0;min-height:90px;max-height:120px;overflow:hidden;background:var(--app-bg);border:1px solid var(--app-line);border-radius:8px;padding:8px 10px;font:12px/1.5 'MLB Plain Digits',ui-monospace,SFMono-Regular,Menlo,monospace;color:#fff;white-space:pre-wrap}
.ml2-fillrow{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.ml2-fill{background:#06b6d4;color:#0f172a;font-weight:600;border-radius:10px;padding:6px 14px}.ml2-fillrow em{font-style:normal;color:#cbd5e1;font-size:13px}
.ml2-rows{display:grid;gap:6px}.ml2-row{display:grid;grid-template-columns:24px 1fr 1fr;gap:8px;align-items:center}.ml2-row>span:first-child{color:#475569;font-size:12px;text-align:right}
.ml2-in{background:var(--app-panel);border:1px solid var(--app-line);border-radius:8px;padding:6px 10px;font-size:14px}.ml2-in.empty{color:#475569}.ml2-more{margin:0;color:var(--app-dim);font-size:12px;text-align:center}
.ml2-foot{display:flex;justify-content:space-between;align-items:center;gap:12px}.ml2-foot p{margin:0;color:var(--app-muted);font-size:14px}.ml2-save{background:#06b6d4;color:#0f172a;font-weight:700;border-radius:16px;padding:10px 22px}.ml2-save.off{background:var(--app-panel-2);color:var(--app-dim)}
@media(max-width:820px){.vb-row{grid-template-columns:1fr}.vb-answer{text-align:left}.vb-dirs{grid-template-columns:1fr}.tp-row.two{grid-template-columns:20px 1fr auto}.tp-row.two .tp-a{grid-column:2}}

/* Regurgitate Stage 4, Gap Fill (slide 33) */
.gp-pts{color:var(--app-amber);font-size:13px;font-weight:500}
.gp-instr{text-align:center}.gp-instr b{font-size:15px}.gp-instr p{margin:2px 0 0;color:var(--app-muted);font-size:13px}
.gp-card{border-radius:16px;padding:24px;text-align:center;background:linear-gradient(135deg,#0e7490,#164e63);display:grid;gap:12px}
.gp-card p{margin:0}.gp-sent{font-size:21px;font-weight:600;line-height:1.5}.gp-sent b{color:var(--app-ok)}.gp-word{font-size:21px;font-weight:600;color:#cffafe}.gp-en{font-size:17px;color:#ffffffe6}
.gp-gap{display:inline-block;background:#0000004d;border-radius:4px;padding:0 10px;margin:0 4px;color:var(--app-amber);font-family:'MLB Plain Digits',ui-monospace,SFMono-Regular,Menlo,monospace}
.gp-ok{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--app-ok)}
.gp-bad{border-radius:12px;padding:10px 14px;background:#450a0a99;border:1px solid #b91c1c99;color:#fecaca;font-size:13px}
.gp-restored{margin:0;text-align:center;color:var(--app-ok);font-size:24px;font-weight:700}
.gp-shown{border-radius:12px;padding:12px 14px;background:var(--app-panel-2);border:1px solid #475569;text-align:center;display:grid;gap:4px}.gp-shown small{color:var(--app-muted);font-size:11px;text-transform:uppercase;letter-spacing:.08em}.gp-shown p{margin:0;font-size:21px;font-weight:700}.gp-shown p span{color:var(--app-ok)}.gp-shown em{font-style:normal;color:var(--app-muted);font-size:13px}
.gp-form{background:var(--app-panel);border:1px solid var(--app-line);border-radius:16px;padding:14px;display:grid;gap:10px}
.gp-input{display:block;background:var(--app-bg);border:2px solid var(--app-line);border-radius:12px;padding:10px 14px;font:22px 'MLB Plain Digits',ui-monospace,SFMono-Regular,Menlo,monospace;color:#fff;min-height:52px}.gp-input.empty{color:#475569}.gp-input.bad{border-color:#dc2626}.gp-input.good{border-color:#10b981}
.gp-keys .vd-keys span{width:38px;height:38px;display:grid;place-items:center;padding:0}
.gp-row{display:flex;justify-content:space-between;align-items:center}.gp-row small{color:var(--app-dim);font-size:12px}.gp-btn{background:#0891b2;color:#fff;font-weight:600;border-radius:12px;padding:8px 18px}
.ts-game-guide{position:relative;outline:3px solid #facc15;outline-offset:2px;box-shadow:0 0 0 6px #facc1540}.ts-guide-tag{position:absolute;right:8px;top:8px;background:#facc15;color:#0f172a;font-style:normal;font-weight:800;font-size:10px;line-height:1.2;padding:4px 7px;border-radius:999px}.ts-game:not(.ts-game-guide):focus-visible{outline:2px solid #94a3b8;outline-offset:2px}@media(max-width:540px){.ts-guide-tag{position:static;justify-self:start;margin-top:4px}}

/* The audience routes (Nick's "Landing page update" deck, 18 Oct 2026): one short introduction, three
   clickable cards and one quiet explore link on the homepage; the three destination pages share the
   navigation, the demo window and these blocks. */
.hero-routes{padding-block:var(--space-hero) 0}
.hero-routes h1{font-size:clamp(30px,3.7vw,52px);line-height:1.12;letter-spacing:-.045em;margin:0 0 22px;text-wrap:balance}
.gold-under{position:relative;white-space:nowrap}
.gold-under:before,.gold-under:after{content:'';position:absolute;left:0;right:.1em;bottom:-.14em;height:.2em;pointer-events:none}.gold-under:before{background:linear-gradient(#f0c842,#f0c842) 0 0/100% 28% no-repeat}.gold-under:after{background:linear-gradient(#f0c842,#f0c842) 8% 100%/86% 28% no-repeat}
.hero-lead{font-size:clamp(17px,1.6vw,22px);line-height:1.6;color:var(--muted);max-width:1000px;margin:0 0 42px}
.hero-lead .blue{font-weight:650}
.route-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px;margin:0}
.route-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-height:156px;padding:30px 26px;border:1.5px solid #b3c6d3;border-radius:20px;background:var(--paper);text-align:center;transition:transform .18s,box-shadow .18s,border-color .18s}
.route-card h2{font-size:clamp(22px,2vw,27px);line-height:1.15;margin:0;color:var(--blue);letter-spacing:-.04em}
.route-card p{font-size:16px;line-height:1.5;margin:0;color:var(--text);max-width:34ch}
.route-card:hover{transform:translateY(-3px);border-color:var(--blue);box-shadow:0 14px 34px #326ba21c}
.route-card:focus-visible{border-color:var(--blue)}
.route-card{position:relative}
.explore-link{text-align:center;margin:36px 0 0;font-size:clamp(17px,1.5vw,21px)}
.explore-link a{color:var(--blue);font-weight:750;text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:2px}
.explore-link a span{display:inline-block;margin-left:10px;color:var(--text);text-decoration:none}
.nav-links a[aria-current=page]{color:var(--blue);box-shadow:inset 0 -3px 0 var(--yellow)}
.page-hero{padding-block:var(--space-hero) 0;display:grid;gap:18px;max-width:1000px}
.page-hero .eyebrow{margin-bottom:0}
.page-hero h1{font-size:clamp(30px,4vw,54px);line-height:1.12;letter-spacing:-.045em;margin:0;text-wrap:balance}
.page-hero .lead{font-size:clamp(17px,1.5vw,21px);color:var(--muted);line-height:1.6;margin:0;max-width:62ch}
.page-hero .lead strong{color:var(--text)}
.page-hero .actions{margin-top:10px;gap:18px}
.callout{display:inline-flex;align-items:center;gap:10px;justify-self:start;background:#fff6cc;border:1px solid #f0c842;border-radius:99px;padding:10px 18px;font-weight:800;font-size:16px;margin:0}
.callout span{color:#9a6b00}

.steps-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;counter-reset:s;margin-bottom:40px}
.steps-grid>div{counter-increment:s;background:var(--paper);border:1px solid #cddbe3;border-radius:16px;padding:22px 22px 20px}
.steps-grid>div:before{content:counter(s);display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--blue);color:#fff;font-weight:800;font-size:13px;margin-bottom:12px}
.steps-grid h3{font-size:18px;margin:0 0 6px;letter-spacing:-.03em}
.steps-grid p{font-size:14px;color:var(--muted);margin:0;line-height:1.6}
.pain-section{background:#eaf3f8;border-block:1px solid #d7e5ed;width:auto;max-width:none;padding-inline:max(48px,calc((100% - 1260px)/2))}
.pain-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.pain-card{background:var(--paper);border:1px solid #cddbe3;border-radius:20px;padding:28px 28px 26px;display:flex;flex-direction:column;gap:12px;box-shadow:0 12px 36px #326ba211}
.pain-card h3{font-size:24px;margin:0;letter-spacing:-.04em;line-height:1.15}
.pain-card p{margin:0;font-size:15px;color:var(--muted);line-height:1.6}
.pain-card p strong{color:var(--text)}
.pain-card .button{align-self:start;gap:12px}
.pain-card .button.primary{margin-top:auto}
.pain-card .also{font-size:12px!important}
.level-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.level-card{background:var(--paper);border:1px solid #cddbe3;border-radius:20px;padding:28px 30px}
.level-card h3{font-size:26px;margin:0 0 6px;letter-spacing:-.04em}
.level-card ul{margin:14px 0 0;padding:0;list-style:none;display:grid;gap:10px}
.level-card li{font-size:14px;line-height:1.6;color:var(--muted);padding-left:18px;position:relative}
.level-card li:before{content:'';position:absolute;left:0;top:.6em;width:8px;height:8px;border-radius:50%;background:var(--blue)}
.level-card li strong{color:var(--text)}
.level-card .quiet{margin:12px 0 0}
.reassure{background:#eef4f8;border:1px solid #d3e2ec;border-radius:22px;padding:36px 40px;display:grid;grid-template-columns:1fr 1fr;gap:36px;align-items:start}
.reassure h3{font-size:22px;margin:0 0 8px;letter-spacing:-.035em}
.reassure p{font-size:15px;color:var(--muted);margin:0 0 10px;line-height:1.65}
.reassure p a:not(.button){color:var(--blue);font-weight:700}
.reassure .quiet a{color:var(--blue)}
.mini-lessons{display:grid;grid-template-columns:1fr 1.1fr;gap:44px;align-items:center;margin-bottom:56px}
.mini-lessons h3{font-size:clamp(26px,2.6vw,36px);margin:0 0 12px;letter-spacing:-.045em;line-height:1.1}
.mini-lessons p{font-size:16px;color:var(--muted);margin:0 0 10px}
.two-paths{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.method-strip{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:0 0 30px;font-family:var(--display);font-weight:700;font-size:15px}
.method-strip span{background:var(--paper);border:1px solid #cddbe3;border-radius:99px;padding:10px 16px}
.method-strip i{font-style:normal;color:var(--blue);font-weight:600;margin-left:6px}
@media(max-width:1100px){.steps-grid{grid-template-columns:1fr 1fr}}
@media(max-width:900px){.route-cards,.pain-grid,.level-grid,.reassure,.mini-lessons,.two-paths{grid-template-columns:1fr}.pain-section{padding-inline:24px}.page-hero .actions .button{width:100%}}
@media(max-width:540px){.steps-grid{grid-template-columns:1fr}.route-card{min-height:0;padding:24px 20px}.reassure{padding:26px 22px}.pain-card{padding:22px}}

/* Homepage slogan (Landing page update deck slides 11 and 12, 24 Oct 2026). CSS only, so it plays once on
   arrival and never on scroll, hover or resize. Each word fades in where it already sits (opacity keeps its
   space, so nothing reflows); a pause after the first sentence; then the two gold lines under "more" slide
   in from a short way left, one after the other; then the three audience cards' borders brighten once
   together and settle. About two seconds in all. The cards are clickable throughout. The reduced-motion
   rule near the top of this file (animation:none) shows the finished slogan and plain borders at once. */
@keyframes slogan-word{from{opacity:0}to{opacity:1}}
@keyframes slogan-line{from{opacity:0;transform:translateX(-.45em)}to{opacity:1;transform:none}}
@keyframes route-lift{0%,100%{opacity:0}40%{opacity:1}}
.slogan .sw{animation:slogan-word .26s ease-out both}
.slogan .w1{animation-delay:.05s}.slogan .w2{animation-delay:.2s}
.slogan .w3{animation-delay:.68s}.slogan .w4{animation-delay:.82s}.slogan .w5{animation-delay:.96s}.slogan .w6{animation-delay:1.1s}.slogan .w7{animation-delay:1.24s}
.slogan .gold-under:before{animation:slogan-line .3s ease-out 1.5s both}
.slogan .gold-under:after{animation:slogan-line .3s ease-out 1.64s both}
.hero-routes .route-card:after{content:'';position:absolute;inset:-1.5px;border:1.5px solid #4b97f0;border-radius:inherit;opacity:0;pointer-events:none;animation:route-lift 1.1s ease-in-out 2s both}
.hero-routes .route-card:hover:after,.hero-routes .route-card:focus-visible:after{visibility:hidden}

/* Teachers & schools page (Landing page update deck slides 14 and 15, 24 Oct 2026). Slide 14: the headline uses the
   homepage's word-by-word reveal and the two gold lines, paced for the longer sentence: about 2.7 seconds in all. */
.slogan-long .w3{animation-delay:.7s}.slogan-long .w4{animation-delay:.87s}.slogan-long .w5{animation-delay:1.04s}.slogan-long .w6{animation-delay:1.21s}
.slogan-long .w7{animation-delay:1.38s}.slogan-long .w8{animation-delay:1.55s}.slogan-long .w9{animation-delay:1.72s}.slogan-long .w10{animation-delay:1.89s}
.slogan-long .gold-under:before{animation-delay:2.2s}
.slogan-long .gold-under:after{animation-delay:2.35s}
/* Slide 15: the scope line the old paragraph carried, then Nick's note and his signature. */
.page-hero .scope-line{margin:0;font-size:15px;font-weight:700;color:var(--muted);letter-spacing:.01em}
.teacher-note{display:grid;gap:14px;max-width:66ch;font-size:clamp(17px,1.45vw,20px);line-height:1.6;color:var(--text);overflow-x:clip}
.teacher-note p{margin:0}
.teacher-note .signature{font-weight:800;font-size:16px;color:var(--text)}
/* Slide 15: "enjoyable", then "better results", each as one unit from a little to its right in three shrinking
   bounces, after the headline; site.js plays them one at a time (a second after the first settles, and only on
   screen). The space is kept (opacity only). If the script never runs, they simply appear after six seconds. */
.bounce-blue{display:inline-block;color:var(--blue);opacity:0;animation:bounce-fallback 0s 6s forwards}
.bounce-blue.is-playing{opacity:1;animation:blue-bounce 1s linear 1 both}
.bounce-blue.is-done{opacity:1;animation:none;transform:none}
@keyframes bounce-fallback{to{opacity:1}}
@keyframes blue-bounce{
  0%{opacity:0;transform:translate(26px,0);animation-timing-function:cubic-bezier(.3,.6,.5,1)}
  6%{opacity:1}
  17%{transform:translate(21px,-12px);animation-timing-function:cubic-bezier(.5,0,.7,.4)}
  34%{opacity:1;transform:translate(13px,0);animation-timing-function:cubic-bezier(.3,.6,.5,1)}
  48%{transform:translate(8px,-6px);animation-timing-function:cubic-bezier(.5,0,.7,.4)}
  62%{transform:translate(4px,0);animation-timing-function:cubic-bezier(.3,.6,.5,1)}
  73%{transform:translate(2px,-3px);animation-timing-function:cubic-bezier(.5,0,.7,.4)}
  84%,100%{opacity:1;transform:translate(0,0)}
}
@media(prefers-reduced-motion:reduce){.bounce-blue,.bounce-blue.is-playing{opacity:1;transform:none}}
/* site.js has taken charge: no fallback, the word waits its turn. */
.bounce-blue.is-waiting{animation:none;opacity:0}
@media(prefers-reduced-motion:reduce){.bounce-blue.is-waiting{opacity:1}}
.keep-together{white-space:nowrap}
/* Homepage introduction = Landing page update deck slide 13, Nick's text as written (24 Oct 2026): the main paragraph in
   the text colour, the "Created by" line quieter, the last two lines blue; kept tight so the cards stay close below. */
.hero-lead-long{display:grid;gap:10px;font-size:clamp(16px,1.45vw,20px);line-height:1.55;max-width:900px}
.hero-lead-long p{margin:0}
.hero-lead-long .lead-main{color:var(--text)}
/* Teachers & schools page, Landing page - snagging deck slides 59 to 68 (25 Oct 2026). */
/* Slide 108 (27 Oct, evening): the demo is back to its three management tabs (the base rule above, three across at every width). */
.page-hero .actions .explore-route{font-size:15px;font-weight:800;color:var(--blue);text-decoration:underline;text-underline-offset:5px}
.explore-link-quiet{margin-top:18px!important;font-size:14px}
.explore-link-quiet a{font-weight:800;color:var(--blue);text-decoration:underline;text-underline-offset:4px}
.explore-side{align-self:center}
.explore-cards{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.explore-card{display:flex;align-items:center;gap:14px;min-height:84px;padding:16px 20px;border:1.5px solid #ccdfe9;border-radius:14px;background:#f4f9fc;text-align:left;font-family:var(--display);transition:transform .18s,background .18s,border-color .18s}
.explore-card strong{font-size:21px;font-weight:750}
.explore-card b{margin-left:auto;color:#5e7e96;font-size:18px}
.explore-card:hover,.explore-card:focus-visible{transform:translateY(-2px);border-color:var(--blue);background:var(--paper)}
.explore-card[aria-expanded=true]{background:var(--paper);border-color:var(--blue);box-shadow:4px 4px 0 #c2dcebd1}
.explore-overview{grid-column:1/-1;border-top:1px solid #dfe8ed;padding-top:24px}
.explore-title{font-family:var(--display);font-size:22px;margin:0 0 16px}
@media(max-width:540px){.explore-cards{grid-template-columns:1fr}}
.more-ways{margin-top:34px;padding:30px 40px 34px;border:1px solid #dfe8ed;border-radius:20px;background:#f6f9fb;max-width:900px}
.more-ways h3{font-family:var(--display);font-size:26px;margin:0 0 18px}
.more-ways h4{font-family:var(--display);font-size:18px;margin:0 0 6px}
.more-ways div+div{margin-top:20px}
.more-ways p{margin:0;font-size:16px;line-height:1.65;color:var(--text);text-align:left}
@media(max-width:540px){.more-ways{padding:22px 18px 26px}}
/* Slide 66: the two introductory paragraphs as wide as the headline, left-aligned, never justified. */
.teacher-note{max-width:none}
/* Landing page update deck slide 16 (25 Oct 2026): the homepage introduction runs the full width of the three audience
   cards (the shared content container), left-aligned, static. */
.hero-lead-long{max-width:none}

/* Pupil dashboard showcase (Landing page snagging deck slide 69, 25 Oct 2026): the app's dark
   pupil dashboard with sample data, on the teachers' page and in the demo window. */
.pupil-dash{margin-top:40px}
.pupil-dash h3{font-family:var(--display);font-size:clamp(24px,3vw,32px);margin:0 0 12px}
.pupil-dash>p{max-width:900px;font-size:17px;line-height:1.65;margin:0 0 22px}
.pd-shot{margin:0;position:relative}
.pd-shot figcaption{margin:0 0 10px}
.pd-sample{display:inline-block;padding:5px 12px;border-radius:999px;background:#fff7e0;border:1px solid #e9c46a;color:#7a4b00;font-size:13px;font-weight:700}
.pupil-dash>.pd-cta{max-width:none;margin:24px 0 0;text-align:center}
.pd-frame{background:radial-gradient(ellipse at 50% 0%,#24272d 0%,#181a1e 60%);border:1px solid #2c3036;border-radius:20px;padding:22px;color:#e2e8f0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;box-shadow:0 18px 40px #0f172a33}
.pd-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}
.pd-hello{display:flex;align-items:center;gap:10px;font-size:22px;color:#fff}
.pd-hello img{border-radius:50%;background:#2a2e35}
.pd-account{display:flex;flex-wrap:wrap;gap:8px;margin-left:auto}
.pd-levels,.pd-points{border-radius:12px;padding:8px 12px;font-size:14px;line-height:1.35}
.pd-levels{border:1px solid #f59e0b80;background:#451a0340;color:#e2e8f0}.pd-levels b{color:#fff}.pd-levels em{font-style:normal;color:#fcd34d;font-weight:600}
.pd-points{border:1px solid #3a3f47;background:#1f2228}.pd-points b{display:block;color:#fff}.pd-points em{font-style:normal;color:#7dd3fc}.pd-points small{display:block;color:#c2c7cf;font-size:12px}
.pd-lang{display:inline-flex;gap:4px;padding:4px;border-radius:12px;background:#1f2228;border:1px solid #2c3036;margin-bottom:14px}
.pd-lang span{padding:7px 16px;border-radius:9px;font-size:14px;font-weight:600;color:#c2c7cf}.pd-lang span.on{background:#0284c7;color:#fff}
.pd-dials{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.pd-dial{--acc:#5cb8ff;position:relative;display:flex;flex-direction:column;padding:16px 14px 12px;border:1px solid #405770;border-radius:22px;background:linear-gradient(155deg,#203348 0%,#132235 45%,#0c1726 100%);box-shadow:inset 0 1px 0 #8daac13d;color:#edf6ff;overflow:hidden;transition:box-shadow .25s,border-color .25s}
.pd-dial::before{content:"";position:absolute;top:0;left:22%;right:22%;height:2px;background:var(--acc);box-shadow:0 0 18px var(--acc)}
.pd-vocabulary{--acc:#30d158}.pd-verbs{--acc:#5cb8ff}.pd-writing{--acc:#eeff41}.pd-speaking{--acc:#ff61cf}
.pd-dial-title{position:relative;margin:0;padding:3px 3px 13px;text-align:center;font-size:18px;font-weight:750;color:var(--acc)}
.pd-dial-title span{position:absolute;right:3px;color:#a8c5df;font-size:17px}
.pd-instrument{display:block;width:100%;max-width:300px;margin:0 auto;overflow:visible}
.pd-seg{stroke:#2d5070}.pd-seg.lit{filter:drop-shadow(0 0 3px var(--acc))}
.pd-needle{filter:drop-shadow(0 2px 2px #0009)}
/* Avatars/Brain points snagging deck slide 24 (28 Oct 2026): the gold brain coin stands for Brain Points on the sample dashboard. */
.pd-coin{width:18px;height:18px;vertical-align:-3px;margin-right:5px}
.pd-reading{fill:#ffffff;font-family:'MLB Plain Digits',ui-monospace,SFMono-Regular,Menlo,monospace;font-variant-numeric:tabular-nums;letter-spacing:-2px}
.pd-excellence{margin:4px 0 0;padding:6px 3px;border:1px solid #ffd36a40;border-radius:6px;background:#ffd36a0a;color:#ffe3a0;font-size:10px;font-weight:700;text-align:center}
.pd-sub{flex:1;margin:6px 4px 12px;color:#d3deea;font-size:12.5px;line-height:1.6;text-align:center}
.pd-practise{display:flex;align-items:center;justify-content:center;width:92%;margin:14px auto 0;min-height:44px;border-radius:12px;background:var(--acc);color:#08121e;font-size:15px;font-weight:800;text-align:center}
.pd-progress{display:block;margin:8px auto 2px;color:#cfe3f5;font-size:13px;font-weight:600;text-decoration:underline;text-underline-offset:3px}
.pd-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:16px}
.pd-card{display:flex;flex-direction:column;border:1px solid #3a3f47;border-radius:18px;background:#1f2228cc;padding:16px;transition:box-shadow .25s,border-color .25s}
.pd-card h4{margin:0 0 8px;color:#fff;font-size:18px;font-weight:700;font-family:inherit}
.pd-card p{margin:4px 0;font-size:14px;line-height:1.5;color:#e2e8f0}
.pd-muted{color:#c2c7cf!important;font-size:14px}.pd-muted-b{color:#c2c7cf;font-weight:600}.pd-small{color:#c2c7cf!important;font-size:12px!important}
.pd-ring{display:flex;align-items:center;gap:12px;margin-bottom:6px}.pd-ring b{display:block;color:#fff;font-size:14px}.pd-ring small{color:#c2c7cf;font-size:12px}
.pd-counts{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:8px 0}
.pd-counts div{border-radius:12px;background:#2a2e35;padding:8px 12px}.pd-counts b{display:block;color:#fff;font-size:24px}.pd-counts small{color:#c2c7cf;font-size:12px}
.pd-button{display:flex;align-items:center;justify-content:center;min-height:44px;margin-top:10px;border-radius:12px;background:#0ea5e9;color:#020617;font-weight:700}
.pd-link{margin-top:auto;padding-top:10px;color:#7dd3fc;font-size:14px;font-weight:600}
.pd-streak{color:#fcd34d!important;font-size:22px!important;font-weight:700}
.pd-days{display:flex;gap:6px;list-style:none;margin:10px 0;padding:0}
.pd-days li{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:700;background:#2a2e35;color:#c2c7cf}.pd-days li.on{background:#fbbf24;color:#0f172a}
.pd-focus{border-color:#fbbf24!important;box-shadow:0 0 0 3px #fbbf24,0 0 26px #fbbf2466!important}
.pd-screen{padding:0;background:none}
.pd-screen .pd-frame{border-radius:14px}
@media(max-width:900px){.pd-dials{grid-template-columns:repeat(2,minmax(0,1fr))}.pd-cards{grid-template-columns:1fr}}
@media(max-width:540px){.pd-frame{padding:12px}.pd-dial{padding:12px 8px 8px;border-radius:16px}.pd-dial-title{font-size:14px;padding:3px 2px 9px}.pd-dial-title span{display:none}.pd-sub{font-size:11px;margin:7px 2px 10px}.pd-practise{width:100%;font-size:13px}.pd-hello{font-size:18px}.pd-account{margin-left:0}}
@media(prefers-reduced-motion:reduce){.pd-dial,.pd-card{transition:none}}

/* Landing page snagging deck slides 70 to 78 (26 Oct 2026). */
/* 70: the creator credit in the opening paragraph's charcoal, two phrases bold (homepage) */
.hero-lead-long .lead-credit{color:var(--text)}
.hero-lead-long .lead-credit strong{font-weight:800}
/* 71: the four Explore cards: a clear 2px blue edge, blue arrows, MLB's own subject icons, no movement on hover */
.explore-card{border:2px solid var(--blue);background:#eef6fc;box-sizing:border-box;transition:background-color .15s,border-color .15s,box-shadow .15s}
.explore-card b{color:var(--blue)}
.explore-card:hover,.explore-card:focus-visible{transform:none;background:#dcecf8;border-color:#04498c;box-shadow:inset 0 0 0 1px #04498c}
.explore-card:focus-visible{outline:3px solid #f6d965;outline-offset:3px}
.explore-card[aria-expanded=true]{background:var(--paper);border-color:#04498c}
.explore-card .subject-icon{display:grid;place-items:center;width:30px;height:30px;flex:0 0 30px}
.cat-vocabulary .subject-icon{color:#008932}.cat-verbs .subject-icon{color:#1E6EF4}.cat-writing .subject-icon{color:#807000}.cat-speaking .subject-icon{color:#C6007E}
/* 72: the dashboard introduction across the page; the dark preview about 18% smaller and centred on a desktop */
.pupil-dash>p{max-width:none}
@media(min-width:900px){.pd-shot{max-width:82%;margin-inline:auto}.pd-shot .pd-frame{zoom:.82}}
/* 74: classroom fun leads, its game playing in place */

.fun-intro h2{font-size:clamp(34px,4.2vw,56px);line-height:1.05;letter-spacing:-.05em;margin:0 0 14px}
.fun-intro p{font-size:clamp(17px,1.5vw,20px);max-width:none;margin:0 0 26px;color:var(--text)}
/* 74: the three practical benefits, unnumbered, with darker text */
.benefit-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:20px}
.benefit-grid>div{background:var(--paper);border:1px solid #cddbe3;border-radius:16px;padding:22px 22px 20px}
.benefit-grid h3{font-size:19px;margin:0 0 8px;letter-spacing:-.03em}
.benefit-grid p{font-size:15px;color:#33495b;margin:0;line-height:1.6}
/* 75: a readable heading for the mistakes section; numbered boxes kept, darker text */
.mechanism-heading{font-size:clamp(34px,4.2vw,56px)!important;line-height:1.05}
.mechanism-line{margin:12px 0 0;font-family:var(--display);font-size:clamp(20px,2vw,26px);font-weight:750;color:var(--blue)}
.mechanism-section .steps-grid p{font-size:15px;color:#33495b}
/* 78: practical information collapsed by default; the final invitation compact, no starburst */
.practical-info{margin-top:var(--space-section)}
.info-panel{border:1px solid #dce4d2;border-radius:18px;background:#f0f4e9}
.info-panel summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:20px 26px;font-family:var(--display);font-size:20px;font-weight:750;min-height:44px}
.info-panel summary::-webkit-details-marker{display:none}
.info-panel summary:focus-visible{outline:3px solid var(--blue);outline-offset:3px;border-radius:18px}
.info-chevron{transition:transform .2s;color:var(--blue)}
.info-panel[open] .info-chevron{transform:rotate(180deg)}
.info-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;padding:0 26px 26px}
.info-grid h3{font-size:16px;margin:0 0 6px}
.info-grid p{margin:0;font-size:14.5px;line-height:1.6;color:#33495b}
.info-grid a{color:var(--blue);text-decoration:underline;text-underline-offset:3px}
.invitation-compact{padding:36px 48px;grid-template-columns:1fr 170px}
.invitation-compact h2{font-size:clamp(34px,4.2vw,54px);margin-bottom:14px}
.invitation-compact>img,.invitation-compact>.invitation-brainy{width:160px;transform:rotate(5deg)}
.invitation-compact .invitation-small{font-size:13px!important;margin-top:16px}
@media(max-width:1100px){.info-grid{grid-template-columns:1fr 1fr}}
@media(max-width:900px){.benefit-grid{grid-template-columns:1fr}}
@media(max-width:540px){.info-grid{grid-template-columns:1fr}.invitation-compact{padding:26px 22px;grid-template-columns:1fr 90px}.invitation-compact>img,.invitation-compact>.invitation-brainy{width:90px}.info-panel summary{padding:16px 18px;font-size:18px}}
@media(prefers-reduced-motion:reduce){.explore-card,.info-chevron{transition:none}}
/* 76/77: each area's destination in the fourth tab */
.area-intro{max-width:none;margin:0 0 26px}
.area-problem{font-family:var(--display);font-size:clamp(24px,2.6vw,32px);line-height:1.15;letter-spacing:-.04em;margin:0 0 12px}
.area-para{font-size:16.5px;line-height:1.65;color:var(--text);margin:0 0 12px}
.area-what{font-size:15.5px;line-height:1.6;color:#33495b;margin:0 0 6px}
.area-what strong{color:var(--text)}
.area-demos{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0 0}
#explore-overview .hub-tiles span{color:#33495b;font-size:14.5px}
#explore-overview .hub-copy .quiet{color:#46606f;font-size:14px}
/* 74: the classroom race demo, the app's dark whiteboard board in place on the page */
.race-demo{position:relative}
.rd-board{position:relative;background:radial-gradient(ellipse at 50% 0%,#0c344c 0,transparent 65%),#020617;color:#f1f5f9;border-radius:20px;padding:clamp(16px,2.4vw,30px);font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;box-shadow:0 18px 40px #0f172a33}
.rd-top{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:10px}
.rd-label{font-size:12px;color:#94a3b8}
.rd-controls label{display:inline-flex;gap:8px;align-items:center;min-height:40px;border:1px solid #475569;border-radius:10px;padding:6px 12px;font-size:13px;background:#0f172a;color:#e2e8f0}
.rd-header h3{font-size:clamp(24px,3vw,40px);font-weight:850;letter-spacing:-.04em;margin:6px 0;color:#fff;font-family:inherit}
.rd-header p{color:#cbd5e1;margin:0 0 14px}
.rd-eyebrow{color:#7dd3fc;font-size:12px;font-weight:800;letter-spacing:.13em}
.rd-status{display:flex;gap:16px;flex-wrap:wrap;padding:12px 16px;border:1px solid #334155;background:#0f172a;border-radius:14px;margin-bottom:16px;color:#cbd5e1;font-size:14px}
.rd-status strong{color:#7dd3fc}
.rd-key{display:flex;justify-content:space-between;color:#7dd3fc;font-size:11px;font-weight:800;letter-spacing:.09em;margin:0 90px 10px 170px}
.rd-lanes{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}
.rd-lane{display:grid;grid-template-columns:150px minmax(0,1fr) 80px;gap:18px;align-items:center;padding:12px 18px;border-radius:14px;background:#0f172ae0;border:1px solid #26394e;min-height:76px}
.rd-lane.submitted{border-color:#0e7490}
.rd-name strong{font-size:16px;font-weight:800;color:#fff}
.rd-name span{display:block;color:#94a3b8;font-size:12px;margin-top:3px}
.rd-track{position:relative;height:16px;border-radius:20px;margin:10px 22px;background:repeating-linear-gradient(90deg,#33415580 0,#33415580 2px,transparent 2px,transparent 25%),#1e293b}
.rd-fill{height:100%;width:0;background:linear-gradient(90deg,#0369a1,#38bdf8);border-radius:20px;transition:width .5s ease-out}
.rd-runner{position:absolute;top:50%;left:0;transform:translate(-50%,-50%);width:50px;height:50px;filter:drop-shadow(0 2px 8px #020617);transition:left .5s ease-out}
.rd-runner img{width:50px;height:50px;object-fit:contain}
.rd-score{text-align:right;white-space:nowrap}
.rd-score strong{font-size:22px;font-weight:850;color:#fff}
.rd-score small{font-size:13px;font-weight:500;color:#94a3b8}
.rd-star{color:#fbbf24;margin-left:5px;font-size:18px}
.rd-foot{color:#94a3b8;font-size:12.5px;line-height:1.6;margin:14px 0 0}
.rd-play-layer{position:absolute;inset:0;display:grid;place-items:center;background:#02061773;border-radius:20px}
.rd-play-layer[hidden]{display:none}
.rd-play{font-size:18px;padding:18px 28px;box-shadow:0 10px 30px #0008}
.rd-actions{display:flex;gap:10px;justify-content:center;margin-top:14px}
.rd-actions [hidden]{display:none}
.rd-reduce .rd-fill,.rd-reduce .rd-runner{transition:none}
@media(max-width:700px){.rd-lane{grid-template-columns:minmax(0,1fr) 70px;gap:8px;padding:12px}.rd-track{grid-column:1/-1;grid-row:2;margin:16px 22px}.rd-key{margin:0 0 8px}.rd-key span:nth-child(2){display:none}}
/* Verb functions update deck slide 19 (29 Oct 2026): the Brain Race's shared ending, shortened and labelled so. The
   finish row and podium copy the app's RaceFinishBar.css and ClassGameFinish.css; the two teacher buttons are pictures. */
.rd-short{color:#fde68a;font-weight:800}
.rd-note{margin:0 0 12px;padding:8px 12px;border-left:3px solid #fbbf24;background:#fbbf2414;border-radius:6px;color:#fde68a;font-size:13px;line-height:1.45;min-height:2.9em}
.rd-time{display:block;font-size:12px;color:#94a3b8}
.rd-finish{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;margin:0 0 14px}
.rd-finish[hidden],.rd-race[hidden],.rd-podium-wrap[hidden],.rd-count-wrap[hidden],.rd-time[hidden]{display:none}
.rd-race-time{font-size:18px;font-weight:700;color:#cbd5e1;font-variant-numeric:tabular-nums}
.rd-count-wrap{display:flex;flex-direction:column;align-items:center;gap:2px}
.rd-count{font-size:clamp(48px,7vw,84px);line-height:1;font-weight:800;color:#f8fafc;font-variant-numeric:tabular-nums;letter-spacing:.02em}
.rd-count.rd-ten{color:#fb923c;text-shadow:0 0 18px rgba(239,68,68,.55);animation:rd-final-pulse 1s ease-out infinite}
@keyframes rd-final-pulse{0%{opacity:1}12%{opacity:.72}24%{opacity:1}36%{opacity:.8}100%{opacity:1}}
.rd-count-note{font-size:11px;color:#fde68a;letter-spacing:.02em}
.rd-finish-actions{grid-column:3;justify-self:end;display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.rd-btn{display:inline-flex;align-items:center;min-height:44px;padding:8px 16px;border-radius:12px;font-weight:700;font-size:15px;cursor:default;user-select:none}
.rd-btn-final{background:#f59e0b;color:#111827}
.rd-btn-final.rd-btn-running{background:#1e293b;color:#fbbf24;border:2px solid #f59e0b}
.rd-btn-stop{background:transparent;color:#e2e8f0;border:2px solid #64748b}
.rd-cf{position:relative;overflow:hidden;border:1px solid #29445c;border-radius:20px;background:radial-gradient(ellipse at 50% 36%,#16445d80,transparent 60%),#0f172a;padding:clamp(18px,2.6vw,32px);text-align:center;color:#f1f5f9}
.rd-cf-kicker{color:#7dd3fc;font-size:12px;font-weight:800;letter-spacing:.2em;margin:0 0 6px}
.rd-cf-head h4{font-size:clamp(26px,3.4vw,44px);line-height:1.12;letter-spacing:-.04em;font-weight:850;margin:0;color:#fff;font-family:inherit}
.rd-cf-head p:last-child{color:#cbd5e1;margin:10px 0 0}
.rd-cf-podium{display:flex;align-items:flex-end;justify-content:center;gap:clamp(8px,2vw,24px);max-width:760px;margin:20px auto 0}
.rd-place{flex:1;min-width:0;max-width:240px;--plinth:#334155;--medal:#cbd5e1}
.rd-place-1{order:2;--plinth:#70561c;--medal:#fbbf24}
.rd-place-2{order:1}
.rd-place-3{order:3;--plinth:#683f28;--medal:#fdba74}
.rd-fp{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:0;padding-bottom:10px}
.rd-fp strong{font-size:clamp(13px,1.5vw,18px);line-height:1.15;overflow-wrap:anywhere;font-weight:750;color:#fff}
.rd-fa{position:relative;width:clamp(54px,7vw,80px);transform-origin:50% 100%;filter:drop-shadow(0 10px 12px #02061790)}
.rd-place-1 .rd-fa{width:clamp(66px,9vw,100px)}
.rd-fa img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:contain}
.rd-fa>span{position:absolute;bottom:0;right:-3px;min-width:24px;border:2px solid #0f172a;border-radius:100px;background:#e0f2fe;color:#0c4a6e;font-size:12px;font-weight:900;padding:2px 5px}
.rd-plinth{min-height:96px;border-radius:12px 12px 4px 4px;background:linear-gradient(145deg,#ffffff0c,transparent),var(--plinth);border:1px solid #ffffff25;border-top:4px solid var(--medal);display:flex;flex-direction:column;align-items:center;padding:10px 6px 16px;gap:4px}
.rd-place-1 .rd-plinth{min-height:150px}
.rd-place-2 .rd-plinth{min-height:120px}
.rd-medal{color:var(--medal);font-size:clamp(28px,3.6vw,48px);line-height:1;font-weight:900}
.rd-plinth strong{font-size:clamp(13px,1.4vw,17px)}
.rd-plinth span:last-child{font-size:clamp(12px,1.3vw,15px);color:#f1f5f9}
.rd-cf-class{border-top:1px solid #ffffff12;margin:20px auto 0;padding-top:16px}
.rd-cf-class h5{font-size:clamp(15px,1.7vw,20px);font-weight:750;margin:0 0 12px;color:#bae6fd;font-family:inherit}
.rd-crowd{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 22px;list-style:none;margin:0;padding:0}
.rd-crowd li{width:96px;min-width:0}
.rd-crowd .rd-fa{width:60px}
.rd-crowd .rd-fp{padding-bottom:4px}
.rd-crowd .rd-fp strong{font-size:14px}
.rd-crowd-place{font-size:12px;color:#fde68a}
.rd-cf-foot{color:#94a3b8;font-size:12px;line-height:1.5;margin:18px auto 0;max-width:640px}
@keyframes rd-sway{0%,100%{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}
@media(prefers-reduced-motion:no-preference){.rd-fa{animation:rd-sway 3s ease-in-out infinite}.rd-place-1 .rd-fa{animation-delay:-.4s}.rd-place-3 .rd-fa{animation-delay:-1.1s}.rd-crowd li:nth-child(2) .rd-fa{animation-delay:-.8s}.rd-crowd li:nth-child(3) .rd-fa{animation-delay:-1.6s}}
.rd-paused .rd-count.rd-ten,.rd-paused .rd-fa{animation-play-state:paused}
.rd-reduce .rd-count.rd-ten,.rd-reduce .rd-fa{animation:none}
@media(prefers-reduced-motion:reduce){.rd-count.rd-ten,.rd-fa{animation:none}}
@media(max-width:700px){.rd-note{min-height:4.4em}.rd-finish{grid-template-columns:1fr;gap:10px;justify-items:center}.rd-finish-actions{grid-column:auto;justify-self:center;justify-content:center}.rd-race-time{text-align:center}.rd-count-wrap{order:-1}.rd-cf-podium{gap:6px}.rd-crowd li{width:80px}.rd-crowd .rd-fa{width:50px}}
/* 1 Nov 2026: the Brain Race explainer (narrated). The lobby copies the app's LiveRaceBoard.css .race-lobby; the name
   under each brain and the 64px runner its .race-attached-name; the metal plinths ClassGameFinish.css (30 Oct). The
   teacher's lane sits at the top (the app puts it last). .rd-spot rings what the narrator is talking about. */
.rd-board{overflow:hidden}
.rd-controls{display:flex;gap:8px;flex-wrap:wrap}
.rd-sound{display:inline-flex;gap:6px;align-items:center;min-height:40px;border:1px solid #475569;border-radius:10px;padding:6px 12px;font:inherit;font-size:13px;background:#0f172a;color:#e2e8f0;cursor:pointer}
.rd-sound[aria-pressed="false"]{color:#94a3b8;border-style:dashed}
.rd-sound:focus-visible{outline:3px solid #7dd3fc;outline-offset:2px}
.rd-note{font-size:14.5px;transition:opacity .4s}
.rd-note-quiet{opacity:.55}
.rd-lobby[hidden],.rd-live[hidden],.rd-lobby-grid li[hidden]{display:none}
.rd-lobby-head{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;align-items:flex-start;margin-bottom:18px}
.rd-lobby-head h4{font-size:clamp(22px,3vw,34px);font-weight:850;letter-spacing:-.03em;margin:0 0 6px;color:#fff;font-family:inherit}
.rd-lobby-head p{color:#cbd5e1;margin:0}
.rd-lobby-count{margin:12px 0 !important}
.rd-lobby-count strong{color:#7dd3fc;font-size:30px}
.rd-start{display:inline-flex;align-items:center;min-height:52px;padding:10px 28px;border-radius:14px;background:#059669;color:#fff;font-weight:850;font-size:18px;user-select:none;transition:transform .15s}
.rd-start.rd-pressed{transform:scale(.94);background:#047857}
.rd-qr{background:#fff;border-radius:14px;padding:10px 14px;color:#0f172a;text-align:center;width:170px}
.rd-qr p{margin:0}
.rd-qr-class{font-size:12px;font-weight:800;color:#475569}
.rd-qr-code{font-size:22px;font-weight:900;letter-spacing:.12em;color:#0f172a !important}
.rd-qr img{display:block;margin:6px auto;width:110px;height:110px}
.rd-qr-hint{font-size:11px;color:#475569 !important}
.rd-lobby-grid{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:12px}
.rd-lobby-grid li{display:flex;flex-direction:column;align-items:center;gap:5px;padding:12px 8px;border:1px solid #26394e;border-radius:14px;background:#0f172ae0;text-align:center;animation:rd-pop .35s ease-out}
.rd-lobby-grid img{width:64px;height:64px;object-fit:contain}
.rd-lobby-grid strong{font-size:14px;color:#fff;overflow-wrap:anywhere}
.rd-lobby-grid span{color:#6ee7b7;font-size:12px;font-weight:700}
@keyframes rd-pop{from{transform:scale(.6);opacity:0}to{transform:none;opacity:1}}
.rd-live .rd-lane{min-height:58px;padding:6px 16px}
.rd-live .rd-lanes{gap:7px}
.rd-live .rd-track{margin:4px 22px 22px}
.rd-runner{width:44px;height:44px}
.rd-runner img{width:44px;height:44px}
.rd-live .rd-status{padding:8px 14px;margin-bottom:10px}
.rd-live .rd-finish{margin-bottom:8px}
.rd-live .rd-count{font-size:clamp(44px,5.6vw,68px)}
.rd-live .rd-foot{margin-top:10px;font-size:12px}
.rd-header h3{font-size:clamp(22px,2.6vw,34px)}
.rd-header p{margin-bottom:10px}
.rd-header h3{margin:2px 0 4px}
.rd-note{margin-bottom:8px}
.rd-top{margin-bottom:6px}
.rd-tag{position:absolute;top:100%;left:50%;transform:translateX(-50%);font-size:12px;font-weight:800;line-height:1.2;padding:2px 6px;border-radius:6px;background:#e0f2fe;color:#0c4a6e;white-space:nowrap;max-width:130px;overflow:hidden;text-overflow:ellipsis}
.rd-lane.rd-teacher{background:#1e1b4be6;border-color:#6366f1}
.rd-lane.rd-teacher .rd-tag{background:#e0e7ff;color:#312e81}
.rd-spot{outline:3px solid #fbbf24;outline-offset:4px;border-radius:14px;box-shadow:0 0 0 8px #fbbf2426;transition:outline-color .3s}
.rd-confetti{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:5}
.rd-cf-head h4{margin-bottom:4px}
.rd-cf .rd-plinth{min-height:0;border:1px solid rgba(255,255,255,.55);border-top:3px solid rgba(255,255,255,.85);background:var(--metal);color:var(--ink);padding-bottom:calc(14px + var(--rise));box-shadow:inset 0 1px 0 rgba(255,255,255,.7),inset 0 -10px 18px rgba(0,0,0,.12),0 20px 25px #02061740}
.rd-cf .rd-place-1{--metal:linear-gradient(160deg,#fff4c2 0%,#f7cf4d 34%,#e0ad25 68%,#c9971a 100%);--ink:#3b2a00;--medal-ink:#6b4c00;--rise:70px}
.rd-cf .rd-place-2{--metal:linear-gradient(160deg,#ffffff 0%,#e7eaee 34%,#c3cad4 68%,#a3acb9 100%);--ink:#1e293b;--medal-ink:#3f4a5a;--rise:38px}
.rd-cf .rd-place-3{--metal:linear-gradient(160deg,#f8cfa6 0%,#e3a46c 38%,#cd8a52 70%,#c47f45 100%);--ink:#2a1306;--medal-ink:#5b2c0c;--rise:10px}
.rd-cf .rd-medal{color:var(--medal-ink);text-shadow:0 1px 0 rgba(255,255,255,.55)}
.rd-cf .rd-plinth strong,.rd-cf .rd-plinth span:last-child{color:var(--ink);font-weight:650}
.rd-reduce .rd-lobby-grid li,.rd-reduce .rd-start{animation:none;transition:none}
@media(prefers-reduced-motion:reduce){.rd-lobby-grid li{animation:none}.rd-note,.rd-start{transition:none}}
@media(max-width:700px){.rd-qr{width:100%;display:grid;grid-template-columns:auto 1fr;gap:4px 12px;align-items:center;text-align:left}.rd-qr img{grid-row:1/4;grid-column:1;width:80px;height:80px;margin:0}.rd-lobby-grid{grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px}.rd-lobby-grid img{width:48px;height:48px}.rd-runner,.rd-runner img{width:44px;height:44px}.rd-tag{font-size:11px;max-width:96px}.rd-cf .rd-place-1{--rise:46px}.rd-cf .rd-place-2{--rise:24px}.rd-cf .rd-place-3{--rise:6px}.rd-plinth span:last-child{font-size:11px}}
/* 1 Nov 2026: the Tutors page Brain Race. The tutor picks the AI racer's level in the lobby (a picture, not a control);
   the AI racer's lane is tinted teal. */
.rd-ai-level{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 14px;font-size:13px;color:#cbd5e1}
.rd-ai-level span{font-weight:800;margin-right:4px;color:#e2e8f0}
.rd-ai-level b{font-weight:700;padding:6px 12px;border-radius:999px;border:1px solid #475569;background:#0f172a;color:#cbd5e1}
.rd-ai-level b.on{background:#0e7490;border-color:#22d3ee;color:#fff}
.rd-lane.rd-ai{background:#042f2ee6;border-color:#14b8a6}
.rd-lane.rd-ai .rd-tag{background:#ccfbf1;color:#134e4a}
/* 76: the Speaking own-answer demo (the app's My GCSE Speaking Answers screens) */
.ma-head h4{font-size:24px;margin:4px 0;color:#fff;font-family:inherit}.ma-head p{margin:0;color:var(--app-muted)}
.ma-kicker{font-size:11px;font-weight:800;letter-spacing:.1em;color:#7dd3fc;margin:0}
.ma-options{display:grid;grid-template-columns:1fr 1fr;gap:10px}.ma-options button,.ma-grid button{display:grid;gap:4px;text-align:left;border:1px solid var(--app-line);border-radius:14px;background:var(--app-panel);color:#fff;padding:14px;font:inherit}.ma-options span,.ma-grid span{color:var(--app-muted);font-size:13px}
.ma-card{background:var(--app-panel);border:1px solid var(--app-line);border-radius:16px;padding:16px;display:grid;gap:8px}
.ma-card h5{font-size:18px;margin:0;color:#fff}.ma-en{margin:0;color:var(--app-muted);font-style:italic}
.ma-label{margin:4px 0 0;font-weight:700;color:#e2e8f0}.ma-note{margin:0;color:var(--app-muted);font-size:12px}
.ma-box{min-height:70px;background:var(--app-bg);border:1px solid var(--app-line);border-radius:10px;padding:10px 12px;font-size:16px;line-height:1.6;color:#fff}.ma-ph{color:#64748b}
.ma-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.ma-actions button{border:1px solid var(--app-line);border-radius:10px;background:var(--app-panel-2);color:#e2e8f0;padding:8px 14px;font:inherit;font-size:14px}
.ma-primary{background:#0ea5e9!important;border-color:#0ea5e9!important;color:#020617!important;font-weight:800}
.ma-play{background:#059669!important;border-color:#059669!important;color:#fff!important;font-weight:700}
.ma-top b{color:#fff}.ma-sec{margin-left:auto;color:var(--app-muted);font-size:13px}
.ma-ready{margin:0;color:#6ee7b7;font-weight:700}
.ma-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}
.ma-built{min-height:48px;background:var(--app-bg);border:1px solid var(--app-line);border-radius:10px;padding:10px 12px;font-size:17px;color:#fff;display:flex;flex-wrap:wrap;gap:6px}
.ma-chips{display:flex;flex-wrap:wrap;gap:8px}.ma-chips button{border:1px solid #38bdf8;border-radius:10px;background:#0c4a6e;color:#e0f2fe;padding:7px 12px;font:inherit;font-size:16px}
@media(max-width:540px){.ma-options{grid-template-columns:1fr}}
.mechanism-section .section-intro .mechanism-line{color:var(--blue)}
/* Landing page snagging deck slides 79 to 83 (26 Oct 2026): the GCSE & A Level revision page */
.rev-questions{font-size:clamp(30px,3.6vw,48px)!important;line-height:1.25!important;letter-spacing:-.035em;font-weight:750;max-width:none;margin-bottom:22px}
.rev-questions .bounce-blue,.rev-close .bounce-blue{font-weight:800}
.rev-close{font-family:var(--display);font-size:clamp(21px,2.1vw,28px);font-weight:800;line-height:1.35;color:var(--text);margin:0 0 22px;max-width:none}
/* Slide 107 (27 Oct, evening): the creator credit is body-sized charcoal, not a small grey line; only the two named phrases bold. */
.page-hero .rev-credit{font-size:clamp(18px,1.6vw,21px);color:var(--text);line-height:1.55;max-width:none}
.page-hero .rev-credit strong{font-weight:800;color:var(--text)}
.rev-activities h2,.rev-showcase h2{font-size:clamp(30px,3.6vw,48px);line-height:1.1;letter-spacing:-.045em;margin:6px 0 12px}
.rev-intro{font-size:17px;line-height:1.65;color:var(--text);max-width:none;margin:0 0 26px}
.rev-cards{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.rev-cards .pain-card p{font-size:16px;color:#33495b}
.rev-demos{display:flex;flex-wrap:wrap;gap:10px;margin-top:auto!important;padding-top:6px}
.pl-journey{list-style:none;padding:0;margin:0 0 6px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;counter-reset:pl}
.pl-journey li{background:var(--paper);border:1px solid #cddbe3;border-radius:16px;padding:18px;display:grid;gap:6px;align-content:start}
.pl-when{font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--blue)}
.pl-journey b{font-family:var(--display);font-size:18px}
.pl-item{font-family:'MLB Plain Digits',ui-monospace,SFMono-Regular,Menlo,monospace;font-size:15px;background:#0f172a;color:#e2e8f0;border-radius:8px;padding:6px 10px;justify-self:start}
.pl-note{font-size:14.5px;color:#33495b;line-height:1.55}
@media(max-width:1000px){.pl-journey{grid-template-columns:1fr 1fr}}
@media(max-width:800px){.rev-cards{grid-template-columns:1fr}}
@media(max-width:540px){.pl-journey{grid-template-columns:1fr}}
/* Landing page snagging slide 86 (27 Oct 2026): the revision hero is four question lines, each fading in place; NO
   bounce. Only verbs, speaking, written and vocabulary are blue in the questions; top grade is blue and still from the
   outset. Space is reserved (opacity only), and reduced motion shows all. Slide 106 (27 Oct, evening) SUPERSEDES the
   0.3 s stagger: the fade stays quick (0.3 s) and the reading time comes from the pauses BETWEEN questions, onset to
   onset: the first at once, the second 1.5 s later, the third 2.5 s after that, the fourth 2.5 s after that (0 / 1.5 /
   4 / 6.5 s). site.js adds .rev-wait while the hero is off screen at load, so the sequence is not spent unseen. */
.rev-questions{font-size:clamp(25px,2.7vw,38px)!important;line-height:1.28!important;margin-bottom:18px}
.rev-questions .rev-q{display:block;margin:0 0 .28em;opacity:0;animation:rev-q-in .3s ease-out forwards}
.rev-questions.rev-wait .rev-q{animation-play-state:paused}
.rev-questions .rev-q:last-child{margin-bottom:0}
/* Landing snagging deck slide 116 (29 Oct 2026): pauses 1.25 s, then 1.5 s, then 1.5 s (replacing 1.5 / 2.5 / 2.5). */
.rev-questions .rev-q:nth-child(2){animation-delay:1.25s}
.rev-questions .rev-q:nth-child(3){animation-delay:2.75s}
.rev-questions .rev-q:nth-child(4){animation-delay:4.25s}
.rq-blue{color:var(--blue,#1e6ef4);font-weight:800}
@keyframes rev-q-in{from{opacity:0}to{opacity:1}}
@media (prefers-reduced-motion:reduce){.rev-questions .rev-q{opacity:1;animation:none}}
/* Landing page snagging slide 88 (27 Oct 2026): every card shows meaning AND form; the recall checks are the state
   after a correct answer, so they say so. */
.pl-en{font-weight:800;color:var(--text);font-size:15px}
.pl-correct{font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#1f7a52}
/* Landing page snagging slide 89 (27 Oct 2026): the adults' introduction is three compact, left-aligned blocks, each
   with a bold opening line, across the full content width (no cards, no large padding). */
.adult-intro{max-width:none;margin:0 0 30px;display:grid;gap:14px}
.adult-intro p{margin:0;font-size:18px;line-height:1.6;color:var(--muted)}
.adult-intro b{display:block;color:var(--text);font-family:var(--display);font-size:20px;margin-bottom:2px}
@media(max-width:540px){.adult-intro p{font-size:16px}.adult-intro b{font-size:18px}}
/* Landing slide 87 (27 Oct 2026): the Conjugate it! demo's formation guidance, styled as the app's (text-sm slate-200). */
.cj-note{text-align:center;font-size:13px;color:#e2e8f0;margin:2px 0 8px!important}
.cj-row.pd-focus{outline:3px solid #fde047;outline-offset:4px;border-radius:12px}
/* Landing slide 90 (27 Oct 2026): Explanations off removes the whole pop-up (it never takes clicks anyway). */
.no-explain .demo-callout{display:none!important}
.demo-both-off{font:600 12px/1.3 var(--app-font,inherit);color:#fde68a;background:#0f172acc;border:1px solid #a16207;border-radius:8px;padding:6px 10px;align-self:center}
/* Nick, 27 Oct 2026: the French / Spanish switch above the My Practice Lists cards, using the site's language switch. */
.pl-switch{display:inline-flex;margin:0 0 14px}
.pl-switch button{min-width:72px;padding:6px 12px}
/* Landing page snagging slide 92 (27 Oct 2026): the adult course's connected lesson walkthrough, in the app's dark look. */
.lw-top{display:grid;gap:8px}
.lw-chapters{display:flex;flex-wrap:wrap;gap:6px}
.lw-chapters button{border:1px solid var(--app-line);background:var(--app-panel);color:var(--app-text);border-radius:999px;padding:7px 12px;font:600 13px/1 var(--app-font);cursor:pointer;min-height:36px}
.lw-chapters button.on{background:#0ea5e9;border-color:#0ea5e9;color:#0b1220}
.lw-text-head{margin:0;color:var(--app-text);font:700 17px/1.3 var(--app-font)}
.lw-card{background:var(--app-panel);border:1px solid var(--app-line);border-radius:16px;padding:14px;display:grid;gap:10px;color:var(--app-text);font-family:var(--app-font)}
.lw-q{margin:0;font-size:15px}.lw-q b{color:#93c5fd}
.lw-rows{list-style:none;margin:0;padding:0;border:1px solid var(--app-line);border-radius:12px;overflow:hidden}
.lw-rows li{display:grid;grid-template-columns:20px 26px 1fr auto;gap:8px;align-items:center;padding:7px 10px;border-top:1px solid var(--app-line);font-size:13px}
.lw-rows li:first-child{border-top:0}
.lw-rows li.done{background:#052e1a}.lw-rows li.cur{background:#0c2a44;box-shadow:inset 3px 0 0 #38bdf8}
.lw-box{width:18px;height:18px;border:1.5px solid #64748b;border-radius:4px;display:grid;place-items:center;font-size:12px;color:#fff}
.lw-rows li.done .lw-box{background:#10b981;border-color:#10b981}
.lw-name em{font-style:normal;color:#38bdf8;font-size:11px;font-weight:700;margin-left:6px}
.lw-btn{border:1px solid #64748b;border-radius:9px;padding:4px 10px;font-weight:700;font-size:12px;white-space:nowrap}
.lw-rows li.done .lw-btn{border-color:#34d399;color:#6ee7b7}.lw-rows li.cur .lw-btn{background:#0ea5e9;border-color:#0ea5e9;color:#0b1220}
.lw-kicker{margin:0;font-size:11px;letter-spacing:.1em;color:#94a3b8;font-weight:700}
.lw-prompt{margin:0;font-size:24px;font-weight:800;text-align:center;color:#fde047}
.lw-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.lw-tiles span{border:1px solid #475569;border-radius:12px;padding:12px 6px;text-align:center;font-weight:700;background:#1e293b}
.lw-tiles span.gone{visibility:hidden}
.lw-built{min-height:44px;margin:0;padding:10px;border:1px dashed #475569;border-radius:12px;font-size:17px}
.lw-built.ok{border-style:solid;border-color:#34d399}
.lw-chips{display:flex;flex-wrap:wrap;gap:8px;min-height:38px}
.lw-chips span{border:1px solid #38bdf8;border-radius:10px;background:#0c4a6e;color:#e0f2fe;padding:7px 12px;font-size:16px}
.lw-ph{color:#64748b}
.lw-play,.lw-rec,.lw-check{justify-self:start;border-radius:10px;padding:9px 14px;font-weight:700;font-size:14px;background:#059669;color:#fff}
.lw-rec.on{background:#e11d48}.lw-check{background:#0284c7}
.lw-answer,.lw-said{min-height:64px;margin:0;padding:10px;border:1px solid #475569;border-radius:12px;background:#0b1220;font-size:17px;line-height:1.5}
.lw-said.ok{border-color:#34d399;color:#bbf7d0}
.lw-en{margin:0;font-size:16px;color:#fde047;font-weight:600}
.lw-good{margin:0;color:#6ee7b7;font-weight:700}
/* Slides 109 and 110 (28 Oct 2026): the shortened-demonstration label, the English after Unjumble, the hidden-then-revealed
   model answer, and the confetti layer that falls BEHIND the opaque card at the final celebration. */
.lw-screen{position:relative;overflow:hidden}.lw-screen .lw-top,.lw-screen .lw-card{position:relative;z-index:1}
.lw-short{display:block;font:600 11px/1.3 var(--app-font);color:#94a3b8;letter-spacing:.02em;margin-top:2px}
.lw-en-after{margin:0;color:#fde047;font-size:15px;font-weight:600}
.lw-hint{margin:0;color:#94a3b8;font-size:13px}
.lw-row{display:flex;flex-wrap:wrap;gap:8px}.lw-row>span{justify-self:auto}
.lw-reveal{justify-self:start;border:1px solid #64748b;border-radius:10px;padding:8px 14px;font-weight:700;font-size:14px;color:#e2e8f0}
.lw-model{border:2px solid #d97706;background:#451a0366;border-radius:12px;padding:10px 12px;display:grid;gap:4px}.lw-model p{margin:0;font-size:16px}
.lw-confetti{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}
.lw-confetti i{position:absolute;top:-14px;height:10px;border-radius:2px;opacity:.9;animation:lw-fall linear forwards}
@keyframes lw-fall{to{transform:translateY(720px) rotate(540deg);opacity:.75}}
/* Slide 112 (28 Oct 2026): the Explanations and Sound controls sit top right INSIDE the black demo area, in a reserved
   slot above the screen so they never cover a prompt or an answer box. The speaker is a white vector icon: waves when
   the sound is on, crossed out when muted; the whole icon and label is the button. */
.demo-stage-bar{display:flex;justify-content:flex-end;align-items:center;flex-wrap:wrap;gap:8px;padding:8px 12px;background:var(--app-bg);border-bottom:1px solid var(--app-line)}
.demo-stage-bar button{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:6px 12px;border:1px solid #475569;border-radius:10px;background:#0b1220;color:#fff;font:700 13px/1 var(--app-font);cursor:pointer}
.demo-stage-bar button:focus-visible{outline:3px solid #fde047;outline-offset:2px}
.demo-stage-bar svg{width:20px;height:20px;fill:#fff;color:#fff;flex-shrink:0}
#demo-sound[aria-pressed="true"] .ico-off,#demo-sound[aria-pressed="false"] .ico-on{display:none}
.demo-stage-bar .demo-both-off{margin-right:auto}
@media(max-width:540px){.demo-stage-bar button{flex:1 1 auto;justify-content:center}.demo-stage-bar .demo-both-off{flex-basis:100%;margin:0}}
@media(max-width:540px){.lw-rows li{grid-template-columns:18px 22px 1fr;font-size:12px}.lw-rows .lw-btn{display:none}.lw-tiles{grid-template-columns:repeat(2,1fr)}}
/* The adult dashboard showcase (slide 92): the course dials five then four, the course box, Practice Lists and the week. */
.pd-adult .pd-section{margin:6px 0 8px;color:#e2e8f0;font:700 14px/1.3 var(--app-font)}
.pd-adult .pd-dials-5{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.pd-adult .pd-dials-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:8px}
.pd-adult .pd-dials-4>*{width:80%;justify-self:center}
.pd-adult .pd-practise:empty{display:none}
.pd-adult .pd-dial-title{font-size:12px!important;min-height:2.4em}
.pd-adult .pd-course{margin-top:10px}
.pd-adult .pd-kicker{margin:0;font-size:10px;letter-spacing:.1em;color:#7dd3fc;font-weight:800}
.pd-adult .pd-cards-2{grid-template-columns:3fr 2fr}
@media(max-width:700px){.pd-adult .pd-dials-5,.pd-adult .pd-dials-4{grid-template-columns:repeat(3,minmax(0,1fr))}.pd-adult .pd-dials-4>*{width:100%}.pd-adult .pd-cards-2{grid-template-columns:1fr}}
/* Landing page snagging slide 93 (27 Oct 2026): one inline pair per card, target blue, English charcoal, "=" neutral,
   the correct-answer tick green; no dark box. One French / Spanish choice updates all four cards. */
.pl-pair{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 6px;font-size:16px}
.pl-journey .pl-item{font-family:inherit;background:none;padding:0;border-radius:0;color:var(--blue);font-weight:800;font-size:17px}
.pl-eq{color:var(--muted)}
.pl-pair .pl-en{color:var(--text);font-weight:600;font-size:16px}
.pl-tick{color:#1f7a52;font-weight:800}
/* The adults page (slides 91 to 97). */
/* Slide 111 (28 Oct 2026): the lead runs the full content width within the page margins (the shared .page-hero .lead
   62ch measure outranked the old single-class rule, so the line wrapped early); same size, only the first sentence bold,
   natural wrapping on small screens. */
.page-hero .lead.adult-benefit{max-width:none;font-size:20px;color:var(--text)}
.adult-method h2{font-size:clamp(28px,3.4vw,44px);letter-spacing:-.035em;margin:0 0 18px;max-width:none}
.adult-prose{max-width:none;display:grid;gap:12px}.adult-prose p{margin:0;font-size:18px;line-height:1.65;color:var(--muted)}.adult-prose b{color:var(--text)}
.adult-credit{color:var(--text)!important}
.lesson-player{margin-top:34px;background:var(--paper);border:1px solid #cddbe3;border-radius:20px;padding:24px}
.lesson-player h3{font-family:var(--display);font-size:26px;margin:0 0 6px}.lesson-player>p{margin:0 0 14px;color:var(--muted)}
.lesson-controls{display:flex;flex-wrap:wrap;gap:14px;align-items:center}
.lesson-chapters{display:flex;flex-wrap:wrap;gap:8px}
.lesson-chapters button{border:1.5px solid #bdced5;background:var(--paper);border-radius:999px;padding:9px 14px;font:800 13px/1 var(--body);min-height:44px;cursor:pointer}
.lesson-chapters button:hover{border-color:var(--blue);color:var(--blue)}
.lesson-more{margin:14px 0 0}
.course-lang{display:inline-flex;margin:4px 0 16px}
.level-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.level-pick{background:var(--paper);border:1.5px solid #cddbe3;border-radius:16px;padding:18px 20px;display:grid;gap:6px;align-content:start}
.level-pick h3{font-family:var(--display);font-size:24px;margin:0;color:var(--blue)}
.level-pick p{margin:0}.level-words{font-weight:800;color:var(--text)}
.level-pick .soon{color:var(--muted);font-weight:700;margin-top:4px}
.sample summary{cursor:pointer;font-weight:800;color:var(--blue);min-height:44px;display:flex;align-items:center}
.sample-text p{margin:6px 0 0}.sample-text .q{font-weight:800}.sample-text .en{color:var(--muted)}
.extra-box{background:var(--paper);border:1px solid #cddbe3;border-radius:16px;padding:18px 22px;max-width:860px}
.extra-box h3{margin:0 0 8px;font-family:var(--display);font-size:20px}.extra-box ul{margin:0 0 6px;padding-left:18px;display:grid;gap:6px}
.reassure-one{grid-template-columns:1fr!important;max-width:760px}
@media(max-width:700px){.level-cards{grid-template-columns:1fr}}
/* The adult course activities page (slides 92, 96 and 97). */
.acts-h1{font-size:clamp(32px,4vw,52px);letter-spacing:-.04em;margin:0 0 12px}
.text-link-row{margin:0 0 18px}
.act-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:20px}
.act-card{display:grid;grid-template-columns:36px 1fr;gap:10px;background:var(--paper);border:1px solid #cddbe3;border-radius:14px;padding:14px 16px}
.act-icon{font-size:24px;line-height:1.2}.act-card h3{margin:0 0 4px;font-size:17px}.act-card p{margin:0 0 8px;color:var(--muted);font-size:15px}
@media(max-width:700px){.act-list{grid-template-columns:1fr}}
.adult-dash-preview{max-width:1000px}
.adult-dash-preview .pd-instrument{max-width:150px;margin:0 auto;display:block}
/* Landing page snagging slide 99 (27 Oct 2026): the revision offer described ONCE, two language buttons, coverage below each. */
.offer-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 28px;margin:6px 0 22px}
.offer-grid h3{margin:0 0 4px;font-family:var(--display);font-size:20px}.offer-grid p{margin:0;color:var(--muted);line-height:1.6}
.offer-starts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 28px;align-items:start}
.coverage{margin-top:8px}.coverage summary{cursor:pointer;font-weight:800;color:var(--blue);min-height:44px;display:flex;align-items:center;gap:6px}
.coverage ul{margin:4px 0 8px;padding-left:18px;display:grid;gap:4px;font-size:15px}.cov-h{margin:8px 0 2px;font-weight:800}
@media(max-width:700px){.offer-grid,.offer-starts{grid-template-columns:1fr}}
/* Adult dashboard deck slide 10 (27 Oct 2026, supersedes slide 5), the adults page's sample dials (.pd-adult, the app's
   .cockpit-adult): one design for every adult dial, matching Nick's tachometer photo. Dark card and face in both themes,
   white heading, caption, readout and icon (the emoji whitened by a filter), the same orange needle everywhere, no top bar
   and no activity colour. The arc, ticks and bands are drawn in the SVG (site.js adultGaugeHTML, the app's AdultInstrument). */
.pd-dial.pd-adult{--acc:#2f8cff;border-color:#2b3440;background:linear-gradient(165deg,#1a2029 0%,#12171e 55%,#0c1016 100%);box-shadow:inset 0 1px 0 #ffffff14,0 8px 20px #00000040;color:#fff}
.pd-dial.pd-adult::before{display:none}
.pd-adult .pd-dial-title,.pd-adult .pd-progress{color:#fff}.pd-adult .pd-sub{flex:0 0 auto;color:#e6eef7}
.pd-adult .pd-needle{filter:drop-shadow(0 0 3px #ff7a1aa6)}
.pd-adult .pd-progress{text-align:center;margin-top:auto}
.pd-adult .pd-practise{margin-top:auto;background:#0ea5e9;color:#06111c;box-shadow:0 4px 14px #0ea5e94d}
.pd-icon{display:block;height:20px;margin:-2px 0 4px;text-align:center;font-size:15px;line-height:20px;color:#fff}
/* Slide 11 (28 Oct 2026): the adult readout keeps the app's system digits (no monospace, so no slashed zero) and no tracking. */
.pd-adult .pd-reading{font-family:ui-sans-serif,system-ui,sans-serif;letter-spacing:0;font-feature-settings:"zero" 0}
@media(prefers-reduced-motion:reduce){.pd-adult .pd-needle{filter:none}}
/* Landing page snagging deck slide 101 (27 Oct 2026): the homepage is the introduction, the three audience cards and the
   compact footer, nothing else; on a tall screen the footer sits at the foot of the window rather than mid-page. */
.home{min-height:100vh;display:flex;flex-direction:column}
.home main{flex:1 0 auto}

/* Landing page snagging deck slides 103 to 105 (27 Oct 2026). THE SECTION-SPACING RULE for every public landing page
   (home, Teachers & schools, GCSE & A Level revision, adults, adult activities): two tokens, set once in :root and
   narrowed in the 1100px and 540px media queries above. --space-hero is the leading space after the header (the
   page-hero, the homepage hero-routes and a page whose first block is a plain section). --space-section is the ONE gap
   at every other boundary, owned by the block that follows: a .section carries it as top padding and no bottom padding;
   a block that is not a .section (the promise strip, the practical-information panel, the invitation) carries it as
   margin-top; the footer's gap is main's bottom padding. A section's first and last children drop their outer margins
   so a trailing paragraph or grid margin never stacks on the boundary. There is no larger variant on these pages: every
   section has its own label and heading, so no boundary has a reason to be bigger. A new landing section should be a
   .section with no spacer, no bottom padding and no min-height; an exception needs a comment saying why. */
.landing main{padding-bottom:var(--space-section)}
.landing main>.section:first-child{padding-top:var(--space-hero)}
.section>:first-child{margin-top:0}
.section>:last-child{margin-bottom:0}
/* Slide 103: the adults introduction shares the page container with The method (no narrower hero), so the label, the
   headline, the lead, the buttons, the method label, heading, body and the walkthrough box share one left edge. The
   headline is two deliberate sentence lines: the second sentence is its own line at every width and wraps naturally
   within it; the words still fade in reading order and the gold lines stay under "more". The lead keeps its 62ch
   reading measure on that shared left edge. */

.adult-hero h1 .blue{display:block}
/* Slide 105: the method heading breaks after "rebuild it," on a desktop ("then" charcoal, "say it from memory!" blue);
   below 900px it wraps naturally. The body text and the creator credit run the walkthrough box's full width. */
@media(min-width:900px){.method-then{display:block}}
/* Landing page snagging deck slide 108 (27 Oct 2026): "Discover what your pupils can do." is its own section, directly
   above How it works, with the four subject cards and the overview that opens under them; the teacher demo keeps its
   three management tabs and no longer carries a fourth. The cards and the overview keep their rules above
   (.explore-cards, .explore-card, #explore-overview); only the frame is new, on the shared section spacing. */
.explore-section .explore-layout{display:grid;grid-template-columns:.8fr 1.4fr;gap:44px;align-items:start}
.explore-section .explore-copy h2{font-size:clamp(30px,3.6vw,48px);line-height:1.1;letter-spacing:-.045em;margin:0 0 16px}
.explore-section .explore-copy p:not(.eyebrow){font-size:17px;line-height:1.65;color:var(--text);max-width:460px;margin:0}
.explore-section .explore-overview{grid-column:1/-1;margin-top:8px}
@media(max-width:1100px){.explore-section .explore-layout{grid-template-columns:1fr;gap:28px}.explore-section .explore-copy p:not(.eyebrow){max-width:none}}
/* Landing page snagging slide 114 (28 Oct 2026): the walkthrough shows the REAL app screens in a frame, laid out at a
   laptop's width (960) and scaled to fit the demo window; the veil names any stretch the shortened demo skips. */
.lw-frame-wrap{position:relative;z-index:1;margin-top:10px;border:1px solid var(--app-line);border-radius:14px;overflow:hidden;background:#0d0f12}
.lw-frame-wrap iframe{display:block;border:0;width:960px;height:700px;transform-origin:0 0;pointer-events:none;background:#0d0f12}
.lw-skip{position:absolute;inset:0;margin:0;display:grid;place-items:center;padding:24px;text-align:center;background:#0b1220e6;color:#fde68a;font:700 18px/1.4 var(--app-font,inherit)}
.lw-skip[hidden]{display:none}
/* Slide 114: a demo screen showing the real app hides its drawn version. */
.is-real > :not(.lw-frame-wrap){display:none}
.is-real > .lw-frame-wrap{margin-top:0}
.lw-frame-wrap iframe.lw-next{position:absolute;top:0;left:0;visibility:hidden}
/* Demos on landing page deck slide 1: a deliberate loading state, never an empty black frame. */
.lw-frame-wrap.is-loading iframe{visibility:hidden}
.lw-frame-wrap.is-loading::after{content:"Loading…";position:absolute;inset:0;display:grid;place-items:center;color:#cbd5e1;font:600 16px/1.4 var(--app-font,inherit)}
/* Pricing link in the menu (31 Oct 2026): keep the menu and its buttons on one line on laptop widths */
.nav-actions .button{white-space:nowrap}
@media(max-width:1200px) and (min-width:1101px){.nav-links{gap:16px;font-size:13px}}
@media(max-width:1100px) and (min-width:901px){.nav-links{display:none}.nav-menu{display:block}}
/* Four routes (Noah and Nick, 1 Nov 2026: Tutors added): four across on a wide screen, two by two below that, one
   column on a phone (the 900px rule above). */
.route-cards{grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}.route-card{padding:32px 20px 28px;justify-content:flex-start}
@media(max-width:1180px){.route-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.route-cards{grid-template-columns:1fr}}
/* Brainy at the top of the homepage, eyes following the pointer (Noah, 1 Nov 2026; assets/brainy-eyes.js). */
.hero-brainy{position:relative;width:clamp(120px,14vw,190px);aspect-ratio:1;float:right;margin:-8px 0 8px 24px}
.hero-brainy img,.hero-brainy svg{position:absolute;inset:0;width:100%;height:100%}
.hero-brainy svg{pointer-events:none}
@media(max-width:700px){.hero-brainy{float:none;margin:0 auto 12px;width:140px}}
/* Noah, 1 Nov 2026: the demo window is rounded at all four corners. While nothing follows the dark demo area (the end
   panel is hidden), that area takes the window's bottom corners. Phones show the window full screen, square. */
@media(min-width:821px){.demo-stage:has(+ .demo-end[hidden]){border-radius:0 0 19px 19px;overflow:hidden}}
/* Phones (1 Nov 2026): the header's three items were wider than the screen, so every page scrolled sideways. "Open the
   app" is in the menu too, so its header button steps aside below 480px. */
@media(max-width:480px){.nav-actions .button.outline{display:none}}
/* The adult dials' digits (same as the app's ADULT_DIGITS in Gauge.tsx). A class, not an inline style: the site's
   Content Security Policy blocks inline style attributes (1 Nov 2026, found by the launch-morning check). */
.pd-adult-digits{font-family:ui-sans-serif,system-ui,sans-serif;font-variant-numeric:tabular-nums;font-feature-settings:"zero" 0}

/* Brainy's eyes follow the pointer in the "Try MLB with your class" box too (Noah, 2 Nov 2026): the picture and its
   drawn eyes sit together in one wrapper, which takes the picture's size and tilt. */
.invitation-brainy{display:block;aspect-ratio:1;flex-shrink:0}
.invitation-brainy img,.invitation-brainy svg{position:absolute;inset:0;width:100%;height:100%}
.invitation-brainy svg{pointer-events:none}
