:root{color-scheme:dark;--ink:#162529;--cream:#f3efdf;--muted:#d6ddd9;--gold:#dbc492;--line:#ffffff26}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:var(--ink);color:var(--cream);font:14px/1.45 Arial,Helvetica,sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:2px solid var(--gold);outline-offset:4px}a{color:inherit}#experience{height:100%;height:100dvh;position:relative;overflow:hidden}#scene{display:block;width:100%;height:100%;touch-action:none;cursor:grab}#scene:active{cursor:grabbing}.vignette{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,#101b2b85 0%,transparent 25%,transparent 54%,#111e26bf 100%)}header{position:absolute;left:34px;right:34px;top:max(26px,env(safe-area-inset-top));display:flex;justify-content:space-between;align-items:center;pointer-events:none}.brand{display:flex;align-items:center;gap:13px;text-decoration:none;pointer-events:auto}.brand-mark{display:grid;place-items:center;width:42px;height:47px;border:1px solid #f3efdf6b;font:30px Georgia,serif}.brand strong{display:block;letter-spacing:.23em;font-size:13px}.brand small{font-size:11px;color:#e2e6df;display:block;margin-top:5px}.header-actions{display:flex;align-items:center;gap:22px;pointer-events:auto}.video-link{text-decoration:none;font-size:12px;letter-spacing:.02em}.video-link span{padding-left:8px;color:var(--gold)}.icon-button{border:1px solid #fff3;background:#15252dcc;backdrop-filter:blur(10px);width:40px;height:40px;border-radius:50%;font-size:22px;display:grid;place-items:center}.icon-button:hover{background:#415054}.mode-switch{position:absolute;top:32px;left:50%;transform:translateX(-50%);display:flex;background:#13212bc9;backdrop-filter:blur(18px);border:1px solid #ffffff2b;padding:5px;border-radius:40px}.mode-switch button{border:0;background:none;border-radius:30px;padding:10px 19px;font-size:12px;white-space:nowrap}.mode-switch button.active{background:var(--cream);color:var(--ink)}.map-panel{position:absolute;right:34px;top:119px;width:135px;padding:15px 18px 12px;background:#14252bd9;backdrop-filter:blur(14px);border:1px solid #fff2;border-radius:6px}.map-title{display:flex;justify-content:space-between;gap:8px;font-size:8px;letter-spacing:.05em;color:#c8d2cf}.map-title span:last-child{color:var(--gold);white-space:nowrap}#floorMap{height:187px;width:100%;margin:13px 0 8px}.floor-outline{fill:#ffffff09;stroke:#d4d6cc;stroke-width:1}.entry-line{stroke:#ddc48c;stroke-width:3}.map-furniture{fill:#ffffff23;stroke:#ffffff47;stroke-width:.5}.map-stop{fill:#ffffff45}#mapPlayer{fill:#e6c98d;filter:drop-shadow(0 1px 3px #000)}.map-note{font-size:9px;display:block;text-align:center;color:#b8c5c5}.side-tools{position:absolute;top:405px;right:81px;display:grid;gap:10px}.side-tools .icon-button{width:37px;height:37px;font-size:22px}.hidden{display:none!important}#crosshair{position:absolute;top:50%;left:50%;width:4px;height:4px;background:#fff8;box-shadow:0 0 0 3px #0001;border-radius:50%;pointer-events:none}.bottom-panel{position:absolute;left:34px;right:34px;bottom:max(22px,env(safe-area-inset-bottom));pointer-events:none}.place{margin-bottom:23px}.place-eyebrow,.eyebrow{font-size:10px;letter-spacing:.19em;color:var(--gold)}h1{font:400 clamp(30px,3.4vw,48px)/1.1 Georgia,'Times New Roman',serif;margin:9px 0 8px;letter-spacing:-.025em}.place p{color:#e1e4df;font-size:12px;margin:0;max-width:470px}.stops{display:flex;gap:8px;pointer-events:auto}.stops button{border:1px solid #ffffff40;background:#14242dcc;backdrop-filter:blur(10px);padding:13px 17px;border-radius:4px;font-size:12px;transition:background .2s}.stops button span{font-size:9px;color:var(--gold);margin-right:10px}.stops button.selected,.stops button:hover{background:#e8e5da;color:#172528;border-color:#e8e5da}.stops button.selected span,.stops button:hover span{color:#6d5830}.footer-line{border-top:1px solid #ffffff2b;margin-top:20px;padding-top:12px;display:flex;justify-content:space-between;gap:10px;font-size:10px;color:#dae2de}.footer-line i{display:inline-block;width:5px;height:5px;background:var(--gold);border-radius:50%;margin-right:6px}.loading{position:absolute;inset:0;z-index:10;background:linear-gradient(90deg,#122128ee,#1221288a),url('/assets/vista-exterior-v4.jpg') center/cover;display:flex;align-items:center;transition:opacity .65s,visibility .65s}.loading.done{opacity:0;visibility:hidden;pointer-events:none}.loading-inner{width:min(560px,80vw);margin-left:10vw}.loading h2{font:400 clamp(40px,6vw,72px)/1.08 Georgia,serif;margin:20px 0}.loading p{color:#d1dbd7;font-size:14px;max-width:380px}.progress-track{height:2px;max-width:330px;background:#ffffff29;margin:32px 0 14px}#progressBar{width:2%;height:100%;background:var(--gold);transition:width .2s}.loading small{font-size:10px;color:#c9d5d0}.loading a{color:var(--gold)}.transition{position:absolute;inset:0;background:#132129;opacity:0;pointer-events:none;transition:opacity .16s}.transition.show{opacity:1}.look-hint,#joystick{display:none}dialog{max-width:580px;width:calc(100% - 32px);max-height:88dvh;overflow:auto;background:#f2f0e7;color:#233339;border:0;border-radius:8px;padding:42px;box-shadow:0 20px 120px #0007}dialog::backdrop{background:#07191cbf;backdrop-filter:blur(6px)}.dialog-close{position:absolute;right:17px;top:12px;background:none;border:0;font-size:28px;color:#40585f}dialog .eyebrow{color:#8a6c35}dialog h2{font:400 31px/1.13 Georgia,serif;letter-spacing:-.02em}dialog p,dialog li{font-size:12px;line-height:1.65;color:#4f5f61}dialog h3{font-size:13px;margin-top:25px}dialog ul{padding-left:18px}.notice{background:#e5e1d2;border-left:2px solid #ad8a48;padding:15px 19px;margin:22px 0}.notice strong{font-size:12px}.notice p{margin-bottom:0}.fine-print{font-size:11px!important}.dialog-video{display:inline-block;margin-top:14px;color:#416466;font-size:12px;text-underline-offset:5px}@media (max-width:800px){header{left:20px;right:20px;top:max(21px,env(safe-area-inset-top))}.brand-mark{width:32px;height:36px;font-size:24px}.brand strong{font-size:11px}.brand small{font-size:9px}.header-actions{gap:15px}.video-link{font-size:10px}.icon-button{width:33px;height:33px;font-size:18px}.mode-switch{top:83px}.mode-switch button{padding:8px 16px;font-size:11px}.map-panel{right:20px;top:142px;width:88px;padding:10px 11px}.map-title{font-size:6px}.map-title span:last-child{display:none}#floorMap{height:128px;margin:7px 0 3px}.map-note{font-size:6px}.side-tools{top:326px;right:45px;gap:8px}.side-tools .icon-button{width:34px;height:34px;font-size:20px}.bottom-panel{left:20px;right:20px;bottom:max(15px,env(safe-area-inset-bottom))}.place{margin-bottom:17px}.place-eyebrow{font-size:8px}h1{font-size:31px}.place p{font-size:10px;max-width:300px}.stops{gap:6px;overflow:auto;scrollbar-width:none}.stops button{padding:11px 12px;font-size:10px;white-space:nowrap;flex-shrink:0}.stops button span{font-size:8px;margin-right:6px}.footer-line{font-size:8px;margin-top:14px;padding-top:10px}#controlHint{display:none}dialog{padding:33px 25px}}@media (pointer:coarse){#joystick{display:block;position:absolute;bottom:232px;left:28px;width:106px;height:106px;border-radius:50%;touch-action:none;user-select:none}.joystick-ring{position:absolute;inset:0;border:1px solid #ffffff5c;background:#13252b66;backdrop-filter:blur(5px);border-radius:50%}.joystick-ring:after,.joystick-ring:before{content:'';position:absolute;background:#ffffff25}.joystick-ring:after{width:1px;height:70px;top:18px;left:52px}.joystick-ring:before{height:1px;width:70px;left:18px;top:52px}#joystickKnob{position:absolute;width:40px;height:40px;left:33px;top:33px;border:1px solid #e8e5da8a;border-radius:50%;background:#eee7d3cc;box-shadow:0 5px 20px #0002}#joystick small{position:absolute;bottom:-22px;width:100%;text-align:center;letter-spacing:.15em;font-size:8px;color:#e8e5d6}.look-hint{display:block;position:absolute;right:24px;bottom:254px;font-size:9px;color:#e5e9df;pointer-events:none;text-shadow:0 1px 6px #000}.look-hint span{display:block;text-align:center;font-size:27px}.overview #joystick,.overview .look-hint{display:none}.exterior #joystick{display:none}}@media (max-height:620px){.map-panel{display:none}.side-tools{top:130px;right:24px}.place{margin-bottom:10px}h1{font-size:28px}.place p{display:none}.bottom-panel{bottom:12px}.footer-line{margin-top:10px;padding-top:8px}.mode-switch{top:27px}.stops button{padding:9px 13px}#joystick{width:88px;height:88px;bottom:161px}.joystick-ring:before,.joystick-ring:after{display:none}#joystickKnob{left:24px;top:24px}.look-hint{bottom:176px}.place-eyebrow{font-size:8px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}

/* Directional guidance without reversing the movement joystick. */
.joy-direction{position:absolute;width:0;height:0;pointer-events:none;border:4px solid transparent}.joy-up{left:calc(50% - 4px);top:3px;border-bottom-color:#e9e5d8b3}.joy-down{left:calc(50% - 4px);bottom:3px;border-top-color:#e9e5d8b3}.joy-left{top:calc(50% - 4px);left:3px;border-right-color:#e9e5d8b3}.joy-right{top:calc(50% - 4px);right:3px;border-left-color:#e9e5d8b3}
@media(pointer:coarse){#joystick small{font-size:7px;letter-spacing:.04em;left:-20px;width:146px;bottom:-20px}.look-hint{max-width:170px;line-height:1.65}.look-hint span{font-size:10px;text-align:right}.overview .look-hint{display:block;right:24px;bottom:244px}.overview .look-hint span{text-align:right}}
@media(pointer:coarse) and (max-height:620px){.overview .look-hint{bottom:166px}}

/* Touch layout: left hand steers the camera, right hand moves. */
@media(pointer:coarse){
 #joystick small{left:50%;width:128px;transform:translateX(-50%)}
 #joystick{left:auto;right:max(28px,env(safe-area-inset-right));bottom:max(232px,calc(214px + env(safe-area-inset-bottom)))}
 .look-hint{left:max(24px,env(safe-area-inset-left));right:auto;max-width:calc(50% - 36px);bottom:max(254px,calc(236px + env(safe-area-inset-bottom)))}
 .look-hint span{text-align:left;font-size:9px;letter-spacing:.06em}
 .overview .look-hint{left:max(24px,env(safe-area-inset-left));right:auto;bottom:244px;max-width:170px}
 .overview .look-hint span{text-align:left}
 .side-tools{left:max(20px,env(safe-area-inset-left));right:auto;top:142px;display:flex;gap:8px}
}
@media(pointer:coarse) and (max-height:620px){
 #joystick{bottom:max(161px,calc(143px + env(safe-area-inset-bottom)))}
 .look-hint{bottom:max(176px,calc(158px + env(safe-area-inset-bottom)))}
 .overview .look-hint{bottom:166px}
 .side-tools{top:87px}
}
