:root{color-scheme:dark;font-family:Inter,ui-sans-serif,system-ui,sans-serif;color:#e6eef5;background:#090e14;font-size:14px}*{box-sizing:border-box}body{margin:0}header{padding:24px 32px;border-bottom:1px solid #23303b;display:flex;align-items:center;justify-content:space-between;gap:16px}header p{color:#91a2b2;margin:0}.brand{display:flex;align-items:center;gap:12px;font-weight:700;letter-spacing:.13em;font-size:13px}.mark{color:#84ddbd;font-size:27px}.tag{font-size:10px;letter-spacing:.1em;color:#8da9a2;background:#13241f;border:1px solid #284439;padding:5px 8px;border-radius:4px;white-space:nowrap}main{display:grid;grid-template-columns:340px minmax(0,1fr);gap:22px;padding:26px 32px;max-width:1700px;margin:auto}.panel{background:#101821;border:1px solid #273440;border-radius:12px}aside{padding:24px;height:fit-content}h1{font-size:30px;letter-spacing:-.04em;line-height:1.1;margin:12px 0 16px}h2{font-size:20px;margin:5px 0;letter-spacing:-.02em}p{line-height:1.6}.muted{color:#92a4b5}.small{font-size:12px;line-height:1.6}.eyebrow{color:#7bb6a4;font-size:10px;letter-spacing:.14em;font-weight:650}.upload{margin:24px 0 10px;padding:20px 16px;border:1px dashed #5f897c;background:#152821;border-radius:8px;display:flex;flex-direction:column;gap:7px;cursor:pointer}.upload strong{color:#bbf4df}.upload span{font-size:11px;color:#8fb6a8}#file{display:block;max-width:100%;font-size:11px;margin-bottom:14px}button{font:inherit;font-size:12px;border:1px solid #3b4a58;background:#1b2834;color:#dbe9f3;padding:9px 12px;border-radius:6px;cursor:pointer}button:hover:not(:disabled){background:#2a3d4d}button:disabled{opacity:.4;cursor:default}button.primary{background:#a7edce;color:#10271d;border-color:#a7edce;font-weight:650}button[hidden]{display:none}.actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.previews{display:grid;gap:12px;margin:22px 0 24px}.previews figure{margin:0}.previews canvas{display:block;width:100%;height:auto;background:#0a1119;border:1px solid #283746;border-radius:6px}figcaption{font-size:10px;color:#90a2b0;padding-top:5px}.stages{padding:0;list-style:none;font-size:12px}.stages li{display:flex;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid #24323d}.stages span{font-size:10px;color:#7c94a7}.stages li.active{color:#e9c979}.stages li.done{color:#9ce0be}#status{font-size:12px;color:#c1ddcf;overflow-wrap:anywhere}.workspace{min-width:0;display:flex;flex-direction:column;gap:16px}.viewer{overflow:hidden}.viewer-heading,.results-heading{padding:20px 22px;display:flex;justify-content:space-between;align-items:center;gap:16px}#scene{width:100%;height:490px;display:block;touch-action:auto;background:#080d13;cursor:grab}#scene:active{cursor:grabbing}.viewer-stage{position:relative;width:100%;overflow:hidden}.viewer-footer{display:flex;justify-content:space-between;align-items:center;padding:12px 20px;gap:12px;border-top:1px solid #25333f}.viewer-footer p{margin:0;color:#9bafbd}.controls{display:flex;align-items:center;gap:22px;padding:17px 20px;flex-wrap:wrap}.controls label{font-size:12px;display:flex;align-items:center;gap:10px}.controls input[type=range]{width:105px;accent-color:#9ce0be}.controls output{font-variant-numeric:tabular-nums;font-size:11px;color:#a8c4b8;min-width:28px}.controls .toggle:first-of-type{margin-left:auto}.results>p{padding:0 22px;margin:0 0 16px}.table-scroll{overflow:auto;padding:0 22px 20px}table{border-collapse:collapse;width:100%;font-size:12px;white-space:nowrap}th{text-align:left;color:#7f96a7;font-weight:500;border-bottom:1px solid #354551;padding:10px 8px}td{padding:12px 8px;border-bottom:1px solid #23303b;font-variant-numeric:tabular-nums}td:first-child{color:#f1cd8a}.footnote{font-size:11px;color:#7a909f;margin:0 3px 15px}.error{color:#ffa9a0!important}@media(min-width:1450px){#scene{height:590px}}@media(max-width:950px){main{grid-template-columns:280px minmax(0,1fr);padding:20px;gap:16px}aside{padding:18px}header{padding:20px}header p{display:none}#scene{height:420px}.viewer-heading{align-items:flex-start;flex-direction:column}}@media(max-width:700px){main{grid-template-columns:1fr;padding:14px}.previews{grid-template-columns:1fr 1fr}header{padding:14px}.brand{font-size:11px}.viewer-heading{flex-direction:row}#scene{height:380px}.controls .toggle{margin-left:0}}
.viewport-actions{position:absolute;right:12px;top:12px;z-index:2;display:flex;gap:8px}.viewer-stage.viewport-fullscreen,.viewer-stage:fullscreen{position:fixed;inset:0;width:100%;height:100%;height:100dvh;z-index:100;background:#080d13}.viewer-stage.viewport-fullscreen #scene,.viewer-stage:fullscreen #scene{height:100%;width:100%}body.viewport-expanded{overflow:hidden}.viewer-stage.needs-activation #scene{cursor:pointer}.viewer-stage.needs-activation::after{content:"Tap to explore full screen";position:absolute;bottom:20px;left:50%;transform:translateX(-50%);padding:10px 14px;background:#101821dd;border:1px solid #3b4a58;border-radius:8px;white-space:nowrap;pointer-events:none;font-size:12px}#config-dialog{color-scheme:light;background:#f5f5f5;color:#000;border:1px solid #ddd;border-radius:16px;padding:20px;max-width:calc(100vw - 32px)}#config-dialog::backdrop{background:#0006}#config-dialog .controls{background:transparent;border:0;color:#000;flex-direction:column;align-items:stretch;padding:8px 0 20px}#config-dialog .controls label{justify-content:space-between}#config-dialog .controls output{color:#222}#config-dialog button{background:#d9e4f2;color:#000;border:0}#config-dialog .toggle{margin-left:0}#config-dialog input[type=range]{accent-color:#477cab}

@media not all and (pointer:coarse){#scene{touch-action:none}}

.vr-instructions{padding:0 22px 16px;margin:0}#config-open{display:none}.viewport-fullscreen #config-open,.viewer-stage:fullscreen #config-open{display:block}
.viewer,.viewer *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
