:root{
  --paper:#F6F3EC; --paper2:#EFEAE0; --white:#FCFBF7;
  --ink:#2E3E48; --navy:#17242E; --slate:#5C6E78;
  --line:rgba(23,36,46,.16);
  --sea:#3E6B7E; --seasoft:#8FB4C4; --bone:#E4DCC6;
  --dark:#5B7C99; --darkline:rgba(250,250,248,.42);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--paper);color:var(--ink);font-family:'Jost',sans-serif;font-weight:300;font-size:1.02rem;line-height:1.8;-webkit-font-smoothing:antialiased}
::selection{background:var(--sea);color:#fff}
img{display:block;width:100%;height:100%;object-fit:cover}
a{color:inherit;text-decoration:none;cursor:pointer}
h1,h2,h3{font-family:'Cormorant Garamond',serif;font-weight:500;color:var(--navy);line-height:1.16}
em{font-style:italic}
.wrap{max-width:1180px;margin:0 auto;padding:0 clamp(1.2rem,4vw,2.5rem)}
.narrow{max-width:760px;margin-left:auto;margin-right:auto}
.sec{padding:clamp(4rem,9vw,6.5rem) 0}
.tint{background:var(--paper2)}
.center{text-align:center}
.kick{font-family:'Jost';font-weight:600;font-size:.66rem;letter-spacing:.36em;text-transform:uppercase;color:var(--sea);margin-bottom:1.1rem}
.t{font-size:clamp(1.7rem,3.6vw,2.5rem)}
.lede{font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:400;font-size:clamp(1.12rem,2vw,1.32rem);color:var(--slate);margin-top:1.1rem}
.mt1{margin-top:1.2rem}.mt2{margin-top:2.4rem}.mt3{margin-top:3.6rem}
.rule{width:56px;height:1px;background:var(--sea);opacity:.65;margin:1.6rem auto}

/* ---------- dark accent sections ---------- */
.dark{background:var(--dark);color:#EFF4F6}
.dark h2,.dark h3{color:#FFFFFF}
.dark .kick{color:#F3EDDB}
.dark .lede{color:#E6EDF1}
.dark .rule{background:#F3EDDB}

/* ---------- nav ---------- */
header{position:fixed;top:0;left:0;right:0;z-index:50;background:rgba(246,243,236,.82);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line);transition:transform .4s ease,background .4s ease,border-color .4s ease}
header.hide{transform:translateY(-100%)}
header.solid{background:rgba(91,124,153,.95);border-bottom-color:rgba(255,255,255,.3)}
header.solid nav.menu a{color:#EDF3F6}
header.solid nav.menu a:hover{color:#FFFFFF}
header.solid nav.menu a.on{color:#FFFFFF;border-bottom-color:#F3EDDB}
header.solid nav.menu a.res{color:#F3EDDB}
nav.menu{display:flex;justify-content:center;align-items:center;gap:clamp(1rem,3vw,2.4rem);height:54px;overflow-x:auto;padding:0 1rem}
nav.menu a{font-weight:500;font-size:.64rem;letter-spacing:.3em;text-transform:uppercase;color:var(--slate);white-space:nowrap;padding:.4rem 0;border-bottom:1px solid transparent;transition:.3s}
nav.menu a:hover{color:var(--navy)}
nav.menu a.on{color:var(--navy);border-bottom-color:var(--navy)}
nav.menu a.res{color:var(--sea);font-weight:600}
nav.menu a.res:hover{color:var(--navy)}

/* ---------- pages ---------- */
/* pages are separate documents now; .page is a plain wrapper */
.page{display:block}

/* ---------- masthead + film ---------- */
.mast{padding:calc(54px + clamp(2.8rem,6vw,4.5rem)) 0 clamp(2rem,4vw,3rem);text-align:center}
.mast .hkick{font-weight:500;font-size:.66rem;letter-spacing:.42em;text-transform:uppercase;color:var(--slate)}
.mast .crest{width:clamp(100px,12vw,128px);margin:1.7rem auto 0;color:var(--navy)}
.mast h1{font-size:clamp(2.5rem,7vw,4.4rem);font-weight:500;letter-spacing:.26em;margin:1.2rem 0 0 .26em}
.mast .hlede{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:clamp(1.15rem,2.3vw,1.45rem);color:var(--slate);margin-top:1.2rem}
.btns{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2.2rem}
.btn{display:inline-block;font-family:'Jost';font-weight:500;font-size:.66rem;letter-spacing:.32em;text-transform:uppercase;padding:1rem 2.1rem;border:1px solid rgba(23,36,46,.45);color:var(--navy);transition:.35s;background:transparent}
.btn:hover{border-color:var(--sea);color:var(--sea)}
.btn.solid{background:#5B7C99;border-color:#5B7C99;color:#FFFFFF}
.btn.solid:hover{background:var(--sea);border-color:var(--sea);color:#fff}
.dark .btn{border-color:rgba(237,242,241,.5);color:#EDF2F1}
.dark .btn:hover{border-color:#FFFFFF;color:#FFFFFF}
.dark .btn.solid{background:var(--bone);border-color:var(--bone);color:#33536C}
.dark .btn.solid:hover{background:#FFFFFF;border-color:#FFFFFF;color:#33536C}

.hero{position:relative;min-height:100svh;display:grid;place-items:center;overflow:hidden;background:var(--navy) center/cover no-repeat;will-change:opacity}
.hero .ly{position:absolute;inset:-4%;background-size:cover;background-position:center;opacity:0;animation:kb 21s linear infinite}
.hero .ly.l2{animation-delay:7s}.hero .ly.l3{animation-delay:14s}
.hero .scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(16,28,37,.55) 0%,rgba(16,28,37,.24) 45%,rgba(16,28,37,.72) 100%)}
.hero .hc{position:relative;text-align:center;padding:6.5rem 1.4rem 5rem}
.hero .hkick{font-weight:500;font-size:.66rem;letter-spacing:.42em;text-transform:uppercase;color:rgba(237,242,241,.85)}
.hero .crest{width:clamp(100px,12vw,128px);margin:1.7rem auto 0;color:var(--bone);display:block}
.hero h1{font-size:clamp(2.5rem,7vw,4.6rem);letter-spacing:.26em;margin:1.2rem 0 0 .26em;color:#F4F6F5}
.hero .hlede{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:clamp(1.15rem,2.3vw,1.5rem);color:var(--bone);margin-top:1.4rem}
.hero .btn{border-color:rgba(244,246,245,.6);color:#F4F6F5}
.hero .btn:hover{border-color:var(--seasoft);color:var(--seasoft)}
.hero .btn.solid{background:var(--bone);border-color:var(--bone);color:#33536C}
.hero .btn.solid:hover{background:var(--seasoft);border-color:var(--seasoft);color:#0D161D}
.hero .cue{position:absolute;bottom:26px;left:50%;width:1px;height:52px;background:linear-gradient(var(--bone),transparent);animation:cue 2.4s ease infinite}
@keyframes cue{0%{transform:scaleY(0);transform-origin:top}45%{transform:scaleY(1);transform-origin:top}55%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
@media (prefers-reduced-motion: reduce){.hero .ly{animation:none}.hero .ly.l1{opacity:1}.hero .cue{animation:none}}
.film{position:relative;overflow:hidden;aspect-ratio:21/9;background:var(--navy) center/cover no-repeat}
@media(max-width:700px){.film{aspect-ratio:16/10}}
.film .ly{position:absolute;inset:-4%;background-size:cover;background-position:center;opacity:0;animation:kb 21s linear infinite}
.film .ly.l2{animation-delay:7s}.film .ly.l3{animation-delay:14s}
@keyframes kb{0%{opacity:0;transform:scale(1)}6%{opacity:1}33.3%{opacity:1}43%{opacity:0;transform:scale(1.12)}100%{opacity:0;transform:scale(1.12)}}
.film .vig{position:absolute;inset:0;background:linear-gradient(180deg,rgba(16,28,37,.16),transparent 30%,rgba(16,28,37,.2))}
@media (prefers-reduced-motion: reduce){.film .ly{animation:none}.film .ly.l1{opacity:1}}

.film.filmfull{aspect-ratio:auto;height:clamp(440px,80svh,920px)}
.filmtag{position:absolute;bottom:16px;right:20px;font-size:.58rem;letter-spacing:.22em;text-transform:uppercase;color:rgba(246,243,236,.88);text-shadow:0 1px 10px rgba(13,22,29,.6)}
@media(max-width:700px){.film.filmfull{height:clamp(320px,60svh,560px)}.filmtag{right:14px;bottom:12px}}

/* ---------- imagery ---------- */
.imgf{border:1px solid var(--line);padding:10px;background:var(--white)}
.imgf .ratio{aspect-ratio:4/3;overflow:hidden}
.imgf .ratio.r32{aspect-ratio:3/2}.imgf .ratio.r45{aspect-ratio:4/5}.imgf .ratio.r219{aspect-ratio:21/9}
.cap{font-size:.62rem;letter-spacing:.26em;text-transform:uppercase;color:var(--slate);padding:.8rem .2rem .1rem;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.cap i{font-family:'Cormorant Garamond',serif;font-style:italic;text-transform:none;letter-spacing:.02em;font-size:.92rem;color:var(--sea)}
.dark .imgf{border-color:var(--darkline);background:#4C6B86}
.dark .cap{color:#E0E9EE}
.dark .cap i{color:#F0F6F8}
.ph{border:1px dashed rgba(62,107,126,.5);background:var(--paper2);display:grid;place-items:center;text-align:center;padding:1.5rem}
.ph b{display:block;font-weight:600;font-size:.62rem;letter-spacing:.3em;text-transform:uppercase;color:var(--navy)}
.ph i{font-family:'Cormorant Garamond',serif;font-style:italic;color:var(--slate);font-size:.95rem;margin-top:.5rem;display:block}
.dark .ph{border-color:rgba(255,255,255,.5);background:#4C6B86}
.dark .ph b{color:#F3EDDB}
.dark .ph i{color:#E6EDF1}

/* ---------- layouts ---------- */
.g3{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}
.g2{display:grid;grid-template-columns:repeat(2,1fr);gap:1.2rem}
.g4{display:grid;grid-template-columns:repeat(4,1fr);gap:1.1rem}
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4rem);align-items:center}
.gal{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem}
.gal .w2{grid-column:span 2}
@media(max-width:900px){.split{grid-template-columns:1fr}.g3{grid-template-columns:1fr}.g4{grid-template-columns:1fr 1fr}.gal{grid-template-columns:1fr 1fr}.gal .w2{grid-column:span 2}}
@media(max-width:600px){.g2{grid-template-columns:1fr}.g4{grid-template-columns:1fr}.gal{grid-template-columns:1fr}.gal .w2{grid-column:span 1}}

.mcard h3{font-size:1.45rem;margin-top:1.1rem}
.mcard p{margin-top:.5rem;font-size:.98rem}
.tlink{display:inline-block;margin-top:.9rem;font-weight:500;font-size:.62rem;letter-spacing:.3em;text-transform:uppercase;color:var(--sea);border-bottom:1px solid rgba(62,107,126,.4);padding-bottom:.25rem;transition:.3s}
.tlink:hover{color:var(--navy);border-color:var(--navy)}
.dark .tlink{color:#EFF6F9;border-color:rgba(239,246,249,.5)}
.dark .tlink:hover{color:#FFFFFF;border-color:#FFFFFF}

.stats{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.stats div{text-align:center;padding:1.8rem .6rem;border-left:1px solid var(--line)}
.stats div:first-child{border-left:0}
@media(max-width:700px){.stats{grid-template-columns:repeat(2,1fr)}.stats div:nth-child(odd){border-left:0}.stats div:nth-child(n+3){border-top:1px solid var(--line)}}
.stats b{display:block;font-family:'Cormorant Garamond',serif;font-weight:400;font-size:2.6rem;color:var(--sea);line-height:1.1;font-feature-settings:"onum"}
.stats span{display:block;margin-top:.45rem;font-size:.62rem;letter-spacing:.3em;text-transform:uppercase;color:var(--slate)}

.list2{display:grid;grid-template-columns:1fr 1fr;gap:0 2.4rem;margin-top:1.6rem}
.list2 div{border-bottom:1px solid var(--line);padding:.7rem 0;font-size:.95rem}
@media(max-width:600px){.list2{grid-template-columns:1fr}}

.q{padding-top:0}
.q p{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:1.18rem;color:var(--navy);line-height:1.55}
.q p::before{content:"\201C";color:var(--sea);margin-right:.15rem}
.q span{display:block;margin-top:.9rem;font-size:.62rem;letter-spacing:.28em;text-transform:uppercase;color:var(--slate)}

.row{display:flex;justify-content:space-between;gap:1.5rem;border-bottom:1px solid var(--line);padding:.72rem 0;font-size:.96rem}
.row span:last-child{color:var(--sea);font-size:.78rem;letter-spacing:.14em;white-space:nowrap;align-self:center}

.tl{position:relative;padding-left:1.7rem;display:flex;flex-direction:column;justify-content:space-between;gap:1.5rem}
.tl::before{content:"";position:absolute;left:0;top:.4rem;bottom:.4rem;width:1px;background:var(--line);transform:scaleY(0);transform-origin:top;transition:transform 1.8s ease .15s}
.tl.on::before{transform:scaleY(1)}
.tl div{position:relative}
.tl div::before{content:"";position:absolute;left:calc(-1.7rem - 3px);top:.55rem;width:7px;height:7px;border-radius:50%;background:var(--sea);transition:transform .35s ease,box-shadow .35s ease}
.tl div::after{content:"";position:absolute;inset:-.55rem -.9rem;background:rgba(62,107,126,0);transition:background .35s ease;z-index:-1}
.tl div:hover::before{transform:scale(1.6)}
.tl div:hover::after{background:rgba(62,107,126,.07)}
.tl div:hover b{color:var(--sea)}
.tl b{font-family:'Cormorant Garamond',serif;font-weight:600;font-size:1.2rem;color:var(--navy);transition:color .35s ease}
.tl p{font-size:.94rem;margin-top:.15rem}
.tl.rv div{opacity:0;transform:translateY(14px);transition:opacity .7s ease,transform .7s ease}
.tl.rv.on div{opacity:1;transform:none}
.tl.rv.on div:nth-child(1){transition-delay:.2s}
.tl.rv.on div:nth-child(2){transition-delay:.42s}
.tl.rv.on div:nth-child(3){transition-delay:.64s}
.tl.rv.on div:nth-child(4){transition-delay:.86s}
.tl.rv.on div:nth-child(5){transition-delay:1.08s}

.amen{display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:0 2.2rem}
.amen div{border-top:1px solid var(--line);padding:1.1rem .1rem;position:relative}
.amen b{display:block;font-weight:500;font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;color:var(--navy)}
.amen span{font-size:.9rem;color:var(--slate)}
.dark .amen div{border-top-color:var(--darkline)}
.dark .amen b{color:#F3EDDB}
.dark .amen span{color:#E0E9EE}
.amen b{transition:color .3s ease}
.amen div::after{content:"";position:absolute;inset:-.5rem -.8rem;background:rgba(62,107,126,0);transition:background .3s ease;z-index:-1}
.amen div:hover::after{background:rgba(62,107,126,.07)}
.amen div:hover b{color:var(--sea)}
.aico{transition:transform .35s ease}
.amen div:hover .aico{transform:translateY(-3px)}
.dark .amen div:hover::after{background:rgba(255,255,255,.14)}
.dark .amen div:hover b{color:#FFFFFF}

.faq{display:grid;gap:1.6rem}
.faq b{font-family:'Cormorant Garamond',serif;font-weight:600;font-size:1.28rem;color:var(--navy)}
.faq p{font-size:.97rem;margin-top:.3rem}

.card{background:var(--white);border:1px solid var(--line);padding:2rem}
.tag{display:inline-block;font-weight:600;font-size:.6rem;letter-spacing:.3em;text-transform:uppercase;color:var(--sea);margin-bottom:.9rem}
.card h3{font-size:1.5rem}
.card p{margin-top:.6rem;font-size:.97rem}

.band{position:relative;padding:clamp(5rem,11vw,8rem) 0;background-size:cover;background-position:center}
.band .scrim{position:absolute;inset:0;background:rgba(84,115,142,.84)}
.band .wrap{position:relative}

/* form */
.field{margin-bottom:1.15rem}
.field label{display:block;font-weight:500;font-size:.62rem;letter-spacing:.3em;text-transform:uppercase;color:var(--slate);margin-bottom:.45rem}
.field input,.field textarea{width:100%;background:var(--white);border:1px solid var(--line);color:var(--navy);font-family:'Jost';font-weight:300;font-size:.98rem;padding:.85rem 1rem;transition:.3s}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--sea)}
.field textarea{min-height:130px;resize:vertical}
.note{display:none;margin-top:1rem;font-family:'Cormorant Garamond',serif;font-style:italic;color:var(--sea)}
.note.on{display:block}

.seas{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:0 2.2rem}
.seas div{border-top:1px solid var(--line);padding:1.2rem .1rem;position:relative}
.seas div::before{content:"";position:absolute;top:-1px;left:0;width:44px;height:2px;background:var(--sc,var(--sea));transition:width .4s ease}
.seas div:hover::before{width:76px}
.seas div::after{content:"";position:absolute;inset:-.7rem;background:transparent;transition:background .35s ease;z-index:-1}
.seas div:hover::after{background:var(--scw,rgba(62,107,126,.07))}
.seas div:hover b{color:var(--sc,var(--sea))}
.s-su{--sc:#4FA0B5;--scw:rgba(79,160,181,.09)}
.s-fa{--sc:#A98F52;--scw:rgba(169,143,82,.10)}
.s-wi{--sc:#45688C;--scw:rgba(69,104,140,.09)}
.s-sp{--sc:#7E9478;--scw:rgba(126,148,120,.10)}
.sglyph{width:22px;height:22px;color:var(--sc,var(--sea));display:block;margin-bottom:.55rem}
.seas .rv:nth-child(2){transition-delay:.12s}
.seas .rv:nth-child(3){transition-delay:.24s}
.seas .rv:nth-child(4){transition-delay:.36s}
.seas b{display:block;font-family:'Cormorant Garamond',serif;font-weight:600;font-size:1.35rem;color:var(--navy);transition:color .35s ease}
.seas i{display:block;font-style:normal;font-weight:600;font-size:.6rem;letter-spacing:.28em;text-transform:uppercase;color:var(--sc,var(--sea));margin:.2rem 0 .55rem}
.seas p{font-size:.93rem}
.join{display:flex;gap:.8rem;flex-wrap:wrap;justify-content:center;margin-top:1.6rem}
.join input{flex:1 1 260px;max-width:340px;background:var(--white);border:1px solid var(--line);color:var(--navy);font-family:'Jost';font-weight:300;font-size:.95rem;padding:.9rem 1rem}
.join input:focus{outline:none;border-color:var(--sea)}

.slider{position:relative}
.sarrows{display:flex;gap:.6rem;justify-content:flex-end;margin-bottom:1.1rem}
.sarrow{width:44px;height:44px;border:1px solid var(--darkline);color:var(--bone);background:transparent;display:grid;place-items:center;cursor:pointer;transition:.3s;font-size:1.05rem;font-family:'Jost'}
.sarrow:hover{border-color:var(--seasoft);color:var(--seasoft)}
.strack{display:flex;gap:1.1rem;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding-bottom:.4rem}
.strack::-webkit-scrollbar{display:none}
.slide{flex:0 0 clamp(240px,26vw,330px);scroll-snap-align:start}
@media(max-width:700px){.slide{flex:0 0 74vw}}

.wave{display:block;width:36px;height:12px;color:var(--sea);margin-bottom:.9rem}
.vframe{border:1px solid var(--line);padding:7px;background:var(--white)}
.vinner{border:1px solid var(--line);padding:clamp(1.8rem,4.5vw,3.2rem)}
.nums{display:grid;grid-template-columns:1fr 1fr;gap:2.4rem 3.2rem;max-width:1020px;margin-left:auto;margin-right:auto}
.nums b{display:block;font-family:'Cormorant Garamond',serif;font-weight:500;font-size:2.1rem;color:var(--sea);line-height:1}
.nums h3{font-size:1.4rem;margin-top:.45rem}
.nums p{font-size:.95rem;margin-top:.45rem}
.nums div{position:relative}
.nums div::after{content:"";position:absolute;inset:-1rem;background:rgba(62,107,126,0);transition:background .35s ease;z-index:-1}
.nums div:hover::after{background:rgba(62,107,126,.07)}
.nums div:hover b{color:var(--navy)}
.nums b{transition:color .35s ease}
.nums .rv:nth-child(2){transition-delay:.12s}
.nums .rv:nth-child(3){transition-delay:.24s}
.nums .rv:nth-child(4){transition-delay:.36s}
@media(max-width:700px){.nums{grid-template-columns:1fr}}

.qgrid .rv:nth-child(2){transition-delay:.12s}
.qgrid .rv:nth-child(3){transition-delay:.24s}
.qgrid .vframe{background:var(--dark);border-color:rgba(228,220,198,.32);display:flex}
.qgrid .vinner{border-color:rgba(228,220,198,.32);flex:1;display:flex;flex-direction:column}
.qgrid .q{display:flex;flex-direction:column;flex:1}
.qgrid .stars{margin-top:auto;padding-top:1.1rem}
.vrf{display:flex;align-items:center;gap:.5rem;margin-top:1rem;padding-top:.9rem;border-top:1px solid rgba(228,220,198,.22);font-weight:500;font-size:.58rem;letter-spacing:.24em;text-transform:uppercase;color:#8FA3AD}
.vrf svg{width:15px;height:15px;color:var(--bone);flex:0 0 auto}
.qgrid .q p{color:#F4F6F5}
.qgrid .q p::before{color:var(--seasoft)}
.qgrid .q span{color:#AEC2CB}
.qgrid .stars{color:#F4F6F5}
.qgrid .wave{color:var(--bone)}

.bsplit{display:grid;grid-template-columns:1fr 1fr;align-items:stretch}
.bsplit .bimg{position:relative;min-height:540px;overflow:hidden}
.bsplit .bimg>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.bfill{position:absolute;inset:0;background-size:cover;background-position:center}
.btag{position:absolute;bottom:14px;left:18px;font-size:.58rem;letter-spacing:.24em;text-transform:uppercase;color:rgba(246,243,236,.92);text-shadow:0 1px 8px rgba(13,22,29,.55);z-index:1}
.bsplit .btxt{display:grid;align-items:center;padding:clamp(3.5rem,7vw,6rem) clamp(1.4rem,5vw,5.5rem)}
.bsplit .btxt-in{max-width:600px;width:100%;margin:0 auto}
@media(max-width:900px){.bsplit{grid-template-columns:1fr}.bsplit .bimg{min-height:0;aspect-ratio:4/3}}

.stars{display:block;width:96px;height:16px;color:var(--navy);margin:1rem 0 0}
.q .stars + span{margin-top:.55rem}

.aico{width:24px;height:24px;color:var(--sea);display:block;margin:0 0 .6rem}

.marq{overflow:hidden;width:100%}
.mtrack{display:flex;width:max-content;animation:marq 60s linear infinite;will-change:transform}
.mset{display:flex;gap:1.1rem;padding-right:1.1rem}
@keyframes marq{from{transform:translateX(-50%)}to{transform:translateX(0)}}
@media (prefers-reduced-motion: reduce){.mtrack{animation:none}}

.script{font-family:'Mrs Saint Delafield',cursive;font-weight:400;font-size:clamp(2.8rem,6vw,4.4rem);color:var(--navy);line-height:1.05;letter-spacing:.01em}

.nstack{position:relative;max-width:860px;margin:2.4rem auto clamp(2.5rem,5vw,4rem)}
.nback{position:absolute;top:20px;left:-16px;right:16px;bottom:-18px;background:var(--paper2);border:1px solid var(--line);transform:rotate(-.5deg)}
.sheet{position:relative;background:linear-gradient(160deg,#FFFFFF 0%,#FBF9F3 68%,#F6F3EA 100%);border:0;box-shadow:0 1px 2px rgba(23,36,46,.10),0 10px 24px rgba(23,36,46,.13),0 36px 74px -18px rgba(23,36,46,.24);padding:clamp(2.4rem,4.5vw,3.2rem) clamp(1.8rem,5vw,3.8rem) clamp(1.8rem,3.5vw,2.4rem);text-align:center}
.sheet::before{content:"";position:absolute;inset:0;background:url(/assets/paper-grain.png) repeat;opacity:.85;mix-blend-mode:multiply;pointer-events:none}
.gsketch{display:block;width:min(360px,80%);height:auto;margin:0 auto 1.1rem}
.cardno{margin:0 0 1rem;font-family:'Cormorant Garamond',serif;font-weight:600;font-size:.74rem;letter-spacing:.34em;color:var(--slate)}
.pclip{position:absolute;top:-24px;left:15%;width:24px;height:62px;color:var(--slate);transform:rotate(-7deg)}
.wavec{display:block;margin:.7rem auto 0;width:34px;height:12px;color:var(--sea)}
.qrot{position:relative;min-height:8.5rem;margin-top:1.3rem}
@media(max-width:640px){.qrot{min-height:12rem}}
.qslide{position:absolute;inset:0;opacity:0;transition:opacity .8s ease;display:flex;flex-direction:column;align-items:center}
.qslide.on{opacity:1}
.qslide p{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:clamp(1.3rem,2.4vw,1.62rem);color:var(--navy);line-height:1.6;max-width:30em}
.qslide p::before{content:"\201C";color:var(--sea);margin-right:.15rem}
.qslide .stars{margin:2rem auto .8rem}
.qwho{display:block;font-weight:500;font-size:.62rem;letter-spacing:.28em;text-transform:uppercase;color:var(--slate)}
.sheet .vrf{justify-content:center;border-top:0;margin-top:.8rem;padding-top:0;color:var(--slate)}
.sheet .vrf svg{color:var(--sea)}
.qnav{display:flex;align-items:center;justify-content:center;gap:2.4rem;margin-top:1.1rem}
.qmeta-rot{position:relative;flex:0 1 340px;min-height:6.2rem}
.qmeta{position:absolute;inset:0;opacity:0;transition:opacity .8s ease;display:flex;flex-direction:column;align-items:center}
.qmeta.on{opacity:1}
.qmeta .stars{margin:.2rem auto .55rem}
.qmeta .vrf{margin-top:.6rem}
.qarrow{background:none;border:0;cursor:pointer;font-family:'Jost';font-size:1.1rem;color:var(--slate);padding:.3rem .6rem;transition:color .3s}
.qarrow:hover{color:var(--navy)}
.qdots{display:flex;gap:.55rem}
.qdots span{width:6px;height:6px;border-radius:50%;border:1px solid var(--navy);opacity:.5;transition:.3s}
.qdots span.on{background:var(--navy);opacity:1}

.acc details{border-top:1px solid var(--line)}
.acc details:last-child{border-bottom:1px solid var(--line)}
.acc summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.15rem .2rem;font-family:'Cormorant Garamond',serif;font-weight:600;font-size:1.28rem;color:var(--navy);transition:color .3s ease}
.acc summary::-webkit-details-marker{display:none}
.acc summary:hover{color:var(--sea)}
.acc .chev{flex:0 0 auto;width:15px;height:15px;color:var(--sea);transition:transform .35s ease}
.acc details[open] .chev{transform:rotate(180deg)}
.acc details p{padding:0 .2rem 1.25rem;font-size:.97rem;max-width:62ch}

.bsplit .bimg{opacity:0;transform:scale(.94);transition:opacity 2.1s cubic-bezier(.25,.6,.25,1),transform 2.4s cubic-bezier(.22,.65,.2,1)}
.bsplit .bimg.inview{opacity:1;transform:scale(1)}
.bsplit .bimg>img,.bsplit .bimg>.bfill{transform:scale(1.07);transition:transform 2.8s cubic-bezier(.22,.65,.2,1)}
.bsplit .bimg.inview>img,.bsplit .bimg.inview>.bfill{transform:scale(1)}

.sheet>.stars{margin:1.1rem auto .2rem}
.qslide .qwho{margin-top:1.1rem}
.qnav .vrf{margin:0;padding:0;border:0}

.skico{display:block;width:34px;height:34px;color:#F0EAD8;margin:0 0 .65rem;transition:transform .35s ease}
.amen div:hover .skico{transform:translateY(-3px)}

/* reveal */
.rv{opacity:0;transform:translateY(16px);transition:opacity .8s ease,transform .8s ease}
.rv.on{opacity:1;transform:none}
@media (prefers-reduced-motion: reduce){.rv{opacity:1;transform:none;transition:none}.tl.rv div{opacity:1;transform:none;transition:none}.tl::before{transform:scaleY(1);transition:none}.bsplit .bimg{opacity:1;transform:none;transition:none}.bsplit .bimg>img,.bsplit .bimg>.bfill{transform:none;transition:none}}

footer{background:var(--dark);border-top:1px solid var(--darkline);padding:4rem 0 2.5rem;text-align:center;color:#E6EDF1}
footer .crest{width:74px;margin:0 auto;color:var(--bone);opacity:.9}
footer .wordmark{font-family:'Cormorant Garamond',serif;font-size:1.4rem;letter-spacing:.3em;color:#FFFFFF;margin:1.2rem 0 0 .3em}
footer .fsub{font-size:.6rem;letter-spacing:.32em;text-transform:uppercase;color:#E0E9EE;margin-top:.5rem}
.fnav{display:flex;justify-content:center;gap:1.8rem;flex-wrap:wrap;margin-top:1.8rem}
.fnav a{font-size:.62rem;letter-spacing:.28em;text-transform:uppercase;color:#E0E9EE;transition:.3s}
.fnav a:hover{color:#FFFFFF}
.fline{max-width:620px;margin:1.8rem auto 0;font-size:.85rem;color:#DCE5EA}
.copy{margin-top:1.6rem;font-size:.72rem;letter-spacing:.14em;color:rgba(240,246,248,.6)}

/* ---------- multi-page additions (not in the mockup) ---------- */
/* Real anchors need the pointer + focus affordances the tab spans got from JS. */
nav.menu a,.tlink,.btn{cursor:pointer}
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--sea);outline-offset:3px}
header.solid a:focus-visible{outline-color:#F3EDDB}
.skip{position:absolute;left:-9999px;top:0;z-index:100;background:var(--white);color:var(--navy);padding:.8rem 1.2rem;font-size:.66rem;letter-spacing:.3em;text-transform:uppercase}
.skip:focus{left:.6rem;top:.6rem}
/* Hero <video>, when media/hero-drone.mp4 is present, sits under the scrim. */
.hero .hv{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.hero .hv+.ly,.hero .hv~.ly{display:none}
.hero .scrim,.hero .hc,.hero .cue,.hero .filmtag{z-index:1}
.hero .hc,.hero .cue,.hero .filmtag{position:relative}
.hero .cue{position:absolute}.hero .filmtag{position:absolute}
/* <picture> generates no box, so every mockup img rule applies unchanged. */
picture{display:contents}
/* Form states for the real (Cloudflare Function) endpoint. */
.note.err{color:#A5503F}
form[data-busy] button[type=submit]{opacity:.55;pointer-events:none}

/* Seasons: the brief's hard rule is <=2 lines per description at every
   breakpoint. The mockup's minmax(210px,1fr) lets columns squeeze to ~209px
   anywhere below 1180px, which pushes three of the four to three lines.
   Raising the floor to 250px in that band drops a column instead of squeezing
   one. Above 1180px the .wrap is wide enough for the designed 4-across at
   ~249px, so the mockup's own rule takes back over untouched. */
@media (min-width:480px) and (max-width:1179px){
  .seas{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}
}

/* On a 320px phone the Reserve page scrolls sideways: a .row's min-content
   (a white-space:nowrap value plus the 1.5rem gap) sits inside 2rem of card
   padding, which together exceed the viewport, and a grid item won't shrink
   below min-content. Tighten only below 400px; nothing above it changes. */
@media (max-width:400px){
  .split>*,.g2>*,.g3>*{min-width:0}
  .card{padding:1.6rem}
  .row{gap:.9rem}
  .row span:last-child{white-space:normal;text-align:right}
}
