@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{font-family:'DM Sans',sans-serif;color:#fff;font-synthesis:none;--accent:#dfbb83;--dark:#171c1b}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#ced5d4}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:inherit;border:0;background:none}button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:5px}button:hover{color:var(--accent)}[hidden]{display:none!important}#app,#scene{position:absolute;inset:0;width:100%;height:100%}#scene{touch-action:none;outline:none}.shade{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(15,24,24,.34),transparent 25%,transparent 74%,rgba(15,24,24,.65))}.header{position:absolute;left:42px;right:38px;top:30px;display:flex;justify-content:space-between;align-items:flex-start}.brand{text-decoration:none;color:white;font-family:Manrope,sans-serif;letter-spacing:-1.8px;font-size:30px;font-weight:800}.brand span{color:var(--accent);font-weight:400;margin:0 4px}.brand small{font-family:'DM Sans',sans-serif;display:block;font-size:10px;letter-spacing:2.7px;font-weight:500;margin-top:5px}.header-right{display:flex;align-items:center;gap:14px}.concept{font-size:12px;letter-spacing:.5px;opacity:.85;margin-right:15px}.icon-btn{display:grid;place-items:center;width:36px;height:36px;border:1px solid #ffffff45;border-radius:50%;font-size:18px;background:#17201e20}.project-info{position:absolute;left:42px;top:31%;pointer-events:none;max-width:330px;text-shadow:0 2px 20px #17201e44}.eyebrow{font-size:11px;font-weight:650;letter-spacing:2.3px;color:var(--accent)}h1{font-family:Manrope,sans-serif;font-size:46px;line-height:1.13;letter-spacing:-2.2px;font-weight:500;margin:19px 0}p{font-size:14px;line-height:1.7}.project-info p{opacity:.85;margin-bottom:27px}.primary{pointer-events:auto;display:flex;align-items:center;justify-content:space-between;gap:42px;background:var(--accent);color:#202822;padding:16px 21px;font-weight:650;border-radius:3px;font-size:14px;box-shadow:0 8px 30px #0001;transition:transform .2s,background .2s}.primary:hover{background:#efd1a2;color:#171c1b;transform:translateY(-2px)}.primary span{font-size:21px}.floors{position:absolute;right:32px;top:35%;display:flex;flex-direction:column;gap:4px;align-items:center;background:#17221d9c;padding:14px 8px;border-radius:5px;backdrop-filter:blur(18px)}.rail-label{font-size:9px;letter-spacing:1.8px;opacity:.65;margin:0 4px 10px}.floors button{position:relative;display:grid;place-items:center;width:40px;height:40px;font-size:14px;border-radius:3px}.floors button.selected{background:var(--accent);color:#1e2722}.floors button span{position:absolute;right:54px;background:#17221ddb;padding:9px 12px;border-radius:3px;white-space:nowrap;opacity:0;pointer-events:none;color:white;transition:opacity .15s}.floors button:hover span{opacity:1}.bottom{position:absolute;bottom:24px;left:42px;right:38px;display:flex;align-items:center;gap:20px;flex-wrap:wrap}.view-switch{display:flex;background:#17221ddb;padding:5px;border:1px solid #fff2;border-radius:5px;backdrop-filter:blur(15px)}.view-switch button{font-size:13px;font-weight:500;padding:13px 18px;border-radius:3px;white-space:nowrap;transition:background .2s}.view-switch button.active{background:#f4f0e7;color:#1d2924}.view-tools{display:flex;align-items:center;gap:14px}.view-tools button{font-size:13px;background:#17221dba;padding:15px 17px;border:1px solid #fff2;border-radius:5px;backdrop-filter:blur(15px)}.view-tools span{margin-left:5px}.hint{margin-left:auto;font-size:12px;opacity:.9;white-space:nowrap}.hint i{font-style:normal;opacity:.45;margin:0 10px}.room-info{position:absolute;top:140px;left:42px;text-shadow:0 2px 12px #0008;pointer-events:none}.room-info h2{font-family:Manrope,sans-serif;font-size:30px;font-weight:500;letter-spacing:-1px;margin:9px 0 0}.room-info p{font-size:12px;opacity:.85;margin-top:8px}.room-nav{position:absolute;left:42px;top:250px;display:flex;flex-direction:column;align-items:flex-start;gap:7px}.room-nav button{font-size:12px;background:#17221dbd;padding:8px 13px;border:1px solid #fff2;border-radius:3px;backdrop-filter:blur(15px)}.room-nav button.active{color:var(--accent);border-color:#dfbb8366}.minimap{position:absolute;left:42px;bottom:102px;width:146px;background:#f4f0e7ed;color:#344039;border-radius:4px;box-shadow:0 7px 30px #0002}.minimap button{display:flex;justify-content:space-between;width:100%;padding:11px 12px 0;font-size:8px;letter-spacing:1px}.minimap canvas{width:100%;height:auto;display:block}.crosshair{position:absolute;top:50%;left:50%;width:5px;height:5px;border-radius:50%;border:1px solid #ffffffb0;box-shadow:0 0 3px #0006;pointer-events:none}.move-pad{position:absolute;right:32px;bottom:114px;display:grid;grid-template-columns:repeat(3,43px);grid-template-rows:repeat(2,43px);gap:5px;touch-action:none}.move-pad button{display:grid;place-items:center;font-size:22px;background:#17221d9c;border:1px solid #fff3;border-radius:5px;backdrop-filter:blur(15px);touch-action:none}.move-pad button:first-child{grid-column:2}.move-pad button:nth-child(2){grid-column:1;grid-row:2}.move-pad button:nth-child(3){grid-column:2;grid-row:2}.move-pad button:nth-child(4){grid-column:3;grid-row:2}.move-pad button:active,.move-pad button.pressed{background:var(--accent);color:#222}.loading{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#1d2925;z-index:30;transition:opacity .6s;pointer-events:none}.loading.done{opacity:0}.loader-mark{font-family:Manrope,sans-serif;font-size:52px;font-weight:500;color:var(--accent);letter-spacing:-3px}.loading p{font-size:12px;letter-spacing:1px;opacity:.7}.dots{animation:blink 1s infinite}@keyframes blink{50%{opacity:.2}}#toast{position:absolute;bottom:96px;left:50%;transform:translateX(-50%) translateY(10px);background:#17221ded;border:1px solid #ffffff25;padding:12px 19px;border-radius:4px;font-size:13px;opacity:0;transition:.25s;pointer-events:none;max-width:90%;text-align:center}#toast.show{opacity:1;transform:translateX(-50%) translateY(0)}dialog{background:#f5f2eb;color:#25322b;border:0;border-radius:8px;padding:30px;box-shadow:0 25px 100px #0005;width:min(620px,95vw);max-height:94svh}dialog::backdrop{background:#0b1417b5;backdrop-filter:blur(7px)}.dialog-head{display:flex;justify-content:space-between;align-items:center;gap:15px}.dialog-head h2{font-family:Manrope,sans-serif;font-size:26px;font-weight:500;letter-spacing:-.8px;margin:10px 0}.dialog-head .eyebrow{color:#85704f;font-size:10px}.dialog-head .icon-btn{color:#27392f;border-color:#26352b30;flex-shrink:0}.plan-foot{display:flex;justify-content:space-between;gap:12px;border-top:1px solid #0002;padding-top:17px;font-size:11px}.note{font-size:11px;opacity:.65;line-height:1.6}#plan-canvas{display:block;width:100%;max-height:62vh;object-fit:contain}.secondary{padding:12px 17px;border:1px solid #25322b40;border-radius:3px;font-size:13px;margin-top:8px}.secondary:hover{color:#25322b;background:#e6ddce}#help-dialog{width:min(490px,95vw)}#help-dialog p{font-size:14px}#help-dialog p b{font-weight:650}body.walking .shade{background:linear-gradient(180deg,#10191d55,transparent 29%,transparent 67%,#10191d66)}
@media(max-width:900px){.hint{display:none}.header{left:25px;right:25px}.project-info{left:25px}.bottom{left:25px;right:25px;gap:10px}.room-info,.room-nav,.minimap{left:25px}.floors{right:22px}.project-info h1{font-size:38px;max-width:260px}.view-switch button{padding:13px 14px}}
@media(max-width:600px){.header{top:22px;left:20px;right:17px}.brand{font-size:25px}.brand small{font-size:8px;letter-spacing:2px}.header-right{gap:8px}.concept{display:none}.icon-btn{width:32px;height:32px}.project-info{top:auto;bottom:155px;left:22px;max-width:260px}.project-info h1{font-size:32px;margin:12px 0}.project-info p{display:none}.project-info .eyebrow{font-size:9px}.primary{margin-top:18px;padding:12px 17px;font-size:13px;gap:26px}.floors{right:14px;top:30%;padding:10px 5px;gap:2px}.floors button{width:31px;height:34px;font-size:12px}.rail-label{font-size:8px;margin-bottom:5px}.bottom{bottom:calc(15px + env(safe-area-inset-bottom));left:16px;right:16px;gap:9px;align-items:center;justify-content:center}.view-switch{width:100%;justify-content:space-between}.view-switch button{flex:1;padding:11px 9px;font-size:12px}.view-tools{gap:8px}.view-tools button{padding:9px 13px;font-size:11px}.room-info{left:20px;top:100px}.room-info h2{font-size:25px}.room-info p{display:none}.room-nav{left:20px;top:163px;right:75px;flex-direction:row;flex-wrap:wrap;gap:5px}.room-nav button{font-size:10px;padding:7px 9px}.minimap{left:17px;bottom:133px;width:105px}.minimap button{font-size:7px;padding:8px 8px 0}.move-pad{right:18px;bottom:137px;grid-template-columns:repeat(3,39px);grid-template-rows:repeat(2,39px);gap:4px}.move-pad button{font-size:21px}#toast{bottom:250px;width:80%;font-size:12px}.plan-foot{font-size:10px;flex-direction:column;gap:5px}dialog{padding:20px}.dialog-head h2{font-size:23px}body.walking .room-nav{opacity:.9}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
