:root {
  --ink: #eaf8f4;
  --muted: #8fb4b1;
  --deep: #020e14;
  --navy: #031820;
  --teal: #0aa79b;
  --aqua: #76ead9;
  --lime: #d7f36a;
  --line: rgba(173, 238, 229, 0.15);
  --serif: "Playfair Display", Georgia, serif;
  --sans: "DM Sans", system-ui, sans-serif;
  --radius: 26px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--deep); }
body {
  margin: 0;
  color: var(--ink);
  background:
    radial-gradient(circle at 10% 5%, rgba(13, 119, 121, 0.22), transparent 28rem),
    var(--deep);
  font-family: var(--sans);
  overflow-x: hidden;
}
body.is-loading { overflow: hidden; }
body.menu-open { overflow: hidden; }
a { color: inherit; }
img { display: block; width: 100%; }
button, a { -webkit-tap-highlight-color: transparent; }

/* Cinematic aquarium entrance */
.preloader {
  position: fixed; inset: 0; z-index: 2000; display: grid; place-items: center; overflow: hidden;
  background:
    radial-gradient(circle at 50% 48%, rgba(10, 133, 131, .34), transparent 26rem),
    linear-gradient(180deg, #062a34 0%, #031922 48%, #020d13 100%);
  color: var(--ink); isolation: isolate; transition: opacity .75s ease, visibility .75s;
}
.preloader::before {
  content: ""; position: absolute; inset: -25%; opacity: .13; mix-blend-mode: screen;
  background: repeating-radial-gradient(ellipse at 50% -10%, transparent 0 58px, rgba(132,255,238,.42) 61px 63px, transparent 67px 112px);
  animation: loader-caustics 9s linear infinite;
}
.preloader::after {
  content: ""; position: absolute; inset: 0; z-index: 8; pointer-events: none;
  background: linear-gradient(180deg, transparent 62%, rgba(0,8,12,.65));
}
.preloader.is-leaving { opacity: 0; visibility: hidden; }
.preloader.is-leaving .preloader__center { transform: translateY(-24px) scale(.96); opacity: 0; }
.preloader__ocean { position: absolute; inset: 0; overflow: hidden; }
.preloader__ray { position: absolute; top: -20%; width: 27vw; height: 130%; transform-origin: top; filter: blur(18px); opacity: .09; background: linear-gradient(180deg, var(--aqua), transparent 72%); }
.preloader__ray--one { left: 7%; transform: rotate(-16deg); animation: loader-ray 6s ease-in-out infinite alternate; }
.preloader__ray--two { right: 4%; transform: rotate(19deg); animation: loader-ray 7s ease-in-out -2s infinite alternate-reverse; }
.preloader__center { position: relative; z-index: 10; display: flex; flex-direction: column; align-items: center; width: min(86vw, 560px); transition: transform .75s, opacity .6s; }
.preloader__eyebrow { margin: 0 0 1.25rem; color: var(--aqua); font-size: .62rem; font-weight: 700; letter-spacing: .24em; text-transform: uppercase; animation: loader-rise .9s .1s both; }
.preloader__portrait { position: relative; width: clamp(150px, 21vw, 260px); aspect-ratio: 1; border-radius: 50%; padding: 1px; animation: loader-rise 1s .2s both, loader-float 4s 1.2s ease-in-out infinite; }
.preloader__portrait::before { content: ""; position: absolute; inset: -20%; border-radius: 50%; background: radial-gradient(circle, rgba(118,234,217,.18), transparent 67%); filter: blur(10px); }
.preloader__portrait img { position: relative; height: 100%; object-fit: cover; object-position: 51% 43%; border-radius: 50%; border: 1px solid rgba(149,245,231,.38); box-shadow: 0 30px 90px rgba(0,0,0,.48); }
.preloader__orbit { position: absolute; inset: -12%; z-index: 2; border: 1px solid rgba(118,234,217,.22); border-radius: 50%; animation: loader-orbit 5s linear infinite; }
.preloader__orbit::before, .preloader__orbit::after { content: ""; position: absolute; border-radius: 50%; background: var(--lime); box-shadow: 0 0 18px var(--lime); }
.preloader__orbit::before { width: 7px; height: 7px; top: 16%; right: 9%; }
.preloader__orbit::after { width: 3px; height: 3px; left: 6%; bottom: 22%; }
.preloader__brand { margin-top: 1.8rem; font: 600 clamp(2rem, 5vw, 3.6rem)/1 var(--serif); letter-spacing: -.045em; animation: loader-rise .9s .38s both; }
.preloader__brand i { color: var(--aqua); }
.preloader__status { margin: .8rem 0 1.2rem; color: #7ca6a3; font-size: .68rem; letter-spacing: .13em; text-transform: uppercase; animation: loader-rise .9s .5s both; }
.preloader__progress { width: min(74vw, 330px); height: 1px; background: rgba(180,241,232,.16); overflow: hidden; }
.preloader__progress span { display: block; width: 0; height: 100%; background: linear-gradient(90deg, var(--aqua), var(--lime)); box-shadow: 0 0 12px var(--aqua); transition: width .18s ease-out; }
.preloader__number { margin-top: .65rem; color: #7fb4b0; font-size: .62rem; font-weight: 500; letter-spacing: .18em; }
.preloader__shadow { position: absolute; width: clamp(120px, 17vw, 250px); fill: rgba(91,218,205,.11); filter: blur(.3px) drop-shadow(0 0 25px rgba(56,209,194,.1)); }
.preloader__shadow--one { top: 20%; left: -18%; animation: loader-swim-right 8s 1s linear infinite; }
.preloader__shadow--two { bottom: 18%; right: -20%; transform: scaleX(-1) scale(.65); animation: loader-swim-left 10s -3s linear infinite; }
.preloader__school { position: absolute; top: 19%; right: 7%; width: min(26vw, 340px); height: 120px; opacity: .35; animation: loader-school 6s ease-in-out infinite; }
.preloader__school i { position: absolute; width: 25px; height: 11px; border-radius: 60% 45% 45% 60%; background: linear-gradient(90deg, #4daaa4, #9af1df); filter: drop-shadow(0 0 8px rgba(118,234,217,.25)); }
.preloader__school i::before { content: ""; position: absolute; right: -8px; top: 1px; border-top: 5px solid transparent; border-bottom: 5px solid transparent; border-left: 10px solid #69c7bc; }
.preloader__school i:nth-child(1) { left: 2%; top: 50%; transform: scale(.7); }
.preloader__school i:nth-child(2) { left: 23%; top: 21%; transform: scale(.45); }
.preloader__school i:nth-child(3) { left: 42%; top: 67%; transform: scale(.58); }
.preloader__school i:nth-child(4) { left: 65%; top: 34%; transform: scale(.38); }
.preloader__school i:nth-child(5) { left: 86%; top: 7%; transform: scale(.5); }
.preloader__scape { position: absolute; inset: auto 0 0; height: 42%; z-index: 4; pointer-events: none; }
.preloader__wood { position: absolute; left: -4%; bottom: 3%; width: min(44vw, 650px); height: 95%; fill: none; stroke: rgba(13,28,25,.92); stroke-width: 28; stroke-linecap: round; stroke-linejoin: round; filter: drop-shadow(15px 20px 18px rgba(0,0,0,.42)); }
.preloader__wood path:last-child { stroke-width: 17; }
.preloader__plant { position: absolute; bottom: 9%; width: 120px; height: 78%; transform-origin: bottom; filter: drop-shadow(0 8px 18px rgba(0,0,0,.26)); }
.preloader__plant i { position: absolute; bottom: 0; left: 50%; width: 13px; height: var(--plant-height, 72%); border-radius: 100% 0 100% 0; transform-origin: 50% 100%; background: linear-gradient(90deg, #073c35, #178276 55%, #3bb3a0); animation: loader-plant 3.8s ease-in-out infinite alternate; }
.preloader__plant i:nth-child(1) { --plant-height: 64%; transform: rotate(-31deg); animation-delay: -.6s; }
.preloader__plant i:nth-child(2) { --plant-height: 92%; transform: rotate(-11deg); animation-delay: -1.7s; }
.preloader__plant i:nth-child(3) { --plant-height: 78%; transform: rotate(18deg); animation-delay: -2.3s; }
.preloader__plant i:nth-child(4) { --plant-height: 52%; transform: rotate(37deg); animation-delay: -.2s; }
.preloader__plant--one { left: 4%; height: 73%; }
.preloader__plant--two { left: 25%; width: 90px; height: 48%; transform: scale(.8); }
.preloader__plant--three { right: 2%; height: 88%; transform: scale(1.16); }
.preloader__rocks { position: absolute; right: 9%; bottom: 7%; width: 270px; height: 110px; }
.preloader__rocks i { position: absolute; bottom: 0; border: 1px solid rgba(96,142,132,.22); background: linear-gradient(145deg, #173631, #071a1b 70%); box-shadow: inset 12px 9px 25px rgba(100,180,162,.08), 0 18px 28px rgba(0,0,0,.35); clip-path: polygon(22% 3%, 79% 9%, 100% 74%, 78% 100%, 10% 92%, 0 38%); }
.preloader__rocks i:nth-child(1) { left: 0; width: 110px; height: 72px; transform: rotate(-7deg); }
.preloader__rocks i:nth-child(2) { left: 73px; width: 132px; height: 105px; }
.preloader__rocks i:nth-child(3) { right: 0; width: 104px; height: 68px; transform: rotate(9deg); }
.preloader__rocks i:nth-child(4) { left: 33px; width: 62px; height: 43px; transform: translateY(8px); }
.preloader__rocks i:nth-child(5) { right: 50px; width: 72px; height: 49px; transform: translateY(10px); }
.preloader__bubble { position: absolute; bottom: -5rem; border: 1px solid rgba(178,246,237,.32); border-radius: 50%; animation: loader-bubble linear infinite; }
.preloader__bubble--1 { left: 12%; width: 14px; height: 14px; animation-duration: 6s; }
.preloader__bubble--2 { left: 27%; width: 6px; height: 6px; animation-duration: 8s; animation-delay: -4s; }
.preloader__bubble--3 { left: 68%; width: 20px; height: 20px; animation-duration: 9s; animation-delay: -2s; }
.preloader__bubble--4 { left: 84%; width: 9px; height: 9px; animation-duration: 7s; animation-delay: -5s; }
.preloader__bubble--5 { left: 54%; width: 5px; height: 5px; animation-duration: 6.5s; animation-delay: -1s; }
.preloader__floor { position: absolute; z-index: 3; left: -10%; right: -10%; bottom: -13%; height: 28%; overflow: hidden; border-radius: 50% 50% 0 0; background: radial-gradient(ellipse at 50% 0, rgba(68,102,88,.38), rgba(0,5,8,.92) 63%); filter: blur(.4px); }
.preloader__floor i { position: absolute; left: 18%; right: 18%; height: 22px; border-top: 1px solid rgba(143,190,172,.09); border-radius: 50%; }
.preloader__floor i:nth-child(1) { top: 16%; }
.preloader__floor i:nth-child(2) { top: 28%; left: 28%; right: 7%; }
.preloader__floor i:nth-child(3) { top: 39%; left: 5%; right: 38%; }

@keyframes loader-caustics { to { transform: translate3d(4%, 3%, 0) rotate(3deg); } }
@keyframes loader-ray { to { opacity: .17; transform: rotate(-9deg) translateX(4vw); } }
@keyframes loader-rise { from { opacity: 0; transform: translateY(22px); } to { opacity: 1; transform: none; } }
@keyframes loader-float { 50% { transform: translateY(-9px); } }
@keyframes loader-orbit { to { transform: rotate(360deg); } }
@keyframes loader-swim-right { from { transform: translateX(0) scale(.75); } to { transform: translateX(140vw) scale(.75); } }
@keyframes loader-swim-left { from { transform: translateX(0) scaleX(-1) scale(.62); } to { transform: translateX(-140vw) scaleX(-1) scale(.62); } }
@keyframes loader-bubble { 0% { transform: translateY(0) translateX(0); opacity: 0; } 15% { opacity: .8; } 70% { transform: translateY(-72vh) translateX(18px); } 100% { transform: translateY(-115vh) translateX(-8px); opacity: 0; } }
@keyframes loader-school { 50% { transform: translate(-28px, 9px); } }
@keyframes loader-plant { from { margin-left: -3px; filter: brightness(.88); } to { margin-left: 5px; filter: brightness(1.12); } }

.skip-link {
  position: fixed; left: 1rem; top: -5rem; z-index: 1000;
  background: white; color: #001; padding: .75rem 1rem; border-radius: .5rem;
}
.skip-link:focus { top: 1rem; }
.page-noise {
  position: fixed; inset: 0; pointer-events: none; opacity: .035; z-index: 90;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.8'/%3E%3C/svg%3E");
}

.site-header {
  position: fixed; inset: 0 0 auto; z-index: 100; height: 88px; padding: 0 clamp(1.25rem, 4vw, 4.75rem);
  display: grid; grid-template-columns: 1fr auto 1fr; align-items: center;
  border-bottom: 1px solid transparent; transition: background .35s, border-color .35s, height .35s;
}
.site-header.is-scrolled {
  height: 72px; background: rgba(2, 14, 20, .82); border-color: var(--line);
  backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px);
}
.brand { display: inline-flex; width: max-content; align-items: center; gap: .7rem; text-decoration: none; font-family: var(--serif); font-size: 1.15rem; font-weight: 700; letter-spacing: -.02em; }
.brand i { color: var(--aqua); font-weight: 600; }
.brand__mark { width: 42px; height: 34px; fill: none; stroke: var(--aqua); stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.brand__mark circle { fill: var(--lime); stroke: none; }
.site-nav { display: flex; align-items: center; gap: 2.25rem; }
.site-nav a { position: relative; color: #bfd5d2; text-decoration: none; font-size: .86rem; font-weight: 600; }
.site-nav a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -.5rem; height: 1px; background: var(--aqua); transition: right .25s; }
.site-nav a:hover::after, .site-nav a:focus-visible::after { right: 0; }
.header-cta { justify-self: end; display: inline-flex; flex: 0 0 auto; min-width: max-content; gap: .65rem; align-items: center; white-space: nowrap; text-decoration: none; padding: .7rem 1rem; border: 1px solid rgba(118,234,217,.45); border-radius: 99px; color: var(--aqua); font-size: .82rem; font-weight: 700; }
.header-cta span { transition: transform .2s; }
.header-cta:hover span { transform: translate(2px,-2px); }
.nav-toggle { display: none; border: 0; background: transparent; width: 42px; height: 42px; padding: 10px; }
.nav-toggle span { display: block; width: 22px; height: 1px; background: var(--ink); margin: 6px auto; transition: transform .2s; }

.hero { min-height: 100svh; position: relative; display: grid; grid-template-columns: 1.04fr .96fr; align-items: center; gap: 4vw; padding: 8.5rem clamp(1.25rem, 7vw, 8rem) 5rem; isolation: isolate; overflow: hidden; }
#aquarium { position: absolute; inset: 0; width: 100%; height: 100%; z-index: -3; opacity: .88; }
.hero::after { content: ""; position: absolute; inset: 0; z-index: -2; background: linear-gradient(90deg, rgba(2,14,20,.76) 0%, rgba(2,14,20,.28) 58%, rgba(2,14,20,.58) 100%), linear-gradient(0deg, var(--deep), transparent 30%); }
.hero__glow { position: absolute; z-index: -1; width: 38rem; aspect-ratio: 1; border-radius: 50%; filter: blur(80px); opacity: .18; pointer-events: none; }
.hero__glow--one { background: #0fcabd; right: -13rem; top: 5%; }
.hero__glow--two { background: #318ea5; left: 20%; bottom: -28rem; }
.hero__content { max-width: 760px; z-index: 2; }
.eyebrow { margin: 0 0 1.4rem; display: flex; align-items: center; gap: .75rem; color: var(--aqua); font-size: .72rem; letter-spacing: .18em; font-weight: 700; text-transform: uppercase; }
.eyebrow span { width: 2.4rem; height: 1px; background: var(--aqua); }
h1, h2, h3 { margin: 0; font-family: var(--serif); font-weight: 600; }
h1 { font-size: clamp(3.5rem, 7.3vw, 7.8rem); letter-spacing: -.055em; line-height: .9; }
h1 em, h2 em { color: var(--aqua); font-weight: 600; }
.hero__lede { max-width: 36rem; margin: 2rem 0 0; color: #b2ccca; line-height: 1.75; font-size: clamp(1rem, 1.3vw, 1.15rem); }
.hero__actions { display: flex; flex-wrap: wrap; gap: .9rem; margin-top: 2.2rem; }
.button { min-height: 50px; display: inline-flex; align-items: center; justify-content: center; gap: .8rem; padding: .85rem 1.2rem; border: 1px solid transparent; border-radius: 99px; text-decoration: none; font-size: .85rem; font-weight: 700; transition: transform .2s, background .2s, border-color .2s; }
.button:hover { transform: translateY(-3px); }
.button--primary { background: var(--lime); color: #08221f; box-shadow: 0 12px 35px rgba(215,243,106,.14); }
.button--ghost { border-color: rgba(234,248,244,.22); color: #d8ece9; background: rgba(255,255,255,.025); }
.hero__notes { display: flex; gap: 2rem; margin-top: 2.8rem; color: #769c99; font-size: .72rem; letter-spacing: .05em; text-transform: uppercase; }
.hero__notes span { display: flex; align-items: center; gap: .65rem; }
.hero__notes b { color: var(--ink); font-family: var(--serif); font-size: 1.5rem; letter-spacing: 0; }

.hero__feature { position: relative; width: min(31vw, 430px); justify-self: end; perspective: 1000px; }
.feature-card { position: relative; aspect-ratio: .74; border-radius: 48% 48% 30px 30px; overflow: hidden; border: 1px solid rgba(175,245,235,.28); box-shadow: 0 35px 100px rgba(0,0,0,.45); transform-style: preserve-3d; transition: transform .15s linear; }
.feature-card img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 42%; }
.feature-card__wash { position: absolute; inset: 0; background: linear-gradient(0deg, rgba(2,14,20,.86), transparent 52%); }
.feature-card__meta { position: absolute; inset: auto 1.7rem 1.5rem; }
.feature-card__meta span { display: block; color: var(--aqua); text-transform: uppercase; letter-spacing: .15em; font-size: .64rem; }
.feature-card__meta strong { display: block; margin-top: .35rem; font: 600 clamp(1.5rem, 2.4vw, 2.25rem)/1 var(--serif); }
.feature-card__orbit { position: absolute; inset: -8%; border: 1px solid rgba(118,234,217,.16); border-radius: 50%; animation: orbit 12s linear infinite; }
.feature-card__orbit::after { content: ""; position: absolute; width: 9px; height: 9px; border-radius: 50%; background: var(--lime); top: 48%; left: -5px; box-shadow: 0 0 20px var(--lime); }
.float-label { position: absolute; z-index: 3; padding: .55rem .85rem; border: 1px solid rgba(255,255,255,.18); border-radius: 99px; background: rgba(3,24,32,.7); backdrop-filter: blur(12px); font-size: .66rem; letter-spacing: .1em; text-transform: uppercase; }
.float-label--top { right: -2.8rem; top: 15%; animation: float 4s ease-in-out infinite; }
.float-label--bottom { left: -3rem; bottom: 20%; animation: float 5s ease-in-out -1s infinite; }
.hero__scroll { position: absolute; bottom: 2.4rem; left: clamp(1.25rem, 7vw, 8rem); display: flex; align-items: center; gap: .8rem; color: #638a87; text-decoration: none; font-size: .67rem; letter-spacing: .14em; text-transform: uppercase; }
.hero__scroll span { width: 42px; height: 42px; border-radius: 50%; border: 1px solid var(--line); position: relative; }
.hero__scroll span::after { content: ""; position: absolute; width: 4px; height: 4px; background: var(--aqua); border-radius: 50%; left: 18px; top: 8px; animation: scroll-dot 2s ease-in-out infinite; }

.intro { padding: clamp(5rem, 10vw, 9rem) clamp(1.25rem, 7vw, 8rem); display: grid; grid-template-columns: 1fr 3fr; gap: 4rem; align-items: start; border-top: 1px solid var(--line); }
.intro__line { width: 100%; height: 1px; background: linear-gradient(90deg, var(--aqua), transparent); margin-top: 1.4rem; }
.intro p { margin: 0; max-width: 900px; font: 600 clamp(2rem, 4.2vw, 4.4rem)/1.18 var(--serif); letter-spacing: -.035em; color: #cce3df; }
.intro em { color: var(--aqua); }
.section { padding: clamp(5.5rem, 9vw, 9rem) clamp(1.25rem, 6vw, 7rem); }
.collection { background: #04141a; border-top: 1px solid var(--line); }
.section-heading { display: grid; grid-template-columns: 1fr minmax(250px, 400px); align-items: end; gap: 3rem; margin-bottom: 3rem; }
.section-heading h2, .care h2, .contact h2 { font-size: clamp(3rem, 6vw, 6.4rem); line-height: .95; letter-spacing: -.05em; }
.section-heading > p { color: var(--muted); line-height: 1.7; margin: 0 0 .4rem; }

.fish-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: clamp(250px, 27vw, 410px); grid-auto-flow: dense; gap: 1rem; }
.fish-card { position: relative; overflow: hidden; border-radius: var(--radius); isolation: isolate; background: #0a282d; border: 1px solid rgba(255,255,255,.05); transform-style: preserve-3d; transition: transform .18s ease, border-color .25s; }
.fish-card--wide { grid-column: span 2; }
.fish-card--tall { grid-row: span 2; }
.fish-card img { height: 100%; object-fit: cover; transition: transform .7s cubic-bezier(.2,.7,.2,1), filter .6s; }
.fish-card:hover img { transform: scale(1.055); filter: saturate(1.12) contrast(1.04); }
.fish-card:hover { border-color: rgba(118,234,217,.45); }
.fish-card__shade { position: absolute; inset: 0; background: linear-gradient(0deg, rgba(0,8,11,.86), transparent 50%); }
.fish-card > span { position: absolute; top: 1.2rem; right: 1.25rem; width: 36px; height: 36px; display: grid; place-items: center; border-radius: 50%; background: rgba(2,14,20,.5); backdrop-filter: blur(12px); font-size: .63rem; color: #c7e7e2; }
.fish-card h3 { position: absolute; left: 1.4rem; bottom: 1.3rem; font-size: clamp(1.35rem, 2.3vw, 2.2rem); transform: translateZ(20px); }

.care { display: grid; grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr); gap: clamp(4rem, 8vw, 9rem); align-items: center; background: radial-gradient(circle at 15% 50%, rgba(7,118,111,.23), transparent 35%), #020e14; }
.care__visual { position: relative; min-height: 640px; }
.care__visual img { position: absolute; width: 76%; height: 78%; left: 10%; top: 7%; object-fit: cover; border-radius: 46% 46% 28px 28px; box-shadow: 0 35px 90px rgba(0,0,0,.4); }
.care__visual > p { position: absolute; writing-mode: vertical-rl; transform: rotate(180deg); left: 0; top: 8%; color: #6f9794; text-transform: uppercase; letter-spacing: .15em; font-size: .65rem; }
.care__rings { position: absolute; inset: 4% -5% auto auto; width: 180px; aspect-ratio: 1; }
.care__rings i { position: absolute; inset: 0; border: 1px solid rgba(118,234,217,.2); border-radius: 50%; animation: ripple 4s ease-out infinite; }
.care__rings i:nth-child(2) { animation-delay: 1.25s; }
.care__rings i:nth-child(3) { animation-delay: 2.5s; }
.care__content > p:not(.eyebrow) { max-width: 570px; color: var(--muted); line-height: 1.8; margin: 2rem 0 2.5rem; }
.care__content ol { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.care__content li { display: grid; grid-template-columns: 3rem 1fr; gap: 1rem; align-items: center; padding: 1.2rem 0; border-bottom: 1px solid var(--line); }
.care__content li > span { color: var(--aqua); font-family: var(--serif); }
.care__content b, .care__content small { display: block; }
.care__content small { color: #6f9895; margin-top: .25rem; }

.contact { position: relative; overflow: hidden; background: linear-gradient(130deg, #0a6e68, #064048 55%, #03232c); display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(360px, .92fr); gap: clamp(2.5rem, 7vw, 9rem); align-items: center; min-height: 600px; }
.contact::before { content: ""; position: absolute; width: 50rem; height: 50rem; right: -20rem; bottom: -34rem; border-radius: 50%; border: 1px solid rgba(255,255,255,.16); box-shadow: 0 0 0 80px rgba(255,255,255,.025), 0 0 0 160px rgba(255,255,255,.018); }
.contact__bubbles { position: absolute; inset: 0; pointer-events: none; }
.contact__copy { position: relative; z-index: 1; max-width: 680px; }
.contact__copy > p:last-child { color: #bbd9d5; max-width: 560px; line-height: 1.75; }
.contact__card { position: relative; z-index: 1; width: 100%; max-width: 560px; justify-self: end; padding: clamp(1.5rem, 3vw, 2.4rem); background: rgba(2,23,29,.56); border: 1px solid rgba(255,255,255,.2); border-radius: var(--radius); backdrop-filter: blur(18px); }
.contact__card small { display: block; color: #91beba; text-transform: uppercase; letter-spacing: .14em; font-size: .65rem; }
.contact__card > div:first-child > a { display: inline-block; margin-top: .5rem; text-decoration: none; font: 600 clamp(1.7rem, 3vw, 3rem)/1.1 var(--serif); }
.contact__actions { display: flex; gap: .75rem; margin-top: 2rem; }
.button--whatsapp { min-width: max-content; white-space: nowrap; background: var(--lime); color: #09241d; font-family: var(--sans); font-size: .85rem; line-height: 1; }
.button--light { border-color: rgba(255,255,255,.35); }
.contact__bubbles i { position: absolute; border: 1px solid rgba(210,255,247,.22); border-radius: 50%; bottom: -3rem; animation: bubble 9s linear infinite; }
.contact__bubbles i:nth-child(1) { width: 16px; height: 16px; left: 8%; animation-delay: -4s; }
.contact__bubbles i:nth-child(2) { width: 30px; height: 30px; left: 32%; animation-delay: -1s; }
.contact__bubbles i:nth-child(3) { width: 10px; height: 10px; left: 54%; animation-delay: -7s; }
.contact__bubbles i:nth-child(4) { width: 22px; height: 22px; left: 76%; animation-delay: -5s; }
.contact__bubbles i:nth-child(5) { width: 12px; height: 12px; left: 91%; animation-delay: -2s; }

.site-footer { min-height: 150px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 2rem; padding: 2rem clamp(1.25rem, 6vw, 7rem); color: #648c89; font-size: .72rem; border-top: 1px solid var(--line); }
.site-footer p:last-child { justify-self: end; }
.site-footer .brand { color: var(--ink); }
.noscript { text-align: center; padding: 1rem; background: #f4df6c; color: #111; }

.reveal { opacity: 0; transform: translateY(28px); transition: opacity .8s ease, transform .8s cubic-bezier(.2,.7,.2,1); }
.reveal.is-visible { opacity: 1; transform: none; }

.fish-cursor { display: none; position: fixed; width: 29px; height: 18px; z-index: 1000; pointer-events: none; transform: translate(-50%,-50%); filter: drop-shadow(0 0 7px rgba(118,234,217,.55)); transition: width .15s, height .15s; }
.fish-cursor__body { position: absolute; right: 0; top: 1px; width: 21px; height: 16px; border: 1px solid var(--aqua); background: rgba(5,74,77,.75); border-radius: 55% 45% 45% 55%; }
.fish-cursor__tail { position: absolute; left: 0; top: 3px; width: 0; height: 0; border-top: 6px solid transparent; border-bottom: 6px solid transparent; border-right: 9px solid var(--aqua); transform-origin: right center; animation: tail .35s ease-in-out infinite alternate; }
.fish-cursor__eye { position: absolute; right: 4px; top: 5px; width: 3px; height: 3px; border-radius: 50%; background: var(--lime); box-shadow: 0 0 5px var(--lime); }
.fish-cursor.is-hovering { width: 38px; height: 24px; }

@keyframes orbit { to { transform: rotate(360deg); } }
@keyframes float { 50% { transform: translateY(-10px); } }
@keyframes ripple { 0% { transform: scale(.25); opacity: 0; } 25% { opacity: .8; } 100% { transform: scale(1.2); opacity: 0; } }
@keyframes bubble { from { transform: translateY(0); opacity: 0; } 20% { opacity: 1; } to { transform: translateY(-650px); opacity: 0; } }
@keyframes tail { to { transform: rotateY(45deg); } }
@keyframes scroll-dot { 0%,100% { transform: translateY(0); opacity: .25; } 50% { transform: translateY(20px); opacity: 1; } }

@media (pointer: fine) {
  html.has-custom-cursor, html.has-custom-cursor * { cursor: none !important; }
  .fish-cursor { display: block; }
}
@media (max-width: 980px) {
  .site-header { grid-template-columns: 1fr auto; }
  .site-nav { position: fixed; inset: 0; background: rgba(2,14,20,.97); display: flex; flex-direction: column; justify-content: center; gap: 2rem; transform: translateY(-105%); transition: transform .35s; z-index: -1; }
  .site-nav a { font: 600 2.4rem var(--serif); }
  body.menu-open .site-nav { transform: none; }
  .header-cta { display: none; }
  .nav-toggle { display: block; z-index: 2; }
  body.menu-open .nav-toggle span:first-child { transform: translateY(3.5px) rotate(45deg); }
  body.menu-open .nav-toggle span:last-child { transform: translateY(-3.5px) rotate(-45deg); }
  .hero { grid-template-columns: 1fr; padding-top: 10rem; }
  .hero__content { max-width: 700px; }
  .hero__feature { width: min(70vw, 420px); margin: 2rem auto 3.5rem; justify-self: center; }
  .intro { grid-template-columns: 1fr; gap: 2rem; }
  .fish-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 410px; }
  .care { grid-template-columns: 1fr; }
  .care__visual { min-height: 600px; max-width: 620px; width: 100%; margin: 0 auto; }
  .contact { grid-template-columns: 1fr; align-items: start; min-height: 0; }
  .contact__card { justify-self: stretch; max-width: none; }
}
@media (max-width: 620px) {
  .preloader__portrait { width: 150px; }
  .preloader__brand { font-size: 2.3rem; }
  .preloader__shadow { width: 130px; }
  .preloader__scape { height: 33%; }
  .preloader__wood { width: 65vw; opacity: .8; }
  .preloader__plant--two { display: none; }
  .preloader__rocks { right: -4%; transform: scale(.7); transform-origin: bottom right; }
  .preloader__school { right: -3%; width: 44vw; opacity: .25; }
  .site-header { height: 72px; padding-inline: 1rem; }
  .brand { font-size: 1rem; }
  .brand__mark { width: 36px; }
  .hero { padding: 8.5rem 1.15rem 4rem; min-height: auto; }
  h1 { font-size: clamp(3.2rem, 16vw, 5rem); }
  .hero__notes { gap: 1rem; flex-direction: column; }
  .hero__scroll { display: none; }
  .hero__feature { width: min(84vw, 390px); }
  .float-label--top { right: -1rem; }
  .float-label--bottom { left: -1rem; }
  .intro { padding-inline: 1.15rem; }
  .section { padding-inline: 1.15rem; }
  .section-heading { grid-template-columns: 1fr; gap: 1.25rem; }
  .fish-grid { grid-template-columns: 1fr; grid-auto-rows: 390px; }
  .fish-card--wide, .fish-card--tall { grid-column: auto; grid-row: auto; }
  .care__visual { min-height: 470px; }
  .care__visual img { width: 84%; height: 82%; left: 8%; }
  .contact__actions { flex-direction: column; }
  .site-footer { grid-template-columns: 1fr; text-align: center; justify-items: center; padding-block: 3rem; }
  .site-footer p { margin: 0; }
  .site-footer p:last-child { justify-self: center; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .reveal { opacity: 1; transform: none; }
  .fish-cursor { display: none !important; }
  html.has-custom-cursor, html.has-custom-cursor * { cursor: auto !important; }
  .preloader__ocean, .preloader__portrait { animation: none !important; }
}
