/* Vinkó Pékség × Kebab City Point */
:root{
  --canvas:#15100c;--panel:#211912;--panel-2:#2b2017;--line:rgba(236,210,160,.14);--line-strong:rgba(236,210,160,.42);
  --wheat:#ecd2a0;--wheat-2:#f5e6c6;--ink:#2a1d12;
  --text:#f6ecdf;--text-2:#c9b8a3;--text-3:#9c8a76;
  --accent:#e2482b;--accent-hover:#f2603f;--ember:#ff8a3d;--herb:#86a05a;
  --display:"Big Shoulders Display",Impact,"Arial Narrow",sans-serif;
  --body:"Instrument Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --mono:"JetBrains Mono",ui-monospace,Menlo,monospace;
  --ease:cubic-bezier(.22,.8,.24,1);--ease-io:cubic-bezier(.65,0,.35,1);
  --tshadow:0 1px 2px rgba(10,6,3,.95),0 3px 12px rgba(10,6,3,.78),0 10px 44px rgba(10,6,3,.8);
  --pad:clamp(20px,5vw,72px);--maxw:1320px;
}
*,*::before,*::after{box-sizing:border-box}
html{overflow-x:hidden;overflow-x:clip;scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;overflow-x:hidden;overflow-x:clip;background:var(--canvas);color:var(--text);font:400 17px/1.6 var(--body);-webkit-font-smoothing:antialiased;animation:pagein 1s var(--ease) both}
@keyframes pagein{from{opacity:0}to{opacity:1}}
img{max-width:100%;display:block}
a{color:inherit}
button{font:inherit;color:inherit}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:fixed;left:16px;top:-60px;z-index:100;background:var(--accent);color:#fff;padding:10px 16px;border-radius:8px;transition:top .3s var(--ease)}
.skip:focus{top:12px}
:focus-visible{outline:2px solid var(--accent-hover);outline-offset:3px;border-radius:4px}
main:focus{outline:none}

/* ---------- environment ---------- */
.env{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
.env::before{content:"";position:absolute;inset:-30%;background:radial-gradient(40% 35% at 30% 40%,rgba(255,138,61,.10),transparent 70%),radial-gradient(35% 30% at 75% 70%,rgba(226,72,43,.07),transparent 70%);animation:envdrift 80s ease-in-out -20s infinite alternate}
@keyframes envdrift{to{transform:translate(6%,-5%) rotate(8deg)}}
.env canvas{position:absolute;inset:0;width:100%;height:100%}
.grain{position:fixed;inset:0;z-index:60;pointer-events:none;opacity:.07;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='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}

/* ---------- nav ---------- */
.nav{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;align-items:center;gap:28px;padding:18px var(--pad);transition:background .5s var(--ease),padding .5s var(--ease),box-shadow .5s var(--ease)}
.nav.solid{background:rgba(21,16,12,.82);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);padding-top:12px;padding-bottom:12px;box-shadow:0 1px 0 var(--line)}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;margin-right:auto}
.brand svg{width:38px;height:38px;flex:none}
.brand b{display:block;font:900 22px/0.9 var(--display);letter-spacing:.04em;text-transform:uppercase}
.brand small{display:block;font:500 10px/1.2 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--text-2);margin-top:4px}
.nav-links{display:flex;gap:26px;list-style:none;margin:0;padding:0}
.nav-extra{display:none}
.nav-links a{text-decoration:none;font:500 12px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--text-2);position:relative;padding:8px 0;transition:color .3s var(--ease)}
.nav-links a::after{content:"";position:absolute;left:0;right:0;bottom:2px;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:right;transition:transform .45s var(--ease)}
.nav-links a:hover{color:var(--text)}
.nav-links a:hover::after{transform:scaleX(1);transform-origin:left}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;border:0;cursor:pointer;text-decoration:none;font:600 15px/1 var(--body);letter-spacing:.01em;padding:15px 24px;border-radius:999px;transition:transform .35s var(--ease),background .3s var(--ease),color .3s var(--ease),box-shadow .35s var(--ease);text-shadow:none;white-space:nowrap}
.btn svg{width:18px;height:18px;flex:none}
.btn-red{background:var(--accent);color:#fff;box-shadow:0 10px 30px -10px rgba(226,72,43,.7)}
.btn-red:hover{background:var(--accent-hover);transform:translateY(-2px);box-shadow:0 16px 36px -12px rgba(242,96,63,.8)}
.btn-ghost{background:rgba(246,236,223,.08);color:var(--text);box-shadow:inset 0 0 0 1px rgba(246,236,223,.34);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.btn-ghost:hover{background:rgba(246,236,223,.16);transform:translateY(-2px)}
.btn-sm{padding:11px 18px;font-size:14px}
.burger{display:none;width:44px;height:44px;border:0;background:rgba(246,236,223,.08);border-radius:12px;cursor:pointer;position:relative}
.burger span{position:absolute;left:12px;right:12px;height:2px;background:var(--text);border-radius:2px;transition:transform .4s var(--ease),opacity .3s}
.burger span:nth-child(1){top:16px}.burger span:nth-child(2){top:26px}
.nav.open .burger span:nth-child(1){transform:translateY(5px) rotate(45deg)}
.nav.open .burger span:nth-child(2){transform:translateY(-5px) rotate(-45deg)}
@media (max-width:980px){
  .nav-links{position:fixed;inset:0;z-index:-1;flex-direction:column;justify-content:center;align-items:flex-start;gap:6px;padding:90px var(--pad) 40px;background:#110c09;opacity:0;visibility:hidden;transition:opacity .45s var(--ease),visibility 0s .45s}
  .nav-links a{font:900 clamp(44px,13vw,72px)/1.05 var(--display);letter-spacing:.01em;color:var(--text);text-transform:uppercase}
  .nav-links li{transform:translateY(20px);opacity:0;transition:transform .6s var(--ease),opacity .6s var(--ease)}
  .nav.open .nav-links{opacity:1;visibility:visible;transition:opacity .45s var(--ease)}
  .nav.open .nav-links li{transform:none;opacity:1}
  .nav.open .nav-links li:nth-child(2){transition-delay:.05s}.nav.open .nav-links li:nth-child(3){transition-delay:.1s}.nav.open .nav-links li:nth-child(4){transition-delay:.15s}.nav.open .nav-links li:nth-child(5){transition-delay:.2s}
  .burger{display:block}
  .nav-links .nav-extra{display:flex;flex-direction:column;align-items:flex-start;gap:12px;margin-top:26px}
  .nav-links .nav-extra a.btn{font:600 16px/1 var(--body);letter-spacing:0;text-transform:none;color:#fff;padding:16px 26px}
  .nav-links .nav-extra a.btn::after{display:none}
  .nav-links .nav-extra span{font:500 12px/1.4 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--text-2)}
  .nav.open .nav-links li:nth-child(6){transition-delay:.25s}
  .nav .nav-cta{display:none}
}

/* ---------- hero ---------- */
.hero{position:relative;height:900vh;background:var(--canvas)}
.stage{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;isolation:isolate}
.media{position:absolute;inset:0;transform-origin:50% 50%;will-change:transform}
.media .poster,.media .poster-end,.media video,.media canvas{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background-size:cover;background-position:center}
.media .poster-end{opacity:0;transition:opacity .9s var(--ease)}
.media video{opacity:0;transition:opacity .9s var(--ease);transform:translateZ(0)}
.media canvas{display:none;opacity:0;transition:opacity .9s var(--ease)}
.stage.seq canvas{display:block}
.stage.seq video{display:none}
.stage.video-ready video,.stage.video-ready canvas{opacity:1}
.stage.video-failed.at-end .poster-end{opacity:1}
.scrim{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 120% 90% at 50% 45%,rgba(14,9,5,0) 40%,rgba(14,9,5,.6) 100%),linear-gradient(to bottom,rgba(14,9,5,.55),rgba(14,9,5,0) 22%,rgba(14,9,5,0) 78%,rgba(14,9,5,.7))}
.band{position:absolute;inset:0;display:grid;grid-template-columns:minmax(0,26%) 1fr minmax(0,26%);align-items:center;padding:110px var(--pad) 80px;pointer-events:none;opacity:0;text-shadow:var(--tshadow);isolation:isolate}
.band .col{position:relative;pointer-events:auto}
.band .col::before{content:"";position:absolute;inset:-45% -60%;z-index:-1;pointer-events:none;opacity:calc(.3 + .7*var(--k,1));background:radial-gradient(ellipse 58% 54% at 50% 50%,rgba(12,7,4,.86) 0%,rgba(12,7,4,.72) 40%,rgba(12,7,4,.3) 64%,rgba(12,7,4,0) 80%)}
.band .col:empty::before{display:none}
.band .col-l{grid-column:1}.band .col-r{grid-column:3}
.band .btn{text-shadow:none}
.kicker{display:inline-flex;align-items:center;gap:10px;font:500 12px/1.3 var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--wheat)}
.kicker::before{content:"";width:22px;height:1px;background:var(--accent)}
.h-hero{font:900 clamp(52px,min(6.4vw,11vh),118px)/.86 var(--display);text-transform:uppercase;letter-spacing:-.005em;margin:.18em 0 0}
.h-band{font:900 clamp(42px,min(4.8vw,9vh),88px)/.9 var(--display);text-transform:uppercase;margin:0}
.lede{font:400 clamp(17px,1.35vw,21px)/1.5 var(--body);color:var(--text);max-width:30ch;margin:18px 0 0}
.chip{display:inline-flex;align-items:center;gap:8px;margin-top:22px;padding:9px 14px;background:rgba(20,13,8,.6);border:1px solid rgba(236,210,160,.22);border-radius:10px;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);font:500 12px/1.3 var(--mono);letter-spacing:.08em;color:var(--wheat);text-shadow:0 1px 3px rgba(5,5,5,.85)}
.chip i{width:7px;height:7px;border-radius:50%;background:var(--herb);box-shadow:0 0 0 4px rgba(134,160,90,.2)}
.chip.closed i{background:var(--text-3);box-shadow:none}
.hero-price{display:flex;align-items:baseline;gap:10px;margin-top:10px}
.hero-price b{font:900 clamp(64px,min(7vw,13vh),128px)/.85 var(--display);color:var(--text)}
.hero-price span{font:700 clamp(22px,2vw,32px)/1 var(--display);text-transform:uppercase;color:var(--wheat)}
.ctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}
.col-r .ctas{justify-content:flex-start}
.band.b5{align-items:start;padding-top:max(120px,15vh)}

/* split text */
.w{display:inline-block;white-space:nowrap}
.c{display:inline-block}
.soft-wrap{position:relative;display:block}
.soft-wrap .soft{position:absolute;inset:0;filter:blur(12px);opacity:calc((1 - var(--k,0))*.8);pointer-events:none}
/* entrances, all off --k */
.fx-blur .sharp .w{--kc:clamp(0,(var(--k,0) - var(--th,0))*2.4,1);opacity:var(--kc);transform:scale(calc(1.08 - .08*var(--kc)))}
.fx-shave .c{--kc:clamp(0,(var(--k,0) - var(--th,0))*2.6,1);opacity:var(--kc);transform:translate(calc((1 - var(--kc))*var(--jx,40px)),calc((1 - var(--kc))*var(--jy,-30px))) rotate(calc((1 - var(--kc))*var(--jr,14deg)))}
.fx-drift .w{--kc:clamp(0,(var(--k,0) - var(--th,0))*2.8,1);opacity:var(--kc);transform:translateY(calc((1 - var(--kc))*-28px))}
.fx-punch .w{--kc:clamp(0,(var(--k,0) - var(--th,0))*3,1);--ks:clamp(0,(var(--k,0) - var(--th,0) - var(--sd,.1))*var(--ss,3.2),1);opacity:var(--kc);transform:scale(calc(.6 + (.4 + var(--ov,.12))*var(--kc) - var(--ov,.12)*var(--ks)))}
.fx-punch .w.em{--ov:.24;--sd:.16;--ss:2.6;color:var(--wheat)}
.fx-rise .w{--kc:clamp(0,(var(--k,0) - var(--th,0))*2.6,1);opacity:var(--kc);transform:translateY(calc((1 - var(--kc))*34px))}
.band .sub{--ks:clamp(0,(var(--k,0) - .45)*2.6,1);opacity:var(--ks);transform:translateY(calc((1 - var(--ks))*14px))}
.band .sub2{--kb:clamp(0,(var(--k,0) - .7)*3.4,1);opacity:var(--kb);transform:translateY(calc((1 - var(--kb))*14px))}

/* rail */
.rail{position:absolute;right:calc(var(--pad)*.45);top:50%;height:38vh;width:2px;transform:translateY(-50%);background:rgba(246,236,223,.14);border-radius:2px}
.rail-fill{position:absolute;left:0;top:0;width:100%;height:100%;background:linear-gradient(var(--ember),var(--accent));transform-origin:top;transform:scaleY(var(--p,0));border-radius:2px}
.rail-n{position:absolute;left:-14px;top:-30px;font:500 11px/1 var(--mono);letter-spacing:.1em;color:var(--text-2)}
.rail-knife{position:absolute;left:50%;top:calc(var(--p,0)*100%);width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;background:var(--canvas);box-shadow:inset 0 0 0 2px var(--ember)}
.ring{position:absolute;left:50%;bottom:28px;width:44px;height:44px;margin-left:-22px;color:var(--ember);transform:rotate(-90deg);transition:opacity .6s var(--ease)}
.ring .tr{stroke:rgba(246,236,223,.16)}
.stage.video-ready .ring,.stage.video-failed .ring{opacity:0}
.cue{position:absolute;left:50%;bottom:26px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;font:500 10px/1 var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--text-2);opacity:0;transition:opacity .6s var(--ease)}
.cue i{width:1px;height:34px;background:linear-gradient(var(--text-2),transparent);animation:cue 2.2s var(--ease) -1s infinite}
@keyframes cue{0%{transform:scaleY(0);transform-origin:top}45%{transform:scaleY(1);transform-origin:top}55%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
.stage.video-ready .cue,.stage.video-failed .cue{opacity:1}
.stage.past-start .cue{opacity:0}
.static-copy{display:none}

/* phones + portrait: scrub stays, layout stacks, film shrinks to a band at the end */
@media (orientation:portrait) and (max-width:900px){
  .hero{height:760vh}
  .media video,.media canvas,.media .poster,.media .poster-end{-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 9%,#000 91%,transparent 100%);mask-image:linear-gradient(to bottom,transparent 0,#000 9%,#000 91%,transparent 100%)}
  .scrim{background:linear-gradient(to bottom,rgba(14,9,5,.6),rgba(14,9,5,0) 20%,rgba(14,9,5,0) 42%,rgba(14,9,5,.82) 74%,rgba(14,9,5,.92))}
  .band{display:flex;flex-direction:column;justify-content:flex-end;align-items:stretch;padding:96px 22px calc(54px + env(safe-area-inset-bottom))}
  .band .col::before{display:none}
  .band .col-r{margin-top:14px}
  .band.b5{padding-top:96px}
  .band.b5 .lede{display:none}
  .h-hero{font-size:clamp(54px,16vw,84px)}
  .h-band{font-size:clamp(44px,13vw,70px)}
  .lede{font-size:16px;max-width:34ch;margin-top:12px}
  .chip{margin-top:14px}
  .hero-price b{font-size:clamp(64px,19vw,96px)}
  .ctas{margin-top:16px}
  .ctas .btn{flex:1 1 0;padding:15px 14px}
  .rail{right:10px;height:26vh;top:40%}
  .cue{display:none}
  .ring{bottom:auto;top:84px}
}
@media (max-height:560px) and (orientation:landscape){.rail,.cue{display:none}.band{padding-top:76px;padding-bottom:24px}.h-hero{font-size:56px}.h-band{font-size:46px}.lede{font-size:15px}}

/* static hero (reduced motion) */
.hero.static{height:auto;min-height:100svh}
.hero.static .stage{position:relative;height:100svh;min-height:620px}
.hero.static .band,.hero.static .rail,.hero.static .ring,.hero.static .cue{display:none}
.hero.static .poster-end{opacity:1}
.hero.static .static-copy{display:flex;position:absolute;inset:0;flex-direction:column;justify-content:flex-end;padding:120px var(--pad) 70px;text-shadow:var(--tshadow);background:linear-gradient(to top,rgba(14,9,5,.9),rgba(14,9,5,.2) 60%,transparent)}
.hero.static .static-copy .btn{text-shadow:none}

/* ---------- sections ---------- */
section{position:relative;scroll-margin-top:64px}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--pad)}
.sec{padding:clamp(90px,12vw,170px) 0}
.eyebrow{display:inline-flex;align-items:center;gap:12px;font:500 12px/1.3 var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--ember)}
.eyebrow::before{content:"";width:28px;height:1px;background:currentColor}
.h2{font:900 clamp(52px,7.4vw,124px)/.88 var(--display);text-transform:uppercase;margin:.2em 0 0;letter-spacing:-.005em}
.h2 em{font-style:normal;color:var(--wheat)}
.p{color:var(--text-2);font-size:clamp(17px,1.3vw,19px);max-width:52ch}
/* masked word reveal */
.mask .mw{display:inline-block;overflow:hidden;padding:.06em .02em .14em;margin:-.06em -.02em -.14em;vertical-align:top}
.mask .mw>span{display:inline-block;transform:translateY(105%);transition:transform 1s var(--ease)}
.mask.in .mw>span{transform:none}
[data-reveal]{opacity:0;transform:translateY(26px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
[data-reveal].in{opacity:1;transform:none}
.curtain{position:relative;overflow:hidden}
.curtain::after{content:"";position:absolute;inset:0;background:var(--panel-2);transform-origin:top;transition:transform 1.2s var(--ease-io)}
.curtain.in::after{transform:scaleY(0)}
.curtain img{transform:scale(1.14);transition:transform 1.8s var(--ease)}
.curtain.in img{transform:scale(1.02)}

/* divider that draws itself */
.spit-line{display:block;width:100%;height:40px;color:var(--line-strong)}
.spit-line path{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 2.2s var(--ease-io)}
.spit-line.in path{stroke-dashoffset:0}
.spit-line .flame{fill:var(--ember);opacity:0;transform-origin:center;transition:opacity .8s 1.6s var(--ease)}
.spit-line.in .flame{opacity:1;animation:flick 4s ease-in-out -1.3s infinite}
@keyframes flick{50%{transform:scale(1.15,.9)}}

/* story */
.story .grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(40px,6vw,96px);align-items:center}
.story .img-a{aspect-ratio:4/5;border-radius:22px}
.story .img-a img{width:100%;height:100%;object-fit:cover}
.story .float{position:absolute;right:-6%;bottom:-8%;width:46%;aspect-ratio:1;border-radius:18px;box-shadow:0 30px 60px -20px rgba(0,0,0,.7);border:6px solid var(--canvas)}
.story .float img{width:100%;height:100%;object-fit:cover}
.story .media-col{position:relative}
.facts{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:44px}
.fact{border-top:1px solid var(--line-strong);padding-top:16px}
.fact b{display:block;font:900 clamp(34px,3.6vw,56px)/1 var(--display);color:var(--text);white-space:nowrap}
.fact>span{display:block;font-size:14px;color:var(--text-2);margin-top:8px;line-height:1.4}

/* menu board (signature) */
.board-sec{padding-top:clamp(60px,8vw,120px)}
.board-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:40px}
.board{position:relative;border-radius:28px;background:linear-gradient(180deg,#241a12,#1a130d);box-shadow:inset 0 0 0 1px rgba(236,210,160,.16),0 50px 100px -40px rgba(0,0,0,.8);overflow:hidden;isolation:isolate}
.board::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(70% 60% at 85% 0%,rgba(255,138,61,.16),transparent 70%);opacity:.6;animation:boardglow 9s ease-in-out -3s infinite alternate}
.board.paused-off::before{animation-play-state:paused}
@keyframes boardglow{to{opacity:1}}
.board::after{content:"";position:absolute;top:0;left:-40%;width:30%;height:1px;background:linear-gradient(90deg,transparent,rgba(255,170,110,.9),transparent);animation:sweep 7s var(--ease-io) -2s infinite}
@keyframes sweep{to{transform:translateX(560%)}}
.tabs{display:flex;gap:6px;padding:14px;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none}
.tabs::-webkit-scrollbar{display:none}
.tab{flex:none;border:0;cursor:pointer;background:transparent;color:var(--text-2);font:500 12px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;padding:14px 18px;border-radius:999px;transition:background .35s var(--ease),color .35s var(--ease)}
.tab:hover{color:var(--text)}
.tab[aria-selected="true"]{background:var(--wheat);color:var(--ink)}
.board-body{display:grid;grid-template-columns:1fr 38%;min-height:560px}
.panel{display:none;padding:clamp(22px,3vw,44px)}
.panel.on{display:block}
.cols-head{display:grid;grid-template-columns:1fr 110px 110px;gap:12px;font:500 11px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--text-3);padding-bottom:12px;border-bottom:1px solid var(--line)}
.cols-head span:not(:first-child){text-align:right}
.item{display:grid;grid-template-columns:1fr 110px 110px;gap:12px;align-items:baseline;padding:20px 0;border-bottom:1px dashed var(--line);opacity:0;transform:translateY(14px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.panel.show .item{opacity:1;transform:none}
.panel.show .item:nth-child(3){transition-delay:.07s}.panel.show .item:nth-child(4){transition-delay:.14s}.panel.show .item:nth-child(5){transition-delay:.21s}.panel.show .item:nth-child(6){transition-delay:.28s}
.panel.settled .item{transition-delay:0s!important}
.item h3{font:900 clamp(26px,2.5vw,36px)/1 var(--display);text-transform:uppercase;margin:0;letter-spacing:.01em}
.item p{margin:6px 0 0;font-size:14.5px;line-height:1.45;color:var(--text-2);max-width:46ch}
.tag{display:inline-block;vertical-align:middle;margin-left:8px;padding:4px 8px 3px;border-radius:6px;font:500 10px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;background:var(--accent);color:#fff;transform:translateY(-4px)}
.tag.veg{background:var(--herb)}
.price{justify-self:end;display:inline-flex;align-items:baseline;gap:4px;font:900 clamp(30px,2.8vw,42px)/1 var(--display);color:var(--text);white-space:nowrap}
.price small{font:700 14px/1 var(--display);color:var(--text-2);letter-spacing:.04em}
.price.xxl{color:var(--wheat)}
.price.na{color:var(--text-3);font-size:22px}
.odo{display:inline-flex;overflow:hidden;height:1em;line-height:1}
.odo .d{display:inline-flex;flex-direction:column;transition:transform 1.4s var(--ease);will-change:transform}
.odo .d span{display:block;height:1em}
.odo .sp{display:inline-block;width:.18em}
.board-side{position:relative;border-left:1px solid var(--line);overflow:hidden}
.board-side figure{position:absolute;inset:0;margin:0;opacity:0;transform:scale(1.06);transition:opacity .9s var(--ease),transform 1.6s var(--ease)}
.board-side figure.on{opacity:1;transform:none}
.board-side img{width:100%;height:100%;object-fit:cover}
.board-side figcaption{position:absolute;left:18px;bottom:18px;right:18px;font:500 11px/1.4 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--wheat);text-shadow:0 1px 6px rgba(0,0,0,.9)}
.extras{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.extras span{font:500 12px/1 var(--mono);letter-spacing:.06em;color:var(--text-2);padding:10px 12px;border-radius:999px;box-shadow:inset 0 0 0 1px var(--line-strong)}
.extras b{color:var(--text);font-weight:500}

/* builder (the interactive moment) */
.builder{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,5vw,80px);align-items:start}
.plate{position:sticky;top:110px;aspect-ratio:1;max-width:560px;width:100%;margin:0 auto}
.plate svg{width:100%;height:100%;overflow:visible}
.plate .grp{transition:opacity .5s var(--ease),transform .7s cubic-bezier(.3,1.5,.5,1);transform-box:fill-box;transform-origin:center}
.plate .grp.off{opacity:0;transform:translateY(-40px) scale(.7)}
.plate .base{transition:opacity .6s var(--ease)}
.plate .base.off{opacity:0}
.plate .steam path{animation:steam 5s ease-in-out infinite;opacity:.0}
.plate .steam path:nth-child(2){animation-delay:-1.7s}.plate .steam path:nth-child(3){animation-delay:-3.4s}
@keyframes steam{0%{opacity:0;transform:translateY(10px)}40%{opacity:.45}100%{opacity:0;transform:translateY(-40px)}}
.opts{display:flex;flex-direction:column;gap:28px}
.opt h3{font:500 12px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--text-3);margin:0 0 12px}
.pills{display:flex;flex-wrap:wrap;gap:8px}
.pill{border:0;cursor:pointer;padding:12px 16px;border-radius:14px;background:var(--panel);box-shadow:inset 0 0 0 1px var(--line);color:var(--text);font:500 15px/1.1 var(--body);display:inline-flex;align-items:baseline;gap:8px;transition:background .3s var(--ease),box-shadow .3s var(--ease),transform .3s var(--ease),color .3s}
.pill small{font:500 11px/1 var(--mono);color:var(--text-3)}
.pill:hover{transform:translateY(-2px);box-shadow:inset 0 0 0 1px var(--line-strong)}
.pill[aria-pressed="true"]{background:var(--wheat);color:var(--ink);box-shadow:none}
.pill[aria-pressed="true"] small{color:#6d553b}
.pill:disabled{opacity:.35;cursor:not-allowed;transform:none}
.total{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:22px 24px;border-radius:20px;background:linear-gradient(180deg,#2a1e14,#211811);box-shadow:inset 0 0 0 1px rgba(236,210,160,.2)}
.total .lbl{font:500 11px/1.4 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--text-3)}
.total .sum{display:flex;align-items:baseline;gap:6px;font:900 clamp(52px,5vw,72px)/1 var(--display)}
.total .sum small{font:700 20px/1 var(--display);color:var(--wheat)}
.total .name{font-size:14px;color:var(--text-2);margin-top:4px;max-width:30ch}
.total .odo .d{transition-duration:.7s}

/* burgers */
.burgers{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(30px,5vw,70px);align-items:center}
.burger-img{position:relative;border-radius:26px;aspect-ratio:4/5}
.burger-img img{width:100%;height:100%;object-fit:cover}
.burger-img .stamp{position:absolute;top:18px;left:18px;width:108px;height:108px;animation:spin 26s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.blist{list-style:none;margin:30px 0 0;padding:0;counter-reset:b}
.blist li{display:grid;grid-template-columns:44px 1fr auto;gap:14px;align-items:baseline;padding:18px 0;border-bottom:1px solid var(--line);counter-increment:b;transition:padding .4s var(--ease),background .4s var(--ease)}
.blist li::before{content:counter(b,decimal-leading-zero);font:500 12px/1 var(--mono);color:var(--text-3)}
.blist li:hover{padding-left:10px}
.blist h3{font:900 clamp(24px,2.3vw,32px)/1 var(--display);text-transform:uppercase;margin:0}
.blist p{margin:5px 0 0;font-size:14.5px;color:var(--text-2);line-height:1.45}
.blist .price{font-size:clamp(28px,2.6vw,38px)}
.menu-note{margin-top:22px;display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center;font-size:15px;color:var(--text-2)}
.menu-note b{font:900 26px/1 var(--display);color:var(--wheat)}

/* bakery: dawn environment flip */
.bakery{background:var(--wheat-2);color:var(--ink);overflow:hidden}
.bakery::before{content:"";position:absolute;inset:0;background:radial-gradient(60% 50% at 80% 10%,rgba(255,200,140,.55),transparent 70%),radial-gradient(50% 50% at 0% 100%,rgba(226,72,43,.08),transparent 70%);pointer-events:none}
.bakery .eyebrow{color:#a6421f}
.bakery .h2 em{color:#a6421f}
.bakery .p{color:#5b4632}
.bakery .grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,5vw,80px);align-items:start;position:relative}
.bake-img{border-radius:26px;aspect-ratio:5/4;margin-top:40px}
.bake-img img{width:100%;height:100%;object-fit:cover}
.bake-cols{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:10px}
.bake-cols h3{font:500 12px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:#8a6f52;margin:0 0 6px}
.bake-cols ul{list-style:none;margin:0;padding:0}
.bake-cols li{display:flex;align-items:baseline;gap:10px;padding:11px 0;border-bottom:1px dashed rgba(42,29,18,.2);font-size:16px}
.bake-cols li span{flex:1;font-weight:500}
.bake-cols li i{flex:1;border-bottom:1px dotted rgba(42,29,18,.25);transform:translateY(-4px)}
.bake-cols li span{flex:none}
.bake-cols li b{font:900 24px/1 var(--display);color:var(--ink)}
.bake-cols li b small{font:700 12px/1 var(--display);color:#8a6f52;margin-left:2px}
.morning{margin-top:30px;display:flex;align-items:center;gap:18px;padding:20px 22px;border-radius:18px;background:var(--ink);color:var(--wheat-2)}
.morning .sunrise{width:58px;height:58px;flex:none}
.morning b{display:block;font:900 26px/1 var(--display);text-transform:uppercase;color:#fff}
.morning div>span{font-size:14.5px;color:#d9c6a6}
.morning .price{margin-left:auto;color:#fff}
.wheat-ear{position:absolute;right:-30px;top:40px;width:200px;opacity:.16;color:var(--ink)}
.wheat-ear path{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 2.6s var(--ease-io)}
.wheat-ear.in path{stroke-dashoffset:0}

/* place + map */
.place .grid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(24px,4vw,56px);align-items:stretch;margin-top:46px}
.mapcard{position:relative;border-radius:26px;overflow:hidden;min-height:480px;box-shadow:inset 0 0 0 1px var(--line),0 40px 80px -40px rgba(0,0,0,.8);background:var(--panel)}
.mapcard iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:invert(.9) hue-rotate(180deg) sepia(.35) saturate(1.3) brightness(.92) contrast(.92)}
.mapcard .corner{position:absolute;width:26px;height:26px;border:2px solid var(--ember);pointer-events:none}
.mapcard .tl{top:14px;left:14px;border-right:0;border-bottom:0;border-radius:10px 0 0 0}
.mapcard .br{bottom:14px;right:14px;border-left:0;border-top:0;border-radius:0 0 10px 0}
.mapcard .addr{position:absolute;left:18px;bottom:18px;right:70px;display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:16px;background:rgba(21,16,12,.88);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:inset 0 0 0 1px var(--line)}
.pin{position:relative;width:38px;height:38px;flex:none;border-radius:50%;background:var(--accent);display:grid;place-items:center}
.pin::before{content:"";position:absolute;inset:0;border-radius:50%;background:var(--accent);animation:pulse 2.6s var(--ease) -1s infinite}
@keyframes pulse{from{transform:scale(1);opacity:.6}to{transform:scale(2.4);opacity:0}}
.pin svg{width:18px;height:18px;position:relative}
.addr b{display:block;font:900 22px/1 var(--display);text-transform:uppercase}
.addr span{font-size:13.5px;color:var(--text-2)}
.info{display:flex;flex-direction:column;gap:18px}
.interior{border-radius:22px;aspect-ratio:16/10}
.interior img{width:100%;height:100%;object-fit:cover}
.hours{border-radius:22px;padding:22px 24px;background:var(--panel);box-shadow:inset 0 0 0 1px var(--line)}
.hours h3{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin:0 0 10px;font:500 12px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--text-3)}
.hours ul{list-style:none;margin:0;padding:0}
.hours li{display:flex;justify-content:space-between;padding:9px 0;border-bottom:1px solid var(--line);font-size:15.5px}
.hours li:last-child{border-bottom:0}
.hours li.today{color:var(--wheat);font-weight:600}
.hours li b{font-weight:500;font-variant-numeric:tabular-nums}
.status{display:inline-flex;align-items:center;gap:8px;color:var(--text);letter-spacing:.06em;white-space:nowrap}
.status i{width:8px;height:8px;border-radius:50%;background:var(--herb);box-shadow:0 0 0 4px rgba(134,160,90,.22)}
.status.closed i{background:var(--text-3);box-shadow:none}

/* faq */
.faq{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(30px,5vw,80px)}
.qa{border-bottom:1px solid var(--line)}
.qa button{width:100%;display:flex;align-items:center;justify-content:space-between;gap:20px;background:none;border:0;cursor:pointer;text-align:left;padding:24px 0;font:900 clamp(24px,2.4vw,32px)/1.05 var(--display);text-transform:uppercase;letter-spacing:.01em}
.qa button i{position:relative;width:20px;height:20px;flex:none}
.qa button i::before,.qa button i::after{content:"";position:absolute;left:0;right:0;top:9px;height:2px;background:var(--ember);transition:transform .45s var(--ease)}
.qa button i::after{transform:rotate(90deg)}
.qa button[aria-expanded="true"] i::after{transform:rotate(0)}
.qa .ans{display:grid;grid-template-rows:0fr;transition:grid-template-rows .55s var(--ease)}
.qa .ans>div{overflow:hidden}
.qa .ans p{margin:0 0 24px;color:var(--text-2);max-width:60ch}
.qa.open .ans{grid-template-rows:1fr}

/* final */
.final{text-align:center;padding:clamp(110px,14vw,200px) 0;overflow:hidden}
.final .bg{position:absolute;inset:0;background:url(hero-ending.jpg) center/cover;opacity:.32;-webkit-mask-image:radial-gradient(60% 70% at 50% 50%,#000,transparent);mask-image:radial-gradient(60% 70% at 50% 50%,#000,transparent)}
.final .wrap{position:relative}
.final .h2{font-size:clamp(60px,10vw,170px)}
.final .p{margin:22px auto 0}
.final .ctas{justify-content:center;margin-top:34px}
footer{border-top:1px solid var(--line);padding:46px 0 calc(40px + env(safe-area-inset-bottom));font-size:14px;color:var(--text-3)}
footer .wrap{display:flex;flex-wrap:wrap;gap:20px 40px;justify-content:space-between;align-items:baseline}
footer b{font:900 20px/1 var(--display);text-transform:uppercase;color:var(--text);letter-spacing:.03em}

/* mobile sticky CTA */
.mcta{display:none}
@media (max-width:760px){
  .mcta{display:flex;position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));z-index:45;gap:8px;padding:8px;border-radius:999px;background:rgba(21,16,12,.88);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:inset 0 0 0 1px var(--line),0 20px 40px -10px rgba(0,0,0,.7);transform:translateY(140%);transition:transform .6s var(--ease)}
  .mcta.on{transform:none}
  .mcta .btn{flex:1;padding:14px 10px}
  footer{padding-bottom:110px}
}

/* responsive */
@media (max-width:980px){
  .story .grid,.builder,.burgers,.bakery .grid,.place .grid,.faq{grid-template-columns:1fr}
  .story .media-col{margin-bottom:60px}
  .board-body{grid-template-columns:1fr}
  .board-side{order:-1;height:260px;border-left:0;border-bottom:1px solid var(--line)}
  .plate{position:relative;top:0;max-width:420px}
  .burger-img{aspect-ratio:4/3}
}
@media (max-width:640px){
  .facts{grid-template-columns:1fr 1fr 1fr;gap:12px}
  .fact b{font-size:34px}
  .fact>span{font-size:12.5px}
  .cols-head{grid-template-columns:1fr 78px 78px}
  .item{grid-template-columns:1fr 78px 78px;gap:8px;padding:16px 0}
  .item h3{font-size:24px}
  .item p{font-size:13.5px}
  .price{font-size:26px}
  .price small{font-size:11px}
  .bake-cols{grid-template-columns:1fr}
  .mapcard{min-height:400px}
  .mapcard .addr{right:18px}
  .blist li{grid-template-columns:30px 1fr auto;gap:10px}
  .morning{flex-wrap:wrap}
  .story .float{right:-2%;width:42%}
}
@media (pointer:coarse){.btn,.tab,.pill{min-height:44px}}

/* pause loops off-screen + hidden tab */
body.paused *,body.paused *::before,body.paused *::after{animation-play-state:paused!important}
.idle,.idle *,.idle *::before,.idle *::after{animation-play-state:paused!important}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;transition-delay:0s!important;scroll-behavior:auto!important}
  [data-reveal]{opacity:1;transform:none}
  .mask .mw>span{transform:none}
  .curtain::after{transform:scaleY(0)}
  .curtain img{transform:none}
  .spit-line path,.wheat-ear path{stroke-dashoffset:0}
  .spit-line .flame{opacity:1}
  .item{opacity:1;transform:none}
  .plate .grp.off{transform:none}
}
@media (max-width:400px){
  .brand b{font-size:19px;white-space:nowrap}
  .brand small{white-space:nowrap;letter-spacing:.1em}
  .brand svg{width:34px;height:34px}
  .nav{gap:12px}
  .cols-head{grid-template-columns:1fr 64px 64px}
  .item{grid-template-columns:1fr 64px 64px;gap:6px}
  .item h3{font-size:21px}
  .price{font-size:22px}
  .price small{font-size:10px}
  .chip{font-size:11px;letter-spacing:.04em}
}
@media (max-width:340px){.brand small{display:none}}
/* real menu: single price column panels */
.panel.one .cols-head,.panel.one .item{grid-template-columns:1fr 120px}
@media (max-width:640px){.panel.one .cols-head,.panel.one .item{grid-template-columns:1fr 90px}}
@media (max-width:400px){.panel.one .cols-head,.panel.one .item{grid-template-columns:1fr 76px}}
.panel.show .item:nth-child(7){transition-delay:.35s}
.bhead{display:grid;grid-template-columns:44px 1fr 96px 96px;gap:14px;margin-top:30px;padding-bottom:10px;border-bottom:1px solid var(--line);font:500 11px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--text-3)}
.bhead span:nth-child(n+3){text-align:right}
.blist.two{margin-top:0}
.blist.two li{grid-template-columns:44px 1fr 96px 96px}
.opt-note{margin:10px 0 0;font-size:13.5px;color:var(--text-3);min-height:1.4em}
@media (max-width:640px){
  .bhead,.blist.two li{grid-template-columns:26px 1fr 70px 70px;gap:8px}
  .blist.two .price{font-size:24px}
}
/* logo */
.brand img{width:46px;height:46px;flex:none;border-radius:50%;filter:drop-shadow(0 4px 12px rgba(0,0,0,.55))}
.hero-logo{display:block;width:clamp(96px,9vw,140px);height:auto;margin:0 0 18px;border-radius:50%;filter:drop-shadow(0 10px 30px rgba(0,0,0,.6)) drop-shadow(0 0 22px rgba(255,170,80,.18));opacity:var(--k,1);transform:scale(calc(.82 + .18*var(--k,1))) rotate(calc((1 - var(--k,1))*-14deg));transform-origin:50% 50%}
.static-copy .hero-logo{opacity:1;transform:none}
.final-logo{display:block;width:clamp(120px,12vw,170px);height:auto;margin:0 auto 26px;border-radius:50%;filter:drop-shadow(0 18px 40px rgba(0,0,0,.65)) drop-shadow(0 0 30px rgba(255,170,80,.2))}
.foot-brand{display:inline-flex;align-items:center;gap:12px}
.foot-brand img{width:52px;height:52px;border-radius:50%}
@media (orientation:portrait) and (max-width:900px){.hero-logo{width:76px;margin-bottom:12px}}
@media (max-width:400px){.brand img{width:40px;height:40px}}
@media (max-height:640px){.band .hero-logo{display:none}}

/* ---------- logo loader: the ring traces real load progress, the logo lights up from below, a knife cut opens the page ---------- */
#ld{display:none}
.ld-on #ld{display:block;position:fixed;inset:0;z-index:300;touch-action:none;--p:0}
.ld-gone #ld{display:none}
html.ld-lock:not(.ld-gone),html.ld-lock:not(.ld-gone) body{overflow:hidden}
.ld-on body{animation:none}
.ld-half{position:absolute;inset:0;display:grid;place-items:center;overflow:hidden;background:radial-gradient(120% 80% at 50% 44%,#2c1b10 0%,#160e09 48%,#090604 100%);will-change:transform}
.ld-a{clip-path:polygon(0 0,100% 0,100% calc(30% + 1px),0 calc(70% + 1px))}
.ld-b{clip-path:polygon(0 70%,100% 30%,100% 100%,0 100%)}
.ld-core{position:relative;display:flex;flex-direction:column;align-items:center;gap:clamp(22px,4vh,38px);animation:ldin 1.1s var(--ease) both}
@keyframes ldin{from{opacity:0;transform:scale(.9);filter:blur(8px)}to{opacity:1;transform:none;filter:none}}
.ld-mark{--sz:min(64vw,42vh,340px);position:relative;width:var(--sz);height:var(--sz);transition:transform .9s var(--ease)}
.ld-mark::before{content:"";position:absolute;inset:-30%;border-radius:50%;background:radial-gradient(closest-side,rgba(255,138,61,calc(.10 + var(--p) * .22)),transparent 70%);pointer-events:none}
.ld-ring{position:absolute;inset:-8%;width:116%;height:116%;transform:rotate(-90deg);overflow:visible}
.ld-ring circle{fill:none;stroke-width:.7}
.ld-tr{stroke:rgba(236,210,160,.13)}
.ld-pr{stroke:#f0c877;stroke-linecap:round;stroke-dasharray:100;stroke-dashoffset:100;filter:drop-shadow(0 0 1.6px rgba(255,170,80,.9))}
.ld-spark{position:absolute;inset:-8%;transform:rotate(calc(var(--p) * 360deg));pointer-events:none}
.ld-spark i{position:absolute;left:50%;top:2%;width:7px;height:7px;margin:-3.5px;border-radius:50%;background:#fff4dc;box-shadow:0 0 8px 2px #ffc070,0 0 22px 7px rgba(255,120,40,.55);animation:ldspark 1.2s ease-in-out infinite alternate}
@keyframes ldspark{to{transform:scale(1.5);box-shadow:0 0 10px 3px #ffc070,0 0 30px 10px rgba(255,120,40,.7)}}
.ld-logo{position:absolute;inset:0;border-radius:50%;overflow:hidden;isolation:isolate}
.ld-logo img{position:absolute;inset:0;width:100%;height:100%;display:block}
.ld-ghost{filter:grayscale(1) sepia(.35) brightness(.3) contrast(1.3)}
.ld-lit{-webkit-mask-image:linear-gradient(to top,#000 calc(var(--p) * 118% - 18%),transparent calc(var(--p) * 118% - 3%));mask-image:linear-gradient(to top,#000 calc(var(--p) * 118% - 18%),transparent calc(var(--p) * 118% - 3%))}
.ld-heat{position:absolute;left:-10%;right:-10%;height:26%;bottom:calc(var(--p) * 118% - 23%);background:radial-gradient(50% 50% at 50% 50%,rgba(255,160,70,.6),rgba(255,90,30,.18) 55%,transparent 75%);mix-blend-mode:screen;animation:ldheat 1.6s ease-in-out infinite alternate;transition:opacity .5s}
@keyframes ldheat{from{transform:scaleX(.9) translateX(-3%)}to{transform:scaleX(1.06) translateX(3%)}}
.ld-logo::after{content:"";position:absolute;inset:-25%;background:linear-gradient(112deg,transparent 38%,rgba(255,236,190,.0) 42%,rgba(255,240,205,.7) 50%,rgba(255,236,190,0) 58%,transparent 62%);transform:translateX(-110%);mix-blend-mode:overlay;pointer-events:none}
.ld-meta{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center}
.ld-num{font:900 clamp(30px,4.4vh,42px)/1 var(--display);color:var(--wheat);letter-spacing:.02em;font-variant-numeric:tabular-nums;display:flex;align-items:baseline;gap:3px}
.ld-num span{font-size:.5em;color:#c99a52}
.ld-msg{font:500 11px/1.4 var(--mono);font-style:normal;letter-spacing:.24em;text-transform:uppercase;color:rgba(246,236,223,.62);transition:opacity .3s,transform .3s}
.ld-msg.swap{opacity:0;transform:translateY(6px)}
.ld-emb i{position:absolute;bottom:-12px;left:var(--x);width:var(--s);height:var(--s);border-radius:50%;background:#ffb060;box-shadow:0 0 6px 1px rgba(255,120,40,.8);opacity:0;animation:ldrise var(--d) linear var(--w) infinite}
@keyframes ldrise{0%{transform:translate(0,0);opacity:0}12%{opacity:.85}70%{opacity:.5}100%{transform:translate(var(--dx),-104vh);opacity:0}}
/* done: the logo is fully lit, a glint runs across it */
.ld-done .ld-logo::after{transition:transform 1s cubic-bezier(.5,0,.2,1);transform:translateX(110%)}
.ld-done .ld-mark{transform:scale(1.04)}
.ld-done .ld-heat{opacity:0}
.ld-done .ld-pr{stroke:#ffd98f;filter:drop-shadow(0 0 2.6px rgba(255,190,100,1))}
.ld-done .ld-spark i{animation:none;transform:scale(2.2);opacity:0;transition:opacity .6s,transform .6s}
/* the cut: one white-hot slash through the middle of the logo, then the halves part */
.ld-cutline{position:absolute;left:0;top:70%;width:var(--cl,100vw);height:2px;margin-top:-1px;transform-origin:0 50%;transform:rotate(var(--ca,0deg)) scaleX(0);background:linear-gradient(90deg,rgba(255,255,255,0),#fff 12%,#fff 88%,rgba(255,255,255,0));box-shadow:0 0 12px 2px rgba(255,190,110,.9),0 0 40px 6px rgba(255,110,40,.5);z-index:2;pointer-events:none}
.ld-cutting .ld-cutline{transform:rotate(var(--ca,0deg)) scaleX(1);transition:transform .3s cubic-bezier(.75,0,.25,1)}
.ld-open .ld-cutline{opacity:0;transition:opacity .45s .1s}
.ld-open .ld-a{transform:translate(var(--ax),var(--ay)) rotate(-4deg);transition:transform 1.05s cubic-bezier(.7,0,.18,1)}
.ld-open .ld-b{transform:translate(calc(var(--ax) * -1),calc(var(--ay) * -1)) rotate(4deg);transition:transform 1.05s cubic-bezier(.7,0,.18,1)}
.ld-open .ld-half{box-shadow:0 0 60px rgba(0,0,0,.6)}
@media (prefers-reduced-motion: reduce){#ld{display:none!important}}
/* vertical phone film: the first headline sits beside the glowing spit, give it its own soft scrim */
@media (orientation:portrait) and (max-width:900px){
  .band.b1 .col-l{position:relative}
  .band.b1 .col-l::before{display:block;inset:-28% -30% -18% -22px;background:radial-gradient(ellipse 62% 56% at 36% 52%,rgba(12,7,4,.82) 0%,rgba(12,7,4,.64) 44%,rgba(12,7,4,.22) 72%,rgba(12,7,4,0) 88%)}
}
/* ---------- phone ordering: call buttons, delivery line ---------- */
.deliv{display:flex;align-items:center;gap:10px;margin:14px 0 0;font:500 11.5px/1.45 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text-2)}
.deliv i{width:7px;height:7px;flex:none;border-radius:50%;background:var(--herb);box-shadow:0 0 0 0 rgba(134,160,90,.6);animation:delivpulse 2.4s var(--ease) infinite}
@keyframes delivpulse{70%{box-shadow:0 0 0 8px rgba(134,160,90,0)}100%{box-shadow:0 0 0 0 rgba(134,160,90,0)}}
.static-copy .deliv{margin-top:16px}
a.tel{color:var(--wheat);text-decoration:underline;text-decoration-color:rgba(236,210,160,.4);text-underline-offset:3px;white-space:nowrap}
a.tel:hover{text-decoration-color:var(--wheat)}
.nav-links .nav-extra span a{color:var(--wheat);text-decoration:underline;text-underline-offset:3px;letter-spacing:inherit;font:inherit;padding:0}
.nav-links .nav-extra span a::after{display:none}
.callcard{display:flex;align-items:center;gap:14px;padding:16px 18px;border-radius:18px;background:var(--panel);box-shadow:inset 0 0 0 1px var(--line);text-decoration:none;color:var(--text);transition:transform .35s var(--ease),box-shadow .35s var(--ease)}
.callcard:hover{transform:translateY(-2px);box-shadow:inset 0 0 0 1px var(--line-strong)}
.callcard b{display:block;font:900 26px/1 var(--display);letter-spacing:.02em}
.callcard span span{display:block;margin-top:5px;font-size:13.5px;color:var(--text-2)}
@media (prefers-reduced-motion: reduce){.deliv i{animation:none}}

/* ---------- soft edges: the film and the bakery melt into the page instead of ending on a hard line ---------- */
@media (orientation:portrait) and (max-width:900px){
  .media video,.media canvas,.media .poster,.media .poster-end{-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 9%,#000 74%,transparent 100%);mask-image:linear-gradient(to bottom,transparent 0,#000 9%,#000 74%,transparent 100%)}
}
/* ---------- ordering: phone + Wolt ---------- */
.btn-wolt{background:#009de0;color:#fff;box-shadow:0 10px 30px -12px rgba(0,157,224,.7)}
.btn-wolt:hover{background:#18aef0;transform:translateY(-2px)}
.deliv a{color:#5cc8f5;text-decoration:underline;text-underline-offset:3px;text-decoration-color:rgba(92,200,245,.45);pointer-events:auto}
.order{padding-top:clamp(40px,6vw,90px)}
.order-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(14px,2vw,24px);margin-top:clamp(28px,4vw,48px)}
.ocard{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:14px;padding:clamp(24px,3vw,38px);border-radius:24px;background:linear-gradient(160deg,var(--panel-2),var(--panel));box-shadow:inset 0 0 0 1px var(--line);overflow:hidden}
.ocard::before{content:"";position:absolute;right:-30%;top:-40%;width:80%;aspect-ratio:1;border-radius:50%;background:radial-gradient(closest-side,rgba(226,72,43,.22),transparent);pointer-events:none}
.ocard.wolt::before{background:radial-gradient(closest-side,rgba(0,157,224,.2),transparent)}
.otag{font:500 12px/1 var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--ember)}
.ocard.wolt .otag{color:#5cc8f5}
.onum{font:900 clamp(34px,4.2vw,58px)/.95 var(--display);text-transform:uppercase;color:var(--text);text-decoration:none;letter-spacing:.01em}
.ocard p{margin:0;max-width:38ch;color:var(--text-2)}
.ocard p b{color:var(--wheat)}
.ocard .btn{margin-top:8px}
.order-note{margin:20px 0 0;font:500 12px/1.4 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--text-3)}
.callcard .pin{color:#fff}
.callcard.ig .pin{background:linear-gradient(135deg,#f58529,#dd2a7b 55%,#8134af)}
.callcard.ig .pin::before{display:none}
.callcard.ig b{font-size:22px}
.ig-line{display:inline-flex;align-items:center;gap:10px;margin-top:26px;font:500 12.5px/1.4 var(--mono);letter-spacing:.06em;color:var(--text-2);text-decoration:none;transition:color .3s}
.ig-line svg{width:18px;height:18px}
.ig-line:hover{color:var(--wheat)}
@media (max-width:900px){
  .order-grid{grid-template-columns:1fr}
  .mcta .btn{padding:14px 6px;font-size:14px;gap:6px}
  .mcta .btn svg{width:16px;height:16px}
}
.deliv{display:block}
.deliv i{display:inline-block;margin-right:10px;vertical-align:1px}
.nav .nav-wolt{margin-right:-16px}

/* ---------- seamless edges v2 ----------
   The page behind the sections is the canvas plus the warm .env glow, so the hero must not end on its own
   solid colour: the film and its scrim fade to transparent and a progressive blur sits over the fade. */
.hero{background:transparent}
.media,.scrim{-webkit-mask-image:linear-gradient(to bottom,#000 0,#000 calc(100% - 30vh),rgba(0,0,0,.6) calc(100% - 15vh),transparent 100%);mask-image:linear-gradient(to bottom,#000 0,#000 calc(100% - 30vh),rgba(0,0,0,.6) calc(100% - 15vh),transparent 100%)}
.haze{position:absolute;left:0;right:0;bottom:0;height:34vh;pointer-events:none;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);-webkit-mask-image:linear-gradient(to bottom,transparent 0,rgba(0,0,0,.55) 45%,#000 100%);mask-image:linear-gradient(to bottom,transparent 0,rgba(0,0,0,.55) 45%,#000 100%)}
.hero.static .haze{display:none}
@media (orientation:portrait) and (max-width:900px){
  .media,.scrim{-webkit-mask-image:linear-gradient(to bottom,#000 0,#000 calc(100% - 24vh),rgba(0,0,0,.55) calc(100% - 11vh),transparent 100%);mask-image:linear-gradient(to bottom,#000 0,#000 calc(100% - 24vh),rgba(0,0,0,.55) calc(100% - 11vh),transparent 100%)}
  .haze{height:26vh}
}
/* bakery: long eased fade in and out of the dark page instead of a colour step */
.bakery{--edge:clamp(120px,15vw,240px);padding:calc(var(--edge) + 30px) 0;background:linear-gradient(to bottom,rgba(245,230,198,0) 0,rgba(245,230,198,.06) calc(var(--edge) * .2),rgba(245,230,198,.22) calc(var(--edge) * .4),rgba(245,230,198,.5) calc(var(--edge) * .6),rgba(245,230,198,.8) calc(var(--edge) * .8),var(--wheat-2) var(--edge),var(--wheat-2) calc(100% - var(--edge)),rgba(245,230,198,.8) calc(100% - var(--edge) * .8),rgba(245,230,198,.5) calc(100% - var(--edge) * .6),rgba(245,230,198,.22) calc(100% - var(--edge) * .4),rgba(245,230,198,.06) calc(100% - var(--edge) * .2),rgba(245,230,198,0) 100%)}
.bakery::before{-webkit-mask-image:linear-gradient(to bottom,transparent,#000 var(--edge),#000 calc(100% - var(--edge)),transparent);mask-image:linear-gradient(to bottom,transparent,#000 var(--edge),#000 calc(100% - var(--edge)),transparent)}
/* real photos (4:3): keep the hexagon ceiling lights and the full counter in frame */
.interior img{object-position:50% 38%}
.bake-img img{object-position:50% 45%}
.bake-img,.interior{aspect-ratio:4/3}
/* ---------- hamburger menu fix ----------
   backdrop-filter on .nav made it the containing block of the fixed menu, so after scrolling past the film
   the menu opened squeezed into the bar. The blur now lives on a pseudo-element instead. */
.nav.solid{background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none}
.nav::before{content:"";position:absolute;inset:0;z-index:-1;background:rgba(21,16,12,.82);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);opacity:0;transition:opacity .5s var(--ease);pointer-events:none}
.nav.solid::before{opacity:1}
.nav.open::before{opacity:0}
@media (max-width:900px){
  .nav-links{justify-content:flex-start;overflow-y:auto;overscroll-behavior:contain;padding:96px var(--pad) calc(40px + env(safe-area-inset-bottom))}
  .nav-links a{font-size:clamp(36px,11vw,60px)}
  .nav-links .nav-extra{margin-top:20px}
}
@media (max-width:900px) and (max-height:700px){
  .nav-links{padding-top:84px;gap:2px}
  .nav-links a{font-size:clamp(32px,10vw,48px)}
}
.nav-links .nav-extra .nx-row{display:flex;gap:10px;flex-wrap:wrap}
.nav-links .nav-extra a.btn-wolt{color:#fff}
.board-link{margin:22px 0 0;text-align:center;font:500 12px/1.4 var(--mono);letter-spacing:.12em;text-transform:uppercase}
.board-link a{color:var(--wheat);text-underline-offset:4px;text-decoration-color:rgba(236,210,160,.4)}

/* ================= SEO brief, 2026-11-13 ================= */
/* shorter film: the story should not stand between a guest and the menu */
.hero{height:640vh}
@media (orientation:portrait) and (max-width:900px){.hero{height:540vh}}
/* the single H1 is the descriptive line above the slogan */
.band h1.kicker,.static-copy .kicker{margin:0;font-size:12px;line-height:1.45;max-width:34ch}
.band h1.kicker::before{flex:none}
/* the phone bar is on screen from the start, so the bands keep clear of it */
@media (orientation:portrait) and (max-width:900px){
  .band{padding-bottom:calc(104px + env(safe-area-inset-bottom))}
  .hero.static .static-copy{padding-bottom:calc(110px + env(safe-area-inset-bottom))}
}
@media (max-width:900px){ footer{padding-bottom:calc(110px + env(safe-area-inset-bottom))} }
/* nav has six links now: tighten the gaps on mid widths so the call buttons never wrap */
@media (min-width:901px) and (max-width:1240px){ .nav-links{gap:16px} .nav{gap:18px} .nav-links a{letter-spacing:.1em} }
.sec-link{margin:6px 0 18px;font:500 12px/1.4 var(--mono);letter-spacing:.1em;text-transform:uppercase}
.sec-link a{color:var(--wheat);text-underline-offset:4px;text-decoration-color:rgba(236,210,160,.4)}
.foot-nav{display:flex;flex-wrap:wrap;gap:8px 18px;flex-basis:100%;order:3}
.foot-nav a{color:var(--text-2);text-decoration:none;font:500 11.5px/1.4 var(--mono);letter-spacing:.12em;text-transform:uppercase}
.foot-nav a:hover{color:var(--wheat)}

/* ================= no JavaScript: a complete, static page ================= */
.no-js .hero{height:auto;min-height:100svh}
.no-js .stage{position:relative;height:100svh;min-height:620px}
.no-js .band,.no-js .rail,.no-js .ring,.no-js .cue,.no-js .haze,.no-js #ld,.no-js .burger{display:none}
.no-js .poster-end{opacity:1;background:url(hero-ending.jpg) center/cover}
@media (orientation:portrait) and (max-width:900px){ .no-js .poster-end{background-image:url(hero-ending-m9.jpg)} }
.no-js .static-copy{display:flex;position:absolute;inset:0;flex-direction:column;justify-content:flex-end;padding:120px var(--pad) 120px;text-shadow:var(--tshadow);background:linear-gradient(to top,rgba(14,9,5,.9),rgba(14,9,5,.2) 60%,transparent)}
.no-js [data-reveal],.no-js .mask .mw>span,.no-js .curtain img{opacity:1;transform:none}
.no-js .curtain::after{display:none}
.no-js .mcta{transform:none}
.no-js .panel{display:block}
.no-js .tabs{display:none}
/* Netlify's free plan injects a fixed 202×64 "Powered by Netlify" badge bottom-right (removal is not
   allowed on that plan). When it is there, the phone bar and the bottom copy move above it. */
@media (max-width:900px){
  html.nl-badge .mcta{bottom:calc(74px + env(safe-area-inset-bottom))}
  html.nl-badge footer{padding-bottom:calc(176px + env(safe-area-inset-bottom))}
}
@media (orientation:portrait) and (max-width:900px){
  html.nl-badge .band{padding-bottom:calc(166px + env(safe-area-inset-bottom))}
  html.nl-badge .hero.static .static-copy{padding-bottom:calc(170px + env(safe-area-inset-bottom))}
}
@media (orientation:portrait) and (max-width:900px) and (max-height:700px){
  html.nl-badge .band{padding-top:80px}
}
@media (min-width:901px){ html.nl-badge footer{padding-bottom:96px} }
/* short phones with the badge: the first block drops the status chip (it is in #hely) and the slogan shrinks a step */
@media (orientation:portrait) and (max-width:900px) and (max-height:700px){
  html.nl-badge .band.b1 .chip{display:none}
  html.nl-badge .band.b1 .h-hero{font-size:clamp(44px,13.4vw,64px)}
  html.nl-badge .band.b1 .lede{margin-top:8px}
}
/* once the halves start to part, the page underneath is already clickable */
.ld-open,.ld-open *{pointer-events:none!important}
/* button fills that keep white labels at WCAG AA (4.5:1): red 4.69, Wolt blue 4.68; hover goes darker, not lighter */
.btn-red{background:#d23f22}
.btn-red:hover{background:#bc3519}
.btn-wolt{background:#007bb3;box-shadow:0 10px 30px -12px rgba(0,123,179,.7)}
.btn-wolt:hover{background:#006a9b}
