@font-face{font-family:Outfit;src:url('assets/outfit.woff2') format('woff2');font-display:swap;font-weight:100 900}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#08090b;color:#efeee9;font-family:Outfit,system-ui,sans-serif}button,a,input{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button,a{touch-action:manipulation}button{color:inherit;cursor:pointer;border:0}button:disabled{opacity:.4;cursor:wait}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,#point-view:focus-visible{outline:2px solid #b7d6e1;outline-offset:4px}button[hidden],[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip{position:fixed;top:-70px;left:20px;padding:12px;background:#171d20;z-index:50}.skip:focus{top:15px}#smoke-canvas{position:fixed;inset:0;width:100%;height:100%;opacity:.18;pointer-events:none}body:not([data-mode=none]) #smoke-canvas{visibility:hidden}#stage,#point-view{position:absolute;inset:0}#point-view{touch-action:none;outline:none}#point-view canvas{display:block;width:100%;height:100%;cursor:grab}#point-view canvas:active{cursor:grabbing}.header{position:fixed;top:24px;left:34px;right:34px;display:flex;align-items:flex-start;justify-content:space-between;z-index:10;pointer-events:none}.header>*{pointer-events:auto}.brand img{height:69px;width:auto;object-fit:contain;filter:brightness(0) invert(1)}.header-context{font-size:10px;letter-spacing:.22em;position:absolute;left:50%;transform:translateX(-50%);margin:13px 0;color:#b7bab5;font-weight:450;white-space:nowrap;pointer-events:none}.header-tools{display:flex;align-items:center;gap:21px}.document{font-size:11px;color:#c2c5c2;max-width:240px;text-align:right;line-height:1.5}.document:hover{color:#fff}.document span{padding-left:5px}.glass{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:42px;padding:10px 17px;border-radius:50px;background:linear-gradient(135deg,#ffffff17,#151a1e97 40%,#ffffff08);border:1px solid #ffffff27;box-shadow:inset 0 1px 0 #ffffff24,inset 0 -1px 0 #0008,0 7px 22px #0003;backdrop-filter:blur(18px) saturate(1.3);-webkit-backdrop-filter:blur(18px) saturate(1.3);font-size:12px;transition:background .2s,border-color .2s;isolation:isolate;overflow:hidden}.glass:hover{background:linear-gradient(135deg,#ffffff29,#222b2dca);border-color:#ffffff5c}.glass[aria-pressed=true]{border-color:#c6dce466;background:linear-gradient(130deg,#ffffff28,#243338bb)}.icon{width:42px;min-width:42px;padding:0;font-size:20px;line-height:1}.quiet{background:none;padding:7px;min-width:36px;min-height:36px;color:#babdbb;font-size:20px}.quiet:hover{color:white}.scene-heading{position:absolute;left:35px;top:125px;pointer-events:none;max-width:330px;text-shadow:0 2px 18px #000}.eyebrow{font-size:10px;letter-spacing:.18em;font-weight:450;color:#b7bcb6;margin:0 0 12px}.scene-heading h1{font-size:clamp(23px,2.3vw,38px);font-weight:330;line-height:1.14;letter-spacing:-.035em;margin:0;max-width:300px}.legend{display:flex;gap:17px;margin-top:18px;font-size:11px;color:#c7cbc5}.legend span{display:flex;align-items:center;gap:7px}.legend i{width:6px;height:6px;display:inline-block;border-radius:50%;background:var(--color)}.intro{position:absolute;bottom:120px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:17px;white-space:nowrap}.intro>span{font-size:10px;letter-spacing:.20em;color:#a9b3b4}#point-loading{position:absolute;top:48%;left:50%;transform:translate(-50%,-50%);font-size:15px;color:#b8c3c3;letter-spacing:.035em}.scene-actions{position:absolute;left:34px;bottom:95px;display:flex;gap:10px;flex-wrap:wrap;max-width:360px}.camera-controls{position:absolute;right:34px;bottom:95px;display:flex;flex-direction:column;align-items:flex-end;gap:10px}.camera-row{display:flex;gap:6px}.walk-pad{display:grid;grid-template-columns:repeat(3,42px);grid-template-rows:repeat(2,42px);gap:5px}.walk-pad [data-walk=forward]{grid-column:2}.walk-pad [data-walk=left]{grid-column:1;grid-row:2}.walk-pad [data-walk=back]{grid-column:2;grid-row:2}.walk-pad [data-walk=right]{grid-column:3;grid-row:2}.walk-pad button{touch-action:none;user-select:none}.navigation-hint{position:absolute;bottom:145px;left:36px;font-size:10px;line-height:1.6;color:#b9c0ba;max-width:290px;text-shadow:0 2px 9px #000;margin:0;pointer-events:none}.systems{position:fixed;z-index:12;left:50%;bottom:20px;transform:translateX(-50%);display:flex;align-items:center;gap:3px;max-width:calc(100% - 40px);padding:6px;background:#111719b8;border:1px solid #ffffff21;border-radius:40px;backdrop-filter:blur(24px);box-shadow:inset 0 1px 0 #ffffff12,0 12px 30px #0006;overflow:auto;scrollbar-width:none}.systems::-webkit-scrollbar{display:none}.system-tab{background:transparent;border:1px solid transparent;display:flex;align-items:center;gap:8px;border-radius:30px;padding:11px 16px;min-height:42px;white-space:nowrap;font-size:12px;color:#b6beb9;transition:all .2s}.system-tab:hover{color:#fff;background:#ffffff0a}.system-tab[aria-pressed=true]{color:#f6f8f4;border-color:#ffffff27;background:linear-gradient(130deg,#ffffff1f,#ffffff08)}.mode-dot{width:5px;height:5px;border-radius:50%;background:#eee}.mode-dot.sun{background:#f7ca77}.mode-dot.air{background:#6ebeff}.mode-dot.heat{background:#ff9a6b}.mode-dot.water{background:#76d0eb}.mode-dot.electric{background:#f0d574}.mode-dot.materials{background:#d7b68d}.mode-dot.living{background:#9bc782}.mode-dot.neutral{background:#a6b3ad}.player{position:absolute;left:50%;bottom:98px;transform:translateX(-50%);width:min(540px,calc(100% - 400px));z-index:8;padding:17px 20px 10px;border-radius:24px;background:linear-gradient(160deg,#10191de8,#0d1217e8);border:1px solid #ffffff16;backdrop-filter:blur(18px);box-shadow:0 15px 50px #0003}.player-heading{display:flex;align-items:center;gap:11px;margin-bottom:7px}.player-heading>span{font-size:10px;color:var(--accent,#b9d4db);font-variant-numeric:tabular-nums}.player-heading p{font-size:13px;line-height:1.35;margin:0;flex:1}.player-heading .quiet{font-size:18px;min-width:25px;min-height:25px;padding:0}.transport{display:flex;align-items:center;gap:8px}.transport .icon{height:36px;min-height:36px;min-width:36px;width:36px;font-size:18px}.transport>input{flex:1;min-width:35px;height:20px;accent-color:var(--accent,#c5dce5);cursor:pointer}.transport output{font-size:10px;min-width:27px;color:#a8b5b4;font-variant-numeric:tabular-nums}.principle{text-align:center;font-size:9px;letter-spacing:.03em;color:#839491;margin:9px 0 0}.principle span{padding:0 5px}.mode-options{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0 12px}.mode-options button{min-height:32px;border:1px solid #ffffff18;border-radius:25px;background:#ffffff05;padding:6px 12px;font-size:11px;color:#aebdb9}.mode-options button[aria-pressed=true]{color:#f4f6ee;background:#ffffff12;border-color:#ffffff42}.mode-options button:hover{color:#fff;border-color:#ffffff66}dialog{color:#e9eee8;border:1px solid #ffffff27;border-radius:22px;background:#11181bf5;padding:36px;width:min(490px,calc(100% - 34px));max-height:85dvh;line-height:1.6;box-shadow:0 20px 90px #000b}dialog::backdrop{background:#0008;backdrop-filter:blur(5px)}dialog h2{font-weight:350;font-size:27px;line-height:1.2;letter-spacing:-.02em;margin:12px 0 20px}dialog p{font-size:13px;color:#bfc9c5}dialog .close{position:absolute;top:13px;right:13px;min-height:32px;width:32px;min-width:32px}dialog .eyebrow{font-size:9px;margin-right:30px}dialog .glass{margin-top:12px}body[data-ready=false] .systems{opacity:.35;pointer-events:none}body[data-ready=true] .intro{display:none}.fallback{position:absolute;inset:20%;text-align:center}.fallback img{width:100%;max-height:60vh;object-fit:contain}.fallback p{color:#cbd2ce;font-size:14px}
@media(min-width:2000px){.header{top:35px;left:55px;right:55px}.brand img{height:82px}.scene-heading{left:55px;top:155px;max-width:430px}.scene-heading h1{max-width:430px}.header-context{font-size:12px}.document{font-size:13px;max-width:300px}.scene-actions{left:55px}.camera-controls{right:55px}.navigation-hint{left:57px;font-size:12px}.player{width:630px;padding:21px 25px 13px}.player-heading p{font-size:15px}.system-tab{font-size:14px;padding:12px 21px}.systems{bottom:23px}.mode-options button{font-size:12px}.principle{font-size:10px}}
@media(max-width:1000px){.header-context{display:none}.scene-heading{top:110px;max-width:260px}.scene-heading h1{font-size:27px}.player{width:min(510px,calc(100% - 260px));padding:13px}.scene-actions{left:20px;bottom:91px;max-width:145px}.scene-actions .glass{font-size:10px;padding:8px 11px}.camera-controls{right:20px;bottom:91px}.navigation-hint{left:21px;bottom:145px;max-width:130px;font-size:9px}.systems{max-width:calc(100% - 30px)}.system-tab{padding:9px 12px}.player-heading p{font-size:12px}}
@media(max-width:700px){.header{top:16px;left:18px;right:18px}.brand img{height:52px}.header-tools{gap:12px}.document{font-size:9px;max-width:170px}.header-tools .icon{width:34px;min-width:34px;min-height:34px;font-size:17px}.scene-heading{top:91px;left:20px;max-width:230px}.scene-heading .eyebrow{font-size:8px;margin-bottom:7px}.scene-heading h1{font-size:23px;max-width:235px}.legend{font-size:9px;margin-top:9px;gap:12px}.systems{bottom:12px;left:12px;right:12px;transform:none;max-width:none;justify-content:flex-start;border-radius:28px;padding:4px}.system-tab{font-size:11px;padding:10px 13px;min-height:42px}.player{bottom:76px;width:calc(100% - 26px);padding:12px 13px 9px;border-radius:19px}.player-heading p{font-size:12px}.mode-options{margin:6px 0 8px;gap:5px}.mode-options button{font-size:10px;min-height:31px;padding:6px 10px}.transport{gap:5px}.transport .quiet{padding:4px;min-width:29px}.principle{font-size:8px;margin-top:7px}.scene-actions{left:17px;bottom:81px;max-width:190px}.camera-controls{right:17px;bottom:81px}.navigation-hint{left:19px;bottom:132px;max-width:225px;font-size:9px}body:not([data-mode=none]) .scene-actions{bottom:252px;max-width:180px}body:not([data-mode=none]) .camera-controls{bottom:252px}body:not([data-mode=none]) .navigation-hint{display:none}.camera-controls .icon,.walk-pad .icon{width:36px;min-width:36px;min-height:36px;height:36px;font-size:18px}.walk-pad{grid-template-columns:repeat(3,36px);grid-template-rows:repeat(2,36px);gap:4px}.scene-actions .glass{font-size:10px;min-height:36px}.intro{bottom:97px}.intro>span{font-size:8px;letter-spacing:.13em}}
@media(max-height:650px) and (min-width:701px){.header{top:16px}.brand img{height:52px}.scene-heading{top:92px}.scene-heading h1{font-size:24px}.player{bottom:82px;padding:10px 14px}.scene-actions,.camera-controls{bottom:83px}.systems{bottom:12px}.navigation-hint{bottom:130px}.principle{display:none}.mode-options{margin:3px 0 7px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}.loading-dots{animation:none}}
.option-select{display:flex;align-items:center;gap:7px;color:#aebdb9;font-size:10px}.option-select select{max-width:140px;min-height:32px;border:1px solid #ffffff25;border-radius:16px;color:#eef1eb;background:#1c2529;padding:5px 9px;font:inherit;font-size:11px;cursor:pointer}.option-select select:focus-visible{outline:2px solid #b7d6e1;outline-offset:2px}.mode-options:empty{display:none}.legend{flex-wrap:wrap;max-width:310px}.fallback-photo{position:absolute;inset:15%;width:70%;height:70%;object-fit:contain;z-index:-1}
@media(max-width:700px){body[data-mode=water] .scene-actions,body[data-mode=water] .camera-controls{bottom:285px}}

body[data-mode=air] .scene-heading{isolation:isolate}body[data-mode=air] .scene-heading::before{content:"";position:absolute;inset:-34px -55px;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 35% 45%,#08090bc7 0%,#08090b75 40%,transparent 72%);filter:blur(12px)}body[data-mode=air] .legend{color:#edf0ed}body[data-mode=air] .header{filter:drop-shadow(0 1px 3px #0009)}

.journey-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:4px 0 8px}.journey-nav .glass{min-height:30px;padding:5px 14px;font-size:11px}.journey-nav .quiet{font-size:25px;min-height:28px;padding:0 8px}.journey-nav button:disabled{cursor:default;opacity:.25}body[data-mode=water] .scene-heading{isolation:isolate}body[data-mode=water] .scene-heading::before{content:"";position:absolute;inset:-34px -55px;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 35% 45%,#08090bb0 0%,#08090b60 40%,transparent 72%);filter:blur(12px)}body[data-mode=water] .legend{color:#edf0ed}@media(max-width:700px){body[data-mode=water] .scene-actions,body[data-mode=water] .camera-controls{bottom:316px}.journey-nav{margin:1px 0 5px}.journey-nav .glass{min-height:29px;font-size:10px}}

/* The water journey leaves the centre and bathroom fittings unobstructed. */
.player-tools{display:flex;align-items:center;gap:8px;margin:8px 0 0}.player-tools .icon{height:34px;min-height:34px;width:34px;min-width:34px;font-size:17px}.player-heading #player-settings{font-size:20px;min-height:30px;min-width:30px}.player[data-expanded=false] .player-heading{margin-bottom:2px}
body[data-mode=water] .player{left:32px;top:205px;bottom:auto;transform:none;width:290px;padding:12px 14px;border-radius:18px;background:linear-gradient(135deg,#10191dba,#0d1217a8);box-shadow:0 8px 28px #0002}
body[data-mode=water] .scene-heading{left:34px;top:130px;max-width:280px}body[data-mode=water] .scene-heading h1{font-size:24px;max-width:280px}body[data-mode=water] .scene-heading .eyebrow{font-size:9px;margin-bottom:6px}body[data-mode=water] .legend{display:none}body[data-mode=water] .scene-heading::before{display:none}
body[data-mode=water] .player-heading p{font-size:12px}body[data-mode=water] .journey-nav{margin:0 0 5px;gap:5px}body[data-mode=water] .journey-nav .glass{min-height:28px;padding:4px 12px;font-size:10px}body[data-mode=water] .transport .icon{height:31px;min-height:31px;width:31px;min-width:31px;font-size:16px}body[data-mode=water] .transport output{font-size:10px}body[data-mode=water] .mode-options{gap:5px}body[data-mode=water] .option-select select{max-width:130px}
@media(max-width:700px){body[data-mode=water] .scene-heading{top:86px;left:20px}body[data-mode=water] .scene-heading h1{font-size:19px}body[data-mode=water] .scene-heading .eyebrow{display:none}body[data-mode=water] .player{left:12px;top:auto;bottom:74px;width:calc(100% - 24px);padding:8px 12px;border-radius:16px}body[data-mode=water] .journey-nav{position:absolute;right:12px;top:7px;width:148px}body[data-mode=water] .player-heading{padding-right:154px;min-height:29px}body[data-mode=water] .player-heading>span{display:none}body[data-mode=water] .player-heading p{font-size:10px}body[data-mode=water] .player-heading #player-settings{position:absolute;right:166px;top:7px}body[data-mode=water] .player-heading{padding-right:187px}body[data-mode=water] .scene-actions,body[data-mode=water] .camera-controls{bottom:170px}body[data-mode=water]:has(.player[data-expanded=true]) .scene-actions,body[data-mode=water]:has(.player[data-expanded=true]) .camera-controls{bottom:296px}}

/* Keep navigation guidance and actions in document flow at every viewport. */
.navigation-dock{position:absolute;left:34px;bottom:95px;display:flex;flex-direction:column;align-items:flex-start;gap:10px;width:min(360px,calc(100% - 180px));pointer-events:none;z-index:9}
.navigation-dock .navigation-hint{position:static;max-width:100%;width:fit-content;padding:7px 10px;border-radius:10px;background:rgba(8,12,14,.77);color:#edf0eb;text-shadow:none;line-height:1.5}
.navigation-dock .scene-actions{position:static;max-width:100%;pointer-events:auto}
@media(min-width:1600px){.navigation-dock{left:55px}}
@media(max-width:1000px){.navigation-dock{left:20px;bottom:91px;width:min(280px,calc(100% - 160px))}.navigation-dock .navigation-hint{font-size:10px}}
@media(max-width:700px){.navigation-dock{left:17px;bottom:83px;width:calc(100% - 152px)}body:not([data-mode=none]) .navigation-dock{bottom:252px}body[data-mode=water] .navigation-dock{bottom:170px}body[data-mode=water]:has(.player[data-expanded=true]) .navigation-dock{bottom:296px}}
.return-to-story{position:absolute;left:105px;top:14px;font-size:12px;color:#d4d8d3;white-space:nowrap}
.return-to-story:hover{text-decoration:underline}
.embedded-visit .brand,.embedded-visit .return-to-story,.embedded-visit .header-context{display:none}
.embedded-visit .header-tools{margin-left:auto}
@media(max-width:700px){.return-to-story{left:75px;top:9px;font-size:11px}.header:has(.return-to-story) .document{display:none}.embedded-visit .document{display:none}}

/* The inline model is visible before its camera controls capture input. */
.preview-visit .header,.preview-visit .navigation-dock,.preview-visit .camera-controls,.preview-visit .systems,.preview-visit #player,.preview-visit .scene-heading{visibility:hidden;pointer-events:none}
.preview-visit #smoke-canvas{visibility:hidden}

.preview-visit #intro{visibility:hidden;pointer-events:none}
.preview-visit{background:#101010}

.preview-visit #point-view{inset:0}

/* Shared controls and readable compact navigation. */
:root{--brand-accent:#edafa9}a:focus-visible,button:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid var(--brand-accent);outline-offset:4px}.glass{min-height:44px;border-radius:5px;background:#242020eb;border-color:#a3988c70;box-shadow:none}.glass:hover{background:#42313a;border-color:#edafa9}.icon,.quiet{min-width:44px;min-height:44px}.scene-heading h1,dialog h2{font-family:Georgia,serif}.scene-heading h1{font-size:32px}.system-tab{min-height:44px;font-size:14px}.system-tab[aria-pressed=true]{border-color:#edafa9;color:#fff}.brand img{filter:none}.navigation-hint{font-size:12px}.principle{font-size:11px}.player-heading p{font-size:14px}dialog p{font-size:16px}dialog{background:#211b1f;color:#f3eee7}.header-tools{gap:10px}#visit-motion{font-size:12px}
.visit-selectors{position:fixed;z-index:13;bottom:91px;left:34px;display:flex;gap:12px;max-width:calc(100% - 68px)}.visit-selectors label{display:flex;flex-direction:column;gap:4px}.visit-selectors label:first-child{display:none}.visit-selectors span{font-size:11px;color:#f3eee7;text-shadow:0 1px 4px #000}.visit-selectors select{max-width:220px;min-height:44px;border:1px solid #a3988c70;border-radius:4px;background:#242020ed;color:#f3eee7;font:14px Outfit,Arial,sans-serif;padding:9px 32px 9px 12px}.navigation-dock{bottom:166px}.camera-controls{bottom:166px}.preview-visit .visit-selectors{visibility:hidden;pointer-events:none}.player{max-height:58dvh;overflow:auto}
@media(min-width:801px){.visit-selectors{left:auto;right:34px;bottom:92px}.player{bottom:98px}.navigation-dock{bottom:95px}.camera-controls{bottom:166px}}
@media(max-width:800px){
 .systems{display:none}.visit-selectors{left:12px;right:12px;bottom:12px;max-width:none;display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:8px;background:#171514eb;border-radius:6px}.visit-selectors label:first-child{display:flex}.visit-selectors select{width:100%;max-width:100%;min-width:0;font-size:13px;padding:9px 22px 9px 9px}.visit-selectors label{min-width:0}.visit-selectors span{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 .header{left:16px;right:16px;top:14px}.header .document{display:none}.header-tools #help{width:44px;min-width:44px;min-height:44px}.header-tools{gap:7px}#visit-motion{font-size:11px;padding:8px 10px;min-height:44px}
 .navigation-dock,body:not([data-mode=none]) .navigation-dock,body[data-mode=water] .navigation-dock{left:16px;bottom:112px;width:calc(100% - 180px)}.navigation-dock .navigation-hint{font-size:11px}.navigation-dock .scene-actions .glass{font-size:12px;min-height:44px;padding:10px}
 .camera-controls,body:not([data-mode=none]) .camera-controls,body[data-mode=water] .camera-controls{right:16px;bottom:112px}.camera-controls .icon,.walk-pad .icon{width:44px;min-width:44px;min-height:44px;height:44px}.walk-pad{grid-template-columns:repeat(3,44px);grid-template-rows:repeat(2,44px);gap:4px}.camera-row #zoom-in,.camera-row #zoom-out{display:none}.camera-row #camera-reset{display:flex}
 body:not([data-mode=none]) .navigation-dock,body:not([data-mode=none]) .camera-controls{display:none}
 .player,body[data-mode=water] .player{bottom:108px;left:12px;top:auto;width:calc(100% - 24px);transform:none;max-height:45dvh;padding:12px;background:#211b1feb}.player-heading p,body[data-mode=water] .player-heading p{font-size:14px}.player-heading,body[data-mode=water] .player-heading{padding-right:0;min-height:44px}.player-heading #player-settings,body[data-mode=water] .player-heading #player-settings{position:static;min-height:44px;min-width:44px}.journey-nav,body[data-mode=water] .journey-nav{position:static;width:auto;min-height:44px;gap:10px}.journey-nav .glass,body[data-mode=water] .journey-nav .glass{min-height:44px;font-size:13px}.journey-nav .quiet{min-height:44px;min-width:44px}.transport .icon,body[data-mode=water] .transport .icon{width:44px;min-width:44px;min-height:44px;height:44px}.mode-options button,.option-select select{min-height:44px;font-size:13px}.principle{font-size:11px}.scene-heading,body[data-mode=water] .scene-heading{top:86px;left:18px}.scene-heading h1,body[data-mode=water] .scene-heading h1{font-size:26px;max-width:85vw}.scene-heading .legend{font-size:11px}.scene-heading .eyebrow{display:none}
}

.preview-visit{background:#171514}
