/* Slack Water v3 (light, restrained) — site.css. Sections start with "/* ── name". See CODEMAP.md. */

/* ── fonts: Gambetta (Fontshare, FFL), self-hosted */
@font-face{font-family:'Gambetta';src:url(../fonts/Gambetta-Variable.woff2) format('woff2');font-weight:300 700;font-display:swap}
@font-face{font-family:'Gambetta';font-style:italic;src:url(../fonts/Gambetta-VariableItalic.woff2) format('woff2');font-weight:300 700;font-display:swap}

/* ── tokens */
:root{
  --ink:#FAF9F6; --ink-2:#FFFFFF; --ink-3:#EFEDE7; --deep:#12282B; --teal:#2E6463; --silt:#776d5c; --silt-l:#6f6656;
  --haze:#16292B; --paint:#EEF0EB; --buoy:#D04A22; --buoy-t:#D04A22; --gold:#9C6418;
  --line:rgba(22,41,43,.1); --line-2:rgba(22,41,43,.22); --mute:rgba(22,41,43,.72);
  --fd:'Gambetta',Georgia,serif;
  --fb:'Hanken Grotesk',ui-sans-serif,system-ui,sans-serif;
  --fm:'Spline Sans Mono',ui-monospace,monospace;
  --pad:clamp(20px,5vw,72px);
  --ease:cubic-bezier(.22,.8,.24,1);
  color-scheme:light;
}

/* ── base */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font:400 17px/1.6 var(--fb);color:var(--haze);background:var(--ink);-webkit-font-smoothing:antialiased;overflow-x:clip}
img,video{display:block;max-width:100%;height:auto}
a{color:inherit}
p{margin:0 0 1em;text-wrap:pretty}
h1,h2,h3{margin:0;font-weight:300}
button{font:inherit;color:inherit}
.mono{font-family:var(--fm);font-size:11px;letter-spacing:.08em;text-transform:uppercase}
.kick{font:500 11px/1.4 var(--fm);letter-spacing:.1em;text-transform:uppercase;color:var(--gold);margin-bottom:18px;display:flex;align-items:center;gap:8px}
.wrap{max-width:1320px;margin:0 auto;padding-inline:var(--pad)}
section{position:relative;padding-block:clamp(72px,8vw,120px)}
.skip{position:absolute;left:-999px;top:8px;z-index:99;background:var(--haze);color:var(--ink);padding:8px 12px}
.skip:focus{left:8px}
:focus-visible{outline:2px solid var(--buoy);outline-offset:3px}

/* ── buttons */
.btn{display:inline-flex;align-items:center;gap:.6em;padding:14px 24px;border:1px solid var(--line-2);border-radius:999px;font:600 14px/1 var(--fb);letter-spacing:.01em;text-decoration:none;background:transparent;transition:background .25s,border-color .25s,transform .25s var(--ease),color .25s}
.btn:hover{border-color:var(--haze);transform:translateY(-2px)}
.btn--solid{background:var(--haze);color:var(--ink);border-color:var(--haze)}
.btn--solid:hover{background:var(--deep)}

/* ── headings: text surfaces from behind a level line */
.sf{position:relative;display:block;font:400 clamp(38px,4.2vw,64px)/1.05 var(--fd);letter-spacing:-.01em;margin-bottom:.45em;color:var(--haze)}
.sf .sf__clip{display:block;clip-path:inset(-.3em -.3em 0 -.3em);padding-bottom:.15em;margin-bottom:-.09em}
.sf .sf__in{display:block;transform:translateY(105%);transition:transform 1.1s var(--ease) .1s}
.sf.in .sf__in{transform:none}
.rv{opacity:0;transform:translateY(24px);transition:opacity .9s var(--ease),transform .9s var(--ease);transition-delay:calc(var(--d,0)*90ms)}
.rv.in{opacity:1;transform:none}

/* ── nav */
.nav{position:fixed;inset:0 0 auto;z-index:50;display:flex;align-items:center;gap:28px;padding:18px var(--pad);color:#071315;transition:color .4s}
.nav::before{content:"";position:absolute;inset:0;background:var(--ink);border-bottom:1px solid var(--line);opacity:0;transition:opacity .4s;pointer-events:none}
.nav--dark{color:var(--haze)}
.nav--dark::before{opacity:1}
.nav>*{position:relative}
.mark{display:inline-grid;justify-items:center;text-decoration:none;font:600 15px/1 var(--fd);letter-spacing:.22em;text-transform:uppercase;padding-left:.3em}
.mark__line{width:calc(100% + 26px);height:1px;background:currentColor;margin:4px 0 3px;opacity:.7}
.mark__b{opacity:.55;transform:scaleY(-1)}
.nav__links{display:flex;gap:26px;margin-left:24px}
.nav__links a{font:500 14px var(--fb);text-decoration:none;opacity:.85;position:relative}
.nav__links a::after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease)}
.nav__links a:hover{opacity:1}
.nav__links a:hover::after{transform:none}
.nav__live{margin:0 0 0 auto;display:flex;align-items:center;gap:8px}
.dot{width:7px;height:7px;border-radius:50%;background:var(--silt);flex:none}
.dot.is-open{background:var(--buoy);box-shadow:0 0 0 4px rgba(226,87,43,.2)}
.nav__call{font:600 14px var(--fb);text-decoration:none;display:flex;gap:8px;align-items:baseline;padding:10px 16px;border:1px solid currentColor;border-radius:999px}
.nav__call .mono{font-size:11px}

/* ── hero: video estuary, headline on the horizon */
.hero{height:100svh;min-height:600px;padding:0;overflow:hidden;--wl:58.5%;--gap:2.2vh;color:var(--deep)}
/* sharp 2400px still for sky, trees and island; the (soft, 720p) video only fills the water below the horizon */
.hero__img{position:absolute;inset:0;background:url(../img/estuary-dawn.webp) 50% 50%/cover;}
.hero__img video{width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.6s ease;
  -webkit-mask-image:linear-gradient(transparent calc(var(--wl) + 2px),#000 calc(var(--wl) + 9%));mask-image:linear-gradient(transparent calc(var(--wl) + 2px),#000 calc(var(--wl) + 9%))}
.hero__img video.playing{opacity:1}
.hero__sky{position:absolute;left:0;right:0;top:0;height:var(--wl);display:flex;align-items:flex-end;justify-content:center;padding:0 var(--pad) var(--gap)}
.hero__h{font:400 clamp(46px,6vw,112px)/1 var(--fd);letter-spacing:-.015em;text-align:center;margin:0}
.hero__h .l{display:block}
.hero__h em{font-style:italic;font-weight:400}
.hero__h .l{opacity:0;transform:translateY(.25em);transition:opacity 1.4s var(--ease),transform 1.4s var(--ease)}
.hero__h .l+.l{transition-delay:.18s}
.is-ready .hero__h .l{opacity:1;transform:none}
.hero__foot{position:absolute;left:0;right:0;bottom:max(5.5vh,30px);display:grid;justify-items:center;gap:18px;padding:0 var(--pad);color:var(--paint);text-align:center;opacity:0;transform:translateY(12px);transition:opacity 1.2s ease .9s,transform 1.2s var(--ease) .9s;z-index:2}
.is-ready .hero__foot{opacity:1;transform:none}
.hero__meta{margin:0;font-size:15px;font-weight:500;color:var(--paint);text-shadow:0 1px 10px rgba(6,14,15,.55)}
.hero .btn{border-color:rgba(238,240,235,.55);color:var(--paint)}
.hero .btn--solid{background:var(--paint);color:var(--deep);border-color:var(--paint)}
.hero__cta{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}

/* ── serve: photo beside what we make (static) */
.hero{will-change:transform}
.serve{z-index:1;background:var(--ink);border-radius:24px 24px 0 0;box-shadow:0 -18px 40px rgba(18,40,43,.12)}
.serve__pin{display:grid;grid-template-columns:1.15fr 1fr;gap:clamp(40px,6vw,100px);align-items:center}
.serve__img img{width:100%;aspect-ratio:5/4;object-fit:cover;object-position:27% 50%;border-radius:6px}
.serve__h{font:400 clamp(34px,3.2vw,52px)/1.08 var(--fd);letter-spacing:-.01em;margin-bottom:32px}
.serve__list{list-style:none;margin:0 0 34px;padding:0}
.serve__list li{display:grid;gap:4px;padding:16px 0;border-top:1px solid var(--line-2)}
.serve__list b{font:500 22px/1.1 var(--fd)}
.serve__list span{color:var(--mute);font-size:16px;line-height:1.5}

/* ── menu: typeset card */
.menu__head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:20px 40px}
.menu__head .sf{margin-bottom:0}
.menu__switch{display:inline-flex;padding:4px;border:1px solid var(--line-2);border-radius:999px}
.menu__switch button{background:none;border:0;padding:11px 22px;border-radius:999px;font:600 15px var(--fb);cursor:pointer;color:var(--mute);transition:background .3s,color .3s}
.menu__switch button[aria-selected=true]{background:var(--haze);color:var(--ink)}
.menu__diet{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.menu__diet .mono{color:var(--silt-l);margin-right:6px}
.menu__diet button{border:1px solid var(--line-2);background:none;border-radius:999px;padding:7px 14px;font:500 13px var(--fb);cursor:pointer;transition:background .2s,color .2s}
.menu__diet button[aria-pressed=true]{background:var(--gold);color:var(--ink);border-color:var(--gold)}
.menu__card{display:grid;grid-template-columns:.8fr 2fr;gap:clamp(30px,5vw,80px);align-items:start;animation:cardIn .5s var(--ease)}
.menu__card[hidden]{display:none}
@keyframes cardIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.menu__ph{margin:0;position:sticky;top:110px}
.menu__ph img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:6px}
.menu__cols{columns:2;column-gap:clamp(30px,4vw,64px)}
.grp{break-inside:avoid;margin-bottom:54px}
.grp h3{font:400 30px/1.1 var(--fd);display:flex;align-items:baseline;gap:14px;margin-bottom:8px}
.grp h3 small{font:italic 400 18px/1 var(--fd);color:var(--gold)}
.grp__note{font-size:14px;color:var(--mute);margin-bottom:14px}
.grp__bell{display:block;margin-top:6px;color:var(--gold)}
.items{list-style:none;margin:0;padding:0}
.item{display:grid;grid-template-columns:auto 1fr auto;gap:2px 10px;align-items:baseline;padding:11px 0;transition:opacity .3s}
.item b{font:600 16px/1.3 var(--fb)}
.item i{border-bottom:1px dotted var(--line-2);transform:translateY(-4px)}
.item .pr{font:500 15px var(--fm);letter-spacing:.02em}
.item p{grid-column:1/-1;margin:0;font-size:14.5px;line-height:1.45;color:var(--mute)}
.item .tags{font:500 11px var(--fm);letter-spacing:.06em;color:var(--gold);margin-left:6px}
.item.is-dim{opacity:.25}
.menu__notes{max-width:72ch;margin-top:20px;font-size:14px;color:var(--mute)}
.menu__notes .mono{display:block;margin:10px 0 4px;color:var(--silt-l)}

/* ── menu preview */
.menu{padding-top:0}
.mfeat{position:relative;border-radius:18px;overflow:hidden;min-height:clamp(420px,42vw,560px);display:flex;align-items:center}
.mfeat__bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:60% 55%}
.mfeat::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(255,255,255,.96) 0,rgba(255,255,255,.88) 34%,rgba(255,255,255,0) 64%)}
.mfeat__copy{position:relative;z-index:2;max-width:480px;padding:clamp(28px,5vw,64px)}
.mfeat__copy .sf{font-size:clamp(34px,3.4vw,52px)}
.mfeat__copy>p:not(.kick){color:var(--mute);font-size:18px;margin-bottom:28px}
.mcards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:16px}
.mcard{border-radius:16px;padding:22px 22px 18px;background:var(--ink-2);border:1px solid var(--line);display:flex;flex-direction:column}
.mcard--dark{background:var(--teal);border-color:transparent;color:var(--paint);--line:rgba(238,240,235,.2)}
.mcard.mcard--dark button{color:var(--paint)}
.mcard header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}
.mcard h3{font:400 24px/1.1 var(--fd)}
.mcard header img{width:56px;height:56px;border-radius:50%;object-fit:cover;flex:none}
.mcard ul{list-style:none;margin:0 0 16px;padding:0}
.mcard li{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid var(--line);font-size:15px}
.mcard li b{font:500 14px var(--fm)}
.mcard button{margin-top:auto;align-self:flex-start;background:none;border:0;padding:6px 0;font:600 14px var(--fb);color:var(--gold);cursor:pointer}
.mcard button:hover{text-decoration:underline}
/* full menu sheet */
.fullmenu{border:0;padding:0;margin:auto;width:min(1100px,calc(100vw - 40px));max-height:calc(100dvh - 60px);background:var(--ink-2);color:var(--haze);border-radius:18px;box-shadow:0 30px 80px rgba(18,40,43,.25);display:none;flex-direction:column;overflow:hidden}
.fullmenu[open]{display:flex;animation:sheetIn .4s var(--ease)}
@keyframes sheetIn{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
.fullmenu::backdrop{background:rgba(6,14,15,.72)}
.fm__bar{display:flex;align-items:center;gap:20px;padding:20px 28px;border-bottom:1px solid var(--line)}
.fm__bar h2{font:400 30px/1 var(--fd);margin-right:auto}
.fm__close{width:44px;height:44px;border-radius:50%;border:1px solid var(--line-2);background:none;font-size:24px;line-height:1;cursor:pointer}
.fm__body{overflow-y:auto;padding:24px 28px 36px;overscroll-behavior:contain}
.fm__body .menu__diet{margin:0 0 30px;padding:0;border:0}
.menu__cols[hidden]{display:none}

/* ── paddle: contained photo + copy */
.paddle__grid{display:grid;grid-template-columns:1fr 1.15fr;gap:clamp(40px,7vw,120px);align-items:center}
.paddle__bg{order:2;width:100%;aspect-ratio:5/4;object-fit:cover;border-radius:6px}
.paddle__in>p:not(.kick){max-width:520px;color:var(--mute);font-size:18px}
.paddle__facts{display:flex;flex-wrap:wrap;gap:8px 24px;color:var(--haze)!important;font-size:11px!important;margin:24px 0 30px}
.paddle__facts span::before{content:"";display:inline-block;width:12px;height:1px;background:var(--gold);vertical-align:middle;margin-right:8px}

/* ── esky */
.esky__in{display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(40px,7vw,120px);align-items:center}
.esky__ph{margin:0}
.esky__ph img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:6px}
.esky__copy>p:not(.kick){color:var(--mute);font-size:18px;max-width:520px}
.esky__list{margin:26px 0 30px}
.esky__small{font-size:14px!important;margin-top:18px}

/* ── collapsibles (hours, esky list, community) */
details>summary{list-style:none;cursor:pointer}
details>summary::-webkit-details-marker{display:none}
.hours>summary,.esky__list>summary,.story__det>summary{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px 0;border-top:1px solid var(--line-2);font-weight:500}
.hours>summary::after,.esky__list>summary::after,.story__det>summary::after{content:"+";font:300 26px/1 var(--fb);color:var(--gold);transition:transform .3s var(--ease)}
details[open]>summary::after{transform:rotate(45deg)}
.hours__more{margin-left:auto;font:500 11px var(--fm);letter-spacing:.08em;text-transform:uppercase;color:var(--silt-l)}
.hours>summary b{color:var(--gold);font-weight:600;margin-right:10px}
.esky__list .items{margin:0 0 26px!important}
.story__det .story__more{margin-top:0}

/* ── reviews */
.revs__head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:20px 40px;margin-bottom:50px}
.revs__head .sf{margin-bottom:0}
.revs__score{display:flex;align-items:center;gap:16px;margin:0}
.revs__score>b{font:300 clamp(56px,5vw,80px)/.9 var(--fd)}
.revs__score>span{display:grid;gap:6px}
.stars{color:var(--gold);letter-spacing:.15em;font-size:15px}
.revs__score .mono{color:var(--silt-l)}
.revs__row{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(24px,4vw,60px)}
.rev{margin:0;padding-top:22px;border-top:1px solid var(--line-2)}
.rev p{font:400 clamp(19px,1.6vw,23px)/1.35 var(--fd);margin-bottom:18px}
.rev p::before{content:"“";color:var(--gold)}
.rev p::after{content:"”";color:var(--gold)}
.rev footer{font:500 11px var(--fm);letter-spacing:.08em;text-transform:uppercase;color:var(--silt-l)}

/* ── story */
.story__in{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(40px,7vw,120px);align-items:center}
.story__ph{margin:0}
.story__ph img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:6px}
.story__copy>p:not(.kick):not(.chalk){color:var(--mute);font-size:18px;max-width:560px}
.story__bell{color:var(--gold)}
.story__det{margin-top:34px}
.story__more{list-style:none;margin:0;padding:0;display:grid;gap:0}
.story__more li{padding:14px 0;border-top:1px solid var(--line);font-size:15px;color:var(--mute);display:grid;grid-template-columns:170px 1fr;gap:16px}
.story__more b{font:500 18px/1.2 var(--fd);color:var(--haze)}

/* ── visit */
.visit__in{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(40px,7vw,120px);align-items:start}
.visit__addr{font:400 clamp(24px,2.2vw,32px)/1.2 var(--fd);color:var(--haze);margin-bottom:22px}
.visit__where>p:not(.visit__addr){color:var(--mute);max-width:520px}
.visit__cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
.visit__hours{padding-top:12px}
.visit__hours .kick{color:var(--haze)}
.week{margin:0}
.week>div{display:grid;grid-template-columns:1fr auto;gap:12px;padding:13px 0;border-top:1px solid var(--line);position:relative}
.week dt{font-weight:500}
.week dd{margin:0;text-align:right;font:500 14px var(--fm);display:grid}
.week dd small{font:400 12px var(--fb);color:var(--silt-l)}
.week .off dd{color:var(--silt)}
.week .is-today{color:var(--gold)}
.week .is-today dt::after{content:" · today";font:500 11px var(--fm);letter-spacing:.08em;text-transform:uppercase}
.visit__small{margin-top:18px;font-size:14px;color:var(--silt-l)}

/* ── footer */
.foot{position:relative;padding:64px 0 40px;border-top:1px solid var(--line)}
.foot>*{position:relative}
.foot__grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px}
.foot__grid .mono{color:var(--silt-l);margin-bottom:12px}
.foot__grid p{font-size:15px;color:var(--mute);line-height:1.7}
.foot__grid a{text-decoration:none}
.foot__grid a:hover{color:var(--haze);text-decoration:underline}
.mark--foot{color:var(--haze);font-size:20px;margin-bottom:18px}
.foot__brand p{font:italic 400 20px/1.3 var(--fd);color:var(--haze)}
.foot__fine{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:50px;padding-top:22px;border-top:1px solid var(--line);font-size:12px;color:var(--silt-l)}
.foot__fine p{margin:0;max-width:75ch}

/* ── dock (phones) */
.dock{display:none}

/* ── pitch dialog */
.pitch{border:0;padding:0;background:var(--ink-2);color:var(--haze);max-width:min(520px,calc(100vw - 32px));border-radius:8px;box-shadow:0 30px 80px rgba(18,40,43,.25)}
.pitch::backdrop{background:rgba(6,14,15,.7)}
.pitch form{padding:38px 36px 34px;border-top:3px solid var(--buoy)}
.pitch__mark{color:var(--silt-l);margin-bottom:18px}
.pitch h2{font:400 40px/1.05 var(--fd);margin-bottom:20px}
.pitch h2 em{color:var(--buoy-t)}
.pitch p{color:var(--mute)}
.pitch strong{color:var(--haze)}
.pitch .btn{margin-top:10px;cursor:pointer}

/* ── hover: small, physical touches (pointer devices only; transform/opacity/shadow) */
.mcard{position:relative;transition:transform .45s var(--ease),box-shadow .45s var(--ease),border-color .3s}
.mcard header img{transition:transform .6s var(--ease)}
.mcard button::after{content:"";position:absolute;inset:0;border-radius:inherit}
.mcard .arr,.btn .arr{display:inline-block;transition:transform .35s var(--ease)}
.mcard li{transition:padding-left .35s var(--ease)}
.mfeat__bg,.serve__img img,.esky__ph img,.story__ph img{transition:transform 1.2s var(--ease)}
.serve__img,.esky__ph,.story__ph{overflow:hidden;border-radius:6px}
.serve__list b{display:inline-block;transition:transform .4s var(--ease),color .3s}
.rev{transition:border-color .4s}
.rev p::before,.rev p::after{transition:color .4s}
@media (hover:hover){
  .mcard:hover{transform:translateY(-6px);box-shadow:0 18px 40px -18px rgba(18,40,43,.35);border-color:var(--line-2)}
  .mcard:hover header img{transform:scale(1.08) rotate(-6deg)}
  .mcard:hover .arr{transform:translateX(4px)}
  .mcard button:hover{text-decoration:none}
  .mcard li:hover{padding-left:4px}
  .mfeat:hover .mfeat__bg{transform:scale(1.03)}
  .serve__img:hover img,.esky__ph:hover img,.story__ph:hover img{transform:scale(1.035)}
  .serve__list li:hover b{transform:translateX(6px);color:var(--teal)}
  .rev:hover{border-color:var(--gold)}
  .item b{transition:color .25s}
  .item:hover b{color:var(--teal)}
}

/* ── tablet / phone (keep after every block it overrides) */
@media (max-width:1100px){
  .nav__links{display:none}
  .menu__card{grid-template-columns:1fr}
  .menu__ph{position:static}
  .menu__ph img{aspect-ratio:16/9}
  .revs__row{grid-template-columns:1fr}
}
@media (max-width:760px){
  :root{--pad:20px}
  body{font-size:16px;padding-bottom:64px}
  section{padding-block:96px}
  .nav{padding:14px 16px;gap:12px}
  .nav__call{display:none}
  .nav__live{font-size:11px}
  .mark{font-size:13px}
  .hero{min-height:560px}
  .hero__h{font-size:10.5vw}
  .hero__foot{bottom:calc(84px + env(safe-area-inset-bottom))}
  .hero__meta{font-size:13px}
  .hero__cta .btn{padding:12px 18px}
  .serve__pin,.paddle__grid{grid-template-columns:1fr;gap:28px}
  .paddle__bg{order:0}
  .serve__img img,.paddle__bg{aspect-ratio:4/3.2}
  .mcards{grid-auto-flow:column;grid-template-columns:none;grid-auto-columns:78%;overflow-x:auto;scroll-snap-type:x mandatory;margin-inline:-20px;padding:0 20px 6px;scrollbar-width:none}
  .mcards::-webkit-scrollbar,.revs__row::-webkit-scrollbar{display:none}
  .mcard{scroll-snap-align:start}
  .mfeat{min-height:520px;align-items:flex-end}
  .mfeat::before{background:linear-gradient(rgba(255,255,255,0) 25%,rgba(255,255,255,.95) 60%)}
  .fullmenu{width:100vw;max-width:100vw;max-height:100dvh;height:100dvh;border-radius:0;margin:0}
  .fm__bar{padding:14px 16px;flex-wrap:wrap;gap:12px}
  .fm__bar h2{font-size:26px}
  .fm__bar .menu__switch{order:3;width:100%}
  .fm__body{padding:18px 16px 40px}
  .revs__row{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:86%;overflow-x:auto;scroll-snap-type:x mandatory;margin-inline:-20px;padding:0 20px;scrollbar-width:none}
  .rev{scroll-snap-align:start}
  .serve__h{font-size:32px;margin-bottom:16px}
  .serve__list{margin-bottom:22px}
  .serve__list li{padding:10px 0}
  .serve__list b{font-size:19px}
  .serve__list span{font-size:14px}
  .menu__cols{columns:1}
  .menu__switch{width:100%}
  .menu__switch button{flex:1}
  .grp h3{font-size:26px}
  .esky__in,.story__in,.visit__in{grid-template-columns:1fr}
  .esky__ph img,.story__ph img{aspect-ratio:4/3.2}
  .story__more li{grid-template-columns:1fr;gap:4px}
  .foot__grid{grid-template-columns:1fr 1fr;gap:30px}
  .foot__brand{grid-column:1/-1}
  .dock{display:grid;grid-template-columns:repeat(3,1fr);position:fixed;left:0;right:0;bottom:0;z-index:60;background:var(--ink-2);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}
  .dock a{padding:16px 0;text-align:center;font:600 14px var(--fb);text-decoration:none;border-left:1px solid var(--line)}
  .dock a:first-child{border-left:0;color:var(--buoy)}
  .foot{padding-bottom:100px}
}

/* ── reduced motion */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .sf .sf__in,.hero__h .l,.rv{transform:none!important;opacity:1!important}
}
