/* Styles scoped to the retained ROV search game. */
.lab-section{ padding-block:45px 65px; border-top:1px solid var(--line-dark); scroll-margin-top:95px; }
.lab-heading{ display:flex; align-items:end; justify-content:space-between; gap:32px; margin-bottom:28px; }
.lab-heading .eyebrow{ color:var(--magenta); margin-bottom:14px; }
.lab-heading h2{ font-size:clamp(33px,4vw,52px); font-weight:550; }
.lab-heading > p{ color:var(--muted); max-width:350px; font-size:14px; }
.lab-tool{ cursor:pointer; color:#c8e3ec; background:#06101dcc; border:1px solid #5b93a15c; border-radius:2px; padding:10px 13px; font:10px/1.5 var(--mono); }
.lab-tool:hover,.lab-tool[aria-pressed="true"]{ color:var(--cyan); border-color:var(--cyan); background:#123239; }
.lab-tool:disabled{ opacity:.4; cursor:default; }
.lab-footnote{ color:#8ca7bb; font-size:11px; line-height:1.8; margin-top:16px; max-width:1050px; }
.lab-footnote a{ color:#a5d9df; text-decoration:underline; text-underline-offset:3px; }
.mission-grid{ display:grid; grid-template-columns:minmax(0,1fr) 310px; border:1px solid #3d496a; background:#0d1425; }
.mission-map{ position:relative; min-height:500px; overflow:hidden; background:radial-gradient(ellipse at 70% 20%,#163448,#061526 70%); outline-offset:-5px; touch-action:manipulation; }
.mission-map::before{ content:""; position:absolute; inset:0; opacity:.14; background-image:linear-gradient(#6ebdd633 1px,transparent 1px),linear-gradient(90deg,#6ebdd633 1px,transparent 1px); background-size:10% 10%; }
.map-terrain{ position:absolute; inset:0; width:100%; height:100%; opacity:.6; }
.mission-map-label{ position:absolute; top:19px; left:22px; right:22px; display:flex; justify-content:space-between; gap:20px; font:9px/1.7 var(--mono); color:#8eacbf; pointer-events:none; }
.map-compass{ position:absolute; bottom:20px; right:22px; font:10px var(--mono); color:#7098ac; text-align:center; }
.rov-marker{ position:absolute; z-index:3; width:56px; height:68px; left:50%; top:82%; transform:translate(-50%,-50%); transition:left .15s linear,top .15s linear; pointer-events:none; }
.rov-vehicle{ width:100%; height:100%; transform:rotate(var(--heading,0deg)); transition:transform .2s; position:relative; }
.rov-vehicle svg{ position:relative; width:100%; height:100%; z-index:1; }
.rov-headlamp{ position:absolute; width:210px; height:240px; bottom:35px; left:50%; transform:translateX(-50%); background:conic-gradient(from 338deg at 50% 100%,#9fffea13, #b7ffe93d 21deg,transparent 44deg); clip-path:polygon(50% 100%,0 0,100% 0); opacity:.8; }
.mission-map.lights-off .rov-headlamp{ opacity:0; }
.rov-thruster{ fill:#496b82; transition:fill .15s; }
.rov-marker.is-thrusting .rov-thruster{ fill:#86ffe4; }
.mission-target{ position:absolute; z-index:2; transform:translate(-50%,-50%); text-align:center; pointer-events:none; }
.mission-target svg{ width:32px; height:32px; color:#e1c6a1; }
.mission-target span{ display:block; margin-top:5px; font:8px/1.6 var(--mono); color:#c4b899; background:#061526ad; padding:2px 6px; }
.mission-target.is-recorded svg{ color:var(--cyan); }
.mission-target.is-recorded span{ color:var(--cyan); }
.sonar-wave{ position:absolute; z-index:2; left:50%; top:82%; width:68%; height:68%; border:1px solid var(--cyan); border-radius:50%; transform:translate(-50%,-50%) scale(.05); opacity:0; pointer-events:none; }
.sonar-wave.is-scanning{ animation:mission-sonar 1.5s ease-out; }
.mission-panel{ border-left:1px solid #3d496a; padding:26px 24px; }
.mission-panel > .eyebrow{ color:var(--magenta); font-size:9px; }
.mission-panel h3{ font-size:27px; margin:12px 0; font-weight:500; }
.mission-panel > p:not(.eyebrow){ font-size:12px; color:var(--muted); line-height:1.8; }
.mission-checklist{ list-style:none; padding:0; margin:22px 0; }
.mission-checklist li{ padding:10px 0; border-bottom:1px solid var(--line-dark); font:10px/1.7 var(--mono); color:#8eabc0; }
.mission-checklist li::before{ content:"○"; color:#5a788f; margin-right:9px; }
.mission-checklist li.is-recorded{ color:#9bffe8; }
.mission-checklist li.is-recorded::before{ content:"✓"; color:var(--cyan); }
.mission-score{ display:flex; justify-content:space-between; font:10px/1.6 var(--mono); color:#a6c3d4; margin-top:18px; }
.mission-pad{ display:grid; grid-template-columns:repeat(3,42px); grid-template-rows:repeat(3,36px); gap:5px; justify-content:center; margin:20px 0; }
.mission-pad button{ padding:0; font-size:16px; }
.mission-pad [data-steer="up"]{ grid-column:2; grid-row:1; }
.mission-pad [data-steer="left"]{ grid-column:1; grid-row:2; }
.mission-pad [data-steer="right"]{ grid-column:3; grid-row:2; }
.mission-pad [data-steer="down"]{ grid-column:2; grid-row:3; }
.mission-pad [data-scan]{ grid-column:2; grid-row:2; color:var(--cyan); }
.mission-map .mission-pad{ position:absolute; bottom:16px; left:16px; z-index:5; margin:0; padding:8px; background:#051321c9; border:1px solid #4a7b8d3b; }
.map-record{ display:none; }
.mission-actions{ display:flex; gap:8px; flex-wrap:wrap; margin-top:15px; }
.mission-actions .button{ width:100%; justify-content:center; font-size:10px; gap:8px; }
.mission-actions .lab-tool{ flex:1; }
.mission-status{ font:11px/1.8 var(--mono); color:#a7d8db; margin-top:20px; min-height:42px; }
.mission-complete{ border:1px solid #47f5e64d; background:#1241393b; padding:16px 20px; margin-top:16px; color:#afffe7; font-size:14px; }
.mission-complete a{ text-decoration:underline; text-underline-offset:3px; }
.lab-symbols{ position:absolute; width:0; height:0; overflow:hidden; }
@keyframes mission-sonar{ 0% { transform:translate(-50%,-50%) scale(.05); opacity:.8; } 100% { transform:translate(-50%,-50%) scale(1); opacity:0; } }
@media(max-width:1000px){.mission-grid{ grid-template-columns:minmax(0,1fr) 270px; }
.mission-panel{ padding:24px 19px; }
.lab-heading{ display:block; }
.lab-heading > p{ margin-top:18px; max-width:620px; }}
@media(max-width:760px){.lab-section{ padding-block:32px 45px; }
.lab-heading h2{ font-size:33px; }
.lab-heading > p{ font-size:13px; }
.mission-grid{ grid-template-columns:minmax(0,1fr); }
.mission-map{ min-height:390px; }
.mission-panel{ border-left:0; border-top:1px solid #3d496a; padding:25px 22px; }
.mission-pad{ grid-template-columns:repeat(3,54px); grid-template-rows:repeat(3,42px); }
.mission-map .mission-pad{ left:8px; bottom:8px; padding:6px; grid-template-columns:repeat(3,39px); grid-template-rows:repeat(3,38px); }
.map-record{ display:block; position:absolute; z-index:5; bottom:16px; right:12px; width:145px; min-height:40px; font-size:9px; }
.mission-map .map-compass{ bottom:68px; right:24px; }
.mission-actions .button{ min-height:44px; }
.mission-target span{ font-size:7px; max-width:75px; }
.rov-marker{ width:43px; height:54px; }}
@media(prefers-reduced-motion:reduce){.sonar-wave.is-scanning{ animation:none; transform:translate(-50%,-50%) scale(1); opacity:.3; }}
html.motion-paused .sonar-wave.is-scanning{ animation:none; transform:translate(-50%,-50%) scale(1); opacity:.3; }
@media print{.lab-section{ background:white; color:#102c35; }
.mission-map,.motion-toggle{ display:none; }
.mission-grid{ display:block; border-color:#aabbcc; }
.mission-panel{ border:0; }}
.rov-marker{width:76px;height:76px}
.rov-vehicle>img{width:100%;height:100%;object-fit:contain;position:relative;z-index:1}
.rov-marker.is-thrusting .rov-vehicle>img{filter:drop-shadow(0 0 4px #87ffe5)}
.rov-headlamp{bottom:55px}
@media(max-width:760px){.rov-marker{width:58px;height:58px}
.rov-headlamp{bottom:40px}}
.game-page{background:#080f1b}.game-main{padding-top:28px;padding-bottom:35px}.game-page .lab-section{border-top:0;padding-top:25px}.game-page .lab-heading h1{font-size:clamp(33px,4vw,52px);font-weight:550;line-height:1.15;letter-spacing:-.04em}
@media(max-width:760px){.game-main{padding-top:16px}.game-page .lab-heading h1{font-size:33px}}
