:root{--navy:#102638;--blue:#385a6f;--sea:#6f8f98;--mist:#e8eee9;--sand:#eadbc5;--paper:#fbf7ef;--ink:#243844;--muted:rgba(36,56,68,.68);--line:rgba(36,56,68,.15);--serif:Georgia,"Times New Roman",serif;--sans:Inter,system-ui,-apple-system,Segoe UI,sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--paper)}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--serif);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body.locked{overflow:hidden}
a{color:inherit}button,input,select,textarea{font:inherit}img,video{display:block;max-width:100%}
.intro{position:fixed;inset:0;z-index:1000;background:var(--navy);overflow:hidden;cursor:pointer;transition:opacity .75s ease,visibility .75s ease}.intro video{width:100%;height:100%;object-fit:cover}.intro:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 45%,transparent 0 34%,rgba(16,38,56,.18) 58%,rgba(16,38,56,.68))}
.intro-tap{position:absolute;left:50%;bottom:max(30px,env(safe-area-inset-bottom));z-index:3;min-height:48px;border:1px solid rgba(255,255,255,.34);border-radius:999px;padding:0 22px;background:rgba(16,38,56,.58);box-shadow:0 18px 54px rgba(0,0,0,.28);color:white;font-family:var(--sans);font-size:.68rem;font-weight:900;letter-spacing:.16em;text-transform:uppercase;transform:translateX(-50%);white-space:nowrap;backdrop-filter:blur(14px);transition:opacity .3s ease}.intro-flash{position:absolute;left:50%;top:50%;z-index:4;width:18px;height:18px;border-radius:999px;background:#fff;opacity:0;box-shadow:0 0 80px 54px rgba(255,255,255,.72),0 0 180px 92px rgba(166,205,213,.42);transform:translate(-50%,-50%) scale(.1);pointer-events:none}.intro-flash.show{animation:flash 1.1s ease forwards}@keyframes flash{0%{opacity:0;transform:translate(-50%,-50%) scale(.1)}55%{opacity:1;transform:translate(-50%,-50%) scale(12)}100%{opacity:0;transform:translate(-50%,-50%) scale(28)}}.intro.hide{opacity:0;visibility:hidden;pointer-events:none}
.page{overflow:hidden;background:var(--paper)}.sound{position:fixed;right:16px;bottom:16px;z-index:70;width:54px;height:54px;border:1px solid rgba(255,255,255,.44);border-radius:999px;background:rgba(16,38,56,.82);box-shadow:0 16px 44px rgba(0,0,0,.26);color:white;font-family:var(--sans);font-weight:950;backdrop-filter:blur(14px)}
.hero{position:relative;min-height:100svh;display:grid;place-items:center;overflow:hidden;background:var(--navy);color:white}.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.9) brightness(.72)}.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(16,38,56,.34),rgba(16,38,56,.08) 42%,rgba(16,38,56,.52)),radial-gradient(circle at 50% 45%,rgba(255,255,255,.16),transparent 44%)}.gulls{position:absolute;z-index:2;opacity:.74;filter:drop-shadow(0 10px 22px rgba(0,0,0,.18))}.gulls-left{left:4%;top:12%;width:min(210px,34vw)}.gulls-right{right:5%;top:11%;width:min(190px,32vw)}
.hero-content{position:relative;z-index:3;width:min(700px,100%);padding:96px 18px 36px;text-align:center;text-shadow:0 12px 38px rgba(0,0,0,.34)}.overline,.kicker{margin:0;font-family:var(--sans);font-size:.68rem;font-weight:900;letter-spacing:.28em;text-transform:uppercase}.overline{color:rgba(255,255,255,.76)}.hero h1{display:grid;gap:5px;margin:20px 0;color:white;font-size:clamp(4.5rem,17vw,9rem);font-weight:500;line-height:.74;letter-spacing:.16em;text-transform:uppercase}.hero h1 small{font-size:.23em;line-height:1;letter-spacing:0;color:#dce9e8}.date{margin:0;color:rgba(255,255,255,.84);font-family:var(--sans);font-size:.9rem;font-weight:900;letter-spacing:.14em;text-transform:uppercase}.hero-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:34px}.hero-actions a,.map-actions a{min-height:44px;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.34);border-radius:999px;padding:0 18px;background:rgba(255,255,255,.9);color:var(--navy);font-family:var(--sans);font-size:.74rem;font-weight:950;text-decoration:none;box-shadow:0 14px 34px rgba(16,38,56,.18)}
.countdown{padding:70px 12px;background:linear-gradient(180deg,#123047,#385a6f);color:white;text-align:center}.countdown .kicker{color:rgba(255,255,255,.76)}.count-grid{width:min(840px,100%);display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:30px auto 0}.count-grid div{min-height:112px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.2);border-radius:20px;background:rgba(255,255,255,.08);box-shadow:0 18px 44px rgba(16,38,56,.18)}.count-grid strong{font-size:clamp(2rem,8vw,4rem);font-weight:500;line-height:.84}.count-grid span{font-family:var(--sans);font-size:.62rem;font-weight:900;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.74)}
.section{padding:clamp(76px,12vw,126px) 16px}.wrap{width:min(980px,100%);margin:0 auto;text-align:center}.split{display:grid;grid-template-columns:.8fr 1fr;gap:32px;align-items:center;text-align:left}.split.reverse{grid-template-columns:1fr 1fr}.kicker{color:#456a7c}h2{margin:10px auto 0;font-size:clamp(3rem,11vw,6.5rem);font-weight:500;line-height:.84;letter-spacing:-.055em;color:#29475a}.copy p:not(.kicker),.lead{color:var(--muted);font-size:1.08rem;line-height:1.78}.boat{width:100%;max-height:430px;object-fit:contain;filter:drop-shadow(0 18px 38px rgba(16,38,56,.14))}
.program{background:#edf2ee}.timeline{position:relative;display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-top:38px}.timeline:before{content:"";position:absolute;left:7%;right:7%;top:38px;height:1px;background:rgba(36,56,68,.18)}.timeline article{position:relative;display:grid;justify-items:center;gap:10px;padding-top:0}.timeline b{width:76px;height:76px;display:grid;place-items:center;border:1px solid var(--line);border-radius:999px;background:white;color:#29475a;font-family:var(--sans);font-size:.8rem;font-weight:950;box-shadow:0 14px 34px rgba(36,56,68,.08)}.timeline span{font-family:var(--sans);font-size:.72rem;font-weight:950;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);text-align:center}
.locations{background:var(--paper)}.map-card{position:relative;min-height:420px;border:1px solid var(--line);border-radius:34px;overflow:hidden;background:#dce6e3;box-shadow:0 24px 70px rgba(16,38,56,.1)}.map-art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.22}.map{position:absolute;inset:22px;border-radius:24px;overflow:hidden}.map-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:22px}.nautical-pin{display:grid;place-items:center;width:44px!important;height:44px!important;border-radius:999px;background:#29475a;color:white;box-shadow:0 14px 30px rgba(16,38,56,.28);font-size:1.2rem}
.dress{background:#f7f1e7}.shell,.coral,.pearl{width:150px;margin:0 auto 20px;filter:drop-shadow(0 16px 34px rgba(36,56,68,.12))}.palette{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:30px auto 0;width:min(720px,100%)}.palette span{min-height:92px;display:grid;align-content:end;border:1px solid var(--line);border-radius:22px;padding:13px;background:linear-gradient(180deg,var(--c),#fff);font-family:var(--sans);font-size:.66rem;font-weight:950;letter-spacing:.1em;text-transform:uppercase;color:#29475a}
.travel{background:#fbf7ef}.travel-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:34px}.travel-grid article{border:1px solid var(--line);border-radius:26px;padding:24px;background:white;text-align:left;box-shadow:0 18px 54px rgba(16,38,56,.07)}.travel-grid h3{margin:0 0 8px;font-size:1.6rem;color:#29475a}.travel-grid p{margin:0;color:var(--muted);line-height:1.6}
.faq{background:#edf2ee}.faq details{border-top:1px solid var(--line);text-align:left}.faq details:last-child{border-bottom:1px solid var(--line)}.faq summary{cursor:pointer;padding:18px 0;font-size:1.25rem;font-weight:600;color:#29475a}.faq details p{margin:0 0 18px;color:var(--muted)}
.rsvp{background:#fbf7ef}.form-wrap{width:min(720px,100%)}form{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:30px;text-align:left}label{display:grid;gap:7px}label span,.guest-row>span{font-family:var(--sans);font-size:.66rem;font-weight:900;letter-spacing:.13em;text-transform:uppercase;color:rgba(36,56,68,.62)}input,select,textarea{width:100%;min-height:50px;border:1px solid var(--line);border-radius:16px;padding:12px 14px;background:white;color:var(--ink);outline:none}textarea{min-height:96px;resize:vertical}.full,.submit,.notice{grid-column:1/-1}.guest-row{display:grid;gap:7px}.stepper{display:grid;grid-template-columns:48px 1fr 48px;gap:8px}.stepper button{border:1px solid var(--line);border-radius:16px;background:white;color:#29475a;font-family:var(--sans);font-size:1.25rem;font-weight:950}.stepper input{text-align:center;font-family:var(--sans);font-weight:900}.submit{min-height:52px;border:0;border-radius:999px;background:#29475a;color:white;font-family:var(--sans);font-weight:950;box-shadow:0 20px 60px rgba(16,38,56,.16)}.notice{min-height:22px;color:#29475a;text-align:center;font-family:var(--sans);font-weight:850}
.footer{padding:78px 18px 112px;background:var(--paper);text-align:center}.footer strong{display:block;color:#29475a;font-size:clamp(3rem,12vw,6rem);font-weight:500;line-height:.88}.footer span{display:block;margin-top:12px;font-family:var(--sans);font-size:.72rem;font-weight:900;letter-spacing:.22em;text-transform:uppercase;color:var(--muted)}
@media(max-width:800px){.split,.split.reverse,form,.travel-grid{grid-template-columns:1fr}.timeline{grid-template-columns:1fr}.timeline:before{display:none}.timeline article{display:grid;grid-template-columns:88px 1fr;justify-items:start;text-align:left}.palette{grid-template-columns:1fr 1fr}.map-actions{display:grid}.map-card{min-height:330px}}
@media(max-width:560px){.intro-tap{font-size:.62rem;padding:0 16px}.hero h1{font-size:clamp(3.2rem,15vw,5.2rem)}.section{padding:64px 14px}h2{font-size:clamp(2.9rem,15vw,4.8rem)}.count-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.count-grid div{min-height:78px;border-radius:14px}.count-grid strong{font-size:clamp(1.55rem,7vw,2.25rem)}.count-grid span{font-size:.49rem;letter-spacing:.08em}.sound{right:12px;bottom:12px;width:50px;height:50px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition:none!important;scroll-behavior:auto!important}}
