#ocean-atmosphere{position:fixed;inset:0;pointer-events:none;z-index:25;overflow:hidden;contain:strict}.dive-bubble{position:absolute;bottom:-45px;width:var(--size);height:var(--size);border-radius:50%;border:1px solid #d3f7ff66;background:radial-gradient(circle at 28% 24%,#f2fdffb3 0%,#dcf9ff22 11%,transparent 34%,#7bd1eb0a 63%,#d5faff33 88%,transparent 100%);box-shadow:inset -2px -2px 5px #95e4fa18;will-change:transform,opacity;animation:divingBubble var(--duration) linear forwards}.dive-bubble:after{content:'';position:absolute;left:22%;top:15%;width:24%;height:10%;background:#e6fbffb3;border-radius:50%;transform:rotate(-30deg)}@keyframes divingBubble{0%{transform:translate3d(0,0,0);opacity:0}8%{opacity:var(--alpha)}65%{opacity:var(--alpha)}100%{transform:translate3d(var(--drift),calc(-100vh - 100px),0);opacity:0}}.surface-wash{position:absolute;inset:0;background:radial-gradient(ellipse at 50% -15%,#c2edff99, #80cce72b 30%,transparent 70%);opacity:0}.surface-wash.surface-active{animation:surfaceLight 1.5s ease-out both}.surface-ring{position:absolute;left:50%;top:0;width:70vw;height:30vw;min-height:120px;border:1px solid #cff4ff99;border-radius:50%;box-shadow:0 0 20px #b8e9ff22,inset 0 0 18px #b8e9ff11;animation:surfaceRing 1.7s cubic-bezier(.12,.6,.3,1) both;animation-delay:var(--delay);will-change:transform,opacity}@keyframes surfaceLight{0%{opacity:0}16%{opacity:.85}100%{opacity:0}}@keyframes surfaceRing{0%{transform:translate(-50%,-55%) scale(.35);opacity:0}15%{opacity:.65}100%{transform:translate(-50%,-30%) scale(2.5);opacity:0}}@media(prefers-reduced-motion:reduce){#ocean-atmosphere{display:none}}.reduce-motion #ocean-atmosphere{display:none}

/* Optical bubbles: real backdrop sampling, independent of page media. */
.dive-bubble{bottom:-105px;isolation:isolate;border:1px solid #d9f5ff5c;background:radial-gradient(ellipse at 30% 19%,#ffffffa6 0%,#e7fbff3d 7%,transparent 22%),radial-gradient(ellipse at 76% 82%,#b4edff52 0%,transparent 36%),radial-gradient(circle at 46% 43%,transparent 45%,#031b3633 67%,#a9e6ff61 87%,#efffff70 98%);box-shadow:inset 2px 3px 5px #f1ffff38,inset -3px -5px 9px #02223966,0 5px 10px #0000001a;-webkit-backdrop-filter:blur(.8px) brightness(1.18) contrast(1.12);backdrop-filter:url(#bubble-refraction) blur(.35px) brightness(1.12) contrast(1.08) saturate(1.1);}
.dive-bubble:before{content:'';position:absolute;inset:8%;border-radius:50%;border-top:2px solid #f0ffffa1;border-left:1px solid #d7faff52;border-bottom:1px solid #b3eaff40;transform:rotate(-32deg);filter:blur(.3px)}
.dive-bubble:after{left:23%;top:13%;width:25%;height:12%;background:radial-gradient(ellipse,#fff9,transparent 75%);transform:rotate(-35deg);box-shadow:none}

.dive-bubble{animation-delay:-.7s}

/* Rise and fluid shape are independent, so refraction follows a changing membrane. */
.bubble-rise{position:absolute;bottom:-105px;width:var(--size);height:var(--size);animation:organicRise var(--duration) linear -.7s forwards;will-change:transform,opacity}.bubble-skin{display:block;position:absolute;inset:0;border:1px solid #d3efff48;border-radius:44% 56% 49% 51% / 39% 42% 58% 61%;background:radial-gradient(ellipse at 29% 17%,#f5ffff70,transparent 22%),radial-gradient(ellipse at 73% 85%,#b4edff32,transparent 33%),radial-gradient(ellipse at 45% 42%,transparent 48%,#082a3e22 72%,#b8e7f946 93%,#efffff50);box-shadow:inset 1px 2px 4px #f1ffff2b,inset -2px -3px 6px #02223942;backdrop-filter:url(#bubble-refraction) blur(.35px) brightness(1.1) contrast(1.06);animation:fluidMembrane var(--wobble) ease-in-out var(--phase) infinite;will-change:transform,border-radius}.bubble-skin:before{content:'';position:absolute;inset:9% 12% 13% 8%;border-radius:inherit;border-top:1.5px solid #f0ffff85;border-left:1px solid #d7faff30;transform:rotate(-27deg)}.bubble-skin:after{content:'';position:absolute;left:23%;top:12%;width:24%;height:9%;border-radius:50%;background:radial-gradient(ellipse,#fff7,transparent 75%);transform:rotate(-23deg)}
@keyframes organicRise{0%{transform:translate3d(0,0,0);opacity:0}9%{opacity:var(--alpha)}28%{transform:translate3d(14px,calc(-28vh - 28px),0)}52%{transform:translate3d(-11px,calc(-52vh - 52px),0);opacity:var(--alpha)}76%{transform:translate3d(9px,calc(-76vh - 76px),0);opacity:calc(var(--alpha)*.8)}100%{transform:translate3d(var(--drift),calc(-100vh - 100px),0);opacity:0}}
@keyframes fluidMembrane{0%,100%{border-radius:44% 56% 49% 51% / 39% 42% 58% 61%;transform:rotate(var(--lean)) scale(1.09,.88)}24%{border-radius:53% 47% 43% 57% / 48% 37% 63% 52%;transform:rotate(-9deg) scale(.91,1.08)}51%{border-radius:47% 53% 58% 42% / 35% 46% 54% 65%;transform:rotate(8deg) scale(1.13,.86)}77%{border-radius:57% 43% 48% 52% / 46% 41% 59% 54%;transform:rotate(-5deg) scale(.97,1.04)}}

/* Refraction lives on the animated parent: nested opacity was isolating the backdrop. */
.bubble-rise{backdrop-filter:url(#bubble-refraction) blur(.45px) brightness(1.06);border-radius:47% 53% 49% 51% / 43% 41% 59% 57%;overflow:hidden;animation:organicRise var(--duration) linear -.7s forwards,softShape var(--wobble) ease-in-out var(--phase) infinite}.bubble-skin{backdrop-filter:none;border:0;background:radial-gradient(ellipse at 28% 15%,#f5ffff45,transparent 22%),radial-gradient(ellipse at 75% 83%,#c0eaff20,transparent 32%);box-shadow:inset 1px 2px 6px #f1ffff16,inset -2px -3px 9px #02223920}.bubble-skin:before{border-left:0;border-top:1px solid #f0ffff35;border-bottom:0;filter:blur(1.2px)}.bubble-skin:after{opacity:.35;filter:blur(1px)}@keyframes softShape{0%,100%{border-radius:44% 56% 49% 51% / 39% 42% 58% 61%}35%{border-radius:53% 47% 43% 57% / 48% 37% 63% 52%}70%{border-radius:47% 53% 58% 42% / 35% 46% 54% 65%}}
.closing-v8{min-height:760px;height:100svh;overflow:hidden}.closing-v8>div{isolation:isolate}.closing-v8>div:before{content:'';position:absolute;inset:-20%;z-index:-1;pointer-events:none;background:repeating-conic-gradient(from -25deg at 55% 0%,transparent 0deg 11deg,#c7f7ff12 13deg,transparent 17deg 29deg);filter:blur(12px);animation:endLight 12s ease-in-out infinite alternate}.closing-v8 h2{position:relative;z-index:2;margin:35px 0 25px;text-shadow:0 4px 40px #00384c55}.closing-v8 .end-copy{text-align:center;font-size:14px;line-height:2.2;margin:5px 0 20px;color:#d0eaf0}.end-copy span{font-size:12px;color:#a1cbd8}.closing-v8 .end-coordinate{position:absolute;top:38px;left:6%;font:9px monospace;letter-spacing:.15em;color:#a2cbd8}.end-ripples{position:absolute;width:540px;height:540px;max-width:90vw;max-height:90vw;pointer-events:none;z-index:-1;transform:rotateX(35deg)}.end-ripples i{position:absolute;inset:0;border:1px solid #c8efff30;border-radius:48% 52% 50% 50%;animation:endRipple 9s ease-out infinite}.end-ripples i:nth-child(2){animation-delay:-3s}.end-ripples i:nth-child(3){animation-delay:-6s}.closing-v8 .surface-link{display:flex;align-items:center;gap:35px;border-bottom:1px solid #bce7f577;padding:13px 0;font-size:12px;margin-top:10px}.surface-link b{display:grid;place-items:center;width:35px;height:35px;border:1px solid #bee3ec77;border-radius:50%;font-size:18px;font-weight:400;transition:transform .4s,background .4s}.surface-link:hover b{transform:translateY(-5px);background:#b6eafb26}.end-index{position:absolute;bottom:35px;left:6%;right:6%;display:flex;align-items:center;gap:25px;font:8px monospace;letter-spacing:.12em;color:#9ec6d4}.end-index i{flex:1;height:1px;background:#bee4f04d}@keyframes endRipple{0%{opacity:0;transform:scale(.5) rotate(-8deg)}20%{opacity:.65}100%{opacity:0;transform:scale(1.65) rotate(8deg)}}@keyframes endLight{to{transform:translateX(5%) rotate(8deg);opacity:.45}}@media(max-width:600px){.closing-v8{min-height:720px}.closing-v8 .end-copy{font-size:12px}.end-copy span{font-size:10px}.end-index{font-size:6px;gap:12px}}@media(prefers-reduced-motion:reduce){.closing-v8>div:before,.end-ripples i{animation:none}}

.bubble-rise{mask-image:radial-gradient(ellipse,black 52%,#000d 68%,transparent 100%)}

.closing-v8 .end-copy,.closing-v8 .surface-link{color:#f0fbff;text-shadow:0 2px 10px #002331,0 0 25px #002331}.end-copy span{color:#d1e8ef}
