:root{--canvas-bg:#fcfbf9;--ui-surface:#ffffffe6;--hairline:#e8e5e0;--grid-dot:#d8d5d0;--wall-fill:#2b2b28;--room-fill:#f5efe4;--accent:#0a84ff;--danger:#e5484d;--text-primary:#1d1d1b;--text-secondary:#8a867e;--ground-3d:#f0eeea;--shadow:0 4px 16px #00000014;--radius-pill:999px;--radius-panel:12px;--radius-button:8px;--ease-out:cubic-bezier(.2, 0, 0, 1);--accent-soft:color-mix(in srgb, var(--accent) 9%, #fff);--accent-line:color-mix(in srgb, var(--accent) 42%, transparent);--danger-soft:color-mix(in srgb, var(--danger) 9%, #fff);--hairline-strong:#ddd8ce;--ease-hover:cubic-bezier(.22, .61, .24, 1);--font:-apple-system, system-ui, "Inter", sans-serif;--slot-inset:12px;--topbar-h:48px;--ctl-h:44px;--ctl-w:52px;--ctx-field-h:54px;--ctx-add-w:82px;--ctx-add-h:64px;--ctx-act-h:34px;--ctx-act-gap:6px;--rail-chip-w:78px;--rail-chip-h:32px;--rail-row-step:40px;--rail-add-h:28px;--rail-add-gap:8px;--tray-bg:#f2f0eb;--tray-border:#e4e0d9;--plate-hover:#0000000b;--plate-press:#00000013;--accent-tint-09:#0a84ff17;--radius-badge:5px;--gallery-tile-min:220px;--template-tile-min:196px}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{overscroll-behavior:none;height:100%;overflow:hidden}html{height:100dvh}body{font-family:var(--font);color:var(--text-primary);background:var(--canvas-bg);-webkit-font-smoothing:antialiased;-webkit-user-select:none;user-select:none;touch-action:none}button{cursor:pointer;color:inherit;background:0 0;border:none;font-family:inherit}input{font-family:inherit}@media (pointer:coarse){input,textarea,select{font-size:16px!important}.tap-44{min-width:44px!important;min-height:44px!important}:root{--ctx-act-h:44px;--rail-chip-w:96px;--rail-chip-h:44px;--rail-row-step:52px;--rail-add-h:46px;--rail-add-gap:10px}[data-testid=context-panel],[data-testid=underlay-edit-bar]{margin-top:44px}}:root[data-device=phone]{--slot-inset:10px;--ctl-w:44px;--gallery-tile-min:150px;--template-tile-min:150px}:root[data-device=phone] [data-testid=mobile-chrome]>div:empty{display:none}:root[data-device=phone] [data-testid=mobile-chrome] button{min-width:44px!important;min-height:44px!important}.ctx-left{scrollbar-width:none;flex-wrap:nowrap;overflow-x:auto}.ctx-left.ctx-wrap{flex-wrap:wrap}.ctx-left>*{flex-shrink:0}:root[data-device=phone] [data-testid=mobile-chrome] .hv-rail{padding-top:6px;padding-bottom:6px;height:56px!important}:root[data-device=phone] [data-testid=tool-pill]{gap:2px!important;padding:6px!important}:root[data-device=phone] [data-testid=tool-pill]>button{padding-left:4px!important;padding-right:4px!important}:root[data-device=phone] [data-testid=context-panel],:root[data-device=phone] [data-testid=underlay-edit-bar]{margin-top:0}@keyframes panel-slide-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.tabular{font-variant-numeric:tabular-nums}.no-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.no-scrollbar::-webkit-scrollbar{display:none}.hv-rail,.hv-act,.hv-type{transition:transform .12s var(--ease-hover), border-color .15s var(--ease-hover), background .15s var(--ease-hover), color .15s var(--ease-hover)}.hv-chip,.hv-soft,.hv-num{transition:background .13s var(--ease-hover), color .13s var(--ease-hover), border-color .15s var(--ease-hover)}@media (hover:hover){.hv-rail:hover{transform:translateY(-2px)}.hv-rail:not(.hv-on):hover{border-color:var(--hairline-strong)!important}.hv-rail.hv-danger:hover{background:var(--danger-soft)!important;border-color:var(--danger)!important}.hv-act:not(.hv-on):hover{border-color:var(--hairline-strong)!important}.hv-act.hv-danger:hover{background:var(--danger-soft)!important;border-color:var(--danger)!important}.hv-type:hover{transform:translateY(-1px)}.hv-type:not(.hv-on):hover{border-color:var(--accent-line)!important;color:var(--accent)!important}.hv-chip:not(.hv-on):hover{border-color:var(--hairline-strong)!important}.hv-soft:hover{background:var(--accent-soft)!important;color:var(--accent)!important}.hv-num:hover{background:var(--accent-soft)!important}}.hv-rail:active,.hv-type:active{transform:translateY(0)}.hv-act:active{transform:scale(.98)}.hv-mode{box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 22%, transparent);animation:1.5s ease-in-out infinite mode-breathe}@keyframes mode-breathe{50%{box-shadow:0 0 0 6px color-mix(in srgb, var(--accent) 8%, transparent)}}.hv-scroller{position:relative}.hv-scroller:before,.hv-scroller:after{content:"";pointer-events:none;z-index:2;opacity:0;width:40px;transition:opacity .18s var(--ease-hover);position:absolute;top:0;bottom:0}.hv-scroller:before{background:linear-gradient(90deg,#fff,#0000);left:0}.hv-scroller:after{background:linear-gradient(270deg,#fff,#0000);right:0}.hv-scroller.hv-more-l:before,.hv-scroller.hv-more-r:after{opacity:.9}.hv-tile{transition:background .16s var(--ease-hover)}@media (hover:hover){.hv-tile:not(.hv-on):hover{background:var(--plate-hover)!important}}.hv-tile:not(.hv-on):active{transform:scale(.988);background:var(--plate-press)!important}.hv-dashed{transition:border-color .16s var(--ease-hover), color .16s var(--ease-hover), background .16s var(--ease-hover)}@media (hover:hover){.hv-dashed:hover{border-color:var(--hairline-strong)!important;color:var(--text-primary)!important}}.hv-dashed:active{transform:scale(.988)}.tile-menu-btn{opacity:0;transition:opacity .16s var(--ease-hover)}.tile-menu-btn:focus-visible{opacity:1}@media (hover:hover){.hv-tile:hover .tile-menu-btn{opacity:1}}@media (pointer:coarse){.tile-menu-btn{opacity:1}}@media (prefers-reduced-motion:reduce){.hv-mode{animation:none}[data-testid=context-panel],[data-testid=context-panel] *,[data-testid=underlay-edit-bar],[data-testid=tool-pill],[data-testid=toast],[data-testid=properties-popover]{animation:none!important}.hv-rail,.hv-act,.hv-type,.hv-chip,.hv-soft,.hv-num,.hv-scroller:before,.hv-scroller:after,.hv-tile,.hv-dashed,.tile-menu-btn{transition:none}.hv-rail:hover,.hv-type:hover,.hv-tile:active,.hv-dashed:active{transform:none}}@keyframes tile-appear{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@keyframes hero-wash{0%{opacity:0}to{opacity:1}}@keyframes hero-draw{0%{stroke-dashoffset:64000px}to{stroke-dashoffset:0}}@media (prefers-reduced-motion:reduce){.gallery-tile-appear{animation:none!important}.gallery-hero-fill,.gallery-hero-outline{opacity:1!important;stroke-dashoffset:0!important;animation:none!important}}@keyframes panel-slide{0%{opacity:0;transform:translate(12px)}to{opacity:1;transform:translate(0)}}@keyframes panel-slide-down{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}@keyframes ghost-draw{0%{stroke-dashoffset:200px;opacity:1}18%{stroke-dashoffset:0;opacity:1}20%{stroke-dashoffset:200px;opacity:1}38%{stroke-dashoffset:0;opacity:1}42%{stroke-dashoffset:0;opacity:0}to{stroke-dashoffset:200px;opacity:0}}.dock-lead{letter-spacing:.05em;text-transform:uppercase;color:var(--text-secondary);white-space:nowrap;flex:none;align-self:center;font-size:10.5px;font-weight:600}.ctx-dock-caret:before{content:"";top:-1px;left:var(--caret-x);background:color-mix(in srgb, var(--ui-surface) 60%, transparent);border-left:1px solid var(--hairline);border-top:1px solid var(--hairline);width:12px;height:12px;transition:left .18s var(--ease-out);pointer-events:none;margin-left:-6px;position:absolute;transform:translateY(-50%)rotate(45deg)}@media (prefers-reduced-motion:reduce){.ctx-dock-caret:before{transition:none}}.north-grip{width:44px;height:44px;color:var(--text-secondary);pointer-events:auto;touch-action:none;cursor:grab;opacity:.75;transition:opacity .15s var(--ease-hover);border-radius:50%;position:relative}.north-grip:hover,.north-grip.north-dragging{opacity:1}.north-grip.north-dragging{cursor:grabbing}.north-svg{pointer-events:none;margin:-44px 0 0 -44px;position:absolute;top:50%;left:50%;overflow:visible}.north-needle{transform-box:view-box;transform-origin:50%;transition:transform .24s var(--ease-out)}.north-dragging .north-needle{transition:none}.north-letter{font-family:var(--font);fill:currentColor;opacity:.7;font-size:8px;font-weight:600}.north-read{font-family:var(--font);font-variant-numeric:tabular-nums;fill:var(--text-primary);font-size:11px;font-weight:600}.north-dial{transform-box:view-box;transform-origin:50%;opacity:0;transition:opacity .16s var(--ease-out), transform .26s var(--ease-out);transform:scale(.55)}@media (hover:hover){.north-grip:hover .north-dial{opacity:1;transform:scale(.62)}}.north-grip.north-dragging .north-dial{opacity:1;transform:scale(1)}.north-ring{fill:#ffffffdb;stroke:var(--hairline-strong);stroke-width:1px}.north-tick{stroke:var(--text-secondary);stroke-width:1px;opacity:.26}.north-tick-card{stroke-width:1.6px;opacity:.6}
