:root{color-scheme:light dark;--paper:#f3f6f6;--surface:#fff;--ink:#15303b;--ink-2:#4a6070;--rule:#c9d6d9;--margin-rule:#9fbccb;--accent:#1c5d7f;--accent-strong:#123f57;--accent-wash:#e2edf2;--on-accent:#fff;--correct:#1d6a3a;--correct-wash:#e5f2e9;--wrong:#a3291e;--wrong-wash:#fae9e6;--due:#855000;--due-wash:#fbefd9;--focus:#1c5d7f;--serif:Charter, "Bitstream Charter", "Sitka Text", Cambria, "Noto Serif", Georgia, serif;--sans:system-ui, -apple-system, "Segoe UI", Roboto, "Noto Sans", "Helvetica Neue", Arial, sans-serif;--mono:ui-monospace, "Cascadia Mono", "SF Mono", Menlo, Consolas, "Roboto Mono", monospace;--step--1:.9rem;--step-0:1.125rem;--step-1:1.35rem;--step-2:1.6rem;--step-3:2rem;--margin-col:3.5rem;--measure:36rem;--radius:10px;--radius-small:6px;--tap:2.75rem}@media (prefers-color-scheme:dark){:root{--paper:#0f1d24;--surface:#16272f;--ink:#e2ebee;--ink-2:#a5b9c2;--rule:#2d4450;--margin-rule:#3d6476;--accent:#8cc8e6;--accent-strong:#b8def1;--accent-wash:#1a3340;--on-accent:#0c1a21;--correct:#86d4a2;--correct-wash:#16301f;--wrong:#ff9f92;--wrong-wash:#3a1c19;--due:#f2bd6b;--due-wash:#33281a;--focus:#b8def1}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:var(--step-0);flex-direction:column;min-height:100vh;margin:0;line-height:1.6;display:flex}@media (width>=48rem){:root{--step-0:1.1875rem;--step-2:1.75rem;--step-3:2.4rem;--margin-col:4.5rem}}h1,h2,h3{font-family:var(--serif);letter-spacing:-.005em;text-wrap:balance;font-weight:700;line-height:1.2}h1{font-size:var(--step-3);margin:0 0 .5rem}h2{font-size:var(--step-2);margin:2.5rem 0 .75rem}h3{font-size:var(--step-1);margin:1.5rem 0 .5rem}p{margin:0 0 1rem}a{color:var(--accent);text-underline-offset:.18em;text-decoration-thickness:1px}a:hover{color:var(--accent-strong);text-decoration-thickness:2px}:focus-visible{outline:3px solid var(--focus);outline-offset:3px;border-radius:2px}[tabindex="-1"]:focus{outline:none}[hidden]{display:none!important}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.skip-link{background:var(--surface);z-index:10;padding:.5rem 1rem;position:absolute;top:-4rem;left:1rem}.skip-link:focus{top:.5rem}.wrap{width:100%;max-width:44rem;margin:0 auto;padding:0 1rem}main{flex:1;padding-bottom:3rem}.site-header{border-bottom:1px solid var(--rule);background:var(--surface)}.site-header .wrap{justify-content:space-between;align-items:center;gap:.5rem;min-height:3.5rem;display:flex}.wordmark{min-height:var(--tap);font-family:var(--serif);color:var(--ink);white-space:nowrap;align-items:center;gap:.6rem;font-size:1.2rem;font-weight:700;text-decoration:none;display:inline-flex}.wordmark:before{content:"";background:var(--accent);border-radius:2px;width:3px;height:1.3em}.site-nav ul{gap:.15rem;margin:0;padding:0;list-style:none;display:flex}.site-nav a{min-height:var(--tap);color:var(--ink-2);border-radius:var(--radius-small);align-items:center;padding:0 .6rem;font-size:1rem;text-decoration:none;display:inline-flex}.site-nav a:hover{color:var(--ink);background:var(--accent-wash)}.site-nav a[aria-current=page]{color:var(--ink);box-shadow:inset 0 -3px 0 var(--accent);border-radius:0;font-weight:600}.site-footer{border-top:1px solid var(--rule);color:var(--ink-2);font-size:var(--step--1);padding:1.25rem 0 2rem;line-height:1.5}.site-footer p{margin:0 0 .5rem}.sync-status{color:var(--ink-2)}.page-head{padding:1.75rem 0 .5rem}.lede{color:var(--ink-2);max-width:var(--measure)}.crumb{margin:0 0 .75rem;font-size:1rem}.crumb a{min-height:var(--tap);align-items:center;display:inline-flex}.btn{border:2px solid var(--accent);border-radius:var(--radius);min-height:3rem;color:var(--accent);font:inherit;text-align:center;cursor:pointer;background:0 0;justify-content:center;align-items:center;gap:.5rem;padding:.6rem 1.25rem;font-weight:600;line-height:1.25;text-decoration:none;display:inline-flex}.btn:hover{border-color:var(--accent-strong);color:var(--accent-strong);background:var(--accent-wash)}.btn-primary{background:var(--accent);color:var(--on-accent)}.btn-primary:hover{background:var(--accent-strong);color:var(--on-accent)}.btn:disabled{opacity:.55;cursor:default}.btn-link{min-height:var(--tap);color:var(--ink-2);font:inherit;text-underline-offset:.18em;cursor:pointer;background:0 0;border:0;align-items:center;padding:0;font-size:1rem;text-decoration:underline;display:inline-flex}.btn-link:hover{color:var(--ink)}.due-banner{background:var(--due-wash);border-left:4px solid var(--due);border-radius:var(--radius-small);min-height:3.5rem;color:var(--ink);justify-content:space-between;align-items:center;gap:1rem;margin:1rem 0 .5rem;padding:.9rem 1rem;font-weight:600;text-decoration:none;display:flex}.due-banner:hover{color:var(--ink);text-decoration:underline}.due-banner .due-count{font-family:var(--serif);font-size:var(--step-1);color:var(--due);font-variant-numeric:tabular-nums}.ledger{border-top:1px solid var(--rule);margin:0;padding:0;list-style:none}.ledger>li{border-bottom:1px solid var(--rule)}.ledger-row{grid-template-columns:var(--margin-col) 1fr;color:inherit;text-decoration:none;display:grid}.ledger-margin{text-align:right;font-family:var(--serif);font-size:var(--step-1);color:var(--ink-2);font-variant-numeric:tabular-nums lining-nums;padding:1rem .75rem 1rem 0;line-height:1.3}.ledger-body{border-left:2px solid var(--margin-rule);min-width:0;padding:1rem 0 1rem .9rem}a.ledger-row:hover .ledger-body{background:var(--accent-wash)}a.ledger-row:hover .ledger-title{text-decoration:underline}a.ledger-row:focus-visible{outline-offset:-3px}.ledger-title{color:var(--accent);font-weight:650;line-height:1.35;display:block}.is-soon .ledger-title{color:var(--ink);font-weight:600}.ledger-meta{color:var(--ink-2);margin-top:.25rem;font-size:1rem;display:block}.ledger-summary{color:var(--ink);margin-top:.3rem;font-size:1rem;display:block}.soon{color:var(--ink-2);margin-top:.3rem;font-size:1rem;font-style:italic;display:inline-block}.meter{color:var(--ink-2);align-items:center;gap:.75rem;margin-top:.5rem;font-size:1rem;display:flex}progress{-webkit-appearance:none;appearance:none;background:var(--rule);border:0;border-radius:999px;flex:1;max-width:10rem;height:.5rem;overflow:hidden}progress::-webkit-progress-bar{background:var(--rule);border-radius:999px}progress::-webkit-progress-value{background:var(--accent);border-radius:999px}progress::-moz-progress-bar{background:var(--accent);border-radius:999px}.lesson-state{align-items:center;gap:.3rem;display:inline-flex}.lesson-state .icon{display:none}.is-done .lesson-state{color:var(--correct);font-weight:600}.is-done .lesson-state .icon{display:inline-block}.icon{fill:none;stroke:currentColor;stroke-width:3px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:1.15em;height:1.15em}.prose{max-width:var(--measure)}.prose h2{padding-top:.25rem;scroll-margin-top:1rem}.prose :target{background:var(--accent-wash);box-shadow:-.5rem 0 0 var(--accent-wash), .5rem 0 0 var(--accent-wash)}.prose ul,.prose ol{margin:0 0 1rem;padding-left:1.4rem}.prose li{margin-bottom:.35rem}.prose strong{font-weight:650}.prose blockquote{background:var(--accent-wash);border-left:4px solid var(--accent);border-radius:0 var(--radius-small) var(--radius-small) 0;margin:1.5rem 0;padding:.9rem 1rem}.prose blockquote p:last-child{margin-bottom:0}.prose table{border-collapse:collapse;width:100%;margin:0 0 1rem;font-size:1rem;display:block;overflow-x:auto}.prose th,.prose td{border-bottom:1px solid var(--rule);text-align:left;vertical-align:top;padding:.5rem .75rem .5rem 0}.lesson-meta{color:var(--ink-2);margin:0 0 1.5rem;font-size:1rem}.lesson-report{margin:1.5rem 0 0}.quiz{border-top:2px solid var(--ink);margin-top:2.5rem;padding-top:.5rem}.quiz>h2{margin-top:1rem}.q-count{color:var(--ink-2);font-variant-numeric:tabular-nums;margin:0 0 .5rem;font-size:1rem}.q-form fieldset{border:0;min-width:0;margin:0;padding:0}.q-stem{font-weight:600;font-size:var(--step-0);margin:0 0 .75rem;padding:0;line-height:1.5}.q-hint{color:var(--accent);margin:0 0 .75rem;font-weight:600}.opts{gap:.6rem;margin:0 0 1rem;padding:0;list-style:none;display:grid}.opt{border:2px solid var(--rule);border-radius:var(--radius);background:var(--surface)}.opt-row{grid-template-columns:var(--margin-col) 1fr;cursor:pointer;align-items:start;min-height:3.25rem;display:grid}.opt-mark{justify-content:center;align-self:stretch;align-items:center;gap:.25rem;padding:.85rem 0;display:flex}.opt-text{border-left:2px solid var(--margin-rule);align-self:stretch;padding:.75rem .9rem}.opt input{width:1.4rem;height:1.4rem;accent-color:var(--accent);cursor:pointer;margin:0}.opt:has(input:checked){border-color:var(--accent);background:var(--accent-wash)}.opt:has(input:focus-visible){outline:3px solid var(--focus);outline-offset:2px}.opt.is-checked .opt-row{cursor:default}.opt.is-checked input{display:none}.opt.is-checked .opt-mark .icon{width:1.6rem;height:1.6rem}.opt.is-correct{border-color:var(--correct)}.opt.is-correct .opt-mark{color:var(--correct)}.opt.is-incorrect .opt-mark{color:var(--wrong)}.opt.is-incorrect:not(.is-picked){border-color:var(--rule);background:var(--surface)}.opt.is-correct.is-picked{background:var(--correct-wash)}.opt.is-incorrect.is-picked{border-color:var(--wrong);background:var(--wrong-wash)}.opt-feedback{margin-left:var(--margin-col);border-left:2px solid var(--margin-rule);padding:0 .9rem .85rem;font-size:1rem}.opt-verdict{flex-wrap:wrap;align-items:center;gap:.5rem;margin:0 0 .25rem;font-weight:700;display:flex}.is-correct .verdict-text{color:var(--correct)}.is-incorrect .verdict-text{color:var(--wrong)}.tag-mine{border:1.5px solid var(--ink);color:var(--ink);border-radius:999px;padding:.05rem .55rem;font-size:.875rem;font-weight:650;display:inline-block}.opt-why{margin:0}.q-msg{min-height:1.5rem;color:var(--wrong);margin:0 0 .5rem;font-weight:600}.q-msg:empty{min-height:0;margin:0}.q-actions{flex-wrap:wrap;align-items:center;gap:.75rem 1.25rem;display:flex}.q-actions .btn-primary{flex:12rem}@media (width>=36rem){.q-actions .btn-primary{flex:none;min-width:12rem}}.q-result{border-top:1px solid var(--rule);margin-top:.5rem;padding-top:1rem}.result-title{align-items:center;gap:.5rem;margin:0 0 .5rem;display:flex}.result-title.is-correct{color:var(--correct)}.result-title.is-incorrect{color:var(--wrong)}.result-note{color:var(--ink-2);font-size:1rem}.back-link{margin:0 0 1rem}.back-link a{min-height:var(--tap);align-items:center;display:inline-flex}.q-summary .btn{margin:.5rem 0 1rem}.summary-title{font-size:var(--step-2);margin-top:.5rem}.empty{color:var(--ink-2)}.sources{color:var(--ink-2);margin-top:3rem;font-size:1rem}.sources h2{font-size:var(--step-1)}.sources ol{margin:0 0 .75rem;padding-left:1.4rem}.sources li{margin-bottom:.4rem}.panel{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius);margin:1.25rem 0;padding:1.25rem 1rem}.panel h2{font-size:var(--step-1);margin-top:0}.code{font-family:var(--mono);letter-spacing:.04em;font-variant-numeric:slashed-zero;word-break:break-all;user-select:all;margin:.25rem 0 1rem;font-size:clamp(1.15rem,5.4vw,1.6rem);font-weight:600;display:block}.qr-wrap{width:11rem;margin:1rem 0}.qr{width:100%;height:auto;display:block}.qr-bg{fill:#fff}.qr-fg{fill:#000}.reminder{background:var(--due-wash);border-left:4px solid var(--due);border-radius:0 var(--radius-small) var(--radius-small) 0;padding:.75rem 1rem}.reminder p:last-child{margin:0}.field{gap:.4rem;margin-bottom:.75rem;display:grid}.field label{font-weight:600}.field-hint{color:var(--ink-2);margin:0;font-size:1rem}input[type=text],textarea{border:2px solid var(--ink-2);border-radius:var(--radius-small);background:var(--surface);width:100%;min-height:3rem;color:var(--ink);font:inherit;padding:.6rem .75rem}input[type=text]{font-family:var(--mono);text-transform:uppercase;letter-spacing:.04em}input[aria-invalid=true]{border-color:var(--wrong)}textarea{resize:vertical;min-height:7rem}.msg{min-height:1.5rem;margin:.75rem 0 0}.msg:empty{min-height:0;margin:0}.button-row{flex-wrap:wrap;gap:.75rem;display:flex}.file-btn input{opacity:0;width:1px;height:1px;position:absolute}.file-btn:has(input:focus-visible){outline:3px solid var(--focus);outline-offset:3px}.warning{border-left:4px solid var(--wrong);background:var(--wrong-wash);padding:.75rem 1rem}dialog{border:1px solid var(--rule);border-radius:var(--radius);background:var(--surface);width:min(32rem,100% - 2rem);color:var(--ink);padding:1.25rem 1rem}dialog::backdrop{background:#0a141a8c}dialog h2{font-size:var(--step-1);margin-top:0}.dialog-actions{flex-wrap:wrap;gap:.75rem;margin-top:1rem;display:flex}.form-error{color:var(--wrong);margin:.5rem 0 0;font-weight:600}.form-error:empty{display:none}@media (prefers-reduced-motion:no-preference){.opt-feedback,.q-result{animation:.16s ease-out reveal}@keyframes reveal{0%{opacity:0;transform:translateY(-2px)}to{opacity:1;transform:none}}}@media (forced-colors:active){.opt.is-correct,.opt.is-incorrect.is-picked{border-width:3px}.wordmark:before{background:canvastext}}.done-text{font-family:var(--serif);font-size:var(--step-1);font-weight:700}
