/* The shell, instruments and route share the cockpit's coordinate system. */
.stage .topbar{z-index:20;gap:8px}
.stage #home{width:38px;min-width:38px;padding:0;justify-content:center}
.stage #home span{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden}
.stage .view-toggle{white-space:nowrap;font:600 12px var(--f-ui);padding:0 13px;margin-right:auto}
.stage .view-toggle[aria-pressed=true]{border-color:var(--lamp);color:var(--lamp-hot)}
[data-mode=mob] .topbar{top:12.2cqh;left:3cqw;right:3cqw;gap:6px}
[data-mode=mob] .topbar .pill,[data-mode=mob] .topbar .rb{height:36px}
[data-mode=mob] .topbar .rb{width:36px}
[data-mode=mob] .topbar .tbr{gap:6px}
[data-mode=mob] .topbar .rb .lbl{display:none}
/* Console navigation uses layout inside the projected screen, never viewport top. */
.console-navigation #uiMain>.body{display:none}
.console-navigation #uiMain>.head{order:2;flex:none;padding:6px 10px;gap:7px;min-height:34px;margin-top:auto}
.console-navigation #uiMain>.head .av{width:28px;height:28px;flex:none;font-size:18px}
.console-navigation #uiMain>.head .who{min-width:0;flex:1}
.console-navigation #uiMain>.head .who b{font-size:10px;letter-spacing:.14em}
.console-navigation #uiMain>.head .who small{font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:130px}
.console-navigation #uiMain>.head .micl,.console-navigation #uiMain>.head .wave{display:none}
.console-navigation #uiMain>.head .mic{width:30px;height:30px;min-width:30px}
.console-navigation #uiMain>.route{position:relative;order:1;inset:auto;transform:none;width:auto;margin:6px 8px 0;--sd:27px;font-size:12px;gap:3px;flex:none;visibility:visible}
.console-navigation #uiMain>.route .sd{width:27px;height:27px;font-size:13px}
.console-navigation #uiMain>.route .sl{font-size:7px;letter-spacing:.02em;white-space:nowrap;margin-top:3px}
.console-navigation #uiMain>.route .trk{top:13px}
.console-navigation #uiMain>.route .st{padding:0;min-width:0}
.console-navigation #uiMain>.route .st svg{width:17px;height:17px}
.console-navigation #uiMain>.route[hidden],.marine-route[hidden]{display:none!important}
.marine-route{order:1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:3px;padding:6px 6px 0;flex:none}
.marine-route button{min-height:40px;min-width:0;border:1px solid var(--line);background:#02142199;border-radius:8px;color:var(--mist);padding:4px 1px}
.marine-route b{display:block;font:15px var(--f-inst);color:var(--sonar)}
.marine-route span{display:block;font:8px var(--f-ui);margin-top:3px}
.marine-route button[aria-pressed=true]{border-color:var(--lamp);background:#e9ac3430;color:var(--lamp-hot)}
.marine-route button[aria-pressed=true] b{color:var(--lamp-hot)}
[data-mode=desk].console-navigation #uiMain>.route{--sd:55px;margin:22px 26px 0}
[data-mode=desk].console-navigation #uiMain>.route .sd{width:55px;height:55px;font-size:25px}
[data-mode=desk].console-navigation #uiMain>.route .sl{font-size:14px}
[data-mode=desk].console-navigation #uiMain>.route .trk{top:27px}
[data-mode=desk].console-navigation #uiMain>.head{padding:18px 30px;min-height:60px}
[data-mode=desk].console-navigation #uiMain>.head .av{width:46px;height:46px;font-size:30px}
[data-mode=desk].console-navigation #uiMain>.head .who b{font-size:20px}
[data-mode=desk].console-navigation #uiMain>.head .who small{font-size:16px;max-width:360px}
[data-mode=desk].console-navigation #uiMain>.head .mic{width:54px;height:54px}
[data-mode=desk] .marine-route{gap:10px;padding:20px 25px 0}
[data-mode=desk] .marine-route button{min-height:85px}
[data-mode=desk] .marine-route b{font-size:30px}
[data-mode=desk] .marine-route span{font-size:16px}
[data-mode=desk].photos-expanded #holo{display:block}
.photos-expanded .title,.exploring .title,.exploring #holo,.exploring #beam,.exploring .ruler{display:none!important}
.photos-expanded .holo .body>.view{inset:10px 12px}
/* Four columns mirror the reference; real photos and editable prices stay intact. */
.photos-expanded .reference-review{gap:7px}
.photos-expanded .review-photos.photos{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;align-content:start}
.photos-expanded .review-photos .ph{min-height:140px}
.photos-expanded .review-photos .review-photo-image{aspect-ratio:1;min-height:58px}
.photos-expanded .review-topbar .tab{padding:0 7px;font-size:11px;letter-spacing:0}
.photos-expanded .review-category select{font-size:11px}
.photos-expanded .reference-review .chip{height:28px;padding:0 7px;font-size:10px;letter-spacing:0}
.photos-expanded .reference-review .styles{gap:4px;flex-wrap:wrap}
.photos-expanded .reference-review .btn{padding:0 8px;font-size:10px;letter-spacing:0}
.photos-expanded .review-footer{flex-wrap:wrap;gap:5px}
.photos-expanded .review-footer .review-open-space{display:none}
.photos-expanded .review-photos b{font-size:11px}
.photos-expanded .review-dish-price{font-size:13px}
.card-photos.photos{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;align-content:start}
.card-product{border:1px solid var(--line);border-radius:9px;background:#031925bd;overflow:hidden;min-width:0;padding-bottom:7px}
.card-product>button{position:relative;display:block;width:100%;aspect-ratio:1;border:0;background:#063047;color:var(--sonar);overflow:hidden}
.card-product>button>img,.card-product>button>.cp-source-crop{width:100%;height:100%;object-fit:cover}
.card-product>button>svg{width:24px;height:24px}
.card-product .card-edit{position:absolute;bottom:4px;right:4px;width:22px;height:22px;padding:4px;background:var(--lamp);color:#2b1805;border-radius:50%}
.card-product>input{display:block;width:calc(100% - 10px);margin:6px 5px 2px;background:transparent;border:0;border-bottom:1px solid #7fd3f344;color:var(--ice);font:600 11px var(--f-ui);padding:3px 0}
.card-product>p{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font:10px/1.3 var(--f-ui);color:var(--mist);margin:3px 5px;min-height:26px}
.card-product>.pr{display:flex;align-items:center;gap:1px;color:var(--lamp-hot);font:600 12px var(--f-ui);margin:3px 5px 0}
.card-product>.pr input{width:100%;text-align:left;color:var(--lamp-hot);background:transparent;border:0;border-bottom:1px solid #ffbc5060;font:inherit;padding:3px 0}
.other-establishment{align-self:center;height:28px!important;min-height:28px!important;font-size:12px!important;margin-top:-4px}
.exploration-hud{position:absolute;z-index:10;top:21cqh;left:50%;transform:translateX(-50%);width:min(84%,440px);text-align:center;color:var(--ice);text-shadow:0 2px 16px #00111f}
.exploration-hud[hidden]{display:none}
.exploration-hud .marine-kicker{font:10px var(--f-inst);letter-spacing:.22em;color:var(--sonar)}
.exploration-hud h2{font:300 clamp(25px,5vw,42px) var(--f-display);margin:10px 0 6px}
.exploration-hud #marineDepth{font:14px var(--f-inst);color:var(--lamp-hot);margin:0}
.exploration-hud #marineVoice{font:11px/1.4 var(--f-ui);margin:12px auto;max-width:300px;color:var(--mist)}
.exploration-hud .pill{display:inline-flex;height:34px;font-size:11px;margin:0 auto;padding:0 15px;pointer-events:auto}
.fullscreen-help{box-sizing:border-box;width:min(90vw,420px);max-height:80dvh;margin:auto;padding:24px;border:1px solid #74d2ed88;border-radius:18px;background:#061e2cf5;color:var(--ice);font:14px/1.6 var(--f-ui);overflow:auto;box-shadow:0 20px 90px #000a}
.fullscreen-help::backdrop{background:#0009;backdrop-filter:blur(5px)}
.fullscreen-help h2{font-size:21px;font-weight:500;margin:0 0 15px}
.fullscreen-help p{margin:12px 0}.fullscreen-help .btn{width:100%;margin-top:8px}
@media(max-width:360px){[data-mode=mob] .topbar{gap:4px}[data-mode=mob] .topbar .tbr{gap:4px}[data-mode=mob] .topbar .rb{width:31px;height:32px}.stage .view-toggle{font-size:11px;padding:0 8px}.stage #home{width:28px;min-width:28px}[data-mode=mob] .topbar .pill{height:32px}.photos-expanded .review-footer>span:first-child{font-size:9px}}
@media(max-height:600px){[data-mode=desk] .topbar{top:5cqh}.exploration-hud{top:18cqh}.photos-expanded .review-photos .ph{min-height:115px}.photos-expanded .review-photos .review-photo-image{aspect-ratio:1.5}}
@media(prefers-reduced-motion:reduce){.exploration-hud,.view-toggle{transition:none}}

.tile.on:disabled{opacity:1}.tile.on::after{content:"✓";position:absolute;top:7px;right:9px;display:grid;place-items:center;width:21px;height:21px;border-radius:50%;background:var(--lamp);color:#241305;font:700 15px var(--f-ui);z-index:3}

.hull-loading .cp{opacity:0}
.hull-loading-notice{position:absolute;inset:0;z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:15px;padding:30px;background:#03131ff0;text-align:center;color:var(--ice);font:14px/1.6 var(--f-ui)}
.hull-loading-notice>span{color:var(--lamp-hot);font:500 20px var(--f-inst);letter-spacing:.25em}
.hull-loading-notice>p{max-width:340px;margin:0}
.hull-loading-notice .btn{padding:12px 24px}

/* Gallery: a compact square hologram, not a panoramic strip of cropped dishes. */
[data-mode=desk] #scrR{border-radius:15px;isolation:isolate}
[data-mode=desk] #scrR .bg{background:#041a28;box-shadow:inset 0 0 20px #78ceea12}
[data-mode=desk] #scrR .scan{opacity:.35}
[data-mode=desk] #scrR .ui{padding:22px 20px}
/* The desktop lamp atlas contains the surrounding metal as well as the light.
   Feather its bar crops so the glow never reveals rectangular atlas edges. */
[data-mode=desk] .L[data-kind=bar] :is(.lt,.gl,.sw){-webkit-mask-image:radial-gradient(ellipse at center,#000 35%,#000d 50%,transparent 72%);mask-image:radial-gradient(ellipse at center,#000 35%,#000d 50%,transparent 72%);-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}
.photos-expanded .holo{border-radius:20px;box-shadow:0 12px 45px #00101d99}
.photos-expanded .holo .bg{background:linear-gradient(150deg,#073246ed,#031725ed);border:1px solid #81def091;border-radius:20px}
.photos-expanded .holo .body>.view{inset:15px 14px}
.photos-expanded .review-topbar{gap:5px;min-height:36px}
.photos-expanded .review-topbar .tabs{min-width:0;display:flex;gap:3px}
.photos-expanded .review-topbar .tab{padding:0 8px;height:34px;font-size:11px;border:1px solid #82bfc344;border-radius:9px;white-space:nowrap}
.photos-expanded .review-topbar .tab[aria-selected=true]{color:#241500;background:linear-gradient(135deg,#ffe2a0,#ffb442);border-color:#ffd48b;box-shadow:0 0 15px #ffb44222}
.photos-expanded .review-category{max-width:30%;flex:1}
.review-hide{display:grid;place-items:center;flex:none;width:32px;height:36px;border:1px solid var(--line);border-radius:9px;color:var(--sonar)}
.reference-review>.review-scroll:has(.card-photos){display:flex;flex-direction:column;overflow:hidden;gap:5px}
.gallery-shell{display:flex;flex-direction:column;flex:1;min-height:0;min-width:0;overflow:hidden}
.photos-expanded .dish-carousel{overflow:auto;min-height:0;flex:1;align-content:start;scrollbar-width:thin;scrollbar-color:#7fd3f344 transparent;overscroll-behavior:contain}
.photos-expanded .card-photos,.photos-expanded .review-photos.photos{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}
.photos-expanded .card-product,.photos-expanded .review-photos .ph{border:1px solid #7fcfe94d;border-radius:10px;background:linear-gradient(150deg,#123b4b,#03131f);min-height:0;box-shadow:inset 0 0 12px #66cee709}
.photos-expanded .card-product>button,.photos-expanded .review-photos .review-photo-image{aspect-ratio:1;height:auto;min-height:0}
.photos-expanded .card-product>input,.photos-expanded .review-photos b{font-size:12px;line-height:1.3;min-height:0}
.photos-expanded .card-product>p,.photos-expanded .review-dish-description{font-size:10px;line-height:1.35;-webkit-line-clamp:2;min-height:27px}
.photos-expanded .card-product>.pr,.photos-expanded .review-dish-price{font-size:14px}
.photos-expanded .review-photos .review-photo-copy{padding:7px;gap:4px}
.gallery-navigation{display:none}
.photos-expanded .review-footer{gap:5px;flex-wrap:wrap!important}
.photos-expanded .reference-review footer .btn{font-size:11px;min-height:36px;height:auto;padding:8px}
[data-mode=mob].photos-expanded .reference-review{gap:7px}
[data-mode=mob].photos-expanded .review-topbar .tab{font-size:10px;padding:0 6px}
[data-mode=mob].photos-expanded .review-category select{font-size:10px;padding-left:4px}
[data-mode=mob].photos-expanded .dish-carousel{position:relative;display:flex;gap:9px;padding:8px 20% 6px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-padding-inline:20%;align-items:center;scrollbar-width:none}
[data-mode=mob].photos-expanded .dish-carousel>*{flex:0 0 100%;width:100%;max-height:100%;scroll-snap-align:center;transform:scale(.9);transition:transform .2s,border-color .2s;overflow:auto}
[data-mode=mob].photos-expanded .dish-carousel>*[data-current]{transform:scale(1);border-color:var(--lamp);box-shadow:0 0 15px #ffb34720}
[data-mode=mob].photos-expanded .dish-carousel .review-photo-image,[data-mode=mob].photos-expanded .card-product>button{aspect-ratio:1.18}
[data-mode=mob].photos-expanded .card-product>input,[data-mode=mob].photos-expanded .review-photos b{font-size:14px}
[data-mode=mob].photos-expanded .card-product>p,[data-mode=mob].photos-expanded .review-dish-description{font-size:11px}
[data-mode=mob].photos-expanded .card-product>.pr,[data-mode=mob].photos-expanded .review-dish-price{font-size:17px}
[data-mode=mob] .gallery-navigation{display:flex;align-items:center;justify-content:center;gap:22px;flex:none;min-height:36px;color:var(--sonar);font:11px var(--f-inst)}
.gallery-navigation button{display:grid;place-items:center;width:38px;height:36px;border:1px solid var(--line);border-radius:50%;background:#051c2c}
.gallery-navigation button:disabled{opacity:.3}

/* The native dialog is in the top layer, independent of the cockpit perspective. */
#deepi-photo-dialog{position:static;inset:auto;z-index:auto}
.expedition-lightbox{box-sizing:border-box;position:fixed;inset:0;margin:auto;width:min(94vw,900px);height:min(92dvh,980px);max-width:94vw;max-height:calc(100dvh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px) - 16px);padding:30px 30px 14px;border:0;border-radius:26px;background:transparent;color:var(--ice);font:14px var(--f-ui);box-shadow:0 12px 45px #00131d25;overflow:hidden;isolation:isolate}
.expedition-lightbox[open]{display:flex;flex-direction:column;gap:0}
.expedition-lightbox::backdrop{background:transparent;-webkit-backdrop-filter:blur(9px) saturate(1.12);backdrop-filter:blur(9px) saturate(1.12)}
.photo-frame-shell{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}
.photo-frame-rim{filter:drop-shadow(0 0 4px #74d6ff88)}
.photo-frame-highlight{filter:drop-shadow(0 0 5px #7ddcffb3)}
.photo-frame-content{position:relative;z-index:1;flex:1;min-width:0;min-height:0}
.photo-frame-brand{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;gap:14px;flex:none;margin:12px 0 0;color:#81bed0a6;font:10px/1.2 var(--f-inst);letter-spacing:.4em;pointer-events:none}
.photo-frame-brand>span{width:90px;max-width:23%;height:1px;background:linear-gradient(90deg,transparent,#86c6d466)}
.photo-frame-brand>span:last-child{transform:rotate(180deg)}
.expedition-lightbox .reference-photo-dialog{position:relative;inset:auto;width:100%;height:100%;gap:12px;background:transparent;border-radius:0;overflow:hidden}
.expedition-lightbox .review-subheading{position:relative;align-items:flex-start;padding:4px 0 14px;border-bottom:1px solid #7fbed21f}
.expedition-lightbox .reference-photo-dialog:has(.pc-panel)>header{display:flex;flex:none}
.expedition-lightbox .compact-retry:has(.pc-panel)>button:first-child{display:inline-flex}
.expedition-lightbox .review-subheading:after{content:"";position:absolute;bottom:-1px;left:0;width:44px;height:2px;background:#f4cf8b;box-shadow:0 0 8px #ffd58f66}
.expedition-lightbox .reference-photo-dialog h3{margin:5px 0 0;font:400 clamp(25px,3vw,35px)/1.12 var(--f-display);text-wrap:balance;overflow-wrap:anywhere;color:#e9f7ff;text-shadow:0 0 12px #75d7f42b}
.expedition-lightbox .photo-dialog-kicker{display:block;color:#8bc9df;font:10px/1.4 var(--f-inst);letter-spacing:.18em}
.expedition-lightbox .review-close{width:44px;height:44px;margin-left:10px;border:1px solid #e8c67b;border-radius:12px;background:linear-gradient(145deg,#5a4d3133,#17262b99);color:#ffedc8;box-shadow:inset 0 0 12px #e5ae3c13,0 0 12px #ffbd4a16}
.expedition-lightbox .review-close:hover{background:#7e643d50;border-color:#ffe7ac}
.expedition-lightbox :is(button,input,textarea,select):focus-visible{outline:2px solid #f4cf8b;outline-offset:3px}
.expedition-lightbox .compact-photo-review,.dish-inspection-content{display:flex;flex-direction:column;gap:14px;min-height:0}
.expedition-lightbox .compact-photo-preview,.dish-inspection-image{width:100%;flex:none;min-height:0;height:auto;aspect-ratio:3/2;position:relative;overflow:hidden;border:1px solid #8ec9d483;border-radius:20px;background:radial-gradient(ellipse at center,#143445,#061722);box-shadow:inset 0 0 14px #6bdfff10,0 0 14px #b6e4ef06}
.expedition-lightbox .compact-photo-preview img,.dish-inspection-image>img,.dish-inspection-image>.cp-source-crop{position:absolute;inset:0;display:block;width:100%;height:100%;max-height:none;object-fit:cover;object-position:center;border-radius:0}
.dish-inspection-image[data-photo-cutout=true]>img{object-fit:contain}
.expedition-lightbox .compact-photo-copy{font-size:16px}.expedition-lightbox .compact-photo-copy>p{font-size:14px;line-height:1.5}
.expedition-lightbox .reference-photo-dialog .btn{height:auto;min-height:44px;font-size:13px;padding:10px 14px;letter-spacing:0;white-space:normal}
.expedition-lightbox .reference-photo-dialog footer{flex-wrap:wrap;gap:8px;padding-top:10px;border-top:1px solid #75cdea30;background:transparent;box-shadow:none}
.expedition-lightbox .reference-photo-dialog .review-scroll{padding:0 3px 3px 0;scroll-padding-block:12px}
.expedition-lightbox .recipe-fields{gap:10px}
.expedition-lightbox .recipe-fields label{font-size:13px}
.dish-ingredients{display:flex;flex-direction:column;gap:5px;font:14px/1.5 var(--f-ui);margin:0;color:var(--mist)}
.dish-ingredients b{color:var(--ice);font-size:12px}
.inspection-price>.pr{display:flex;align-items:center;gap:8px;color:var(--lamp-hot);font:600 23px var(--f-inst)}
.inspection-price input{min-width:0;width:160px;max-width:80%;padding:9px;border:1px solid var(--line);border-radius:8px;background:#02101c;color:var(--lamp-hot);font:inherit}
.dish-no-image{display:grid;place-content:center;height:100%;text-align:center;color:var(--mist)}
.dish-no-image svg{margin:auto}
@media(prefers-reduced-motion:reduce){.dish-carousel>*{transition:none!important}}

/* Editing choices stay separate from the two final decisions. */
.expedition-lightbox .photo-decision-actions{display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:8px;padding:12px 0 0}
.photo-decision-prompt{flex:0 0 100%;margin:0;color:#b5d9e2;font:12px/1.4 var(--f-ui)}
.expedition-lightbox :is(.photo-decision-actions,.photo-choice-tools,.photo-confirm-actions) .btn{min-width:0;font-size:12px;line-height:1.3;background:linear-gradient(145deg,#1d4051,#091d29);border-color:#79cae360;gap:7px;color:#d5edf3}
.expedition-lightbox :is(.photo-decision-actions,.photo-confirm-actions)>.btn{flex:1}
.expedition-lightbox :is(.photo-decision-actions,.photo-confirm-actions) .btn.go{background:linear-gradient(180deg,#ffeaa8 0%,#f7c65e 25%,#c78c32 100%);border:1px solid #ffe0a0;color:#261b09;box-shadow:inset 0 0 0 1px #fff4c335,0 0 18px #ffb34730;font-weight:600}
.expedition-lightbox :is(.photo-decision-actions,.photo-choice-tools,.photo-confirm-actions) .btn svg{width:17px;height:17px;flex:none}
.expedition-lightbox .photo-choice-tools{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;flex:none;width:100%;margin:0}
.expedition-lightbox .photo-choice-tools>.own-dish-photo{display:contents}
.expedition-lightbox .photo-choice-tools .btn{display:flex;align-items:center;justify-content:center;width:100%;min-height:46px;padding:9px 7px;text-wrap:balance}
.expedition-lightbox .photo-choice-tools :is(.intake-error,.photo-import-note,.photo-picker-status){grid-column:1/-1;margin:0;font:12px/1.4 var(--f-ui)}
.expedition-lightbox .own-photo-pending{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:10px;border:1px solid #86c6d444;border-radius:10px;background:#12364755;font:12px/1.4 var(--f-ui)}
.expedition-lightbox .own-photo-pending p{flex:1;min-width:150px;margin:0;color:var(--mist)}
.expedition-lightbox .photo-confirm-actions{display:flex;align-items:stretch;justify-content:space-between;flex:none;width:100%;gap:12px}
.expedition-lightbox .photo-confirm-actions>.btn{min-height:54px;padding:12px 16px;font-size:13px;line-height:1.3;border-radius:12px}
.expedition-lightbox .photo-choice-tools .btn:hover:not(:disabled),.expedition-lightbox .photo-confirm-actions>.btn:not(.go):hover:not(:disabled){border-color:#a6deeb;background:linear-gradient(145deg,#245166,#0b2534)}
.expedition-lightbox .photo-confirm-actions>.btn.go:hover:not(:disabled){filter:brightness(1.07)}
.expedition-lightbox .photo-choice-tools .btn:disabled,.expedition-lightbox .photo-confirm-actions>.btn:disabled{opacity:.45;cursor:not-allowed}
.dish-photo-editor{padding:14px;border:1px solid #7fd3f355;border-radius:10px;background:#082f4066}
.dish-photo-editor[hidden]{display:none}.dish-photo-editor p{font:12px/1.5 var(--f-ui);color:var(--mist)}
@media(max-width:600px){
 .expedition-lightbox{width:97vw;max-width:97vw;height:96dvh;padding:23px 17px 11px;border-radius:18px}
 .expedition-lightbox .reference-photo-dialog{gap:9px}
 .expedition-lightbox .review-subheading{padding:0 0 10px}
 .expedition-lightbox .reference-photo-dialog h3{font-size:25px;line-height:1.1}
 .expedition-lightbox .photo-dialog-kicker{font-size:9px;letter-spacing:.13em}
 .expedition-lightbox .review-close{width:40px;height:40px;margin-left:5px;border-radius:10px}
 .expedition-lightbox .compact-photo-preview,.dish-inspection-image{border-radius:15px}
 .expedition-lightbox .compact-photo-copy{font-size:14px}
 .expedition-lightbox .compact-photo-copy>p{font-size:12px}
 .expedition-lightbox .reference-photo-dialog footer{gap:8px;padding-top:9px}
 .expedition-lightbox .photo-choice-tools{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
 .expedition-lightbox .photo-choice-tools .btn{min-height:44px;font-size:11px;padding:8px 6px}
 .expedition-lightbox .photo-confirm-actions{gap:7px}
 .expedition-lightbox .photo-confirm-actions>.btn{min-height:50px;font-size:11px;line-height:1.25;padding:9px 7px;gap:6px;border-radius:10px}
 .expedition-lightbox .photo-decision-actions>.btn{font-size:11px;padding:9px 6px;gap:4px;min-height:50px}
 .photo-frame-brand{font-size:8px;letter-spacing:.35em;margin-top:9px;gap:10px}
}
@media(max-height:580px){
 .expedition-lightbox{height:96dvh;padding-top:21px;padding-bottom:9px}
 .expedition-lightbox .reference-photo-dialog{gap:7px}
 .expedition-lightbox .reference-photo-dialog h3{font-size:22px}
 .expedition-lightbox .review-subheading{padding-bottom:8px}
 .expedition-lightbox .photo-choice-tools{grid-template-columns:repeat(4,minmax(0,1fr))}
 .expedition-lightbox .photo-choice-tools .btn{font-size:10px;padding:6px 4px;gap:4px}
 .expedition-lightbox .photo-confirm-actions>.btn{min-height:44px;padding:7px 9px}
 .photo-frame-brand{margin-top:7px;font-size:8px}
}

/* First visit: a visible invitation, with no automatic microphone capture. */
.welcome-open .title,.welcome-open #holo,.welcome-open #scrMain .body{visibility:hidden!important}
.deepi-welcome{position:absolute;z-index:25;left:50%;top:38%;transform:translate(-50%,-50%);width:min(90%,430px);text-align:center;color:var(--ice);font:14px var(--f-ui)}
.welcome-kicker{font:10px var(--f-inst);letter-spacing:.2em;color:var(--sonar);text-shadow:0 1px 8px #001622}
.deepi-welcome h2{font:400 clamp(27px,5vw,40px)/1.15 var(--f-display);margin:13px 0 8px;text-shadow:0 2px 12px #00121e}
.deepi-welcome>p{font-size:13px;color:#c7e7ee;margin:0 0 24px;text-shadow:0 2px 8px #00121e}
.deepi-welcome-talk{position:relative;display:flex;align-items:center;justify-content:center;gap:16px;width:100%;min-height:90px;padding:16px 22px;border:1px solid #ffc568;border-radius:18px;background:linear-gradient(140deg,#123c50f5,#031d2bf5);color:var(--lamp-hot);box-shadow:0 0 28px #ffb34722,inset 0 0 25px #8ed9ef13;animation:welcome-glow 3s ease-in-out infinite}
.welcome-microphone{display:grid;place-items:center;flex:none;width:52px;height:52px;border:1px solid #ffd38a;border-radius:50%;background:linear-gradient(145deg,#ffda91,#e8a23a);color:#2a1906;box-shadow:0 0 18px #ffb34733}
.deepi-welcome-talk b{font:600 19px var(--f-ui)}.deepi-welcome-talk small{display:block;font:11px var(--f-inst);letter-spacing:.12em;text-transform:uppercase;color:var(--mist);margin-top:6px}
.welcome-wave{display:flex;gap:3px;align-items:center;height:26px}.welcome-wave i{width:3px;height:10px;border-radius:2px;background:var(--lamp);animation:welcome-wave 1.7s ease-in-out infinite}.welcome-wave i:nth-child(2n){animation-delay:-.4s}.welcome-wave i:nth-child(3){animation-delay:-.8s}
.welcome-skip{display:inline-block;padding:16px;margin-top:8px;font:12px var(--f-ui);color:#d7e7ec;text-decoration:underline;text-underline-offset:4px;background:#03223244;border-radius:14px}
.deepi-welcome-talk:disabled{opacity:.65;animation:none}
@keyframes welcome-glow{50%{box-shadow:0 0 38px #ffb3473d,inset 0 0 25px #8ed9ef20}}
@keyframes welcome-wave{50%{height:25px}}
@media(prefers-reduced-motion:reduce){.deepi-welcome-talk,.welcome-wave i{animation:none}}

/* The supplied GLB companion projects inside the cabin, in front of the hull.
   All floating, expressions and sleeping motion are owned by the reference 3D
   renderer; the wrapper never swims across controls or scales the robot. */
.stage>.ocean{z-index:0;isolation:isolate}
.ocean>:is(.caustic,.tint,.depthveil){z-index:3}
.expedition-robot{--cyan:#73e4f1;--yellow:#ffdc19;--robot-accent:var(--cyan);position:absolute;right:3cqw;bottom:24cqh;z-index:6;width:min(38.4cqw,57.6cqh,496px);pointer-events:none;isolation:isolate}
.expedition-robot[data-state=listening]{--robot-accent:var(--yellow)}
.expedition-robot[data-state=thinking]{--robot-accent:#ff7ad9}
.expedition-robot[data-state=sleeping]{--robot-accent:#72b7c1}
.expedition-robot-button{display:block;position:relative;min-width:44px;min-height:44px;width:100%;aspect-ratio:1;padding:0;background:transparent;border:0;color:var(--robot-accent);cursor:pointer;touch-action:manipulation;pointer-events:auto;-webkit-tap-highlight-color:transparent}
.expedition-robot-button:focus-visible{outline:2px solid var(--lamp);outline-offset:2px;border-radius:20px}
.expedition-robot-button:disabled{cursor:default}
/* The enlarged desktop canvas has transparent margins. Keep those margins
   clear for the route controls while the robot itself remains clickable. */
[data-mode=desk] .expedition-robot-button{pointer-events:none}
[data-mode=desk] .expedition-robot-button::after{content:'';position:absolute;inset:20%;pointer-events:auto}
/* A separate transform composes with the renderer's panel-avoidance translate.
   Only the cockpit desktop controller sets these offsets; mobile keeps its patrol. */
[data-mode=desk] .expedition-robot[data-mouse-game]{transform:translate(var(--deepi-play-x,0px),var(--deepi-play-y,0px))}
.deepi-touch-bubble{position:absolute;top:16%;left:50%;transform:translate(-50%,-100%);padding:8px 14px;border:1px solid #73e4f1aa;border-radius:15px;background:#062331ed;color:#e7fcff;box-shadow:0 0 16px #73e4f122;font:600 14px/1.2 var(--f-ui);white-space:nowrap;pointer-events:none}
.deepi-robot{position:absolute;inset:0;cursor:pointer;touch-action:manipulation}
.deepi-robot canvas{display:block;width:100%!important;height:100%!important;pointer-events:none}
.deepi-robot-label{position:absolute;left:50%;bottom:0;transform:translateX(-50%);font:700 9px/1 ui-monospace,Menlo,monospace;letter-spacing:.12em;text-transform:uppercase;color:var(--robot-accent);text-shadow:0 0 10px #73e4f1aa;white-space:nowrap;pointer-events:none;transition:color .4s}
.deepi-robot-label::before{content:'[ '}.deepi-robot-label::after{content:' ]'}
.expedition-robot[data-state=listening] .deepi-robot-label{color:var(--yellow);text-shadow:0 0 10px #ffdc19aa}
.deepi-robot-loader{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:80%;text-align:center;font:700 9px/1.6 ui-monospace,Menlo,monospace;letter-spacing:.16em;text-transform:uppercase;color:var(--cyan);pointer-events:none;transition:opacity .5s}
.deepi-robot-loader i{display:block;height:2px;margin-top:12px;background:#73e4f122;overflow:hidden}
.deepi-robot-loader i::after{content:'';display:block;height:100%;width:var(--p,0%);background:var(--cyan);box-shadow:0 0 10px var(--cyan);transition:width .2s}
.deepi-robot-loader[hidden]{opacity:0}
.robot-retry{display:block;position:relative;margin:8px auto 0;padding:8px 12px;border:1px solid #73e4f166;border-radius:12px;color:var(--cyan);background:#061820dd;font:11px var(--f-ui);pointer-events:auto}
.hull-loading .expedition-robot{visibility:hidden}
/* On phones Deepi is the voice control, floating above the top controls.
   Travel stays in this upper strip; the desktop placement is unchanged. */
[data-mode=mob] #bDeepi,[data-mode=mob] #mic,[data-mode=mob] .deepi-welcome{display:none}
[data-mode=mob] .expedition-robot{--robot-mobile-size:min(80cqw,40cqh,328px);right:auto;left:3cqw;top:-2cqh;bottom:auto;transform:none;width:var(--robot-mobile-size);animation:deepi-mobile-patrol 24s ease-in-out infinite;will-change:transform}
[data-mode=mob] .deepi-robot-label{display:none}
[data-mode=mob].paused .expedition-robot,[data-mode=mob] .expedition-robot:active,[data-mode=mob] .expedition-robot:has(:focus-visible){animation-play-state:paused}
/* Keep the spoken aside in its existing upper viewport. No overlay or wider
   hit area is introduced, and the patrol resumes where it paused. */
[data-mode=mob] .expedition-robot:has(.deepi-robot[data-proximity=near]){animation-play-state:paused}
[data-mode=mob] .expedition-robot[data-motion=off],[data-mode=mob] .expedition-robot[data-renderer=failed]{animation:none}
@keyframes deepi-mobile-patrol{0%,100%{transform:translateX(0)}50%{transform:translateX(calc(94cqw - var(--robot-mobile-size)))}}
@media(max-height:520px){[data-mode=desk] .expedition-robot{bottom:25cqh;width:min(35.2cqw,59.2cqh,320px)}.deepi-robot-label{font-size:8px}}
@media(prefers-reduced-motion:reduce){.deepi-robot-label,.deepi-robot-loader{transition:none}}
@media(prefers-reduced-motion:reduce){[data-mode=mob] .expedition-robot{animation:none}}
