@font-face{font-family:Fraunces;font-style:italic;font-weight:100 900;font-display:swap;src:url(/_next/static/media/f3deaf8281908ff2-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Fraunces;font-style:italic;font-weight:100 900;font-display:swap;src:url(/_next/static/media/c62081b071647022-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Fraunces;font-style:italic;font-weight:100 900;font-display:swap;src:url(/_next/static/media/6ba5f591ae6c56f6-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/fb526027db1fc1ae-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/4da3161b738b07dd-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/af4bf8399d1aacdf-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Fraunces Fallback;src:local("Times New Roman");ascent-override:84.71%;descent-override:22.09%;line-gap-override:0.00%;size-adjust:115.45%}.__className_c5b148{font-family:Fraunces,Fraunces Fallback}.__variable_c5b148{--font-display:"Fraunces","Fraunces Fallback"}@font-face{font-family:Public Sans;font-style:italic;font-weight:100 900;font-display:swap;src:url(/_next/static/media/446f589ea57bd612-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Public Sans;font-style:italic;font-weight:100 900;font-display:swap;src:url(/_next/static/media/59d1810b4d3db001-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Public Sans;font-style:italic;font-weight:100 900;font-display:swap;src:url(/_next/static/media/57d19091f37263d6-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Public Sans;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/f7650dfaa438c37c-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Public Sans;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/98baa4a7809fbf72-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Public Sans;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/8bf7b2ceda89477b-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Public Sans Fallback;src:local("Arial");ascent-override:90.59%;descent-override:21.46%;line-gap-override:0.00%;size-adjust:104.87%}.__className_4cd6be{font-family:Public Sans,Public Sans Fallback}.__variable_4cd6be{--font-body:"Public Sans","Public Sans Fallback"}@font-face{font-family:"Source Serif 4";font-style:italic;font-weight:200 900;font-display:swap;src:url(/_next/static/media/c1e0ae606c0d380f-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:"Source Serif 4";font-style:italic;font-weight:200 900;font-display:swap;src:url(/_next/static/media/9cc95445f0ce201a-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:"Source Serif 4";font-style:italic;font-weight:200 900;font-display:swap;src:url(/_next/static/media/24f599ce1a627b37-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:"Source Serif 4";font-style:italic;font-weight:200 900;font-display:swap;src:url(/_next/static/media/ea308541f46fdb72-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:"Source Serif 4";font-style:italic;font-weight:200 900;font-display:swap;src:url(/_next/static/media/1b5a038d2ebd8073-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:"Source Serif 4";font-style:italic;font-weight:200 900;font-display:swap;src:url(/_next/static/media/d9c8a48aa27d17bd-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:200 900;font-display:swap;src:url(/_next/static/media/3d165c286d94e27c-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:200 900;font-display:swap;src:url(/_next/static/media/e54d16b9f2c4535b-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:200 900;font-display:swap;src:url(/_next/static/media/7c21074d9bafed1b-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:200 900;font-display:swap;src:url(/_next/static/media/916860560b9a2bc2-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:200 900;font-display:swap;src:url(/_next/static/media/591e43f23f51e5a5-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:200 900;font-display:swap;src:url(/_next/static/media/97ac91773d3121b2-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:"Source Serif 4 Fallback";src:local("Times New Roman");ascent-override:87.87%;descent-override:28.41%;line-gap-override:0.00%;size-adjust:117.91%}.__className_139bc5{font-family:"Source Serif 4","Source Serif 4 Fallback"}.__variable_139bc5{--font-reading:"Source Serif 4","Source Serif 4 Fallback"}:root{--tabbar-h:56px;--safe-b:env(safe-area-inset-bottom,0px);--bg:#f4f7f6;--surface:#fdfefd;--surface-2:#eaf0ee;--ink:#182521;--ink-soft:#51625d;--ink-faint:#7c8b86;--line:#d8e1de;--accent:#0e7c6b;--accent-soft:#ddebe7;--amber:#b8811f;--amber-soft:#f2e7d2;--good-soft:#deeee3;--bad:#b3423a;--bad-soft:#f4e0de;--shadow:0 1px 2px rgba(24,37,33,0.06),0 4px 16px rgba(24,37,33,0.05)}@media (prefers-color-scheme:dark){:root{--bg:#101715;--surface:#18211e;--surface-2:#1f2b27;--ink:#e4ece9;--ink-soft:#9fb0aa;--ink-faint:#71827c;--line:#2b3835;--accent:#45b39b;--accent-ink:#0c1512;--accent-soft:#1d3630;--amber:#dca84c;--amber-soft:#33290f;--good:#5cb683;--good-soft:#1c312a;--bad:#d97b72;--bad-soft:#3a211f;--shadow:0 1px 2px rgba(0,0,0,0.3),0 4px 16px rgba(0,0,0,0.25)}}*{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-body,"Public Sans"),system-ui,-apple-system,"Segoe UI",sans-serif;font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}.bottom-nav a,.btn,.card,button{-webkit-tap-highlight-color:transparent;touch-action:manipulation}.btn:active,.card:active,button:active{transform:scale(.985)}.wrap{max-width:1060px;margin:0 auto;padding:0 22px}.site-head{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);position:-webkit-sticky;position:sticky;top:0;z-index:20}.nav{display:flex;align-items:center;justify-content:space-between;padding-top:14px;padding-bottom:14px;gap:16px}.wordmark{font-family:var(--font-display,"Fraunces"),Georgia,serif;font-weight:650;font-size:1.25rem;letter-spacing:-.01em;color:var(--ink);text-decoration:none;white-space:nowrap}.wordmark em{color:var(--accent)}.nav-links{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.nav-links a{color:var(--ink-soft);text-decoration:none;font-size:.9rem;padding:6px 12px;border-radius:8px}.nav-links a:hover{background:var(--surface-2);color:var(--ink)}.nav-links a.nav-cta:hover{filter:brightness(1.06)}.site-foot{padding-top:40px;padding-bottom:48px;font-size:.8rem}.site-foot code{font-size:.75rem}a{color:var(--accent)}:focus-visible{outline-offset:2px}.hero{padding:56px 0 34px;max-width:46em}.hero h1{font-family:var(--font-display,"Fraunces"),Georgia,serif;font-weight:650;font-size:clamp(2.1rem,5vw,3.1rem);line-height:1.12;letter-spacing:-.015em;margin:0 0 16px;text-wrap:balance}.hero h1 em{color:var(--accent)}.hero p{color:var(--ink-soft);font-size:1.05rem;max-width:38em;margin:0 0 24px}.hero-actions{display:flex;gap:10px;flex-wrap:wrap}.btn{display:inline-block;text-decoration:none;font-weight:600;font-size:.92rem;padding:11px 20px;border-radius:10px;border:1px solid var(--line);color:var(--ink);background:var(--surface)}.btn:hover{background:var(--surface-2)}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn.primary:hover{filter:brightness(1.06)}.section-label{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;margin:40px 0 14px}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));grid-gap:12px;gap:12px}.card{display:block;text-decoration:none;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:18px 20px;transition:border-color .12s ease,transform .12s ease}.card:hover{border-color:var(--accent);transform:translateY(-1px)}.card .num{font-family:var(--font-display,"Fraunces"),Georgia,serif;font-size:.85rem;font-weight:650;color:var(--accent);display:block;margin-bottom:6px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.card h3{font-size:1rem;margin:0 0 6px;line-height:1.35}.card p{font-size:.85rem;color:var(--ink-soft);margin:0}.card .meta{font-size:.75rem;color:var(--ink-faint);margin-top:10px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.how{background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:22px 24px;margin-top:12px}.how ol{margin:8px 0 0;padding-left:1.2em;color:var(--ink-soft);font-size:.92rem}.how li{margin:6px 0}.how strong{color:var(--ink)}.reader{display:grid;grid-template-columns:minmax(0,1fr) 230px;grid-gap:48px;gap:48px;padding-top:40px}.doc-head{margin-bottom:8px}.doc-head .kicker{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--accent);margin:0 0 10px}.doc-head h1{font-family:var(--font-display,"Fraunces"),Georgia,serif;font-weight:650;font-size:clamp(1.7rem,3.6vw,2.4rem);line-height:1.15;letter-spacing:-.01em;margin:0 0 10px;text-wrap:balance}.doc-head .meta{font-size:.82rem;color:var(--ink-faint);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.toc{position:-webkit-sticky;position:sticky;top:76px;align-self:start;max-height:calc(100vh - 100px);overflow-y:auto;font-size:.82rem;padding-left:14px;border-left:1px solid var(--line)}.toc .toc-label{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-faint);margin-bottom:10px}.toc a{display:block;color:var(--ink-soft);text-decoration:none;padding:3px 0;line-height:1.4}.toc a:hover{color:var(--accent)}.prose{max-width:68ch;font-size:1rem}.prose h2{font-family:var(--font-display,"Fraunces"),Georgia,serif;font-weight:650;font-size:1.45rem;line-height:1.25;margin:2.2em 0 .6em;letter-spacing:-.01em}.prose h2,.prose h3{scroll-margin-top:80px}.prose h3{font-size:1.05rem;font-weight:700;margin:1.8em 0 .5em}.prose h4{font-size:.95rem;font-weight:700;margin:1.5em 0 .4em}.prose li,.prose p{color:var(--ink)}.prose li{margin:.3em 0}.prose blockquote{margin:1.2em 0;padding:2px 0 2px 18px;border-left:3px solid var(--accent);color:var(--ink-soft)}.prose blockquote p{color:inherit}.prose code{border-radius:5px;padding:.1em .35em;font-size:.88em}.prose code,.prose pre{background:var(--surface-2)}.prose pre{border:1px solid var(--line);border-radius:10px;padding:14px 16px;overflow-x:auto;font-size:.85rem;line-height:1.5}.prose pre code{background:none;padding:0}.prose{overflow-wrap:break-word}.prose table{display:block;max-width:100%;overflow-x:auto;border-collapse:collapse;font-size:.9rem;margin:1.2em 0}.prose td,.prose th{border:1px solid var(--line);padding:8px 12px;text-align:left;vertical-align:top}.prose th{font-weight:600}.prose hr{border:none;border-top:1px solid var(--line);margin:2.5em 0}.prose img{max-width:100%}.doc-nav{display:flex;justify-content:space-between;gap:12px;margin-top:48px;padding-top:24px;border-top:1px solid var(--line);max-width:68ch;flex-wrap:wrap}.doc-nav a{text-decoration:none;font-size:.88rem;font-weight:600;color:var(--accent);max-width:45%}.doc-nav a span{display:block;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-faint);margin-bottom:3px}.doc-nav .next{text-align:right;margin-left:auto}.drill-cta{margin-top:28px;max-width:68ch;background:var(--accent-soft);border:1px solid var(--accent);border-radius:12px;padding:14px 18px;font-size:.9rem}.drill-cta a{font-weight:700}@media (max-width:900px){.reader{grid-template-columns:minmax(0,1fr);gap:0}.reader article{min-width:0}.toc{display:none}}.trainer{max-width:720px;margin:0 auto;padding-top:28px}.trainer-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:6px}.trainer-head h1{font-family:var(--font-display,"Fraunces"),Georgia,serif;font-weight:650;font-size:1.6rem;margin:0}.streak{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:.8rem;font-weight:600;letter-spacing:.04em;color:var(--amber);background:var(--amber-soft);border-radius:999px;padding:4px 12px;white-space:nowrap}.panel{background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:18px 20px;margin:14px 0}.today{display:flex;align-items:center;gap:20px;flex-wrap:wrap}.today .big{font-family:var(--font-display,"Fraunces"),Georgia,serif;font-weight:650;font-size:3rem;line-height:1;color:var(--accent);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.today .lbl{font-size:.85rem;color:var(--ink-soft);max-width:12em}.today .actions{margin-left:auto;display:flex;flex-direction:column;gap:8px}button{font:inherit;cursor:pointer;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--ink);padding:9px 16px;font-weight:600;font-size:.9rem;transition:background .12s ease,border-color .12s ease}button:hover{background:var(--surface-2)}button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}button.primary:hover{filter:brightness(1.06)}button.ghost{border-color:transparent;background:transparent;color:var(--ink-soft)}button.ghost:hover{background:var(--surface-2);color:var(--ink)}button:disabled{opacity:.45;cursor:default}.modules-list{display:flex;flex-direction:column;gap:10px;margin-top:8px}.module-row{background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:14px 18px}.module-row .name{font-size:.98rem}.module-row .meta{display:flex;gap:16px;margin:4px 0 10px;font-size:.78rem;color:var(--ink-soft);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;flex-wrap:wrap}.bar{height:4px;overflow:hidden;margin:8px 0 10px}.bar i{display:block;height:100%;background:var(--accent);border-radius:2px;transition:width .3s ease}.module-row .row{display:flex;gap:8px;flex-wrap:wrap}.module-row .row button{font-size:.82rem;padding:6px 12px}.flashcard{display:flex;align-items:center;justify-content:center;text-align:center;background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:34px 26px;margin:10px 0 14px;cursor:pointer;min-height:260px;width:100%}.flashcard.back{border-color:var(--accent);cursor:default}.flashcard .side{max-width:34em}.flashcard .tag{display:block;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;margin-bottom:12px;color:var(--ink-faint)}.flashcard.back .tag{color:var(--accent)}.flashcard .q{font-family:var(--font-display,"Fraunces"),Georgia,serif;font-size:1.3rem;font-weight:500;line-height:1.35}.flashcard .a{font-size:1rem;text-align:left;white-space:pre-line}.grade{display:flex;gap:10px}.grade button{flex:1 1;padding:12px}.grade .again{color:var(--bad)}.grade .got{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.sessionbar{display:flex;justify-content:space-between;align-items:center;font-size:.8rem;color:var(--ink-soft);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;margin-top:8px}.q-text{font-family:var(--font-display,"Fraunces"),Georgia,serif;font-size:1.15rem;font-weight:500;line-height:1.4;margin:4px 0 16px}.opts{display:flex;flex-direction:column;gap:8px}.opts button{text-align:left;font-weight:500;padding:12px 14px;line-height:1.4}.opts button.correct{background:var(--good-soft);border-color:var(--good)}.opts button.wrong{background:var(--bad-soft)}.explain{margin-top:14px;padding:12px 14px;border-left:3px solid var(--accent);background:var(--surface-2);border-radius:0 10px 10px 0;font-size:.9rem;color:var(--ink-soft)}.quiz-foot{display:flex;justify-content:space-between;align-items:center;margin-top:16px;gap:10px}.score-big{font-family:var(--font-display,"Fraunces"),Georgia,serif;font-size:3.4rem;font-weight:650;color:var(--accent);line-height:1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.crumb{font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.09em;color:var(--ink-faint);margin:18px 0 4px}.scn-setup{font-size:.95rem}.scn-setup .k{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-faint);display:block;margin:14px 0 4px}.scn-answer{white-space:pre-line;font-size:.93rem;color:var(--ink-soft)}.pill-row{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}.pill-row .done{background:var(--good-soft);border-color:var(--good)}.pill-row .redo{background:var(--amber-soft);border-color:var(--amber)}.rated{font-size:.75rem;margin-left:8px}.empty{text-align:center;color:var(--ink-soft);padding:40px 0;font-size:.95rem}@media (prefers-reduced-motion:reduce){*{transition:none!important}html{scroll-behavior:auto}}@media (max-width:520px){.today .actions{margin-left:0;width:100%}.today .big{font-size:2.4rem}}.callout{margin:1.6em 0;padding:16px 18px 14px;border-radius:12px;border:1px solid var(--line);border-left-width:3px}.callout p{margin:.4em 0 0}.callout .callout-label{display:block;font-family:var(--font-body,"Public Sans"),system-ui,sans-serif;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em}.callout.voice{background:var(--accent-soft)}.callout.voice p{font-family:var(--font-display,"Fraunces"),Georgia,serif;font-size:1.05rem;line-height:1.5;color:var(--ink)}.callout.voice em{font-style:italic}.callout.fieldnote{background:var(--amber-soft);border-left-color:var(--amber)}.callout.fieldnote p{font-size:.93rem;color:var(--ink)}.prose blockquote.callout{border-left:3px solid}.prose .callout.voice{border-left-color:var(--accent)}.prose .callout.fieldnote{border-left-color:var(--amber)}.read-progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:40;pointer-events:none}.read-progress i{display:block;height:100%;background:var(--accent);transform:scaleX(0);transform-origin:left}.continue{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:20px}.continue-info{flex:1 1;min-width:200px}.continue-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-faint)}.continue-count{font-weight:600;margin:2px 0 8px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.read-tracker{display:flex;gap:10px;margin-top:20px;max-width:68ch;flex-wrap:wrap}.read-tracker button.primary{background:var(--good);border-color:var(--good);color:#fff}.read-tracker .btn{margin-left:auto}.toc-mobile{display:none;margin:14px 0 4px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.toc-mobile summary{cursor:pointer;font-size:.82rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);padding:12px 16px;min-height:44px;list-style:none;display:flex;align-items:center;justify-content:space-between}.toc-mobile summary:after{content:"+";font-size:1.1rem;color:var(--ink-faint)}.toc-mobile[open] summary:after{content:"–"}.toc-mobile>div{padding:0 16px 10px}.toc-mobile a{display:block;padding:10px 0;color:var(--ink-soft);text-decoration:none;font-size:.9rem}.bottom-nav,.toc-mobile a{border-top:1px solid var(--line)}.bottom-nav{display:none;position:fixed;left:0;right:0;bottom:0;z-index:30;height:calc(var(--tabbar-h) + var(--safe-b));padding-bottom:var(--safe-b);background:color-mix(in srgb,var(--bg) 92%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.bottom-nav a{flex:1 1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:64px;text-decoration:none;color:var(--ink-faint);font-size:.68rem;font-weight:600;letter-spacing:.02em}.bottom-nav a svg{width:23px;height:23px}.bottom-nav a.active{color:var(--accent)}body[data-drill] .bottom-nav{display:none!important}.scn-panel summary{cursor:pointer;list-style:none;display:flex;align-items:center;min-height:32px}.scn-panel summary::-webkit-details-marker,.scn-panel summary::marker{display:none}.scn-panel summary:after{content:"+";margin-left:auto;color:var(--ink-faint);font-size:1.15rem}.scn-panel[open] summary:after{content:"–"}@media (max-width:700px){.nav-links{display:none}.nav{padding-top:10px;padding-bottom:10px}main.wrap{padding-bottom:calc(var(--tabbar-h) + var(--safe-b) + 24px)}.site-foot{padding-bottom:calc(var(--tabbar-h) + var(--safe-b) + 28px)}.bottom-nav{display:flex}.hero{padding:28px 0 20px}.hero p{font-size:1rem}.section-label{margin:28px 0 12px}.reader{padding-top:20px}.toc-mobile{display:block}.prose{font-size:1.0625rem;line-height:1.65}.prose h2,.prose h3{scroll-margin-top:64px}.prose td,.prose th{padding:6px 10px}button{min-height:44px}.module-row .row button{padding:10px 14px;min-height:44px}.doc-nav a{max-width:none;flex:1 1 100%;display:block;padding:14px 16px;border:1px solid var(--line);border-radius:12px}.flashcard{min-height:min(420px,calc(100dvh - 300px))}.grade button{min-height:52px}.opts button{min-height:48px}.quiz-next{flex:1 1}.read-tracker .btn,.read-tracker button{flex:1 1 100%;margin-left:0;text-align:center}}@media (max-width:640px){.card-grid{grid-template-columns:1fr}.card p{display:none}.card{padding:14px 16px}.card .meta{margin-top:6px}}@media (max-width:480px){.hero-actions{flex-direction:column}.hero-actions .btn{text-align:center}}.pillars{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));grid-gap:10px;gap:10px;margin:14px 0}.pillar{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px 14px}.pillar-top{display:flex;justify-content:space-between;font-size:.8rem;font-weight:600;margin-bottom:8px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.next-actions{display:flex;gap:8px;flex-wrap:wrap}.next-actions .btn{font-size:.85rem}.meta .warn{color:var(--bad);font-weight:600}.data-row{display:flex;gap:8px;flex-wrap:wrap}.data-row .danger{color:var(--bad)}.progress-page .today .big{font-size:2.6rem}.continue-label a{font-weight:600;text-decoration:none}@media (max-width:700px){.next-actions .btn{flex:1 1 100%;text-align:center}}.checkpoint{margin:2em 0;padding:18px 20px;border:1px solid var(--accent);border-radius:14px;background:var(--surface);box-shadow:var(--shadow);max-width:68ch}.checkpoint .cp-label{display:block;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--accent)}.checkpoint .cp-count{font-size:.78rem;color:var(--ink-faint);margin:4px 0 6px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.checkpoint.passed{padding:10px 20px;background:var(--good-soft)}.checkpoint .q-text{font-size:1.05rem}.locked-note{margin:1.6em 0;padding:14px 18px;border:1px dashed var(--line);border-radius:12px;color:var(--ink-soft);font-size:.9rem;max-width:68ch}.term{border-bottom:1px dashed var(--accent);cursor:pointer}.term:hover{background:var(--accent-soft)}.term-sheet-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:50;display:flex;align-items:flex-end;justify-content:center}.term-sheet{background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:16px 16px 0 0;padding:18px 20px calc(18px + var(--safe-b));width:100%;max-width:560px;box-shadow:var(--shadow);font-size:.95rem}.term-sheet-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:6px}.term-sheet p{margin:0 0 10px;color:var(--ink-soft);line-height:1.55}@media (min-width:700px){.term-sheet-backdrop{align-items:center}.term-sheet{border-radius:16px}}.search-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:10px;color:var(--ink-soft)}.search-btn:hover{background:var(--surface-2);color:var(--ink)}.search-btn svg{width:20px;height:20px}.search-input{width:100%;font:inherit;font-size:1.05rem;padding:13px 16px;border-radius:12px;border:1px solid var(--line);background:var(--surface);color:var(--ink);margin-bottom:14px}.search-input:focus{outline:2px solid var(--accent);border-color:var(--accent)}.search-results{display:flex;flex-direction:column;gap:10px}.search-hit{display:block;text-decoration:none;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px 16px}.search-hit:hover{border-color:var(--accent)}.hit-meta{display:block;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--accent)}.hit-title{display:block;font-weight:600;margin:2px 0}.hit-snip{display:block;font-size:.85rem;color:var(--ink-soft);line-height:1.5}.hit-snip mark{background:var(--amber-soft);color:inherit;border-radius:3px;padding:0 2px}.cram-date{font:inherit;padding:10px 14px;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--ink)}.cram-pick{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;width:100%;cursor:pointer}.cram-pick:hover{border-color:var(--accent)}.cram-list{display:flex;flex-direction:column;gap:8px}.cram-item{display:flex;gap:12px;align-items:flex-start;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px 14px}.cram-item.done .cram-label{color:var(--ink-faint);text-decoration:line-through}.cram-item.done .cram-label a{color:var(--ink-faint)}.cram-check{flex-shrink:0;width:28px;height:28px;min-height:28px;border-radius:8px;padding:0;border:1.5px solid var(--line);color:var(--good);font-weight:700}.cram-item.done .cram-check{background:var(--good-soft);border-color:var(--good)}.cram-label{line-height:1.45}.cram-label,.sheets .sheet-prose{font-size:.92rem}@media (max-width:700px){.cram-check{min-height:28px}}.cert-canvas{width:100%;height:auto;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);margin:12px 0}.cert-claim{display:flex;flex-direction:column;gap:10px;align-items:center;margin-top:12px}.cert-claim label{font-size:.85rem;font-weight:600}.cert-claim input{width:100%;max-width:380px;text-align:center}.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));grid-gap:10px;gap:10px}.stat-tile{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2)}.stat-label{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.09em;color:var(--ink-faint)}.stat-num{font-family:var(--font-display,"Fraunces"),Georgia,serif;font-size:1.7rem;font-weight:650;color:var(--accent);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.stat-sub{font-size:.72rem;color:var(--ink-faint)}.heatmap{display:grid;grid-template-rows:repeat(7,12px);grid-auto-flow:column;grid-auto-columns:12px;grid-gap:3px;gap:3px;margin-top:6px;overflow-x:auto;padding-bottom:4px}.heatmap i{border-radius:3px;background:var(--surface-2)}.heatmap i[data-level="1"]{background:color-mix(in srgb,var(--accent) 35%,var(--surface-2))}.heatmap i[data-level="2"]{background:color-mix(in srgb,var(--accent) 65%,var(--surface-2))}.heatmap i[data-level="3"]{background:var(--accent)}.box-dist,.forecast{display:flex;gap:10px;align-items:flex-end;margin-top:6px}.box-col,.fc-col{flex:1 1;display:flex;flex-direction:column;align-items:center;gap:4px}.box-bar,.fc-bar{width:100%;max-width:44px;height:64px;background:var(--surface-2);border-radius:6px;display:flex;align-items:flex-end;overflow:hidden}.box-bar i,.fc-bar i{display:block;width:100%;background:var(--accent);min-height:2px}.box-n{font-size:.72rem;color:var(--ink-soft);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.box-l{font-size:.68rem;color:var(--ink-faint)}.prose pre{position:relative}.copy-btn{position:absolute;top:8px;right:8px;font-size:.72rem;font-weight:700;padding:5px 10px;min-height:0;border-radius:8px;background:var(--surface);border:1px solid var(--line);color:var(--accent)}.copy-btn:hover{border-color:var(--accent)}@media (max-width:700px){.copy-btn{min-height:0}}:root{--bg:#f5f4ef;--surface:#fffefb;--surface-2:#edece4;--ink:#1b201c;--ink-soft:#52594f;--ink-faint:#7e8479;--line:#dedcd0;--line-strong:#c9c7b9;--accent-ink:#ffffff;--accent-soft:#e3ede9;--amber:#a3742a;--amber-soft:#f3ead6;--good:#2e7d4f;--good-soft:#e2efe5;--bad:#ae4139;--bad-soft:#f5e3e0;--shadow:0 1px 1px rgba(27,32,28,0.04),0 2px 6px rgba(27,32,28,0.05),0 10px 28px -12px rgba(27,32,28,0.1);--shadow-lift:0 2px 4px rgba(27,32,28,0.06),0 8px 18px -6px rgba(27,32,28,0.12),0 18px 44px -16px rgba(27,32,28,0.16);--ease-out:cubic-bezier(0.22,1,0.36,1)}@media (prefers-color-scheme:dark){:root{--bg:#12161a;--surface:#1a2024;--surface-2:#232a2f;--ink:#e7eae6;--ink-soft:#a3aca4;--ink-faint:#737c74;--line:#2d353a;--line-strong:#3d464c;--accent:#47b39a;--accent-ink:#0c1512;--accent-soft:#1e3730;--amber:#d9a852;--amber-soft:#342a12;--good:#5cb683;--good-soft:#1c312a;--bad:#d97b72;--bad-soft:#3a211f;--shadow:0 1px 2px rgba(0,0,0,0.35),0 6px 18px -6px rgba(0,0,0,0.4);--shadow-lift:0 2px 4px rgba(0,0,0,0.4),0 14px 34px -10px rgba(0,0,0,0.55)}}@keyframes pop-in{0%{transform:scale(.6);opacity:0}60%{transform:scale(1.08);opacity:1}to{transform:scale(1)}}@keyframes rise-in{0%{transform:translateY(10px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes shake-no{0%,to{transform:translateX(0)}25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}@keyframes chip-pop{0%{transform:scale(.9)}60%{transform:scale(1.06)}to{transform:scale(1)}}main.wrap{animation:rise-in .34s var(--ease-out)}@media (prefers-reduced-motion:reduce){*,:after,:before{animation:none!important;transition:none!important}}.prose{font-family:var(--font-reading,"Source Serif 4"),Georgia,serif;font-size:1.06rem;line-height:1.72}.prose h2{font-size:1.55rem;margin-top:2.4em}.prose h2:after{content:"";display:block;width:44px;background:var(--accent);margin-top:10px;border-radius:1px}.prose h3{font-family:var(--font-display,"Fraunces"),Georgia,serif;font-weight:650;font-size:1.14rem}.prose h4{font-family:var(--font-body,"Public Sans"),system-ui,sans-serif;text-transform:none}.prose code,.prose pre{font-size:.84em}.prose table{font-family:var(--font-body,"Public Sans"),system-ui,sans-serif;font-size:.88rem}.prose td,.prose th{border-color:var(--line)}.prose th{font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft)}.prose blockquote:not(.callout){font-style:italic}.doc-head{padding-bottom:18px;border-bottom:1px solid var(--line);margin-bottom:18px}.doc-head h1{font-weight:500}.doc-head .kicker{font-size:.72rem}.site-head{background:color-mix(in srgb,var(--bg) 82%,transparent);-webkit-backdrop-filter:blur(14px) saturate(1.4);backdrop-filter:blur(14px) saturate(1.4);border-bottom:1px solid var(--line)}.wordmark{font-size:1.3rem;font-weight:500}.wordmark em{font-weight:650}.nav-links a{font-size:.86rem;transition:background .15s var(--ease-out),color .15s var(--ease-out)}.site-foot{text-align:center;border-top:1px solid var(--line);margin-top:48px;font-family:var(--font-display,"Fraunces"),Georgia,serif;font-style:italic;color:var(--ink-faint)}.hero{padding:52px 0 30px}.hero .overline{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.16em;color:var(--accent);margin:0 0 14px}.hero h1{font-weight:500;font-size:clamp(2.2rem,5.4vw,3.4rem)}.hero h1 em{font-weight:650}.hero-stats{display:flex;flex-wrap:wrap;gap:8px 0;margin:22px 0 0;padding:0;list-style:none}.hero-stats li{font-size:.78rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft);display:flex;align-items:center}.hero-stats li+li:before{content:"·";margin:0 12px;color:var(--line-strong)}.hero-stats strong{color:var(--accent);font-family:var(--font-display,"Fraunces"),Georgia,serif;font-size:.95rem;margin-right:5px}.card,.cram-item,.how,.module-row,.panel,.search-hit{border-radius:16px;border-color:var(--line);transition:transform .16s var(--ease-out),box-shadow .16s var(--ease-out),border-color .16s var(--ease-out)}.card:hover,.search-hit:hover{transform:translateY(-2px)}.card:active,.search-hit:active{transform:translateY(0) scale(.985);box-shadow:var(--shadow)}.card h3{font-family:var(--font-display,"Fraunces"),Georgia,serif;font-weight:600;font-size:1.08rem}.card .num{font-size:.72rem;font-weight:700;font-family:var(--font-body,"Public Sans"),system-ui,sans-serif;text-transform:uppercase;letter-spacing:.14em}.module-row .name{font-family:var(--font-display,"Fraunces"),Georgia,serif;font-weight:600}.section-label{color:var(--ink-soft);letter-spacing:.14em}.section-label:after{content:"";display:inline-block;vertical-align:middle;width:34px;background:var(--line-strong);margin-left:10px}.btn,button{border-radius:12px;transition:transform .13s var(--ease-out),background .15s var(--ease-out),box-shadow .15s var(--ease-out),border-color .15s var(--ease-out),filter .15s var(--ease-out)}.btn.primary,button.primary{box-shadow:0 1px 2px rgba(13,115,100,.25),0 4px 12px -4px rgba(13,115,100,.4)}.btn.primary:hover,button.primary:hover{box-shadow:0 2px 4px rgba(13,115,100,.28),0 8px 20px -6px rgba(13,115,100,.45)}.bar{height:5px;border-radius:3px}.bar i{transition:width .6s var(--ease-out)}.streak{animation:chip-pop .4s var(--ease-out)}.opts button.correct{animation:chip-pop .35s var(--ease-out)}.opts button.wrong{animation:shake-no .3s ease-in-out}.checkpoint{border-radius:16px}.checkpoint.passed{animation:pop-in .4s var(--ease-out)}.checkpoint .cp-label:before{content:"◆";margin-right:8px;font-size:.8em}.flashcard{border-radius:18px;transition:transform .16s var(--ease-out),border-color .2s var(--ease-out),box-shadow .2s var(--ease-out)}.flashcard.back{animation:rise-in .24s var(--ease-out);box-shadow:var(--shadow-lift)}.flashcard .q{font-weight:550}.explain{animation:rise-in .28s var(--ease-out);border-radius:0 12px 12px 0}.read-tracker button.primary{animation:chip-pop .4s var(--ease-out)}.cram-item{transition:transform .16s var(--ease-out),opacity .2s var(--ease-out),border-color .16s var(--ease-out)}.cram-item.done{opacity:.72}.cram-check{border-radius:9px;transition:transform .14s var(--ease-out),background .15s var(--ease-out),border-color .15s var(--ease-out)}.cram-item.done .cram-check{animation:chip-pop .35s var(--ease-out)}.score-big{animation:pop-in .5s var(--ease-out)}.term-sheet{animation:rise-in .26s var(--ease-out);border-radius:18px 18px 0 0}@media (min-width:700px){.term-sheet{border-radius:18px}}.term-sheet-backdrop{animation:fade-in .2s ease}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.bottom-nav{background:color-mix(in srgb,var(--surface) 88%,transparent);-webkit-backdrop-filter:blur(16px) saturate(1.4);backdrop-filter:blur(16px) saturate(1.4)}.bottom-nav a{position:relative;transition:color .15s var(--ease-out),transform .13s var(--ease-out)}.bottom-nav a:active{transform:scale(.92)}.bottom-nav a.active:before{content:"";position:absolute;top:6px;width:44px;height:30px;border-radius:999px;background:var(--accent-soft);z-index:-1}.bottom-nav a.active svg{animation:chip-pop .3s var(--ease-out)}.callout{border-radius:14px;border-width:1px 1px 1px 3px}.callout.voice p{font-size:1.08rem}.locked-note{border-radius:14px;font-family:var(--font-body,"Public Sans"),system-ui,sans-serif}::selection{background:var(--accent-soft);color:var(--ink)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}.prose a{text-decoration-thickness:1px;text-underline-offset:3px;-webkit-text-decoration-color:color-mix(in srgb,var(--accent) 45%,transparent);text-decoration-color:color-mix(in srgb,var(--accent) 45%,transparent);transition:-webkit-text-decoration-color .15s var(--ease-out);transition:text-decoration-color .15s var(--ease-out);transition:text-decoration-color .15s var(--ease-out),-webkit-text-decoration-color .15s var(--ease-out)}.prose a:hover{-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.hero>*{animation:rise-in .5s var(--ease-out) both}.hero>:first-child{animation-delay:.02s}.hero>:nth-child(2){animation-delay:.08s}.hero>:nth-child(3){animation-delay:.15s}.hero>:nth-child(4){animation-delay:.22s}.hero>:nth-child(5){animation-delay:.3s}@supports (animation-timeline:view()){.card-grid .card,.modules-list .module-row{animation:rise-in .5s var(--ease-out) both;animation-timeline:view();animation-range:entry 0 entry 35%}}.btn.primary,.nav-links a.nav-cta,button.primary{background-image:linear-gradient(180deg,color-mix(in srgb,#ffffff 12%,transparent),transparent 55%);background-color:var(--accent)}@keyframes flip-reveal{0%{transform:perspective(900px) rotateX(-16deg) translateY(8px);opacity:.15}to{transform:perspective(900px) rotateX(0deg) translateY(0);opacity:1}}.flashcard.back{animation:flip-reveal .34s var(--ease-out)}.opts button{position:relative;padding-right:44px}.opts button.correct:after,.opts button.wrong:after{position:absolute;right:14px;top:50%;transform:translateY(-50%);font-weight:700;animation:pop-in .3s var(--ease-out)}.opts button.correct:after{content:"✓";color:var(--good)}.checkpoint.passed{position:relative}.checkpoint.passed:after{content:"";position:absolute;inset:-1px;border-radius:inherit;border:2px solid var(--good);animation:ping-out .7s var(--ease-out) forwards;pointer-events:none}@keyframes ping-out{0%{opacity:.7;transform:scale(1)}to{opacity:0;transform:scale(1.04)}}.pillar,.stat-tile{transition:transform .16s var(--ease-out),border-color .16s var(--ease-out)}.pillar:hover,.stat-tile:hover{transform:translateY(-1px);border-color:var(--line-strong)}.bottom-nav a.active span{font-weight:700}.toc a{transition:color .14s var(--ease-out),transform .14s var(--ease-out)}.toc a:hover{transform:translateX(2px)}.prose table{border:1px solid var(--line);border-radius:12px;overflow:hidden}.prose td,.prose th{border:none;border-bottom:1px solid var(--line)}.prose tr:last-child td{border-bottom:none}.prose th{background:var(--surface-2)}:root{--bg:#e9e4d5;--surface:#faf7ec;--surface-2:#f0ebdb;--ink:#23251e;--ink-soft:#585a4d;--ink-faint:#85867a;--line:#d6cfba;--line-strong:#b5ad93;--accent:#0d7364;--accent-soft:#dfe8de;--amber:#9c6f26;--amber-soft:#f0e5cb;--shadow:0 1px 0 rgba(35,37,30,0.06),0 3px 6px -1px rgba(35,37,30,0.1),0 14px 28px -12px rgba(35,37,30,0.28);--shadow-lift:0 2px 3px rgba(35,37,30,0.09),0 10px 20px -6px rgba(35,37,30,0.2),0 26px 48px -16px rgba(35,37,30,0.35);--r-ctrl:6px}@media (prefers-color-scheme:dark){:root{--bg:#101316;--surface:#1c2126;--surface-2:#262c33;--ink:#e8e9e2;--ink-soft:#a5a79a;--ink-faint:#75766b;--line:#333a42;--line-strong:#47505a;--accent:#47b39a;--accent-soft:#1f352f;--amber:#d3a04b;--amber-soft:#33290f;--shadow:0 1px 0 rgba(0,0,0,0.4),0 4px 8px -2px rgba(0,0,0,0.45),0 16px 32px -12px rgba(0,0,0,0.6);--shadow-lift:0 2px 4px rgba(0,0,0,0.5),0 12px 24px -6px rgba(0,0,0,0.55),0 30px 56px -16px rgba(0,0,0,0.7)}}.card,.checkpoint,.cram-item,.flashcard,.how,.locked-note,.module-row,.panel,.pillar,.scn-panel,.search-hit,.stat-tile,.toc-mobile{border-radius:var(--r-card);background-color:var(--surface);background-image:linear-gradient(180deg,color-mix(in srgb,#ffffff 45%,transparent),transparent 9%);border:1px solid var(--line);box-shadow:var(--shadow)}@media (prefers-color-scheme:dark){.card,.checkpoint,.cram-item,.flashcard,.how,.locked-note,.module-row,.panel,.pillar,.scn-panel,.search-hit,.stat-tile,.toc-mobile{background-image:linear-gradient(180deg,color-mix(in srgb,#ffffff 5%,transparent),transparent 9%)}}.pillar,.stat-tile{background-color:var(--surface-2)}.checkpoint{border-left:3px solid var(--accent)}.checkpoint.passed{border-left-width:3px;background-color:var(--good-soft)}.locked-note{box-shadow:none;border-style:dashed;background-image:none;background-color:transparent}.callout{border-radius:var(--r-card);box-shadow:var(--shadow)}.callout.fieldnote{background-color:var(--amber-soft)}.card:hover,.search-hit:hover{transform:translateY(-3px);box-shadow:var(--shadow-lift);border-color:var(--line-strong)}.btn,.cert-claim input,.cram-date,.search-input,button{border-radius:var(--r-ctrl)}.copy-btn{border-radius:4px}.explain{border-radius:0 var(--r-card) var(--r-card) 0}.prose pre,.prose table,.term-sheet{border-radius:var(--r-card)}.prose table{box-shadow:var(--shadow)}.toc-mobile summary{border-radius:var(--r-card)}.bar{border-radius:2px}.bottom-nav a.active:before,.streak{border-radius:999px}.site-head{background:color-mix(in srgb,var(--bg) 86%,transparent)}.bottom-nav{background:color-mix(in srgb,var(--bg) 90%,transparent);border-top:1px solid var(--line-strong)}.nav-links a:hover{background:color-mix(in srgb,var(--surface) 70%,transparent)}@media (min-width:901px){.reader article{background-color:var(--surface);background-image:linear-gradient(180deg,color-mix(in srgb,#ffffff 45%,transparent),transparent 4%);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:var(--r-card);padding:40px 48px 48px}}@media (max-width:900px){.reader article{background-color:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:var(--r-card);padding:22px 18px 28px;margin:0 -4px}}.prose code,.prose pre,.prose th{background-color:var(--surface-2)}.build-stamp{display:block;margin-top:6px;font-family:var(--font-body,"Public Sans"),system-ui,sans-serif;font-style:normal;font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint)}@media (prefers-color-scheme:dark){:root{--bg:#0b0d0e;--surface:#22262a;--surface-2:#2c3136;--ink:#eceae2;--ink-soft:#aeab9d;--ink-faint:#7d7b6f;--line:#3c4038;--line-strong:#565b4f;--accent:#4cb8a0;--accent-soft:#1e352e;--amber:#d9aa55;--amber-soft:#362b12;--shadow:0 1px 0 rgba(0,0,0,0.5),0 6px 12px -2px rgba(0,0,0,0.55),0 22px 44px -14px rgba(0,0,0,0.75);--shadow-lift:0 2px 4px rgba(0,0,0,0.55),0 14px 28px -6px rgba(0,0,0,0.6),0 36px 64px -18px rgba(0,0,0,0.8)}.card,.checkpoint,.cram-item,.flashcard,.how,.module-row,.panel,.pillar,.reader article,.scn-panel,.search-hit,.stat-tile,.toc-mobile{background-image:linear-gradient(180deg,color-mix(in srgb,#f5efdd 7%,transparent),transparent 10%)}}.lesson-list{display:flex;flex-direction:column;gap:8px;margin:14px 0}.lesson-progress{gap:12px;font-size:.82rem;color:var(--ink-soft);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;margin-bottom:6px}.lesson-progress,.lesson-row{display:flex;align-items:center}.lesson-row{gap:14px;text-decoration:none;color:var(--ink);background-color:var(--surface);border:1px solid var(--line);border-radius:var(--r-card,2px);box-shadow:var(--shadow);padding:13px 16px;transition:transform .15s var(--ease-out),box-shadow .15s var(--ease-out),border-color .15s var(--ease-out)}.lesson-row:hover{transform:translateY(-2px);box-shadow:var(--shadow-lift)}.lesson-row.next{border-color:var(--accent);border-left-width:3px}.lesson-row.done{opacity:.75}.lesson-num{flex-shrink:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:50%;border:1.5px solid var(--line-strong);font-family:var(--font-display,"Fraunces"),Georgia,serif;font-weight:650;font-size:.85rem;color:var(--ink-soft)}.lesson-row.next .lesson-num{border-color:var(--accent);color:var(--accent)}.lesson-title{flex:1 1;font-weight:600;font-size:.94rem;font-family:var(--font-display,"Fraunces"),Georgia,serif}.lesson-meta{font-size:.74rem;color:var(--ink-faint);white-space:nowrap}.lesson-finish{margin:24px 0;max-width:68ch;text-align:center}.lesson-done{max-width:68ch;animation:pop-in .4s var(--ease-out)}.today-start{display:block;text-align:center;font-size:1rem;padding:15px 20px;animation:chip-pop .4s var(--ease-out)}.today-item{text-decoration:none;color:var(--ink)}.today-sub{display:block;font-weight:400;font-size:.8rem;color:var(--ink-faint)}.day-done{text-align:center}.day-done .score-big{color:var(--good)}@media (max-width:520px){.lesson-meta{display:none}}:root{--bg:#ece7dc;--bg-deep:#e3ddcf;--surface:#fbf8f1;--surface-2:#f1ece0;--ink:#191b1d;--ink-soft:#4e5257;--ink-faint:#7d8189;--line:#ddd6c6;--line-strong:#b9ae95;--accent:#123c33;--accent-ink:#f7f3e8;--accent-soft:#e2e8e2;--oxblood:#6b2230;--oxblood-soft:#f0e0e0;--gold:#a8842c;--gold-bright:#d9b551;--gold-pale:#f3e7c6;--gold-leaf:linear-gradient(135deg,#8a6a1f,#c9a447 18%,#f0dc9a 34%,#c9a447 52%,#8a6a1f 68%,#d9b551 86%,#a8842c);--amber:#8a6a1f;--amber-soft:#f3e7c6;--good:#1f5e43;--good-soft:#e0ebe3;--bad:#8c2f27;--bad-soft:#f3e0dc;--shadow:0 1px 0 rgba(25,27,29,0.05),0 2px 5px -1px rgba(25,27,29,0.08),0 12px 26px -14px rgba(25,27,29,0.3);--shadow-lift:0 2px 3px rgba(25,27,29,0.08),0 10px 20px -6px rgba(25,27,29,0.16),0 28px 50px -18px rgba(25,27,29,0.4);--r-card:2px;--r-ctrl:3px}@media (prefers-color-scheme:dark){:root{--bg:#0e0f10;--bg-deep:#0a0b0c;--surface:#1a1c1e;--surface-2:#23262a;--ink:#ece8dd;--ink-soft:#a8a89e;--ink-faint:#7a7a72;--line:#2f3337;--line-strong:#4a4f55;--accent:#4e8f7a;--accent-ink:#0b0f0e;--accent-soft:#16332b;--oxblood:#a8474f;--oxblood-soft:#2e1518;--gold:#d0aa53;--gold-bright:#f0d68d;--gold-pale:#3a2f16;--amber:#d0aa53;--amber-soft:#33290f;--good:#5cb683;--good-soft:#16302a;--bad:#d3766c;--bad-soft:#3a1f1c;--shadow:0 1px 0 rgba(0,0,0,0.6),0 4px 10px -2px rgba(0,0,0,0.55),0 20px 40px -16px rgba(0,0,0,0.8);--shadow-lift:0 2px 4px rgba(0,0,0,0.6),0 14px 28px -6px rgba(0,0,0,0.6),0 40px 70px -20px rgba(0,0,0,0.9)}}body{background-color:var(--bg);background-image:repeating-linear-gradient(0deg,transparent 0 3px,color-mix(in srgb,var(--ink) 1.6%,transparent) 3px 4px)}@media (prefers-color-scheme:dark){body{background-image:repeating-linear-gradient(0deg,transparent 0 3px,color-mix(in srgb,#ffffff 1.4%,transparent) 3px 4px)}}.gold-text{background:var(--gold-leaf);-webkit-background-clip:text;background-clip:text;color:transparent}.rule-gold{height:1px;background:var(--gold-leaf);opacity:.75;border:0}.site-head{background:color-mix(in srgb,var(--bg) 88%,transparent);border-bottom:1px solid var(--line-strong);box-shadow:0 1px 0 var(--gold-pale)}.wordmark{letter-spacing:.01em}.wordmark em{font-style:italic;background:var(--gold-leaf);-webkit-background-clip:text;background-clip:text;color:transparent}.nav-links a{font-size:.8rem;letter-spacing:.06em;text-transform:uppercase;font-weight:600}.nav-links a.nav-cta{background:var(--accent);color:var(--accent-ink);border:1px solid var(--accent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--gold-bright) 45%,transparent)}.site-foot{border-top:1px solid var(--line-strong);box-shadow:0 -1px 0 var(--gold-pale)}.hero .overline{color:var(--ink-faint);letter-spacing:.22em;position:relative;padding-bottom:14px}.hero .overline:after{content:"";position:absolute;left:0;bottom:0;width:68px;height:2px;background:var(--gold-leaf)}.hero h1 em{font-style:italic}.hero h1 em,.hero-stats strong{background:var(--gold-leaf);-webkit-background-clip:text;background-clip:text;color:transparent}.hero-stats li{color:var(--ink-faint);letter-spacing:.1em}.card,.checkpoint,.cram-item,.flashcard,.how,.lesson-row,.module-row,.panel,.pillar,.reader article,.scn-panel,.search-hit,.stat-tile{position:relative;background-color:var(--surface);background-image:linear-gradient(180deg,rgba(255,255,255,.55),transparent 7%);border:1px solid var(--line);box-shadow:var(--shadow)}.card:before,.how:before,.lesson-row:before,.module-row:before{content:"";position:absolute;inset:3px;border:1px solid color-mix(in srgb,var(--gold) 22%,transparent);pointer-events:none;border-radius:1px}.card:hover:before,.lesson-row:hover:before{border-color:color-mix(in srgb,var(--gold) 55%,transparent)}.card:hover,.lesson-row:hover,.search-hit:hover{transform:translateY(-3px);box-shadow:var(--shadow-lift);border-color:var(--line-strong)}.card .num{color:var(--ink-faint);letter-spacing:.16em;font-size:.68rem}.card h3{font-size:1.12rem;letter-spacing:-.005em}.section-label{color:var(--ink-faint);letter-spacing:.2em;font-size:.7rem}.section-label:after{background:var(--gold-leaf);opacity:.7;width:46px;height:1px}.btn,button{border-radius:var(--r-ctrl);letter-spacing:.03em}.btn.primary,button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);background-image:linear-gradient(180deg,rgba(255,255,255,.1),transparent 60%);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--gold-bright) 40%,transparent),0 1px 2px rgba(18,60,51,.3),0 6px 14px -6px rgba(18,60,51,.5)}.btn.primary:hover,button.primary:hover{filter:none;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--gold-bright) 70%,transparent),0 2px 4px rgba(18,60,51,.32),0 10px 22px -8px rgba(18,60,51,.55)}.bar{background:var(--surface-2);border:1px solid var(--line);height:6px}.bar,.bar i{border-radius:0}.bar i{background:var(--gold-leaf)}.prose h2{letter-spacing:-.005em}.prose h2:after{background:var(--gold-leaf);opacity:.8;width:52px;height:2px}.prose h3{color:var(--ink)}.prose blockquote.callout{border-left-width:3px}.callout.voice{background-color:var(--accent-soft);border-left-color:var(--accent)}.callout.voice .callout-label{color:var(--accent);letter-spacing:.16em}.callout.fieldnote{background-color:var(--gold-pale);border-left-color:var(--gold)}.callout.fieldnote .callout-label{color:var(--amber);letter-spacing:.16em}.doc-head{border-bottom:1px solid var(--line-strong)}.doc-head .kicker{color:var(--ink-faint);letter-spacing:.2em}.term{border-bottom:1px dotted var(--gold)}.term:hover{background:var(--gold-pale)}.wax-seal{display:inline-block;line-height:0;filter:drop-shadow(0 3px 5px rgba(25,27,29,.35))}.wax-seal.stamped{animation:seal-press var(--dur-seal,.42s) var(--ease,cubic-bezier(.22,1,.36,1)) both}@keyframes seal-press{0%{transform:scale(1.16);opacity:0;filter:drop-shadow(0 14px 20px rgba(25,27,29,.45))}60%{opacity:1}to{transform:scale(1);opacity:1;filter:drop-shadow(0 3px 5px rgba(25,27,29,.35))}}@keyframes gold-sweep{0%{background-position:-180% 0}to{background-position:180% 0}}@keyframes gold-glow{0%{box-shadow:0 0 0 0 rgba(201,164,71,.55)}70%{box-shadow:0 0 0 12px rgba(201,164,71,0)}to{box-shadow:0 0 0 0 rgba(201,164,71,0)}}.opts button.correct{border-color:var(--gold);background-color:var(--gold-pale);color:var(--ink);background-image:linear-gradient(100deg,transparent 20%,rgba(240,220,154,.85) 42%,rgba(255,249,226,.95) 50%,rgba(240,220,154,.85) 58%,transparent 80%);background-size:220% 100%;animation:gold-sweep .85s var(--ease-out) 1,gold-glow .9s var(--ease-out) 1}.opts button.correct:after{content:"✦";color:var(--gold)}.opts button.wrong{border-color:var(--bad);background-color:var(--bad-soft)}.opts button.wrong:after{content:"✕";color:var(--bad)}.checkpoint.passed{display:flex;align-items:center;gap:12px;border-color:var(--good);border-left:3px solid var(--good);padding:14px 20px}.checkpoint.passed:after{display:none}.checkpoint.passed .cp-label{color:var(--good);margin:0}.lesson-done{display:flex;align-items:center;gap:18px;flex-wrap:wrap;border-color:var(--good)}.lesson-done .cp-label{color:var(--good)!important}.lesson-done-copy{flex:1 1;min-width:200px}.lesson-done-copy p{margin:2px 0 0;font-size:.88rem;color:var(--ink-soft)}.lesson-row.done .lesson-num{background:var(--good-soft);border-color:var(--good);color:var(--good)}.lesson-row.done .lesson-num .tick{font-size:.95rem;line-height:1}.done-note{display:flex;flex-direction:column;align-items:center;gap:10px;padding:8px 0 4px}.done-mark{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:50%;border:1.5px solid var(--good);background:var(--good-soft);color:var(--good);font-size:1.2rem;line-height:1}.done-note .done-caption{font-family:var(--font-display,"Fraunces"),Georgia,serif;font-size:1.05rem;font-weight:600;letter-spacing:.02em;color:var(--ink)}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);-webkit-clip-path:inset(50%);clip-path:inset(50%);white-space:nowrap;border:0}.premium-badge{display:inline-flex;align-items:center;gap:5px;font-size:.6rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;padding:3px 8px;border:1px solid var(--gold);color:var(--amber);background:var(--gold-pale);border-radius:999px;white-space:nowrap}.card.premium{border-color:color-mix(in srgb,var(--gold) 45%,var(--line))}.card.premium:before{border-color:color-mix(in srgb,var(--gold) 60%,transparent);inset:4px}.card-head{justify-content:space-between;gap:8px;margin-bottom:6px}.card-head,.seal-celebration{display:flex;align-items:center}.seal-celebration{flex-direction:column;gap:10px;padding:8px 0 4px}.seal-celebration.launchpad-seal{margin:0 0 22px}.seal-celebration .seal-caption{font-family:var(--font-display,"Fraunces"),Georgia,serif;font-size:1.05rem;font-weight:600;letter-spacing:.02em}.tier-blurb{font-size:.88rem;color:var(--ink-soft);margin:-6px 0 12px;font-family:var(--font-reading,"Source Serif 4"),Georgia,serif;font-style:italic}:root:not([data-theme=dark]){--bg:#ece7dc;--bg-deep:#e3ddcf;--surface:#fbf8f1;--surface-2:#f1ece0;--ink:#191b1d;--ink-soft:#4e5257;--ink-faint:#7d8189;--line:#ddd6c6;--line-strong:#b9ae95;--accent:#123c33;--accent-ink:#f7f3e8;--accent-soft:#e2e8e2;--oxblood:#6b2230;--oxblood-soft:#f0e0e0;--gold:#a8842c;--gold-bright:#d9b551;--gold-pale:#f3e7c6;--amber:#8a6a1f;--amber-soft:#f3e7c6;--good:#1f5e43;--good-soft:#e0ebe3;--bad:#8c2f27;--bad-soft:#f3e0dc;--shadow:0 1px 0 rgba(25,27,29,0.05),0 2px 5px -1px rgba(25,27,29,0.08),0 12px 26px -14px rgba(25,27,29,0.3);--shadow-lift:0 2px 3px rgba(25,27,29,0.08),0 10px 20px -6px rgba(25,27,29,0.16),0 28px 50px -18px rgba(25,27,29,0.4)}:root:not([data-theme=dark]) body{background-image:repeating-linear-gradient(0deg,transparent 0 3px,color-mix(in srgb,var(--ink) 1.6%,transparent) 3px 4px)}:root:not([data-theme=dark]) .card,:root:not([data-theme=dark]) .checkpoint,:root:not([data-theme=dark]) .cram-item,:root:not([data-theme=dark]) .flashcard,:root:not([data-theme=dark]) .how,:root:not([data-theme=dark]) .lesson-row,:root:not([data-theme=dark]) .module-row,:root:not([data-theme=dark]) .panel,:root:not([data-theme=dark]) .pillar,:root:not([data-theme=dark]) .reader article,:root:not([data-theme=dark]) .scn-panel,:root:not([data-theme=dark]) .search-hit,:root:not([data-theme=dark]) .stat-tile{background-image:linear-gradient(180deg,rgba(255,255,255,.55),transparent 7%)}:root[data-theme=dark]{--bg:#17130e;--bg-deep:#100d09;--surface:#221c15;--surface-2:#2c251c;--ink:#f0e6d2;--ink-soft:#bdb098;--ink-faint:#8b8069;--line:#3a3025;--line-strong:#5c4e3a;--accent:#7fbfa5;--accent-ink:#10201a;--accent-soft:#22352d;--oxblood:#a8474f;--oxblood-soft:#33191c;--gold:#d8b25c;--gold-bright:#f4dfa0;--gold-pale:#3b2f16;--amber:#d8b25c;--amber-soft:#3b2f16;--good:#7ec49a;--good-soft:#1e3328;--bad:#dc8578;--bad-soft:#3a201c;--gold-leaf:linear-gradient(135deg,#9c7c2c,#d8b25c 18%,#f6e6b4 34%,#d8b25c 52%,#9c7c2c 68%,#e6c877 86%,#b5913a);--shadow:0 1px 0 rgba(0,0,0,0.55),0 4px 10px -2px rgba(0,0,0,0.5),0 20px 40px -16px rgba(0,0,0,0.75);--shadow-lift:0 2px 4px rgba(0,0,0,0.6),0 14px 28px -6px rgba(0,0,0,0.55),0 40px 70px -20px rgba(0,0,0,0.85)}:root[data-theme=dark] body{background-color:var(--bg);background-image:repeating-linear-gradient(0deg,transparent 0 3px,rgba(240,230,210,.022) 3px 4px)}:root[data-theme=dark] .card,:root[data-theme=dark] .checkpoint,:root[data-theme=dark] .cram-item,:root[data-theme=dark] .flashcard,:root[data-theme=dark] .how,:root[data-theme=dark] .lesson-row,:root[data-theme=dark] .module-row,:root[data-theme=dark] .panel,:root[data-theme=dark] .pillar,:root[data-theme=dark] .reader article,:root[data-theme=dark] .scn-panel,:root[data-theme=dark] .search-hit,:root[data-theme=dark] .stat-tile{background-image:linear-gradient(180deg,rgba(246,230,180,.045),transparent 9%)}:root[data-theme=dark] .bottom-nav,:root[data-theme=dark] .site-head{box-shadow:0 1px 0 rgba(216,178,92,.18)}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;min-height:0;padding:0;border:1px solid var(--line);background:transparent;color:var(--ink-soft);border-radius:999px}.theme-toggle:hover{color:var(--gold);border-color:var(--gold);background:transparent}.theme-toggle svg{width:17px;height:17px}.reader{grid-template-columns:minmax(0,1fr) 268px;gap:40px}@media (min-width:1100px){.reader .wrap,.wrap:has(.reader){max-width:1180px}}.reader article,.sheet{background-image:linear-gradient(180deg,rgba(255,255,255,.5),transparent 4%),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='f'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23f)' opacity='0.035'/%3E%3C/svg%3E");background-blend-mode:normal,multiply}:root[data-theme=dark] .reader article,:root[data-theme=dark] .sheet{background-blend-mode:normal,screen}.running-head{display:none;align-items:center;gap:14px;font-family:var(--font-body,"Public Sans"),system-ui,sans-serif;font-size:.62rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:30px}.running-head .rh-rule{flex:1 1;height:1px;background:var(--gold-leaf);opacity:.5}@media (min-width:901px){.running-head{display:flex}}.card h3,.doc-head h1,.hero h1,.lesson-title,.prose h2,.wordmark{text-shadow:0 1px 0 rgba(255,255,255,.5)}:root[data-theme=dark] .card h3,:root[data-theme=dark] .doc-head h1,:root[data-theme=dark] .hero h1,:root[data-theme=dark] .lesson-title,:root[data-theme=dark] .prose h2,:root[data-theme=dark] .wordmark{text-shadow:0 1px 0 rgba(0,0,0,.5)}.lesson-sheet .prose p.lede:first-letter{float:left;font-family:var(--font-display,"Fraunces"),Georgia,serif;font-weight:650;font-size:3.5em;line-height:.82;padding:.08em .12em 0 0;margin-right:.04em;background:var(--gold-leaf);-webkit-background-clip:text;background-clip:text;color:transparent}.prose h2{position:relative}.prose h2+p{margin-top:.5em}.prose hr{border:0;height:auto;text-align:center;margin:3em 0}.prose hr:after{content:"❦";color:var(--gold);font-size:1.15rem;letter-spacing:.4em}.card:before,.lesson-row:before{inset:5px;border:0;background:linear-gradient(var(--gold),var(--gold)) 0 0 /12px 1px no-repeat,linear-gradient(var(--gold),var(--gold)) 0 0 /1px 12px no-repeat,linear-gradient(var(--gold),var(--gold)) 100% 0 /12px 1px no-repeat,linear-gradient(var(--gold),var(--gold)) 100% 0 /1px 12px no-repeat,linear-gradient(var(--gold),var(--gold)) 0 100% /12px 1px no-repeat,linear-gradient(var(--gold),var(--gold)) 0 100% /1px 12px no-repeat,linear-gradient(var(--gold),var(--gold)) 100% 100% /12px 1px no-repeat,linear-gradient(var(--gold),var(--gold)) 100% 100% /1px 12px no-repeat;opacity:.34;transition:opacity .18s var(--ease-out),inset .18s var(--ease-out)}.card:hover:before,.lesson-row:hover:before{opacity:.9;border:0}.card.premium:before{opacity:.6}.prose p{hanging-punctuation:first last}.prose ul{padding-left:1.15em}.prose ul li::marker{color:var(--gold)}.prose ol li::marker{color:var(--gold);font-family:var(--font-display,"Fraunces"),Georgia,serif;font-weight:650}.prose strong{font-weight:650}.prose blockquote:not(.callout){position:relative;border-left-color:var(--gold)}.callout .callout-label{font-size:.62rem}.card .meta,.doc-head .meta,.lesson-meta{font-feature-settings:oldstyle-nums tabular-nums;font-variant-numeric:oldstyle-nums tabular-nums}.rail{display:none}@media (min-width:1000px){.rail{display:block;position:-webkit-sticky;position:sticky;top:82px;align-self:start;max-height:calc(100vh - 110px);overflow-y:auto;padding-left:22px;border-left:1px solid var(--line);font-family:var(--font-body,"Public Sans"),system-ui,sans-serif;scrollbar-width:thin}.toc{display:none}}.rail-block{margin-bottom:26px}.rail-label{font-size:.6rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-faint);padding-bottom:7px;margin-bottom:10px;border-bottom:1px solid var(--line);position:relative}.rail-label:after{content:"";position:absolute;left:0;bottom:-1px;width:26px;height:1px;background:var(--gold)}.rail-label.small{border:0;margin:14px 0 6px;padding:0}.rail-label.small:after{display:none}.rail-steps{list-style:none;margin:0;padding:0;counter-reset:none}.rail-steps li a{display:flex;gap:10px;align-items:baseline;text-decoration:none;color:var(--ink-soft);font-size:.79rem;line-height:1.4;border-left:2px solid transparent;padding:6px 0 6px 10px;margin-left:-12px;transition:color .15s var(--ease-out),border-color .15s var(--ease-out)}.rail-steps li a:hover{color:var(--ink)}.rail-steps li.current a{color:var(--ink);font-weight:600;border-left-color:var(--gold)}.rail-steps li.done .rail-step-mark{color:var(--good)}.rail-step-mark{flex-shrink:0;width:15px;font-family:var(--font-display,"Fraunces"),Georgia,serif;font-weight:650;font-size:.75rem;text-align:center}.rail-step-mark,.rail-steps li.done .rail-step-title{color:var(--ink-faint)}.rail-toc a{display:block;font-size:.78rem;line-height:1.4;color:var(--ink-soft);text-decoration:none;padding:5px 0 5px 10px;margin-left:-12px;border-left:2px solid transparent;transition:color .15s var(--ease-out),border-color .15s var(--ease-out)}.rail-toc a:hover{color:var(--ink)}.rail-toc a.active{color:var(--ink);border-left-color:var(--gold);font-weight:600}.rail-hint{font-size:.76rem;color:var(--ink-faint);line-height:1.5;margin:0}.term-sample{border-bottom:1px dotted var(--gold);color:var(--ink-soft)}.rail-def{background:var(--surface-2);border:1px solid var(--line);border-left:2px solid var(--gold);padding:12px 14px;border-radius:var(--r-card)}.rail-def strong{font-family:var(--font-display,"Fraunces"),Georgia,serif;font-size:.92rem;font-weight:650;display:block;margin-bottom:5px}.rail-def p{margin:0;font-size:.79rem;line-height:1.55;color:var(--ink-soft)}.rail-clear{font-size:.68rem;padding:4px 0 0;min-height:0;letter-spacing:.08em;text-transform:uppercase}.def-in{animation:def-print .32s var(--ease-out)}@keyframes def-print{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.term.term-live{background:var(--gold-pale);border-bottom-style:solid;border-bottom-color:var(--gold)}.rail-chip{font-size:.7rem;padding:3px 9px;margin:0 5px 5px 0;min-height:0;border-radius:999px;border-color:var(--line);color:var(--ink-soft);background:transparent}.rail-chip:hover{border-color:var(--gold);color:var(--ink);background:var(--gold-pale)}.rail-terms{margin-top:14px}.rail-terms summary{font-size:.72rem;color:var(--ink-faint);cursor:pointer;letter-spacing:.04em;margin-bottom:8px}.rail-terms summary:hover{color:var(--gold)}.rail-history{margin-top:12px}:root:not([data-theme=dark]){--bg:#f6f1e7;--bg-deep:#efe8da;--surface:#fcf9f2;--surface-2:#f6f1e7;--ink:#181817;--ink-body:#292826;--ink-soft:#57544e;--ink-faint:#706d67;--line:#d9d1c3;--line-strong:#c3b9a6;--accent:#181817;--accent-ink:#fcf9f2;--accent-soft:#eee8db;--oxblood:#741d27;--oxblood-soft:#f3e4e2;--gold:#b08a3e;--gold-ink:#82662e;--gold-bright:#c9a559;--gold-pale:#f0e6cf;--amber:#82662e;--amber-soft:#f0e6cf;--good:#60785f;--good-soft:#e4eae3;--bad:#741d27;--bad-soft:#f3e4e2;--shadow:0 1px 0 rgba(24,24,23,0.04),0 1px 3px rgba(24,24,23,0.06),0 8px 20px -12px rgba(24,24,23,0.22);--shadow-lift:0 1px 0 rgba(24,24,23,0.05),0 4px 10px -2px rgba(24,24,23,0.1),0 20px 38px -18px rgba(24,24,23,0.3)}:root[data-theme=dark]{--bg:#161615;--bg-deep:#101010;--surface:#1f1f1e;--surface-2:#262625;--ink:#f4f1ea;--ink-body:#e6e2d8;--ink-soft:#b3aea3;--ink-faint:#8b877e;--line:#34342f;--line-strong:#4c4b45;--accent:#f4f1ea;--accent-ink:#161615;--accent-soft:#2b2b28;--oxblood:#b8646c;--oxblood-soft:#2e1c1e;--gold:#c9a559;--gold-ink:#ddbd77;--gold-bright:#ddbd77;--gold-pale:#332d1d;--amber:#ddbd77;--amber-soft:#332d1d;--good:#8fa88e;--good-soft:#232b22}:root:not([data-theme=dark]) body{background-color:var(--bg)}:root:not([data-theme=dark]) body,:root[data-theme=dark] body{color:var(--ink-body);background-image:none}h1,h2,h3,h4,h5,h6{color:var(--ink)}:root:not([data-theme=dark]) .card,:root:not([data-theme=dark]) .checkpoint,:root:not([data-theme=dark]) .cram-item,:root:not([data-theme=dark]) .flashcard,:root:not([data-theme=dark]) .how,:root:not([data-theme=dark]) .lesson-row,:root:not([data-theme=dark]) .module-row,:root:not([data-theme=dark]) .panel,:root:not([data-theme=dark]) .pillar,:root:not([data-theme=dark]) .reader article,:root:not([data-theme=dark]) .scn-panel,:root:not([data-theme=dark]) .search-hit,:root:not([data-theme=dark]) .stat-tile{background-image:none}:root{--dur-ack:100ms;--dur-fast:180ms;--dur-med:280ms;--dur-slow:340ms;--dur-seal:420ms;--ease:cubic-bezier(0.22,1,0.36,1);--ease-out:cubic-bezier(0.33,1,0.68,1);--radius:6px;--radius-lg:10px;--tap:44px}.card--surface{box-shadow:none}.card--action,.card--surface{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.card--action{box-shadow:var(--shadow);transition:transform var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease)}.card--action:hover{border-color:var(--line-strong);box-shadow:var(--shadow-lift)}.card--action:active{transform:scale(.985);transition-duration:var(--dur-ack)}.card--action[aria-pressed=true],.card--action[data-selected=true]{border-color:var(--gold);box-shadow:inset 0 0 0 1px var(--gold)}.card--credential{background:linear-gradient(to bottom,var(--surface),var(--bg-deep));border:1px solid var(--line-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-lift)}.btn,.nav-cta,a.btn,button{transition:transform var(--dur-ack) var(--ease-out),background-color var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.btn:active,.nav-cta:active,a.btn:active,button:active{transform:scale(.985)}.btn[disabled],button[disabled]{opacity:.55;cursor:not-allowed;transform:none}:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:2px solid var(--gold);outline-offset:2px;border-radius:3px}:where(a,button):focus:not(:focus-visible){outline:none}.fleuron,.rule-fleuron:after,.section-fleuron:before{content:none!important;display:none!important}.lesson-row:before,.lesson-row:hover:before{content:none!important}.reader article li,.reader article p,body,li,p{text-shadow:none}.reader article{max-width:68ch}.reader article li,.reader article p{color:var(--ink-body)}@media (max-width:720px){.reader article li,.reader article p{font-size:1.0625rem;line-height:1.72}}@media (pointer:coarse){.bottom-nav a,.btn,.lesson-row,button{min-height:var(--tap)}}.site-head{background:#181817;border-bottom:1px solid rgba(255,255,255,.08);box-shadow:none}.site-head .nav-links a,.site-head .wordmark{color:#f4f1ea}.site-head .wordmark{letter-spacing:.06em;text-shadow:none}.site-head .wordmark em{color:var(--gold);font-style:normal}.site-head .nav-links a{position:relative;opacity:.86;transition:opacity var(--dur-fast) var(--ease)}.site-head .nav-links a:hover{opacity:1}.site-head .nav-links a.nav-quiet{opacity:.62;font-size:.92em}.site-head .nav-links a.nav-quiet:hover{opacity:.95}.site-head .nav-sep{width:1px;height:1.1em;background:rgba(255,255,255,.18);margin:0 .15rem;flex:0 0 auto}.site-head .nav-links a.nav-cta{background:transparent;color:var(--gold-bright);border:1px solid var(--gold);border-radius:var(--radius);padding:.32em .85em;opacity:1}.site-head .nav-links a.nav-cta:hover{background:var(--gold);color:#181817}.site-head .search-btn,.site-head .theme-toggle{color:#f4f1ea;opacity:.8}.site-head .search-btn:hover,.site-head .theme-toggle:hover{opacity:1}.site-head :where(a,button):focus-visible{outline-color:var(--gold-bright)}.module-outline{padding:1.1rem 1.25rem;margin:1.25rem 0 1.5rem}.module-outline h2{font-size:.78rem;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-faint);margin:0 0 .7rem;font-weight:600}.module-outline ul{margin:0;padding:0;list-style:none;display:grid;grid-gap:.55rem;gap:.55rem}.module-outline li{position:relative;padding-left:1.15rem;font-size:.94rem;line-height:1.55;color:var(--ink-body)}.module-outline li:before{content:"";position:absolute;left:0;top:.62em;width:5px;height:5px;border-radius:50%;background:var(--gold)}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.btn:active,.card--action:active,button:active{transform:none}.wax-seal.stamped{animation:none!important;transform:none!important}}