:root {
  --ease-slide: cubic-bezier(.68, 0, .22, 1);
  --slide-duration: 1050ms;
  --announcement-height: 2.25rem;
  --paper: #f3efe7;
  --black: #11100e;
  --accent: #ff2825;
  --ink: #fff;
  --bg-deep: #42050e;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
html, body { width: 100%; margin: 0; background: var(--paper); color: var(--black); }
body { min-height: 100svh; overflow-x: hidden; font-family: "DM Sans", system-ui, sans-serif; }
body.menu-open { overflow: hidden; }
button, a { font: inherit; -webkit-tap-highlight-color: transparent; }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; }

.slider {
  position: relative;
  width: 100%;
  height: 100svh;
  min-height: 42rem;
  overflow: hidden;
  user-select: none;
  touch-action: pan-y;
  cursor: grab;
  color: #fff;
  background: var(--bg-deep);
  isolation: isolate;
}
.slider.is-dragging { cursor: grabbing; }
.slider-track { position: absolute; inset: 0; }
.slide {
  --bg-deep: #42050e;
  --bg-mid: #8c081a;
  --accent: #ff2825;
  --accent-soft: #ff5b4e;
  --ink: #fff;
  --food-width: min(37vw, 41rem);
  --food-rotation: 0deg;
  --title-size: clamp(7.5rem, 13.1vw, 15.4rem);
  --parallax-x: 0px;
  --parallax-y: 0px;
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  opacity: 0;
  pointer-events: none;
  isolation: isolate;
  background: radial-gradient(circle at 50% 46%, color-mix(in srgb, var(--bg-mid) 92%, white 8%) 0%, var(--bg-mid) 24%, var(--bg-deep) 72%), var(--bg-deep);
}
.slide.is-current { opacity: 1; pointer-events: auto; }
.slide-burger { --bg-deep:#42050e; --bg-mid:#8c081a; --accent:#ff2825; --accent-soft:#ff5b4e; --food-width:min(37vw,41rem); }
.slide-pizza { --bg-deep:#b55f00; --bg-mid:#ef9800; --accent:#ffe02f; --accent-soft:#fff06e; --ink:#161616; --food-width:min(32vw,36rem); --food-rotation:4deg; }
.slide-hotdog { --bg-deep:#74170d; --bg-mid:#d23b16; --accent:#ff5a1c; --accent-soft:#ff8044; --food-width:min(37vw,41rem); --food-rotation:-5deg; }
.slide-sub { --bg-deep:#00361b; --bg-mid:#08783a; --accent:#2ed33c; --accent-soft:#72f176; --food-width:min(42vw,47rem); --food-rotation:-1deg; }
.slide::after { content:""; position:absolute; inset:0; z-index:-1; pointer-events:none; background:linear-gradient(180deg,rgba(0,0,0,.08),transparent 24%,transparent 75%,rgba(0,0,0,.18)),radial-gradient(circle at 50% 50%,transparent 24%,rgba(0,0,0,.13) 100%); }
.slide-glow { position:absolute; z-index:-1; left:50%; top:48%; width:54vw; height:54vw; max-width:57rem; max-height:57rem; border-radius:50%; opacity:.28; filter:blur(4rem); transform:translate(-50%,-50%); background:var(--accent); pointer-events:none; }

.fixed-chrome { position:absolute; inset:0; z-index:20; pointer-events:none; }
.fixed-chrome a, .fixed-chrome button { pointer-events:auto; }
.announcement { position:absolute; inset:0 0 auto; height:var(--announcement-height); display:flex; align-items:center; justify-content:center; gap:.5rem; padding:0 1rem; color:var(--ink); background:var(--accent); font-size:clamp(.64rem,.75vw,.82rem); font-weight:600; white-space:nowrap; transition:background-color .65s ease,color .65s ease; }
.slide-header { position:absolute; top:calc(var(--announcement-height) + 1.65rem); left:50%; width:min(88vw,84rem); display:flex; align-items:center; justify-content:center; transform:translateX(-50%); }
.brand { position:absolute; left:0; display:flex; align-items:baseline; color:var(--ink); font-family:"Lilita One",Impact,sans-serif; font-size:1.65rem; letter-spacing:-.04em; text-transform:uppercase; transition:color .65s ease; }
.brand strong { color:var(--accent); font-weight:400; transition:color .65s ease; }
.nav-pill { display:flex; align-items:center; gap:clamp(.8rem,1.35vw,1.55rem); min-height:2.8rem; padding:.35rem 1.35rem; border:1px solid rgba(255,255,255,.10); border-radius:999px; background:rgba(255,255,255,.1); box-shadow:inset 0 1px rgba(255,255,255,.08),0 .75rem 2rem rgba(0,0,0,.12); backdrop-filter:blur(18px); }
.nav-pill a { color:var(--ink); padding:.48rem .1rem; font-size:clamp(.68rem,.77vw,.85rem); font-weight:700; text-transform:uppercase; opacity:.9; transition:opacity .25s ease,transform .25s ease,color .65s ease; }
.nav-pill a:hover,.nav-pill a:focus-visible { opacity:1; transform:translateY(-1px); }
.contact-button { position:absolute; right:0; display:grid; place-items:center; min-height:2.65rem; padding:0 1.25rem; border-radius:999px; color:var(--ink); background:var(--accent); font-size:clamp(.7rem,.8vw,.87rem); font-weight:700; box-shadow:0 .75rem 2rem rgba(0,0,0,.13); transition:transform .25s ease,filter .25s ease,background-color .65s ease,color .65s ease; }
.contact-button:hover,.contact-button:focus-visible { transform:translateY(-2px) scale(1.02); filter:brightness(1.07); }
.mobile-menu-button { display:none; border:0; color:var(--ink); background:transparent; font-weight:700; cursor:pointer; }
.mobile-panel { display:none; }

.hero-stage { position:absolute; z-index:2; left:50%; top:48.5%; width:min(76vw,76rem); height:min(63vh,39rem); transform:translate(-50%,-50%); }
.hero-title { position:absolute; z-index:0; inset:50% auto auto 50%; width:100%; display:flex; flex-direction:column; align-items:center; color:var(--accent); font-family:"Lilita One",Impact,sans-serif; font-size:var(--title-size); line-height:.72; letter-spacing:-.045em; text-align:center; text-transform:uppercase; transform:translate(-50%,-50%) scaleX(1.04); opacity:.96; }
.hero-title span { display:block; white-space:nowrap; transform:translate3d(calc(var(--parallax-x) * -.18),calc(var(--parallax-y) * -.14),0); transition:transform .35s cubic-bezier(.2,.75,.25,1); }
.food-wrap { position:absolute; z-index:3; left:50%; top:48%; width:var(--food-width); transform:translate3d(calc(-50% + var(--parallax-x)),calc(-50% + var(--parallax-y)),0); transition:transform .38s cubic-bezier(.2,.75,.25,1); will-change:transform; }
.food-image { display:block; width:100%; height:auto; pointer-events:none; transform:rotate(var(--food-rotation)); transform-origin:50% 55%; filter:drop-shadow(0 2.2rem 2.3rem rgba(0,0,0,.28)); will-change:transform; }
.slide.is-current:not(.is-moving) .food-image { animation:foodFloat 5.2s ease-in-out infinite; }
@keyframes foodFloat { 0%,100%{transform:translate3d(0,0,0) rotate(var(--food-rotation))} 50%{transform:translate3d(0,-.7rem,0) rotate(calc(var(--food-rotation) + 1deg))} }

.flavor-labels,.ingredient-icons { position:absolute; z-index:5; left:50%; top:50%; width:1px; height:1px; pointer-events:none; }
.flavor-labels { transform:translate(-16vw,-50%); }
.flavor-labels span { position:absolute; left:var(--x); top:var(--y); min-width:6.6rem; padding:.45rem 1.05rem .5rem; border:1px solid var(--accent); border-radius:999px; color:var(--accent-soft); background:color-mix(in srgb,var(--bg-deep) 84%,black 16%); box-shadow:0 .75rem 1.15rem rgba(0,0,0,.25),inset 0 1px rgba(255,255,255,.08); font-size:clamp(1rem,1.45vw,1.55rem); font-style:italic; font-weight:700; text-align:center; transform:translate(-50%,-50%) rotate(var(--r)); }
.ingredient-icons { transform:translate(16.5vw,-50%); }
.ingredient-icons span { position:absolute; left:var(--x); top:var(--y); width:3.6rem; height:3.6rem; display:grid; place-items:center; border:1px solid var(--accent); border-radius:50%; background:color-mix(in srgb,var(--bg-deep) 82%,black 18%); box-shadow:0 .75rem 1.2rem rgba(0,0,0,.25),inset 0 1px rgba(255,255,255,.08); font-size:1.65rem; transform:translate(-50%,-50%); }
.slide.is-current:not(.is-moving) .flavor-labels span,.slide.is-current:not(.is-moving) .ingredient-icons span { animation:detailFloat 5s ease-in-out infinite; }
.slide.is-current:not(.is-moving) .flavor-labels span:nth-child(2),.slide.is-current:not(.is-moving) .ingredient-icons span:nth-child(2) { animation-delay:-1.7s; }
.slide.is-current:not(.is-moving) .flavor-labels span:nth-child(3),.slide.is-current:not(.is-moving) .ingredient-icons span:nth-child(3) { animation-delay:-.8s; }
@keyframes detailFloat { 0%,100%{margin-top:0} 50%{margin-top:-.45rem} }

.hero-bottom { position:absolute; z-index:6; left:50%; bottom:clamp(3rem,6.6vh,5.2rem); width:min(76vw,70rem); display:flex; flex-direction:column; align-items:center; gap:1.15rem; transform:translateX(-50%); }
.description-window { position:relative; width:100%; min-height:1.8rem; overflow:hidden; }
.description-window p { position:absolute; inset:0; margin:0; color:#fff; font-size:clamp(.85rem,1.12vw,1.2rem); font-weight:500; line-height:1.45; text-align:center; text-wrap:balance; }
.hero-actions { display:flex; gap:.75rem; }
.hero-actions a { min-width:7.25rem; min-height:2.75rem; display:grid; place-items:center; padding:.55rem 1.2rem; border-radius:999px; font-size:.84rem; font-weight:700; transition:transform .25s ease,box-shadow .25s ease,filter .25s ease,background-color .65s ease,color .65s ease; }
.hero-actions a:hover,.hero-actions a:focus-visible { transform:translateY(-2px); }
.primary-action { color:var(--ink); background:var(--accent); box-shadow:0 .7rem 1.4rem rgba(0,0,0,.13); }
.secondary-action { color:#161616; background:#fff; box-shadow:0 .7rem 1.4rem rgba(0,0,0,.13); }
.arrow { position:absolute; top:52%; z-index:9; width:3.5rem; height:3.5rem; display:grid; place-items:center; border:0; border-radius:.55rem; color:#111; background:#fff; box-shadow:0 .8rem 1.8rem rgba(0,0,0,.2); cursor:pointer; transform:translateY(-50%); transition:transform .25s ease; }
.arrow:hover,.arrow:focus-visible { transform:translateY(-50%) scale(1.06); }
.arrow-left { left:clamp(1.5rem,4vw,4.5rem); }
.arrow-right { right:clamp(1.5rem,4vw,4.5rem); }
.arrow svg { width:1.45rem; fill:none; stroke:currentColor; stroke-width:2.2; stroke-linecap:round; stroke-linejoin:round; }
.slide-copy-source { display:none; }
.drag-cursor { position:fixed; z-index:100; width:4.2rem; height:4.2rem; display:grid; place-items:center; border-radius:50%; color:#111; background:#fff; font-size:.7rem; font-weight:700; pointer-events:none; opacity:0; transform:translate(-50%,-50%) scale(.7); transition:opacity .2s ease,transform .2s ease; mix-blend-mode:difference; }
@media (pointer:fine) { .slider:hover .drag-cursor { opacity:.9; transform:translate(-50%,-50%) scale(1); } .slider:hover button:hover~.drag-cursor,.slider:hover a:hover~.drag-cursor { opacity:0; } }

.section-shell { width:min(88vw,84rem); margin:0 auto; }
.section-index { margin:0 0 1.7rem; font-size:.75rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.reveal-section { opacity:0; transform:translateY(3.5rem); transition:opacity .8s ease,transform .9s cubic-bezier(.2,.75,.2,1); }
.reveal-section.is-visible { opacity:1; transform:none; }

.story-section { position:relative; overflow:hidden; padding:clamp(7rem,12vw,12rem) 0 clamp(8rem,13vw,13rem); background:#f1eadf; }
.story-shell { position:relative; min-height:35rem; }
.story-heading { position:relative; z-index:2; width:min(70rem,100%); }
.story-heading h2 { max-width:12ch; margin:0; font-family:"Lilita One",Impact,sans-serif; font-size:clamp(4rem,9vw,9rem); font-weight:400; line-height:.82; letter-spacing:-.055em; text-transform:uppercase; }
.story-heading p { max-width:38rem; margin:3rem 0 0 38%; font-size:clamp(1.05rem,1.5vw,1.45rem); line-height:1.55; }
.story-mark { position:absolute; right:-3vw; bottom:-7rem; color:#e2d7c8; font-family:"Lilita One",Impact,sans-serif; font-size:clamp(9rem,23vw,23rem); line-height:.7; letter-spacing:-.07em; }
.story-notes { position:absolute; left:0; bottom:0; display:flex; gap:2rem; font-weight:700; text-transform:uppercase; }
.story-notes p { margin:0; }

.menu-section { padding:clamp(7rem,11vw,11rem) 0; background:#11100e; color:#fff; overflow:hidden; }
.section-intro { display:grid; grid-template-columns:.55fr 1.1fr .7fr; align-items:end; gap:3rem; margin-bottom:clamp(6rem,10vw,10rem); }
.section-intro .section-index { align-self:start; }
.section-intro h2 { margin:0; font-family:"Lilita One",Impact,sans-serif; font-size:clamp(4rem,8vw,8rem); font-weight:400; line-height:.82; letter-spacing:-.05em; text-transform:uppercase; }
.section-intro>p:last-child { margin:0 0 .4rem; font-size:1.05rem; line-height:1.6; }
.menu-feature { position:relative; min-height:42rem; display:grid; grid-template-columns:.7fr 1.3fr; align-items:center; margin:0 0 clamp(4rem,7vw,7rem); padding:clamp(3rem,5vw,5rem); overflow:hidden; border-radius:2.2rem; }
.menu-feature:last-child { margin-bottom:0; }
.menu-feature-red { background:#710815; }
.menu-feature-gold { background:#d47b00; color:#15110b; }
.menu-feature-orange { background:#b82d12; }
.menu-feature-green { background:#075127; }
.menu-copy { position:relative; z-index:3; max-width:31rem; }
.menu-number { display:block; margin-bottom:4rem; font-size:.8rem; font-weight:700; letter-spacing:.15em; }
.menu-copy h3 { margin:0; font-family:"Lilita One",Impact,sans-serif; font-size:clamp(3.5rem,6.4vw,6.5rem); font-weight:400; line-height:.85; letter-spacing:-.045em; text-transform:uppercase; }
.menu-copy>p { max-width:30rem; margin:2rem 0 2.8rem; font-size:clamp(1rem,1.25vw,1.25rem); line-height:1.55; }
.menu-meta { display:flex; flex-direction:column; gap:.35rem; font-weight:700; }
.menu-meta span:first-child { font-size:1.25rem; }
.menu-meta span:last-child { font-size:.78rem; opacity:.72; text-transform:uppercase; }
.menu-visual { position:relative; min-height:32rem; display:grid; place-items:center; }
.menu-visual>span { position:absolute; color:rgba(255,255,255,.14); font-family:"Lilita One",Impact,sans-serif; font-size:clamp(8rem,15vw,16rem); line-height:.7; letter-spacing:-.06em; text-transform:uppercase; }
.menu-feature-gold .menu-visual>span { color:rgba(255,240,130,.45); }
.menu-visual img { position:relative; z-index:2; width:min(100%,42rem); max-height:34rem; object-fit:contain; filter:drop-shadow(0 2rem 2rem rgba(0,0,0,.25)); transition:transform .7s cubic-bezier(.2,.75,.2,1); }
.menu-feature:hover .menu-visual img { transform:scale(1.045) rotate(1deg); }
.menu-feature-gold .menu-visual img { width:min(82%,34rem); transform:rotate(5deg); }
.menu-feature-gold:hover .menu-visual img { transform:rotate(7deg) scale(1.045); }
.menu-feature-orange .menu-visual img { transform:rotate(-5deg); }
.menu-feature-orange:hover .menu-visual img { transform:rotate(-3deg) scale(1.045); }

.manifesto-section { position:relative; min-height:52rem; display:flex; align-items:center; justify-content:center; overflow:hidden; padding:8rem 6vw; background:#ff4922; color:#130d08; }
.manifesto-type { position:absolute; left:-2vw; top:50%; color:#f03616; font-family:"Lilita One",Impact,sans-serif; font-size:clamp(28rem,58vw,60rem); line-height:.65; transform:translateY(-50%); }
.manifesto-copy { position:relative; z-index:2; width:min(70rem,88vw); }
.manifesto-copy h2 { margin:0; font-family:"Lilita One",Impact,sans-serif; font-size:clamp(5rem,11vw,11rem); font-weight:400; line-height:.78; letter-spacing:-.055em; text-transform:uppercase; }
.manifesto-copy>p:last-child { max-width:34rem; margin:3rem 0 0 auto; font-size:1.2rem; line-height:1.6; }

.gallery-section { padding:clamp(7rem,11vw,11rem) 0; overflow:hidden; background:#ece6dc; }
.gallery-section .section-intro { grid-template-columns:.55fr 1.6fr; margin-bottom:5rem; }
.gallery-section .section-intro h2 { color:#14110e; }
.gallery-rail { width:max-content; display:flex; gap:1.3rem; padding:0 6vw 2rem; animation:galleryDrift 28s linear infinite; }
.gallery-rail:hover { animation-play-state:paused; }
@keyframes galleryDrift { from{transform:translateX(0)} to{transform:translateX(-18rem)} }
.gallery-frame { position:relative; width:min(68vw,48rem); height:min(68vw,44rem); margin:0; display:grid; place-items:center; overflow:hidden; border-radius:2rem; }
.gallery-frame img { width:72%; height:72%; object-fit:contain; filter:drop-shadow(0 2rem 2rem rgba(0,0,0,.22)); transition:transform .6s ease; }
.gallery-frame:hover img { transform:scale(1.07) rotate(2deg); }
.gallery-frame figcaption { position:absolute; left:2rem; bottom:1.8rem; font-weight:700; text-transform:uppercase; }
.gallery-red { background:#740713; color:#fff; }
.gallery-yellow { background:#e89400; color:#171009; }
.gallery-yellow img { width:62%; transform:rotate(5deg); }
.gallery-orange { background:#c43817; color:#fff; }
.gallery-orange img { width:72%; transform:rotate(-5deg); }
.gallery-green { background:#075128; color:#fff; }
.gallery-green img { width:80%; }

.delivery-section { position:relative; min-height:52rem; display:grid; grid-template-columns:1fr 1fr; align-items:center; overflow:hidden; padding:clamp(6rem,9vw,10rem) 7vw; color:#fff; background:#4d0610; }
.delivery-copy { position:relative; z-index:3; max-width:42rem; }
.delivery-copy h2 { margin:0; font-family:"Lilita One",Impact,sans-serif; font-size:clamp(4.5rem,8vw,8.5rem); font-weight:400; line-height:.82; letter-spacing:-.05em; text-transform:uppercase; }
.delivery-copy>p:not(.section-index) { max-width:34rem; margin:2rem 0 2.6rem; font-size:1.1rem; line-height:1.6; }
.delivery-copy a { display:inline-grid; place-items:center; min-height:3.2rem; padding:0 1.5rem; border-radius:999px; color:#170d09; background:#ff3c2e; font-weight:700; }
.delivery-orbit { position:relative; height:40rem; }
.delivery-orbit>span { position:absolute; inset:50% auto auto 50%; color:#751220; font-family:"Lilita One",Impact,sans-serif; font-size:clamp(11rem,23vw,25rem); line-height:.7; transform:translate(-50%,-50%) rotate(-8deg); }
.delivery-food { position:absolute; z-index:2; object-fit:contain; filter:drop-shadow(0 2rem 2rem rgba(0,0,0,.35)); }
.delivery-burger { width:min(31vw,31rem); left:4%; top:2%; transform:rotate(-8deg); animation:orbitOne 6s ease-in-out infinite; }
.delivery-pizza { width:min(23vw,23rem); right:2%; bottom:0; transform:rotate(14deg); animation:orbitTwo 6.5s ease-in-out infinite; }
@keyframes orbitOne { 0%,100%{translate:0 0;rotate:0deg} 50%{translate:0 -1rem;rotate:2deg} }
@keyframes orbitTwo { 0%,100%{translate:0 0;rotate:0deg} 50%{translate:0 1rem;rotate:-2deg} }

.visit-section { padding:clamp(7rem,11vw,11rem) 0; background:#f2eee6; }
.visit-shell { display:grid; grid-template-columns:1.2fr .8fr; gap:8vw; }
.visit-main h2 { margin:0; font-family:"Lilita One",Impact,sans-serif; font-size:clamp(5rem,9vw,9rem); font-weight:400; line-height:.8; letter-spacing:-.055em; text-transform:uppercase; }
.visit-main>p:not(.section-index) { margin:3rem 0 1.5rem; font-size:1.2rem; line-height:1.7; }
.visit-main>a { font-weight:700; text-decoration:underline; text-underline-offset:.35rem; }
.visit-hours { align-self:end; padding-bottom:1rem; }
.visit-hours h3 { margin:0 0 2rem; font-size:1rem; text-transform:uppercase; }
.visit-hours dl { margin:0; }
.visit-hours dl div { display:flex; justify-content:space-between; gap:2rem; padding:1rem 0; border-bottom:1px solid rgba(17,16,14,.18); }
.visit-hours dt,.visit-hours dd { margin:0; }
.visit-hours dd { font-weight:700; text-align:right; }
.visit-hours>p { margin:2rem 0 0; line-height:1.6; }

.site-footer { min-height:22rem; display:grid; grid-template-columns:1fr auto; grid-template-rows:1fr auto; align-items:end; gap:2rem; padding:4rem 6vw 3rem; color:#fff; background:#11100e; }
.footer-brand { align-self:start; font-family:"Lilita One",Impact,sans-serif; font-size:clamp(6rem,16vw,16rem); line-height:.65; letter-spacing:-.06em; }
.site-footer>p { margin:0; opacity:.62; }
.site-footer>div { display:flex; gap:1.5rem; font-weight:700; }

@media (max-width: 900px) {
  .slider { min-height:44rem; }
  .slide-header { width:calc(100% - 2rem); justify-content:space-between; }
  .brand { position:static; }
  .nav-pill,.contact-button { display:none; }
  .mobile-menu-button { display:block; }
  .mobile-panel { position:absolute; inset:var(--announcement-height) 0 0; z-index:18; display:flex; flex-direction:column; justify-content:center; align-items:flex-start; gap:.5rem; padding:6rem 8vw; color:#fff; background:rgba(12,10,8,.96); opacity:0; visibility:hidden; transform:translateY(-1rem); transition:opacity .3s ease,transform .3s ease,visibility .3s; pointer-events:none; }
  .mobile-panel.is-open { opacity:1; visibility:visible; transform:none; pointer-events:auto; }
  .mobile-panel a { font-family:"Lilita One",Impact,sans-serif; font-size:clamp(3.6rem,15vw,6rem); line-height:.92; text-transform:uppercase; }
  .hero-stage { top:47%; width:92vw; height:58vh; }
  .hero-title { --title-size:clamp(5.2rem,20vw,9rem); line-height:.76; }
  .food-wrap { width:min(73vw,31rem); }
  .slide-pizza .food-wrap { width:min(66vw,27rem); }
  .slide-hotdog .food-wrap { width:min(75vw,31rem); }
  .slide-sub .food-wrap { width:min(86vw,36rem); }
  .flavor-labels { transform:translate(-30vw,-50%) scale(.74); }
  .ingredient-icons { transform:translate(27vw,-50%) scale(.76); }
  .arrow { width:3rem; height:3rem; top:52%; }
  .arrow-left { left:1rem; }
  .arrow-right { right:1rem; }
  .hero-bottom { bottom:2.4rem; width:calc(100% - 3rem); gap:1rem; }
  .description-window { min-height:3.6rem; }
  .description-window p { font-size:.85rem; }
  .story-heading p { margin-left:0; }
  .story-notes { position:relative; bottom:auto; margin-top:4rem; flex-wrap:wrap; }
  .section-intro { grid-template-columns:1fr; gap:1.5rem; }
  .menu-feature { min-height:50rem; grid-template-columns:1fr; padding:2.2rem; }
  .menu-copy { align-self:start; }
  .menu-number { margin-bottom:2rem; }
  .menu-visual { min-height:25rem; }
  .manifesto-section { min-height:45rem; }
  .delivery-section { grid-template-columns:1fr; padding:7rem 6vw 4rem; }
  .delivery-orbit { height:31rem; }
  .delivery-burger { width:min(65vw,28rem); }
  .delivery-pizza { width:min(46vw,20rem); }
  .visit-shell { grid-template-columns:1fr; gap:5rem; }
  .site-footer { grid-template-columns:1fr; grid-template-rows:auto; }
}

@media (max-width: 580px) {
  :root { --announcement-height:2rem; }
  .announcement span:first-child,.announcement span:last-child { display:none; }
  .announcement { font-size:.66rem; }
  .slide-header { top:calc(var(--announcement-height) + 1rem); }
  .brand { font-size:1.4rem; }
  .mobile-menu-button { font-size:.8rem; }
  .hero-stage { top:45%; height:54vh; }
  .hero-title { --title-size:clamp(4.7rem,23vw,7rem); }
  .food-wrap { width:min(82vw,28rem); }
  .slide-pizza .food-wrap { width:min(74vw,25rem); }
  .slide-sub .food-wrap { width:min(96vw,31rem); }
  .flavor-labels { transform:translate(-33vw,-50%) scale(.62); }
  .ingredient-icons { transform:translate(29vw,-50%) scale(.64); }
  .arrow { top:50%; width:2.65rem; height:2.65rem; }
  .hero-actions a { min-width:6.7rem; min-height:2.55rem; font-size:.78rem; }
  .description-window { min-height:4.2rem; }
  .story-section,.menu-section,.gallery-section,.visit-section { padding-top:6rem; padding-bottom:6rem; }
  .story-heading h2,.section-intro h2,.visit-main h2 { font-size:clamp(3.7rem,18vw,5.4rem); }
  .story-mark { bottom:-3rem; }
  .story-notes { gap:.8rem 1.2rem; font-size:.78rem; }
  .menu-feature { min-height:44rem; margin-bottom:2.5rem; border-radius:1.4rem; padding:1.6rem; }
  .menu-copy h3 { font-size:clamp(3.2rem,16vw,4.6rem); }
  .menu-copy>p { margin:1.4rem 0 1.8rem; }
  .menu-visual { min-height:20rem; }
  .menu-visual>span { font-size:7rem; }
  .manifesto-section { min-height:42rem; padding:6rem 1rem; }
  .manifesto-copy h2 { font-size:clamp(4.2rem,20vw,6rem); }
  .manifesto-copy>p:last-child { margin-left:0; }
  .gallery-frame { width:82vw; height:92vw; border-radius:1.4rem; }
  .gallery-rail { padding-left:1rem; }
  .delivery-copy h2 { font-size:clamp(4rem,18vw,5.5rem); }
  .delivery-orbit { height:25rem; }
  .delivery-burger { width:74vw; left:-8%; }
  .delivery-pizza { width:48vw; right:-4%; }
  .visit-hours dl div { flex-direction:column; gap:.35rem; }
  .visit-hours dd { text-align:left; }
  .site-footer { min-height:18rem; padding:3rem 1rem 2rem; }
  .site-footer>div { flex-wrap:wrap; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
  .reveal-section { opacity:1; transform:none; }
}

/* Cross-device hero motion stability */
.slide,
.food-wrap,
.hero-title,
.flavor-labels,
.ingredient-icons,
.description-window p {
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}

.slide,
.food-wrap {
  will-change: transform, opacity;
}

@media (max-width: 900px) {
  /* Keep the complete desktop transition system active on touch devices. */
  .slider-track,
  .slide,
  .food-wrap,
  .hero-title,
  .flavor-labels,
  .ingredient-icons {
    transform-style: preserve-3d;
    -webkit-transform-style: preserve-3d;
  }

  .slide.is-current:not(.is-moving) .food-image {
    animation: foodFloat 5.2s ease-in-out infinite;
  }

  .slide.is-current:not(.is-moving) .flavor-labels span,
  .slide.is-current:not(.is-moving) .ingredient-icons span {
    animation: detailFloat 5s ease-in-out infinite;
  }
}
