:root{font-family:DM Sans,Arial,sans-serif;color:#eff4fb;background:#070d1b;font-synthesis:none}*{box-sizing:border-box}html,body,#app{margin:0;width:100%;height:100%;overflow:hidden}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.6}[hidden]{display:none!important}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #8be3fa;outline-offset:3px}.shell{height:100%;display:flex;flex-direction:column;background:radial-gradient(circle at 50% 5%,#1a2844 0,#0c1527 48%,#060b16)}.topbar{height:75px;flex:none;display:flex;align-items:center;justify-content:space-between;padding:0 30px;border-bottom:1px solid #ffffff17;background:#080f1de8;z-index:20}.brand,.topbar-actions{display:flex;align-items:center;gap:20px}.brand-mark{font-family:Space Grotesk,sans-serif;font-weight:700;font-size:26px;letter-spacing:-2px}.brand-mark span{color:#78def3}.brand-rule{height:26px;width:1px;background:#ffffff3d}.brand-copy{font-size:12px;color:#a3b1c7;letter-spacing:.08em}.live-pill,.eyebrow,.facade-footer,.unit-number,.unit-status,.unit-base,.door-number,.door-mark,.room-mode,.room-guide{font-size:10px;letter-spacing:.16em;font-weight:700}.live-pill{color:#92c9be}.live-pill i,.unit-status i{display:inline-block;width:6px;height:6px;background:#9debd0;border-radius:50%;margin-right:8px;box-shadow:0 0 10px #7af4bd}.text-button{color:#dfe8f4;background:#ffffff0a;border:1px solid #ffffff29;padding:10px 15px;border-radius:2px;font-size:12px}.text-button:hover{background:#ffffff19}.eyebrow{color:#8ae3f5}.code-panel{position:absolute;z-index:30;top:71px;left:54px;width:280px;max-width:calc(100vw - 42px);padding:20px;background:#0a1728;border:1px solid #89b5c7;box-shadow:0 20px 55px #000b,0 0 28px #76c6e326;color:#e9f2f7}.code-panel:before{content:"";position:absolute;top:90px;left:-12px;border-width:11px 12px 11px 0;border-style:solid;border-color:transparent #89b5c7 transparent transparent}.code-panel strong,.owner-panel strong,.owner-controls strong{display:block;font-family:Space Grotesk,sans-serif;font-size:21px;font-weight:500;margin:7px 0}.code-panel p,.owner-panel p{font-size:12px;line-height:1.45;color:#9cb1c6;margin:0 0 14px}.code-panel label,.owner-panel label,.owner-controls label{display:block;font-size:10px;color:#aac3d3;margin:11px 0 5px}.code-input-row{display:flex;gap:5px}.code-panel input,.owner-panel input,.owner-controls input,.owner-controls select{min-width:0;width:100%;padding:10px;background:#14263b;border:1px solid #60788c;color:#fff;border-radius:0}.code-input-row button,.panel-action,.owner-controls form button{border:0;background:#ace1e8;color:#122333;font-size:10px;font-weight:700;letter-spacing:.1em;padding:0 13px;white-space:nowrap}.code-input-row button:hover,.panel-action:hover,.owner-controls form button:hover{background:#d1faff}.panel-close{position:absolute;right:10px;top:7px;border:0;background:none;color:#a1bbcd;font-size:25px;line-height:1}.code-error,.owner-panel small,.owner-controls small{display:block;min-height:16px;margin-top:8px;color:#ffb18f;font-size:11px}.owner-panel{position:absolute;z-index:40;right:26px;top:67px;width:310px;max-width:calc(100vw - 32px);padding:22px;background:#0b182a;border:1px solid #607f94;box-shadow:0 25px 60px #000b}.owner-panel .panel-action{height:37px;margin-top:15px}.owner-panel form{display:flex;flex-direction:column}.owner-panel p{margin-top:6px}.room-screen{position:relative;flex:1;min-height:0;background:#081120}.room-screen canvas{position:absolute;inset:0;width:100%;height:100%;outline:none;touch-action:none}.facade-status{display:flex;align-items:center;justify-content:center;gap:14px;padding:12px 20px;background:#17243a;color:#cce5ed;font-size:13px}.door[aria-busy=true]{cursor:progress;box-shadow:inset 0 0 22px #ffe2a780}.door[aria-busy=true] .door-mark{color:transparent}.door[aria-busy=true] .door-mark:after{content:"…";position:absolute;inset:0;display:grid;place-items:center;color:#4b4337;font-size:14px}.room-loading{position:absolute;inset:90px 15px 80px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;text-align:center;color:#cce5ed}.room-loading button{padding:12px 20px}.owned-room-list{display:flex;flex-wrap:wrap;gap:7px;margin-top:14px}.owned-room-list button{white-space:normal;text-align:left;background:#14263b;color:#e9f2f7;border:1px solid #60788c;padding:10px;font-size:12px}.walk-controls{display:none;position:absolute;bottom:75px;left:16px;grid-template-columns:repeat(3,46px);grid-template-rows:repeat(2,46px);gap:5px;touch-action:none;-webkit-user-select:none;user-select:none}.walk-controls button{border:1px solid #8ab9c688;background:#102638de;color:#daf4fa;border-radius:9px;font-size:21px;touch-action:none;-webkit-user-select:none}.walk-controls [data-move=forward]{grid-column:2}.walk-controls [data-move=left]{grid-column:1;grid-row:2}.walk-controls [data-move=back]{grid-column:2;grid-row:2}.walk-controls [data-move=right]{grid-column:3;grid-row:2}.walk-controls button.pressed{background:#ace1e8;color:#122333}.room-guide .touch-guide{display:none}.room-topbar{position:absolute;top:18px;left:20px;right:20px;display:flex;align-items:center;justify-content:space-between;gap:15px;pointer-events:none}.room-topbar>*{pointer-events:auto}.return-button{background:#0a1b2bcc;color:#d9ebf3;border:1px solid #a6cde077;padding:11px 15px;font-size:12px}.return-button:hover{background:#244359}.room-identity{text-align:center;background:#081525aa;padding:9px 19px;border:1px solid #ffffff25}.room-identity span{display:block;font-size:9px;letter-spacing:.2em;color:#8ecde0}.room-identity strong{font-family:Space Grotesk,sans-serif;font-size:17px}.room-mode{background:#081525aa;border:1px solid #ffffff25;padding:11px 13px;color:#afdce4;font-size:9px}.room-guide{position:absolute;bottom:22px;left:50%;transform:translate(-50%);max-width:calc(100% - 20px);width:max-content;background:#071422c9;color:#c3d5e3;border:1px solid #ffffff30;padding:11px 17px;font-size:9px;pointer-events:none}.room-guide strong{display:block;font-size:11px;letter-spacing:.02em;color:#8ce7ee;margin-top:7px;font-weight:500}.furniture-tools{position:absolute;left:50%;bottom:91px;transform:translate(-50%);display:grid;grid-template-columns:1fr auto auto auto;align-items:center;gap:9px;max-width:calc(100% - 20px);padding:12px 15px;background:#081827ed;border:1px solid #78a7b9;box-shadow:0 10px 25px #0005}.furniture-tools strong{font-size:13px;min-width:60px}.furniture-tools button{min-height:44px;min-width:55px;background:#142f43;border:1px solid #709cab;border-radius:5px;color:#e8f8fa;font-size:15px}.furniture-tools button:hover{background:#29566a}.furniture-tools output{font-size:12px;color:#8ce7ee;min-width:35px;text-align:center}.furniture-tools small{grid-column:1/-1;color:#a3c2cd;font-size:10px}.room-guide span{color:#8ce7ee;margin:0 7px}.owner-controls{position:absolute;right:18px;bottom:18px;width:248px;padding:17px;background:#081827e8;border:1px solid #78a7b9;box-shadow:0 13px 28px #0008}.owner-controls strong{font-size:18px}.owner-controls form{display:flex;flex-direction:column}.owner-controls label span{color:#718da1}.owner-controls select,.owner-controls input{padding:8px;font-size:12px}.owner-controls form button{height:32px;margin-top:10px}.revoke-button{border:1px solid #e5a59488;background:transparent;color:#f0bdad;margin-top:9px;width:100%;height:31px;font-size:10px}.toast{position:absolute;z-index:60;left:50%;bottom:55px;transform:translate(-50%,20px);opacity:0;pointer-events:none;max-width:min(460px,90vw);padding:11px 17px;background:#e5f4f4;color:#102334;font-size:12px;box-shadow:0 12px 40px #0009;transition:opacity .2s,transform .2s;text-align:center}.toast.visible{opacity:1;transform:translate(-50%)}@media(max-width:700px){.topbar{height:63px;padding:0 15px}.brand-copy,.brand-rule,.live-pill{display:none}.brand-mark{font-size:24px}.code-panel{left:28px}.owner-panel{right:11px;top:58px}.room-topbar{left:9px;right:9px;top:9px}.room-identity{display:none}.room-mode{font-size:8px}.room-guide{left:10px;bottom:10px;transform:none;font-size:8px}.owner-controls{right:9px;bottom:49px;width:220px;padding:11px}.furniture-tools{bottom:auto;top:65px;padding:9px 12px;gap:7px}}@media(pointer:coarse){.walk-controls{display:grid}.room-guide .desktop-guide{display:none}.room-guide .touch-guide{display:inline}.owner-controls{bottom:170px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}.facade-screen{flex:1;min-height:0;display:flex;flex-direction:column;background:#f2e8d8}.facade-intro{flex:none;padding:21px 15px 17px;text-align:center;background:#17243a}.facade-intro h1{margin:8px 0 5px;font-family:Trebuchet MS,Arial,sans-serif;font-size:clamp(28px,3.3vw,48px);font-weight:700;letter-spacing:-.055em;line-height:1.05}.facade-intro h1 em{color:#fac392;font-style:normal}.facade-intro p{margin:0;color:#a7b8d1;font-size:12px}.facade-scroll{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-color:#9b826a #ede1d3;scrollbar-width:thin;border-top:1px solid #d1bea7;border-bottom:1px solid #d1bea7;background:linear-gradient(180deg,#f4eadb,#d5c5b0)}.facade-grid{display:grid;grid-template-columns:repeat(6,340px);gap:25px 0;width:max-content;min-width:100%;padding:24px 22px 38px}.facade-footer{flex:none;height:43px;display:flex;align-items:center;justify-content:space-between;padding:0 30px;color:#8a9cb9;background:#0a1323}.unit{position:relative;width:340px;height:340px;isolation:isolate;box-shadow:0 7px 9px #78624d40}.unit.attention{z-index:10}.unit:hover,.unit:focus-within{z-index:2}.unit.attention:hover,.unit.attention:focus-within{z-index:10}.shop-art{display:block;width:100%;height:100%;object-fit:fill;-webkit-user-select:none;user-select:none;pointer-events:none}.vacant .shop-art{filter:saturate(.68)}.shop-title{position:absolute;display:grid;place-items:center;padding:0 15px;pointer-events:none;color:#fff2ca;text-shadow:0 1px 2px #32261dbd,0 -1px #ffffff2b;font-family:Georgia,Times New Roman,serif;font-size:17px;font-weight:700;letter-spacing:.015em}.shop-title span{max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.shop-type-1 .shop-title,.shop-type-3 .shop-title,.shop-type-4 .shop-title{color:#573c29;text-shadow:0 1px #ffe5ba7a}.door{position:absolute;padding:0;border:0;border-radius:18px 18px 2px 2px;background:transparent;color:#fff5d8;transition:box-shadow .18s,background .18s}.door:hover{box-shadow:inset 0 0 22px #ffe2a74d,0 0 13px #fff1bb63;background:#fff5d00a}.door:focus-visible{outline:3px solid #ffebaa;outline-offset:3px;background:#fff5d014}.door-number{position:absolute;top:7%;left:50%;transform:translate(-50%);padding:1px 3px;border-radius:2px;background:#1832398c;text-align:center;font-size:9px;letter-spacing:.05em;text-shadow:0 1px 2px #1e2327}.door-mark{position:absolute;top:44%;left:50%;transform:translate(-50%) rotate(-5deg);padding:4px 6px;border:1px solid #d1ad7c;border-radius:2px;background:linear-gradient(155deg,#fff6df,#d9bd94);color:#4b4337;box-shadow:1px 3px 3px #152c2f73;font-size:7px;letter-spacing:.06em}.door-mark:before{content:"";position:absolute;left:40%;bottom:100%;width:8px;height:7px;border:1px solid #d2bb97;border-bottom:0;border-radius:6px 6px 0 0}.door-locked .door-mark{color:#783d3e}.unit-top{position:absolute;right:10px;bottom:5px;left:10px;display:flex;justify-content:space-between;align-items:center;color:#60534b;text-shadow:0 1px #fffb;pointer-events:none}.unit-number,.unit-status{font-size:7px;letter-spacing:.1em}.unit-status i{width:5px;height:5px;margin-right:4px;border:1px solid #507d60;background:#7ba27c;box-shadow:none}.locked .unit-status i{background:#bd8c60;border-color:#977248}.vacant .unit-status i{background:#a39b8c;border-color:#8c8375}.code-panel{top:105px;left:30px;border-radius:5px}.code-panel:before{display:none}@media(max-width:700px){.facade-intro{padding:19px 13px}.facade-intro h1{font-size:28px}.facade-footer{padding:0 14px;font-size:8px}.facade-footer span:nth-child(2){display:none}.facade-grid{grid-template-columns:repeat(6,276px);gap:20px 0;padding:20px 16px 28px}.unit{width:276px;height:276px}.shop-title{font-size:14px;padding:0 10px}.door-number{font-size:8px}.door-mark{font-size:6px;padding:3px 4px}.code-panel{top:75px;left:8px}}
