@font-face{font-family:Manrope;src:url('./fonts/manrope-latin-variable.woff2') format('woff2');font-weight:400 800;font-display:swap}
@font-face{font-family:'Montserrat Alternates';src:url('./fonts/montserrat-alternates-300-italic.woff2') format('woff2');font-weight:300;font-style:italic;font-display:swap}
@font-face{font-family:'Montserrat Alternates';src:url('./fonts/montserrat-alternates-700.woff2') format('woff2');font-weight:700;font-display:swap}
:root{font-family:Manrope,Arial,sans-serif;color:#fff;background:#89b1c4;--gold:#e3c889;--ink:#163e59;--line:#ffffff40;font-synthesis:none;color-scheme:light}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,select{font:inherit}button{border:0;background:none;color:inherit;cursor:pointer}button:hover{color:var(--gold)}button:focus-visible,select:focus-visible{outline:2px solid var(--gold);outline-offset:4px}[hidden]{display:none!important}#stage{position:fixed;inset:0}canvas{display:block;touch-action:none}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
header{position:fixed;inset:0 0 auto;height:88px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 44px;border-bottom:1px solid var(--line);pointer-events:none;z-index:2}header>*{pointer-events:auto}.wordmark{font-family:'Montserrat Alternates',Manrope,sans-serif;font-style:italic;font-weight:300;font-size:30px;letter-spacing:-.055em;white-space:nowrap;line-height:1.1;padding:0}.edition{font-size:11px;font-weight:600;letter-spacing:.09em}.edition span{margin:0 18px;color:var(--gold)}#exteriorReturn{font-size:12px;padding:12px 0;border-bottom:1px solid #e3c88980}header,.intro,.modes,.bottom,.mobileDock{text-shadow:0 1px 2px #05273eaa,0 1px 6px #05273e66}
.intro{position:fixed;top:130px;left:44px;width:270px;pointer-events:none}.eyebrow{font-size:10px;font-weight:600;letter-spacing:.09em}h1{font:italic 300 44px/1.08 'Montserrat Alternates',Manrope,sans-serif;letter-spacing:-.055em;margin:17px 0 20px}p{font-size:12px;line-height:1.8}.intro p{font-size:14px}.specs{display:flex;gap:24px;margin-top:24px;padding-top:18px;border-top:1px solid var(--line)}.specs b{display:block;font-size:22px;letter-spacing:-.04em;font-weight:700;margin-bottom:8px}.specs span{font-size:10px}
.modes{position:fixed;top:412px;left:44px;width:220px;border-top:1px solid var(--line);z-index:2}.modes button{display:flex;align-items:center;gap:18px;text-align:left;width:100%;min-height:46px;padding:12px 2px;border-bottom:1px solid var(--line);font-size:13px;font-weight:600;letter-spacing:.025em}.modes button span{font-size:10px}.modes button.active{border-left:2px solid var(--gold);padding-left:12px}.modes button.active span{color:var(--gold)}body:not([data-mode=Exterior]) .intro{display:none}body:not([data-mode=Exterior]) .modes{top:122px}
#deckSelector{position:fixed;top:340px;left:44px;width:220px;display:flex;padding:5px;background:#fafdfff2;border:1px solid #9ab9c9;z-index:3}#deckSelector button{flex:1;padding:10px 4px;font-size:11px;color:#315e76}#deckSelector button[aria-pressed=true]{background:#d5b46b;color:#153c54;font-weight:700}
.bottom{position:fixed;bottom:0;left:0;right:0;padding:0 44px 20px;pointer-events:none;z-index:2}.bottom>*{pointer-events:auto}.roomnav{display:flex;justify-content:center;gap:25px;padding:12px 16px 8px;margin-bottom:12px;border-bottom:1px solid #ffffff35}.roomnav button{font-size:12px;letter-spacing:.015em;font-weight:600;padding:10px 0;border-bottom:1px solid transparent}.roomnav button.active{color:var(--gold);border-color:var(--gold)}.toolbar{display:flex;align-items:center;justify-content:center;gap:25px;border-top:1px solid #ffffff35;padding-top:13px}.toolbar>button{font-size:12px;font-weight:600;padding:7px 0}.toolbar>button[aria-expanded=true],.toolbar>button[aria-pressed=true]{color:var(--gold)}.toolbar span{margin-left:7px;color:var(--gold)}footer{display:flex;justify-content:space-between;gap:20px;margin-top:17px;font-size:10px}#instructions{font-size:9px;letter-spacing:.03em}.credit{font-size:9px}
#finishPanel,#cameraControls{position:fixed;right:26px;top:116px;width:300px;max-height:calc(100dvh - 280px);overflow:auto;padding:22px;background:#fafdfff5;color:var(--ink);border:1px solid #93b4c455;border-top:3px solid #c3a15f;border-radius:4px;box-shadow:0 12px 36px #143f5324;scrollbar-width:thin;z-index:5}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.panel-heading h2{font:700 23px/1.15 'Montserrat Alternates',Manrope,sans-serif;letter-spacing:-.04em;margin:0}.panel-heading button{font-size:25px;padding:0 4px;color:#245a77}#finishPanel label{font-size:11px;color:#476b80}select{padding:9px;background:#f7fbfe;color:#214e69;border:1px solid #afc7d4;border-radius:3px;font-size:11px}#scope{width:100%;margin:8px 0 7px}.finish{padding:13px 0;border-bottom:1px solid #c4d9e3}.finish-title{display:flex;justify-content:space-between;gap:8px;font-size:12px;margin-bottom:10px}.choice-label{font-size:10px;color:#587185}.swatches{display:flex;gap:13px}.swatch{width:25px;height:25px;border-radius:50%;border:2px solid #f7fcff;outline:1px solid #698ba0}.swatch.active{outline:2px solid #9a702a;outline-offset:2px}.text-button{font-size:11px;padding:17px 0 3px;border-bottom:1px solid #96a79c;color:#315e76}#selection{font-size:11px;color:#587185;line-height:1.6;margin-bottom:0}
#cameraControls p{font-size:11px;color:#426a7f;margin:0 0 15px}.camera-pad{display:grid;grid-template-columns:repeat(3,1fr) 1.15fr;grid-template-rows:44px 44px;gap:6px}.camera-pad button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:15px;padding:2px;border:1px solid #a5c1d0;border-radius:3px;background:#edf6fa;color:#214e68;touch-action:none;user-select:none}.camera-pad button small{font-size:9px;line-height:1.2}.camera-pad button.held,.camera-pad button:active{background:#d5b46b;color:#153c54}.flight-forward{grid-area:1/2}.flight-left{grid-area:2/1}.flight-back{grid-area:2/2}.flight-right{grid-area:2/3}.flight-up{grid-area:1/4}.flight-down{grid-area:2/4}.camera-speed{display:flex;align-items:center;justify-content:space-between;font-size:11px;margin-top:14px}.camera-speed select{width:118px}.view-tools{display:grid;gap:8px;margin-top:16px}.view-tools button{border:1px solid #afc7d4;padding:10px;font-size:11px;color:#214e69}#depthReadout{display:block;font-size:10px;color:#426a7f;margin-top:10px}
.hotspot{position:fixed;transform:translate(-50%,-50%);width:32px;height:32px;padding:0;border:1px solid #ffffffcc;border-radius:50%;background:#ffffffde;color:#184e67;box-shadow:0 2px 8px #102b3733;transition:background .15s,color .15s,border-color .15s;font:300 28px/30px Manrope,sans-serif;z-index:3}.hotspot:hover,.hotspot:focus-visible{color:#153c54;background:#dfc47f;border-color:#b39550;outline:2px solid #ffffffaa;outline-offset:2px}#loading{position:fixed;inset:0;background:#f6fbff;color:#1b597f;display:flex;align-items:center;justify-content:center;flex-direction:column;z-index:20}#loading p{margin:24px 0}.loading-track{width:220px;height:2px;background:#cfdee6}#loadBar{height:100%;background:#bba27b;width:5%;transition:width .3s}.mobileDock,#touchNavigation{display:none}
body[data-mode=Cutaway],body[data-mode=Plan],body[data-mode=Hull]{color:#163e59}body[data-mode=Cutaway] header,body[data-mode=Plan] header,body[data-mode=Hull] header,body[data-mode=Cutaway] .modes,body[data-mode=Plan] .modes,body[data-mode=Hull] .modes,body[data-mode=Cutaway] .bottom,body[data-mode=Plan] .bottom,body[data-mode=Hull] .bottom{text-shadow:0 1px 5px #ffffff88;--line:#163e5940}.mobileDock select{min-width:0}
@media(max-height:820px) and (min-width:801px){.intro{top:119px}h1{font-size:40px;margin:14px 0 17px}.specs{margin-top:19px;padding-top:15px}.modes{top:381px}.modes button{min-height:40px;padding-top:10px;padding-bottom:10px}}
@media(max-width:1100px){header{padding:0 28px}.wordmark{font-size:26px}.edition{display:none}.intro,.modes,#deckSelector{left:28px}.modes,#deckSelector{width:190px}.bottom{padding-left:28px;padding-right:28px}.roomnav{gap:15px}.roomnav button{font-size:11px}.toolbar{gap:19px}}
@media(max-width:800px),(max-width:960px) and (max-height:500px){
 header{height:72px;padding:env(safe-area-inset-top,0) 18px 0;gap:12px}.wordmark{font-size:25px}#exteriorReturn{font-size:10px;padding:10px 0}.modes,body:not([data-mode=Exterior]) .modes{top:72px;left:18px;right:18px;width:auto;display:flex;border-top:0;gap:8px}.modes button,.modes button.active{flex:1;justify-content:center;font-size:11px;gap:6px;min-height:44px;padding:8px 0;border-left:0;white-space:nowrap}.modes button span{font-size:8px}.modes button.active{border-bottom:2px solid var(--gold)}
 .intro{top:143px;left:20px;width:230px}.intro h1{font-size:34px;margin:12px 0}.intro p{display:none}.specs{gap:20px;margin-top:15px;padding-top:12px}.specs b{font-size:18px}.specs span{font-size:9px}.bottom{display:none}.mobileDock{display:flex;position:fixed;bottom:0;left:0;right:0;gap:8px;padding:12px 14px calc(12px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--line);z-index:4;pointer-events:none}.mobileDock>*{pointer-events:auto}.mobileRoomBar{display:flex;flex:1;min-width:0;border:1px solid #ffffff55;border-radius:3px}.mobileRoomBar button{color:var(--gold);font-size:22px;padding:5px 9px}.mobileRoomBar select{flex:1;width:100%;border:0;color:#fff;background:#14374855;text-shadow:0 1px 3px #05273e99;font-size:11px;padding:8px 2px}.mobileRoomBar option{color:#163e59;background:#fff}.mobileDock>button{font-size:11px;border:1px solid #e3c889;padding:9px 8px;border-radius:3px}
 #finishPanel,#cameraControls{left:14px;right:14px;top:132px;width:auto;max-height:calc(100dvh - 225px);padding:18px}.finish{display:inline-block;width:49%;padding:12px 4px;vertical-align:top}.choice-label{display:none}.swatches{gap:10px}#deckSelector{top:132px;left:50%;width:235px;transform:translateX(-50%)}
 #touchNavigation{display:block;pointer-events:none;position:fixed;inset:0;z-index:3}#moveStick{pointer-events:auto;position:absolute;left:24px;bottom:108px;width:90px;height:90px;border-radius:50%;border:1px solid #ffffff88;background:#123b5050;touch-action:none;user-select:none}#stickKnob{position:absolute;left:28px;top:28px;width:32px;height:32px;border:1px solid #e3c889aa;border-radius:50%;background:#e3c88977;pointer-events:none}#moveStick small{position:absolute;bottom:-21px;width:100%;text-align:center;font-size:10px;color:#fff;text-shadow:0 1px 3px #05273e;pointer-events:none}.touch-height{position:absolute;right:22px;bottom:108px;display:grid;gap:10px}.touch-height button{pointer-events:auto;width:44px;height:44px;border:1px solid #ffffff99;background:#123b5060;color:#fff;border-radius:50%;font-size:20px;touch-action:none}.touch-height button.held{background:#d5b46b;color:#163e59}body[data-panels=open] #touchNavigation{display:none}body[data-mode=Cutaway] .mobileDock,body[data-mode=Plan] .mobileDock,body[data-mode=Hull] .mobileDock{text-shadow:none;color:#163e59}.mobileDock select:focus-visible{outline-offset:0}
}
@media(max-width:380px){.wordmark{font-size:22px}.mobileDock{gap:6px;padding-left:10px;padding-right:10px}.mobileDock>button{padding:9px 6px;font-size:10px}.modes button{font-size:10px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}

/* Exterior inspection remains anchored to the yacht, including below water. */
.inspection-tools{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding-top:12px}.modes .inspection-tools button{font-size:10px;letter-spacing:0;line-height:1.3;min-height:29px;padding:7px 3px;justify-content:center;text-align:center;border:1px solid #e3c88988;border-radius:3px}.modes .inspection-tools button:last-child{grid-column:1/-1}.camera-mode{display:flex;flex-direction:column;gap:7px;font-size:11px;margin-bottom:14px}.camera-mode select{width:100%}body[data-mode=Room] .inspection-tools,body[data-mode=Cutaway] .inspection-tools,body[data-mode=Plan] .inspection-tools,body[data-mode=Room] .camera-mode{display:none}
@media(max-height:720px) and (min-width:801px){.intro{display:none}.modes{top:122px}}
@media(max-width:800px),(max-width:960px) and (max-height:500px){.inspection-tools{position:absolute;top:100%;left:0;right:0;grid-template-columns:1fr 1.2fr 1fr;padding-top:8px;gap:7px}.modes .inspection-tools button,.modes .inspection-tools button:last-child{grid-column:auto;white-space:normal;font-size:10px;min-height:32px;padding:7px 4px}.intro{top:188px}body[data-mode=Exterior] #cameraControls,body[data-mode=Dive] #cameraControls,body[data-mode=Hull] #cameraControls{top:174px;max-height:calc(100dvh - 266px)}}
@media(max-height:620px) and (max-width:800px){.intro{display:none}}

/* Secondary inspection views are deliberately collapsed on first arrival. */
.inspection-disclosure{margin-top:10px}.inspection-disclosure summary,.view-disclosure summary{cursor:pointer;font-size:11px;padding:8px 0;list-style-position:inside}.inspection-disclosure[open] summary{color:#e6cd91}.inspection-disclosure .inspection-tools{padding-top:4px}.view-disclosure{margin-top:12px;color:#214e69;border-top:1px solid #afc7d4}.view-disclosure .view-tools{margin-top:5px}
body[data-mode=Room] .inspection-disclosure,body[data-mode=Cutaway] .inspection-disclosure,body[data-mode=Plan] .inspection-disclosure{display:none}
@media(max-width:800px),(max-width:960px) and (max-height:500px){.inspection-disclosure{position:absolute;top:100%;left:0;margin-top:3px;min-width:145px}.inspection-disclosure .inspection-tools{position:static;background:#214e69ed;padding:8px;width:min(400px,calc(100vw - 32px));border-radius:3px}.inspection-disclosure summary{padding:6px 0;text-shadow:0 1px 3px #153c54}.intro{top:182px}}

@media(max-width:800px),(max-width:960px) and (max-height:500px){body:has(.inspection-disclosure[open]) .intro{top:218px}}

/* Navigation stays above projected room markers at every screen size. */
header,.modes,#deckSelector{z-index:4}
@media(max-width:960px) and (max-height:500px){
 header{height:48px;padding-left:max(18px,env(safe-area-inset-left));padding-right:max(18px,env(safe-area-inset-right))}
 .wordmark{font-size:22px}
 .modes,body:not([data-mode=Exterior]) .modes{top:48px}
 .modes button,.modes button.active{min-height:38px;padding:7px 0}
 .intro{display:none}
 #deckSelector{top:95px;width:225px}
 #finishPanel,#cameraControls,body[data-mode=Exterior] #cameraControls,body[data-mode=Dive] #cameraControls,body[data-mode=Hull] #cameraControls{left:auto;right:max(14px,env(safe-area-inset-right));top:96px;width:340px;max-height:calc(100dvh - 165px);padding:14px}
 .panel-heading{margin-bottom:10px}.panel-heading h2{font-size:20px}
 #moveStick{width:68px;height:68px;bottom:87px}#stickKnob{left:17px;top:17px}
 .touch-height{bottom:87px;gap:7px}.touch-height button{width:38px;height:38px}
 .mobileDock{padding-top:7px;padding-bottom:calc(7px + env(safe-area-inset-bottom,0px))}
}

#streamStatus{position:fixed;top:96px;left:50%;transform:translateX(-50%);z-index:6;padding:8px 14px;border-radius:20px;background:rgba(245,250,252,.92);color:#22455b;font-size:12px;pointer-events:none;max-width:80vw;text-align:center}
#streamStatus[hidden]{display:none}
@media(max-width:600px){#streamStatus{top:72px;font-size:11px}}

/* The real yacht image paints before any 3D dependency. */
#loading{background:linear-gradient(#0d304522,transparent 42%,#0d304588);color:#fff;justify-content:flex-end;padding:32px 20px max(62px,env(safe-area-inset-bottom));text-shadow:0 1px 8px #062a40;transition:opacity .28s ease;pointer-events:auto}
#loading .wordmark{position:absolute;top:32px;left:44px}#loading p{margin:0 0 14px;font-size:13px}.loading-track{background:#ffffff55}#loadBar{background:#e3c889}#startupRetry{margin-top:20px;border:1px solid #e3c889;border-radius:3px;padding:10px 18px;background:#173e50}
body[data-startup=loading] header,body[data-startup=loading] .modes,body[data-startup=loading] .intro,body[data-startup=loading] .bottom,body[data-startup=loading] .mobileDock{visibility:hidden}
@media(max-width:800px){#loading .wordmark{left:20px;top:26px;font-size:25px}#loading{padding-bottom:max(100px,env(safe-area-inset-bottom))}}
