.beta-plan{display:inline-flex;align-items:center;gap:2px;padding:2px 4px 2px 8px;border:1px solid var(--c-line, #2a2a2a);border-radius:999px;background:var(--c-n-150, #1c1b1b)}.beta-plan__label{font-family:JetBrains Mono,monospace;font-size:10px;letter-spacing:.08em;color:var(--c-muted, #a6a19f);margin-right:4px}.beta-plan__btn{font-family:JetBrains Mono,monospace;font-size:11px;text-transform:uppercase;letter-spacing:.04em;padding:3px 8px;border-radius:999px;border:1px solid transparent;background:transparent;color:var(--c-muted, #a6a19f);cursor:pointer}.beta-plan__btn:hover{color:var(--c-text, #e5e2e1)}.beta-plan__btn.is-active{color:#0e0e0e;background:var(--c-accent, #00f0ff);border-color:transparent;font-weight:700}.mk{--mk-ink-0: var(--c-n-50);--mk-ink-1: var(--c-n-100);--mk-ink-2: var(--c-n-150);--mk-ink-3: var(--c-n-200);--mk-line: var(--c-n-250);--mk-line-2: var(--c-n-300);--mk-text: var(--c-n-800);--mk-muted: var(--c-n-700);--mk-faint: var(--c-n-600);--mk-accent: var(--accent);--mk-accent-hover: var(--accent-hover);--mk-amber: var(--build);--mk-display: var(--font-display);--mk-body: var(--font-sans);--mk-mono: var(--font-mono);min-height:100vh;overflow-x:clip;background:var(--mk-ink-0);color:var(--mk-text);font-family:var(--mk-body);font-size:var(--fs-lg);line-height:1.6;-webkit-font-smoothing:antialiased}.mk *,.mk *:before,.mk *:after{box-sizing:border-box}.mk a{color:inherit;text-decoration:none}.mk code{font-family:var(--mk-mono);font-size:.85em;color:var(--mk-amber);background:var(--mk-ink-2);border:1px solid var(--mk-line);border-radius:2px;padding:1px 5px}.mk-label{font-family:var(--mk-mono);font-size:12px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--mk-accent);margin:0 0 14px}.mk-label--amber{color:var(--mk-amber)}.mk-accent{color:var(--mk-accent)}.mk-h2{font-family:var(--mk-display);font-size:clamp(28px,4vw,40px);font-weight:800;font-stretch:105%;line-height:1.12;letter-spacing:-.01em;margin:0 0 40px;max-width:640px}.mk-section{max-width:1200px;margin:0 auto;padding:96px 32px 32px}.mk-section--narrow{max-width:820px}.mk-fineprint{font-family:var(--mk-mono);font-size:12px;color:var(--mk-faint);margin-top:20px}.mk-btn{display:inline-flex;align-items:center;gap:8px;font-family:var(--mk-body);font-size:14px;font-weight:600;border-radius:2px;border:1px solid transparent;padding:9px 18px;cursor:pointer;transition:background .15s ease-out,border-color .15s ease-out,box-shadow .15s ease-out,color .15s ease-out;white-space:nowrap}.mk-btn--lg{font-size:16px;padding:13px 26px}.mk-btn--accent{background:var(--mk-accent);color:var(--mk-ink-0)}.mk-btn--accent:hover{background:var(--mk-accent-hover);box-shadow:0 0 24px #00f0ff4d}.mk-btn--ghost{background:transparent;color:var(--mk-text);border-color:var(--mk-line-2)}.mk-btn--ghost:hover{border-color:var(--mk-accent);color:var(--mk-accent)}.mk-btn--discord{background:#5865f2;color:#fff}.mk-btn--discord:hover{background:#6b76f5;box-shadow:0 0 24px #5865f259}.mk-nav{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:40px;padding:0 32px;height:64px;background:color-mix(in srgb,var(--mk-ink-0) 82%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--mk-line)}.mk-nav__brand{display:inline-flex;align-items:center;gap:10px;font-family:var(--mk-display);font-weight:800;font-size:17px;letter-spacing:.01em;color:var(--mk-text)}.mk-nav__brand svg{color:var(--mk-accent)}.mk-nav__links{display:flex;gap:28px;font-size:14px;color:var(--mk-muted)}.mk-nav__links a:hover{color:var(--mk-text)}.mk-nav__cta{margin-left:auto;display:flex;gap:10px}.mk-hero{position:relative;max-width:1200px;margin:0 auto;padding:96px 32px 40px;display:grid;grid-template-columns:minmax(420px,1.05fr) 1fr;gap:48px;align-items:center}.mk-hero__title{font-family:var(--mk-display);font-size:clamp(42px,5.4vw,72px);font-weight:900;font-stretch:110%;line-height:1.02;letter-spacing:-.015em;margin:0 0 24px}.mk-hero__sub{font-size:18px;color:var(--mk-muted);max-width:520px;margin:0 0 32px}.mk-hero__sub strong{color:var(--mk-text)}.mk-hero__actions{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:28px}.mk-hero__stats{font-family:var(--mk-mono);font-size:12px;letter-spacing:.06em;color:var(--mk-faint);margin:0}.mk-hero__art{min-width:0}.mk-sky{width:100%;height:auto;display:block}.mk-bento{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.mk-card{position:relative;background:var(--mk-ink-1);border:1px solid var(--mk-line);border-radius:4px;padding:28px 28px 56px;transition:border-color .15s ease-out,box-shadow .15s ease-out}.mk-card:hover{border-color:var(--mk-line-2);box-shadow:0 0 32px #00f0ff14}.mk-card--wide{grid-column:span 2}.mk-card h3{font-family:var(--mk-display);font-size:20px;font-weight:700;margin:0 0 10px}.mk-card p{color:var(--mk-muted);font-size:15px;margin:0}.mk-card__tag{position:absolute;left:28px;bottom:22px;font-family:var(--mk-mono);font-size:11px;letter-spacing:.08em;color:var(--mk-faint)}.mk-steps{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:0;padding:0}.mk-step{border-top:1px solid var(--mk-line-2);padding-top:22px}.mk-step__num{font-family:var(--mk-mono);font-size:13px;color:var(--mk-accent)}.mk-step h3{font-family:var(--mk-display);font-size:22px;font-weight:800;margin:10px 0}.mk-step p{color:var(--mk-muted);font-size:15px;margin:0}.mk-cmd{display:block;margin:12px 0;padding:8px 12px;width:fit-content}.mk-templates{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.mk-tpl{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:0 0 14px;background:var(--mk-ink-1);border:1px solid var(--mk-line);border-radius:4px;overflow:hidden;cursor:pointer;color:var(--mk-text);font-family:var(--mk-body);text-align:left;transition:border-color .15s ease-out,box-shadow .15s ease-out,transform .15s ease-out}.mk-tpl:hover{border-color:var(--mk-accent);box-shadow:0 0 28px #00f0ff24;transform:translateY(-2px)}.mk-tpl__thumb{width:100%;aspect-ratio:4 / 3;object-fit:cover;border-bottom:1px solid var(--mk-line);margin-bottom:8px}.mk-tpl__name{font-weight:600;font-size:15px;padding:0 14px}.mk-tpl__stats{font-family:var(--mk-mono);font-size:11px;letter-spacing:.06em;color:var(--mk-faint);padding:0 14px}.mk-split-wrap{padding-top:64px}.mk-split{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--mk-line);border-radius:4px;overflow:hidden}.mk-split__side{padding:40px;background:var(--mk-ink-1)}.mk-split__side--build{background:linear-gradient(160deg,#2a2208 0%,var(--mk-ink-1) 70%);border-right:1px solid var(--mk-line)}.mk-split__side h3{font-family:var(--mk-display);font-size:24px;font-weight:800;margin:0 0 10px}.mk-split__side p{color:var(--mk-muted);margin:0;font-size:15px}.mk-plans{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;align-items:stretch}.mk-plan{position:relative;display:flex;flex-direction:column;background:var(--mk-ink-1);border:1px solid var(--mk-line);border-radius:4px;padding:30px 28px 28px}.mk-plan--hot{border-color:color-mix(in srgb,var(--mk-accent) 55%,var(--mk-line));box-shadow:0 0 40px #00f0ff1f}.mk-plan__badge{position:absolute;top:-10px;left:28px;font-family:var(--mk-mono);font-size:10px;letter-spacing:.1em;background:var(--mk-accent);color:var(--mk-ink-0);border-radius:9999px;padding:3px 10px;font-weight:600}.mk-plan__name{font-family:var(--mk-display);font-weight:800;font-size:15px;letter-spacing:.04em;text-transform:uppercase;color:var(--mk-muted)}.mk-plan__price{font-family:var(--mk-mono);font-size:40px;font-weight:600;margin:8px 0 2px}.mk-plan__price span{font-size:15px;color:var(--mk-muted)}.mk-plan__tagline{color:var(--mk-muted);font-size:14px;margin:0 0 18px}.mk-plan__features{list-style:none;margin:0 0 24px;padding:0;display:grid;gap:10px;font-size:14px}.mk-plan__features li{padding-left:22px;position:relative;color:var(--mk-text)}.mk-plan__features li:before{content:"";position:absolute;left:0;top:7px;width:10px;height:5px;border-left:2px solid var(--mk-accent);border-bottom:2px solid var(--mk-accent);transform:rotate(-45deg)}.mk-plan__cta{margin-top:auto;justify-content:center}.mk-faq{border-bottom:1px solid var(--mk-line)}.mk-faq summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 0;font-family:var(--mk-display);font-size:17px;font-weight:700}.mk-faq summary::-webkit-details-marker{display:none}.mk-faq summary:after{content:"+";font-family:var(--mk-mono);color:var(--mk-accent);font-size:18px;transition:transform .15s ease-out}.mk-faq[open] summary:after{transform:rotate(45deg)}.mk-faq p{color:var(--mk-muted);margin:0 0 20px;max-width:680px}.mk-footer{border-top:1px solid var(--mk-line);margin-top:96px;padding:40px 32px 48px}.mk-footer__row{max-width:1200px;margin:0 auto 18px;display:flex;align-items:center;justify-content:space-between;gap:24px}.mk-footer__links{display:flex;gap:24px;font-size:14px;color:var(--mk-muted)}.mk-footer__links a:hover{color:var(--mk-text)}.mk-footer__legal{max-width:1200px;margin:0 auto;font-size:12.5px;color:var(--mk-faint)}@media (max-width: 960px){.mk-hero{grid-template-columns:1fr;padding-top:64px}.mk-bento,.mk-steps,.mk-plans{grid-template-columns:1fr}.mk-card--wide{grid-column:span 1}.mk-templates{grid-template-columns:repeat(2,1fr)}.mk-split{grid-template-columns:1fr}.mk-split__side--build{border-right:0;border-bottom:1px solid var(--mk-line)}.mk-nav__links{display:none}}.mk-nav__logo{width:26px;height:26px;object-fit:contain;filter:drop-shadow(0 0 8px rgba(0,240,255,.5))}.mk-nav__brand{text-transform:uppercase;letter-spacing:.06em}.mk-nav__links a,.mk-footer__links a{font-family:var(--mk-display);font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.12em;transition:color .2s ease}.mk-btn{font-family:var(--mk-display);font-weight:700;text-transform:uppercase;letter-spacing:.1em;border-radius:4px}.mk-btn--accent{box-shadow:0 0 24px #00f0ff40}.mk-btn--accent:hover{box-shadow:0 0 36px #00f0ff80;transform:translateY(-1px)}.mk-btn--ghost{background:#00f0ff14;color:var(--mk-accent);border-color:#00f0ff4d}.mk-btn--ghost:hover{background:var(--mk-accent);color:var(--mk-ink-0);border-color:var(--mk-accent)}.mk-card,.mk-tpl{position:relative;overflow:hidden}.mk-card:after,.mk-tpl:after{content:"";position:absolute;left:0;bottom:0;height:2px;width:0;background:var(--mk-accent);transition:width .5s ease;pointer-events:none}.mk-card:hover:after,.mk-tpl:hover:after{width:100%}.mk-label{letter-spacing:.16em}.mk-plan__badge,.plan__badge{font-family:var(--mk-display);font-weight:900;letter-spacing:.16em;box-shadow:0 0 18px #00f0ff66}.mk-studio-wrap{padding-top:64px;padding-bottom:64px}.mk-studio{display:block;border:1px solid var(--mk-line);border-radius:12px;overflow:hidden;transition:border-color .4s ease,box-shadow .4s ease}.mk-studio:hover{border-color:#00f0ff59;box-shadow:0 0 40px #00f0ff1f}.mk-studio__img{display:block;width:100%;height:auto;aspect-ratio:2.5 / 1;object-fit:cover}.mk-studio__cta{display:inline-flex;align-items:center;gap:10px;margin-top:18px;font-family:var(--mk-display);font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--mk-muted);transition:gap .3s ease,color .3s ease}.mk-studio-wrap:hover .mk-studio__cta{gap:18px;color:var(--mk-accent)}@media (max-width: 900px){.mk-studio{margin-top:64px}}.orb-bg{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;opacity:.45}.orb-bg canvas{display:block}.orb-veil{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background-color:#13131347;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='ov'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23ov)' opacity='0.22'/%3E%3C/svg%3E");background-size:170px 170px;background-repeat:repeat}.orb-static-bg{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;background:radial-gradient(42% 34% at 50% 38%,rgba(0,240,255,.14),transparent 70%),radial-gradient(60% 48% at 50% 40%,rgba(0,105,112,.18),transparent 75%),radial-gradient(24% 18% at 62% 30%,rgba(255,191,0,.05),transparent 70%)}.mk{background:transparent;position:relative}.mk-hero,.mk-section,.mk-split,.mk-footer,.mk-studio-wrap{position:relative;z-index:1}.mk-nav{z-index:60}.mk-card,.mk-tpl,.mk-plan,.plan{background:#ffffff12;backdrop-filter:blur(14px) saturate(1.3);-webkit-backdrop-filter:blur(14px) saturate(1.3);border:1px solid rgba(59,73,75,.1);border-radius:8px;transition:background .4s ease,border-color .4s ease,box-shadow .4s ease}.mk-card:hover,.mk-tpl:hover,.mk-plan:hover,.plan:hover{background:#ffffff1a;border-color:#00f0ff66;box-shadow:0 0 30px #00f0ff26}.mk-card{padding:24px 24px 56px}.mk-plan--featured,.plan--featured,.mk-plan.is-featured{border-color:#00f0ff66;box-shadow:0 0 30px #00f0ff26}.mk-card__tag,.mk-cmd,.mk-tpl__meta{background:#ffffff0f;border-radius:4px}.mk-cmd{border:1px solid rgba(59,73,75,.1);backdrop-filter:blur(7px) saturate(1.2);-webkit-backdrop-filter:blur(7px) saturate(1.2)}.mk-faq{border-bottom:1px solid rgba(59,73,75,.1)}.mk-faq summary:hover{color:var(--mk-accent)}.mk-footer{background:color-mix(in srgb,var(--mk-ink-0) 92%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.mk-hero__copy{position:relative}.mk-hero__copy:before{content:"";position:absolute;top:-40px;right:-80px;bottom:-40px;left:-60px;z-index:-1;background:radial-gradient(75% 65% at 35% 50%,rgba(19,19,19,.92) 0%,rgba(19,19,19,.75) 45%,transparent 100%);pointer-events:none}.mk-devlogin{display:inline-flex;align-items:center;gap:4px;margin-right:8px;padding:2px 6px;border:1px dashed var(--border);border-radius:var(--r-sm)}.mk-devlogin__label{font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;color:var(--text-muted);margin-right:2px}.mk-devlogin__btn{padding:2px 8px;font-size:11px;text-transform:uppercase}.mk-footer__linkbtn{background:none;border:0;padding:0;color:inherit;font:inherit;cursor:pointer}.mk-footer__linkbtn:hover{color:var(--accent)}.mk-invite{display:flex;flex-direction:column;gap:12px;max-width:560px;margin-top:8px}.mk-invite__input{width:100%;box-sizing:border-box;background:var(--c-n-50, #0e0e0e);color:var(--c-text, #e5e2e1);border:1px solid var(--c-line, #2a2a2a);border-radius:10px;padding:14px 16px;font-family:JetBrains Mono,monospace;font-size:22px;letter-spacing:.14em;text-transform:uppercase}.mk-invite__input::placeholder{color:#4a4846;letter-spacing:.14em}.mk-invite__input:focus{outline:none;border-color:var(--c-accent, #00f0ff);box-shadow:0 0 0 3px #00f0ff1f}.mk-invite__hint{margin:0;color:var(--c-muted, #a6a19f);font-size:14px;line-height:1.5}.mk-invite__plans{display:flex;flex-wrap:wrap;gap:10px}.adm{min-height:100vh;padding:24px 16px 48px;max-width:960px;margin:0 auto;color:var(--c-text, #e5e2e1);font-family:Manrope,system-ui,sans-serif}.adm__head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}.adm__brand{display:inline-flex;align-items:center;gap:10px;font-family:Space Grotesk,system-ui,sans-serif;font-weight:700;letter-spacing:.02em}.adm__logo{width:24px;height:24px}.adm__back{color:var(--c-muted, #a6a19f);text-decoration:none;font-size:13px}.adm__back:hover{color:var(--c-text, #e5e2e1)}.adm__card{background:var(--c-n-150, #1c1b1b);border:1px solid var(--c-line, #2a2a2a);border-radius:10px;padding:18px;margin-bottom:16px}.adm__card h2{margin:0 0 8px;font-family:Space Grotesk,system-ui,sans-serif;font-size:16px;display:flex;align-items:center;gap:8px}.adm__count{font-family:JetBrains Mono,monospace;font-size:12px;color:var(--c-muted, #a6a19f);background:var(--c-n-200, #201f1f);padding:2px 8px;border-radius:999px}.adm__hint{margin:0 0 12px;color:var(--c-muted, #a6a19f);font-size:13px;line-height:1.5}.adm__field{display:flex;flex-direction:column;gap:6px;margin-bottom:10px;font-size:12px;color:var(--c-muted, #a6a19f);font-family:JetBrains Mono,monospace;text-transform:uppercase;letter-spacing:.06em}.adm input{width:100%;box-sizing:border-box;background:var(--c-n-50, #0e0e0e);color:var(--c-text, #e5e2e1);border:1px solid var(--c-line, #2a2a2a);border-radius:8px;padding:10px 12px;font:inherit;font-size:14px}.adm input:focus{outline:none;border-color:var(--c-accent, #00f0ff)}.adm__row{display:flex;gap:10px}.adm__btn{background:var(--c-n-200, #201f1f);color:var(--c-text, #e5e2e1);border:1px solid var(--c-line, #2a2a2a);border-radius:8px;padding:10px 14px;font:inherit;font-size:13px;cursor:pointer;white-space:nowrap}.adm__btn:hover{border-color:var(--c-muted, #a6a19f)}.adm__btn:disabled{opacity:.5;cursor:default}.adm__btn--accent{background:var(--c-accent, #00f0ff);color:#0e0e0e;border-color:transparent;font-weight:700}.adm__btn--sm{padding:5px 10px;font-size:12px}.adm__btn--danger:hover{border-color:#ef6d6d;color:#ef6d6d}.adm__error{margin:10px 0 0;color:#ef6d6d;font-size:13px}.adm__fresh{margin-top:14px;padding:12px 14px;border-radius:8px;background:#00f0ff0f;border:1px solid rgba(0,240,255,.35);display:flex;align-items:center;justify-content:space-between;gap:12px}.adm__fresh-label{display:block;font-size:13px;color:var(--c-muted, #a6a19f);margin-bottom:6px}.adm__code{font-family:JetBrains Mono,monospace;font-size:22px;letter-spacing:.08em;color:var(--c-text, #e5e2e1)}.adm__table{width:100%;border-collapse:collapse;font-size:13px}.adm__table th{text-align:left;font-family:JetBrains Mono,monospace;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--c-muted, #a6a19f);padding:6px 8px;border-bottom:1px solid var(--c-line, #2a2a2a)}.adm__table td{padding:8px;border-bottom:1px solid var(--c-line, #2a2a2a);vertical-align:middle}.adm__table code{font-family:JetBrains Mono,monospace;color:var(--c-muted, #a6a19f)}.adm__table tr.is-revoked td{opacity:.45}.adm__status{font-family:JetBrains Mono,monospace;font-size:11px;padding:2px 8px;border-radius:999px;border:1px solid var(--c-line, #2a2a2a)}.adm__status.is-on{color:#6ddc8b;border-color:#6ddc8b66}.adm__status.is-wait{color:#ffbf00;border-color:#ffbf0066}.adm__status.is-off{color:var(--c-muted, #a6a19f)}.adm__actions{display:flex;gap:6px;justify-content:flex-end}@media (max-width: 640px){.adm__table th:nth-child(4),.adm__table td:nth-child(4),.adm__table th:nth-child(5),.adm__table td:nth-child(5){display:none}}:root{--c-cyan-200: #dbfcff;--c-cyan-300: #aef8ff;--c-cyan-400: #7df4ff;--c-cyan-500: #00f0ff;--c-cyan-600: #00dbe9;--c-cyan-700: #0098a8;--c-cyan-800: #006970;--c-cyan-900: #00363a;--c-amber-300: #ffdfa0;--c-amber-400: #ffcf4d;--c-amber-500: #ffbf00;--c-amber-600: #fbbc00;--c-amber-700: #6d5000;--c-amber-950: #261a00;--c-green-400: #6ee7b7;--c-green-500: #34d399;--c-red-300: #ffdad6;--c-red-400: #ffb4ab;--c-red-500: #ff6b6b;--c-red-900: #93000a;--c-yellow-500: #ffbf00;--c-n-0: #0a0a0a;--c-n-50: #0e0e0e;--c-n-100: #131313;--c-n-150: #1c1b1b;--c-n-200: #201f1f;--c-n-250: #2a2a2a;--c-n-300: #353534;--c-n-350: #3a3939;--c-n-400: #3b494b;--c-n-500: #5c6b6c;--c-n-600: #849495;--c-n-700: #b9cacb;--c-n-800: #e5e2e1;--c-n-900: #f6f4f3;--bg-base: var(--c-n-100);--bg-void: var(--c-n-50);--bg-panel: var(--c-n-150);--bg-panel-raised: var(--c-n-200);--bg-elevated: var(--c-n-200);--surface: var(--c-n-200);--surface-hover: var(--c-n-250);--surface-active: var(--c-n-300);--surface-sunken: var(--c-n-50);--border: var(--c-n-300);--border-subtle: var(--c-n-250);--border-hover: var(--c-n-400);--border-strong: var(--c-n-400);--text: var(--c-n-800);--text-secondary: var(--c-n-700);--text-muted: var(--c-n-600);--text-onAccent: var(--c-cyan-900);--text-onAmber: var(--c-amber-950);--accent: var(--c-cyan-500);--accent-hover: var(--c-cyan-400);--accent-active: var(--c-cyan-600);--accent-soft: color-mix(in srgb, var(--c-cyan-500) 12%, transparent);--accent-border: color-mix(in srgb, var(--c-cyan-500) 45%, var(--border));--accent-text: var(--c-cyan-500);--build: var(--c-amber-500);--build-hover: var(--c-amber-400);--build-active: var(--c-amber-600);--success: var(--c-green-500);--success-hover: var(--c-green-400);--success-bg: #0c2a22;--warn: var(--c-yellow-500);--warning: var(--c-yellow-500);--warning-bg: #2a2208;--danger: var(--c-red-500);--danger-hover: var(--c-red-400);--error: var(--c-red-500);--danger-soft: color-mix(in srgb, var(--c-red-500) 14%, transparent);--danger-border: color-mix(in srgb, var(--c-red-500) 55%, var(--border));--info: var(--c-cyan-400);--info-bg: #06242a;--text-onDanger: #ffffff;--text-onSuccess: var(--c-n-0);--control-knob: var(--c-n-900);--axis-x: #ef6d6d;--axis-y: #6ddc8b;--axis-z: #6da8ef;--selection-fill: var(--accent-soft);--selection-ring: color-mix(in srgb, var(--accent) 70%, transparent);--selection-3d: #00f0ff;--selection-3d-hover: #7df4ff;--extents-3d: #34d399;--ghost-3d: #ffbf00;--glass-panel-bg: rgba(255, 255, 255, .07);--glass-card-bg: rgba(255, 255, 255, .055);--glass-card-bg-hover: rgba(255, 255, 255, .1);--glass-chip-bg: rgba(255, 255, 255, .06);--glass-chip-bg-hover: rgba(255, 255, 255, .11);--glass-border: rgba(255, 255, 255, .09);--glass-border-hover: rgba(255, 255, 255, .14);--glass-blur: blur(14px) saturate(1.3);--glass-blur-sm: blur(7px) saturate(1.2);--glow-accent: 0 0 24px rgba(0, 240, 255, .25);--glow-accent-strong: 0 0 36px rgba(0, 240, 255, .5);--glow-accent-subtle: 0 0 16px rgba(0, 240, 255, .15);--glow-build: 0 0 24px rgba(255, 191, 0, .28);--glow-build-strong: 0 0 36px rgba(255, 191, 0, .5);--grid-line: rgba(0, 240, 255, .03);--energy-line: linear-gradient(90deg, transparent, rgba(0, 240, 255, .35), transparent);--font-sans: "Manrope", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-display: "Space Grotesk", var(--font-sans);--font-label: "Space Grotesk", var(--font-sans);--font-mono: "JetBrains Mono", ui-monospace, "SF Mono", "Cascadia Code", Menlo, Consolas, monospace;--fs-2xs: 10px;--fs-xs: 11px;--fs-sm: 12px;--fs-md: 13px;--fs-lg: 15px;--fs-xl: 18px;--fs-2xl: 24px;--fs-3xl: 28px;--fw-regular: 400;--fw-medium: 500;--fw-semibold: 600;--fw-bold: 700;--lh-tight: 1.2;--lh-snug: 1.35;--lh-normal: 1.5;--tracking-wide: .04em;--tracking-wider: .08em;--tracking-widest: .1em;--sp-1: 2px;--sp-2: 4px;--sp-3: 6px;--sp-4: 8px;--sp-5: 10px;--sp-6: 12px;--sp-7: 16px;--sp-8: 20px;--sp-9: 24px;--sp-10: 32px;--sp-12: 48px;--r-xs: 2px;--r-sm: 4px;--r-md: 8px;--r-lg: 12px;--r-full: 9999px;--radius: var(--r-sm);--radius-sm: var(--r-xs);--radius-md: var(--r-md);--radius-lg: var(--r-lg);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .5);--shadow-md: 0 4px 12px rgba(0, 0, 0, .55), 0 1px 2px rgba(0, 0, 0, .4);--shadow-lg: 0 12px 32px rgba(0, 0, 0, .65), 0 2px 6px rgba(0, 0, 0, .45);--shadow-pop: 0 8px 24px rgba(0, 0, 0, .6), 0 0 0 1px var(--border-subtle);--shadow-modal: 0 18px 50px rgba(0, 0, 0, .7);--hairline-top: inset 0 1px 0 rgba(255, 255, 255, .05);--scrim: rgba(10, 10, 10, .68);--focus-ring: 0 0 0 2px var(--bg-panel), 0 0 0 4px var(--accent);--focus-ring-inset: inset 0 0 0 1px var(--accent), 0 0 0 3px var(--accent-soft);--ease: cubic-bezier(.4, 0, .2, 1);--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in: cubic-bezier(.4, 0, 1, 1);--ease-standard: cubic-bezier(.2, 0, 0, 1);--dur-instant: 80ms;--dur-fast: .14s;--dur-base: .22s;--dur-slow: .36s;--rail-w: 64px;--dock-w: 280px;--insp-w: 320px;--appbar-h: 40px;--status-h: 26px;--z-canvas-ui: 10;--z-dropdown: 100;--z-popover: 200;--z-toast: 9000;--z-modal: 9500}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}*,*:before,*:after{box-sizing:border-box}html,body,#root{margin:0;height:100%;background:var(--bg-base);color:var(--text);font-family:var(--font-sans);font-size:var(--fs-md);line-height:var(--lh-normal);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}:focus{outline:none}:focus-visible{box-shadow:var(--focus-ring);border-radius:var(--r-sm)}*{scrollbar-width:thin;scrollbar-color:var(--c-cyan-800) transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:var(--c-cyan-800);border:3px solid transparent;background-clip:padding-box;border-radius:var(--r-full)}*::-webkit-scrollbar-thumb:hover{background:var(--c-cyan-700);background-clip:padding-box}::selection{background-color:var(--accent);color:var(--c-cyan-900)}:root{--bg: var(--bg-base);--bg-2: var(--bg-panel);--panel: var(--bg-panel);--panel-2: var(--surface);--muted: var(--text-secondary);--accent-2: var(--accent)}.ui-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-3);font-family:inherit;font-weight:var(--fw-medium);white-space:nowrap;border:1px solid transparent;border-radius:var(--r-sm);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease),transform var(--dur-instant) var(--ease)}.ui-btn:active:not(:disabled){transform:translateY(.5px) scale(.985)}.ui-btn:disabled{opacity:.45;cursor:not-allowed}.ui-btn--sm{height:26px;padding:0 var(--sp-5);font-size:var(--fs-sm)}.ui-btn--md{height:32px;padding:0 var(--sp-6);font-size:var(--fs-md)}.ui-btn--lg{height:40px;padding:0 var(--sp-8);font-size:var(--fs-lg)}.ui-btn--block{width:100%}.ui-btn__icon{display:inline-flex;width:1em;height:1em}.ui-btn__icon svg{width:100%;height:100%}.ui-btn--secondary{background:var(--surface);border-color:var(--border);color:var(--text)}.ui-btn--secondary:hover:not(:disabled){background:var(--surface-hover);border-color:var(--border-hover)}.ui-btn--primary{background:var(--accent);color:var(--text-onAccent)}.ui-btn--primary:hover:not(:disabled){background:var(--accent-hover)}.ui-btn--ghost{background:transparent;color:var(--text-secondary)}.ui-btn--ghost:hover:not(:disabled){background:var(--surface);color:var(--text)}.ui-btn--danger{background:transparent;border-color:var(--danger-border);color:var(--danger-hover)}.ui-btn--danger:hover:not(:disabled){background:var(--danger-soft);border-color:var(--danger)}.ui-btn--build{background:var(--build);color:var(--text-onAmber);font-weight:var(--fw-semibold)}.ui-btn--build:hover:not(:disabled){background:var(--build-hover)}.ui-iconbtn{display:inline-flex;align-items:center;justify-content:center;background:transparent;border:1px solid transparent;border-radius:var(--r-sm);color:var(--text-secondary);cursor:pointer;transition:background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease)}.ui-iconbtn--md{width:34px;height:34px}.ui-iconbtn--sm{width:26px;height:26px}.ui-iconbtn svg{width:18px;height:18px}.ui-iconbtn--sm svg{width:15px;height:15px}.ui-iconbtn:hover:not(:disabled){background:var(--surface-hover);color:var(--text)}.ui-iconbtn.is-active{background:var(--accent-soft);color:var(--accent-text);border-color:var(--accent-border)}.ui-iconbtn:disabled{opacity:.35;cursor:not-allowed}.ui-iconbtn--danger:hover:not(:disabled){background:var(--danger-soft);color:var(--danger-hover)}.ui-iconbtn--build.is-active{background:color-mix(in srgb,var(--build) 18%,transparent);color:var(--build-hover)}.ui-spinner{display:inline-flex;align-items:center;gap:var(--sp-4);color:currentColor}.ui-spinner svg{animation:ui-spin .7s linear infinite}.ui-spinner--sm svg{width:14px;height:14px}.ui-spinner--md svg{width:20px;height:20px}.ui-spinner--lg svg{width:32px;height:32px}.ui-spinner__label{font-size:var(--fs-sm);color:var(--text-secondary)}@keyframes ui-spin{to{transform:rotate(360deg)}}.ui-tooltip-wrap{position:relative;display:inline-flex}.ui-tooltip{position:absolute;z-index:var(--z-popover);display:flex;align-items:center;gap:var(--sp-4);padding:var(--sp-3) var(--sp-5);background:var(--bg-void);border:1px solid var(--border);border-radius:var(--r-sm);box-shadow:var(--shadow-md);color:var(--text);font-size:var(--fs-sm);white-space:nowrap;pointer-events:none;animation:ui-tooltip-in var(--dur-fast) var(--ease-out)}.ui-tooltip--bottom{top:calc(100% + 6px);left:50%;transform:translate(-50%)}.ui-tooltip--top{bottom:calc(100% + 6px);left:50%;transform:translate(-50%)}.ui-tooltip--right{left:calc(100% + 8px);top:50%;transform:translateY(-50%)}.ui-tooltip--left{right:calc(100% + 8px);top:50%;transform:translateY(-50%)}.ui-tooltip__keys{display:flex;gap:3px}@keyframes ui-tooltip-in{0%{opacity:0;transform:translate(-50%) translateY(2px)}}.ui-tooltip--right,.ui-tooltip--left{animation:none}.ui-kbd{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 4px;background:var(--surface);border:1px solid var(--border);border-bottom-width:2px;border-radius:var(--r-xs);font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--text-secondary)}.ui-segmented{display:inline-flex;background:var(--surface-sunken);border:1px solid var(--border-subtle);border-radius:var(--r-sm);padding:2px;gap:2px}.ui-segmented__item{display:inline-flex;align-items:center;gap:var(--sp-3);background:transparent;border:none;border-radius:var(--r-xs);color:var(--text-secondary);font-family:inherit;font-size:var(--fs-sm);font-weight:var(--fw-medium);cursor:pointer;transition:background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.ui-segmented--md .ui-segmented__item{height:28px;padding:0 var(--sp-5)}.ui-segmented--sm .ui-segmented__item{height:24px;padding:0 var(--sp-4)}.ui-segmented__item:hover{color:var(--text)}.ui-segmented__item.is-active{background:var(--surface-active);color:var(--text);box-shadow:var(--shadow-sm)}.ui-segmented__icon{display:inline-flex;width:16px;height:16px}.ui-segmented__icon svg{width:100%;height:100%}.ui-badge{display:inline-flex;align-items:center;gap:3px;height:16px;padding:0 var(--sp-3);border-radius:var(--r-xs);font-size:var(--fs-2xs);font-weight:var(--fw-semibold);letter-spacing:var(--tracking-wide);text-transform:uppercase;border:1px solid transparent}.ui-badge--neutral{background:var(--surface);color:var(--text-muted)}.ui-badge--ok{background:var(--success-bg);color:var(--success)}.ui-badge--info{background:var(--info-bg);color:var(--info)}.ui-badge--warn{background:var(--warning-bg);color:var(--warn)}.ui-badge--error{background:var(--danger-soft);color:var(--danger-hover)}.ui-badge--accent{background:var(--accent-soft);color:var(--accent-text)}.ui-panel{display:flex;flex-direction:column;min-height:0}.ui-panel__head{display:flex;align-items:center;justify-content:space-between;height:30px;padding:0 var(--sp-4) 0 var(--sp-5);flex:0 0 auto}.ui-panel__toggle{display:flex;align-items:center;gap:var(--sp-4);background:none;border:none;padding:0;cursor:pointer;color:var(--text-secondary);font:inherit}.ui-panel__toggle--static{cursor:default}.ui-panel__chevron{display:inline-block;font-size:9px;color:var(--text-muted);transition:transform var(--dur-fast) var(--ease)}.ui-panel__chevron.is-open{transform:rotate(90deg)}.ui-panel__title{font-size:var(--fs-xs);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:var(--tracking-wider);color:var(--text-secondary)}.ui-panel__count{font-size:var(--fs-2xs);color:var(--text-muted);background:var(--surface);padding:1px var(--sp-3);border-radius:var(--r-full)}.ui-panel__actions{display:flex;align-items:center;gap:var(--sp-2)}.ui-panel__body{flex:1 1 auto;min-height:0;overflow-y:auto;padding:0 var(--sp-5) var(--sp-5)}.ui-toaster{position:fixed;right:var(--sp-8);bottom:var(--sp-8);z-index:var(--z-toast);display:flex;flex-direction:column-reverse;gap:var(--sp-5);max-width:380px;pointer-events:none}.ui-toast{pointer-events:auto;display:flex;align-items:flex-start;gap:var(--sp-5);padding:var(--sp-6);background:var(--bg-elevated);border:1px solid var(--border);border-left-width:3px;border-radius:var(--r-md);box-shadow:var(--shadow-lg);animation:ui-toast-in var(--dur-base) var(--ease-out)}.ui-toast--success{border-left-color:var(--success)}.ui-toast--error{border-left-color:var(--danger)}.ui-toast--warning{border-left-color:var(--warn)}.ui-toast--info{border-left-color:var(--info)}.ui-toast__icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;flex:0 0 auto;margin-top:1px}.ui-toast__icon svg{width:18px;height:18px}.ui-toast--success .ui-toast__icon{color:var(--success)}.ui-toast--error .ui-toast__icon{color:var(--danger)}.ui-toast--warning .ui-toast__icon{color:var(--warn)}.ui-toast--info .ui-toast__icon{color:var(--info)}.ui-toast__glyph{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:var(--r-full);border:1.8px solid currentColor;font-size:var(--fs-xs);font-weight:var(--fw-bold)}.ui-toast__body{flex:1 1 auto;min-width:0}.ui-toast__title{font-size:var(--fs-md);font-weight:var(--fw-semibold);color:var(--text)}.ui-toast__desc{margin-top:2px;font-size:var(--fs-sm);color:var(--text-secondary);word-wrap:break-word}.ui-toast__action{margin-top:var(--sp-4);background:none;border:none;padding:0;color:var(--accent-text);font:inherit;font-size:var(--fs-sm);font-weight:var(--fw-semibold);cursor:pointer}.ui-toast__action:hover{text-decoration:underline}.ui-toast__close{flex:0 0 auto;width:22px;height:22px;background:none;border:none;border-radius:var(--r-xs);color:var(--text-muted);cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.ui-toast__close svg{width:14px;height:14px}.ui-toast__close:hover{background:var(--surface-hover);color:var(--text)}@keyframes ui-toast-in{0%{opacity:0;transform:translate(16px) scale(.98)}}.editor-shell{display:grid;height:100vh;grid-template-columns:var(--rail-w) var(--dock-w) 1fr var(--insp-w);grid-template-rows:var(--appbar-h) 1fr var(--status-h);grid-template-areas:"appbar appbar appbar appbar" "rail   dock   view   insp" "status status status status";background:var(--bg-base)}.app-bar{grid-area:appbar}.tool-rail{grid-area:rail}.left-dock{grid-area:dock;overflow:hidden}.viewport{grid-area:view;position:relative;min-width:0}.inspector{grid-area:insp;min-width:0;overflow:hidden;display:flex;flex-direction:column}.status-bar{grid-area:status}.editor-shell.is-dock-collapsed{grid-template-columns:var(--rail-w) 0 1fr var(--insp-w)}.editor-shell.is-insp-collapsed{grid-template-columns:var(--rail-w) var(--dock-w) 1fr 0}.editor-shell.is-dock-collapsed.is-insp-collapsed{grid-template-columns:var(--rail-w) 0 1fr 0}.editor-shell.is-dock-collapsed .left-dock,.editor-shell.is-insp-collapsed .inspector{display:none}.fold-handle{position:absolute;top:50%;transform:translateY(-50%);z-index:5;width:16px;height:46px;display:grid;place-items:center;padding:0;background:var(--bg-panel);border:1px solid var(--border);color:var(--text-3);cursor:pointer;opacity:.5;transition:opacity var(--t-fast),color var(--t-fast)}.fold-handle:hover{opacity:1;color:var(--text)}.fold-handle svg{width:13px;height:13px}.fold-handle--left{left:0;border-left:none;border-radius:0 var(--r-md) var(--r-md) 0}.fold-handle--right{right:0;border-right:none;border-radius:var(--r-md) 0 0 var(--r-md)}.fold-handle--left.is-collapsed svg,.fold-handle--right:not(.is-collapsed) svg{transform:rotate(180deg)}@media (max-width: 1180px){.editor-shell{grid-template-columns:var(--rail-w) var(--dock-w) 1fr 0}.inspector{position:absolute;right:0;top:var(--appbar-h);bottom:var(--status-h);width:var(--insp-w);z-index:var(--z-dropdown);box-shadow:var(--shadow-lg);background:var(--bg-panel)}}.app-bar{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-5);padding:0 var(--sp-6) 0 var(--sp-4);background:var(--bg-panel);border-bottom:1px solid var(--border-subtle)}.app-bar__left,.app-bar__right{display:flex;align-items:center;gap:var(--sp-5)}.app-bar__brand{display:inline-flex;align-items:center;gap:var(--sp-3);font-family:var(--font-display);font-weight:800;letter-spacing:.2px;color:var(--text)}.app-bar__logo{color:var(--accent);font-size:var(--fs-lg)}.app-bar__group{display:flex;align-items:center;gap:var(--sp-1)}.app-bar__divider{width:1px;height:18px;background:var(--border)}.project-name{display:inline-flex;align-items:center;gap:var(--sp-3)}.project-name__input{background:transparent;border:1px solid transparent;border-radius:var(--r-sm);color:var(--text);font-family:var(--font-mono);font-size:var(--fs-md);padding:4px var(--sp-4);width:180px;transition:background var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease)}.project-name__input:hover{background:var(--surface)}.project-name__input:focus{background:var(--surface-sunken);border-color:var(--accent-border)}.project-name__input[aria-invalid=true]{color:var(--danger-hover)}.project-name__warn{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:var(--r-full);background:var(--danger);color:var(--text-onDanger);font-size:var(--fs-2xs);font-weight:var(--fw-bold)}.save-status{display:inline-flex;align-items:center;gap:var(--sp-3);font-size:var(--fs-sm);color:var(--text-muted);padding:3px var(--sp-4);border-radius:var(--r-full)}.quota-badge{display:inline-flex;align-items:center;gap:var(--sp-4);padding:3px var(--sp-4);border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface-sunken);color:var(--text-secondary);font-family:var(--font-mono);font-size:var(--fs-xs);font-variant-numeric:tabular-nums;cursor:pointer;white-space:nowrap;transition:border-color .15s ease-out}.quota-badge:hover{border-color:var(--accent)}.quota-badge__plan{font-weight:600;letter-spacing:.08em;color:var(--accent)}.quota-badge--free .quota-badge__plan{color:var(--text-muted)}.quota-badge--studio .quota-badge__plan{color:var(--warn)}.quota-badge--guest .quota-badge__plan{color:var(--text-muted)}.quota-badge__item.is-full{color:var(--warn)}.quota-badge__unit{color:var(--text-muted)}.dash__quota-note{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-muted)}.save-status svg{width:14px;height:14px}.save-status--local{background:var(--surface);color:var(--text-secondary)}.save-status--saved{color:var(--success);animation:ui-pop var(--dur-base) var(--ease-out)}.save-status--saving{color:var(--text-secondary)}@keyframes ui-pop{0%{transform:scale(.9);opacity:.5}60%{transform:scale(1.05)}}.worldplace-trigger{display:inline-flex;align-items:center;gap:var(--sp-3);height:30px;padding:0 var(--sp-5);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text-secondary);font-family:var(--font-mono);font-size:var(--fs-sm);cursor:pointer}.worldplace-trigger svg{width:15px;height:15px}.worldplace-trigger:hover,.worldplace-trigger.is-open{background:var(--surface-hover);color:var(--text);border-color:var(--border-hover)}.worldplace-pop{width:280px;display:flex;flex-direction:column;gap:var(--sp-5)}.worldplace-pop__hint{margin:0;font-size:var(--fs-xs);color:var(--text-muted);line-height:var(--lh-snug)}.tool-rail{display:flex;flex-direction:column;align-items:center;gap:var(--sp-4);padding:var(--sp-5) 0;background:var(--bg-panel);border-right:1px solid var(--border-subtle)}.tool-rail__group{display:flex;flex-direction:column;gap:var(--sp-2)}.tool-rail__divider{width:32px;height:1px;background:var(--border);margin:var(--sp-2) 0}.rail-tab{display:flex;flex-direction:column;align-items:center;gap:3px;width:52px;padding:var(--sp-3) 0 var(--sp-2);background:transparent;border:1px solid transparent;border-radius:var(--r-md);color:var(--text-secondary);font:inherit;cursor:pointer;transition:background var(--t-fast),color var(--t-fast),border-color var(--t-fast)}.rail-tab__icon{display:grid;place-items:center}.rail-tab__icon svg{width:19px;height:19px}.rail-tab__caption{font-size:9px;font-weight:600;letter-spacing:.02em}.rail-tab:hover{background:var(--surface-hover);color:var(--text)}.rail-tab.is-active{background:var(--accent-bg);border-color:var(--accent-border);color:var(--accent-text)}.mode-tab{display:flex;flex-direction:column;align-items:center;gap:2px;width:56px;padding:var(--sp-3) 0;background:transparent;border:1px solid transparent;border-radius:var(--r-md);color:var(--text-secondary);font:inherit;cursor:pointer;transition:background var(--t-fast),color var(--t-fast),border-color var(--t-fast)}.mode-tab__icon{display:grid;place-items:center}.mode-tab__icon svg{width:22px;height:22px}.mode-tab__caption{font-size:11px;font-weight:650;letter-spacing:-.01em}.mode-tab:hover{background:var(--surface-hover);color:var(--text)}.mode-tab--build.is-active{background:color-mix(in srgb,var(--build) 14%,transparent);border-color:color-mix(in srgb,var(--build) 55%,var(--border));color:var(--build)}.mode-tab--decorate.is-active{background:color-mix(in srgb,var(--c-green-500) 15%,transparent);border-color:color-mix(in srgb,var(--c-green-500) 55%,var(--border));color:var(--c-green-500)}.left-dock{display:flex;flex-direction:column;background:var(--bg-panel);border-right:1px solid var(--border-subtle);min-height:0}.left-dock__section{display:flex;flex-direction:column;min-height:0}.left-dock__section--library{flex:1 1 55%}.left-dock__section--outliner{flex:1 1 45%}.left-dock__divider{height:1px;background:var(--border-subtle);flex:0 0 auto}.left-dock__section--full{flex:1 1 auto}.dock-tabs{display:flex;flex:0 0 auto;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4) 0;border-bottom:1px solid var(--border-subtle)}.dock-tab{display:inline-flex;align-items:center;gap:var(--sp-3);height:30px;padding:0 var(--sp-5);background:transparent;border:none;border-bottom:2px solid transparent;color:var(--text-secondary);font-family:var(--font-label);font-size:var(--fs-xs);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:var(--tracking-wide);cursor:pointer;transition:color var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease)}.dock-tab:hover{color:var(--text)}.dock-tab.is-active{color:var(--accent);border-bottom-color:var(--accent)}.dock-tab__count{font-family:var(--font-mono);font-size:var(--fs-2xs);font-weight:var(--fw-regular);color:var(--text-muted);background:var(--surface);padding:1px var(--sp-3);border-radius:var(--r-full);text-transform:none;letter-spacing:0;font-variant-numeric:tabular-nums}.dock-tab.is-active .dock-tab__count{color:var(--accent);background:var(--accent-soft)}.dock-tabs+.left-dock__section--full .ui-panel__head{display:none}.library__body{padding:0 var(--sp-5) var(--sp-5)}.library__search{position:relative;margin-bottom:var(--sp-4)}.library__search-icon{position:absolute;left:var(--sp-4);top:50%;transform:translateY(-50%);width:14px;height:14px;color:var(--text-muted);pointer-events:none}.library__search-input{width:100%;height:30px;padding:0 var(--sp-5) 0 28px;background:var(--surface-sunken);border:1px solid var(--border-subtle);border-radius:var(--r-sm);color:var(--text);font:inherit;font-size:var(--fs-sm)}.library__search-input:focus{border-color:var(--accent-border)}.chips{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-bottom:var(--sp-5)}.chip--more{display:inline-flex;align-items:center;gap:var(--sp-2)}.cat-menu{position:fixed;z-index:var(--z-dropdown);min-width:280px;overflow-y:auto;padding:var(--sp-2);background:color-mix(in srgb,var(--bg-elevated) 96%,transparent);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-lg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur)}.cat-menu__item{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-6);width:100%;height:30px;padding:0 var(--sp-5);background:transparent;border:none;border-radius:var(--r-sm);color:var(--text);font:inherit;font-size:var(--fs-md);text-align:left;cursor:pointer}.cat-menu__item:hover{background:var(--surface-hover)}.cat-menu__item.is-active{background:var(--accent-soft);color:var(--accent)}.cat-menu__count{font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--text-muted);font-variant-numeric:tabular-nums}.cat-menu__item.is-active .cat-menu__count{color:var(--accent)}.cat-menu__rule{height:1px;margin:var(--sp-2) var(--sp-3);background:var(--border-subtle)}.chip{height:22px;padding:0 var(--sp-5);background:var(--surface);border:1px solid transparent;border-radius:var(--r-full);color:var(--text-secondary);font-size:var(--fs-xs);font-weight:var(--fw-medium);cursor:pointer;transition:background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.chip:hover{background:var(--surface-hover);color:var(--text)}.chip.is-active{background:var(--accent-soft);color:var(--accent-text);border-color:var(--accent-border)}.library__groups{display:flex;flex-direction:column;gap:var(--sp-6)}.library__group-title{position:sticky;top:0;z-index:1;background:var(--bg-panel);padding:var(--sp-3) 0;font-size:var(--fs-2xs);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:var(--tracking-wider);color:var(--text-muted)}.library__error{display:flex;flex-direction:column;gap:var(--sp-3);padding:var(--sp-4)}.library__skeletons{display:flex;flex-direction:column;gap:var(--sp-3)}.prop-card{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);width:100%;padding:var(--sp-4) var(--sp-5);margin-bottom:var(--sp-2);background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--r-sm);cursor:pointer;text-align:left;transition:background var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease)}.prop-card:hover{background:var(--surface-hover);border-color:var(--accent-border)}.prop-card__thumb{flex:none;width:44px;height:44px;border-radius:var(--r-sm);background:var(--surface);object-fit:contain}.prop-card__thumb--empty{display:inline-block}.prop-card__main{display:flex;flex-direction:column;gap:1px;min-width:0}.prop-card__name{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.prop-card__arch{font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.prop-card__badges{display:flex;gap:var(--sp-2);flex:0 0 auto;align-items:center}.local-models{padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border-1)}.local-models__row{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.local-models__count{font-size:var(--fs-2xs);color:var(--text-2);white-space:nowrap;margin-left:auto}.local-models__clear{font-size:var(--fs-2xs);color:var(--text-3);background:none;border:none;cursor:pointer;padding:0}.local-models__clear:hover{color:var(--danger);text-decoration:underline}.local-models__hint{margin:var(--sp-2) 0 0;font-size:var(--fs-2xs);line-height:1.35;color:var(--text-3)}.prop-card__forge{display:none;align-items:center;color:var(--text-3);cursor:pointer}.prop-card__forge:hover{color:var(--accent)}.prop-card__forge svg{width:13px;height:13px}.prop-card:hover .prop-card__forge{display:inline-flex}.insp-forge{display:inline-flex;align-items:center;gap:4px;margin-left:auto;font-size:var(--fs-2xs);color:var(--text-3);text-decoration:none}.insp-forge:hover{color:var(--accent);text-decoration:underline}.insp-forge svg{width:12px;height:12px}.outliner__body{padding:0 var(--sp-4) var(--sp-4)}.tree{display:flex;flex-direction:column;gap:1px}.tree__add{display:flex;align-items:center;gap:var(--sp-3);width:100%;height:28px;padding:0 var(--sp-4);margin-bottom:var(--sp-3);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text-secondary);font:inherit;font-size:var(--fs-sm);font-weight:500;cursor:pointer;transition:background var(--t-fast),color var(--t-fast),border-color var(--t-fast)}.tree__add svg{width:14px;height:14px}.tree__add:hover:not(:disabled){background:var(--surface-hover);color:var(--text);border-color:var(--accent-border)}.tree__add:disabled{opacity:.4;cursor:not-allowed}.tree__group{margin-bottom:var(--sp-4)}.tree__group-head{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-3);color:var(--text-secondary)}.tree__group-icon{width:13px;height:13px;color:var(--text-muted)}.tree__group-name{font-size:var(--fs-xs);font-weight:var(--fw-semibold);flex:1}.tree__group-count{font-size:var(--fs-2xs);color:var(--text-muted)}.tree__row{display:flex;align-items:center;gap:var(--sp-3);height:28px;padding:0 var(--sp-3) 0 var(--sp-6);border-radius:var(--r-sm);cursor:pointer;transition:background var(--dur-fast) var(--ease)}.tree__row:hover{background:var(--surface)}.tree__row.is-selected{background:var(--selection-fill);box-shadow:inset 2px 0 0 var(--accent)}.tree__row.is-hidden{opacity:.45}.tree__row-name{flex:1;font-size:var(--fs-sm);color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tree__row-icon{width:12px;height:12px;flex:none;opacity:.55;margin-right:2px}.tree__row-meta{font-size:var(--fs-2xs);color:var(--text-muted)}.tree__row .ui-iconbtn{opacity:0}.tree__row:hover .ui-iconbtn,.tree__row.is-selected .ui-iconbtn{opacity:1}.tree__row--sub{padding-left:calc(var(--sp-6) + var(--sp-5));height:26px}.tree__row--sub .tree__row-name{color:var(--text-muted)}.tree__row--sub.is-selected .tree__row-name{color:var(--text)}.tree__light-dot{flex:none;width:8px;height:8px;border-radius:50%;box-shadow:0 0 6px currentColor}.insp-acc{border-top:1px solid var(--border)}.insp-acc>summary{cursor:pointer;padding:var(--sp-3) var(--sp-4);font-size:var(--fs-sm);font-weight:600;color:var(--text);-webkit-user-select:none;user-select:none;list-style:none;display:flex;align-items:center;gap:var(--sp-2)}.insp-acc>summary:before{content:"▸";font-size:10px;color:var(--text-muted);transition:transform var(--dur-fast) var(--ease)}.insp-acc[open]>summary:before{transform:rotate(90deg)}.insp-acc>summary::-webkit-details-marker{display:none}.tree__toolbar{display:flex;gap:var(--sp-2)}.tree__toolbar .tree__add{flex:1}.tree__twist{flex:none;width:16px;background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:10px;padding:0}.walk-crosshair{position:absolute;left:50%;top:50%;width:6px;height:6px;margin:-3px 0 0 -3px;border-radius:50%;background:#ffffffd9;box-shadow:0 0 4px #000000b3;pointer-events:none;z-index:30}.walk-hud{position:absolute;left:50%;bottom:22px;transform:translate(-50%);display:flex;align-items:center;gap:var(--sp-6);padding:var(--sp-5) var(--sp-7);background:#0a0a0ae0;border:1px solid var(--border-strong);border-radius:var(--r-full);box-shadow:var(--shadow-lg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:30;max-width:min(860px,calc(100% - 32px))}.walk-hud__room{font-size:var(--fs-md);color:var(--accent);font-weight:var(--fw-bold);white-space:nowrap}.walk-hud__keys{font-size:var(--fs-md);color:var(--c-n-800);line-height:var(--lh-snug)}.inspector{background:var(--bg-panel);border-left:1px solid var(--border-subtle)}.inspector__scroll{overflow-y:auto;padding:var(--sp-6);display:flex;flex-direction:column;gap:var(--sp-7);height:100%}.inspector__empty{align-items:center;justify-content:center}.insp-head{display:flex;align-items:center;gap:var(--sp-5)}.insp-head__thumb{display:flex;align-items:center;justify-content:center;width:40px;height:40px;flex:0 0 auto;border-radius:var(--r-md);background:var(--surface);border:1px solid var(--border);color:var(--accent-text);font-weight:var(--fw-bold);font-size:var(--fs-lg)}.insp-head__thumb svg{width:20px;height:20px}.opt-row{display:flex;align-items:center;min-height:34px;padding:var(--sp-2) 0}.opt-row .ui-toggle{width:100%;justify-content:space-between;flex-direction:row-reverse}.opt-row .ui-toggle__label{font-size:var(--fs-md);color:var(--text);text-transform:none;letter-spacing:0;font-family:var(--font-sans)}.opt-row__body{margin:0 0 var(--sp-5);padding:var(--sp-3) 0 var(--sp-2) var(--sp-6);border-left:2px solid var(--accent-border)}.color-row{display:flex;align-items:center;gap:var(--sp-5)}.color-row input[type=color]{width:44px;height:32px;padding:0;border:1px solid var(--border);border-radius:var(--r-sm);background:none;cursor:pointer;flex:0 0 auto}.color-row__text{display:flex;flex-direction:column;min-width:0;flex:1 1 auto}.color-row__label{font-size:var(--fs-md);color:var(--text)}.color-row__sub{font-size:var(--fs-xs);color:var(--text-muted)}.color-row__clear{flex:0 0 auto;height:24px;padding:0 var(--sp-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text-secondary);font-size:var(--fs-xs);cursor:pointer}.color-row__clear:hover{background:var(--surface-hover);color:var(--text)}.insp-head__thumb--multi{background:var(--accent-soft);color:var(--accent-text)}.insp-head__thumb--room{color:var(--accent-text)}.insp-head__thumb--portal{color:var(--c-amber-400)}.insp-head__text{min-width:0;flex:1}.insp-head__title{font-size:var(--fs-lg);font-weight:var(--fw-semibold);color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.insp-head__sub{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.insp-head__name-input{background:transparent;border:1px solid transparent;border-radius:var(--r-sm);color:var(--text);font-size:var(--fs-lg);font-weight:var(--fw-semibold);padding:2px var(--sp-3);width:100%}.insp-head__name-input:hover{background:var(--surface)}.insp-head__name-input:focus{background:var(--surface-sunken);border-color:var(--accent-border)}.insp-badges{display:flex;gap:var(--sp-3);flex-wrap:wrap}.insp-section{display:flex;flex-direction:column;gap:var(--sp-5)}.insp-section--stack{gap:var(--sp-3)}.insp-hint,.tree__hint,.worldplace-pop__hint{margin:0;font-size:var(--fs-xs);color:var(--text-muted);line-height:var(--lh-snug)}.tree__hint{padding:0 var(--sp-3) var(--sp-3)}.insp-notice{display:flex;flex-direction:column;gap:var(--sp-2);min-width:0;padding:var(--sp-3) var(--sp-4);border-left:2px solid var(--warn);border-radius:var(--r-sm);background:var(--warning-bg);font-size:var(--fs-xs);color:var(--text);line-height:var(--lh-snug)}.insp-notice__title{font-weight:600;color:var(--warn)}.insp-notice__list{margin:0;padding-left:var(--sp-5);display:flex;flex-direction:column;gap:var(--sp-2)}.insp-notice__action{display:inline-block;margin-left:var(--sp-2);padding:0 var(--sp-2);border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface-sunken);color:var(--accent);font:inherit;line-height:1.6;cursor:pointer;transition:border-color .15s ease-out}.insp-notice__action:hover{border-color:var(--accent)}.insp-actions{display:flex;gap:var(--sp-3)}.ui-field{display:flex;flex-direction:column;gap:var(--sp-3)}.ui-field__label{font-size:var(--fs-xs);color:var(--text-secondary);font-weight:var(--fw-medium)}.ui-select{height:30px;padding:0 var(--sp-4);background:var(--surface-sunken);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text);font:inherit;font-size:var(--fs-sm);cursor:pointer}.ui-select:focus{border-color:var(--accent-border)}.ui-numfield{display:flex;align-items:center;background:var(--surface-sunken);border:1px solid var(--border);border-radius:var(--r-sm);overflow:hidden;min-width:0}.ui-numfield:focus-within{border-color:var(--accent-border)}.ui-numfield__label{padding:0 var(--sp-3);font-size:var(--fs-xs);font-weight:var(--fw-semibold);color:var(--text-muted);align-self:stretch;display:flex;align-items:center;background:var(--surface)}.ui-numfield__label.is-scrub{cursor:ew-resize;-webkit-user-select:none;user-select:none}.ui-numfield__input{flex:1;min-width:0;width:100%;height:28px;padding:0 var(--sp-3);background:transparent;border:none;color:var(--text);font-family:var(--font-mono);font-size:var(--fs-sm)}.ui-numfield__suffix{padding:0 var(--sp-3);font-size:var(--fs-2xs);color:var(--text-muted)}.ui-vecfield{display:flex;flex-direction:column;gap:var(--sp-3)}.ui-vecfield__head{display:flex;align-items:center;justify-content:space-between}.ui-vecfield__label{font-size:var(--fs-xs);color:var(--text-secondary);font-weight:var(--fw-medium)}.ui-vecfield__reset{font-size:var(--fs-sm)}.ui-vecfield__row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:var(--sp-3)}.ui-vecfield__col{display:flex;flex-direction:column;gap:var(--sp-3)}.ui-vecfield__col .ui-numfield{width:100%}.ui-vecfield__axis--x .ui-numfield__label{color:var(--axis-x)}.ui-vecfield__axis--y .ui-numfield__label{color:var(--axis-y)}.ui-vecfield__axis--z .ui-numfield__label{color:var(--axis-z)}.ui-toggle{display:inline-flex;align-items:center;gap:var(--sp-4);cursor:pointer}.ui-toggle.is-disabled{opacity:.4;pointer-events:none}.ui-toggle__track{position:relative;width:34px;height:18px;border-radius:var(--r-full);background:var(--surface-active);border:none;cursor:pointer;transition:background var(--dur-fast) var(--ease)}.ui-toggle__track.is-on{background:var(--accent)}.ui-toggle__thumb{position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:var(--r-full);background:var(--control-knob);transition:transform var(--dur-fast) var(--ease)}.ui-toggle__track.is-on .ui-toggle__thumb{transform:translate(16px)}.ui-toggle__label{font-size:var(--fs-sm);color:var(--text)}.ui-popover-wrap{position:relative;display:inline-flex}.ui-popover{position:absolute;z-index:var(--z-popover);min-width:220px;padding:var(--sp-6);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-pop);animation:ui-pop-in var(--dur-fast) var(--ease-out)}.ui-popover--bottom{top:calc(100% + 6px)}.ui-popover--top{bottom:calc(100% + 6px)}.ui-popover--start{left:0}.ui-popover--end{right:0}.ui-popover--center{left:50%;transform:translate(-50%)}.ui-popover__title{font-size:var(--fs-xs);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:var(--tracking-wider);color:var(--text-muted);margin-bottom:var(--sp-5)}@keyframes ui-pop-in{0%{opacity:0;transform:translateY(-4px) scale(.98)}}.ui-popover--center{animation:none}.snap-pop{display:flex;flex-direction:column;gap:var(--sp-5);width:220px}.snap-pop__hint{margin:0;font-size:var(--fs-xs);color:var(--text-muted);line-height:var(--lh-snug)}.status-bar{display:flex;align-items:center;gap:var(--sp-7);padding:0 var(--sp-6);background:var(--bg-panel);border-top:1px solid var(--border-subtle);font-size:var(--fs-xs);color:var(--text-secondary)}.status-bar__section{display:flex;align-items:center;gap:var(--sp-4)}.status-bar__right{margin-left:auto}.status-bar__dot{width:7px;height:7px;border-radius:var(--r-full);background:var(--text-muted)}.status-bar__dot[data-on=true]{background:var(--accent)}.status-bar__coords{font-family:var(--font-mono);color:var(--text-muted)}.status-bar__coords span{min-width:64px}.status-bar__chip{padding:1px var(--sp-4);border-radius:var(--r-full);background:var(--surface);color:var(--text-muted)}.status-bar__chip.is-on{background:var(--accent-soft);color:var(--accent-text)}.status-bar__mode{text-transform:uppercase;letter-spacing:var(--tracking-wide);font-weight:var(--fw-semibold);color:var(--text-muted)}.ui-empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--sp-4);color:var(--text-secondary)}.ui-empty--md{padding:var(--sp-10) var(--sp-7)}.ui-empty--sm{padding:var(--sp-8) var(--sp-5)}.ui-empty__icon{display:inline-flex;width:36px;height:36px;color:var(--text-muted);opacity:.7}.ui-empty--sm .ui-empty__icon{width:26px;height:26px}.ui-empty__icon svg{width:100%;height:100%}.ui-empty__title{font-size:var(--fs-md);font-weight:var(--fw-semibold);color:var(--text)}.ui-empty--sm .ui-empty__title{font-size:var(--fs-sm)}.ui-empty__body{margin:0;font-size:var(--fs-sm);color:var(--text-muted);max-width:260px;line-height:var(--lh-snug)}.ui-skeleton{display:block;border-radius:var(--r-sm);background:linear-gradient(90deg,var(--surface) 25%,var(--surface-hover) 37%,var(--surface) 63%);background-size:400% 100%;animation:ui-shimmer 1.4s ease infinite}.ui-skeleton--text{height:12px;width:80%}.ui-skeleton--title{height:16px;width:50%}.ui-skeleton--block{height:44px;width:100%}@keyframes ui-shimmer{0%{background-position:100% 0}to{background-position:0 0}}.viewport-hint{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:var(--z-canvas-ui)}.viewport-actions{position:absolute;top:var(--sp-5);left:50%;transform:translate(-50%);display:flex;gap:var(--sp-2);padding:var(--sp-2);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-md);z-index:var(--z-canvas-ui)}.mode-tip{position:absolute;top:var(--sp-5);left:50%;transform:translate(-50%);display:flex;align-items:center;gap:var(--sp-4);max-width:min(560px,80%);padding:var(--sp-3) var(--sp-3) var(--sp-3) var(--sp-6);background:color-mix(in srgb,var(--bg-elevated) 94%,transparent);border:1px solid var(--accent-border);border-radius:var(--r-full);box-shadow:var(--shadow-md),var(--glow-accent-subtle);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:var(--z-canvas-ui)}.mode-tip__text{font-size:var(--fs-sm);color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mode-tip__close{flex:0 0 auto;width:20px;height:20px;display:grid;place-items:center;background:none;border:none;border-radius:var(--r-full);color:var(--text-muted);font-size:var(--fs-xs);cursor:pointer}.mode-tip__close:hover{background:var(--surface-hover);color:var(--text)}.vp-toolbar{position:absolute;bottom:var(--sp-6);left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:var(--sp-3);z-index:var(--z-canvas-ui)}.vp-tools{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);background:color-mix(in srgb,var(--bg-elevated) 92%,transparent);border:1px solid var(--border);border-radius:var(--r-full);box-shadow:var(--shadow-md);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.vp-tools:empty{display:none}.vp-tool{display:inline-flex;align-items:center;gap:var(--sp-3);height:28px;padding:0 var(--sp-5);background:transparent;border:1px solid transparent;border-radius:var(--r-full);color:var(--text-secondary);font:inherit;font-size:var(--fs-sm);font-weight:var(--fw-medium);cursor:pointer;white-space:nowrap;transition:background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease)}.vp-tool:hover:not(:disabled){background:var(--surface-hover);color:var(--text)}.vp-tool:disabled{opacity:.4;cursor:not-allowed}.vp-tool.is-active{background:var(--accent-soft);color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent-border)}.vp-tool__icon{display:inline-flex;width:15px;height:15px}.vp-tool__icon svg{width:100%;height:100%}.vp-tool__kbd{min-width:16px;padding:0 3px;border-radius:var(--r-xs);background:var(--surface);border:1px solid var(--border-subtle);font-family:var(--font-mono);font-size:var(--fs-2xs);line-height:15px;color:var(--text-muted);text-align:center}.vp-tool.is-active .vp-tool__kbd{color:var(--accent);border-color:var(--accent-border)}.vp-tools__sep{width:1px;height:16px;background:var(--border);margin:0 var(--sp-2)}.vp-tools__hint{font-size:var(--fs-xs);color:var(--text-muted);padding:0 var(--sp-4) 0 var(--sp-2);white-space:nowrap}.camera-bar{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);background:color-mix(in srgb,var(--bg-elevated) 92%,transparent);border:1px solid var(--border);border-radius:var(--r-full);box-shadow:var(--shadow-md);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.camera-bar__seg{display:flex;align-items:center;gap:1px;padding:2px;background:var(--surface);border-radius:var(--r-full)}.camera-bar__btn{height:26px;padding:0 var(--sp-5);background:transparent;border:none;border-radius:var(--r-full);color:var(--text-secondary);font:inherit;font-size:var(--fs-sm);cursor:pointer;transition:background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.camera-bar__btn:hover{background:var(--surface-hover);color:var(--text)}.camera-bar__sep{width:1px;height:16px;background:var(--border);margin:0 var(--sp-2)}.splash{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-8);height:100vh;background:var(--bg-base)}.splash__brand{display:inline-flex;align-items:center;gap:var(--sp-4);font-size:var(--fs-2xl);font-weight:var(--fw-bold);color:var(--text)}.splash__logo{color:var(--accent);animation:ui-pulse 1.6s var(--ease) infinite}@keyframes ui-pulse{50%{opacity:.45}}.ui-modal-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-modal);display:flex;align-items:center;justify-content:center;background:var(--scrim);animation:ui-fade-in var(--dur-fast) var(--ease)}.ui-modal{width:400px;max-width:calc(100vw - 32px);padding:var(--sp-8);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-modal);animation:ui-modal-in var(--dur-base) var(--ease-out)}.ui-modal__title{margin:0 0 var(--sp-4);font-size:var(--fs-lg);font-weight:var(--fw-semibold);color:var(--text)}.ui-modal__body{margin:0 0 var(--sp-8);font-size:var(--fs-md);color:var(--text-secondary);line-height:var(--lh-normal)}.ui-modal__actions{display:flex;justify-content:flex-end;gap:var(--sp-4)}@keyframes ui-fade-in{0%{opacity:0}}@keyframes ui-modal-in{0%{opacity:0;transform:translateY(8px) scale(.98)}}.templates{margin-bottom:var(--sp-11)}.templates__head{margin-bottom:var(--sp-6)}.templates__title{margin:0;font-size:var(--fs-xl);font-weight:var(--fw-bold);color:var(--text)}.templates__sub{margin:var(--sp-2) 0 0;font-size:var(--fs-sm);color:var(--text-muted)}.templates__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--sp-5)}.tpl-card{display:flex;flex-direction:column;text-align:left;background:var(--bg-panel);border:1px solid var(--border-subtle);border-radius:var(--r-md);overflow:hidden;cursor:pointer;transition:border-color var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease),transform var(--dur-fast) var(--ease)}.tpl-card:hover{border-color:var(--accent-border);box-shadow:0 0 24px color-mix(in srgb,var(--accent) 10%,transparent);transform:translateY(-2px)}.tpl-card__thumb{width:100%;aspect-ratio:16 / 10;object-fit:cover;background:var(--surface-sunken);border-bottom:1px solid var(--border-subtle)}.tpl-card--new{border-style:dashed;border-color:var(--border);background:transparent}.tpl-card--new:hover{border-style:solid}.tpl-card__thumb--new{display:grid;place-items:center;color:var(--accent);background:color-mix(in srgb,var(--accent) 4%,transparent)}.tpl-card__thumb--new svg{width:28px;height:28px}.tpl-card__body{display:flex;flex-direction:column;gap:2px;padding:var(--sp-4) var(--sp-5) var(--sp-5)}.tpl-card__name{font-size:var(--fs-md);font-weight:var(--fw-semibold);color:var(--text)}.tpl-card__tag{font-size:var(--fs-xs);color:var(--text-secondary);line-height:var(--lh-snug)}.tpl-card__stats{margin-top:var(--sp-3);font-size:var(--fs-2xs);letter-spacing:.05em;color:var(--text-muted);font-family:var(--font-mono)}.pricing-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-modal, 1000);background:#0009;display:grid;place-items:center;padding:var(--sp-6);overflow-y:auto}.pricing{position:relative;background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--r-lg, 12px);padding:clamp(1.2rem,3vw,2.2rem);max-width:940px;width:100%;box-shadow:var(--shadow-pop)}.pricing__close{position:absolute;top:var(--sp-4);right:var(--sp-4);width:30px;height:30px;display:grid;place-items:center;background:none;border:none;color:var(--text-3);cursor:pointer}.pricing__close:hover{color:var(--text)}.pricing__close svg{width:18px;height:18px}.pricing__head{text-align:center;margin-bottom:var(--sp-6);max-width:60ch;margin-inline:auto}.pricing__title{font-size:1.5rem;margin:0 0 var(--sp-3);letter-spacing:-.01em}.pricing__sub{margin:0;color:var(--text-2);font-size:var(--fs-sm);line-height:1.5}.pricing__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-4)}@media (max-width: 720px){.pricing__grid{grid-template-columns:1fr}}.plan{position:relative;border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-5);display:flex;flex-direction:column;background:var(--bg-base)}.plan--highlight{border-color:var(--accent-border);box-shadow:0 0 0 1px var(--accent-border)}.plan__badge{position:absolute;top:-10px;left:50%;transform:translate(-50%);background:var(--accent);color:var(--text-onAccent);font-size:var(--fs-2xs);font-weight:600;padding:2px 10px;border-radius:999px}.plan__name{font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.08em;color:var(--text-2)}.plan__price{font-size:2rem;font-weight:700;margin:var(--sp-2) 0;letter-spacing:-.02em}.plan__period{font-size:1rem;font-weight:400;color:var(--text-3)}.plan__tagline{margin:0 0 var(--sp-4);color:var(--text-2);font-size:var(--fs-sm);min-height:2.6em}.plan__features{list-style:none;margin:0 0 var(--sp-5);padding:0;display:flex;flex-direction:column;gap:var(--sp-3);flex:1}.plan__features li{display:flex;align-items:flex-start;gap:var(--sp-2);font-size:var(--fs-sm);color:var(--text)}.plan__features svg{width:15px;height:15px;color:var(--success);flex:0 0 auto;margin-top:2px}.plan__cta{padding:9px;border-radius:var(--r-sm);border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;font-weight:600;cursor:pointer}.plan__cta:hover{background:var(--surface-hover)}.plan__cta--primary{background:var(--accent);border-color:var(--accent);color:var(--text-onAccent)}.plan__cta--primary:hover{background:var(--accent-hover)}.pricing__foot{text-align:center;margin:var(--sp-5) 0 0;color:var(--text-3);font-size:var(--fs-2xs)}.login__disclaimer{margin:0;font-size:var(--fs-2xs);color:var(--text-muted);line-height:var(--lh-snug)}.dash{height:100vh;display:flex;flex-direction:column;background:var(--bg-base)}.dash__bar{display:flex;align-items:center;justify-content:space-between;height:52px;padding:0 var(--sp-8);background:var(--bg-panel);border-bottom:1px solid var(--border-subtle)}.dash__user{display:flex;align-items:center;gap:var(--sp-5)}.dash__username{font-size:var(--fs-sm);color:var(--text-secondary)}.dash__body{flex:1;overflow-y:auto;padding:var(--sp-10) var(--sp-12);max-width:1140px;width:100%;margin:0 auto}.dash__head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-7);margin-bottom:var(--sp-9);flex-wrap:wrap}.dash__title{margin:0;font-size:var(--fs-2xl);font-weight:var(--fw-bold);color:var(--text)}.project-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--sp-6)}.project-card{position:relative;background:var(--bg-panel);border:1px solid var(--border-subtle);border-radius:var(--r-md);overflow:hidden;transition:border-color var(--dur-fast) var(--ease),transform var(--dur-fast) var(--ease)}.project-card:hover{border-color:var(--accent-border);transform:translateY(-1px)}.project-card--skeleton{padding:var(--sp-7) var(--sp-6);display:flex;flex-direction:column;gap:var(--sp-4)}.project-card__open{width:100%;text-align:left;background:transparent;border:none;padding:var(--sp-7) var(--sp-6);cursor:pointer;display:flex;flex-direction:column;gap:var(--sp-3);color:var(--text)}.project-card__name{font-size:var(--fs-lg);font-weight:var(--fw-semibold);font-family:var(--font-mono)}.project-card__meta{font-size:var(--fs-xs);color:var(--text-muted)}.project-card .ui-iconbtn{position:absolute;top:var(--sp-4);right:var(--sp-4);opacity:0}.project-card:hover .ui-iconbtn{opacity:1}.cheatsheet{width:640px;max-width:calc(100vw - 32px);max-height:calc(100vh - 80px);display:flex;flex-direction:column;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-modal);animation:ui-modal-in var(--dur-base) var(--ease-out)}.cheatsheet__head{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-6) var(--sp-7);border-bottom:1px solid var(--border-subtle)}.cheatsheet__title{margin:0;font-size:var(--fs-lg);font-weight:var(--fw-semibold)}.cheatsheet__cols{flex:1;overflow-y:auto;padding:var(--sp-7);display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-7) var(--sp-9)}.cheatsheet__group-title{margin:0 0 var(--sp-4);font-size:var(--fs-2xs);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:var(--tracking-wider);color:var(--accent-text)}.cheatsheet__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--sp-3)}.cheatsheet__row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-5)}.cheatsheet__label{font-size:var(--fs-sm);color:var(--text-secondary)}.cheatsheet__keys{display:flex;gap:3px;flex:0 0 auto}.cheatsheet__foot{padding:var(--sp-5) var(--sp-7);border-top:1px solid var(--border-subtle);font-size:var(--fs-xs);color:var(--text-muted)}@media (max-width: 640px){.cheatsheet__cols{grid-template-columns:1fr}}.extents-label{padding:2px var(--sp-4);background:var(--bg-void);border:1px solid var(--extents-3d);border-radius:var(--r-sm);color:var(--extents-3d);font-family:var(--font-mono);font-size:var(--fs-xs);white-space:nowrap}.extents-label--anchor{border-color:var(--warn);color:var(--warn);text-align:center;line-height:1.35;box-shadow:0 0 14px #ffbf002e}.vanilla-pop{width:320px;display:flex;flex-direction:column;gap:var(--sp-4)}.vanilla-pop__list{list-style:none;margin:0;padding:0;max-height:320px;overflow-y:auto;display:flex;flex-direction:column;gap:2px}.vanilla-pop__item{width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:1px;padding:var(--sp-2) var(--sp-4);background:transparent;border:1px solid transparent;border-radius:var(--r-sm);cursor:pointer;text-align:left}.vanilla-pop__item:hover{border-color:var(--accent);background:var(--accent-soft)}.vanilla-pop__name{color:var(--text);font-family:var(--font-mono);font-size:var(--fs-sm)}.vanilla-pop__meta{color:var(--text-muted);font-size:var(--fs-xs)}.transform-hud{position:absolute;bottom:56px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:var(--sp-5);padding:var(--sp-3) var(--sp-6);background:var(--bg-void);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-md);font-family:var(--font-mono);font-size:var(--fs-sm);z-index:var(--z-canvas-ui);pointer-events:none}.transform-hud__mode{font-family:var(--font-sans);font-size:var(--fs-xs);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--text-muted)}.transform-hud__axis--x{color:var(--axis-x)}.transform-hud__axis--y{color:var(--axis-y)}.transform-hud__axis--z{color:var(--axis-z)}.axis-legend{position:absolute;bottom:var(--sp-6);left:var(--sp-6);display:flex;gap:var(--sp-4);padding:var(--sp-2) var(--sp-5);background:color-mix(in srgb,var(--bg-elevated) 85%,transparent);border:1px solid var(--border-subtle);border-radius:var(--r-full);font-family:var(--font-mono);font-size:var(--fs-xs);font-weight:var(--fw-semibold);z-index:var(--z-canvas-ui);pointer-events:none}.axis-legend__x{color:var(--axis-x)}.axis-legend__y{color:var(--axis-y)}.axis-legend__z{color:var(--axis-z)}.appear-row{display:flex;align-items:center;gap:var(--sp-5)}.appear-color{width:36px;height:28px;padding:0;border:1px solid var(--border);border-radius:var(--r-sm);background:none;cursor:pointer}.appear-color::-webkit-color-swatch-wrapper{padding:2px}.appear-color::-webkit-color-swatch{border:none;border-radius:3px}.appear-swatches{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.appear-swatch{width:18px;height:18px;border-radius:var(--r-xs);border:1px solid rgba(255,255,255,.15);cursor:pointer;padding:0;transition:transform var(--dur-fast) var(--ease)}.appear-swatch:hover{outline:2px solid var(--selection-3d);transform:scale(1.12)}.ui-textbtn{align-self:flex-start;background:none;border:none;padding:0;color:var(--accent-text);font:inherit;font-size:var(--fs-sm);cursor:pointer}.ui-textbtn:hover{text-decoration:underline}.appear-advanced{border-top:1px solid var(--border-subtle);padding-top:var(--sp-4)}.appear-advanced>summary{cursor:pointer;font-size:var(--fs-xs);font-weight:var(--fw-medium);color:var(--text-secondary);list-style:none;-webkit-user-select:none;user-select:none}.appear-advanced>summary:before{content:"▸";display:inline-block;margin-right:var(--sp-3);font-size:9px;color:var(--text-muted);transition:transform var(--dur-fast) var(--ease)}.appear-advanced[open]>summary:before{transform:rotate(90deg)}.appear-advanced>.ui-field{margin-top:var(--sp-5)}.appear-num{font-family:var(--font-mono);color:var(--text-muted);float:right}.appear-range{width:100%;accent-color:var(--accent);cursor:pointer}.worldplace-nudge{display:flex;align-items:center;gap:var(--sp-3)}.nudge-btn{height:26px;min-width:30px;padding:0 var(--sp-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text);font:inherit;font-size:var(--fs-sm);cursor:pointer;transition:background var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease)}.nudge-btn:hover{background:var(--surface-hover);border-color:var(--accent-border)}.worldplace-nudge__val{flex:1;text-align:center;font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--text-secondary)}.filemenu-trigger{height:30px;padding:0 var(--sp-5);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text-secondary);font:inherit;font-size:var(--fs-sm);cursor:pointer}.filemenu-trigger:hover,.filemenu-trigger.is-open{background:var(--surface-hover);color:var(--text);border-color:var(--border-hover)}.filemenu{display:flex;flex-direction:column;min-width:200px}.insp-nav{display:flex;flex-wrap:wrap;gap:var(--sp-3)}.insp-nav__chip{display:inline-flex;align-items:center;gap:var(--sp-2);padding:3px var(--sp-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-full);color:var(--text-secondary);font:inherit;font-size:var(--fs-xs);cursor:pointer;transition:border-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.insp-nav__chip:hover{border-color:var(--accent-border);color:var(--accent-text)}.insp-nav__chip--limbo{cursor:default;opacity:.65}.export-split{display:inline-flex;align-items:stretch}.export-split>button:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.export-split__more{display:grid;place-items:center;width:22px;padding:0;background:var(--build);border:none;border-left:1px solid color-mix(in srgb,var(--text-onAmber) 25%,transparent);border-radius:0 var(--r-sm) var(--r-sm) 0;color:var(--text-onAmber);cursor:pointer;transition:background var(--dur-fast) var(--ease)}.export-split__more:hover,.export-split__more.is-open{background:var(--build-hover)}.export-split__more:disabled{opacity:.6;cursor:default}.export-split__opt{display:flex;flex-direction:column;align-items:flex-start;gap:1px}.export-split__hint{font-size:var(--fs-2xs);color:var(--text-muted)}.filemenu__item{display:flex;align-items:center;gap:var(--sp-3);padding:7px var(--sp-4);background:none;border:none;border-radius:var(--r-sm);color:var(--text);font:inherit;font-size:var(--fs-sm);text-align:left;cursor:pointer}.filemenu__item:hover{background:var(--surface-hover)}.filemenu__item svg{width:15px;height:15px;color:var(--text-3)}.struct-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-2);margin-top:var(--sp-2)}.access-editor{position:absolute;left:50%;bottom:120px;transform:translate(-50%);z-index:20;display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);background:color-mix(in srgb,var(--bg-elevated) 94%,transparent);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.access-editor__status{display:flex;align-items:center;gap:var(--sp-3);font-size:var(--fs-sm);color:var(--text-secondary)}.access-editor__status strong{color:var(--text)}.access-ok{color:var(--accent)}.access-todo{color:var(--text-muted)}.access-editor__row{display:flex;gap:var(--sp-2)}.access-btn{flex:1;height:30px;padding:0 var(--sp-4);background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--r-md);color:var(--text);font:inherit;font-size:var(--fs-sm);cursor:pointer;white-space:nowrap;transition:background var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease)}.access-btn:hover{background:var(--bg-elevated);border-color:var(--accent-border)}.access-btn--primary{background:var(--accent);color:var(--text-onAccent);border-color:transparent}.access-btn--ghost{background:transparent;color:var(--text-muted)}.access-btn--danger{background:transparent;color:var(--error, #ff6b6b);border-color:color-mix(in srgb,var(--error, #ff6b6b) 40%,transparent)}.access-btn--danger:hover{background:color-mix(in srgb,var(--error, #ff6b6b) 15%,transparent);border-color:var(--error, #ff6b6b)}.access-editor__row--params{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:var(--sp-3);align-items:end}.access-editor__color input[type=color]{width:32px;height:28px;padding:0;border:1px solid var(--border);border-radius:var(--r-sm);background:none;cursor:pointer}.legal{max-width:760px}.legal__tabs{display:flex;gap:var(--sp-3)}.legal__tab{padding:6px var(--sp-5);border:1px solid var(--border);border-radius:var(--r-sm);background:transparent;color:var(--text-secondary);font-family:var(--font-display);font-size:var(--fs-sm);letter-spacing:.06em;text-transform:uppercase;cursor:pointer}.legal__tab.is-active{border-color:var(--accent);color:var(--accent)}.legal__body{max-height:60vh;overflow:auto;padding-right:var(--sp-4);font-size:var(--fs-md);line-height:1.55;color:var(--text-secondary)}.legal__body h3{margin:var(--sp-6) 0 var(--sp-2);font-size:var(--fs-md);color:var(--text)}.legal__body p,.legal__body li{margin:0 0 var(--sp-3)}.legal__body code{font-family:var(--font-mono);font-size:var(--fs-sm)}.legal__meta{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-muted)}.dash__body>.templates{margin-top:var(--sp-10, 48px);padding-top:var(--sp-8);border-top:1px solid var(--border-subtle)}*{box-sizing:border-box}.app{display:flex;flex-direction:column;height:100vh}.toolbar{display:flex;align-items:center;gap:16px;padding:8px 12px;background:var(--panel);border-bottom:1px solid var(--border)}.toolbar-group{display:flex;align-items:center;gap:6px}.toolbar-right{margin-left:auto}.brand{font-weight:700;letter-spacing:.3px;color:var(--accent)}.name-input{background:var(--panel-2);border:1px solid var(--border);color:var(--text);border-radius:var(--r-sm);padding:5px 8px;width:180px}.btn{background:var(--panel-2);border:1px solid var(--border);color:var(--text);border-radius:var(--r-sm);padding:6px 12px;cursor:pointer}.btn:hover:not(:disabled){border-color:var(--accent-2)}.btn.active{background:var(--accent-2);border-color:var(--accent-2)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn.export{background:var(--accent);border-color:var(--accent);color:var(--text-onAmber);font-weight:600}.status{color:var(--muted);max-width:360px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.anchor-bar{display:flex;align-items:center;gap:10px;padding:6px 12px;background:var(--panel-2);border-bottom:1px solid var(--border)}.anchor-label{font-size:var(--fs-sm);text-transform:uppercase;letter-spacing:.5px;color:var(--accent);font-weight:600}.anchor-field{display:flex;align-items:center;gap:4px;font-size:var(--fs-sm);color:var(--muted)}.anchor-field input{width:90px;background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:var(--r-sm);padding:4px 6px}.anchor-hint{margin-left:auto;font-size:var(--fs-sm);color:var(--muted)}.mode-group{padding-right:8px;border-right:1px solid var(--border)}.btn.full{width:100%;margin-bottom:8px}.btn.tiny{padding:3px 8px;font-size:var(--fs-sm)}.entity-list{list-style:none;margin:8px 0;padding:0;display:flex;flex-direction:column;gap:4px}.entity-row{display:flex;align-items:center;gap:4px;background:var(--panel-2);border:1px solid var(--border);border-radius:var(--r-sm)}.entity-row.active{border-color:var(--accent-2)}.entity-pick{flex:1;text-align:left;background:transparent;border:none;color:var(--text);padding:7px 9px;cursor:pointer}.assign-box{margin:10px 0;padding:8px;background:var(--panel-2);border:1px solid var(--border);border-radius:var(--r-sm)}.assign-buttons{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.room-edit{margin-top:12px;border-top:1px solid var(--border);padding-top:12px}.name-input.full{width:100%}.muted.small{font-size:var(--fs-sm)}.snap-group{gap:8px;padding-left:8px;border-left:1px solid var(--border)}.snap-toggle{display:flex;align-items:center;gap:4px;color:var(--muted);cursor:pointer;-webkit-user-select:none;user-select:none}.snap-num{width:56px;background:var(--panel-2);border:1px solid var(--border);color:var(--text);border-radius:var(--r-sm);padding:5px 6px}.snap-num:disabled{opacity:.4}.workspace{flex:1;display:grid;grid-template-columns:220px 1fr 280px;min-height:0}.viewport{position:relative;min-width:0}.palette,.inspector{background:var(--panel);border-right:1px solid var(--border);padding:12px;overflow-y:auto}.inspector{border-right:none;border-left:1px solid var(--border)}.panel-title{font-size:var(--fs-sm);text-transform:uppercase;letter-spacing:.6px;color:var(--muted);margin:0 0 12px}.muted{color:var(--muted)}.search-input,.category-select{width:100%;background:var(--panel-2);border:1px solid var(--border);color:var(--text);border-radius:var(--r-sm);padding:6px 8px;margin-bottom:8px}.prop-groups{display:flex;flex-direction:column;gap:12px}.prop-group-title{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin-bottom:6px;position:sticky;top:0;background:var(--panel);padding:2px 0}.prop-arch{font-size:var(--fs-xs);color:var(--muted);font-family:var(--font-mono)}.prop-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.prop-btn{width:100%;text-align:left;background:var(--panel-2);border:1px solid var(--border);border-radius:var(--r-sm);padding:8px 10px;color:var(--text);cursor:pointer;display:flex;flex-direction:column;gap:2px}.prop-btn:hover{border-color:var(--accent-2)}.prop-name{font-weight:600}.prop-cat{font-size:var(--fs-sm);color:var(--muted)}.field{margin-bottom:14px}.field label{display:block;font-size:var(--fs-sm);color:var(--muted);margin-bottom:4px}.readonly{background:var(--panel-2);border:1px solid var(--border);border-radius:var(--r-sm);padding:6px 8px}.readonly.small{font-size:var(--fs-sm);font-family:var(--font-mono)}.vec-row{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.vec-row input{background:var(--panel-2);border:1px solid var(--border);color:var(--text);border-radius:var(--r-sm);padding:6px;width:100%}.scene-stats{margin-top:24px;display:flex;flex-direction:column;gap:6px;color:var(--muted)}.save-state{color:var(--muted);font-size:var(--fs-sm);margin-left:6px}.splash{display:flex;align-items:center;justify-content:center;height:100vh;color:var(--muted)}.dashboard{height:100vh;display:flex;flex-direction:column}.dashboard-header{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;background:var(--panel);border-bottom:1px solid var(--border)}.dashboard-user{display:flex;align-items:center;gap:10px;color:var(--muted)}.dashboard-body{padding:28px 32px;overflow-y:auto}.dashboard-body h1{margin-top:0}.create-row{display:flex;gap:8px;margin-bottom:16px}.create-row .name-input{width:280px}.error{color:var(--danger)}.project-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}.project-card{position:relative;background:var(--panel);border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden}.project-open{width:100%;text-align:left;background:transparent;border:none;color:var(--text);padding:16px;cursor:pointer;display:flex;flex-direction:column;gap:6px}.project-open:hover{background:var(--panel-2)}.project-name{font-weight:600;font-size:var(--fs-lg)}.project-meta{font-size:var(--fs-sm);color:var(--muted)}.project-delete{position:absolute;top:8px;right:8px;padding:2px 8px;opacity:.6}.project-delete:hover{opacity:1;border-color:var(--danger)}.room-extrude-handle{width:26px;height:26px;border-radius:50%;border:1px solid var(--accent);background:color-mix(in srgb,var(--bg-base) 75%,transparent);color:var(--accent);font-size:var(--fs-xl);font-weight:700;line-height:1;cursor:pointer;display:grid;place-items:center;transition:transform .1s ease,background .1s ease}.room-extrude-handle:hover{transform:scale(1.2);background:var(--accent);color:var(--bg-base)}.ui-select{width:100%;margin:4px 0 8px;padding:6px 8px;border-radius:var(--r-sm);border:1px solid var(--border);background:var(--surface-sunken);color:inherit;font-size:var(--fs-sm)}.room-colors{display:flex;flex-wrap:wrap;gap:10px;margin:6px 0 4px;min-width:0}.room-colors__item{display:flex;flex-direction:column;align-items:center;gap:4px;font-size:var(--fs-xs);color:var(--text-secondary);cursor:pointer}.room-colors__item input[type=color]{width:40px;height:28px;padding:0;border:1px solid var(--border);border-radius:var(--r-sm);background:none;cursor:pointer}.room-tex-chip{width:40px;height:28px;display:grid;place-items:center;border:1px dashed var(--border);border-radius:var(--r-sm);font-size:var(--fs-md);color:var(--text-secondary)}.room-tex-chip.is-filled{border-style:solid;border-color:var(--accent)}.room-tex-list{display:flex;flex-direction:column;gap:var(--sp-2);margin:6px 0 4px;min-width:0}.room-tex-row{display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:var(--sp-4);min-width:0;padding:var(--sp-2) var(--sp-3);border-radius:var(--r-sm);font-size:var(--fs-sm);color:var(--text-secondary);cursor:pointer;transition:background-color .15s ease-out}.room-tex-row:hover{background:var(--bg-panel-raised)}.room-tex-row:hover .room-tex-chip{border-color:var(--text-secondary)}.room-tex-row:hover .room-tex-chip.is-filled{border-color:var(--accent)}.room-tex-row__label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.room-tex-row__clear{width:20px;height:20px;display:grid;place-items:center;line-height:1;font-size:var(--fs-sm);border-radius:var(--r-sm);border:1px solid var(--border);background:var(--surface-sunken);color:var(--text-secondary);cursor:pointer;transition:border-color .15s ease-out,color .15s ease-out}.room-tex-row__clear:hover{border-color:var(--error);color:var(--error)}.room-tex-item{display:flex;flex-direction:column;min-width:0}.room-tex-opts{display:flex;flex-direction:column;gap:var(--sp-3);min-width:0;margin:var(--sp-2) 0 var(--sp-3);padding:var(--sp-3) 0 var(--sp-2) var(--sp-6);border-left:2px solid var(--accent-border)}.room-tex-opts__row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);flex-wrap:wrap;min-width:0}.room-tex-opts__row>.ui-field__label{margin:0}.room-tex-opts__row--toggles{justify-content:flex-start;gap:var(--sp-6)}@layer base{*,*:before,*:after{corner-shape:squircle}}.glass-panel{background:var(--glass-panel-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border)}.glass-card{background:var(--glass-card-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);transition:background var(--dur-slow) var(--ease),border-color var(--dur-slow) var(--ease)}.glass-card:hover{background:var(--glass-card-bg-hover);border-color:var(--glass-border-hover)}.glass-chip{background:var(--glass-chip-bg);backdrop-filter:var(--glass-blur-sm);-webkit-backdrop-filter:var(--glass-blur-sm);border:1px solid var(--glass-border);transition:background var(--dur-base) var(--ease),border-color var(--dur-base) var(--ease)}.glass-chip:hover{background:var(--glass-chip-bg-hover);border-color:var(--glass-border-hover)}.orb-grid{background-image:linear-gradient(var(--grid-line) 1px,transparent 1px),linear-gradient(90deg,var(--grid-line) 1px,transparent 1px);background-size:50px 50px}.orb-glow{background:radial-gradient(circle,#00f0ff26,#13131300 70%)}.energy-line{height:1px;width:100%;background:var(--energy-line);opacity:.35}.orb-label{font-family:var(--font-mono);font-size:var(--fs-xs);font-weight:var(--fw-medium);text-transform:uppercase;letter-spacing:var(--tracking-wider);color:var(--text-muted);font-variant-numeric:tabular-nums}@keyframes orb-pulse{0%,to{transform:scale(.92);box-shadow:0 0 24px 4px #00f0ff73,inset 0 0 16px #ffffff73}50%{transform:scale(1.05);box-shadow:0 0 42px 10px #00f0ffb3,inset 0 0 22px #fff9}}@keyframes orb-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes orb-orbit{0%{transform:rotate(0) translate(var(--orb-radius, 54px)) rotate(0)}to{transform:rotate(360deg) translate(var(--orb-radius, 54px)) rotate(-360deg)}}.orb-loader{position:relative;width:var(--orb-size, 128px);height:var(--orb-size, 128px);margin:0 auto}.orb-loader__core{position:absolute;top:30%;right:30%;bottom:30%;left:30%;border-radius:50%;corner-shape:round;background:radial-gradient(circle at 35% 30%,var(--c-cyan-300),var(--c-cyan-500) 48%,var(--c-cyan-700) 82%);animation:orb-pulse 1.6s ease-in-out infinite}.orb-loader__ring{position:absolute;border-radius:50%;corner-shape:round;border:2px solid transparent}.orb-loader__ring--1{top:3%;right:3%;bottom:3%;left:3%;border-top-color:var(--accent);border-right-color:var(--accent);animation:orb-spin 1.6s linear infinite}.orb-loader__ring--2{top:16%;right:16%;bottom:16%;left:16%;border-bottom-color:var(--build);border-left-color:var(--build);animation:orb-spin 2.3s linear infinite reverse}.ui-btn--primary,.ui-btn--build{font-family:var(--font-label);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:var(--tracking-widest)}.ui-btn--primary{box-shadow:var(--glow-accent)}.ui-btn--primary:hover:not(:disabled){box-shadow:var(--glow-accent-strong)}.ui-btn--primary:disabled{box-shadow:none}.ui-btn--build{box-shadow:var(--glow-build)}.ui-btn--build:hover:not(:disabled){box-shadow:var(--glow-build-strong)}.ui-btn--build:disabled{box-shadow:none}.ui-btn--orbghost{background:color-mix(in srgb,var(--accent) 8%,transparent);border-color:color-mix(in srgb,var(--accent) 30%,transparent);color:var(--accent);font-family:var(--font-label);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:var(--tracking-widest)}.ui-btn--orbghost:hover:not(:disabled){background:var(--accent);color:var(--text-onAccent);border-color:var(--accent)}.ui-iconbtn.is-active{box-shadow:inset 0 0 0 1px var(--accent-border),var(--glow-accent-subtle)}.ui-segmented__item.is-active{color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent-border)}.viewport{background:var(--bg-void);background-image:linear-gradient(var(--grid-line) 1px,transparent 1px),linear-gradient(90deg,var(--grid-line) 1px,transparent 1px);background-size:50px 50px}.app-bar{position:relative}.app-bar:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:var(--energy-line);opacity:.4;pointer-events:none}.app-bar__logo{width:20px;height:20px;object-fit:contain;filter:drop-shadow(0 0 6px rgba(0,240,255,.55))}.app-bar__brand{font-family:var(--font-label);text-transform:uppercase;letter-spacing:var(--tracking-wide)}.camera-bar__seg,.viewport-actions,.axis-legend{background:var(--glass-chip-bg);backdrop-filter:var(--glass-blur-sm);-webkit-backdrop-filter:var(--glass-blur-sm);border:1px solid var(--glass-border)}.ui-popover,.filemenu{backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur)}.ui-panel__title{font-family:var(--font-mono);letter-spacing:var(--tracking-wider)}.tree__group-head{gap:var(--sp-4);margin-top:var(--sp-4);padding:var(--sp-4) var(--sp-3) var(--sp-3);border-bottom:1px solid var(--border-subtle)}.tree__group-icon{width:13px;height:13px;flex:none;color:var(--accent);opacity:.75}.tree__group-name{font-family:var(--font-label);font-size:var(--fs-xs);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:var(--tracking-wider);color:var(--text-secondary)}.tree__group-count{font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--text-muted);font-variant-numeric:tabular-nums;white-space:nowrap}.tree__twist{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;color:var(--text-muted);transition:transform var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.tree__twist svg{width:12px;height:12px;transform:rotate(180deg)}.tree__twist.is-open svg{transform:rotate(270deg)}.tree__twist.is-leaf{opacity:0;pointer-events:none}.tree__row:hover .tree__twist{color:var(--text)}.tree__row-icon{width:13px;height:13px;flex:none;opacity:.6;margin-right:0}.tree__row.is-selected .tree__row-icon{color:var(--accent);opacity:1}.tree__row-name{font-family:var(--font-sans)}.tree__counts{display:inline-flex;align-items:center;gap:var(--sp-4);flex:none;padding-right:var(--sp-2)}.tree__count{display:inline-flex;align-items:center;gap:3px;font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--text-muted);font-variant-numeric:tabular-nums}.tree__count svg{width:11px;height:11px;opacity:.7}.tree__tag{flex:none;padding:1px var(--sp-3);border-radius:var(--r-xs);font-family:var(--font-mono);font-size:var(--fs-2xs);font-weight:var(--fw-medium);text-transform:uppercase;letter-spacing:.06em;line-height:1.5;background:var(--surface);color:var(--text-muted);border:1px solid transparent}.tree__tag--door{color:var(--accent);background:var(--accent-soft)}.tree__tag--window{color:var(--build);background:color-mix(in srgb,var(--build) 12%,transparent)}.tree__tag--stairs,.tree__tag--exit{color:var(--text-secondary);background:var(--surface-hover)}.tree__row-name--dest{color:var(--text-secondary)}.tree__row-detail{flex:none;font-size:var(--fs-2xs);color:var(--text-muted);max-width:70px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tree__row--sub{position:relative}.tree__row--sub:before{content:"";position:absolute;left:calc(var(--sp-6) + 7px);top:0;bottom:0;width:1px;background:var(--border);pointer-events:none}.tree__row--sub.is-selected:before{background:var(--accent)}.tool-rail__label,.insp-head__sub,.field-label,.insp-sub,.ui-toggle__label,.status-bar__item,.mode-badge{font-family:var(--font-label);text-transform:uppercase;letter-spacing:var(--tracking-wide)}.tool-rail__label{font-size:var(--fs-2xs);font-weight:var(--fw-bold);letter-spacing:.06em}.tool-rail__btn.is-active,.tool-rail__btn.is-active .tool-rail__label{color:var(--accent)}.ui-badge{font-family:var(--font-label);font-weight:var(--fw-bold);letter-spacing:.14em}@keyframes orb-pulse-dot{0%,to{opacity:1;box-shadow:0 0 0 0 currentColor}50%{opacity:.55;box-shadow:0 0 6px 1px currentColor}}.save-status__dot,.status-bar__dot{animation:orb-pulse-dot 2.4s ease-in-out infinite}.insp-section__title,.insp-acc>summary{font-family:var(--font-label);text-transform:uppercase;letter-spacing:var(--tracking-wide);font-size:var(--fs-xs)}.ui-numfield input:focus,.ui-vecfield input:focus,.insp-head__name-input:focus,.ui-select:focus,.prop-search__input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.prop-card{position:relative;overflow:hidden}.prop-card:after{content:"";position:absolute;left:0;bottom:0;height:2px;width:0;background:var(--accent);transition:width var(--dur-slow) var(--ease);pointer-events:none}.prop-card:hover:after{width:100%}.prop-cats__chip{font-family:var(--font-label);text-transform:uppercase;letter-spacing:.08em;font-size:var(--fs-2xs);font-weight:var(--fw-bold)}.prop-cats__chip.is-active{background:var(--accent-soft);color:var(--accent);border-color:var(--accent-border)}.ui-modal,.ui-confirm{backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur)}
