@font-face{font-family:Lexend;src:url(/assets/Lexend-Variable-ci0D1wrL.woff2)format("woff2");font-weight:100 900;font-display:swap;font-style:normal}@font-face{font-family:JetBrains Mono;src:url(/assets/JetBrainsMono-Regular-BQaDgvhP.woff2)format("woff2");font-weight:400;font-display:swap;font-style:normal}@font-face{font-family:JetBrains Mono;src:url(/assets/JetBrainsMono-Bold-D4WEaHbo.woff2)format("woff2");font-weight:700;font-display:swap;font-style:normal}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ss-bg:#f4f1ea;--ss-bg-2:#ebe7dc;--ss-surface:#fff;--ss-panel:#fff;--ss-panel-strong:#efece3;--ss-field:#fff;--ss-hover:#1a1b200b;--ss-glass:#f4f1ead1;--ss-border:#e5e0d3;--ss-border-soft:#1a1b2014;--ss-border-strong:#c9c1ad;--ss-text:#1a1b20;--ss-text-2:#565863;--ss-text-3:#8c8d97;--ss-primary:#1a1b20;--ss-primary-2:#2a2d33;--ss-primary-ink:#fff;--ss-bone:#e6e2db;--ss-accent:#6444d6;--ss-accent-strong:#8a5cf2;--ss-accent-2:#8a5cf2;--ss-accent-ink:#fff;--ss-accent-soft:#6444d61a;--ss-accent-dim:#6444d638;--ss-accent-border:#6444d638;--ss-accent-grad:linear-gradient(135deg, #6444d6 0%, #8a5cf2 100%);--ss-glow:radial-gradient(ellipse 80% 52% at 50% -8%, #6444d61f, transparent 62%);--ss-danger:#d0453f;--ss-success:#2f9e6b;--ss-success-soft:#2f9e6b1f;--ss-warning:#c08a1e;--ss-warning-soft:#c08a1e24;--ss-info:#4d6ea8;--ss-code-bg:#17181b;--ss-code-border:#ffffff14;--ss-code-text:#e9ecf0d1;--ss-display:"Lexend", system-ui, sans-serif;--ss-sans:"Lexend", system-ui, sans-serif;--ss-mono:"JetBrains Mono", ui-monospace, monospace;--ss-r-sm:8px;--ss-r-md:12px;--ss-r-lg:20px;--ss-r-pill:999px;--ss-fs-xs:11.5px;--ss-fs-sm:13px;--ss-fs-md:14.5px;--ss-fs-base:16px;--ss-fs-lg:17px;--ss-fs-xl:22px;--ss-fs-2xl:32px;--ss-fs-3xl:48px;--ss-fs-4xl:64px}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ss-bg:#1c1c1c;--ss-bg-2:#161616;--ss-surface:#242424;--ss-panel:#242424;--ss-panel-strong:#2c2c2c;--ss-field:#ffffff0a;--ss-hover:#ffffff0d;--ss-glass:#1c1c1cc7;--ss-border:#2e2e2e;--ss-border-soft:#ffffff12;--ss-border-strong:#3b3b3b;--ss-text:#f4f4f5;--ss-text-2:#a6a6ac;--ss-text-3:#76767c;--ss-primary:#f4f4f5;--ss-primary-2:#fff;--ss-primary-ink:#101113;--ss-accent:#a78bfa;--ss-accent-strong:#c4b5fd;--ss-accent-2:#c4b5fd;--ss-accent-ink:#141414;--ss-accent-soft:#8a5cf22e;--ss-accent-dim:#a78bfa80;--ss-accent-border:#a78bfa80;--ss-accent-grad:linear-gradient(135deg, #a78bfa 0%, #c4b5fd 100%);--ss-glow:radial-gradient(ellipse 80% 52% at 50% -8%, #ffffff08, transparent 62%);--ss-danger:#e0645d;--ss-success:#56b083;--ss-success-soft:#56b08329;--ss-warning:#d8a54a;--ss-warning-soft:#d8a54a29;--ss-info:#7f97c4;--ss-code-bg:#131417;--ss-code-border:#ffffff12;--ss-code-text:#e9ecf0d1}.doc-code{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ss-code-bg:#17181b;--ss-code-border:#ffffff14;--ss-code-text:#e9ecf0d1}.ss-screen{background:var(--ss-bg);color:var(--ss-text);font-family:var(--ss-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-size:16px;line-height:1.6}.ss-screen *,.ss-screen :before,.ss-screen :after{box-sizing:border-box}.ss-screen a{text-decoration:none}.ss-screen a:not(.ss-btn){color:inherit}.ss-screen button{cursor:pointer;font-family:inherit}.ss-screen h1,.ss-screen h2,.ss-screen h3{margin:0;font-weight:500}.ss-screen p{margin:0}.ss-eyebrow{font-family:var(--ss-sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ss-accent);font-size:11.5px;font-weight:600}.ss-eyebrow--dim{color:var(--ss-text-3)}.ss-display{font-family:var(--ss-display);letter-spacing:-.025em;text-wrap:balance;font-weight:500;line-height:1.04}.ss-btn{border-radius:var(--ss-r-pill);letter-spacing:.01em;white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:13px 26px;font-size:14.5px;font-weight:600;line-height:1;transition:transform .2s cubic-bezier(.22,1,.36,1),box-shadow .2s,background .2s,border-color .2s,color .2s;display:inline-flex}.ss-btn:hover{transform:translateY(-1px)}.ss-btn--primary{background:var(--ss-accent-grad);color:var(--ss-accent-ink);box-shadow:0 6px 18px #6444d63d}.ss-btn--primary:hover{filter:brightness(1.06);box-shadow:0 10px 26px #6444d64d}.ss-btn--ghost{border-color:var(--ss-border);color:var(--ss-text-2);background:0 0}.ss-btn--ghost:hover{border-color:var(--ss-border);color:var(--ss-text);background:var(--ss-hover)}.ss-btn--bone{background:var(--ss-panel-strong);color:var(--ss-text);border-color:var(--ss-border);box-shadow:0 6px 18px #1114181a}.ss-btn--sm{padding:9px 18px;font-size:13px}.ss-btn--lg{padding:16px 32px;font-size:15.5px}.ss-input{background:var(--ss-field);border:1px solid var(--ss-border);width:100%;color:var(--ss-text);border-radius:10px;outline:none;padding:12px 14px;font-family:inherit;font-size:14.5px;transition:border-color .18s,background .18s,box-shadow .18s}.ss-input::placeholder{color:var(--ss-text-3)}.ss-input:focus{border-color:var(--ss-accent-border);box-shadow:0 0 0 3px var(--ss-accent-soft)}.ss-field{flex-direction:column;gap:7px;display:flex}.ss-field-label{letter-spacing:.04em;color:var(--ss-text-3);font-size:12px;font-weight:500}select.ss-input{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6' fill='none'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23888f97' stroke-opacity='0.9' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:32px}select.ss-input option,select.ss-input optgroup{background-color:var(--ss-surface);color:var(--ss-text)}select.ss-input option:disabled{color:var(--ss-text-3)}.ss-card{background:var(--ss-panel);border:1px solid var(--ss-border-soft);border-radius:var(--ss-r-lg);transition:border-color .2s,transform .2s cubic-bezier(.22,1,.36,1),background .2s}a.ss-card:hover,button.ss-card:hover{border-color:var(--ss-border);background:var(--ss-panel-strong);transform:translateY(-2px)}.ss-hairline{background:var(--ss-border-soft);border:0;height:1px;margin:0}.ss-kbd{font-family:var(--ss-sans);letter-spacing:.04em;color:var(--ss-text-3);background:var(--ss-hover);border:1px solid var(--ss-border-soft);border-bottom-width:2px;border-radius:5px;padding:2px 8px;font-size:10.5px;font-weight:600}.ss-logo{align-items:center;gap:11px;display:inline-flex}.ss-logo-glyph{flex-shrink:0;display:block}.ss-logo-word{font-family:var(--ss-display);letter-spacing:.01em;color:var(--ss-text);font-size:17px;font-weight:500}.ss-logo-word span{color:var(--ss-text-3);font-weight:400}.mk-nav{z-index:50;border-bottom:1px solid var(--ss-border-soft);background:var(--ss-glass);-webkit-backdrop-filter:blur(16px)saturate(1.2);justify-content:space-between;align-items:center;gap:32px;height:64px;padding:0 28px;display:flex;position:sticky;top:0}.mk-nav-links{align-items:center;gap:4px;display:flex}.mk-nav-link{border-radius:var(--ss-r-pill);color:var(--ss-text-2);padding:8px 14px;font-size:14px;font-weight:500;transition:color .16s,background .16s}.mk-nav-link:hover{color:var(--ss-text);background:var(--ss-hover)}.mk-nav-link.is-active{color:var(--ss-text)}.mk-nav-cta{align-items:center;gap:10px;display:flex}.ss-theme-toggle{border:1px solid var(--ss-border-soft);border-radius:var(--ss-r-pill);width:36px;height:36px;color:var(--ss-text-2);cursor:pointer;background:0 0;flex-shrink:0;justify-content:center;align-items:center;transition:color .16s,background .16s,border-color .16s;display:inline-flex}.ss-theme-toggle:hover{color:var(--ss-text);background:var(--ss-hover);border-color:var(--ss-border)}.ss-theme-toggle svg{display:block}.mk-section{padding:110px 56px}.mk-inner{max-width:1180px;margin:0 auto}.mk-section-head{flex-direction:column;gap:18px;max-width:620px;margin-bottom:56px;display:flex}.mk-section-head h2{font-size:40px}.mk-section-head p{color:var(--ss-text-2);font-size:17px}.mk-footer{border-top:1px solid var(--ss-border-soft);padding:64px 56px 48px}.mk-footer-grid{grid-template-columns:1.6fr repeat(4,1fr);gap:48px;max-width:1180px;margin:0 auto;display:grid}.mk-footer-brand{flex-direction:column;gap:16px;display:flex}.mk-footer-brand p{color:var(--ss-text-3);max-width:240px;font-size:13.5px;line-height:1.55}.mk-footer-col{flex-direction:column;gap:12px;display:flex}.mk-footer-col-title{font-family:var(--ss-sans);letter-spacing:.12em;text-transform:uppercase;color:var(--ss-text-3);margin-bottom:4px;font-size:11px;font-weight:600}.mk-footer-col a{color:var(--ss-text-2);font-size:13.5px}.mk-footer-col a:hover{color:var(--ss-text)}.mk-footer-base{border-top:1px solid var(--ss-border-soft);max-width:1180px;color:var(--ss-text-3);justify-content:space-between;align-items:center;margin:56px auto 0;padding-top:24px;font-size:12.5px;display:flex}.app-topnav{border-bottom:1px solid var(--ss-border-soft);background:var(--ss-bg-2);justify-content:space-between;align-items:center;gap:24px;height:64px;padding:0 28px;display:flex}.app-avatar{background:linear-gradient(140deg, var(--ss-primary-2), var(--ss-primary));border:1px solid var(--ss-border);width:32px;height:32px;color:var(--ss-text-2);border-radius:50%;justify-content:center;align-items:center;font-size:12px;font-weight:600;display:flex}.pj-shell{flex:1;min-height:0;display:flex}.pj-rail{border-right:1px solid var(--ss-border-soft);background:var(--ss-bg-2);flex-direction:column;flex-shrink:0;gap:2px;width:232px;padding:20px 12px 70px;display:flex}.pj-rail-link{color:var(--ss-text-2);border-radius:9px;align-items:center;gap:11px;padding:9px 12px;font-size:13.5px;font-weight:500;transition:background .16s,color .16s;display:flex}.pj-rail-link:hover{background:var(--ss-hover);color:var(--ss-text)}.pj-rail-link.is-active{background:var(--ss-accent-soft);color:var(--ss-accent)}.pj-rail-link svg{opacity:.8;flex-shrink:0}.pj-main{flex:1;min-width:0;overflow-y:auto}.pj-page{max-width:880px;margin:0 auto;padding:40px 40px 72px}.pj-page-head{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:30px;display:flex}.pj-page-head h1{font-family:var(--ss-display);letter-spacing:-.02em;font-size:26px;font-weight:500}.pj-page-head p{color:var(--ss-text-3);margin-top:6px;font-size:13.5px}.stat-card{background:var(--ss-panel);border:1px solid var(--ss-border-soft);border-radius:14px;flex-direction:column;gap:3px;padding:18px 20px;display:flex}.stat-card .n{font-family:var(--ss-display);font-size:26px;font-weight:500}.stat-card .l{color:var(--ss-text-3);font-size:12px}.stat-card .d{font-family:var(--ss-sans);letter-spacing:.04em;font-size:10.5px;font-weight:600}.ss-row{border-top:1px solid var(--ss-border-soft);align-items:center;gap:14px;padding:13px 4px;font-size:13.5px;display:flex}.ss-switch{border:1px solid var(--ss-border);background:var(--ss-hover);cursor:pointer;border-radius:999px;flex-shrink:0;width:36px;height:21px;padding:0;transition:background .2s,border-color .2s;position:relative}.ss-switch:after{content:"";background:var(--ss-text-3);border-radius:50%;width:15px;height:15px;transition:transform .2s cubic-bezier(.22,1,.36,1),background .2s;position:absolute;top:2px;left:2px}.ss-switch.is-on{background:var(--ss-primary);border-color:#0000}.ss-switch.is-on:after{background:#fff;transform:translate(15px)}.set-card{background:var(--ss-panel);border:1px solid var(--ss-border-soft);border-radius:16px;flex-direction:column;gap:16px;padding:24px;display:flex}.set-card h3{font-size:15px;font-weight:600}.set-card .hint{color:var(--ss-text-3);font-size:12.5px;line-height:1.5}@media (prefers-reduced-motion:no-preference){.pj-page,.dash-page{animation:.38s cubic-bezier(.22,1,.36,1) ss-page-in}}@keyframes ss-page-in{0%{transform:translateY(6px)}to{transform:none}}.ss-row{border-radius:10px;margin-left:-10px;margin-right:-10px;padding-left:10px;padding-right:10px;transition:background .15s}.ss-row:hover{background:var(--ss-hover)}.row-action{opacity:.5;transition:opacity .15s}.ss-row:hover .row-action{opacity:1}.ss-search{position:relative}.ss-search>svg{color:var(--ss-text-3);pointer-events:none;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.ss-search input{padding-left:35px;padding-right:46px}.ss-search .ss-kbd{padding:1px 6px;font-size:10px;position:absolute;top:50%;right:9px;transform:translateY(-50%)}.thumb-wrap{border-radius:10px;position:relative;overflow:hidden}.thumb-badge{font-family:var(--ss-sans);letter-spacing:.08em;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);pointer-events:none;background:#04060cb8;border:1px solid #ffffff14;border-radius:999px;align-items:center;gap:5px;padding:4px 10px;font-size:9.5px;font-weight:600;display:inline-flex;position:absolute}.col-head{font-family:var(--ss-sans);letter-spacing:.1em;text-transform:uppercase;color:var(--ss-text-3);align-items:center;gap:14px;margin:0 -10px;padding:0 10px 9px;font-size:10px;font-weight:600;display:flex}.vtl-row{position:relative}.vtl-rail{background:var(--ss-border-soft);width:1px;position:absolute;top:0;bottom:0;left:14px}.vtl-dot{background:var(--ss-bg);border:1.5px solid var(--ss-text-3);z-index:1;border-radius:50%;flex-shrink:0;width:9px;height:9px;margin:0 10px;position:relative}.vtl-dot.is-live{background:var(--ss-accent);border-color:var(--ss-accent);box-shadow:0 0 10px var(--ss-accent-border)}.range-chip{border:1px solid var(--ss-border-soft);color:var(--ss-text-3);font-family:var(--ss-sans);letter-spacing:.06em;cursor:pointer;background:0 0;border-radius:999px;padding:4px 12px;font-size:10.5px;font-weight:600;transition:color .15s,border-color .15s,background .15s}.range-chip:hover{color:var(--ss-text-2)}.range-chip.is-active{background:var(--ss-accent-soft);border-color:var(--ss-accent-border);color:var(--ss-accent)}.plan-card{background:radial-gradient(ellipse 80% 120% at 0% 0%, var(--ss-accent-soft), transparent 60%), var(--ss-panel);border-color:var(--ss-accent-dim)!important}.hm-window{text-align:left;background:linear-gradient(180deg, var(--ss-bg-2), var(--ss-bg));border:1px solid var(--ss-border);border-radius:18px;position:relative;overflow:hidden;box-shadow:0 60px 140px #000000a6,inset 0 1px #ffffff0a}.hm-label{font-family:var(--ss-sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ss-text-3);font-size:9px;font-weight:600}.hm-chip{background:var(--ss-glass);border:1px solid var(--ss-border-soft);font-family:var(--ss-sans);letter-spacing:.05em;color:var(--ss-text-2);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:5px 11px;font-size:9.5px;font-weight:500;display:inline-flex}.hm-stub{background:var(--ss-hover);border:1px solid var(--ss-border-soft);border-radius:7px}.hm-grid-floor{background-image:linear-gradient(var(--ss-accent-soft) 1px, transparent 1px), linear-gradient(90deg, var(--ss-accent-soft) 1px, transparent 1px);transform-origin:50% 100%;background-size:44px 44px;height:86%;position:absolute;bottom:-24%;left:-25%;right:-25%;transform:perspective(640px)rotateX(58deg);-webkit-mask-image:linear-gradient(#0000,#000 45%);mask-image:linear-gradient(#0000,#000 45%)}.hm-handle{background:var(--ss-accent);width:5px;height:5px;box-shadow:0 0 6px var(--ss-accent-border);border-radius:1px;position:absolute}@media (prefers-reduced-motion:no-preference){.hm-select-glow{animation:2.6s ease-in-out infinite hm-pulse}.hm-orbit{animation:30s linear infinite hm-orbit}}@keyframes hm-orbit{0%{transform:rotateY(0)}to{transform:rotateY(360deg)}}@keyframes hm-pulse{0%,to{box-shadow:0 0 #6444d600,0 18px 30px #00000080}50%{box-shadow:0 0 22px 1px var(--ss-accent-soft), 0 18px 30px #00000080}}.bento-card{background:var(--ss-panel);border:1px solid var(--ss-border-soft);border-radius:var(--ss-r-lg);color:var(--ss-text);flex-direction:column;gap:10px;padding:26px 28px;transition:border-color .2s,background .2s,transform .2s cubic-bezier(.22,1,.36,1);display:flex;position:relative;overflow:hidden}a.bento-card:hover{border-color:var(--ss-border);background:var(--ss-panel-strong);transform:translateY(-2px)}.bento-mini{border:1px solid var(--ss-border-soft);background:var(--ss-bg-2);border-radius:12px;margin-top:auto;padding:14px}.doc-prose{color:var(--ss-text-2);font-size:15px;line-height:1.75}.doc-prose h2{font-family:var(--ss-display);letter-spacing:-.015em;color:var(--ss-text);margin:40px 0 14px;font-size:24px;font-weight:500}.doc-prose h3{color:var(--ss-text);margin:30px 0 10px;font-size:16px;font-weight:600}.doc-prose p{text-wrap:pretty;margin:0 0 16px}.doc-prose ul{flex-direction:column;gap:6px;margin:0 0 16px;padding-left:22px;display:flex}.doc-prose code{font-family:var(--ss-mono);background:var(--ss-accent-soft);border:1px solid var(--ss-accent-dim);color:var(--ss-accent);border-radius:5px;padding:1px 6px;font-size:.85em}.doc-code{background:var(--ss-code-bg);border:1px solid var(--ss-code-border);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;border-radius:12px;margin:0 0 18px;padding:16px 18px;overflow-x:auto}.doc-code pre{font-family:var(--ss-mono);color:var(--ss-code-text);white-space:pre;margin:0;font-size:12.5px;line-height:1.7}.doc-code .tok-k{color:var(--ss-accent-strong)}.doc-code .tok-s{color:var(--ss-success)}.doc-code .tok-f{color:var(--ss-accent)}.doc-code .tok-c{color:var(--ss-text-3)}.doc-callout{background:var(--ss-accent-soft);border:1px solid var(--ss-accent-dim);color:var(--ss-text-2);border-radius:12px;gap:12px;margin:0 0 18px;padding:14px 16px;font-size:13.5px;line-height:1.6;display:flex}.doc-step{border-top:1px solid var(--ss-border-soft);grid-template-columns:34px 1fr;gap:16px;padding:22px 0;display:grid}.doc-step-n{border:1px solid var(--ss-border);width:30px;height:30px;font-family:var(--ss-mono);color:var(--ss-accent);border-radius:50%;justify-content:center;align-items:center;font-size:12px;display:flex}.api-entry{border:1px solid var(--ss-border-soft);border-radius:14px;margin-bottom:14px;overflow:hidden}.api-sig{background:var(--ss-bg-2);font-family:var(--ss-mono);color:var(--ss-text);border-bottom:1px solid var(--ss-border-soft);padding:13px 18px;font-size:12.5px}.api-body{color:var(--ss-text-2);padding:14px 18px 16px;font-size:13.5px;line-height:1.65}.api-params{flex-direction:column;gap:6px;margin-top:10px;display:flex}.api-param{grid-template-columns:150px 1fr;gap:14px;font-size:12.5px;display:grid}.api-param code{font-family:var(--ss-mono);color:var(--ss-accent-strong);font-size:11.5px}@media (prefers-reduced-motion:no-preference){.fx-particle{animation:1.8s ease-out infinite fx-rise}}.fx-particle{opacity:0;border-radius:50%;position:absolute;bottom:18%}@keyframes fx-rise{0%{opacity:0;transform:translateY(0)scale(1)}12%{opacity:.9}to{opacity:0;transform:translateY(-150px)scale(.4)}}.ed-range{appearance:none;background:var(--ss-border-soft);cursor:pointer;border-radius:999px;outline:none;width:100%;height:2px}.ed-range::-webkit-slider-thumb{-webkit-appearance:none;background:var(--ss-accent);width:12px;height:12px;box-shadow:0 0 0 3px var(--ss-accent-soft), 0 2px 6px #0006;cursor:pointer;border-radius:50%}.ed-range::-moz-range-thumb{background:var(--ss-accent);width:12px;height:12px;box-shadow:0 0 0 3px var(--ss-accent-soft), 0 2px 6px #0006;cursor:pointer;border:0;border-radius:50%}.ss-check{color:var(--ss-accent);flex-shrink:0}.ss-screen :focus-visible{outline:2px solid var(--ss-accent-border);outline-offset:2px;border-radius:4px}.ss-btn:focus-visible{outline-offset:3px;border-radius:var(--ss-r-pill)}.ss-screen ::selection{background:var(--ss-accent-dim)}.ss-logo-img{filter:drop-shadow(0 1px 3px #0000002e);flex-shrink:0;width:auto;display:block}html,body{background:var(--ss-bg);height:100%;margin:0}#root{height:100%}.site-scroll{scrollbar-width:thin;scrollbar-color:var(--ss-border) transparent;height:100%;overflow:hidden auto}.site-scroll::-webkit-scrollbar{width:8px}.site-scroll::-webkit-scrollbar-thumb{background:var(--ss-border);border-radius:999px}:root{--ui-bg-base:var(--ss-bg,#f4f1ea);--ui-bg-shell-top:var(--ss-bg-2,#ebe7dc);--ui-overlay-strong:#1a1b20b3;--ui-overlay-mid:#1a1b2066;--ui-overlay-soft:#1a1b2014;--ui-panel-bg:var(--ss-panel,#ffffffe6);--ui-panel-bg-strong:var(--ss-panel-strong,#fffffff5);--ui-panel-bg-soft:var(--ss-hover,#1a1b200b);--ui-panel-tint:var(--ss-panel,#ffffff05);--ui-panel-tint-strong:var(--ss-panel-strong,#ffffff0a);--ui-border-subtle:var(--ss-border-soft,#1a1b200d);--ui-border-soft:var(--ss-border-soft,#1a1b2014);--ui-border:var(--ss-border,#e5e0d3);--ui-border-strong:var(--ss-border-strong,#c9c1ad);--ui-text-primary:var(--ss-text,#1a1b20);--ui-text-secondary:var(--ss-text-2,#565863);--ui-text-copy:var(--ss-text-2,#565863);--ui-text-muted:var(--ss-text-3,#8c8d97);--ui-text-faint:var(--ss-text-3,#8c8d97);--ui-accent-warm:var(--ss-accent-soft,#6444d61a);--ui-accent-warm-strong:var(--ss-accent-dim,#6444d638);--ui-accent-line:var(--ss-accent-border,#6444d638);--ui-accent-text:var(--ss-accent,#6444d6);--ui-shadow-panel:0 32px 80px #1a1b2029, 0 1px 0 #ffffff80 inset, 0 -1px 0 #1a1b200f inset}html,body,#root{background:var(--ss-bg,#f4f1ea);width:100%;height:100%;margin:0;overflow:hidden}.ss-editor-workspace{-webkit-user-select:none;user-select:none}.ss-editor-workspace input,.ss-editor-workspace textarea{-webkit-user-select:text;user-select:text}button,input,select,textarea{font:inherit}.app-shell{cursor:crosshair;background:radial-gradient(circle at top, #ffb05c0a, transparent 26%), linear-gradient(180deg, var(--ui-bg-shell-top), var(--ui-bg-base) 60%);width:100%;height:100%;position:relative}.app-shell canvas{display:block}.hud{pointer-events:none;position:absolute;inset:0}.ui-panel{border:1px solid var(--ui-border-soft);background:radial-gradient(circle at 16% 10%, #b4c8dc0a, transparent 34%), linear-gradient(180deg, var(--ui-panel-bg-strong), #080a0ee0);box-shadow:var(--ui-shadow-panel);-webkit-backdrop-filter:blur(20px);border-radius:16px}.ui-pill{border:1px solid var(--ui-border);color:var(--ui-text-muted);background:0 0;border-radius:999px;justify-content:center;align-items:center;transition:background .22s cubic-bezier(.22,1,.36,1),color .22s,border-color .22s,box-shadow .22s,opacity .22s;display:inline-flex}.ui-pill.is-active{color:var(--ui-accent-text);border-color:var(--ui-accent-warm-strong);background:var(--ui-accent-warm);box-shadow:0 0 12px var(--ui-accent-warm) inset}.ui-pill.is-off{color:#8c909661;border-color:#8c96a014}.ui-button-secondary{background:var(--ui-panel-bg-soft);color:var(--ui-text-secondary);border:1px solid var(--ui-border);box-shadow:inset 0 1px #ffffff05}.ui-button-secondary:hover,.ui-button-secondary.is-active{border-color:var(--ui-border-strong);color:#dad8d4db;background:#0a0e12ad}.editor-toggle-hint{z-index:34;color:var(--ui-text-secondary);pointer-events:none;align-items:center;gap:10px;padding:8px 12px;display:inline-flex;position:absolute;top:24px;right:24px}.editor-toggle-kbd{border:1px solid var(--ui-border);min-width:34px;color:var(--ui-text-primary);letter-spacing:.12em;text-transform:uppercase;background:#ffffff0a;border-radius:999px;justify-content:center;align-items:center;padding:4px 8px;font-size:.6rem;font-weight:700;display:inline-flex}.editor-layer{z-index:34;pointer-events:none;position:absolute;inset:0}.editor-sidebar,.editor-inspector,.editor-toast,.editor-modal-shroud,.editor-firsttime-tip,.editor-shortcuts-overlay,.editor-context-menu{pointer-events:auto}.editor-sidebar{flex-direction:column;width:min(360px,100vw - 48px);max-height:calc(100vh - 48px);display:flex;position:absolute;top:24px;left:24px;overflow:hidden}.editor-sidebar.is-collapsed{width:220px}.editor-inspector{flex-direction:column;width:min(320px,100vw - 48px);max-height:calc(100vh - 48px);display:flex;position:absolute;top:24px;right:24px;overflow:hidden}.editor-toast{color:var(--ui-text-primary);padding:12px 16px;position:absolute;bottom:28px;left:50%;transform:translate(-50%)}.editor-toast.is-error{border-color:#e8806c4d}.editor-shell-header,.editor-section-header{border-bottom:1px solid var(--ui-border-subtle);background:var(--ui-panel-tint);justify-content:space-between;align-items:flex-start;gap:14px;padding:14px 16px 12px;display:flex}.editor-shell-header h2,.editor-section-header h3{color:var(--ui-text-primary);margin:4px 0 0;font-size:1rem;font-weight:600}.editor-shell-eyebrow,.editor-section-eyebrow{color:var(--ui-text-muted);letter-spacing:.18em;text-transform:uppercase;font-size:.58rem;font-weight:700;display:block}.editor-shell-actions,.editor-toolbar,.editor-status-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.editor-chip,.editor-action-btn,.editor-mode-btn,.editor-toggle-btn{appearance:none;border:1px solid var(--ui-border);color:var(--ui-text-secondary);cursor:pointer;background:#ffffff08;border-radius:999px;transition:border-color .18s,color .18s,background .18s}.editor-chip,.editor-action-btn,.editor-mode-btn{letter-spacing:.12em;text-transform:uppercase;padding:7px 12px;font-size:.62rem;font-weight:700}.editor-toggle-btn{padding:9px 12px;font-size:.74rem;font-weight:600}.editor-chip:hover,.editor-action-btn:hover,.editor-mode-btn:hover,.editor-toggle-btn:hover{border-color:var(--ui-border-strong);color:var(--ui-text-primary)}.editor-mode-btn.is-active,.editor-action-btn.is-primary,.editor-toggle-btn.is-active{background:var(--ui-accent-warm);border-color:var(--ui-accent-warm-strong);color:var(--ui-accent-text)}.editor-toolbar{padding:14px 16px 0}.editor-toolbar-secondary{padding-top:10px}.editor-floor-switcher{align-items:center;gap:6px;padding:10px 16px 0;display:flex}.editor-floor-label{color:var(--ui-text-muted);letter-spacing:.12em;text-transform:uppercase;margin-right:4px;font-size:.58rem;font-weight:700}.editor-floor-btn{appearance:none;border:1px solid var(--ui-border);min-width:30px;color:var(--ui-text-secondary);cursor:pointer;letter-spacing:.08em;background:#ffffff08;border-radius:999px;padding:6px 10px;font-size:.62rem;font-weight:700;transition:border-color .18s,color .18s,background .18s}.editor-floor-btn:hover{border-color:var(--ui-border-strong);color:var(--ui-text-primary)}.editor-floor-btn.is-active{background:var(--ui-accent-warm);border-color:var(--ui-accent-warm-strong);color:var(--ui-accent-text)}.editor-status-row{padding:12px 16px 0}.editor-status-pill{border:1px solid var(--ui-border);color:var(--ui-text-muted);letter-spacing:.12em;text-transform:uppercase;border-radius:999px;align-items:center;padding:5px 10px;font-size:.58rem;font-weight:700;display:inline-flex}.editor-status-pill.is-accent{color:var(--ui-accent-text);border-color:var(--ui-accent-warm-strong)}.editor-library,.editor-inspector-body{padding:14px 16px 16px;overflow:auto}.editor-search{color:var(--ui-text-muted);letter-spacing:.12em;text-transform:uppercase;flex-direction:column;gap:8px;margin-top:14px;font-size:.62rem;font-weight:700;display:flex}.editor-search input,.editor-field input{border:1px solid var(--ui-border);width:100%;color:var(--ui-text-primary);background:#0000002e;border-radius:10px;outline:none;padding:10px 12px}.editor-search input:focus,.editor-field input:focus{border-color:var(--ui-accent-warm-strong)}.editor-library-groups{flex-direction:column;gap:16px;margin-top:16px;display:flex}.editor-library-label{color:var(--ui-text-muted);letter-spacing:.16em;text-transform:uppercase;margin-bottom:8px;font-size:.58rem;font-weight:700}.editor-library-grid{content-visibility:auto;contain-intrinsic-size:auto 320px;grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.editor-library-author-head{letter-spacing:.08em;text-transform:uppercase;color:var(--ui-text-dim);margin:10px 0 4px;font-size:11px;font-weight:600}.editor-library-bundle{content-visibility:auto;contain-intrinsic-size:auto 30px;margin-bottom:4px}.editor-library-bundle-head{appearance:none;border:1px solid var(--ui-border);width:100%;color:var(--ui-text);font:inherit;cursor:pointer;text-align:left;background:0 0;border-radius:7px;align-items:center;gap:7px;padding:6px 9px;font-size:12px;display:flex}.editor-library-bundle-head:hover{border-color:var(--ui-accent-border)}.editor-library-bundle-caret{color:var(--ui-text-dim);width:10px;font-size:10px}.editor-library-bundle-count{color:var(--ui-text-dim);margin-left:auto;font-size:10px}.editor-library-more{appearance:none;border:1px dashed var(--ui-border);width:100%;color:var(--ui-text-dim);font:inherit;cursor:pointer;background:0 0;border-radius:7px;margin-top:6px;padding:6px 0;font-size:11.5px}.editor-library-more:hover{color:var(--ui-text);border-color:var(--ui-accent-border)}.editor-library-item{appearance:none;border:1px solid var(--ui-border);text-align:center;color:var(--ui-text-secondary);cursor:pointer;background:#ffffff05;border-radius:12px;flex-direction:column;align-items:center;gap:6px;padding:8px 8px 10px;transition:border-color .18s,background .18s,transform .18s;display:flex}.editor-library-item:hover{border-color:var(--ui-border-strong);background:#ffffff0a;transform:translateY(-1px)}.editor-library-item.is-selected{border-color:var(--ui-accent-line);background:var(--ui-accent-warm-strong)}.editor-library-item-name{color:var(--ui-text-primary);text-overflow:ellipsis;white-space:nowrap;width:100%;font-size:.74rem;font-weight:600;line-height:1.2;display:block;overflow:hidden}.editor-library-progress{color:var(--ui-text-secondary);letter-spacing:.04em;background:#788caa1f;border-radius:8px;margin:4px 0 6px;padding:8px 10px;font-size:.72rem}.editor-thumbnail{background:linear-gradient(160deg,#1e2630d9,#0e1218eb);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;display:flex;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff0a}.editor-thumbnail.is-pending{background:linear-gradient(135deg,#3c465259 0%,#1e26308c 50%,#3c465259 100%) 0 0/200% 200%;animation:1.8s ease-in-out infinite editor-thumbnail-shimmer}.editor-thumbnail-image{object-fit:contain;image-rendering:auto;-webkit-user-select:none;user-select:none;width:100%;height:100%}.editor-thumbnail-placeholder{border:1px dashed #ffffff2e;border-radius:4px;width:40%;height:40%}@keyframes editor-thumbnail-shimmer{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}.editor-inspector-body{flex-direction:column;gap:16px;display:flex}.editor-inspector-copy span{color:var(--ui-text-primary);font-size:.82rem;font-weight:600;display:block}.editor-inspector-copy p,.editor-empty-state p{color:var(--ui-text-copy);margin:6px 0 0;line-height:1.6}.editor-field-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.editor-field{color:var(--ui-text-muted);letter-spacing:.12em;text-transform:uppercase;flex-direction:column;gap:6px;font-size:.62rem;font-weight:700;display:flex}.editor-params{flex-direction:column;gap:10px;display:flex}.editor-delete-btn{appearance:none;color:#e8aaa0eb;cursor:pointer;background:#e8806c0f;border:1px solid #e8806c3d;border-radius:12px;padding:12px}.editor-empty-state{padding:16px}.editor-status-pill.is-warning{background:var(--ss-warning-soft);color:var(--ss-warning);border-color:color-mix(in srgb, var(--ss-warning) 32%, transparent)}.editor-status-pill.is-dirty{background:color-mix(in srgb, var(--ss-danger) 16%, transparent);color:var(--ss-danger);border-color:color-mix(in srgb, var(--ss-danger) 32%, transparent)}.editor-action-btn.has-dirty-dot:before{content:"";background:var(--ss-danger);vertical-align:middle;width:7px;height:7px;box-shadow:0 0 6px color-mix(in srgb, var(--ss-danger) 60%, transparent);border-radius:50%;margin-right:6px;display:inline-block}.editor-checkbox{color:var(--ui-text-secondary);cursor:pointer;align-items:center;gap:8px;padding:4px 2px;font-size:.72rem;display:flex}.editor-checkbox input{accent-color:var(--ss-accent)}.editor-floating-label-wrapper{pointer-events:none}.editor-floating-label{color:#e4e8ee;letter-spacing:.02em;white-space:nowrap;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#10141ae0;border:1px solid #ffffff1f;border-radius:8px;flex-direction:column;align-items:center;padding:4px 10px;font-size:.72rem;display:flex;transform:translateY(-4px);box-shadow:0 4px 18px #00000073}.editor-floating-label-name{font-weight:600}.editor-floating-label-id{color:var(--ui-text-muted);letter-spacing:.08em;text-transform:uppercase;font-size:.62rem}.editor-right-tabs{border:1px solid var(--ui-border);background:#ffffff08;border-radius:10px;gap:4px;margin-bottom:12px;padding:4px;display:flex}.editor-right-tab{appearance:none;color:var(--ui-text-muted);cursor:pointer;letter-spacing:.04em;background:0 0;border:none;border-radius:6px;flex:1;padding:8px 10px;font-size:.76rem;font-weight:600;transition:background .12s,color .12s}.editor-right-tab:hover{color:var(--ui-text-secondary)}.editor-right-tab.is-active{background:var(--ui-accent-warm-strong);color:var(--ui-text-primary)}.editor-list-panel{flex-direction:column;flex:1;gap:12px;min-height:0;display:flex}.editor-list-groups{flex-direction:column;flex:1;gap:10px;min-height:0;display:flex;overflow-y:auto}.editor-list-group{border:1px solid var(--ui-border);background:#ffffff05;border-radius:10px}.editor-list-group-header{border-bottom:1px solid var(--ui-border);justify-content:space-between;align-items:center;padding:8px 10px;display:flex}.editor-list-group-name{color:var(--ui-text-primary);letter-spacing:.02em;font-size:.76rem;font-weight:600}.editor-list-group-count{color:var(--ui-text-muted);letter-spacing:.1em;font-size:.66rem}.editor-list-rows{flex-direction:column;gap:2px;margin:0;padding:4px;list-style:none;display:flex}.editor-list-row{cursor:pointer;border-radius:8px;align-items:center;gap:10px;padding:6px 8px;transition:background .12s;display:flex}.editor-list-row:hover{background:#ffffff0a}.editor-list-row.is-selected{background:var(--ui-accent-warm-strong)}.editor-list-thumb{flex:none}.editor-list-meta{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.editor-list-meta-name{color:var(--ui-text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:.76rem;font-weight:600;overflow:hidden}.editor-list-meta-sub{color:var(--ui-text-muted);letter-spacing:.04em;font-size:.62rem}.editor-context-menu{z-index:1000;border-radius:10px;flex-direction:column;min-width:160px;padding:4px;display:flex;position:fixed;box-shadow:0 16px 40px #00000080}.editor-context-menu button{appearance:none;color:var(--ui-text-primary);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:6px;padding:8px 12px;font-size:.8rem}.editor-context-menu button:hover{background:#ffffff0f}.editor-context-menu button.is-danger{color:var(--ss-danger)}.editor-context-menu button.is-danger:hover{background:color-mix(in srgb, var(--ss-danger) 16%, transparent)}.editor-modal-shroud{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:1100;background:#0000008c;justify-content:center;align-items:center;padding:32px;display:flex;position:fixed;inset:0}.editor-modal{border-radius:16px;flex-direction:column;gap:14px;width:min(560px,96vw);max-height:90vh;padding:18px 18px 14px;display:flex;box-shadow:0 30px 60px #0009}.editor-modal header h3{margin:0;font-size:1.05rem}.editor-modal header p{color:var(--ui-text-muted);margin:6px 0 0;font-size:.84rem}.editor-modal footer{border-top:1px solid var(--ui-border);justify-content:flex-end;gap:8px;padding-top:6px;display:flex}.editor-modal p{color:var(--ui-text-secondary);font-size:.88rem;line-height:1.4}.editor-diff-modal{width:min(720px,96vw);max-height:85vh}.editor-diff-tabs{border:1px solid var(--ui-border);background:#ffffff05;border-radius:10px;gap:4px;padding:4px;display:flex}.editor-diff-tab{appearance:none;color:var(--ui-text-muted);cursor:pointer;letter-spacing:.06em;text-transform:uppercase;background:0 0;border:none;border-radius:6px;flex:1;justify-content:center;align-items:center;gap:6px;padding:8px 10px;font-size:.74rem;font-weight:600;display:flex}.editor-diff-tab span{background:#ffffff14;border-radius:10px;padding:1px 8px;font-size:.64rem}.editor-diff-tab.is-active{background:var(--ui-accent-warm-strong);color:var(--ui-text-primary)}.editor-diff-tab.has-error{color:var(--ss-danger)}.editor-diff-body{flex:1;min-height:200px;overflow-y:auto}.editor-diff-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.editor-diff-row{border:1px solid var(--ui-border);background:#ffffff05;border-radius:10px;align-items:center;gap:12px;padding:10px;display:flex}.editor-diff-row.is-added{border-left:3px solid var(--ss-success)}.editor-diff-row.is-removed{border-left:3px solid var(--ss-danger)}.editor-diff-row.is-modified{border-left:3px solid var(--ss-warning)}.editor-diff-row.editor-issue.is-error{border-left:3px solid var(--ss-danger)}.editor-diff-row.editor-issue.is-warning{border-left:3px solid var(--ss-warning)}.editor-diff-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.editor-diff-name{color:var(--ui-text-primary);font-size:.86rem;font-weight:600}.editor-diff-sub{color:var(--ui-text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:.74rem;overflow:hidden}.editor-diff-empty{color:var(--ui-text-muted);text-align:center;padding:24px;font-size:.84rem}.editor-popover{z-index:1050;border-radius:14px;flex-direction:column;gap:12px;width:min(320px,96vw);padding:16px;display:flex;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 18px 48px #0000008c}.editor-firsttime-tip{z-index:900;border-radius:14px;align-items:center;gap:14px;max-width:560px;padding:14px 18px;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 12px 30px #0006}.editor-firsttime-tip strong{color:var(--ui-text-primary);font-size:.88rem}.editor-firsttime-tip p{color:var(--ui-text-secondary);flex:1;margin:0;font-size:.78rem;line-height:1.45}.editor-firsttime-tip kbd{color:var(--ui-text-primary);background:#ffffff14;border:1px solid #ffffff1f;border-radius:4px;padding:1px 6px;font-size:.72rem}@media (width<=640px){.menu-overlay{grid-template-rows:auto 1fr auto;grid-template-columns:1fr;gap:24px 0;padding:36px 28px 24px}.menu-shell{grid-area:1/1;align-self:start}.menu-options-col{grid-area:2/1;align-items:stretch;transform:translateY(8px)scale(.992)}.menu-options-col.is-open{transform:translateY(0)scale(1)}.opt-panel{border-radius:12px;max-width:100%;max-height:none}.opt-body{gap:24px;padding:22px 22px 26px}.opt-header{padding:0 16px 0 4px}.opt-tab{padding:14px 16px;font-size:.62rem}.opt-keybind-grid{grid-template-columns:1fr;gap:6px}.menu-footer{flex-direction:column;grid-area:3/1;gap:8px}.menu-actions{flex-direction:column;align-items:stretch}.torch-indicator{width:118px;height:40px;top:16px;left:16px}.torch-indicator-icon{width:118px;height:40px}.hud-prompt{bottom:12vh}.cam-mode-pill{bottom:16px;left:16px}.floor-indicator{top:16px}.interact-prompt{font-size:.62rem;bottom:80px}.dev-console-layer{padding:16px}.dev-console{border-radius:12px;max-height:72vh}.dev-console-header{flex-direction:column;align-items:stretch}.dev-console-badges{justify-content:flex-start}.dev-console-output{padding:12px 14px}.dev-console-line pre,.dev-console-input{font-size:.74rem}.editor-sidebar,.editor-inspector{width:auto;max-height:none;margin:16px;position:static}.editor-layer{overflow:auto}}.editor-action-btn:disabled{opacity:.32;cursor:not-allowed;pointer-events:none}.editor-shortcuts-overlay{z-index:60;pointer-events:auto;width:min(420px,90vw);padding:0 0 16px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.editor-shortcuts-grid{grid-template-columns:auto 1fr;gap:10px 20px;padding:14px 20px;display:grid}.editor-shortcut-row{display:contents}.editor-shortcut-kbd{font-family:var(--ss-mono,monospace);letter-spacing:.06em;color:#d2ccc2b8;white-space:nowrap;text-align:center;background:#ffffff0a;border:1px solid #ffffff14;border-bottom-width:2px;border-radius:4px;align-self:center;padding:2px 8px;font-size:.62rem;font-weight:700;display:inline-block}.editor-shortcut-label{color:var(--ui-text-secondary);align-self:center;font-size:.72rem}.editor-status-pill.is-accent{color:#c8dcffe0;background:#6496ff0f;border-color:#8cb4ff38}.editor-library-hover-card{z-index:9999;background:var(--ss-panel-strong);border:1px solid var(--ui-border-strong);pointer-events:none;border-radius:14px;width:204px;padding:12px;animation:.12s cubic-bezier(.16,1,.3,1) editor-hover-card-in;position:fixed;box-shadow:0 12px 40px #000000a6,inset 0 0 0 1px #ffffff0a}@keyframes editor-hover-card-in{0%{opacity:0;transform:translate(-6px)scale(.97)}to{opacity:1;transform:translate(0)scale(1)}}.editor-library-hover-meta{flex-direction:column;gap:4px;margin-top:10px;display:flex}.editor-library-hover-name{color:var(--ui-text-primary);align-items:center;gap:6px;font-size:13px;font-weight:600;line-height:1.25;display:flex}.editor-library-hover-sub{color:var(--ui-text-muted);font-size:11px;line-height:1.4}.editor-library-hover-tags{flex-wrap:wrap;gap:3px;margin-top:4px;display:flex}.editor-library-hover-tag{letter-spacing:.03em;color:var(--ui-text-muted);background:#ffffff0d;border:1px solid #ffffff0f;border-radius:4px;padding:2px 6px;font-size:9.5px;font-weight:500}.editor-library-anim-badge{letter-spacing:.1em;background:var(--ui-accent-warm);color:var(--ui-accent-text);border:1px solid var(--ui-accent-line);vertical-align:middle;border-radius:4px;flex-shrink:0;padding:1px 5px;font-size:8px;font-weight:700;display:inline-block}.editor-library-bundle-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.editor-library-bundle-previews{opacity:.72;flex-shrink:0;align-items:center;gap:3px;margin-left:2px;display:flex}.editor-library-bundle-previews .editor-thumbnail{border-radius:4px}.editor-library-author-head{justify-content:space-between;align-items:center;gap:6px;display:flex}.editor-library-author-count{color:var(--ui-text-muted);background:#ffffff0a;border:1px solid #ffffff0f;border-radius:8px;flex-shrink:0;padding:1px 6px;font-size:9.5px;font-weight:500}:root{--st-bg:var(--ss-bg,#f4f1ea);--st-panel:var(--ss-surface,#fff);--st-panel-2:var(--ss-panel-strong,#efece3);--st-border:var(--ss-border-soft,#1a1b2014);--st-text:var(--ss-text,#1a1b20);--st-dim:var(--ss-text-2,#565863);--st-accent:var(--ss-accent,#6444d6);--st-accent-2:var(--ss-accent-strong,#8a5cf2);--st-danger:var(--ss-danger,#d0453f)}*{box-sizing:border-box}html,body,#root{background:var(--st-bg);height:100%;color:var(--st-text);font-family:var(--ss-sans,system-ui, sans-serif);margin:0}button{cursor:pointer;font-family:inherit}.studio-loading,.studio-error{height:100vh;color:var(--st-dim);justify-content:center;align-items:center;font-size:15px;display:flex}.studio-error{color:var(--st-danger)}.auth-screen{justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.auth-card{background:var(--st-panel);border:1px solid var(--st-border);border-radius:16px;flex-direction:column;gap:16px;width:360px;padding:32px;display:flex}.auth-brand h1{margin:4px 0 6px;font-size:30px}.auth-eyebrow{color:var(--st-accent);letter-spacing:.16em;text-transform:uppercase;font-size:11px}.auth-brand p{color:var(--st-dim);margin:0;font-size:13px}.auth-google,.auth-submit,.btn-primary{background:var(--st-accent);color:var(--ss-accent-ink,#081030);border:none;border-radius:9px;padding:11px 14px;font-weight:600}.auth-google{color:#1a1f27;background:#fff}.auth-divider{color:var(--st-dim);align-items:center;gap:10px;font-size:12px;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--st-border);flex:1;height:1px}.auth-form{flex-direction:column;gap:12px;display:flex}.auth-field{color:var(--st-dim);flex-direction:column;gap:5px;font-size:12px;display:flex}.auth-field input,.modal-field input,.text-input{background:var(--st-panel-2);border:1px solid var(--st-border);color:var(--st-text);border-radius:8px;padding:9px 11px;font-size:14px}.auth-error{color:var(--st-danger);margin:0;font-size:13px}.auth-toggle{color:var(--st-accent-2);background:0 0;border:none;font-size:13px}.dashboard{min-height:100vh}.dashboard-topbar,.project-topbar{border-bottom:1px solid var(--st-border);background:var(--st-panel);justify-content:space-between;align-items:center;padding:14px 22px;display:flex}.dashboard-brand{letter-spacing:.02em;font-weight:700}.dashboard-user{color:var(--st-dim);align-items:center;gap:14px;font-size:13px;display:flex}.dashboard-body{max-width:1100px;margin:0 auto;padding:28px 22px}.dashboard-head{justify-content:space-between;align-items:center;margin-bottom:22px;display:flex}.dashboard-head h1{margin:0;font-size:22px}.dashboard-empty{color:var(--st-dim)}.project-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px;display:grid}.project-card{position:relative}.project-card-open{background:var(--st-panel);border:1px solid var(--st-border);text-align:left;width:100%;color:var(--st-text);border-radius:12px;flex-direction:column;gap:8px;padding:14px;display:flex}.project-card-open:hover{border-color:var(--st-accent)}.project-thumb,.project-thumb-placeholder{object-fit:cover;background:var(--st-panel-2);width:100%;height:110px;color:var(--st-dim);border-radius:8px;justify-content:center;align-items:center;font-size:34px;display:flex}.project-card-name{font-weight:600}.project-card-meta{color:var(--st-dim);text-transform:capitalize;font-size:11px}.project-card-delete{color:#fff;background:#00000080;border:none;border-radius:6px;width:24px;height:24px;position:absolute;top:8px;right:8px}.btn-ghost{color:var(--st-text);border:1px solid var(--st-border);background:0 0;border-radius:8px;padding:8px 13px}.modal-backdrop{z-index:100;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-card{background:var(--st-panel);border:1px solid var(--st-border);border-radius:14px;flex-direction:column;gap:14px;width:460px;padding:24px;display:flex}.modal-card h2{margin:0;font-size:19px}.modal-field{color:var(--st-dim);flex-direction:column;gap:5px;font-size:12px;display:flex}.modal-field-label{color:var(--st-dim);font-size:12px}.template-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.template-card{text-align:left;background:var(--st-panel-2);border:1px solid var(--st-border);color:var(--st-text);border-radius:10px;flex-direction:column;gap:6px;padding:13px;display:flex}.template-card.is-active{border-color:var(--st-accent)}.template-title{font-weight:600}.template-blurb{color:var(--st-dim);font-size:11.5px;line-height:1.4}.modal-actions{justify-content:flex-end;gap:10px;margin-top:4px;display:flex}.project-shell{background:var(--st-bg);height:100vh;color:var(--st-text);flex-direction:column;display:flex}.project-home{color:var(--st-dim);font-size:13px;text-decoration:none}.project-name{font-weight:600}.project-tabs{gap:4px;display:flex}.project-tab{color:var(--st-dim);border-radius:8px;padding:7px 14px;font-size:13px;text-decoration:none}.project-tab.is-active{background:var(--st-panel-2);color:var(--st-text)}.project-stage{flex:1;position:relative;overflow:hidden}.play-hint{color:#dfe6ee;pointer-events:none;background:#0000008c;border-radius:20px;padding:7px 14px;font-size:12px;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}.plan-route{max-width:900px;height:100%;margin:0 auto;padding:28px;overflow:auto}.plan-header{justify-content:space-between;align-items:baseline;margin-bottom:20px;display:flex}.plan-header h2{margin:0}.plan-template{color:var(--st-dim);text-transform:capitalize;font-size:12px}.plan-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:12px;margin-bottom:24px;display:grid}.plan-card{background:var(--st-panel);border:1px solid var(--st-border);border-radius:10px;flex-direction:column;gap:4px;padding:16px;display:flex}.plan-stat{color:var(--st-accent);font-size:26px;font-weight:700}.plan-label{color:var(--st-dim);font-size:12px}.plan-section h3{font-size:14px}.plan-list{color:var(--st-dim);padding-left:18px;font-size:13px;line-height:1.7}.plan-list strong{color:var(--st-text)}.characters-route{height:100%;display:flex}.characters-panel{background:var(--st-panel);border-right:1px solid var(--st-border);flex-direction:column;gap:18px;width:300px;padding:18px;display:flex;overflow-y:auto}.characters-panel section{flex-direction:column;gap:8px;display:flex}.panel-label{text-transform:uppercase;letter-spacing:.12em;color:var(--st-dim);font-size:11px}.pill-list{flex-wrap:wrap;gap:6px;display:flex}.pill{background:var(--st-panel-2);border:1px solid var(--st-border);color:var(--st-text);border-radius:7px;padding:6px 11px;font-size:12px}.pill.is-active{background:var(--st-accent);color:var(--ss-accent-ink,#081030);border-color:var(--st-accent)}.bone-row{flex-direction:column;gap:3px;margin-bottom:8px;display:flex}.bone-name{color:var(--st-text);font-size:12px}.bone-axes{gap:8px;display:flex}.bone-axis{color:var(--st-dim);flex:1;align-items:center;gap:4px;font-size:10px;display:flex}.bone-axis input{flex:1}.save-pose-row{gap:8px;display:flex}.save-pose-row .text-input{flex:1}.save-status{color:var(--st-accent-2);margin:4px 0 0;font-size:12px}.characters-stage{flex:1;position:relative}.asset-upload{z-index:40;flex-direction:column;align-items:flex-end;gap:6px;display:flex;position:absolute;bottom:16px;right:16px}.asset-upload-btn{background:var(--st-accent-2);color:var(--ss-accent-ink,#081030);border:none;border-radius:9px;padding:10px 15px;font-size:13px;font-weight:600}.asset-upload-status{color:#dfe6ee;background:#000000a6;border-radius:8px;max-width:280px;padding:6px 11px;font-size:12px}.param-field{flex-direction:column;gap:4px;margin-bottom:10px;display:flex}.param-field-label{color:var(--st-dim);justify-content:space-between;font-size:11px;display:flex}.param-field-row{align-items:center;gap:8px;display:flex}.param-field-row input[type=range]{flex:1}.param-field-num{width:60px}.param-field-issue{color:var(--st-danger);font-size:11px}.param-field-issue.is-warning{color:var(--st-accent)}.param-name-input{background:var(--st-panel-2);border:1px solid var(--st-border);width:100%;color:var(--st-text);border-radius:7px;padding:7px 9px;font-size:13px}
