/* FUSION IN MOTION — self-contained, no trackers, no remotely hosted fonts */
:root{--black:#141414;--dark:#1c1c1c;--surface:#242321;--orange:#f04a11;--orange2:#ff5b22;--cream:#f2eee6;--white:#fff;--muted:#bdb8b2;--display:Impact,"Arial Narrow","Liberation Sans Narrow","Nimbus Sans Narrow",sans-serif;--body:Arial,Helvetica,"Liberation Sans",sans-serif;--page:clamp(20px,4.4vw,86px);--header-h:90px}
*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:85px}body{margin:0;background:var(--black);color:var(--white);font:16px/1.5 var(--body);-webkit-font-smoothing:antialiased;overflow-x:hidden}body.nav-open{overflow:hidden}img,video{display:block;max-width:100%}a{color:inherit;text-decoration:none}button{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--orange2);outline-offset:4px}.skip-link{position:fixed;z-index:999;left:15px;top:-70px;background:var(--cream);color:var(--black);padding:12px 20px}.skip-link:focus{top:10px}.orange,.orange-text{color:var(--orange)}.micro-label{font:700 12px/1.2 var(--body);letter-spacing:.16em}.section-index{font:800 11px/1.3 var(--body);letter-spacing:.18em}.display-title{font:900 clamp(60px,7.8vw,132px)/.88 var(--display);letter-spacing:-.015em;margin:20px 0 26px}.display-title em{font-style:normal;color:var(--orange)}.cream-section{background:var(--cream);color:var(--black)}.dark-section{background:var(--black);color:var(--white)}.outline-link,.solid-link{display:inline-flex;align-items:center;justify-content:space-between;gap:36px;text-transform:uppercase;letter-spacing:.09em;font:800 11px/1.2 var(--body);min-height:45px;padding:14px 18px;border:1px solid var(--orange);transition:background .25s,color .25s,transform .25s}.outline-link:hover{background:var(--orange);color:white;transform:translateY(-2px)}.solid-link{background:var(--orange);color:white}.solid-link:hover{background:var(--black);color:white;transform:translateY(-2px)}.outline-link span,.solid-link span{font-size:18px;font-weight:400;line-height:.6}.page-progress{position:fixed;top:0;left:0;width:100%;height:2px;z-index:150;background:transparent;pointer-events:none}.page-progress>span{display:block;background:var(--orange);height:100%;width:0;transform-origin:left}
/* HEADER */
.site-header{position:absolute;top:0;left:0;width:100%;z-index:100;transition:background .3s,box-shadow .3s}.site-header.is-scrolled{position:fixed;background:rgba(18,18,18,.94);box-shadow:0 5px 32px #0008;backdrop-filter:blur(20px)}.header-inner{max-width:1900px;min-height:var(--header-h);margin:auto;padding:9px var(--page);display:flex;align-items:center;gap:30px;justify-content:space-between}.brand{display:block;width:170px;flex-shrink:0}.brand img{width:100%;height:auto}.desktop-nav{display:flex;align-items:center;gap:clamp(18px,2.7vw,48px);margin-left:auto}.desktop-nav a{font:800 12px var(--display);letter-spacing:.075em;text-transform:uppercase;transition:color .2s}.desktop-nav a:hover,.desktop-nav a[aria-current="location"]{color:var(--orange2)}.header-visit{margin-left:clamp(8px,1.6vw,24px);display:inline-flex;align-items:center;gap:24px;border:1px solid var(--orange);padding:12px 18px;font:800 12px var(--display);letter-spacing:.08em;text-transform:uppercase;transition:background .25s}.header-visit:hover{background:var(--orange)}.header-visit span{font:22px/0.8 Arial}.mobile-menu-toggle,.mobile-nav{display:none}
/* HERO */
.hero{background:#090909;position:relative;min-height:720px;min-height:100svh;display:flex;flex-direction:column;isolation:isolate}.hero-panels{height:max(625px,calc(100svh - 95px));min-height:625px;display:flex;width:100%;overflow:hidden;border-bottom:1px solid #ffffff26}.food-panel{flex:1;min-width:0;position:relative;isolation:isolate;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;padding:calc(var(--header-h) + 18px) clamp(17px,3.4vw,65px) 35px;transition:flex .72s cubic-bezier(.2,.7,.1,1);border-right:1px solid #fff3;outline-offset:-3px}.food-panel:last-child{border-right:0}.food-panel::after{content:"";pointer-events:none;position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,#08080899 0%,transparent 32%,#00000020 44%,#000000c9 86%,#080808 100%)}.food-panel::before{content:"";position:absolute;inset:0;border-top:2px solid transparent;pointer-events:none;transition:border-color .35s}.food-panel:hover::before,.food-panel.is-active::before{border-color:var(--orange)}.panel-image{position:absolute;z-index:-2;inset:0;width:100%;height:100%;object-fit:cover;object-position:center center;transform:scale(1.045);filter:brightness(.85);transition:transform 1.1s cubic-bezier(.2,.65,.2,1),filter .6s}.food-panel.is-active .panel-image,.food-panel:hover .panel-image{transform:scale(1.11);filter:brightness(.96)}@media (hover:hover) and (min-width:850px){.hero-panels:has(.food-panel:hover) .food-panel:not(:hover){flex:.73}.hero-panels:has(.food-panel:hover) .food-panel:hover{flex:1.54}.hero-panels:has(.food-panel:hover) .food-panel:not(:hover) .panel-image{filter:brightness(.67)}}.panel-top{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.scribble{color:var(--orange2);font:bold italic clamp(18px,2vw,31px)/1.05 Georgia,serif;letter-spacing:-.065em;transform:rotate(-7deg);display:inline-block;text-shadow:0 1px 9px #000b}.panel-number{font:900 13px var(--body);opacity:.95;padding-top:8px}.panel-number span{color:var(--orange)}.panel-bottom{min-width:0;position:relative;z-index:2}.panel-eyebrow{font:800 11px var(--body);letter-spacing:.15em;text-transform:uppercase}.panel-bottom h1,.panel-bottom h2{font:900 clamp(60px,7.2vw,130px)/.82 var(--display);letter-spacing:-.02em;margin:12px 0 10px;text-shadow:0 4px 20px #0006;white-space:nowrap}.panel-bottom h2{font-size:clamp(50px,6.5vw,116px)}.food-panel.chicken h2{font-size:clamp(44px,5.55vw,105px)}.panel-bottom>p{margin:0 0 20px;max-width:330px;font-size:11px;letter-spacing:.1em;font-weight:800}.panel-cta{width:min(100%,290px);background:#1010107b;backdrop-filter:blur(5px);white-space:nowrap}.hero-signoff{flex:1;min-height:95px;display:grid;grid-template-columns:1fr 1fr 1fr;align-items:center;padding:13px var(--page);gap:20px}.handwritten{font:bold italic clamp(17px,1.9vw,27px) Georgia,serif;letter-spacing:-.07em;color:var(--orange2);transform:rotate(-5deg);transform-origin:left;display:inline-block;white-space:nowrap}.hero-signoff p{text-align:center;font:900 clamp(14px,1.65vw,25px)/1 var(--display);letter-spacing:.025em;margin:0}.hero-signoff p strong{color:var(--orange);font:inherit}.scroll-cue{font:700 10px var(--body);letter-spacing:.16em;text-align:right}.scroll-cue span{font-size:24px;vertical-align:middle;margin-left:15px;color:var(--orange)}
/* INTRO */
.intro{padding:32px var(--page) clamp(65px,8vw,140px)}.intro-kicker{display:flex;gap:15px;align-items:center;justify-content:space-between;padding-bottom:24px;border-bottom:1px solid #1616164d}.cross-symbol{font-size:32px;color:var(--orange)}.intro-main{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(30px,6vw,115px);padding-top:65px;align-items:center}.intro-copy .display-title{font-size:clamp(54px,4.7vw,88px);max-width:670px}.intro-desc{max-width:445px;font-size:clamp(16px,1.4vw,20px);line-height:1.48;margin:0 0 30px}.intro-collage{position:relative;min-height:590px;display:grid;grid-template-columns:1.35fr .65fr;grid-template-rows:1fr 0.52fr;gap:12px;padding:0 30px 30px 0}.collage-main{grid-row:1 / 3;overflow:hidden;position:relative;background:#292929;min-height:560px}.collage-main video{width:100%;height:100%;position:absolute;inset:0;object-fit:cover;object-position:center}.image-label{position:absolute;left:17px;bottom:17px;background:#141414da;color:white;padding:8px 12px;font:800 10px var(--body);letter-spacing:.12em}.collage-small{margin:0;position:relative;overflow:hidden;min-height:300px}.collage-small img{width:100%;height:100%;object-fit:cover}.collage-small figcaption{position:absolute;left:0;bottom:0;right:0;background:#141414bf;color:white;padding:8px;font:800 12px var(--display)}.orange-note{background:var(--orange);color:#111;font:900 clamp(27px,3.9vw,63px)/.9 var(--display);padding:25px 18px}.collage-scribble{position:absolute;right:0;bottom:0;transform:rotate(-9deg);color:var(--orange);font:bold italic 21px/.98 Georgia,serif;text-shadow:2px 2px 1px var(--cream)}
/* WORLD SHOWCASE */
.worlds{padding:clamp(75px,8vw,140px) var(--page)}.section-head{display:grid;grid-template-columns:1.3fr .7fr;align-items:end;gap:20px;margin-bottom:65px}.section-head .section-index{grid-column:1/-1}.section-head .display-title{margin:5px 0 0}.section-head>p{max-width:340px;justify-self:end;font-size:18px;color:var(--muted)}.world-stack{display:grid;gap:30px}.world-card{position:relative;min-height:510px;overflow:hidden;display:grid;grid-template-columns:1.1fr .9fr;background:#202020;border:1px solid #ffffff25}.world-card:nth-child(even){grid-template-columns:.9fr 1.1fr}.world-card:nth-child(even) .world-image{order:2}.world-image{height:520px;overflow:hidden}.world-image img{width:100%;height:100%;object-fit:cover;object-position:center 45%;transition:transform 1.1s}.world-card:hover .world-image img{transform:scale(1.06)}.world-text{padding:clamp(35px,5vw,100px);display:flex;flex-direction:column;align-items:flex-start;justify-content:center}.world-text>span{font-size:11px;letter-spacing:.2em;font-weight:800;color:var(--orange2)}.world-text h3{font:900 clamp(65px,7.5vw,130px)/.85 var(--display);letter-spacing:-.012em;margin:22px 0}.world-text h3 span{color:var(--orange)}.world-text>p{max-width:400px;color:#dbd6d2;font-size:18px;margin:0 0 30px}.world-text .outline-link{max-width:290px}
/* MENU */
.menu-section{background:var(--cream);color:var(--black);padding:clamp(85px,9vw,155px) var(--page)}.menu-heading{max-width:1050px}.menu-heading .display-title{margin:30px 0 18px}.menu-heading>p{font-size:18px;margin:0 0 60px}.menu-layout{display:grid;grid-template-columns:minmax(260px,.32fr) minmax(0,.68fr);gap:clamp(25px,4vw,75px);align-items:start}.menu-aside{position:sticky;top:120px;border-top:4px solid var(--orange);padding:22px 0 40px;min-height:400px}.menu-aside-top{font:800 12px var(--body);letter-spacing:.18em}.menu-aside strong{display:block;font:900 clamp(58px,5.8vw,105px)/.91 var(--display);margin:40px 0 20px}.menu-aside strong span{color:var(--orange)}.menu-aside p{font-size:14px}.menu-side-decor{color:var(--orange);font:100px/1 var(--display);padding-top:34px}.menu-content{min-width:0}.menu-tabs{display:flex;gap:0;overflow-x:auto;scrollbar-width:thin;border-bottom:2px solid var(--black);position:sticky;top:76px;z-index:15;background:var(--cream)}.menu-tab{flex:1;white-space:nowrap;background:transparent;border:0;border-bottom:5px solid transparent;margin-bottom:-2px;padding:20px clamp(10px,1.5vw,24px);font:900 clamp(15px,1.55vw,24px)/1 var(--display);letter-spacing:.03em;text-transform:uppercase;color:#666;cursor:pointer;transition:background .2s,color .2s}.menu-tab:hover{color:var(--black)}.menu-tab.is-selected{color:var(--orange);border-bottom-color:var(--orange);background:#fff7}.menu-results{min-height:500px}.menu-category-intro{display:grid;grid-template-columns:1fr 155px;gap:22px;align-items:center;background:var(--black);color:white;padding:25px;min-height:205px;margin:25px 0 24px;overflow:hidden}.menu-category-intro .micro-label{color:var(--orange)}.menu-category-intro h3{font:900 clamp(39px,4.1vw,70px)/.89 var(--display);margin:12px 0}.menu-category-intro p{max-width:370px;margin:0;font-size:14px;color:#e1dbd6}.menu-category-intro img{width:155px;height:175px;object-fit:cover}.menu-group{margin-top:38px}.menu-group-heading{border-bottom:3px solid var(--orange);padding-bottom:12px}.menu-group-heading h4{font:900 clamp(27px,3.1vw,46px)/1 var(--display);margin:0;color:var(--orange)}.menu-group-heading p{margin:8px 0 0;font-size:14px}.menu-item{display:grid;grid-template-columns:35px minmax(0,1fr) auto;column-gap:13px;align-items:start;padding:23px 0;border-bottom:1px solid #15151539}.dish-number{font:900 17px var(--display);color:var(--orange);padding-top:3px}.dish-name-line{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.dish-name-line h5{font:900 clamp(22px,2vw,30px)/1.05 var(--display);margin:0;text-transform:uppercase}.dish-tag{font:700 10px var(--body);border:1px solid var(--orange);color:var(--orange);padding:3px 5px;white-space:nowrap}.dish-recommendation{font-size:12px;color:#b53c10;font-weight:700;margin:7px 0 0}.dish-description{font-size:14px;line-height:1.52;color:#494642;max-width:630px;margin:8px 0 4px}.dish-allergens{display:inline-block;font-size:11px;color:#6a6763;margin-top:5px}.dish-price{font-size:clamp(16px,1.35vw,21px);white-space:nowrap;padding-left:4px}.menu-footnote,.menu-extra-note{font-size:12px;line-height:1.6;color:#585550;border-top:1px solid #7774;padding-top:14px;margin-top:20px}
/* GALLERY */
.gallery-section{padding:clamp(85px,9vw,150px) var(--page)}.gallery-head{display:flex;align-items:end;justify-content:space-between;gap:60px;margin-bottom:45px}.gallery-head .display-title{margin:20px 0 0}.gallery-head>p{max-width:280px;color:#bdb8b2;font-size:17px}.gallery-grid{display:grid;grid-template-columns:1.15fr 1fr .75fr;grid-template-rows:310px 290px;gap:16px}.gallery-item{position:relative;margin:0;overflow:hidden;background:#262626}.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.7,.1,1)}.gallery-item:hover img{transform:scale(1.045)}.gallery-item figcaption{position:absolute;bottom:15px;left:15px;background:#141414cd;border-left:2px solid var(--orange);padding:8px 10px;font:900 13px var(--display);letter-spacing:.05em}.g-one{grid-column:1;grid-row:1/3}.g-two{grid-column:2;grid-row:1}.g-three{grid-column:3;grid-row:1}.g-four{grid-column:2;grid-row:2}.g-five{grid-column:3;grid-row:2}.gallery-footer{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:25px}.gallery-footer p{max-width:610px;color:#c5c0bc;font-size:12px}
/* VISIT */
.visit-section{padding:clamp(85px,9vw,155px) var(--page)}.visit-top .display-title{font-size:clamp(85px,11vw,180px)}.visit-top>p{font-size:18px;margin:0 0 48px}.visit-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,8vw,130px);align-items:stretch}.visit-info{border-top:3px solid var(--orange);display:grid}.visit-block{border-bottom:1px solid #1114;padding:26px 0}.visit-block>span{display:block;font:900 12px var(--body);color:var(--orange);letter-spacing:.16em;margin-bottom:14px}.visit-block h3{font:900 43px var(--display);margin:0 0 7px}.visit-block address{font-size:21px;font-style:normal;line-height:1.5;margin-bottom:21px}.hours{margin:0}.hours>div{display:flex;justify-content:space-between;gap:15px;padding:7px 0;font:700 15px var(--body)}.hours dd{margin:0;text-align:right}.visit-block small{display:block;color:#6b6661;margin-top:13px}.phone-link{font:900 clamp(28px,3vw,46px) var(--display)}.phone-link span{color:var(--orange)}.visit-photo{position:relative;overflow:hidden;min-height:580px}.visit-photo img{width:100%;height:100%;object-fit:cover;object-position:center 35%;position:absolute;inset:0}.visit-stamp{position:absolute;right:20px;bottom:24px;background:var(--orange);color:var(--black);font:900 27px/.95 var(--display);transform:rotate(7deg);padding:17px 19px}
/* FOOTER */
.site-footer{background:#0f0f0f;border-top:5px solid var(--orange);padding:25px var(--page) 22px}.footer-inner{max-width:1900px;margin:auto}.footer-top{display:flex;justify-content:space-between;align-items:center;font:800 11px var(--body);letter-spacing:.13em;color:var(--muted)}.footer-top a{color:var(--orange)}.footer-mega{font:900 clamp(90px,17.1vw,290px)/.82 var(--display);letter-spacing:-.025em;margin:65px 0 75px;white-space:nowrap}.footer-mega span{color:var(--orange);text-shadow:0 0 42px #f04a113d}.footer-bottom{display:flex;justify-content:space-between;align-items:center;gap:25px;border-top:1px solid #ffffff50;padding:20px 0}.footer-logo{width:240px;flex-shrink:0}.footer-logo img{width:100%;height:auto}.footer-links{display:flex;gap:25px;flex-wrap:wrap}.footer-links a,.footer-location{font:800 11px var(--body);text-transform:uppercase;letter-spacing:.08em}.footer-links a:hover{color:var(--orange)}.footer-location{color:#aaa}.footer-legal-note{color:#777;font-size:11px;margin:17px 0 0}.noscript-warning{position:fixed;bottom:0;background:#fff6df;color:#111;padding:15px;width:100%;z-index:100}
/* REVEALS */
.js .reveal{opacity:0;transform:translateY(42px);transition:opacity .75s,transform .75s cubic-bezier(.2,.7,.2,1)}.js .reveal.is-visible{opacity:1;transform:none}
/* MID-SIZE DESKTOP */
@media(max-width:1180px){:root{--page:32px;--header-h:78px}.brand{width:146px}.header-visit{display:none}.panel-bottom h1{font-size:clamp(65px,7.7vw,95px)}.panel-bottom h2{font-size:clamp(53px,6.6vw,80px)}.food-panel.chicken h2{font-size:clamp(48px,5.75vw,70px)}.food-panel{padding-left:25px;padding-right:20px}.scribble{font-size:22px}.intro-collage{min-height:470px}.collage-main{min-height:470px}.gallery-grid{grid-template-rows:270px 250px}.footer-location{display:none}}
/* =========================================
   DESKTOP HERO – TYPOGRAFIE OPTIMIERUNG
   ========================================= */

@media (min-width: 850px) {

    /* PASTA */

    .panel-bottom h1 {
        font-size: clamp(50px, 5.3vw, 94px);
    }

    /* SMASH BURGER */

    .panel-bottom h2 {
        font-size: clamp(50px, 5.3vw, 94px);
    }

    /* KOREAN CHICKEN */

    .food-panel.chicken h2 {
        font-size: clamp(50px, 5.3vw, 94px);
    }

}
/* =========================================
   DESKTOP NAVIGATION
   ========================================= */

@media (min-width: 850px) {

    .desktop-nav a {
        font-family: Arial, sans-serif;
        font-size: 13px;
        font-weight: 700;
        letter-spacing: 0.06em;
    }

    .header-visit {
        font-family: Arial, sans-serif;
        font-size: 12px;
        font-weight: 700;
    }

}
/* =========================================
   FUSION KITCHEN
   EINHEITLICHE DESKTOP-ÜBERSCHRIFTEN
   ========================================= */

@media (min-width: 850px) {

    /* Alle großen Abschnittsüberschriften */

    .display-title,
    .intro-copy .display-title,
    .section-head .display-title,
    .menu-heading .display-title,
    .gallery-head .display-title,
    .visit-top .display-title {

        font-size: clamp(54px, 4.7vw, 88px);
        line-height: 0.92;

    }

    /* Überschriften innerhalb der Food Experience */

    .world-text h3 {

        font-size: clamp(54px, 4.7vw, 88px);
        line-height: 0.92;

    }

}
/* =========================================
   FUSION KITCHEN
   EINHEITLICHE DESKTOP TYPOGRAFIE
   ========================================= */

@media (min-width: 850px) {

    /* 1. ÜBER UNS */

    .intro-copy .display-title {
        font-size: clamp(54px, 4.7vw, 88px);
        line-height: 0.92;
    }


    /* 2. PICK YOUR CRAVING */

    .section-head .display-title {
        font-size: clamp(54px, 4.7vw, 88px);
        line-height: 0.92;
    }


    /* 3. FOOD EXPERIENCE */

    .world-text h3 {
        font-size: clamp(54px, 4.7vw, 88px);
        line-height: 0.92;
    }


    /* 4. SPEISEKARTE – HAUPTÜBERSCHRIFT */

    .menu-heading .display-title {
        font-size: clamp(54px, 4.7vw, 88px);
        line-height: 0.92;
    }


    /* 5. SPEISEKARTE – LINKE SPALTE */

    .menu-aside strong {
        font-size: clamp(45px, 3.5vw, 72px);
        line-height: 0.95;
    }


    /* 6. GALERIE */

    .gallery-head .display-title {
        font-size: clamp(54px, 4.7vw, 88px);
        line-height: 0.92;
    }


    /* 7. ANFAHRT */

    .visit-top .display-title {
        font-size: clamp(54px, 4.7vw, 88px);
        line-height: 0.92;
    }


    /* 8. FOOTER – EAT. DRINK. REPEAT. */

    .footer-mega {
        font-size: clamp(54px, 4.7vw, 88px);
        line-height: 0.92;
        margin: 45px 0 55px;
    }

}
/* Kompakte Video-Steuerung: beide Buttons gemeinsam rechts unten, ohne Textlabel zu verdecken. */
.collage-main .kitchen-video-controls {
  position: absolute;
  z-index: 3;
  right: 16px;
  bottom: 57px;
  display: flex;
  gap: 6px;
  align-items: center;
}
.collage-main .kitchen-video-controls button {
  display: grid;
  place-items: center;
  flex: 0 0 44px;
  width: 44px;
  height: 44px;
  padding: 11px;
  border: 1px solid rgba(255,255,255,.55);
  border-radius: 50%;
  background: rgba(20,20,20,.78);
  color: #fff;
  cursor: pointer;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}
.collage-main .kitchen-video-controls button:hover { background: rgba(20,20,20,.95); }
.collage-main .kitchen-video-controls button:focus-visible { outline: 3px solid var(--orange); outline-offset: 3px; }
.collage-main .kitchen-video-controls svg { display: block; width: 20px; height: 20px; }
.collage-main .kitchen-sound-toggle .sound-icon-unmuted { display: none; }
.collage-main .kitchen-sound-toggle[aria-pressed="true"] .sound-icon-muted { display: none; }
.collage-main .kitchen-sound-toggle[aria-pressed="true"] .sound-icon-unmuted { display: block; }
/* Die Steuerung liegt knapp oberhalb der Bildunterschrift statt über ihr. */
@media (max-width: 599px) {
  .collage-main .kitchen-video-controls { right: 8px; bottom: 52px; gap: 5px; }
}



/* ================================================================
   FUSIØN IN MOTION V3 · No external dependencies / no added footage
   Signature ø and i-dot use LOSSLESS slices of the original logo.
   Effects are decorative only; all normal interaction stays native.
   ================================================================ */

/* LOGOS: fixed letters and subline -> ø rotates into place -> i-dot arrives last. */
.brand-original { width:100%; height:auto; }
.brand-motion { display:none; position:relative; width:100%; aspect-ratio:571 / 215; }
.js .brand-original { display:none; }
.js .brand-motion { display:block; }
.brand-motion > img { display:block; position:absolute; height:auto; pointer-events:none; }
.brand-motion .logo-body { width:100%; inset:0 auto auto 0; }
.brand-motion .logo-o { left:58.844%; top:21.860%; width:18.564%; transform-origin:center; }
.brand-motion .logo-dot { left:50.263%; top:5.116%; width:6.655%; transform-origin:center 85%; }
@keyframes fusionOArrives {
  0%   { opacity:0; transform:translate3d(92%, -80%, 0) rotate(-250deg) scale(1.53); }
  62%  { opacity:1; }
  79%  { transform:translate3d(-7%, 3%, 0) rotate(14deg) scale(1.085); }
  91%  { transform:translate3d(2%, -1%, 0) rotate(-4deg) scale(.99); }
  100% { opacity:1; transform:translate3d(0, 0, 0) rotate(0) scale(1); }
}
@keyframes fusionDotDrops {
  0%   { opacity:0; transform:translate3d(0, -220%, 0) scale(1.4); }
  53%  { opacity:1; transform:translate3d(0, 23%, 0) scale(1.1); }
  76%  { transform:translate3d(0, -15%, 0) scale(.95); }
  100% { opacity:1; transform:translate3d(0, 0, 0) scale(1); }
}
/* Header plays on page load. Footer waits until its logo enters the viewport. */
.js .brand .brand-motion .logo-o { animation:fusionOArrives 1.90s cubic-bezier(.17,.68,.23,1) .45s both; }
.js .brand .brand-motion .logo-dot { animation:fusionDotDrops .85s cubic-bezier(.18,.72,.21,1) 2.59s both; }
.js .footer-logo .brand-motion .logo-o,
.js .footer-logo .brand-motion .logo-dot { opacity:0; }
.js .footer-logo.is-visible .brand-motion .logo-o { animation:fusionOArrives 1.90s cubic-bezier(.17,.68,.23,1) .25s both; }
.js .footer-logo.is-visible .brand-motion .logo-dot { animation:fusionDotDrops .85s cubic-bezier(.18,.72,.21,1) 2.39s both; }
.footer-logo { display:block; }
/* Keep the nonanimated intact image for non-JS browsers. */
@keyframes fusionNavAppears {
  from { opacity:0; transform:translate3d(0, 12px, 0); }
  to { opacity:1; transform:translate3d(0,0,0); }
}
.js .desktop-nav a, .js .header-visit, .js .mobile-menu-toggle {
  animation:fusionNavAppears .56s cubic-bezier(.2,.7,.2,1) both;
}
.js .desktop-nav a:nth-child(1) { animation-delay:1.29s; }
.js .desktop-nav a:nth-child(2) { animation-delay:1.40s; }
.js .desktop-nav a:nth-child(3) { animation-delay:1.51s; }
.js .desktop-nav a:nth-child(4) { animation-delay:1.62s; }
.js .header-visit { animation-delay:1.74s; }
.js .mobile-menu-toggle { animation-delay:1.26s; }

/* No image-covering color sheets: food photography remains visible immediately. */
/* The existing hover/expanded transformations still govern panel images. */
@keyframes fusionPanelWords {
  from { opacity:0; transform:translate3d(0, 32px, 0); }
  to { opacity:1; transform:translate3d(0,0,0); }
}
.js .food-panel .panel-bottom { animation:fusionPanelWords .72s cubic-bezier(.14,.75,.18,1) both; }
.js .food-panel:nth-child(1) .panel-bottom { animation-delay:.22s; }
.js .food-panel:nth-child(2) .panel-bottom { animation-delay:.37s; }
.js .food-panel:nth-child(3) .panel-bottom { animation-delay:.52s; }
.js .food-panel .panel-top { animation:fusionPanelWords .65s ease-out both; }
.js .food-panel:nth-child(1) .panel-top { animation-delay:.15s; }
.js .food-panel:nth-child(2) .panel-top { animation-delay:.30s; }
.js .food-panel:nth-child(3) .panel-top { animation-delay:.45s; }

/* TITLES: actual masked text, with orange line entering after the first. */
.motion-heading .motion-line { display:block; overflow:hidden; padding-block:.1em; margin-block:-.1em; }
.motion-heading .motion-line-inner { display:block; }
.js .reveal .motion-line-inner {
  opacity:0; transform:translate3d(0, 115%, 0);
  transition:opacity .7s ease,transform .91s cubic-bezier(.2,.76,.2,1);
}
.js .reveal.is-visible .motion-line-inner { opacity:1; transform:translate3d(0,0,0); }
.js .reveal.is-visible .motion-line:nth-child(1) .motion-line-inner { transition-delay:.10s; }
.js .reveal.is-visible .motion-line:nth-child(2) .motion-line-inner { transition-delay:.29s; }
.js .reveal.is-visible .motion-line:nth-child(3) .motion-line-inner { transition-delay:.47s; }

/* FOOD WORLDS: preserve photo visibility; only zoom + staggered copy. */
.world-card .world-image { position:relative; }
@keyframes fusionWorldPhoto {
  from { transform:scale(1.105); }
  to { transform:scale(1); }
}
.js .world-card.is-visible .world-image img {
  animation:fusionWorldPhoto 1.15s cubic-bezier(.2,.7,.2,1) .12s backwards;
}
.js .world-card .world-text > span,
.js .world-card .world-text > h3,
.js .world-card .world-text > p,
.js .world-card .world-text > a {
  opacity:0; transform:translate3d(0, 26px, 0);
  transition:opacity .65s ease,transform .82s cubic-bezier(.2,.72,.18,1);
}
.js .world-card.is-visible .world-text > span,
.js .world-card.is-visible .world-text > h3,
.js .world-card.is-visible .world-text > p,
.js .world-card.is-visible .world-text > a { opacity:1; transform:none; }
.js .world-card.is-visible .world-text > span { transition-delay:.24s; }
.js .world-card.is-visible .world-text > h3 { transition-delay:.37s; }
.js .world-card.is-visible .world-text > p { transition-delay:.51s; }
.js .world-card.is-visible .world-text > a { transition-delay:.63s; }
.js .world-card.is-visible .world-text > a:hover {
  transform:translateY(-2px); transition:transform .25s,background .25s,color .25s;
}

/* MENU: one travelling line. Swiping/clicking/kbd navigation still use menu.js. */
.js .menu-tabs .menu-indicator {
  position:absolute; display:block; bottom:0; left:0; height:4px; width:0;
  border-radius:2px 2px 0 0; background:var(--orange); z-index:2;
  pointer-events:none; transition:transform .46s cubic-bezier(.23,.78,.17,1),width .46s cubic-bezier(.23,.78,.17,1);
}
.js .menu-tab.is-selected { border-bottom-color:transparent; }
@keyframes fusionMenuDishEnter {
  from { opacity:0; transform:translate3d(0, 16px, 0); }
  to { opacity:1; transform:translate3d(0,0,0); }
}
.js .menu-results.is-switching .menu-category-intro,
.js .menu-results.is-switching .menu-group-heading,
.js .menu-results.is-switching .menu-item {
  animation:fusionMenuDishEnter .48s cubic-bezier(.2,.78,.2,1) backwards;
}
.js .menu-results.is-switching .menu-category-intro { animation-delay:.04s; }
.js .menu-results.is-switching .menu-group-heading { animation-delay:.095s; }
.js .menu-results.is-switching .menu-item:nth-child(1) { animation-delay:.11s; }
.js .menu-results.is-switching .menu-item:nth-child(2) { animation-delay:.14s; }
.js .menu-results.is-switching .menu-item:nth-child(3) { animation-delay:.17s; }
.js .menu-results.is-switching .menu-item:nth-child(4) { animation-delay:.20s; }
.js .menu-results.is-switching .menu-item:nth-child(5) { animation-delay:.23s; }

/* FINALE: dramatic typography without extra art or a scrolling marquee. */
.footer-mega .footer-motion-row { display:block; overflow:hidden; padding-block:.08em; margin-block:-.08em; }
.footer-mega .footer-motion-row:first-child,
.footer-mega .footer-motion-row:first-child .footer-motion-inner { color:#fff; text-shadow:none; }
.footer-mega .footer-motion-orange,
.footer-mega .footer-motion-orange .footer-motion-inner { color:var(--orange); }
.footer-mega .footer-motion-inner { display:block; }
.js .footer-mega .footer-motion-inner {
  opacity:0; transform:translate3d(0, 115%, 0);
  transition:opacity .65s ease,transform 1.1s cubic-bezier(.18,.75,.2,1);
}
.js .footer-mega.is-visible .footer-motion-inner { opacity:1; transform:none; }
.js .footer-mega.is-visible .footer-motion-orange .footer-motion-inner { transition-delay:.29s; }

/* Compact touch layout: only the open pasta panel animates on load. */
@media (max-width:849px), (max-width:1366px) and (hover:none) and (pointer:coarse) {
  .js .food-panel:not(.motion-first-panel) .panel-bottom,
  .js .food-panel:not(.motion-first-panel) .panel-top { animation:none; }
  .js .world-card .world-text > span,
  .js .world-card .world-text > h3,
  .js .world-card .world-text > p,
  .js .world-card .world-text > a { transform:translate3d(0, 17px, 0); }
}
/* Reduced-motion: show complete logos/text/images immediately. */
@media (prefers-reduced-motion:reduce) {
  .js .brand-motion .logo-o, .js .brand-motion .logo-dot,
  .js .desktop-nav a, .js .header-visit, .js .mobile-menu-toggle,
  .js .food-panel .panel-bottom, .js .food-panel .panel-top,
  .js .world-card.is-visible .world-image img { animation:none!important; opacity:1!important; transform:none!important; }
  .js .reveal .motion-line-inner, .js .world-card .world-text > span,
  .js .world-card .world-text > h3, .js .world-card .world-text > p,
  .js .world-card .world-text > a, .js .footer-mega .footer-motion-inner {
    opacity:1!important; transform:none!important; transition:none!important;
  }
  .js .menu-tabs .menu-indicator { transition:none!important; }
  .js .menu-results.is-switching .menu-category-intro,
  .js .menu-results.is-switching .menu-group-heading,
  .js .menu-results.is-switching .menu-item { animation:none!important; }
}


/* IN MOTION V4 | Punctuation is added AFTER its word/line arrives.
   Real text glyphs are preserved, no image/SVG/font dependencies.
   Keep inline-width allocated so nothing jumps on mobile. */
.punct-mark{display:inline-block;position:relative;white-space:nowrap;transform-origin:50% 88%;}
/* All non-JS and reduced-motion views display final punctuation normally. */
@keyframes fusionInkedDot{
  0%{opacity:0;clip-path:inset(0 100% 0 0);transform:translate3d(-.16em,-.28em,0) rotate(-17deg) scale(.36)}
  35%{opacity:1;clip-path:inset(0 45% 0 0);transform:translate3d(-.06em,-.11em,0) rotate(-7deg) scale(.83)}
  76%{opacity:1;clip-path:inset(0 0 0 0);transform:translate3d(0,.025em,0) rotate(2deg) scale(1.09)}
  100%{opacity:1;clip-path:inset(0 0 0 0);transform:none}
}
/* V5: The question mark is already there. Only its final dot drops into place. */
@keyframes fusionQuestionDot{
  0%{opacity:0;transform:translate3d(0,-.13em,0) scale(.6)}
  72%{opacity:1;transform:translate3d(0,.018em,0) scale(1.08)}
  100%{opacity:1;transform:none}
}
/* Header/hero word appears first, its punctuation follows visibly. */
.js .food-panel .punct-dot{animation:fusionInkedDot .78s cubic-bezier(.18,.65,.22,1) 1.24s both;}
.js .food-panel:nth-child(2) .punct-dot{animation-delay:1.39s;}
.js .food-panel:nth-child(3) .punct-dot{animation-delay:1.54s;}
/* On touch, a category switched open replays ONLY its punctuation, not its image. */
.js .food-panel.punct-activated .punct-dot{animation:fusionInkedDot .78s cubic-bezier(.18,.65,.22,1) .40s both;}
/* Display headings arrive line-by-line. Punctuation inks in AFTER each line settles. */
.js .motion-heading .punct-mark{opacity:0;}
.js .reveal.is-visible .motion-heading .motion-line:nth-child(1) .punct-dot{
 animation:fusionInkedDot .78s cubic-bezier(.18,.65,.22,1) 1.10s both;
}
.js .reveal.is-visible .motion-heading .motion-line:nth-child(2) .punct-dot{
 animation:fusionInkedDot .78s cubic-bezier(.18,.65,.22,1) 1.29s both;
}
.js .reveal.is-visible .motion-heading .motion-line:nth-child(3) .punct-dot{
 animation:fusionInkedDot .78s cubic-bezier(.18,.65,.22,1) 1.47s both;
}
/* Food cards: let the entire heading appear before its signature period. */
.js .world-card .punct-dot{opacity:0;}
.js .world-card.is-visible .punct-dot{
 animation:fusionInkedDot .78s cubic-bezier(.18,.65,.22,1) 1.29s both;
}
/* Show the curved question-mark glyph immediately; reserve its width from the start.
   The same glyph is duplicated only visually and clipped to the final dot,
   preserving the exact dot shape of the original display font. */
.js .punct-watch .punct-question{
 opacity:1;
 color:transparent;
}
.js .punct-watch .punct-question::before,
.js .punct-watch .punct-question::after{
 content:"?";
 position:absolute;
 inset:0;
 font:inherit;
 line-height:inherit;
 color:var(--orange);
 pointer-events:none;
}
.js .punct-watch .punct-question::before{
 clip-path:inset(0 0 24% 0);
}
.js .punct-watch .punct-question::after{
 clip-path:inset(74% 0 0 0);
 opacity:0;
 transform-origin:50% 85%;
}
.js .punct-watch.is-visible .punct-question::after{
 animation:fusionQuestionDot .48s cubic-bezier(.2,.75,.26,1) .38s both;
}
/* Footer: three dots appear as independent hand-placed finishing touches. */
.footer-mega .footer-motion-row:first-child .punct-mark{color:inherit;text-shadow:inherit;}
.js .footer-mega .punct-dot{opacity:0;}
.js .footer-mega.is-visible .footer-motion-row:first-child .punct-dot{
 animation:fusionInkedDot .78s cubic-bezier(.18,.65,.22,1) 1.26s both;
}
.js .footer-mega.is-visible .footer-motion-row:first-child .punct-dot:nth-of-type(2){animation-delay:1.60s;}
.js .footer-mega.is-visible .footer-motion-orange .punct-dot{
 animation:fusionInkedDot .78s cubic-bezier(.18,.65,.22,1) 1.84s both;
}
@media(prefers-reduced-motion:reduce){
 .js .punct-mark{animation:none!important;opacity:1!important;clip-path:none!important;transform:none!important;}
 .js .punct-watch .punct-question{color:var(--orange)!important;}
 .js .punct-watch .punct-question::before,.js .punct-watch .punct-question::after{content:none!important;animation:none!important;}
}

/* FUSIØN responsive rules bundled here to eliminate a separate render-blocking CSS request. */
/* Mobile v3: phones and touch tablets. Desktop styling lives in styles.css. */
@font-face {
  font-family: "Fusion Mobile";
  src: url("assets/fonts/fusion-mobile-bold.woff") format("woff");
  font-style: normal;
  font-weight: 900;
  font-display: swap;
}
.menu-swipe-controls { display: none; }

@media (max-width: 849px), (max-width: 1366px) and (hover: none) and (pointer: coarse) {
  :root {
    --display: "Fusion Mobile", Arial, Helvetica, sans-serif;
    --page: clamp(16px, 4.5vw, 40px);
    --header-h: 68px;
    --safe-top: env(safe-area-inset-top, 0px);
    --header-total: calc(var(--header-h) + var(--safe-top));
  }
  html {
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
    scroll-padding-top: calc(var(--header-total) + 16px);
  }
  body { overflow-x: visible; }
  body.nav-open { overflow: hidden; }
  main, .site-footer { width: 100%; min-width: 0; }
  main > section, .footer-inner, .menu-content, .world-text,
  .intro-copy, .visit-info, .dish-body { min-width: 0; }
  .section-number, .dish-number, .panel-number { display: none; }
  .section-index, .micro-label { font-size: 10px; letter-spacing: .13em; }
  .display-title,
  .intro-copy .display-title,
  .section-head .display-title,
  .menu-heading .display-title,
  .gallery-head .display-title,
  .visit-top .display-title {
    font-size: clamp(30px, 8.5vw, 52px);
    line-height: 1.04;
    letter-spacing: -.035em;
    margin: 18px 0 22px;
    overflow-wrap: anywhere;
  }
  .intro-copy .display-title { font-size: clamp(28px, 7.9vw, 52px); }
  .outline-link, .solid-link {
    max-width: 100%; min-height: 46px; padding: 14px 16px;
    gap: 20px; line-height: 1.35; white-space: normal;
  }
  .outline-link span, .solid-link span { flex: 0 0 auto; }

  /* The logo and close button stay inside the viewport, also in landscape. */
  .site-header, .site-header.is-scrolled {
    position: fixed; top: 0; background: #121212;
    padding-top: var(--safe-top);
  }
  .header-inner {
    min-height: var(--header-h); height: var(--header-h); gap: 16px;
    padding: 8px var(--page);
    padding-left: max(var(--page), env(safe-area-inset-left, 0px));
    padding-right: max(var(--page), env(safe-area-inset-right, 0px));
  }
  .brand { width: 124px; position: relative; z-index: 102; }
  .desktop-nav, .header-visit { display: none; }
  .mobile-menu-toggle {
    display: flex; flex-direction: column; justify-content: center;
    align-items: center; gap: 6px; flex: 0 0 44px;
    width: 44px; height: 44px; padding: 0; border: 0;
    background: transparent; color: white; cursor: pointer;
    position: relative; z-index: 102;
  }
  .mobile-menu-toggle span {
    height: 2px; width: 25px; background: white; display: block;
    transition: transform .2s;
  }
  .mobile-menu-toggle[aria-expanded="true"] span:first-child { transform: translateY(4px) rotate(45deg); }
  .mobile-menu-toggle[aria-expanded="true"] span:last-child { transform: translateY(-4px) rotate(-45deg); }
  .mobile-nav {
    position: fixed; inset: 0; z-index: 99; display: flex;
    flex-direction: column; width: 100%; height: 100%; height: 100dvh;
    background: #141414; overflow-y: auto; overscroll-behavior-y: contain;
    -webkit-overflow-scrolling: touch;
    padding: calc(var(--header-total) + 28px) var(--page) max(24px, env(safe-area-inset-bottom, 0px));
    padding-left: max(var(--page), env(safe-area-inset-left, 0px));
    padding-right: max(var(--page), env(safe-area-inset-right, 0px));
    opacity: 0; visibility: hidden; transform: translateY(-8px);
    transition: opacity .2s, visibility .2s, transform .2s;
  }
  .mobile-nav.is-open { opacity: 1; visibility: visible; transform: none; }
  .mobile-nav-kicker {
    color: var(--orange); font-size: 10px; letter-spacing: .14em;
    margin-bottom: 20px; flex: 0 0 auto;
  }
  .mobile-nav > a {
    display: flex; align-items: center; gap: 12px;
    flex: 0 0 auto; min-height: 62px; padding: 17px 0;
    border-bottom: 1px solid #ffffff35;
    font: 900 clamp(21px, 5.9vw, 32px)/1.2 var(--display);
    letter-spacing: -.04em; text-transform: uppercase;
  }
  .mobile-nav > a > span { display: none; }
  .mobile-nav > a > i {
    flex: 0 0 auto; font: normal 22px/1 Arial; color: var(--orange);
    margin-left: auto;
  }
  .mobile-nav-footer {
    display: flex; flex-wrap: wrap; gap: 8px 24px;
    margin-top: auto; padding-top: 32px; font-size: 14px;
  }
  .mobile-nav-footer a { display: inline-flex; align-items: center; min-height: 44px; }

  /* Compact, tappable food panels with room for every line of text. */
  .hero { min-height: 0; }
  .hero-panels {
    display: flex; flex-direction: column; height: auto; min-height: 0;
    padding-top: var(--header-total); border: 0;
  }
  .food-panel {
    flex: none !important; height: 98px; min-height: 0;
    padding: 18px var(--page); cursor: pointer;
    border-right: 0; border-bottom: 2px solid #151515;
    justify-content: center; transition: height .3s ease;
  }
  .food-panel.is-active {
    height: 390px; height: clamp(365px, 58svh, 460px);
    padding: 24px var(--page); justify-content: space-between;
  }
  .food-panel::after {
    background: linear-gradient(90deg, #08080890, #00000010 80%),
      linear-gradient(180deg, #0005, transparent 30%, #0004 55%, #000d);
  }
  .food-panel .panel-image { object-position: center 45%; filter: brightness(.75); }
  .food-panel.is-active .panel-image { filter: brightness(.94); }
  .food-panel:not(.is-active) .panel-top,
  .food-panel:not(.is-active) .panel-eyebrow,
  .food-panel:not(.is-active) .panel-bottom p,
  .food-panel:not(.is-active) .panel-cta { display: none; }
  .food-panel:not(.is-active) .panel-bottom h1,
  .food-panel:not(.is-active) .panel-bottom h2 {
    font-size: clamp(24px, 7.1vw, 38px); line-height: .99;
    margin: 0; white-space: normal;
  }
  .food-panel.is-active .panel-bottom h1,
  .food-panel.is-active .panel-bottom h2,
  .food-panel.is-active.chicken .panel-bottom h2 {
    font-size: clamp(35px, 10.5vw, 64px); line-height: .97;
    letter-spacing: -.035em; margin: 12px 0;
    white-space: normal; overflow-wrap: anywhere;
  }
  .panel-eyebrow { font-size: 9px; letter-spacing: .12em; }
  .food-panel.is-active .panel-bottom > p {
    font-size: 10px; letter-spacing: .065em; line-height: 1.5;
    margin: 0 0 18px; max-width: 100%;
  }
  .food-panel.is-active .panel-cta { background: var(--orange); width: min(100%, 290px); }
  .scribble { font-size: 20px; }
  .hero-signoff {
    display: flex; min-height: 84px; padding: 18px var(--page);
    justify-content: space-between; gap: 18px;
  }
  .handwritten { display: none; }
  .hero-signoff p { max-width: 220px; font-size: 16px; line-height: 1.2; text-align: left; }
  .scroll-cue { flex: 0 0 auto; width: 82px; font-size: 8px; line-height: 1.5; letter-spacing: .06em; }
  .scroll-cue span { font-size: 22px; margin-left: 6px; }

  .intro { padding: 26px var(--page) 56px; }
  .intro-kicker { font-size: 9px; gap: 10px; padding-bottom: 18px; }
  .intro-kicker > span:last-child { max-width: 110px; text-align: right; }
  .cross-symbol { font-size: 26px; }
  .intro-main { grid-template-columns: minmax(0, 1fr); gap: 32px; padding-top: 34px; }
  .intro-desc { font-size: 16px; line-height: 1.6; max-width: 600px; margin-bottom: 24px; }
  .intro-collage {
    min-height: 0; height: clamp(310px, 90vw, 520px);
    grid-template-columns: minmax(0, 1.35fr) minmax(0, .85fr);
    grid-template-rows: minmax(0, 1fr) minmax(0, .8fr);
    gap: 10px; padding: 0 0 28px;
  }
  .collage-main, .collage-small { min-height: 0; min-width: 0; }
  .collage-small img { position: absolute; inset: 0; }
  .collage-small figcaption { font-size: 10px; }
  .image-label { left: 8px; right: 8px; bottom: 10px; padding: 8px; font-size: 8px; line-height: 1.5; }
  .orange-note { font-size: clamp(22px, 5.8vw, 38px); line-height: .98; padding: 13px 10px; }
  .collage-scribble { font-size: 14px; right: 8px; bottom: 0; }

  .worlds, .menu-section, .gallery-section, .visit-section { padding: 56px var(--page); }
  .section-head { grid-template-columns: minmax(0, 1fr); gap: 12px; margin-bottom: 28px; }
  .section-head .display-title { margin: 4px 0 8px; }
  .section-head > p { justify-self: start; font-size: 16px; max-width: 500px; margin: 0; }
  .world-stack { gap: 22px; }
  .world-card, .world-card:nth-child(even) { grid-template-columns: minmax(0, 1fr); min-height: 0; }
  .world-card:nth-child(even) .world-image { order: 0; }
  .world-image { height: clamp(210px, 60vw, 390px); }
  .world-text { padding: 26px 22px 28px; }
  .world-text > span { font-size: 10px; }
  .world-text h3 { font-size: clamp(32px, 9vw, 52px); line-height: 1; margin: 16px 0; letter-spacing: -.035em; }
  .world-text > p { font-size: 15px; line-height: 1.6; margin-bottom: 22px; }

  .menu-heading > p { font-size: 16px; margin-bottom: 28px; }
  .menu-layout { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .menu-aside { display: none; }
  .menu-content { width: 100%; overflow: visible; }
  .menu-tabs {
    position: sticky; top: var(--header-total); width: 100%;
    gap: 0; overflow: visible; touch-action: pan-y pinch-zoom;
    box-shadow: 0 -1px 0 var(--cream);
  }
  .menu-tab {
    flex: 1 1 0; min-width: 0; min-height: 51px; padding: 16px 4px 13px;
    font-size: clamp(11px, 3.1vw, 17px); letter-spacing: 0;
    border-bottom-width: 3px;
  }
  .menu-swipe-controls {
    display: flex; align-items: center; justify-content: space-between;
    gap: 8px; padding: 10px 0 0;
  }
  .menu-swipe-controls button {
    flex: 0 0 44px; width: 44px; height: 44px; border: 1px solid #15151535;
    border-radius: 50%; color: var(--black); background: transparent;
    font: 22px/1 Arial; cursor: pointer;
  }
  .menu-swipe-controls button:disabled { opacity: .28; cursor: default; }
  .menu-swipe-controls > div { text-align: center; min-width: 0; }
  .menu-swipe-status { display: block; font-size: 12px; font-weight: 700; }
  .menu-swipe-hint { display: block; font-size: 10px; color: #625c56; margin-top: 3px; }
  .menu-results { min-height: 0; touch-action: pan-y pinch-zoom; }
  .menu-category-intro {
    grid-template-columns: minmax(0, 1fr) 82px; gap: 14px;
    padding: 18px 14px; min-height: 158px; margin: 16px 0 24px;
  }
  .menu-category-intro > div { min-width: 0; }
  .menu-category-intro h3 {
    font-size: clamp(20px, 5.9vw, 36px); line-height: 1.05;
    letter-spacing: -.04em; overflow-wrap: anywhere; margin: 10px 0;
  }
  .menu-category-intro .micro-label { font-size: 8px; letter-spacing: .07em; }
  .menu-category-intro p { font-size: 12px; line-height: 1.5; }
  .menu-category-intro img { width: 82px; height: 118px; }
  .menu-group { margin-top: 28px; }
  .menu-group-heading h4 { font-size: clamp(20px, 5.6vw, 29px); line-height: 1.15; overflow-wrap: anywhere; }
  .menu-group-heading p { font-size: 14px; }
  .menu-item { grid-template-columns: minmax(0, 1fr) auto; gap: 12px; padding: 20px 0; }
  .dish-name-line { gap: 8px; }
  .dish-name-line h5 { font-size: clamp(15px, 4vw, 20px); line-height: 1.3; letter-spacing: -.025em; overflow-wrap: anywhere; }
  .dish-price { font-size: 15px; line-height: 1.4; padding: 0; font-variant-numeric: tabular-nums; }
  .dish-description { font-size: 14px; line-height: 1.6; margin-top: 9px; }
  .dish-recommendation { font-size: 12px; }
  .dish-allergens { font-size: 11px; }
  .dish-tag { font-size: 9px; white-space: normal; }
  .menu-footnote, .menu-extra-note { font-size: 12px; line-height: 1.65; }

  .gallery-head { display: block; margin-bottom: 28px; }
  .gallery-head > p { max-width: 500px; font-size: 15px; margin: 0; }
  .gallery-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-rows: 280px 220px 220px; gap: 10px; }
  .g-one { grid-row: 1; grid-column: 1 / 3; }
  .g-two { grid-row: 2; grid-column: 1; }
  .g-three { grid-row: 2; grid-column: 2; }
  .g-four { grid-row: 3; grid-column: 1; }
  .g-five { grid-row: 3; grid-column: 2; }
  .gallery-item figcaption { font-size: 8px; left: 6px; right: 6px; bottom: 8px; padding: 7px 6px; }
  .gallery-footer { display: block; margin-top: 20px; }
  .gallery-footer p { font-size: 12px; line-height: 1.65; }
  .gallery-footer .outline-link { margin-top: 8px; }

  .visit-top > p { font-size: 16px; line-height: 1.6; margin-bottom: 30px; max-width: 540px; }
  .visit-grid { grid-template-columns: minmax(0, 1fr); gap: 30px; }
  .visit-block { padding: 24px 0; }
  .visit-block h3 { font-size: clamp(23px, 6.3vw, 34px); line-height: 1.2; letter-spacing: -.04em; }
  .visit-block address { font-size: 18px; }
  .hours > div { font-size: 14px; gap: 10px; flex-wrap: wrap; }
  .visit-block small { font-size: 12px; line-height: 1.6; }
  .phone-link { font-size: clamp(22px, 6.2vw, 32px); }
  .visit-photo { min-height: 0; height: clamp(300px, 95vw, 520px); }
  .visit-stamp { font-size: clamp(19px, 5.3vw, 28px); padding: 14px; bottom: 24px; right: 22px; max-width: calc(100% - 44px); }

  .site-footer { padding: 24px var(--page) max(24px, env(safe-area-inset-bottom, 0px)); }
  .footer-top { flex-wrap: wrap; gap: 8px 18px; font-size: 9px; letter-spacing: .06em; }
  .footer-top > span { flex: 1 1 160px; }
  .footer-top a { display: inline-flex; align-items: center; min-height: 44px; }
  .footer-mega { font-size: clamp(33px, 9.4vw, 68px); line-height: 1.04; white-space: normal; letter-spacing: -.04em; margin: 30px 0 38px; }
  .footer-bottom { align-items: flex-start; flex-direction: column; gap: 24px; padding: 24px 0 12px; }
  .footer-logo { width: 154px; }
  .footer-links { gap: 0 20px; }
  .footer-links a { display: inline-flex; align-items: center; min-height: 44px; font-size: 11px; }
  .footer-location { display: none; }
  .footer-legal-note { font-size: 11px; line-height: 1.65; }

  /* Keep narrow screens readable without relying on clipping. */
  @media (max-width: 359px) {
    .menu-category-intro { grid-template-columns: minmax(0, 1fr) 68px; gap: 10px; }
    .menu-category-intro img { width: 68px; height: 108px; }
    .menu-category-intro h3 { font-size: 20px; }
    .mobile-nav > a { font-size: 21px; }
  }
  @media (min-width: 600px) {
    :root { --header-h: 74px; }
    .brand { width: 142px; }
    .mobile-nav { padding-top: calc(var(--header-total) + 40px); }
    .mobile-nav > a, .mobile-nav-kicker, .mobile-nav-footer { width: min(100%, 660px); align-self: center; }
    .mobile-nav > a { font-size: 32px; min-height: 76px; }
    .hero-signoff p { max-width: none; font-size: 20px; }
    .scroll-cue { width: auto; font-size: 10px; }
    .intro-collage { max-width: 740px; width: 100%; }
    .menu-tab { font-size: 17px; }
    .menu-category-intro { grid-template-columns: minmax(0, 1fr) 150px; padding: 24px; gap: 24px; }
    .menu-category-intro img { width: 150px; height: 155px; }
    .menu-category-intro p { font-size: 15px; }
    .menu-category-intro h3 { font-size: 34px; }
    .menu-category-intro .micro-label { font-size: 10px; }
    .dish-description { font-size: 15px; }
    .dish-price { font-size: 17px; }
    .gallery-grid { grid-template-rows: 350px 320px 320px; }
    .gallery-item figcaption { font-size: 11px; right: auto; }
    .gallery-footer { display: flex; }
    .gallery-footer p { max-width: 430px; }
  }
  @media (min-width: 900px) {
    .intro-main { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 36px; }
    .intro-copy .display-title { font-size: 38px; }
    .intro-collage { height: 480px; }
    .world-card, .world-card:nth-child(even) { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
    .world-card:nth-child(even) .world-image { order: 2; }
    .world-image { height: 390px; }
    .visit-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
    .visit-photo { height: auto; min-height: 550px; }
  }
}

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

/* V6: small text on light backgrounds meets normal-text contrast without changing the brand color. */
.menu-section .menu-tab.is-selected, .menu-section .dish-number, .menu-section .dish-tag{color:#a33b16}
.footer-legal-note{color:#aaa}

/* A picture wrapper must not become an extra flex item in the hero or world cards. */
.food-panel > picture, .world-image > picture{display:contents}
