:root{--ink:#142033;--ink-soft:#3a4a63;--paper:#f4ecd9;--paper-2:#ebe1c8;--navy:#101c31;--navy-2:#18263f;--magenta:#b31b4a;--chart:#1d4e8c;--ok:#1c6b48;--warn:#9a4d12;--rule:#14203324;--white:#fbf7ee;--shadow:0 0 0 1px var(--rule);color:var(--ink);background:var(--paper);font-synthesis:none;text-rendering:optimizelegibility;font-family:IBM Plex Sans,Segoe UI,sans-serif;line-height:1.45}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}button,input,select{font:inherit;color:inherit}button{cursor:pointer}a{color:var(--chart)}.app{grid-template-columns:248px 1fr;min-height:100vh;display:grid}.rail{background:var(--navy);color:var(--paper);flex-direction:column;gap:28px;height:100vh;padding:28px 18px 24px;display:flex;position:sticky;top:0}.brand{flex-direction:column;gap:4px;padding:0 8px;display:flex}.brand strong{letter-spacing:-.03em;font-family:Fraunces,Georgia,serif;font-size:28px;font-weight:650}.brand span{letter-spacing:.12em;text-transform:uppercase;color:#c9d2e0;font-family:IBM Plex Mono,monospace;font-size:11px}.nav{flex-direction:column;gap:4px;display:flex}.nav button{text-align:left;color:#d5deea;background:0 0;border:0;border-radius:2px;padding:9px 10px}.nav button:hover{background:var(--navy-2);color:var(--white)}.nav button.active{background:var(--paper);color:var(--navy);font-weight:600}.rail-foot{color:#b7c2d2;border-top:1px solid #f3ecd924;margin-top:auto;padding:12px 10px 0;font-size:12px}.rail-foot b{color:var(--paper);font-weight:600}.stage{max-width:1080px;padding:36px 48px 64px}.kicker{letter-spacing:.16em;text-transform:uppercase;color:var(--magenta);margin:0 0 8px;font-family:IBM Plex Mono,monospace;font-size:11px}h1,h2,h3{letter-spacing:-.03em;margin:0;font-family:Fraunces,Georgia,serif}h1{font-size:40px;font-weight:650;line-height:1.1}h2{font-size:26px;font-weight:650}h3{font-size:18px;font-weight:650}.lede{color:var(--ink-soft);max-width:62ch;margin:12px 0 0;font-size:17px}.row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.grid{gap:14px;display:grid}.grid.two{grid-template-columns:1.4fr 1fr}.grid.three{grid-template-columns:repeat(3,1fr)}.grid.cards{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.panel{background:var(--white);border:1px solid var(--rule);padding:18px 18px 16px}a.panel{color:inherit;text-decoration:none;display:block}a.panel:hover{border-color:var(--ink)}.panel.flat{background:0 0}.stat{flex-direction:column;gap:4px;display:flex}.stat .n{font-family:Fraunces,Georgia,serif;font-size:32px;line-height:1}.stat .l{color:var(--ink-soft);letter-spacing:.04em;text-transform:uppercase;font-size:12px}.bar{background:var(--paper-2);height:10px;display:flex;overflow:hidden}.bar>i{height:100%;display:block}.bar .reg{background:var(--magenta)}.bar .ops{background:var(--navy)}.bar .air{background:var(--chart)}.bar .wx{background:var(--warn)}.bar .load{background:var(--ok)}.btn{border:1px solid var(--ink);background:var(--ink);color:var(--paper);min-height:40px;padding:9px 14px}.btn.ghost{color:var(--ink);background:0 0}.btn.magenta{background:var(--magenta);border-color:var(--magenta)}.btn:disabled{opacity:.45;cursor:not-allowed}.pill{border:1px solid var(--rule);color:var(--ink-soft);background:var(--white);align-items:center;gap:6px;padding:3px 8px;font-size:12px;display:inline-flex}.pill.ok{color:var(--ok);border-color:color-mix(in srgb, var(--ok) 40%, white)}.pill.bad{color:var(--magenta)}.lesson-list{flex-direction:column;display:flex}.lesson-list button{text-align:left;background:var(--white);border:1px solid var(--rule);border-bottom:0;grid-template-columns:48px 1fr auto;align-items:center;gap:14px;padding:14px 16px;display:grid}.lesson-list button:last-child{border-bottom:1px solid var(--rule)}.lesson-list button:hover{background:var(--paper-2)}.lesson-list .num{color:var(--magenta);font-family:IBM Plex Mono,monospace;font-size:13px}.lesson-list small{color:var(--ink-soft)}.prose{max-width:70ch}.prose p{margin:0 0 14px}.prose ul{margin:0 0 14px;padding-left:18px}.prose li{margin:0 0 6px}.prose table{border-collapse:collapse;width:100%;margin:0 0 16px;font-size:14px}.prose th,.prose td{border-bottom:1px solid var(--rule);text-align:left;vertical-align:top;padding:8px 8px 8px 0}.prose th{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);font-size:11px;font-weight:600}.callout{border-left:3px solid var(--chart);background:color-mix(in srgb, var(--chart) 8%, var(--white));margin:0 0 16px;padding:12px 14px}.callout.rule{border-color:var(--navy);background:color-mix(in srgb, var(--navy) 7%, var(--white))}.callout.trap{border-color:var(--magenta);background:color-mix(in srgb, var(--magenta) 8%, var(--white))}.callout.tip{border-color:var(--ok);background:color-mix(in srgb, var(--ok) 8%, var(--white))}.callout strong{margin-bottom:4px;display:block}.takeaways{background:var(--navy);color:var(--paper);margin:20px 0;padding:18px}.takeaways ol{margin:8px 0 0;padding-left:18px}.q-prompt{max-width:70ch;margin:8px 0 18px;font-size:18px}.choices{flex-direction:column;gap:8px;display:flex}.choices button{text-align:left;background:var(--white);border:1px solid var(--rule);padding:12px 14px}.choices button:hover:not(:disabled){border-color:var(--ink)}.choices button.picked{border-color:var(--ink);box-shadow:inset 3px 0 0 var(--ink)}.choices button.good{border-color:var(--ok);box-shadow:inset 3px 0 0 var(--ok)}.choices button.bad{border-color:var(--magenta);box-shadow:inset 3px 0 0 var(--magenta)}.explain{background:var(--white);border:1px solid var(--rule);margin-top:14px;padding:14px}.exam-meta{border-bottom:1px solid var(--rule);justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:18px;padding-bottom:12px;font-family:IBM Plex Mono,monospace;font-size:13px;display:flex}.dots{flex-wrap:wrap;gap:4px;margin:16px 0;display:flex}.dots button{border:1px solid var(--rule);background:var(--white);width:28px;height:28px;padding:0;font-size:11px}.dots button.on{background:var(--navy);color:var(--paper);border-color:var(--navy)}.dots button.ans{outline:2px solid color-mix(in srgb, var(--ok) 50%, white)}.dots button.flag{background:color-mix(in srgb, var(--warn) 22%, white)}.flash{text-align:center;background:var(--white);border:1px solid var(--rule);cursor:pointer;justify-content:center;align-items:center;min-height:220px;padding:32px;font-family:Fraunces,Georgia,serif;font-size:22px;display:flex}.field{gap:8px;margin:10px 0 0;display:flex}.field input{border:1px solid var(--rule);background:var(--white);flex:1;padding:10px 12px}.air-grid{grid-template-columns:180px 1fr;align-items:start;gap:18px;display:grid}.stack{border:1px solid var(--rule);background:#d9e6f4;height:360px;position:relative}.stack button{background:color-mix(in srgb, var(--fill,#fff) 82%, white);color:var(--ink);text-align:left;border:1px dashed #0000;padding:8px 10px;font-size:12px;position:absolute;left:12px;right:12px}.stack button:hover,.stack button.on{border-color:var(--ink)}.metar{background:var(--navy);color:var(--paper);letter-spacing:.02em;overflow-wrap:anywhere;padding:14px 16px;font-family:IBM Plex Mono,monospace;font-size:14px}.muted{color:var(--ink-soft)}.fine{color:var(--ink-soft);font-size:13px}hr.rule{border:0;border-top:1px solid var(--rule);margin:22px 0}.listen{z-index:6;background:var(--white);border:1px solid var(--rule);margin:16px 0 18px;padding:12px 14px 10px;position:sticky;top:0}.listen.on{border-color:var(--magenta)}.listen .fine{margin:8px 0 0}.listen-field{align-items:center;gap:8px;display:inline-flex}.listen-field select{border:1px solid var(--rule);background:var(--paper);max-width:180px;padding:6px 8px}.speaking{outline:2px solid color-mix(in srgb, var(--magenta) 50%, white);background:color-mix(in srgb, var(--magenta) 8%, var(--white));scroll-margin-top:96px}.takeaways.speaking{background:var(--navy);outline-color:#e2b4c4}.prose .speaking{cursor:pointer}.day-strip{grid-template-columns:repeat(5,1fr);gap:8px;display:grid}.day-strip .day{background:var(--white);border:1px solid var(--rule);text-align:left;min-height:72px;padding:10px 10px 12px;font-size:13px}.day-strip .day span{letter-spacing:.08em;text-transform:uppercase;color:var(--magenta);margin-bottom:4px;font-family:IBM Plex Mono,monospace;font-size:11px;display:block}.day-strip .day.on{border-color:var(--ink)}.day-strip .day.done{background:var(--navy);color:var(--paper)}.day-strip .day.done span{color:#e2b4c4}.lecture-list{margin:8px 0 12px;padding-left:0;list-style:none}.lecture-list li{grid-template-columns:42px 1fr;gap:8px;margin:0 0 6px;display:grid}.lecture-list .num{color:var(--magenta);font-family:IBM Plex Mono,monospace;font-size:12px}.link-list{margin:8px 0 0;padding-left:18px}.link-list li{margin:0 0 4px}.figure-frame{background:var(--white);border:1px solid var(--rule);max-width:70ch;margin:0 0 20px;padding:14px}.figure-art{margin:10px 0 8px}.figure-svg{width:100%;height:auto;color:var(--ink);display:block}.figure-svg.on-dark{color:var(--paper)}.figure-svg .fig-label{fill:currentColor;font-family:IBM Plex Mono,monospace;font-size:12px}.fig-hit{cursor:pointer}.figure-steps{flex-wrap:wrap;gap:6px;margin:8px 0;display:flex}.figure-steps button{border:1px solid var(--rule);background:var(--paper);padding:6px 10px;font-size:12px}.figure-steps button.on{background:var(--navy);color:var(--paper);border-color:var(--navy)}.watch-root{z-index:40;background:#0b1220;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:12px;display:flex;position:fixed;inset:0}.watch-stage{aspect-ratio:16/9;background:var(--navy);width:min(100%,177.778vh - 248.889px);max-width:1280px;color:var(--paper);grid-template-rows:auto 1fr auto auto;padding:14px 18px 12px;display:grid;overflow:hidden}.watch-root:not(:has(.watch-hud)) .watch-stage{width:min(100%,177.778vh)}.watch-kicker{letter-spacing:.12em;text-transform:uppercase;color:#e2b4c4;margin:0 0 8px;font-family:IBM Plex Mono,monospace;font-size:11px}.watch-art{min-height:0}.watch-art .figure-svg{object-fit:contain;width:100%;height:100%;max-height:100%}.watch-titlecard{flex-direction:column;justify-content:center;gap:12px;height:100%;display:flex}.watch-titlecard h1{color:var(--paper);font-size:42px}.watch-line{color:#d5deea;max-height:4.2em;margin:8px 0 0;font-size:15px;line-height:1.35;overflow:hidden}.watch-count{color:#c9d2e0;margin:4px 0 0;font-family:IBM Plex Mono,monospace;font-size:11px}.watch-hud{background:var(--white);width:min(100%,1280px);color:var(--ink);padding:10px 12px}.watch-hud .fine{margin:8px 0 0}@media (width<=860px){.app{grid-template-columns:1fr}.rail{height:auto;position:relative}.stage{padding:24px 18px 48px}.grid.two,.grid.three,.air-grid,.day-strip{grid-template-columns:1fr}h1{font-size:32px}.watch-titlecard h1{font-size:28px}}
