:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:#eef5ff;background:#0b1119;font-family:IBM Plex Mono,SFMono-Regular,Consolas,monospace}*{box-sizing:border-box}html,body{background:#0b1119;min-width:320px;min-height:100%;margin:0}body{min-height:100vh;overflow-x:hidden}button,input,select{font:inherit}button,select{cursor:pointer}#gltf-viewer-app{min-height:100vh;position:relative;overflow:hidden}#scene-shell{z-index:0;position:fixed;inset:0}#scene-shell canvas{width:100%;height:100%;display:block}.viewer-hud{z-index:2;pointer-events:none;width:min(720px,100% - 48px);padding:34px 0 110px 42px;position:relative}.viewer-hud>*{pointer-events:auto}.back-link{color:#9ee9ff;letter-spacing:.06em;text-transform:uppercase;font-size:11px;text-decoration:none}.back-link:hover{color:#fff}.eyebrow{color:#91f2e3;letter-spacing:.15em;margin-top:24px;font-size:11px;font-weight:700}h1{letter-spacing:-.065em;max-width:680px;margin:20px 0 14px;font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:clamp(48px,6.4vw,86px);line-height:.94}.intro{color:#b4c0d1;max-width:650px;margin:0 0 20px;font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:15px;line-height:1.6}.intro code,.source-note code{color:#9ee9ff}.loading-panel,.control-card,.readout-card,.error-panel{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:linear-gradient(135deg,#161e32ed,#130e2ac7);border:1px solid #aed9ff29;margin-top:14px;box-shadow:0 20px 90px #00000042,inset 0 1px #ffffff0a}.loading-panel{padding:18px 20px 15px}.loading-row,.card-heading{justify-content:space-between;align-items:center;gap:16px;display:flex}.loading-row>span{align-items:center;gap:9px;display:flex}.loading-row i{background:#7bffe8;border-radius:50%;width:8px;height:8px;box-shadow:0 0 17px #7bffe8}.loading-row b,.card-heading span{color:#91f2e3;letter-spacing:.08em;text-transform:uppercase;font-size:10px}.progress-track{background:#ffffff14;height:5px;margin-top:14px;overflow:hidden}.progress-bar{background:linear-gradient(90deg,#7bffe8,#947bff,#ff9bc6);width:0;height:100%;transition:width .2s}.loading-panel>p{color:#aeb9cc;margin:10px 0 0;font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:12px;line-height:1.5}.control-card,.readout-card{padding:17px 20px 18px}.asset-row{color:#9eafc3;text-transform:uppercase;letter-spacing:.08em;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px;margin-top:15px;font-size:10px;display:grid}select{color:#effaff;text-transform:none;letter-spacing:normal;background:#050b14b3;border:1px solid #a9d8ff38;border-radius:3px;width:100%;padding:8px 10px;font-size:11px}button{color:#eaf8ff;background:#ffffff0b;border:1px solid #a9d8ff38;border-radius:3px;padding:8px 11px;font-size:11px}button:hover:not(:disabled),select:hover:not(:disabled){background:#8ef5e61f;border-color:#8ef5e6}button:disabled,select:disabled,input:disabled{cursor:not-allowed;opacity:.38}button#load-button{color:#0b1720;background:#91f2e3;border-color:#91f2e3}button#load-button:hover:not(:disabled){background:#c0fff4}.button-row{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.transport-row{color:#b8c5d7;flex-wrap:wrap;align-items:center;gap:14px;margin-top:15px;font-size:11px;display:flex}.transport-row label{align-items:center;gap:7px;display:inline-flex}.transport-row label:nth-child(2){flex:180px}.transport-row input[type=range]{accent-color:#91f2e3;flex:1;min-width:90px}.transport-row output{color:#f1fbff;font-weight:700}.checkbox-label input{accent-color:#91f2e3}.card-detail,.study-note,.source-note{color:#93a1b6;font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:12px;line-height:1.55}.card-detail{margin:14px 0 0}.decoder-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:14px;display:grid}.decoder-card{background:#070d176b;border:1px solid #ffffff1f;min-height:76px;padding:11px 10px}.decoder-card strong{color:#effaff;font-size:11px;display:block}.decoder-card span{color:#91f2e3;text-transform:uppercase;margin-top:9px;font-size:10px;font-weight:700;display:block}.decoder-card small{color:#7f8da4;margin-top:4px;font-size:9px;display:block}.decoder-card.violet span{color:#bea4ff}.decoder-card.orange span{color:#ffc27e}.extension-heading{color:#79869b;letter-spacing:.1em;text-transform:uppercase;margin-top:16px;font-size:9px}.extension-list{flex-wrap:wrap;gap:6px;min-height:21px;margin-top:8px;display:flex}.extension{color:#9ee9ff;background:#9ee9ff12;border:1px solid #9ee9ff33;padding:5px 7px;font-size:9px}.metrics{grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin:16px 0 0;display:grid}.metrics div{border-right:1px solid #ffffff1a;min-width:0;padding-right:8px}.metrics div:last-child{border-right:0}.metrics dt{color:#79869b;letter-spacing:.1em;text-transform:uppercase;font-size:9px}.metrics dd{color:#f3fbff;text-overflow:ellipsis;white-space:nowrap;margin:6px 0 0;font-size:12px;font-weight:700;overflow:hidden}.study-note{color:#b8c5d7;margin:16px 0 0}.source-note{margin:14px 0 0;font-size:10px}.source-note a{color:#9ee9ff}.source-note a:hover{color:#fff}.error-panel{background:#35121fcc;border-color:#ff7c8e73;padding:16px 20px}.error-panel strong{color:#ff9eae}.error-panel p{color:#ffced7;margin:8px 0 0;font-size:12px;line-height:1.5}.scene-label,.edge-label{z-index:1;color:#cdf0ffb8;letter-spacing:.13em;text-transform:uppercase;pointer-events:none;font-size:10px;position:fixed}.scene-label{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#09101c75;border:1px solid #ade8ff26;padding:8px 10px;top:10%;right:7%}.scene-label span{color:#cdf0ff6b;letter-spacing:.08em;margin-top:4px;font-size:8px;display:block}.edge-label{writing-mode:vertical-rl;color:#aedbff85;bottom:24px;right:24px}@media (width<=900px){.viewer-hud{width:min(650px,100% - 32px);padding-left:20px}.scene-label{display:none}}@media (width<=600px){.viewer-hud{width:calc(100% - 24px);padding:22px 0 70px 12px}h1{font-size:52px}.decoder-grid{grid-template-columns:1fr}.metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.metrics div:nth-child(2n){border-right:0}.transport-row label:nth-child(2){flex-basis:100%}}
