:root{color:#162a2a;font-synthesis:none;text-rendering:optimizelegibility;--tp-base-background-color:#e9ede8c2;--tp-base-shadow-color:#26363114;--tp-button-background-color:#1e38371f;--tp-button-background-color-active:#1e38374d;--tp-button-background-color-focus:#1e383733;--tp-button-background-color-hover:#1e383733;--tp-button-foreground-color:#1d3533e6;--tp-container-background-color:#2239380f;--tp-container-background-color-active:#22393824;--tp-container-background-color-focus:#2239381a;--tp-container-background-color-hover:#2239381a;--tp-container-foreground-color:#1c3130c7;--tp-groove-foreground-color:#203c3a73;--tp-input-background-color:#25373614;--tp-input-background-color-active:#2537362e;--tp-input-background-color-focus:#25373624;--tp-input-background-color-hover:#2537361f;--tp-input-foreground-color:#192e2de0;--tp-label-foreground-color:#1c3130a3;--tp-base-border-radius:3px;--tp-blade-border-radius:2px;--tp-font-family:Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;background:#d9ddd6;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#app,#stage{width:100%;min-width:320px;height:100%;margin:0;overflow:hidden}@supports (height:100dvh){html,body,#app,#stage{height:100dvh}}body{background:radial-gradient(circle at 24% 17%,#ffffffc7,#0000 32rem),linear-gradient(135deg,#e3e6df,#cfd6d0)}#app:after{z-index:3;pointer-events:none;content:"";opacity:.23;mix-blend-mode:soft-light;background-image:repeating-radial-gradient(circle at 20% 30%,#0000 0 2px,#1b33311f 2.5px 3px),linear-gradient(103deg,#0000 30%,#ffffff40,#0000 68%);background-size:7px 7px,100% 100%;position:fixed;inset:0}#stage,#stage canvas{display:block;position:absolute;inset:0}html[data-route="4"] #stage canvas,html[data-route="3"] #stage canvas{cursor:grab;touch-action:none}html[data-route="3"].is-grabbing-body #stage canvas,html[data-route="4"].is-dragging-cylinder #stage canvas{cursor:grabbing}.masthead{z-index:5;pointer-events:none;justify-content:space-between;align-items:flex-start;display:flex;position:fixed;top:clamp(1.25rem,3vw,2.75rem);left:clamp(1.25rem,3.5vw,3.75rem);right:clamp(1.25rem,3.5vw,3.75rem)}.eyebrow{color:#162a2a94;letter-spacing:.18em;text-transform:uppercase;margin:0 0 .5rem;font-size:.64rem;font-weight:700}.status{color:#162a2aad;letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:.55rem;font-size:.68rem;font-weight:650;display:flex}.status-dot{aspect-ratio:1;background:#ce684d;border-radius:50%;flex:0 0 .45rem;width:.45rem;height:.45rem;box-shadow:0 0 0 4px #ce684d1c}.controls{z-index:5;overscroll-behavior:contain;scrollbar-width:thin;width:min(18rem,100vw - 2.5rem);max-height:calc(100vh - 2rem);position:fixed;bottom:clamp(1.25rem,3vw,2.75rem);right:clamp(1.25rem,3.5vw,3.75rem);overflow-y:auto}#gui,#gui>div{width:100%}.export-status{color:#162a2a80;letter-spacing:.05em;margin:.5rem .75rem 0;font-size:.62rem;line-height:1.35}.lower-left{z-index:5;position:fixed;bottom:clamp(1.5rem,3vw,3rem);left:clamp(1.25rem,3.5vw,3.75rem)}.routes{flex-wrap:wrap;gap:.35rem;margin-bottom:.75rem;display:flex}.routes a{color:#162a2a94;letter-spacing:.06em;text-transform:uppercase;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ebefe973;border:1px solid #162a2a24;border-radius:.2rem;gap:.45rem;padding:.45rem .58rem;font-size:.63rem;font-weight:700;text-decoration:none;display:inline-flex}.routes a:hover,.routes a:focus-visible,.routes a[aria-current=page]{color:#edf1eb;background:#1d3735;outline:none}.routes span{opacity:.55;font-variant-numeric:tabular-nums}.export-preview-panel{z-index:5;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#ebefe9a8;border:1px solid #1b313021;border-radius:.3rem;width:min(13rem,28vw);margin:0;padding:.42rem;position:fixed;bottom:clamp(3.4rem,6vw,5.2rem);left:clamp(1.25rem,3.5vw,3.75rem);box-shadow:0 1rem 3rem #2b3e3a1a}.export-preview-panel canvas{background:#d9ddd6;width:100%;height:auto;display:block}.export-preview-panel figcaption{color:#162a2a85;letter-spacing:.09em;text-transform:uppercase;padding:.42rem .2rem .08rem;font-size:.58rem;font-weight:700}@media (width<=680px),(height<=520px) and (pointer:coarse){.masthead{top:max(.75rem, env(safe-area-inset-top));right:max(.75rem, env(safe-area-inset-right));left:max(.75rem, env(safe-area-inset-left));align-items:flex-start}.eyebrow{letter-spacing:.13em;max-width:calc(100vw - 8.5rem);font-size:.58rem;line-height:1.35}.status{text-align:right;justify-content:flex-end;max-width:6.5rem;font-size:.58rem;line-height:1.35}.controls{right:max(.75rem, env(safe-area-inset-right));bottom:max(.75rem, env(safe-area-inset-bottom));width:min(10rem,100vw - 1.5rem);max-height:min(64dvh,100dvh - 4.5rem);transition:width .16s;left:auto}.controls:has(.tp-rotv-expanded){width:min(18rem,100vw - 1.5rem)}.lower-left{left:max(.75rem, env(safe-area-inset-left));bottom:max(.75rem, env(safe-area-inset-bottom));transition:opacity .12s,visibility .12s}#app:has(.controls .tp-rotv-expanded) .lower-left{visibility:hidden;opacity:0;pointer-events:none}.routes{gap:.25rem;margin-bottom:0}.routes a{box-sizing:border-box;justify-content:center;width:2rem;min-height:2rem;padding:0;font-size:0}.routes a span{opacity:1;font-size:.62rem}.export-status{font-size:.58rem;line-height:1.35}.export-preview-panel{display:none}}
