@import url("https://fonts.googleapis.com/css2?family=DM+Mono:wght@500;600&family=Manrope:wght@500;600;700;800&display=swap");.vorm-app{font-family:Manrope,sans-serif;color:#305b5c;background:#e8e2d7;font-synthesis:none;--ink:#305b5c;--ink-strong:#24484a;--paper:rgba(255,251,243,.87);--paper-solid:#fffaf1;--paper-line:rgba(92,103,91,.2);--soft-line:rgba(255,255,255,.72);--muted:#84918d;--cyan:#25bcc7;--cyan-deep:#159aa7;--sand:#e8e2d7;--shadow:0 18px 38px rgba(37,64,63,.14)}.vorm-app,.vorm-app *{box-sizing:border-box}.vorm-app button,.vorm-app input{font:inherit}.vorm-app button{color:inherit}.vorm-app [role=button]:focus-visible,.vorm-app button:focus-visible{outline:2px solid var(--cyan-deep);outline-offset:3px}.vorm-app{position:fixed;inset:0;z-index:50;overflow:hidden;background:var(--sand);-webkit-user-select:none;-moz-user-select:none;user-select:none}.game-header{position:absolute;z-index:30;top:20px;left:24px}.brand{display:flex;color:#294f50;text-decoration:none;text-shadow:0 1px 10px rgba(255,255,255,.76)}.brand>span{display:grid;gap:4px}.brand strong{font-size:21px;font-weight:800;letter-spacing:.18em;line-height:1}.brand small{font:600 8px/1 DM Mono,monospace;letter-spacing:.14em;opacity:.76}.game-stage-nav{position:absolute;z-index:32;top:20px;left:50%;transform:translateX(-50%)}.game-stage-nav,.stage-item{display:flex;align-items:center}.stage-link{width:26px;height:2px;margin:0 10px;background:rgba(48,91,92,.28);border-radius:2px}.stage-link.passed{background:var(--cyan)}.game-stage-nav button{display:flex;align-items:center;gap:8px;padding:6px 2px;border:0;color:var(--ink);background:transparent;font-size:11px;font-weight:800;letter-spacing:.06em;cursor:pointer;text-shadow:0 1px 8px rgba(255,255,255,.8)}.game-stage-nav button:disabled{opacity:.38;cursor:default}.game-stage-nav button:hover:not(:disabled){color:var(--cyan-deep)}.game-stage-nav .stage-dot{width:15px;height:15px;border:2.5px solid rgba(48,91,92,.55);border-radius:50%;background:rgba(255,251,243,.8);box-shadow:0 1px 4px rgba(74,54,24,.18);transition:background .14s ease,border-color .14s ease}.game-stage-nav button.done .stage-dot{border-color:var(--cyan)}.game-stage-nav button.active{color:var(--ink-strong)}.game-stage-nav button.active .stage-dot{border-color:var(--cyan);background:var(--cyan)}.map-hud{position:absolute;z-index:30;top:12px;right:22px;display:flex;align-items:center;justify-content:flex-end;gap:8px;max-width:calc(100vw - 42px);flex-wrap:wrap}.map-hud--3d{top:8px}.history-controls,.segmented{display:flex;align-items:center;min-height:52px;padding:5px;border:1px solid var(--soft-line);border-radius:18px;color:var(--ink);background:rgba(255,251,243,.7);box-shadow:0 10px 26px rgba(79,59,31,.1);backdrop-filter:blur(16px) saturate(112%)}.segmented{gap:2px}.view-switch{padding:4px}.history-controls button,.segmented button{height:40px;display:flex;align-items:center;justify-content:center;gap:8px;padding:0 14px;border:0;border-radius:13px;color:var(--ink);background:transparent;cursor:pointer;font-size:11px;font-weight:800;letter-spacing:.02em}.history-controls{gap:2px;padding:4px;border-radius:14px}.history-controls button{width:40px;padding:0}.history-controls button:hover,.segmented button:hover{color:var(--ink-strong);background:rgba(255,255,255,.64)}.segmented button.active{color:#fff;background:var(--cyan);box-shadow:0 4px 12px rgba(20,151,160,.28)}.history-controls .delete-building:hover{color:#fff;background:#ea7967}button:disabled{opacity:.34;cursor:default}.view-hint{position:absolute;top:58px;right:0;width:218px;padding:10px 13px;border:1px solid var(--soft-line);border-radius:12px;color:var(--ink);background:var(--paper);box-shadow:var(--shadow);font-size:10px;font-weight:600;line-height:1.5}.map-shell{position:absolute;inset:0;overflow:hidden;background:#d9e0d0}.map-shell--3d{background:#e8e2d7}.map-shell--3d:after{content:"";z-index:2;pointer-events:none;opacity:.12;background-image:linear-gradient(30deg,transparent 48.8%,rgba(80,113,108,.2) 49%,transparent 50.2%),linear-gradient(150deg,transparent 48.8%,rgba(80,113,108,.2) 49%,transparent 50.2%);background-size:96px 55px;-webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,.38),transparent 73%);mask-image:linear-gradient(180deg,rgba(0,0,0,.38),transparent 73%)}.map-shell .map,.map-shell--3d:after{position:absolute;inset:0}.map-shell .map.maplibregl-map{position:absolute}.maplibregl-canvas{outline:none}.maplibregl-ctrl-attrib{padding:3px 7px!important;color:var(--ink)!important;background:rgba(255,250,242,.68)!important;border-radius:7px!important;font-size:8px!important;backdrop-filter:blur(10px)}.maplibregl-ctrl-attrib a{color:var(--ink-strong)!important}.maplibregl-ctrl-bottom-right{right:15px;bottom:14px}.notice,.placement-picker,.placement-status,.study-card,.tile-error,.volume-panel{border:1px solid var(--soft-line);box-shadow:var(--shadow);backdrop-filter:blur(16px) saturate(112%)}.placement-status{position:absolute;z-index:10;left:50%;bottom:30px;display:flex;align-items:center;gap:7px;padding:11px 17px;border-radius:999px;color:var(--ink);background:var(--paper);font-size:10px;font-weight:800;transform:translateX(-50%);pointer-events:none;white-space:nowrap}.pulse-dot{width:7px;height:7px;border-radius:50%;background:var(--cyan);box-shadow:0 0 0 5px rgba(37,188,199,.15);animation:pulse 1.5s ease-out infinite}@keyframes pulse{50%{box-shadow:0 0 0 10px transparent}}.placement-picker{position:absolute;z-index:20;top:50%;left:50%;width:430px;padding:13px;border-radius:21px;color:var(--ink);background:rgba(255,251,243,.92);transform:translate(-50%,-50%)}.placement-picker>strong{display:flex;align-items:center;gap:9px;height:39px;padding:0 9px;color:var(--ink-strong);font-size:12px;letter-spacing:.02em}.placement-picker>div{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.placement-picker button{height:84px;display:grid;place-items:center;gap:4px;padding:9px 5px;border:1px solid var(--paper-line);border-radius:13px;color:var(--ink);background:rgba(255,255,255,.5);cursor:pointer;font-size:10px;font-weight:800}.placement-picker button:hover{color:#fff;border-color:var(--cyan);background:var(--cyan);transform:translateY(-2px);box-shadow:0 7px 13px rgba(37,188,199,.21)}.placement-picker button svg{width:33px;height:33px;fill:currentColor}.tile-error{position:absolute;z-index:35;top:76px;left:50%;max-width:min(420px,calc(100vw - 40px));padding:10px 14px;border-color:rgba(225,105,84,.44);border-radius:10px;color:#a24231;background:#fff5ee;font-size:10px;transform:translateX(-50%)}.editor-overlay{position:absolute;z-index:5;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}.pmc-hit-target{fill:rgba(0,0,0,.001);stroke:transparent;stroke-width:8;pointer-events:all;cursor:pointer;touch-action:none}.pmc-hit-target:focus{outline:none;stroke:#ffffff;stroke-width:2}.pmc-hit-target.selected{fill:rgba(79,224,234,.14);stroke:#0d9ead;stroke-width:4;filter:drop-shadow(0 0 6px rgba(37,188,199,.82));animation:unit-select-pop .42s ease-out both}@keyframes unit-select-pop{0%{opacity:.15;stroke-width:9}to{opacity:1;stroke-width:4}}.move-surface{fill:rgba(37,188,199,.17);stroke:transparent;stroke-width:18;cursor:move;pointer-events:all;touch-action:none}.courtyard-boundary{fill:none;stroke:var(--cyan);stroke-width:2.5;stroke-dasharray:5 4;opacity:.86}.edge-hit{fill:none;stroke:transparent;stroke-width:19;pointer-events:stroke;cursor:grab;touch-action:none}.edge-hit:active{cursor:grabbing}.edge-selection{fill:none;stroke:var(--cyan);stroke-width:5;pointer-events:none;filter:drop-shadow(0 2px 5px rgba(0,125,137,.36))}.edge-resize-arrow .arrow-shape{fill:#35c3d2;stroke:#fffdf7;stroke-width:1.4;stroke-linejoin:round;transition:fill .14s ease;filter:drop-shadow(0 3px 6px rgba(10,87,91,.3))}.edge-resize-arrow{animation:arrow-bob 2.2s ease-in-out infinite}@keyframes arrow-bob{50%{opacity:.8}}.edge-hit:hover~.edge-resize-arrow .arrow-shape{fill:#12aebd}.arrow-hit{fill:rgba(0,0,0,.001);pointer-events:all;cursor:ew-resize;touch-action:none}.edge-resize-arrow--facade{animation:none}.facade-handle:hover .arrow-shape{fill:#12aebd}.exact-size-control{position:absolute;z-index:40;width:218px;padding:12px;border:1px solid var(--soft-line);border-radius:15px;color:var(--ink);background:rgba(255,251,243,.96);box-shadow:var(--shadow);backdrop-filter:blur(14px);transform:translate(-50%,calc(-100% - 34px));animation:panel-in .16s ease-out both}.exact-size-control header{display:flex;align-items:start;justify-content:space-between;gap:8px;padding-bottom:9px}.exact-size-control header span{display:grid;gap:3px}.exact-size-control header small{color:var(--muted);font-size:8px;font-weight:800;letter-spacing:.12em}.exact-size-control header strong{color:var(--ink-strong);font-size:10px}.exact-size-control header button{width:24px;height:24px;display:grid;place-items:center;margin:-3px -3px 0 0;border:1px solid var(--paper-line);border-radius:8px;color:var(--ink);background:rgba(255,255,255,.54);cursor:pointer}.exact-size-control header button:hover{color:#fff;border-color:var(--cyan);background:var(--cyan)}.exact-size-value{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;padding:4px 0 8px}.exact-size-value button{width:28px;height:28px;display:grid;place-items:center;border:1px solid rgba(48,91,92,.18);border-radius:8px;color:var(--ink);background:rgba(255,255,255,.5);cursor:pointer}.exact-size-value button:hover{color:#fff;border-color:var(--cyan);background:var(--cyan)}.exact-size-value output{color:var(--ink-strong);text-align:center;font:700 19px/1 DM Mono,monospace}.exact-size-control input{width:100%;margin:0 0 10px;accent-color:var(--cyan);cursor:ew-resize}.exact-size-apply{width:100%;height:34px;display:flex;align-items:center;justify-content:center;gap:6px;border:0;border-radius:10px;color:#fff;background:var(--cyan);font-size:11px;font-weight:800;cursor:pointer}.exact-size-apply:hover{background:#20aeb9}.floor-control{pointer-events:none}.floor-step{pointer-events:all;cursor:pointer}.floor-step-shape{fill:#35c3d2;stroke:#fffdf7;stroke-width:1.4;stroke-linejoin:round;transition:fill .14s ease,transform .14s ease;filter:drop-shadow(0 3px 6px rgba(10,87,91,.3))}.floor-step:hover .floor-step-shape{fill:#12aebd}.floor-step.disabled{pointer-events:none}.floor-step.disabled .floor-step-shape{fill:#b9c4c2}.vertex{fill:#fffdf7;stroke:var(--cyan-deep);stroke-width:3;cursor:pointer;pointer-events:all;filter:drop-shadow(0 3px 5px rgba(10,87,91,.26));touch-action:none}.vertex.selected{fill:var(--cyan);stroke-width:4}.svg-button{pointer-events:all;cursor:pointer}.midpoint-button circle{fill:#fffdf7;stroke:var(--cyan-deep);stroke-width:2;filter:drop-shadow(0 2px 4px rgba(10,87,91,.24))}.midpoint-button path{stroke:var(--cyan-deep);stroke-width:1.5;pointer-events:none}.vertex-delete circle{fill:#fff8f2;stroke:#e06452;stroke-width:2;filter:drop-shadow(0 2px 5px rgba(91,32,24,.25))}.vertex-delete path{fill:none;stroke:#d85140;stroke-width:2;stroke-linecap:round;pointer-events:none}.vertex-delete:hover circle{fill:#e06452}.vertex-delete:hover path{stroke:#fff}.edge-label{pointer-events:none}.area-label rect,.edge-label rect{fill:rgba(255,251,243,.92);stroke:rgba(37,188,199,.65);stroke-width:1}.area-label text,.edge-label text{fill:var(--ink-strong);stroke:none;font:600 11px/1 DM Mono,monospace}.area-label{pointer-events:none;filter:drop-shadow(0 3px 6px rgba(47,73,64,.18))}.rotate-handle circle{fill:#fffdf7;stroke:var(--cyan-deep);stroke-width:2;pointer-events:all;cursor:grab;touch-action:none;filter:drop-shadow(0 4px 8px rgba(10,87,91,.28))}.rotate-handle svg{stroke:var(--cyan-deep)}.study-card{position:absolute;z-index:30;top:132px;left:60px;width:180px;overflow:hidden;border-radius:17px;color:var(--ink);background:var(--paper)}.study-summary{display:grid;gap:3px;padding:15px 17px 13px}.panel-label>span,.study-controls>span,.study-summary>span{color:var(--muted);font-size:8px;font-weight:800;letter-spacing:.13em}.study-summary strong{font-size:22px;line-height:1.04;letter-spacing:-.045em}.study-summary small{color:var(--muted);font-size:9px;line-height:1.35}.study-controls{display:grid;grid-template-columns:1fr auto;gap:10px 6px;padding:14px 17px 13px;border-top:1px solid var(--paper-line)}.study-controls input{grid-column:1/-1;width:100%;margin:0;accent-color:var(--cyan);cursor:ew-resize}.floor-stepper{display:flex;align-items:center;gap:6px}.floor-stepper button{width:31px;height:31px;display:grid;place-items:center;padding:0;border:1px solid rgba(48,91,92,.18);border-radius:9px;color:var(--ink);background:rgba(255,255,255,.48);cursor:pointer}.floor-stepper button:hover{color:#fff;border-color:var(--cyan);background:var(--cyan)}.floor-stepper output{min-width:28px;color:var(--ink-strong);text-align:center;font:700 22px/1 DM Mono,monospace}.study-shape-button{width:calc(100% - 22px);height:34px;display:flex;align-items:center;justify-content:center;gap:7px;margin:0 11px 12px;border:1px solid rgba(48,91,92,.16);border-radius:9px;color:var(--ink);background:rgba(255,255,255,.48);font-size:9px;font-weight:800;cursor:pointer}.study-shape-button:hover{color:#fff;border-color:var(--cyan);background:var(--cyan)}.volume-panel{position:absolute;z-index:32;width:408px;padding:10px;border-radius:19px;color:var(--ink);background:rgba(255,251,243,.94);animation:panel-in .22s ease-out both;touch-action:none}@keyframes panel-in{0%{opacity:0;transform:translateY(10px) scale(.98)}}.panel-grip{height:46px;display:flex;align-items:center;justify-content:space-between;padding:0 8px 0 10px;border-bottom:1px solid var(--paper-line);cursor:grab}.panel-grip:active{cursor:grabbing}.panel-grip>span{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:800}.panel-area,.panel-grip>span svg{color:var(--cyan-deep)}.panel-area{font:600 9px/1 DM Mono,monospace}.pmc-panel{display:grid;gap:13px;padding:16px 10px 11px}.panel-label{display:flex;align-items:center;justify-content:space-between}.panel-label strong{color:var(--cyan-deep);font:600 10px/1 DM Mono,monospace}.preview-caption{height:45px;margin:-2px 0 1px;color:var(--muted);font-size:10px;line-height:1.5}.layout-metrics{display:grid;height:72px;grid-template-columns:1fr 1fr;gap:7px;padding:8px 9px;border:1px solid rgba(37,188,199,.19);border-radius:9px;background:rgba(218,250,247,.48);color:var(--ink);font-size:8px;font-weight:700}.layout-metrics span{flex:1;display:grid;gap:2px}.layout-metrics b{color:var(--cyan-deep);font:700 13px/1 DM Mono,monospace}.layout-metrics .layout-actual-mix{grid-column:1/-1;display:flex;align-items:baseline;gap:7px;padding-top:6px;border-top:1px solid rgba(48,91,92,.12);color:var(--ink-strong);font:700 9px/1.25 DM Mono,monospace}.layout-metrics--pending{grid-template-columns:1fr;align-items:center;background:rgba(232,239,231,.58)}.layout-metrics-status{display:flex;align-items:baseline;gap:7px;color:var(--muted)}.layout-metrics-status b{min-width:16px;color:var(--cyan-deep)}.layout-actual-mix i{flex:0 0 auto;color:var(--muted);font:800 7px/1 DM Sans,sans-serif;font-style:normal;letter-spacing:.1em}.optimization-control{display:grid;gap:7px;padding:9px;border:1px solid rgba(48,91,92,.14);border-radius:9px;background:rgba(255,255,255,.42)}.optimization-control>span{color:var(--muted);font-size:8px;font-weight:800;letter-spacing:.11em}.optimization-control>div{display:grid;grid-template-columns:1fr 1.35fr;gap:5px}.optimization-control button{min-height:34px;padding:0 8px;border:1px solid rgba(48,91,92,.14);border-radius:8px;color:var(--ink);background:rgba(255,255,255,.66);font-size:9px;font-weight:800;cursor:pointer}.optimization-control button:hover{border-color:var(--cyan)}.optimization-control button.active{color:#fff;border-color:var(--cyan);background:var(--cyan);box-shadow:0 4px 10px rgba(37,188,199,.2)}.mix-row{display:grid;grid-template-columns:9px 49px 1fr 38px;align-items:center;gap:8px;font-size:10px}.pmc-dot{width:9px;height:9px;border-radius:50%}.pmc-6{background:#22b8c5}.pmc-7{background:#efbd49}.pmc-8{background:#9274d7}.pmc-16{background:#ed7764}.pmc-name{color:var(--ink);font-weight:800}.mix-row input{width:100%;accent-color:var(--cyan);cursor:ew-resize}.mix-row output{color:var(--ink-strong);text-align:right;font:600 10px/1 DM Mono,monospace}.pmc-inspector,.shape-panel{position:absolute;z-index:31;border:1px solid var(--soft-line);border-radius:19px;color:var(--ink);background:rgba(255,251,243,.91);box-shadow:var(--shadow);backdrop-filter:blur(16px) saturate(112%)}.shape-panel{top:105px;left:24px;width:396px;padding:14px}.shape-panel>div{display:flex;align-items:end;justify-content:space-between;gap:12px;padding:0 3px 12px}.inspector-grid span,.pmc-inspector small,.shape-panel>div span{color:var(--muted);font-size:9px;font-weight:800;letter-spacing:.11em}.shape-panel>div strong{color:var(--ink-strong);font-size:11px}.shape-panel nav{display:grid;grid-template-columns:repeat(5,1fr);gap:7px}.shape-panel button{min-height:70px;display:grid;place-items:center;gap:5px;padding:8px 4px;border:1px solid var(--paper-line);border-radius:12px;color:var(--ink);background:rgba(255,255,255,.52);cursor:pointer;font-size:10px;font-weight:800}.shape-panel button:hover{color:#fff;border-color:var(--cyan);background:var(--cyan);box-shadow:0 6px 13px rgba(37,188,199,.2);transform:translateY(-1px)}.shape-panel button svg{width:28px;height:28px;fill:currentColor}.shape-panel p{margin:12px 3px 1px;color:var(--muted);font-size:10px;font-weight:600;line-height:1.45}.scene-shape-panel{position:absolute;z-index:32;top:132px;left:60px;width:236px;padding:13px;border:1px solid var(--soft-line);border-radius:17px;color:var(--ink);background:rgba(255,251,243,.94);box-shadow:var(--shadow);backdrop-filter:blur(16px) saturate(112%)}.scene-shape-panel header{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:8px;font-weight:800;letter-spacing:.13em}.scene-shape-panel header button{width:26px;height:26px;display:grid;place-items:center;margin:-5px -5px 0 0;border:1px solid var(--paper-line);border-radius:8px;color:var(--ink);background:rgba(255,255,255,.54);cursor:pointer}.scene-shape-panel header button:hover{color:#fff;border-color:var(--cyan);background:var(--cyan)}.scene-shape-panel>strong{display:block;margin:6px 0 10px;color:var(--ink-strong);font-size:12px}.scene-shape-panel nav{display:grid;grid-template-columns:repeat(5,1fr);gap:5px}.scene-shape-panel nav button{min-height:57px;display:grid;place-items:center;gap:4px;padding:6px 2px;border:1px solid var(--paper-line);border-radius:9px;color:var(--ink);background:rgba(255,255,255,.52);font-size:8px;font-weight:800;cursor:pointer}.scene-shape-panel nav button:hover{color:#fff;border-color:var(--cyan);background:var(--cyan)}.scene-shape-panel nav svg{width:21px;height:21px;fill:currentColor}.scene-shape-panel p{margin:10px 2px 1px;color:var(--muted);font-size:9px;font-weight:600;line-height:1.45}.pmc-inspector{top:74px;right:24px;width:360px;padding:13px;max-height:calc(100vh - 348px);overflow-y:auto}.pmc-inspector header{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:9px;padding:2px 2px 13px;border-bottom:1px solid var(--paper-line)}.pmc-inspector header .pmc-dot{width:12px;height:12px}.pmc-inspector header div{display:grid;gap:3px}.pmc-inspector header strong{color:var(--ink-strong);font-size:16px;line-height:1}.pmc-inspector header button{width:34px;height:34px;display:grid;place-items:center;padding:0;border:1px solid var(--paper-line);border-radius:10px;color:var(--ink);background:rgba(255,255,255,.54);cursor:pointer}.pmc-inspector header button:hover{color:#fff;background:var(--cyan);border-color:var(--cyan)}.inspector-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:13px 0 0}.inspector-grid section{display:grid;gap:6px;min-height:70px;padding:10px;border:1px solid rgba(37,188,199,.16);border-radius:11px;background:rgba(218,250,247,.35)}.inspector-grid strong{display:grid;gap:4px;color:var(--ink-strong);font:700 14px/1.1 DM Mono,monospace}.inspector-grid strong small{color:var(--cyan-deep);font:700 11px/1 DM Mono,monospace;letter-spacing:0}.pmc-inspector>p{margin:11px 2px 1px;color:var(--muted);font-size:10px;line-height:1.45}.inspector-plan{margin-top:12px;padding:8px;border:1px solid var(--paper-line);border-radius:12px;background:rgba(255,255,255,.6)}.inspector-plan svg{display:block;width:100%;height:auto;max-height:190px}.depth-control{display:grid;gap:6px;margin-top:12px;padding:10px;border:1px solid rgba(37,188,199,.16);border-radius:11px;background:rgba(218,250,247,.35)}.depth-control>span{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:9px;font-weight:800;letter-spacing:.11em}.depth-control output{color:var(--cyan-deep);font:700 11px/1 DM Mono,monospace;letter-spacing:0}.depth-control input{width:100%;accent-color:var(--cyan);cursor:ew-resize}.depth-nudges{display:grid;grid-template-columns:1fr 1fr;gap:7px}.delete-units,.depth-nudges button{display:flex;align-items:center;justify-content:center;gap:6px;min-height:34px;border:1px solid rgba(37,188,199,.25);border-radius:9px;color:var(--cyan-deep);background:rgba(255,255,255,.7);font:800 10px/1 DM Sans,sans-serif;cursor:pointer}.depth-nudges button:hover{color:#fff;border-color:var(--cyan);background:var(--cyan)}.delete-units{width:100%;margin-top:10px;color:#873b2e;border-color:rgba(180,72,52,.22);background:rgba(255,245,239,.76)}.delete-units:hover{color:#fff;border-color:#b44834;background:#b44834}.architecture-overlay{z-index:18}.apartment-depth-handle{pointer-events:none;filter:drop-shadow(0 3px 5px rgba(19,54,56,.25))}.apartment-depth-handle>path{fill:var(--cyan);stroke:#fffdf7;stroke-width:1.4}.apartment-depth-handle>g{pointer-events:all;cursor:ew-resize}.apartment-depth-handle circle{fill:transparent}.apartment-depth-handle>g:focus-visible circle{fill:rgba(255,255,255,.28);stroke:#fff;stroke-width:1.5}.inspector-actions{margin-top:12px}.inspector-actions button{width:100%;height:40px;display:flex;align-items:center;justify-content:center;gap:7px;border:0;border-radius:11px;color:#fff;background:var(--cyan);box-shadow:0 5px 13px rgba(37,188,199,.21);font-size:11px;font-weight:800;cursor:pointer}.inspector-actions button:hover{background:#20aeb9;transform:translateY(-1px)}.stat-badges{position:absolute;z-index:31;left:22px;bottom:96px;display:grid;gap:6px;justify-items:start}.stat-badges span{display:flex;align-items:baseline;gap:6px;padding:8px 13px;border:1px solid var(--soft-line);border-radius:999px;color:var(--ink);background:rgba(255,251,243,.9);box-shadow:0 8px 18px rgba(79,59,31,.1);backdrop-filter:blur(10px);font-size:10px;font-weight:800}.stat-badges span b{color:var(--cyan-deep);font:700 15px/1 DM Mono,monospace}.section-dot{pointer-events:all;cursor:pointer}.section-dot .section-dot-hit{fill:transparent}.section-dot .section-dot-core{fill:rgba(255,251,243,.95);stroke:var(--cyan-deep);stroke-width:2;transition:fill .12s ease}.section-dot:focus-visible .section-dot-core,.section-dot:hover .section-dot-core{fill:var(--cyan);stroke:#fff}.section-dot.active .section-dot-core{fill:var(--cyan-deep);stroke:#fff}.pmc-legend{position:absolute;z-index:31;right:22px;bottom:22px;display:flex;gap:6px}.pmc-legend span{display:flex;align-items:center;gap:6px;padding:7px 10px;border:1px solid var(--soft-line);border-radius:999px;color:var(--ink);background:rgba(255,251,243,.88);box-shadow:0 8px 18px rgba(79,59,31,.1);backdrop-filter:blur(10px);font-size:9px;font-weight:800}.pmc-legend span b{color:var(--cyan-deep);font:700 9px/1 DM Mono,monospace}.pmc-legend span.empty{opacity:.45}.pmc-legend span.empty b{color:var(--muted)}.radial-menu{position:absolute;z-index:33;right:40px;bottom:62px;width:198px;height:198px;filter:drop-shadow(0 16px 30px rgba(52,63,58,.24))}.radial-menu>svg{position:absolute;inset:0;width:100%;height:100%}.radial-btn svg{width:16px;height:16px;flex:none}.radial-path{fill:rgba(255,251,243,.96);stroke:rgba(210,200,180,.8);stroke-width:.7;pointer-events:none;transition:fill .14s ease}.radial-path.active{fill:var(--cyan);stroke:rgba(255,255,255,.65)}.radial-path.accent{fill:#ed8a64;stroke:rgba(255,255,255,.6)}.radial-hub-ring{fill:var(--sand);stroke:rgba(255,251,243,.95);stroke-width:3}.radial-btn{position:absolute;display:flex;flex-direction:column;align-items:center;gap:3px;width:76px;padding:8px 0;border:0;background:transparent;color:var(--ink);font-size:9.5px;font-weight:800;letter-spacing:.02em;cursor:pointer;transform:translate(-50%,-50%)}.radial-btn:hover{color:var(--cyan-deep)}.radial-btn.accent,.radial-btn.accent:hover,.radial-btn.active,.radial-btn.active:hover{color:#fff}.radial-btn small{font-size:inherit}.map-widgets{position:absolute;z-index:12;left:22px;bottom:18px;display:flex;align-items:flex-end;gap:16px;pointer-events:none}.scale-bar{display:grid;gap:3px}.scale-blocks{display:flex;height:5px;border:1px solid rgba(43,66,64,.75)}.scale-blocks i{flex:1;background:rgba(43,66,64,.78)}.scale-blocks i:nth-child(2n){background:rgba(255,251,243,.9)}.scale-labels{display:flex;justify-content:space-between;color:var(--ink);font:700 8px/1 DM Mono,monospace;text-shadow:0 1px 6px rgba(255,255,255,.85)}.compass{pointer-events:all;width:40px;height:40px;display:grid;place-items:center;border:1px solid var(--soft-line);border-radius:50%;background:rgba(255,251,243,.88);box-shadow:0 8px 18px rgba(79,59,31,.12);cursor:pointer}.compass span{display:grid;place-items:center;transition:transform .16s ease}.compass b{font-size:8px;font-weight:800;color:var(--ink-strong);line-height:1}.compass svg{width:9px;height:13px;fill:var(--ink-strong)}.compass:hover{border-color:var(--cyan)}.coords{color:var(--ink);font:700 9px/1.2 DM Mono,monospace;text-shadow:0 1px 6px rgba(255,255,255,.85)}.apartment-stage{position:absolute;z-index:38;inset:0;display:grid;grid-template-rows:auto 1fr auto;gap:6px;padding:74px 24px 76px;background:rgba(248,243,232,.93);backdrop-filter:blur(9px);animation:panel-in .2s ease-out both}.apartment-stage header{display:grid;grid-template-columns:auto auto 1fr auto;align-items:center;gap:12px;width:min(860px,100%);margin:0 auto;padding:12px 16px;border:1px solid var(--soft-line);border-radius:16px;background:rgba(255,251,243,.92);box-shadow:var(--shadow)}.apartment-stage header .pmc-dot{width:13px;height:13px}.apartment-stage header div{display:grid;gap:3px}.apartment-stage header small{color:var(--muted);font-size:8px;font-weight:800;letter-spacing:.13em}.apartment-stage header strong{color:var(--ink-strong);font-size:17px;line-height:1}.apartment-stage header output{color:var(--cyan-deep);text-align:right;font:700 14px/1 DM Mono,monospace}.apartment-stage header button{width:34px;height:34px;display:grid;place-items:center;border:1px solid var(--paper-line);border-radius:10px;color:var(--ink);background:rgba(255,255,255,.6);cursor:pointer}.apartment-stage header button:hover{color:#fff;border-color:var(--cyan);background:var(--cyan)}.apartment-canvas{min-height:320px;height:100%;display:grid;place-items:stretch}.apartment-canvas>*{width:100%;height:100%}.apartment-missing{margin:auto;color:var(--muted);font-size:12px;font-weight:700}.apartment-stage footer{color:var(--muted);text-align:center;font-size:9px;font-weight:700;letter-spacing:.04em}.notice{position:absolute;z-index:45;top:18px;left:50%;max-width:min(420px,calc(100vw - 40px));padding:10px 14px;border-radius:12px;color:var(--ink);background:var(--paper-solid);font-size:10px;font-weight:700;transform:translateX(-50%);animation:toast-in .17s ease-out both}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,-7px)}}@media (max-width:640px){.game-header{top:16px;left:16px}.brand strong{font-size:15px}.brand small{display:none}.map-hud{top:8px;right:8px;gap:4px}.history-controls,.segmented{min-height:42px;padding:3px;border-radius:14px}.segmented button{height:34px;padding:0 8px}.segmented button svg{display:none}.history-controls button{width:34px;height:34px}.view-hint{top:52px;width:196px}.placement-picker{width:min(430px,calc(100vw - 28px))}.placement-picker button{height:72px;font-size:9px}.placement-picker button svg{width:26px;height:26px}.study-card{top:76px;left:12px;width:164px}.scene-shape-panel{top:76px}.scene-shape-panel,.shape-panel{left:12px;width:calc(100vw - 24px)}.shape-panel{top:72px}.shape-panel button{min-height:60px;font-size:9px}.pmc-inspector{top:72px;right:12px;width:calc(100vw - 24px)}.volume-panel{width:calc(100vw - 24px);max-width:408px}.game-stage-nav{top:16px}.game-stage-nav button{font-size:0;gap:0}.stage-link{width:14px;margin:0 5px}.radial-menu{right:14px;bottom:54px;width:138px;height:138px}.pmc-legend{display:none}.map-widgets{left:12px;bottom:12px;gap:10px}}@media (prefers-reduced-motion:reduce){*,:after,:before{transition-duration:.01ms!important;animation-duration:.01ms!important}}.vorm-app .brand strong{letter-spacing:-.05em;font-size:25px}.vorm-app .game-stage-nav{background:var(--paper);padding:7px 14px;border:1px solid var(--soft-line);border-radius:14px;box-shadow:var(--shadow);backdrop-filter:blur(16px)}.vorm-app .game-stage-nav .stage-dot{display:grid;place-items:center;width:23px;height:23px;border-width:1px}.vorm-app .stage-link{width:18px;margin:0 8px;position:relative}.vorm-app .stage-link:after{content:"";position:absolute;right:0;top:-3px;width:7px;height:7px;border-top:2px solid var(--muted);border-right:2px solid var(--muted);transform:rotate(45deg)}.vorm-app .game-stage-nav button.active{color:var(--paper-solid);border-radius:9px;padding:8px 10px;text-shadow:none}.vorm-app .project-summary{position:absolute;right:24px;top:100px;bottom:85px;width:292px;overflow:auto;z-index:21;background:var(--paper);border:1px solid var(--soft-line);border-radius:20px;padding:23px;box-shadow:var(--shadow);backdrop-filter:blur(20px)}.vorm-app .project-summary h2{font-size:27px;letter-spacing:-.05em;margin:5px 0 22px}.vorm-app .project-summary small{font-size:9px;letter-spacing:.16em}.vorm-app .summary-metrics{display:grid;gap:15px}.vorm-app .summary-metrics div{gap:3px}.vorm-app .project-summary p,.vorm-app .summary-metrics span{font-size:11px;line-height:1.65}.vorm-app .summary-metrics strong{font-size:21px;letter-spacing:-.03em}.vorm-app .summary-mix{border-block:1px solid var(--paper-line);padding:14px 0;margin:18px 0;display:grid;gap:10px}.vorm-app .summary-mix div,.vorm-app .summary-mix span{display:flex;align-items:center;justify-content:space-between;gap:7px}.vorm-app .project-summary h3{font-size:12px;margin:20px 0 10px}.vorm-app .finish-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.vorm-app .cost-breakdown{display:grid;gap:6px;padding:12px 0;margin-top:14px;border-top:1px solid var(--paper-line);font-size:9px}.vorm-app .cost-breakdown span{display:flex;justify-content:space-between;gap:8px}.vorm-app .finish-grid button{display:flex;align-items:center;gap:6px;text-align:left;background:var(--paper);border:1px solid var(--paper-line);border-radius:8px;padding:7px 5px;font-size:9px;cursor:pointer}.vorm-app .finish-grid button span{display:grid;gap:2px}.vorm-app .finish-grid button small{font-size:7px;letter-spacing:0;color:var(--muted)}.vorm-app .finish-grid button.active{border-color:var(--cyan-deep);box-shadow:0 0 0 1px var(--cyan-deep)}.vorm-app .finish-grid i{width:22px;height:27px;border-radius:4px;flex-shrink:0;box-shadow:inset 2px 0 3px #0002}.vorm-app .option-row{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:10px;margin-top:12px}.vorm-app .option-row select{max-width:150px;padding:7px;border:1px solid var(--paper-line);border-radius:7px;background:var(--paper-solid);color:var(--ink);font-size:10px}.vorm-app .estimate-note{font-size:9px!important;line-height:1.6;opacity:.7}.vorm-app .pmc-inspector{top:100px;bottom:85px;max-height:none;overflow:auto}.vorm-app .map-shell--3d:after{background:radial-gradient(ellipse at 38% 40%,transparent 38%,#57412b 130%);opacity:.13;-webkit-mask-image:none;mask-image:none}@media(max-width:1000px){.vorm-app .game-stage-nav{top:65px}.vorm-app .pmc-inspector,.vorm-app .project-summary{top:130px;right:14px;width:260px}.vorm-app .stat-badges{top:140px}}@media(max-width:600px){.vorm-app .game-stage-nav{width:calc(100% - 20px);justify-content:center;padding:5px}.vorm-app .game-stage-nav button{font-size:8px;gap:4px}.vorm-app .stage-link{width:8px;margin:0 4px}.vorm-app .game-stage-nav .stage-dot{width:17px;height:17px}.vorm-app .pmc-inspector,.vorm-app .project-summary{top:auto;bottom:40px;max-height:40vh;width:calc(100% - 28px)}.vorm-app .stat-badges{display:none}}.vorm-app .placement-status button{pointer-events:auto;display:flex;align-items:center;gap:7px;border:0;background:none;cursor:pointer;font-size:11px;font-weight:700}.vorm-app .architecture-summary .summary-metrics{grid-template-columns:1fr 1fr;gap:10px}.vorm-app .architecture-summary .summary-metrics div:first-child{grid-column:1/-1}.vorm-app .architecture-summary .summary-metrics strong{font-size:17px}.vorm-app .architecture-summary .summary-mix{display:none}.vorm-app .architecture-summary h2{margin-bottom:12px}.vorm-app .architecture-summary h3{margin-top:14px}.vorm-app .architecture-summary .estimate-note{margin:10px 0 0}.vorm-app .architecture-summary .finish-grid button{padding:5px}.vorm-app .building-section-control{display:flex;flex-direction:column;gap:8px;padding:12px 0;font-size:12px;color:var(--ink)}.vorm-app .building-section-control select{padding:10px;border:1px solid var(--soft-line);border-radius:8px;background:#fffdf7;color:inherit}.vorm-app .pmc-render-button{position:absolute;left:24px;top:100px;z-index:30;background:#177e85;color:white;border:0;border-radius:24px;padding:12px 24px;font-weight:600;cursor:pointer;box-shadow:0 4px 18px #16363720}.vorm-app .pmc-render-backdrop{position:fixed;inset:0;background:#172b2acc;z-index:100;display:grid;place-items:center;padding:24px}.vorm-app .pmc-render-dialog{position:relative;max-width:1200px;max-height:94vh;overflow:auto;background:#faf8f0;border-radius:18px;padding:20px;color:#294c4f}.vorm-app .pmc-render-dialog img{display:block;max-width:100%;max-height:80vh;border-radius:8px}.vorm-app .pmc-render-close{position:absolute;right:24px;top:24px;border:0;border-radius:50%;width:36px;height:36px;background:#fff;font-size:24px;cursor:pointer}.vorm-app .pmc-render-dialog a{display:inline-block;margin-top:14px;color:#177e85}.vorm-app .apartment-depth-handle{cursor:ew-resize;touch-action:none;pointer-events:all}.vorm-app .pmc-action-toolbar{position:absolute;left:24px;top:100px;z-index:30;display:flex;gap:8px}.vorm-app .pmc-action-toolbar .pmc-render-button{position:static}.vorm-app .pmc-multi-button{border:1px solid #b5cecb;border-radius:24px;background:#faf8f0;padding:10px 16px;color:#315457;cursor:pointer}.vorm-app .pmc-multi-button[aria-pressed=true]{background:#b8e0dd;border-color:#177e85}.vorm-app .pmc-action-toolbar{gap:6px}.vorm-app .pmc-action-toolbar button{height:36px;padding:0 14px;border-radius:10px;font-size:12px;box-shadow:0 2px 8px #16363712}.vorm-app .pmc-multi-button{background:#faf8f0e8}.vorm-app .pmc-multi-button[aria-pressed=true]{background:#e1efed}.vorm-app .inspector-multi-select{display:block;background:none;border:0;color:#35777b;padding:8px 0;margin-top:6px;font-size:12px;text-align:left;cursor:pointer}.vorm-app .inspector-multi-select:hover{text-decoration:underline}.vorm-app .inspector-multi-select[aria-pressed=true]{font-weight:600}.vorm-app .street-view-button{pointer-events:auto;border:1px solid #cbd6d0;background:#faf8f0ef;color:#315457;border-radius:10px;padding:9px 14px;font-size:12px;cursor:pointer}.vorm-app .pmc-inspector{width:min(460px,calc(100vw - 40px));padding:18px}.vorm-app .inspector-plan{padding:10px}.vorm-app .inspector-plan svg{max-height:300px}.vorm-app .inspector-grid strong{font-size:19px}.vorm-app .layout-prices{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:12px 0;border-bottom:1px solid var(--paper-line)}.vorm-app .layout-prices>div{display:grid;gap:5px}.vorm-app .layout-prices span{font-size:11px;color:var(--muted)}.vorm-app .layout-prices strong{font-size:18px;color:var(--ink-strong)}.vorm-app .layout-prices select{grid-column:1/-1;border:1px solid var(--paper-line);border-radius:7px;padding:7px;background:var(--paper);color:var(--ink)}.vorm-app .mix-hint{font-size:10px;line-height:1.4;color:var(--muted)}.vorm-app .volume-panel{max-height:calc(100vh - 95px);overflow-y:auto}@media(max-width:1000px){.vorm-app .pmc-inspector{width:min(390px,calc(100vw - 28px))}}@media(max-width:600px){.vorm-app .pmc-inspector{width:calc(100vw - 28px);max-height:58vh;padding:12px}}.vorm-app{--ink:#384449;--ink-strong:#24383e;--muted:#7c8484;--paper:#fdfcf9;--paper-solid:#fdfcf9;--paper-line:#e4e4df;--soft-line:#e4e4df;--cyan:#318087;--cyan-deep:#216b73;--shadow:0 8px 28px #263d3910;--rail:clamp(340px,28vw,420px);color:var(--ink);background:#f7f6f2}.vorm-app [hidden]{display:none!important}.vorm-app button:focus-visible,.vorm-app input:focus-visible,.vorm-app select:focus-visible{outline:2px solid var(--cyan);outline-offset:3px}.vorm-app .game-header{left:0;top:0;right:0;height:72px;display:flex;align-items:center;padding:0 24px;background:#fdfcf9;border-bottom:1px solid var(--paper-line)}.vorm-app .brand strong{font-size:22px;letter-spacing:-.8px;font-weight:700}.vorm-app .brand small{display:none}.vorm-app .game-stage-nav{top:12px;left:57%;border:0;border-radius:6px;box-shadow:none;background:none;padding:0}.vorm-app .game-stage-nav button{height:42px;padding:0 12px;border-radius:5px;font-size:11px;font-weight:600;letter-spacing:.015em;text-shadow:none}.vorm-app .game-stage-nav button.active{background:var(--cyan-deep);color:#fff;box-shadow:none}.vorm-app .game-stage-nav .stage-dot{width:24px;height:24px;border:1px solid #a9b5b3;background:transparent;box-shadow:none;font-size:10px}.vorm-app .game-stage-nav button.active .stage-dot{background:#ffffff15;border-color:#ffffff80}.vorm-app .stage-link{width:20px;margin:0 4px;opacity:.55}.vorm-app .map-shell{top:72px;background:#f7f6f2}.vorm-app.has-inspector .map-shell{right:var(--rail)}.vorm-app .map-shell--3d:after{display:none}.vorm-app .pmc-inspector,.vorm-app .project-summary,.vorm-app .volume-panel{position:absolute;left:auto;right:0;top:72px;bottom:0;width:var(--rail);max-height:none;border:0;border-left:1px solid var(--paper-line);border-radius:0;padding:24px;background:var(--paper);box-shadow:none;backdrop-filter:none;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#cdd3cf transparent;touch-action:pan-y;animation:none}.vorm-app .inspector-tabs{display:flex;gap:20px;margin:-8px 0 28px;border-bottom:1px solid var(--paper-line)}.vorm-app .inspector-tabs button{flex:1;padding:15px 0;border:0;border-bottom:2px solid transparent;font-size:12px;font-weight:500;background:none;color:var(--muted);cursor:pointer}.vorm-app .inspector-tabs button[aria-selected=true]{color:var(--cyan-deep);border-bottom-color:var(--cyan-deep)}.vorm-app .project-summary>small{font-size:9px;letter-spacing:.13em;color:var(--muted)}.vorm-app .project-summary h2{font-size:28px;letter-spacing:-1px;font-weight:500;margin:12px 0 26px}.vorm-app .architecture-summary .summary-metrics,.vorm-app .summary-metrics{display:grid;grid-template-columns:1fr 1fr;gap:22px 16px}.vorm-app .summary-metrics div:first-child{grid-column:1/-1}.vorm-app .summary-metrics div{display:grid;gap:8px}.vorm-app .summary-metrics span{font-size:11px;color:var(--muted)}.vorm-app .summary-metrics strong{font-size:17px;font-weight:600;line-height:1.4}.vorm-app .summary-metrics div:first-child strong{font-size:25px;letter-spacing:-.5px}.vorm-app .building-section-control{padding:22px 0;margin-top:8px}.vorm-app select{font:inherit;color:var(--ink);background:#fff}.vorm-app .building-section-control select,.vorm-app .layout-prices select{padding:10px 12px;border:1px solid #d3d9d5;background:#fff;border-radius:5px;font-size:12px}.vorm-app .cost-details{border-top:1px solid var(--paper-line);border-bottom:1px solid var(--paper-line)}.vorm-app .cost-details summary{padding:18px 0;font-size:12px;cursor:pointer}.vorm-app .cost-breakdown{margin:0;border:0;padding:0 0 18px;gap:10px;font-size:10px;line-height:1.5}.vorm-app .summary-mix{padding:18px 0;font-size:11px}.vorm-app .estimate-note{color:var(--muted)}.vorm-app .materials-shortcut{display:grid;gap:8px;width:100%;padding:18px 0;background:none;border:0;border-top:1px solid var(--paper-line);text-align:left;font-size:12px;cursor:pointer}.vorm-app .materials-shortcut span{color:var(--cyan-deep)}.vorm-app .project-summary .finish-grid{gap:12px}.vorm-app .project-summary .finish-grid button{display:grid;gap:8px;padding:6px;border-radius:6px;border-color:var(--paper-line);background:white;font-size:11px}.vorm-app .project-summary .finish-grid button i{display:block;width:100%;height:74px;border-radius:3px;background-size:cover;background-position:50%;box-shadow:none}.vorm-app .project-summary .finish-grid button.active{border-color:var(--cyan);box-shadow:0 0 0 1px var(--cyan)}.vorm-app .project-summary .finish-grid button small{font-size:9px}.vorm-app .option-row{font-size:12px;padding:8px 0}.vorm-app .option-row select{font-size:11px;background:white;border-radius:5px}.vorm-app .interaction-help{border-top:1px solid var(--paper-line);padding-top:16px;margin-top:24px;font-size:10px;line-height:1.8;color:var(--muted)}.vorm-app .panel-grip{cursor:default;padding:0 0 22px}.vorm-app .panel-grip>span{font-size:17px;font-weight:600;letter-spacing:-.4px}.vorm-app .panel-grip svg{display:none}.vorm-app .pmc-panel{padding:16px 0}.vorm-app .preview-caption{height:auto;font-size:11px;line-height:1.7;margin:4px 0 8px}.vorm-app .layout-metrics{border-color:var(--paper-line);background:#f2f5f0;padding:14px;border-radius:5px}.vorm-app .layout-prices{padding:14px 0;margin-bottom:0;gap:12px}.vorm-app .layout-prices strong{font-size:20px}.vorm-app .mix-row{padding:6px 0}.vorm-app .mix-row input{height:16px}.vorm-app .mix-hint{margin:4px 0}.vorm-app .shape-panel,.vorm-app .study-card{top:94px;left:24px;border-radius:8px;background:var(--paper);box-shadow:var(--shadow)}.vorm-app .shape-panel{width:250px}.vorm-app .shape-panel button{border-radius:5px}.vorm-app .study-card{width:175px}.vorm-app .pmc-action-toolbar{top:94px}.vorm-app .pmc-action-toolbar button{background:var(--cyan-deep);color:white}.vorm-app .stat-badges{bottom:114px;display:flex;gap:8px}.vorm-app .pmc-legend span,.vorm-app .stat-badges span{background:#fdfcf9ed;border:1px solid var(--paper-line);border-radius:5px;box-shadow:none;font-weight:500}.vorm-app .pmc-legend{right:calc(var(--rail) + 20px);bottom:24px;gap:4px}.vorm-app .pmc-legend span{padding:6px;font-size:8px}.vorm-app .map-widgets{bottom:22px;left:24px;gap:12px}.vorm-app .coords{display:none}.vorm-app .street-view-button{border-radius:5px;background:var(--paper)}.vorm-app .pmc-6{background:#76c6c3}.vorm-app .pmc-7{background:#edce82}.vorm-app .pmc-8{background:#bba8dc}.vorm-app .pmc-16{background:#e6a08c}.vorm-app .vertex{stroke-width:2;filter:none}.vorm-app .edge-resize-arrow{animation:none}.vorm-app .edge-resize-arrow .arrow-shape,.vorm-app .floor-step-shape{fill:var(--cyan);filter:none}.vorm-app .pmc-hit-target.selected{stroke-width:2;filter:none;animation:none;fill:#31808712}.vorm-app .inspector-plan{background:#fafaf5;border-radius:5px;padding:6px}.vorm-app .inspector-grid{gap:10px}.vorm-app .inspector-grid>div{background:#f4f5ef;border-color:var(--paper-line);border-radius:5px}.vorm-app .selection-box{position:absolute;pointer-events:none;z-index:40;border:1px solid #216b73;background:#31808720;box-shadow:0 0 0 1px #ffffff90}.vorm-app .selection-hint{position:absolute;bottom:74px;left:24px;z-index:6;pointer-events:none;padding:6px 9px;font-size:9px;color:#637371;background:#fdfcf9dd;border-radius:4px}@media(min-width:1600px){.vorm-app .game-stage-nav{left:50%}}@media(max-width:1050px){.vorm-app{--rail:310px}.vorm-app .brand strong{font-size:18px}.vorm-app .game-stage-nav{left:auto;right:12px;transform:none}.vorm-app .game-stage-nav button{font-size:9px;padding:0 7px}.vorm-app .stage-link{width:12px}.vorm-app .pmc-inspector,.vorm-app .project-summary,.vorm-app .volume-panel{padding:18px}.vorm-app .pmc-legend{bottom:12px}.vorm-app .pmc-legend span b,.vorm-app .stat-badges{display:none}}@media(max-width:700px){.vorm-app .game-header{height:104px;align-items:flex-start;padding-top:14px}.vorm-app .game-stage-nav{top:51px;left:12px;right:12px;width:auto;height:42px;justify-content:center}.vorm-app .game-stage-nav button{height:36px;font-size:8px;gap:4px;padding:0 6px}.vorm-app .map-shell{top:104px}.vorm-app.has-inspector .map-shell{right:0;bottom:42vh}.vorm-app .pmc-inspector,.vorm-app .project-summary,.vorm-app .volume-panel{top:auto;bottom:0;left:0;width:100%;height:42vh;max-height:none;border-left:0;border-top:1px solid var(--paper-line)}.vorm-app .inspector-tabs{position:sticky;top:-18px;background:var(--paper);z-index:2;margin-bottom:16px}.vorm-app .shape-panel,.vorm-app .study-card{top:114px;left:10px;width:160px}.vorm-app .shape-panel p{display:none}.vorm-app .pmc-action-toolbar{top:114px;left:12px}.vorm-app .pmc-legend,.vorm-app .selection-hint{display:none}.vorm-app .map-widgets{bottom:12px;left:12px}}.vorm-app .pmc-action-toolbar button{background:#fdfcf9;color:var(--cyan-deep);border:1px solid #7fa9a9;border-radius:5px;box-shadow:none}.vorm-app .pmc-action-toolbar button:hover{background:#eff7f5}.vorm-app .game-stage-nav{border:1px solid #e5e5df;background:#fdfcf9;padding:3px;height:48px}.vorm-app .quick-materials{border-top:1px solid var(--paper-line);padding-top:14px}.vorm-app .quick-materials .finish-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.vorm-app .quick-materials .finish-grid i{height:52px}.vorm-app .quick-materials .finish-grid span{font-size:10px}.vorm-app .plan-preview{width:100%;cursor:zoom-in;padding:8px;background:white}.vorm-app .plan-preview span{display:block;text-align:right;padding:8px 4px 2px;color:var(--cyan-deep);font-size:11px}.vorm-app .plan-dialog{margin:auto;width:min(90vw,1050px);max-height:94vh;border:1px solid var(--paper-line);border-radius:12px;padding:20px;background:white;box-shadow:0 24px 100px #26353544}.vorm-app .plan-dialog::backdrop{background:#20323366;backdrop-filter:blur(4px)}.vorm-app .plan-dialog header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.vorm-app .plan-dialog header button{border:0;background:#f3f5f3;border-radius:6px;width:36px;height:36px;font-size:24px;cursor:pointer}.vorm-app .plan-dialog svg{max-height:calc(90vh - 95px)}.vorm-app .delete-units:disabled{opacity:.45;cursor:not-allowed}.vorm-app .delete-reason{font-size:11px;line-height:1.5;color:#75634f;margin:8px 0 16px}.vorm-app .camera-help{position:relative;pointer-events:auto;font-size:12px}.vorm-app .camera-help summary{list-style:none;cursor:pointer;border:1px solid var(--paper-line);padding:12px 16px;border-radius:6px;background:#fffdf8ee}.vorm-app .camera-help p{position:absolute;bottom:40px;width:245px;padding:16px;background:white;border:1px solid var(--paper-line);border-radius:8px;line-height:1.8;box-shadow:0 8px 30px #26353514}.vorm-app .stat-badges{bottom:80px}.vorm-app .tour-launch{position:absolute;top:23px;right:24px;z-index:35;background:white;color:var(--cyan-deep);border:1px solid var(--paper-line);border-radius:6px;padding:8px 12px;font-size:12px;cursor:pointer}.vorm-app .tour-card{position:fixed;left:24px;bottom:150px;width:285px;z-index:100;background:#fffefa;border:1px solid #cae1de;border-radius:12px;box-shadow:0 12px 50px #203b3429;padding:18px;color:#284544}.vorm-app .tour-card footer,.vorm-app .tour-card header{display:flex;justify-content:space-between;align-items:center}.vorm-app .tour-card small{font-size:9px;letter-spacing:1px;color:#748d87}.vorm-app .tour-card strong{display:block;margin-top:10px;font-size:17px}.vorm-app .tour-card p{font-size:12px;line-height:1.65;margin:10px 0 16px}.vorm-app .tour-card button{cursor:pointer;border:0;background:none;color:var(--cyan-deep);padding:6px;font-size:12px}.vorm-app .tour-card header button{font-size:20px}.vorm-app .tour-card footer button:last-child{background:#e8f3f0;border-radius:5px}.vorm-app .tour-highlight{position:fixed;pointer-events:none;z-index:99;border:2px solid #15989c;border-radius:8px;box-shadow:0 0 0 5px #15989c18}@media(max-width:800px){.vorm-app .tour-launch{top:80px;right:12px}.vorm-app .tour-card{left:12px;bottom:80px;width:min(285px,calc(100vw - 24px))}}.vorm-app .quick-materials .finish-grid{display:grid;grid-auto-flow:row;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:3px 2px}.vorm-app .quick-materials .finish-grid button{min-width:0}.vorm-app .quick-materials .finish-grid i{height:64px}.vorm-app .pmc-action-toolbar:has(.pmc-lighting-panel){z-index:60}.vorm-app .pmc-lighting-panel{position:absolute;top:44px;left:0;width:min(300px,calc(100vw - 48px));max-height:calc(100dvh - 180px);overflow:auto;padding:18px;border:1px solid #dce4df;border-radius:10px;background:#fdfcf9;box-shadow:0 12px 36px #193e4026;color:#315457}.vorm-app .pmc-lighting-panel header{display:flex;align-items:center;justify-content:space-between;gap:12px}.vorm-app .pmc-lighting-panel header button{width:32px;padding:0;border:0;font-size:22px}.vorm-app .pmc-lighting-panel p,.vorm-app .pmc-lighting-panel small{display:block;font-size:11px;color:#687872;line-height:1.5}.vorm-app .pmc-lighting-control{display:block;margin:16px 0;font-size:12px}.vorm-app .pmc-lighting-control span{display:flex;justify-content:space-between;margin-bottom:6px}.vorm-app .pmc-lighting-control output{font-variant-numeric:tabular-nums;color:#28797d}.vorm-app .pmc-lighting-control input{display:block;width:100%;height:20px;accent-color:#28797d;cursor:pointer}.vorm-app .pmc-lighting-panel footer{display:flex;gap:8px;margin:18px 0 10px}.vorm-app .pmc-lighting-panel footer button{flex:1}.vorm-app .pmc-lighting button:focus-visible,.vorm-app .pmc-lighting input:focus-visible{outline:2px solid #28797d;outline-offset:3px}.vorm-app .quick-materials{margin:18px 0}.vorm-app .quick-materials h3{margin:0 0 10px}.vorm-app .core-study-note{font-size:12px;line-height:1.6;color:#6c7770}.apt3d{position:relative;width:100%;height:100%;min-height:320px;border-radius:16px;overflow:hidden;background:#f6efe3}.apt3d-canvas{position:absolute;inset:0}.apt3d-canvas canvas{display:block;width:100%;height:100%}.apt3d-toolbar{position:absolute;left:12px;right:12px;bottom:12px;flex-wrap:wrap;gap:10px;justify-content:space-between;pointer-events:none}.apt3d-group,.apt3d-toolbar{display:flex;align-items:center}.apt3d-group{gap:6px;padding:6px 8px;border-radius:999px;background:rgba(253,249,240,.92);box-shadow:0 4px 18px rgba(90,74,48,.14);backdrop-filter:blur(4px);pointer-events:auto}.apt3d-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;border-radius:999px;min-width:30px;height:30px;padding:0 10px;font:600 14px/1 system-ui,sans-serif;color:#4b4335;background:#f1e8d6;cursor:pointer;transition:background .15s ease,color .15s ease}.apt3d-btn:hover:not(:disabled){background:#e9ddc4}.apt3d-btn:disabled{opacity:.4;cursor:default}.apt3d-btn:focus-visible{outline:2px solid #35c3d2;outline-offset:1px}.apt3d-btn-txt{font-size:12.5px;letter-spacing:.01em}.apt3d-btn-txt.is-active{background:#35c3d2;color:#ffffff}.apt3d-count{font:600 12.5px/1 system-ui,sans-serif;color:#4b4335;min-width:56px;text-align:center;font-variant-numeric:tabular-nums}.apt3d-slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:130px;height:4px;margin:0 6px;border-radius:999px;background:#e4d8bf;cursor:pointer}.apt3d-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:#35c3d2;border:2px solid #fdf9f0;box-shadow:0 1px 4px rgba(90,74,48,.3)}.apt3d-slider::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:#35c3d2;border:2px solid #fdf9f0;box-shadow:0 1px 4px rgba(90,74,48,.3)}@media (max-width:560px){.apt3d-toolbar{justify-content:center}}