:root{--paper:#fafaf7;--card:#fff;--ink:#15191c;--dim:#5b6367;--line:#d9ddde;--teal:#0e7568;--teal2:#12a38f;--soft:#e9f3f0;--navy:#2b4a8a;--navysoft:#e9eef7;--ochre:#8a6a1f;--ochresoft:#f5efdd;--maroon:#8e2f44;--maroonsoft:#f6e9ec;--mono:'IBM Plex Mono',ui-monospace,monospace;--disp:'Archivo',system-ui,sans-serif}
*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{background:var(--paper);color:var(--ink);font-family:var(--disp);overflow:hidden;-webkit-font-smoothing:antialiased}button,input{font:inherit}button{color:inherit}::selection{background:var(--teal);color:#fff}
.chrome-top,.chrome-bot{position:fixed;left:0;right:0;z-index:30;background:var(--paper);display:flex;align-items:center}.chrome-top{top:0;height:48px;border-bottom:1.5px solid var(--ink);padding:0 20px;justify-content:space-between;font:600 10px var(--mono);letter-spacing:.12em;text-transform:uppercase}.brand{display:flex;align-items:center;gap:9px}.brand i{width:13px;height:13px;background:var(--teal);clip-path:polygon(0 0,100% 0,100% 70%,70% 100%,0 100%)}.topmeta{display:flex;align-items:center;gap:15px;color:var(--dim)}.xp{border:1.5px solid var(--ink);background:#fff;padding:4px 10px;box-shadow:3px 3px var(--line);color:var(--ink)}.xp b{color:var(--teal)}
.chrome-bot{bottom:0;height:64px;border-top:1.5px solid var(--ink);padding:0 20px;justify-content:space-between;gap:12px}.navbtn,.btn{font:700 11px var(--mono);letter-spacing:.1em;text-transform:uppercase;border:1.5px solid var(--ink);background:var(--paper);padding:11px 17px;cursor:pointer;transition:.15s}.navbtn:hover:not(:disabled),.btn:hover:not(:disabled){transform:translate(-2px,-2px);box-shadow:4px 4px var(--line)}.navbtn.primary,.btn.primary{background:var(--teal);border-color:var(--teal);color:#fff}.navbtn:disabled,.btn:disabled{opacity:.25;cursor:default;transform:none;box-shadow:none}.navbtn.armed{animation:arm 1.4s ease-in-out infinite}@keyframes arm{50%{box-shadow:0 0 0 8px rgba(14,117,104,0)}0%,100%{box-shadow:0 0 0 0 rgba(14,117,104,.4)}}
.pips{display:flex;gap:9px}.pip{width:12px;height:12px;border:1.5px solid var(--ink);transform:rotate(45deg)}.pip.done{background:var(--teal);border-color:var(--teal);cursor:pointer}.pip.now{background:var(--ochre);border-color:var(--ochre)}
.deck{position:fixed;inset:48px 0 64px}.slide{position:absolute;inset:0;padding:22px 20px;overflow:auto;opacity:0;transform:translateX(44px);pointer-events:none;transition:opacity .38s,transform .38s cubic-bezier(.2,.8,.2,1)}.slide.active{opacity:1;transform:none;pointer-events:auto}.slide.exit{transform:translateX(-44px)}.sin{width:min(980px,100%);min-height:100%;margin:auto;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:clamp(10px,1.7vh,18px);text-align:center}
.kicker,.eyebrow{font:700 9.5px var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--teal);border:1px solid var(--teal);background:var(--soft);padding:5px 11px}.kicker.warm{color:var(--ochre);border-color:var(--ochre);background:var(--ochresoft)}h1,h2{font-variation-settings:'wdth' 72,'wght' 850;text-transform:uppercase;line-height:.96}h1{font-size:clamp(34px,min(7vw,7vh),68px);max-width:940px}h2{font-size:clamp(25px,min(5vw,5.2vh),49px);max-width:890px}.accent{color:var(--teal)}.hot{color:var(--maroon)}.say{font-size:clamp(13.5px,min(2vw,2vh),17px);line-height:1.55;color:#3d4448;max-width:730px}.say b{color:var(--ink)}
.facts{display:flex;flex-wrap:wrap;justify-content:center;border:1.5px solid var(--ink);background:#fff;box-shadow:5px 5px var(--line);font:9px var(--mono);letter-spacing:.1em;text-transform:uppercase}.facts span{padding:9px 16px;border-right:1px solid var(--line);color:var(--dim)}.facts span:last-child{border:0}.facts b{display:block;color:var(--ink);font-size:12px;margin-top:2px}.start{font:700 12px var(--mono);letter-spacing:.13em;text-transform:uppercase;background:var(--teal);color:#fff;border:0;padding:16px 32px;cursor:pointer}.start:hover{background:var(--ink)}
.lab{width:min(900px,100%);border:1.5px solid var(--ink);background:#fff;box-shadow:6px 6px var(--line);position:relative;padding:15px}.labtag{position:absolute;left:-1.5px;top:-1.5px;background:var(--ink);color:#fff;padding:5px 10px;font:700 9px var(--mono);letter-spacing:.12em;text-transform:uppercase;z-index:2}.lab svg{display:block;width:100%;height:auto;max-height:34vh;min-height:190px}.wire{fill:none;stroke:var(--line);stroke-width:2}.wire.live{stroke:var(--teal);stroke-dasharray:5 7;animation:flow 1.2s linear infinite}@keyframes flow{to{stroke-dashoffset:-24}}.node{fill:#fff;stroke:var(--ink);stroke-width:2}.node.live{fill:var(--teal);stroke:var(--teal)}.node.hot{fill:var(--ochre);stroke:var(--ochre)}.svglabel{font:600 11px var(--mono);letter-spacing:.06em;fill:var(--ink)}.svgdim{font:9px var(--mono);fill:var(--dim);letter-spacing:.05em}.pulse{animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{50%{opacity:.25}}.float{animation:float 3s ease-in-out infinite;transform-box:fill-box;transform-origin:center}@keyframes float{50%{transform:translateY(-7px)}}
.controls{width:min(850px,100%);display:flex;gap:10px;align-items:center;justify-content:center;flex-wrap:wrap}.control{min-width:230px;flex:1;text-align:left;border:1.5px solid var(--ink);background:#fff;padding:10px 13px}.control label{display:flex;justify-content:space-between;font:700 9px var(--mono);letter-spacing:.1em;text-transform:uppercase}.control output{color:var(--teal);font-size:12px}.control input{width:100%;accent-color:var(--teal)}
.readouts{display:flex;gap:9px;justify-content:center;flex-wrap:wrap;width:min(850px,100%)}.readout{flex:1;min-width:130px;border:1.5px solid var(--ink);background:#fff;padding:8px 12px;text-align:left}.readout small{display:block;font:8px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--dim)}.readout strong{font-size:25px;font-variation-settings:'wdth' 75,'wght' 850}.readout.good strong{color:var(--teal)}.readout.bad strong{color:var(--maroon)}
.feedback{display:none;width:min(850px,100%);text-align:left;border:1.5px solid var(--teal);background:var(--soft);padding:11px 14px;font-size:13.5px;line-height:1.5}.feedback.show{display:block;animation:pop .25s ease}.feedback.bad{border-color:var(--maroon);background:var(--maroonsoft)}.feedback b:first-child{display:block;font:700 9px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--teal);margin-bottom:4px}.feedback.bad b:first-child{color:var(--maroon)}@keyframes pop{from{opacity:0;transform:translateY(7px)}}
.under{width:min(850px,100%);border:1.5px dashed var(--ink);background:var(--paper);text-align:left}.under summary{cursor:pointer;padding:9px 12px;font:700 9px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--navy);list-style:none}.under summary::-webkit-details-marker{display:none}.under summary:after{content:' + OPEN';float:right;color:var(--dim)}.under[open] summary:after{content:' − CLOSE'}.under div{border-top:1px dashed var(--line);padding:10px 12px;font:12px/1.55 var(--mono);color:#343b40}.under code{color:var(--teal);font-weight:700}
.university{width:min(900px,100%);border:2px solid var(--navy);background:var(--card);text-align:left;box-shadow:5px 5px var(--navysoft)}.university summary{cursor:pointer;padding:11px 14px;font:700 9px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--navy);list-style:none}.university summary::-webkit-details-marker{display:none}.university summary span{display:inline-block;background:var(--navy);color:#fff;padding:4px 7px;margin:-4px 5px -4px -6px}.university summary:after{content:' + ENTER';float:right;color:var(--navy)}.university[open] summary:after{content:' − LEAVE'}.uni-body{border-top:1.5px solid var(--navy);display:grid;grid-template-columns:minmax(280px,.9fr) minmax(320px,1.1fr);background:linear-gradient(135deg,var(--navysoft),#fff 52%)}.uni-visual{min-width:0;border-right:1px solid var(--line);padding:14px;position:relative;display:grid;place-items:center}.uni-visual>span{position:absolute;left:12px;top:10px;font:700 8px var(--mono);letter-spacing:.13em;color:var(--navy)}.uni-visual svg{display:block;width:100%;height:auto;max-height:260px}.uni-copy{padding:18px}.uni-copy h3{font-size:clamp(18px,2.2vw,25px);font-variation-settings:'wdth' 80,'wght' 800;line-height:1.05;text-transform:uppercase;margin-bottom:9px}.uni-copy>p{font-size:13px;line-height:1.55;color:#343b40}.uni-formula{display:inline-block;border-left:4px solid var(--teal);background:var(--soft);padding:7px 10px;margin-bottom:10px;font:700 11px/1.4 var(--mono);color:var(--teal)}.uni-notes{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.uni-notes p{border:1px solid var(--line);background:#fff;padding:9px;font-size:11.5px;line-height:1.5}.uni-notes b{display:block;font:700 8px var(--mono);letter-spacing:.12em;color:var(--ochre);margin-bottom:4px}.uni-notes p:last-child b{color:var(--maroon)}.uni-gridline{fill:none;stroke:var(--line);stroke-width:1}.uni-curve{fill:none;stroke:var(--navy);stroke-width:4;stroke-dasharray:7 6;animation:flow 1.5s linear infinite}.uni-runner,.uni-packet{fill:var(--ochre);stroke:#fff;stroke-width:2}.uni-matrix rect{fill:var(--navysoft);stroke:var(--navy);stroke-width:1;animation:matrixPulse 2.3s ease-in-out infinite}@keyframes matrixPulse{50%{fill:var(--teal);opacity:.7}}.uni-ring{fill:none;stroke:var(--navy);stroke-width:3;stroke-dasharray:5 7}.uni-orbit{fill:var(--ochre);transform-origin:310px 105px;animation:orbit 5s linear infinite}@keyframes orbit{to{transform:rotate(360deg)}}
.kicker.foundation{color:var(--navy);border-color:var(--navy);background:var(--navysoft)}.briefing .sin{justify-content:flex-start;padding:12px 0 24px}.brief-top{width:min(900px,100%);display:grid;grid-template-columns:1.15fr .85fr;border:1.5px solid var(--ink);background:#fff;box-shadow:6px 6px var(--line);text-align:left}.brief-visual{position:relative;min-width:0;padding:15px;border-right:1px solid var(--line)}.brief-visual>span{position:absolute;top:10px;left:12px;font:700 8px var(--mono);letter-spacing:.13em;color:var(--navy)}.brief-visual svg{display:block;width:100%;max-height:225px}.brief-walk{padding:18px;background:var(--ochresoft);display:flex;flex-direction:column;justify-content:center}.brief-walk>b,.ready>strong{font:700 9px var(--mono);letter-spacing:.13em;color:var(--ochre);margin-bottom:8px}.brief-walk p{font-size:13px;line-height:1.55}.glossary{width:min(900px,100%);display:grid;grid-template-columns:repeat(3,1fr);gap:8px;text-align:left}.glossary article{display:flex;gap:9px;border:1.5px solid var(--ink);background:#fff;padding:11px;min-height:100px}.glossary i{font:700 9px var(--mono);color:var(--teal);font-style:normal}.glossary h3{font-size:14px;text-transform:uppercase;margin-bottom:4px}.glossary p{font-size:11.5px;line-height:1.45;color:#41484b}.ready{width:min(900px,100%);border:1.5px solid var(--teal);background:var(--soft);padding:11px 14px;display:grid;grid-template-columns:1.1fr repeat(3,1fr);gap:12px;text-align:left;align-items:start}.ready>strong{color:var(--teal);margin:0}.ready span{font-size:11.5px;line-height:1.4}
.choices{display:grid;grid-template-columns:repeat(2,1fr);gap:9px;width:min(850px,100%)}.choice{text-align:left;border:1.5px solid var(--ink);background:#fff;padding:12px 14px;cursor:pointer;font-size:13.5px;line-height:1.4;transition:.13s}.choice:hover:not(:disabled){transform:translate(-2px,-2px);box-shadow:4px 4px var(--line)}.choice.correct{background:var(--soft);border-color:var(--teal)}.choice.wrong{background:var(--maroonsoft);border-color:var(--maroon)}.choice:disabled{cursor:default}.choice .key{font:700 10px var(--mono);border:1px solid currentColor;padding:2px 5px;margin-right:7px}
.tokenline{display:flex;gap:6px;justify-content:center;flex-wrap:wrap;padding:28px 10px}.token{border:1.5px solid var(--ink);padding:9px 11px;background:var(--navysoft);font:700 13px var(--mono);animation:tokenin .35s both}.token:nth-child(3n){background:var(--ochresoft)}.token:nth-child(3n+1){background:var(--soft)}@keyframes tokenin{from{opacity:0;transform:translateY(10px) rotate(2deg)}}
.heat{display:grid;gap:4px;width:min(760px,100%);border:1.5px solid var(--ink);background:#fff;padding:12px}.heatrow{display:grid;grid-template-columns:120px repeat(6,1fr);gap:4px;align-items:center}.heatrow b{font:9px var(--mono);text-align:right;padding-right:7px}.cell{height:34px;border:1px solid var(--line);display:grid;place-items:center;font:9px var(--mono);cursor:pointer}.cell.on{outline:2px solid var(--ink)}
.case{width:min(780px,100%);display:grid;grid-template-columns:1fr 1fr;border:1.5px solid var(--ink);background:#fff;text-align:left}.case>div{padding:15px;border-right:1px solid var(--line)}.case>div:last-child{border:0}.case h3{font:700 10px var(--mono);letter-spacing:.12em;text-transform:uppercase;margin-bottom:8px;color:var(--teal)}.case p{font-size:13px;line-height:1.5}.claim{border-left:4px solid var(--ochre);background:var(--ochresoft);padding:10px;margin-top:8px}.evidence{border-left:4px solid var(--teal);background:var(--soft);padding:10px;margin-top:8px}
.sourcegrid,.takeaways{width:min(880px,100%);display:grid;gap:8px;text-align:left}.sourcegrid{grid-template-columns:repeat(2,1fr)}.source,.take{border:1.5px solid var(--ink);background:#fff;padding:11px 13px;font-size:12.5px;line-height:1.45}.source a{color:var(--teal);font:700 10px var(--mono);letter-spacing:.04em}.source small{display:block;color:var(--dim);margin-top:3px}.take{display:flex;gap:10px;align-items:flex-start}.take i{width:20px;height:20px;display:grid;place-items:center;flex:none;border:1.5px solid var(--teal);color:var(--teal);font:700 11px var(--mono)}
.endrow{display:grid;grid-template-columns:1.15fr .85fr;gap:12px;width:min(850px,100%)}.scorecard,.nextcard{border:2px solid var(--ink);background:#fff;box-shadow:5px 5px var(--line);padding:16px;text-align:left}.scorecard span,.nextcard small{display:block;font:700 9px var(--mono);letter-spacing:.11em;text-transform:uppercase;color:var(--dim)}.scorecard strong{display:block;font-size:42px;color:var(--teal)}.nextcard b{display:block;font-size:18px;margin:8px 0 12px}.nextcard a{display:inline-block;text-decoration:none;background:var(--teal);color:#fff;padding:10px 13px;font:700 10px var(--mono);letter-spacing:.08em;text-transform:uppercase}
#toast{position:fixed;right:20px;bottom:80px;z-index:60;background:var(--ink);color:#fff;padding:10px 14px;font:700 10px var(--mono);letter-spacing:.1em;transform:translateX(130%);transition:.25s}#toast.up{transform:none}#toast b{color:#63d8c8}
@media(max-width:700px){.crumb,.pips{display:none}.choices,.sourcegrid,.endrow,.case,.uni-body,.uni-notes,.brief-top,.glossary,.ready{grid-template-columns:1fr}.case>div,.uni-visual,.brief-visual{border-right:0;border-bottom:1px solid var(--line)}.lab svg{min-height:160px}.slide{padding:16px 12px}.chrome-top,.chrome-bot{padding-left:12px;padding-right:12px}.facts span{padding:7px 10px}.heatrow{grid-template-columns:70px repeat(6,1fr)}.cell{height:28px;font-size:7px}.university summary{line-height:1.65}.uni-copy{padding:14px}.briefing .sin{padding-top:2px}.glossary article{min-height:0}.ready{gap:8px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
body{--teal:#2b4a8a;--teal2:#4568ad;--soft:#e9eef7}
#toast{opacity:0;visibility:hidden}#toast.up{opacity:1;visibility:visible}
.promptflow{width:min(900px,100%);border:1.5px solid var(--ink);background:#fff;box-shadow:6px 6px var(--line);padding:18px}
.promptflow svg{display:block;width:100%;height:auto;max-height:270px}.pf-box{fill:#fff;stroke:var(--ink);stroke-width:2}.pf-box.active{fill:var(--soft);stroke:var(--teal)}.pf-line{fill:none;stroke:var(--teal);stroke-width:3;stroke-dasharray:8 7;animation:flow 1.4s linear infinite}.pf-token{fill:var(--ochre);animation:pfmove 4s ease-in-out infinite}.pf-text{font:700 10px var(--mono);letter-spacing:.08em;fill:var(--ink)}.pf-small{font:9px var(--mono);fill:var(--dim)}@keyframes pfmove{0%{transform:translateX(0)}50%{transform:translateX(565px)}100%{transform:translateX(0)}}
.brief5{width:min(900px,100%);display:grid;grid-template-columns:repeat(5,1fr);gap:7px}.brief5 article{border:1.5px solid var(--ink);background:#fff;padding:11px;text-align:left;min-height:120px}.brief5 i{display:block;font:700 9px var(--mono);color:var(--teal);font-style:normal}.brief5 b{display:block;margin:7px 0 5px;font-size:13px;text-transform:uppercase}.brief5 p{font-size:11px;line-height:1.45;color:var(--dim)}
.principle{width:min(850px,100%);border-left:5px solid var(--ochre);background:var(--ochresoft);padding:12px 15px;text-align:left;font-size:13px;line-height:1.55}.principle b{font:700 9px var(--mono);letter-spacing:.12em;color:var(--ochre);display:block;margin-bottom:4px}
.sourcegrid.three{grid-template-columns:repeat(3,1fr)}
@media(max-width:850px){.brief5{grid-template-columns:repeat(2,1fr)}.sourcegrid.three{grid-template-columns:1fr}}
@media(max-width:520px){.brief5{grid-template-columns:1fr}.promptflow{padding:8px}.promptflow svg{min-height:190px}}
/* course-05 sort lab */
.chips{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;width:min(880px,100%)}
.chip{border:1.5px solid var(--ink);background:#fff;padding:10px 13px;font-size:12.5px;line-height:1.4;cursor:pointer;text-align:left;transition:.13s}
.chip:hover:not(.correct){transform:translate(-2px,-2px);box-shadow:4px 4px var(--line)}
.chip.sel{outline:2.5px solid var(--ochre);background:var(--ochresoft)}
.chip.correct{background:var(--soft);border-color:var(--teal);cursor:default}
.chip.wrong{animation:shake .32s}
@keyframes shake{25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}
.zones{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;width:min(880px,100%)}
.zonebtn{border:2px solid var(--ink);background:#fff;padding:12px;cursor:pointer;font:700 11px var(--mono);letter-spacing:.1em;text-transform:uppercase;text-align:left;transition:.13s}
.zonebtn:hover{transform:translate(-2px,-2px);box-shadow:4px 4px var(--line)}
.zonebtn small{display:block;font:9px var(--mono);color:var(--dim);margin-top:4px;letter-spacing:.05em;text-transform:none}
.zonebtn .count{color:var(--teal)}
@media(max-width:700px){.zones{grid-template-columns:1fr}}
/* course-05 wow layer */
#pbar{position:fixed;top:48px;left:0;height:3px;width:0;background:var(--teal);z-index:35;transition:width .45s cubic-bezier(.2,.8,.2,1)}
.confetti i{position:fixed;top:-24px;z-index:90;animation:cfall linear forwards;pointer-events:none}
@keyframes cfall{to{transform:translateY(115vh) rotate(720deg);opacity:.85}}
.slotrow{width:min(880px,100%);display:grid;gap:7px}
.slot{display:flex;align-items:center;gap:10px;border:1.5px dashed var(--line);background:var(--paper);padding:9px 12px;min-height:42px;text-align:left;transition:.2s}
.slot i{width:22px;height:22px;flex:none;display:grid;place-items:center;border:1.5px solid var(--ink);font:700 11px var(--mono);font-style:normal}
.slot span{font-size:12.5px;line-height:1.35}
.slot.filled{border:1.5px solid var(--teal);background:var(--soft);animation:pop .25s ease}
.slot.filled i{background:var(--teal);border-color:var(--teal);color:#fff}
.kicker.hotk{color:var(--maroon);border-color:var(--maroon);background:var(--maroonsoft)}
/* simple 3-line intro (warm-up) */
.bigtake{width:min(760px,100%)}
.bigtake .take{padding:16px 18px;align-items:center}
.bigtake .take span{font-size:clamp(14.5px,2vw,17px);line-height:1.55}
.bigtake .take i{width:26px;height:26px;font-size:13px}
