:root{--paper:#fafaf7;--card:#fff;--ink:#15191c;--dim:#5b6367;--line:#d9ddde;--teal:#0e7568;--teal-ink:#0a5a50;--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}html{scroll-padding-top:64px}body{background:var(--paper);color:var(--ink);font-family:var(--disp);-webkit-font-smoothing:antialiased}.top{height:48px;padding:0 20px;background:var(--paper);border-bottom:1.5px solid var(--ink);position:fixed;left:0;right:0;top:0}.brand{font:600 10px var(--mono);letter-spacing:.12em}.mark{width:13px;height:13px;background:var(--teal);clip-path:polygon(0 0,100% 0,100% 70%,70% 100%,0 100%)}.meta{font:600 10px var(--mono);letter-spacing:.12em;color:var(--dim)}.course-meter{display:flex;align-items:center;gap:7px}.course-meter .meter{display:block;width:80px;height:7px;border:1px solid var(--ink);background:var(--card)}.course-meter .meter i{display:block;height:100%;background:var(--teal);transition:width .35s cubic-bezier(.2,.8,.2,1)}.xp{border:1.5px solid var(--ink);background:var(--card);padding:4px 10px;box-shadow:3px 3px var(--line);color:var(--ink)}.xp b{color:var(--teal)}
.hero{margin-top:48px;min-height:calc(100vh - 48px);border-bottom:1.5px solid var(--ink);grid-template-columns:1.03fr .97fr}.hero-copy{padding:clamp(42px,6vw,88px)}.eyebrow{display:inline-block;width:max-content;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}.zero{font-family:var(--disp);font-variation-settings:'wdth' 67,'wght' 850;-webkit-text-stroke:1.5px var(--teal);margin:26px 0}.hero h1,.heading h2,.audit h2,.content h3{font-family:var(--disp);font-variation-settings:'wdth' 72,'wght' 850;text-transform:uppercase}.hero h1{font-size:clamp(48px,6.3vw,88px);line-height:.9}.hero p{color:#3d4448;line-height:1.55}.visual{background:#102a25}.visual:before{background-size:28px 28px}.visual svg{width:90%;max-height:78vh}
.btn{border:1.5px solid var(--ink);background:var(--paper);box-shadow:none;padding:11px 17px;font:700 10.5px var(--mono);letter-spacing:.1em;transition:transform .12s,box-shadow .12s,background .15s}.btn:hover:not(:disabled){transform:translate(-2px,-2px);box-shadow:4px 4px var(--line)}.btn.primary{background:var(--teal);border-color:var(--teal)}
.wrap{width:min(1120px,calc(100% - 40px))}.intro{grid-template-columns:.65fr 1.65fr;padding:64px 0;border-bottom:1.5px solid var(--ink)}.intro p{font-variation-settings:'wdth' 80,'wght' 650}.heading{padding:56px 0 20px}.heading h2{font-size:clamp(28px,4vw,44px)}.heading p{font-size:14px;line-height:1.55}.unit{border:1.5px solid var(--ink);box-shadow:6px 6px var(--line);margin-bottom:16px}.unit-head{grid-template-columns:54px 1fr auto auto;min-height:64px;border:0;background:var(--card);padding:13px 17px}.unit-head:hover{background:var(--soft)}.num{width:42px;height:34px;background:var(--teal);font:700 11px var(--mono)}.unit-title{font-variation-settings:'wdth' 78,'wght' 820;text-transform:uppercase;font-size:21px}.unit-meta{font:9.5px var(--mono);letter-spacing:.12em}.rows{border-top:1.5px solid var(--ink)}.row{grid-template-columns:62px 1fr auto;min-height:62px;border-bottom:1.5px dashed var(--line)}.code{font:700 10px var(--mono);color:var(--dim)}.row-name{font-size:14px}.row-name small{font:700 9px var(--mono);letter-spacing:.12em}.start{border:1.5px solid var(--teal);background:var(--teal);margin-right:16px;padding:8px 12px;font:700 9px var(--mono)}.start:hover{background:var(--ink);border-color:var(--ink)}.row.done{background:var(--soft)}
.audit{background:#102a25;border:1.5px solid var(--ink);padding:42px}.audit h2{font-size:clamp(28px,4vw,42px)}.audit-card{min-height:105px}.audit-card b{font-family:var(--disp);font-variation-settings:'wdth' 86,'wght' 750}.footer{border-top:1.5px solid var(--ink);padding-top:24px}
dialog{inset:0;width:100vw;max-width:none;height:100vh;max-height:none;margin:0;background:var(--paper);box-shadow:none}dialog::backdrop{background:#07120fdc}.shell{grid-template-rows:48px 1fr 64px}.modal-top,.modal-bottom{padding:0 20px;background:var(--paper)}.modal-top{border-bottom:1.5px solid var(--ink)}.modal-bottom{border-top:1.5px solid var(--ink)}.modal-top h2{font-variation-settings:'wdth' 82,'wght' 760;text-transform:uppercase}.close{border:1.5px solid var(--ink);background:var(--paper)}.close:hover{background:var(--ink);color:#fff}.body{grid-template-columns:250px 1fr}.steps{background:#edf0ec;border-right:1.5px solid var(--ink)}.step{border-bottom:1px dashed #bdc6c0}.step.current .dot,.step.past .dot{background:var(--teal)}.content{padding:clamp(24px,5vw,58px)}.content h3{font-size:clamp(32px,5vw,58px);line-height:.96}.lead{font-size:clamp(16px,2vw,19px);line-height:1.55;color:#3d4448}.card,.lab{border:1.5px solid var(--ink);background:var(--card);padding:17px}.lab{box-shadow:6px 6px var(--line)}.card b,.lab h4{font:700 9.5px var(--mono);letter-spacing:.13em;color:var(--teal)}.eq{background:#102a25;color:#c7ffef;font:14px/1.7 var(--mono)}.note,.feedback{border:1.5px solid var(--navy);border-left:5px solid var(--navy);background:var(--navysoft)}.feedback.good{border-color:var(--teal);background:var(--soft)}.choice{border:1.5px solid var(--ink);background:var(--card);transition:transform .12s,box-shadow .12s,background .15s}.choice:hover{transform:translate(-2px,-2px);box-shadow:4px 4px var(--line)}.control input{accent-color:var(--teal)}.lab svg{background:#f0f6f3;border:1.5px solid var(--ink);max-height:38vh}.score{background:#102a25}.score strong{color:#aaffdf}.modal-bottom .btn{box-shadow:none}.modal-bottom .btn:hover:not(:disabled){transform:none;box-shadow:none;background:var(--ink);color:#fff}.modal-bottom .btn.primary{background:var(--teal);color:#fff}
.edge{stroke:#85a79f;stroke-width:1;opacity:.5}.flow,.flowdash{stroke:#a9ffe5;stroke-dasharray:5 10;animation:course00flow 1.5s linear infinite}.node.hot{animation:course00pulse 1.6s ease-in-out infinite}.agent{transition:height .35s cubic-bezier(.2,.8,.2,1),background .2s}.generation{background:#102a25}@keyframes course00flow{to{stroke-dashoffset:-24}}@keyframes course00pulse{0%,100%{fill:#102a25;filter:none}50%{fill:#16927b;filter:drop-shadow(0 0 10px #8fffdc)}}
.data-flow{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;margin:20px 0}.data-flow span{border:1.5px solid var(--ink);background:var(--soft);padding:10px 12px;font:700 10px var(--mono);letter-spacing:.05em}.data-flow b{color:var(--teal)}.split-bar{height:28px;border:1.5px solid var(--ink);display:flex;margin:20px 0;overflow:hidden}.split-bar i{display:block;transition:width .35s cubic-bezier(.2,.8,.2,1)}.split-bar i:nth-child(1){background:var(--teal)}.split-bar i:nth-child(2){background:var(--ochre)}.split-bar i:nth-child(3){background:var(--maroon)}.metric-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:16px 0}.metric{border:1.5px solid var(--ink);background:var(--card);padding:14px}.metric b{display:block;font:800 26px var(--disp);color:var(--ink)}.metric span{font:700 8.5px var(--mono);letter-spacing:.1em;color:var(--dim)}.metric.train{border-top:5px solid var(--teal)}.metric.val{border-top:5px solid var(--ochre)}.metric.test{border-top:5px solid var(--maroon)}
@media(max-width:820px){.hero{grid-template-columns:1fr}.visual{min-height:390px}.intro{grid-template-columns:1fr}.body{grid-template-columns:1fr}.steps{display:none}.concepts{grid-template-columns:1fr}.grid{grid-template-columns:1fr 1fr}.crumb{display:none}}
@media(max-width:560px){.top{padding:0 12px}.course-meter{display:none}.wrap{width:min(100% - 24px,1120px)}.hero-copy{padding:42px 24px}.hero h1{font-size:48px}.unit-meta{display:none}.unit-head{grid-template-columns:46px 1fr auto}.row{grid-template-columns:48px 1fr}.start{grid-column:2;width:max-content;margin:0 0 13px}.grid{grid-template-columns:1fr}.audit{padding:26px 20px}.modal-top,.modal-bottom{padding:0 12px}.content{padding:24px 18px}.concepts,.metric-grid{grid-template-columns:1fr}.control{grid-template-columns:100px 1fr 45px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
