@font-face{font-family:"Hanken Grotesk";font-style:normal;font-weight:300 600;font-display:swap;src:url(fonts/hanken-grotesk-latin-ext.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:"Hanken Grotesk";font-style:normal;font-weight:300 600;font-display:swap;src:url(fonts/hanken-grotesk-latin.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:400 500;font-display:swap;src:url(fonts/newsreader-latin-ext.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:normal;font-weight:400 500;font-display:swap;src:url(fonts/newsreader-latin.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:italic;font-weight:400;font-display:swap;src:url(fonts/newsreader-italic-latin-ext.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:400;font-display:swap;src:url(fonts/newsreader-italic-latin.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}

/* Layout: one left-aligned reading column with generous white space; the copper cross-section in the hero is the single loud element. */
:root{
  --paper:#FFFFFF; --wash:#F7F4F1; --hair:#E8E2DC; --ink:#1F1D1B; --soft:#6F6862;
  --copper:#A0521C; --copper-on:#FFFFFF; --copper-pale:#F4E8DE;
  --patina:#2D6E61; --slate:#4A5C72; --sea:#E8EDEE; --land:#D9D0C6; --land-has:#E2C3A5; --pos:#2E7347; --neg:#A3392C;
  --j1:#A3CABB; --j2:#79AF9D; --j3:#4F907B; --j4:#2F6E5B; --j5:#154539;
  --f-sans:"Hanken Grotesk",system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-serif:"Newsreader",Georgia,"Times New Roman",serif;
  --measure:66ch;
}
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]){
  --paper:#161311; --wash:#1F1A17; --hair:#302924; --ink:#EFE8E2; --soft:#A1968D;
  --copper:#DB9259; --copper-on:#1A100A; --copper-pale:#33241A;
  --patina:#6DBDA9; --slate:#94A9C4; --sea:#162024; --land:#3B332D; --land-has:#5E4029; --pos:#78C793; --neg:#EC8A7B; --j1:#36574D; --j2:#45705F; --j3:#588C79; --j4:#76AC98; --j5:#A7D8C6; color-scheme:dark }}
:root[data-theme="dark"]{
  --paper:#161311; --wash:#1F1A17; --hair:#302924; --ink:#EFE8E2; --soft:#A1968D;
  --copper:#DB9259; --copper-on:#1A100A; --copper-pale:#33241A;
  --patina:#6DBDA9; --slate:#94A9C4; --sea:#162024; --land:#3B332D; --land-has:#5E4029; --pos:#78C793; --neg:#EC8A7B; --j1:#36574D; --j2:#45705F; --j3:#588C79; --j4:#76AC98; --j5:#A7D8C6; color-scheme:dark }

*{box-sizing:border-box}
/* Fluid layout: the page fills any window. Gutters follow the window width, and past about 1440px the root size grows with it,
   so type and the spacing set in rem scale up in a large or full-screen window instead of leaving empty margins. */
html{font-size:clamp(16px,calc(9.6px + .42vw),24px)}
[hidden]{display:none!important}
:root{interpolate-size:allow-keywords}
a,button,.btn,select,input,.chip,.term,.opts button,.syll button,.seg button,.filters button,.subnav a,.toc a strong,.latest a strong{transition:color .18s ease,background-color .18s ease,border-color .18s ease,opacity .18s ease,box-shadow .18s ease,filter .18s ease}
header.top{view-transition-name:site-header}
html.tr-wait body{opacity:0}
::view-transition-group(site-header){animation-duration:.25s}
::view-transition-old(root){animation:vtOut .18s ease both}
::view-transition-new(root){animation:vtIn .38s cubic-bezier(.2,.7,.2,1) both}
@keyframes vtOut{to{opacity:0}}
@keyframes vtIn{from{opacity:0;transform:translateY(10px)}}
.enter{animation:vtIn .36s cubic-bezier(.2,.7,.2,1) both}
.soft{animation:softIn .3s ease both}
@keyframes softIn{from{opacity:0}}
details::details-content{height:0;overflow:clip;transition:height .35s cubic-bezier(.2,.7,.2,1),content-visibility .35s allow-discrete}
details[open]::details-content{height:auto}
body{background:var(--paper);color:var(--ink);font:400 1.125rem/1.68 var(--f-serif);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{color:var(--copper);text-decoration-thickness:1px;text-underline-offset:3px}
:focus-visible{outline:2px solid var(--copper);outline-offset:3px;border-radius:2px}
p,ul,ol,dl,figure{margin:0}
h1,h2,h3,h4{font-family:var(--f-sans);margin:0;text-wrap:balance;color:var(--ink)}
h1{font-weight:300;font-size:clamp(2.6rem,6.2vw,4.7rem);line-height:1.02;letter-spacing:-.028em;max-width:14ch}
h2{font-weight:300;font-size:clamp(1.9rem,3.6vw,2.7rem);line-height:1.1;letter-spacing:-.02em}
h3{font-weight:500;font-size:1.28rem;line-height:1.3;letter-spacing:-.005em}
h4{font-weight:600;font-size:1rem;line-height:1.35}
.num{font-family:var(--f-sans);font-variant-numeric:tabular-nums lining-nums}
.meta{font-family:var(--f-sans);font-size:.86rem;color:var(--soft);line-height:1.4}
.lead{font-size:1.28rem;line-height:1.55;color:var(--soft);max-width:52ch}
.wrap{margin:0 auto;padding-left:max(20px,4vw,env(safe-area-inset-left,0px));padding-right:max(20px,4vw,env(safe-area-inset-right,0px))}

/* Header */
header.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:30;background:var(--paper);border-bottom:1px solid var(--hair)}
.top .wrap{display:flex;align-items:center;gap:28px;padding-block:16px}
.mark{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);font:600 1.12rem var(--f-sans);letter-spacing:-.01em;white-space:nowrap}
.mark svg{width:26px;height:26px;display:block;flex:none}
/* Header: grouped menus on desktop, a full-screen sheet on phones */
.top .bar{gap:20px;padding-block:12px}
.mainnav{display:flex;align-items:center;gap:2px;margin-left:12px}
.navgrp{position:relative}
.navbtn,.navlink{all:unset;box-sizing:border-box;cursor:pointer;position:relative;display:inline-flex;align-items:center;gap:7px;padding:9px 12px;border-radius:6px;font:500 .95rem var(--f-sans);color:var(--soft);white-space:nowrap}
.navbtn:hover,.navlink:hover,.navgrp.open .navbtn{color:var(--ink);background:var(--wash)}
.navbtn.on,.navlink[aria-current="page"]{color:var(--ink)}
.navbtn.on::after,.navlink[aria-current="page"]::after{content:"";position:absolute;left:12px;right:12px;bottom:-13px;height:2px;background:var(--copper)}
.chev{width:10px;height:6px;flex:none;transition:transform .2s ease}
.navgrp.open .chev{transform:rotate(180deg)}
.menu{display:none;position:absolute;top:calc(100% + 12px);left:-8px;z-index:40;width:min(360px,calc(100vw - 40px));padding:18px;gap:4px 24px;background:var(--paper);border:1px solid var(--hair);border-top:2px solid var(--copper);border-radius:0 0 8px 8px;box-shadow:0 20px 40px -28px rgba(31,29,27,.45)}
.menu::before{content:"";position:absolute;left:0;right:0;top:-14px;height:14px}
.menu-2{width:min(660px,calc(100vw - 40px));grid-template-columns:repeat(2,minmax(0,1fr))}
.navgrp.open .menu{display:grid}
.menucol{display:grid;gap:2px;align-content:start}
.menuh{margin:2px 0 6px 12px;font:500 .8rem var(--f-sans);color:var(--soft)}
.menu a{display:grid;gap:3px;padding:10px 12px;border-left:2px solid transparent;border-radius:6px;text-decoration:none}
.menu a b{font:500 .98rem/1.3 var(--f-sans);color:var(--ink)}
.menu a span{font:400 .92rem/1.4 var(--f-serif);color:var(--soft)}
.menu a:hover{background:var(--wash)}
.menu a[aria-current="page"]{border-left-color:var(--copper);border-radius:0 6px 6px 0}
.util{display:flex;align-items:center;gap:4px;margin-left:auto}
.iconbtn{all:unset;box-sizing:border-box;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:36px;height:36px;padding:0 8px;border-radius:6px;font:500 .86rem var(--f-sans);color:var(--soft);white-space:nowrap}
.iconbtn:hover{color:var(--ink);background:var(--wash)}
.iconbtn svg{width:16px;height:16px;flex:none}
.iconbtn .lg{display:none}
.iconbtn .sm{display:inline-flex;align-items:center}
.util .searchbtn{border:1px solid var(--hair);padding:0 8px 0 10px;margin-right:4px}
.premcta{display:inline-flex;align-items:center;height:34px;padding:0 14px;margin-left:6px;border-radius:6px;background:var(--copper);color:var(--copper-on);font:500 .9rem var(--f-sans);text-decoration:none;white-space:nowrap}
.premcta:hover{filter:brightness(1.08)}
.navbtn:focus-visible,.navlink:focus-visible,.iconbtn:focus-visible,.premcta:focus-visible,.menu a:focus-visible,.subnav a:focus-visible{outline:2px solid var(--copper);outline-offset:2px}
.menubtn .i-close,.menubtn,.sheet-only{display:none}
header.top.navopen .menubtn .i-open{display:none}
header.top.navopen .menubtn .i-close{display:block}
@media (max-width:960px){
  .util .searchbtn{border:0;margin:0}
  .searchbtn .lbl,.searchbtn kbd,.util .premcta{display:none}
  .menubtn{display:inline-flex}
  .mainnav{display:none;position:fixed;left:0;right:0;top:var(--hdr,62px);bottom:0;z-index:35;margin:0;flex-direction:column;align-items:stretch;gap:26px;overflow-y:auto;overscroll-behavior:contain;padding:22px max(20px,env(safe-area-inset-left,0px)) calc(40px + env(safe-area-inset-bottom,0px));background:var(--paper);border-top:1px solid var(--hair)}
  header.top.navopen .mainnav{display:flex}
  .mainnav>*{flex-shrink:0}
  .navgrp .navbtn{pointer-events:none;padding:0 0 4px;background:none;font:500 1.15rem var(--f-sans);color:var(--ink)}
  .chev,.navbtn.on::after,.navlink[aria-current="page"]::after,.menu::before{display:none}
  .menu,.menu-2{display:grid;position:static;width:auto;padding:0;border:0;box-shadow:none;grid-template-columns:minmax(0,1fr);gap:2px}
  .menuh{margin:14px 0 4px 12px}
  .navlink{padding:0;font:500 1.15rem var(--f-sans);color:var(--ink)}
  .sheet-only{display:inline-flex;align-self:flex-start;margin:0}
  body.navlock{overflow:hidden}
}
/* Small phones: the theme switch moves to My account, so the header keeps its five buttons on one line */
@media (max-width:480px){.util:has(.searchbtn) #themeBtn{display:none}}
.theme{font:500 .86rem var(--f-sans);color:var(--soft);background:none;border:0;cursor:pointer;padding:4px 0;white-space:nowrap}
.theme:hover{color:var(--ink)}
.theme .sm{display:none}

main{padding-block:56px 96px}
.view{display:grid;gap:88px}
.head{display:grid;gap:14px;max-width:var(--measure)}
.head p{color:var(--soft)}
.btn{display:inline-flex;align-items:center;font:500 .98rem var(--f-sans);padding:12px 20px;border-radius:3px;background:var(--copper);color:var(--copper-on);border:1px solid var(--copper);text-decoration:none;cursor:pointer}
.btn:hover{filter:brightness(1.08)}
.btn.line{background:transparent;color:var(--ink);border-color:var(--hair)}
.btn.line:hover{border-color:var(--ink);filter:none}
.btn.sm{padding:8px 14px;font-size:.88rem}
.textbtn{font:500 .95rem var(--f-sans);color:var(--copper);background:none;border:0;padding:0;cursor:pointer;text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}

/* Home */
.hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:56px;align-items:center}
.hero .lead{margin-top:28px}
.hero .ctas{display:flex;gap:22px;align-items:center;flex-wrap:wrap;margin-top:36px}
.section-art{width:100%;height:auto;display:block}
/* Home: the living mine. The drawing shows until the 3D scene has loaded, and stays where WebGL is missing. */
@media (min-width:961px){.hero-mine{grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:44px}}
.minestage{position:relative;overflow:hidden}
.hero-mine h1{font-size:clamp(2.4rem,4.3vw,4.2rem);max-width:17ch}
.minekick{margin:0 0 10px;text-align:center;font:400 .9rem/1.4 var(--f-sans);color:var(--soft)}
.home-world{position:relative;aspect-ratio:10/7}
/* Home: practice with one real question, the week in mining, and what is free */
.hp-practice{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:clamp(32px,4.5vw,80px);align-items:start}
.hp-practice .ivcard{width:auto}
.hq .ivq{font-size:clamp(1.2rem,.95rem + .7vw,1.55rem)}
.hq .iva p{font:400 1.02rem/1.6 var(--f-serif);color:var(--ink);max-width:62ch}
.hq-acts{display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px}
.hp-tools{list-style:none;margin:0;padding:0;display:grid}
.hp-tools a{display:grid;gap:4px;padding:18px 0;border-top:1px solid var(--hair);text-decoration:none;color:var(--ink)}
.hp-tools li:last-child a{border-bottom:1px solid var(--hair)}
.hp-tools strong{font:500 1.12rem/1.3 var(--f-sans)}
.hp-tools span{font:400 1rem/1.5 var(--f-serif);color:var(--soft)}
.hp-tools a:hover strong{color:var(--copper)}
.hp-tools a:focus-visible,.hp-links a:focus-visible{outline:2px solid var(--copper);outline-offset:3px}
#v-home .mkt{display:grid}
.hp-links{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px 30px}
.hp-close{gap:18px;padding-top:34px;border-top:1px solid var(--hair)}
.hp-close p{max-width:62ch;color:var(--soft)}
.hp-close .ctas{display:flex;flex-wrap:wrap;align-items:center;gap:14px 24px;margin-top:6px}
@media (max-width:960px){.hp-practice{grid-template-columns:minmax(0,1fr)}}
.hero-path{display:grid;gap:10px;margin-top:30px;max-width:30rem}
.hero-path .core .bar{height:14px}
.hero-path .core small{display:none}
.minestage.live .section-art{display:none}
.minehud{display:flex;justify-content:center;flex-wrap:wrap;gap:4px 32px;margin-bottom:4px;text-align:center;font:400 .74rem/1.25 var(--f-sans);color:var(--soft)}
.minehud b{display:block;font:500 1.05rem/1.25 var(--f-sans);color:var(--ink);font-variant-numeric:tabular-nums}
.minesteps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:12px}
.mstep{text-align:left;border:1px solid var(--hair);background:var(--paper);border-radius:10px;padding:8px 10px;font:400 .74rem/1.3 var(--f-sans);color:var(--soft);cursor:pointer}
.mstep b{display:block;margin-top:2px;font:500 .84rem/1.25 var(--f-sans);color:var(--ink)}
.mstep[aria-pressed="true"]{border-color:var(--copper);box-shadow:inset 0 -2px 0 var(--copper)}
.minecap{margin-top:10px;font:400 .88rem/1.5 var(--f-sans);color:var(--soft)}
.mpop{position:absolute;transform:translate(-50%,-100%);font:500 .72rem/1 var(--f-sans);color:var(--copper);background:var(--paper);border:1px solid var(--copper);border-radius:6px;padding:4px 7px;white-space:nowrap;pointer-events:none;animation:mpop 3.6s ease-out infinite}
@keyframes mpop{0%{opacity:0;margin-top:6px}15%{opacity:1}70%{opacity:1;margin-top:-6px}100%{opacity:0;margin-top:-16px}}
@media (max-width:600px){.minesteps{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (prefers-reduced-motion:reduce){.mpop{animation:none}}
/* The path. One idea carries it: the course is a drill core read from the surface down, 30 intervals in three parts
   (15 lectures, 10 mining chapters, 5 takeovers). Done intervals turn patina, the next one copper, the rest stay bare.
   The same core shows in the menu (a thin gauge), on the Path page (the log), beside each chapter (the rail) and on the home page. */
.pathlink .pgauge{display:block;width:28px;height:3px;border-radius:2px;background:var(--hair);overflow:hidden}
.pathlink .pgauge i{display:block;height:100%;width:0;background:var(--patina);transition:width .4s ease}
.navlink.on{color:var(--ink)}
.navlink.on::after{content:"";position:absolute;left:12px;right:12px;bottom:-13px;height:2px;background:var(--copper)}
.skiplink{position:absolute;left:12px;top:-80px;z-index:60;padding:10px 14px;border-radius:6px;background:var(--ink);color:var(--paper);font:500 .9rem var(--f-sans);text-decoration:none}
.skiplink:focus{top:12px}
main:focus{outline:none}
.dchev{width:10px;height:6px;flex:none;color:var(--soft);transition:transform .2s ease}
details[open]>summary .dchev{transform:rotate(180deg)}
.lk{width:.8em;height:.9em;vertical-align:-.08em;margin-left:.35em;color:var(--soft)}
.kicker{font:500 .92rem var(--f-sans);color:var(--copper)}
article.mod .kicker+h2{margin-top:-14px}

/* Path page: the world on the left, kept in view; the log on the right. */
.ph-hub{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(40px,5vw,104px);align-items:start}
.ph-world{position:sticky;top:calc(env(safe-area-inset-top,0px) + 84px);display:grid;gap:18px;min-width:0}
.ph-world h2{font-size:clamp(2.2rem,4.4vw,3.6rem)}
.ph-world .lead{max-width:44ch}
.ph-resume{display:flex;flex-wrap:wrap;align-items:center;gap:12px 22px}
.ph-resume .meta{flex-basis:100%;order:2}
.ph-resume .textbtn{order:3}
.ph-acct{order:4;flex-basis:100%;max-width:52ch;font:400 .92rem/1.5 var(--f-sans);color:var(--soft)}
.ph-stage{position:relative;height:clamp(300px,30vw,640px);margin-top:4px}
.ph-stage.flat{display:none}
.ph-figs dl{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px 18px;margin:0;padding-top:14px;border-top:1px solid var(--hair)}
.ph-figs dt,.chb-figs dt{font:400 .8rem/1.3 var(--f-sans);color:var(--soft)}
.ph-figs dd,.chb-figs dd{margin:2px 0 0;font:500 1.12rem/1.3 var(--f-sans);color:var(--ink);font-variant-numeric:tabular-nums}
.ph-figs .meta{margin-top:8px}
.ph-log{display:grid;gap:22px;min-width:0}
.ph-loghead{display:grid;gap:6px}
.core{display:grid;grid-template-columns:15fr 10fr 5fr;gap:10px}
.core>div{display:grid;gap:8px;min-width:0}
.core .bar{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:2px;height:30px}
.core .bar i,.ph-list .cell,.rl-part .cell{background:var(--hair);border-radius:2px}
.core .bar i.done,.ph-list .done .cell,.rl-part a.done .cell{background:var(--patina)}
.core .bar i.cur,.ph-list .cur .cell,.rl-part a[aria-current="page"] .cell{background:var(--copper)}
.core small{font:400 .8rem/1.3 var(--f-sans);color:var(--soft)}
.ph-part{border-top:1px solid var(--hair)}
.ph-part summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:4px 14px;padding:18px 0}
.ph-part summary::-webkit-details-marker,.rl summary::-webkit-details-marker{display:none}
.ph-part summary b{font:500 1.2rem var(--f-sans);color:var(--ink)}
.ph-part summary .c{font:500 .9rem var(--f-sans);color:var(--soft);font-variant-numeric:tabular-nums}
.ph-part summary .d{grid-column:1/-1;font:400 1rem/1.5 var(--f-serif);color:var(--soft)}
.ph-part summary:hover b{color:var(--copper)}
.ph-part summary:focus-visible,.rl summary:focus-visible,.ph-list a:focus-visible,.rl a:focus-visible{outline:2px solid var(--copper);outline-offset:2px}
.ph-list{list-style:none;margin:0;padding:0 0 22px;display:grid;gap:2px}
.ph-list a{display:grid;grid-template-columns:12px 2.2ch minmax(0,1fr) auto;gap:14px;align-items:baseline;text-decoration:none;color:var(--ink)}
.ph-list .cell{align-self:stretch}
.ph-list .n{font:400 .86rem var(--f-sans);color:var(--soft);font-variant-numeric:tabular-nums;text-align:right}
.ph-list .t{padding:9px 0;font:400 1.02rem/1.35 var(--f-sans)}
.ph-list .t small{display:block;margin-top:2px;font:400 .9rem/1.4 var(--f-serif);color:var(--soft)}
.ph-list .s{font:400 .84rem var(--f-sans);color:var(--soft);white-space:nowrap;font-variant-numeric:tabular-nums}
.ph-list .done .s{color:var(--patina)}
.ph-list .cur .s{color:var(--copper);font-weight:500}
.ph-list .cur .t{font-weight:500}
.ph-list a:hover .t{color:var(--copper)}

/* Contents rail beside a chapter */
.syll{max-height:calc(100vh - 110px);overflow-y:auto;scrollbar-width:thin;padding-right:6px}
.rl{display:grid}
.rl-sum{display:none}
.rl-top{font:500 .9rem var(--f-sans);color:var(--soft);text-decoration:none;padding:0 0 12px}
.rl-top:hover{color:var(--ink)}
.rl-part{border-top:1px solid var(--hair)}
.rl-part>summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:10px;padding:11px 0;font:500 .98rem var(--f-sans);color:var(--ink)}
.rl-part>summary .c{color:var(--soft);font-weight:400;font-variant-numeric:tabular-nums}
.rl-part ol{list-style:none;margin:0;padding:0 0 14px;display:grid;gap:2px}
.rl-part a{display:grid;grid-template-columns:5px 1.6em minmax(0,1fr);gap:10px;text-decoration:none;color:var(--soft);font:400 .93rem/1.35 var(--f-sans)}
.rl-part .cell{align-self:stretch}
.rl-part .n{padding:6px 0;font-variant-numeric:tabular-nums;text-align:right}
.rl-part .t{padding:6px 0}
.rl-part a:hover{color:var(--ink)}
.rl-part a[aria-current="page"]{color:var(--ink);font-weight:500}
#v-learn>.head,#v-course>.head{display:none}

/* The world at the top of a chapter, and where it comes down to when the learner acts */
.chbanner{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:22px;align-items:center}
.chb-stage{position:relative;height:clamp(210px,19vw,330px)}
.chb-side{display:grid;gap:8px;font:400 .92rem/1.5 var(--f-sans);color:var(--soft)}
.chb-side b{font-weight:500;color:var(--ink)}
.chb-side p{margin:0}
.chb-figs{display:flex;flex-wrap:wrap;gap:6px 22px;margin:4px 0 0}
.chb-figs dd{font-size:1rem}
.chbanner.grown{grid-template-columns:minmax(0,1fr)}
.chbanner.grown .chb-stage{height:clamp(320px,36vw,560px)}
.chbanner.grown .chb-side,.chbanner.flat .chb-stage{display:none}
.chbanner.flat{grid-template-columns:minmax(0,1fr)}
.mine-host{position:absolute;inset:0}
.pc-slot:empty{display:none}
.pc-slot{margin-top:-6px}

/* Home: the path in three parts, each bar cut into its chapters */
.homepath{list-style:none;margin:6px 0 0;padding:0;display:grid;grid-template-columns:15fr 10fr 5fr;gap:12px}
.homepath a{display:grid;gap:8px;align-content:start;height:100%;text-decoration:none;color:var(--ink)}
.homepath a::before{content:"";height:12px;margin-bottom:10px;--n:15;background:repeating-linear-gradient(90deg,var(--c,var(--copper)) 0 calc(100% / var(--n) - 2px),transparent 0 calc(100% / var(--n)))}
.homepath .hp-a a::before{--c:var(--slate)}
.homepath .hp-b a::before{--n:10}
.homepath .hp-c a::before{--n:5;--c:var(--patina)}
.homepath strong{font:500 1.15rem/1.3 var(--f-sans)}
.homepath span{font:400 1rem/1.5 var(--f-serif);color:var(--soft);max-width:40ch}
.homepath em{font:500 .9rem var(--f-sans);font-style:normal;color:var(--copper)}
.homepath a:hover strong{color:var(--copper)}

@media (max-width:1180px){
  .ph-hub{grid-template-columns:minmax(0,1fr)}
  .ph-world{position:static}
  .ph-stage{height:clamp(280px,56vw,560px)}
}
@media (max-width:960px){
  .syll{max-height:none;overflow:visible;padding:0}
  .rl{border:1px solid var(--hair);border-radius:6px;padding:0 14px}
  .rl-sum{display:flex;align-items:center;justify-content:space-between;gap:12px;list-style:none;cursor:pointer;padding:13px 0;font:500 .95rem var(--f-sans);color:var(--ink)}
  .rl[open]>.rl-sum{border-bottom:1px solid var(--hair);margin-bottom:12px}
  .navlink.on::after{display:none}
  .homepath{grid-template-columns:minmax(0,1fr);gap:26px}
  .homepath a::before{max-width:calc(var(--n) * 28px)}
}
@media (max-width:700px){
  .chbanner{grid-template-columns:minmax(0,1fr);gap:12px}
  .ph-figs dl{grid-template-columns:repeat(3,minmax(0,1fr))}
  .core{gap:6px}
  .core .bar{height:24px;gap:1px}
  .ph-list a{gap:10px}
}

/* Your mine: the failure scenes, the plaques and the decision at the end of chapters 1 to 3 */
.pc-ov{position:absolute;inset:0;background:rgba(22,19,17,.92);color:#EFE8E2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:24px;text-align:center;border-radius:8px;z-index:3;overflow:auto}
.pc-ov h3{font:500 1.2rem/1.3 var(--f-sans);color:#EFE8E2}
.pc-ov p{margin:0;font:400 1rem/1.6 var(--f-serif);max-width:34rem;color:#D8CFC7}
.pc-ov path.ln{stroke-dasharray:420;stroke-dashoffset:420;animation:pcDraw 1.4s ease-out forwards}
@keyframes pcDraw{to{stroke-dashoffset:0}}
.pc-ov .pc-stamp{font:500 .95rem var(--f-sans);border:1.5px solid #EC8A7B;color:#EC8A7B;padding:4px 12px;border-radius:6px;animation:pcStamp .5s .9s both}
@keyframes pcStamp{from{opacity:0;transform:scale(1.8)}to{opacity:1;transform:scale(1)}}
.pc-retry{font:500 .9rem var(--f-sans);background:#EFE8E2;color:#1F1D1B;border:0;border-radius:6px;padding:10px 16px;cursor:pointer}
.pc-retry:focus-visible,.pc-tb:focus-visible,.pc-opts button:focus-visible{outline:2px solid var(--copper);outline-offset:2px}
.pc-plaque{position:absolute;left:14px;bottom:14px;max-width:min(24rem,calc(100% - 28px));background:var(--paper);border:1px solid var(--copper);border-radius:8px;padding:12px 14px;font:400 .84rem/1.55 var(--f-sans);color:var(--soft);z-index:2;animation:pcRise .5s both}
.pc-plaque b{color:var(--ink);font-weight:500}
@keyframes pcRise{from{opacity:0;transform:translateY(8px)}}
.pc-tb{font:500 .82rem var(--f-sans);background:none;border:0;color:var(--copper);text-decoration:underline;cursor:pointer;padding:0;margin-top:6px}
.pc-task{margin:40px 0 8px;border:1.5px solid var(--copper);border-radius:8px;padding:20px 22px;max-width:var(--measure)}
.pc-k{margin:0;font:500 .9rem var(--f-sans);color:var(--copper)}
.pc-task h3{margin:6px 0 10px}
.pc-hint{font:400 .9rem/1.5 var(--f-sans);color:var(--soft);margin:6px 0}
.pc-opts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}
.pc-opts button{font:500 .95rem/1.35 var(--f-sans);text-align:left;padding:12px 14px;min-height:44px;border-radius:6px;border:1px solid var(--hair);background:var(--paper);color:var(--ink);cursor:pointer}
.pc-opts button:hover{border-color:var(--copper)}
.pc-opts button.no{border-color:var(--neg);color:var(--neg);text-decoration:line-through}
.pc-opts button.yes{border-color:var(--copper);background:var(--copper-pale);color:var(--copper)}
.pc-learned{margin-top:14px;background:var(--wash);border-radius:6px;padding:12px 14px;font:400 .95rem/1.6 var(--f-serif)}
.pc-learned b{font:500 .86rem var(--f-sans)}
@media (max-width:700px){.pc-opts{grid-template-columns:minmax(0,1fr)}}
@media (prefers-reduced-motion:reduce){.pc-plaque,.pc-ov .pc-stamp,.pc-ov path.ln{animation:none;stroke-dashoffset:0}}

/* Chapters as steps. One visual language: copper is you (your mine, your numbers), patina is right or done, the error colour is
   a mistake, slate is a reference. Wide screens: a thin core of steps on the left, the work in the middle, the mine fixed on the right. */
:root{--you:var(--copper);--okc:var(--patina);--errc:var(--neg);--refc:var(--slate)}
.sx-core,.sx-panel,article.mod .sx-track{display:none}
article.mod .sx-track,article.mod .sx-sum{padding-left:0;list-style:none}
.course.sx{grid-template-columns:84px minmax(0,46rem) minmax(0,1fr);gap:clamp(24px,3vw,56px);position:relative}
.course.sx .rail{display:none}
.course.sx.railopen .rail{display:block;position:absolute;left:0;top:0;z-index:25;width:min(320px,90vw);max-height:calc(100vh - 120px);overflow:auto;padding:14px 18px;background:var(--paper);border:1px solid var(--hair);border-radius:8px;box-shadow:0 20px 40px -24px rgba(31,29,27,.45)}
.course.sx .rail .rl-sum{display:none}
.course.sx .sx-core{display:grid;gap:10px;justify-items:start}
.sx-ck{font:500 .78rem var(--f-sans);color:var(--soft)}
.sx-core ol,.sx-track{list-style:none;margin:0;padding:0}
.sx-core ol{display:grid;gap:3px}
.sx-core button,.sx-track button{all:unset;box-sizing:border-box;cursor:pointer;display:grid;grid-template-columns:10px auto;align-items:center;gap:8px;font:500 .82rem var(--f-sans);color:var(--soft);font-variant-numeric:tabular-nums}
.sx-core button .cell,.sx-track button .cell{width:10px;height:34px;border-radius:2px;background:var(--hair)}
.sx-core button .t{display:none}
.sx-core button.done .cell,.sx-track button.done .cell{background:var(--okc)}
.sx-core button.cur .cell,.sx-track button.cur .cell{background:var(--you)}
.sx-core button.cur,.sx-track button.cur{color:var(--ink)}
.sx-core button:disabled,.sx-track button:disabled{cursor:default;opacity:.55}
.sx-core button:focus-visible,.sx-track button:focus-visible,.sx-chap:focus-visible{outline:2px solid var(--you);outline-offset:2px}
.sx-chap{all:unset;cursor:pointer;font:500 .78rem/1.3 var(--f-sans);color:var(--you);text-decoration:underline;text-underline-offset:3px}
.course.sx .sx-panel{display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:12px;position:sticky;top:calc(env(safe-area-inset-top,0px) + 84px);height:calc(100vh - 112px);min-width:0}
.sx-hud{display:flex;justify-content:center;flex-wrap:wrap;gap:4px 32px;text-align:center;font:400 .76rem/1.25 var(--f-sans);color:var(--soft)}
.sx-hud b{display:block;font:500 1.05rem/1.25 var(--f-sans);color:var(--ink);font-variant-numeric:tabular-nums}
.sx-stage{position:relative;min-height:0}
.sx-stage.flat{display:none}
.sx-labels{position:absolute;inset:0;pointer-events:none;z-index:3;overflow:hidden}
.sx-labels span{position:absolute;transform:translate(-50%,-115%);padding:2px 6px;border-radius:4px;background:var(--paper);border:1px solid var(--hair);font:500 .72rem var(--f-sans);color:var(--ink);white-space:nowrap}
.sx-labels span.z{transform:translate(-50%,-50%);width:24px;height:24px;padding:0;border-radius:50%;display:grid;place-items:center;border-color:var(--refc);color:var(--refc);font-size:.8rem}
.sx-obj{border-top:1px solid var(--hair);padding-top:12px;display:grid;gap:6px;font:400 .92rem/1.5 var(--f-sans);color:var(--soft)}
.sx-obj p{margin:0}
.sx-obj b{color:var(--ink);font-weight:500}
.sx-live b{color:var(--you)}
.sx-head{display:grid;gap:8px}
.sx-head .kicker+h2{margin-top:0}
.sx-step{display:grid;gap:18px;padding-top:6px;border-top:1px solid var(--hair)}
.sx-k{margin:14px 0 0;font:500 .9rem var(--f-sans);color:var(--you)}
.sx-step h3{font:500 1.5rem/1.25 var(--f-sans);letter-spacing:-.01em;margin-top:-10px}
.sx-body{display:grid;gap:12px}
.sx-body p{font:400 1.06rem/1.65 var(--f-serif);color:var(--ink);margin:0}
.sx-task{display:grid;gap:16px}
.sx-q{font:500 1.02rem/1.5 var(--f-sans);color:var(--ink);margin:0}
.sx-fields{display:grid;gap:10px}
.sx-field{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px 16px;font:400 .98rem/1.4 var(--f-sans);color:var(--ink)}
.sx-in{display:inline-flex;align-items:center;gap:8px}
.sx-in em{font:400 .9rem var(--f-sans);font-style:normal;color:var(--soft);min-width:2.6em}
.sx-field input,.sx-field select{font:500 1.05rem var(--f-sans);font-variant-numeric:tabular-nums;width:8.5rem;min-height:44px;padding:8px 10px;border:1px solid var(--hair);border-radius:6px;background:var(--paper);color:var(--ink);text-align:right}
.sx-field select{text-align:left;width:11rem}
.sx-field input:focus-visible,.sx-field select:focus-visible{outline:2px solid var(--you);outline-offset:1px}
.sx-field input.ok{border-color:var(--okc);box-shadow:inset 0 0 0 1px var(--okc)}
.sx-field input.no{border-color:var(--errc)}
.sx-acts{display:flex;flex-wrap:wrap;align-items:center;gap:12px 22px}
.sx-acts .textbtn:disabled{color:var(--soft);text-decoration:none;cursor:default}
.sx-hints{display:grid;gap:8px}
.sx-hints p,.sx-fb,.sx-note{margin:0;padding:10px 14px;border-left:3px solid var(--refc);background:var(--wash);font:400 1rem/1.6 var(--f-serif);color:var(--ink)}
.sx-hints b,.sx-fb b,.sx-note b{font:600 .9rem var(--f-sans)}
.sx-fb.ok{border-left-color:var(--okc)}
.sx-fb.no{border-left-color:var(--errc)}
.sx-fb.sol{border-left-color:var(--you)}
.sx-next{min-height:0}
.sx-ctl{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;font:500 .95rem var(--f-sans);color:var(--ink)}
.sx-ctl .seg{gap:18px}
.sx-ctl .seg button[aria-pressed="true"]{color:var(--ink);border-bottom-color:var(--you)}
.sx-ctl input[type=range]{flex:1;min-width:180px;accent-color:var(--you)}
.sx-ctl b{font-variant-numeric:tabular-nums;color:var(--you);min-width:5em}
.sx-chart{margin:0;display:grid;gap:6px}
.sx-chart figcaption{font:500 .95rem var(--f-sans);color:var(--ink)}
.sx-chart svg{width:100%;height:auto;display:block}
.sx-chart .ax{stroke:var(--hair);stroke-width:1}
.sx-chart .ref{stroke:var(--refc);stroke-dasharray:4 4;stroke-width:1}
.sx-chart .you{fill:none;stroke:var(--you);stroke-width:2.5}
.sx-chart .cur{stroke:var(--ink);stroke-width:1.5}
.sx-chart .lbl{font:400 11px var(--f-sans);fill:var(--soft)}
.sx-doc{background:var(--wash);border:1px solid var(--hair);border-radius:6px;padding:20px 24px;display:grid;gap:12px;font:400 1rem/1.6 var(--f-serif);color:var(--ink)}
.sx-doc p,.sx-doc h4{margin:0}
.sx-doc-k{font:500 .78rem var(--f-sans);color:var(--soft)}
.sx-doc h4{font:500 1.15rem/1.35 var(--f-sans)}
.sx-doc mark.an{background:none;color:inherit;border-bottom:2px dotted var(--refc);cursor:pointer}
.sx-doc mark.an sup{font:600 .66rem var(--f-sans);color:var(--refc);margin-left:2px}
.sx-doc mark.an.on,.sx-doc mark.an:focus-visible{background:var(--copper-pale);outline:none}
.sx-tbl{width:100%;border-collapse:collapse;font:400 .92rem/1.4 var(--f-sans);font-variant-numeric:tabular-nums}
.sx-tbl th{text-align:left;font-weight:500;color:var(--soft);border-bottom:1px solid var(--hair);padding:6px 8px}
.sx-tbl td{padding:6px 8px;border-bottom:1px solid var(--hair)}
.sx-tbl tr.sub td{color:var(--soft);font-style:italic}
.sx-pick{cursor:pointer}
.sx-pick:hover,.sx-pick:focus-visible{background:var(--copper-pale);outline:none}
.sx-pick.found{background:var(--copper-pale);box-shadow:inset 3px 0 0 var(--errc)}
.sx-radio{border:0;margin:0;padding:0;display:grid;gap:8px;font:400 .98rem/1.45 var(--f-sans);color:var(--ink)}
.sx-radio legend{font:500 1rem var(--f-sans);margin-bottom:6px}
.sx-radio label{display:flex;gap:10px;align-items:flex-start;min-height:32px}
.sx-radio input{accent-color:var(--you);margin-top:4px}
.sx-proud{font:400 1.1rem/1.6 var(--f-serif);color:var(--ink);margin:0}
.sx-sum{list-style:none;margin:0;padding:0;display:grid;border-top:1px solid var(--hair)}
.sx-sum li{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid var(--hair);font:400 .95rem/1.4 var(--f-sans);color:var(--soft)}
.sx-sum b{color:var(--ink);font-weight:500;text-align:right;font-variant-numeric:tabular-nums}
.sx-fiche{border-top:1px solid var(--hair);padding-top:14px}
/* Formula recall: pieces to put back in place, then the formula joins the notebook */
.sx-rec:empty{display:none}
.sx-recall{border:1px dashed var(--refc);border-radius:8px;padding:14px 16px;display:grid;gap:12px;background:var(--paper)}
.sx-recall.done{border-style:solid;border-color:var(--okc)}
.sx-recall.small{padding:8px 12px;gap:2px;border-style:solid;border-color:var(--hair)}
.sx-rk{margin:0;font:500 .82rem var(--f-sans);color:var(--refc)}
.sx-recall.done .sx-rk{color:var(--okc)}
.sx-recall.small .sx-rk{color:var(--soft)}
.sx-formula{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;min-height:48px;font:500 1.02rem var(--f-sans);color:var(--ink)}
.sx-formula .slot{all:unset;box-sizing:border-box;cursor:pointer;min-width:5.5em;min-height:40px;padding:8px 10px;border:1.5px dashed var(--hair);border-radius:6px;text-align:center;font:500 .92rem var(--f-sans);color:var(--soft)}
.sx-formula .slot.on{border-style:solid;border-color:var(--you);background:var(--copper-pale);color:var(--ink)}
.sx-tokens{display:flex;flex-wrap:wrap;gap:8px}
.sx-tokens button{all:unset;box-sizing:border-box;cursor:pointer;min-height:40px;padding:8px 14px;border:1px solid var(--hair);border-radius:20px;background:var(--wash);font:500 .9rem var(--f-sans);color:var(--ink)}
.sx-tokens button:hover{border-color:var(--you)}
.sx-tokens button:focus-visible,.sx-formula .slot:focus-visible{outline:2px solid var(--you);outline-offset:2px}
.sx-tex{overflow-x:auto;font-size:1.05rem}
.sx-nb{border-top:1px solid var(--hair);padding-top:8px;max-height:28vh;overflow:auto}
.sx-nb ul,.sx-nbl{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.sx-nb li,.sx-nbl li{display:grid;gap:2px;font:400 .82rem var(--f-sans);color:var(--soft);overflow-x:auto}
article.mod .sx-nbl{padding-left:0}
.pop{animation:sxPop .35s}
.sx-formula .slot.shake{animation:sxShake .35s}
/* Motion that answers what the learner does: the step arrives, a right answer settles, a wrong one shakes, the core fills. */
@keyframes sxIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes sxFade{from{opacity:0}to{opacity:1}}
@keyframes sxShake{0%,100%{transform:none}20%{transform:translateX(-6px)}40%{transform:translateX(5px)}60%{transform:translateX(-3px)}80%{transform:translateX(2px)}}
@keyframes sxPop{0%{transform:scale(1)}40%{transform:scale(1.06)}100%{transform:scale(1)}}
@keyframes sxFill{from{transform:scaleY(0)}to{transform:scaleY(1)}}
@keyframes sxPulse{0%{box-shadow:0 0 0 0 rgba(160,82,28,.45)}100%{box-shadow:0 0 0 14px rgba(160,82,28,0)}}
.sx-enter>*{animation:sxIn .42s cubic-bezier(.2,.7,.2,1) both}
.sx-enter>*:nth-child(2){animation-delay:.05s}
.sx-enter>*:nth-child(3){animation-delay:.1s}
.sx-enter>*:nth-child(4){animation-delay:.17s}
.sx-enter>*:nth-child(5){animation-delay:.24s}
.sx-field input.shake{animation:sxShake .35s}
.sx-field input.ok{animation:sxPop .35s}
.sx-fb.anim,.sx-note.anim,.sx-hints p:last-child{animation:sxIn .3s cubic-bezier(.2,.7,.2,1) both}
.sx-core button .cell,.sx-track button .cell{position:relative;overflow:hidden}
.sx-core button.done.just .cell,.sx-track button.done.just .cell{background:var(--hair)}
.sx-core button.just .cell::after,.sx-track button.just .cell::after{content:"";position:absolute;inset:0;background:var(--okc);transform-origin:top;animation:sxFill .7s cubic-bezier(.2,.7,.2,1) both}
.sx-next .btn{animation:sxIn .35s both,sxPulse 1.3s .45s 2}
.sx-labels span{animation:sxFade .5s .3s both}
.sx-hud b{transition:color .4s}
.sx-hud b.up{color:var(--you)}
.sx-proud{animation:sxIn .5s both}
.sx-sum li{animation:sxIn .4s both}
.sx-sum li:nth-child(2){animation-delay:.08s}
.sx-sum li:nth-child(3){animation-delay:.16s}
.sx-sum li:nth-child(4){animation-delay:.24s}
.sx-sum li:nth-child(5){animation-delay:.32s}
.sx-sum li:nth-child(6){animation-delay:.4s}
.sx-sum li:nth-child(7){animation-delay:.48s}
.sx-fiche>summary{cursor:pointer;font:500 1rem var(--f-sans);color:var(--you)}
.sx-fbody{display:grid;gap:22px;margin-top:18px}
@media (max-width:1279px){
  .course.sx{grid-template-columns:minmax(0,1fr) minmax(0,.85fr)}
  .course.sx .syll{display:none}
  .course.sx article.mod .sx-track{display:flex;flex-wrap:wrap;gap:4px}
  .sx-track button{grid-template-columns:auto;justify-items:center;gap:4px}
  .sx-track button .cell{width:30px;height:8px}
  .sx-track button .t{display:none}
}
@media (max-width:960px){
  .course.sx{grid-template-columns:minmax(0,1fr);gap:20px}
  .course.sx .sx-panel{position:static;height:auto;order:-1;grid-template-rows:auto 240px auto}
  .sx-field{grid-template-columns:minmax(0,1fr)}
  .sx-doc{padding:16px}
}

/* Mine exercises inside the modules, and the mine lab (#minelab, not linked) */
.mx{display:grid;gap:18px;padding:26px 0 8px;border-top:1px solid var(--hair);margin-top:10px}
.mx h3{margin:0}
.mx p{margin:0}
.mxk{font:500 .76rem/1 var(--f-sans);letter-spacing:.06em;text-transform:uppercase;color:var(--copper)}
.mxstage{position:relative;overflow:hidden;border:1px solid var(--hair);border-radius:6px;background:linear-gradient(180deg,var(--wash),var(--paper) 70%)}
.mxstage canvas{touch-action:manipulation}
.mpop.hole{animation:none;color:var(--ink);border-color:var(--hair);font-size:.62rem;padding:2px 4px;min-width:16px;text-align:center;border-radius:9px;opacity:.9}
.mread{position:absolute;transform:translate(14px,-140%);font:500 .72rem/1 var(--f-sans);background:var(--ink);color:var(--paper);padding:5px 7px;border-radius:4px;pointer-events:none;white-space:nowrap;font-variant-numeric:tabular-nums}
.mxbar{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center}
.mxbar label{display:inline-flex;gap:8px;align-items:center;font:400 .92rem var(--f-sans);cursor:pointer}
.mxbar input[type=checkbox]{accent-color:var(--copper);width:16px;height:16px}
.mxbar .ansrow input{width:8ch}
.mxfig{display:grid;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:14px 18px;margin:0}
.mxfig div{display:grid;gap:3px;align-content:start}
.mxfig dt{font:400 .78rem/1.3 var(--f-sans);color:var(--soft)}
.mxfig dd{margin:0;font:500 1.02rem/1.25 var(--f-sans);font-variant-numeric:tabular-nums}
.mxfig dd.neg{color:var(--neg)}
.mxfig dd.pos{color:var(--pos)}
.mxrange{display:grid;gap:6px}
.mxrange label{display:flex;justify-content:space-between;gap:12px;font:500 .95rem var(--f-sans)}
.mxrange output{font-variant-numeric:tabular-nums;color:var(--copper)}
.mxrange input{width:100%;accent-color:var(--copper)}
.mxlog{width:100%;border-collapse:collapse;font:400 .9rem/1.4 var(--f-sans);font-variant-numeric:tabular-nums}
.mxlog th{font-weight:500;color:var(--soft);text-align:left;padding:6px 10px 6px 0;border-bottom:1px solid var(--hair)}
.mxlog td{padding:7px 10px 7px 0;border-bottom:1px solid var(--hair);vertical-align:top}
.mxlog tr.ore td:first-child{color:var(--copper);font-weight:500}
.mxopts{display:flex;flex-wrap:wrap;gap:8px}
.mxopts button{font:400 .92rem var(--f-sans);color:var(--ink);background:var(--paper);border:1px solid var(--hair);border-radius:3px;padding:7px 12px;cursor:pointer}
.mxopts button:hover:not([disabled]){border-color:var(--ink)}
.mxopts button[aria-pressed="true"]{border-color:var(--copper);box-shadow:inset 0 -2px 0 var(--copper)}
.mxopts button.ok{border-color:var(--pos);background:color-mix(in srgb,var(--pos) 10%,var(--paper))}
.mxopts button.ko{border-color:var(--neg);text-decoration:line-through}
.mxcols{display:grid;gap:18px}
@media (min-width:720px){.mxcols{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
.mxlab{display:grid;gap:22px;max-width:980px}
.mxlab .mxstage{min-height:200px}
.toc{display:grid;border-top:1px solid var(--hair)}
.toc a{display:grid;grid-template-columns:200px minmax(0,1fr) 150px;gap:32px;align-items:baseline;padding-block:22px;border-bottom:1px solid var(--hair);text-decoration:none;color:var(--ink)}
.toc a strong{font:300 1.75rem/1.1 var(--f-sans);letter-spacing:-.015em}
.toc a span{color:var(--soft)}
.toc a em{font:500 .9rem var(--f-sans);font-style:normal;color:var(--copper);text-align:right;font-variant-numeric:tabular-nums}
.toc a:hover strong{color:var(--copper)}
.figs3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:48px}
.figs3 b{display:block;font:300 2.9rem/1 var(--f-sans);letter-spacing:-.02em;color:var(--copper);margin-bottom:14px}
.figs3 p{color:var(--soft);font-size:1rem}
.files{display:grid;border-top:1px solid var(--hair)}
.files details{border-bottom:1px solid var(--hair)}
.files summary{cursor:pointer;list-style:none;display:grid;grid-template-columns:150px minmax(0,1fr) 24px;gap:24px;align-items:baseline;padding-block:22px}
.files summary::-webkit-details-marker{display:none}
.files summary .x{width:14px;height:14px;position:relative;align-self:center}
.files summary .x::before,.files summary .x::after{content:"";position:absolute;background:var(--ink);left:0;top:6px;width:14px;height:1.5px;transition:transform .2s}
.files summary .x::after{transform:rotate(90deg)}
.files details[open] .x::after{transform:rotate(0)}
.files .body{display:grid;gap:14px;padding:0 0 28px 174px;max-width:calc(var(--measure) + 174px)}

/* Course */
.course{display:grid;grid-template-columns:270px minmax(0,1fr);gap:72px;align-items:start}
.syll{position:sticky;top:calc(env(safe-area-inset-top,0px) + 84px);display:grid;gap:22px}
.prog{display:grid;gap:8px}
.track{height:2px;background:var(--hair)}
.track i{display:block;height:2px;background:var(--copper);width:0;transition:width .4s}
article.mod{display:grid;gap:22px;max-width:var(--measure);min-width:0}
article.mod h2{margin-bottom:4px}
article.mod .lead{font-size:1.22rem}
article.mod h3{margin-top:26px}
article.mod ul,article.mod ol{padding-left:1.15em;display:grid;gap:8px}
article.mod li::marker{color:var(--copper)}
.steps{list-style:none;padding:0!important;counter-reset:st;gap:14px!important}
.steps li{counter-increment:st;display:grid;grid-template-columns:34px minmax(0,1fr);gap:10px}
.steps li::before{content:counter(st);font:400 1.05rem/1.68 var(--f-sans);color:var(--copper);font-variant-numeric:tabular-nums}
.f{font:400 .98rem/1.7 var(--f-sans);font-variant-numeric:tabular-nums;background:var(--wash);padding:16px 20px;border-radius:4px;white-space:pre-wrap;overflow-x:auto}
.eq{overflow-x:auto;overflow-y:hidden;padding:6px 0;font-size:1.05rem}
.eq mjx-container{margin:0!important}
.keep{display:grid;gap:10px;padding-top:22px;border-top:1px solid var(--hair)}
.keep h4{color:var(--copper)}
.note-box{background:var(--copper-pale);padding:18px 22px;border-radius:4px;font-size:1rem}
.note-box b{font-family:var(--f-sans);font-weight:600}
.tbl{overflow-x:auto}
table{border-collapse:collapse;width:100%;font-size:.97rem}
th,td{text-align:left;padding:11px 14px 11px 0;border-bottom:1px solid var(--hair);vertical-align:top}
th{font:600 .84rem var(--f-sans);color:var(--soft);border-bottom-color:var(--ink);white-space:nowrap}
td.r,th.r{text-align:right;font-family:var(--f-sans);font-variant-numeric:tabular-nums;white-space:nowrap;padding-right:0;padding-left:14px}
figure{display:grid;gap:12px}
figure .art{overflow-x:auto}
figure svg{width:100%;height:auto;display:block}
figure .art svg{min-width:480px}
figcaption{font-size:.93rem;color:var(--soft);font-style:italic}
.photo{margin:0;gap:10px}
.photo img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;background:var(--wash)}
.photo figcaption{display:grid;gap:3px;max-width:var(--measure);line-height:1.5}
.photo .credit{font:400 .8rem/1.45 var(--f-sans);color:var(--soft)}
.photo .credit a{color:inherit;text-decoration-color:var(--hair);text-underline-offset:2px}
.photo .credit a:hover{color:var(--ink)}
.photo-band img,.photo-era img{aspect-ratio:21/9}
.photo-era{grid-column:1/-1;margin-bottom:6px}
@media (max-width:960px){.photo-band img,.photo-era img{aspect-ratio:3/2}}
.mod-foot{display:flex;gap:16px;flex-wrap:wrap;align-items:center;padding-top:28px;border-top:1px solid var(--hair);margin-top:12px}

/* Tools */
.seg{display:flex;gap:28px;flex-wrap:wrap;border-bottom:1px solid var(--hair)}
.seg button{all:unset;cursor:pointer;font:500 1rem var(--f-sans);color:var(--soft);padding-bottom:12px;margin-bottom:-1px;border-bottom:1.5px solid transparent}
.seg button:hover{color:var(--ink)}
.seg button[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--copper)}
.seg button:focus-visible{outline:2px solid var(--copper)}
.tool{display:grid;grid-template-columns:330px minmax(0,1fr);gap:64px;align-items:start}
.inputs{display:grid;gap:30px}
.inputs fieldset{border:0;padding:0;margin:0;display:grid;gap:4px;min-width:0}
.inputs legend{font:600 .95rem var(--f-sans);margin-bottom:8px}
.fld{display:grid;grid-template-columns:minmax(0,1fr) 112px;gap:14px;align-items:end;padding-block:6px}
.fld label{font:400 .95rem/1.3 var(--f-sans)}
.fld label small{display:block;font-size:.8rem;color:var(--soft)}
.fld input,.fld select{font:400 1.02rem var(--f-sans);font-variant-numeric:tabular-nums;color:var(--ink);background:transparent;border:0;border-bottom:1px solid var(--hair);border-radius:0;padding:4px 0;width:100%;text-align:right}
.fld select{text-align:left}
.fld input:focus,.fld select:focus{outline:none;border-bottom-color:var(--copper)}
.out{display:grid;gap:44px;min-width:0}
.figs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:34px 28px}
.figs div{display:grid;gap:6px;align-content:start}
.figs span{font:400 .85rem/1.3 var(--f-sans);color:var(--soft)}
.figs b{font:300 1.85rem/1.05 var(--f-sans);letter-spacing:-.015em;font-variant-numeric:tabular-nums}
.figs b.neg{color:var(--neg)}
.figs .main b{color:var(--copper)}
td.neg{color:var(--neg)}
td.base{font-weight:600;background:var(--wash)}
.chart{overflow-x:auto}
.chart svg{min-width:540px;width:100%;height:auto;display:block}
.read{display:grid;gap:12px;max-width:var(--measure)}
.read p{color:var(--soft)}

/* Formulas */
.fgroup{display:grid;grid-template-columns:240px minmax(0,1fr);gap:48px;padding-top:30px;border-top:1px solid var(--hair)}
.fgroup > div{display:grid;gap:34px;min-width:0;align-content:start}
.frow{display:grid;gap:6px}
.frow h4{font-weight:500}
.frow p{font-size:.98rem;color:var(--soft)}

/* Deals */
.filters{display:flex;gap:22px;flex-wrap:wrap}
.filters button{all:unset;cursor:pointer;font:500 .95rem var(--f-sans);color:var(--soft);padding-bottom:4px;border-bottom:1.5px solid transparent}
.filters button[aria-pressed="true"]{color:var(--ink);border-bottom-color:var(--copper)}
.filters button:focus-visible{outline:2px solid var(--copper)}
.deal td strong{font:500 1rem var(--f-sans);display:block}
.deal .lesson{color:var(--soft);font-size:.95rem;display:block;min-width:250px}
.deal .val{font-family:var(--f-sans);font-variant-numeric:tabular-nums;font-size:.95rem;min-width:150px}
.tag{font:500 .85rem var(--f-sans);white-space:nowrap;display:inline-flex;align-items:center;gap:6px}
.tag i{width:8px;height:8px;border-radius:50%;display:inline-block}

/* News */
.newsbar{display:flex;gap:22px;flex-wrap:wrap;align-items:baseline;justify-content:space-between}
.feed{display:grid;border-top:1px solid var(--hair)}
.item{display:grid;grid-template-columns:150px minmax(0,1fr);gap:32px;padding-block:26px;border-bottom:1px solid var(--hair)}
.item time{font:400 .9rem/1.5 var(--f-sans);color:var(--soft);font-variant-numeric:tabular-nums}
.item .body{display:grid;gap:10px;max-width:var(--measure)}
.item h3{font-size:1.24rem}
.item p{color:var(--ink)}
.item .why{color:var(--soft);font-size:.98rem}
.item .why b{font-family:var(--f-sans);font-weight:600;color:var(--ink)}
.item .foot{display:flex;gap:8px 20px;flex-wrap:wrap;font:400 .88rem var(--f-sans);color:var(--soft);align-items:center}
/* News photos illustrate the subject (the metal, the mine, the exchange), not the event itself. */
.item.has-img{grid-template-columns:150px minmax(0,1fr) 200px}
.item.has-img .body{grid-column:2;grid-row:1}
.item.has-img .thumb{grid-column:3;grid-row:1}
.thumb{margin:0}
.thumb img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;background:var(--wash)}
.ncredit{font:400 .8rem/1.45 var(--f-sans);color:var(--soft)}
.ncredit a{color:inherit;text-decoration-color:var(--hair);text-underline-offset:2px}
.ncredit a:hover{color:var(--ink)}
.chip{font:500 .8rem var(--f-sans);color:var(--copper);background:var(--copper-pale);padding:2px 9px;border-radius:99px;white-space:nowrap}
.feed-empty{padding-block:28px;border-top:1px solid var(--hair);color:var(--soft);max-width:var(--measure)}
.latest{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px;border-top:2px solid var(--copper);padding-top:22px}
.latest > div{display:grid;gap:8px;align-content:start}
.latest .lcard{display:grid;gap:8px;align-content:start;text-decoration:none;color:var(--ink)}
.latest .lcard .thumb{margin-bottom:6px}
.latest .lcard time{font:400 .86rem var(--f-sans);color:var(--soft)}
.latest .lcard strong{font:500 1.12rem/1.3 var(--f-sans)}
.latest .lcard span{color:var(--soft);font-size:.98rem}
.latest .lcard:hover strong{color:var(--copper)}
.st{font:500 .82rem var(--f-sans);white-space:nowrap}
.st.done{color:var(--soft)} .st.pend{color:var(--copper)} .st.off{color:var(--neg)}
@media (max-width:960px){.latest{grid-template-columns:minmax(0,1fr);gap:26px}.item,.item.has-img{grid-template-columns:minmax(0,1fr);gap:8px}.item.has-img .body,.item.has-img .thumb{grid-column:auto;grid-row:auto}.item .thumb{margin-block:6px 4px}.item .thumb img{aspect-ratio:2/1}}

/* Map */
.mapwrap{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:40px;align-items:start}
.mapbox{position:relative;border:0;border-radius:6px;overflow:hidden;background:radial-gradient(circle at 50% 50%,var(--wash),var(--paper) 70%)}
#worldMap{width:100%;height:auto;display:block;cursor:grab;touch-action:none}
#worldMap:active{cursor:grabbing}
#worldMap .sea{fill:var(--sea)}
#worldMap .glow,#worldMap .shade{pointer-events:none}
#worldMap .rim{display:none}
#worldMap .grat{fill:none;stroke:var(--paper);stroke-width:.5;opacity:.7;pointer-events:none}
#worldMap .country{fill:var(--land);stroke:none;transition:fill .15s}
#worldMap .country.has{fill:var(--land-has)}
#worldMap .country:hover,#worldMap .country.picked{fill:color-mix(in srgb,var(--copper) 45%,var(--land-has));cursor:pointer}
#worldMap .pulse{fill:none;stroke:var(--copper);stroke-width:2;pointer-events:none;transform-box:fill-box;transform-origin:center;animation:pulse 1.8s ease-out infinite}
#worldMap.moving .pulse{animation-play-state:paused}
@keyframes pulse{from{transform:scale(1);opacity:.8}to{transform:scale(3.2);opacity:0}}
#worldMap .site:hover{filter:brightness(1.15)}
.maptools{display:flex;gap:16px 20px;flex-wrap:wrap;align-items:end}
.search-site{display:grid;gap:4px}
.search-site input{font:400 1rem var(--f-sans);color:var(--ink);background:transparent;border:0;border-bottom:1px solid var(--hair);padding:6px 0;width:min(320px,80vw)}
.search-site input:focus{outline:none;border-bottom-color:var(--copper)}
.callouts{position:absolute;inset:0;pointer-events:none;z-index:1;overflow:hidden}
.callout{position:absolute;left:0;top:0;pointer-events:auto;opacity:var(--o,1);transition:opacity .35s ease,color .18s,box-shadow .18s;display:grid;gap:1px;text-align:left;white-space:nowrap;background:var(--paper);color:var(--ink);border:0;border-radius:4px;padding:5px 9px 5px 18px;font:400 .74rem/1.25 var(--f-sans);cursor:pointer;box-shadow:0 2px 10px rgba(0,0,0,.08);will-change:transform}
.callout::before{content:"";position:absolute;left:7px;top:9px;width:6px;height:6px;border-radius:50%;background:var(--c)}
.callout b{font-weight:600;font-size:.8rem}
.callout span{color:var(--soft)}
.callout:hover b,.callout.sel b{color:var(--copper)}
.callout.sel{box-shadow:0 4px 16px rgba(0,0,0,.16)}
.callout::after{content:"";position:absolute;width:13px;height:1px;background:var(--soft)}
.callout[data-side="r"]::after{left:-12px;bottom:-5px;transform:rotate(-45deg);transform-origin:left center}
.callout[data-side="l"]::after{right:-12px;bottom:-5px;transform:rotate(45deg);transform-origin:right center}
.callout[data-side="rb"]::after{left:-12px;top:-5px;transform:rotate(45deg);transform-origin:left center}
.callout[hidden]{display:none}
.callout.off{opacity:0;pointer-events:none}
.maptip{position:absolute;pointer-events:none;background:var(--ink);color:var(--paper);font:400 .85rem/1.35 var(--f-sans);padding:7px 10px;border-radius:4px;display:grid;gap:2px;max-width:240px;z-index:3}
.maptip b{font-weight:600}
.maptip span{opacity:.8}
.tourcap{position:absolute;left:12px;right:12px;bottom:12px;max-width:440px;background:var(--paper);border:1px solid var(--hair);border-radius:6px;padding:14px 16px;display:grid;gap:8px;box-shadow:0 6px 24px rgba(0,0,0,.12);z-index:2}
.tourcap p{font-size:1.02rem}
.near{display:grid;gap:6px;padding-top:14px;border-top:1px solid var(--hair)}
.near > div{display:flex;flex-wrap:wrap;gap:6px 18px}
#zoomLvl{text-align:center;font-variant-numeric:tabular-nums}
#worldMap .site{cursor:pointer;stroke:none}
#worldMap .site:focus-visible{outline:none;stroke:var(--ink);stroke-width:2}
#worldMap .site.sel{stroke:none}
.zoombtns{position:absolute;right:12px;top:12px;display:grid;gap:6px;z-index:2}
.zoombtns button{width:34px;height:34px;border:1px solid var(--hair);background:var(--paper);color:var(--ink);border-radius:4px;font:500 1.1rem var(--f-sans);cursor:pointer}
.zoombtns button:hover{border-color:var(--ink)}
.maphint{position:absolute;left:12px;top:10px;font:400 .8rem var(--f-sans);color:var(--soft);background:var(--paper);padding:2px 8px;border-radius:3px}
.sitecard{display:grid;gap:14px;position:sticky;top:calc(env(safe-area-inset-top,0px) + 84px)}
.sitecard dl{display:grid;grid-template-columns:96px minmax(0,1fr);gap:8px 14px;margin:0;font-size:.98rem}
.sitecard dt{font:500 .86rem/1.6 var(--f-sans);color:var(--soft)}
.sitecard dd{margin:0}
.dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:8px;vertical-align:baseline}
.dot.hollow{background:transparent!important;border:2px solid var(--copper)}
.sites td button{all:unset;cursor:pointer;font:500 1rem var(--f-sans);color:var(--ink)}
.sites td button:hover,.sites td button:focus-visible{color:var(--copper);text-decoration:underline}
.sites tr.on td{background:var(--wash)}

/* History */
.goldchart svg{width:100%;height:auto;display:block;min-width:520px}
.era{display:grid;grid-template-columns:240px minmax(0,1fr);gap:48px;padding-top:34px;border-top:1px solid var(--hair)}
.era > div:first-of-type{display:grid;gap:10px;align-content:start}
.era .yrs{font:400 .9rem var(--f-sans);color:var(--copper);font-variant-numeric:tabular-nums}
.era .intro{color:var(--soft);font-size:1rem}
.evts{display:grid;gap:30px;min-width:0}
.evt{display:grid;grid-template-columns:110px minmax(0,1fr);gap:24px}
.evt .y{font:300 1.7rem/1.1 var(--f-sans);letter-spacing:-.02em;color:var(--copper);font-variant-numeric:tabular-nums lining-nums}
.evt div{display:grid;gap:6px;max-width:var(--measure)}
.evt h4{font-weight:500;font-size:1.08rem}
.evt p{color:var(--ink)}
.evt .lnk{font:400 .88rem var(--f-sans)}
.yearhead{font:300 2.2rem/1 var(--f-sans);letter-spacing:-.02em;color:var(--copper);padding:34px 0 6px;border-bottom:1px solid var(--hair)}
@media (max-width:960px){.mapwrap,.era{grid-template-columns:minmax(0,1fr);gap:24px}.sitecard{position:static}}
@media (max-width:600px){.evt{grid-template-columns:minmax(0,1fr);gap:4px}.evt .y{font-size:1.4rem}}

#worldMap.loading{background:radial-gradient(circle at 50% 50%,var(--sea) 0 44%,transparent 44.5%);animation:softIn 1.2s ease-in-out infinite alternate}
.globe-err{position:absolute;inset:auto 16px 16px 16px;border:0}
@keyframes hl{0%{background:var(--copper-pale)}100%{background:transparent}}
.item.hl{animation:hl 2.4s ease-out both}
.linkbox{font:400 .85rem var(--f-sans);color:var(--ink);background:var(--wash);border:1px solid var(--hair);border-radius:3px;padding:4px 8px;width:min(420px,100%)}
.sitecard .row{gap:6px 18px}
@media (max-width:620px){.callout{padding:4px 7px 4px 15px;font-size:.68rem}.callout b{font-size:.72rem}.callout::before{left:6px;top:8px;width:5px;height:5px}.zoombtns button{width:38px;height:38px}.maphint{display:none}.toolbar .btn{margin-left:0;width:100%}.sel select{min-width:0;width:100%}.toolbar .sel,.toolbar .search-site{flex:1 1 140px}}
abbr.gl{text-decoration:none;border-bottom:1px dotted var(--copper);cursor:help}
abbr.gl:hover,abbr.gl:focus-visible{color:var(--copper);outline:none}
.gltip{position:fixed;z-index:50;max-width:320px;background:var(--ink);color:var(--paper);font:400 .86rem/1.45 var(--f-sans);padding:10px 12px;border-radius:5px;display:grid;gap:4px;pointer-events:none;box-shadow:0 8px 24px rgba(0,0,0,.18)}
.gltip b{font-weight:600}
.mq{display:grid;gap:18px;padding:26px 0 6px;border-top:1px solid var(--hair);margin-top:10px}
.mqq{display:grid;gap:10px}
.mqt{font:500 1.02rem/1.4 var(--f-sans)}
.mqo{display:flex;flex-wrap:wrap;gap:8px}
.mqo button{font:400 .92rem var(--f-sans);color:var(--ink);background:var(--paper);border:1px solid var(--hair);border-radius:3px;padding:7px 12px;cursor:pointer;text-align:left}
.mqo button:hover:not([disabled]){border-color:var(--ink)}
.mqo button[disabled]{cursor:default;color:var(--soft)}
.mqo button.ok{border-color:var(--pos);color:var(--ink);background:color-mix(in srgb,var(--pos) 10%,var(--paper))}
.mqo button.ko{border-color:var(--neg);text-decoration:line-through}
.mqe,.mqs{font-size:.98rem}
.mqe b,.mqs b{font-family:var(--f-sans);font-weight:600}
.srcs{display:grid;gap:8px;padding-top:18px;border-top:1px solid var(--hair);font-size:.95rem}
.srcs h4{color:var(--soft);font-weight:500}
.srcs ul{padding-left:1.1em!important;gap:4px!important}
.fprog{display:grid;gap:8px;width:min(640px,100%)}

.mkt{gap:10px;padding:18px 0;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair)}
.mktrow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.mkti{display:grid;gap:2px}
.mkti b{font:300 1.7rem/1.1 var(--f-sans);letter-spacing:-.015em;font-variant-numeric:tabular-nums}
.mkti .up{color:var(--pos)} .mkti .dn{color:var(--neg)}
@media (max-width:620px){.mktrow{grid-template-columns:repeat(2,minmax(0,1fr))}}
#worldMap .arc{fill:none;stroke-linecap:round;pointer-events:none}
#worldMap .hit{fill:none;stroke:transparent;stroke-width:12;cursor:pointer;pointer-events:stroke}
#worldMap .hq{stroke:var(--paper);stroke-width:1;pointer-events:none}
#worldMap .tgt{fill:var(--paper);stroke-width:2;pointer-events:none}
/* Jurisdiction layer: countries carry a score class set once per data change; the svg class switches the shading on */
#worldMap.jur .country{fill:var(--land)}
#worldMap.jur .country.jb0{fill:url(#jHatch)}
#worldMap.jur .country.jb1{fill:var(--j1)}
#worldMap.jur .country.jb2{fill:var(--j2)}
#worldMap.jur .country.jb3{fill:var(--j3)}
#worldMap.jur .country.jb4{fill:var(--j4)}
#worldMap.jur .country.jb5{fill:var(--j5)}
#worldMap.jur .country.jd:hover{fill:color-mix(in srgb,var(--copper) 55%,var(--land-has))}
#worldMap.jur .country.picked{stroke:var(--ink);stroke-width:1.2;stroke-linejoin:round}
#worldMap.jur .site:not(.hist){stroke:var(--paper);stroke-width:1.2}
#worldMap.jur .site:focus-visible{stroke:var(--ink);stroke-width:2}
.jurbar{display:flex;gap:10px 22px;align-items:center;flex-wrap:wrap;padding:12px 0;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair)}
.jurbar h4{font:600 .9rem var(--f-sans)}
.jleg{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:6px 16px;font:400 .85rem var(--f-sans);color:var(--soft)}
.jleg li{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.jsw{display:inline-block;flex:none;width:16px;height:11px;border-radius:2px;vertical-align:baseline}
.jsw.jb0{background:repeating-linear-gradient(45deg,var(--land) 0 3px,var(--soft) 3px 4px)}
.jsw.jb1{background:var(--j1)}.jsw.jb2{background:var(--j2)}.jsw.jb3{background:var(--j3)}.jsw.jb4{background:var(--j4)}.jsw.jb5{background:var(--j5)}
.jurbar .meta{flex:1 1 100%;max-width:90ch}
.jcard{display:grid;gap:14px;min-width:0}
.jcard .jhead{display:flex;align-items:center;gap:8px}
.jscore{display:grid;gap:4px}
.jscore b{font:300 2.5rem/1 var(--f-sans);letter-spacing:-.02em;font-variant-numeric:tabular-nums lining-nums}
.jrows{list-style:none;padding:0;margin:0;display:grid;font:400 .92rem var(--f-sans)}
.jrows li{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:baseline;padding:5px 0;border-bottom:1px solid var(--hair)}
.jrows b{font-weight:500;font-variant-numeric:tabular-nums}
.jrows .meta{font-variant-numeric:tabular-nums}
.jcard dl{grid-template-columns:minmax(0,1fr);gap:4px}
.jcard dt{margin-top:10px}
.jcard dd{font-size:.97rem;line-height:1.55}
.jcard dd.none{color:var(--soft);font-style:italic}
.jcard time{display:block;font:500 .86rem var(--f-sans);color:var(--copper)}
.jsrc{display:block;margin-top:4px;font:400 .8rem/1.45 var(--f-sans);color:var(--soft)}
.jsrc a{color:var(--copper)}
.tbtns{display:flex;gap:12px 14px;flex-wrap:wrap;margin-left:auto}
.toolbar .tbtns .btn{margin-left:0}
@media (max-width:620px){.tbtns{margin-left:0;flex:1 1 100%}}
.dealbar{display:flex;gap:12px 18px;align-items:center;flex-wrap:wrap;padding:12px 0;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair)}
.dealbar input[type=range]{flex:1 1 220px;accent-color:var(--copper)}
.yearlbl{font:500 1rem var(--f-sans);min-width:110px}
.glink{display:block;margin-top:4px;font:500 .85rem var(--f-sans)}

.searchbtn{display:inline-flex;align-items:center;gap:8px}
.searchbtn kbd{font:500 .72rem var(--f-sans);color:var(--soft);border:1px solid var(--hair);border-radius:3px;padding:1px 5px}
.cmdk{position:fixed;inset:0;z-index:60;background:color-mix(in srgb,var(--ink) 28%,transparent);display:grid;justify-items:center;align-items:start;padding:12vh max(16px,env(safe-area-inset-left,0px)) 16px max(16px,env(safe-area-inset-right,0px))}
.cmdk-box{width:min(640px,100%);background:var(--paper);border-radius:8px;box-shadow:0 24px 60px rgba(0,0,0,.25);display:grid;max-height:70vh;overflow:hidden}
#cmdkIn{font:300 1.35rem var(--f-sans);color:var(--ink);background:transparent;border:0;border-bottom:1px solid var(--hair);padding:18px 20px;outline:none}
#cmdkRes{overflow-y:auto;padding:6px}
.cmdk-it{all:unset;box-sizing:border-box;width:100%;display:grid;grid-template-columns:90px minmax(0,1fr);gap:12px;align-items:baseline;padding:10px 14px;border-radius:5px;cursor:pointer}
.cmdk-it.on{background:var(--wash)}
.cmdk-k{font:500 .78rem var(--f-sans);color:var(--copper)}
.cmdk-t{font:400 .98rem/1.35 var(--f-sans);color:var(--ink)}
.cmdk-empty{padding:14px}
.cmdk-hint{padding:10px 20px;border-top:1px solid var(--hair)}
.simgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}
#simApprovals,#simFlags{padding-left:1.1em;display:grid;gap:6px;color:var(--soft)}
@media (max-width:620px){.searchbtn kbd{display:none}.simgrid{grid-template-columns:minmax(0,1fr)}}
/* Shared blocks, toolbars, subnav */
.block{display:grid;gap:26px}
.finhead{display:grid;gap:10px;max-width:var(--measure);padding-top:34px;border-top:1px solid var(--hair)}
.finhead p{color:var(--soft)}
.deal .terms{min-width:230px;font-size:.95rem;line-height:1.45}
.deal .lesson{line-height:1.45}
.deal .src{display:block;margin-top:4px;font:400 .82rem var(--f-sans);color:var(--soft)}
.mktratio{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;padding-top:14px;border-top:1px solid var(--hair)}
.mktratio p{font-size:.95rem;color:var(--soft);max-width:46ch}
.pm .facts{list-style:none;padding:0;margin:2px 0 4px;display:grid;gap:2px;font:400 .9rem var(--f-sans);color:var(--soft)}
.pm .facts li::before{content:'';display:inline-block;width:6px;height:6px;background:var(--copper);margin-right:10px;vertical-align:middle}
.pm .lessonp{color:var(--ink)}
.pm .srcs2{font:400 .82rem var(--f-sans);color:var(--soft)}
@media (max-width:620px){.mktratio{grid-template-columns:minmax(0,1fr)}}
.blockhead{display:flex;justify-content:space-between;align-items:baseline;gap:12px 24px;flex-wrap:wrap}
.blockhead .meta{max-width:52ch}
.toolbar{display:flex;gap:16px 28px;flex-wrap:wrap;align-items:end}
.toolbar .btn{margin-left:auto}
.sel{display:grid;gap:4px}
.sel select{font:400 1rem var(--f-sans);color:var(--ink);background-color:transparent;border:0;border-bottom:1px solid var(--hair);border-radius:0;padding:6px 24px 6px 0;min-width:170px;-webkit-appearance:none;appearance:none;cursor:pointer;background-image:linear-gradient(45deg,transparent 50%,var(--soft) 50%),linear-gradient(135deg,var(--soft) 50%,transparent 50%);background-position:right 9px center,right 4px center;background-size:5px 5px,5px 5px;background-repeat:no-repeat}
.sel select:focus{outline:none;border-bottom-color:var(--copper)}
.subnav{display:flex;align-items:center;gap:0 24px;overflow-x:auto;scrollbar-width:none;white-space:nowrap;margin-bottom:-48px;border-bottom:1px solid var(--hair);font:500 .92rem var(--f-sans)}
.subnav::-webkit-scrollbar{display:none}
.subnav .sep{flex:none;width:1px;height:16px;background:var(--hair)}
.subnav a{flex:none;color:var(--soft);text-decoration:none;padding:12px 0 11px;margin-bottom:-1px;border-bottom:2px solid transparent}
.subnav a:hover{color:var(--ink)}
.subnav a[aria-current="page"]{color:var(--ink);border-bottom-color:var(--copper)}
.allsites{border-top:1px solid var(--hair)}
.allsites summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;padding-block:18px;font:500 1rem var(--f-sans)}
.allsites summary::-webkit-details-marker{display:none}
.allsites summary .x{width:14px;height:14px;position:relative}
.allsites summary .x::before,.allsites summary .x::after{content:"";position:absolute;background:var(--ink);left:0;top:6px;width:14px;height:1.5px;transition:transform .2s}
.allsites summary .x::after{transform:rotate(90deg)}
.allsites[open] summary .x::after{transform:rotate(0)}
.allsites[open]{display:grid;gap:14px}
.zoombtns button[aria-pressed="false"]{color:var(--soft);text-decoration:line-through}

/* Glossary */
.find{display:flex;gap:28px;align-items:end;flex-wrap:wrap}
.find input{font:300 1.6rem var(--f-sans);letter-spacing:-.01em;color:var(--ink);background:transparent;border:0;border-bottom:1px solid var(--hair);padding:6px 0;width:min(520px,100%);border-radius:0}
.find input:focus{outline:none;border-bottom-color:var(--copper)}
.find input::placeholder{color:var(--soft);opacity:.7}
.gloss{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 64px}
.term{display:grid;gap:4px;padding-block:16px;border-bottom:1px solid var(--hair)}
.term dt{font:500 1.05rem var(--f-sans)}
.term dt small{font-weight:400;color:var(--soft);font-size:.86rem;margin-left:8px;font-style:italic}
.term dd{margin:0;color:var(--soft);font-size:1rem}
.flash{display:grid;gap:24px;justify-items:start}
.card{width:min(640px,100%);min-height:260px;border:1px solid var(--hair);border-radius:6px;display:grid;align-content:center;gap:14px;padding:40px;cursor:pointer;background:var(--paper)}
.card:hover{border-color:var(--soft)}
.card .w{font:300 2.6rem/1.05 var(--f-sans);letter-spacing:-.02em}
.card .d{font-size:1.15rem}
.card .h{font:400 .85rem var(--f-sans);color:var(--soft)}
.row{display:flex;gap:16px;flex-wrap:wrap;align-items:center}

/* Quiz */
.quiz{max-width:720px;display:grid;gap:26px}
.qtop{display:flex;justify-content:space-between;gap:16px;font:400 .9rem var(--f-sans);color:var(--soft);font-variant-numeric:tabular-nums}
.q{font:400 1.7rem/1.25 var(--f-sans);letter-spacing:-.012em}
.opts{display:grid;border-top:1px solid var(--hair)}
.opts button{all:unset;box-sizing:border-box;cursor:pointer;display:grid;grid-template-columns:30px minmax(0,1fr);gap:10px;padding:16px 4px;border-bottom:1px solid var(--hair);font-size:1.06rem}
.opts button .k{font:500 .95rem/1.7 var(--f-sans);color:var(--soft)}
.opts button:hover:not([disabled]){background:var(--wash)}
.opts button:focus-visible{outline:2px solid var(--copper)}
.opts button[disabled]{cursor:default;color:var(--soft)}
.opts button.ok{color:var(--ink)} .opts button.ok .k{color:var(--pos)}
.opts button.ok span:last-child{text-decoration:underline;text-decoration-color:var(--pos);text-decoration-thickness:2px;text-underline-offset:5px}
.opts button.ko .k{color:var(--neg)} .opts button.ko span:last-child{text-decoration:line-through;text-decoration-color:var(--neg)}
.explain{font-size:1.04rem}
.explain b{font-family:var(--f-sans);font-weight:600}
.big{font:300 6rem/1 var(--f-sans);letter-spacing:-.04em;color:var(--copper);font-variant-numeric:tabular-nums}

footer:not(.foot){border-top:1px solid var(--hair)}
footer:not(.foot) .wrap{padding-block:28px;font:400 .88rem/1.5 var(--f-sans);color:var(--soft);display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}
/* Footer: the page rests on a band of strata, the same hatching as the cross-section in the hero */
footer.foot{background:var(--wash)}
.strata{display:block;width:100%;height:26px}
.footgrid{display:grid;grid-template-columns:minmax(0,1.6fr) repeat(var(--fc,3),minmax(0,1fr));gap:36px 32px;padding-block:40px 36px}
.footbrand{display:grid;gap:12px;align-content:start;max-width:36ch}
.footbrand .mark{justify-self:start}
.footbrand p{margin:0;font:400 1.02rem/1.5 var(--f-serif);color:var(--ink)}
.footbrand p.meta{font:400 .85rem/1.5 var(--f-sans);color:var(--soft)}
.footcol h4,.footmods h4{margin:0 0 12px;font:500 .9rem var(--f-sans);color:var(--ink)}
.footcol ul{list-style:none;margin:0;padding:0;display:grid;gap:9px}
.footcol li{line-height:1.35}
.acct .textbtn{justify-self:start;text-align:left}
.footcol a,.footmods a{font:400 .9rem/1.4 var(--f-sans);color:var(--soft);text-decoration:none}
.footcol a:hover,.footmods a:hover{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.footcol a:focus-visible,.footmods a:focus-visible{outline:2px solid var(--copper);outline-offset:2px}
.footmods{border-top:1px solid var(--hair);padding-block:24px}
.footmods ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px 22px;counter-reset:fm}
.footmods li{counter-increment:fm}
.footmods li::before{content:counter(fm);margin-right:7px;font:400 .82rem var(--f-sans);color:var(--copper);font-variant-numeric:tabular-nums}
.footbase{border-top:1px solid var(--hair);padding-block:18px 26px;display:flex;justify-content:space-between;gap:12px 24px;flex-wrap:wrap;font:400 .85rem var(--f-sans);color:var(--soft)}
@media (max-width:960px){.footgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.footbrand{grid-column:1/-1}}
/* My account: progress drawn as core trays, one stick per lecture or module */
#acctBody{display:grid;gap:44px}
.acctsec{display:grid;gap:18px;padding-top:28px;border-top:1px solid var(--hair);max-width:720px}
.acctsec > h3{margin:0}
.prog{display:grid;gap:10px}
.proghead{display:flex;justify-content:space-between;align-items:baseline;gap:6px 16px;flex-wrap:wrap}
.proghead h4{margin:0;font:500 1rem var(--f-sans)}
.proghead .num{font:400 .92rem var(--f-sans);color:var(--soft);font-variant-numeric:tabular-nums}
.prog .meta a{color:var(--copper)}
.tray{display:grid;grid-template-columns:repeat(var(--n,15),minmax(0,1fr));gap:4px;padding:5px;border:1px solid var(--hair);border-radius:4px;background:var(--wash)}
.tray a{display:block;height:14px;border-radius:7px;background:var(--paper);box-shadow:inset 0 0 0 1px var(--hair)}
.tray a.done{background:var(--copper);box-shadow:none}
.tray a:hover{box-shadow:inset 0 0 0 1.5px var(--ink)}
.tray a:focus-visible{outline:2px solid var(--copper);outline-offset:2px}
.assay{display:flex;gap:1px;height:24px;padding:5px;border:1px solid var(--hair);border-radius:4px;background:var(--wash)}
.assay span{flex:1 1 0;min-width:1px;border-radius:1px;background:var(--paper)}
.assay .g1{background:color-mix(in srgb,var(--copper) 20%,var(--paper))}
.assay .g2{background:color-mix(in srgb,var(--copper) 38%,var(--paper))}
.assay .g3{background:color-mix(in srgb,var(--copper) 56%,var(--paper))}
.assay .g4{background:color-mix(in srgb,var(--copper) 78%,var(--paper))}
.assay .g5{background:var(--copper)}
.pref{display:flex;align-items:center;justify-content:space-between;gap:10px 16px;flex-wrap:wrap}
.pref > span{font:500 1rem var(--f-sans)}
.choice{display:inline-flex;flex-wrap:wrap;gap:3px;padding:3px;border:1px solid var(--hair);border-radius:6px}
.choice button{all:unset;cursor:pointer;padding:6px 12px;border-radius:4px;font:500 .9rem var(--f-sans);color:var(--soft)}
.choice button:hover{color:var(--ink)}
.choice button[aria-pressed="true"]{background:var(--copper-pale);color:var(--ink)}
.choice button:focus-visible{outline:2px solid var(--copper);outline-offset:1px}
/* Excel cases: the steps on the left, the model's outputs filling in on the right */
.case{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:56px;align-items:start}
.casemain{display:grid;gap:44px;min-width:0;max-width:var(--measure)}
.casesec{display:grid;gap:16px}
.casesec > h3{margin:0}
.casedl{display:flex;gap:12px 20px;flex-wrap:wrap;align-items:center}
.casein{width:100%;border-collapse:collapse;font:400 .95rem/1.4 var(--f-sans)}
.casein td{padding:9px 0;border-bottom:1px solid var(--hair);vertical-align:top}
.casein td + td{padding-left:16px;text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.casein .u{display:block;color:var(--soft);font-size:.84rem;white-space:normal}
.simple{margin:0;padding-left:1.2em;display:grid;gap:6px;color:var(--soft)}
.csteps{list-style:none;margin:0;padding:0}
.cstep{display:grid;grid-template-columns:40px minmax(0,1fr);gap:6px 14px;padding:26px 0;border-top:1px solid var(--hair)}
.cstep > *{grid-column:2}
.cstep > .n{grid-column:1;grid-row:1 / span 9;font:300 1.7rem/1 var(--f-sans);color:var(--soft);font-variant-numeric:tabular-nums}
.cstep.ok > .n{color:var(--copper)}
.cstep h3,.cstep h4{margin:0;font:500 1.05rem/1.35 var(--f-sans)}
.cstep .ask{margin:0}
.ansrow{display:flex;gap:10px 12px;align-items:center;flex-wrap:wrap;margin-top:4px}
.ansrow input{width:13ch;font:500 1rem var(--f-sans);padding:9px 11px;border:1px solid var(--hair);border-radius:4px;background:var(--paper);color:var(--ink);font-variant-numeric:tabular-nums}
.ansrow input:focus-visible{outline:2px solid var(--copper);outline-offset:1px}
.ansrow .u{font:400 .92rem var(--f-sans);color:var(--soft)}
.fb{margin:0;font:400 .95rem/1.5 var(--f-sans)}
.fb:empty{display:none}
.fb.ok{color:var(--pos)}
.fb.no{color:var(--neg)}
.cstep details summary,.casesec details summary{cursor:pointer;width:max-content;font:500 .92rem var(--f-sans);color:var(--copper)}
.cstep details p,.casesec details ul{margin:8px 0 0}
.how{display:grid;gap:6px;padding:12px 16px;border-left:3px solid var(--copper);background:var(--wash)}
.how p{margin:0}
.how code{font:500 .86rem/1.5 ui-monospace,"SF Mono",Menlo,Consolas,monospace;color:var(--ink);overflow-wrap:anywhere}
.modelbox{position:sticky;top:88px;display:grid;gap:10px;padding:18px 18px 14px;border:1px solid var(--hair);border-radius:6px;background:var(--paper)}
.modelbox h3{margin:0;font:500 1rem var(--f-sans)}
.modelbox p{margin:0}
.modelbox dl{margin:0}
.modelbox .r{display:flex;justify-content:space-between;gap:12px;padding:7px 4px;border-top:1px solid var(--hair);font:400 .88rem var(--f-sans)}
.modelbox dt{color:var(--soft)}
.modelbox dd{margin:0;color:var(--soft);font-variant-numeric:tabular-nums;white-space:nowrap}
.modelbox .r.ok dt{color:var(--ink)}
.modelbox .r.ok dd{color:var(--ink);font-weight:500}
.modelbox .r.flash{animation:cellIn 1.1s ease}
@keyframes cellIn{from{background:var(--copper-pale)}to{background:transparent}}
@media (prefers-reduced-motion:reduce){.modelbox .r.flash{animation:none}}
.sens{border-collapse:collapse;font:400 .95rem var(--f-sans);font-variant-numeric:tabular-nums}
.sens th,.sens td{padding:8px 14px;border-bottom:1px solid var(--hair);text-align:right}
.sens th:first-child,.sens td:first-child{text-align:left;padding-left:0}
.sens .base{font-weight:600;color:var(--copper)}
@media (max-width:1000px){.case{grid-template-columns:minmax(0,1fr)}.modelbox{position:static}}

@media (max-width:960px){
  .hero,.course,.tool,.fgroup{grid-template-columns:minmax(0,1fr);gap:44px}
  .syll{position:static}
  .figs{grid-template-columns:repeat(2,minmax(0,1fr))}
  .gloss{grid-template-columns:minmax(0,1fr)}
  .toc a{grid-template-columns:minmax(0,1fr) auto;gap:6px 20px}
  .toc a span{grid-column:1/-1;grid-row:2}
    }
@media (max-width:600px){
  body{font-size:1.0625rem}
  main{padding-block:36px 72px}
  .view{gap:64px}
  .figs3{grid-template-columns:minmax(0,1fr);gap:30px}
    .files summary{grid-template-columns:minmax(0,1fr) 24px;gap:6px 16px}
  .files summary .meta{grid-column:1/-1}
  .files .body{padding-left:0}
  .fld{grid-template-columns:minmax(0,1fr) 100px}
  .q{font-size:1.4rem}
  .big{font-size:4.4rem}
  .card{padding:28px}
}
@media (max-width:620px){
  .toolbar{gap:14px 16px}
  .toolbar .sel,.toolbar .search-site{flex:1 1 140px;min-width:0}
  .sel select{min-width:0;width:100%}
  .search-site input{width:100%}
  .toolbar .btn{margin-left:0;flex:1 1 100%;justify-content:center}
  .theme .lg{display:none}
  .theme .sm{display:inline-flex;align-items:center;min-height:24px}
}
/* Screener: one hairline table; under 620px each company becomes a stacked block */
.scr{min-width:1000px}
.scr td{font-size:.95rem}
.scr td strong{font:500 1rem var(--f-sans);display:block}
.scr .stg{font:400 .92rem var(--f-sans)}
.scr td .meta{display:block;font-size:.8rem}
.scr td.r{white-space:normal}
.scr .v{display:block;font:400 .98rem var(--f-sans);font-variant-numeric:tabular-nums;white-space:nowrap}
.scr .v.pos{color:var(--pos)}
.scr th button{all:unset;cursor:pointer;display:inline-flex;gap:4px}
.scr th button:hover,.scr th[aria-sort="ascending"] button,.scr th[aria-sort="descending"] button{color:var(--ink)}
.scr th button:focus-visible{outline:2px solid var(--copper)}
.scr th button i{font-style:normal;color:var(--copper);min-width:.7em}
.scr .co{min-width:190px}
.scr th:last-child{padding-left:28px}
.scr .srcc{padding-left:28px;min-width:260px;max-width:340px;font:400 .82rem/1.45 var(--f-sans);color:var(--soft);display:grid;gap:3px;align-content:start}
.scr .srcc b{font-weight:600;color:var(--ink)}
.scr .srcc a{color:var(--copper)}
.scr-sort{display:none!important}
.scrhow{display:grid;gap:10px;max-width:var(--measure);padding-top:26px;border-top:1px solid var(--hair)}
.scrhow p{color:var(--soft);font-size:1rem}
@media (max-width:620px){
  .scr{min-width:0;display:block}
  .scr thead{display:none}
  .scr tbody{display:block}
  .scr tr{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px 18px;padding:20px 0;border-bottom:1px solid var(--hair)}
  .scr td,.scr td.r{border:0;padding:0;text-align:left;min-width:0}
  .scr td.co,.scr td.srcc{grid-column:1/-1;max-width:none}
  .scr td.srcc{padding-left:0}
  .scr td[data-l]::before{content:attr(data-l);display:block;font:500 .76rem var(--f-sans);color:var(--soft);margin-bottom:2px}
  .scr .v{white-space:normal}
  .scr-sort{display:grid!important}
}
/* Finance from zero */
.lec .goals{border-left:2px solid var(--copper);padding:2px 0 2px 18px;display:grid;gap:6px}
.lec .goals h4{font:600 .9rem var(--f-sans)}
.lec .goals ul{margin:0}
.lec .ex,.lec .trap,.lec .iv,.lec .widget{border-radius:4px;padding:20px 22px;display:grid;gap:10px}
.lec .ex{background:var(--wash)}
.lec .ex h4,.lec .trap h4,.lec .iv h4,.lec .widget>h4{font:600 .92rem var(--f-sans)}
.lec .trap{border:1px solid color-mix(in srgb,var(--neg) 35%,var(--hair))}
.lec .trap h4{color:var(--neg)}
.lec .iv{border:1px solid var(--hair);border-left:3px solid var(--patina)}
.lec .iv h4{color:var(--patina)}
.lec .iv .q{font:500 1rem/1.45 var(--f-sans);color:var(--ink);margin-top:6px}
.lec .pause{border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);padding:12px 0}
.lec .pause summary{cursor:pointer;font:500 1rem/1.45 var(--f-sans);color:var(--copper)}
.lec .pause[open] summary{margin-bottom:8px}
table.fin{width:auto;min-width:min(420px,100%);font-family:var(--f-sans);font-size:.95rem}
table.fin td{padding:6px 28px 6px 0}
table.fin td:last-child{text-align:right;font-variant-numeric:tabular-nums;padding-right:0}
table.fin tr.sub td{font-weight:600;border-bottom-color:var(--ink)}
.lec .widget{border:1px solid var(--hair);background:var(--paper);gap:18px}
.widget .wfields{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:0 28px}
.widget .wout{display:grid;gap:16px;min-width:0}
.widget .fld.wsel{grid-column:1/-1;grid-template-columns:minmax(0,200px) minmax(0,1fr)}
.widget .figs{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:22px 24px}
.widget .figs b{font-size:1.5rem}
.wread{color:var(--soft);font-size:.98rem;max-width:var(--measure)}
.widget table,.tsmg table{font-family:var(--f-sans);font-size:.9rem}
.widget td,.tsmg td{padding:6px 12px 6px 0}
table.sens th,table.sens td{padding:6px 10px}
.tsmg{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.tsmg h5{font:600 .85rem var(--f-sans);margin:0 0 6px}
.tsmg td:last-child{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.tsmg tr.tot td{font-weight:600;border-bottom-color:var(--ink)}
.tsmg table+table{margin-top:10px}
.takeaways ul{display:grid;gap:8px}
.pset{display:grid;gap:10px}
.prob{border-top:1px solid var(--hair);padding:12px 0}
.prob summary{cursor:pointer;display:grid;grid-template-columns:28px minmax(0,1fr);gap:8px;font:500 1rem/1.45 var(--f-sans);list-style:none}
.prob summary::-webkit-details-marker{display:none}
.prob summary .n{color:var(--copper);font-variant-numeric:tabular-nums}
.prob .sol{padding:10px 0 0 36px;display:grid;gap:8px}
.ivpane{display:grid;gap:24px;min-width:0}
.paywall{border:1px solid var(--hair);border-left:3px solid var(--copper);padding:24px 28px;display:grid;gap:12px;max-width:var(--measure);background:var(--wash);margin-top:8px}
.paywall h3{margin:0}
.paywall .price{font:300 1.6rem/1.1 var(--f-sans);color:var(--copper)}
.plans{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;max-width:760px}
.plan{border:1px solid var(--hair);border-radius:6px;padding:28px;display:grid;gap:10px;align-content:start}
.plan.best{border-color:var(--copper)}
.plan b{font:300 2.4rem/1 var(--f-sans);letter-spacing:-.02em}
.acct{display:grid;gap:14px;max-width:560px}
.acct form{display:flex;gap:12px;flex-wrap:wrap}
.acct form{display:grid;gap:12px;max-width:420px}
.acct input{flex:1 1 240px;font:400 1rem var(--f-sans);padding:10px 12px;border:1px solid var(--hair);border-radius:4px;background:var(--paper);color:var(--ink)}
.incl{columns:2;column-gap:40px;max-width:760px;padding-left:1.1em}
.incl li{margin-bottom:8px;break-inside:avoid}
@media (max-width:620px){.plans{grid-template-columns:minmax(0,1fr)}.incl{columns:1}}
.ivrow{display:flex;gap:12px 20px;flex-wrap:wrap;align-items:center}
.ivcard{width:min(720px,100%);border:1px solid var(--hair);border-radius:6px;padding:32px;display:grid;gap:14px;background:var(--paper)}
.ivq{font:400 1.45rem/1.35 var(--f-sans);letter-spacing:-.01em;max-width:46ch;color:var(--ink)}
.iva{display:grid;gap:8px;border-top:1px solid var(--hair);padding-top:14px}
.iva h4,.ivfb h4{font:600 .9rem var(--f-sans)}
#v-interview textarea{width:100%;max-width:720px;font:400 1.02rem/1.6 var(--f-serif);color:var(--ink);background:var(--paper);border:1px solid var(--hair);border-radius:4px;padding:14px 16px;resize:vertical}
#v-interview textarea:focus{outline:none;border-color:var(--copper)}
.ivfb{display:grid;gap:14px;max-width:720px}
.ivfb ul{margin:4px 0 0;display:grid;gap:4px}
.ivscore{font:300 2.4rem/1 var(--f-sans);letter-spacing:-.02em;color:var(--copper)}
.ivgroup{display:grid;gap:2px}
.ivgroup h3{margin:22px 0 8px}
details.ivsay>summary,.ivfu details>summary,.drules>summary{display:block;cursor:pointer;width:max-content;max-width:100%;font:500 .92rem var(--f-sans);color:var(--copper);list-style:none}
details.ivsay>summary::-webkit-details-marker,.ivfu details>summary::-webkit-details-marker,.drules>summary::-webkit-details-marker{display:none}
details.ivsay p,.ivfu details p{margin-top:8px}
.ivfu{display:grid;gap:6px;border-top:1px solid var(--hair);padding-top:12px}
.ivfu h4{font:600 .9rem var(--f-sans)}
.ivfuq{color:var(--ink);font-weight:500}
.dmain{display:grid;gap:22px;min-width:0;max-width:var(--measure)}
.dmain > h4{font:600 .95rem var(--f-sans);margin-top:6px}
.drules{display:grid;gap:10px}
.drules[open]{padding-bottom:6px}
.drules p{color:var(--soft);margin-top:8px}
.dclockrow{display:flex;align-items:baseline;gap:14px}
.dclock{font:300 2.6rem/1 var(--f-sans);letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--copper)}
.dclock.low{color:var(--neg)}
.dbest{font:300 1.45rem/1.2 var(--f-sans);letter-spacing:-.01em;color:var(--ink)}
#dBody{min-width:0}
.dtab td{padding:8px 14px 8px 0}
.dtab td.r{white-space:normal}
.dwork td{padding:8px 14px 8px 0;font-size:.93rem}
.dwork td.dw,.mmres .dw{color:var(--soft);font-variant-numeric:tabular-nums}
.mmres .dw{display:block;font-size:.86rem;margin-top:2px}
.dtog{display:flex;gap:10px;align-items:center;width:max-content;max-width:100%;font:400 .95rem var(--f-sans);cursor:pointer}
.dtog input{accent-color:var(--copper);width:16px;height:16px}
.caselist{list-style:none;margin:0;padding:0;display:grid;gap:30px;max-width:var(--measure)}
.caselist li{display:grid;grid-template-columns:44px minmax(0,1fr);gap:4px 12px}
.caselist .n{font:300 1.5rem/1.2 var(--f-sans);color:var(--copper);font-variant-numeric:tabular-nums}
.caselist a{font:500 1.12rem/1.35 var(--f-sans);color:var(--ink);text-decoration:none}
.caselist a:hover{color:var(--copper)}
.caselist p{grid-column:2;margin:0;color:var(--soft)}
.casetab{display:grid;gap:8px;margin-top:8px}
.casetab h4{margin:0;font:600 .95rem var(--f-sans)}
.casetab p{margin:0}
.sens tr.tot td{font-weight:600}
.cqs{margin:0;padding-left:1.2em;display:grid;gap:16px}
.cqs p{margin:0}
.cqs details{margin-top:6px}
.cqs details p{margin-top:8px;color:var(--soft)}
.cqs details summary{cursor:pointer;width:max-content;font:500 .92rem var(--f-sans);color:var(--copper)}
@media (max-width:960px){.tsmg{grid-template-columns:minmax(0,1fr)}}
@media (max-width:620px){.ivcard{padding:22px}.ivq{font-size:1.2rem}.lec .ex,.lec .trap,.lec .iv,.lec .widget{padding:16px}.prob .sol{padding-left:0}}
@media (prefers-reduced-motion:reduce){*,::before,::after{transition:none!important;animation:none!important}::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}

.page{display:grid;gap:56px}
.page h1,.mod h1{font-weight:300;font-size:clamp(1.9rem,3.6vw,2.7rem);line-height:1.1;letter-spacing:-.02em;max-width:none}
.mod h1{margin-bottom:4px}
.crumbs{font:400 .88rem var(--f-sans);color:var(--soft);margin-bottom:36px}
.crumbs a{color:var(--soft)}
/* The static pages keep a plain list of chapters beside the text (the app has the contents rail instead) */
.syll>ol{list-style:none;padding:0;display:grid}
.syll>ol .grp{font:500 .78rem var(--f-sans);color:var(--soft);padding:16px 0 4px}
.syll>ol .grp:first-child{padding-top:0}
@media (max-width:960px){.syll>ol{display:none}}
.syll>ol a{display:grid;grid-template-columns:26px minmax(0,1fr);gap:8px;padding:9px 0;font:400 .95rem/1.35 var(--f-sans);color:var(--soft);text-decoration:none}
.syll>ol a:hover{color:var(--ink)}
.syll>ol a[aria-current="page"]{color:var(--ink);font-weight:500}
.syll>ol a[aria-current="page"] .n{color:var(--copper)}
.modlist{list-style:none;padding:0;display:grid;gap:30px;max-width:var(--measure)}
.modlist li{display:grid;grid-template-columns:44px minmax(0,1fr);gap:4px 12px}
.modlist .n{font:300 1.5rem/1.2 var(--f-sans);color:var(--copper);font-variant-numeric:tabular-nums}
.modlist a{font:500 1.12rem/1.35 var(--f-sans);color:var(--ink);text-decoration:none}
.modlist a:hover{color:var(--copper)}
.modlist p{grid-column:2;color:var(--soft);font-size:1rem}
.grouph{font:500 .85rem var(--f-sans);color:var(--soft);margin-top:12px}
.qs{display:grid;gap:12px}
.qs details{border-top:1px solid var(--hair);padding-top:12px}
.qs summary{cursor:pointer;font:500 1rem/1.4 var(--f-sans)}
.qs ol{margin:10px 0 6px;color:var(--soft)}
.qs .ans{color:var(--ink)}
.pager{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font:500 .95rem var(--f-sans)}
.widget-link{border:1px solid var(--hair);border-radius:4px;padding:16px 20px;font:400 .95rem/1.5 var(--f-sans);color:var(--soft)}
.qs h2{font-size:clamp(1.4rem,2.6vw,1.9rem);margin:26px 0 6px}
.qs details > div{display:grid;gap:6px;margin-top:10px}
.qs details h3{font:600 .9rem var(--f-sans);margin:0}
.qs details details{border-top:0;padding-top:2px}
.qs details details summary{font:500 .92rem var(--f-sans);color:var(--copper)}
.legaldoc section{display:grid;gap:12px;max-width:var(--measure)}
.legaldoc h2{font:500 1.25rem/1.3 var(--f-sans);letter-spacing:-.01em}
.legaldoc ul{margin:0;padding-left:1.2em;display:grid;gap:8px}
.legaldoc{gap:40px}

.casepage .head h1{font-weight:300;font-size:clamp(1.9rem,3.6vw,2.7rem);line-height:1.1;letter-spacing:-.02em;max-width:none}
.casesec > h2{margin:0;font:500 1.3rem/1.3 var(--f-sans);letter-spacing:-.01em}
.casetab h3{margin:0;font:600 .95rem var(--f-sans)}

.aboutnext{display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px;max-width:var(--measure)}
.aboutdoc .head p{max-width:60ch}
mark.todo{background:var(--copper-pale);color:var(--ink);padding:0 4px;border-radius:3px;font:500 .92em var(--f-sans)}

.entry{display:grid;gap:26px;max-width:var(--measure)}
.entry h1{font-weight:300;font-size:clamp(1.9rem,3.6vw,2.7rem);line-height:1.1;letter-spacing:-.02em;max-width:none}
.entry > .head{gap:10px}
.entry .lead{font-size:1.15rem}
.entry .why b{font-family:var(--f-sans);font-weight:600}
.entry .def{font-size:1.2rem;line-height:1.55}
.facts{display:grid;grid-template-columns:minmax(110px,190px) minmax(0,1fr);margin:0;border-top:1px solid var(--hair)}
.facts dt,.facts dd{margin:0;padding:10px 0;border-bottom:1px solid var(--hair)}
.facts dt{font:500 .9rem/1.6 var(--f-sans);color:var(--soft);padding-right:16px}
.related{display:grid;gap:10px}
.related h2{font:500 1.15rem/1.3 var(--f-sans);letter-spacing:-.01em;margin:0}
.related ul{margin:0;padding-left:1.1em;display:grid;gap:6px}
.related .meta{display:inline}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:0}
a.chip{text-decoration:none}
a.chip:hover{color:var(--ink)}
.item h3 a,.deal td a.dlink,.term dt a{color:inherit;text-decoration:none}
.item h3 a:hover,.deal td a.dlink:hover strong,.term dt a:hover{color:var(--copper)}
.yearhead{font:500 .9rem var(--f-sans);color:var(--soft);padding-top:26px}
.pagenav{display:flex;flex-wrap:wrap;gap:8px 14px;font:500 .95rem var(--f-sans);align-items:center}
.pagenav [aria-current]{color:var(--ink);text-decoration:none}
.cotab td,.cotab th{vertical-align:top}
.cotab tbody th{font:500 .92rem/1.5 var(--f-sans);color:var(--ink);border-bottom:1px solid var(--hair);white-space:normal;min-width:110px}
.cotab .v{font:500 1rem var(--f-sans);font-variant-numeric:tabular-nums;white-space:nowrap}
.cotab .v .meta{display:block;white-space:normal}
.cotab td.d{font:400 .9rem/1.5 var(--f-sans);color:var(--soft);white-space:nowrap}
.cotab td.s{font-size:.92rem;color:var(--soft);min-width:220px}
.qlock{border-top:1px solid var(--hair);padding-top:12px;display:grid;gap:4px}
.qlock p{margin:0}
.qlock .q{font:500 1rem/1.4 var(--f-sans)}
