@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/space-grotesk-vietnamese-wght-normal-D0rl6rjA.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/space-grotesk-latin-ext-wght-normal-D9tNdqV9.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/space-grotesk-latin-wght-normal-BhU9QXUp.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-cyrillic-ext-600-normal-V-xxqcpd.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-600-normal-9HEixskS.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-cyrillic-600-normal-CTOM6hUh.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-600-normal-fLZuRloM.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-vietnamese-600-normal-D2EvbN8M.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-600-normal-iLQfcSjf.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-latin-ext-600-normal-D38SheWl.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-600-normal-DmB0ttJJ.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-latin-600-normal-BgSNZQsw.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-600-normal-DWFSQ4vo.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--color-bg:#101216;--color-panel:#191c21;--color-panel-2:#1f232a;--color-line:#686e78;--color-text:#e8e6e1;--color-muted:#9a978f;--color-pass:#3fa66a;--color-fail:#d57064;--color-fail-bright:#de7f74;--color-unknown:#e3b34e;--color-na:#8a877f;--color-accent:#c9a227;--color-accent-strong:color-mix(in oklab, var(--color-accent) 88%, white);--color-on-accent:#14161a;--color-focus:#e8e6e1;--shadow-strip:0 -8px 16px #00000047;--shadow-strip-down:0 8px 16px #00000047;--font-ui:"Space Grotesk Variable", ui-sans-serif, system-ui, sans-serif;--font-data:"IBM Plex Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--text-xs:12px;--text-sm:14px;--text-md:15px;--text-lg:18px;--space-05:2px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--radius-sm:6px;--radius-md:8px;--dur-fast:.12s;--color-rule-soft:color-mix(in oklab, var(--color-line) 35%, var(--color-panel))}.viewport-home{z-index:1;top:var(--space-4);left:var(--space-4);background:var(--color-panel);border-color:var(--color-rule-soft);min-height:44px;position:absolute}.viewport-legend{z-index:1;inset:auto var(--space-4) var(--space-3) var(--space-4);color:var(--color-muted);background:var(--color-bg);padding:var(--space-2);width:fit-content;max-width:calc(100% - 2 * var(--space-4));font-size:var(--text-xs);pointer-events:none;margin:0;position:absolute}*{box-sizing:border-box}::selection{background:color-mix(in oklab, var(--color-accent) 35%, transparent);color:var(--color-text)}html,body,#root{height:100%;margin:0}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-ui);font-size:var(--text-sm);line-height:1.5}button{border:1px solid var(--color-line);border-radius:var(--radius-sm);color:var(--color-text);cursor:pointer;font:inherit;font-size:var(--text-xs);padding:var(--space-1) var(--space-3);white-space:nowrap;background:0 0}button:disabled{border-color:var(--color-line);color:var(--color-na);cursor:not-allowed}button:not(:disabled):hover{background:var(--color-panel-2);border-color:var(--color-muted)}button:not(:disabled):active{border-color:var(--color-text)}button:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}@media (prefers-reduced-motion:no-preference){.disclosure-glyph{transition:transform var(--dur-fast) ease-out}button{transition:border-color var(--dur-fast) ease-out, background-color var(--dur-fast) ease-out, filter var(--dur-fast) ease-out}}@media (pointer:coarse){button{min-height:44px}.dpad button{min-height:48px}}@media (prefers-reduced-motion:reduce){*{transition:none!important}}.app{flex-direction:column;height:100%;display:flex}.app-header{border-bottom:1px solid var(--color-line);align-items:baseline;gap:var(--space-4);padding:var(--space-2) var(--space-4);flex-wrap:wrap;display:flex;position:relative}.app-title{font-size:var(--text-lg);letter-spacing:.01em;margin:0;font-weight:600}.app-sub{color:var(--color-muted);font-size:var(--text-xs);margin:0}.header-actions{align-items:center;gap:var(--space-2);flex-wrap:wrap;margin-left:auto;display:flex}.header-actions .reset-button{text-align:center}.button--danger{border-color:var(--color-fail);color:var(--color-fail)}.button--danger:not(:disabled):hover{background:color-mix(in oklab, var(--color-fail) 12%, var(--color-panel));border-color:var(--color-fail);color:var(--color-fail-bright)}.draft-badge{border:1px solid var(--color-fail);border-radius:var(--radius-sm);color:var(--color-fail);font-size:var(--text-xs);padding:var(--space-1) var(--space-2)}.recovery-notice{background:var(--color-panel);border-bottom:1px solid var(--color-unknown);color:var(--color-text);align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-4);flex-wrap:wrap;justify-content:space-between;display:flex}.recovery-notice--error{border-bottom-color:var(--color-fail)}.recovery-notice button{min-height:40px}.rule-chip{background:var(--color-panel);border:1px solid var(--color-accent);font-size:var(--text-xs);padding:var(--space-05) var(--space-2);border-radius:999px}.rule-chip--none{border-color:var(--color-line);color:var(--color-muted)}.app-main{flex:1;min-height:0;display:flex}.viewport{flex:1;min-width:0;position:relative}.viewport canvas{display:block}.viewport canvas:focus-visible{outline:2px solid var(--color-focus);outline-offset:-2px}.scene-failure{background:color-mix(in oklab, var(--color-panel) 94%, transparent);border:1px solid var(--color-fail);border-radius:var(--radius-md);align-items:flex-start;gap:var(--space-2);max-width:min(28rem, calc(100% - 2 * var(--space-4)));padding:var(--space-4);z-index:2;flex-direction:column;width:max-content;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.scene-failure h2,.scene-failure p{margin:0}.scene-failure h2{font-size:var(--text-md)}.scene-failure p{color:var(--color-muted);line-height:1.5}.side-panel:focus-visible{outline:none}.side-panel{scrollbar-color:var(--color-line) transparent;scrollbar-gutter:stable;scrollbar-width:thin;background:var(--color-panel);border-left:1px solid var(--color-line);gap:var(--space-3);padding:var(--space-3) var(--space-4);flex-direction:column;flex:none;width:clamp(280px,34vw,380px);display:flex;overflow-y:auto}.side-panel[data-preview-open=true] .check-strip{margin-top:var(--space-3);position:static}.prompt-panel{gap:var(--space-2);flex-direction:column;display:flex}.getting-started{gap:var(--space-2);padding:var(--space-2) var(--space-3);border:1px solid color-mix(in oklab, var(--color-accent) 42%, var(--color-line));background:color-mix(in oklab, var(--color-accent) 7%, var(--color-panel));display:grid}.getting-started h2{font-size:var(--text-sm);margin:0}.getting-started-head{justify-content:space-between;align-items:start;gap:var(--space-2);display:flex}.guide-kicker{margin:0 0 var(--space-05);color:var(--color-accent-strong);font-family:var(--font-data);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase}.guide-dismiss{min-height:32px;color:var(--color-muted);padding:4px 8px}.guide-steps{gap:var(--space-1) var(--space-3);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.guide-steps li{gap:var(--space-1);color:var(--color-muted);font-size:var(--text-xs);align-items:center;display:flex}.guide-steps li.is-complete{color:var(--color-text)}.guide-step-number{border:1px solid var(--color-line);width:20px;height:20px;color:var(--color-accent-strong);font-family:var(--font-data);font-size:var(--text-xs);border-radius:50%;place-items:center;display:grid}.guide-steps li span:last-child{gap:var(--space-05);display:grid}.guide-steps small{color:inherit;font-size:var(--text-xs)}.guide-footnote{color:var(--color-muted);font-size:var(--text-xs);margin:0}.prompt-toolbar{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.theme-picker{display:inline-flex}.theme-picker select{background:var(--color-panel-2);border:1px solid var(--color-line);border-radius:var(--radius-sm);color:var(--color-text);font:inherit;font-family:var(--font-data);font-size:var(--text-xs);max-width:13rem;min-height:28px;padding:var(--space-05) var(--space-2)}.theme-picker select:hover,.theme-picker select:focus-visible{border-color:var(--color-text)}.theme-picker select:focus-visible{outline:1px solid var(--color-text);outline-offset:2px}.prompt-label{font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;font-weight:600}.prompt-input{background:var(--color-panel-2);border:1px solid var(--color-muted);border-radius:var(--radius-md);color:var(--color-text);font:inherit;font-size:var(--text-sm);padding:var(--space-2) var(--space-3);resize:vertical;line-height:1.5}.prompt-input::placeholder{color:var(--color-muted)}.prompt-input:hover{border-color:color-mix(in oklab, var(--color-text) 55%, var(--color-muted))}.prompt-input:focus-visible{border-color:var(--color-focus);outline:2px solid var(--color-focus);outline-offset:2px}.prompt-actions{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.prompt-submit{background:var(--color-accent);border-color:var(--color-accent);min-width:8rem;color:var(--color-on-accent);font-weight:600}.prompt-submit:not(:disabled):hover{background:var(--color-accent-strong);border-color:var(--color-accent-strong)}.prompt-submit:not(:disabled):active{background:var(--color-accent);border-color:var(--color-accent)}.compile-status{color:var(--color-muted);font-family:var(--font-data);font-size:var(--text-xs)}.compile-status.is-cached{color:var(--color-text)}.control-status{color:var(--color-muted);font-family:var(--font-data);font-size:var(--text-xs)}.header-actions .control-status{background:var(--color-panel);border:1px solid var(--color-line);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-2);right:var(--space-4);top:calc(100% + var(--space-1));position:absolute}.compile-error{border-left:3px solid var(--color-fail);color:var(--color-fail);font-size:var(--text-xs);padding-left:var(--space-2);margin:0;line-height:1.45}details.inspector{border:1px solid var(--color-line);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3)}details.inspector summary{color:var(--color-muted);cursor:pointer;font-family:var(--font-data);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;list-style:none}details.inspector summary::-webkit-details-marker{display:none}details.inspector summary:hover{color:var(--color-text)}details.inspector summary:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}details.inspector summary .disclosure-glyph{margin-right:var(--space-1);display:inline-block;transform:rotate(0)}.scene-object-picker{border:1px solid var(--color-line);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3)}.scene-object-picker summary{color:var(--color-muted);cursor:pointer;font-family:var(--font-data);font-size:var(--text-xs)}.scene-object-picker summary:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.scene-object-picker>.panel-note{margin:var(--space-2) 0}.scene-object-list{gap:var(--space-1);max-height:15rem;padding:2px;display:grid;overflow:auto}.scene-object-list button{align-items:center;gap:var(--space-2);text-align:left;white-space:normal;justify-content:space-between;min-height:36px;display:flex}.scene-object-list button[aria-pressed=true]{border-color:var(--color-accent);color:var(--color-accent-strong)}.scene-object-list button:disabled{opacity:.5}.scene-object-kind{color:var(--color-muted);font-family:var(--font-data);text-transform:uppercase;font-size:10px}.scene-object-id{color:var(--color-muted);font-family:var(--font-data);font-size:10px}details.inspector[open] summary .disclosure-glyph{transform:rotate(90deg)}.inspector-body{color:var(--color-muted);font-family:var(--font-data);font-size:var(--text-xs);margin:var(--space-2) 0 0;word-break:break-all;line-height:1.6}.card{border:1px solid var(--color-line);border-radius:var(--radius-md);gap:var(--space-2);padding:var(--space-3);border-left-width:3px;flex-direction:column;display:flex}.card--rule{border-left-color:var(--color-accent)}.card--preview{border-left-color:var(--color-pass)}.card-heading-row{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.preview-badge{color:var(--color-pass);font-family:var(--font-data);font-size:var(--text-xs)}.preview-changes{gap:var(--space-2);display:grid}.preview-legend{gap:var(--space-2) var(--space-4);color:var(--color-muted);font-size:var(--text-xs);flex-wrap:wrap;display:flex}.preview-legend-before:before,.preview-legend-after:before{content:"";width:8px;height:8px;margin-right:var(--space-1);vertical-align:1px;border-radius:50%;display:inline-block}.preview-legend-before:before{background:var(--color-fail-bright)}.preview-legend-after:before{background:var(--color-pass)}.preview-change-list{gap:var(--space-1);font-size:var(--text-sm);margin:0;padding:0;list-style:none;display:grid}.preview-change-list li{border-left:3px solid var(--color-pass);background:var(--color-panel-2);padding:var(--space-1) var(--space-2);overflow-wrap:anywhere}.card--clarification{border-left-color:var(--color-unknown)}.card--unsupported{border-left-color:var(--color-fail)}.card-title{color:var(--color-muted);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;margin:0;font-weight:600}.card-text{font-size:var(--text-md);margin:0;line-height:1.5}.card-note{color:var(--color-muted);font-size:var(--text-xs);margin:0;line-height:1.45}.card-actions{gap:var(--space-2);display:flex}.card--rule .card-actions button:first-child{border-color:var(--color-accent);font-weight:600}.rule-diff{gap:var(--space-1);font-size:var(--text-sm);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.rule-added{color:var(--color-pass)}.rule-removed{color:var(--color-fail)}.choice-list{gap:var(--space-1);flex-direction:column;display:flex}.choice-button{text-align:left;white-space:normal}.alternative-list{padding-left:var(--space-4);font-size:var(--text-sm);margin:0;line-height:1.5}.panel{border:1px solid var(--color-line);border-radius:var(--radius-md);gap:var(--space-2);padding:var(--space-3);flex-direction:column;display:flex}.panel--active .panel-title{color:var(--color-text)}.panel-title{color:var(--color-muted);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;margin:0;font-weight:600}.panel-note{color:var(--color-muted);font-size:var(--text-xs);margin:0;line-height:1.45}.panel-actions{gap:var(--space-1);flex-direction:column;display:flex}.panel-actions button{text-align:left;white-space:normal}.ghost-controls{gap:var(--space-1);display:flex}.inventory{gap:var(--space-1);flex-wrap:wrap;display:flex}.inventory-empty{color:var(--color-muted);font-family:var(--font-data);font-size:var(--text-xs)}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.scene-select-label{display:inline-flex}.scene-select{border:1px solid var(--color-line);border-radius:var(--radius-sm);color:var(--color-muted);cursor:pointer;font-family:var(--font-data);font-size:var(--text-xs);min-height:28px;padding:var(--space-05) var(--space-2);background:0 0}.scene-select:hover{border-color:var(--color-text);color:var(--color-text)}.scene-select:focus-visible{border-color:var(--color-text);color:var(--color-text);outline:1px solid var(--color-text);outline-offset:2px}.scene-select option{background:var(--color-panel);color:var(--color-text)}.example-chip--kept{border-color:var(--color-accent);color:var(--color-accent-strong)}.selection-row,.example-prompts{align-items:center;gap:var(--space-1);flex-wrap:wrap;display:flex}.example-chip{border:1px solid var(--color-line);color:var(--color-muted);cursor:pointer;font-family:var(--font-data);font-size:var(--text-xs);min-height:28px;padding:var(--space-05) var(--space-2);background:0 0;border-radius:999px}.example-chip:hover:not(:disabled){border-color:var(--color-text);color:var(--color-text)}.example-chip:focus-visible{border-color:var(--color-text);color:var(--color-text);outline:1px solid var(--color-text);outline-offset:2px}.example-chip:disabled{cursor:default;opacity:.5}.inventory-chip{border:1px solid var(--color-line);font-family:var(--font-data);font-size:var(--text-xs);padding:var(--space-05) var(--space-2);border-radius:999px}.inventory-chip--key{border-color:var(--color-accent)}.inventory-chip--switch{border-color:var(--color-unknown)}.ghost-endnote{border-left:3px solid var(--color-fail);color:var(--color-text);font-size:var(--text-sm);padding-left:var(--space-2);margin:0;line-height:1.5}.ghost-endnote--pass{border-left-color:var(--color-pass)}.dpad{gap:var(--space-1);grid-template-columns:repeat(3,1fr);justify-items:stretch;display:grid}.dpad-center{color:var(--color-muted);font-family:var(--font-data);font-size:var(--text-xs);text-align:center;text-overflow:ellipsis;white-space:nowrap;justify-content:center;align-items:center;min-width:0;display:flex;overflow:hidden}.banner{border-radius:var(--radius-md);font-size:var(--text-md);padding:var(--space-2) var(--space-3);margin:0;font-weight:600}.banner--pass{background:color-mix(in oklab, var(--color-pass) 24%, var(--color-panel));border:1px solid var(--color-pass)}.banner--fail{background:color-mix(in oklab, var(--color-fail) 22%, var(--color-panel));border:1px solid var(--color-fail)}.repair-card{border:1px solid var(--color-pass);border-radius:var(--radius-md);gap:var(--space-1);padding:var(--space-2) var(--space-3);flex-direction:column;display:flex}.repair-description{font-size:var(--text-sm);margin:0}.check-strip{background:var(--color-panel);border-top:1px solid var(--color-line);bottom:calc(-1 * var(--space-3));box-shadow:var(--shadow-strip);gap:var(--space-2);margin:0 0 calc(-1 * var(--space-3)) calc(-1 * var(--space-4));padding:var(--space-3) var(--space-4);flex-direction:column;margin-top:auto;display:flex;position:sticky}.check-strip-head{justify-content:space-between;align-items:baseline;gap:var(--space-2);display:flex}.check-strip-head h2{font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--color-muted);margin:0;font-weight:600}.check-strip-head a{color:var(--color-muted);font-size:var(--text-xs);text-underline-offset:3px;text-decoration:underline}.check-strip-head a:hover{color:var(--color-text)}.check-strip-head a:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.acceptance{font-family:var(--font-data);font-size:var(--text-md);margin:0;font-weight:600}.acceptance.is-accepted{color:var(--color-pass)}.acceptance:not(.is-accepted){color:var(--color-fail)}.check{border:0;border-top:1px solid var(--color-rule-soft);border-radius:0;padding:6px 0}.check-explanation{margin-top:var(--space-1)!important}.check-technical{color:var(--color-muted);font-family:var(--font-data);letter-spacing:.02em;font-size:11px;font-weight:400;display:block}.inspector-checks{gap:var(--space-1);padding-left:var(--space-4);margin:0;display:grid}.check--pass{border-left-color:var(--color-pass)}.check--fail{border-left-color:var(--color-fail)}.check--unknown{border-left-color:var(--color-unknown)}.check--not_applicable{border-left-color:var(--color-na)}.check-name{row-gap:var(--space-05);font-size:var(--text-sm);justify-content:space-between;gap:var(--space-2);flex-wrap:wrap;margin:0;font-weight:600;display:flex}.check-status{font-family:var(--font-data);font-size:var(--text-sm);font-weight:600}.check--pass .check-status{color:var(--color-pass)}.check--fail .check-status{color:var(--color-fail)}.check--unknown .check-status{color:var(--color-unknown)}.check--not_applicable .check-status{color:var(--color-na)}.check-explanation{color:var(--color-muted);font-size:var(--text-sm);margin:0;line-height:1.5}.explain-check{gap:var(--space-1);margin-top:var(--space-1);flex-direction:column;display:flex}.explain-text{border-left:3px solid var(--color-fail);color:var(--color-text);font-size:var(--text-sm);padding-left:var(--space-2);margin:0;line-height:1.5}.explain-meta{color:var(--color-muted);font-family:var(--font-data);font-size:var(--text-xs);margin:0}.explain-button{border:1px solid var(--color-line);border-radius:var(--radius-sm);color:var(--color-muted);cursor:pointer;font-family:var(--font-data);font-size:var(--text-xs);min-height:28px;padding:var(--space-05) var(--space-2);background:0 0;align-self:flex-start}.evidence-button{border-color:color-mix(in oklab, var(--color-unknown) 60%, var(--color-line));color:var(--color-unknown)}.evidence-card{border:1px solid color-mix(in oklab, var(--color-unknown) 42%, var(--color-line));background:color-mix(in oklab, var(--color-unknown) 8%, var(--color-panel-2));gap:6px;margin:10px 0;padding:10px;display:grid}.evidence-kicker,.evidence-focus{color:var(--color-unknown);font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;margin:0;font-size:11px}.explain-button:hover:not(:disabled){border-color:var(--color-fail);color:var(--color-fail)}.explain-button:focus-visible{border-color:var(--color-fail);color:var(--color-fail);outline:1px solid var(--color-fail);outline-offset:2px}.explain-button:disabled{cursor:default;opacity:.5}.explain-error{color:var(--color-fail);font-size:var(--text-xs);margin:0}.analysis-note{color:var(--color-fail);font-family:var(--font-data);font-size:var(--text-xs);margin:0}.repair-consequence{border-left:3px solid var(--color-pass);color:var(--color-text);font-size:var(--text-sm);padding-left:var(--space-2);margin:0;line-height:1.5}.change-summary{color:var(--color-text);font-size:var(--text-xs);margin:0}.history-list{gap:var(--space-1);margin:var(--space-1) 0 0;flex-direction:column;padding:0;list-style:none;display:flex}.history-entry{color:var(--color-muted);cursor:pointer;font-family:var(--font-data);font-size:var(--text-xs);text-align:left;background:0 0;border:none;padding:0}.history-entry:hover{color:var(--color-text);text-decoration:underline}.check-note{color:var(--color-muted);font-size:var(--text-xs);margin:0;line-height:1.45}@media (width<=760px){.app-main{flex-direction:column}.side-panel{border-left:none;border-top:1px solid var(--color-line);width:auto;max-height:55%}.app[data-mode=playing] .side-panel{max-height:50%}.app[data-mode=playing] .dpad button{min-height:52px}.app[data-mode=watching] .side-panel{order:-1;max-height:50%}.app[data-mode=authoring] .side-panel{max-height:45%}.app[data-mode=authoring] .check-strip{box-shadow:none;margin:var(--space-2) 0 0;position:static}}.compile-progress{border:1px solid color-mix(in oklab, var(--color-accent) 45%, var(--color-line));border-radius:var(--radius-md);background:color-mix(in oklab, var(--color-accent) 6%, var(--color-panel));gap:var(--space-2);padding:var(--space-3);display:grid}.compile-progress.is-revising{border-color:color-mix(in oklab, var(--color-fail) 55%, var(--color-line));background:color-mix(in oklab, var(--color-fail) 7%, var(--color-panel))}.compile-progress-head{align-items:center;gap:var(--space-2);font-size:var(--text-sm);display:flex}.compile-progress-time{color:var(--color-muted);font-family:var(--font-data);font-size:var(--text-xs);margin-left:auto}.compile-progress-pulse{background:var(--color-accent);border-radius:50%;flex:none;width:8px;height:8px}.is-revising .compile-progress-pulse{background:var(--color-fail)}@media (prefers-reduced-motion:no-preference){.compile-progress-pulse{animation:1.1s ease-in-out infinite progress-pulse}.compile-progress-ops li:last-child,.compile-progress-headlines li.is-current{animation:.22s ease-out progress-enter}}@keyframes progress-pulse{0%,to{opacity:.35;transform:scale(.8)}50%{opacity:1;transform:scale(1.15)}}@keyframes progress-enter{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.compile-progress-finding{color:var(--color-text);font-size:var(--text-xs);margin:0;line-height:1.45}.compile-progress-finding span{color:var(--color-fail-bright);font-weight:600}.compile-progress-headlines{gap:var(--space-05);margin:0;padding:0;list-style:none;display:grid}.compile-progress-headlines li{color:var(--color-muted);font-size:var(--text-xs)}.compile-progress-headlines li:before{content:"✓ ";color:var(--color-pass)}.compile-progress-headlines li.is-current{color:var(--color-text)}.compile-progress-headlines li.is-current:before{content:"› ";color:var(--color-accent-strong)}.compile-progress-ops{border-top:1px solid var(--color-rule-soft);font-family:var(--font-data);font-size:var(--text-xs);padding:var(--space-2) 0 0;gap:2px;margin:0;list-style:none;display:grid}.compile-progress-ops li{color:var(--color-muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.compile-progress-ops li:last-child{color:var(--color-text)}.compile-progress-foot{align-items:center;gap:var(--space-2);justify-content:space-between;display:flex}.card-summary{font-size:var(--text-md);margin:0;font-weight:600;line-height:1.4}.precheck{border:1px solid var(--color-rule-soft);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3)}.precheck-title{color:var(--color-muted);font-size:var(--text-xs);letter-spacing:.06em;margin:0 0 var(--space-1);text-transform:uppercase}.precheck ul{gap:2px;margin:0;padding:0;list-style:none;display:grid}.precheck-row{font-size:var(--text-sm);justify-content:space-between;display:flex}.precheck-row strong{font-family:var(--font-data);font-size:var(--text-xs)}.precheck-row--pass strong{color:var(--color-pass)}.precheck-row--fail strong{color:var(--color-fail)}.precheck-row--unknown strong{color:var(--color-unknown)}.precheck-row--not_applicable strong{color:var(--color-na)}.revision-note{border-left:3px solid var(--color-accent);gap:var(--space-1);font-size:var(--text-sm);padding-left:var(--space-2);display:grid}.revision-note p{margin:0;line-height:1.45}.revision-note--fixed{border-left-color:var(--color-pass)}.revision-note--unresolved{border-left-color:var(--color-fail)}.revision-note ul,.preview-details ul{color:var(--color-muted);font-size:var(--text-xs);margin:var(--space-1) 0 0;padding-left:var(--space-4);line-height:1.45}.revision-note summary,.preview-details summary{color:var(--color-muted);cursor:pointer;font-size:var(--text-xs)}.viewport-preview-badge{background:color-mix(in oklab, var(--color-pass) 22%, var(--color-panel));border:1px solid var(--color-pass);color:var(--color-text);font-size:var(--text-xs);padding:var(--space-1) var(--space-3);left:50%;top:var(--space-4);z-index:1;border-radius:999px;margin:0;position:absolute;transform:translate(-50%)}.repair-options{gap:var(--space-3);display:grid}.repair-option{gap:var(--space-1);display:grid}.repair-option button{justify-self:start}.button--accent{border-color:var(--color-accent);color:var(--color-accent-strong)}.button--accent:not(:disabled):hover{background:color-mix(in oklab, var(--color-accent) 14%, var(--color-panel))}.acceptance-note{color:var(--color-muted);font-family:var(--font-data);font-size:var(--text-xs);margin-left:var(--space-2);font-weight:400}.revision-note summary,.preview-details summary{list-style:none}.revision-note summary::-webkit-details-marker{display:none}.preview-details summary::-webkit-details-marker{display:none}.revision-note summary .disclosure-glyph,.preview-details summary .disclosure-glyph{margin-right:var(--space-1);display:inline-block}.revision-note details[open]>summary .disclosure-glyph,.preview-details[open]>summary .disclosure-glyph{transform:rotate(90deg)}.compile-progress-time{white-space:nowrap}.prompt-submit{font-size:var(--text-sm);min-width:9rem;min-height:40px}.prompt-submit:disabled{background:color-mix(in oklab, var(--color-accent) 20%, var(--color-panel));border-color:color-mix(in oklab, var(--color-accent) 40%, var(--color-line));color:color-mix(in oklab, var(--color-text) 55%, var(--color-panel))}.button--play{background:color-mix(in oklab, var(--color-pass) 22%, var(--color-panel));border-color:var(--color-pass);color:var(--color-text);font-weight:600}.button--play:not(:disabled):hover{background:color-mix(in oklab, var(--color-pass) 36%, var(--color-panel));border-color:var(--color-pass)}.panel-title,.card-title,.check-strip-head h2{font-size:var(--text-sm);letter-spacing:0;text-transform:none}.prompt-label{font-size:var(--text-md);letter-spacing:0;text-transform:none}details.inspector summary,.scene-object-picker summary{font-family:var(--font-ui);font-size:var(--text-xs);letter-spacing:0;text-transform:none}.panel,.scene-object-picker{border-color:var(--color-rule-soft)}.panel--active{border-color:var(--color-muted)}.prompt-meta{align-items:center;gap:var(--space-2);flex-wrap:wrap;justify-content:space-between;display:flex}.theme-picker{align-items:center;gap:var(--space-2)}.viewport-top{align-items:flex-start;gap:var(--space-2);left:var(--space-4);pointer-events:none;right:var(--space-4);top:var(--space-4);z-index:1;display:flex;position:absolute}.viewport-top>*{pointer-events:auto}.viewport-home{flex:none;position:static}.viewport-rules{gap:var(--space-1);flex-wrap:wrap;max-width:min(60%,36rem);padding-top:6px;display:flex}.viewport-rules .rule-chip{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:color-mix(in oklab, var(--color-bg) 78%, transparent)}.viewport-rules:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.viewport-preview-badge{left:auto;right:var(--space-4);transform:none}.viewport-welcome{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:color-mix(in oklab, var(--color-panel) 90%, transparent);border:1px solid color-mix(in oklab, var(--color-accent) 40%, var(--color-line));gap:var(--space-2);padding:var(--space-4) 20px;text-align:center;width:min(540px, calc(100% - 2 * var(--space-4)));z-index:2;border-radius:12px;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 16px 48px #0006}.viewport-welcome h2{margin:0;font-size:24px}.viewport-welcome p{color:var(--color-muted);font-size:var(--text-sm);margin:0;line-height:1.5}.viewport-welcome-chips{gap:var(--space-2);margin-top:var(--space-2);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.viewport-welcome-chips button{background:color-mix(in oklab, var(--color-accent) 8%, var(--color-panel));border-color:color-mix(in oklab, var(--color-accent) 50%, var(--color-line));font-size:var(--text-sm);white-space:normal;min-height:46px}.viewport-welcome-chips button:not(:disabled):hover{background:color-mix(in oklab, var(--color-accent) 20%, var(--color-panel));border-color:var(--color-accent)}.viewport-welcome .viewport-welcome-hint{font-size:var(--text-xs)}.viewport-welcome--busy{gap:var(--space-1);padding:var(--space-3) var(--space-4);width:min(420px, calc(100% - 2 * var(--space-4)))}.viewport-welcome .viewport-welcome-kicker{color:var(--color-accent-strong);font-size:var(--text-md);font-weight:600}.viewport-welcome .viewport-welcome-latest{color:var(--color-text);font-family:var(--font-data);font-size:var(--text-xs);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.play-head{align-items:center;gap:var(--space-2);justify-content:space-between;display:flex}.play-camera-toggle[aria-pressed=true]{border-color:var(--color-pass)}.dpad button{-webkit-touch-callout:none;touch-action:manipulation;-webkit-user-select:none;user-select:none;min-height:40px;font-size:18px}.dpad-center{color:var(--color-text);font-family:var(--font-ui);font-size:var(--text-sm)}.play-turn{align-items:center;gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.dpad button.dpad-aux{color:var(--color-muted);font-size:var(--text-sm)}.dpad button.dpad-wait{font-size:var(--text-sm);flex-direction:column;justify-content:center;align-items:center;gap:2px;line-height:1.1;display:flex}.dpad-wait-label{color:var(--color-muted);font-family:var(--font-data);font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase}.play-pause{font-size:var(--text-xs);touch-action:manipulation;min-height:32px}.play-danger{border-left:3px solid var(--color-fail);color:var(--color-text);font-size:var(--text-sm);margin:var(--space-2) 0 0;padding-left:var(--space-2)}.play-turn-note{color:var(--color-muted);font-size:var(--text-xs);flex:12rem;margin:0}.dpad button.dpad-hint{border-color:var(--color-accent);box-shadow:0 0 0 2px color-mix(in srgb, var(--color-accent) 45%, transparent);color:var(--color-accent)}.play-hint{border-left:3px solid var(--color-accent);color:var(--color-text);font-size:var(--text-sm);margin:var(--space-2) 0 0;padding-left:var(--space-2);line-height:1.5}.npc-talk{margin:var(--space-2) 0 0}.npc-talk-button{width:100%}.npc-talk-line{background:color-mix(in oklab, var(--color-accent) 10%, var(--color-panel));border:1px solid color-mix(in oklab, var(--color-accent) 45%, transparent);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);margin:0}.npc-talk-line blockquote{color:var(--color-text);font-size:var(--text-sm);margin:0;line-height:1.5}.npc-talk-line figcaption{color:var(--color-muted);font-size:var(--text-xs);margin-top:var(--space-1)}.play-win{background:color-mix(in oklab, var(--color-pass) 14%, var(--color-panel));border:1px solid var(--color-pass);border-radius:var(--radius-md);gap:var(--space-2);padding:var(--space-3);display:grid}.play-win-title{color:var(--color-pass);margin:0;font-size:20px;font-weight:700}.play-win-note{font-size:var(--text-sm);margin:0}@media (prefers-reduced-motion:no-preference){.play-win{animation:.38s cubic-bezier(.2,.9,.3,1.2) win-pop}}@keyframes win-pop{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}.header-secondary{display:contents}.header-menu-toggle{display:none}@media (width<=760px){.app-sub{display:none}.app-header{align-items:center;gap:var(--space-2)}.header-actions{width:100%;margin-left:0}.scene-select-label{flex:1;min-width:0}.scene-select{width:100%}.header-menu-toggle{display:inline-flex}.header-secondary{display:none}.header-secondary.is-open{gap:var(--space-2);flex-wrap:wrap;order:10;width:100%;display:flex}.viewport-rules{max-width:70%}.viewport-welcome{padding:var(--space-3)}.viewport-welcome h2{font-size:20px}.viewport-welcome p:not(.viewport-welcome-hint):not(.viewport-welcome-kicker):not(.viewport-welcome-latest){display:none}}.header-menu-toggle,.button--play{justify-content:center;align-items:center}.dpad-center{font-size:var(--text-xs);overflow-wrap:anywhere;padding:0 var(--space-1);white-space:normal;line-height:1.2}@media (pointer:coarse){.play-keys-note{display:none}}.play-touch-note{display:none}@media (pointer:coarse){.play-touch-note{display:block}}.explain-actions{gap:var(--space-2);flex-wrap:wrap;display:inline-flex}.play-react{border-top:1px solid var(--color-line);gap:var(--space-2);margin-top:var(--space-3);padding-top:var(--space-3);display:grid}.play-react-title{font-size:var(--text-sm);margin:0}.play-react-form{gap:var(--space-2);display:flex}.play-react-form input{flex:1;min-width:0}.play-react-note{border-left:3px solid var(--color-accent);font-size:var(--text-sm);padding-left:var(--space-2);margin:0;line-height:1.5}.play-react-note--error{border-left-color:var(--color-fail)}.play-proposal{gap:var(--space-2);display:grid}.play-proposal-summary{font-size:var(--text-sm);margin:0;line-height:1.5}.play-proposal-checks{gap:var(--space-2) var(--space-3);font-size:var(--text-sm);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.play-proposal-checks .is-pass{color:var(--color-pass)}.play-proposal-checks .is-fail{color:var(--color-fail)}.adventure-continue{border-top:1px solid color-mix(in oklab, var(--color-pass) 35%, var(--color-line));gap:var(--space-2);margin-top:var(--space-3);padding-top:var(--space-3);display:grid}.adventure-kicker{color:var(--color-pass);font-family:var(--font-data);font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;margin:0}.adventure-title{font-size:var(--text-md,1rem);margin:0}.adventure-strip{color:var(--color-muted);font-size:var(--text-sm);margin:0 0 var(--space-2)}.adventure-strip span{color:var(--color-accent);font-weight:600}.chapter-card{background:color-mix(in oklab, var(--color-panel) 82%, transparent);border:1px solid color-mix(in oklab, var(--color-accent) 45%, var(--color-line));border-radius:var(--radius-md);color:var(--color-text);cursor:pointer;font:inherit;gap:var(--space-2);max-width:min(560px,100% - 32px);padding:var(--space-4,20px) var(--space-4,24px);text-align:left;z-index:5;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);white-space:normal;overflow-wrap:anywhere;width:100%;display:grid;position:absolute;top:72px;left:50%;transform:translate(-50%);box-shadow:0 18px 60px #00000059}.chapter-card>span{display:block}@media (prefers-reduced-motion:no-preference){.chapter-card{animation:.7s cubic-bezier(.2,.8,.2,1) both chapter-card-in}}@keyframes chapter-card-in{0%{opacity:0;transform:translate(-50%,-10px)}to{opacity:1;transform:translate(-50%)}}.chapter-card-number{color:var(--color-accent);font-family:var(--font-data);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase}.chapter-card-title{font-size:clamp(22px,3.2vw,32px);font-weight:600;line-height:1.15}.chapter-card-story{font-size:var(--text-sm);line-height:1.55}.chapter-card-proof{color:var(--color-pass);font-family:var(--font-data);font-size:var(--text-xs);line-height:1.5}.landing{background:radial-gradient(ellipse at 50% 38%, color-mix(in oklab, var(--color-bg,#0f1115) 30%, transparent) 0%, color-mix(in oklab, var(--color-bg,#0f1115) 82%, transparent) 70%), linear-gradient(180deg, color-mix(in oklab, var(--color-bg,#0f1115) 55%, transparent), color-mix(in oklab, var(--color-bg,#0f1115) 88%, transparent));z-index:50;justify-content:center;align-items:center;padding:24px 16px;display:flex;position:fixed;inset:0;overflow-y:auto}.landing-card{background:color-mix(in oklab, var(--color-panel) 88%, transparent);border:1px solid color-mix(in oklab, var(--color-accent) 30%, var(--color-line));border-radius:calc(var(--radius-md) * 1.5);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);gap:14px;width:100%;max-width:640px;padding:32px 32px 24px;display:grid;box-shadow:0 30px 90px #00000073}@media (prefers-reduced-motion:no-preference){.landing-card{animation:.8s cubic-bezier(.2,.8,.2,1) both landing-card-in}}@keyframes landing-card-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.landing-brand{color:var(--color-accent);font-family:var(--font-data);font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;margin:0}.landing-title{letter-spacing:-.01em;margin:0;font-size:clamp(26px,4.2vw,38px);font-weight:650;line-height:1.12}.landing-lede{color:color-mix(in oklab, var(--color-text) 78%, var(--color-muted));margin:0;font-size:15px;line-height:1.55}.landing-form{gap:10px;margin-top:6px;display:flex}.landing-input{flex:1;min-width:0;padding:12px 14px;font-size:15px}.landing-start{white-space:nowrap;padding:0 18px;font-size:15px}.landing-examples{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.landing-steps{border-top:1px solid var(--color-line);color:var(--color-muted);font-size:var(--text-sm);gap:6px;margin:6px 0 0;padding:14px 0 0;list-style:none;display:grid}.landing-steps strong{color:var(--color-text);min-width:88px;margin-right:8px;display:inline-block}.landing-editor{color:var(--color-muted);cursor:pointer;font:inherit;font-size:var(--text-sm);background:0 0;border:none;justify-self:start;padding:4px 0}.landing-editor:hover,.landing-editor:focus-visible{color:var(--color-text);text-decoration:underline}.landing-writing{gap:10px;display:grid}.landing-writing-title{color:var(--color-accent);margin:0;font-weight:600}@media (width<=560px){.landing-card{padding:22px 18px 18px}.landing-form{flex-direction:column}.landing-start{min-height:46px}.landing-steps strong{display:block}}
