/* Le Bistro du Lac — feuille de style
   Mise en page : une seule page qui défile, grandes photos, typographie classique (Bodoni), filets dorés. */
:root{
  --bg:#0e1311;
  --bg-2:#131a17;
  --bg-3:#1a2420;
  --ivory:#eee6d6;
  --stone:#a3aba3;
  --gold:#c6a467;
  --gold-soft:rgba(198,164,103,.35);
  --line:rgba(238,230,214,.12);
  --bordeaux:#35131a;
  --serif:"Bodoni Moda", "Didot", "Bodoni 72", Georgia, serif;
  --sans:"Jost", "Futura", "Century Gothic", system-ui, sans-serif;
  --ease:cubic-bezier(.22,.8,.2,1);
  --nav:80px;
  color-scheme:dark;
}
*{box-sizing:border-box}
html,body{margin:0}
html{scroll-behavior:smooth;scroll-padding-top:var(--nav)}
:root{padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
body{background:var(--bg);color:var(--ivory);font-family:var(--sans);font-weight:400;font-size:16px;line-height:1.7;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;display:block}
[hidden]{display:none!important}
a{color:inherit}
h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.05;margin:0;text-wrap:balance;letter-spacing:-.01em}
p{margin:0}
em{font-style:italic;color:var(--gold)}
::selection{background:var(--gold);color:#14100a}
:focus-visible{outline:1px solid var(--gold);outline-offset:4px}
.wrap{max-width:1280px;margin:0 auto;padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px))}
@media(min-width:800px){.wrap{padding-left:max(48px,env(safe-area-inset-left,0px));padding-right:max(48px,env(safe-area-inset-right,0px))}}
.caps{font-size:.7rem;letter-spacing:.32em;text-transform:uppercase;color:var(--stone)}
.caps.gold{color:var(--gold)}
.kicker{font-family:var(--serif);font-style:italic;color:var(--gold);font-size:clamp(1.2rem,2vw,1.6rem)}
body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:200;opacity:.05;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.skip{position:absolute;left:-9999px;top:0;z-index:300;background:var(--gold);color:#14100a;padding:12px 18px}
.skip:focus{left:12px;top:12px}

/* Boutons */
.btn{position:relative;overflow:hidden;isolation:isolate;display:inline-flex;align-items:center;justify-content:center;gap:12px;padding:16px 30px;font-family:var(--sans);font-size:.72rem;letter-spacing:.28em;text-transform:uppercase;text-decoration:none;border:1px solid var(--gold-soft);color:var(--ivory);background:transparent;cursor:pointer;transition:color .45s var(--ease),border-color .45s}
.btn::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--gold);transform:scaleX(0);transform-origin:right;transition:transform .55s var(--ease)}
.btn:hover{color:#14100a;border-color:var(--gold)}
.btn:hover::before{transform:scaleX(1);transform-origin:left}
.btn.solid{background:var(--gold);color:#14100a;border-color:var(--gold)}
.btn.solid::before{background:var(--ivory)}
.btn.solid:hover{border-color:var(--ivory)}
.link{font-size:.7rem;letter-spacing:.28em;text-transform:uppercase;text-decoration:none;color:var(--gold);display:inline-flex;gap:10px;align-items:center;padding-bottom:6px;background:linear-gradient(var(--gold),var(--gold)) 0 100%/0 1px no-repeat;transition:background-size .5s var(--ease)}
.link:hover{background-size:100% 1px}

/* Lever de rideau */
.curtain{position:fixed;inset:0;z-index:500;background:var(--bg);display:grid;place-items:center;transition:transform 1s var(--ease) .1s}
.curtain img{width:min(300px,60vw);opacity:0;transform:scale(.96);animation:logoIn 1.1s var(--ease) forwards}
.curtain i{position:absolute;left:50%;bottom:calc(50% - 110px);width:160px;height:1px;background:var(--gold);transform:translateX(-50%) scaleX(0);animation:line 1s var(--ease) .3s forwards}
.curtain.up{transform:translateY(-100%)}
@keyframes logoIn{to{opacity:1;transform:none}}
@keyframes line{to{transform:translateX(-50%) scaleX(1)}}

/* Barre de progression + navigation */
.progress{position:fixed;left:0;top:0;height:2px;width:100%;background:var(--gold);transform-origin:0 50%;transform:scaleX(0);z-index:90}
header.nav{position:fixed;left:0;right:0;top:0;z-index:80;padding-top:env(safe-area-inset-top,0px);transition:background .5s,border-color .5s,backdrop-filter .5s;border-bottom:1px solid transparent}
header.nav.solid{background:rgba(14,19,17,.86);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-color:var(--line)}
header.nav .wrap{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:20px;height:var(--nav)}
header.nav nav{display:flex;gap:30px;align-items:center}
header.nav nav.r{justify-content:flex-end}
header.nav nav a:not(.btn){font-size:.68rem;letter-spacing:.26em;text-transform:uppercase;text-decoration:none;color:rgba(238,230,214,.75);padding-block:6px;background:linear-gradient(var(--gold),var(--gold)) 50% 100%/0 1px no-repeat;transition:color .3s,background-size .45s var(--ease)}
header.nav nav a:not(.btn):hover,header.nav nav a.on{color:var(--ivory);background-size:100% 1px}
header.nav .btn{padding:12px 20px;font-size:.64rem}
.logo{display:block;text-decoration:none}
.logo img{height:58px;width:auto;max-width:none;transition:height .4s var(--ease)}
header.nav.solid .logo img{height:48px}
.burger{display:none;background:none;border:0;color:var(--ivory);cursor:pointer;padding:10px;justify-self:end}
.burger span{display:block;width:26px;height:1px;background:currentColor;margin:7px 0;transition:transform .4s var(--ease)}
@media(max-width:1000px){
  :root{--nav:68px}
  header.nav .wrap{grid-template-columns:auto 1fr}
  header.nav nav{display:none}
  .burger{display:block}
  .logo img,header.nav.solid .logo img{height:42px}
}
.drawer{position:fixed;inset:0;z-index:95;background:var(--bg);overflow-y:auto;padding-top:calc(env(safe-area-inset-top,0px) + 18px);padding-bottom:calc(env(safe-area-inset-bottom,0px) + 30px);clip-path:inset(0 0 100% 0);transition:clip-path .7s var(--ease);visibility:hidden}
.drawer.open{clip-path:inset(0);visibility:visible}
.drawer .wrap{display:flex;flex-direction:column}
.drawer .x{align-self:flex-end;background:none;border:0;color:var(--stone);font:inherit;font-size:.68rem;letter-spacing:.3em;text-transform:uppercase;cursor:pointer;padding:10px 0;margin-bottom:24px}
.drawer a.big{font-family:var(--serif);font-size:2.5rem;text-decoration:none;padding:10px 0;border-bottom:1px solid var(--line);opacity:0;transform:translateY(16px);transition:opacity .5s,transform .6s var(--ease)}
.drawer.open a.big{opacity:1;transform:none}
.drawer.open a.big:nth-child(3){transition-delay:.05s}.drawer.open a.big:nth-child(4){transition-delay:.1s}.drawer.open a.big:nth-child(5){transition-delay:.15s}.drawer.open a.big:nth-child(6){transition-delay:.2s}.drawer.open a.big:nth-child(7){transition-delay:.25s}
.drawer .btn{margin-top:30px}
.drawer .info{margin-top:28px;color:var(--stone);font-size:.92rem;display:grid;gap:4px}

/* Photos */
.photo{position:relative;overflow:hidden;background:var(--bg-3)}
.photo img{width:100%;height:118%;object-fit:cover;position:absolute;left:0;top:-9%;will-change:transform}
.photo.arch{border-radius:999px 999px 0 0}
.photo::after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 0 1px rgba(198,164,103,.16);border-radius:inherit;pointer-events:none}

/* Animations au défilement (actives seulement si JS) */
.js [data-r]{opacity:0;transform:translateY(34px);transition:opacity 1.1s var(--ease),transform 1.1s var(--ease)}
.js [data-r].in{opacity:1;transform:none}
.js [data-clip]{clip-path:inset(100% 0 0 0);transition:clip-path 1.4s var(--ease)}
.js [data-clip].arch{clip-path:inset(100% 0 0 0 round 999px 999px 0 0)}
.js [data-clip].in{clip-path:inset(0 0 0 0)}
.js [data-clip].arch.in{clip-path:inset(0 0 0 0 round 999px 999px 0 0)}
.js [data-clip] img{transform:scale(1.25);transition:transform 1.8s var(--ease)}
.js [data-clip].in img{transform:scale(1)}
.words .w{opacity:.16;transition:opacity .3s}
.words .w.on{opacity:1}

/* Héros */
.hero{position:relative;height:100svh;min-height:600px;max-height:1100px;display:grid;align-items:end;overflow:hidden}
.hero .bg{position:absolute;inset:0}
.hero .bg img{width:100%;height:100%;object-fit:cover;animation:kenburns 26s ease-out both}
.hero .bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,19,17,.55) 0%,rgba(14,19,17,.2) 38%,rgba(14,19,17,.75) 78%,var(--bg) 100%)}
@keyframes kenburns{from{transform:scale(1.18)}to{transform:scale(1)}}
.hero .content{position:relative;z-index:2;text-align:center;padding-bottom:clamp(70px,12vh,130px)}
.hero h1{font-size:clamp(3.2rem,9vw,8rem);line-height:.95;margin-top:14px;text-shadow:0 2px 30px rgba(0,0,0,.35)}
.hero h1 .ln{display:block;overflow:hidden;padding-bottom:.08em}
.hero h1 .ln > span{display:inline-block}
.js .hero h1 .ln > span{transform:translateY(105%);transition:transform 1.3s var(--ease)}
.js .hero.go h1 .ln > span{transform:none}
.js .hero.go h1 .ln:nth-child(2) > span{transition-delay:.12s}
.js .hero .fade{opacity:0;transform:translateY(16px);transition:opacity 1s var(--ease) .5s,transform 1s var(--ease) .5s}
.js .hero.go .fade{opacity:1;transform:none}
.hero .ctas{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:38px}
.scroll-cue{position:absolute;left:50%;bottom:22px;z-index:2;width:1px;height:46px;background:linear-gradient(var(--gold),transparent);transform-origin:top;animation:cue 2.4s var(--ease) infinite}
@keyframes cue{0%{transform:scaleY(0)}50%{transform:scaleY(1)}100%{transform:scaleY(1);opacity:0}}

/* Sections */
.sec{padding-block:clamp(90px,12vw,160px)}
.head{display:grid;gap:16px;justify-items:center;text-align:center;margin-bottom:clamp(44px,6vw,72px)}
.head h2{font-size:clamp(2.6rem,5.4vw,4.4rem)}
.head p{color:var(--stone);max-width:52ch}
.orn{display:flex;align-items:center;justify-content:center;gap:16px;color:var(--gold)}
.orn::before,.orn::after{content:"";height:1px;width:min(90px,18vw);background:linear-gradient(90deg,transparent,var(--gold))}
.orn::after{transform:scaleX(-1)}
.orn svg{width:24px;height:24px}

.statement{text-align:center}
.statement .words{font-family:var(--serif);font-size:clamp(1.8rem,4vw,3.3rem);line-height:1.25;max-width:24ch;margin:30px auto 0}

/* Trois moments */
.moments{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(20px,3vw,44px)}
.moment{display:grid;gap:18px;text-align:center;justify-items:center;text-decoration:none}
.moment .photo{width:100%;aspect-ratio:3/4}
.moment h3{font-size:2.2rem}
.moment p{color:var(--stone);font-size:.95rem;max-width:30ch}
.moment:nth-child(2){margin-top:70px}
.moment .photo img{transition:transform 1.2s var(--ease)}
@media(max-width:860px){.moments{grid-template-columns:1fr;max-width:440px;margin:0 auto;gap:60px}.moment:nth-child(2){margin-top:0}}

/* Ardoise */
.slate{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(36px,6vw,96px);align-items:center}
@media(max-width:900px){.slate{grid-template-columns:1fr}}
.slate h2{font-size:clamp(2.6rem,5.4vw,4.4rem);margin-top:16px}
.slate .txt p{color:var(--stone);margin-top:20px;max-width:42ch}
.slate .txt .btn{margin-top:32px}
.board{border:1px solid var(--gold-soft);padding:10px;background:var(--bg-2)}
.board > div{border:1px solid var(--line);padding:clamp(28px,4vw,52px);text-align:center}
.board h3{font-size:1.5rem;letter-spacing:.18em;text-transform:uppercase}
.board .when{margin:10px 0 30px}
.board ul{list-style:none;padding:0;margin:0;display:grid;gap:18px;text-align:left}
.board .d{color:var(--stone);font-family:var(--serif);font-style:italic;font-size:1rem}
.board .note{margin-top:28px;color:var(--stone);font-size:.78rem;letter-spacing:.04em}
.row{display:flex;align-items:baseline;gap:10px}
.row .n{font-family:var(--serif);font-size:1.3rem;line-height:1.2}
.row .dots{flex:1;border-bottom:1px dotted rgba(238,230,214,.28);transform:translateY(-5px);min-width:16px}
.row .p{font-family:var(--serif);font-size:1.15rem;color:var(--gold);white-space:nowrap;font-variant-numeric:lining-nums tabular-nums}

/* Menu */
.tabs{display:flex;justify-content:center;gap:clamp(18px,4vw,52px);border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none;position:relative}
.tabs::-webkit-scrollbar{display:none}
.tabs button{background:none;border:0;color:var(--stone);font-family:var(--serif);font-size:clamp(1.3rem,2.4vw,1.8rem);cursor:pointer;padding:6px 0 16px;white-space:nowrap;transition:color .3s}
.tabs button[aria-selected="true"]{color:var(--ivory);font-style:italic}
.tabs .bar{position:absolute;bottom:-1px;height:1px;background:var(--gold);transition:left .5s var(--ease),width .5s var(--ease)}
.chips{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:28px auto 0;max-width:900px}
.chips button{background:none;border:1px solid var(--line);color:var(--stone);font-family:var(--sans);font-size:.62rem;letter-spacing:.22em;text-transform:uppercase;padding:10px 14px;cursor:pointer;transition:all .3s}
.chips button:hover{color:var(--ivory);border-color:var(--gold-soft)}
.chips button[aria-pressed="true"]{color:#14100a;background:var(--gold);border-color:var(--gold)}
.mpanel{margin-top:48px;min-height:300px}
.mpanel .gh{text-align:center;margin-bottom:36px;display:grid;gap:8px;justify-items:center}
.mpanel .gh h3{font-size:clamp(2rem,3.6vw,2.8rem)}
.mpanel .gh p{color:var(--stone);font-family:var(--serif);font-style:italic;font-size:1.1rem;max-width:50ch}
.mpanel .gh p b{color:var(--gold);font-weight:400}
.items{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 64px;max-width:1080px;margin:0 auto}
.items.one{grid-template-columns:1fr;max-width:760px}
@media(max-width:760px){.items{grid-template-columns:1fr}}
.item{min-width:0}
.item .d{color:var(--stone);font-size:.9rem;margin-top:3px;max-width:52ch}
.mfade{animation:mfade .6s var(--ease)}
@keyframes mfade{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.tblwrap{overflow-x:auto;max-width:900px;margin:0 auto}
table{border-collapse:collapse;width:100%;min-width:460px}
th,td{padding:14px 12px;border-bottom:1px solid var(--line);text-align:left}
th{font-size:.6rem;letter-spacing:.26em;text-transform:uppercase;color:var(--stone);font-weight:400}
td{font-family:var(--serif);font-size:1.2rem}
td.num,th.num{text-align:right}
td.num{color:var(--gold);font-variant-numeric:lining-nums tabular-nums;font-size:1.05rem}
.kids{max-width:560px;margin:34px auto 0;border:1px solid var(--gold-soft);padding:24px;text-align:center;display:grid;gap:6px}
.kids b{font-family:var(--serif);font-weight:400;font-size:2.6rem;color:var(--gold);line-height:1}
.fine{color:var(--stone);font-size:.78rem;text-align:center;max-width:70ch;margin:44px auto 0}

/* Galerie horizontale épinglée */
.hscroll{position:relative}
.hscroll .sticky{position:sticky;top:0;height:100svh;overflow:hidden;display:flex;flex-direction:column;justify-content:center;gap:40px}
.hscroll .track{display:flex;gap:24px;padding-inline:max(20px,6vw);will-change:transform;width:max-content}
.hscroll .photo{height:min(58vh,520px);flex-shrink:0}
.hscroll .photo.w{aspect-ratio:3/2}.hscroll .photo.t{aspect-ratio:3/4}
.hscroll .photo img{height:100%;top:0;transition:transform 1.2s var(--ease)}
.hscroll .photo:hover img{transform:scale(1.05)}
.hscroll .cap{position:absolute;left:16px;bottom:14px;font-size:.6rem;letter-spacing:.28em;text-transform:uppercase;color:var(--ivory);text-shadow:0 1px 8px rgba(0,0,0,.6)}
.hscroll .htitle{padding-inline:max(20px,6vw);display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap}
.hscroll .htitle h2{font-size:clamp(2.4rem,5vw,4rem)}
@media(max-width:800px){
  .hscroll{height:auto!important}
  .hscroll .sticky{position:static;height:auto;padding-block:90px}
  .hscroll .track{overflow-x:auto;scroll-snap-type:x mandatory;width:auto;transform:none!important;scrollbar-width:none}
  .hscroll .photo{height:300px;scroll-snap-align:center}
}

/* Groupes & Fêtes */
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(36px,6vw,100px);align-items:center}
@media(max-width:900px){.split{grid-template-columns:1fr}}
.split .photo{aspect-ratio:4/5}
.split h2{font-size:clamp(2.6rem,5.2vw,4.4rem);margin-top:16px}
.split .lead{font-family:var(--serif);font-size:1.4rem;line-height:1.45;margin-top:24px;max-width:30ch}
.facts{display:flex;gap:clamp(20px,4vw,48px);margin-top:34px;flex-wrap:wrap}
.facts div{display:grid;gap:2px}
.facts b{font-family:var(--serif);font-weight:400;font-size:2.6rem;color:var(--gold);line-height:1;font-variant-numeric:lining-nums}
.actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:38px;align-items:center}

.xmas{margin-top:clamp(70px,9vw,120px);background:radial-gradient(80% 140% at 50% 0%,#4a1b23,var(--bordeaux) 60%,#1f0b0f);border:1px solid var(--gold-soft);padding:clamp(36px,6vw,70px);text-align:center;position:relative;overflow:hidden}
.xmas::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 30%,rgba(255,255,255,.35) 0 1px,transparent 1.6px) 0 0/44px 44px,radial-gradient(circle at 70% 60%,rgba(255,255,255,.22) 0 1px,transparent 1.6px) 0 0/31px 31px;opacity:.5;animation:snow 30s linear infinite}
@keyframes snow{to{background-position:0 440px,0 310px}}
.xmas > *{position:relative}
.xmas h2{font-size:clamp(2.4rem,5vw,4rem);margin-top:14px}
.xmas .prices{display:flex;justify-content:center;gap:clamp(30px,8vw,90px);margin:30px 0 34px;flex-wrap:wrap}
.xmas .prices div{display:grid;gap:4px}
.xmas .prices b{font-family:var(--serif);font-weight:400;font-size:3.4rem;color:var(--gold);line-height:1}
.xmas details{margin-top:30px;text-align:left;border-top:1px solid var(--gold-soft)}
.xmas summary{cursor:pointer;list-style:none;padding:20px 0 0;text-align:center;font-size:.7rem;letter-spacing:.28em;text-transform:uppercase;color:var(--gold)}
.xmas summary::-webkit-details-marker{display:none}
.xmas summary::after{content:" +"}
.xmas details[open] summary::after{content:" –"}
.xcols{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-top:30px}
@media(max-width:760px){.xcols{grid-template-columns:1fr}}
.xcol{border:1px solid var(--line);padding:28px;display:grid;gap:18px;align-content:start;text-align:center}
.xcol h3{font-size:1.5rem}
.xcol h3 span{color:var(--gold)}
.course ul{list-style:none;padding:0;margin:6px 0 0;display:grid;gap:2px}
.course li{font-family:var(--serif);font-size:1.05rem;line-height:1.4}
.course li + li::before{content:"ou";display:block;font-family:var(--sans);font-size:.56rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);margin:2px 0}
.xmas .opt{color:rgba(238,230,214,.75);font-size:.92rem;margin-top:24px;text-align:center}

/* Réservation */
.resa{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:clamp(36px,6vw,90px);align-items:start}
@media(max-width:940px){.resa{grid-template-columns:1fr}}
.panel{border:1px solid var(--gold-soft);padding:10px}
.panel > div{border:1px solid var(--line);padding:clamp(24px,4vw,46px);display:grid;gap:30px}
.step{display:grid;gap:12px}
.party{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:6px}
@media(max-width:520px){.party{grid-template-columns:repeat(5,minmax(0,1fr))}}
.party button,.slots button{border:1px solid var(--line);background:none;color:var(--ivory);font-family:var(--serif);font-size:1.2rem;cursor:pointer;transition:all .25s;font-variant-numeric:lining-nums;padding:12px 0}
.slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:6px}
.slots button{font-size:1.05rem}
.party button:hover,.slots button:hover{border-color:var(--gold)}
.party button[aria-pressed="true"],.slots button[aria-pressed="true"]{background:var(--gold);color:#14100a;border-color:var(--gold)}
.slots button:disabled{opacity:.22;cursor:not-allowed}
.date{background:transparent;border:0;border-bottom:1px solid var(--line);color:var(--ivory);font-family:var(--serif);font-size:1.3rem;padding:8px 0;width:100%;border-radius:0}
.date:focus{outline:none;border-color:var(--gold)}
.done{border:1px solid var(--gold-soft);padding:24px;text-align:center;display:grid;gap:10px;justify-items:center}
.done b{font-family:var(--serif);font-weight:400;font-size:1.5rem;color:var(--gold)}
.done p{color:var(--stone);font-size:.9rem}
.aside{display:grid}
.aside > div{padding:28px 0;border-bottom:1px solid var(--line);display:grid;gap:8px}
.aside > div:first-child{padding-top:0}
.aside h3{font-size:1.8rem}
.aside p{color:var(--stone);font-size:.95rem}
.aside .link{justify-self:start;margin-top:4px}

/* Contact / pied de page */
footer.site{border-top:1px solid var(--gold-soft);padding-block:clamp(80px,10vw,130px) calc(46px + env(safe-area-inset-bottom,0px))}
.fhead{text-align:center;display:grid;gap:14px;justify-items:center}
.fhead img{height:clamp(110px,14vw,150px);width:auto}
.fgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:64px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.fgrid > div{padding:40px 28px;text-align:center;display:grid;gap:10px;align-content:start}
.fgrid > div + div{border-left:1px solid var(--line)}
.fgrid h3{font-size:1.7rem}
.fgrid p,.fgrid li{color:var(--stone)}
.fgrid ul{list-style:none;padding:0;margin:0;display:grid;gap:2px}
.fgrid .today{color:var(--gold)}
.copy{background:none;border:0;color:var(--ivory);font-family:var(--serif);font-size:1.25rem;cursor:pointer;padding:0;justify-self:center;border-bottom:1px solid var(--line)}
.copy:hover{border-color:var(--gold)}
@media(max-width:820px){.fgrid{grid-template-columns:1fr}.fgrid > div + div{border-left:0;border-top:1px solid var(--line)}}
.legal{margin-top:40px;color:var(--stone);font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;display:flex;justify-content:space-between;flex-wrap:wrap;gap:14px}
.legal a{text-decoration:none}
.legal a:hover{color:var(--gold)}
.social{display:flex;gap:22px}

.toast{position:fixed;left:50%;bottom:calc(90px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--ivory);color:#14100a;padding:12px 22px;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;z-index:150}
.mbar{display:none}
@media(max-width:1000px){
  .mbar{display:grid;grid-template-columns:1fr 1fr;position:fixed;left:0;right:0;bottom:0;z-index:70;background:rgba(14,19,17,.96);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--gold-soft);padding:10px max(12px,env(safe-area-inset-right,0px)) calc(10px + env(safe-area-inset-bottom,0px)) max(12px,env(safe-area-inset-left,0px));gap:8px;transform:translateY(110%);transition:transform .5s var(--ease)}
  .mbar.show{transform:none}
  .mbar .btn{padding:14px 10px}
  footer.site{padding-bottom:calc(120px + env(safe-area-inset-bottom,0px))}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .js [data-r],.js [data-clip],.js .hero .fade,.js .hero h1 .ln > span{opacity:1!important;transform:none!important;clip-path:none!important}
  .words .w{opacity:1}
}
