:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#16181d;--fg:#f2f2f2;--fg-2:#ebebf59e;--fg-3:#ebebf552;--material:#1e1e20b8;--material-strong:#1e1e20e6;--fill:#7676803d;--fill-hover:#76768057;--fill-2:#76768024;--hairline:#ffffff14;--separator:#ffffff12;--accent:#0a84ff;--accent-tint:#0a84ff2e;--danger:#ff453a;--success:#30d158;--shadow-float:0 0 0 .5px #ffffff1a inset, 0 1px 0 #ffffff0d inset, 0 2px 6px #0003, 0 18px 48px -16px #000000a6;--text:-apple-system, BlinkMacSystemFont, "SF Pro Text", system-ui, sans-serif;--display:-apple-system, BlinkMacSystemFont, "SF Pro Display", system-ui, sans-serif;--ease-out:cubic-bezier(.23, 1, .32, 1);--spring:linear(0, .0184, .0656, .1315, .2083, .2903, .373, .4533, .5292, .5994, .6629, .7197, .7696, .8129, .8501, .8817, .9081, .93, .948, .9625, .9741, .9832, .9902, .9955, .9995, 1.0022, 1.0041, 1.0053, 1.006, 1.0063, 1.0062, 1.006, 1.0056, 1.0052, 1.0046, 1.0041, 1.0036, 1.0031, 1.0027, 1.0023, 1);--spring-ms:.65s;--gutter:28px;font-family:var(--text);color:var(--fg);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-size:13px}*{box-sizing:border-box}html,body,#root{background:var(--bg);height:100%;margin:0;overflow:hidden}button{font:inherit;color:inherit;-webkit-tap-highlight-color:transparent;background:0 0;border:0;padding:0}button:not(:disabled){cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}::selection{background:#2997ff59}kbd{font:inherit}.material{background:var(--material);-webkit-backdrop-filter:blur(24px)saturate(1.6);backdrop-filter:blur(24px)saturate(1.6);box-shadow:var(--shadow-float)}@media (prefers-reduced-transparency:reduce){.material{background:var(--material-strong);-webkit-backdrop-filter:none;backdrop-filter:none}}.stage{position:fixed;inset:0}.hud{pointer-events:none;transition:opacity .28s;position:fixed;inset:0}.hud>*,.chrome>*{pointer-events:auto}.chrome{pointer-events:none}:is(.hud.adding,:root:has(.hud.adding) .toaster){opacity:0;transition-duration:.16s}:is(.hud.adding,.hud.adding *,:root:has(.hud.adding) .toaster *){pointer-events:none}.title{top:24px;left:var(--gutter);pointer-events:none;position:absolute;right:240px}h1{font-family:var(--display);letter-spacing:-.028em;white-space:nowrap;text-overflow:ellipsis;text-shadow:0 1px 12px #00000059;margin:0;font-size:28px;font-weight:600;line-height:1.1;overflow:hidden}.doc{pointer-events:auto;max-width:calc(100% + 10px);margin:-4px 0 -4px -10px;display:inline-block;position:relative}.doc-title{max-width:100%;color:var(--fg);border-radius:12px;align-items:center;gap:6px;padding:4px 10px;transition:background-color .16s;display:inline-flex}.doc-title svg{color:var(--fg-2);transition:transform .32s var(--spring), color .16s ease;flex:none;margin-top:4px}.doc-title.on{background:var(--fill-2)}.doc-title.on svg{color:var(--fg);transform:rotate(180deg)}@media (hover:hover) and (pointer:fine){.doc-title:hover{background:var(--fill-2)}.doc-title:hover svg{color:var(--fg)}}.doc-menu{z-index:10;transform-origin:24px -12px;opacity:0;visibility:hidden;min-width:240px;transition:opacity .14s ease, transform .2s var(--ease-out), visibility 0s .2s;background:#1e1e20eb;border-radius:14px;padding:6px;position:absolute;top:calc(100% + 8px);left:0;transform:scale(.96)translateY(-4px)}.doc-menu.open{opacity:1;visibility:visible;transition:opacity .16s ease, transform var(--spring-ms) var(--spring), visibility 0s;transform:none}.doc-menu-label{color:var(--fg-3);margin:6px 10px 4px;font-size:12px;font-weight:600}.doc-menu button{text-align:left;white-space:nowrap;width:100%;height:32px;color:var(--fg);border-radius:8px;padding:0 10px;font-size:13px;display:block}.doc-menu button:focus-visible{color:#fff;background:var(--accent);outline:none}@media (hover:hover) and (pointer:fine){.doc-menu button:not(:disabled):hover{color:#fff;background:var(--accent)}}.doc-menu button:disabled{color:var(--fg-3)}.doc-menu button:has(.doc-menu-hint){justify-content:space-between;align-items:center;gap:16px;display:flex}.doc-menu-hint{opacity:.55;white-space:nowrap;font-size:12px}.doc-menu hr{background:var(--separator);border:0;height:1px;margin:6px 10px}@media (prefers-reduced-motion:reduce){.doc-menu,.doc-menu.open{transform:none}}@media (prefers-reduced-transparency:reduce){.doc-menu{background:#1e1e20}}.top-right{top:20px;right:var(--gutter);align-items:center;gap:10px;display:flex;position:absolute}.icon-button,.text-button{height:36px;color:var(--fg-2);transition:color .2s ease, background-color .2s ease, transform .16s var(--ease-out);border-radius:999px;place-items:center;font-size:13px;font-weight:500;display:grid;position:relative}.icon-button{width:36px}.text-button{color:var(--fg);padding:0 16px}.icon-button.on{color:var(--fg);background:#636366e6}.icon-button:active,.text-button:active{transition-duration:.1s;transform:scale(.94)}.tip.below{top:calc(100% + 10px);left:50%;transform:translate(-50%,-4px)}@media (hover:hover) and (pointer:fine){.icon-button:not(.on):hover,.text-button:hover{color:var(--fg)}.icon-button:hover .tip{opacity:1;transition-delay:.45s;transform:translate(-50%)}}.segmented{--pad:2px;padding:var(--pad);background:var(--fill-2);isolation:isolate;border-radius:9px;display:grid;position:relative}.segmented.material{--pad:3px;border-radius:999px}.segmented-thumb{top:var(--pad);bottom:var(--pad);left:var(--pad);z-index:-1;transition:transform var(--spring-ms) var(--spring), opacity .2s ease;background:#636366e6;border-radius:7px;position:absolute;box-shadow:inset 0 0 0 .5px #ffffff14,0 3px 8px #00000040}.segmented.material .segmented-thumb{border-radius:999px}.segmented button{height:26px;color:var(--fg-2);white-space:nowrap;border-radius:7px;padding:0 8px;font-size:12px;font-weight:500;transition:color .2s}.segmented.material button{border-radius:999px;height:30px;padding:0 16px;font-size:13px}.segmented button.on{color:var(--fg)}@media (hover:hover) and (pointer:fine){.segmented button:not(.on):hover{color:var(--fg)}}.floors{left:var(--gutter);border-radius:18px;flex-direction:column;gap:2px;padding:4px;display:flex;position:absolute;bottom:24px}.floors button{height:32px;color:var(--fg-2);text-align:left;white-space:nowrap;transform:translateY(var(--dy,0));transition:color .2s ease, background-color .2s ease, box-shadow .2s ease, transform .32s var(--spring);border-radius:14px;padding:0 14px;font-size:13px;font-weight:500;position:relative}.floors.reorderable button:not(.floor-add){cursor:grab;touch-action:none}.floors.dragging,.floors.dragging button{cursor:grabbing}.floors button.lifted{z-index:1;color:var(--fg);transform:translateY(var(--dy,0)) scale(1.04);background:#48484cf2;transition:background-color .2s,box-shadow .2s;box-shadow:inset 0 0 0 .5px #ffffff1f,0 8px 20px #00000073}.floors button.on{color:var(--fg);background:#636366e6;box-shadow:inset 0 0 0 .5px #ffffff14,0 3px 8px #00000040}.floors:not(.dragging) button:active{transition-duration:.1s;transform:scale(.96)}.floors .floor-add{place-items:center;padding:0;display:grid}@media (hover:hover) and (pointer:fine){.floors button:not(.on):hover{color:var(--fg)}.floors .floor-add:hover .tip{opacity:1;transition-delay:.45s;transform:translateY(-50%)}}.dock{max-width:calc(100% - 2 * var(--gutter));scrollbar-width:none;transition:opacity .2s ease, transform var(--spring-ms) var(--spring), visibility 0s;border-radius:999px;gap:2px;padding:4px;display:flex;position:absolute;bottom:24px;left:50%;overflow-x:auto;transform:translate(-50%)}.dock button{height:34px;color:var(--fg-2);transition:color .2s ease, background-color .2s ease, transform .16s var(--ease-out);border-radius:999px;flex:none;padding:0 15px;font-size:14px;font-weight:500}.dock button.on{color:var(--fg);background:#7676805c}.dock button:active{transition-duration:.1s;transform:scale(.96)}@media (hover:hover) and (pointer:fine){.dock button:not(.on):hover{color:var(--fg)}}.hud.editing .dock{opacity:0;visibility:hidden;transition:opacity .16s ease, transform .24s var(--ease-out), visibility 0s .24s;transform:translate(-50%,16px)}.walk-cover{background:var(--bg);opacity:0;pointer-events:none;position:absolute;inset:0}.walk-hint{max-width:calc(100% - 2 * var(--gutter));color:var(--fg-2);white-space:nowrap;text-align:center;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .24s ease, transform .24s var(--ease-out), visibility 0s .24s;border-radius:999px;margin:0;padding:8px 14px;font-size:12.5px;position:absolute;bottom:82px;left:50%;transform:translate(-50%,8px)}.walk-hint.show{opacity:1;visibility:visible;transition:opacity .28s ease, transform var(--spring-ms) var(--spring), visibility 0s;transform:translate(-50%)}.walk-hint kbd{color:var(--fg)}@media (width<=760px){.walk-hint{white-space:normal;top:64px;bottom:auto;transform:translate(-50%,-8px)}}.toolbar,.panel{transition:opacity .22s ease, transform var(--spring-ms) var(--spring), visibility 0s}.hud:not(.editing) .toolbar,.hud:not(.editing) .panel{opacity:0;visibility:hidden;transition:opacity .16s ease, transform .24s var(--ease-out), visibility 0s .24s}.hud:not(.editing) .toolbar{transform:translate(-16px)}.hud:not(.editing) .panel{transform:translate(20px)}.toolbar{left:var(--gutter);border-radius:18px;flex-direction:column;gap:2px;padding:5px;display:flex;position:absolute;top:50%;translate:0 -50%}.tool{width:40px;height:40px;color:var(--fg-2);transition:background-color .2s ease, color .2s ease, transform .16s var(--ease-out);border-radius:13px;place-items:center;display:grid;position:relative}.tool.on{color:var(--accent);background:var(--accent-tint)}.tool:active:not(:disabled){transition-duration:.1s;transform:scale(.92)}.tool:disabled{color:var(--fg-3)}@media (hover:hover) and (pointer:fine){.tool:not(.on):not(:disabled):hover{color:var(--fg);background:var(--fill-2)}}.toolbar-gap{background:var(--separator);height:1px;margin:4px 8px}.tip{background:var(--material-strong);box-shadow:var(--shadow-float);color:var(--fg);white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .12s ease, transform .16s var(--ease-out);border-radius:8px;align-items:center;gap:8px;padding:6px 10px;font-size:12px;font-weight:500;display:flex;position:absolute;top:50%;left:calc(100% + 12px);transform:translate(-4px,-50%)}.tip kbd{color:var(--fg-2);font-variant-numeric:tabular-nums;font-size:11px}@media (hover:hover) and (pointer:fine){.tool:hover .tip{opacity:1;transition-delay:.45s;transform:translateY(-50%)}}.panel{top:72px;right:var(--gutter);overscroll-behavior:contain;scrollbar-width:none;border-radius:22px;width:296px;max-height:calc(100% - 96px);padding:6px 18px 18px;position:absolute;overflow-y:auto}.panel-back{background:var(--fill);width:32px;height:32px;color:var(--fg);transition:background-color .2s ease, transform .16s var(--ease-out);border-radius:999px;place-items:center;display:grid;position:absolute;top:22px;left:14px}.panel-back svg{margin-left:-1px}.panel-back:active{transition-duration:.1s;transform:scale(.92)}@media (hover:hover) and (pointer:fine){.panel-back:hover{background:var(--fill-hover)}}.panel-back+.panel-section h3{align-items:center;min-height:32px;padding-left:42px;display:flex}.panel-section{padding:16px 0}.panel-section+.panel-section{border-top:1px solid var(--separator)}.panel-section h3{letter-spacing:-.005em;color:var(--fg);margin:0 0 10px;font-size:13px;font-weight:600}.panel-section:first-of-type h3{font-family:var(--display);letter-spacing:-.02em;margin-bottom:14px;font-size:20px;font-weight:600}.row{grid-template-columns:88px 1fr;align-items:center;gap:12px;min-height:36px;display:grid}.row-label{color:var(--fg-2)}.row.stacked{grid-template-columns:1fr;gap:6px;padding:4px 0 6px}.row-control{align-items:center;min-width:0;display:flex}.row-control>*{flex:1;min-width:0}.inline{align-items:center;gap:6px;display:flex}.inline>.toggle{flex:none}.value{color:var(--fg);font-variant-numeric:tabular-nums}.muted{color:var(--fg-2)}.field{width:100%;min-width:0;height:30px;font:inherit;font-variant-numeric:tabular-nums;color:var(--fg);background:var(--fill);border:0;border-radius:8px;outline:none;padding:0 10px;transition:box-shadow .16s,background-color .16s}.field::placeholder{color:var(--fg-3)}.field:focus,.field:focus-visible{outline:none;box-shadow:0 0 0 3px #0a84ff80}select.field{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='14' fill='none' stroke='rgba(235,235,245,0.62)' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 5l3-3 3 3M2 9l3 3 3-3'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;padding-right:26px}.field-wrap{flex:1;display:block;position:relative}.field-suffix{color:var(--fg-2);pointer-events:none;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.toggle{background:#7878805c;border-radius:999px;width:38px;height:22px;transition:background-color .2s;position:relative;flex:none!important}.toggle span{width:18px;height:18px;transition:transform .32s var(--spring);background:#fff;border-radius:50%;position:absolute;top:2px;left:2px;box-shadow:0 2px 5px #0000004d}.toggle.on{background:var(--accent)}.toggle.on span{transform:translate(16px)}.swatches{flex-wrap:wrap;gap:8px;padding:4px 0;display:flex}.swatches button{width:22px;height:22px;transition:transform .16s var(--ease-out), box-shadow .2s ease;border-radius:50%;box-shadow:inset 0 0 0 .5px #fff3}.swatches button.on{box-shadow:0 0 0 2px #1e1e20, 0 0 0 4px var(--accent)}.swatches button:active{transform:scale(.9)}.slider{--track:linear-gradient(to right, var(--accent) var(--pct), var(--fill) var(--pct));appearance:none;cursor:pointer;background:0 0;width:100%;height:28px;margin:0}.slider::-webkit-slider-runnable-track{background:var(--track);border-radius:999px;height:6px;box-shadow:inset 0 0 0 .5px #ffffff1a}.slider::-moz-range-track{background:var(--track);border-radius:999px;height:6px}.slider::-webkit-slider-thumb{appearance:none;width:22px;height:22px;transition:transform .16s var(--ease-out);background:#fff;border-radius:50%;margin-top:-8px;box-shadow:0 0 0 .5px #00000014,0 2px 6px #00000059}.slider::-moz-range-thumb{width:22px;height:22px;transition:transform .16s var(--ease-out);background:#fff;border:0;border-radius:50%;box-shadow:0 2px 6px #00000059}.slider:active::-webkit-slider-thumb{transform:scale(1.1)}.slider:active::-moz-range-thumb{transform:scale(1.1)}.slider:focus-visible{outline:none}.slider:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 3px var(--accent), 0 2px 6px #00000059}.slider.sky{--track:linear-gradient(to right, #e7a47e 0%, #a8c8e6 9%, #7fb5ea 39%, #a3c2de 63%, #efa45e 70%, #c96b6e 75%, #5a4d8c 79%, #2b3565 86%, #1b2242 100%)}.slider.sky::-webkit-slider-runnable-track{height:8px}.slider.sky::-webkit-slider-thumb{margin-top:-7px}.slider.sky::-moz-range-track{height:8px}.row-head{justify-content:space-between;align-items:baseline;display:flex}.row-value{color:var(--fg);font-variant-numeric:tabular-nums}.color-picker{flex-direction:column;display:flex}.color-picker .swatches{grid-auto-columns:minmax(0,22px);grid-auto-flow:column;gap:6px;margin:0 -4px;padding:4px;display:grid}.color-picker .swatches button{aspect-ratio:1;width:100%;height:auto}.swatch-custom{position:relative;background:conic-gradient(#ff3b30,#fc0,#34c759,#00c7be,#0a84ff,#bf5af2,#ff3b30)!important}.swatch-custom:after{content:"";background:var(--custom);border-radius:50%;transition:background-color .16s;position:absolute;inset:5px;box-shadow:0 0 0 .5px #00000040}.swatch-custom[aria-expanded=true]:not(.on){box-shadow:0 0 0 2px #1e1e20, 0 0 0 4px var(--fill-hover)}.color-custom{opacity:0;transition:grid-template-rows .32s var(--ease-out), opacity .2s ease;grid-template-rows:0fr;display:grid}.color-custom.open{opacity:1;grid-template-rows:1fr}.color-custom-inner{flex-direction:column;align-items:center;gap:14px;min-height:0;display:flex;overflow:hidden}.color-custom.open .color-custom-inner{padding:12px 0 4px}.color-wheel{aspect-ratio:1;cursor:crosshair;touch-action:none;width:184px;transition:transform .42s var(--spring);background:radial-gradient(closest-side,#fff,#fff0),conic-gradient(red,#ff0,#0f0,#0ff,#00f,#f0f,red);border-radius:50%;flex:none;position:relative;transform:scale(.94);box-shadow:0 0 0 .5px #ffffff24}.color-custom.open .color-wheel{transform:none}.color-wheel:after{content:"";opacity:var(--dim);pointer-events:none;background:#000;border-radius:50%;position:absolute;inset:0}.color-wheel:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.color-wheel-thumb{z-index:1;width:22px;height:22px;transition:transform .2s var(--ease-out);pointer-events:none;border:3px solid #fff;border-radius:50%;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 0 .5px #0000004d,0 3px 10px #00000059}.color-wheel.dragging .color-wheel-thumb{transform:translate(-50%,-50%)scale(1.3)}.color-range{appearance:none;cursor:pointer;background:0 0;width:100%;height:22px;margin:0}.color-range::-webkit-slider-runnable-track{background:linear-gradient(to right, #000, var(--full));border-radius:999px;height:14px;box-shadow:inset 0 0 0 .5px #ffffff24}.color-range::-moz-range-track{background:linear-gradient(to right, #000, var(--full));border-radius:999px;height:14px}.color-range::-webkit-slider-thumb{appearance:none;width:22px;height:22px;transition:transform .16s var(--ease-out);background:#fff;border-radius:50%;margin-top:-4px;box-shadow:0 2px 6px #0006}.color-range::-moz-range-thumb{background:#fff;border:0;border-radius:50%;width:22px;height:22px;box-shadow:0 2px 6px #0006}.color-range:active::-webkit-slider-thumb{transform:scale(1.12)}.color-hex{align-items:center;gap:8px;width:100%;display:flex}.color-hex .field{letter-spacing:.02em;flex:1;font-family:ui-monospace,SF Mono,monospace;font-size:12px}.color-preview{border-radius:8px;flex:none;width:30px;height:30px;transition:background-color .12s;box-shadow:inset 0 0 0 .5px #fff3}.floor-picker{grid-template-columns:repeat(3,1fr);gap:10px 8px;padding:4px 0;display:grid}.floor-picker button{min-width:0;color:var(--fg-2);flex-direction:column;align-items:center;gap:5px;font-size:11px;transition:color .16s;display:flex}.floor-picker img{aspect-ratio:1;width:100%;transition:transform .16s var(--ease-out), box-shadow .2s ease;border-radius:10px;display:block;box-shadow:inset 0 0 0 .5px #ffffff24}.floor-picker button:active img{transform:scale(.95)}.floor-picker button.on{color:var(--fg)}.floor-picker button.on img{box-shadow:0 0 0 2px #1e1e20, 0 0 0 4px var(--accent)}.floor-picker span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}@media (prefers-reduced-motion:reduce){.color-custom,.color-wheel,.color-wheel-thumb{transition:none}}.buttons{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.buttons>button,.inline>button:not(.mini):not(.toggle){background:var(--fill);height:30px;transition:background-color .2s ease, transform .16s var(--ease-out), opacity .2s ease;border-radius:999px;padding:0 14px;font-size:13px;font-weight:500}.buttons.stack{flex-direction:column}.buttons.stack>button{width:100%;height:34px}.buttons>button.primary{background:var(--fg);color:#111}.buttons>button.danger{color:var(--danger)}.buttons>button:active:not(:disabled),.inline>button:active:not(:disabled){transition-duration:.1s;transform:scale(.97)}.buttons>button:disabled{opacity:.4}@media (hover:hover) and (pointer:fine){.buttons>button:not(.primary):not(:disabled):hover,.inline>button:not(.mini):not(.toggle):hover{background:var(--fill-hover)}.buttons>button.primary:not(:disabled):hover{opacity:.88}}.mini{background:var(--fill);width:30px;height:30px;color:var(--fg-2);transition:background-color .2s ease, color .2s ease, transform .16s var(--ease-out);border-radius:8px;place-items:center;display:grid;flex:none!important}.mini:active{transform:scale(.92)}@media (hover:hover) and (pointer:fine){.mini:hover{color:var(--fg);background:var(--fill-hover)}}.hint{color:var(--fg-2);margin:12px 0 0;font-size:12px;line-height:1.45}.warn{color:#ff9f97;background:#ff453a24;border-radius:10px;align-items:center;gap:8px;margin:0 0 10px;padding:8px 10px;display:flex}.warn svg{flex:none}.list{margin:0 0 6px;padding:0;list-style:none}.list li+li{border-top:1px solid var(--separator)}.list button{text-align:left;width:100%;color:var(--fg);grid-template-columns:1fr auto auto;align-items:center;gap:8px;padding:9px 0;display:grid}.list button svg{color:var(--fg-3)}.library{--height:min(520px, calc(100vh - 200px));margin-top:calc(var(--height) / -2);z-index:5;width:400px;max-width:calc(100vw - 120px);height:var(--height);transform-origin:-12px;opacity:0;filter:blur(4px);visibility:hidden;transition:opacity .18s ease, transform .26s var(--ease-out), filter .2s ease, visibility 0s .26s;background:#1e1e20db;border-radius:22px;flex-direction:column;display:flex;position:absolute;top:50%;left:calc(100% + 12px);transform:scale(.92)translate(-8px)}.library.open{opacity:1;filter:none;visibility:visible;transition:opacity .2s ease, transform var(--spring-ms) var(--spring), filter .24s ease, visibility 0s;transform:none}.library.snap{transition:none}.toolbar:has(.library.open) .tip{display:none}.library-search{background:var(--fill-2);height:36px;color:var(--fg-3);border-radius:11px;flex:none;align-items:center;gap:8px;margin:12px 12px 4px;padding:0 10px;display:flex}.library-search:focus-within{color:var(--fg-2)}.library-search input{min-width:0;height:100%;font:inherit;color:var(--fg);background:0 0;border:0;outline:none;flex:1;font-size:14px}.library-search input::placeholder{color:var(--fg-3)}.library-list{overscroll-behavior:contain;scrollbar-width:none;flex:1;min-height:0;padding:0 12px 12px;overflow-y:auto;-webkit-mask-image:linear-gradient(#0000,#000 10px);mask-image:linear-gradient(#0000,#000 10px)}.library h3{color:var(--fg-2);margin:14px 10px 4px;font-size:12px;font-weight:600}.library-grid{grid-template-columns:repeat(2,1fr);gap:2px;display:grid}.tile{min-width:0;height:40px;color:var(--fg);cursor:grab;-webkit-user-select:none;user-select:none;transition:background-color .16s ease, transform .16s var(--ease-out);border-radius:10px;align-items:center;gap:10px;padding:0 10px;display:flex}.tile svg{color:var(--fg-2);flex:none;transition:color .16s}.tile span{white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:500;overflow:hidden}.tile:active{transition-duration:.1s;transform:scale(.97)}@media (hover:hover) and (pointer:fine){.tile:hover{background:var(--fill-2)}.tile:hover svg{color:var(--fg)}}.library-empty{color:var(--fg-2);text-align:center;margin:96px 24px 0}@media (prefers-reduced-motion:reduce){.library,.library.open{filter:none;transform:none}}@media (prefers-reduced-transparency:reduce){.library{background:#1e1e20}}.spinner{border:2px solid #ffffff40;border-top-color:currentColor;border-radius:50%;width:14px;height:14px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.room-label{-webkit-backdrop-filter:blur(16px)saturate(1.5);backdrop-filter:blur(16px)saturate(1.5);color:var(--fg);white-space:nowrap;pointer-events:none;background:#1e1e20b8;border-radius:12px;flex-direction:column;align-items:center;gap:1px;padding:5px 11px 6px;display:flex;box-shadow:inset 0 0 0 .5px #ffffff1a,0 4px 14px #0000004d}.room-name{letter-spacing:-.01em;font-size:13px;font-weight:600}.room-area{color:var(--fg-2);font-variant-numeric:tabular-nums;font-size:11px}.dim-label{background:var(--material-strong);color:var(--fg);font-variant-numeric:tabular-nums;white-space:nowrap;pointer-events:none;border-radius:999px;padding:4px 9px;font-size:12px;font-weight:600;box-shadow:inset 0 0 0 .5px #ffffff1a,0 4px 12px #0000004d}@media (width<=1100px){.panel{width:264px}}@media (width<=760px){:root{--gutter:16px}.title{top:18px;right:290px}h1{font-size:22px}.top-right{top:14px}.top-right .edit-button,.top-right .connect{display:none}.segmented.material button{padding:0 12px}.dock{bottom:16px}.floors{bottom:72px}.dock button{padding:0 12px;font-size:13px}}@media (width<=480px){.title{right:180px}.top-right .segmented{width:max-content;position:absolute;top:50px;right:0}.walk-hint{top:112px}}@media (prefers-reduced-motion:reduce){.toolbar,.panel,.hud:not(.editing) .toolbar,.hud:not(.editing) .panel{transform:none}.hud.editing .dock{transform:translate(-50%)}.segmented-thumb,.toggle span{transition-duration:0s}.spinner{animation-duration:2s}}:root{--toast-width:296px;--toast-bottom:24px}.toaster{transition:opacity .28s,transform .4s}.toast-card{width:var(--width);-webkit-user-select:none;user-select:none;background:#262628e6;border-radius:18px;overflow:hidden}.toast-inner{align-items:center;gap:11px;min-height:56px;padding:11px 12px 11px 14px;transition:opacity .2s;display:flex}[data-sonner-toast][data-expanded=false][data-front=false] .toast-inner{opacity:0}.toast-icon{border-radius:50%;flex:none;place-items:center;width:24px;height:24px;display:grid}.toast-inner.has-body{align-items:flex-start}.toast-inner.has-body .toast-icon{margin-top:-3px}.toast-inner.has-body .toast-action{align-self:center}.toast-icon.success{color:#fff;background:#30d158}.toast-icon.error{color:#fff;background:var(--danger)}.toast-icon.info{color:var(--accent);background:var(--accent-tint)}.toast-icon.loading{color:var(--fg)}.toast-text{flex:1;min-width:0}.toast-title{letter-spacing:-.005em;margin:0;font-size:13px;font-weight:600;line-height:1.35}.toast-body{color:var(--fg-2);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:2px 0 0;font-size:12.5px;line-height:1.38;display:-webkit-box;overflow:hidden}.toast-action{background:var(--fill);height:28px;transition:background-color .2s ease, transform .16s var(--ease-out);border-radius:999px;flex:none;padding:0 12px;font-size:12.5px;font-weight:600}.toast-action:active{transition-duration:.1s;transform:scale(.95)}@media (hover:hover) and (pointer:fine){.toast-action:hover{background:var(--fill-hover)}}@media (prefers-reduced-transparency:reduce){.toast-card{background:#262628}}@media (width<=1100px){:root{--toast-width:264px}}@media (width<=760px){:root{--toast-bottom:calc(var(--gutter) + 60px)}}.share{position:relative}.share-pop{z-index:5;transform-origin:calc(100% - 40px) -12px;opacity:0;visibility:hidden;width:320px;transition:opacity .16s ease, transform .22s var(--ease-out), visibility 0s .22s;background:#1e1e20e6;border-radius:18px;padding:14px;position:absolute;top:calc(100% + 10px);right:0;transform:scale(.94)translateY(-6px)}.share-pop.open{opacity:1;visibility:visible;transition:opacity .18s ease, transform var(--spring-ms) var(--spring), visibility 0s;transform:none}.share-making{align-items:center;gap:10px;min-height:24px;display:flex}.share-making p,.share-note{color:var(--fg-2);margin:0;line-height:1.4}.share-note{margin-bottom:10px}.share-link{gap:6px;display:flex}.share-link input{background:var(--fill-2);min-width:0;height:34px;color:var(--fg);font:inherit;font-variant-numeric:tabular-nums;border:0;border-radius:10px;outline:none;flex:1;padding:0 11px;font-size:13px}.share-link button,.share-actions button{background:var(--fill);height:34px;transition:background-color .2s ease, opacity .2s ease, transform .16s var(--ease-out);border-radius:10px;padding:0 14px;font-size:13px;font-weight:600}.share-link button.primary{background:var(--accent);color:#fff}.share-actions{justify-content:space-between;margin-top:12px;display:flex}.share-actions button:disabled{opacity:.45}.share-actions .danger-text{color:#ff6961;background:0 0;padding:0 4px}.share-link button:active:not(:disabled),.share-actions button:active:not(:disabled){transition-duration:.1s;transform:scale(.96)}.viewing{color:var(--fg-2);margin:4px 0 0;font-size:13px}@media (width<=760px){.share-pop{top:60px;left:var(--gutter);right:var(--gutter);width:auto;position:fixed}}@media (prefers-reduced-motion:reduce){.share-pop,.share-pop.open{transform:none}}@media (prefers-reduced-transparency:reduce){.share-pop{background:#1e1e20}}.connect-pop{width:340px}.connect-title{font-family:var(--display);color:var(--fg);margin:0 0 6px;font-size:15px;font-weight:600}.share-link button.wide{flex:1}.share-link button:disabled{opacity:.45}.connect-dot{background:var(--success);width:7px;height:7px;box-shadow:0 0 0 2px var(--material-strong);border-radius:50%;position:absolute;top:7px;right:7px}.connect-dot.working{animation:1.4s ease-in-out infinite connect-pulse}@keyframes connect-pulse{50%{opacity:.55;transform:scale(1.5)}}@media (prefers-reduced-motion:reduce){.connect-dot.working{animation:none}}.connect-status{color:var(--fg);align-items:center;gap:8px;margin:0 0 12px;font-weight:500;display:flex}.connect-led{background:var(--fg-3);border-radius:50%;flex:none;width:8px;height:8px}.connect-led.on{background:var(--success)}.connect-label{color:var(--fg-2);margin:0 0 6px;font-size:12px}.connect-apps{margin-top:14px}.connect-steps{color:var(--fg-2);margin:12px 0 0;padding-left:18px;font-size:12px;line-height:1.45}.connect-steps li+li{margin-top:6px}.connect-steps strong{color:var(--fg);font-weight:600}.connect-command{text-overflow:ellipsis;white-space:nowrap;background:var(--fill-2);max-width:100%;color:var(--fg);text-align:left;border-radius:6px;margin-top:4px;padding:3px 7px;transition:background-color .2s;display:block;overflow:hidden}.connect-inline{color:var(--fg);font:11.5px/1.5 ui-monospace,SF Mono,Menlo,monospace}.connect-command code{font:11.5px/1.5 ui-monospace,SF Mono,Menlo,monospace}@media (hover:hover) and (pointer:fine){.connect-command:hover{background:var(--fill)}}.product{background:var(--fill-2);color:var(--fg-3);border-radius:12px;align-items:center;gap:10px;padding:10px 12px;text-decoration:none;transition:background-color .2s;display:flex}.product-text{flex:1;gap:2px;min-width:0;display:grid}.product-name{color:var(--fg);text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.product .muted{font-size:12px}@media (hover:hover) and (pointer:fine){a.product:hover{background:var(--fill);color:var(--fg-2)}}.list.shopping li{align-items:center;gap:8px;display:flex}.list.shopping button{flex:1;grid-template-columns:1fr auto;min-width:0}.sheet-scrim{z-index:60;padding:var(--gutter);opacity:0;visibility:hidden;background:#00000073;place-items:center;transition:opacity .2s,visibility 0s .2s;display:grid;position:fixed;inset:0}.sheet-scrim.open{opacity:1;visibility:visible;transition:opacity .22s,visibility}.key-sheet{width:min(440px,100%);transition:transform .2s var(--ease-out);background:#1e1e20f0;border-radius:22px;padding:22px 22px 18px;transform:scale(.96)translateY(8px)}.sheet-scrim.open .key-sheet{transition:transform var(--spring-ms) var(--spring);transform:none}.key-sheet h2{font-family:var(--display);letter-spacing:-.02em;margin:0 0 6px;font-size:19px;font-weight:600}.key-lede{color:var(--fg-2);margin:0 0 12px;line-height:1.45}.key-points{color:var(--fg-2);margin:0 0 16px;padding-left:18px;line-height:1.45}.key-points li+li{margin-top:4px}.key-sheet .field{font-variant-numeric:tabular-nums;-webkit-text-security:disc;width:100%;height:38px;font-size:14px}.key-error{color:#ff9f97;margin:8px 0 0;line-height:1.4}.key-actions{align-items:center;gap:8px;margin-top:16px;display:flex}.key-actions a{color:var(--accent);font-weight:500;text-decoration:none}.key-spacer{flex:1}.key-actions button{background:var(--fill);height:32px;transition:background-color .2s ease, opacity .2s ease, transform .16s var(--ease-out);border-radius:999px;padding:0 14px;font-size:13px;font-weight:500}.key-actions button.primary{color:#fff;background:var(--accent)}.key-actions button:disabled{opacity:.45}.key-actions button:active:not(:disabled){transition-duration:.1s;transform:scale(.96)}@media (prefers-reduced-motion:reduce){.key-sheet,.sheet-scrim.open .key-sheet{transform:none}}@media (prefers-reduced-transparency:reduce){.key-sheet{background:#1e1e20}}
