:root{
  --bg:oklch(.25 .15 298);
  --bg-deep:oklch(.16 .09 298);
  --surface:oklch(.31 .18 300/.76);
  --surface-strong:oklch(.35 .19 300/.94);
  --surface-soft:oklch(.29 .12 298/.72);
  --fg:oklch(.98 .01 285);
  --muted:oklch(.80 .055 294);
  --border:oklch(.90 .15 195/.24);
  --accent:oklch(.91 .15 195);
  --violet:oklch(.58 .25 301);
  --purple:oklch(.45 .24 304);
  --yellow:oklch(.88 .17 93);
  --green:oklch(.82 .17 161);
  --danger:oklch(.70 .20 25);
  --shadow:0 18px 50px oklch(.12 .08 295/.38);
  --page:oklch(.965 .012 292);
  --paper:oklch(.995 .004 285);
  --paper-soft:oklch(.945 .025 297);
  --ink:oklch(.27 .055 296);
  --ink-muted:oklch(.50 .035 296);
  --line:oklch(.84 .035 296);
  --purple-deep:oklch(.37 .20 302);
  --cyan-dark:oklch(.52 .13 212);
  --shadow-soft:0 14px 36px oklch(.25 .055 296/.14);
  --font-body:"Fira Sans","Segoe UI",Arial,sans-serif;
  --font-mono:"Fira Mono",Consolas,"Courier New",monospace;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--page)}
body{min-width:320px;margin:0;color:var(--ink);font:400 15px/1.5 var(--font-body);background:
  radial-gradient(circle at 8% 0%,oklch(.90 .06 302/.72),transparent 30rem),
  radial-gradient(circle at 96% 18%,oklch(.93 .045 210/.58),transparent 34rem),
  linear-gradient(150deg,var(--paper),var(--page) 72%);min-height:100vh}
body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.35;background-image:linear-gradient(oklch(.56 .12 300/.09) 1px,transparent 1px),linear-gradient(90deg,oklch(.56 .12 300/.09) 1px,transparent 1px);background-size:48px 48px;mask-image:linear-gradient(to bottom,#000,transparent 68%)}
button,input{font:inherit}button,input[type=range]{cursor:pointer}
button{color:inherit}
:focus-visible{outline:3px solid var(--purple);outline-offset:3px}
.skip{position:fixed;left:14px;top:-60px;z-index:100;padding:10px 14px;background:var(--yellow);color:var(--bg-deep);font-weight:800}.skip:focus{top:12px}

.masthead{min-height:92px;display:grid;grid-template-columns:156px minmax(280px,1fr) 170px;align-items:stretch;border-bottom:1px solid var(--line);background:oklch(.995 .004 285/.96);box-shadow:0 8px 30px oklch(.25 .055 296/.11);position:relative;z-index:10;backdrop-filter:blur(14px)}
.brand-lockup{display:grid;place-items:center;padding:9px 14px;border-right:1px solid var(--line)}
.brand-lockup img{display:block;width:138px;height:62px;object-fit:contain;filter:drop-shadow(0 8px 16px oklch(.25 .055 296/.16))}
.title-block{align-self:center;min-width:0;padding:12px 20px}
.eyebrow,.section-index{margin:0;color:var(--purple);font:800 10px/1.2 var(--font-mono);letter-spacing:.12em;text-transform:uppercase}
.title-block h1{margin:2px 0 0;font-size:clamp(20px,2vw,28px);line-height:1.08;letter-spacing:-.035em}
.breadcrumb{display:flex;gap:8px;align-items:center;margin:4px 0 0;color:var(--ink-muted);font:600 10px var(--font-mono);letter-spacing:.045em;text-transform:uppercase}.breadcrumb b{color:var(--cyan-dark)}
.viewer-session-tabs{display:flex;align-items:center;gap:2px;padding:2px;border:1px solid var(--border);background:oklch(.17 .09 298/.58)}
.viewer-session-tabs button{position:relative;display:flex;align-items:center;justify-content:center;gap:6px;min-height:36px;padding:6px 10px;border:0;background:transparent;color:var(--muted);white-space:nowrap}
.viewer-session-tabs button::after{content:"";position:absolute;left:8px;right:8px;bottom:0;height:2px;background:var(--accent);transform:scaleX(0);transition:transform .2s ease}
.viewer-session-tabs button[aria-selected=true]{background:var(--accent);color:var(--bg-deep)}.viewer-session-tabs button[aria-selected=true]::after{transform:scaleX(1)}
.viewer-session-tabs button:hover{background:oklch(.34 .17 300);color:var(--fg)}.viewer-session-tabs button[aria-selected=true]:hover{background:var(--accent);color:var(--bg-deep)}
.tab-index{color:var(--purple);font:800 10px var(--font-mono)}
.viewer-session-tabs button[aria-selected=true] .tab-index{color:var(--bg-deep)}.session-label{font:800 9px var(--font-mono);letter-spacing:.035em;text-transform:uppercase}
.scope-note{display:flex;flex-direction:column;justify-content:center;padding:11px 16px;background:var(--paper-soft);border-left:1px solid var(--line)}
.scope-note strong{font-size:16px;color:var(--purple-deep)}.scope-note span{margin-top:4px;color:var(--ink-muted);font:700 9px var(--font-mono);letter-spacing:.08em}

.protocol-notice{display:flex;align-items:center;justify-content:center;gap:10px;padding:10px 18px;background:var(--yellow);color:var(--bg-deep);text-align:center}.protocol-notice span{font-size:13px}
.protocol-notice[hidden]{display:none}
main{width:min(1580px,100%);margin:0 auto;padding:22px 24px 30px}
.panel{display:none}.panel.active{display:block;animation:reveal .28s ease-out}@keyframes reveal{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
.stage-heading{display:flex;align-items:end;justify-content:space-between;gap:28px;margin:0 0 14px;padding:0 2px}
.stage-heading h2{margin:5px 0 0;font-size:clamp(24px,2.3vw,36px);line-height:1.05;letter-spacing:-.04em}
.stage-heading>p{max-width:60ch;margin:0;color:var(--ink-muted);font-size:13px;line-height:1.45}.stage-heading.compact{margin-bottom:12px}

.overview-grid{display:block}
.portable-viewer{overflow:hidden;border:1px solid var(--border);background:oklch(.18 .09 297/.94);color:var(--fg);box-shadow:var(--shadow)}
.viewer-head{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:52px;padding:9px 14px;border-bottom:1px solid var(--border);background:linear-gradient(90deg,oklch(.31 .18 300/.88),oklch(.23 .13 298/.82))}
.viewer-head>div:first-child{display:flex;align-items:baseline;gap:10px}.viewer-head strong{font-size:14px}.viewer-kicker{color:var(--accent);font:800 9px var(--font-mono);letter-spacing:.1em}
.viewer-head-tools{display:flex;align-items:center;gap:9px;margin-left:auto}.viewer-olo{display:block;width:74px;height:40px;object-fit:contain;filter:drop-shadow(0 8px 12px oklch(.08 .06 298/.32))}
.viewer-status{display:flex;align-items:center;gap:7px;color:var(--muted);font:700 10px var(--font-mono);letter-spacing:.04em}.viewer-status-dot{width:7px;height:7px;border-radius:50%;background:var(--yellow);box-shadow:0 0 0 4px oklch(.88 .17 93/.13)}.viewer-status.ready .viewer-status-dot{background:var(--green);box-shadow:0 0 0 4px oklch(.82 .17 161/.12)}.viewer-status.error .viewer-status-dot{background:var(--danger)}
.viewer-stage{position:relative;min-height:580px;overflow:hidden;background:
  radial-gradient(circle at 54% 33%,oklch(.37 .18 287/.72),transparent 34%),
  radial-gradient(circle at 48% 72%,oklch(.32 .18 205/.33),transparent 38%),
  linear-gradient(155deg,oklch(.22 .12 300),oklch(.14 .07 285))}
.viewer-stage::before{content:"";position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(oklch(.91 .15 195/.06) 1px,transparent 1px),linear-gradient(90deg,oklch(.91 .15 195/.06) 1px,transparent 1px);background-size:54px 54px;mask-image:linear-gradient(to bottom,#000,transparent 78%)}
.viewer-stage canvas{position:relative;z-index:1;display:block;width:100%;height:580px;touch-action:none;cursor:grab}.viewer-stage canvas:active{cursor:grabbing}
.viewer-hint{position:absolute;z-index:3;right:14px;bottom:14px;margin:0;padding:7px 10px;border:1px solid var(--border);background:oklch(.18 .09 297/.8);color:var(--muted);font:700 10px var(--font-mono);backdrop-filter:blur(8px)}.viewer-hint[hidden]{display:none}
.viewer-part-hud{position:absolute;left:16px;top:16px;z-index:3;width:min(480px,calc(100% - 32px));padding:0;overflow:hidden;border:1px solid var(--border);background:oklch(.22 .13 297/.92);box-shadow:var(--shadow);backdrop-filter:blur(12px)}.viewer-part-hud[hidden]{display:none}
.viewer-part-summary{display:grid;grid-template-columns:42px minmax(0,1fr) 24px;align-items:center;gap:11px;width:100%;padding:12px;border:0;background:transparent;color:var(--fg);text-align:left}.viewer-part-summary:hover{background:oklch(.30 .15 297/.7)}.viewer-part-summary:focus-visible{outline:2px solid var(--accent);outline-offset:-3px}
.viewer-part-number{width:42px;height:42px;display:grid;place-items:center;border-radius:50%;background:var(--accent);color:var(--bg-deep);font:900 11px var(--font-mono)}
.viewer-part-title small{display:block;color:var(--accent);font:800 9px var(--font-mono);letter-spacing:.08em;text-transform:uppercase}.viewer-part-title strong{display:block;margin-top:2px;font-size:15px}.viewer-part-prompt{display:block;margin-top:4px;color:var(--muted);font:700 9px var(--font-mono);letter-spacing:.03em;text-transform:uppercase}.viewer-part-chevron{position:relative;display:grid;place-items:center;width:24px;height:24px;border:1px solid var(--border);color:var(--accent)}.viewer-part-chevron::before{content:"";display:block;width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .2s ease}.viewer-part-summary[aria-expanded=true] .viewer-part-chevron::before{transform:translateY(2px) rotate(225deg)}
.viewer-part-details{max-height:min(430px,55vh);padding:0 14px 14px;overflow:auto;border-top:1px solid var(--border);scrollbar-color:var(--accent) transparent}.viewer-part-details[hidden]{display:none}.viewer-part-purpose{margin:12px 0}.viewer-part-purpose>span{display:block;color:var(--accent);font:800 9px var(--font-mono);letter-spacing:.07em;text-transform:uppercase}.viewer-part-function{margin:4px 0 0;color:var(--fg);font-size:13px;line-height:1.45}.viewer-part-details dl{display:grid;gap:8px;margin:0}.viewer-part-details dl div{padding:9px 10px;border-left:2px solid oklch(.82 .18 195/.5);background:oklch(.18 .09 297/.62)}.viewer-part-details dt{color:var(--accent);font:800 9px var(--font-mono);letter-spacing:.07em;text-transform:uppercase}.viewer-part-details dd{margin:4px 0 0;color:var(--muted);font-size:11px;line-height:1.42}.viewer-part-question{margin:10px 0 0;padding:10px;border:1px solid var(--border);background:oklch(.25 .13 300/.72)}.viewer-part-question span,.viewer-part-question strong{display:block}.viewer-part-question span{color:var(--accent);font:800 9px var(--font-mono);letter-spacing:.07em;text-transform:uppercase}.viewer-part-question strong{margin-top:4px;color:var(--fg);font-size:11px;line-height:1.4}
.viewer-technical{position:absolute;left:18px;right:18px;top:18px;z-index:4;max-width:440px;padding:13px 15px;border-left:4px solid var(--yellow);background:oklch(.22 .13 297/.92);box-shadow:var(--shadow)}.viewer-technical[hidden]{display:none}.viewer-technical strong,.viewer-technical span{display:block}.viewer-technical span{margin-top:3px;color:var(--muted);font-size:12px}
.viewer-fallback{position:absolute;inset:0;z-index:5;display:grid;place-items:center;padding:24px;background:var(--bg-deep)}.viewer-fallback[hidden]{display:none}.viewer-fallback img{display:block;max-width:100%;max-height:500px;object-fit:contain}
.viewer-controls{display:flex;flex-wrap:wrap;gap:1px;padding:0;border-top:1px solid var(--border);background:oklch(.19 .10 298/.96)}
.viewer-controls button{min-height:43px;padding:8px 13px;border:0;border-right:1px solid var(--border);background:transparent;color:var(--muted);font-size:11px;font-weight:800}.viewer-controls button:hover,.viewer-controls button[aria-pressed=true]{background:var(--accent);color:var(--bg-deep)}.viewer-controls button:disabled{opacity:.4;cursor:not-allowed}
.assembly-control{display:grid;grid-template-columns:auto minmax(160px,1fr) auto;align-items:center;gap:10px;padding:10px 14px 13px;background:oklch(.19 .10 298/.96);color:var(--muted)}.assembly-control span{font:800 9px var(--font-mono);letter-spacing:.08em}.assembly-control input{width:100%;accent-color:var(--accent)}

.primary,.secondary{min-height:44px;border:1px solid var(--line);font-weight:800}.primary{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:auto;padding:10px 13px;background:var(--purple-deep);color:white;border-color:var(--purple-deep);box-shadow:0 6px 0 oklch(.28 .14 302)}.primary:hover{filter:brightness(1.08)}.primary:active{transform:translateY(2px);box-shadow:0 4px 0 oklch(.28 .14 302)}.secondary{padding:8px 12px;background:var(--paper);color:var(--ink-muted)}.secondary:hover{color:var(--purple-deep);border-color:var(--purple)}

.lab-grid{display:block}
.explorer-workspace{min-width:0}.portable-viewer.isolation-active .viewer-stage{background:radial-gradient(circle at 58% 45%,oklch(.38 .18 205/.35),transparent 36%),linear-gradient(150deg,oklch(.23 .14 300),oklch(.14 .07 285))}
.viewer-body{display:block}.viewer-main{min-width:0}
body[data-stage="3"] .viewer-body{display:grid;grid-template-columns:252px minmax(0,1fr);align-items:stretch}body[data-stage="3"] .viewer-main{grid-column:2;grid-row:1;min-width:0;border-left:1px solid var(--border)}
body[data-stage="3"] .viewer-stage{min-height:650px}body[data-stage="3"] .viewer-stage canvas{height:650px}
.component-dock[hidden]{display:none}.component-dock{grid-column:1;grid-row:1;display:flex;flex-direction:column;min-width:0;min-height:0;padding:12px 10px 11px;background:linear-gradient(180deg,oklch(.225 .13 298),oklch(.17 .09 298));color:var(--fg)}
.component-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:8px;margin-bottom:9px;color:var(--muted)}.component-toolbar>div{display:flex;align-items:baseline;flex-wrap:wrap;gap:3px 6px;min-width:0}.component-toolbar strong{color:var(--accent);font:800 13px var(--font-mono)}.component-toolbar small{color:var(--muted);font-size:9px}.component-toolbar .section-index{flex-basis:100%;color:var(--accent)}.component-toolbar>span{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.dock-reset{min-height:29px;padding:4px 7px;border:1px solid var(--border);background:transparent;color:var(--muted);font-size:9px;font-weight:800}.dock-reset:hover{border-color:var(--accent);color:var(--accent)}
.component-dock-body{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:42px minmax(0,1fr);grid-template-areas:"previous next" "list list";gap:6px;min-height:0;flex:1}
.dock-nav{display:grid;grid-template-columns:auto auto;place-content:center;align-items:center;gap:5px;min-width:0;padding:4px;border:1px solid var(--border);background:oklch(.27 .15 300);color:var(--muted)}#previousPart{grid-area:previous}#nextPart{grid-area:next}.dock-nav:hover{border-color:var(--accent);background:oklch(.32 .18 300);color:var(--accent)}.dock-nav b{font:800 17px/1 var(--font-mono)}.dock-nav small{font:700 7px var(--font-mono);letter-spacing:.04em;text-transform:uppercase}
.model-parts-list{grid-area:list;list-style:none;display:flex;flex-direction:column;gap:4px;min-width:0;min-height:0;margin:0;padding:0 3px 0 0;overflow-y:auto;overflow-x:hidden;scroll-snap-type:y proximity;scrollbar-width:thin;scrollbar-color:var(--purple) oklch(.16 .08 298)}.model-parts-list li{flex:0 0 42px;scroll-snap-align:center}
.model-part-button{position:relative;isolation:isolate;overflow:hidden;display:grid;grid-template-columns:28px minmax(0,1fr);align-items:center;gap:7px;width:100%;height:100%;min-height:42px;padding:5px 9px 5px 7px;border:1px solid var(--border);background:linear-gradient(135deg,oklch(.245 .135 300) 0 82%,oklch(.28 .12 218) 82%);color:var(--fg);text-align:left;clip-path:polygon(0 0,calc(100% - 9px) 0,100% 9px,100% 100%,9px 100%,0 calc(100% - 9px));transition:border-color .18s ease,background .18s ease,transform .18s ease}.model-part-button::before{content:"";position:absolute;z-index:-1;left:0;top:0;bottom:0;width:3px;background:linear-gradient(var(--accent),var(--purple));transform:scaleY(.28);transform-origin:top;transition:transform .18s ease}.model-part-button:hover{border-color:var(--accent);background:linear-gradient(135deg,oklch(.29 .16 300) 0 80%,oklch(.34 .13 210) 80%);transform:translateX(1px)}.model-part-button:hover::before,.model-part-button.selected::before{transform:scaleY(1)}.model-part-button.selected{border-color:var(--accent);background:linear-gradient(135deg,oklch(.35 .18 300) 0 76%,oklch(.40 .13 210) 76%);box-shadow:inset 2px 0 0 var(--accent),0 0 16px oklch(.75 .14 200/.12)}.model-part-button.visited .model-part-index{background:linear-gradient(135deg,var(--cyan-dark),var(--purple));color:white;border-color:transparent}
.model-part-index{width:27px;height:27px;display:grid;place-items:center;border:1px solid var(--accent);color:var(--accent);background:oklch(.17 .09 298);clip-path:polygon(25% 0,75% 0,100% 25%,100% 75%,75% 100%,25% 100%,0 75%,0 25%);font:800 8px var(--font-mono)}.model-part-copy strong{display:block;font-size:10px;line-height:1.13}

.brand-footer{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:22px;margin-top:22px;padding:16px 18px;border:1px solid var(--line);background:var(--paper);color:var(--ink-muted);box-shadow:var(--shadow-soft)}.brand-footer>div:first-child span,.brand-footer>div:first-child strong{display:block}.brand-footer>div:first-child span{font:700 9px var(--font-mono);letter-spacing:.08em;text-transform:uppercase}.brand-footer>div:first-child strong{color:var(--purple-deep);font-size:13px}.partner-logos{display:flex;align-items:center;gap:18px;padding:8px 14px;background:white}.partner-logos img{display:block;width:auto;height:36px;object-fit:contain}.partner-logos img:last-child{height:42px}.brand-footer p{margin:0;text-align:right;font:600 9px var(--font-mono);letter-spacing:.04em}

@media(max-width:1180px){
  .masthead{grid-template-columns:140px 1fr}.scope-note{display:none}body[data-stage="3"] .viewer-body{grid-template-columns:224px minmax(0,1fr)}
}
@media(max-width:940px){
  .masthead{grid-template-columns:140px 1fr}body[data-stage="3"] .viewer-body{grid-template-columns:210px minmax(0,1fr)}.viewer-session-tabs button{padding-inline:8px}
}
@media(max-width:720px){
  body[data-stage="3"] .viewer-body{display:flex;flex-direction:column}body[data-stage="3"] .viewer-main{order:1;border-left:0}.component-dock{order:2;padding:9px 7px 10px;border-top:1px solid var(--border)}.component-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px}.component-toolbar>div{flex:1}.component-toolbar .section-index{flex-basis:auto}.component-dock-body{grid-template-columns:48px minmax(0,1fr) 48px;grid-template-rows:54px;grid-template-areas:"previous list next";gap:5px}.dock-nav{display:grid;grid-template-columns:1fr;gap:1px}.dock-nav b{display:block;transform:rotate(-90deg)}.dock-nav small{font-size:7px}.model-parts-list{flex-direction:row;gap:5px;padding:0 0 3px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x proximity}.model-parts-list li{flex:0 0 130px}.model-part-button{min-height:54px}.model-part-button::before{left:0;right:0;top:auto;bottom:0;width:auto;height:3px;transform:scaleX(.28);transform-origin:left}.model-part-button:hover::before,.model-part-button.selected::before{transform:scaleX(1)}.model-part-button.selected{box-shadow:inset 0 -2px 0 var(--accent),0 0 16px oklch(.75 .14 200/.12)}
}
@media(max-width:680px){
  body{font-size:14px}.masthead{display:grid;grid-template-columns:118px 1fr;min-height:auto}.brand-lockup{padding:8px}.brand-lockup img{width:102px;height:48px}.title-block{padding:9px 12px}.title-block h1{font-size:19px}.breadcrumb{display:none}.protocol-notice{display:block;text-align:left}main{padding:16px 10px 24px}.stage-heading{display:block}.stage-heading h2{font-size:26px}.stage-heading>p{margin-top:7px}.viewer-head{align-items:center;flex-wrap:wrap;gap:8px}.viewer-head>div:first-child{display:grid;gap:1px}.viewer-head-tools{flex:1 0 100%;display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:6px;margin-left:0}.viewer-session-tabs button{min-height:36px;padding:5px 7px}.viewer-session-tabs .session-label{font-size:8px}.viewer-olo{width:58px;height:34px}.viewer-status{max-width:none;text-align:left}.viewer-stage{min-height:430px}.viewer-stage canvas{height:430px}body[data-stage="3"] .viewer-stage{min-height:520px}body[data-stage="3"] .viewer-stage canvas{height:520px}.viewer-hint{right:8px;bottom:8px;max-width:calc(100% - 16px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.viewer-part-hud{left:9px;top:9px;width:calc(100% - 18px);padding:9px}.viewer-part-hud p{display:block;font-size:11px}.viewer-controls button{flex:1 1 31%;padding:7px}.assembly-control{grid-template-columns:1fr}.assembly-control span{text-align:center}.brand-footer{grid-template-columns:1fr;text-align:center}.brand-footer p{text-align:center}.partner-logos{justify-content:center}.partner-logos img{max-width:44%;height:30px}.partner-logos img:last-child{height:36px}
  .viewer-part-hud{padding:0}.viewer-part-summary{padding:9px}.viewer-part-details{max-height:330px;padding:0 10px 10px}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
