/* Pass two: the meal has a beginning, a centrepiece, and a place at the table.
   Tactile translate/scale remain owned by refinement.css and the interaction layer. */
:root { --gold-warm: #dcc38e; --sea-deep: #153b2c; }
body { text-rendering: optimizeLegibility; }
.section-heading h2, .story-text h2, .journey-title, .quiz-intro-v2 h2 { text-wrap: balance; }
.section-heading p, .journey-detail, .story-text p, .course-body, .quiz-result { overflow-wrap: anywhere; }
.section-pad { padding-top: 82px; padding-bottom: 82px; }
.section-marker { margin-bottom: 38px; }
.section-heading { margin-bottom: 38px; }

/* Food arrives first. The central veil is deliberately smaller than the mosaic. */
.hero { min-height: 650px; height: min(820px, calc(100svh - 90px)); }
.hero-mosaic { grid-template-columns: 46% 54%; grid-template-rows: 54% 46%; gap: 3px; }
.hero-tile img { --food-light: .99; --food-saturation: 1.02; animation: seatingPhoto 1.65s cubic-bezier(.16,.76,.2,1) both; filter: brightness(var(--food-light)) saturate(var(--food-saturation)); transform: scale(1.015); }
.tile-one img { animation-delay: .06s; object-position: 46% 55%; }
.tile-two img { --food-light: 1.08; --food-saturation: 1.08; animation-delay: 0s; object-position: 50% 46%; }
.tile-three img { animation-delay: .12s; object-position: 50% 55%; }
.tile-four img { --food-light: .96; animation-delay: .18s; object-position: 50% 45%; }
.hero-shade { background: radial-gradient(ellipse 42% 43% at 49% 51%, #09251fd9 0%, #09251fac 32%, #0d281e50 66%, transparent 100%), linear-gradient(0deg,#11261f85,transparent 21%,transparent 85%,#12291e49); }
.hero-copy { top: 51%; max-width: 820px; margin-inline: auto; }
.hero h1 { font-size: clamp(48px,5.35vw,79px); line-height: 1.53; letter-spacing: .055em; text-shadow: 0 2px 4px #102c21a1, 0 5px 25px #051e20c9; margin-bottom: 15px; }
.hero-kicker { font-size: 14px; letter-spacing: .26em; margin-bottom: 16px; text-shadow: 0 1px 8px #102218; animation: seatingWord .8s .19s both; }
.title-line>span { animation: seatingWord 1.05s .3s cubic-bezier(.18,.86,.2,1) both; }
.title-line:nth-child(2)>span { animation-delay: .43s; }
.hero-sub { line-height: 2; font-size: 13px; letter-spacing: .045em; margin: 18px 0 25px; text-shadow: 0 1px 8px #08241d; animation: seatingWord .85s .51s both; }
.hero-cta { border-radius: 3px 3px 14px 3px; box-shadow: 0 5px 0 #812f22, 0 10px 30px #061f1860, inset 0 1px 0 #ffdfb697; }
.hero-cta:after { animation: reservationGlint 1.15s .75s both; }
.hero-tile span { color: #fff9e8; background: linear-gradient(90deg,#0e2a2085,#112c2040); font-size: 10px; }
.hero-topline { text-shadow: 0 1px 7px #0b261d; }
.hero-stamp { background: #173c2bb0; }
.ticker { padding: 11px 0; }
.ticker>div { font-size: 13px; }

/* A single introduction gives the hosts their own place in the story. */
.story { padding-bottom: 62px; }
.story-grid { grid-template-columns: minmax(0,.92fr) minmax(0,1fr); gap: clamp(40px,7vw,100px); }
.story-image { height: auto; aspect-ratio: 2/3; max-height: 650px; margin-left: 16px; }
.story-image img { object-position: 50% 44%; filter: saturate(.94); }
.story-image:before { inset: 17px 17px -17px -17px; }
.story-text h2 { font-size: clamp(33px,3.2vw,49px); line-height: 1.65; margin-bottom: 24px; letter-spacing: .015em; }
.story-text p { font-size: 13px; line-height: 2.1; }
.story-text .host-signature { margin-top: 20px; padding-top: 17px; border-top: 1px solid var(--line); }
.story-text .host-signature strong { font-size: 24px; }
.story-text .story-motto { font-family: var(--serif); font-size: 20px; color: #7e492b; line-height: 1.7; }
.story-facts { margin: 24px 0; gap: 38px; }
.story-facts strong { font-size: 42px; }
.story-text .text-link { margin-top: 3px; }

/* Four scenes, one continuous visit. */
.evening-journey { padding-top: 43px; padding-bottom: 64px; }
.evening-journey .section-heading h2 { font-size: clamp(34px,3.65vw,52px); }
.journey-panel { grid-template-columns: minmax(0,1.2fr) minmax(0,1fr); min-height: 450px; border-radius: 2px 2px 32px 2px; background: #193d2e; }
.journey-visual { min-height: 450px; }
.journey-visual:after { pointer-events: none; }
.journey-caption { padding: 36px clamp(24px,3vw,43px); }
.journey-title { font-size: clamp(28px,2.75vw,41px); letter-spacing: .015em; line-height: 1.6; }
.journey-detail { font-size: 13px; line-height: 2.05; }
.journey-number { margin-bottom: 19px; letter-spacing: .12em; }
.journey-tab { background-image: linear-gradient(180deg,#fff5,transparent); }
.journey-tab[aria-selected=true] { background: linear-gradient(130deg,#2d5440,#16392b); box-shadow: 0 4px 0 #b8975a72, inset 0 1px 0 #e5d7a329; }
.journey-next, .journey-caption .button { margin-top: 23px; font-size: 12px; line-height: 1.65; }
.journey-panel:not([hidden]) .journey-caption { animation: seatingWord .55s .08s both; }
.wine-visual { background: #eee8d9; }
.wine-visual img { object-fit: contain; object-position: center; }
.wine-visual:after { background: linear-gradient(90deg,transparent 85%,#c8bfa823); }

/* The lid responds to the same hand movement as the button, without moving the card. */
.pot-visual { display: flex; align-items: center; justify-content: center; background: radial-gradient(ellipse at 48% 44%,#6c5b393b,transparent 65%), repeating-linear-gradient(3deg,#d0b77c06 0 2px,transparent 3px 13px), linear-gradient(145deg,#274634,#0d2b23); overflow: hidden; }
.pot-visual:after { background: linear-gradient(90deg,transparent 80%,#193d2e5e); }
.pot-visual .pot-scene { --lid-lift: -132px; --lid-shift: -18px; width: calc(100% - 66px); max-width: 395px; height: 410px; padding-top: 288px; margin: 0; justify-content: flex-end; }
.pot-visual .pot-scene:before { top: 10%; height: 78%; }
.pot-visual .pot-food { top: 104px; left: 7%; width: 86%; height: 196px; border-width: 11px; transform: rotate(-8deg); }
.pot-visual .pot-food:before, .pot-visual .pot-food:after { top: 59px; }
.pot-visual .pot-food img { animation: none; }
.pot-visual .pot-lid { top: 91px; height: 205px; touch-action: none; cursor: grab; user-select: none; -webkit-user-select: none; transform: translate(calc(var(--lid-progress,0) * var(--lid-shift)),calc(var(--lid-progress,0) * var(--lid-lift))) rotate(calc(-8deg - var(--lid-progress,0) * 20deg)) scale(calc(1 - var(--lid-progress,0) * .14)); opacity: calc(1 - var(--lid-progress,0) * .73); transition: transform .75s cubic-bezier(.18,.78,.2,1), opacity .65s; }
.pot-visual .pot-scene.open .pot-lid { transform: translate(calc(var(--lid-progress,1) * var(--lid-shift)),calc(var(--lid-progress,1) * var(--lid-lift))) rotate(calc(-8deg - var(--lid-progress,1) * 20deg)) scale(calc(1 - var(--lid-progress,1) * .14)); opacity: calc(1 - var(--lid-progress,1) * .73); }
.pot-visual .is-dragging .pot-lid { cursor: grabbing; transition: none; }
.pot-visual .pot-knob { top: 30px; }
.pot-visual .pot-scene>.button { width: max-content; max-width: 100%; min-height: 51px; padding: 12px 20px; gap: 18px; font-size: 12px; }
.pot-visual .pot-scene>p { margin: 13px 0 0; font-size: 10px; text-align: center; line-height: 1.8; }
.pot-visual .steam { opacity: calc(var(--lid-progress,0) * .5); }
.pot-visual .pot-scene.open .steam { animation-iteration-count: 3; }
.pot-visual .pot-scene.open .pot-food { box-shadow: 0 13px 0 #0c1f1b, 0 0 65px #e7c38135; }
.pot-film { width: 100%; height: 100%; object-fit: cover; border-radius: inherit; }

/* Actual footage from the restaurant replaces the illustrated pan when available. */
.pot-visual .pot-scene.real-pot { width: 100%; max-width: none; height: auto; padding: 0 0 23px; margin: 0; align-self: center; }
.pot-visual .real-pot:before { display: none; }
.pot-visual .real-pot .pot-food { position: relative; inset: auto; width: 100%; height: auto; aspect-ratio: 16/10; border: 0; border-radius: 0; box-shadow: none; transform: none; overflow: hidden; background: #21372c; }
.pot-visual .real-pot .pot-food:before, .pot-visual .real-pot .pot-food:after { display: none; }
.pot-visual .real-pot .pot-food img, .pot-visual .real-pot .pot-food video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; border-radius: 0; filter: none; animation: none; transform: none; }
.pot-visual .real-pot .pot-lid, .pot-visual .real-pot.open .pot-lid { position: absolute; left: 0; top: 0; width: 100%; height: auto; aspect-ratio: 16/10; background: transparent; border: 0; border-radius: 0; box-shadow: none; transform: none; opacity: 1; pointer-events: auto; transition: none; }
.pot-visual .real-pot .pot-lid .pot-knob, .pot-visual .real-pot .pot-lid>svg { display: none; }
.pot-visual .real-pot .pot-lid>.pot-drag-hint { position: absolute; left: 50%; bottom: 16px; top: auto; translate: -50% 0; margin: 0; padding: 8px 13px; border: 1px solid #e9d5a66b; border-radius: 3px; background: #123124c7; color: #fff4d7; font: 11px/1.6 var(--sans); letter-spacing: .025em; white-space: nowrap; box-shadow: 0 3px 12px #091d1740; opacity: calc(1 - var(--lid-progress,0)); pointer-events: none; }
.pot-visual .real-pot>.button { margin: 19px 20px 0; touch-action: none; }
.pot-visual .real-pot>p { margin: 11px 18px 0; }
.pot-visual .real-pot.open .pot-food { box-shadow: none; }
.pot-visual .real-pot .steam { display: none; }
.pot-visual:has(.real-pot):after { display: none; }

/* A few dishes lead into a menu. Card colours are borrowed from the food and table. */
.menu-section { padding-top: 70px; }
.menu-section .section-heading h2 { font-size: clamp(34px,3.6vw,52px); }
.dish-grid { gap: 30px; }
.dish-photo { height: 340px; }
.dish-offset { margin-top: 32px; }
.dish-caption h3 { line-height: 1.7; }
.course-showcase { padding-top: 45px; margin-top: 38px; }
.course-heading { margin-bottom: 28px; }
.course-heading h3 { font-size: 32px; line-height: 1.6; }
.course-card { scroll-margin-top: 25px; transition: border-color .25s, box-shadow .25s; }
.course-card:target { border-color: #bf7047; box-shadow: 0 0 0 3px #c96f4230, 3px 6px 0 #e1d9c4; }
.course-photo { height: 220px; }
.course-extra { font-size: 12px; }
.course-body { padding: 25px 21px; }
.course-body h3 { font-size: 21px; white-space: normal; line-height: 1.6; }
.course-features { min-height: 142px; }
.menu-bottom { margin-top: 25px; }

/* Result recommendations are a useful next step, not an extra wall of copy. */
.quiz-intro-v2 { margin-bottom: 35px; }
.quiz-intro-v2 h2 { font-size: clamp(34px,3.55vw,53px); }
.quiz-result { overflow: visible; }
.course-recommendation { position: relative; margin: 25px 0 26px; padding: 25px 29px 23px; border: 1px solid #bda87b; border-left: 4px solid #bd623c; background: radial-gradient(ellipse at right top,#e4c9932e,transparent 65%),linear-gradient(125deg,#fffbed,#f0e7d1); box-shadow: 3px 4px 0 #9b815326; color: #17392b; }
.course-recommendation .eyebrow { color: #8d452c; margin: 0 0 10px; }
#recommendationCourse { display: block; margin: 0 0 11px; font: 500 25px/1.65 var(--serif); letter-spacing: .015em; }
#recommendationReason { font-size: 13px; line-height: 1.95; margin: 0 0 15px; max-width: 68ch; }
#recommendationLink { font-size: 12px; line-height: 1.7; color: #8c3f29; }
#recommendationAlternative { margin: 18px 0 0; padding-top: 15px; border-top: 1px solid #c4b18b77; font-size: 12px; line-height: 1.9; }
#recommendationAlternativeLink { display: inline-flex; align-items: center; min-height: 40px; font-size: 12px; text-decoration: underline; text-underline-offset: 5px; }
#reservationMemo { width: 100%; min-height: 155px; padding: 14px 16px; border: 1px solid #b2a581; background: #fffdf5; color: #17372b; font: 12px/1.9 var(--sans); resize: vertical; margin-top: 20px; }
.result-images { gap: 18px; }

/* The daytime option sits beside the reservation decision, compact and legible. */
.lunch-section.lunch-compact { display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: 35px; align-items: center; margin: 0; padding-top: 44px; padding-bottom: 44px; background: linear-gradient(100deg,#e6ddc8,#f5f0e3 70%); border-block: 1px solid #d6c7a566; }
.lunch-badge { width: 140px; height: 140px; border-radius: 50%; border: 1px solid #9e7c42; outline: 1px solid #bca6776e; outline-offset: 5px; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; font: 12px/2 var(--serif); color: #30503b; background: radial-gradient(circle,#fff7dc70,transparent 75%); }
.lunch-badge strong { font-size: 23px; font-weight: 500; }
.lunch-badge>span:last-child { font-size: 10px; }
.lunch-compact .lunch-copy { display: block; padding: 0; }
.lunch-compact>.button { min-height: 56px; font-size: 12px; padding-inline: 20px; gap: 20px; }
.lunch-compact .lunch-copy .eyebrow { grid-column: 1; margin-bottom: 8px; font-size: 10px; }
.lunch-compact .lunch-copy h2 { grid-column: 1; margin: 0 0 11px; font-size: 32px; line-height: 1.5; }
.lunch-compact .lunch-copy p { grid-column: 1; margin: 0; font-size: 12px; line-height: 2; }
.lunch-compact .lunch-copy .button { grid-column: 2; grid-row: 1/5; margin: 0; min-height: 57px; font-size: 12px; padding-inline: 22px; gap: 18px; }
.lunch-compact .lunch-hours { grid-column: 1; margin: 12px 0 0; padding: 0; border: 0; }
.lunch-compact .lunch-hours strong { display: inline; font-size: 22px; margin-right: 8px; }
.lunch-compact .lunch-hours>span { font-size: 10px; }
.lunch-compact .lunch-copy .small-note { font-size: 10px; margin-top: 8px; }

/* Customer voices and practical answers end the visit, with less ornament. */
.voices-section { padding-top: 68px; padding-bottom: 45px; }
.voices-section .section-heading h2 { font-size: clamp(33px,3.3vw,46px); }
.voice { background-image: linear-gradient(135deg,#ffffff55,transparent 70%); }
.voice>p { font-size: 22px; line-height: 1.85; }
.voice:before { border-radius: 1px; }
.voices-compact .voice { display: flex; flex-direction: column; gap: 0; padding: 25px 28px; border-top: 2px solid #af956054; background: linear-gradient(130deg,#f1ead8,#ebe4d1); }
.voices-compact .voice:before { display: none; }
.voices-compact .voice-mark { margin: 0 0 16px; font-family: var(--sans); font-size: 11px; letter-spacing: .05em; line-height: 1.7; }
.voices-compact .voice>p { flex: 1; margin: 0; font-size: 22px; line-height: 1.85; }
.voices-compact .voice>div { margin-top: 22px; }
.faq-section { padding-top: 36px; padding-bottom: 75px; }
.faq-heading:after { display: none; }
.faq-heading h2 { font-size: 33px; }
.faq-list details { scroll-margin-top: 25px; }
summary { font-size: 15px; }
details>p { font-size: 13px; }
.access-section { min-height: 730px; padding: 58px 6vw; }
.access-image { right: 30%; }
.access-image img { filter: brightness(.98) saturate(.96); object-position: 52% 46%; }
.access-image:after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg,transparent 75%,var(--ink)); pointer-events: none; }
.access-card { width: min(46vw,550px); padding: 42px; }

/* A different finish for paper, wine, cookware, and the final reservation. */
.button[data-sound=paper] { background-image: repeating-linear-gradient(0deg,transparent 0 3px,#9f8d6008 4px 5px),linear-gradient(135deg,#fff9e9,#e9dec2); color: #214332; }
.button[data-sound=pot] { border-color: #ddc79566; }
.button[data-sound=pot]:not(.is-pressed):not(:active) { box-shadow: 0 5px 0 #998253, inset 0 1px 0 #fffbea; }
.journey-tab[data-sound=wine][aria-selected=true] { background-image: radial-gradient(ellipse at 80% 20%,#9e6e3740,transparent 70%),linear-gradient(130deg,#2b5140,#18382d); }
.journey-tab[aria-selected=true].is-pressed { box-shadow: 0 1px 0 #9a7c4566, inset 0 3px 6px #071e1b55; }
.button[data-reservation=true]:before { content: ''; position: absolute; inset: 4px; border: 1px solid #fff1d624; border-radius: inherit; pointer-events: none; }
.button[data-reservation=true]:after { background: linear-gradient(110deg,transparent,#fff5df3d,transparent); }
.text-link:hover { border-bottom-color: var(--coral); }
.wish { min-width: 0; }
.wish>span:nth-child(2) { min-width: 0; }
.wish strong, .wish small { overflow-wrap: anywhere; }
.wish[aria-pressed=true] .wish-no { color: #efd19a; }
.wish[aria-pressed=true] .check-mark { box-shadow: 0 0 0 4px #ddb56c15, 0 0 24px #d4b47840; }
.button:focus-visible, .journey-tab:focus-visible, .pot-lid:focus-visible { outline: 3px solid #bf6b3b; outline-offset: 6px; }
.quiz-section .button:focus-visible, .quiz-section .wish:focus-visible, .pot-visual .button:focus-visible { outline-color: #f0c87e; }

@keyframes seatingPhoto { from { transform: scale(1.075); filter: brightness(calc(var(--food-light) * .9)) saturate(var(--food-saturation)); } to { transform: scale(1.015); filter: brightness(var(--food-light)) saturate(var(--food-saturation)); } }
@keyframes seatingWord { from { opacity: .15; translate: 0 16px; filter: blur(1.5px); } to { opacity: 1; translate: 0 0; filter: blur(0); } }
@keyframes reservationGlint { from { left: -80%; } to { left: 150%; } }

@media (min-width: 1600px) { .hero { height: min(900px,calc(100svh - 90px)); } }
@media (max-width: 1100px) {
  .story-grid { gap: 48px; }
  .story-text h2 { font-size: 35px; }
  .story-text p { font-size: 12px; }
  .journey-caption { padding: 29px 25px; }
  .journey-title { font-size: 31px; }
  .journey-detail { font-size: 12px; }
  .pot-visual .pot-scene { width: calc(100% - 62px); }
  .lunch-section.lunch-compact { grid-template-columns: 115px minmax(0,1fr); }
  .lunch-compact>.button { grid-column: 2; justify-self: start; margin-top: -15px; }
  .lunch-badge { grid-row: 1/3; }
  .lunch-compact .lunch-copy { grid-template-columns: 1fr; }
  .lunch-compact .lunch-copy .button { grid-column: 1; grid-row: auto; justify-self: start; margin-top: 16px; }
}
@media (max-width: 900px) {
  .section-pad { padding-top: 63px; padding-bottom: 63px; }
  .hero { min-height: 630px; height: min(760px,calc(100svh - 90px)); }
  .hero h1 { font-size: 61px; }
  .hero-shade { background: radial-gradient(ellipse 53% 43% at 49% 51%,#09251fd9,#09251f85 47%,transparent 100%),linear-gradient(0deg,#11261f80,transparent 22%,transparent 85%,#12291e49); }
  .story-image { height: auto; max-height: 590px; }
  .story-grid { gap: 32px; }
  .story-text h2 { font-size: 30px; }
  .story-text p { line-height: 2; }
  .story-facts { gap: 27px; }
  .story-facts strong { font-size: 37px; }
  .journey-panel { grid-template-columns: minmax(0,1fr) minmax(0,1fr); min-height: 425px; }
  .journey-visual { min-height: 425px; }
  .journey-title { font-size: 28px; }
  .journey-caption { padding: 28px 23px; }
  .pot-visual .pot-scene { width: calc(100% - 45px); height: 370px; padding-top: 263px; }
  .pot-visual .pot-food { top: 106px; height: 160px; border-width: 9px; }
  .pot-visual .pot-food:before, .pot-visual .pot-food:after { height: 46px; width: 20px; border-width: 6px; top: 44px; }
  .pot-visual .pot-food:before { left: -27px; }
  .pot-visual .pot-food:after { right: -27px; }
  .pot-visual .pot-lid { height: 168px; top: 95px; }
  .pot-visual .pot-knob { top: 22px; }
  .pot-visual .pot-lid>span:last-child { font-size: 10px; }
  .pot-visual .pot-lid svg { width: 40px; height: 31px; }
  .pot-visual .pot-scene>.button { font-size: 11px; padding-inline: 14px; gap: 10px; }
  .pot-visual .pot-scene>p { font-size: 9px; }
  .dish-photo { height: 310px; }
  .lunch-section.lunch-compact { gap: 30px; padding-block: 37px; }
  .lunch-badge { width: 115px; height: 115px; font-size: 22px; }
  .lunch-badge>span { font-size: 11px; }
  .lunch-badge strong { font-size: 21px; }
  .lunch-badge>span:last-child { font-size: 9px; }
  .lunch-compact .lunch-copy h2 { font-size: 29px; }
  .access-section { display: block; padding: 0 0 42px; min-height: 0; }
  .access-image { position: relative; inset: auto; height: 365px; z-index: auto; }
  .access-image img { object-position: 50% 42%; }
  .access-image:after { background: linear-gradient(0deg,#17352d77,transparent 35%); }
  .access-card { width: calc(100% - 60px); max-width: 610px; margin: -36px auto 0; padding: 38px; }
}
@media (max-width: 600px) {
  .section-pad { padding: 44px 22px; }
  .section-marker { margin-bottom: 28px; }
  .section-heading { margin-bottom: 28px; }
  .hero { min-height: 610px; max-height: 760px; height: calc(100svh - 72px); }
  .hero-mosaic { grid-template-columns: 44% 56%; grid-template-rows: 52% 48%; gap: 2px; }
  .tile-two img { object-position: 55% 48%; }
  .tile-one img { object-position: 46% 54%; }
  .hero-shade { background: radial-gradient(ellipse 76% 38% at 49% 51%,#09251fd4 0%,#09251f99 36%,#0d281e38 74%,transparent 100%),linear-gradient(0deg,#0d2a217a,transparent 23%,transparent 83%,#12291e45); }
  .hero-copy { top: 49.5%; left: 14px; right: 14px; }
  .hero h1 { font-size: clamp(32px,8.3vw,47px); line-height: 1.62; letter-spacing: .015em; margin-bottom: 16px; }
  .hero-kicker { font-size: 11px; letter-spacing: .22em; margin-bottom: 18px; }
  .hero-sub { font-size: 11px; line-height: 2; letter-spacing: .01em; margin: 17px 0 23px; }
  .hero-cta { font-size: 11px; min-height: 56px; padding: 14px 18px; gap: 16px; }
  .hero-tile span { font-size: 7px; padding: 3px 5px; max-width: calc(100% - 20px); }
  .hero-topline { font-size: 8px; left: 16px; right: 16px; top: 18px; }
  .hero-topline>span:last-child { font-size: 7px; }
  .hero-stamp { width: 72px; height: 72px; right: 22px; bottom: 43px; }
  .hero-stamp strong { font-size: 23px; }
  .hero-footnote { font-size: 7px; max-width: 158px; bottom: 21px; left: 17px; }
  .ticker { padding: 10px 0; }
  .ticker>div { font-size: 12px; }
  .story { padding-bottom: 35px; }
  .story-grid { grid-template-columns: 1fr; gap: 31px; }
  .story-image { width: min(100% - 38px,325px); margin: 0 auto 10px; aspect-ratio: 2/3; max-height: 440px; }
  .story-image img { object-position: 50% 43%; }
  .story-image:before { inset: 14px 14px -14px -14px; }
  .story-text { padding: 0 2px; }
  .story-text h2 { font-size: 31px; line-height: 1.65; margin-bottom: 20px; }
  .story-text p { font-size: 13px; line-height: 2.05; }
  .story-text .story-motto { font-size: 19px; }
  .story-facts { gap: 43px; margin: 22px 0; }
  .story-facts strong { font-size: 39px; }
  .story-text .host-signature { margin-top: 17px; padding-top: 15px; }
  .story-text .host-signature strong { font-size: 23px; }
  .evening-journey { padding-top: 30px; padding-bottom: 43px; }
  .evening-journey .section-heading h2 { font-size: 32px; }
  .journey-tabs { margin-bottom: 16px; }
  .journey-tab { min-height: 65px; font-size: 12px; padding: 10px 2px; }
  .journey-tab>span { font-size: 9px; }
  .journey-panel { min-height: 0; border-radius: 2px 2px 24px 2px; }
  .journey-visual { min-height: 0; height: 225px; }
  .journey-visual.wine-visual { height: 285px; }
  .journey-caption { min-height: 0; padding: 25px 22px 29px; }
  .journey-number { font-size: 10px; margin-bottom: 14px; }
  .journey-title { font-size: 28px; line-height: 1.65; margin-bottom: 15px; }
  #journey-panel-steam .journey-title { font-size: clamp(22px,6vw,29px); letter-spacing: 0; }
  .journey-detail { font-size: 12px; line-height: 2; }
  .journey-next, .journey-caption .button { min-height: 50px; font-size: 11px; padding: 12px 15px; gap: 12px; margin-top: 20px; }
  .pot-visual { height: 345px; }
  .pot-visual .pot-scene { --lid-lift: -100px; --lid-shift: -12px; width: calc(100% - 55px); max-width: 315px; height: 326px; padding-top: 235px; }
  .pot-visual .pot-food { top: 88px; height: 161px; }
  .pot-visual .pot-lid { top: 77px; height: 169px; }
  .pot-visual .pot-scene>.button { min-height: 49px; font-size: 11px; padding: 12px 17px; }
  .pot-visual .pot-scene>p { font-size: 9px; margin-top: 11px; }
  .pot-visual:has(.real-pot) { height: auto; min-height: 0; }
  .pot-visual .pot-scene.real-pot { width: 100%; max-width: none; height: auto; padding: 0 0 20px; }
  .pot-visual .real-pot .pot-food { inset: auto; height: auto; border: 0; }
  .pot-visual .real-pot .pot-lid, .pot-visual .real-pot.open .pot-lid { inset: 0 0 auto; height: auto; }
  .pot-visual .real-pot .pot-lid>.pot-drag-hint { bottom: 12px; padding: 6px 10px; font-size: 10px; }
  .pot-visual .real-pot>.button { margin-top: 17px; }
  .menu-section { padding-top: 43px; }
  .menu-section .section-heading h2 { font-size: 33px; }
  .dish-grid { gap: 26px; }
  .dish-offset { margin-top: 0; }
  .dish-photo { height: 305px; }
  .dish:nth-child(2) .dish-photo, .dish:nth-child(3) .dish-photo { height: 265px; }
  .dish-caption h3 { font-size: 20px; margin-bottom: 8px; }
  .dish-caption p { font-size: 12px; }
  .course-showcase { padding-top: 32px; margin-top: 31px; }
  .course-heading h3 { font-size: 28px; margin-bottom: 15px; }
  .course-grid { gap: 23px; }
  .course-photo { height: 205px; }
  .course-body { padding: 22px 20px; }
  .course-body h3 { font-size: 24px; }
  .course-features { min-height: 0; }
  .course-body .text-link { min-height: 44px; }
  .course-footer { margin-top: 24px; gap: 20px; }
  .quiz-intro-v2 { margin-bottom: 24px; }
  .quiz-intro-v2 h2 { font-size: 31px; line-height: 1.7; }
  .quiz-intro-v2>p { margin-top: 17px; }
  .wish { padding-top: 20px; padding-bottom: 20px; }
  .wish strong { font-size: 14px; line-height: 1.8; }
  .wish small { font-size: 11px; }
  .quiz-result { padding: 27px 18px; margin-top: 25px; }
  .quiz-result h3 { font-size: 23px; }
  .course-recommendation { padding: 21px 17px 18px; margin: 21px 0; }
  #recommendationCourse { font-size: 22px; line-height: 1.6; }
  #recommendationReason { font-size: 12px; line-height: 1.9; }
  #recommendationLink, #recommendationAlternative, #recommendationAlternativeLink { font-size: 11px; }
  .result-images { gap: 13px 11px; margin: 20px 0; }
  .result-images img { height: 110px; }
  .result-actions { gap: 12px; }
  .result-actions .button { min-height: 52px; font-size: 11px; padding-inline: 13px; }
  .lunch-section.lunch-compact { grid-template-columns: 68px minmax(0,1fr); gap: 18px; align-items: start; padding: 32px 22px 35px; }
  .lunch-badge { width: 62px; height: 90px; border-radius: 40px; font-size: 15px; line-height: 1.8; outline-offset: 3px; }
  .lunch-badge>span { font-size: 8px; }
  .lunch-badge strong { font-size: 15px; }
  .lunch-badge>span:last-child { font-size: 7px; letter-spacing: -.025em; }
  .lunch-compact>.button { grid-column: 2; margin-top: -4px; min-height: 50px; font-size: 11px; padding: 12px 15px; gap: 13px; width: 100%; }
  .lunch-compact .lunch-copy h2 { font-size: 27px; line-height: 1.6; }
  .lunch-compact .lunch-copy .eyebrow { font-size: 9px; line-height: 1.8; margin-bottom: 8px; }
  .lunch-compact .lunch-copy p { font-size: 12px; line-height: 1.9; }
  .lunch-compact .lunch-hours strong { display: block; font-size: 22px; margin-bottom: 2px; }
  .lunch-compact .lunch-hours>span { font-size: 9px; line-height: 1.8; display: block; }
  .lunch-compact .lunch-copy .button { min-height: 51px; font-size: 10px; padding: 12px 13px; gap: 11px; width: 100%; margin-top: 16px; }
  .voices-section { padding-top: 43px; padding-bottom: 29px; }
  .voices-section .section-heading h2 { font-size: 32px; }
  .voice-grid { gap: 21px; }
  .voice { padding: 18px; }
  .voice>p { font-size: 17px; line-height: 1.85; }
  .voices-compact .voice { padding: 23px 21px; }
  .voices-compact .voice-mark { font-size: 10px; margin-bottom: 14px; }
  .voices-compact .voice>p { font-size: 20px; line-height: 1.85; }
  .voices-compact .voice>div { margin-top: 19px; }
  .faq-section { padding-top: 27px; padding-bottom: 44px; }
  .faq-heading h2 { font-size: 30px; }
  summary { font-size: 14px; padding-block: 20px; }
  details>p { font-size: 12px; line-height: 2; }
  .access-section { padding-top: 0; padding-bottom: 28px; }
  .access-image { height: 275px; }
  .access-image img { object-position: 52% 42%; }
  .access-card { width: calc(100% - 34px); margin-top: -24px; padding: 29px 23px; }
  .mobile-reserve { padding-bottom: env(safe-area-inset-bottom,0px); }
  footer { padding-bottom: calc(96px + env(safe-area-inset-bottom,0px)); }
}
@media (max-width: 360px) {
  .section-pad { padding-left: 18px; padding-right: 18px; }
  .hero h1 { font-size: 30px; }
  .hero-cta { gap: 12px; padding-inline: 14px; }
  .hero-sub { font-size: 11px; }
  .hero-stamp { right: 19px; }
  .story-text h2 { font-size: 29px; }
  .story-image { width: calc(100% - 40px); }
  .journey-caption { padding: 23px 20px 27px; }
  .journey-title { font-size: 26px; }
  #journey-panel-steam .journey-title { font-size: clamp(20px,6.1vw,22px); }
  .journey-tab { font-size: 11px; }
  .pot-visual .pot-scene { width: calc(100% - 49px); }
  .pot-visual .pot-food { height: 154px; }
  .pot-visual .pot-lid { height: 162px; }
  .pot-visual .real-pot .pot-food, .pot-visual .real-pot .pot-lid { height: auto; }
  .course-body h3 { font-size: 22px; }
  .quiz-intro-v2 h2 { font-size: 28px; }
  .wish { gap: 9px; }
  .wish strong { font-size: 13px; }
  .lunch-section.lunch-compact { padding-inline: 18px; grid-template-columns: 59px minmax(0,1fr); gap: 17px; }
  .lunch-badge { width: 56px; font-size: 14px; }
  .lunch-badge strong { font-size: 14px; }
  .lunch-compact .lunch-copy h2 { font-size: 25px; }
  .lunch-compact>.button { font-size: 10px; padding-inline: 12px; gap: 10px; }
  .voice { padding: 16px; }
  .voice>p { font-size: 15px; }
  .voices-compact .voice>p { font-size: 19px; }
}
@media (max-width: 900px) and (max-height: 640px) {
  .hero { min-height: 540px; }
  .table-stage, .table-stage.is-docked { position: relative; top: auto; }
}
@media (prefers-reduced-motion: reduce) {
  .hero-tile img { animation: none; transform: none; filter: brightness(var(--food-light)) saturate(var(--food-saturation)); }
  .hero-kicker, .title-line>span, .hero-sub, .journey-panel:not([hidden]) .journey-caption { opacity: 1; translate: none; filter: none; animation: none; }
  .hero-cta:after { animation: none; left: -100%; }
  .pot-visual .pot-lid { transition: none; transform: rotate(-8deg); opacity: 1; }
  .pot-visual .pot-scene.open .pot-lid { transform: none; opacity: 0; }
  .pot-visual .steam { animation: none; opacity: 0; }
  .pot-visual .pot-scene.open .steam { animation: none; opacity: .2; }
  .pot-visual .real-pot .pot-lid, .pot-visual .real-pot.open .pot-lid { transform: none; opacity: 1; }
  .pot-visual .real-pot .pot-lid>.pot-drag-hint { opacity: 0; }
}
