@font-face{font-family:'Fraunces';font-style:normal;font-weight:400 900;font-display:swap;src:url('/fonts/fraunces-latin-var.woff2') format('woff2');unicode-range:U+0000-00FF,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:400 900;font-display:swap;src:url('/fonts/fraunces-latin-ext-var.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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Newsreader';font-style:normal;font-weight:200 800;font-display:swap;src:url('/fonts/newsreader-latin-var.woff2') format('woff2');unicode-range:U+0000-00FF,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:'Newsreader';font-style:normal;font-weight:200 800;font-display:swap;src:url('/fonts/newsreader-latin-ext-var.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:'Newsreader';font-style:italic;font-weight:200 800;font-display:swap;src:url('/fonts/newsreader-latin-var-italic.woff2') format('woff2');unicode-range:U+0000-00FF,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:'Figtree';font-style:normal;font-weight:300 900;font-display:optional;src:url('/fonts/figtree-latin-var.woff2') format('woff2');unicode-range:U+0000-00FF,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:'Hanken Grotesk';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/hanken-latin-ext-400.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-20B8,U+20BA-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Spline Sans Mono';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/spline-latin-400.woff2') format('woff2');unicode-range:U+0000-00FF,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:'Spline Sans Mono';font-style:normal;font-weight:500;font-display:swap;src:url('/fonts/spline-latin-500.woff2') format('woff2');unicode-range:U+0000-00FF,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:'Spline Sans Mono';font-style:normal;font-weight:600;font-display:swap;src:url('/fonts/spline-latin-600.woff2') format('woff2');unicode-range:U+0000-00FF,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}
/* The rupee bridge. Figtree and Spline do not ship U+20B9; these two subsets carry that one
   codepoint and are pinned by unicode-range so they can supply nothing else. Same law as
   src/tokens.css, restated because these pages are not processed by Vite. */
@font-face{font-family:'Ledger Rupee UI';font-style:normal;font-weight:200 800;font-display:optional;src:url('/fonts/rupee-ui.woff2') format('woff2');unicode-range:U+20B9}
@font-face{font-family:'Ledger Rupee Mono';font-style:normal;font-weight:200 800;font-display:optional;src:url('/fonts/rupee-mono.woff2') format('woff2');unicode-range:U+20B9}
/* The fallback faces: the installed face each stack falls to while a web face loads, cut to that
   face's measure (size-adjust, the three overrides) so the swap re-renders in place instead of
   re-flowing the page. Same figures and same law as src/tokens.css; U+20B9 is left out so the
   rupee sign keeps resolving to the bridge faces above. */
@font-face{font-family:'Newsreader Fallback: Georgia';src:local('Georgia');ascent-override:76.4676%;descent-override:27.5699%;line-gap-override:0%;size-adjust:96.1192%;unicode-range:U+0000-20B8,U+20BA-10FFFF}
@font-face{font-family:'Newsreader Fallback: Times New Roman';src:local('Times New Roman'),local('TimesNewRomanPSMT');ascent-override:69.6835%;descent-override:25.124%;line-gap-override:0%;size-adjust:105.4769%;unicode-range:U+0000-20B8,U+20BA-10FFFF}
@font-face{font-family:'Newsreader Fallback: Noto Serif';src:local('Noto Serif Regular'),local('NotoSerif-Regular');ascent-override:82.5053%;descent-override:29.7468%;line-gap-override:0%;size-adjust:89.0852%;unicode-range:U+0000-20B8,U+20BA-10FFFF}
@font-face{font-family:'Fraunces Fallback: Georgia';src:local('Georgia');ascent-override:92.9623%;descent-override:24.2386%;line-gap-override:0%;size-adjust:105.2039%;unicode-range:U+0000-20B8,U+20BA-10FFFF}
@font-face{font-family:'Fraunces Fallback: Times New Roman';src:local('Times New Roman'),local('TimesNewRomanPSMT');ascent-override:84.7148%;descent-override:22.0882%;line-gap-override:0%;size-adjust:115.4462%;unicode-range:U+0000-20B8,U+20BA-10FFFF}
@font-face{font-family:'Fraunces Fallback: Noto Serif';src:local('Noto Serif Regular'),local('NotoSerif-Regular');ascent-override:100.3023%;descent-override:26.1525%;line-gap-override:0%;size-adjust:97.5052%;unicode-range:U+0000-20B8,U+20BA-10FFFF}
@font-face{font-family:'Figtree Fallback: Arial';src:local('Arial'),local('ArialMT');ascent-override:94.3231%;descent-override:24.8219%;line-gap-override:0%;size-adjust:100.7176%;unicode-range:U+0000-20B8,U+20BA-10FFFF}
@font-face{font-family:'Figtree Fallback: Roboto';src:local('Roboto Regular'),local('Roboto-Regular');ascent-override:94.1165%;descent-override:24.7675%;line-gap-override:0%;size-adjust:100.9387%;unicode-range:U+0000-20B8,U+20BA-10FFFF}
@font-face{font-family:'Figtree Fallback: Segoe UI';src:local('Segoe UI'),local('SegoeUI');ascent-override:93.8065%;descent-override:24.6859%;line-gap-override:0%;size-adjust:101.2722%;unicode-range:U+0000-20B8,U+20BA-10FFFF}
@font-face{font-family:'Spline Sans Mono Fallback: Courier New';src:local('Courier New'),local('CourierNewPSMT');ascent-override:96.3657%;descent-override:23.6538%;line-gap-override:0%;size-adjust:99.9837%;unicode-range:U+0000-20B8,U+20BA-10FFFF}
@font-face{font-family:'Spline Sans Mono Fallback: Roboto Mono';src:local('Roboto Mono Regular'),local('RobotoMono-Regular');ascent-override:96.3657%;descent-override:23.6538%;line-gap-override:0%;size-adjust:99.9837%;unicode-range:U+0000-20B8,U+20BA-10FFFF}
/* ---- the site's own rules, read from scripts/public-site.css at build time ---- */
/* The public site's stylesheet. Inlined into every page by scripts/build-landing.mjs, which also
   prepends the @font-face blocks and appends src/motion-shared.css. The tokens are the app's
   (src/tokens.css) with one role added, the curtain: the ink used as a ground. The design record is
   docs/design/DESIGN.md. Nothing here loads from another host. */
:root{
  --paper:#F8F7F4; --card:#FFFFFF; --wash:#F1EEE6; --ink:#201C16; --slate:#5B554A;
  --green:#0F5A45; --green-hover:#0B4335; --green-tint:#E2ECE5;
  --oxide:#A0301F; --oxide-tint:#F5E9E3;
  --marker-tint:#F6E7B2; --marker-line:#8A701C; --marker-ink:#6E5A14;
  --rule:#DCD6C8; --rule-strong:#A69D8D;
  --curtain:#201C16; --curtain-ink:#F8F7F4; --curtain-muted:#BDB5A6; --curtain-rule:#3A342B;
  --radius:4px; --r-m:10px; --r-l:16px; --hairline:0 1px 0 var(--rule);
  --shadow-soft:0 1px 2px rgb(32 28 22 / 5%),0 6px 16px rgb(32 28 22 / 6%);
  --s1:4px; --s2:8px; --s3:12px; --s4:16px; --s5:24px; --s6:32px; --s7:48px; --s8:72px; --s9:96px;
  --display:'Fraunces','Fraunces Fallback: Georgia','Fraunces Fallback: Times New Roman','Fraunces Fallback: Noto Serif','Iowan Old Style',Georgia,'Times New Roman',serif;
  --serif:'Newsreader','Newsreader Fallback: Georgia','Newsreader Fallback: Times New Roman','Newsreader Fallback: Noto Serif','Iowan Old Style',Georgia,'Times New Roman',serif;
  --ui:'Figtree','Ledger Rupee UI','Hanken Grotesk','Figtree Fallback: Arial','Figtree Fallback: Roboto','Figtree Fallback: Segoe UI',ui-sans-serif,system-ui,-apple-system,'Segoe UI',sans-serif;
  --mono:'Spline Sans Mono','Ledger Rupee Mono','Spline Sans Mono Fallback: Courier New','Spline Sans Mono Fallback: Roboto Mono',ui-monospace,'SF Mono',Menlo,Consolas,monospace;
  --display-axes:'SOFT' 60,'WONK' 0;
  --t-micro:12.5px; --t-caption:13.5px; --t-ui:15px; --t-lead:16px; --t-read:19px;
  --t-title:24px; --t-h2:clamp(26px,2.6vw,32px); --t-h1:clamp(34px,4.4vw,56px); --t-cover:clamp(40px,7.2vw,96px);
  --lh-tight:1.16; --lh-ui:1.45; --lh-read:1.65; --measure:66ch;
  --dur-fast:120ms; --dur:160ms; --dur-slow:220ms; --dur-tie:700ms;
  --ease-out:cubic-bezier(0.23,1,0.32,1);
  --gutter:clamp(16px,3vw,32px);
  --section:clamp(56px,8vw,96px);
  color-scheme:light;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:var(--s5)}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--ui);font-size:var(--t-ui);line-height:var(--lh-ui);font-optical-sizing:auto;overflow-x:clip}
.container{max-width:1240px;margin:0 auto;padding:0 var(--gutter)}
a{color:var(--green);text-decoration-thickness:1px;text-underline-offset:2px}
a:hover{color:var(--green-hover)}
:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.on-curtain :focus-visible,.masthead :focus-visible,.cover :focus-visible{outline-color:var(--curtain-ink)}
.num{font-family:var(--mono);font-variant-numeric:tabular-nums lining-nums;font-feature-settings:'tnum' 1,'lnum' 1}
.num.neg{color:var(--oxide)}
.num.zero{color:var(--slate)}
.skip{position:absolute;left:-9999px}
.skip:focus{left:var(--s4);top:var(--s4);z-index:9;background:var(--paper);color:var(--ink);border:1px solid var(--ink);padding:var(--s3) var(--s4);border-radius:var(--r-m)}
.vh{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
h1,h2,h3{overflow-wrap:anywhere}

/* ---- the masthead: a curtain band, paper type ---- */
.masthead{background:var(--curtain);color:var(--curtain-ink)}
.masthead .container{display:flex;align-items:center;justify-content:space-between;gap:var(--s4);min-height:64px}
.wordmark{display:inline-flex;align-items:center;gap:10px;font-family:var(--display);font-variation-settings:var(--display-axes);font-size:17px;font-weight:600;color:var(--curtain-ink);text-decoration:none;min-height:48px;letter-spacing:-.005em}
.wordmark svg{flex:none}
.mastnav{display:flex;gap:var(--s2);align-items:center}
.mastnav a{font-size:var(--t-caption);font-weight:500;color:var(--curtain-muted);text-decoration:none;padding:0 var(--s3);min-height:44px;display:inline-flex;align-items:center;border-radius:var(--radius);position:relative}
.mastnav a::after{content:'';position:absolute;left:var(--s3);right:var(--s3);bottom:9px;height:1px;background:var(--curtain-ink);transform:scaleX(0);transform-origin:left;transition:transform var(--dur-slow) var(--ease-out)}
.mastnav a:hover,.mastnav a:focus-visible{color:var(--curtain-ink)}
.mastnav a:hover::after,.mastnav a:focus-visible::after{transform:scaleX(1)}
.mastnav a.here{color:var(--curtain-ink)}
.mastnav a.here::after{transform:scaleX(1);background:var(--marker-tint)}
.masthead .mastnav a[href$="/today"]{margin-left:var(--s2);border:1px solid var(--curtain-muted);color:var(--curtain-ink);padding:0 var(--s4);min-height:40px;border-radius:var(--r-m);overflow:hidden;isolation:isolate}
.masthead .mastnav a[href$="/today"]::before{content:'';position:absolute;inset:0;background:var(--curtain-ink);transform:scaleX(0);transform-origin:left;transition:transform var(--dur-slow) var(--ease-out);z-index:-1}
.masthead .mastnav a[href$="/today"]::after{display:none}
.masthead .mastnav a[href$="/today"]:hover,.masthead .mastnav a[href$="/today"]:focus-visible{color:var(--curtain)}
.masthead .mastnav a[href$="/today"]:hover::before,.masthead .mastnav a[href$="/today"]:focus-visible::before{transform:scaleX(1)}
.menu{display:none}
@media(max-width:759px){
  .mastnav{display:none}
  .menu{display:block;position:relative}
  .menu summary{list-style:none;cursor:pointer;font-size:var(--t-caption);font-weight:500;color:var(--curtain-ink);min-height:44px;display:inline-flex;align-items:center;padding:0 var(--s3);border:1px solid var(--curtain-muted);border-radius:var(--r-m)}
  .menu summary::-webkit-details-marker{display:none}
  .menu[open] summary{background:var(--curtain-ink);color:var(--curtain)}
  .menu .mastnav{display:flex;flex-direction:column;align-items:stretch;position:absolute;right:0;top:calc(100% + 8px);min-width:220px;background:var(--curtain);border:1px solid var(--curtain-rule);border-radius:var(--r-m);padding:var(--s2);z-index:5;box-shadow:var(--shadow-soft)}
  .menu .mastnav a{min-height:48px}
  .masthead .menu .mastnav a[href$="/today"]{margin:var(--s2) 0 0}
}

/* ---- the cover: the home page's opening, on the curtain ---- */
.cover{background:var(--curtain);color:var(--curtain-ink);padding:clamp(40px,7vw,96px) 0 clamp(40px,6vw,80px);border-top:1px solid var(--curtain-rule)}
.cover-line{font-family:var(--display);font-variation-settings:var(--display-axes);font-size:var(--t-cover);line-height:.98;font-weight:500;letter-spacing:-.025em;margin:0 0 var(--s5);max-width:14ch;text-indent:-.04em}
.cover-lede{font-family:var(--serif);font-size:clamp(18px,1.5vw,21px);line-height:1.55;max-width:46ch;margin:0 0 var(--s6);color:var(--curtain-ink)}
.cover-lede .num{font-size:.92em}
.cover .actions{margin:0}
.cover.close{margin-top:var(--section);padding:clamp(48px,7vw,96px) 0}
.cover.close .cover-line{font-size:clamp(32px,5vw,64px);max-width:16ch}
.cover-folio{display:flex;flex-wrap:wrap;gap:var(--s2) var(--s5);margin:var(--s8) 0 0;padding-top:var(--s4);border-top:1px solid var(--curtain-rule);font-family:var(--mono);font-size:var(--t-micro);color:var(--curtain-muted);letter-spacing:.02em}
.cover-folio b{color:var(--curtain-ink);font-weight:500}

/* ---- buttons: the fill posts from the left ---- */
.actions{display:flex;gap:var(--s3);flex-wrap:wrap;margin:var(--s5) 0 0}
.btn{position:relative;isolation:isolate;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 var(--s5);border-radius:var(--r-m);font-family:var(--ui);font-size:var(--t-ui);font-weight:600;text-decoration:none;border:1px solid var(--green);color:var(--green);background:var(--paper);transition:color var(--dur-slow) var(--ease-out),border-color var(--dur-slow) var(--ease-out)}
.btn::before{content:'';position:absolute;inset:0;background:var(--green-tint);transform:scaleX(0);transform-origin:left;transition:transform var(--dur-slow) var(--ease-out);z-index:-1}
.btn:hover::before,.btn:focus-visible::before{transform:scaleX(1)}
.btn:hover{color:var(--green-hover)}
.btn:active{transform:scale(.985)}
.btn.primary{background:var(--green);color:var(--paper);border-color:var(--green)}
.btn.primary::before{background:var(--green-hover)}
.btn.primary:hover,.btn.primary:focus-visible{color:var(--paper)}
.btn.quiet{border-color:var(--rule-strong);color:var(--ink)}
.btn.quiet::before{background:var(--wash)}
.btn.quiet:hover{color:var(--ink)}
.on-curtain .btn{background:transparent;color:var(--curtain-ink);border-color:var(--curtain-muted)}
.on-curtain .btn::before{background:var(--curtain-ink)}
.on-curtain .btn:hover,.on-curtain .btn:focus-visible{color:var(--curtain);border-color:var(--curtain-ink)}
.on-curtain .btn.primary{background:var(--curtain-ink);color:var(--curtain);border-color:var(--curtain-ink)}
.on-curtain .btn.primary::before{background:var(--marker-tint)}
.on-curtain .btn.primary:hover,.on-curtain .btn.primary:focus-visible{color:var(--curtain)}

/* ---- sections and headings ---- */
section{padding:var(--section) 0}
section.tight{padding:calc(var(--section) * .66) 0}
section.flush{padding-top:0}
.folio{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s4);border-bottom:1px solid var(--ink);padding-bottom:var(--s2);margin:0 0 var(--s5)}
.folio.major{border-bottom-width:2px}
.folio-title{font-family:var(--display);font-variation-settings:var(--display-axes);font-size:var(--t-h2);font-weight:600;line-height:var(--lh-tight);letter-spacing:-.01em;margin:0}
.folio-ref{font-family:var(--mono);font-size:var(--t-micro);color:var(--slate);letter-spacing:.02em;white-space:nowrap;font-variant-numeric:tabular-nums lining-nums}
.eyebrow{font-family:var(--ui);font-size:var(--t-micro);font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--slate);margin:0 0 var(--s2)}
h1{font-family:var(--display);font-variation-settings:var(--display-axes);font-size:var(--t-h1);line-height:1.08;font-weight:600;margin:0 0 var(--s4);letter-spacing:-.015em;text-indent:-.03em;max-width:22ch}
h1.folio-title{font-size:var(--t-h1);max-width:none;text-indent:0}
.lede{font-family:var(--serif);font-size:var(--t-read);line-height:var(--lh-read);max-width:var(--measure);margin:0 0 var(--s5);color:var(--ink)}
.lede .num{font-size:.94em}
.hero{padding:clamp(32px,5vw,64px) 0 var(--s5)}
.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s4);flex-wrap:wrap;margin:0 0 var(--s5)}
.section-head h2{font-family:var(--display);font-variation-settings:var(--display-axes);font-size:var(--t-h2);font-weight:600;line-height:var(--lh-tight);letter-spacing:-.01em;margin:0;max-width:24ch}
.section-head .ref{font-family:var(--mono);font-size:var(--t-micro);color:var(--slate);letter-spacing:.02em}

/* ---- the folio line on a reading page: facts in a row ---- */
.folioline{display:flex;flex-wrap:wrap;gap:var(--s1) var(--s4);align-items:baseline;margin:0 0 var(--s3);font-family:var(--mono);font-size:var(--t-micro);color:var(--slate);letter-spacing:.02em;text-transform:uppercase}
.folioline b{color:var(--ink);font-weight:500}
.folioline .free{color:var(--green)}
.notice{font-family:var(--ui);font-size:var(--t-caption);color:var(--slate);margin:var(--s4) 0 0;max-width:var(--measure)}
.notice strong{color:var(--ink);font-weight:600}
.notice a{color:var(--slate)}

/* ---- the currency toggle ---- */
.fxbar{display:flex;align-items:center;gap:var(--s4);flex-wrap:wrap;margin:0 0 var(--s4)}
.fxlabel{font-size:var(--t-micro);font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--slate)}
.fxtoggle{display:inline-flex;border:1px solid var(--ink);border-radius:var(--radius);overflow:hidden}
.fxtoggle button{font-family:var(--ui);font-size:var(--t-caption);font-weight:500;color:var(--slate);background:var(--paper);border:0;padding:0 var(--s4);min-height:44px;cursor:pointer;transition:background-color var(--dur) var(--ease-out),color var(--dur) var(--ease-out)}
.fxtoggle button+button{border-left:1px solid var(--ink)}
.fxtoggle button:hover{background:var(--wash);color:var(--ink)}
.fxtoggle button[aria-pressed=true]{background:var(--ink);color:var(--paper)}

/* ---- the ledger: one sale through three statements ---- */
.ledger{border-top:2px solid var(--ink);padding-top:var(--s4)}
.premise{font-family:var(--serif);font-size:var(--t-lead);line-height:var(--lh-read);color:var(--ink);max-width:var(--measure);margin:0 0 var(--s4)}
.triptych{margin-top:28px}
.triptych{position:relative}
.statements{display:grid;gap:var(--s4);grid-template-columns:1fr}
@media(min-width:860px){.statements{grid-template-columns:repeat(3,1fr);gap:clamp(24px,4vw,56px)}}
.stmt{border-top:1px solid var(--ink);background:var(--paper);padding:var(--s3) 0 0}
.stmt h3{font-family:var(--ui);font-size:var(--t-micro);font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--ink);margin:0 0 2px}
.stmt .cap{font-size:var(--t-micro);color:var(--slate);margin:0 0 var(--s3)}
.stmt table{width:100%;border-collapse:collapse}
.stmt caption{text-align:left;font-size:var(--t-micro);color:var(--slate);padding-bottom:var(--s2)}
.stmt th{text-align:left;font-weight:400;font-size:var(--t-caption);color:var(--ink);padding:6px 0;vertical-align:top}
.stmt td{text-align:right;font-size:var(--t-caption);padding:6px 0 6px var(--s3);white-space:nowrap;vertical-align:top}
.stmt tr.total th,.stmt tr.total td{border-top:1px solid var(--rule);font-weight:500;padding-top:8px}
.stmt tr.grand th,.stmt tr.grand td{border-top:1px solid var(--ink);border-bottom:3px double var(--ink);font-weight:600;padding-top:8px;padding-bottom:8px}
.stmt .tie{display:block;font-size:var(--t-micro);color:var(--slate);font-weight:400;font-family:var(--ui);white-space:normal}
.stmt tr{transition:background-color var(--dur-slow) var(--ease-out)}
.stmt tr.lit th,.stmt tr.lit td{background:var(--marker-tint)}
.stmt tr.lit th{box-shadow:-6px 0 0 var(--marker-tint)}
.stmt tr.lit td{box-shadow:6px 0 0 var(--marker-tint)}
.stmt tr.was th,.stmt tr.was td{background:var(--wash)}
.stmt tr.was th{box-shadow:-6px 0 0 var(--wash)}
.stmt tr.was td{box-shadow:6px 0 0 var(--wash)}
.wires{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible;display:none}
@media(min-width:860px){.wires{display:block}}
.wires path{fill:none;stroke:var(--marker-line);stroke-width:1.5;stroke-linecap:round;opacity:0}
.wires path.drawn{opacity:1;stroke-dasharray:var(--len);stroke-dashoffset:0;transition:stroke-dashoffset var(--dur-tie) var(--ease-out),opacity 120ms linear}
.wires path.pre{opacity:1;stroke-dasharray:var(--len);stroke-dashoffset:var(--len)}
.wires circle{fill:var(--marker-line);opacity:0;transition:opacity 160ms linear}
.wires circle.drawn{opacity:1}
.wires path.pulse{animation:pulse 1.8s var(--ease-out)}
@keyframes pulse{0%{stroke:var(--marker-line);stroke-width:1.5}30%{stroke:var(--green);stroke-width:2.5}100%{stroke:var(--marker-line);stroke-width:1.5}}
.trailbar{display:flex;align-items:center;gap:var(--s4);flex-wrap:wrap;margin:var(--s5) 0 0}
.trail{display:flex;align-items:center;gap:0;margin:0;padding:0;list-style:none}
.trail li{display:flex;align-items:center}
.trail li+li::before{content:'';width:clamp(14px,2.4vw,28px);height:1px;background:var(--rule-strong)}
.trail button{width:28px;height:28px;border-radius:50%;border:1.5px solid var(--rule-strong);background:var(--paper);cursor:pointer;padding:0;display:grid;place-items:center;transition:border-color var(--dur) var(--ease-out),background-color var(--dur) var(--ease-out)}
.trail button::after{content:'';width:8px;height:8px;border-radius:50%;background:transparent;transition:background-color var(--dur) var(--ease-out)}
.trail button:hover{border-color:var(--ink)}
.trail button.done{border-color:var(--green)}
.trail button.done::after{background:var(--green)}
.trail button[aria-current=step]{border-color:var(--marker-line);background:var(--marker-tint)}
.trail button[aria-current=step]::after{background:var(--marker-ink)}
.replay{font-family:var(--ui);font-size:var(--t-caption);font-weight:500;color:var(--slate);background:none;border:0;border-bottom:1px solid transparent;padding:var(--s2) 0;cursor:pointer;min-height:44px}
.replay:hover{color:var(--ink);border-bottom-color:var(--ink)}
.check{min-height:3.6em;margin:0 0 var(--s4);font-family:var(--serif);font-size:var(--t-lead);line-height:var(--lh-read);max-width:var(--measure);color:var(--ink)}
.check b{display:block;font-family:var(--ui);font-size:var(--t-micro);letter-spacing:.09em;text-transform:uppercase;color:var(--marker-ink);font-weight:600;margin-bottom:2px}
.ties{margin:var(--s5) 0 0;padding:0;list-style:none;display:grid;gap:var(--s3)}
@media(min-width:860px){.ties{grid-template-columns:repeat(3,1fr)}}
.ties li{border-left:2px solid var(--rule-strong);padding:var(--s2) var(--s4);font-size:var(--t-caption);line-height:var(--lh-ui);color:var(--slate);transition:border-color var(--dur-slow) var(--ease-out),color var(--dur-slow) var(--ease-out)}
.ties li.lit{border-left-color:var(--green);color:var(--ink)}
.ties b{font-weight:600;display:block;margin-bottom:2px;font-size:var(--t-micro);letter-spacing:.06em;text-transform:uppercase;color:inherit}
.ties li.lit b{color:var(--green)}
.footnote{font-size:var(--t-micro);color:var(--slate);margin:var(--s4) 0 0;max-width:var(--measure)}

/* ---- the register strip: the course in figures, one ruled line ---- */
.strip{border-top:2px solid var(--ink);border-bottom:1px solid var(--rule);display:grid;grid-template-columns:repeat(2,1fr)}
@media(min-width:620px){.strip{grid-template-columns:repeat(4,1fr)}}
@media(min-width:1000px){.strip{grid-template-columns:repeat(7,1fr)}}
.strip div{padding:var(--s4) var(--s3) var(--s4) 0;border-bottom:1px solid var(--rule)}
@media(min-width:1000px){.strip div{border-bottom:0;border-right:1px solid var(--rule)}.strip div:last-child{border-right:0}}
.strip .k{display:block;font-size:var(--t-caption);color:var(--slate)}
.strip .v{display:block;font-family:var(--mono);font-size:clamp(28px,3vw,44px);font-weight:500;font-variant-numeric:tabular-nums lining-nums;line-height:1.1;margin-top:4px;letter-spacing:-.02em}
.strip-note{font-family:var(--serif);font-size:var(--t-lead);line-height:var(--lh-read);color:var(--ink);max-width:var(--measure);margin:var(--s5) 0 0}

/* ---- waypoints: how a module works, on one line ---- */
.waypoints{display:grid;gap:var(--s5);grid-template-columns:1fr;margin:0;padding:0;list-style:none;position:relative}
@media(min-width:760px){.waypoints{grid-template-columns:repeat(4,1fr);gap:var(--s5)}}
.waypoints li{position:relative;padding-top:var(--s5)}
.waypoints li::before{content:'';position:absolute;left:0;top:7px;width:14px;height:14px;border-radius:50%;border:2px solid var(--green);background:var(--paper)}
.waypoints li::after{content:'';position:absolute;left:14px;right:-24px;top:13px;height:1px;background:var(--rule-strong)}
.waypoints li:last-child::after{display:none}
@media(max-width:759px){.waypoints li::after{display:none}}
.waypoints h3{font-family:var(--ui);font-size:var(--t-lead);font-weight:600;margin:0 0 var(--s1)}
.waypoints .n{font-family:var(--mono);font-size:var(--t-micro);color:var(--slate);display:block;margin-bottom:var(--s1)}
.waypoints p{margin:0;font-size:var(--t-caption);color:var(--slate);line-height:var(--lh-ui)}

/* ---- the index: a ruled table ---- */
.ledger-table{width:100%;border-collapse:collapse;border-top:2px solid var(--ink)}
.ledger-table th,.ledger-table td{text-align:left;padding:var(--s3) var(--s3) var(--s3) 0;border-bottom:1px solid var(--rule);vertical-align:baseline;font-size:var(--t-caption)}
.ledger-table thead th{font-size:var(--t-micro);font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--slate);border-bottom:1px solid var(--ink)}
.ledger-table td.num,.ledger-table th.num{text-align:right;white-space:nowrap;padding-right:0}
.ledger-table td.num{font-size:var(--t-caption)}
.ledger-table .ttl{font-family:var(--serif);font-size:var(--t-lead);font-weight:500}
.ledger-table .ttl a{color:var(--ink);text-decoration:none;background-image:linear-gradient(var(--green),var(--green));background-size:0 1px;background-repeat:no-repeat;background-position:0 100%;transition:background-size var(--dur-slow) var(--ease-out),color var(--dur) var(--ease-out)}
.ledger-table .ttl a:hover,.ledger-table .ttl a:focus-visible{background-size:100% 1px;color:var(--green-hover)}
.ledger-table .ref{font-family:var(--mono);font-size:var(--t-micro);color:var(--slate);white-space:nowrap}
.ledger-table tr.total td{border-top:1px solid var(--ink);border-bottom:3px double var(--ink);font-weight:600}
.ledger-table tr.total .ttl{font-family:var(--ui);font-size:var(--t-caption);font-weight:600}
.ledger-table .hide-s{display:none}
@media(min-width:700px){.ledger-table .hide-s{display:table-cell}}

/* ---- link lists ---- */
.linklist{list-style:none;margin:0;padding:0;border-top:1px solid var(--ink)}
.linklist li{border-bottom:1px solid var(--rule)}
.linklist a{display:flex;gap:var(--s4);align-items:baseline;justify-content:space-between;padding:var(--s4) 0;min-height:48px;text-decoration:none;color:var(--ink);transition:padding-left var(--dur-slow) var(--ease-out)}
.linklist a:hover,.linklist a:focus-visible{padding-left:var(--s3)}
.linklist a:hover .ref,.linklist a:focus-visible .ref{color:var(--marker-ink)}
.linklist .ref{font-family:var(--mono);font-size:var(--t-micro);color:var(--slate);white-space:nowrap;transition:color var(--dur) var(--ease-out)}
.linklist .ttl{font-family:var(--serif);font-size:var(--t-lead);font-weight:500}
.linklist .sub{display:block;font-family:var(--ui);font-size:var(--t-caption);color:var(--slate);font-weight:400;margin-top:2px}
.prose{font-family:var(--serif);font-size:var(--t-read);line-height:var(--lh-read);max-width:var(--measure)}
.prose p{margin:0 0 var(--s4)}
.prose .num,.doc .num,.art .num,.termdef .num,.strip-note .num{font-size:.94em}
.grid2{display:grid;gap:var(--s5);grid-template-columns:1fr}
@media(min-width:800px){.grid2{grid-template-columns:1.1fr .9fr;gap:var(--s7)}}

/* ---- reading pages: contents beside the article from 1024px ---- */
.readgrid{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s6)}
.readgrid>*{min-width:0}
@media(min-width:1024px){.readgrid{grid-template-columns:260px minmax(0,1fr);gap:clamp(40px,5vw,80px);align-items:start}}
.railcol{position:relative}
@media(min-width:1024px){.railcol{position:sticky;top:var(--s5);max-height:calc(100vh - 48px);overflow:auto;padding-right:var(--s2)}}
/* With the rail's advert under it, a long contents list scrolls inside itself, so the 160x600 stays in
   the column's view (a module's hub lists twenty sections and more). */
@media(min-width:1024px){html.ads .railcol:has(.adbox) .toc{max-height:max(120px,calc(100vh - 760px));overflow:auto;overscroll-behavior:contain}}
.contents{position:relative}
.contents .eyebrow{margin-bottom:var(--s2)}
.toc-fold summary{list-style:none;cursor:default}
.toc-fold summary::-webkit-details-marker{display:none}
@media(max-width:1023px){
  .toc-fold summary{cursor:pointer;display:inline-flex;align-items:center;gap:var(--s2);min-height:44px;padding:0 var(--s3);border:1px solid var(--rule-strong);border-radius:var(--r-m);margin:0}
  .toc-fold summary::after{content:'';width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translateY(-2px)}
  .toc-fold[open] summary::after{transform:rotate(-135deg) translateY(-2px)}
  .toc-fold[open] summary{border-color:var(--ink)}
  .toc-fold .toc{margin-top:var(--s3)}
}
.toc{border-top:2px solid var(--ink);margin:0 0 var(--s4);padding:0;list-style:none}
.toc li{border-bottom:1px solid var(--rule)}
.toc a{display:block;padding:var(--s2) 0 var(--s2) var(--s3);min-height:40px;font-size:var(--t-caption);line-height:1.35;text-decoration:none;color:var(--ink);border-left:2px solid transparent;transition:border-color var(--dur) var(--ease-out),color var(--dur) var(--ease-out)}
.toc a:hover,.toc a:focus-visible{border-left-color:var(--green);color:var(--green-hover)}
@media(min-width:1024px){.toc a{min-height:36px}}
.progress{display:none}
@supports (animation-timeline: scroll()){
  @media(min-width:1024px){
    .progress{display:block;height:2px;background:var(--rule-strong);margin:0;overflow:hidden}
    .contents .toc{border-top:0}
    .progress i{display:block;height:100%;background:var(--green);transform-origin:left;transform:scaleX(0);animation:grow linear both;animation-timeline:scroll(root)}
  }
}
@keyframes grow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.doc,.art,.prose,.lede,.premise{overflow-wrap:anywhere}
.doc,.art{max-width:var(--measure);font-family:var(--serif);font-size:var(--t-read);line-height:var(--lh-read)}
.doc h2,.art h2{font-family:var(--display);font-variation-settings:var(--display-axes);font-size:var(--t-h2);font-weight:600;line-height:var(--lh-tight);letter-spacing:-.01em;margin:var(--s8) 0 var(--s4);padding-bottom:var(--s2);border-bottom:2px solid var(--ink);scroll-margin-top:var(--s5)}
.doc h2:first-child,.art h2:first-child{margin-top:0}
.doc h3,.art h3{font-family:var(--display);font-variation-settings:var(--display-axes);font-size:var(--t-title);font-weight:500;line-height:var(--lh-tight);letter-spacing:-.01em;margin:var(--s7) 0 var(--s3);padding-bottom:var(--s2);border-bottom:1px solid var(--rule);scroll-margin-top:var(--s5)}
.doc p,.art p{margin:0 0 var(--s4)}
.doc ul,.doc ol,.art ul,.art ol{margin:0 0 var(--s4);padding-left:var(--s5)}
.doc li,.art li{margin:0 0 var(--s2)}
.doc blockquote,.art blockquote{margin:0 0 var(--s4);padding:var(--s2) 0 var(--s2) var(--s4);border-left:2px solid var(--rule-strong);color:var(--slate)}
.doc code,.art code{font-family:var(--mono);font-size:.86em;background:var(--wash);padding:1px 4px;border-radius:2px}
.doc hr,.art hr{border:0;border-top:1px solid var(--rule);margin:var(--s6) 0}
.doc pre,.art pre{margin:0 0 var(--s5);padding:var(--s4) var(--s5);border-left:2px solid var(--ink);background:var(--wash);font-family:var(--mono);font-size:15px;line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere}
.doc pre.code,.art pre.code{white-space:pre;overflow-wrap:normal;overflow-x:auto}
.doc pre code,.art pre code{background:none;padding:0;border-radius:0;font-size:inherit}
.doc th,.doc td,.art th,.art td{overflow-wrap:normal}
.doc th.right,.art th.right{text-align:right}
.doc .tablewrap,.art .tablewrap{overflow-x:auto;margin:0 0 var(--s5)}
.doc table,.art table{border-collapse:collapse;font-family:var(--ui);font-size:var(--t-caption);line-height:var(--lh-ui);min-width:100%}
.doc th,.art th{text-align:left;font-weight:600;color:var(--ink);border-bottom:1px solid var(--ink);padding:var(--s2) var(--s3) var(--s2) 0;vertical-align:bottom}
.doc tbody th[scope=row],.art tbody th[scope=row]{font-weight:500;border-bottom:1px solid var(--rule);vertical-align:top}
.doc td,.art td{border-bottom:1px solid var(--rule);padding:var(--s2) var(--s3) var(--s2) 0;vertical-align:top;color:var(--ink)}
.doc td.num,.art td.num{text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums lining-nums;white-space:nowrap}
.doc a,.art a{text-decoration:underline}
.pager{display:grid;gap:var(--s3);grid-template-columns:1fr;margin:var(--s6) 0 0;border-top:1px solid var(--ink);padding-top:var(--s4)}
@media(min-width:700px){.pager{grid-template-columns:1fr 1fr}}
.pager a{display:block;text-decoration:none;color:var(--ink);padding:var(--s3) 0;min-height:48px}
.pager a span{display:block;font-family:var(--ui);font-size:var(--t-micro);letter-spacing:.09em;text-transform:uppercase;color:var(--slate);font-weight:600;margin-bottom:var(--s1)}
.pager a b{font-family:var(--serif);font-size:var(--t-lead);font-weight:500;background-image:linear-gradient(var(--green),var(--green));background-size:0 1px;background-repeat:no-repeat;background-position:0 100%;transition:background-size var(--dur-slow) var(--ease-out)}
.pager a:hover b,.pager a:focus-visible b{background-size:100% 1px}
.pager a.next{text-align:right}
.pager a.next b{background-position:100% 100%}

/* ---- the standing notice in the colophon, and the foot itself ---- */
.foot{border-top:2px solid var(--ink);margin-top:var(--section);padding:var(--s6) 0 var(--s8);color:var(--slate);font-size:var(--t-caption)}
.foot .container{display:grid;gap:var(--s5)}
@media(min-width:900px){.foot .container{grid-template-columns:1fr 1.4fr;gap:var(--s7)}}
.foot nav{display:grid;grid-template-columns:repeat(2,1fr);gap:0 var(--s4)}
.foot nav a{color:var(--ink);text-decoration:none;padding:var(--s2) 0;min-height:40px;display:inline-flex;align-items:center;background-image:linear-gradient(var(--ink),var(--ink));background-size:0 1px;background-repeat:no-repeat;background-position:0 calc(100% - 8px);transition:background-size var(--dur-slow) var(--ease-out)}
.foot nav a:hover,.foot nav a:focus-visible{background-size:100% 1px}
.foot p{margin:0 0 var(--s3);max-width:var(--measure)}
.foot p strong{color:var(--ink)}
.foot .mark{display:flex;align-items:center;gap:10px;font-family:var(--display);font-variation-settings:var(--display-axes);font-size:var(--t-lead);font-weight:600;color:var(--ink);margin:0 0 var(--s3)}

/* ---- breadcrumbs ---- */
.crumbs{font-size:var(--t-micro);color:var(--slate);padding:var(--s4) var(--gutter) 0}
.crumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:var(--s2);align-items:center}
.crumbs li::after{content:'/';margin-left:var(--s2);color:var(--rule-strong)}
.crumbs li:last-child::after{content:''}
.crumbs a{color:var(--slate);text-decoration:none;padding:2px 0}
.crumbs a:hover{color:var(--ink);text-decoration:underline}
.crumbs [aria-current]{color:var(--ink)}

/* ---- the A to Z index and dense link grids ---- */
.azbar{display:flex;flex-wrap:wrap;gap:var(--s1);margin:0 0 var(--s5);padding:0;list-style:none}
.azbar a{display:inline-flex;align-items:center;justify-content:center;min-width:40px;min-height:40px;border:1px solid var(--rule);border-radius:var(--radius);font-family:var(--mono);font-size:var(--t-caption);text-decoration:none;color:var(--ink);background:var(--card);transition:border-color var(--dur) var(--ease-out),background-color var(--dur) var(--ease-out)}
.azbar a:hover,.azbar a:focus-visible{background:var(--marker-tint);border-color:var(--marker-line);color:var(--ink)}
.azgroup{margin:0 0 var(--s6)}
.azgroup h2{font-family:var(--display);font-variation-settings:var(--display-axes);font-size:var(--t-title);font-weight:600;margin:0 0 var(--s3);padding-bottom:var(--s2);border-bottom:1px solid var(--ink);scroll-margin-top:var(--s5)}
.cols{columns:2;column-gap:var(--s5);margin:0;padding:0;list-style:none}
@media(min-width:760px){.cols{columns:3}}
@media(min-width:1200px){.cols{columns:4}}
.cols li{break-inside:avoid;margin:0 0 2px}
.cols a{display:block;padding:var(--s2) 0;min-height:36px;font-size:var(--t-caption);text-decoration:none;color:var(--ink);line-height:1.3}
.cols a:hover,.cols a:focus-visible{color:var(--green-hover);text-decoration:underline}
.phase{margin:0 0 var(--s7)}
.phase .section-head h2{max-width:none}
.phase h2{font-family:var(--display);font-variation-settings:var(--display-axes);font-size:var(--t-title);font-weight:600;margin:0 0 var(--s1);scroll-margin-top:var(--s5)}
.phase p.cap{font-size:var(--t-caption);color:var(--slate);margin:0 0 var(--s3);max-width:var(--measure)}

/* ---- a term page: the definition at its measure, the links beside it from 1024px ---- */
.termgrid{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s4)}
.termgrid>*{min-width:0}
@media(min-width:1024px){
  .termgrid{grid-template-columns:minmax(0,1fr) 300px;column-gap:clamp(40px,5vw,80px)}
  .termgrid .termdef{grid-column:1}
  .termgrid .rail{grid-column:2;grid-row:1 / span 3;position:sticky;top:var(--s5);align-self:start}
  .termgrid .adbox,.termgrid .actions,.termgrid .pager{grid-column:1}
}
.rail .more{margin-top:0;margin-bottom:var(--s5)}
.termdef{font-family:var(--serif);font-size:var(--t-read);line-height:var(--lh-read);max-width:var(--measure)}
.termdef p{margin:0 0 var(--s4)}
.termdef p:first-of-type{font-size:1.06em}
.chips{display:flex;flex-wrap:wrap;gap:var(--s2);margin:var(--s4) 0 0;padding:0;list-style:none}
.chips a{display:inline-flex;align-items:center;min-height:40px;padding:0 var(--s3);border:1px solid var(--rule);border-radius:var(--r-m);background:var(--card);font-size:var(--t-caption);text-decoration:none;color:var(--ink);transition:border-color var(--dur) var(--ease-out),background-color var(--dur) var(--ease-out)}
.chips a:hover,.chips a:focus-visible{border-color:var(--green);background:var(--green-tint);color:var(--green-hover)}
.aliases{font-size:var(--t-caption);color:var(--slate);margin:0 0 var(--s4)}
.more{border-top:1px solid var(--ink);padding:var(--s4) 0 0;margin:var(--s6) 0 0;max-width:var(--measure)}
.more h2{font-family:var(--ui);font-size:var(--t-micro);font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--slate);margin:0 0 var(--s2);border:0;padding:0}
.more p{font-family:var(--serif);font-size:var(--t-lead);line-height:var(--lh-read);margin:0 0 var(--s4)}

/* ---- advert slots: no room at all until the head script says a unit will be asked for (html.ads),
   then each slot holds its own unit's size from the first paint, so nothing moves when it arrives ---- */
.adbox{display:none}
html.ads .adbox{display:block;max-width:var(--measure);margin:var(--s6) 0;padding:var(--s2) 0 var(--s3);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);text-align:center}
html.ads .adbox[data-when="rail"],html.ads .adbox[data-when="wide"]{display:none}
@media(min-width:1024px){html.ads .adbox[data-when="rail"]{display:block;max-width:none;margin:var(--s5) 0 0;border-bottom:0}}
@media(min-width:1280px){html.ads .adbox[data-when="wide"]{display:block;width:max-content;max-width:none}}
html.ads .adbox[data-unfilled]{display:none}
.adbox-label{font-family:var(--ui);font-size:var(--t-micro);font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--slate);line-height:var(--lh-ui);margin:0 0 var(--s2)}
.adslot{margin:0 auto;overflow:hidden;max-width:100%}
.adslot iframe{display:block;border:0;max-width:100%}
.s160x300 .adslot{width:160px;height:300px}
.s160x600 .adslot{width:160px;height:600px}
.s300x250 .adslot{width:300px;height:250px}
.s300x600 .adslot{width:300px;height:600px}
.s320x50 .adslot{width:320px;height:50px}
.s320x100 .adslot{width:320px;height:100px}
.s336x280 .adslot{width:336px;height:280px}
.s468x60 .adslot{width:468px;height:60px}
.s728x90 .adslot{width:728px;height:90px}
.native .adslot{min-height:250px}
ins.adsbygoogle[data-ad-status="unfilled"]{display:none!important}

/* ---- a concept's page: the definition is the first thing read, and the page's first paint ---- */
.hero.concept h1{max-width:24ch}
.definition{font-family:var(--serif);font-size:clamp(19px,1.6vw,21px);line-height:1.6;max-width:var(--measure);margin:0 0 var(--s4);color:var(--ink);overflow-wrap:anywhere}
.definition .num{font-size:.94em}
.hero.concept .folioline{margin:0}
.folioline a{color:var(--green)}

/* ---- a concept's card on its module's hub, where its text sits in the course ---- */
.ccard{margin:var(--s5) 0;padding:var(--s4) var(--s5);border:1px solid var(--rule);border-left:3px solid var(--green);border-radius:var(--radius);background:var(--card)}
.doc .ccard h2,.doc .ccard h3,.doc .ccard h4{font-family:var(--display);font-variation-settings:var(--display-axes);font-size:var(--t-title);font-weight:600;line-height:var(--lh-tight);margin:0 0 var(--s2);padding:0;border:0}
.doc .ccard h2 a,.doc .ccard h3 a,.doc .ccard h4 a{color:var(--ink);text-decoration:none;background-image:linear-gradient(var(--green),var(--green));background-size:0 1px;background-repeat:no-repeat;background-position:0 100%;transition:background-size var(--dur-slow) var(--ease-out)}
.doc .ccard h2 a:hover,.doc .ccard h3 a:hover,.doc .ccard h4 a:hover,.doc .ccard a:focus-visible{background-size:100% 1px;color:var(--green-hover)}
.ccard p{margin:0 0 var(--s2)}
.ccard .ccard-m{font-family:var(--ui);font-size:var(--t-caption);color:var(--slate);margin:0}
.doc h4,.doc h5,.doc h6{font-family:var(--ui);font-size:var(--t-lead);font-weight:600;line-height:var(--lh-ui);margin:var(--s6) 0 var(--s3)}
/* A hub carries its module's whole text: the blocks past the first screen are laid out as they near
   the viewport, in the room their last size keeps, so a font that arrives late re-lays one screen and
   not the whole module. The advert slots keep their own reserved room. */
.doc.long>*:nth-child(n+16):not(.adbox){content-visibility:auto;contain-intrinsic-size:auto 180px}

/* ---- the course drawn as a path: the phases on the course page, a phase's modules on its own ---- */
.path{list-style:none;margin:0 0 var(--s6) 7px;padding:0;border-left:2px solid var(--rule-strong)}
.path>li{position:relative;padding:0 0 var(--s6) var(--s6)}
.path>li:last-child{padding-bottom:var(--s2)}
.path>li::before{content:'';position:absolute;left:-9px;top:4px;width:16px;height:16px;border-radius:50%;border:2px solid var(--green);background:var(--paper)}
.path .n{display:block;font-family:var(--mono);font-size:var(--t-micro);color:var(--slate);letter-spacing:.02em;text-transform:uppercase;margin:0 0 var(--s1)}
.path h2{font-family:var(--display);font-variation-settings:var(--display-axes);font-size:var(--t-title);font-weight:600;line-height:var(--lh-tight);margin:0 0 var(--s1);max-width:none}
.path h2 a{color:var(--ink);text-decoration:none;background-image:linear-gradient(var(--green),var(--green));background-size:0 1px;background-repeat:no-repeat;background-position:0 100%;transition:background-size var(--dur-slow) var(--ease-out)}
.path h2 a:hover,.path h2 a:focus-visible{background-size:100% 1px;color:var(--green-hover)}
.path p{margin:0 0 var(--s2);font-size:var(--t-caption);color:var(--slate)}
.path .cols{margin-top:var(--s2)}

/* ---- the 404 ---- */
.lost{padding:clamp(48px,10vw,120px) 0}
.lost h1{max-width:16ch}

/* ---- arrivals: the first screen settles once, on load; nothing else on these pages animates on its own.
   It moves and does not fade: text faded in from nothing makes its first visible frame the page's
   largest paint, after the first one, and Lighthouse then counts every font that arrived meanwhile ---- */
@keyframes settle{from{transform:translateY(8px)}to{transform:none}}
.settle>*{animation:settle var(--dur-slow) var(--ease-out) both}
.settle>*:nth-child(1){animation-delay:0ms}
.settle>*:nth-child(2){animation-delay:40ms}
.settle>*:nth-child(3){animation-delay:80ms}
.settle>*:nth-child(4){animation-delay:120ms}
.settle>*:nth-child(5){animation-delay:160ms}
.settle>*:nth-child(6){animation-delay:200ms}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .settle>*{opacity:1;transform:none}
  .wires path.pre{stroke-dashoffset:0}
}