/* ==========================================================
   FrosTY Acres Bakery & Cafe — "A winter day at the Alpine Lodge"
   Palette pulled from her logo, menus, cedar counters & red shutters
   ========================================================== */
:root{
  --ink:#0E1733;
  --navy:#14244F;
  --navy-2:#1C3166;
  --cobalt:#2F62D6;      /* the "TY" on her wall */
  --ice:#D7E5F6;
  --snow:#F5F7FB;
  --paper:#FBF7F0;
  --paper-2:#F3EBDD;
  --copper:#B57C3E;      /* the little hearts on her menus */
  --cedar:#7B3A20;
  --berry:#B5263D;       /* red shutters & strawberries */
  --muted:#5A6482;
  --bg:#F5F7FB;
  --fg:#0E1733;
  --serif:"Young Serif", Georgia, "Times New Roman", serif;
  --hand:"Caveat", "Bradley Hand", cursive;
  --sans:"Hanken Grotesk", system-ui, -apple-system, "Segoe UI", sans-serif;
  --ease:cubic-bezier(.22,.8,.18,1);
  --ease-io:cubic-bezier(.65,0,.25,1);
  --gutter:clamp(18px,4.5vw,72px);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  font-family:var(--sans);color:var(--fg);background:var(--bg);
  transition:background-color 1.4s var(--ease), color 1.2s var(--ease);
  overflow-x:hidden;-webkit-font-smoothing:antialiased;line-height:1.55;
}
body.is-loading{overflow:hidden}
img{display:block;max-width:100%}
a{color:inherit}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
::selection{background:var(--cobalt);color:#fff}
:focus-visible{outline:2px solid var(--cobalt);outline-offset:3px;border-radius:4px}

/* paper grain over everything */
body::after{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:90;opacity:.07;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .6 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
}

/* ---------- type ---------- */
.eyebrow,.kicker{font-family:var(--sans);font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;font-weight:600;color:var(--copper)}
.kicker.light{color:#E7C79F}
.h-giant{font-family:var(--serif);font-weight:400;font-size:clamp(3.1rem,9.5vw,9.5rem);line-height:.9;letter-spacing:-.02em}
.h-big{font-family:var(--serif);font-weight:400;font-size:clamp(2.5rem,6.4vw,6rem);line-height:.95;letter-spacing:-.015em}
.h-mid{font-family:var(--serif);font-weight:400;font-size:clamp(2rem,4vw,3.4rem);line-height:1}
.h-giant i,.h-big i{font-style:normal;color:var(--cobalt)}
.light{color:#fff}
.lede{font-size:clamp(1.02rem,1.3vw,1.2rem);max-width:34em;color:var(--muted);margin-top:1.4rem}
.lede-sm{color:var(--muted);margin-top:.6rem}

/* ---------- loader ---------- */
.loader{position:fixed;inset:0;z-index:200;background:var(--ink);display:grid;place-content:center;justify-items:center;gap:18px;color:#fff;
  transition:clip-path 1.1s var(--ease-io);clip-path:inset(0 0 0 0)}
.loader.is-done{clip-path:inset(0 0 100% 0)}
.loader-flake{width:86px;height:86px;stroke:var(--ice);stroke-width:2.4;fill:none;stroke-linecap:round;animation:flakeSpin 2.4s var(--ease) forwards}
.loader-flake path{stroke-dasharray:120;stroke-dashoffset:120;animation:draw 1.1s var(--ease) forwards}
.loader-flake g g:nth-child(2) path{animation-delay:.08s}.loader-flake g g:nth-child(3) path{animation-delay:.16s}
.loader-flake g g:nth-child(4) path{animation-delay:.24s}.loader-flake g g:nth-child(5) path{animation-delay:.32s}.loader-flake g g:nth-child(6) path{animation-delay:.4s}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes flakeSpin{from{transform:rotate(-40deg) scale(.7)}to{transform:rotate(0) scale(1)}}
.loader-word{font-family:var(--serif);font-size:clamp(3rem,9vw,6rem);line-height:1;display:flex}
.loader-word span{opacity:0;transform:translateY(.4em);animation:up .9s var(--ease) forwards}
.loader-word span:nth-child(1){animation-delay:.7s}.loader-word span:nth-child(2){animation-delay:.76s}.loader-word span:nth-child(3){animation-delay:.82s}.loader-word span:nth-child(4){animation-delay:.88s}
.loader-word .ty{color:#6E9BFF;animation-delay:1.15s!important;text-shadow:0 0 28px rgba(110,155,255,.55)}
.loader-word .ty+.ty{animation-delay:1.22s!important}
.loader-sub{font-size:.72rem;letter-spacing:.3em;text-transform:uppercase;color:#9FB0D6;opacity:0;animation:up .8s 1.4s var(--ease) forwards}
@keyframes up{to{opacity:1;transform:none}}

/* ---------- snow & cursor ---------- */
.snow{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:60}
.cursor{position:fixed;left:0;top:0;width:34px;height:34px;margin:-17px 0 0 -17px;border-radius:50%;border:1.5px solid rgba(20,36,79,.55);
  pointer-events:none;z-index:150;transition:width .35s var(--ease),height .35s var(--ease),margin .35s var(--ease),border-color .4s,background-color .4s;display:none;mix-blend-mode:normal}
.cursor span{position:absolute;inset:50%;width:4px;height:4px;margin:-2px;border-radius:50%;background:var(--cobalt)}
.cursor.is-photo{width:74px;height:74px;margin:-37px 0 0 -37px;border-color:rgba(232,190,140,.9);background:rgba(181,124,62,.12)}
.cursor.is-link{width:54px;height:54px;margin:-27px 0 0 -27px;background:rgba(47,98,214,.12);border-color:var(--cobalt)}
.cursor.is-dark{border-color:rgba(255,255,255,.6)}
@media (hover:hover) and (pointer:fine){.cursor{display:block}}

/* ---------- nav ---------- */
.nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:14px var(--gutter);color:var(--ink);transition:color .8s,background-color .8s,backdrop-filter .8s,padding .6s var(--ease)}
.nav.is-solid{background:color-mix(in srgb,var(--bg) 74%,transparent);backdrop-filter:blur(14px) saturate(1.2);-webkit-backdrop-filter:blur(14px) saturate(1.2);color:var(--fg);padding-top:9px;padding-bottom:9px}
.nav.on-dark{color:#fff}
.nav-mark{display:flex;align-items:center;gap:10px;text-decoration:none}
.nav-mark img{width:44px;height:44px;border-radius:50%;box-shadow:0 4px 16px rgba(0,0,0,.18);transition:transform .8s var(--ease)}
.nav-mark:hover img{transform:rotate(-14deg)}
.nav-name{font-family:var(--serif);font-size:1.15rem;letter-spacing:.01em}
.nav-name b{font-weight:400;color:var(--cobalt);transition:color .8s}
.nav.on-dark .nav-name b{color:#7FA6FF}
.nav-clock{display:flex;flex-direction:column;align-items:center;line-height:1.1;text-align:center;min-width:0;flex:1 1 auto}
.nav-time{font-family:var(--serif);font-size:1.05rem;font-variant-numeric:tabular-nums}
.nav-chapter{font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;opacity:.75}
.nav-clock.tick .nav-time,.nav-clock.tick .nav-chapter{animation:tick .7s var(--ease)}
@keyframes tick{0%{opacity:0;transform:translateY(8px)}100%{opacity:1;transform:none}}
.nav-actions{display:flex;align-items:center;gap:18px}
.nav-link{font-size:.85rem;font-weight:600;text-decoration:none;letter-spacing:.04em}
.nav-call{display:inline-flex;padding:10px 18px;border-radius:999px;background:var(--cobalt);color:#fff;text-decoration:none;font-weight:600;font-size:.85rem}
.ridge{position:absolute;left:0;right:0;bottom:-10px;width:100%;height:14px;overflow:visible;pointer-events:none}
.ridge path{fill:none;stroke:var(--cobalt);stroke-width:2.4;stroke-linejoin:round}
@media (max-width:720px){
  .nav-name,.nav-link{display:none}
  .nav-mark img{width:38px;height:38px}
  .nav-chapter{font-size:.58rem;letter-spacing:.12em;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .nav{gap:10px}.nav-call{padding:9px 15px}
}

/* ---------- 01 window ---------- */
.window{position:relative;height:100svh;min-height:560px;overflow:hidden;background:var(--ink);color:#fff}
.window-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.08);transition:transform 2.6s var(--ease)}
body:not(.is-loading) .window-photo{transform:scale(1)}
.frost{position:absolute;inset:0;width:100%;height:100%;touch-action:pan-y;cursor:none}
.window-copy{position:absolute;left:var(--gutter);right:var(--gutter);bottom:clamp(90px,16vh,170px);pointer-events:none;z-index:2}
.window-copy .eyebrow{color:var(--navy)}
.window-title{font-family:var(--serif);font-weight:400;font-size:clamp(2.6rem,7.6vw,7.8rem);line-height:.94;letter-spacing:-.02em;margin-top:18px;
  color:var(--ink);mix-blend-mode:normal;max-width:12em}
.window-title em{font-style:normal;color:var(--cobalt)}
.window-title .line{display:block;overflow:hidden;padding-bottom:.06em}
.window-title .line>span{display:inline-block;transform:translateY(105%);transition:transform 1.3s var(--ease)}
body.is-ready .window-title .line>span{transform:none}
body.is-ready .window-title .line:nth-child(2)>span{transition-delay:.12s}
body.is-ready .window-title .line:nth-child(3)>span{transition-delay:.24s}
body.is-ready .window-title .line:nth-child(4)>span{transition-delay:.36s}
.window-hint{position:absolute;right:var(--gutter);top:clamp(96px,16vh,150px);z-index:3;font-family:var(--hand);font-size:1.6rem;color:var(--navy);
  display:flex;align-items:center;gap:10px;opacity:0;transition:opacity 1s 1.8s;pointer-events:none}
body.is-ready .window-hint{opacity:1}
.window-hint.is-gone{opacity:0!important;transition-delay:0s}
.hint-dot{width:12px;height:12px;border-radius:50%;background:var(--cobalt);box-shadow:0 0 0 0 rgba(47,98,214,.5);animation:pulse 1.8s infinite}
@keyframes pulse{70%{box-shadow:0 0 0 16px rgba(47,98,214,0)}100%{box-shadow:0 0 0 0 rgba(47,98,214,0)}}
.window-down{position:absolute;left:50%;bottom:28px;width:28px;height:46px;margin-left:-14px;border:1.5px solid var(--navy);border-radius:20px;z-index:3}
.window-down span{position:absolute;left:50%;top:9px;width:4px;height:8px;margin-left:-2px;border-radius:2px;background:var(--navy);animation:wheel 1.8s infinite var(--ease)}
@keyframes wheel{0%{opacity:0;transform:translateY(-4px)}40%{opacity:1}100%{opacity:0;transform:translateY(14px)}}
@media (max-width:720px){.window-hint{top:96px;right:auto;left:var(--gutter);font-size:1.35rem}}

/* ---------- 02 first light ---------- */
.first-light{padding:clamp(110px,16vh,200px) var(--gutter) clamp(90px,12vh,160px)}
.light-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(36px,6vw,110px);align-items:center;max-width:1400px;margin:0 auto}
.arch{position:relative;aspect-ratio:3/4;border-radius:999px 999px 18px 18px;overflow:hidden;box-shadow:0 40px 80px -40px rgba(14,23,51,.45)}
.arch img{width:100%;height:115%;object-fit:cover;will-change:transform}
.reveal-arch{clip-path:inset(100% 0 0 0 round 999px 999px 18px 18px);transition:clip-path 1.6s var(--ease)}
.reveal-arch.in{clip-path:inset(0 0 0 0 round 999px 999px 18px 18px)}
.steam{position:absolute;left:28%;bottom:6%;width:42%;height:62%;pointer-events:none;mix-blend-mode:screen}
.steam path{fill:none;stroke:rgba(255,255,255,.75);stroke-width:7;stroke-linecap:round;filter:blur(4px);opacity:.0;animation:steam 5s infinite ease-in-out}
.steam path:nth-child(2){animation-delay:1.4s}.steam path:nth-child(3){animation-delay:2.8s}
@keyframes steam{0%{opacity:0;transform:translateY(20px) scaleY(.8)}35%{opacity:.7}100%{opacity:0;transform:translateY(-40px) scaleY(1.1)}}
.light-copy .h-giant{margin-top:18px}
.split .w{display:inline-block;opacity:0;transform:translateY(.5em) rotate(4deg);transition:opacity .9s var(--ease),transform 1.1s var(--ease)}
.split.in .w{opacity:1;transform:none}
.flavor-catch{margin-top:44px;border-top:1px solid rgba(20,36,79,.15);padding-top:20px}
.catch-label{font-family:var(--serif);font-size:1.3rem}
.catch-label span{font-family:var(--sans);font-size:.85rem;color:var(--muted);margin-left:6px}
.catch-field{position:relative;height:210px;overflow:hidden;margin-top:12px;
  -webkit-mask-image:linear-gradient(180deg,transparent,#000 18%,#000 80%,transparent);mask-image:linear-gradient(180deg,transparent,#000 18%,#000 80%,transparent)}
.flake-word{position:absolute;top:0;white-space:nowrap;font-family:var(--hand);font-size:1.45rem;color:var(--navy);padding:2px 10px;border-radius:999px;
  transition:background-color .3s,color .3s,transform .3s;will-change:transform}
.flake-word::before{content:"❄";font-size:.8em;margin-right:5px;color:var(--cobalt);opacity:.6}
.flake-word:hover{background:var(--ice)}
.flake-word.caught{background:var(--cobalt);color:#fff}
.flake-word.caught::before{color:#fff}
.catch-result{font-family:var(--serif);font-size:1.15rem;min-height:1.6em;margin-top:6px}
.catch-result b{color:var(--cobalt);font-weight:400}
@media (max-width:860px){.light-grid{grid-template-columns:1fr}.arch{max-width:420px;width:86%;margin:0 auto}}

/* ---------- 03 pastry case ---------- */
.case{position:relative;height:420vh}
.case-sticky{position:sticky;top:0;height:100svh;overflow:hidden;display:flex;align-items:center}
.case-head{position:absolute;left:var(--gutter);top:clamp(90px,13vh,140px);z-index:3;max-width:min(420px,80vw)}
.case-sticky::before{content:"";position:absolute;left:0;top:0;bottom:9vh;width:min(40vw,560px);z-index:2;pointer-events:none;background:linear-gradient(90deg,var(--bg) 55%,transparent)}
.case-title{font-family:var(--serif);font-weight:400;font-size:clamp(3rem,8vw,8rem);line-height:.88;margin-top:12px;letter-spacing:-.02em}
.case-note{font-family:var(--hand);font-size:1.45rem;color:var(--cedar);margin-top:10px}
.case-track{display:flex;align-items:flex-end;gap:clamp(28px,4vw,70px);padding-left:max(46vw,440px);padding-right:12vw;will-change:transform;height:100%;padding-bottom:9vh}
.pastry{position:relative;flex:0 0 auto;width:clamp(220px,24vw,360px)}
.pastry img{width:100%;height:100%;object-fit:cover;border-radius:6px;box-shadow:0 30px 60px -30px rgba(80,40,10,.55)}
.p-tall{height:min(62vh,560px)}
.p-mid{height:min(48vh,440px);margin-bottom:12vh}
.p-low{height:min(40vh,360px);margin-bottom:4vh}
.p-wide{width:clamp(280px,30vw,440px)}
.tag{position:absolute;top:-6px;left:22px;transform-origin:50% 0;z-index:2;will-change:transform}
.tag-string{display:block;width:1px;height:46px;background:rgba(80,40,10,.55);margin-left:28px}
.tag-card{display:flex;flex-direction:column;background:var(--paper);padding:10px 14px 10px 20px;border-radius:3px 12px 12px 3px;min-width:140px;
  box-shadow:0 10px 20px -10px rgba(60,30,10,.5);position:relative;margin-top:-4px;clip-path:polygon(10px 0,100% 0,100% 100%,10px 100%,0 50%)}
.tag-card::before{content:"";position:absolute;left:14px;top:50%;width:6px;height:6px;margin-top:-3px;border-radius:50%;background:var(--paper-2);box-shadow:inset 0 0 0 1px rgba(80,40,10,.3)}
.tag-card b{font-family:var(--serif);font-weight:400;font-size:1.05rem;color:var(--ink)}
.tag-card i{font-style:normal;font-size:.8rem;color:var(--cedar)}
.case-end{flex:0 0 auto;width:min(340px,70vw);align-self:center;font-family:var(--serif);font-size:1.4rem;line-height:1.25}
.ink-link{display:inline-block;margin-top:16px;font-family:var(--sans);font-size:.9rem;font-weight:600;color:var(--cobalt);text-decoration:none;border-bottom:1.5px solid currentColor}
.case-glass{position:absolute;inset:0;pointer-events:none;background:linear-gradient(105deg,transparent 30%,rgba(255,255,255,.22) 45%,transparent 52%,transparent 70%,rgba(255,255,255,.12) 76%,transparent 80%);
  transform:translateX(var(--glass,0));}
.case-sticky::after{content:"";position:absolute;left:0;right:0;bottom:0;height:9vh;background:linear-gradient(180deg,#8A4526,#5E2B15);box-shadow:inset 0 2px 0 rgba(255,255,255,.18)}
@media (max-width:720px){
  .case-sticky::before{width:100%;bottom:auto;height:44vh;background:linear-gradient(180deg,var(--bg) 70%,transparent)}
  .case{height:520vh}
  .case-head{top:84px}
  .case-track{padding-left:88vw;padding-bottom:9vh}
  .pastry{width:62vw}.p-wide{width:72vw}
  .p-tall{height:52vh}.p-mid{height:42vh;margin-bottom:6vh}.p-low{height:36vh}
}

/* ---------- 04 counter ---------- */
.counter{padding:clamp(100px,14vh,170px) var(--gutter);max-width:1500px;margin:0 auto}
.counter-head{text-align:center;margin-bottom:56px}
.counter-body{display:grid;grid-template-columns:280px minmax(0,1fr);gap:clamp(28px,5vw,80px);align-items:start}
.signpost{position:sticky;top:110px;display:flex;flex-direction:column;align-items:center;gap:10px;padding:10px 0 50px}
.post{position:absolute;left:50%;top:-30px;bottom:0;width:16px;margin-left:-8px;border-radius:3px;background:linear-gradient(90deg,#6B3B1F,#9A5A31 45%,#6B3B1F);box-shadow:0 0 0 1px rgba(0,0,0,.06)}
.post-snow{position:absolute;left:50%;bottom:-6px;width:150px;height:26px;margin-left:-75px;border-radius:50%;background:#fff;box-shadow:0 6px 20px -8px rgba(14,23,51,.35)}
.sign{position:relative;z-index:1;width:220px;padding:11px 22px;font-family:var(--serif);font-size:1.12rem;color:#3A1F0E;text-align:left;
  background:linear-gradient(180deg,#E8C58F,#D6A866);box-shadow:inset 0 -3px 0 rgba(90,45,15,.25),0 6px 12px -6px rgba(60,30,10,.5);
  transition:transform .6s var(--ease),background .4s,color .4s;transform-origin:50% 50%}
.sign.s-r{clip-path:polygon(0 0,88% 0,100% 50%,88% 100%,0 100%);transform:translateX(18px) rotate(-1.5deg)}
.sign.s-l{clip-path:polygon(12% 0,100% 0,100% 100%,12% 100%,0 50%);text-align:right;transform:translateX(-18px) rotate(1.5deg)}
.sign:hover{transform:translateX(18px) rotate(-4deg)}
.sign.s-l:hover{transform:translateX(-18px) rotate(4deg)}
.sign.is-on{background:linear-gradient(180deg,#24407F,#14244F);color:#fff}
.paper-stage{position:relative;perspective:1600px;min-height:560px}
.paper{display:none;background:var(--paper);padding:clamp(26px,4vw,56px);border-radius:4px;box-shadow:0 1px 0 rgba(0,0,0,.04),0 40px 80px -50px rgba(14,23,51,.55);
  transform-origin:50% 0;max-width:780px;position:relative}
.paper::before{content:"";position:absolute;left:0;right:0;top:33%;height:1px;background:linear-gradient(90deg,transparent,rgba(14,23,51,.08),transparent)}
.paper::after{content:"";position:absolute;left:0;right:0;top:66%;height:1px;background:linear-gradient(90deg,transparent,rgba(14,23,51,.08),transparent)}
.paper-wide{max-width:1000px}
.paper.is-open{display:block;animation:unfold 1s var(--ease) both}
@keyframes unfold{0%{transform:rotateX(-78deg) translateY(-20px);opacity:0;filter:brightness(.8)}60%{opacity:1}100%{transform:none;opacity:1;filter:none}}
.paper header{display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap;border-bottom:2px solid var(--navy);padding-bottom:12px;margin-bottom:20px}
.paper h3{font-family:var(--serif);font-weight:400;font-size:clamp(2rem,3.6vw,3rem);color:var(--navy);line-height:1}
.paper-scr{font-family:var(--hand);font-size:1.4rem;color:var(--copper)}
.paper-cols{display:grid;grid-template-columns:1fr 1fr;gap:0 48px}
.items{list-style:none}
.items li{display:flex;align-items:baseline;gap:10px;padding:9px 0;opacity:0;transform:translateY(8px);animation:up .6s var(--ease) forwards}
.paper.is-open .items li:nth-child(1){animation-delay:.25s}.paper.is-open .items li:nth-child(2){animation-delay:.3s}.paper.is-open .items li:nth-child(3){animation-delay:.35s}
.paper.is-open .items li:nth-child(4){animation-delay:.4s}.paper.is-open .items li:nth-child(5){animation-delay:.45s}.paper.is-open .items li:nth-child(6){animation-delay:.5s}
.paper.is-open .items li:nth-child(n+7){animation-delay:.55s}
.items li span{font-weight:500}
.items li small{display:block;font-weight:400;color:var(--muted);font-size:.86rem;margin-top:2px}
.items li i{flex:1;border-bottom:1.5px dotted rgba(14,23,51,.28);transform:translateY(-4px);min-width:16px}
.items li b{font-family:var(--serif);font-weight:400;color:var(--navy);white-space:nowrap}
.items li.feat span{font-family:var(--serif);font-weight:400;font-size:1.2rem;color:var(--cobalt)}
.items-sm li{padding:6px 0;font-size:.94rem}
.items.cols{display:grid;grid-template-columns:1fr 1fr;gap:0 32px}
.sub{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;font-weight:700;color:var(--copper);margin:22px 0 4px}
.plain{color:var(--ink);margin-top:4px}
.plain.small{font-size:.86rem;color:var(--muted);margin-top:14px}
.pr{font-family:var(--serif);font-weight:400;color:var(--navy);white-space:nowrap}
@media (max-width:900px){
  .counter-body{grid-template-columns:1fr}
  .signpost{position:sticky;top:62px;z-index:5;flex-direction:row;overflow-x:auto;justify-content:flex-start;gap:8px;padding:10px 4px;margin:0 calc(var(--gutter)*-1);padding-left:var(--gutter);
    background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);scrollbar-width:none}
  .signpost::-webkit-scrollbar{display:none}
  .post,.post-snow{display:none}
  .sign,.sign.s-l,.sign.s-r{width:auto;flex:0 0 auto;transform:none!important;clip-path:polygon(0 0,90% 0,100% 50%,90% 100%,0 100%);text-align:left;font-size:.98rem;padding:9px 22px 9px 14px}
  .paper-cols,.items.cols{grid-template-columns:1fr}
}

/* ---------- 05 soup ---------- */
.soup{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(30px,5vw,90px);align-items:center;padding:clamp(90px,14vh,180px) var(--gutter);overflow:hidden}
.soup-vertical{position:absolute;left:-1vw;top:50%;transform:translateY(-50%) rotate(180deg);writing-mode:vertical-rl;font-family:var(--serif);font-size:clamp(6rem,16vw,15rem);line-height:.8;
  color:transparent;-webkit-text-stroke:1.5px rgba(123,58,32,.25);pointer-events:none;letter-spacing:-.02em}
.soup-stack{position:relative;height:min(78vh,720px)}
.layer{position:absolute;overflow:hidden;border-radius:8px;will-change:transform;box-shadow:0 40px 80px -40px rgba(60,25,10,.6)}
.layer img{width:100%;height:100%;object-fit:cover}
.l-back{right:0;top:0;width:62%;height:72%}
.l-front{left:4%;bottom:0;width:58%;height:58%;border-radius:50%;border:10px solid var(--paper)}
.soup-handwrite{position:absolute;right:2%;bottom:4%;font-family:var(--hand);font-size:clamp(1.5rem,2.4vw,2.2rem);line-height:1.05;color:var(--cedar);transform:rotate(-6deg);text-align:right}
.soup-temp{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px;margin-top:36px;font-family:var(--serif);font-size:clamp(2.2rem,4vw,3.6rem);color:var(--cedar);line-height:1}
.soup-temp small{font-family:var(--sans);font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-left:12px}
.soup-temp{font-size:clamp(3.4rem,7vw,6.4rem)!important}
.soup-temp .arrow{color:var(--copper);font-size:.6em}
#tempNum{font-variant-numeric:tabular-nums;color:var(--cobalt)}
@media (max-width:860px){.soup{grid-template-columns:1fr}.soup-stack{height:92vw;max-height:560px}}

/* ---------- 06 pour ---------- */
.pour{padding:clamp(100px,14vh,170px) var(--gutter) 0;max-width:1500px;margin:0 auto}
.pour-head{margin-bottom:40px}
.builder{display:grid;grid-template-columns:minmax(260px,4fr) minmax(0,7fr);gap:clamp(28px,5vw,80px);align-items:start}
.cup-wrap{position:sticky;top:110px;text-align:center}
.cup{width:min(100%,300px);height:auto;margin:0 auto;display:block;overflow:visible;filter:drop-shadow(0 30px 30px rgba(14,23,51,.18))}
.cup-line{fill:none;stroke:rgba(14,23,51,.45);stroke-width:2}
.lid{fill:#fff;stroke:rgba(14,23,51,.35);stroke-width:1.5}
.straw{fill:var(--navy)}
.cup-logo circle{fill:rgba(255,255,255,.82);stroke:var(--navy);stroke-width:1.5}
.cup-logo text{font-family:var(--serif);font-size:18px;fill:var(--navy)}
.cup-logo text.sm{font-family:var(--sans);font-size:9px;letter-spacing:.3em;font-weight:700}
#liquid rect,#liquid path{transition:y .9s var(--ease),height .9s var(--ease),fill .9s var(--ease)}
.cup-price{font-family:var(--serif);font-size:2.6rem;margin-top:10px;color:var(--navy)}
.cup-desc{color:var(--muted);font-size:.95rem;max-width:300px;margin:0 auto;min-height:3em}
.step{border:0;margin-bottom:28px}
.step legend{font-family:var(--serif);font-size:1.4rem;margin-bottom:12px;display:flex;align-items:baseline;gap:12px}
.step legend span{font-family:var(--sans);font-size:.72rem;letter-spacing:.2em;color:var(--copper);font-weight:700}
.step legend em{font-style:normal}
.step legend small{font-family:var(--sans);font-size:.8rem;color:var(--muted)}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{position:relative;padding:10px 16px;border-radius:999px;border:1.5px solid rgba(20,36,79,.2);background:rgba(255,255,255,.6);font-weight:600;font-size:.92rem;
  transition:background .3s,color .3s,border-color .3s,transform .3s var(--ease)}
.chip small{font-weight:400;color:var(--muted);margin-left:4px;font-size:.78rem}
.chip:hover{transform:translateY(-2px);border-color:var(--navy)}
.chip.is-on{background:var(--navy);color:#fff;border-color:var(--navy)}
.chip.is-on small{color:#B9C7EA}
.chips-flavor .chip{padding:8px 13px 8px 30px;font-size:.86rem}
.chips-flavor .chip::before{content:"";position:absolute;left:11px;top:50%;width:12px;height:12px;margin-top:-6px;border-radius:50%;background:var(--c);box-shadow:inset 0 0 0 1px rgba(0,0,0,.12)}
.chips-flavor .chip.is-on{background:var(--c);border-color:var(--c);color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.35)}
.chips-flavor .chip.is-on::before{background:#fff}
#styleStep{transition:opacity .4s}
#styleStep.is-off{opacity:.35;pointer-events:none}
@media (max-width:860px){
  .builder{grid-template-columns:1fr}
  .cup-wrap{position:sticky;top:58px;z-index:4;display:grid;grid-template-columns:110px 1fr;align-items:center;gap:14px;text-align:left;
    background:color-mix(in srgb,var(--bg) 90%,transparent);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);padding:8px 0;margin:0 calc(var(--gutter)*-1);padding-left:var(--gutter);padding-right:var(--gutter)}
  .cup{width:110px;grid-row:span 2}
  .cup-price{font-size:2rem;margin:0;align-self:end}
  .cup-desc{margin:0;align-self:start;font-size:.85rem;min-height:0}
}

/* trail map */
.trailmap{position:relative;margin-top:clamp(80px,12vh,140px);padding:clamp(40px,6vw,80px) clamp(20px,4vw,60px) clamp(60px,8vw,100px);background:var(--navy);color:#fff;border-radius:22px 22px 0 0;overflow:hidden}
.trail-head{position:relative;z-index:2;display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px 32px;margin-bottom:28px}
.trail-head h3{font-family:var(--serif);font-weight:400;font-size:clamp(2.2rem,5vw,4.2rem);line-height:1}
.trail-head p{color:#B9C7EA;flex:1;min-width:220px}
.legend{list-style:none;display:flex;gap:18px;flex-wrap:wrap;font-size:.85rem}
.legend li{display:flex;align-items:center;gap:8px}
.sym{display:inline-block;width:16px;height:16px;flex:0 0 auto}
.sym.green{border-radius:50%;background:#2E9E5B}
.sym.blue{background:#3577E0}
.sym.black{background:#000;transform:rotate(45deg) scale(.82);box-shadow:0 0 0 1px rgba(255,255,255,.6)}
.trail-mtn{position:absolute;left:0;right:0;top:120px;width:100%;height:60%;opacity:.95}
.trail-mtn .mtn{fill:#1C3166}
.trail-mtn .run{fill:none;stroke:rgba(255,255,255,.35);stroke-width:2;stroke-dasharray:6 8;vector-effect:non-scaling-stroke}
.signs{position:relative;z-index:2;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.tsign{position:relative;background:#F8F6EF;color:var(--ink);border-radius:6px;padding:12px 14px 12px 44px;transform-origin:50% -10px;transition:transform .5s var(--ease),box-shadow .4s;
  box-shadow:0 10px 24px -14px rgba(0,0,0,.6);opacity:0;transform:translateY(14px)}
.tsign.in{opacity:1;transform:none;transition:opacity .7s var(--ease),transform .7s var(--ease)}
.tsign:hover{transform:rotate(-2.5deg) translateY(-3px);box-shadow:0 20px 30px -14px rgba(0,0,0,.7)}
.tsign .sym{position:absolute;left:15px;top:15px}
.tsign b{font-family:var(--serif);font-weight:400;font-size:1.08rem;display:block;line-height:1.15}
.tsign small{display:block;color:var(--muted);font-size:.8rem;margin-top:3px;line-height:1.35}

/* ---------- 07 gather ---------- */
.gather{padding:0 0 clamp(90px,12vh,160px)}
.table-reveal{position:relative;height:110vh;overflow:hidden;clip-path:inset(0 var(--tc,38%) 0 var(--tc,38%));transition:clip-path .1s linear}
.table-reveal img{width:100%;height:100%;object-fit:cover;transform:scale(var(--ts,1.25))}
.table-reveal::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(14,23,51,.75),rgba(14,23,51,0) 55%)}
.table-copy{position:absolute;left:var(--gutter);bottom:10vh;z-index:2}
.table-copy .h-giant{margin-top:14px}
.gather-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(30px,6vw,100px);align-items:center;padding:clamp(80px,12vh,150px) var(--gutter) 0;max-width:1400px;margin:0 auto}
.pedestal{position:relative;aspect-ratio:1;display:grid;place-items:center}
.pedestal img{position:relative;width:62%;height:84%;object-fit:cover;border-radius:999px 999px 10px 10px;box-shadow:0 40px 80px -40px rgba(80,50,10,.6);z-index:1}
.pedestal::before{content:"";position:absolute;inset:8%;border-radius:50%;background:radial-gradient(circle,rgba(255,240,215,.95),rgba(255,240,215,0) 68%)}
.ring{position:absolute;inset:0;width:100%;height:100%;will-change:transform}
.ring text{font-family:var(--sans);font-size:15px;font-weight:600;letter-spacing:.28em;fill:var(--copper)}
.note-card{margin-top:36px;padding:26px 26px 28px;background:var(--paper);border-radius:4px;position:relative;transform:rotate(-1deg);box-shadow:0 26px 40px -26px rgba(60,30,10,.55)}
.note-card::before{content:"";position:absolute;top:-12px;left:50%;width:96px;height:26px;margin-left:-48px;background:rgba(215,229,246,.85);transform:rotate(2deg)}
.note-title{font-family:var(--hand);font-size:1.9rem;color:var(--cedar);line-height:1}
.note-card p:not(.note-title){margin:10px 0 18px;color:var(--ink)}
.btn{display:inline-flex;align-items:center;justify-content:center;padding:14px 24px;border-radius:999px;background:var(--navy);color:#fff;text-decoration:none;font-weight:600;font-size:.95rem;
  transition:background .3s,color .3s;will-change:transform}
.btn:hover{background:var(--cobalt)}
.btn span{display:inline-block;will-change:transform}
@media (max-width:860px){.gather-row{grid-template-columns:1fr}.table-reveal{height:86vh}}

/* ---------- 08 people ---------- */
.people{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(30px,6vw,100px);align-items:center;padding:clamp(80px,12vh,150px) var(--gutter);max-width:1400px;margin:0 auto}
.pull p{font-family:var(--serif);font-size:clamp(1.8rem,3.4vw,3rem);line-height:1.1;margin-top:18px}
.mosaic{position:relative;aspect-ratio:1121/1403;width:100%;max-width:560px;justify-self:center}
.tile{position:absolute;background-size:var(--bw) var(--bh);will-change:transform;transition:transform 1.3s var(--ease),opacity 1s var(--ease);border-radius:2px}
.mosaic.in .tile{transform:none!important;opacity:1!important}
@media (max-width:860px){.people{grid-template-columns:1fr}}

/* ---------- 09 name ---------- */
.name{position:relative;background:var(--ink);color:#E9EEF9;padding-bottom:clamp(80px,12vh,140px);overflow:clip}
.name-sticky{height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:0 var(--gutter);position:sticky;top:0}
.name-word{display:flex;align-items:baseline;justify-content:center;font-family:var(--serif);font-size:clamp(4rem,16vw,15rem);line-height:1;letter-spacing:-.02em;margin:24px 0 26px;white-space:nowrap}
.name-word span{display:inline-block;will-change:transform,opacity}
.nw-plus{color:#7387B8;font-size:.5em;margin:0 .25em;align-self:center}
.nw-ty{color:#6E9BFF;text-shadow:0 0 calc(var(--glow,0) * 50px) rgba(110,155,255,.75)}
.name-line{max-width:30em;font-size:clamp(1rem,1.4vw,1.2rem);color:#B9C7EA;opacity:var(--lineop,0);transform:translateY(calc((1 - var(--lineop,0)) * 16px))}
.name-pin{height:200vh}
.name-story{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,4fr) minmax(0,6fr);gap:clamp(30px,6vw,100px);align-items:center;padding:clamp(40px,10vh,120px) var(--gutter);max-width:1300px;margin:0 auto}
.name-photo{position:relative;filter:saturate(.75);opacity:.92}
.name-photo img{width:100%;border-radius:999px 999px 6px 6px;box-shadow:0 40px 90px -40px rgba(0,0,0,.8)}
.name-words p{color:#B9C7EA;font-size:clamp(1rem,1.3vw,1.15rem);max-width:30em}
.name-words p+p{margin-top:22px}
.name-big{font-family:var(--serif);color:#fff!important;font-size:clamp(1.8rem,3.4vw,3rem)!important;line-height:1.15}
.footprints{position:relative;height:280px;margin-top:20px}
.fp{position:absolute;width:18px;height:34px;opacity:0;transition:opacity 1.2s var(--ease)}
.fp svg{width:100%;height:100%;fill:rgba(215,229,246,.5)}
.fp.on{opacity:1}
.fp.fill{opacity:.12;transition:opacity 6s ease}
.name-close{position:relative;z-index:2;text-align:center;padding:0 var(--gutter);font-family:var(--serif);font-size:clamp(1.5rem,3vw,2.6rem);line-height:1.25;color:#fff}
.name-close span{display:block;opacity:0;transform:translateY(14px);transition:opacity 1.6s var(--ease),transform 1.6s var(--ease)}
.name-close.in span{opacity:1;transform:none}
.name-close.in span:nth-child(2){transition-delay:.6s}
.name-close.in span:nth-child(3){transition-delay:1.4s}
.name-close .soft{font-family:var(--hand);font-size:1.15em;color:#9FB8F0;margin-top:14px}
@media (max-width:860px){.name-story{grid-template-columns:1fr}.name-photo{max-width:300px;margin:0 auto}}

/* ---------- 10 visit ---------- */
.visit{position:relative;background:#0B1430;color:#fff;padding-top:clamp(40px,8vh,90px)}
.visit-glass{position:relative;margin:0 var(--gutter);height:min(70vh,560px);border-radius:999px 999px 24px 24px;overflow:hidden;
  background:url("img/latte.jpg") center/cover}
.visit-glass::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 70%,rgba(255,190,110,.35),rgba(11,20,48,.55))}
.frost-visit{z-index:1;cursor:auto;opacity:.6}
.finger{position:absolute;inset:0;width:100%;height:100%;z-index:2}
.fw{font-family:var(--hand);font-weight:700;font-size:92px;fill:none;stroke:rgba(255,255,255,.95);stroke-width:2.2;stroke-linejoin:round;stroke-dasharray:1400;stroke-dashoffset:1400}
.fw2{font-size:64px}
.fw-heart{fill:none;stroke:#fff;stroke-width:4;stroke-linecap:round;stroke-dasharray:420;stroke-dashoffset:420}
.visit.in .fw{animation:write 3.2s var(--ease) forwards}
.visit.in .fw2{animation-delay:1.1s}
.visit.in .fw-heart{animation:write 1.6s 2.6s var(--ease) forwards}
.visit.in .fw1,.visit.in .fw2{animation-name:write,fillin}
.visit.in .fw1{animation-duration:3s,1.2s;animation-delay:0s,2.6s;animation-fill-mode:forwards}
.visit.in .fw2{animation-duration:3s,1.2s;animation-delay:1.1s,3.6s;animation-fill-mode:forwards}
@keyframes write{to{stroke-dashoffset:0}}
@keyframes fillin{to{fill:rgba(255,255,255,.9)}}
.visit-info{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(30px,5vw,80px);padding:clamp(60px,10vh,110px) var(--gutter) 40px;max-width:1400px;margin:0 auto;align-items:start}
.visit-info .h-big{margin-top:14px}
.facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.facts dt{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:#E7C79F;font-weight:700;margin-bottom:8px}
.facts dd{font-family:var(--serif);font-size:1.15rem;line-height:1.35;color:#E9EEF9}
.facts a{text-decoration:none;border-bottom:1px solid rgba(255,255,255,.35)}
.visit-btns{grid-column:2;display:flex;flex-wrap:wrap;gap:12px}
.btn-light{background:#fff;color:var(--ink)}
.btn-light:hover{background:#6E9BFF;color:#fff}
.btn-ghost{background:transparent;box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.5)}
.foot{border-top:1px solid rgba(255,255,255,.12);margin:40px var(--gutter) 0;padding:34px 0 calc(34px + env(safe-area-inset-bottom));display:flex;flex-wrap:wrap;gap:10px 30px;align-items:baseline;justify-content:space-between}
.foot-mark{font-family:var(--hand);font-size:1.8rem;color:#E9EEF9}
.foot-mark span{color:var(--berry)}
.foot-small,.foot-credit{font-size:.82rem;color:#8796BE}
.foot-credit a{color:#B9C7EA}
@media (max-width:860px){
  .visit-info{grid-template-columns:1fr}
  .facts{grid-template-columns:1fr}
  .visit-btns{grid-column:1}
  .visit-glass{height:62vh;border-radius:200px 200px 18px 18px}
  .fw{font-size:110px}.fw2{font-size:76px}
}

/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .snow{display:none}
  .case{height:auto}.case-sticky{position:relative;height:auto;flex-direction:column;align-items:stretch;padding:110px 0 60px}
  .case-head{position:relative;left:auto;top:auto;padding:0 var(--gutter)}
  .case-track{overflow-x:auto;transform:none!important;padding:40px var(--gutter);height:auto}
  .table-reveal{clip-path:none}
  .name-sticky{position:relative}
}

/* keep grid tracks from growing past the viewport */
.counter-body>*,.builder>*,.soup>*,.light-grid>*,.gather-row>*,.people>*,.name-story>*,.visit-info>*{min-width:0}
html,body{overflow-x:clip}
.tsign.in:hover{transition-delay:0s!important}

/* ---------- facebook ---------- */
.nav-fb{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:50%;box-shadow:inset 0 0 0 1.5px currentColor;opacity:.85;transition:opacity .3s,background .3s,color .3s}
.nav-fb svg{width:18px;height:18px;fill:currentColor}
.nav-fb:hover{opacity:1;background:#1877F2;color:#fff;box-shadow:none}
.btn-fb{background:#1877F2}
.btn-fb:hover{background:#fff;color:#1877F2}
.btn-fb span{display:inline-flex;align-items:center;gap:9px}
.btn-fb svg,.foot-fb svg{width:18px;height:18px;fill:currentColor}
.foot-fb{display:inline-flex;align-items:center;gap:8px;color:#B9C7EA;text-decoration:none;font-size:.82rem;font-weight:600}
.foot-fb:hover{color:#fff}
@media (max-width:720px){.nav-fb{width:34px;height:34px}.nav-fb svg{width:16px;height:16px}}

/* ---------- order note (form) ---------- */
.ticket-wrap{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(30px,5vw,80px);align-items:start;padding:clamp(40px,8vh,90px) var(--gutter) 20px;max-width:1400px;margin:0 auto}
.ticket-wrap>*{min-width:0}
.ticket-intro{position:sticky;top:110px}
.ticket-intro .h-mid{margin-top:12px}
.ticket-lede{color:#B9C7EA;margin-top:18px;max-width:30em}
.ticket-alt{color:#8796BE;font-size:.9rem;margin-top:18px}
.ticket-alt a{color:#fff}
.ticket{position:relative;background:var(--paper);color:var(--ink);padding:38px clamp(22px,4vw,48px) 34px;border-radius:2px 2px 6px 6px;transform:rotate(.6deg);
  box-shadow:0 40px 70px -30px rgba(0,0,0,.65);transition:transform .9s var(--ease),opacity .9s var(--ease);
  -webkit-mask:radial-gradient(circle 7px at 50% 0,#0000 98%,#000) 50% 0/22px 100% repeat-x;mask:radial-gradient(circle 7px at 50% 0,#0000 98%,#000) 50% 0/22px 100% repeat-x}
.ticket:focus-within{transform:rotate(0)}
.hp{position:absolute;left:-9999px}
.ticket-top{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap;border-bottom:1.5px dashed rgba(14,23,51,.3);padding-bottom:14px;margin-bottom:22px}
.ticket-no{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;font-weight:700;color:var(--copper)}
.ticket-no b{font-family:var(--serif);font-weight:400;font-size:1.05rem;letter-spacing:.05em;color:var(--berry)}
.ticket-for{font-family:var(--hand);font-size:1.5rem;color:var(--cedar)}
.t-occ{border:0;display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px}
.t-occ legend{font-family:var(--serif);font-size:1.3rem;margin-bottom:12px;color:var(--navy)}
.occ{position:relative;cursor:pointer}
.occ input{position:absolute;opacity:0;width:1px;height:1px}
.occ span{display:inline-block;padding:9px 16px 9px 24px;background:#fff;font-size:.88rem;font-weight:600;color:var(--ink);border-radius:3px 10px 10px 3px;
  clip-path:polygon(9px 0,100% 0,100% 100%,9px 100%,0 50%);box-shadow:inset 0 0 0 1.5px rgba(14,23,51,.14);transition:background .3s,color .3s,transform .4s var(--ease)}
.occ:hover span{transform:rotate(-2deg)}
.occ input:checked+span{background:var(--navy);color:#fff}
.occ input:focus-visible+span{outline:2px solid var(--cobalt);outline-offset:2px}
.t-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:4px 26px}
.t-wide{grid-column:1/-1}
.t-field{display:block;margin-bottom:16px}
.t-field span{display:block;font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;font-weight:700;color:var(--muted);margin-bottom:2px}
.t-field input,.t-field textarea{width:100%;font:inherit;font-family:var(--hand);font-size:1.55rem;line-height:1.3;color:var(--navy);background:transparent;border:0;border-bottom:1.5px solid rgba(14,23,51,.25);
  padding:4px 0;border-radius:0;transition:border-color .3s;-webkit-appearance:none;appearance:none}
.t-field input[type=date]{font-family:var(--sans);font-size:1rem;padding:9px 0}
.t-field textarea{resize:vertical;min-height:96px;background:repeating-linear-gradient(transparent 0 37px,rgba(14,23,51,.12) 37px 38px);border-bottom:0}
.t-field input:focus,.t-field textarea:focus{outline:none;border-color:var(--cobalt)}
.t-field textarea::placeholder{color:rgba(90,100,130,.55)}
.t-err{color:var(--berry);font-size:.9rem;min-height:1.2em}
.t-foot{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:6px}
.t-small{font-size:.85rem;color:var(--muted)}
.t-done{position:absolute;inset:0;display:grid;place-content:center;text-align:center;padding:30px;background:var(--paper);opacity:0;pointer-events:none;transition:opacity .8s .5s var(--ease)}
.t-done-big{font-family:var(--hand);font-size:clamp(2.6rem,5vw,3.6rem);color:var(--cobalt);line-height:1;transform:rotate(-4deg);margin-bottom:12px}
.ticket.is-sent{transform:rotate(-2deg) translateY(-8px)}
.ticket.is-sent .t-done{opacity:1;pointer-events:auto}
.ticket.is-sent>*:not(.t-done){display:none}
.ticket.is-sent .t-done{position:relative;inset:auto;padding:70px 20px 60px;animation:up .8s var(--ease) both;opacity:1}
.t-stamp{display:inline-block;margin:0 auto 22px;padding:6px 14px;border:2.5px solid var(--berry);color:var(--berry);font-weight:800;letter-spacing:.22em;font-size:.8rem;border-radius:4px;opacity:0}
.ticket.is-sent .t-stamp{animation:stamp .55s .35s cubic-bezier(.2,1.6,.4,1) both}
@keyframes stamp{from{transform:rotate(-12deg) scale(2.4);opacity:0}to{transform:rotate(-12deg) scale(1);opacity:.9}}
.t-done>*{justify-self:center}
@media (max-width:860px){.ticket-wrap{grid-template-columns:1fr}.ticket-intro{position:relative;top:auto}.ticket{transform:none}}
.note-link{margin-left:16px;vertical-align:middle}

/* ==========================================================
   TABS · Home / Menu / Our Story / Visit
   ========================================================== */
[hidden]{display:none!important}
.nav-tabs{display:flex;gap:2px}
.nav-tab{position:relative;font-size:.86rem;font-weight:600;text-decoration:none;padding:8px 12px;border-radius:999px;opacity:.72;transition:opacity .3s}
.nav-tab:hover,.nav-tab.is-on{opacity:1}
.nav-tab::after{content:"";position:absolute;left:12px;right:12px;bottom:3px;height:2px;border-radius:2px;background:var(--cobalt);transform:scaleX(0);transition:transform .5s var(--ease)}
.nav-tab.is-on::after{transform:scaleX(1)}
.nav.on-dark .nav-tab::after{background:#7FA6FF}
@media (max-width:1180px) and (min-width:861px){.nav-clock{visibility:hidden}}
@media (max-width:860px){.nav-tabs{display:none}}

.tabbar{display:none}
@media (max-width:860px){
  .tabbar{position:fixed;left:12px;right:12px;bottom:calc(10px + env(safe-area-inset-bottom));z-index:110;display:grid;grid-template-columns:repeat(4,1fr);
    padding:7px 6px;border-radius:22px;background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:blur(16px) saturate(1.2);-webkit-backdrop-filter:blur(16px) saturate(1.2);
    box-shadow:0 14px 34px -14px rgba(14,23,51,.45),inset 0 0 0 1px rgba(14,23,51,.08);color:var(--ink);transition:background-color 1s,color 1s}
  .tabbar a{display:flex;flex-direction:column;align-items:center;gap:3px;padding:5px 0;text-decoration:none;font-size:.66rem;font-weight:600;letter-spacing:.02em;opacity:.62;border-radius:14px;transition:opacity .3s,background .3s,color .3s}
  .tabbar svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
  .tabbar a.is-on{opacity:1;color:var(--cobalt);background:rgba(47,98,214,.1)}
  body[data-chapter="evening"] .tabbar,body[data-chapter="night"] .tabbar{background:rgba(20,32,70,.78);color:#fff;box-shadow:0 14px 34px -14px rgba(0,0,0,.6),inset 0 0 0 1px rgba(255,255,255,.08)}
  body[data-chapter="evening"] .tabbar a.is-on,body[data-chapter="night"] .tabbar a.is-on{color:#9FBCFF;background:rgba(127,166,255,.14)}
  .site-foot{padding-bottom:86px}
  .window-down{bottom:96px}
}

/* frosted page transition */
.veil{position:fixed;inset:0;z-index:180;display:grid;place-items:center;pointer-events:none;opacity:0;
  background:rgba(232,240,250,.78);backdrop-filter:blur(18px) saturate(1.1);-webkit-backdrop-filter:blur(18px) saturate(1.1);transition:opacity .42s var(--ease)}
.veil.on{opacity:1;pointer-events:auto}
.veil svg{width:64px;height:64px;fill:none;stroke:var(--cobalt);stroke-width:2.6;stroke-linecap:round;opacity:.8;transform:rotate(-30deg) scale(.8);transition:transform .6s var(--ease)}
.veil.on svg{transform:rotate(0) scale(1)}

/* shared footer */
.site-foot{background:#0B1430;color:#fff}
.site-foot .foot{margin-top:0}

/* first section of each tab clears the nav */
.people{padding-top:clamp(120px,16vh,180px)}
.visit{padding-top:clamp(100px,14vh,150px)}

/* home: where to next */
.next{padding:clamp(70px,10vh,130px) var(--gutter) clamp(90px,12vh,150px);max-width:1400px;margin:0 auto}
.next .h-big{margin:12px 0 36px}
.next-signs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.next-sign{position:relative;display:grid;grid-template-columns:1fr auto;gap:6px 14px;align-items:center;padding:24px 46px 24px 26px;text-decoration:none;color:#3A1F0E;
  background:linear-gradient(180deg,#E8C58F,#D6A866);box-shadow:inset 0 -3px 0 rgba(90,45,15,.25),0 18px 30px -18px rgba(60,30,10,.6);
  clip-path:polygon(0 0,calc(100% - 26px) 0,100% 50%,calc(100% - 26px) 100%,0 100%);transition:transform .6s var(--ease),background .4s,color .4s}
.next-sign:nth-child(2){transform:rotate(1deg)}.next-sign:nth-child(3){transform:rotate(-1deg)}
.next-sign:hover{transform:translateX(8px) rotate(-1.5deg);background:linear-gradient(180deg,#24407F,#14244F);color:#fff}
.ns-k{font-family:var(--serif);font-size:clamp(1.4rem,2.2vw,1.9rem);line-height:1.05}
.ns-t{grid-column:1;font-size:.9rem;opacity:.8;line-height:1.4}
.ns-a{grid-row:1/span 2;grid-column:2;font-size:1.5rem}
@media (max-width:860px){.next-signs{grid-template-columns:1fr}}

/* shorter pastry case scroll */
.case{height:320vh}
@media (max-width:720px){.case{height:400vh}}
@media (prefers-reduced-motion:reduce){.case{height:auto}}

/* ==========================================================
   v3 · pastry case is a swipe row (no scroll pinning)
   ========================================================== */
.case{height:auto!important}
.case-sticky{position:relative;height:auto;display:block;overflow:hidden;padding:clamp(100px,14vh,150px) 0 calc(9vh + 10px)}
.case-sticky::before{display:none}
.case-head{position:relative;left:auto;top:auto;max-width:none;padding:0 var(--gutter);display:grid;grid-template-columns:1fr auto;align-items:end;gap:6px 24px}
.case-head>.kicker,.case-head>.case-title,.case-head>.case-note{grid-column:1}
.case-nav{grid-column:2;grid-row:1/span 3;align-self:end;display:flex;align-items:center;gap:10px}
.case-hint{font-family:var(--hand);font-size:1.35rem;color:var(--cedar);margin-right:6px}
.case-hint::after{content:" →";display:inline-block;animation:nudge 1.6s ease-in-out infinite}
@keyframes nudge{50%{transform:translateX(6px)}}
.case-btn{width:48px;height:48px;border-radius:50%;box-shadow:inset 0 0 0 1.5px var(--navy);color:var(--navy);font-size:1.2rem;transition:background .3s,color .3s,opacity .3s}
.case-btn:hover:not(:disabled){background:var(--navy);color:#fff}
.case-btn:disabled{opacity:.3;cursor:default}
.case-track{transform:none!important;height:auto;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scroll-snap-type:x proximity;scroll-padding:0 var(--gutter);
  padding:64px var(--gutter) 0;align-items:flex-end;cursor:grab;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.case-track::-webkit-scrollbar{display:none}
.case-track.dragging{cursor:grabbing;scroll-snap-type:none;user-select:none}
.case-track img{-webkit-user-drag:none;user-select:none}
.pastry{scroll-snap-align:start}
.case .p-tall{height:min(56vh,480px)}.case .p-mid{height:min(46vh,400px);margin-bottom:48px}.case .p-low{height:min(38vh,330px);margin-bottom:16px}
.case-end{align-self:center;padding-right:var(--gutter)}
@media (max-width:720px){
  .case-head{grid-template-columns:1fr}
  .case-nav{grid-column:1;grid-row:auto;margin-top:6px}
  .case-btn{display:none}
  .case-track{padding-top:58px}
  .case .pastry{width:68vw}.case .p-wide{width:76vw}
  .case .p-tall{height:380px}.case .p-mid{height:320px;margin-bottom:28px}.case .p-low{height:280px;margin-bottom:10px}
}

/* ==========================================================
   v3 · menu: House Runs always, "Make it yours" only with the soda sign
   ========================================================== */
.runs{padding:clamp(40px,8vh,90px) var(--gutter) 0;max-width:1500px;margin:0 auto}
.runs .trailmap{margin-top:0;border-radius:22px}
.pour{padding-bottom:clamp(80px,12vh,140px)}
.pour.is-collapsed{display:none}
.pour.just-open{animation:pourReveal .9s var(--ease) both}
@keyframes pourReveal{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}
.soda-link{display:inline;color:var(--cobalt);font-family:var(--sans);font-weight:600;font-size:1rem;line-height:1.5;text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:4px;transition:color .3s}
.soda-link:hover{color:var(--navy)}
.paper .plain.small:has(.soda-link){margin-top:20px}

/* ============ THANKSGIVING 2026 (seasonal) ============ */
.next-signs{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:1100px){.next-signs{grid-template-columns:1fr 1fr}}
@media (max-width:860px){.next-signs{grid-template-columns:1fr}}
.tday{--harvest:#B4532A;--harvest-2:#8A3B1C;padding:clamp(100px,14vh,170px) var(--gutter) clamp(40px,6vw,80px);max-width:1500px;margin:0 auto}
.tday-head{text-align:center;max-width:760px;margin:0 auto}
.tday-head .kicker{color:var(--harvest)}
.tday-head .h-big{color:var(--ink)}
.tday-head .lede{margin-left:auto;margin-right:auto}
.tday-dates{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin:38px auto 56px}
.tday-dates li{display:grid;gap:2px;text-align:center;padding:14px 22px;border-radius:14px;background:var(--paper);box-shadow:0 1px 0 rgba(0,0,0,.04),0 18px 30px -24px rgba(60,30,10,.5)}
.tday-dates span{font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:600}
.tday-dates b{font-family:var(--serif);font-weight:400;font-size:1.15rem;color:var(--harvest-2)}
.tday-packs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.tday-pack{position:relative;display:flex;flex-direction:column;background:var(--paper);border-radius:6px;padding:30px 24px 24px;box-shadow:0 1px 0 rgba(0,0,0,.04),0 40px 70px -50px rgba(60,30,10,.7);border-top:6px solid var(--harvest)}
.tday-pack.is-pop{background:var(--navy);color:#fff;border-top-color:#E7C79F;transform:translateY(-8px)}
.tp-serves{font-family:var(--hand);font-size:1.45rem;color:var(--harvest);line-height:1}
.is-pop .tp-serves{color:#E7C79F}
.tday-pack h3{font-family:var(--serif);font-weight:400;font-size:clamp(1.45rem,1.9vw,1.8rem);line-height:1.05;margin-top:8px}
.tp-price{font-family:var(--serif);font-size:clamp(2.4rem,3.4vw,3rem);line-height:1;margin-top:14px;color:var(--harvest-2)}
.is-pop .tp-price{color:#fff}
.tday-pack ul{list-style:none;display:grid;gap:8px;margin:20px 0 22px;padding-top:18px;border-top:1px dashed rgba(14,23,51,.2);font-size:.95rem}
.is-pop ul{border-color:rgba(255,255,255,.25)}
.tday-pack li{padding-left:18px;position:relative}
.tday-pack li::before{content:"♥";position:absolute;left:0;top:0;font-size:.7rem;color:var(--copper);line-height:1.9}
.tday-pack em{font-style:normal;font-weight:700}
.tp-pick{margin-top:auto;align-self:flex-start;font-weight:600;font-size:.92rem;color:var(--cobalt);border-bottom:1.5px solid currentColor;padding-bottom:1px}
.is-pop .tp-pick{color:#9DBBFF}
.tday-choices{display:grid;grid-template-columns:1fr 1fr 1.3fr;gap:18px;margin-top:40px;align-items:start}
.paper.paper-static{display:block;position:relative;animation:none}
.paper-static .items li{opacity:1;transform:none;animation:none}
.tday-list{list-style:none;display:grid;gap:9px}
.tday-list li{padding-left:18px;position:relative}
.tday-list li::before{content:"♥";position:absolute;left:0;font-size:.7rem;color:var(--copper);line-height:2.1}
.tday-list b{font-weight:700}
.tday-cta{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:26px 40px;align-items:center;margin-top:40px;padding:clamp(24px,3vw,40px);border-radius:8px;background:var(--navy);color:#fff}
.tday-early{font-family:var(--serif);font-size:clamp(1.2rem,1.8vw,1.55rem);line-height:1.25}
.tday-how{color:#C9D3EA;margin-top:8px;font-size:.95rem}
.tday-btns{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.tday-btns .btn{background:#fff;color:var(--ink)}
.tday-btns .btn:hover{background:#6E9BFF;color:#fff}
.tday-btns .btn-outline{background:transparent;color:#fff;box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.5)}
.tday-btns .ink-link{color:#9DBBFF;margin-top:0;flex-basis:100%}
@media (max-width:1100px){.tday-packs{grid-template-columns:1fr 1fr}.tday-pack.is-pop{transform:none}.tday-choices{grid-template-columns:1fr 1fr}.tday-alc{grid-column:1/-1}}
@media (max-width:700px){.tday-packs,.tday-choices{grid-template-columns:1fr}.tday-cta{grid-template-columns:1fr}}
