@property --c-stage{syntax:"<color>";inherits:true;initial-value:#e3f4fc}@property --c-rail{syntax:"<color>";inherits:true;initial-value:#fff}@property --c-rail-dot{syntax:"<color>";inherits:true;initial-value:#0000}@property --c-line{syntax:"<color>";inherits:true;initial-value:#e8edf2}@property --c-text{syntax:"<color>";inherits:true;initial-value:#0b2743}@property --c-heading{syntax:"<color>";inherits:true;initial-value:#0b7d93}@property --c-label{syntax:"<color>";inherits:true;initial-value:#0b2743}@property --c-muted{syntax:"<color>";inherits:true;initial-value:#64748b}@property --c-field{syntax:"<color>";inherits:true;initial-value:#fff}@property --c-field-line{syntax:"<color>";inherits:true;initial-value:#d5dde6}@property --c-chip{syntax:"<color>";inherits:true;initial-value:#ededed}@property --c-chip-text{syntax:"<color>";inherits:true;initial-value:#48596b}@property --c-chip-line{syntax:"<color>";inherits:true;initial-value:#0000}@property --c-on{syntax:"<color>";inherits:true;initial-value:#e9f8fb}@property --c-on-text{syntax:"<color>";inherits:true;initial-value:#0a7389}@property --c-on-line{syntax:"<color>";inherits:true;initial-value:#26bad8}@property --c-accent{syntax:"<color>";inherits:true;initial-value:#26bad8}@property --c-glow{syntax:"<color>";inherits:true;initial-value:#26bad866}@property --c-ctl{syntax:"<color>";inherits:true;initial-value:#fff}@property --c-ctl-text{syntax:"<color>";inherits:true;initial-value:#0b2743}@property --c-ctl-line{syntax:"<color>";inherits:true;initial-value:#0000}@property --c-ctl-shadow{syntax:"<color>";inherits:true;initial-value:#0b274324}@property --c-overlay{syntax:"<color>";inherits:true;initial-value:#0b2743}@property --r-chip{syntax:"<length>";inherits:true;initial-value:999px}@property --r-tile{syntax:"<length>";inherits:true;initial-value:7px}@property --r-card{syntax:"<length>";inherits:true;initial-value:10px}@property --r-ctl{syntax:"<length>";inherits:true;initial-value:999px}:root,:root[data-theme=glorvia]{--c-stage:#e3f4fc;--c-rail:#fff;--c-rail-dot:transparent;--c-line:#e8edf2;--c-text:#0b2743;--c-heading:#0b7d93;--c-label:#0b2743;--c-muted:#64748b;--c-field:#fff;--c-field-line:#d5dde6;--c-chip:#ededed;--c-chip-text:#48596b;--c-chip-line:transparent;--c-on:#e9f8fb;--c-on-text:#0a7389;--c-on-line:#26bad8;--c-accent:#26bad8;--c-glow:#26bad866;--c-ctl:#fff;--c-ctl-text:#0b2743;--c-ctl-line:transparent;--c-ctl-shadow:#0b274324;--c-overlay:#0b2743;--r-chip:999px;--r-tile:7px;--r-card:10px;--r-ctl:999px;--font-ui:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;--font-head:var(--font-ui);--font-mono:var(--font-ui);--h2-size:17px;--h2-weight:600;--h2-case:none;--h2-track:0;--h2-rule:transparent;--lbl-size:14px;--lbl-weight:600;--lbl-case:none;--lbl-track:0;--chip-size:14px;--chip-weight:500;--chip-on-weight:600;--chip-track:0;--brand-size:20px;--brand-weight:600;--brand-track:.02em;--scene-bg:#e3f4fc;--scene-bg-alt:#e3f4fc;--floor-shadow:#0b2743;--floor-opacity:.16}:root[data-theme=atelier]{--c-stage:#26271f;--c-rail:#e9e5d9;--c-rail-dot:#26271f21;--c-line:#26271f4d;--c-text:#2c2d26;--c-heading:#2c2d26;--c-label:#26271fc7;--c-muted:#26271fad;--c-field:#ffffff9e;--c-field-line:#26271f59;--c-chip:#fff0;--c-chip-text:#2c2d26;--c-chip-line:#26271f73;--c-on:#2c2d26;--c-on-text:#f4f2ea;--c-on-line:#2c2d26;--c-accent:#6e2233;--c-glow:#6e223300;--c-ctl:#1d1e18c2;--c-ctl-text:#f4f2ea;--c-ctl-line:#f4f2ea6b;--c-ctl-shadow:#00000029;--c-overlay:#f4f2ea;--r-chip:2px;--r-tile:2px;--r-card:2px;--r-ctl:3px;--font-head:"Didot", "Bodoni MT", "Bodoni 72", Georgia, serif;--font-mono:"Cascadia Mono", "SF Mono", Consolas, "Courier New", monospace;--h2-size:12px;--h2-weight:600;--h2-case:uppercase;--h2-track:.26em;--h2-rule:#26271f4d;--lbl-size:11px;--lbl-weight:400;--lbl-case:uppercase;--lbl-track:.08em;--chip-size:11.5px;--chip-weight:400;--chip-on-weight:400;--chip-track:.03em;--brand-size:21px;--brand-weight:500;--brand-track:.34em;--scene-bg:#26271f;--scene-bg-alt:#34352d;--floor-shadow:#141510;--floor-opacity:.55}:root[data-theme=minimal]{--c-stage:#f4f4f2;--c-rail:#fff;--c-rail-dot:transparent;--c-line:#e4e4e4;--c-text:#111;--c-heading:#111;--c-label:#555;--c-muted:#6b6b6b;--c-field:#fff;--c-field-line:#111;--c-chip:#fff;--c-chip-text:#111;--c-chip-line:#d4d4d4;--c-on:#111;--c-on-text:#fff;--c-on-line:#111;--c-accent:#111;--c-glow:#1110;--c-ctl:#fff;--c-ctl-text:#111;--c-ctl-line:#111;--c-ctl-shadow:#0000;--c-overlay:#111;--r-chip:0px;--r-tile:0px;--r-card:0px;--r-ctl:0px;--font-ui:"Helvetica Neue", Helvetica, Arial, sans-serif;--font-head:var(--font-ui);--font-mono:var(--font-ui);--h2-size:11px;--h2-weight:700;--h2-case:uppercase;--h2-track:.18em;--h2-rule:#111;--lbl-size:10.5px;--lbl-weight:500;--lbl-case:uppercase;--lbl-track:.14em;--chip-size:12px;--chip-weight:400;--chip-on-weight:500;--chip-track:.02em;--brand-size:15px;--brand-weight:700;--brand-track:.22em;--scene-bg:#f4f4f2;--scene-bg-alt:#f4f4f2;--floor-shadow:#000;--floor-opacity:.14}:root{--rail-w:322px;--t-theme:.5s ease;transition:--c-stage var(--t-theme), --c-rail var(--t-theme), --c-rail-dot var(--t-theme), --c-line var(--t-theme), --c-text var(--t-theme), --c-heading var(--t-theme), --c-label var(--t-theme), --c-muted var(--t-theme), --c-field var(--t-theme), --c-field-line var(--t-theme), --c-chip var(--t-theme), --c-chip-text var(--t-theme), --c-chip-line var(--t-theme), --c-on var(--t-theme), --c-on-text var(--t-theme), --c-on-line var(--t-theme), --c-accent var(--t-theme), --c-glow var(--t-theme), --c-ctl var(--t-theme), --c-ctl-text var(--t-theme), --c-ctl-line var(--t-theme), --c-ctl-shadow var(--t-theme), --c-overlay var(--t-theme), --r-chip var(--t-theme), --r-tile var(--t-theme), --r-card var(--t-theme), --r-ctl var(--t-theme)}@media (prefers-reduced-motion:reduce){:root{transition:none}}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--c-stage);height:100%;color:var(--c-text);font-family:var(--font-ui);font-size:14px;overflow:hidden}#app{height:100dvh;display:flex}#stage{background:var(--c-stage);flex:1;min-width:0;position:relative}#scene{touch-action:none;width:100%;height:100%;display:block}button:focus-visible,select:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid var(--c-accent);outline-offset:2px}.zoom-controls{z-index:7;gap:10px;display:grid;position:absolute;bottom:24px;right:20px}.zoom-controls button{border:1px solid var(--c-ctl-line);border-radius:var(--r-ctl);background:var(--c-ctl);width:44px;height:44px;box-shadow:0 2px 8px var(--c-ctl-shadow);color:var(--c-ctl-text);font:400 24px/1 var(--font-ui);cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none;place-items:center;transition:transform .1s,filter .15s;display:grid}#stage:has(#tape) .zoom-controls{bottom:56px}.zoom-controls button:hover{filter:brightness(.96)}.zoom-controls button:active{transform:scale(.94)}#brand{z-index:5;pointer-events:none;-webkit-user-select:none;user-select:none;color:var(--c-overlay);position:absolute;top:20px;left:24px}#brand h1{font-family:var(--font-head);font-size:var(--brand-size);font-weight:var(--brand-weight);letter-spacing:var(--brand-track)}#brand p{opacity:.75;margin-top:2px;font-size:12px;font-weight:500}#lang{z-index:6;border-radius:var(--r-ctl);background:var(--c-ctl);box-shadow:0 2px 8px var(--c-ctl-shadow);border:1px solid var(--c-ctl-line);gap:4px;padding:3px;display:flex;position:absolute;top:16px;right:18px}#lang button{font:600 12px/1 var(--font-ui);letter-spacing:.04em;border-radius:var(--r-ctl);min-width:44px;height:36px;color:var(--c-ctl-text);cursor:pointer;background:0 0;border:0;padding:0 10px}#lang button[aria-pressed=true]{background:var(--c-on);color:var(--c-on-text);cursor:default}#lang button:not([aria-pressed=true]):hover{text-decoration:underline}#loading{z-index:4;font:500 14px/1.3 var(--font-ui);color:var(--c-overlay);pointer-events:none;justify-content:center;align-items:center;gap:12px;display:flex;position:absolute;inset:0}#loading[hidden]{display:none}#loading span{border:2.5px solid var(--c-line);border-top-color:var(--c-accent);border-radius:50%;width:24px;height:24px;animation:.9s linear infinite spin}@media (prefers-reduced-motion:reduce){#loading span{border-top-color:var(--c-line);animation:none}}@keyframes spin{to{transform:rotate(360deg)}}#tape{z-index:5;font-family:var(--font-mono);letter-spacing:.04em;color:var(--c-overlay);border-top:1px solid var(--c-line);background:color-mix(in srgb, var(--c-rail) 82%, transparent);white-space:nowrap;scrollbar-width:none;padding:14px 20px 12px;font-size:11.5px;position:absolute;bottom:0;left:0;right:0;overflow-x:auto}#tape::-webkit-scrollbar{display:none}#tape .hl{color:var(--c-heading)}#tape .fx{font-weight:600}#rail{width:var(--rail-w);background-color:var(--c-rail);background-image:radial-gradient(var(--c-rail-dot) 1px, transparent 1px);color:var(--c-text);border-left:1px solid var(--c-line);background-size:15px 15px;flex-shrink:0;padding:22px 20px 40px;overflow-y:auto}#rail section+section{margin-top:28px}#rail h2{font-family:var(--font-head);font-size:var(--h2-size);font-weight:var(--h2-weight);letter-spacing:var(--h2-track);text-transform:var(--h2-case);color:var(--c-heading);border-bottom:1px solid var(--h2-rule);margin-bottom:12px;padding-bottom:8px}.hint{color:var(--c-muted);margin-top:8px;font-size:12px;line-height:1.5}.fabric-picker{border:1px solid var(--c-field-line);border-radius:var(--r-tile);background-color:var(--c-field);width:100%;min-height:44px;color:var(--c-text);font:inherit;cursor:pointer;margin:0 0 10px;padding:9px 30px 9px 12px;font-size:14px;display:block}.fabric-preview-card{border:1px solid var(--c-line);border-radius:var(--r-card);background:var(--c-field);grid-template-columns:86px minmax(0,1fr);align-items:stretch;gap:12px;margin:0 0 12px;padding:8px;display:grid}.fabric-preview{aspect-ratio:1;border-radius:var(--r-tile);background-position:50%;background-repeat:repeat;background-size:100%}.fabric-preview-info{flex-direction:column;justify-content:center;min-width:0;display:flex}.fabric-preview-caption{color:var(--c-text);font-size:13px;font-weight:600;line-height:1.35}.swatches{grid-template-columns:repeat(5,1fr);gap:8px;display:grid}.swatch{aspect-ratio:1;border:1px solid var(--c-line);border-radius:var(--r-tile);cursor:pointer;background-position:50%;background-size:260%;min-width:0;padding:0;transition:transform .12s}.swatch:hover{transform:translateY(-2px)}.swatch[aria-pressed=true]{outline:2px solid var(--c-accent);outline-offset:2px;box-shadow:0 0 12px var(--c-glow)}.fabric-name{margin-top:12px;font-size:14px;font-weight:600}.fabric-meta{font-family:var(--font-mono);color:var(--c-muted);margin-top:2px;font-size:12px}.slider-row{align-items:center;gap:10px;margin-top:12px;display:flex}.slider-row label{font-size:var(--lbl-size);font-weight:var(--lbl-weight);letter-spacing:var(--lbl-track);text-transform:var(--lbl-case);color:var(--c-label);white-space:nowrap}.slider-row input[type=range]{min-width:0;accent-color:var(--c-accent);flex:1}.slider-row output{font-family:var(--font-mono);text-align:right;min-width:52px;font-size:12px}.seg{border:1px solid var(--c-chip-line);border-radius:var(--r-chip);background:var(--c-chip);gap:4px;padding:3px;display:inline-flex}.seg button{font:inherit;font-size:var(--chip-size);font-weight:var(--chip-weight);border-radius:var(--r-chip);min-height:34px;color:var(--c-chip-text);cursor:pointer;background:0 0;border:1px solid #0000;padding:0 16px}.seg button[aria-pressed=true]{background:var(--c-on);color:var(--c-on-text);border-color:var(--c-on-line);font-weight:var(--chip-on-weight)}.toggle-row{justify-content:space-between;align-items:center;gap:10px;display:flex}.toggle-row+.toggle-row{margin-top:12px}.toggle-row .lbl{color:var(--c-label);font-size:14px;font-weight:600}.chips,.chip-row{flex-wrap:wrap;gap:10px;margin-top:10px;display:flex}.chip{border-radius:var(--r-tile);border:1px solid var(--c-field-line);cursor:pointer;width:32px;height:32px;padding:0}.chip[aria-pressed=true]{outline:2px solid var(--c-accent);outline-offset:2px;box-shadow:0 0 12px var(--c-glow)}.chip-label{font-size:var(--lbl-size);font-weight:var(--lbl-weight);letter-spacing:var(--lbl-track);text-transform:var(--lbl-case);color:var(--c-label);margin-top:16px;display:block}.chip-label:first-child{margin-top:0}label.chip-label{margin-bottom:6px}.variant-row{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.variant-btn{font:inherit;font-size:var(--chip-size);font-weight:var(--chip-weight);letter-spacing:var(--chip-track);border:1px solid var(--c-chip-line);border-radius:var(--r-chip);background:var(--c-chip);min-height:40px;color:var(--c-chip-text);cursor:pointer;padding:0 14px}.variant-btn:hover{border-color:var(--c-on-line)}.variant-btn[aria-pressed=true]{background:var(--c-on);color:var(--c-on-text);border-color:var(--c-on-line);font-weight:var(--chip-on-weight)}.variant-btn:disabled{opacity:.45;cursor:not-allowed}@media (pointer:coarse){.variant-btn,.seg button,#lang button{min-height:44px}}.tri-stats{font-family:var(--font-mono);letter-spacing:.02em;color:var(--c-text);border:1px solid var(--c-line);border-radius:var(--r-tile);background:var(--c-field);margin-bottom:10px;padding:8px 10px;font-size:12px}details.nodes summary{cursor:pointer;color:var(--c-label);-webkit-user-select:none;user-select:none;font-size:13px}.node-list{font-family:var(--font-mono);border:1px solid var(--c-line);border-radius:var(--r-tile);background:var(--c-field);max-height:240px;margin-top:10px;padding:8px 10px;font-size:11px;line-height:1.8;overflow-y:auto}.node-list .row{justify-content:space-between;gap:10px;display:flex}.node-list .off{opacity:.5}.node-list .state{color:var(--c-heading)}.node-list .off .state{color:var(--c-muted)}.dropzone{border:1.5px dashed var(--c-field-line);border-radius:var(--r-card);text-align:center;color:var(--c-muted);cursor:pointer;padding:18px 12px;font-size:12px}.dropzone.drag{border-color:var(--c-accent)}.dropzone strong{color:var(--c-text)}.glb-report{font-family:var(--font-mono);border:1px solid var(--c-line);border-radius:var(--r-tile);background:var(--c-field);white-space:pre-wrap;word-break:break-word;margin-top:12px;padding:10px;font-size:11px;line-height:1.7}.glb-report .warn{color:var(--c-heading)}.glb-report:empty{display:none}.btn-reset{font:inherit;border:1px solid var(--c-on-line);border-radius:var(--r-chip);min-height:40px;color:var(--c-on-text);cursor:pointer;background:0 0;margin-top:10px;padding:0 16px;font-size:13px}.btn-reset:hover{background:var(--c-on)}html.is-embed #rail{flex-direction:column;gap:28px;display:flex}html.is-embed #rail>*{flex-shrink:0}html.is-embed #rail section+section{margin-top:0}html.is-embed #rail [data-sec=variants]{order:1}html.is-embed #rail [data-sec=fabric]{order:2}html.is-embed #rail [data-sec=light]{order:3}html.is-embed #rail [data-sec=model]{order:4}html.is-embed #rail [data-sec=thread]{order:5}html.is-embed #rail [data-sec=nodes],html.is-embed #rail p.hint:not([role]),html.is-embed #rail .fabric-meta,html.is-embed #rail .slider-row,html.is-embed #rail .fabric-preview-card,html.is-embed #rail .fabric-picker,html.is-embed #rail label[for=fabric-picker]{display:none!important}@media (width<=860px){#app{flex-direction:column}#stage{flex:none;height:54dvh}#rail{border-left:none;border-top:1px solid var(--c-line);flex:1;width:100%;padding:18px 14px 32px}#brand{top:14px;left:14px}#brand h1{font-size:calc(var(--brand-size) * .72);letter-spacing:calc(var(--brand-track) * .7)}#lang{top:10px;right:10px}.zoom-controls{gap:8px;bottom:14px;right:12px}#tape{padding:12px 12px 10px;font-size:10px}}@media (width<=360px){.swatches{gap:6px}.variant-btn{padding:0 11px}}
