/* Brand reveal: only opacity and transforms animate on large surfaces. */
html.intro-seen .intro{display:none!important}
.hero h1{font-size:clamp(76px,7.1vw,112px)}
.ticker>.ticker-track{display:flex;width:max-content;min-width:200%;animation:ticker 38s linear infinite}
.ticker-track>.ticker-group{display:flex;align-items:center;justify-content:space-around;flex:none;min-width:100vw;gap:0}
.ticker .ticker-phrase{font:inherit;flex:none;margin:0;letter-spacing:-.025em;white-space:nowrap}
.ticker .ticker-separator{font-family:SiteSymbols;flex:none;margin:0 35px;font-size:20px}
.ticker:hover>.ticker-track,.ticker:focus-within>.ticker-track{animation-play-state:paused}
@media(max-width:760px){.hero h1{font-size:clamp(56px,8.8vw,76px)}.ticker .ticker-separator{margin:0 24px}}
@media(max-width:560px){.hero h1{font-size:clamp(38px,12vw,64px)}.hero .button{font-size:13px;gap:12px}.hero-copy{min-height:375px}.hero-sticker strong{max-width:105px}}
@media(prefers-reduced-motion:reduce){.ticker>.ticker-track{animation:none;transform:none;min-width:0;width:100%}.ticker-track>.ticker-group{min-width:100%;flex-wrap:wrap;justify-content:center;gap:10px 0}.ticker-track>.ticker-group:last-child{display:none}.ticker .ticker-phrase{font-size:18px}.ticker .ticker-separator{margin-inline:12px}}
.js .intro{background:#fcf5e8;isolation:isolate;pointer-events:auto}
.intro::before,.intro::after{content:"";position:absolute;z-index:-1;pointer-events:none;border-radius:50%;width:110vmax;height:85vmax;opacity:0;will-change:transform,opacity}
.intro::before{left:-65vmax;top:-55vmax;background:radial-gradient(ellipse,#a31b2b80 0%,#c9787150 30%,transparent 67%)}
.intro::after{right:-62vmax;bottom:-58vmax;background:radial-gradient(ellipse,#a31b2b70 0%,#dfaf6655 36%,transparent 68%)}
.intro-stage{width:min(820px,88vw);height:auto;display:flex;flex-direction:column;align-items:center;gap:24px;position:relative}
.intro-mascot{position:static;width:112px;height:112px;object-fit:contain;opacity:0}
.intro-wordmark{position:relative;overflow:hidden;width:100%;padding:10px 0}
.intro-lettering{position:static;width:100%;height:auto;aspect-ratio:2109/745;object-fit:contain;opacity:0}
.intro-motto{position:static;width:auto;letter-spacing:.24em;font-size:12px;line-height:1.5;text-align:center;opacity:0;color:#791c29;margin-top:5px}
.intro-trace{position:absolute;width:170%;height:170%;left:-35%;top:-35%;fill:none;stroke:#a31b2b;stroke-width:.45;opacity:.14;pointer-events:none;stroke-dasharray:1600;stroke-dashoffset:1600}
.intro-skip{position:absolute;right:24px;bottom:max(22px,env(safe-area-inset-bottom));border:1px solid #791c2933;background:#fcf5e8b3;color:#791c29;padding:9px 18px;border-radius:40px;font-size:13px;z-index:2}
.intro.ready{animation:brandExit .65s cubic-bezier(.65,0,.25,1) 2.45s both}
.intro.ready::before{animation:brandBloomA 3.1s cubic-bezier(.2,.7,.3,1) both}
.intro.ready::after{animation:brandBloomB 3.1s cubic-bezier(.2,.7,.3,1) both}
.intro.ready .intro-mascot{animation:brandMascot 1.15s cubic-bezier(.16,1,.3,1) .05s both}
.intro.ready .intro-lettering{animation:brandLettering 1.3s cubic-bezier(.16,1,.3,1) .35s both}
.intro.ready .intro-motto{animation:brandCaption .85s ease 1.05s both}
.intro.ready .intro-trace{animation:brandTrace 2.5s cubic-bezier(.2,.6,.3,1) both}
.brand img,.footer-brand img{height:auto;aspect-ratio:2109/745;object-fit:contain;mix-blend-mode:normal}
body.intro-complete .hero-copy{animation:brandContent .8s cubic-bezier(.16,1,.3,1) both}
body.intro-complete .hero-food{animation:brandPhoto 1.3s cubic-bezier(.16,1,.3,1) both}
@keyframes brandBloomA{0%{opacity:0;transform:translate3d(-6%,0,0) scale(.8)}45%{opacity:1}100%{opacity:.6;transform:translate3d(9%,12%,0) scale(1.05)}}
@keyframes brandBloomB{0%{opacity:0;transform:translate3d(9%,5%,0) scale(.8)}55%{opacity:1}100%{opacity:.65;transform:translate3d(-7%,-8%,0) scale(1.1)}}
@keyframes brandMascot{from{opacity:0;transform:translate3d(-35px,16px,0) rotate(-7deg) scale(.94)}to{opacity:1;transform:translate3d(0,0,0) rotate(0) scale(1)}}
@keyframes brandLettering{from{opacity:0;transform:translate3d(0,105%,0) scale(.98)}to{opacity:1;transform:translate3d(0,0,0) scale(1)}}
@keyframes brandCaption{from{opacity:0;transform:translate3d(0,9px,0)}to{opacity:1;transform:translate3d(0,0,0)}}
@keyframes brandTrace{to{stroke-dashoffset:0}}
@keyframes brandExit{to{opacity:0;visibility:hidden;transform:translate3d(0,-24px,0)}}
@keyframes brandContent{from{opacity:0;transform:translate3d(0,16px,0)}to{opacity:1;transform:none}}
@keyframes brandPhoto{from{transform:scale(1.09)}to{transform:scale(1.04)}}
@media(max-width:560px){.intro-stage{width:88vw;gap:18px}.intro-mascot{width:92px;height:92px}.intro-lettering{height:auto;width:100%}.intro-motto{font-size:10px;letter-spacing:.18em;margin-top:8px}.intro-skip{right:18px;font-size:12px}.intro-trace{width:200%;left:-50%}}
@media(prefers-reduced-motion:reduce){.js .intro{display:none!important}body.intro-complete .hero-copy,body.intro-complete .hero-food{animation:none!important}}
@media(min-width:761px) and (max-width:1100px){.desktop-nav{display:none}.header-inner{min-height:80px}.header-call{margin-left:auto}.menu-toggle{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;width:46px;height:46px;border:1px solid var(--line);background:none;border-radius:50%;flex-shrink:0}.menu-toggle>span{height:1px;width:19px;background:var(--red);transition:transform .2s}.menu-toggle[aria-expanded=true]>span:first-child{transform:translateY(3.5px) rotate(45deg)}.menu-toggle[aria-expanded=true]>span:last-child{transform:translateY(-3.5px) rotate(-45deg)}}
