:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#28362b;font-synthesis:none}*{box-sizing:border-box}body{margin:0;overflow:hidden;background:#e5dfd0}button,input,select{font:inherit}button,a,select{touch-action:manipulation}button{cursor:pointer;border:1px solid #d7d9cf;background:#fffcf6;color:#28362b;border-radius:10px;padding:11px 16px;transition:background .15s,transform .15s}button:hover{background:#e9eddf}button:active{transform:scale(.98)}button:focus-visible,a:focus-visible{outline:3px solid #708565;outline-offset:3px}button:disabled{opacity:.5;cursor:wait}button.primary{background:#3e5b40;border:0;color:#fff;width:100%;padding:16px 20px;font-weight:600;display:flex;justify-content:space-between;align-items:center}.primary:hover{background:#304d33}#world{display:block;width:100vw;height:100vh;outline:none}header{position:absolute;top:27px;left:32px;right:32px;display:flex;justify-content:space-between;align-items:center;pointer-events:none}.brand{display:flex;gap:12px;align-items:center;background:#fffaf0db;border:1px solid #fff8;border-radius:14px;padding:12px 18px}.brand strong{display:block;letter-spacing:-.5px;font-size:19px}.brand small{display:block;font-size:11px;letter-spacing:1px;text-transform:uppercase;opacity:.65;margin-top:2px}.leaf{font-size:32px;color:#6a8157}.top-actions{display:flex;gap:9px;align-items:center;pointer-events:auto}#connection{background:#fffcf3e6;border-radius:24px;padding:10px 16px;font-size:12px}#connection:before{content:'●';color:#778e64;margin-right:7px}.intro h1{font-size:clamp(36px,4.5vw,70px);letter-spacing:-3px;font-weight:500;line-height:1.04;margin:25px 0;color:#fffaf0;text-shadow:0 2px 28px #242e2390}.eyebrow{font-size:12px;font-weight:700;letter-spacing:2px;color:#f9f8e8}.intro>p{color:#fffaf0e8;font-size:17px;line-height:1.7;text-shadow:0 2px 18px #242e2390}.details{display:flex;gap:24px;color:#fffcf0;font-size:13px;margin-top:30px}.details span+span:before{content:'·';margin-right:24px}#welcome{position:absolute;inset:100px 5vw 55px;display:flex;align-items:center;justify-content:space-between;gap:30px;pointer-events:none}#welcome[hidden]{display:none}.join-card{pointer-events:auto;width:365px;max-width:90vw;border-radius:22px;padding:27px;background:#fffcf6ef;backdrop-filter:blur(18px);box-shadow:0 15px 70px #1c271c26;border:1px solid #fff9}.join-card h2{font-size:23px;letter-spacing:-.7px;margin:0 0 8px}.join-card>p{font-size:13px;line-height:1.5;opacity:.7}.choices{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:22px 0}.character{padding:0 0 14px;overflow:hidden;text-align:left}.character.selected{outline:2px solid #68815a;border-color:transparent}.character strong,.character small{display:block;margin:9px 12px 0}.character small{font-size:10px;opacity:.65;margin-top:3px}.portrait{height:134px;display:block;overflow:hidden;position:relative;background:#e4e1d9}.portrait img{width:255%;height:100%;object-fit:cover;position:absolute;top:0}.portrait.alex img{left:-10%}.portrait.maya img{right:-13%}.muted{font-size:12px;opacity:.65;line-height:1.6}.join-card .muted{text-align:center;margin:14px 0 0}#loading{position:absolute;inset:0;z-index:20;background:#eee8dc;display:flex;justify-content:center;align-items:center;flex-direction:column}#loading[hidden]{display:none}#loading h1{font-size:37px;letter-spacing:-1px;font-weight:500;margin:15px 0}#loading p{font-size:13px;color:#738067}.track{height:3px;width:180px;background:#d2d9c7;margin-top:20px}.track i{display:block;height:3px;background:#6c8358;width:5%;transition:width .2s}#hud{pointer-events:none;position:absolute;inset:0}#room-label{position:absolute;left:33px;top:110px;color:#fff;font-size:13px;text-shadow:0 1px 5px #0009}.map{position:absolute;left:26px;bottom:28px;background:#fffaf0d9;border:1px solid #fff8;border-radius:15px;padding:10px;backdrop-filter:blur(12px)}.map canvas{width:132px;height:106px}.controls{position:absolute;bottom:32px;left:50%;transform:translateX(-50%);display:flex;gap:19px;background:#fffaf0e6;padding:13px 20px;border-radius:12px;white-space:nowrap;font-size:11px;backdrop-filter:blur(10px)}.controls b{margin-right:5px;color:#536748}.controls span{color:#687163}#crosshair{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:20px;font-weight:300;color:#fff7;text-shadow:0 0 3px #0008}#target-label{position:absolute;top:56%;left:50%;transform:translateX(-50%);background:#3e5b40dc;color:#fff;padding:7px 12px;border-radius:14px;font-size:11px}dialog{border:1px solid #fff9;border-radius:21px;background:#fffaf0;color:#28362b;padding:28px;width:410px;max-width:90vw;box-shadow:0 20px 80px #1823184a}dialog::backdrop{background:#18201840;backdrop-filter:blur(4px)}.dialog-head{display:flex;align-items:center;justify-content:space-between}.dialog-head h2{font-size:24px;letter-spacing:-.8px;margin:0}.dialog-head button{border:0;font-size:25px;background:none;padding:0 3px}dialog p{font-size:13px;line-height:1.7}dialog label{display:block;font-size:12px;margin:20px 0}dialog input,dialog select{margin-top:8px;width:100%;border-radius:9px;border:1px solid #d1d7c6;padding:11px;background:#fff;color:#28362b}dialog>button{margin-top:10px;width:100%}dialog a{font-size:12px;color:#4a6841;line-height:1.6}#toast{position:absolute;bottom:95px;left:50%;transform:translateX(-50%);padding:12px 19px;background:#233829e8;color:#fff;border-radius:24px;z-index:40;font-size:12px;pointer-events:none}#fatal{position:absolute;inset:0;background:#eee8dcee;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:30px;text-align:center}#fatal[hidden]{display:none}[hidden]{display:none!important}@media(max-width:800px){header{top:15px;left:16px;right:16px}.intro{display:none}#welcome{inset:100px 0 20px;justify-content:center}.join-card{width:340px}.brand{padding:9px 12px}.brand small{display:none}.brand strong{font-size:15px}.top-actions{gap:5px}#connection{font-size:10px;padding:8px}#invite{font-size:11px;padding:10px}.controls{bottom:20px;gap:10px;padding:10px;font-size:10px}.map{bottom:70px;left:15px}.map canvas{width:94px;height:75px}}

#door-prompt{position:absolute;bottom:88px;left:50%;transform:translateX(-50%);padding:10px 16px;background:#3e5b40ec;color:#fff;border:1px solid #ffffff44;border-radius:18px;font-size:12px;box-shadow:0 3px 20px #0002}
#coach{position:absolute;left:28px;bottom:185px;width:205px;padding:13px 15px;background:#fffcf4f0;border:1px solid #fff9;border-radius:14px;box-shadow:0 4px 25px #263b2014}#coach p{font-size:12px;line-height:1.6;margin:0 0 8px}#coach button{padding:5px 10px;font-size:11px;background:#e7ecdf}#door-prompt{bottom:94px}.controls{font-size:11px}@media(max-width:800px){#coach{left:16px;bottom:178px;width:180px}}
#coach,#qa-reconnect{pointer-events:auto}
#blinds-panel{position:absolute;right:24px;bottom:112px;z-index:15;width:280px;max-width:calc(100vw - 32px);background:#fffaf0f2;padding:18px;border:1px solid #fff9;border-radius:16px;box-shadow:0 8px 35px #18231835}.blinds-heading,.blinds-actions{display:flex;align-items:center;justify-content:space-between;gap:10px}.blinds-heading button{padding:0 5px;font-size:24px;border:0;background:transparent}#blinds-panel p{font-size:12px;line-height:1.5;margin:10px 0 18px}#blinds-panel label{display:block;font-size:12px;margin:16px 0}#blinds-panel output{float:right;color:#64785b}#blinds-panel input{display:block;width:100%;accent-color:#58734e;margin-top:10px}.blinds-actions button{padding:8px 12px;font-size:12px}#blind-prompt{position:absolute;bottom:140px;left:50%;transform:translateX(-50%);background:#fffaf0ed;padding:9px 14px;border-radius:18px;font-size:12px}.controls{gap:14px}@media(max-width:800px){#blinds-controls{font-size:11px;padding:8px}#blinds-panel{right:16px;bottom:145px}.controls{gap:8px;padding:10px;font-size:9px}}

.overview-link{pointer-events:auto;color:#304c37;text-decoration:none;background:#fffdf4ed;border-radius:20px;padding:10px 15px;font-size:13px;white-space:nowrap}.overview-link:focus-visible{outline:3px solid #b58c4c;outline-offset:3px}

#walk-furniture{pointer-events:auto;font-size:13px;border-radius:20px;padding:10px 15px}#walk-furniture[aria-pressed=false]{background:#304c37;color:white}#furniture-mode-label{position:absolute;top:135px;left:32px;background:#fffaf0e8;color:#304c37;padding:6px 10px;border-radius:12px;font-size:11px}@media(max-width:800px){header>div:last-child{flex-wrap:wrap;justify-content:flex-end;gap:5px!important;max-width:62%}.overview-link,#walk-furniture{font-size:11px;padding:8px 10px}#furniture-mode-label{top:130px;left:16px}}

#overview-controls{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:10px;background:#fffaf0ed;padding:12px;border-radius:16px;z-index:15;max-width:95vw}#overview-controls label{display:flex;gap:8px;align-items:center;white-space:nowrap;font-size:12px}#overview-controls input{width:95px;accent-color:#3e5b40}#overview-controls span{font-size:11px;white-space:nowrap;color:#687163}.view-transitioning #coach{display:none}#switch-view{pointer-events:auto}#walk-furniture:disabled{cursor:default}@media(max-width:800px){#overview-controls{flex-wrap:wrap;justify-content:center;width:94vw}#overview-controls span{display:none}}
:is(#furniture-selection,#measurement-legend){position:fixed;z-index:16;right:24px;top:116px;width:270px;max-height:65vh;overflow:auto;padding:18px;background:#f7f3e9ee;color:#263d30;border-radius:16px;box-shadow:0 8px 40px #182d2426;font-size:13px}#furniture-selection button,#furniture-selection select{margin:6px 0;max-width:100%}#furniture-selection label{display:block;margin-top:12px}#furniture-selection select{display:block;width:100%}#measurement-legend{left:24px;right:auto;width:240px;pointer-events:none}#measurement-labels,#dollhouse-room-labels{position:fixed;inset:0;pointer-events:none;z-index:9}.measurement-label{position:absolute;left:0;top:0;background:#fff8edee;color:#865016;padding:3px 6px;border-radius:5px;font:11px system-ui;white-space:nowrap;translate:-50% -50%;border:1px solid #c28544}.measurement-label.plan{color:#185941;border-color:#39846d}#dollhouse-room-labels button{position:absolute;left:0;top:0;translate:-50% -50%;pointer-events:auto;font:11px system-ui;padding:5px 8px;background:#f6f2e7e6;border:1px solid #6e8971;border-radius:20px}#furniture-select[aria-pressed=true],#measurements-toggle[aria-pressed=true]{background:#365c43;color:white}@media(max-width:760px){#furniture-selection{top:170px;right:10px}#measurement-legend{left:10px;top:170px;width:190px}.brand{max-width:220px}}

#measurement-legend a{pointer-events:auto;color:#285b42}

#furniture-select,#measurements-toggle{pointer-events:auto}
#measurement-legend{pointer-events:auto;width:220px;padding:14px}#measurement-legend label{display:block;margin:10px 0}#measurement-legend select{display:block;width:100%;margin-top:6px}#measurement-legend small{display:block;color:#607065;font-size:11px}#measurement-legend details{margin-top:10px;font-size:11px}#measurement-legend .measurement-detail{font-size:12px}#dollhouse-room-labels button{opacity:0;pointer-events:none;transition:opacity .12s}#dollhouse-room-labels button.room-hovered,#dollhouse-room-labels button:focus-visible{opacity:1;pointer-events:auto}#furniture-hover-remove{position:fixed;z-index:25;max-width:230px;padding:10px 14px;border:1px solid #64826b;border-radius:10px;background:#f8f4e9;color:#203c29;box-shadow:0 3px 18px #0003;cursor:pointer;font-size:12px}#furniture-hover-remove:hover{background:#315d42;color:white}

.viewer-switches{position:fixed;right:24px;top:154px;display:flex;gap:7px;z-index:10;pointer-events:auto}.viewer-switches button{padding:10px 13px;font-size:12px;min-height:40px;background:#fffaf0ed}.viewer-switches button[aria-pressed=true]{background:#365c43;color:#fff}.viewer-switches button:focus-visible{outline:3px solid #95ad79;outline-offset:3px}@media(max-width:760px){.viewer-switches{top:auto;bottom:126px;right:14px;max-width:65vw;flex-wrap:wrap;justify-content:flex-end}.viewer-switches button{font-size:11px;padding:9px 11px}}

/* Readable floating dimensions and model-derived top-view areas. */
.measurement-label{font:700 16px/1.25 Arial,Helvetica,sans-serif;font-variant-numeric:tabular-nums;background:#163b32f2;color:#fff;border:1px solid #c3eee0;padding:7px 10px;border-radius:8px;box-shadow:0 2px 9px #0005;text-shadow:none}.measurement-label.plan{color:#fff;border-color:#8bf0cb}#measurement-legend{font-family:Arial,Helvetica,sans-serif;font-size:14px}#measurement-legend small,#measurement-legend details{font-size:12px;line-height:1.4}#measurement-areas{position:fixed;inset:0;z-index:10;pointer-events:none}.room-area-label{position:absolute;left:0;top:0;translate:-50% -50%;font:500 16px/1.2 Arial,Helvetica,sans-serif;text-align:center;color:#fff;background:#18372bcc;border:1px solid #ffffff70;border-radius:8px;padding:6px 9px;max-width:135px;box-shadow:0 2px 10px #0003}.room-area-label span{display:block;text-transform:capitalize}.room-area-label strong{display:block;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap;margin-top:3px}#measurement-total{position:fixed;left:50%;top:115px;translate:-50% 0;z-index:12;background:#fbf9f0ed;color:#173c2f;padding:9px 20px;border-radius:14px;text-align:center;box-shadow:0 3px 18px #0002;font-family:Arial,Helvetica,sans-serif;pointer-events:none}#measurement-total strong{display:block;font-size:28px;line-height:1.15;font-variant-numeric:tabular-nums}#measurement-total span{display:block;font-size:12px;margin-top:3px}.measurements-overview #dollhouse-room-labels button{opacity:0;pointer-events:none}@media(max-height:760px){.room-area-label{font-size:14px;padding:5px 7px;max-width:115px}#measurement-total{top:100px;padding:6px 14px}#measurement-total strong{font-size:24px}}@media(max-width:760px){.measurement-label{font-size:15px}.room-area-label{font-size:14px;max-width:110px}#measurement-total{top:125px}}

.measurements-overview #dollhouse-room-labels button:focus-visible{opacity:1;pointer-events:auto;z-index:13;outline:3px solid #95ad79;outline-offset:3px}

/* One scene and one feature set, with room for thumbs and phone safe areas. */
html,body{width:100%;height:100%;overscroll-behavior:none}#world{height:100dvh;touch-action:none}
dialog{max-height:calc(100dvh - 32px);overflow-y:auto}#touch-controls,#open-tools,.touch-help{display:none}
.touch-device #touch-controls{display:block}.touch-device .controls,.touch-device .desktop-help{display:none}.touch-device .touch-help{display:block}
#touch-controls{position:absolute;inset:0;pointer-events:none;user-select:none;-webkit-user-select:none}
#move-stick{position:absolute;left:max(22px,env(safe-area-inset-left));bottom:calc(26px + env(safe-area-inset-bottom));width:128px;height:128px;border:1px solid #fff8;border-radius:50%;background:#fffaf02b;backdrop-filter:blur(7px);pointer-events:auto;touch-action:none;box-shadow:inset 0 0 0 22px #fff2}
#move-thumb{position:absolute;left:calc(50% - 24px);top:calc(50% - 24px);width:48px;height:48px;background:#fffcf0d9;border:1px solid #fff9;border-radius:50%;box-shadow:0 3px 15px #142a2340;pointer-events:none}
.stick-label{position:absolute;bottom:9px;left:0;right:0;text-align:center;font-size:9px;letter-spacing:1.4px;color:white;text-shadow:0 1px 4px #0008;pointer-events:none}
#touch-hint{position:absolute;bottom:calc(164px + env(safe-area-inset-bottom));left:18px;right:18px;text-align:center;font-size:11px;color:white;text-shadow:0 1px 5px #000b;pointer-events:none}
.touch-actions{position:absolute;right:max(18px,env(safe-area-inset-right));bottom:calc(26px + env(safe-area-inset-bottom));display:grid;grid-template-columns:54px 54px;gap:10px;pointer-events:auto}
.touch-actions button{width:54px;height:54px;border-radius:50%;padding:4px;font-size:12px;touch-action:none;background:#fffaf0d9;box-shadow:0 2px 12px #1a352430}.touch-actions #touch-run{grid-column:2}.touch-actions button[aria-pressed=true]{background:#345d43;color:#fff}
#visit-tools{width:390px}#mobile-tool-list{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:22px 0}#mobile-tool-list>button,#mobile-tool-list .viewer-switches>button{margin:0;min-height:48px;width:100%;font-size:13px}#mobile-tool-list .viewer-switches{position:static;display:contents;max-width:none}.mobile-library{display:block;margin-top:18px;padding:12px;border-top:1px solid #d5d8cb;font-size:13px}
.compact-hud header{top:calc(12px + env(safe-area-inset-top));left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));gap:8px;z-index:11;align-items:flex-start}
.compact-hud header>div:last-child{gap:7px!important;align-items:center!important}.compact-hud .brand{padding:10px 12px;gap:8px;min-height:46px;max-width:calc(100vw - 158px)}.compact-hud .brand strong{font-size:14px}.compact-hud .brand .leaf{font-size:25px}.compact-hud .brand small{display:none}
.compact-hud #open-tools{display:block;pointer-events:auto;min-height:46px;padding:10px 14px;font-size:12px}.compact-hud #pause{width:46px;min-height:46px;padding:10px}.compact-hud #connection{display:none}
.compact-hud #room-label{top:calc(76px + env(safe-area-inset-top));left:max(14px,env(safe-area-inset-left));font-size:12px}.compact-hud .map{left:max(14px,env(safe-area-inset-left));top:calc(100px + env(safe-area-inset-top));bottom:auto;padding:6px;border-radius:10px}.compact-hud .map canvas{width:76px;height:61px}
.compact-hud #welcome{inset:calc(78px + env(safe-area-inset-top)) 0 max(14px,env(safe-area-inset-bottom));display:flex;justify-content:center;align-items:center;overflow:auto;padding:10px 14px;pointer-events:auto}.compact-hud .intro{display:none}.compact-hud .join-card{width:360px;max-width:100%;padding:22px;flex-shrink:0;max-height:100%;overflow-y:auto}.compact-hud .join-card h2{font-size:22px}.compact-hud .choices{margin:18px 0}.compact-hud .portrait{height:124px}.compact-hud .join-card .primary{min-height:52px}
.compact-hud #coach{display:none}.compact-hud #door-prompt{bottom:calc(205px + env(safe-area-inset-bottom));max-width:90vw;text-align:center}.compact-hud #blind-prompt{bottom:calc(245px + env(safe-area-inset-bottom));max-width:90vw;text-align:center;font-size:11px}.compact-hud #target-label{top:55%;max-width:85vw;text-align:center}.compact-hud #toast{bottom:calc(188px + env(safe-area-inset-bottom));max-width:90vw;width:max-content;text-align:center}
.compact-hud #blinds-panel{bottom:calc(180px + env(safe-area-inset-bottom));max-height:calc(100dvh - 260px);overflow:auto}.compact-hud #overview-controls{left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));max-width:none;display:flex;flex-wrap:wrap;gap:8px;font-size:12px}.compact-hud #overview-controls button{min-height:44px}.compact-hud #overview-controls>span{width:100%;font-size:11px}.compact-hud #overview-controls input{max-width:115px}
.compact-hud #measurement-legend{left:12px;bottom:calc(12px + env(safe-area-inset-bottom));max-height:45dvh;overflow:auto;width:205px}.compact-hud #measurement-total{top:calc(78px + env(safe-area-inset-top));padding:7px 12px}.compact-hud #measurement-total strong{font-size:22px}.compact-hud .room-area-label{font-size:12px;padding:4px 6px;max-width:96px}
/* The local studio's return link is available in Tools on narrow screens. */
.compact-hud>a[href="/"][style]{display:none}
@media(max-width:360px){.compact-hud .brand{padding:10px 8px}.compact-hud #mobile-tool-list{gap:7px}.compact-hud .join-card{padding:18px}.compact-hud .portrait{height:104px}#move-stick{width:112px;height:112px;left:18px}.touch-actions{right:14px;gap:8px}.touch-actions button{width:50px;height:50px}}
@media(max-height:520px){.compact-hud #welcome{align-items:flex-start;inset:64px 0 8px;padding:6px 12px}.compact-hud .join-card{width:420px;padding:13px 18px}.compact-hud .join-card h2{font-size:18px}.compact-hud .join-card>p:not(.muted){display:none}.compact-hud .choices{margin:10px 0}.compact-hud .portrait{height:65px}.compact-hud .character{padding-bottom:7px}.compact-hud .character strong{margin-top:5px}.compact-hud .join-card .primary{padding:11px;min-height:44px}.compact-hud .join-card .muted{margin-top:7px}.compact-hud .map{display:none}.compact-hud #room-label{top:72px}#move-stick{width:110px;height:110px;bottom:calc(18px + env(safe-area-inset-bottom))}.touch-actions{bottom:calc(18px + env(safe-area-inset-bottom))}#touch-hint{bottom:calc(132px + env(safe-area-inset-bottom));font-size:10px}.compact-hud #blind-prompt{bottom:160px}.compact-hud #door-prompt{bottom:128px}.compact-hud #toast{bottom:156px}.compact-hud #blinds-panel{bottom:80px;max-height:calc(100dvh - 100px)}}

.compact-hud #overview-controls{transform:none;width:auto}.compact-hud .dialog-head button{min-width:44px;min-height:44px}.compact-hud #furniture-selection{top:calc(80px + env(safe-area-inset-top));right:12px;max-width:calc(100vw - 24px);max-height:calc(100dvh - 105px)}.furniture-editing #touch-controls{display:none}.compact-hud #furniture-selection button{min-height:44px}.compact-hud #measurement-legend{top:auto}
#fatal{z-index:50}

.compact-hud #furniture-selection{top:auto;bottom:calc(12px + env(safe-area-inset-bottom));max-height:40dvh}

.compact-hud #blinds-panel input[type=range]{height:44px;margin-top:4px}.compact-hud .blinds-heading button{min-width:44px;min-height:44px}.compact-hud :is(select,input:not([type=checkbox]):not([type=range])){font-size:16px;min-height:44px}.compact-hud #measurement-legend label{min-height:44px}

#overview-floor{padding:8px;border:1px solid #87927d;border-radius:8px;font:inherit;background:#fffaf0;color:#263d30}.overview-all-floors #dollhouse-room-labels{display:none}.overview-all-floors #measurement-areas{display:none}
