.gasper-dais{position:relative;flex:1 1 auto;min-width:0;min-height:0;width:100%;height:100%;overflow:hidden;background:#050506;touch-action:none;-webkit-user-select:none;user-select:none;cursor:default}.gasper-dais-env{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0}.gasper-dais-radial{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse 70% 55% at 50% 46%,#12121a,#08080c 55%,#050506)}.gasper-dais-pool{position:absolute;left:50%;top:58%;width:min(52%,420px);height:18%;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(ellipse at center,rgba(80,120,180,.09) 0%,rgba(40,30,70,.05) 45%,transparent 70%);filter:blur(2px)}.gasper-dais-guide{position:absolute;left:50%;top:48%;width:min(40%,320px);height:min(40%,320px);transform:translate(-50%,-50%);border-radius:50%;border:1px solid rgba(255,255,255,.03);box-shadow:inset 0 0 60px #00000040}.gasper-dais-content{position:absolute;left:0;top:0;width:100%;height:100%;transform-origin:center center;z-index:1;pointer-events:none}.gasper-dais-content .gasper-svg-host,.gasper-dais-content svg{pointer-events:none;overflow:visible!important}.gasper-dais-content main,.gasper-dais-content header,.gasper-dais-content .reference-panel{display:none!important}[data-gasper-legacy-only],[data-legacy-compat],[data-gasper-stubs]{pointer-events:none!important;-webkit-user-select:none!important;user-select:none!important}.gasper-dais[data-interaction-mode=render-only] .gasper-tools,.gasper-dais[data-interaction-mode=render-only] .gasper-mode-seg,.gasper-dais[data-interaction-mode=render-only] [data-testid=stage-mode-segment],.gasper-dais[data-interaction-mode=render-only] [data-testid=face-isolation-toggle],.gasper-dais[data-interaction-mode=render-only] [data-testid=dais-bounds-overlay],.gasper-dais[data-interaction-mode=render-only] [data-testid=compare-repin]{display:none!important}.gasper-handles{position:absolute;top:0;right:0;bottom:0;left:0;z-index:4;pointer-events:none}.gasper-handle{position:absolute;width:32px;height:32px;margin:-16px 0 0 -16px;border:none;background:transparent;pointer-events:auto;cursor:grab;z-index:5}.gasper-handle[data-off-stage="1"]{display:none!important;pointer-events:none!important;visibility:hidden!important}.gasper-handle.active{cursor:grabbing}.gasper-handle-knob{display:block;width:12px;height:12px;margin:10px auto;border-radius:50%;background:#a882fff2;box-shadow:0 0 0 2px #08080ad9,0 0 12px #a882ff59}.gasper-handle.active .gasper-handle-knob{background:#3dcfef;box-shadow:0 0 0 2px #08080ad9,0 0 14px #3dcfef73}.gasper-handle-value{position:absolute;left:50%;top:-18px;transform:translate(-50%);font-size:11px;font-family:ui-monospace,Consolas,monospace;color:#ececf1;background:#08080ad9;padding:2px 6px;border-radius:4px;white-space:nowrap}.gasper-hud{position:absolute;top:10px;left:12px;z-index:6;display:flex;gap:8px;align-items:center;pointer-events:none}.gasper-hud-mode{height:28px;min-height:32px;display:inline-flex;align-items:center;padding:0 10px;border-radius:4px;font-size:11px;font-weight:600;letter-spacing:.06em;color:#3dcfef;background:#3dcfef1a}.gasper-hud-mode[data-stage-mode=AUTHORING]{color:#a882ff;background:#a882ff1f}.gasper-hud-chip{height:32px;display:inline-flex;align-items:center;gap:6px;padding:0 10px;border-radius:4px;font-size:12px;color:#c8c8d4;background:#08080ac7}.gasper-hud-chip.muted{color:#8a8a98}.gasper-hud-chip.mono{font-family:ui-monospace,Consolas,monospace;font-size:11px}.gasper-hud-chip .live-dot{width:6px;height:6px;border-radius:50%;background:#3dcfef}.gasper-tools{position:absolute;left:12px;bottom:48px;z-index:6;display:flex;flex-direction:column;gap:2px;padding:4px;border-radius:8px;background:#08080ad1}.gasper-tools button,.gasper-view-controls button{min-height:32px;height:32px;padding:0 10px;border:none;border-radius:4px;background:transparent;color:#9a9aa8;font-size:12px;cursor:pointer;text-align:left}.gasper-tools button:hover,.gasper-view-controls button:hover{color:#ececf1;background:#ffffff0d}.gasper-tools button.active,.gasper-view-controls button.active{color:#a882ff;background:#a882ff24}.gasper-view-controls{position:absolute;top:10px;right:12px;z-index:6;display:flex;gap:2px;padding:4px;border-radius:8px;background:#08080ad1}.gasper-dais-error{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:8;max-width:28rem;padding:16px 20px;border-radius:8px;background:#280c10f2;color:#f07178;font-size:13px}.gasper-dais-loading{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:3;color:#8a8a98;font-size:13px}.gasper-bounds-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;width:100%;height:100%;pointer-events:none;overflow:visible}.studio-stage:has(.gasper-dais){background:#050506}.studio-stage:has(.gasper-dais) .stage-gasper-frame,.studio-stage:has(.gasper-dais) .viewport-iframe{display:none!important}.gasper-mode-seg{display:inline-flex;gap:1px;margin-left:4px;padding:2px;border-radius:6px;background:#00000059}.gasper-mode-seg button{min-width:52px;height:28px!important;min-height:28px!important;padding:0 8px!important;font-size:11px!important;letter-spacing:.02em;text-transform:capitalize}.gasper-view-controls button.active,.gasper-mode-seg button.active{color:#3dcfef;background:#3dcfef29}.gasper-compare{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;pointer-events:none}.gasper-compare-ghost-host{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;pointer-events:none;filter:grayscale(.25) saturate(.7)}.gasper-compare-ghost-host .gasper-svg-host,.gasper-compare-ghost-host svg{position:absolute;left:50%;top:50%;pointer-events:none!important}.gasper-compare-ghost{position:absolute;left:50%;top:48%;width:min(42%,340px);height:min(42%,340px);transform:translate(-50%,-50%);border-radius:50%;border:1.5px dashed rgba(168,130,255,.55);background:radial-gradient(ellipse at center,rgba(168,130,255,.12) 0%,rgba(80,60,140,.06) 45%,transparent 70%);box-shadow:0 0 40px #a882ff1f;opacity:.85}.gasper-compare-contour{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible;pointer-events:none}.gasper-compare-hud{position:absolute;left:50%;bottom:56px;transform:translate(-50%);z-index:7;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px 12px;max-width:min(92%,640px);padding:8px 12px;border-radius:8px;background:#08080ae0;border:1px solid rgba(168,130,255,.25);pointer-events:auto;font-size:12px;color:#c8c8d4}.gasper-compare-hud .sep{color:#6a6a78}.gasper-compare-hud .mono{font-family:ui-monospace,Consolas,monospace;font-size:11px;color:#a882ff}.gasper-compare-hud .delta{color:#3dcfef}.gasper-compare-modes{display:inline-flex;gap:2px}.gasper-compare-modes button{min-height:28px;height:28px;padding:0 8px;border:none;border-radius:4px;background:transparent;color:#9a9aa8;font-size:11px;text-transform:capitalize;cursor:pointer;pointer-events:auto}.gasper-compare-modes button.active{color:#3dcfef;background:#3dcfef24}.gasper-compare-hud input[type=range]{width:100px;accent-color:#a882ff}.gasper-face-iso-frame{position:absolute;z-index:4;border:1.5px solid rgba(61,207,239,.65);border-radius:10px;box-shadow:0 0 0 1px #08080a99,inset 0 0 24px #3dcfef14;pointer-events:none}.gasper-dais[data-face-isolation="1"] .gasper-face-iso-frame{animation:gasper-face-iso-pulse 2.4s ease-in-out infinite}@keyframes gasper-face-iso-pulse{0%,to{border-color:#3dcfef8c}50%{border-color:#a882ffbf}}.gasper-dais[data-clipped="1"] .gasper-hud-chip.mono{color:#f0a060}.gasper-animate-timeline{display:flex;flex-direction:column;gap:8px;padding:10px 12px;background:var(--studio-panel-bg, #12141c);color:var(--studio-text, #e8eaf0);border-top:1px solid rgba(255,255,255,.08);min-height:180px;font-size:12px;-webkit-user-select:none;user-select:none}.gasper-animate-timeline__toolbar{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.gasper-animate-timeline__toolbar button,.gasper-animate-timeline__toolbar select,.gasper-animate-timeline__toolbar input{background:#1c2030;color:inherit;border:1px solid rgba(255,255,255,.12);border-radius:4px;padding:4px 8px;font:inherit}.gasper-animate-timeline__toolbar button:hover{border-color:#78b4ff73}.gasper-animate-timeline__toolbar button:disabled{opacity:.4}.gasper-animate-timeline__ruler{position:relative;height:22px;background:#0c0e14;border-radius:3px;cursor:pointer}.gasper-animate-timeline__playhead{position:absolute;top:0;bottom:0;width:2px;background:#6ec8ff;pointer-events:none}.gasper-animate-timeline__tracks{display:flex;flex-direction:column;gap:4px;max-height:220px;overflow:auto}.gasper-animate-timeline__track-row{display:grid;grid-template-columns:140px 1fr;gap:8px;align-items:center;min-height:28px}.gasper-animate-timeline__track-label{opacity:.85;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gasper-animate-timeline__track-lane{position:relative;height:24px;background:#0c0e14;border-radius:3px}.gasper-animate-timeline__keyframe{position:absolute;top:4px;width:12px;height:12px;transform:translate(-50%) rotate(45deg);background:#9ad0ff;border:1px solid #d7eeff;cursor:grab}.gasper-animate-timeline__keyframe.is-selected{background:#ffd27a;border-color:#ffe9b5}.gasper-animate-timeline__empty{opacity:.65;padding:16px 4px;text-align:center}.gasper-animate-timeline__error{color:#ff8f8f}:root{--sp-0: 0;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 24px;--sp-6: 32px;--sp-8: 48px;--ctrl-min: 32px;--ctrl-default: 36px;--ctrl-compact: 28px;--bar-workspace: 40px;--bar-runtime: 36px;--rail-nav: 200px;--rail-inspector: 280px;--fs-xs: 12px;--fs-sm: 12px;--fs-md: 13px;--fs-lg: 14px;--fs-xl: 16px;--lh-tight: 1.25;--lh-body: 1.4;--fw-regular: 400;--fw-medium: 500;--fw-semibold: 600;--surf-0: #070708;--surf-1: #0e0e10;--surf-2: #16161a;--surf-stage: #050506;--surf-stage-veil: radial-gradient(ellipse 70% 60% at 50% 48%, #121218 0%, #050506 72%);--border-subtle: rgba(255, 255, 255, .06);--border-soft: rgba(255, 255, 255, .1);--border-focus: rgba(168, 130, 255, .55);--r-sm: 4px;--r-md: 6px;--r-lg: 8px;--shadow-1: 0 1px 0 rgba(255, 255, 255, .04) inset;--shadow-2: 0 8px 24px rgba(0, 0, 0, .45);--accent-select: #a882ff;--accent-live: #3dcfef;--accent-ok: #3dd68c;--accent-warn: #f0b429;--accent-danger: #f07178;--text-primary: #ececf1;--text-secondary: #9a9aa8;--text-tertiary: #6a6a78;--bg: var(--surf-0);--bg-elevated: var(--surf-1);--panel: var(--surf-1);--panel-2: var(--surf-2);--panel-hover: #1c1c22;--border: var(--border-subtle);--border-strong: var(--border-soft);--text: var(--text-primary);--muted: var(--text-secondary);--accent: var(--text-primary);--ok: var(--accent-ok);--warn: var(--accent-warn);--err: var(--accent-danger)}:root{color-scheme:dark;--bg: #050505;--bg-elevated: #0a0a0a;--panel: #0c0c0c;--panel-2: #111111;--panel-hover: #161616;--border: #222222;--border-strong: #333333;--text: #f5f5f5;--muted: #8a8a8a;--accent: #ffffff;--accent-dim: #e8e8e8;--ok: #3dd68c;--warn: #f5c542;--err: #ff6b7a;--mono: "Cascadia Code", "SF Mono", "Consolas", ui-monospace, monospace;--sans: "Inter", "Segoe UI", system-ui, -apple-system, sans-serif;--nav-w: 11.5rem;--radius: 8px;--pad: .75rem;--card-min: 11rem;font-family:var(--sans);font-feature-settings:"ss01" on,"cv11" on}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%;width:100%;margin:0;max-width:100%}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);overflow:hidden;min-width:0;-webkit-font-smoothing:antialiased}#root{container-type:size;container-name:root;overflow:hidden}.app{display:flex;flex-direction:row;height:100%;width:100%;min-width:0;min-height:0;overflow:hidden;container-type:size;container-name:app;position:relative}.nav-hit{position:fixed;left:0;top:0;bottom:0;width:14px;z-index:90;cursor:e-resize}.nav{position:fixed;left:0;top:0;bottom:0;z-index:100;width:var(--nav-w);max-width:min(88vw,16rem);background:#080808f5;border-right:1px solid var(--border);padding:.55rem .45rem;display:flex;flex-direction:column;gap:.15rem;min-width:0;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;transform:translate(calc(-100% + 10px));transition:transform .18s cubic-bezier(.2,.8,.2,1),box-shadow .18s ease;box-shadow:none;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.nav:after{content:"";position:absolute;right:0;top:20%;bottom:20%;width:2px;border-radius:2px;background:#ffffff1f;pointer-events:none}.nav:hover,.nav:focus-within,.app.nav-open .nav,.nav-hit:hover+.nav,.app:has(.nav-hit:hover) .nav{transform:translate(0);box-shadow:12px 0 40px #0000008c}.nav:hover:after,.nav:focus-within:after,.app.nav-open .nav:after{opacity:0}.brand{font-weight:600;letter-spacing:-.02em;padding:.55rem .5rem .85rem;line-height:1.25;overflow-wrap:anywhere;font-size:.95rem}.brand small{display:block;color:var(--muted);font-weight:500;margin-top:.2rem;font-size:.7rem}.nav button{text-align:left;background:transparent;border:1px solid transparent;color:var(--text);padding:.5rem .55rem;border-radius:10px;cursor:pointer;font:inherit;font-size:.82rem;line-height:1.25;white-space:normal;overflow-wrap:anywhere}.nav button:hover{background:var(--panel-hover)}.nav button.active{background:var(--panel-2);border-color:var(--border-strong);color:var(--text);font-weight:600}.main{flex:1 1 auto;min-width:0;min-height:0;width:100%;overflow:auto;padding:var(--pad);overscroll-behavior:contain;container-type:inline-size;container-name:main;margin-left:0}.main.main-studio{padding:0;overflow:hidden;display:flex;flex-direction:column;background:var(--bg)}.status-strip{flex:0 0 auto;display:flex;flex-wrap:wrap;align-items:center;gap:.45rem .75rem;padding:.35rem .65rem;background:var(--bg-elevated);border-bottom:1px solid var(--border);font-size:.72rem;min-height:2rem}.status-strip .pill{display:inline-flex;align-items:center;gap:.3rem;padding:.15rem .45rem;border-radius:999px;border:1px solid var(--border);color:var(--muted);font-family:var(--mono);font-size:.68rem}.status-strip .pill.ok{color:var(--ok);border-color:#3dd68c59}.status-strip .pill.warn{color:var(--warn);border-color:#f5c54259}.status-strip .url{flex:1 1 12rem;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--mono);color:var(--muted);font-size:.68rem}.status-strip .btn{padding:.2rem .5rem;font-size:.68rem}.app.app-narrow{--nav-w: 3.4rem;--pad: .55rem;--card-min: 9.5rem}.app.app-narrow .brand{font-size:.62rem;text-align:center;padding:.4rem .1rem .55rem}.app.app-narrow .brand small{display:none}.app.app-narrow .nav button{font-size:.58rem;text-align:center;padding:.45rem .15rem;line-height:1.15}.app.app-tight{flex-direction:column;--pad: .45rem;--card-min: 8.5rem}.app.app-tight .nav{width:min(88vw,14rem);flex-direction:column}.app.app-tight .brand{display:block}.app.app-tight .nav button{white-space:normal;font-size:.78rem;padding:.45rem .5rem;text-align:left}.app.app-narrow .nav{width:var(--nav-w)}h1{margin:0 0 .4rem;font-size:clamp(1.05rem,3.2cqi,1.4rem)}.sub{color:var(--muted);margin:0 0 .85rem;font-size:clamp(.8rem,2.2cqi,.95rem);line-height:1.4;max-width:70ch}.grid{display:grid;gap:.65rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,var(--card-min)),1fr));width:100%;min-width:0}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:.75rem .85rem;min-width:0;overflow:hidden}.card h3{margin:0 0 .4rem;font-size:.85rem;color:var(--muted);font-weight:600}.card .value{font-size:clamp(.85rem,2.4cqi,1.1rem);font-weight:650;word-break:break-word;overflow-wrap:anywhere;line-height:1.35;overflow:hidden}.badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font-size:.78rem;border:1px solid var(--border);background:var(--panel-2);max-width:100%}.badge.ok{color:var(--ok);border-color:#3dd68c59}.badge.warn{color:var(--warn);border-color:#f5c54259}.badge.err{color:var(--err);border-color:#ff6b7a59}.row{display:flex;flex-wrap:wrap;gap:.45rem;margin:.65rem 0;min-width:0}button.btn,.btn{background:transparent;color:var(--text);border:1px solid var(--border-strong);border-radius:6px;padding:.4rem .65rem;cursor:pointer;font:inherit;max-width:100%;transition:background .12s ease,border-color .12s ease,color .12s ease}button.btn:hover:not(:disabled){background:var(--panel-hover);border-color:#444}button.btn.primary{background:#fff;color:#000;border-color:#fff;font-weight:600}button.btn.primary:hover:not(:disabled){background:#e8e8e8;border-color:#e8e8e8;color:#000}button.btn.danger{background:transparent;border-color:#ff6b7a73;color:var(--err)}button.btn:disabled{opacity:.5;cursor:not-allowed}input,select,textarea{width:100%;max-width:100%;background:#0d1426;border:1px solid var(--border);color:var(--text);border-radius:10px;padding:.55rem .7rem;font:inherit}label{display:block;color:var(--muted);font-size:.85rem;margin:.55rem 0 .3rem}.table-wrap{width:100%;overflow-x:auto;min-width:0;-webkit-overflow-scrolling:touch}.table{width:100%;border-collapse:collapse;min-width:16rem}.table th,.table td{text-align:left;padding:.5rem .4rem;border-bottom:1px solid var(--border);vertical-align:top;word-break:break-word;overflow-wrap:anywhere}.table th{color:var(--muted);font-weight:600;font-size:.82rem}.mono{font-family:var(--mono);font-size:.82rem;overflow-wrap:anywhere;word-break:break-all}.pre{background:#0a1020;border:1px solid var(--border);border-radius:12px;padding:.7rem;overflow:auto;max-height:min(40vh,360px);font-family:var(--mono);font-size:.78rem;white-space:pre-wrap;word-break:break-word;max-width:100%}.stack{display:flex;flex-direction:column;gap:.7rem;min-width:0;width:100%}.muted{color:var(--muted)}.warn-banner{background:#f5c5421a;border:1px solid rgba(245,197,66,.35);color:#ffe29a;border-radius:12px;padding:.7rem .85rem;margin-bottom:.75rem}@container main (max-width: 520px){.grid{--card-min: 100%;grid-template-columns:1fr}}@container main (min-width: 521px) and (max-width: 760px){.grid{--card-min: 10rem}}@container app (max-width: 900px){.app{--nav-w: 3.4rem}}.studio{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;min-width:0;width:100%;height:100%;gap:0;container-type:size;container-name:studio}.studio-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.35rem;padding:.4rem .55rem;background:var(--bg-elevated);border:none;border-bottom:1px solid var(--border);border-radius:0;flex:0 0 auto;min-width:0}.studio-top-slim{min-height:2.4rem}.studio-brand{font-size:.85rem;letter-spacing:-.02em}.studio-top>.row,.studio-top-actions{flex:1 1 10rem;min-width:0;margin:0;justify-content:flex-end;gap:.3rem}.studio-top .btn{padding:.28rem .55rem;font-size:clamp(.65rem,1.5cqi,.78rem);border-radius:6px}.studio-body{--studio-left: 16%;--studio-right: 20%;--studio-split: 4px;flex:1 1 auto;min-height:0;min-width:0;width:100%;display:flex;flex-direction:row;align-items:stretch;gap:0;overflow:hidden}.studio-body.studio-body-stacked{flex-direction:column;overflow:auto;gap:.4rem}.studio-splitter{flex:0 0 var(--studio-split);width:var(--studio-split);cursor:col-resize;background:transparent;border-radius:4px;position:relative;touch-action:none;-webkit-user-select:none;user-select:none;align-self:stretch}.studio-splitter:after{content:"";position:absolute;top:8%;right:1px;bottom:8%;left:1px;border-radius:1px;background:#ffffff14;transition:background .12s ease}.studio-splitter:hover:after,.studio-splitter:focus-visible:after,.studio-splitter:active:after{background:#ffffff47}.studio-left,.studio-right{background:var(--panel);border:none;border-right:1px solid var(--border);border-radius:0;padding:.55rem .5rem;overflow:auto;min-width:0;min-height:0;overscroll-behavior:contain}.studio-right{border-right:none;border-left:1px solid var(--border)}.studio-body:not(.studio-body-stacked) .studio-left{flex:0 0 var(--studio-left);width:var(--studio-left);max-width:40%}.studio-body:not(.studio-body-stacked) .studio-right{flex:0 0 var(--studio-right);width:var(--studio-right);max-width:45%}.studio-body-stacked .studio-left,.studio-body-stacked .studio-right{flex:0 0 auto;width:100%;max-width:none;max-height:min(32vh,260px)}.studio-left h3,.studio-right h3{margin:0 0 .4rem;font-size:.75rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.studio-viewport{flex:1 1 auto;min-width:0;min-height:0;display:flex;flex-direction:column;gap:0;overflow:hidden;background:#000}.studio-viewport-bleed{position:relative}.studio-body-stacked .studio-viewport{flex:1 1 auto;min-height:min(52vh,480px)}.viewport-frame{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;background:#000;border:none;border-radius:0;padding:0;overflow:hidden;position:relative}.viewport-frame-bleed{height:100%}.studio-right input[type=range]{width:100%;accent-color:#fff}.viewport-stage{position:relative;flex:1 1 auto;min-height:0;width:100%;height:100%;margin:0;border-radius:0;overflow:hidden;background:#000;border:none;display:flex;align-items:stretch;justify-content:stretch}.viewport-stage-bleed{position:absolute;top:0;right:0;bottom:0;left:0;flex:none}.viewport-stage>.muted{padding:.9rem;text-align:center;max-width:28rem;line-height:1.4;margin:auto}.viewport-empty{margin:auto;text-align:center;display:flex;flex-direction:column;align-items:center;gap:.65rem;padding:1.5rem;max-width:22rem}.viewport-empty-title{margin:0;font-size:1.05rem;font-weight:600;letter-spacing:-.03em}.viewport-img{display:block;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;object-position:center;background:#000}.viewport-iframe{display:block;position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;min-height:100%;border:0;background:#000;border-radius:0}.viewport-chrome{flex:0 0 auto;display:flex;flex-wrap:wrap;align-items:center;gap:.35rem;padding:.35rem .45rem;min-width:0}.viewport-chrome-overlay{position:absolute;left:.5rem;right:.5rem;bottom:.5rem;z-index:6;background:#080808c7;border:1px solid var(--border);border-radius:8px;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 8px 28px #00000073}.compare-result-overlay{position:absolute;left:.5rem;right:.5rem;top:.5rem;z-index:6;margin:0;background:#080808e0;border:1px solid var(--border);border-radius:6px}.viewport-meta{flex:1 1 8rem;min-width:0;margin:0;font-size:.65rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.warn-text{color:var(--warn)}.mono{font-family:var(--mono)}.deformer-stage{position:relative;min-height:min(28vh,220px);margin:.4rem;border:1px dashed rgba(91,140,255,.35);border-radius:10px;background:radial-gradient(ellipse at 50% 55%,#121a2f,#070b14 70%)}.deformer-overlay{position:absolute;top:0;right:0;bottom:0;left:0;margin:0;border:none;background:transparent;pointer-events:none}.compare-split{position:relative;width:100%;height:100%;min-height:0}.compare-split>.viewport-img{width:100%;height:100%;object-fit:contain}.compare-overlay{pointer-events:none}.compare-overlay .viewport-img{max-width:none;width:100%;height:100%;object-fit:contain}.compare-slider{accent-color:var(--accent, #5b8cff);z-index:3;pointer-events:auto}.deformer-handle{position:absolute;transform:translate(-50%,-50%);padding:4px 8px;font-size:.65rem;line-height:1.2;border-radius:999px;border:1px solid rgba(91,140,255,.7);background:#121a2feb;color:var(--text, #e8eefc);cursor:pointer;white-space:nowrap;max-width:min(8rem,36vw);overflow:hidden;text-overflow:ellipsis;z-index:2}.deformer-handle:hover:not(:disabled),.deformer-handle:focus-visible{border-color:#8eb4ff;outline:2px solid rgba(91,140,255,.45);outline-offset:2px}.deformer-handle:disabled{opacity:.5;cursor:not-allowed}.studio-bottom{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);flex:0 1 auto;max-height:min(30vh,280px);overflow:auto;min-width:0}.studio-float-dock{position:fixed;z-index:40;display:flex;flex-direction:column;min-width:min(220px,calc(100% - 16px));min-height:140px;max-width:calc(100vw - 12px);max-height:calc(100vh - 12px);background:linear-gradient(180deg,#121a2f,#0e1528);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 12px 40px #00000073,0 0 0 1px #5b8cff1f;overflow:hidden}.studio-float-dock-title{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;background:#121a2ff2;border-bottom:1px solid var(--border);cursor:grab;font-size:.8rem;font-weight:600;letter-spacing:.02em;-webkit-user-select:none;user-select:none}.studio-float-dock-title:active{cursor:grabbing}.studio-float-dock-body{flex:1;min-height:0;overflow:auto;padding:10px}.timeline-track{position:relative;height:28px;margin:4px 0 0;border-radius:8px;background:linear-gradient(180deg,#0e1528,#0a1020);border:1px solid rgba(91,140,255,.25)}.timeline-keyframe{position:absolute;top:50%;width:10px;height:10px;margin:0;padding:0;border-radius:2px;border:1px solid #8eb4ff;background:var(--accent);transform:translate(-50%,-50%) rotate(45deg);cursor:pointer;z-index:2}.timeline-keyframe:hover:not(:disabled){background:#8eb4ff;box-shadow:0 0 0 3px #5b8cff40}.timeline-playhead{position:absolute;top:2px;bottom:2px;width:2px;background:var(--warn);transform:translate(-50%);z-index:1;pointer-events:none;box-shadow:0 0 6px #f5c54273}.graph-nodes{display:flex;flex-wrap:wrap;gap:6px}.graph-node{background:#18223b;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:5px 10px;font-size:.72rem;cursor:pointer}.graph-node:hover:not(:disabled){border-color:#5b8cff}.graph-node.kind-dormant{border-color:#8b5cf68c}.graph-node.kind-emotion{border-color:#3dd68c66}.graph-node.kind-embodiment{border-color:#5b8cff73}.graph-node.protected{box-shadow:inset 0 0 0 1px #f5c54259}@media(max-width:640px){.app:not(.app-tight){flex-direction:column}}.studio-shell{display:grid;grid-template-rows:var(--bar-workspace) minmax(0,1fr) var(--bar-runtime);grid-template-columns:1fr;height:100%;width:100%;min-height:0;min-width:0;overflow:hidden;background:var(--surf-0);color:var(--text-primary);container-type:size;container-name:studio}.studio-shell-body{display:grid;grid-template-columns:minmax(0,var(--rail-nav)) minmax(0,1fr) minmax(0,var(--rail-inspector));min-height:0;min-width:0;overflow:hidden}.studio-shell-body.nav-collapsed{grid-template-columns:0 minmax(0,1fr) minmax(0,var(--rail-inspector))}.studio-shell-body.inspector-collapsed{grid-template-columns:minmax(0,var(--rail-nav)) minmax(0,1fr) 0}.studio-shell-body.nav-collapsed.inspector-collapsed{grid-template-columns:0 minmax(0,1fr) 0}.ws-bar{display:flex;align-items:center;gap:var(--sp-2);height:var(--bar-workspace);min-height:var(--bar-workspace);max-height:var(--bar-workspace);padding:0 var(--sp-3);background:var(--surf-1);border-bottom:1px solid var(--border-subtle);overflow:hidden}.ws-bar-brand{font-size:var(--fs-sm);font-weight:var(--fw-semibold);letter-spacing:-.02em;color:var(--text-secondary);white-space:nowrap;margin-right:var(--sp-2);-webkit-user-select:none;user-select:none}.ws-bar-primary{display:flex;align-items:center;gap:var(--sp-1);flex:0 0 auto;min-width:0}.ws-bar-modes{display:flex;align-items:center;margin-left:var(--sp-3);min-width:0;overflow-x:auto;scrollbar-width:none}.ws-bar-modes::-webkit-scrollbar{display:none}.ws-bar-spacer{flex:1 1 auto;min-width:var(--sp-2)}.ws-bar-trailing{display:flex;align-items:center;gap:var(--sp-1);flex:0 0 auto}.seg-control{display:inline-flex;align-items:stretch;background:var(--surf-0);border-radius:var(--r-md);padding:2px;gap:1px}.seg-control button{height:32px;min-height:32px;padding:0 10px;border:none;border-radius:var(--r-sm);background:transparent;color:var(--text-secondary);font-size:var(--fs-sm);font-weight:var(--fw-medium);cursor:pointer;white-space:nowrap}.seg-control button:hover:not(:disabled){color:var(--text-primary);background:#ffffff0a}.seg-control button.active{background:#a882ff29;color:var(--accent-select);box-shadow:inset 0 0 0 1px #a882ff59}.seg-control button:disabled{opacity:.45;cursor:not-allowed}.shell-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:var(--ctrl-default);min-height:var(--ctrl-min);min-width:var(--ctrl-min);padding:0 12px;border:none;border-radius:var(--r-md);background:var(--surf-2);color:var(--text-primary);font-size:var(--fs-sm);font-weight:var(--fw-medium);cursor:pointer;white-space:nowrap}.shell-btn:hover:not(:disabled){background:var(--panel-hover)}.shell-btn:disabled{opacity:.4;cursor:not-allowed}.shell-btn.primary{background:#a882ff2e;color:var(--accent-select);box-shadow:inset 0 0 0 1px #a882ff59}.shell-btn.primary:hover:not(:disabled){background:#a882ff47}.shell-btn.ghost{background:transparent;color:var(--text-secondary)}.shell-btn.ghost:hover:not(:disabled){background:#ffffff0d;color:var(--text-primary)}.shell-btn.danger{color:var(--accent-danger)}.shell-btn.icon{width:var(--ctrl-default);padding:0}.health-chip{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 10px;border-radius:999px;background:var(--surf-0);color:var(--text-secondary);font-size:var(--fs-xs);cursor:pointer;border:none}.health-chip .dot{width:7px;height:7px;border-radius:50%;background:var(--accent-warn)}.health-chip.ok .dot{background:var(--accent-ok)}.health-chip.warn .dot{background:var(--accent-warn)}.health-chip.err .dot{background:var(--accent-danger)}.shell-popover{position:absolute;z-index:40;top:calc(100% + 4px);right:0;min-width:220px;max-width:320px;max-height:min(70vh,480px);overflow:auto;padding:var(--sp-2);background:var(--surf-2);border-radius:var(--r-lg);box-shadow:var(--shadow-2);border:1px solid var(--border-soft)}.shell-popover-section{padding:var(--sp-2) var(--sp-2) var(--sp-1);font-size:var(--fs-xs);font-weight:var(--fw-semibold);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em}.shell-menu-item{display:flex;align-items:center;width:100%;min-height:32px;padding:6px 10px;border:none;border-radius:var(--r-sm);background:transparent;color:var(--text-primary);font-size:var(--fs-sm);text-align:left;cursor:pointer}.shell-menu-item:hover:not(:disabled){background:#ffffff0f}.shell-menu-item:disabled{opacity:.4;cursor:not-allowed}.shell-menu-item.active{color:var(--accent-select);background:#a882ff1a}.popover-anchor{position:relative}.studio-nav{display:flex;flex-direction:column;min-height:0;min-width:0;background:var(--surf-1);border-right:1px solid var(--border-subtle);overflow:hidden}.studio-nav-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;padding:var(--sp-2)}.nav-section{margin-bottom:var(--sp-2)}.nav-section-head{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:32px;padding:4px 8px;border:none;border-radius:var(--r-sm);background:transparent;color:var(--text-tertiary);font-size:var(--fs-xs);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.05em;cursor:pointer}.nav-section-head:hover{color:var(--text-secondary);background:#ffffff08}.nav-section-body{display:flex;flex-direction:column;gap:1px;padding:2px 0 4px}.nav-item{display:flex;align-items:center;min-height:32px;padding:4px 10px;border:none;border-radius:var(--r-sm);background:transparent;color:var(--text-secondary);font-size:var(--fs-sm);text-align:left;cursor:pointer}.nav-item:hover:not(:disabled){background:#ffffff0a;color:var(--text-primary)}.nav-item.active{background:#a882ff24;color:var(--accent-select)}.nav-item.sub{padding-left:18px;font-size:var(--fs-xs);min-height:var(--ctrl-min);color:var(--text-tertiary)}.nav-item.sub.active{color:var(--accent-select)}.studio-stage{position:relative;display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden;background:var(--surf-stage)}.studio-stage>.gasper-dais{flex:1 1 auto;min-height:0}.stage-canvas{position:relative;flex:1 1 auto;min-height:0;width:100%;display:flex;align-items:center;justify-content:center;background:var(--surf-stage-veil)}.stage-gasper-frame{position:relative;width:min(100%,92%);height:clamp(55%,64%,70%);max-height:70%;min-height:55%;display:flex;align-items:center;justify-content:center;overflow:hidden;border-radius:var(--r-sm);background:#000;box-shadow:0 0 0 1px #ffffff0a,0 24px 64px #0000008c}.stage-gasper-frame .viewport-iframe,.stage-gasper-frame .viewport-img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:0;object-fit:contain;background:#000;transform-origin:center center;transition:transform .12s ease}.stage-gasper-frame.view-fill .viewport-iframe,.stage-gasper-frame.view-fill .viewport-img{object-fit:cover}.stage-gasper-frame.view-actual .viewport-iframe,.stage-gasper-frame.view-actual .viewport-img{object-fit:none;width:auto;height:auto;max-width:none;max-height:none;left:50%;top:50%;right:auto;bottom:auto;transform:translate(-50%,-50%) scale(var(--stage-zoom, 1))}.stage-gasper-frame:not(.view-actual) .viewport-iframe,.stage-gasper-frame:not(.view-actual) .viewport-img{transform:scale(var(--stage-zoom, 1))}.stage-view-menu{position:absolute;top:calc(100% + 4px);right:0;z-index:12;min-width:160px;padding:var(--sp-1);background:var(--surf-2);border-radius:var(--r-md);border:1px solid var(--border-soft);box-shadow:var(--shadow-2)}.stage-gasper-frame .compare-split{position:absolute;top:0;right:0;bottom:0;left:0}.stage-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-3);text-align:center;padding:var(--sp-5);max-width:22rem}.stage-empty h2{margin:0;font-size:var(--fs-xl);font-weight:var(--fw-semibold);letter-spacing:-.03em}.stage-empty p{margin:0;color:var(--text-secondary);font-size:var(--fs-sm);line-height:var(--lh-body)}.stage-hud-top{position:absolute;top:var(--sp-2);left:var(--sp-2);z-index:8;display:flex;align-items:center;gap:var(--sp-2);pointer-events:none}.stage-hud-top>*{pointer-events:auto}.stage-hud-badge{display:inline-flex;align-items:center;gap:6px;height:var(--ctrl-min);min-height:var(--ctrl-min);padding:0 10px;border-radius:var(--r-sm);background:#08080ac7;color:var(--text-secondary);font-size:var(--fs-xs);font-family:var(--mono)}.stage-hud-badge .live-dot{width:6px;height:6px;border-radius:50%;background:var(--accent-live);box-shadow:0 0 6px #3dcfef99}.stage-viewport-controls{position:absolute;top:var(--sp-2);right:var(--sp-2);z-index:8;display:flex;gap:2px;padding:2px;border-radius:var(--r-md);background:#08080ac7}.stage-viewport-controls .shell-btn{height:var(--ctrl-min);min-height:var(--ctrl-min);min-width:var(--ctrl-min);padding:0 8px;font-size:var(--fs-xs);background:transparent}.stage-viewport-controls .shell-btn.active{color:var(--accent-live);background:#3dcfef1f}.deformer-overlay{position:absolute;top:0;right:0;bottom:0;left:0;margin:0;border:none;background:transparent;pointer-events:none;z-index:5}.deformer-overlay .deformer-handle{pointer-events:auto}.studio-inspector{display:flex;flex-direction:column;min-height:0;min-width:0;background:var(--surf-1);border-left:1px solid var(--border-subtle);overflow:hidden}.inspector-tabs{display:flex;flex:0 0 auto;gap:0;padding:var(--sp-2) var(--sp-2) 0;overflow-x:auto;scrollbar-width:none;border-bottom:1px solid var(--border-subtle)}.inspector-tabs::-webkit-scrollbar{display:none}.inspector-tabs button{flex:0 0 auto;height:32px;padding:0 10px;border:none;border-bottom:2px solid transparent;background:transparent;color:var(--text-tertiary);font-size:var(--fs-xs);font-weight:var(--fw-medium);cursor:pointer}.inspector-tabs button:hover{color:var(--text-secondary)}.inspector-tabs button.active{color:var(--accent-select);border-bottom-color:var(--accent-select)}.inspector-search{flex:0 0 auto;padding:var(--sp-2)}.inspector-search input{width:100%;height:32px;padding:0 10px;border:none;border-radius:var(--r-sm);background:var(--surf-0);color:var(--text-primary);font-size:var(--fs-sm);outline:none}.inspector-search input:focus{box-shadow:inset 0 0 0 1px var(--border-focus)}.inspector-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;padding:0 var(--sp-2) var(--sp-3)}.inspector-section{margin-bottom:var(--sp-2)}.inspector-section-head{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:32px;padding:4px 6px;border:none;border-radius:var(--r-sm);background:transparent;color:var(--text-secondary);font-size:var(--fs-xs);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.04em;cursor:pointer}.inspector-section-head:hover{background:#ffffff08;color:var(--text-primary)}.inspector-control{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;gap:2px 8px;padding:6px 4px;border-radius:var(--r-sm);align-items:center}.inspector-control.modified{background:#a882ff0f}.inspector-control label{margin:0;font-size:var(--fs-sm);color:var(--text-primary);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.inspector-control .ctrl-value{display:flex;align-items:center;gap:4px;font-family:var(--mono);font-size:var(--fs-xs);color:var(--text-secondary)}.inspector-control.modified .ctrl-value{color:var(--accent-select)}.inspector-control input[type=range]{grid-column:1 / -1;width:100%;height:24px;accent-color:var(--accent-select);margin:0}.inspector-control input[type=number]{width:64px;height:28px;padding:0 6px;border:none;border-radius:var(--r-sm);background:var(--surf-0);color:var(--text-primary);font-family:var(--mono);font-size:var(--fs-xs)}.ctrl-reset{width:24px;height:24px;padding:0;border:none;border-radius:var(--r-sm);background:transparent;color:var(--text-tertiary);font-size:12px;cursor:pointer;opacity:0}.inspector-control:hover .ctrl-reset,.inspector-control.modified .ctrl-reset{opacity:1}.ctrl-reset:hover{color:var(--accent-danger);background:#f071781f}.runtime-bar{display:flex;align-items:center;gap:var(--sp-3);height:var(--bar-runtime);min-height:var(--bar-runtime);max-height:var(--bar-runtime);padding:0 var(--sp-3);background:var(--surf-1);border-top:1px solid var(--border-subtle);overflow:hidden;font-size:var(--fs-xs);color:var(--text-secondary)}.runtime-bar-item{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.runtime-bar-item .label{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em;font-size:10px}.runtime-bar-item strong{font-weight:var(--fw-medium);color:var(--text-primary);font-size:var(--fs-xs)}.runtime-bar-item.live strong{color:var(--accent-live)}.runtime-playhead{flex:1 1 auto;min-width:80px;max-width:280px;display:flex;align-items:center;gap:8px}.runtime-playhead input[type=range]{flex:1;accent-color:var(--accent-live);height:20px}.runtime-warn{color:var(--accent-warn);max-width:28ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.runtime-health.ok{color:var(--accent-ok)}.runtime-health.warn{color:var(--accent-warn)}.runtime-health.err{color:var(--accent-danger)}.ref-drawer{position:absolute;z-index:30;right:0;bottom:var(--bar-runtime);top:var(--bar-workspace);width:min(360px,36vw);background:var(--surf-2);border-left:1px solid var(--border-soft);box-shadow:var(--shadow-2);display:flex;flex-direction:column;overflow:hidden}.ref-drawer-head{display:flex;align-items:center;justify-content:space-between;height:40px;padding:0 var(--sp-3);border-bottom:1px solid var(--border-subtle);font-size:var(--fs-sm);font-weight:var(--fw-semibold)}.ref-drawer-body{flex:1;overflow:auto;padding:var(--sp-3);font-size:var(--fs-sm);color:var(--text-secondary);line-height:var(--lh-body)}.ref-drawer-body h3{margin:var(--sp-3) 0 var(--sp-2);font-size:var(--fs-xs);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em}.ref-drawer-body h3:first-child{margin-top:0}.studio-float-dock{position:fixed;z-index:50;display:flex;flex-direction:column;background:var(--surf-2);border-radius:var(--r-lg);box-shadow:var(--shadow-2);border:1px solid var(--border-soft);overflow:hidden}.studio-float-dock-title{display:flex;align-items:center;justify-content:space-between;height:32px;padding:0 8px 0 12px;background:var(--surf-1);font-size:var(--fs-xs);font-weight:var(--fw-semibold);cursor:grab;-webkit-user-select:none;user-select:none}.studio-float-dock-body{flex:1;overflow:auto;padding:var(--sp-2);min-height:0}.compare-result-overlay{position:absolute;left:var(--sp-2);right:var(--sp-2);bottom:var(--sp-2);z-index:7;margin:0;max-height:72px;overflow:auto;padding:8px 10px;background:#08080ae6;border-radius:var(--r-sm);font-size:var(--fs-xs);font-family:var(--mono);color:var(--text-secondary)}.main.main-studio{display:flex;flex-direction:column;min-height:0;overflow:hidden;padding:0!important}.main.main-studio .status-strip{display:none}.main.main-studio>.studio-shell,.main.main-studio>.studio{flex:1 1 auto;min-height:0}.app.app-studio .nav{transform:translate(-100%)}.app.app-studio .nav:hover,.app.app-studio .nav:focus-within,.app.app-studio.nav-open .nav,.app.app-studio .nav-hit:hover+.nav,.app.app-studio:has(.nav-hit:hover) .nav{transform:translate(0)}.app.app-studio .nav-hit{width:10px}.app.app-studio .ws-bar{padding-left:var(--sp-3)}.stage-gasper-frame{width:min(100%,96%);height:66%;min-height:60%;max-height:72%}@container studio (max-width: 1100px){.studio-shell-body{--rail-nav: 168px;--rail-inspector: 240px}.ws-bar-modes .seg-control button{padding:0 7px;font-size:11px}}@container studio (max-width: 900px){.studio-shell-body{grid-template-columns:minmax(0,148px) minmax(0,1fr) minmax(0,220px)}}@container studio (max-width: 720px){.studio-shell-body{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto}.studio-nav,.studio-inspector{display:none}.stage-gasper-frame{height:70%;max-height:75%}}@media(min-width:2560px){:root{--rail-nav: 240px;--rail-inspector: 320px}}@media(min-width:1920px)and (max-width:2559px){:root{--rail-nav: 212px;--rail-inspector: 300px}}@media(min-height:800px)and (max-height:960px){.stage-gasper-frame{height:64%;min-height:60%}}
