/* The invitation lives in the water, with no opaque section panels. */
html{scroll-behavior:auto;scroll-padding-top:30px}
body{overflow-x:clip}
.ocean{inset:-35px 0;background-image:linear-gradient(180deg,#001d3920,#001e4030 55%,#001b4840),url('/ocean.png');background-position:center 62%;animation:none;transform:scale(1.04) translateY(var(--ocean-drift,0px));will-change:transform}
body::before{content:'';position:fixed;inset:0;z-index:-2;pointer-events:none;background:radial-gradient(ellipse at 50% 55%,#001f4c5c 0%,#001d3c20 45%,transparent 75%)}
.hero{text-shadow:0 2px 9px #001d4b,0 4px 24px #001b48}
.hero h1{transform:translateY(var(--title-drift,0px));will-change:transform}
.hero-cta{margin-top:5px}
.hero .tiny{letter-spacing:.4px;font-size:14px}
.scroll{animation:beckon 2.8s ease-in-out infinite;text-shadow:0 0 15px #adfaff}
.panel{background:none;border:0;box-shadow:none;backdrop-filter:none;border-radius:0;text-shadow:0 2px 6px #00142fe6,0 3px 19px #001b46d9;padding:55px 35px;margin:0 auto;max-width:660px}
.panel::before{display:none}
.party{min-height:85svh;display:flex;flex-direction:column;justify-content:center;padding-top:90px;padding-bottom:80px}
.party>h2,.party>p,.party .details{text-align:center}
.panel .eyebrow{max-width:none;text-align:center;color:#b9faff;font-size:11px;letter-spacing:2.5px;margin-bottom:22px}
.panel h2{text-align:center;font-size:42px;line-height:1.5;color:#e4feff;text-shadow:0 3px 1px #035478,0 4px 20px #001c4d}
.panel>p{color:#effaff;font-size:18px;line-height:1.6}
.party>p:not(.eyebrow):not(.host){max-width:480px;margin:0 auto 22px}
.details{display:grid;grid-template-columns:1fr;gap:0;margin:25px 0;padding:0}
.details>div{background:none;border:0;border-radius:0;box-shadow:none;padding:24px 15px;position:relative}
.details>div+div::before{content:'';display:block;position:absolute;top:0;left:28%;right:28%;height:1px;background:linear-gradient(90deg,transparent,#beffffad,transparent)}
.detail-icon{position:static;display:block;font-size:34px;line-height:1;margin-bottom:13px;color:#c5f9ff}
.details span{font-size:11px;color:#b1f5ff}
.details strong{font-size:24px;line-height:1.5;color:white}
.details p{font-size:22px;color:#dcfaff;margin-top:3px}
.host{background:none;border:0;padding:10px 0;margin:12px 0;font-size:16px!important}
.host a{color:#a8f7ff;white-space:nowrap}
.journey-next{display:block;text-align:center;color:#efffff;text-decoration:none;font-size:19px;margin:40px 0 0}
.journey-next span{display:block;font-size:32px;line-height:1.6;animation:beckon 2.8s ease-in-out infinite;color:#a3f4ff}
.journey-next small{font-size:12px;color:#c9f3fc;letter-spacing:1px}
.rsvp{min-height:100svh;padding-top:70px;padding-bottom:70px}
.rsvp>p{text-align:center}
.rsvp form{margin-top:35px}
legend,.field{color:#fff;text-shadow:0 2px 7px #001b42,0 2px 16px #001b42}
.choices span{background:linear-gradient(150deg,#8cefff18,#0c3f6628);border:1px solid #b7f7ff96;box-shadow:inset 0 1px 0 #ffffff35,0 5px 18px #001b3c30;backdrop-filter:blur(3px);text-shadow:0 2px 5px #001c4f}
.choices label:hover span{background:#8ae4ff25}
.choices input:checked+span{background:linear-gradient(140deg,#78e6ff38,#4291d330);box-shadow:0 0 0 3px #abedff20,inset 0 1px 0 #fff6,0 4px 22px #84eaff35}
.choices small,.field small{color:#e3f6ff;text-shadow:0 2px 5px #001b42,0 2px 12px #001b42}
.field input,.field textarea{background:#012d4e54;border-color:#b2e8ff8f;backdrop-filter:blur(4px);box-shadow:inset 0 2px 8px #001c3d20;color:#fff;text-shadow:0 1px 5px #001b3d}
.field input::placeholder,.field textarea::placeholder{color:#d0eaf7}
.privacy{color:#d7effa;font-size:12px;text-shadow:0 2px 6px #001b42}
.feedback{padding:12px 15px;border-radius:12px;background:#00223c99;color:#ffe8d2}
footer{color:#dbf7ff;text-shadow:0 2px 6px #001b42}
.swimmer{filter:drop-shadow(0 10px 16px #00364c55);opacity:.9}
.swimmer-turtle{width:clamp(150px,22vw,280px);top:64%;right:auto;left:-320px;animation:turtle-swim 47s linear infinite;animation-delay:-13s;opacity:.88}
.swimmer-fish{width:clamp(65px,10vw,110px);top:42%;right:-160px;animation:fish-swim 32s linear infinite;animation-delay:-21s;opacity:.9}
@keyframes beckon{0%,100%{transform:translateY(-3px)}50%{transform:translateY(6px)}}
@keyframes turtle-swim{0%{transform:translateX(0) translateY(30px) rotate(-7deg)}50%{transform:translateX(calc(50vw + 320px)) translateY(-35px) rotate(3deg)}100%{transform:translateX(calc(100vw + 640px)) translateY(10px) rotate(-4deg)}}
@keyframes fish-swim{0%{transform:translateX(0) translateY(10px)}50%{transform:translateX(calc(-50vw - 160px)) translateY(-45px) rotate(5deg)}100%{transform:translateX(calc(-100vw - 320px)) translateY(20px)}}
@media(max-width:600px){.ocean{background-position:50% 45%}.hero{min-height:max(830px,100svh)}.panel{margin:0 auto;padding:55px 27px;max-width:100%}.panel h2{font-size:34px}.panel .eyebrow{font-size:9px;letter-spacing:1.8px}.panel>p{font-size:17px}.party{min-height:95svh;padding-top:85px;padding-bottom:60px}.details>div{padding:24px 0}.details strong{font-size:22px}.details p{font-size:21px}.host a{display:block;margin:5px 0 0}.rsvp{padding-top:75px;padding-bottom:45px}.choices span{padding-top:16px}.choices input:checked+span{padding-top:15px}.swimmer-turtle{width:175px;top:68%}.swimmer-fish{width:75px;top:33%}}
@media(prefers-reduced-motion:reduce){.ocean,.hero h1{transform:none;will-change:auto}.swimmer-turtle,.swimmer-fish{display:none}}
