:root{--color-background:#fbfcfb;--color-surface:#fff;--color-surface-muted:#edf3e4;--color-border:#d7dbd4;--color-text:#1f2a22;--color-text-muted:#55605a;--color-primary:#1e6b43;--color-on-primary:#fff;--color-accent:#f6c343;--color-on-accent:#1f2a22;--color-success:#2fa84f;--color-danger:#c62828;--font-family-body:Inter, system-ui, sans-serif;--font-family-heading:Inter, system-ui, sans-serif;--font-size-xs:12px;--font-size-sm:14px;--font-size-md:16px;--font-size-lg:20px;--font-size-xl:24px;--font-size-2xl:32px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--space-8:32px;--space-12:48px;--radius-sm:4px;--radius-md:6px;--radius-lg:10px;--radius-full:9999px;--shadow-card:0 2px 0 #0000001a;--shadow-raised:0 4px 0 #00000029}:root[data-theme=dark]{--color-background:#131815;--color-surface:#1b221e;--color-surface-muted:#27312b;--color-border:#3a463f;--color-text:#e9ede7;--color-text-muted:#a7b3ab;--color-primary:#58b885;--color-on-primary:#0f1612;--color-accent:#f6c343;--color-on-accent:#1f2a22;--color-success:#58c777;--color-danger:#ff8f85;--font-family-body:Inter, system-ui, sans-serif;--font-family-heading:Inter, system-ui, sans-serif;--font-size-xs:12px;--font-size-sm:14px;--font-size-md:16px;--font-size-lg:20px;--font-size-xl:24px;--font-size-2xl:32px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--space-8:32px;--space-12:48px;--radius-sm:4px;--radius-md:6px;--radius-lg:10px;--radius-full:9999px;--shadow-card:0 2px 0 #00000059;--shadow-raised:0 4px 0 #00000073}*{box-sizing:border-box}body{background:var(--color-background);color:var(--color-text);font-family:var(--font-family-body);font-size:var(--font-size-md);background-image:linear-gradient(to right, color-mix(in srgb, var(--color-border) 45%, transparent) 1px, transparent 1px), linear-gradient(to bottom, color-mix(in srgb, var(--color-border) 45%, transparent) 1px, transparent 1px);background-size:var(--space-6) var(--space-6);margin:0;line-height:1.5}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}::selection{background:color-mix(in srgb, var(--color-accent) 60%, transparent);color:var(--color-text)}.theme-toggle{width:60px;height:32px;padding:0 var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-full);background:var(--color-surface-muted);color:var(--color-text-muted);cursor:pointer;flex:none;justify-content:space-between;align-items:center;display:inline-flex;position:relative}.theme-toggle svg{z-index:1;width:16px;height:16px;transition:color .2s;position:relative}.theme-toggle:before{content:"";border-radius:var(--radius-full);background:var(--color-surface);width:24px;height:24px;box-shadow:var(--shadow-card);transition:transform .2s;position:absolute;top:3px;left:3px;transform:translate(28px)}.theme-toggle .sun,:root[data-theme=dark] .theme-toggle .moon{color:var(--color-text)}:root[data-theme=dark] .theme-toggle:before{transform:none}:root[data-theme=dark] .theme-toggle .sun{color:var(--color-text-muted)}@media (prefers-reduced-motion:reduce){.theme-toggle:before,.theme-toggle svg{transition:none}}h1,h2,h3{font-family:var(--font-family-heading);margin:0;font-weight:600;line-height:1.25}h1,h2,h3,h4{text-wrap:balance}p{text-wrap:pretty}h1{font-size:var(--font-size-xl)}h2,h3{font-size:var(--font-size-md)}p{margin:0}a{color:var(--color-primary);text-underline-offset:.18em}.muted{color:var(--color-text-muted);font-size:var(--font-size-sm)}.stack>*+*{margin-top:var(--space-4)}.top-nav{align-items:center;gap:var(--space-6);height:64px;padding:0 var(--space-6);background:var(--color-surface);border-bottom:1px solid var(--color-border);display:flex}.top-nav .brand{font-family:var(--font-family-heading);font-size:var(--font-size-md);color:var(--color-text);align-items:center;gap:var(--space-2);font-weight:600;text-decoration:none;display:inline-flex}.top-nav .brand-mark{width:24px;height:24px;color:var(--color-primary)}.top-nav .links{gap:var(--space-6);align-self:stretch;display:flex;position:relative}.top-nav .links a{color:var(--color-text-muted);font-size:var(--font-size-sm);border-bottom:3px solid #0000;align-items:center;text-decoration:none;display:flex}.top-nav .links a.active{color:var(--color-text);border-bottom-color:var(--color-primary);font-weight:600}.top-nav .spacer{flex:1}.top-nav,.test-bar{z-index:5;position:sticky;top:0}html{scrollbar-gutter:stable;scroll-padding-top:72px}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}body:has(.test-bar:not([style*="display: none"])) .top-nav{display:none}.btn{padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);font-family:inherit;font-size:var(--font-size-sm);cursor:pointer;text-decoration:none;display:inline-block}.btn.primary{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-on-primary)}.btn{transition:filter .1s,transform 60ms}.btn:hover{filter:brightness(.94)}.btn:active{filter:brightness(.86);transform:translateY(1px)scale(.98)}.btn:disabled{opacity:.6;cursor:not-allowed;filter:none;transform:none}[aria-busy=true] .btn:disabled,.btn[aria-busy=true]:disabled{cursor:progress}.btn[aria-disabled=true]{opacity:.45;cursor:default;filter:none;transform:none}.actions{gap:var(--space-3);flex-wrap:wrap;display:flex}.actions.spread{justify-content:space-between}.shell{min-height:100vh;display:flex}.rail{width:240px;padding:var(--space-4);border-right:1px solid var(--color-border);background:var(--color-surface);flex:none;position:relative}@media (width>=768px){.rail{align-self:flex-start;min-height:calc(100vh - 64px);position:sticky;top:64px}}.rail a{z-index:1;padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);color:var(--color-text);font-size:var(--font-size-sm);text-decoration:none;display:block;position:relative}.rail a.active{background:var(--color-accent);color:var(--color-on-accent);font-weight:600}.rail a:not(.btn){align-items:center;gap:var(--space-3);display:flex}.nav-icon{flex:none;width:18px;height:18px}.rail a.btn{margin-top:var(--space-2);padding:var(--space-2) var(--space-4);text-align:center}.rail a.btn:first-of-type{margin-top:var(--space-6)}.rail a.btn.primary{color:var(--color-on-primary)}.icon-btn{border:1px solid var(--color-border);border-radius:var(--radius-full);background:var(--color-surface);width:36px;height:36px;color:var(--color-text);flex:none;place-items:center;transition:background-color .12s;display:grid}.icon-btn:hover{background:var(--color-surface-muted)}.icon-btn svg{width:18px;height:18px}main{min-width:0;padding:var(--space-8);flex:1}section{max-width:1000px;margin:0 auto var(--space-12)}section>*+*{margin-top:var(--space-4)}section.hero>*,section.stats>*{margin-top:0}.page{padding:var(--space-12) var(--space-6)}.footer{border-top:1px solid var(--color-border);padding:var(--space-6);text-align:center}.hero{gap:var(--space-8);grid-template-columns:1fr 1fr;align-items:center;display:grid}.hero h1{font-size:var(--font-size-2xl)}.hero .lead{font-size:var(--font-size-md)}.hero mark{background:var(--color-accent);color:var(--color-on-accent);padding:0 var(--space-1);border-radius:var(--radius-sm)}.hero .art{border-radius:var(--radius-lg);width:100%;height:320px;box-shadow:var(--shadow-card);display:block}.stats{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(160px,1fr));display:grid}.stat{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--space-4)}.stat .value{font-family:var(--font-family-heading);font-size:var(--font-size-xl);font-weight:600;line-height:1.25}.stat .label{color:var(--color-text-muted);font-size:var(--font-size-sm)}.stat .value,.row .figure,.stopwatch,.qnav,.score{font-variant-numeric:tabular-nums}.stat .value.good,.score.good{color:var(--color-success)}.score.poor{color:var(--color-danger)}.score{font-weight:600}.stat .value.poor{color:var(--color-danger)}.grid{gap:var(--space-6);grid-template-columns:repeat(auto-fill,minmax(260px,1fr));display:grid}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);color:var(--color-text);text-decoration:none;display:block;overflow:hidden}a.card{transition:transform .15s,box-shadow .15s}a.card:hover{box-shadow:var(--shadow-raised);transform:translateY(-2px)}@media (prefers-reduced-motion:reduce){a.card,a.card:hover{transition:none;transform:none}}.card .photo{width:100%;height:120px;display:block}.card .body{padding:var(--space-4)}.card .body>*+*{margin-top:var(--space-2)}.card.wide{grid-template-columns:240px 1fr;display:grid}.card.wide .photo{height:100%;min-height:160px}.panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--space-6)}.panel>*+*{margin-top:var(--space-3)}.panel.tinted{background:var(--color-surface-muted);box-shadow:none;text-align:center;padding:var(--space-8)}.split{gap:var(--space-6);grid-template-columns:2fr 1fr;display:grid}.steps{gap:var(--space-6);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.step>*+*{margin-top:var(--space-2)}.step .num{border-radius:var(--radius-sm);background:var(--color-primary);width:32px;height:32px;color:var(--color-on-primary);place-items:center;font-weight:600;display:grid}.tag{padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);background:var(--color-surface-muted);color:var(--color-text);font-size:var(--font-size-xs);display:inline-block}.tag.accent{background:var(--color-accent);color:var(--color-on-accent)}.progress{border-radius:var(--radius-sm);background:var(--color-surface-muted);height:8px;overflow:hidden}.progress>span{background:var(--color-primary);height:100%;transition:width .45s;display:block}.progress.good>span{background:var(--color-success)}.progress.fair>span{background:var(--color-accent)}.progress.poor>span{background:var(--color-danger)}.list{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);overflow:hidden}.row{align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);color:var(--color-text);text-decoration:none;display:flex}.row:last-child{border-bottom:0}:is(a,button,summary).row{transition:background-color .12s}@media (hover:hover){:is(a,button,summary).row:hover{background:var(--color-surface-muted)}}.row .grow{flex:1;min-width:0}.row .title{font-weight:600}.row .progress{flex:1}.row .progress.mini{flex:none;width:96px}.row .figure{text-align:right;min-width:64px;font-weight:600}.row mark{background:var(--color-accent);color:var(--color-on-accent);border-radius:var(--radius-sm)}.row[aria-current=true]{background:var(--color-surface-muted)}.row[data-status=solved]{box-shadow:inset 4px 0 var(--color-success)}.row[data-status=missed]{box-shadow:inset 4px 0 var(--color-danger)}.row[data-status=blank]{box-shadow:inset 4px 0 var(--color-text-muted)}.tag.solved{background:color-mix(in srgb, var(--color-success) 18%, var(--color-surface))}.tag.missed{background:color-mix(in srgb, var(--color-danger) 15%, var(--color-surface))}table.plain{border-collapse:collapse;background:var(--color-surface);border:1px solid var(--color-border);width:100%}table.plain th,table.plain td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);text-align:left}table.plain th{font-size:var(--font-size-sm);color:var(--color-text-muted)}.faq details{border-bottom:1px solid var(--color-border);padding:var(--space-4) 0}.faq summary{cursor:pointer;font-weight:600}.faq details p{margin-top:var(--space-2)}.faq summary{justify-content:space-between;align-items:center;gap:var(--space-4);list-style:none;display:flex}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:"";border:solid var(--color-text-muted);border-width:0 2px 2px 0;flex:none;width:8px;height:8px;transition:transform .2s;transform:rotate(45deg)}.faq details[open] summary:after{transform:rotate(-135deg)}@media (prefers-reduced-motion:reduce){.faq summary:after{transition:none}}.bars{align-items:center;gap:var(--space-3) var(--space-4);padding:var(--space-6);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);grid-template-columns:max-content 1fr max-content;display:grid}.bars a{color:var(--color-text);text-decoration:none;display:contents}.bars .name{font-size:var(--font-size-sm)}.bars a:hover .name,.bars a:focus-visible .name{text-decoration:underline}.bars a:focus-visible{outline:none}.bars a:focus-visible .name{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:var(--radius-sm)}.bars .bar{border-left:1px solid var(--color-border);height:12px}.bars .bar>span{background:var(--color-primary);border-radius:0 var(--radius-sm) var(--radius-sm) 0;height:100%;transition:width .45s;display:block}.bars .count{font-size:var(--font-size-sm);text-align:right;font-variant-numeric:tabular-nums;font-weight:600}.bars .count .of,.bars a.zero .name,.bars a.zero .count{color:var(--color-text-muted);font-weight:400}.calendar{gap:var(--space-1);grid-template-rows:repeat(7,14px);grid-auto-columns:14px;grid-auto-flow:column;display:grid;overflow-x:auto}.calendar span{border-radius:var(--radius-sm);background:var(--color-surface-muted)}.calendar span[data-level="1"]{background:color-mix(in srgb, var(--color-primary) 30%, var(--color-surface))}.calendar span[data-level="2"]{background:color-mix(in srgb, var(--color-primary) 55%, var(--color-surface))}.calendar span[data-level="3"]{background:color-mix(in srgb, var(--color-primary) 80%, var(--color-surface))}.calendar span[data-level="4"]{background:var(--color-primary)}.calendar span[data-today]{outline:2px solid var(--color-text);outline-offset:1px}.calendar{padding:3px}.calendar-wrap{gap:var(--space-1) var(--space-2);grid-template-columns:auto minmax(0,1fr);display:grid}.calendar-wrap .calendar-months{grid-column:2}.calendar-days{gap:var(--space-1);font-size:var(--font-size-xs);color:var(--color-text-muted);grid-template-rows:repeat(7,14px);padding:3px 0;line-height:14px;display:grid}.calendar-months{gap:var(--space-1);font-size:var(--font-size-xs);color:var(--color-text-muted);white-space:nowrap;grid-auto-columns:14px;grid-auto-flow:column;padding:0 3px;display:grid;overflow:visible}.calendar-legend{align-items:center;gap:var(--space-1);display:inline-flex}.calendar-legend span{border-radius:var(--radius-sm);background:var(--color-surface-muted);width:12px;height:12px}.calendar-legend span[data-level="1"]{background:color-mix(in srgb, var(--color-primary) 30%, var(--color-surface))}.calendar-legend span[data-level="2"]{background:color-mix(in srgb, var(--color-primary) 55%, var(--color-surface))}.calendar-legend span[data-level="3"]{background:color-mix(in srgb, var(--color-primary) 80%, var(--color-surface))}.calendar-legend span[data-level="4"]{background:var(--color-primary)}.question{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);max-width:760px;box-shadow:var(--shadow-card);padding:var(--space-8)}.question>*+*{margin-top:var(--space-4)}.question,.passage,.row .grow{overflow-wrap:break-word}.question .meta{align-items:center;gap:var(--space-3);row-gap:var(--space-1);flex-wrap:wrap;display:flex}.question p+h3{padding-top:var(--space-4);border-top:1px dashed var(--color-border)}.question .meta .stopwatch{color:var(--color-text-muted);font-size:var(--font-size-sm);font-variant-numeric:tabular-nums;margin-left:auto}.choice{gap:var(--space-3);padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);align-items:flex-start;display:flex}.choice,.btn,.qnav a,.chips button{touch-action:manipulation}.choice .letter{-webkit-user-select:none;user-select:none;border-radius:var(--radius-sm);background:var(--color-surface-muted);width:28px;height:28px;font-size:var(--font-size-sm);flex:none;place-items:center;font-weight:600;display:grid}.choice .note{font-size:var(--font-size-sm);white-space:nowrap;margin-left:auto;font-weight:600}.choice{cursor:pointer;transition:transform .12s,background-color .12s,border-color .12s}.choice[tabindex="0"]:active{transform:scale(.99)}.choice.selected{animation:.22s choice-push}@keyframes choice-push{50%{transform:scale(.985)}}@media (hover:hover){.choice[tabindex="0"]:hover{background:var(--color-surface-muted)}}.choice:not([tabindex="0"]){cursor:default}.choice.selected{border-color:var(--color-primary)}.choice.selected .letter{background:var(--color-primary);color:var(--color-on-primary)}.choice.correct{border:2px solid var(--color-success);background:color-mix(in srgb, var(--color-success) 10%, var(--color-surface))}.choice.incorrect{border:2px solid var(--color-danger);background:color-mix(in srgb, var(--color-danger) 8%, var(--color-surface))}.choice.correct .note{color:var(--color-success)}.choice.incorrect .note{color:var(--color-danger)}.choice.correct .note:before{content:"✓ "}.choice.incorrect .note:before{content:"✗ "}.choice.eliminated{opacity:.5;text-decoration:line-through}.choice .cross{border-radius:var(--radius-sm);width:28px;height:28px;color:var(--color-text-muted);cursor:pointer;opacity:0;background:0 0;border:1px solid #0000;flex:none;place-items:center;margin-left:auto;padding:0;transition:opacity .12s;display:grid}.choice .cross svg{width:14px;height:14px}.choice:hover .cross,.choice:focus-within .cross,.choice .cross[aria-pressed=true]{opacity:1}.choice .cross:hover{border-color:var(--color-border);background:var(--color-surface);color:var(--color-text)}@media (hover:none){.choice .cross{opacity:1}}kbd{min-width:1.6em;padding:0 var(--space-1);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);font-family:inherit;font-size:var(--font-size-xs);text-align:center;border-bottom-width:2px;display:inline-block}@media (hover:none){.keys-hint{display:none}}kbd{white-space:nowrap}.link-btn{color:var(--color-primary);font:inherit;font-size:var(--font-size-sm);text-underline-offset:.18em;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.explain{background:var(--color-surface-muted);border-radius:var(--radius-md);padding:var(--space-4)}.explain p{margin-top:var(--space-2);white-space:pre-line}.explain.right,.explain.wrong{border-left:4px solid var(--color-success)}.explain.wrong{border-left-color:var(--color-danger)}.explain.right>strong{color:var(--color-success)}.explain.wrong>strong{color:var(--color-danger)}.review>summary{cursor:pointer;list-style:none}.review>summary::-webkit-details-marker{display:none}.review>summary:after{content:"";width:8px;height:8px;margin-left:var(--space-2);border:solid var(--color-text-muted);border-width:0 2px 2px 0;flex:none;transition:transform .2s;transform:rotate(45deg)}.review[open]>summary:after{transform:rotate(-135deg)}.review>.body{padding:var(--space-4) var(--space-4) var(--space-6);border-bottom:1px solid var(--color-border);animation:.2s review-open}.review>.body>*+*{margin-top:var(--space-4)}.review:last-child>.body,.review:last-child:not([open])>summary{border-bottom:0}@keyframes review-open{0%{opacity:0;transform:translateY(-4px)}}@media (prefers-reduced-motion:reduce){.choice,.choice.selected,.progress>span,.review>.body,.review>summary:after{transition:none;animation:none}}.menu-btn{display:none}@media (width<=767px){.top-nav .links,.top-nav .btn:not(.primary):not(.menu-btn),.test-bar .muted{display:none}.shell{flex-direction:column}.rail{align-items:center;gap:var(--space-2);border-right:0;border-bottom:1px solid var(--color-border);scrollbar-width:none;width:auto;padding:var(--space-2) var(--space-4);flex-wrap:nowrap;display:flex;overflow-x:auto}.rail a{white-space:nowrap;flex:none}.rail a.btn,.rail a.btn:first-of-type{margin-top:0}.menu-btn{display:inline-block}body.menu-open .top-nav{height:auto;padding-bottom:var(--space-3);flex-wrap:wrap}body.menu-open .top-nav .links{gap:var(--space-3);width:100%;padding-top:var(--space-3);flex-direction:column;order:9;display:flex}body.menu-open .shell{flex-direction:column}body.menu-open .rail{border-right:0;border-bottom:1px solid var(--color-border);width:auto;display:block}.top-nav,.test-bar{gap:var(--space-3);padding:0 var(--space-4)}.hero,.split,.card.wide{grid-template-columns:1fr}.hero img{height:200px}main,.page{padding:var(--space-4)}section{margin-bottom:var(--space-8)}.question,.passage{padding:var(--space-4)}table.plain{display:block;overflow-x:auto}.row .title{-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}}.test-bar{align-items:center;gap:var(--space-4);height:64px;padding:0 var(--space-6);background:var(--color-surface);border-bottom:1px solid var(--color-border);display:flex}.test-bar .title{font-family:var(--font-family-heading);font-size:var(--font-size-md);font-weight:600}.test-bar .spacer{flex:1}.timer{padding:var(--space-1) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);font-family:var(--font-family-heading);font-variant-numeric:tabular-nums;font-weight:600}.reader{gap:var(--space-6);max-width:1280px;padding:var(--space-6);grid-template-columns:1fr 1fr;align-items:start;margin:0 auto;display:grid}.passage{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--space-8);line-height:1.75}.passage>*+*{margin-top:var(--space-4)}.passage mark{background:var(--color-accent);color:var(--color-on-accent)}::highlight(user-mark){background-color:var(--color-accent);color:var(--color-on-accent)}.btn.highlighter{align-items:center;gap:var(--space-2);display:inline-flex}.btn.highlighter svg{flex:none;width:16px;height:16px}.mark-button{z-index:30;box-shadow:var(--shadow-raised);position:fixed;transform:translate(-50%)}.btn[aria-pressed=true]{border-color:var(--color-accent);background:var(--color-accent);color:var(--color-on-accent)}.passage{counter-reset:para}.passage p{counter-increment:para;position:relative}.passage p:before{content:counter(para);left:calc(-1 * var(--space-6));font-size:var(--font-size-xs);color:var(--color-text-muted);font-variant-numeric:tabular-nums;font-weight:600;position:absolute;top:.2em}.passage .passage-label{counter-reset:para}@media (width<=767px){.passage{padding-left:var(--space-8)}.passage p:before{left:calc(-1 * var(--space-4) - 4px)}}.passage-label{margin:var(--space-6) 0 0;font-size:var(--font-size-sm);letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-muted);font-weight:600}.passage-label:first-child{margin-top:0}.qnav{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-6);background:var(--color-surface);border-top:1px solid var(--color-border);flex-wrap:wrap;display:flex;position:sticky;bottom:0}.qnav a:not(.btn){border:1px solid var(--color-border);border-radius:var(--radius-sm);width:32px;height:32px;color:var(--color-text);font-size:var(--font-size-sm);place-items:center;text-decoration:none;transition:background-color .2s,border-color .2s;display:grid}.qnav a.done{background:color-mix(in srgb, var(--color-success) 35%, var(--color-surface));border-color:var(--color-success)}.qnav a.flagged{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-on-accent)}.qnav a.current{outline:2px solid var(--color-primary);outline-offset:1px;font-weight:600}@media (pointer:coarse){.qnav a:not(.btn){width:40px;height:40px}}.qnav .spacer{flex:1}.qnav{flex-wrap:nowrap}.qnav .spacer{display:none}.qnav-items{align-items:center;gap:var(--space-2);flex-wrap:wrap;flex:1;min-width:0;display:flex}@media (width<=767px){.qnav{flex-wrap:wrap}.qnav-items{scrollbar-width:none;padding:var(--space-1);flex-wrap:nowrap;flex:1 0 100%;overflow-x:auto}.qnav-items>*{flex:none}}.qnav .qnav-group{margin-left:var(--space-3);font-size:var(--font-size-xs);color:var(--color-text-muted);font-weight:600}.qnav .qnav-group:first-child{margin-left:0}@media (width<=767px){.reader{padding:var(--space-4);grid-template-columns:1fr}.test-bar{gap:var(--space-2)}.test-bar .spacer,.test-bar .theme-toggle,.test-bar .clear-marks{display:none}.test-bar .highlighter .label{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.test-bar .title{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:var(--font-size-sm);flex:1;overflow:hidden}.test-bar .btn{padding:var(--space-2) var(--space-3);white-space:nowrap}}section:has(>.drill-reader){max-width:1280px}.drill-reader{gap:var(--space-6);grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;display:grid}.drill-reader>.passage{top:calc(64px + var(--space-6));max-height:calc(100vh - 64px - var(--space-12));position:sticky;overflow:auto}.drill-reader>.question{max-width:none}@media (width<=1023px){.drill-reader{grid-template-columns:minmax(0,1fr)}.drill-reader>.passage{max-height:none;position:static}}.skip-link{top:var(--space-2);left:var(--space-2);z-index:20;padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);background:var(--color-primary);color:var(--color-on-primary);position:fixed;transform:translateY(-200%)}.skip-link:focus{transform:none}#main:focus{outline:none}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,[role=radio]:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.list .row:focus-visible,.chips button:focus-visible,.tabs button:focus-visible{outline-offset:-2px}body.test{flex-direction:column;min-height:100vh;display:flex}body.test .reader{flex:1;width:100%}.auth{max-width:440px;margin:0 auto}.field>*+*{margin-top:var(--space-1)}.field label{font-size:var(--font-size-sm);font-weight:600;display:block}.field input,.field select{width:100%;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font-family:inherit;font-size:var(--font-size-md);display:block}.field .hint{color:var(--color-text-muted);font-size:var(--font-size-sm)}.with-button{gap:var(--space-2);display:flex}.with-button input{flex:1;min-width:0}.field.invalid input{border:2px solid var(--color-danger)}.field.invalid .hint{color:var(--color-danger);font-weight:600}input,select{accent-color:var(--color-primary)}.check{align-items:flex-start;gap:var(--space-2);font-size:var(--font-size-sm);display:flex}.btn.block{text-align:center;width:100%;display:block}.prose{max-width:680px}.prose>*+*{margin-top:var(--space-4)}.prose h2{margin-top:var(--space-6)}.prose ol,.prose ul{margin:var(--space-4) 0 0;padding-left:var(--space-6)}.prose li+li{margin-top:var(--space-2)}.callout{border-left:4px solid var(--color-primary);background:var(--color-surface);padding:var(--space-4)}@media print{.top-nav,.rail,.test-bar,.qnav,.actions,.keys-hint,.skip-link,.choice .cross,.nextjs-portal{display:none!important}body{background:0 0}main,.reader,.drill-reader{padding:0;display:block}.passage,.question{box-shadow:none;border:0;padding:0;max-height:none!important;position:static!important;overflow:visible!important}.choice{break-inside:avoid}}.swatches{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(150px,1fr));display:grid}.swatch{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);font-size:var(--font-size-sm);overflow:hidden}.swatch .chip{border-bottom:1px solid var(--color-border);height:64px}.swatch .name{padding:var(--space-2) var(--space-3)}.demo{align-items:center;gap:var(--space-4);flex-wrap:wrap;display:flex}.demo .box{background:var(--color-surface);border:1px solid var(--color-border);width:64px;height:64px}.theme-switch{right:var(--space-4);bottom:var(--space-4);z-index:10;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font-family:inherit;font-size:var(--font-size-sm);box-shadow:var(--shadow-raised);position:fixed}body.test .theme-switch{top:72px;bottom:auto}.reader.single{grid-template-columns:minmax(0,760px);justify-content:center}.timer.low{border:2px solid var(--color-danger);animation:2s ease-in-out infinite timer-pulse}@keyframes timer-pulse{50%{background:color-mix(in srgb, var(--color-danger) 15%, var(--color-surface))}}@media (prefers-reduced-motion:reduce){.timer.low{animation:none}}.modal{max-width:440px;padding:var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-card)}.modal>*+*{margin-top:var(--space-4)}.modal-head{top:calc(-1 * var(--space-6));z-index:2;margin:calc(-1 * var(--space-6)) calc(-1 * var(--space-6)) 0;padding:var(--space-6) var(--space-6) var(--space-3);background:var(--color-surface);border-bottom:1px solid var(--color-border);align-items:center;position:sticky}.jump-list{align-items:center;gap:var(--space-2)}.jump-list .btn{min-width:40px;padding:var(--space-1) var(--space-2);text-align:center;font-variant-numeric:tabular-nums}.modal::backdrop{background:color-mix(in srgb, var(--color-text) 45%, transparent)}.modal[open]{animation:.16s modal-in}.modal[open]::backdrop{animation:.16s backdrop-in}@keyframes modal-in{0%{opacity:0;transform:translateY(8px)scale(.98)}}@keyframes backdrop-in{0%{opacity:0}}@media (prefers-reduced-motion:reduce){.modal[open],.modal[open]::backdrop{animation:none}}.nav-ind{pointer-events:none;transition:transform .25s,width .25s,height .25s;position:absolute;top:0;left:0}.links .nav-ind{background:var(--color-primary);height:3px;top:auto;bottom:0}.links.has-ind a.active{border-bottom-color:#0000}.rail .nav-ind{background:var(--color-accent);border-radius:var(--radius-md)}.rail.has-ind a.active{background:0 0}@media (prefers-reduced-motion:reduce){.nav-ind{transition:none}}[hidden]{display:none!important}.tabs{gap:var(--space-1);padding:var(--space-1);background:var(--color-surface-muted);border-radius:var(--radius-md);display:inline-flex;position:relative}.tabs button{z-index:1;padding:var(--space-2) var(--space-4);color:var(--color-text-muted);font-family:inherit;font-size:var(--font-size-sm);cursor:pointer;background:0 0;border:0;position:relative}.tabs button.active{color:var(--color-text);font-weight:600}.tabs:not(.has-ind) button.active{background:var(--color-surface);border-radius:var(--radius-sm)}.tabs .nav-ind{background:var(--color-surface);border-radius:var(--radius-sm);box-shadow:var(--shadow-card)}.chips{gap:var(--space-2);flex-wrap:wrap;display:flex}.chips button{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-full);background:var(--color-surface);color:var(--color-text);font-family:inherit;font-size:var(--font-size-sm);cursor:pointer;display:inline-flex}@media (hover:hover){.chips button:hover{background:var(--color-surface-muted)}}.chips button[aria-pressed=true]{border-color:var(--color-primary);background:var(--color-primary);color:var(--color-on-primary)}.chips .count{font-size:var(--font-size-xs);font-variant-numeric:tabular-nums;opacity:.8}button.row{border:0;border-bottom:1px solid var(--color-border);width:100%;font:inherit;text-align:left;cursor:pointer;background:0 0}button.row[aria-busy=true]{opacity:.6;cursor:progress}.list>form:not(:last-child)>button.row{border-bottom:1px solid var(--color-border)}.list>form:last-child>button.row{border-bottom:0}body.test .reader .passage{max-height:calc(100vh - 180px);overflow:auto}body.test .reader .passage,.drill-reader>.passage,.modal{scrollbar-width:thin}:root{--tile-bg:var(--color-primary);--tile-light:color-mix(in srgb, var(--color-primary) 12%, #fff);--tile-mid:color-mix(in srgb, var(--color-primary) 55%, #fff);--tile-dark:color-mix(in srgb, var(--color-primary) 40%, #000)}:root[data-theme=dark]{--tile-bg:color-mix(in srgb, var(--color-primary) 70%, #0b100d);--tile-light:color-mix(in srgb, var(--color-primary) 30%, #e9ede7);--tile-mid:color-mix(in srgb, var(--color-primary) 75%, #fff);--tile-dark:color-mix(in srgb, var(--color-primary) 30%, #000)}.art .t{transform-box:fill-box;transform-origin:50%}.art .fillin{stroke-dasharray:1;stroke-dashoffset:1px}.art-reading .mark{transform-box:fill-box;transform-origin:0}@media (prefers-reduced-motion:no-preference){.art-hero .arc{transform-box:view-box;transform-origin:1224px 864px;animation:1.1s cubic-bezier(.2,.8,.2,1) both art-grow}.art-hero .link{animation:art-slide .8s cubic-bezier(.2, .8, .2, 1) var(--d) both, art-sway 5s ease-in-out calc(var(--d) + 1.4s) infinite alternate}.art-hero .end{animation:.7s cubic-bezier(.3,1.6,.5,1) .75s both art-drop,5s ease-in-out 1.9s infinite alternate art-sway}.art-hero .gap{animation:.8s cubic-bezier(.2,.8,.2,1) .55s both art-slide,40s linear 1.4s infinite art-spin}.art-hero .dot{animation:.5s ease-out 1.1s both art-drop,3.2s ease-in-out 2s infinite art-pulse}.art-about .tile{animation:art-pop .6s cubic-bezier(.3, 1.5, .5, 1) calc(var(--k) * 45ms) both}.art-about .dot{animation:.6s cubic-bezier(.3,1.5,.5,1) .5s both art-pop,3.2s ease-in-out 1.5s infinite art-pulse}.art .fillin{transition:stroke-dashoffset .9s cubic-bezier(.4,0,.2,1)}.card:is(:hover,:focus-visible) .fillin{stroke-dashoffset:0}.card:is(:hover,:focus-visible) .lock{animation:.5s ease-out .7s art-nudge}.card:is(:hover,:focus-visible) .sweep{animation:1.2s cubic-bezier(.4,0,.2,1) art-sweep}.card:is(:hover,:focus-visible) .art-columns .dot{animation:.8s ease-in-out art-pulse}.card:is(:hover,:focus-visible) .step{animation:art-hop .5s ease-out calc(var(--i) * 90ms)}.card:is(:hover,:focus-visible) .mark{animation:.8s cubic-bezier(.4,0,.2,1) art-mark}.progress>span,.bars .bar>span{animation:.9s cubic-bezier(.2,.8,.2,1) both art-fill}.question .progress>span{animation:none}@supports (animation-timeline:view()){.page>section:not(:first-child){animation:linear both art-rise;animation-timeline:view();animation-range:entry entry 50%}}}@keyframes art-grow{0%{scale:.25}}@keyframes art-slide{0%{opacity:0;translate:-170px}}@keyframes art-drop{0%{opacity:0;scale:1.8}}@keyframes art-sway{to{translate:0 -12px}}@keyframes art-spin{to{rotate:360deg}}@keyframes art-pulse{50%{scale:1.3}}@keyframes art-pop{0%{scale:0}}@keyframes art-nudge{40%{translate:-14px}}@keyframes art-sweep{0%{stroke-dashoffset:70px}}@keyframes art-hop{50%{translate:0 -26px}}@keyframes art-mark{0%{scale:0 1}}@keyframes art-fill{0%{width:0}}@keyframes art-rise{0%{opacity:0;translate:0 32px}}.count-up .final{display:none}@media (prefers-reduced-motion:reduce){.count-up .final{display:inline}.count-up .counting{display:none}}html[data-motion=reduce] .count-up .final{display:inline}html[data-motion=reduce] .count-up .counting{display:none}.sk{border-radius:var(--radius-sm);background:linear-gradient(90deg, var(--color-surface-muted) 25%, var(--color-background) 50%, var(--color-surface-muted) 75%) 0 0 / 200% 100%;max-width:100%;animation:1.4s ease-in-out infinite sk-shimmer;display:block}.sk.inline{display:inline-block}.sk+.sk{margin-top:var(--space-2)}.row .grow .sk{margin:4px 0}.skeleton{animation:.12s both fade-in}main>section,main>.question,.page>*,.rail{animation:.28s cubic-bezier(.2,.7,.2,1) both page-in}.question[aria-busy=true]{opacity:.6;transition:opacity .15s}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@keyframes sk-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes page-in{0%{opacity:0;transform:translateY(6px)}}@media (prefers-reduced-motion:reduce){.sk,.skeleton,main>section,main>.question,.page>*,.rail{animation:none}}html:root[data-theme]{--font-size-xs:calc(12px * var(--text-scale,1));--font-size-sm:calc(14px * var(--text-scale,1));--font-size-md:calc(16px * var(--text-scale,1));--font-size-lg:calc(20px * var(--text-scale,1));--font-size-xl:calc(24px * var(--text-scale,1));--font-size-2xl:calc(32px * var(--text-scale,1))}body{line-height:var(--line-height,1.5);letter-spacing:var(--letter-spacing,normal);word-spacing:var(--word-spacing,normal)}.passage{line-height:calc(var(--line-height,1.5) + .25)}h1,h2,h3{line-height:calc(var(--line-height,1.5) - .25)}html:root[data-font=atkinson]{--font-family-body:"Atkinson Hyperlegible", system-ui, sans-serif;--font-family-heading:"Atkinson Hyperlegible", system-ui, sans-serif}html:root[data-font=lexend]{--font-family-body:Lexend, system-ui, sans-serif;--font-family-heading:Lexend, system-ui, sans-serif}html:root[data-passage-font=serif]{--font-family-passage:Georgia, "Times New Roman", serif}html:root[data-passage-font=atkinson]{--font-family-passage:"Atkinson Hyperlegible", system-ui, sans-serif}.passage,.passage-sample{font-family:var(--font-family-passage,inherit)}html:root[data-theme=light][data-contrast=high]{--color-background:#fff;--color-surface:#fff;--color-surface-muted:#ebebeb;--color-border:#000;--color-text:#000;--color-text-muted:#1a1a1a;--color-primary:#00502a;--color-on-primary:#fff;--color-accent:#ffd400;--color-on-accent:#000;--color-success:#006b2e;--color-danger:#a30000}html:root[data-theme=dark][data-contrast=high]{--color-background:#000;--color-surface:#000;--color-surface-muted:#1f1f1f;--color-border:#fff;--color-text:#fff;--color-text-muted:#e6e6e6;--color-primary:#7dffb2;--color-on-primary:#000;--color-accent:#ffd400;--color-on-accent:#000;--color-success:#7dffb2;--color-danger:#ffa3a3}html[data-contrast=high] body{background-image:none}html[data-contrast=high] :is(.panel,.passage,.question,.choice,.row,.stat){border-width:2px}html:root[data-theme=light][data-tint=custom]:not([data-contrast]){--color-background:var(--tint-background);--color-surface:var(--tint-surface);--color-surface-muted:var(--tint-muted)}html:root[data-theme=light][data-markers=colorblind]{--color-success:#0072b2;--color-danger:#c85200}html:root[data-theme=dark][data-markers=colorblind]{--color-success:#56b4e9;--color-danger:#f0a030}html[data-motion=reduce] *,html[data-motion=reduce] :before,html[data-motion=reduce] :after{scroll-behavior:auto!important;transition:none!important;animation:none!important}html[data-focus=strong] :focus-visible{outline:3px solid var(--color-text)!important;outline-offset:3px!important;box-shadow:0 0 0 7px var(--color-accent)!important}html[data-layout=stacked] .reader:not(.single){grid-template-columns:minmax(0,760px);justify-content:center}html[data-layout=stacked] body.test .reader .passage{max-height:none}html[data-layout=stacked] .drill-reader{grid-template-columns:minmax(0,760px);justify-content:center}html[data-layout=stacked] .drill-reader>.passage{max-height:none;position:static}.prefs-group{gap:var(--space-4);display:grid}.range-field{align-items:center;gap:var(--space-2) var(--space-4);grid-template-columns:1fr auto;display:grid}.range-field label{font-size:var(--font-size-sm);font-weight:600}.range-field input[type=range]{width:100%;accent-color:var(--color-primary);grid-column:1/-1}.range-field output{font-variant-numeric:tabular-nums;font-size:var(--font-size-sm);color:var(--color-text-muted)}.segmented{gap:var(--space-2);border:0;flex-wrap:wrap;margin:0;padding:0;display:flex}.segmented legend{font-size:var(--font-size-sm);margin-bottom:var(--space-2);padding:0;font-weight:600}.segmented label{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);font-size:var(--font-size-sm);cursor:pointer;display:inline-flex}.segmented label:has(input:checked){border-color:var(--color-primary);box-shadow:inset 0 0 0 1px var(--color-primary);font-weight:600}.segmented label:has(input:focus-visible){outline:2px solid var(--color-primary);outline-offset:2px}.segmented input{accent-color:var(--color-primary)}.swatch{border-radius:var(--radius-sm);border:1px solid var(--color-border);block-size:1em;inline-size:1em}.accent-row{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.color-choice{gap:var(--space-3);border:0;margin:0;padding:0;display:grid}.color-choice legend{font-size:var(--font-size-sm);margin-bottom:var(--space-2);padding:0;font-weight:600}.swatch-choice{display:inline-flex;position:relative}.swatch-choice>button:first-child{border:1px solid var(--color-border);border-radius:var(--radius-full);cursor:pointer;block-size:32px;inline-size:32px;padding:0}.swatch-choice>button.plain{background-image:linear-gradient(135deg, transparent 46%, var(--color-border) 46% 54%, transparent 54%)!important}.swatch-choice>button[aria-pressed=true]{outline:2px solid var(--color-text);outline-offset:2px}.swatch-choice .forget{border:1px solid var(--color-border);border-radius:var(--radius-full);background:var(--color-surface);block-size:18px;inline-size:18px;color:var(--color-text);line-height:1;font-size:var(--font-size-xs);cursor:pointer;padding:0;position:absolute;top:-6px;right:-6px}.color-choice:disabled{opacity:.5}.accent-row input[type=color]{border:1px solid var(--color-border);border-radius:var(--radius-md);background:0 0;block-size:36px;inline-size:48px;padding:0}.settings-layout{gap:var(--space-6);grid-template-columns:minmax(0,1fr) minmax(0,380px);align-items:start;display:grid}.settings-layout .preview{position:sticky;top:88px}@media (width<=960px){.settings-layout{grid-template-columns:minmax(0,1fr)}.settings-layout .preview{position:static}}.choice .note{white-space:normal;text-align:right}
