/* Motion direction: quiet atmosphere, legible foreground, deliberate movement. */
:root { --motion-ease: cubic-bezier(.22,1,.36,1); --motion-fast: 180ms; --motion-enter: 480ms; }
.expedition-scene { position:absolute; inset:0; overflow:hidden; pointer-events:none; background:linear-gradient(160deg,#294e61,#082332 75%); contain:strict; }
.expedition-canvas { display:block; width:100%; height:100%; }
.ocean.expedition-scene { position:fixed; }
.hero:has(.expedition-scene), .service-hero.expedition-hero {
  isolation:isolate; position:relative; overflow:hidden; min-height:680px;
  height:calc(100svh - 64px); max-height:980px; display:flex; align-items:center;
  background:#082332;
}
.hero:has(.expedition-scene) .hero-inner { position:relative; z-index:2; padding:68px 0 92px; margin:0 auto; width:90%; max-width:1320px; }
.hero:has(.expedition-scene) h1 { font-size:clamp(56px,6.7vw,96px); line-height:1.02; max-width:680px; letter-spacing:-.025em; text-wrap:balance; }
.hero:has(.expedition-scene) .hero-subtitle { font-size:clamp(16px,1.4vw,19px); max-width:450px; line-height:1.7; color:#d5e2e5; }
.hero-scene__scrim { z-index:1; background:linear-gradient(90deg,rgba(3,18,29,.79),rgba(3,18,29,.48) 34%,rgba(3,18,29,.02) 66%),linear-gradient(0deg,#071d2a,transparent 22%); }
.hero:has(.expedition-scene) .rd-eyebrow { color:#b3d9db; letter-spacing:.23em; }
.hero-inner > *, .expedition-hero .service-hero-content > * { animation:expeditionEnter 650ms var(--motion-ease) both; }
.hero-inner > :nth-child(2), .expedition-hero .service-hero-content > :nth-child(2) { animation-delay:60ms; }
.hero-inner > :nth-child(3), .expedition-hero .service-hero-content > :nth-child(3) { animation-delay:110ms; }
.hero-inner > :nth-child(n+4), .expedition-hero .service-hero-content > :nth-child(n+4) { animation-delay:160ms; }
@keyframes expeditionEnter { from { opacity:0; transform:translate3d(0,18px,0); } to { opacity:1; transform:none; } }
.expedition-hero .service-hero-bg, .expedition-hero .service-hero-overlay, .expedition-hero .tour-scene__scrim { display:none; }
.expedition-hero::after { content:''; position:absolute; inset:0; z-index:1; pointer-events:none; background:linear-gradient(90deg,rgba(3,18,29,.87),rgba(3,18,29,.55) 38%,transparent 75%),linear-gradient(0deg,#071d2a,transparent 25%); }
.expedition-hero .service-hero-content { position:relative; z-index:2; width:90%; max-width:1320px; margin:auto; padding:70px 0 92px; text-align:left; }
.expedition-hero .service-hero-title { font-size:clamp(44px,5.5vw,76px); line-height:1.08; max-width:620px; color:#f0f4ed; text-shadow:none; text-wrap:balance; }
.expedition-hero .service-hero-desc { max-width:480px; font-size:17px; line-height:1.75; color:#d3dfe2; margin:20px 0 25px; }
.expedition-hero .service-badge { color:#a9d6d6; letter-spacing:.16em; }
.expedition-hero .service-price, .expedition-hero .service-hero-price, .expedition-hero .tour-hero-price { color:#eee1c9; background:none; border:0; box-shadow:none; padding:0; margin:18px 0; font-size:24px; }
.expedition-hero .service-price .price-value { color:inherit; }
.expedition-hero .service-hero-price > .service-price { margin:0; }
.expedition-hero .service-hero-buttons { display:flex; flex-wrap:wrap; gap:12px; }
.expedition-hero .btn-secondary { color:#e1eaec; border-color:#66818b; background:rgba(10,35,48,.2); }
.hero-scroll-cue { z-index:3; bottom:25px; opacity:.6; }
.hero-scroll-cue span { animation:none; }
.hero-scroll-cue::before { content:''; display:block; width:1px; height:32px; margin:0 auto 12px; background:linear-gradient(transparent,#b4cfcd); transform-origin:top; animation:expeditionCue 3s var(--motion-ease) infinite; }
@keyframes expeditionCue { 0%,100% { transform:scaleY(.65); opacity:.3; } 50% { transform:scaleY(1); opacity:.8; } }
.motion-toggle { position:fixed; z-index:110; bottom:22px; left:22px; width:44px; height:44px; padding:0; display:grid; place-items:center; border:1px solid rgba(170,211,213,.28); border-radius:50%; background:rgba(7,28,40,.82); color:#d9eeee; cursor:pointer; backdrop-filter:blur(8px); transition:background 180ms,transform 180ms; }
.motion-toggle:hover { background:#1d4a5e; }
.motion-toggle:active { transform:scale(.94); }
.motion-toggle:disabled { opacity:.55; cursor:default; }
.motion-toggle:focus-visible { outline:3px solid #8fccdf; outline-offset:4px; }
.motion-still *, .motion-still::before, .motion-still::after,
.motion-paused *, .motion-paused *::before, .motion-paused *::after { animation-play-state:paused !important; }
.motion-paused .hero-inner > *, .motion-paused .service-hero-content > * { animation:none !important; opacity:1 !important; transform:none !important; }
.reveal, .reveal-left, .reveal-right, .reveal-scale, .reveal-fade, .reveal-slow { opacity:1; transform:none; }
.motion-reveal-pending { opacity:0 !important; transform:translate3d(0,18px,0) !important; }
.motion-reveal-ready { transition:opacity var(--motion-enter) var(--motion-ease), transform var(--motion-enter) var(--motion-ease); transition-delay:var(--reveal-delay,0ms); }
.page-loader { pointer-events:none; }
body.loaded .page-loader { display:none; }
.btn, .contact-card, .service-tile { transition:transform 240ms var(--motion-ease),background 180ms,border-color 180ms,box-shadow 240ms; }
@media(hover:hover) and (pointer:fine) {
  .service-tile:hover, .contact-card:hover { transform:translateY(-4px); }
  .service-tile img, .gallery-item img { transition:transform 700ms var(--motion-ease); }
  .service-tile:hover img, .gallery-item:hover img { transform:scale(1.035); }
}
.btn:active { transform:scale(.98); }
.ocean-bg.expedition-scene { position:fixed; }
.ocean-page .service-card.ob-lit, .ocean-page .feature-card.ob-lit, .ocean-page .cta-join-us.ob-lit { box-shadow:0 10px 40px rgba(0,12,21,.12); border-color:rgba(143,196,202,.2); }
.ocean-page #services .section-header::before { display:none; }
.ocean-page .feature-grid .feature-card { backdrop-filter:none; -webkit-backdrop-filter:none; background:rgba(8,30,43,.65); }
@media(max-width:900px) {
  .nav { visibility:hidden; transition:transform 300ms var(--motion-ease),visibility 300ms; }
  .nav.active { visibility:visible; transition:transform 300ms var(--motion-ease),visibility 0ms; }
  .hero:has(.expedition-scene) h1 { font-size:clamp(50px,7.6vw,76px); max-width:480px; }
  .expedition-hero .service-hero-title { max-width:510px; }
}
@media(max-width:768px) {
  .hero:has(.expedition-scene), .service-hero.expedition-hero { display:block; height:auto; max-height:none; min-height:0; padding:0; overflow:hidden; background:#071d2a !important; }
  .ocean-page main > .service-hero.expedition-hero { background:#071d2a !important; }
  .hero:has(.expedition-scene) .hero-scene, .expedition-hero .tour-scene { position:relative; inset:auto; height:72vw; min-height:260px; max-height:400px; width:100%; }
  .hero-scene__scrim { inset:0 0 auto; height:72vw; min-height:260px; max-height:400px; background:linear-gradient(0deg,#071d2a,transparent 40%); }
  .expedition-hero::after { inset:0 0 auto; height:72vw; min-height:260px; max-height:400px; background:linear-gradient(0deg,#071d2a,transparent 40%); }
  .hero:has(.expedition-scene) .hero-inner, .expedition-hero .service-hero-content { position:relative; inset:auto; width:100%; max-width:none; padding:0 24px 48px; margin:-8px 0 0; text-align:left; }
  .hero:has(.expedition-scene) h1 { max-width:100%; font-size:clamp(43px,12vw,70px); line-height:1.05; margin:12px 0 20px; }
  .hero:has(.expedition-scene) .hero-subtitle { display:block !important; font-size:15px; max-width:100%; margin:0 0 26px; }
  .hero:has(.expedition-scene) .hero-actions { display:flex !important; flex-wrap:wrap; gap:12px; }
  .hero:has(.expedition-scene) .hero-scene__scrim { display:block; }
  .hero:has(.expedition-scene) .hero-eyebrow, .hero:has(.expedition-scene) .rd-eyebrow { display:inline-flex; margin:0; font-size:10px; }
  .hero-scroll-cue { display:none; }
  .expedition-hero .service-hero-title { font-size:clamp(34px,9.5vw,50px); max-width:100%; margin:12px 0 20px; }
  .expedition-hero .service-hero-desc { display:block !important; font-size:15px; line-height:1.7; margin:0 0 18px; }
  .expedition-hero .service-price, .expedition-hero .service-hero-price, .expedition-hero .tour-hero-price { display:block !important; font-size:22px; margin:18px 0; }
  .expedition-hero .service-hero-buttons { display:flex !important; }
  .expedition-hero .service-badge { display:inline-flex; font-size:10px; margin:0; }
  .motion-toggle { left:12px; bottom:12px; }
}
@media(prefers-reduced-motion:reduce) {
  *, *::before, *::after { scroll-behavior:auto !important; animation:none !important; transition:none !important; }
  .motion-reveal-pending, .hero-inner > *, .expedition-hero .service-hero-content > *, .glass { opacity:1 !important; transform:none !important; }
}
