:root{color-scheme:light;--bg:#fff;--card:#fff;--fg:#111;--muted:#606060;--line:#d1d1d1;--chip:#f5f5f5;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
:root.dark{color-scheme:dark;--bg:#0a0a0a;--card:#141414;--fg:#f5f5f5;--muted:#aaa;--line:#404040;--chip:#262626}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--fg);padding:max(16px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));line-height:1.6}header,main,footer{max-width:1440px;margin:auto}header{display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);padding-block:12px 24px}h1{font-size:clamp(32px,6vw,58px);letter-spacing:-.05em;line-height:1.1;margin:8px 0}h2{font-size:22px;line-height:1.3}.eyebrow{font:700 11px ui-monospace,monospace;letter-spacing:.14em}.introduction{max-width:850px;margin-block:30px}.layout{display:grid;grid-template-columns:260px minmax(0,1fr) 260px;gap:16px}aside,.stage{padding:18px;border:1px solid var(--line);border-radius:14px;background:var(--card);min-width:0}label{display:block;margin:14px 0 7px;font-weight:600;font-size:14px}button,input,select,textarea{font:inherit;color:var(--fg);background:var(--chip);border:1px solid var(--line);border-radius:8px;min-height:44px;padding:8px 12px;max-width:100%}input,select,textarea{width:100%}button{cursor:pointer}button:hover{border-color:var(--fg)}button:disabled{opacity:.5;cursor:default}:focus-visible{outline:2px solid var(--fg);outline-offset:3px}.view-controls{display:flex;gap:6px;flex-wrap:wrap}#viewer{width:100%;height:60dvh;min-height:360px;touch-action:none}#viewer canvas{max-width:100%;display:block}#parts{max-height:55dvh;overflow:auto;display:grid;gap:5px;margin-top:18px}#parts button{text-align:left;font-size:13px}#parts button[aria-pressed=true]{background:var(--fg);color:var(--bg)}#status,#detail,#noteState{font-size:13px;overflow-wrap:anywhere;color:var(--muted)}a{color:inherit}footer,.sources{border-top:1px solid var(--line);margin-top:30px;padding-top:24px}.skip{position:absolute;transform:translateY(-200%)}.skip:focus{transform:none}#status{min-height:40px}
@media(max-width:1000px){.layout{grid-template-columns:220px minmax(0,1fr)}.inspector{grid-column:1/-1}}@media(max-width:600px){.layout{grid-template-columns:1fr}.inspector{grid-column:auto}#parts{max-height:25dvh}#viewer{height:55dvh;min-height:280px}header{align-items:start;flex-wrap:wrap}h1{font-size:36px}}
