/* Shared palette; dark mode follows the device setting. */
:root{color-scheme:light;--bg:#FFFDF8;--ink:#0F172A;--muted:#64748B;--dim:#94A3B8;--line:#E2E8F0;--surface:#FFFFFF;--soft:#F8FAFC;--raised:#F1F5F9;--accent:#3483F9;--accent-hover:#2563D8;--accent-text:#2563D8;--on-accent:#FFFFFF;--accent-soft:#EAF3FF;--accent-soft-hover:#DBEAFE;--feature:#0F172A;--feature-text:#FFFFFF;--feature-muted:#CBD5E1;--tooltip-bg:#0F172A;--tooltip-text:#FFFFFF;--success:#15803D;--success-soft:#F0FDF4;--warning:#B45309;--warning-soft:#FFFBEB;--error:#B91C1C}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]){color-scheme:dark;--bg:#0C0C0E;--ink:#F8FAFC;--muted:#94A3B8;--dim:#94A3B8;--line:#2B303B;--surface:#151519;--soft:#1B1D23;--raised:#242730;--accent:#7DD3FC;--accent-hover:#BAE6FD;--accent-text:#7DD3FC;--on-accent:#0F172A;--accent-soft:#152E40;--accent-soft-hover:#1C3C52;--feature:#151E2D;--feature-text:#F8FAFC;--feature-muted:#CBD5E1;--tooltip-bg:#E2E8F0;--tooltip-text:#0F172A;--success:#86EFAC;--success-soft:#142A20;--warning:#FCD34D;--warning-soft:#302719;--error:#FCA5A5}}
:root[data-theme="dark"]{color-scheme:dark;--bg:#0C0C0E;--ink:#F8FAFC;--muted:#94A3B8;--dim:#94A3B8;--line:#2B303B;--surface:#151519;--soft:#1B1D23;--raised:#242730;--accent:#7DD3FC;--accent-hover:#BAE6FD;--accent-text:#7DD3FC;--on-accent:#0F172A;--accent-soft:#152E40;--accent-soft-hover:#1C3C52;--feature:#151E2D;--feature-text:#F8FAFC;--feature-muted:#CBD5E1;--tooltip-bg:#E2E8F0;--tooltip-text:#0F172A;--success:#86EFAC;--success-soft:#142A20;--warning:#FCD34D;--warning-soft:#302719;--error:#FCA5A5}

*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.55 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.55}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:4px}header{max-width:940px;padding:28px 30px 22px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{font-size:24px;font-weight:650;letter-spacing:-1px;text-decoration:none}#streak{font-size:13px;color:var(--muted)}.shell{max-width:940px;margin:auto;padding:0 30px}nav{display:flex;gap:25px;border-bottom:1px solid var(--line);overflow-x:auto}nav button{border:0;border-bottom:2px solid transparent;border-radius:0;background:none;padding:12px 0 14px;color:var(--muted);font-size:14px;white-space:nowrap}nav button.active{color:var(--accent-text);border-bottom-color:var(--accent)}nav button:hover{color:var(--ink)}main{max-width:740px;padding:48px 0 70px;margin:auto}.page-top{margin-bottom:32px}h1,h2,h3,p{margin-top:0}h1{font-size:29px;line-height:1.25;letter-spacing:-.9px;font-weight:600;margin-bottom:8px}h2{font-size:20px;line-height:1.4;font-weight:550;letter-spacing:-.4px;margin-bottom:12px}h3{font-size:17px;line-height:1.5;font-weight:600;margin:22px 0 12px}.page-top p{color:var(--muted);font-size:15px;margin-bottom:0}.practice-list{border-top:1px solid var(--line)}.practice-row{width:100%;display:flex;align-items:center;justify-content:space-between;gap:20px;background:none;border:0;border-bottom:1px solid var(--line);padding:24px 0;text-align:left;color:var(--ink)}.practice-row:hover{background:var(--soft)}.practice-row strong{display:block;font-size:19px;font-weight:550;letter-spacing:-.3px}.practice-description{display:block;font-size:14px;color:var(--muted);margin-top:4px}.practice-time{display:flex;align-items:center;gap:28px;color:var(--muted);font-size:13px;white-space:nowrap}.practice-time>span{font-size:18px;color:var(--ink)}.home-bottom{display:grid;grid-template-columns:1fr 1fr;gap:30px;padding:32px 0 14px}.score-number{font-size:38px;line-height:1.2;font-weight:500;letter-spacing:-1px;margin:8px 0}.score-number>span{font-size:14px;letter-spacing:0;color:var(--muted);margin-left:7px}.subtle,.empty{font-size:14px;color:var(--muted);line-height:1.6}.home-bottom p{font-size:13px;margin:4px 0}.muted{color:var(--muted)}.text-btn{background:none;border:0;padding:4px 0;font-size:14px;color:var(--ink);text-align:left;text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--dim)}.btn{border:1px solid var(--accent);border-radius:5px;padding:10px 17px;background:var(--accent);color:var(--on-accent);font-size:14px;font-weight:500;display:inline-flex;align-items:center;justify-content:center;gap:16px;min-height:42px}.btn:hover:not(:disabled){background:var(--accent-hover)}.btn.secondary{background:var(--surface);border-color:var(--line);color:var(--ink)}.btn.secondary:hover:not(:disabled){background:var(--soft)}.panel{padding:24px 0;border-top:1px solid var(--line)}.workspace{max-width:650px;margin:auto}.eyebrow{color:var(--muted);font-size:13px;letter-spacing:0;font-weight:400}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:28px}.chip{background:var(--surface);color:var(--muted);border:1px solid var(--line);border-radius:5px;padding:7px 12px;font-size:14px;min-height:36px}.chip.selected{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.chip:hover{border-color:var(--dim)}.reading{padding:25px 0 0}.reading h2{font-size:27px;letter-spacing:-.7px;line-height:1.3;margin:17px 0 24px}.reading .prose{font-size:20px;line-height:1.9;font-weight:400;margin-bottom:26px}.word{font:inherit;color:inherit;border:0;border-bottom:1px dashed var(--accent);background:var(--accent-soft);padding:0 2px}.word:hover{background:var(--accent-soft-hover)}.word-info{background:var(--soft);border-radius:5px;padding:16px 18px;font-size:15px;margin:18px 0}.word-info p{margin:8px 0 12px}.summary{margin:24px 0}.summary summary{cursor:pointer;font-size:14px;color:var(--muted)}.field{width:100%;border:1px solid var(--line);border-radius:5px;padding:12px;background:var(--surface);color:var(--ink)}textarea{min-height:100px;resize:vertical}.summary textarea{margin:12px 0 6px}.summary p{font-size:13px}.row{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:24px}.scenario{font-size:20px;line-height:1.75;margin:22px 0}.options{display:grid;gap:10px;margin:24px 0}.option{border:1px solid var(--line);border-radius:5px;padding:14px 16px;text-align:left;background:var(--surface);color:var(--ink);font-size:16px;line-height:1.5}.option:hover:not(:disabled){border-color:var(--dim);background:var(--soft)}.option.chosen{border-color:var(--accent);box-shadow:inset 3px 0 var(--accent);background:var(--accent-soft)}.feedback{margin-top:22px;padding:17px 18px;border-left:2px solid var(--success);background:var(--success-soft);font-size:15px;line-height:1.7}.feedback.bad{background:var(--warning-soft);border-left-color:var(--warning)}.feedback p{margin:10px 0 0}.feedback .btn{margin-top:12px}.confidence{display:flex;gap:12px;align-items:center;margin:24px 0}.confidence label{font-size:14px;white-space:nowrap}.confidence input{width:100%;min-width:50px;accent-color:var(--accent)}.confidence output{font-size:14px;min-width:37px}.center{text-align:center}.nback-grid{width:min(270px,100%);aspect-ratio:1;display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:25px auto}.nback-grid div{background:var(--raised);border-radius:5px}.nback-grid div.lit{background:var(--accent)}.memory-actions{display:flex;justify-content:center;gap:12px}.memory-actions .btn{min-width:155px}.memory-actions .pressed{background:var(--accent-soft);border-color:var(--accent)}.status-pill{font-size:13px;color:var(--muted)}#letter{font-size:14px;color:var(--muted)}#memory-instructions{max-width:480px;margin:24px auto}.game-help{display:flex;justify-content:center;align-items:center;gap:7px;font-size:13px;color:var(--muted);margin-top:26px}.game-help>span:last-child{margin-left:20px}kbd{font-family:inherit;font-size:12px;border:1px solid var(--line);border-radius:3px;padding:0 5px;color:var(--muted)}label{font-size:14px}select{margin-left:8px}.progress-total{padding-bottom:28px;border-bottom:1px solid var(--line)}.progress-total p{margin-bottom:0}.scores{display:grid;grid-template-columns:repeat(4,1fr);gap:26px;margin-top:28px}.big{display:block;font-size:28px;font-weight:500;line-height:1.3;margin:9px 0 13px}.bar{height:3px;background:var(--raised);border-radius:3px;overflow:hidden}.bar i{height:100%;display:block;background:var(--accent)}.scores p{font-size:12px;margin:9px 0}.section-head{display:flex;justify-content:space-between;align-items:center;gap:14px;margin:36px 0 14px}.section-head h2{font-size:17px;margin:0}.section-head>span{font-size:13px;color:var(--muted)}.history{display:flex;align-items:flex-end;gap:7px;height:130px}.history>div{flex:1;min-width:4px;background:var(--accent);border-radius:2px 2px 0 0}.vocab-line{display:flex;justify-content:space-between;gap:24px;padding:17px 0;border-top:1px solid var(--line)}.vocab-line strong{font-weight:550}.vocab-line .subtle{font-size:13px;margin-top:4px}.vocab-line>span{flex-shrink:0}.help{display:inline-block;vertical-align:middle;line-height:1}.help-button{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;width:24px;height:24px;border:0;background:transparent;color:var(--muted);font-size:12px;line-height:1;border-radius:50%;padding:0;font-weight:400}.help-button::before{content:'';position:absolute;width:16px;height:16px;border:1px solid var(--dim);border-radius:50%;pointer-events:none}.help-button:hover,.help-button[aria-expanded="true"]{color:var(--ink);background:var(--raised)}.tooltip{position:fixed;z-index:100;width:280px;max-width:calc(100vw - 24px);padding:13px 16px;background:var(--tooltip-bg);color:var(--tooltip-text);border-radius:6px;font-size:14px;font-weight:400;line-height:1.6;text-align:left;letter-spacing:0;box-shadow:0 3px 15px #0002}.tooltip[hidden]{display:none}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);max-width:calc(100vw - 32px);padding:12px 18px;background:var(--tooltip-bg);color:var(--tooltip-text);border-radius:6px;font-size:14px;display:none;z-index:110}@media(max-width:600px){header{padding:20px 22px 16px}.shell{padding:0 22px}nav{gap:22px}nav button{font-size:14px}main{padding:32px 0 48px}h1{font-size:27px}.practice-row{padding:21px 0}.practice-description{font-size:13px;max-width:230px}.practice-time{gap:14px;font-size:12px}.home-bottom{gap:18px}.page-top{margin-bottom:25px}.reading .prose{font-size:18px}.reading h2{font-size:25px}.tabs{gap:6px}.chip{font-size:13px;padding:7px 10px}.row{flex-wrap:wrap}.scores{grid-template-columns:repeat(2,1fr);gap:22px}.scenario{font-size:18px}.memory-actions .btn{min-width:0;flex:1;gap:12px}.confidence{flex-wrap:wrap;gap:8px}.confidence input{flex:1}.vocab-line{gap:12px;flex-wrap:wrap}.vocab-line>span{font-size:12px}.tooltip{width:260px}.help-button{width:30px;height:30px}}
.activity-list{padding:0;margin:0;list-style:none}.activity-item{padding:22px 0;border-top:1px solid var(--line)}.activity-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.activity-heading strong{font-size:16px;font-weight:550}.activity-title{display:block;font-size:14px;margin:3px 0}.activity-heading time{display:block;font-size:12px}.activity-result{text-align:right;flex-shrink:0}.activity-result>strong{display:block;font-size:22px;font-weight:500;line-height:1.4}.activity-result strong>span{color:var(--muted);font-size:13px;margin-left:3px}.activity-result>.subtle{font-size:12px}.activity-impact{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:17px}.activity-impact>div{display:flex;gap:6px;flex-wrap:wrap;align-items:baseline}.activity-impact>div>span:first-child{width:100%;font-size:12px}.activity-impact>div>span:nth-child(2){font-size:15px;font-variant-numeric:tabular-nums}.activity-impact>div>span:last-child{font-size:12px;margin-left:4px}#more-activity{margin-top:10px}#more-activity[hidden]{display:none}@media(max-width:420px){.activity-impact{gap:12px}.activity-impact>div>span:last-child{width:100%;margin-left:0}}
.answer-row{display:flex;align-items:center;gap:12px;margin:9px 0}.answer-row .field{max-width:330px}.answer-row .btn{flex-shrink:0}#answer-error{color:var(--error);font-size:14px}.game-help{flex-wrap:wrap}.activity-result{min-width:75px}@media(max-width:450px){.answer-row{align-items:stretch}.answer-row .field{min-width:0}}
.inline-math{font-size:1.08em;math-style:compact}.scenario .inline-math{margin-inline:2px}.equation{margin:24px 0;padding:20px 0;overflow-x:auto;font-size:1.55rem;line-height:1.7}.equation math{margin:0;text-align:left}.feedback .inline-math{font-size:1.12em} @media(max-width:450px){.equation{font-size:1.2rem}.scenario{line-height:1.9}}
.logic-passage{font-size:18px;line-height:1.85;margin:22px 0}.logic-question{font-size:17px;line-height:1.65;margin:24px 0 12px}.logic-rules{padding-left:22px;font-size:16px;line-height:1.75}.logic-rules li{margin-bottom:8px}.logic-option{display:flex;gap:14px;align-items:baseline}.option-letter{font-size:13px;color:var(--muted);flex-shrink:0}.option.right-answer{opacity:1;border-color:var(--accent);background:var(--success-soft)}.answer-review{margin-top:22px;font-size:14px}.answer-review summary{cursor:pointer;color:var(--muted)}.answer-review ul{padding-left:20px;line-height:1.7}.answer-review li{margin:12px 0}.answer-review p{margin:5px 0;white-space:pre-wrap}.logic-recap{padding:0;list-style:none}.logic-recap li{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line);font-size:14px}@media(max-width:600px){.logic-passage{font-size:17px}.logic-option{gap:10px}}
.face-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:20px;margin:24px 0}.face-card{display:flex;flex-direction:column;gap:8px;min-width:0}.face-card small{font-size:13px;overflow-wrap:anywhere}.face-photo{width:100%;aspect-ratio:1;background-image:url('assets/faces.png');background-size:400% 400%;border-radius:8px;background-repeat:no-repeat}.face-single{max-width:230px;margin:24px auto}.face-scores{display:flex;gap:48px}.face-scores h2{margin:8px 0}.target-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;max-width:360px;margin:24px auto}.target-tile{position:relative;aspect-ratio:1;border:1px solid var(--line);border-radius:8px;background:var(--soft);color:var(--muted);cursor:pointer;touch-action:manipulation}.target-tile span{position:absolute;top:8px;left:10px;font-size:14px}.target-tile.has-target b{display:block;width:32%;aspect-ratio:1;background:var(--ink);border-radius:50%;margin:auto}.target-tile:focus-visible{outline:3px solid var(--muted);outline-offset:3px}@media(max-width:450px){.face-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}}
.face-choice{padding:0;border:2px solid transparent;border-radius:10px;background:none;cursor:pointer}.face-choice:hover,.face-choice:focus-visible{border-color:var(--ink);outline-offset:3px}.sort-shape{width:100px;height:100px;background:var(--ink);margin:48px auto}.sort-shape.circle{border-radius:50%}

/* Shared spacing and type rhythm across every practice screen. */

body{font-size:1rem;line-height:1.65}
header,.shell{max-width:840px;padding-left:32px;padding-right:32px}
header{padding-top:28px;padding-bottom:20px}
main{max-width:none;padding:40px 0 72px}
.workspace{max-width:none;margin:0}
nav{gap:8px;overflow:visible;flex-wrap:wrap;row-gap:0}
nav button{padding:12px 13px;font-size:.9375rem;min-height:48px}
nav button:first-child{margin-left:-13px}
.page-top{margin-bottom:28px}
h1{font-size:1.875rem;letter-spacing:-.7px;line-height:1.25;margin-bottom:8px}
h2{font-size:1.25rem;line-height:1.4;margin-bottom:16px}
h3{font-size:1.0625rem;line-height:1.5;margin:24px 0 12px}
p{margin-bottom:16px}
.page-top p{font-size:1rem;line-height:1.65}
.panel{padding:28px 0 0}
.panel>p{max-width:65ch}
.panel>.btn{margin-top:8px}
.panel>p:empty,[role="alert"]:empty,[role="status"]:empty{display:none}
.row{gap:16px;margin-top:24px;flex-wrap:wrap}
.row>p{margin-bottom:0}
.setup-row{margin:0 0 24px;align-items:center}
.centered-row{justify-content:center}
label{font-size:.9375rem;line-height:1.5}
select.chip{color:var(--ink);min-height:44px;max-width:100%}
.btn{min-height:46px;padding:11px 18px;font-size:.9375rem;border-radius:7px;line-height:1.45}
.text-btn{min-height:42px;display:inline-flex;align-items:center;font-size:.9375rem;line-height:1.5}
.text-btn[hidden],[hidden]{display:none!important}
.field{font-size:1rem;border-radius:7px;min-height:46px;line-height:1.5;padding:11px 13px}
.answer-row{margin:12px 0;gap:12px;align-items:stretch}
.answer-row .field{max-width:none;flex:1;min-width:0}
.answer-row .btn{flex-shrink:0}
.subtle,.empty,.eyebrow,.status-pill{font-size:.875rem;line-height:1.6}
.practice-row{padding:22px 12px;gap:24px}
.practice-row strong{font-size:1.125rem;line-height:1.4}
.practice-description{font-size:.9375rem;margin-top:6px;line-height:1.5}
.practice-time{font-size:.875rem;gap:20px}
.home-bottom{gap:32px;padding:32px 12px 16px}
.home-bottom p{font-size:.875rem;line-height:1.6}
.score-number{margin:12px 0;font-variant-numeric:tabular-nums}
.tabs{gap:8px;margin-bottom:24px}
.chip{font-size:.875rem;min-height:42px;padding:8px 13px;border-radius:7px}
.reading{padding-top:28px}
.reading h2{font-size:1.65rem;line-height:1.35;margin:12px 0 24px;letter-spacing:-.5px}
.reading .prose{font-size:1.125rem;line-height:1.85;margin:0 0 20px;max-width:66ch}
.word{border-radius:3px;background:var(--accent-soft);border-bottom-style:solid;text-underline-offset:4px}
.reading-source{margin:24px 0;color:var(--muted)}
.reading-source a{text-underline-offset:4px;text-decoration-color:var(--dim)}
.word-info{padding:20px;margin:24px 0;border-radius:8px;font-size:1rem}
.summary{padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:24px 0}
.summary summary,.answer-review summary{font-size:.9375rem;line-height:1.6;color:var(--ink);min-height:24px}
.summary textarea{margin:16px 0 8px}.summary p{font-size:.875rem;margin-bottom:0}
#comprehension:empty{display:none}
#comprehension{margin-top:28px}
#comprehension>h3{margin-top:12px}
.reading>.row+p{margin-top:20px}
.options{gap:12px;margin:20px 0 24px}
.option{padding:16px 18px;line-height:1.6;border-radius:8px}
.option:disabled{opacity:.8}
.option.right-answer{opacity:1}
.feedback{padding:20px;margin:24px 0;border-radius:0 8px 8px 0;font-size:1rem}
.feedback p:last-child{margin-bottom:0}
.scenario,.logic-passage{font-size:1.125rem;line-height:1.8;margin:20px 0 24px;max-width:66ch}
.logic-question{font-size:1.125rem;line-height:1.6;margin:24px 0 16px}
.logic-option{gap:16px}.option-letter{font-size:.875rem}
.answer-review{padding-top:4px;font-size:.9375rem;margin:24px 0}
.game-help{font-size:.875rem;gap:8px;margin-top:28px;line-height:1.6}
#letter{min-height:28px}
.nback-grid{width:min(288px,100%);gap:10px;margin:24px auto 28px}
.memory-actions{gap:12px}.memory-actions .btn{min-width:140px}
.progress-total{padding-bottom:28px}.scores{grid-template-columns:repeat(5,minmax(0,1fr));gap:20px;margin-top:28px}
.scores>div{min-width:0}.scores p{font-size:.8125rem}.scores .subtle{display:block;min-height:44px}
.section-head{margin:40px 0 16px}.section-head h2{font-size:1.125rem}
.activity-item{padding:24px 0}.activity-title{font-size:.9375rem;margin:6px 0}.activity-heading time{font-size:.8125rem}
.activity-impact{gap:24px;margin-top:20px;padding:16px;background:var(--soft);border-radius:8px}
.activity-impact>div>span:first-child,.activity-impact>div>span:last-child{font-size:.8125rem}
.vocab-line{padding:20px 0;gap:24px}.vocab-line .subtle{font-size:.875rem}
.face-setup-controls{margin:0 0 24px}.face-pace{margin:24px 0}
.face-grid{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:24px;margin:28px 0;align-items:start}
.face-card{gap:6px}.face-card strong{margin-top:4px;line-height:1.4;font-weight:600}.face-card>span{font-size:.875rem;color:var(--muted)}
.face-card small{font-size:.875rem;line-height:1.5}.face-single{max-width:220px;margin:28px auto}
.face-scores{display:grid;grid-template-columns:1fr 1fr;gap:24px;padding-bottom:24px;border-bottom:1px solid var(--line);margin-bottom:24px}
.face-scores h2{font-size:1.875rem}.target-grid{gap:12px;margin:28px auto;max-width:336px}
.help-button{position:relative;width:30px;height:30px}.tooltip{font-size:.875rem;line-height:1.6}
@media(max-width:640px){
 header,.shell{padding-left:20px;padding-right:20px}header{padding-top:20px;padding-bottom:16px}
 main{padding-top:28px;padding-bottom:48px}nav{gap:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}nav button{padding:10px 4px;font-size:.875rem;min-height:44px}nav button:first-child{margin-left:0}
 .page-top{margin-bottom:24px}h1{font-size:1.625rem}.page-top p{font-size:.9375rem}
 .panel{padding-top:24px}.practice-row{padding:20px 0;gap:16px}.practice-description{max-width:none;font-size:.875rem}.practice-time{font-size:.8125rem;gap:12px}.practice-time>span{display:none}
 .home-bottom{padding-left:0;padding-right:0;gap:24px}.home-bottom>div{min-width:0}
 .tabs{gap:8px}.reading h2{font-size:1.4rem}.reading .prose{font-size:1.0625rem;line-height:1.8}
 .row{gap:12px}.reading>.row{justify-content:flex-start}.reading>.row .btn{flex:1}
 .options{gap:10px}.option{padding:14px;font-size:1rem}.feedback,.word-info{padding:16px}
 .scenario,.logic-passage{font-size:1.0625rem;line-height:1.8}.logic-question{font-size:1.0625rem}
 .scores{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.scores .subtle{min-height:0}
 .activity-heading{gap:16px}.activity-impact{gap:16px;padding:14px}
 .face-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 16px}.face-pace label{display:flex;flex-direction:column;align-items:flex-start;gap:8px}.face-pace select{margin-left:0}
 .memory-actions .btn{min-width:0;flex:1}.confidence{flex-wrap:wrap}.vocab-line{flex-wrap:wrap;gap:8px}
}
@media(max-width:360px){.answer-row{flex-wrap:wrap}.answer-row .btn{width:100%}.home-bottom{grid-template-columns:1fr}.practice-time{white-space:normal;text-align:right}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

.reading-filter{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:28px}.reading-filter select{margin:0;min-width:190px;flex:1;max-width:300px}.reading-filter .subtle{margin-left:auto;font-size:14px}@media(max-width:420px){.reading-filter{gap:10px}.reading-filter select{min-width:0;max-width:none}.reading-filter .subtle{flex-basis:100%;margin-left:0}}

/* Reserve space for changing control values, actions, and live status. */
.confidence{display:grid;grid-template-columns:minmax(0,1fr) 7rem 3.5rem;gap:8px 12px;align-items:center}
.confidence label{grid-column:1 / 3;white-space:normal;min-width:0}
.confidence>.help{grid-column:3;justify-self:end}
.confidence input[type="range"]{grid-column:1;grid-row:2;width:100%;min-width:0;margin:0;height:44px}
.confidence output{grid-column:2;grid-row:2;width:7rem;min-width:0;white-space:nowrap;text-align:right;font-variant-numeric:tabular-nums}
#confidence-clear{grid-column:3;grid-row:2;justify-self:end;white-space:nowrap}
#confidence-clear[hidden]{display:inline-flex!important;visibility:hidden;pointer-events:none}
.panel>.question-timing{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 30px;gap:4px 12px;max-width:none;align-items:center}
.question-timing>span:not(.timer-status){white-space:nowrap;font-variant-numeric:tabular-nums}
.question-timing>.help{justify-self:end}
.timer-status{grid-column:1 / -1;min-height:1.6em}
[role="timer"],#trial,#letter,#face-game-hits,#math-cap,#memory-cap,#activity-count{font-variant-numeric:tabular-nums}
#trial{min-width:10.5rem;text-align:right;white-space:nowrap}
#study-time{min-width:8rem;white-space:nowrap;text-align:right}
.game-status{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);align-items:start}
#face-game-time{white-space:nowrap}
#face-game-hits{text-align:right;min-height:3.2em}
#answer-error,#answer-error:empty,#face-name-error,#face-name-error:empty{display:block;min-height:1.6em}
#logic-level-description{min-height:3.2em}
@media(max-width:400px){.confidence{column-gap:8px;grid-template-columns:minmax(0,1fr) 6rem 3rem}.confidence output{width:6rem}.panel>.question-timing{column-gap:8px}#logic-level-description{min-height:4.8em}}
/* lockd: a focused training surface, with the assessment alongside daily practice. */
.brand{font-weight:750;letter-spacing:-1.3px;font-size:1.9rem}.brand-parent{font-size:.8125rem;color:var(--muted);margin-right:auto;margin-left:-8px}.brand-parent a{text-decoration:none}.brand-parent a:hover{text-decoration:underline}
.lockd-feature{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:32px;padding:28px;background:var(--feature);color:var(--feature-text);border-radius:12px;margin:0 0 32px}.lockd-feature .eyebrow{color:var(--feature-muted);letter-spacing:.1em;font-size:.75rem}.lockd-feature h2{font-size:1.45rem;max-width:24ch;margin:12px 0}.lockd-feature p{color:var(--feature-muted);max-width:49ch;font-size:.9375rem;margin-bottom:0}.feature-actions{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:12px}.lockd-feature .btn{background:var(--accent);color:var(--on-accent);border-color:var(--accent);white-space:nowrap}.lockd-feature .btn:hover{background:var(--accent-hover)}.lockd-feature .text-btn{color:var(--feature-text)}.practice-list{margin-top:8px}
.test-intro{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:40px;border-top:1px solid var(--line);padding-top:28px}.test-lead h2{font-size:1.6rem;line-height:1.35;margin:14px 0 20px}.test-lead>p{font-size:1rem}.test-lead>.subtle{font-size:.875rem;margin:16px 0}.test-facts{display:flex;gap:24px;padding:8px 0 24px;flex-wrap:wrap}.test-facts span{font-size:.8125rem;color:var(--muted)}.test-facts strong{display:block;font-size:1.2rem;font-weight:600;color:var(--ink)}.test-outline>div{display:flex;gap:16px;padding:15px 0;border-bottom:1px solid var(--line)}.test-outline>div:first-child{padding-top:0}.test-index{font-variant-numeric:tabular-nums;font-size:.8125rem;color:var(--muted);padding-top:3px}.test-outline strong{font-size:.9375rem}.test-outline p{font-size:.875rem;color:var(--muted);margin:4px 0 0}.test-ground-rules,.test-restart{margin:24px 0;font-size:.9375rem}.test-ground-rules summary,.test-restart summary{cursor:pointer}.test-ground-rules ul{padding-left:22px}.test-ground-rules li{margin:10px 0}.test-notice{padding:20px;background:var(--soft);border-radius:8px;margin:24px 0;font-size:.9375rem}.test-notice p{margin:8px 0}.test-resume{font-size:.875rem!important}.test-restart p{margin:12px 0}
.test-topline{display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:.875rem;color:var(--muted);margin-bottom:14px}.test-topline [role=timer]{min-width:8rem;text-align:right}.test-progress{display:block;width:100%;height:5px;margin:0 0 30px;accent-color:var(--accent);border:0;border-radius:4px;background:var(--line)}progress::-webkit-progress-bar{background:var(--line);border-radius:4px}progress::-webkit-progress-value{background:var(--accent);border-radius:4px}.assessment-question h2{margin:12px 0 20px;font-size:1.4rem}.test-context{font-size:1.0625rem;line-height:1.85;white-space:pre-line}.assessment-question h3{font-size:1.125rem;line-height:1.6;margin:26px 0 18px}.test-advice{padding:20px;border-left:3px solid var(--accent);background:var(--soft);border-radius:0 8px 8px 0;margin:24px 0}.test-advice p{margin:10px 0 0;line-height:1.8}.test-advice .eyebrow{font-size:.75rem;letter-spacing:.06em}.test-confidence{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:24px 0}.test-confidence select{min-width:9.5rem;margin:0}.test-save-note{margin-top:20px}.test-progress-card{padding-bottom:28px;margin-bottom:28px;border-bottom:1px solid var(--line)}.test-progress-card>.section-head{margin-top:0}.test-progress-card p{margin:12px 0 8px}
.profile-hero{display:flex;justify-content:space-between;align-items:center;gap:32px;padding:28px;background:var(--soft);border-radius:12px;margin-bottom:20px}.profile-hero .score-number{font-size:3rem}.profile-hero p{margin:8px 0 0;font-size:.9375rem}.profile-time{display:flex;flex-direction:column;gap:4px;max-width:150px;color:var(--muted);font-size:.8125rem}.profile-time strong{font-size:1.5rem;color:var(--ink);font-variant-numeric:tabular-nums}.profile-domains{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 28px;margin:24px 0}.profile-domains>div{padding:24px 0;border-bottom:1px solid var(--line)}.profile-domains>div>div{display:flex;justify-content:space-between;gap:12px}.profile-domains strong{font-size:.9375rem}.profile-domains progress{width:100%;height:5px;accent-color:var(--accent);display:block;margin:18px 0}.profile-domains p{font-size:.875rem;color:var(--muted);min-height:3.2em;margin-bottom:4px}.next-session{border:1px solid var(--line);border-radius:10px;padding:24px;margin:28px 0}.next-session h2{margin:12px 0}.next-session p{max-width:60ch}.profile-extras{display:grid;grid-template-columns:1fr 1fr;gap:32px;padding:24px 0;border-bottom:1px solid var(--line)}.profile-extras h2{font-size:1.125rem}.profile-extras p{font-size:.9375rem}.profile-extras p.subtle{font-size:.875rem}.decision-replay details{padding:18px 0;border-top:1px solid var(--line)}.decision-replay summary{display:flex;justify-content:space-between;gap:20px;cursor:pointer;font-size:.9375rem}.decision-replay summary:before{content:'+';color:var(--muted)}.decision-replay details[open]>summary:before{content:'−'}.decision-replay summary>span:first-child{flex:1}.replay-status{font-size:.8125rem;white-space:nowrap;color:var(--muted);font-variant-numeric:tabular-nums}.decision-replay details>p:first-of-type{margin-top:24px}.decision-replay textarea{margin-top:12px}.decision-replay blockquote{margin:20px 0;padding:12px 20px;border-left:2px solid var(--line)}.training-lesson{padding:20px;background:var(--soft);border-radius:8px;margin:24px 0}.training-lesson p{margin:0}.drill-history{list-style:none;padding:0}.drill-history li{display:flex;justify-content:space-between;gap:16px;border-top:1px solid var(--line);padding:12px 0;font-size:.875rem}.drill-history li>span:last-child{color:var(--muted)}
@media(max-width:700px){.test-intro{grid-template-columns:1fr;gap:28px}.test-outline{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.test-outline>div:first-child{padding-top:15px}.lockd-feature{grid-template-columns:1fr;gap:22px}.feature-actions{flex-direction:row;flex-wrap:wrap;align-items:center}.lockd-feature h2{max-width:none}.profile-hero{align-items:flex-start;padding:22px}.profile-extras{grid-template-columns:1fr;gap:12px}}
@media(max-width:450px){header{gap:16px}.brand-parent{margin-left:0;font-size:.75rem}#streak{font-size:.75rem}.test-outline{grid-template-columns:1fr}.lockd-feature{padding:22px}.profile-hero{flex-direction:column;gap:16px}.profile-time{max-width:none}.profile-domains{grid-template-columns:1fr}.profile-domains p{min-height:0}.test-facts{gap:20px}.decision-replay summary{gap:8px;flex-wrap:wrap}.replay-status{width:100%;padding-left:18px}.drill-history li{flex-direction:column;gap:4px}}

.confidence .confidence-clear{grid-column:3;grid-row:2;justify-self:end;white-space:nowrap}.confidence .confidence-clear[hidden]{display:inline-flex!important;visibility:hidden;pointer-events:none}

/* Theme-aware interactive and native-control states. */
.btn:hover:not(:disabled){border-color:var(--accent-hover);color:var(--on-accent-hover,#FFFFFF)}
.btn.secondary:hover:not(:disabled){border-color:var(--dim);color:var(--ink)}
.memory-actions .pressed{color:var(--ink)}
.text-btn{color:var(--accent-text);text-decoration-color:var(--dim)}
.word{color:var(--ink)}
input,select,textarea{accent-color:var(--accent)}
input::placeholder,textarea::placeholder{color:var(--dim);opacity:1}
progress::-moz-progress-bar{background:var(--accent)}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]){--on-accent-hover:#0F172A}}
:root[data-theme="dark"]{--on-accent-hover:#0F172A}

.header-actions{display:flex;align-items:center;gap:16px;margin-left:auto}
.theme-toggle{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:40px;padding:7px 11px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--ink);font-size:14px;white-space:nowrap}
.theme-toggle:hover{background:var(--raised);border-color:var(--dim)}
.theme-toggle svg{width:17px;height:17px;flex-shrink:0}
@media(max-width:450px){header{flex-wrap:wrap;column-gap:12px;row-gap:10px}.header-actions{gap:10px}.theme-toggle{padding:7px 9px}.brand-parent{margin-right:0}}

/* lockd interface: bold actions, editorial headings, quiet training surfaces. */
body{font-family:var(--font-body);-webkit-font-smoothing:antialiased}
header{max-width:1120px;padding:28px 32px 22px;gap:14px}.brand{font-size:34px;letter-spacing:-2px;font-weight:850;color:var(--accent-text)}.brand-parent{margin-left:0}.header-actions{gap:20px}
.shell{max-width:1120px;padding:0 32px}nav{gap:6px;border:1px solid var(--line);border-radius:16px;padding:6px;background:var(--surface);display:grid;grid-template-columns:repeat(8,minmax(0,1fr));overflow:visible}
nav button{padding:11px 6px;border:0;border-radius:10px;font-weight:550;min-height:44px}nav button.active{background:var(--accent-soft);color:var(--accent-text)}nav button:hover{background:var(--soft)}
main{max-width:800px;padding:44px 0 72px}main[data-view="home"]{max-width:none}h1{font-size:36px;font-weight:700;letter-spacing:-1.2px;line-height:1.15}h2{font-weight:650}h3{font-weight:650}.page-top{margin-bottom:32px}.page-top p{font-size:16px;max-width:60ch;line-height:1.65}
.home-intro{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin:4px 0 32px}.home-intro .eyebrow{font-size:12px;letter-spacing:.13em;font-weight:650;color:var(--muted)}.home-intro h1{font-family:Georgia,'Times New Roman',serif;font-size:clamp(48px,7vw,76px);font-weight:400;letter-spacing:-3px;margin:12px 0 0;line-height:1.05}.home-intro em{font-weight:400;color:var(--accent-text)}.home-intro p{font-size:16px;color:var(--muted);margin:0 0 4px;line-height:1.7}
.lockd-feature{padding:28px 32px;border:1px solid var(--line);border-radius:22px;gap:32px;margin-bottom:32px;background:var(--accent-soft);color:var(--ink)}.lockd-feature h2{font-size:27px;letter-spacing:-.8px;max-width:30ch;margin:10px 0}.lockd-feature .eyebrow{color:var(--accent-text);font-size:12px;font-weight:650;letter-spacing:.1em}.lockd-feature p{color:var(--muted);max-width:58ch;font-size:15px}.lockd-feature .text-btn{color:var(--accent-text)}.feature-actions{min-width:168px;align-items:stretch}.feature-actions .text-btn{text-align:center}
.btn{border-radius:12px;min-height:46px;padding:11px 20px;font-weight:650;gap:10px;box-shadow:0 3px 0 color-mix(in srgb,var(--accent) 65%,var(--ink));transition:background .15s,box-shadow .15s,transform .15s}.btn:active:not(:disabled){transform:translateY(2px);box-shadow:0 1px 0 var(--accent)}.btn.secondary{box-shadow:none;border-color:var(--line)}.text-btn{text-decoration:none;font-weight:550;padding:8px 0}.text-btn:hover{text-decoration:underline;text-underline-offset:4px}.theme-toggle{border-radius:12px;min-width:84px;min-height:42px}
main[data-view="home"]>.section-head{margin:28px 0 16px}main[data-view="home"]>.section-head h2{font-size:21px;letter-spacing:-.5px}main[data-view="home"]>.section-head>span{font-size:14px}
main[data-view="home"] .practice-list{border:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px;margin:0}
main[data-view="home"] .practice-row{grid-column:span 2;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:18px;padding:24px;border:1px solid var(--line);border-radius:18px;background:var(--surface);min-width:0;transition:border-color .15s,background .15s,box-shadow .15s}
main[data-view="home"] .practice-row:nth-child(-n+2){grid-column:span 3}main[data-view="home"] .practice-row:hover{border-color:var(--accent);background:var(--soft);box-shadow:0 4px 18px color-mix(in srgb,var(--ink) 5%,transparent)}
.practice-number{display:flex;width:36px;height:30px;align-items:center;justify-content:center;font-size:12px;font-weight:650;font-variant-numeric:tabular-nums;border-radius:8px;background:var(--accent-soft);color:var(--accent-text)}
main[data-view="home"] .practice-row strong{font-size:22px;font-weight:700;letter-spacing:-.6px}main[data-view="home"] .practice-description{font-size:14px;line-height:1.6;margin-top:6px;max-width:none}main[data-view="home"] .practice-time{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;margin-top:auto;padding-top:16px;border-top:1px solid var(--line);text-align:left;font-size:13px}main[data-view="home"] .session-action{display:inline;font-size:13px;color:var(--accent-text);font-weight:600}
.home-bottom{padding:24px 0;margin-top:16px;gap:24px;border-bottom:1px solid var(--line)}.home-bottom>div+div{border-left:1px solid var(--line);padding-left:24px}.score-number{font-variant-numeric:tabular-nums;font-weight:650;letter-spacing:-1.6px}.home-bottom .score-number{font-size:36px}.home-bottom p{font-size:14px}.section-head>span{font-size:14px}
.chip{border-radius:10px;min-height:40px;padding:8px 13px;font-weight:500}.chip.selected{box-shadow:0 2px 0 color-mix(in srgb,var(--accent) 65%,var(--ink))}.tabs{gap:8px}.field{border-radius:12px;min-height:46px}.option{border-radius:12px;padding:17px 20px}.option-letter{display:flex;align-items:center;justify-content:center;width:28px;height:28px;flex-shrink:0;border:1px solid var(--line);border-radius:8px;color:var(--muted);font-weight:550}.option.chosen .option-letter{border-color:var(--accent);color:var(--accent-text)}
.reading{padding-top:22px}.reading h2{font-family:Georgia,'Times New Roman',serif;font-size:34px;font-weight:400;line-height:1.25;letter-spacing:-.6px}.reading .prose{font-family:Georgia,'Times New Roman',serif;font-size:22px;line-height:1.85}.word-info,.test-notice,.training-lesson{border:1px solid var(--line);border-radius:14px}.reading-filter{padding:16px;background:var(--surface);border:1px solid var(--line);border-radius:14px}
.assessment-question{padding:28px;background:var(--surface);border:1px solid var(--line);border-radius:20px}.assessment-question h2{font-size:25px}.assessment-question>.eyebrow{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-text);font-weight:600}.test-intro{border-top:0;padding-top:0;gap:32px}.test-lead{padding:28px;background:var(--soft);border:1px solid var(--line);border-radius:20px}.test-lead h2{font-family:Georgia,'Times New Roman',serif;font-weight:400;font-size:32px;letter-spacing:-.6px}.test-outline{padding-top:8px}.test-facts{gap:22px}.test-ground-rules{padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.test-save-note{font-size:13px}
.nback-grid div{border-radius:12px}.target-tile{border-radius:14px}.profile-hero{background:var(--accent-soft);border-radius:20px}.profile-domains{gap:14px}.profile-domains>div{border:1px solid var(--line);background:var(--surface);border-radius:14px;padding:22px}.profile-extras{grid-template-columns:1fr}.next-session{border-radius:16px;background:var(--surface)}.feedback{border-radius:0 12px 12px 0}.activity-impact{border-radius:12px}.decision-replay details{padding:20px 0}.face-card .portrait{border-radius:14px}
@media(max-width:700px){header{padding:22px 20px 18px}.shell{padding:0 20px}nav{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;border-radius:14px}nav button{padding:9px 4px}main{padding-top:30px}.home-intro{align-items:flex-start;gap:12px}.home-intro h1{font-size:56px}.home-intro p{font-size:14px;align-self:flex-end}.lockd-feature{padding:24px;gap:20px}.lockd-feature h2{font-size:25px}.feature-actions{align-items:center;min-width:0}.feature-actions .text-btn{text-align:left}.practice-list{gap:12px!important}main[data-view="home"] .practice-row{grid-column:span 3;padding:20px;gap:14px}main[data-view="home"] .practice-row:last-child{grid-column:span 6}main[data-view="home"] .practice-description{font-size:14px}.reading h2{font-size:30px}.reading .prose{font-size:20px}.assessment-question{padding:22px}.test-lead{padding:24px}.profile-domains>div{padding:18px}}
@media(max-width:450px){header{gap:10px}.brand{font-size:30px}.brand-parent{font-size:12px}.header-actions{gap:8px}#streak{display:none}.theme-toggle{min-width:78px;padding:7px 9px}.home-intro{display:block;margin-bottom:26px}.home-intro h1{font-size:56px}.home-intro p{margin:14px 0 0;font-size:15px}.home-intro p br{display:none}.home-intro p br:after{content:' '}.lockd-feature{padding:22px}.lockd-feature h2{font-size:25px}.feature-actions{gap:14px}.practice-time{flex-wrap:wrap}main[data-view="home"] .practice-row{padding:18px;gap:12px}main[data-view="home"] .practice-row strong{font-size:20px}main[data-view="home"] .session-action{font-size:12px}.home-bottom{gap:18px}.home-bottom>div+div{padding-left:18px}.home-bottom p{font-size:13px}.assessment-question{padding:18px}.assessment-question h2{font-size:23px}.test-topline{font-size:13px}.profile-domains{grid-template-columns:1fr}.reading-filter .subtle{margin:0}.page-top h1{font-size:30px}}
@media(prefers-reduced-motion:reduce){.btn,.practice-row{transition:none}}

nav button:first-child{margin-left:0}

/* Keep labels informative and controls understated. */
.home-intro h1{margin-top:0}
.lockd-feature h2{margin-top:0}
.lockd-feature .eyebrow,.assessment-question>.eyebrow,.test-advice .eyebrow{letter-spacing:0;text-transform:none;font-size:14px;font-weight:500}
.btn,.chip.selected{box-shadow:none}
.btn:active:not(:disabled){box-shadow:none;transform:none}
main[data-view="home"] .practice-row:hover{box-shadow:none}
main[data-view="home"] .practice-time{padding-top:0;border-top:0}
.test-lead h2{margin-top:0}

/* Training home: recent effort, three suggestions, and comparable results. */
.training-summary{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:24px;padding:24px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.training-summary>div{display:flex;flex-direction:column;gap:5px}.training-summary>div+div{border-left:1px solid var(--line);padding-left:24px}.training-summary strong{font-size:32px;line-height:1.2;font-weight:650;font-variant-numeric:tabular-nums;letter-spacing:-1px}.training-summary strong>span{font-size:16px;font-weight:400;color:var(--muted);letter-spacing:0}.training-summary span{font-size:14px}.training-summary small{font-size:13px;color:var(--muted)}
.suggested-sessions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.suggestion-card{border:1px solid var(--line);border-radius:16px;padding:22px;background:var(--surface);display:flex;flex-direction:column;align-items:flex-start}.suggestion-title{display:flex;align-items:baseline;justify-content:space-between;gap:10px;flex-wrap:wrap;width:100%}.suggestion-title h3{margin:0;font-size:21px;letter-spacing:-.5px}.suggestion-title .subtle{font-size:13px}.suggestion-card p{margin:14px 0 22px;color:var(--muted);font-size:15px;line-height:1.6}.suggestion-card .btn{margin-top:auto;width:100%;color:var(--accent-text)}
.free-practice{display:flex;gap:10px;flex-wrap:wrap}.free-practice .chip{background:transparent;color:var(--ink);padding:9px 18px}.free-practice .chip:hover{border-color:var(--accent);color:var(--accent-text)}
.training-progress{border-top:1px solid var(--line)}.training-progress-row{display:flex;justify-content:space-between;gap:24px;padding:18px 0;border-bottom:1px solid var(--line)}.training-progress-row>div{display:flex;flex-direction:column;gap:4px}.training-progress-row>div:last-child{text-align:right}.training-progress-row strong{font-size:15px;font-weight:550}.training-progress-row span{font-size:14px;color:var(--muted)}
.home-recent{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}.home-recent li{display:flex;justify-content:space-between;gap:24px;border-bottom:1px solid var(--line);padding:16px 0;align-items:center}.home-recent li>div{display:flex;flex-direction:column;gap:4px}.home-recent strong{font-weight:550;font-size:15px}.home-recent span{font-size:14px;color:var(--muted)}.home-recent li>span{text-align:right}
.home-assessment{margin-top:36px}.home-assessment .lockd-feature{margin-bottom:0;background:var(--soft)}.home-assessment .lockd-feature h2{font-size:23px}.home-assessment .lockd-feature .btn{background:var(--surface);border-color:var(--line);color:var(--accent-text)}.home-assessment .lockd-feature .btn:hover{background:var(--raised)}
@media(max-width:760px){.suggested-sessions{grid-template-columns:1fr}.suggestion-card{display:grid;grid-template-columns:1fr auto;gap:8px 20px;padding:20px}.suggestion-title{grid-column:1;justify-content:flex-start}.suggestion-card p{grid-column:1;margin:0}.suggestion-card .btn{grid-column:2;grid-row:1/3;width:auto;align-self:center;margin:0}.training-summary{gap:16px}.training-summary>div+div{padding-left:16px}}
@media(max-width:450px){.training-summary{grid-template-columns:1fr 1fr;gap:18px;padding:20px 0}.training-summary>div:last-child{grid-column:1/-1;border:0;padding:0;flex-direction:row;align-items:baseline;gap:8px}.training-summary>div:last-child strong{font-size:18px;letter-spacing:0}.training-summary>div:last-child small{display:none}.suggestion-card{display:flex;gap:0;padding:18px}.suggestion-title{justify-content:space-between}.suggestion-card p{margin:12px 0 18px}.suggestion-card .btn{width:100%}.training-progress-row{gap:14px}.training-progress-row>div:last-child{max-width:58%}.home-recent li{align-items:flex-start;gap:12px}.home-recent li>span{max-width:48%}.section-head .text-btn{font-size:14px;white-space:nowrap}}

/* Start immediately; keep choices and detail in a clear order. */
#streak{display:none}
nav{grid-template-columns:repeat(4,minmax(0,1fr))}
main[data-view="home"]{max-width:760px;padding-top:42px}
.start-heading h1{font-size:36px;letter-spacing:-1.1px;margin:0 0 26px;line-height:1.2}
.start-session{padding:28px;border:1px solid var(--line);border-radius:18px;background:var(--accent-soft);display:flex;gap:28px;align-items:center;justify-content:space-between}
.start-session>div{min-width:0;flex:1}.start-session-meta{display:flex;gap:16px;align-items:center;justify-content:space-between;font-size:14px;color:var(--muted)}.start-session h2{font-size:30px;letter-spacing:-.8px;margin:14px 0 8px;line-height:1.2}.start-session p{font-size:16px;color:var(--muted);margin:0;max-width:38ch;line-height:1.6}.start-session .btn{flex-shrink:0;min-height:44px;padding:13px 24px;font-size:16px}
.other-sessions{display:flex;gap:12px;margin:16px 0}.other-sessions>button{flex:1;display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);padding:17px 18px;text-align:left;min-width:0}.other-sessions>button:hover{border-color:var(--accent);background:var(--soft)}.other-sessions>button>span:first-child{font-size:15px;font-weight:600}.other-sessions>button>span:last-child{font-size:13px;color:var(--muted);white-space:nowrap}
.browse-activities{display:block;margin:16px auto 0;text-align:center;font-size:15px;min-height:44px}
.home-recap{margin-top:34px;border-top:1px solid var(--line);padding-top:20px}.home-recap>summary{cursor:pointer;display:flex;align-items:center;gap:12px;list-style:none;min-height:36px}.home-recap>summary::-webkit-details-marker{display:none}.home-recap>summary::after{content:'+';font-size:20px;color:var(--muted);margin-left:4px}.home-recap[open]>summary::after{content:'−'}.home-recap>summary>span:first-child{font-weight:550;font-size:16px}.home-recap>summary>span:last-child{margin-left:auto;font-size:14px;color:var(--muted)}.home-recap>.subtle{margin-top:18px}.home-recap>.text-btn{margin-top:16px}.home-recap h3{font-size:17px}
.activity-picker{border-top:1px solid var(--line)}.activity-picker>button{width:100%;display:flex;align-items:center;justify-content:space-between;gap:20px;border:0;border-bottom:1px solid var(--line);background:none;color:var(--ink);padding:24px 8px;text-align:left}.activity-picker>button:hover{background:var(--soft)}.activity-picker>button>span:first-child{display:flex;flex-direction:column;gap:4px}.activity-picker strong{font-size:21px;font-weight:600;letter-spacing:-.5px}.activity-picker>button>span:last-child,.activity-picker>button>span:first-child>span{font-size:14px;color:var(--muted)}
.resume-test{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:20px;font-size:14px;color:var(--muted)}
@media(max-width:600px){main[data-view="home"]{padding-top:28px}.start-heading h1{font-size:30px;margin-bottom:22px}.start-session{display:block;padding:24px}.start-session h2{font-size:28px}.start-session .btn{width:100%;margin-top:24px}.start-session p{font-size:15px}.other-sessions{flex-direction:column;gap:10px;margin:12px 0}.other-sessions>button{padding:17px 18px}.browse-activities{margin-top:12px}.home-recap{margin-top:24px}.home-recap>summary{gap:8px}.home-recap>summary>span:last-child{font-size:13px}.activity-picker>button{padding:22px 0}.resume-test{flex-wrap:wrap}}

/* A compact arcade shelf: six tactile tiles, one clear place to play. */
header{padding-top:20px;padding-bottom:16px}.brand{font-family:var(--font-display);font-size:38px;font-weight:900;letter-spacing:-2px;line-height:1.1}
nav{grid-template-columns:repeat(3,minmax(0,1fr));max-width:420px;margin:0 auto;border-radius:22px;padding:5px;border-width:2px;background:var(--surface)}
nav button{min-height:38px;padding:7px 14px;border-radius:16px;font-weight:750;font-size:14px}nav button.active{background:var(--accent);color:var(--on-accent)}
.theme-toggle{border-radius:16px;border-width:2px;font-weight:650}
main[data-view="home"],main[data-view="activities"]{max-width:960px;padding:22px 0 24px}
.play-heading{margin-bottom:18px;text-align:center}.play-heading h1{font-family:var(--font-display);font-size:32px;font-weight:850;letter-spacing:-1px;margin:0;line-height:1.2}
.workout-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.workout-card{--tile:#DDEEFF;--edge:#9ECAEE;--tile-ink:#153B64;--tile-muted:#3A5873;--tile-button:#FFFFFF;display:flex;flex-direction:column;align-items:flex-start;min-width:0;text-align:left;color:var(--tile-ink);background:var(--tile);border:2px solid var(--edge);border-radius:28px;padding:18px 22px 16px;box-shadow:0 6px 0 var(--edge);position:relative;transition:transform .16s,box-shadow .16s;isolation:isolate}
.workout-quant{--tile:#FFEBC2;--edge:#EBC782;--tile-ink:#664315;--tile-muted:#795934}
.workout-memory{--tile:#E9E0FF;--edge:#C3AEED;--tile-ink:#483277;--tile-muted:#685184}
.workout-read{--tile:#D9F3E8;--edge:#A4D3C0;--tile-ink:#1D5745;--tile-muted:#396758}
.workout-faces{--tile:#FFE3DD;--edge:#EBB5A7;--tile-ink:#763F32;--tile-muted:#865B50}
.workout-test{--tile:#E1E9FF;--edge:#B2C3F1;--tile-ink:#304B88;--tile-muted:#526587}
.workout-card:focus-visible{outline:3px solid var(--accent-text);outline-offset:7px}
@media(hover:hover){.workout-card:hover{transform:translateY(-3px);box-shadow:0 9px 0 var(--edge)}.workout-card:hover .workout-art{transform:rotate(-5deg) translateY(-2px)}}
.workout-card:active{transform:translateY(5px);box-shadow:0 1px 0 var(--edge)}
.workout-top{height:80px;width:100%;display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:4px}
.workout-art{display:block;flex-shrink:0;width:88px;height:88px;margin:-8px 0 0 -8px;background-image:url('assets/activity-sprite.png');clip-path:inset(4px);background-repeat:no-repeat;background-size:300% 200%;transition:transform .2s}
.art-reason{background-position:0 0}.art-quant{background-position:50% 0}.art-memory{background-position:100% 0}.art-read{background-position:0 100%}.art-faces{background-position:50% 100%}.art-test{background-position:100% 100%}
.workout-tag{background:#FACC15;color:#422006;font-size:12px;font-weight:800;border-radius:99px;line-height:1.2;padding:7px 10px;white-space:nowrap}
.workout-name{display:block;font-family:var(--font-display);font-size:24px;font-weight:850;line-height:1.2;letter-spacing:-.6px}
.workout-description{font-size:14px;line-height:1.45;color:var(--tile-muted);margin-top:5px;min-height:21px}
.workout-bottom{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:16px;font-size:13px;color:var(--tile-muted)}
.workout-action{font-size:14px;font-weight:800;color:var(--tile-ink);background:var(--tile-button);border-radius:99px;padding:5px 16px;line-height:1.35;min-width:64px;text-align:center}
.play-recap{display:flex;align-items:center;gap:20px;padding:18px 0 0;margin-top:16px;color:var(--muted)}
.play-recap-count{display:flex;align-items:center;gap:9px;white-space:nowrap}.play-recap-count strong{font-size:30px;color:var(--ink);font-weight:800;line-height:1}.play-recap-count span{font-size:14px}
.play-recap-detail{display:flex;flex-direction:column;gap:2px;font-size:13px;line-height:1.45;min-width:0}.play-recap-detail>span:first-child{color:var(--ink);font-weight:650}.play-recap>.text-btn{margin-left:auto;white-space:nowrap;font-weight:750;font-size:14px}
/* Carry the rounded controls into workouts without disturbing their reading rhythm. */
.btn{border-radius:18px;border-width:2px;font-weight:750}.chip{border-radius:14px;border-width:2px}.option,.field{border-radius:18px}.option{border-width:2px}.option-letter{border-radius:10px}.assessment-question,.test-lead,.profile-hero,.profile-domains>div{border-radius:24px}.nback-grid div,.target-tile{border-radius:18px}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]) .workout-card{--tile:#18374A;--edge:#2F576E;--tile-ink:#D2F0FF;--tile-muted:#A5CDDE;--tile-button:#294F64}:root:not([data-theme="light"]) .workout-quant{--tile:#42341C;--edge:#66522E;--tile-ink:#FFE4A5;--tile-muted:#DAC396;--tile-button:#5B4624}:root:not([data-theme="light"]) .workout-memory{--tile:#342749;--edge:#544069;--tile-ink:#E9D7FF;--tile-muted:#C6B0DB;--tile-button:#4A3764}:root:not([data-theme="light"]) .workout-read{--tile:#193C32;--edge:#2B5D4B;--tile-ink:#C3F1DD;--tile-muted:#A0D0BC;--tile-button:#285341}:root:not([data-theme="light"]) .workout-faces{--tile:#472C2C;--edge:#6C4441;--tile-ink:#FFDBD0;--tile-muted:#DFB5AA;--tile-button:#603F3A}:root:not([data-theme="light"]) .workout-test{--tile:#283454;--edge:#405780;--tile-ink:#DEE8FF;--tile-muted:#B7C8EB;--tile-button:#374969}}
:root[data-theme="dark"] .workout-card{--tile:#18374A;--edge:#2F576E;--tile-ink:#D2F0FF;--tile-muted:#A5CDDE;--tile-button:#294F64}
:root[data-theme="dark"] .workout-quant{--tile:#42341C;--edge:#66522E;--tile-ink:#FFE4A5;--tile-muted:#DAC396;--tile-button:#5B4624}
:root[data-theme="dark"] .workout-memory{--tile:#342749;--edge:#544069;--tile-ink:#E9D7FF;--tile-muted:#C6B0DB;--tile-button:#4A3764}
:root[data-theme="dark"] .workout-read{--tile:#193C32;--edge:#2B5D4B;--tile-ink:#C3F1DD;--tile-muted:#A0D0BC;--tile-button:#285341}
:root[data-theme="dark"] .workout-faces{--tile:#472C2C;--edge:#6C4441;--tile-ink:#FFDBD0;--tile-muted:#DFB5AA;--tile-button:#603F3A}
:root[data-theme="dark"] .workout-test{--tile:#283454;--edge:#405780;--tile-ink:#DEE8FF;--tile-muted:#B7C8EB;--tile-button:#374969}
@media(max-width:700px){header{padding:12px 20px 8px}.brand{font-size:33px;line-height:1.1}.shell{padding:0 18px}nav{max-width:360px}main[data-view="home"],main[data-view="activities"]{padding-top:14px}.play-heading{margin-bottom:12px}.play-heading h1{font-size:28px}.workout-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 12px}.workout-card{padding:13px 15px 12px;border-radius:23px}.workout-top{height:48px;margin-bottom:3px}.workout-art{width:60px;height:60px;margin:-8px 0 0 -8px}.workout-tag{font-size:12px;padding:5px 7px}.workout-name{font-size:20px;letter-spacing:-.4px}.workout-description{font-size:14px;line-height:1.35;min-height:38px}.workout-bottom{margin-top:9px;font-size:12px;gap:5px}.workout-action{font-size:13px;padding:4px 12px;min-width:54px}.play-recap{gap:14px;padding-top:12px;margin-top:13px;flex-wrap:wrap}.play-recap-count strong{font-size:26px}.play-recap-count span{font-size:13px}.play-recap-detail{display:none}.play-recap>.text-btn{font-size:14px}}
@media(max-width:360px){.shell{padding:0 12px}.workout-card{padding:12px}.workout-name{font-size:19px}.workout-tag{padding:4px 6px}.workout-top{height:48px}.workout-art{width:58px;height:58px}.play-heading h1{font-size:26px}}
@media(prefers-reduced-motion:reduce){.workout-card,.workout-art{transition:none}.workout-card:hover,.workout-card:active,.workout-card:hover .workout-art{transform:none}}
@media(max-width:600px){}

/* Arcade workouts: tactile boards and compact, readable controls. */
.art-rush,.art-twin{background-image:url('assets/arcade-icons.png');background-size:300% 100%}.art-rush{background-position:50% 0}.art-twin{background-position:100% 0}
.workout-side{--tile:#DBF1F9;--edge:#A0CFE0;--tile-ink:#20546A;--tile-muted:#376577}.workout-rush{--tile:#FFF0BD;--edge:#E5C873;--tile-ink:#604514;--tile-muted:#775C28}.workout-twin{--tile:#F4E1F6;--edge:#D8AFDB;--tile-ink:#693E71;--tile-muted:#785280}
.workout-card{padding:14px 18px 12px;border-radius:24px}.workout-top{height:46px;margin-bottom:5px}.workout-art{width:60px;height:60px;margin:-8px 0 0 -6px}.workout-name{font-size:22px}.workout-bottom{margin-top:10px}.workout-grid{gap:16px}
.arcade-intro{max-width:500px;margin:auto;display:flex;flex-direction:column;align-items:center;text-align:center;gap:22px;padding:22px 24px;background:var(--surface);border:2px solid var(--line);border-radius:28px}.arcade-intro .workout-art,.arcade-result .workout-art{width:110px;height:110px;display:block;margin:0 auto}.arcade-intro p{margin:0}.arcade-intro>.btn{width:100%}.arcade-shell{max-width:520px;margin:auto}.arcade-status{display:flex;align-items:center;gap:12px;justify-content:space-between;margin-bottom:18px;font-size:14px}.arcade-status .chip{margin-left:auto;font-size:13px;padding:6px 12px;min-height:36px}.arcade-status strong{white-space:nowrap}
.arcade-feedback{display:flex;justify-content:center;align-items:center;text-align:center;min-height:54px;font-size:15px;font-weight:650;margin:12px 0}.arcade-tools{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.arcade-note{text-align:center;margin:14px auto 0;max-width:46ch}.arcade-result{text-align:center;padding:24px;border:2px solid var(--line);border-radius:26px;background:var(--surface)}.arcade-result h2{font-size:30px;margin:16px 0 12px}.arcade-stars{color:var(--warning);font-size:56px;letter-spacing:6px}.arcade-result>.text-btn{margin-top:20px}.arcade-result .arcade-tools{margin-top:22px}
.token-0{--token:#2878D8;--token-soft:#DAECFF;--token-edge:#8FBEE8}.token-1{--token:#936113;--token-soft:#FFE9A1;--token-edge:#D9B958}.token-2{--token:#B33985;--token-soft:#FFDCF0;--token-edge:#DF9BC4}.token-3{--token:#237462;--token-soft:#CCF1E1;--token-edge:#87C5AB}
.rush-rule{text-align:center;background:var(--accent-soft);border:2px solid var(--accent);padding:16px;border-radius:22px;font-size:23px;color:var(--accent-text)}.rush-rule strong{font-weight:900}.rush-rule.rule-changed{animation:rule-bump .4s ease-out}.rush-lane{display:flex;justify-content:center;align-items:center;min-height:190px;margin:16px 0;background:var(--soft);border:2px dashed var(--line);border-radius:26px}.rush-piece{display:flex;align-items:center;justify-content:center;background:var(--token-soft);border:3px solid var(--token-edge);border-radius:30px;box-shadow:0 7px 0 var(--token-edge);width:118px;height:118px;color:var(--token);font-size:65px;line-height:1;animation:piece-in .2s ease-out}.rush-gates{display:grid;grid-template-columns:1fr 1fr;gap:16px}.rush-gate{background:var(--token-soft,var(--surface));color:var(--token,var(--ink));border:2px solid var(--token-edge,var(--line));border-radius:24px;display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px;font-size:18px;box-shadow:0 4px 0 var(--token-edge,var(--line))}.rush-gate>span{font-size:32px;line-height:1}.rush-gate:disabled{opacity:.7}.rush-gate.gate-correct{outline:3px solid var(--success);outline-offset:2px}.rush-gate kbd{color:inherit;font-size:13px}
@keyframes piece-in{from{transform:translateY(-18px);opacity:.2}to{transform:translateY(0);opacity:1}}@keyframes rule-bump{50%{transform:scale(1.035)}}
:root[data-theme="dark"] .workout-side{--tile:#193A46;--edge:#2F586B;--tile-ink:#D0F2FF;--tile-muted:#A1CBDA;--tile-button:#295364}:root[data-theme="dark"] .workout-rush{--tile:#42351B;--edge:#68562D;--tile-ink:#FFEBAA;--tile-muted:#D8C38B;--tile-button:#5B4724}:root[data-theme="dark"] .workout-twin{--tile:#412846;--edge:#65406C;--tile-ink:#F3D5FB;--tile-muted:#D7B2DE;--tile-button:#593861}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]) .workout-side{--tile:#193A46;--edge:#2F586B;--tile-ink:#D0F2FF;--tile-muted:#A1CBDA;--tile-button:#295364}:root:not([data-theme="light"]) .workout-rush{--tile:#42351B;--edge:#68562D;--tile-ink:#FFEBAA;--tile-muted:#D8C38B;--tile-button:#5B4724}:root:not([data-theme="light"]) .workout-twin{--tile:#412846;--edge:#65406C;--tile-ink:#F3D5FB;--tile-muted:#D7B2DE;--tile-button:#593861}}
main[data-view="side"],main[data-view="rush"],main[data-view="twin"]{padding-top:20px;padding-bottom:28px}main[data-view="side"]>.page-top,main[data-view="rush"]>.page-top,main[data-view="twin"]>.page-top{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:20px}main[data-view="side"]>.page-top h1,main[data-view="rush"]>.page-top h1,main[data-view="twin"]>.page-top h1{font-size:25px;margin:0}main[data-view="side"]>.page-top p,main[data-view="rush"]>.page-top p,main[data-view="twin"]>.page-top p{font-size:14px;margin:0}
@media(max-width:700px){.workout-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:13px 9px}.workout-card{padding:12px 10px 10px;border-radius:21px;align-items:center;text-align:center}.workout-top{height:44px;justify-content:center;margin-bottom:6px}.workout-art{width:52px;height:52px;margin:-5px 0 0}.workout-tag{display:none}.workout-name{font-size:16px;line-height:1.2;letter-spacing:-.3px;min-height:39px;display:flex;align-items:center;justify-content:center}.workout-description{display:none}.workout-bottom{justify-content:center;margin-top:5px;font-size:12px}.workout-action{display:none}.arcade-status{gap:7px;font-size:13px}.arcade-intro{padding:22px 18px}.arcade-intro .workout-art{width:100px;height:100px}.rush-lane{min-height:145px}.rush-piece{width:96px;height:96px;font-size:55px}.rush-gate{padding:13px;gap:6px}.rush-rule{font-size:21px;padding:12px}.arcade-feedback{min-height:52px;font-size:14px}.arcade-status .chip{padding:6px 9px}main[data-view="side"]>.page-top,main[data-view="rush"]>.page-top,main[data-view="twin"]>.page-top{flex-wrap:wrap;gap:3px}main[data-view="side"]>.page-top h1,main[data-view="rush"]>.page-top h1,main[data-view="twin"]>.page-top h1{font-size:22px}}
@media(prefers-reduced-motion:reduce){.rush-piece,.rush-rule.rule-changed{animation:none}}.rush-piece{flex-direction:column;gap:4px}.rush-piece small{font-size:14px;line-height:1.2;font-weight:750}
.workout-top{height:40px}.workout-card{padding-top:12px;padding-bottom:10px}.workout-bottom{margin-top:8px}.play-heading{margin-bottom:14px}main[data-view="home"]{padding-top:18px}.play-recap{padding-top:12px;margin-top:12px}
@media(prefers-reduced-motion:reduce){}

/* Coin Dash: fixed track and controls stay put while the game moves. */
.coin-intro{text-align:center;max-width:430px;margin:auto}.coin-intro h2{font-size:28px}.coin-intro>.btn{min-width:180px;margin-top:12px}.coin-legend{display:flex;justify-content:center;gap:30px;margin:22px 0}.coin-legend>span{display:flex;align-items:center;gap:10px}.coin-legend b{display:grid;place-items:center;width:42px;height:42px;border-radius:14px;font-size:28px}
#coin-stage{max-width:390px;margin:auto}.coin-status{display:flex;justify-content:space-between;gap:12px;font-size:14px;font-variant-numeric:tabular-nums;margin-bottom:12px}.coin-track{position:relative;height:310px;overflow:hidden;border:2px solid var(--line);border-radius:24px;background:var(--soft)}.coin-lane-lines{position:absolute;inset:0;background:linear-gradient(90deg,transparent 33%,var(--line) 33%,var(--line) 33.5%,transparent 33.5%,transparent 66.5%,var(--line) 66.5%,var(--line) 67%,transparent 67%)}.coin-item{position:absolute;transform:translate(-50%,-50%);display:grid;place-items:center;width:34px;height:34px;border-radius:11px;font-size:30px;font-weight:900;transition:top 40ms linear}.coin-gold{color:#9C6500;background:#FFE696;box-shadow:0 3px 0 #D3AA49}.coin-rock{color:#B43442;background:#FAD7DB;box-shadow:0 3px 0 #CF97A0}.coin-catch-line{position:absolute;top:82%;left:0;right:0;border-top:2px dashed var(--line)}#coin-basket{position:absolute;top:82%;left:50%;transform:translate(-50%,-50%);font-size:38px;line-height:1;transition:left .08s ease-out}.coin-controls{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:14px}.coin-controls .chip{min-height:48px;touch-action:manipulation}.coin-controls [aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.coin-instruction{text-align:center;margin:12px 0 0;font-size:13px}.coin-feedback{text-align:center;min-height:24px;margin:8px 0 0;font-size:14px}main:has(#coin-stage)>.page-top{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:18px}main:has(#coin-stage)>.page-top h1{font-size:22px;margin:0}main:has(#coin-stage)>.page-top p{font-size:14px;margin:0}main:has(#coin-stage)>.workspace{padding-top:0;border:0}@media(max-width:600px){.coin-track{height:280px}main:has(#coin-stage){padding-top:20px}}

.direction-pad{display:grid;grid-template-columns:repeat(3,56px);grid-template-rows:repeat(2,48px);gap:7px;justify-content:center;margin:14px auto}.direction-pad button{font-size:25px;padding:0;touch-action:manipulation}.direction-0{grid-area:2/1}.direction-1{grid-area:1/2}.direction-2{grid-area:2/3}.direction-3{grid-area:2/2}.twin-boards{display:grid;grid-template-columns:1fr 1fr;gap:18px;touch-action:none}.twin-side>strong{display:block;text-align:center;color:var(--token);font-size:15px;margin-bottom:10px}.twin-board{display:grid;grid-template-columns:repeat(var(--board-size),1fr);gap:4px;padding:8px;border:2px solid var(--token-edge);border-radius:18px;background:var(--token-soft)}.twin-cell{aspect-ratio:1;display:grid;place-items:center;background:var(--surface);border-radius:5px;font-size:23px;line-height:1;color:var(--token)}.twin-wall{background:var(--token);opacity:.55}.twin-player{background:var(--token);color:white;box-shadow:0 2px 0 var(--token-edge)}.twin-goal{outline:2px dashed var(--token);outline-offset:-3px}.twin-player.twin-goal{background:var(--success);color:white}.twin-boards+.direction-pad{margin-top:22px}@media(max-width:600px){.twin-boards{gap:10px}.twin-board{padding:6px;gap:3px;border-radius:14px}.twin-cell{font-size:20px}}

.art-twin{background-image:url('assets/trail-twin-icons.png');background-size:200% 100%}.art-twin{background-position:100% 0}.twin-boards{max-width:460px;margin-inline:auto}.twin-side>strong{color:var(--ink)}.twin-wall{background:var(--ink);opacity:.3}.twin-wall::after{content:"×";font-size:18px;color:var(--surface)}.twin-goal{background:var(--token-soft);color:var(--token)}.twin-player.twin-goal{background:var(--success);color:white}

/* Clear game tokens, with a consistent catch point and no emoji baseline. */
.coin-item{width:26px;height:26px;font-size:0;box-shadow:none}.coin-gold{border:3px solid #D49B19;border-radius:50%;background:#F9CD52;box-shadow:inset 0 0 0 3px #FFE9A0}.coin-rock{background:transparent;border:0;box-shadow:none;position:relative}.coin-item.coin-rock{position:absolute}.coin-rock::before,.coin-rock::after{content:"";position:absolute;left:calc(50% - 3px);top:2px;width:6px;height:calc(100% - 4px);border-radius:3px;background:#D1455A;transform:rotate(45deg)}.coin-rock::after{transform:rotate(-45deg)}.coin-legend b{width:28px;height:28px;box-sizing:border-box;font-size:0}.coin-legend .coin-gold{border-radius:50%}#coin-basket{width:52px;height:13px;font-size:0;border:2px solid var(--accent);border-radius:8px;background:var(--accent);box-shadow:0 4px 0 var(--accent-hover)}
.face-review-title{margin-top:32px}.occupation-review{margin:32px 0}.occupation-round h3{font-size:16px;margin:24px 0 12px}.occupation-answer{padding:16px;border:1px solid var(--line);border-radius:18px;margin:10px 0;background:var(--surface)}.occupation-prompt{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:14px;font-size:15px}.answer-badge{font-size:13px;font-weight:700;white-space:nowrap}.job-correct .answer-badge{color:var(--success)}.job-wrong .answer-badge{color:var(--muted)}.occupation-people{display:grid;grid-template-columns:1fr 1fr;gap:18px}.occupation-person{display:flex;align-items:center;gap:12px;min-width:0}.occupation-person>.face-photo,.occupation-empty{width:58px;height:66px;border-radius:12px;flex-shrink:0}.occupation-empty{background:var(--soft);display:grid;place-items:center;color:var(--muted)}.occupation-person>div:last-child{display:flex;flex-direction:column;gap:2px;font-size:14px}.occupation-person .subtle{font-size:12px}.occupation-person strong{font-size:16px}.face-scores p{margin:6px 0 0}@media(max-width:500px){.occupation-people{gap:12px}.occupation-person{gap:8px}.occupation-person>.face-photo,.occupation-empty{width:42px;height:50px}.occupation-prompt{align-items:flex-start;gap:8px}.occupation-person strong{font-size:14px}.occupation-person>div:last-child{font-size:13px}}



/* Side Effects: the controls and the target are the entire game surface. */
.art-side{background-image:url('assets/side-effects.png');background-size:100% 100%;background-position:center}
.side-shell{max-width:560px;margin:auto}.side-status{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:14px;font-variant-numeric:tabular-nums;margin-bottom:10px;min-height:32px}.side-status>span{color:var(--muted)}.side-status .chip{padding:7px 11px}.side-machine{background:var(--surface);border:2px solid var(--line);border-bottom-width:6px;border-radius:28px;padding:18px 24px 14px}.side-tanks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;max-width:390px;margin:0 auto 18px}.side-color-0{--liquid:#63B6FA;--liquid-ink:#124476}.side-color-1{--liquid:#F29BC1;--liquid-ink:#792046}.side-color-2{--liquid:#F6D067;--liquid-ink:#684900}.side-tank{text-align:center;min-width:0}.side-tank-label{display:flex;align-items:center;justify-content:center;gap:5px;font-size:13px;font-weight:750;margin-bottom:12px;white-space:nowrap}.side-tank-label>span:first-child{color:var(--liquid)}.side-check{display:inline-block;width:12px;color:var(--success)}.side-vessel{height:128px;position:relative;background:var(--soft);border:3px solid var(--line);border-radius:16px 16px 24px 24px;box-shadow:inset 3px 0 0 #FFFFFF30}.side-liquid{position:absolute;bottom:0;left:0;right:0;background:var(--liquid);border-radius:9px 9px 19px 19px;max-height:100%;box-shadow:inset 0 5px 0 #FFFFFF45}.side-moving{animation:side-fill .22s ease both}.side-ticks{position:absolute;inset:0;overflow:hidden;border-radius:13px 13px 21px 21px}.side-ticks>i{position:absolute;left:0;right:0;border-top:1px solid #0F172A25}.side-value{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);min-width:32px;height:32px;display:grid;place-items:center;font-size:19px;color:#0F172A;background:#FFFDF8E8;border-radius:50%;font-variant-numeric:tabular-nums;z-index:3}.side-target{position:absolute;left:-7px;right:-7px;border-top:3px dashed var(--ink);transform:translateY(1.5px);z-index:2}.side-target>span{position:absolute;left:-12px;top:-10px;display:grid;place-items:center;min-width:20px;height:19px;padding:0 3px;font-size:11px;font-weight:850;border-radius:5px;background:var(--ink);color:var(--surface)}.side-on-target .side-vessel{border-color:var(--success)}.side-on-target .side-target{border-color:var(--success)}.side-on-target .side-target>span{background:var(--success);color:white}.side-goal-label{display:block;font-size:12px;color:var(--muted);margin-top:10px;font-variant-numeric:tabular-nums}.side-buttons{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.side-control{display:grid;place-items:center;font-size:24px;font-weight:850;min-height:66px;padding:11px;background:var(--soft);border:2px solid var(--line);border-bottom-width:5px;border-radius:17px;color:var(--ink);cursor:pointer;touch-action:manipulation}.side-control:hover{border-color:var(--accent)}.side-control:active,.side-control.side-pressed:disabled{transform:translateY(2px);border-color:var(--accent)}.side-control:disabled{cursor:default;opacity:1}.side-feedback{text-align:center;font-size:14px;line-height:1.5;min-height:40px;margin:10px 0 4px;font-variant-numeric:tabular-nums}.side-tools{display:flex;justify-content:center;align-items:center;gap:12px}.side-ready{display:block;margin:18px auto 0}.side-note{text-align:center;font-size:12px;margin:18px 0 0;line-height:1.5}.side-results{width:100%;margin:10px 0}.side-results>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);font-size:13px}.side-results .arcade-stars{font-size:19px;margin:0}.side-results span:nth-child(2){color:var(--muted)}@keyframes side-fill{from{height:var(--liquid-from)}}
@media(max-width:600px){.side-status{font-size:12px;margin-bottom:12px;gap:5px}.side-machine{padding:18px 16px 14px;border-radius:23px}.side-tanks{gap:24px;margin:0 6px 20px}.side-vessel{height:128px}.side-tank-label{font-size:12px;margin-bottom:10px;gap:3px}.side-check{width:8px}.side-buttons{gap:9px}.side-control{min-height:62px;padding:9px;border-radius:15px;font-size:22px}.side-feedback{font-size:13px;min-height:44px;margin:10px 0 0}.side-ready{margin-top:14px}.side-note{margin-top:12px}.side-results>div{gap:6px;font-size:12px}.side-results .arcade-stars{font-size:16px}}
@media(prefers-reduced-motion:reduce){.side-liquid{animation:none}}

.side-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}
/* Two clear levels: game mastery and evidence across games. */
.rating-section-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:30px 0 12px}.rating-section-head h2{margin:0;font-size:20px}.rating-section-head .subtle{font-size:13px}.rating-caption{font-size:14px;margin-bottom:20px}.skill-profile{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;align-items:start}.skill-rating{background:var(--surface);border:2px solid var(--line);border-bottom-width:5px;border-radius:22px;overflow:hidden}.skill-rating>summary{list-style:none;cursor:pointer;padding:17px 15px 14px}.skill-rating>summary::-webkit-details-marker{display:none}.skill-rating>summary:focus-visible{outline:3px solid var(--accent);outline-offset:-4px;border-radius:18px}.rating-name{font-size:16px;font-weight:750;display:block}.rating-number{display:block;font-size:34px;font-weight:800;margin:8px 0 13px;font-variant-numeric:tabular-nums;line-height:1.2}.rating-number small{font-size:12px;font-weight:500;color:var(--muted);margin-left:3px}.rating-track{height:5px;display:block;background:var(--soft);border-radius:8px;overflow:hidden}.rating-track i{height:100%;display:block;background:var(--accent);border-radius:8px}.rating-status{display:flex;flex-direction:column;gap:2px;font-size:11px;color:var(--muted);margin-top:12px}.rating-status>span{color:var(--dim)}.skill-rating[open]{grid-column:span 2}.skill-breakdown{padding:0 15px 15px;border-top:1px solid var(--line)}.skill-breakdown>p{font-size:13px;margin:14px 0 8px}.rating-contributor{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:12px 0;text-align:left;color:var(--ink);background:none;border:0;border-bottom:1px solid var(--line);cursor:pointer}.rating-contributor strong{font-size:14px;display:block}.rating-contributor small{font-size:11px;display:block;color:var(--muted)}.rating-contributor>span:last-child{font-size:16px;font-variant-numeric:tabular-nums}.rating-contributor:hover strong{color:var(--accent-text)}.game-ratings{display:grid;grid-template-columns:1fr 1fr;gap:0 30px}.game-rating{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 0;border-bottom:1px solid var(--line)}.game-rating .text-btn{color:var(--ink);padding:0;min-height:25px;font-size:16px;font-weight:700;gap:8px;text-align:left}.game-rating .text-btn>span{font-size:12px;color:var(--muted)}.game-rating p{font-size:12px;color:var(--muted);margin:4px 0 0}.game-rating>div>small{font-size:11px;color:var(--dim)}.game-rating>strong{font-size:26px;white-space:nowrap;font-variant-numeric:tabular-nums}.game-rating>strong>small{font-size:11px;color:var(--muted);font-weight:400;margin-left:3px}.rating-method{margin:18px 0 24px;font-size:13px;color:var(--muted)}.rating-method summary{cursor:pointer}.rating-method p{line-height:1.75;margin:14px 0}.rating-impact{display:flex;flex-wrap:wrap;gap:12px 32px;margin-top:14px}.rating-impact>div{display:grid;grid-template-columns:auto auto;column-gap:12px;align-items:baseline}.rating-impact>div>span{grid-column:1/-1;color:var(--muted);font-size:12px}.rating-impact strong{font-size:17px;font-weight:700;font-variant-numeric:tabular-nums}.rating-impact strong>span{font-weight:400;color:var(--dim);padding-inline:2px}.rating-impact small{font-size:12px;color:var(--muted)}.rating-impact-compact{justify-content:center;text-align:left;padding:17px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);width:100%;margin:12px 0}.rating-excluded{font-size:12px;margin-top:12px}.saved-words-section{margin-top:28px;border-top:1px solid var(--line);padding-top:18px;font-size:14px}.saved-words-section>summary{cursor:pointer}.saved-words-section>p{margin-top:14px}
@media(max-width:700px){.skill-profile{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.rating-number{font-size:30px}.skill-rating>summary{padding:15px 14px}.game-ratings{gap:0 20px}.game-rating{align-items:flex-start}.game-rating .text-btn{font-size:14px}.game-rating>strong{font-size:22px}.game-rating>strong>small{display:none}.game-rating p{max-width:125px}.rating-impact{gap:12px 22px}.rating-impact strong{font-size:16px}}
@media(max-width:370px){.game-ratings{grid-template-columns:1fr}.game-rating>strong>small{display:inline}.game-rating p{max-width:none}}

/* Quiet category labels sit above the artwork and title. */
.workout-skills{position:absolute;top:12px;right:14px;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:2px 6px;max-width:calc(100% - 88px);text-align:right}
.workout-skill-tag{color:var(--tile-muted);font-size:10px;line-height:1.3;font-weight:400;max-width:100%;overflow-wrap:anywhere}
.workout-name{margin-bottom:26px}
.workout-tag{position:absolute;top:-10px;right:14px;padding:3px 8px;border:1px solid #EAB308}
.game-heading{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:6px 18px;width:100%}.game-heading h1{margin-bottom:0}.game-skill{color:var(--muted);font-size:14px;font-weight:400;line-height:1.5}.game-heading+p{margin-top:8px}
@media(max-width:700px){.workout-card{padding-top:26px}.workout-name{margin-bottom:7px}.workout-skills{top:6px;right:8px;max-width:calc(100% - 16px)}.workout-skill-tag{font-size:9px}.game-heading{gap:4px 12px}.game-skill{font-size:13px}}

/* Explain the recommendation without putting controls inside a game button. */
.play-heading{display:flex;align-items:center;justify-content:center;gap:10px}.play-heading h1{margin:0}.play-heading>.help{flex:none}
@media(max-width:700px){.workout-tag{display:block;top:-12px;right:auto;left:50%;transform:translateX(-50%);padding:2px 7px;font-size:10px}.workout-grid{row-gap:19px}.play-heading>.help .help-button{width:24px;height:24px}}

/* Open a skill without moving the surrounding grid. */
.skill-open{display:block;width:100%;text-align:left;cursor:pointer;padding:17px 15px 14px;background:transparent;border:0;color:var(--ink);font:inherit;border-radius:18px}
.skill-open:focus-visible{outline:3px solid var(--accent);outline-offset:-4px}
.skill-open:hover{background:var(--soft)}
.skill-dialog{box-sizing:border-box;width:min(520px,calc(100% - 32px));max-height:calc(100dvh - 48px);margin:auto;padding:0;background:var(--surface);color:var(--ink);border:2px solid var(--line);border-radius:26px;box-shadow:0 24px 80px #0005;overflow:auto;overscroll-behavior:contain}
.skill-dialog::backdrop{background:rgb(12 12 14 / 65%);animation:skill-dim 280ms ease both}
.skill-dialog.is-closing::backdrop{animation:skill-undim 180ms ease both}
.skill-dialog-heading{padding:26px 26px 22px}
.skill-dialog .rating-name{font-size:22px;padding-right:38px}
.skill-dialog .rating-number{font-size:44px;margin:12px 0 18px}
.skill-dialog .rating-status{font-size:13px;gap:3px}
.skill-dialog .skill-breakdown{padding:4px 26px 18px}
.skill-dialog .skill-breakdown>p{font-size:14px;line-height:1.6}
.skill-close{position:absolute;top:14px;right:14px;width:36px;height:36px;display:grid;place-items:center;border:0;border-radius:50%;background:var(--soft);color:var(--muted);font-size:26px;line-height:1;cursor:pointer}
.skill-close:hover{color:var(--ink);background:var(--line)}
.skill-close:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
@keyframes skill-dim{from{background:rgb(12 12 14 / 0%)}to{background:rgb(12 12 14 / 65%)}}
@keyframes skill-undim{from{background:rgb(12 12 14 / 65%)}to{background:rgb(12 12 14 / 0%)}}
@media(max-width:700px){.skill-open{padding:15px 14px}.skill-dialog-heading{padding:22px 20px 18px}.skill-dialog .skill-breakdown{padding:4px 20px 16px}}
@media(prefers-reduced-motion:reduce){.skill-dialog::backdrop,.skill-dialog.is-closing::backdrop{animation:none}}

.info-link{font-size:14px;font-weight:500;color:var(--muted);text-decoration:none;padding:10px 3px;line-height:1.4}
.info-link:hover,.info-link[aria-current="page"]{color:var(--ink)}
.info-link:focus-visible,.info-page a:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:4px}
.info-page{max-width:760px;margin:0 auto;padding:24px 28px 64px;line-height:1.75}
.info-page h1{font-family:var(--font-display);font-size:42px;line-height:1.15;letter-spacing:-1px;margin:24px 0 12px}
.info-lead{color:var(--muted);font-size:17px}
.info-back{color:var(--muted);text-decoration:none;font-size:14px}
.info-contents{display:flex;flex-wrap:wrap;gap:10px 22px;margin:26px 0 10px;padding-bottom:24px;border-bottom:1px solid var(--line)}
.info-contents a,.info-page a{color:var(--accent-text);text-underline-offset:4px}
.info-page section{padding:30px 0 8px;scroll-margin-top:24px}
.info-page h2{font-size:26px;line-height:1.3;margin:0 0 18px;letter-spacing:-.4px}
.info-page h3{font-size:18px;margin:26px 0 8px}
.info-page p{margin:0 0 16px;font-size:16px}
.info-page ul{padding-left:22px;margin:12px 0 20px}
.info-page li{margin:6px 0}
.info-page details{border-bottom:1px solid var(--line);padding:16px 0}
.info-page summary{cursor:pointer;font-size:16px;font-weight:600;line-height:1.5}
.info-page summary span{color:var(--muted);font-size:12px;font-weight:400;margin-left:8px;white-space:nowrap}
.info-page details[open]>summary{margin-bottom:16px}
.info-page details p{font-size:15px;color:var(--muted)}
.info-page .info-formula{color:var(--ink);padding:16px;background:var(--soft);border-radius:12px;font-size:16px}
.info-page>.info-back:last-child{display:inline-block;margin-top:24px}
@media(max-width:450px){.info-page{padding:18px 20px 48px}.info-page h1{font-size:34px}.info-page h2{font-size:23px}.info-page p{font-size:15px}.info-contents{gap:10px 16px}.info-link{font-size:13px}.header-actions{gap:10px}}

.twin-clock{text-align:right;margin:0 0 12px;color:var(--muted);font-size:13px}.twin-clock span{font-variant-numeric:tabular-nums;display:inline-block;min-width:3.4em;text-align:right;color:var(--ink)}.twin-replay-head{text-align:center}.twin-replay-head h2{margin:0 0 8px}.twin-replay-head p{max-width:420px;margin:0 auto 18px}.twin-replay-status{text-align:center;min-height:25px;margin:18px 0 10px}.twin-route{display:flex;flex-wrap:wrap;justify-content:center;gap:5px;margin:12px 0 20px}.twin-route span{display:grid;place-items:center;width:26px;height:28px;border-radius:6px;background:var(--soft);color:var(--muted)}.twin-route .current{background:var(--accent);color:var(--on-accent);outline:2px solid var(--ink);outline-offset:1px}.twin-replay-back{display:block;margin:16px auto;text-align:center}.twin-times{width:100%;max-width:420px;margin:0 auto 16px}.twin-times>div{display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line);padding:10px 0;font-size:14px}.twin-times strong{font-variant-numeric:tabular-nums}.twin-times .text-btn{font-size:13px}

.saved-review{text-align:left;width:100%;margin:18px 0}.saved-review article{padding:12px 0;border-bottom:1px solid var(--line)}.saved-review h3{font-size:15px;margin:4px 0 10px}.saved-review p{font-size:14px;line-height:1.65;margin:8px 0}.side-results .text-btn{font-size:12px}

/* Today's lock-in: three quick workouts on Home, plus a next-step strip on result screens. */
.lockin{margin:0 0 26px;padding:18px 20px 20px;background:var(--surface);border:2px solid var(--line);border-radius:28px;box-shadow:0 6px 0 var(--line)}
.lockin-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.lockin-copy{min-width:0}
.lockin-copy h2{margin:0;font-family:var(--font-display);font-size:22px;font-weight:850;letter-spacing:-.5px;line-height:1.2}
.lockin-copy p{margin:4px 0 0;font-size:14px;line-height:1.45;color:var(--muted)}
.lockin-streak{display:flex;flex-direction:column;align-items:center;flex-shrink:0;color:var(--muted);font-size:12px;font-weight:650;line-height:1.2;white-space:nowrap}
.lockin-streak strong{font-family:var(--font-display);font-size:30px;font-weight:850;color:var(--ink);line-height:1}
.lockin-row{display:flex;align-items:center;gap:14px;margin-top:14px}
.lockin-items{flex:1;min-width:0;list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.lockin-item{width:100%;min-height:56px;display:flex;align-items:center;gap:8px;padding:6px 10px 6px 6px;color:var(--tile-ink);background:var(--tile);border:2px solid var(--edge);border-radius:18px;box-shadow:0 3px 0 var(--edge);font-size:15px;font-weight:750;text-align:left;transition:transform .15s,box-shadow .15s}
.lockin-item.is-next{border-color:var(--tile-ink)}
.lockin-item .workout-art{width:40px;height:40px;margin:0;flex-shrink:0}
.lockin-name{flex:1;min-width:0;line-height:1.2}
.lockin-mark{width:24px;height:24px;flex-shrink:0;display:grid;place-items:center;border:2px solid var(--edge);border-radius:50%;font-size:13px;line-height:1}
.lockin-item.is-done .lockin-mark{background:var(--tile-ink);border-color:var(--tile-ink);color:var(--tile)}
.lockin-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.lockin-start{flex-shrink:0;white-space:nowrap}
.lockin.is-done .lockin-items{opacity:.85}
@media(hover:hover){.lockin-item:hover{transform:translateY(-2px);box-shadow:0 5px 0 var(--edge)}}
.lockin-item:active{transform:translateY(3px);box-shadow:0 0 0 var(--edge)}
.lockin-strip{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:16px 0;padding:14px 16px;text-align:left;background:var(--soft);border:2px solid var(--line);border-radius:20px}
.lockin-strip>div{display:flex;flex-direction:column;gap:2px;min-width:0}
.lockin-strip strong{color:var(--ink);font-weight:750}
.lockin-strip span{color:var(--muted);font-size:13px}
.lockin-strip .btn{flex-shrink:0;white-space:nowrap}
.lockin-strip .text-btn{flex-shrink:0}
@media(max-width:900px){.lockin-row{flex-direction:column;align-items:stretch}.lockin-start{width:100%}}
@media(max-width:520px){.lockin{padding:15px 15px 16px;border-radius:23px;margin-bottom:22px}.lockin-copy h2{font-size:20px}.lockin-copy p{font-size:13px}.lockin-items{gap:8px}.lockin-item{position:relative;flex-direction:column;justify-content:center;gap:4px;padding:8px 4px 9px;font-size:13px;text-align:center}.lockin-item .workout-art{width:34px;height:34px}.lockin-mark{position:absolute;top:5px;right:5px;width:18px;height:18px;font-size:10px;border-width:1.5px}}
@media(max-width:450px){.lockin-strip{flex-direction:column;align-items:stretch}.lockin-strip .btn{width:100%}}
@media(prefers-reduced-motion:reduce){.lockin-item{transition:none}.lockin-item:hover,.lockin-item:active{transform:none}}

/* lockd brand layer: one rounded type family, the lock, game-colored cards, and pressable controls on every screen. */
:root{--font-display:'Nunito',ui-rounded,'SF Pro Rounded','Arial Rounded MT Bold',system-ui,sans-serif;--font-body:'Nunito',ui-rounded,'SF Pro Rounded',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;--press:color-mix(in srgb,var(--accent) 68%,#0F172A);--good:#22C55E;--good-ink:#15803D;--miss:#F59E0B;--gold:#FACC15;--gold-deep:#EAB308;--gold-ink:#422006}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]){--press:color-mix(in srgb,var(--accent) 55%,#0C0C0E);--good:#4ADE80;--good-ink:#86EFAC;--miss:#FBBF24}}
:root[data-theme="dark"]{--press:color-mix(in srgb,var(--accent) 55%,#0C0C0E);--good:#4ADE80;--good-ink:#86EFAC;--miss:#FBBF24}
:where(.game-intro,.result-hero,.nback-panel,.skill-rating,.skill-dialog,.arcade-result,.lockin-item){--tile:#DDEEFF;--edge:#9ECAEE;--tile-ink:#153B64;--tile-muted:#3A5873;--tile-button:#FFFFFF}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]) :where(.game-intro,.result-hero,.nback-panel,.skill-rating,.skill-dialog,.arcade-result,.lockin-item){--tile:#18374A;--edge:#2F576E;--tile-ink:#D2F0FF;--tile-muted:#A5CDDE;--tile-button:#294F64}}
:root[data-theme="dark"] :where(.game-intro,.result-hero,.nback-panel,.skill-rating,.skill-dialog,.arcade-result,.lockin-item){--tile:#18374A;--edge:#2F576E;--tile-ink:#D2F0FF;--tile-muted:#A5CDDE;--tile-button:#294F64}
body{font-family:var(--font-body);font-weight:500}
h1,h2,h3,.eyebrow,.text-btn,nav button,.theme-toggle,.info-link,.status-pill,label,summary{font-family:var(--font-display)}
h1{font-weight:900;letter-spacing:-1px}
h2,h3{font-weight:800;letter-spacing:-.3px}
.eyebrow{font-weight:800;color:var(--accent-text);letter-spacing:0}

/* Header: the wordmark's "o" is a padlock. */
header{padding-top:18px;padding-bottom:12px}
.brand{display:inline-flex;align-items:baseline;font-family:var(--font-display);font-size:38px;font-weight:900;letter-spacing:-1.5px;line-height:1;color:var(--accent-text);text-decoration:none}
.brand-lock{width:.676em;height:.78em;margin:0 .015em 0 .02em;overflow:visible}
.brand-lock .lock-shackle,.lock-icon .lock-shackle{fill:none;stroke:currentColor;stroke-width:3.6;stroke-linecap:round;transition:transform .2s ease}
.brand-lock .lock-body,.lock-icon .lock-body{fill:currentColor}
.brand-lock .lock-hole,.lock-icon .lock-hole{fill:var(--bg)}
.brand:hover .lock-shackle{transform:translateY(-2.5px)}
nav button{font-weight:800}
.theme-toggle{font-weight:700}
.info-link{font-weight:700}
.exit-play{display:none;align-items:center;gap:6px;min-height:40px;padding:6px 14px 6px 11px;border:2px solid var(--line);border-radius:14px;background:var(--surface);color:var(--ink);font-family:var(--font-display);font-size:14px;font-weight:800;box-shadow:0 3px 0 var(--line)}
.exit-play::before{content:'×';font-size:20px;line-height:1;color:var(--muted)}
.exit-play:hover{border-color:var(--dim)}
body.is-playing .exit-play{display:inline-flex}
body.is-playing nav,body.is-playing .info-link{display:none}
body.is-playing main{padding-top:14px}
main{padding-top:28px}

/* Buttons press down like the cards. */
.btn{font-family:var(--font-display);font-size:16px;font-weight:800;letter-spacing:.1px;min-height:48px;padding:12px 22px;border:0;border-radius:16px;background:var(--accent);color:var(--on-accent);box-shadow:0 4px 0 var(--press);transition:transform .12s,box-shadow .12s,background .15s}
.btn:hover:not(:disabled){background:var(--accent-hover);color:var(--on-accent);border-color:transparent}
.btn:active:not(:disabled){transform:translateY(3px);box-shadow:0 1px 0 var(--press)}
.btn.secondary{background:var(--surface);color:var(--ink);border:2px solid var(--line);box-shadow:0 4px 0 var(--line)}
.btn.secondary:hover:not(:disabled){background:var(--soft);color:var(--ink);border-color:var(--dim)}
.btn.secondary:active:not(:disabled){box-shadow:0 1px 0 var(--line)}
.btn:disabled{box-shadow:none;opacity:.45}
.text-btn{font-weight:800}
.chip{font-family:var(--font-display);font-weight:700}

/* Every game screen: title, a quiet skill tag, then the work. */
.page-top{margin-bottom:20px}
main[data-view]>.page-top h1,.page-top h1{font-family:var(--font-display);font-size:34px;font-weight:900;letter-spacing:-1px;line-height:1.1;margin:0}
main[data-view]>.page-top{display:block;margin-bottom:20px}
main[data-view]>.page-top p{font-size:15px;margin:6px 0 0;color:var(--muted)}
.game-heading{align-items:center}
.game-skill{font-size:12px;font-weight:700;color:var(--muted);background:var(--soft);border:1.5px solid var(--line);border-radius:99px;padding:3px 10px;white-space:nowrap}

/* Setup: the game's own color, one goal line, tappable levels, one big button. */
.game-intro{max-width:520px;margin:0 auto;display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px;padding:26px 24px 24px;color:var(--tile-ink);background:var(--tile);border:2px solid var(--edge);border-radius:30px;box-shadow:0 7px 0 var(--edge)}
.game-intro .workout-art{width:112px;height:112px;margin:0}
.game-goal{font-family:var(--font-display);font-size:21px;font-weight:800;line-height:1.3;letter-spacing:-.2px;margin:0;max-width:32ch;color:var(--tile-ink)}
.game-meta{font-size:14px;line-height:1.55;color:var(--tile-muted);margin:0;max-width:42ch}
.game-level-note,.nback-panel .game-level-note{font-size:13px;line-height:1.5;color:var(--tile-muted);margin:-4px 0 0;min-height:1.5em;max-width:40ch}
.game-intro .game-play{width:100%;min-height:54px;font-size:18px;margin-top:2px}
.game-load:empty{display:none}
.game-intro #logic-level-description{min-height:3em}
.game-load{text-align:center;color:var(--muted);margin-top:14px}
.level-field{display:flex;flex-direction:column;align-items:center;gap:8px;width:100%}
.level-label{font-family:var(--font-display);font-size:13px;font-weight:800;color:var(--tile-muted)}
.level-picker{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}
.level-chip{min-width:46px;min-height:42px;padding:7px 14px;font-family:var(--font-display);font-size:16px;font-weight:800;color:var(--tile-ink);background:var(--tile-button);border:2px solid var(--edge);border-radius:14px;box-shadow:0 3px 0 var(--edge);transition:transform .12s,box-shadow .12s,background .12s}
.level-chip:hover{border-color:var(--tile-ink)}
.level-chip.is-on{color:var(--tile);background:var(--tile-ink);border-color:var(--tile-ink);box-shadow:0 3px 0 color-mix(in srgb,var(--tile-ink) 55%,#000)}
.level-chip:active{transform:translateY(2px);box-shadow:0 1px 0 var(--edge)}
.level-chip:focus-visible{outline:3px solid var(--tile-ink);outline-offset:2px}
select:disabled+.level-picker{opacity:.5;pointer-events:none}

/* Question rounds: a progress strip, the prompt on a card, chunky answers. */
.panel{border-top:0;padding-top:4px}
.play-panel{padding-top:0;border-top:0}
.round-progress{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:6px;list-style:none;margin:0 0 12px;padding:0}
.round-progress li{height:10px;border-radius:99px;background:var(--raised)}
.round-progress .is-current{background:var(--accent);opacity:.5}
.round-progress .is-right{background:var(--good);opacity:1}
.round-progress .is-wrong{background:var(--miss);opacity:1}
.panel>.question-timing{font-size:13px;margin:0 0 12px}
.question-card{padding:20px 22px;margin:0 0 6px;background:var(--surface);border:2px solid var(--line);border-radius:24px;box-shadow:0 5px 0 var(--line)}
.question-card .eyebrow{font-size:13px;margin:0}
.question-card .logic-passage,.question-card .scenario{margin:8px 0 0}
.question-card .logic-rules{margin:14px 0 0}
.question-card .equation{margin:12px 0 0;padding:8px 0}
.logic-question,.assessment-question h3{font-family:var(--font-display);font-weight:800}
.option{border:2px solid var(--line);border-radius:18px;background:var(--surface);box-shadow:0 4px 0 var(--line);transition:transform .12s,box-shadow .12s,border-color .12s,background .12s}
.option:hover:not(:disabled){border-color:var(--accent);background:var(--surface)}
.option:active:not(:disabled){transform:translateY(3px);box-shadow:0 1px 0 var(--line)}
.option.chosen{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 4px 0 var(--accent)}
.option-letter{width:30px;height:30px;font-family:var(--font-display);font-weight:900;border:2px solid var(--line);border-radius:10px}
.option.chosen .option-letter{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.option.right-answer{border-color:var(--good);background:var(--success-soft);box-shadow:0 4px 0 var(--good);animation:answer-pop .35s ease-out}
.option.right-answer .option-letter{background:var(--good);border-color:var(--good);color:#FFFFFF}
.option.wrong-answer{border-color:var(--miss);background:var(--warning-soft);box-shadow:0 4px 0 var(--miss);animation:answer-shake .35s ease-out}
.option.wrong-answer .option-letter{background:var(--miss);border-color:var(--miss);color:#FFFFFF}
.option:disabled{opacity:1}
.option:disabled:not(.right-answer):not(.wrong-answer){opacity:.6}
.feedback{border:2px solid var(--good);border-radius:20px;background:var(--success-soft);padding:16px 18px;animation:feedback-in .25s ease-out}
.feedback.bad{border-color:var(--miss);background:var(--warning-soft)}
.feedback>strong:first-child{font-family:var(--font-display);font-size:18px;font-weight:900}
.field{border:2px solid var(--line);border-radius:16px;font-weight:600}
.field:focus{border-color:var(--accent);outline:0}
.answer-row .field{font-size:18px;font-weight:700}
.answer-review summary,.summary summary{font-weight:800}
@keyframes answer-pop{40%{transform:scale(1.025)}}
@keyframes answer-shake{20%,60%{transform:translateX(-4px)}40%,80%{transform:translateX(4px)}}
@keyframes feedback-in{from{opacity:0;transform:translateY(6px)}}

/* Results: one big moment in the game's color, then what changed, then the next step. */
.result-panel{padding-top:0}
.result-hero{display:flex;flex-direction:column;align-items:center;text-align:center;gap:2px;padding:22px 20px 20px;margin-bottom:6px;color:var(--tile-ink);background:var(--tile);border:2px solid var(--edge);border-radius:30px;box-shadow:0 7px 0 var(--edge);animation:hero-in .4s cubic-bezier(.2,.8,.2,1)}
.result-hero .workout-art{width:84px;height:84px;margin:0}
.result-hero h2{font-family:var(--font-display);font-size:46px;font-weight:900;letter-spacing:-1.5px;line-height:1.05;margin:6px 0 0;color:var(--tile-ink)}
.result-hero p{margin:6px 0 0;font-size:14px;font-weight:700;color:var(--tile-muted)}
.result-actions{margin:16px 0 4px}
.result-details{margin-top:14px}
.rating-impact-compact{justify-content:center;margin:14px 0;padding:14px 16px;border:0;border-radius:20px;background:var(--soft)}
.rating-impact strong{font-family:var(--font-display);font-weight:900}
.arcade-result{color:var(--tile-ink);background:var(--tile);border:2px solid var(--edge);border-radius:30px;box-shadow:0 7px 0 var(--edge)}
.arcade-result h2{font-family:var(--font-display);font-weight:900;color:var(--tile-ink)}
.arcade-result .subtle,.arcade-result p{color:var(--tile-muted)}
.arcade-result>h2+p{color:var(--tile-ink);font-weight:700}
.arcade-result .rating-impact-compact{background:var(--tile-button)}
.arcade-result .text-btn{color:var(--tile-ink)}
.arcade-result .saved-review,.arcade-result .twin-times,.arcade-result .side-results{color:var(--tile-ink)}
.arcade-stars{color:var(--gold-deep)}
@keyframes hero-in{from{opacity:0;transform:translateY(10px) scale(.97)}}

/* Dual n-back lives on one colored board. */
.nback-panel{max-width:520px;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;padding:22px 20px 24px;color:var(--tile-ink);background:var(--tile);border:2px solid var(--edge);border-radius:30px;box-shadow:0 7px 0 var(--edge)}
.nback-panel>.game-goal{font-size:18px}
.nback-panel .subtle{color:var(--tile-muted);margin:0}
.nback-panel #memory-instructions{max-width:40ch;margin:0 auto}
.nback-status{display:flex;justify-content:space-between;width:100%;max-width:300px;font-size:13px;font-weight:800;color:var(--tile-muted);font-variant-numeric:tabular-nums}
.nback-status .status-pill{color:var(--tile-muted);font-size:13px}
#letter{font-family:var(--font-display);font-size:22px;font-weight:900;min-height:32px;color:var(--tile-ink)}
.nback-panel .nback-grid{margin:2px auto 6px}
.nback-grid div{background:var(--tile-button);border-radius:16px;box-shadow:inset 0 -4px 0 var(--edge)}
.nback-grid div.lit{background:var(--tile-ink);box-shadow:none;animation:cell-lit .18s ease-out}
.memory-actions{width:100%;max-width:340px}
.memory-actions .btn.secondary{background:var(--tile-button);color:var(--tile-ink);border-color:var(--edge);box-shadow:0 4px 0 var(--edge)}
.memory-actions .btn.pressed,.memory-actions .btn.secondary.pressed{background:var(--tile-ink);color:var(--tile);border-color:var(--tile-ink)}
.memory-actions kbd{color:inherit;border-color:currentColor}
.nback-panel .centered-row{margin-top:6px;width:100%;max-width:340px}
.nback-panel .game-play{width:100%;min-height:52px;font-size:17px}
.nback-panel #memory-result{width:100%}
.nback-panel .result-hero{background:transparent;border:0;box-shadow:none;padding:6px 0 0}
.nback-panel .rating-impact-compact{background:var(--tile-button)}
.nback-panel .text-btn,.nback-panel .answer-review summary{color:var(--tile-ink)}
@keyframes cell-lit{from{transform:scale(.9)}}

/* Reading: display titles, book-like passages, a bubbly saved-word mark. */
.reading h2{font-family:var(--font-display);font-weight:900;letter-spacing:-.6px}
.word{border:0;border-bottom:2px solid var(--accent);border-radius:6px;background:var(--accent-soft);padding:0 3px;font-weight:600}
.word-info,.reading-filter,.test-notice,.training-lesson{border:2px solid var(--line);border-radius:20px}

/* Face & Name. */
.face-card strong{font-family:var(--font-display);font-weight:800}
.face-photo{border-radius:16px}
.face-scores>div{padding:14px 16px;border:2px solid var(--line);border-radius:20px;background:var(--surface)}
.face-scores h2{font-family:var(--font-display);font-weight:900}
.target-tile{border:2px solid var(--line);border-radius:18px;background:var(--surface);box-shadow:0 4px 0 var(--line)}
.target-tile.has-target b{background:var(--accent)}
.face-choice{border-radius:18px}
.coin-intro h2{font-family:var(--font-display);font-weight:900}

/* Arcade boards keep their mechanics; the type and status match everything else. */
.rush-rule{font-family:var(--font-display);font-weight:800}
.rush-gate strong{font-family:var(--font-display);font-weight:900}
.arcade-status strong,.side-status strong{font-family:var(--font-display);font-weight:900}
.side-control{font-family:var(--font-display);font-weight:900}

/* Progress: each skill in the color of its games. */
.rating-section-head h2,.section-head h2{font-family:var(--font-display);font-weight:900}
.skill-rating{color:var(--tile-ink);background:var(--tile);border:2px solid var(--edge);box-shadow:0 6px 0 var(--edge);border-radius:24px}
.skill-open{color:var(--tile-ink)}
.skill-open:hover{background:color-mix(in srgb,var(--tile-ink) 6%,transparent)}
.rating-name{font-family:var(--font-display);font-weight:900}
.rating-number{font-family:var(--font-display);font-weight:900}
.skill-rating .rating-number small,.skill-dialog-heading .rating-number small{color:var(--tile-muted)}
.skill-rating .rating-track,.skill-dialog-heading .rating-track{height:8px;background:color-mix(in srgb,var(--tile-ink) 16%,transparent)}
.skill-rating .rating-track i,.skill-dialog-heading .rating-track i{background:var(--tile-ink)}
.skill-rating .rating-status,.skill-rating .rating-status>span,.skill-dialog-heading .rating-status,.skill-dialog-heading .rating-status>span{color:var(--tile-muted)}
.skill-dialog-heading{color:var(--tile-ink);background:var(--tile);border-bottom:2px solid var(--edge)}
.skill-dialog .skill-close{background:var(--tile-button);color:var(--tile-ink)}
.game-ratings{gap:0 28px}
.game-rating{display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:12px}
.game-rating .workout-art{width:44px;height:44px;margin:0}
.game-rating>strong{font-family:var(--font-display);font-weight:900}
.activity-item{padding:18px;margin-bottom:12px;border:2px solid var(--line);border-radius:22px;background:var(--surface)}
.activity-result>strong{font-family:var(--font-display);font-weight:900}
.saved-words-section>summary{font-family:var(--font-display);font-weight:800}

/* The test. */
.test-lead{background:var(--accent-soft);border:2px solid color-mix(in srgb,var(--accent) 30%,var(--line));border-radius:28px;box-shadow:0 6px 0 color-mix(in srgb,var(--accent) 30%,var(--line))}
.test-lead h2{font-family:var(--font-display);font-size:30px;font-weight:900;letter-spacing:-.8px}
.test-facts strong{font-family:var(--font-display);font-size:1.4rem;font-weight:900}
.test-lead .workout-art{width:76px;height:76px;margin:-6px 0 6px -6px}
.test-outline strong{font-family:var(--font-display);font-weight:800}
.test-index{font-family:var(--font-display);font-weight:900;color:var(--accent-text)}
.assessment-question{border:2px solid var(--line);border-radius:28px;box-shadow:0 6px 0 var(--line)}
.assessment-question h2{font-family:var(--font-display);font-weight:900}
.test-progress{height:10px;border-radius:99px}
progress::-webkit-progress-bar,progress::-webkit-progress-value{border-radius:99px}
.test-advice{border:2px solid color-mix(in srgb,var(--accent) 35%,var(--line));border-left-width:6px;border-radius:18px}
.profile-hero{border:2px solid color-mix(in srgb,var(--accent) 30%,var(--line));border-radius:28px}
.score-number,.profile-time strong{font-family:var(--font-display);font-weight:900}
.profile-domains>div,.next-session{border:2px solid var(--line);border-radius:22px}
.profile-domains progress{height:8px}

/* Info page. */
.info-page h1,.info-page h2,.info-page h3,.info-page summary{font-family:var(--font-display)}
.info-page h1{font-weight:900}
.info-page h2{font-weight:900}
.info-contents a{padding:6px 14px;border:2px solid var(--line);border-radius:99px;font-family:var(--font-display);font-weight:800;text-decoration:none;box-shadow:0 3px 0 var(--line)}
.info-contents a:hover{border-color:var(--accent)}

/* Lock moments: open until today's lock-in is done, then it snaps shut. */
.lockin-head{align-items:center}
.lockin-lock{width:32px;height:37px;flex-shrink:0;color:var(--accent-text)}
.lockin.is-done .lockin-lock{color:var(--gold-deep)}
.lockin-copy{flex:1}
.lockin-streak strong{font-family:var(--font-display);font-weight:900}
.lockin.is-done{border-color:color-mix(in srgb,var(--gold-deep) 55%,var(--line));box-shadow:0 6px 0 color-mix(in srgb,var(--gold-deep) 55%,var(--line))}
.lockin-strip .lock-icon{width:26px;height:30px;flex-shrink:0;color:var(--accent-text)}
.lockin-strip{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px 14px}
@media(max-width:450px){.lockin-strip{grid-template-columns:auto minmax(0,1fr);align-items:center}.lockin-strip .btn,.lockin-strip .text-btn{grid-column:1/-1;width:100%;justify-content:center}}
.lockin-strip.is-done{border-color:color-mix(in srgb,var(--gold-deep) 55%,var(--line));background:color-mix(in srgb,var(--gold) 14%,var(--surface))}
.lockin-strip.is-done .lock-icon{color:var(--gold-deep)}
.lockin-strip strong{font-family:var(--font-display);font-weight:900}
.lock-snap .lock-shackle{animation:lock-snap .55s cubic-bezier(.3,1.6,.5,1) both}
.lock-snap{animation:lock-bump .55s ease-out}
@keyframes lock-snap{0%,30%{transform:translateY(-6px)}}
@keyframes lock-bump{55%{transform:scale(1.15)}}
#toast{border-radius:16px;font-family:var(--font-display);font-weight:800;box-shadow:0 6px 24px #0003}

@media(max-width:700px){main[data-view]>.page-top h1,.page-top h1{font-size:30px}.game-intro{padding:22px 18px 20px;border-radius:26px}.game-intro .workout-art{width:96px;height:96px}.game-goal{font-size:19px}.result-hero h2{font-size:40px}}
/* Wide cards: room between the art and the title without changing card height. */
@media(min-width:701px){.workout-top{height:54px}.workout-name{margin-bottom:12px}}
@media(max-width:700px){.workout-top{height:50px}.workout-name{margin-bottom:1px}}
#math-form{margin-top:18px}
main:has(>.game-intro,>.nback-panel,>.arcade-shell)>.page-top{max-width:520px;margin-inline:auto}
main:has(>.side-shell)>.page-top{max-width:560px;margin-inline:auto}
.result-panel{max-width:620px;margin-inline:auto}
main:has(>.result-panel)>.page-top{max-width:620px;margin-inline:auto}
@media(max-width:520px){.game-ratings{grid-template-columns:1fr}.game-rating{align-items:center}.game-rating p{max-width:none}.game-rating>strong>small{display:inline}}
@media(max-width:520px){header{padding:12px 16px 8px;flex-wrap:nowrap;gap:10px}.brand{font-size:32px}.header-actions{gap:10px}.theme-toggle{min-width:0;padding:8px 10px}.theme-toggle span{display:none}.shell{padding:0 16px}nav{max-width:none}nav button{min-height:36px}main{padding-top:20px}.question-card{padding:16px 16px 18px;border-radius:20px}.level-chip{min-width:44px;padding:6px 12px}.result-actions{flex-direction:column;align-items:stretch}.result-actions .btn{width:100%}.result-actions .text-btn{justify-content:center}.activity-item{padding:16px}}
@media(prefers-reduced-motion:reduce){.option.right-answer,.option.wrong-answer,.feedback,.result-hero,.nback-grid div.lit,.lock-snap,.lock-snap .lock-shackle{animation:none}.btn,.level-chip,.option,.brand-lock .lock-shackle{transition:none}.btn:active:not(:disabled),.level-chip:active,.option:active:not(:disabled){transform:none}}

/* Info page: a small play button beside the manifesto replays the opening film. */
.intro-replay{position:relative;display:inline-flex;align-items:center;gap:5px;height:28px;margin-left:8px;padding:0 12px 0 10px;vertical-align:5px;font-family:var(--font-display);font-size:14px;font-weight:800;letter-spacing:0;line-height:1;color:var(--on-accent);background:var(--accent);border:0;border-radius:99px;box-shadow:0 3px 0 var(--press),0 0 18px color-mix(in srgb,var(--accent) 45%,transparent);cursor:pointer;transition:transform .15s,box-shadow .15s}
.intro-replay:hover,.intro-replay:focus-visible{transform:translateY(-1px) scale(1.05)}
.intro-replay:active{transform:translateY(2px);box-shadow:0 1px 0 var(--press)}
.intro-replay svg{width:10px;height:10px;fill:currentColor}
@media(prefers-reduced-motion:reduce){.intro-replay{transition:none}.intro-replay:hover,.intro-replay:focus-visible,.intro-replay:active{transform:none}}

/* Opening film (intro.js draws it): dark until the first frame, then the canvas plays and exits through the keyhole. */
.intro{display:none}
[data-intro="play"] body{overflow:hidden}
[data-intro="play"] .intro{display:block;position:fixed;inset:0;z-index:1000;background:#0C0C0E}
.intro.is-running{background:transparent;animation:intro-failsafe 0s 25s forwards}
.intro-stage{position:absolute;inset:0}
.intro-canvas{display:block;width:100%;height:100%}
.intro-skip{position:absolute;right:16px;top:calc(14px + env(safe-area-inset-top));padding:6px 15px;font-family:var(--font-display);font-size:13px;font-weight:800;color:#94A3B8;background:rgba(12,12,14,.5);border:1.5px solid rgba(148,163,184,.35);border-radius:99px;opacity:0;cursor:pointer}
.intro-skip:hover{color:#F8FAFC;border-color:rgba(248,250,252,.6)}
.intro.is-running .intro-skip{animation:intro-fade .4s .8s ease-out forwards}
.intro.is-out{opacity:0;pointer-events:none;transition:opacity .45s ease}
.intro-gate{display:none}
.intro.is-gated .intro-gate{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;width:100%;padding:0;color:#7DD3FC;font-family:var(--font-display);background:radial-gradient(circle at 50% 46%,rgba(52,131,249,.2),transparent 55%),#0C0C0E;border:0;cursor:pointer}
.intro.is-gated .intro-skip{opacity:1}
.intro-gate-lock{width:58px;height:67px;margin-bottom:6px;overflow:visible;animation:gate-breathe 2.6s ease-in-out infinite}
.intro-gate-lock .lock-shackle{fill:none;stroke:currentColor;stroke-width:3.6;stroke-linecap:round}
.intro-gate-lock .lock-body{fill:currentColor}
.intro-gate-lock .lock-hole{fill:#0C0C0E}
.intro-gate-label{font-size:21px;font-weight:900;color:#F8FAFC;letter-spacing:.01em}
.intro-gate-sound{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:700;color:#94A3B8}
.intro-gate-sound svg{width:15px;height:15px;fill:currentColor}
.intro-gate:focus-visible{outline:none}
.intro-gate:focus-visible .intro-gate-label{text-decoration:underline;text-underline-offset:6px}
@keyframes gate-breathe{50%{transform:scale(1.06);filter:drop-shadow(0 0 16px rgba(125,211,252,.55))}}
@media(prefers-reduced-motion:reduce){.intro-gate-lock{animation:none}}
@keyframes intro-fade{to{opacity:1}}
@keyframes intro-failsafe{to{visibility:hidden;pointer-events:none}}

/* Share cards and the home screen app */
.share-icon{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;margin:-3px 8px 0 -2px;vertical-align:middle}
.share-btn{width:auto;flex-shrink:0;white-space:nowrap;min-height:40px;padding:8px 16px}
.lockin-share{background:var(--gold);color:var(--gold-ink);box-shadow:0 4px 0 var(--gold-deep)}
.btn.lockin-share:hover:not(:disabled){background:#FDE047;color:var(--gold-ink)}
.rating-section-head .share-btn{margin-left:auto}
.install-strip{display:flex;align-items:center;gap:14px;margin:0 0 18px;padding:12px 12px 12px 14px;background:var(--soft);border:2px solid var(--line);border-radius:20px}
.install-strip img{border-radius:12px;flex-shrink:0}
.install-copy{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.install-copy strong{font-weight:800;color:var(--ink);line-height:1.3}
.install-copy span{font-size:13px;color:var(--muted);line-height:1.35}
.install-strip .btn{width:auto;min-height:40px;padding:8px 18px;flex-shrink:0}
.install-close{flex-shrink:0;border:0;background:none;color:var(--muted);font-size:24px;line-height:1;padding:4px 6px;cursor:pointer;border-radius:10px}
.install-close:hover{color:var(--ink);background:var(--raised)}
.share-sheet,.install-help{box-sizing:border-box;width:min(420px,calc(100% - 32px));max-height:calc(100dvh - 32px);margin:auto;padding:16px;background:var(--surface);color:var(--ink);border:2px solid var(--line);border-radius:26px;box-shadow:0 24px 80px #0005;overflow:auto;overscroll-behavior:contain}
.share-sheet::backdrop,.install-help::backdrop{background:rgb(12 12 14 / 65%)}
.share-sheet img{display:block;width:100%;height:auto;border-radius:18px}
.share-close{position:absolute;top:24px;right:24px;width:36px;height:36px;border:0;border-radius:50%;background:rgb(11 16 32 / 70%);color:#fff;font-size:22px;line-height:1;cursor:pointer}
.share-actions{display:flex;gap:10px;margin-top:14px}
.share-actions .btn{flex:1;width:auto;display:inline-flex;align-items:center;justify-content:center;text-decoration:none}
.install-help{text-align:center;padding:24px 22px 20px}
.install-help img{border-radius:16px}
.install-help h2{font-size:22px;line-height:1.25;margin:12px 0 10px}
.install-help ol{text-align:left;margin:0 0 18px;padding-left:22px;line-height:1.8;color:var(--ink)}
.install-help p{font-size:14px;color:var(--muted);margin:0 0 18px;text-align:left}
.backup-row{display:flex;flex-wrap:wrap;gap:6px 18px;margin:0 0 14px}
.install-help svg{width:20px;height:20px;vertical-align:-4px;color:var(--accent)}
@media(max-width:520px){.install-strip{position:relative;padding-right:40px}.install-copy span{display:none}.install-close{position:absolute;top:6px;right:6px}.install-strip img{width:38px;height:38px}}
.reading-level .level-field{flex-direction:row;justify-content:flex-start;gap:12px;margin:0 0 14px}
.reading-level .level-label{font-weight:800;color:var(--ink)}
