@font-face{font-family:Instrument Sans;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/ui/InstrumentSans.woff2)format("woff2")}@font-face{font-family:Instrument Serif;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ui/InstrumentSerif.woff2)format("woff2")}@font-face{font-family:Instrument Serif;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/ui/InstrumentSerif-Italic.woff2)format("woff2")}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#080706;--ink:#f6f3ee;--mute:#f6f3ee85;--line:#ffffff1a;--glass:#0a0a0c85;--glass-2:#101012e0;--neon:#ff3d9a;--sans:"Instrument Sans", "Segoe UI", system-ui, sans-serif;--serif:"Instrument Serif", Georgia, serif;--ease:cubic-bezier(.22, 1, .36, 1);--safe-b:max(14px, env(safe-area-inset-bottom));--safe-t:max(12px, env(safe-area-inset-top));--safe-x:max(16px, env(safe-area-inset-left), env(safe-area-inset-right))}*{box-sizing:border-box}html,body,#root{background:var(--bg);width:100%;height:100%;color:var(--ink);font-family:var(--sans);margin:0;overflow:hidden}body{touch-action:manipulation;min-height:100svh}button,input,textarea{font:inherit;color:inherit}button{cursor:pointer}:focus{outline:none}:focus-visible{outline-offset:3px;outline:2px solid #ffffffc7}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:8;color:#111;pointer-events:auto;background:#fff;border-radius:999px;padding:8px 12px;font-size:13px;text-decoration:none;position:absolute;top:12px;left:16px;transform:translateY(-140%)}.skip-link:focus{transform:none}.app-shell{background:var(--bg);width:100%;height:100svh;position:relative}.neon-canvas{cursor:grab;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;display:block;position:absolute;inset:0;width:100%!important;height:100%!important}.neon-canvas:active{cursor:grabbing}.overlay{pointer-events:none;padding:var(--safe-t) var(--safe-x) var(--safe-b);z-index:2;opacity:0;transition:opacity .42s var(--ease), transform .42s var(--ease);flex-direction:column;justify-content:space-between;display:flex;position:absolute;inset:0;transform:translateY(8px)}.overlay.is-ready{opacity:1;transform:none}.topbar,.dock,.banner,.skip-link{pointer-events:auto}.topbar{align-items:center;min-height:28px;display:flex}.wordmark{letter-spacing:.34em;text-transform:uppercase;color:#ffffff6b;font-size:11px;font-weight:600}.banner{left:50%;top:calc(var(--safe-t) + 36px);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#300c12c7;border:1px solid #ff8ca047;border-radius:999px;margin:0;padding:8px 14px;font-size:13px;position:absolute;transform:translate(-50%)}.dock{flex-direction:column;gap:10px;width:min(560px,100%);margin:0 auto;display:flex;position:relative}.dock-main{background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(22px)saturate(1.15);backdrop-filter:blur(22px)saturate(1.15);border-radius:22px;align-items:flex-end;gap:10px;padding:10px 12px 10px 10px;display:flex;box-shadow:0 18px 50px #00000057,inset 0 1px #ffffff0f}.composer{flex:1;min-width:0;position:relative}.composer textarea{resize:none;letter-spacing:-.038em;background:0 0;border:0;outline:none;width:100%;min-height:34px;max-height:108px;padding:4px 28px 6px 2px;font-size:clamp(20px,2.2vw,28px);font-weight:500;line-height:1.18;overflow-y:auto}.composer textarea::placeholder{color:#ffffff57;letter-spacing:-.03em}.composer textarea:focus-visible{outline:none}.composer-count{letter-spacing:.08em;color:#ffffff52;font-size:10px;position:absolute;bottom:6px;right:0}.composer.is-pending:after{content:"";background:color-mix(in srgb, var(--neon) 80%, white);height:1px;box-shadow:0 0 10px var(--neon);transform-origin:0;animation:pending 1.1s var(--ease) infinite;position:absolute;bottom:0;left:2px;right:8px}.power{border:1px solid var(--line);width:36px;height:36px;transition:border-color .18s var(--ease), box-shadow .18s var(--ease), background .18s var(--ease);background:#ffffff0a;border-radius:50%;flex:none;place-items:center;display:grid}.power:hover{background:#ffffff14}.power-dot{width:8px;height:8px;transition:background .18s var(--ease), box-shadow .18s var(--ease);background:#ffffff47;border-radius:50%}.power.is-on{border-color:color-mix(in srgb, var(--neon) 55%, white 8%);box-shadow:0 0 18px color-mix(in srgb, var(--neon) 32%, transparent)}.power.is-on .power-dot{background:var(--neon);box-shadow:0 0 10px var(--neon)}.toolbar{position:relative}.tool-rail{background:color-mix(in srgb, var(--glass) 78%, transparent);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border:1px solid #ffffff0f;border-radius:18px;justify-content:space-between;gap:4px;padding:4px;display:flex}.tool{color:#ffffff80;min-width:0;transition:background .16s var(--ease), color .16s var(--ease);background:0 0;border:0;border-radius:14px;flex-direction:column;flex:1;align-items:center;gap:4px;padding:8px 4px 6px;display:flex}.tool:hover{color:#ffffffeb;background:#ffffff0f}.tool.is-active{color:#fff;background:#ffffff1a}.tool-icon{width:18px;height:18px;display:block}.tool[data-tool=color] .tool-icon circle{fill:color-mix(in srgb, var(--neon) 78%, transparent);stroke:color-mix(in srgb, var(--neon) 90%, white)}.tool-label{letter-spacing:.12em;text-transform:uppercase;font-size:9px;line-height:1}.popover{background:var(--glass-2);border:1px solid var(--line);-webkit-backdrop-filter:blur(24px)saturate(1.2);backdrop-filter:blur(24px)saturate(1.2);animation:rise .18s var(--ease);border-radius:18px;padding:14px;position:absolute;bottom:calc(100% + 8px);left:0;right:0;box-shadow:0 18px 48px #0000006b}.styles,.swatches{flex-wrap:wrap;gap:8px;display:flex}.styles button,.segmented button,.ghost-block,.text-button,.fallback-button{border:1px solid var(--line);letter-spacing:.08em;text-transform:uppercase;color:var(--mute);transition:background .16s var(--ease), color .16s var(--ease), border-color .16s var(--ease), box-shadow .16s var(--ease);background:#ffffff0a;border-radius:999px;padding:8px 12px;font-size:12px}.styles button:hover,.segmented button:hover,.ghost-block:hover,.text-button:hover,.fallback-button:hover{color:#fff;background:#ffffff14}.styles button.is-active,.segmented button.is-active{color:#fff;border-color:color-mix(in srgb, var(--neon) 50%, white 8%);box-shadow:0 0 16px color-mix(in srgb, var(--neon) 28%, transparent);background:#ffffff24}.swatch{background:var(--swatch);width:22px;height:22px;box-shadow:0 0 12px color-mix(in srgb, var(--swatch) 55%, transparent);transition:transform .16s var(--ease);border:1px solid #ffffff38;border-radius:50%;padding:0}.swatch:hover{transform:scale(1.08)}.swatch.is-active{outline-offset:2px;outline:2px solid #fff}.swatch-custom{background:conic-gradient(from 90deg,#ff2d42,#ff3d9a,#ff6414,#ffb01e,#3d84ff,#4aefff,#a8ff3c,#b45cff,#eaf4ff,#fff1c8,#ff2d42);position:relative;overflow:hidden}.swatch-custom input{cursor:pointer;opacity:0;border:0;width:auto;height:auto;padding:0;position:absolute;inset:-6px}.panel{gap:12px;display:grid}.slider{letter-spacing:.14em;text-transform:uppercase;color:var(--mute);grid-template-columns:64px minmax(0,1fr);align-items:center;gap:12px;font-size:11px;display:grid}.slider input[type=range]{appearance:none;width:100%;height:4px;accent-color:var(--neon);background:#ffffff1f;border-radius:999px}.slider input[type=range]::-webkit-slider-thumb{appearance:none;width:14px;height:14px;box-shadow:0 0 12px color-mix(in srgb, var(--neon) 50%, transparent);background:#fff;border-radius:50%}.panel-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.atmosphere-block{flex-direction:column;gap:8px;margin-top:4px;display:flex}.atmosphere-label{color:var(--mute);letter-spacing:.01em;font-size:13px}.choice-list-compact{max-height:220px;overflow:auto}.choice-list-compact .choice{padding:8px 10px}.choice-list-compact .choice strong{font-size:13px}.choice-list-compact .choice span{font-size:11px}.check{color:var(--mute);letter-spacing:.01em;align-items:center;gap:8px;font-size:13px;display:flex}.text-button{background:0 0}.segmented{flex-wrap:wrap;gap:6px;display:flex}.segmented button{flex:1;padding:8px 10px}.ghost-block{color:#fff;border-radius:12px;width:100%}.ghost-block:disabled{opacity:.55;cursor:wait}.export-sizes{grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.export-sizes button{flex:none;padding:8px 6px}html.is-exporting .overlay,html.is-exporting .display-hud,html.is-exporting .skip-link{visibility:hidden!important;pointer-events:none!important}.choice-list{gap:6px;display:grid}.choice{text-align:left;width:100%;color:var(--mute);transition:background .16s var(--ease), border-color .16s var(--ease);background:0 0;border:1px solid #0000;border-radius:12px;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 12px;display:flex}.choice:hover,.choice.is-active{color:#fff;background:#ffffff0f}.choice.is-active{border-color:color-mix(in srgb, var(--neon) 40%, transparent)}.choice strong{letter-spacing:.02em;font-size:13px;font-weight:600}.choice span{color:#ffffff6b;font-size:12px}.room-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.room-chip{color:var(--mute);letter-spacing:.08em;text-transform:uppercase;background:#ffffff08;border:1px solid #0000;border-radius:14px;flex-direction:column;align-items:center;gap:8px;padding:10px 6px 8px;font-size:11px;display:flex}.room-chip:hover,.room-chip.is-active{color:#fff;background:#ffffff12}.room-chip.is-active{border-color:color-mix(in srgb, var(--neon) 45%, transparent)}.room-swatch{border-radius:8px;width:100%;height:28px}.room-swatch-paint{background:#16161c}.room-swatch-plaster{background:#8a7464}.room-swatch-brick{background:#6a3a30}.room-swatch-concrete{background:#5c5d62}.room-swatch-interior{background:#7a6858}.room-swatch-studio{background:#0c0c10}.panel-note{color:#fff6;margin:0;font-size:12px}.start-over{color:#ffffff61;border:0;justify-self:start;padding-left:0;padding-right:0}.display-enter{border:1px solid color-mix(in srgb, var(--neon) 40%, var(--line));background:color-mix(in srgb, var(--neon) 14%, transparent);color:#fff;min-width:52px;height:44px;transition:background .16s var(--ease), box-shadow .16s var(--ease);border-radius:14px;flex-direction:column;flex:none;justify-content:center;align-items:center;gap:3px;padding:4px 8px;display:flex}.display-enter:hover:not(:disabled){background:color-mix(in srgb, var(--neon) 24%, transparent);box-shadow:0 0 18px color-mix(in srgb, var(--neon) 28%, transparent)}.display-enter:disabled{opacity:.35;cursor:not-allowed}.display-enter-label{letter-spacing:.12em;text-transform:uppercase;font-size:9px}.display-cta{border-color:color-mix(in srgb, var(--neon) 45%, white 8%);box-shadow:0 0 16px color-mix(in srgb, var(--neon) 22%, transparent)}.app-shell.is-display{height:100dvh}.app-shell.is-display .neon-canvas{cursor:default}.display-hud{pointer-events:none;z-index:3;position:absolute;inset:0}.display-exit,.display-fill{pointer-events:none;color:#ffffff9e;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);opacity:0;transition:opacity .24s var(--ease), transform .24s var(--ease), color .16s var(--ease), background .16s var(--ease);background:#0c0c0e6b;border:1px solid #ffffff24;position:absolute;transform:translateY(-4px)}.display-hud.is-awake .display-exit,.display-hud.is-awake .display-fill{pointer-events:auto;opacity:1}.display-exit:focus-visible,.display-fill:focus-visible{pointer-events:auto;opacity:1;transform:none}.display-hud.is-awake .display-exit{transform:none}.display-hud.is-awake .display-whisper{opacity:1}.display-exit{top:max(12px, env(safe-area-inset-top));right:max(16px, env(safe-area-inset-right));letter-spacing:.12em;text-transform:uppercase;border-radius:999px;padding:8px 14px;font-size:12px}.display-exit:hover,.display-fill:hover{color:#fff;background:#0c0c0eb3}.display-fill{left:50%;bottom:max(18px, env(safe-area-inset-bottom));letter-spacing:.12em;text-transform:uppercase;border-radius:999px;padding:8px 16px;font-size:12px;transform:translate(-50%)translateY(4px)}.display-hud.is-awake .display-fill{transform:translate(-50%)}.display-whisper{left:50%;top:max(16px, env(safe-area-inset-top));letter-spacing:.16em;text-transform:uppercase;color:#ffffff52;opacity:0;transition:opacity .24s var(--ease);margin:0;font-size:11px;position:absolute;transform:translate(-50%)}.display-error{pointer-events:none;left:50%;bottom:max(56px, calc(env(safe-area-inset-bottom) + 40px));text-align:center;letter-spacing:.04em;color:#ffdcd2db;max-width:min(72ch,100% - 32px);margin:0;font-size:12px;position:absolute;transform:translate(-50%)}html.display-idle,html.display-idle *{cursor:none!important}.fallback{text-align:center;place-content:center;gap:8px;min-height:100svh;padding:32px;display:grid}.fallback h1{font-family:var(--serif);margin:0;font-size:clamp(28px,6vw,48px);font-weight:400}.fallback p{color:var(--mute);margin:0}.fallback-kicker{letter-spacing:.28em;text-transform:uppercase;font-size:11px}.fallback-button{color:#fff;justify-self:center;margin-top:16px}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes pending{0%{opacity:.4;transform:scaleX(.12)}50%{opacity:1;transform:scaleX(1)}to{opacity:.4;transform:scaleX(.12)}}@media (width<=720px){.dock{gap:8px;width:100%}.dock-main{border-radius:20px;padding:10px}.composer textarea{font-size:22px}.display-enter-label{display:none}.display-enter{border-radius:50%;min-width:40px;height:40px;padding:0}.tool-label{letter-spacing:.08em;font-size:8px}.tool{padding:8px 2px 6px}.popover{max-height:46vh;overflow:auto}.slider{grid-template-columns:1fr;gap:6px}.room-grid{grid-template-columns:repeat(3,1fr)}}@media (width<=380px){.composer textarea{font-size:18px}.tool-rail{gap:0;padding:2px}.tool-label{font-size:7px}}@media (width<=320px){.wordmark{letter-spacing:.18em}.dock-main{gap:6px;padding:8px}.tool-label{display:none}.power{width:32px;height:32px}}@media (prefers-reduced-motion:reduce){html.display-idle,html.display-idle *{cursor:auto!important}.overlay,.popover,.tool,.power,.swatch,.composer.is-pending:after,.display-exit,.display-fill,.display-whisper{transition:none!important;animation:none!important}.overlay{opacity:1;transform:none}}
