/* Jay's reference-led private redesign. Original components remain in styles.css.
   Cormorant and DM Sans are existing self-hosted, licensed fonts.
   Cream, cobalt and orange express Jay's own food and neighborhood personality. */
:root {
  --ivory: #fff7e8;
  --blue: #244b91;
  --blue-dark: #183565;
  --orange: #bc3d24;
  --peach: #f5c4a4;
  --ink: #252c27;
  --surface: #f1e4cf;
  --surface-2: #e7d5b7;
  --red: var(--orange);
  --salmon: var(--orange);
  --blush: var(--peach);
  --muted: #55594f;
  --ink-muted: var(--muted);
  --rule: #b1ab98;
  --rule-light: #d2c8af;
  --white: #fffdf5;
  --cream-rule: #96acd1;
  --transparent: transparent;
  --font: "DM Sans", Arial, sans-serif;
  --serif: "Cormorant", Georgia, serif;
  --gutter: clamp(1.25rem, 4vw, 3.75rem);
  --section: clamp(3.5rem, 7vw, 7rem);
  --max: 90rem;
  --radius: 0;
  --pill: 999px;
  --s1: .25rem;
  --s2: .5rem;
  --s3: .75rem;
  --s4: 1rem;
  --s5: 1.5rem;
  --s6: 2rem;
  --s7: 3rem;
  --s8: 4rem;
  --bar-h: 60px;
  --paper: none;
}

/* Shared typography, surfaces and accessible controls */
html { scroll-padding-block: var(--s5) 6rem; }
body { background: var(--ivory); color: var(--ink); }
.paper { background: var(--ivory); }
.display { font-family: var(--serif); font-weight: 700; font-size: clamp(3rem, 6.5vw, 6rem); line-height: .98; letter-spacing: -.035em; color: var(--blue); }
.display--xl { font-size: clamp(4rem, 10vw, 9rem); }
.lede, .section-head .lede, .menu-hero .lede, .menu-cat__head .lede { color: var(--muted); }
.display + .lede { margin-top: var(--s5); }
.eyebrow, .paper .eyebrow, .sips .eyebrow { font: 700 .8125rem/1.5 var(--font); letter-spacing: .12em; color: var(--blue); gap: var(--s2); flex-wrap: wrap; }
.eyebrow--num .num { font: 700 .8125rem/1 var(--font); }
.eyebrow .brush, .rule-stroke, .share__ring { display: none; }
.seal, .seal--sm { background: var(--transparent); color: inherit; border: 0; box-shadow: none; transform: none; font-size: .8125rem; padding: 0; }
.seal::before, .seal::after, .tab::after { display: none; }
.btn { border-radius: var(--pill); text-transform: none; letter-spacing: 0; font-weight: 700; padding-inline: var(--s5); transition: background-color .18s, color .18s; }
.btn--primary { background: var(--blue); border-color: var(--blue); color: var(--ivory); }
.btn--secondary, .paper .btn--secondary, .btn--ghost { background: var(--transparent); border-color: var(--blue); color: var(--blue); backdrop-filter: none; }
.btn--primary:hover, .paper .btn--primary:hover, .sips .btn--primary:hover { background: var(--blue-dark); border-color: var(--blue-dark); color: var(--ivory); }
.btn--secondary:hover, .paper .btn--secondary:hover, .btn--ghost:hover { background: var(--blue); border-color: var(--blue); color: var(--ivory); }
:focus-visible, .paper :focus-visible, .sips :focus-visible, .banner :focus-visible { outline: 3px solid var(--blue); outline-offset: 4px; }
.banner { background: var(--surface); font-size: .75rem; padding-block: var(--s2); }
.skip { background: var(--blue); color: var(--ivory); }
.tab { background: var(--blue); color: var(--ivory); font-family: var(--font); transform: none; border: 0; box-shadow: none; }

/* Compact navigation leaves the large branding to the welcome section */
.masthead { background: var(--ivory); border-bottom-color: var(--rule-light); }
.masthead__row { min-height: 5rem; padding: var(--s3) var(--gutter); }
.masthead__logo { width: 64px; height: 64px; margin: 0; box-shadow: none; }
.masthead__place { color: var(--blue); font: 700 .75rem/1.6 var(--font); letter-spacing: .12em; }
.nav__link { color: var(--blue); text-transform: none; letter-spacing: 0; font-size: 1rem; }
.nav__link[aria-current="page"] { border-bottom-color: var(--orange); }
.nav__toggle { border-radius: var(--pill); color: var(--blue); border-color: var(--blue); text-transform: none; letter-spacing: 0; }
.nav__link:hover { border-bottom-color: var(--orange); }

/* Welcome: large wordmark, useful actions, and authentic tray photography */
.appetite { background: var(--ivory); overflow: hidden; min-height: 0; display: block; padding-block: var(--s5) var(--section); }
.appetite__brand { margin: 0 0 var(--s6); color: var(--blue); font: 1000 clamp(3rem, 18.3vw, 16.5rem)/.9 var(--font); letter-spacing: -.06em; white-space: nowrap; }
.appetite__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: clamp(2rem, 5vw, 5rem); align-items: center; }
.appetite .hero__content { padding: 0; margin: 0; width: auto; display: block; }
.appetite .hero__content .eyebrow { margin: 0 0 var(--s5); }
.appetite .hero__title { display: block; font: 700 clamp(3.5rem, 6.9vw, 7rem)/.98 var(--serif); letter-spacing: -.045em; max-width: none; margin: 0 0 var(--s5); background: none; box-shadow: none; color: var(--orange); }
.appetite .lede { font-size: clamp(1rem, 1.3vw, 1.1875rem); }
.appetite .hero__actions { margin-top: var(--s6); gap: var(--s3); }
.appetite__photo { position: relative; margin-bottom: var(--s5); }
.appetite__image { width: 100%; aspect-ratio: 6 / 5; object-fit: cover; object-position: 50% 65%; border-radius: 42% 42% 0 0; }
.appetite__spot { position: absolute; width: 26%; height: auto; left: -8%; bottom: -4%; transform: rotate(-14deg); filter: drop-shadow(0 4px 3px var(--surface)); pointer-events: none; }

.trust-line { order: initial; margin: var(--s5) 0 0; }
.trust-line a, .trust-line__num, .trust-line__count { color: var(--blue); }
.trust-line a { background: none; padding: 0; border: 0; backdrop-filter: none; }
.star { background: var(--blue); }
.star--half { background: linear-gradient(90deg, var(--blue) 50%, var(--rule-light) 50%); }

/* Menu discovery: three uncluttered category links, no text over photographs */
.discover { background: var(--blue); color: var(--ivory); padding-block: var(--section); }
.discover .display, .discover .eyebrow, .discover .section-head .lede { color: var(--ivory); }
.discover .section-head { max-width: 48rem; }
.editorial { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s6); }
.tile, .tile--a, .tile--b, .tile--c { grid-column: auto; grid-row: auto; aspect-ratio: auto; overflow: visible; background: none; border: 0; }
.tile img { aspect-ratio: 4 / 3; height: auto; object-fit: cover; transform: none; border-radius: 45% 45% 0 0; }
.tile--b img { object-position: 50% 38%; border-radius: 0; }
.tile--c img { object-position: center; border-radius: 0 0 45% 45%; }
.tile:hover img, .tile--c:hover img { transform: none; }
.tile__caption { position: static; background: none; padding: var(--s5) 0 0; color: var(--ivory); gap: var(--s2); }
.tile__kanji { display: none; }
.tile__name { font: 700 clamp(2rem, 3.5vw, 3rem)/1 var(--serif); letter-spacing: -.02em; }
.tile__meta { color: var(--ivory); font: 400 .875rem/1.5 var(--font); }
.tile__go { color: var(--ivory); text-decoration: underline; font: 700 .9375rem/1.5 var(--font); letter-spacing: 0; text-transform: none; }
.tile:focus-visible { outline-color: var(--ivory); }

/* Platters: the shop's own round tray, with a direct phone inquiry */
.share { background: var(--peach); padding-block: var(--section); }
.share__grid { gap: clamp(2rem, 6vw, 6rem); align-items: center; }
.share .display, .share .eyebrow { color: var(--ink); }
.share .lede { color: var(--ink); }
.share__disc { border: 0; box-shadow: none; }
.share__spot { bottom: -4%; width: 45%; }

/* Shop: real counter details and a short, specific introduction */
.shop { background: var(--ivory); color: var(--ink); padding-bottom: var(--section); }
.shop__wide { aspect-ratio: 3 / 1; max-height: 36rem; }
.shop__wide img { object-position: 65% 20%; }
.shop__side { display: none; }
.shop__grid { align-items: start; }

.shop__body .lede, .shop__press, .shop__press time, .shop__detail figcaption { color: var(--muted); }
.shop__detail figcaption { font-family: var(--font); font-size: .8125rem; letter-spacing: 0; text-transform: none; }

/* Drinks and sweets: quiet playful image offsets on peach */
.sips { background: var(--surface); }
.sips .display { color: var(--orange); }
.sips__cups { transform: rotate(-3deg); }
.sips__cake { transform: rotate(3deg); }
.sips__cake img { box-shadow: none; }
.sips .lede { color: var(--ink); }

/* A compact static social gallery replaces the animated string of lights */

.ig__note { color: var(--muted); }

/* Linked rating, without a stock testimonial face */
.reviews { background: var(--surface); padding-block: var(--section); }
.reviews__grid { grid-template-columns: minmax(0, 3fr) minmax(0, 1fr); align-items: center; }

.ratings { display: block; max-width: 26rem; }
.rating { background: none; color: var(--blue); border: 0; padding: 0; box-shadow: none; grid-template-columns: auto 1fr; gap: var(--s3); }
.rating__num, .rating__meta, .rating__go { color: var(--blue); }
.reviews__invite { color: var(--muted); }

/* Visit and footer: clear operational information */
.visit { background: var(--blue); color: var(--ivory); padding-block: var(--section); }
.visit::before, .menu-hero::before, .discover::before { display: none; }
.visit .display, .visit .eyebrow, .visit .board__sub, .visit .board__sub a { color: var(--ivory); }
.visit .btn--primary { background: var(--ivory); border-color: var(--ivory); color: var(--blue); }
.visit .btn--primary:hover { background: var(--white); border-color: var(--white); color: var(--blue-dark); }
.board { border: 0; box-shadow: none; padding: 0; margin: 0; }
.board::before, .board::after { display: none; }
.board__row { padding-block: var(--s4); border-color: var(--rule-light); }
.visit .board__row { border-color: var(--cream-rule); }
.board .tab { background: none; color: inherit; padding: 0; font: 700 .75rem/1.6 var(--font); letter-spacing: .1em; }
.board__sub { color: var(--muted); }
.visit :focus-visible, .footer :focus-visible { outline-color: var(--ivory); }

.footer { background: var(--blue-dark); color: var(--ivory); border: 0; }
.footer address, .footer__label, .footer__bottom, .footer .hours, .footer__phone a, .footer__nav a { color: var(--ivory); }
.footer__logo { box-shadow: none; }
.footer__cols { min-width: 0; }
.footer__nav a:hover { color: var(--ivory); }
.footer__bottom { padding-inline: var(--gutter); border-color: var(--cream-rule); }
.seod-credit { color: var(--ivory); border-color: var(--cream-rule); }
.footer .hours li { border-color: var(--cream-rule); }

/* Menu: stable category navigation, readable names and prices */
.menu-hero { background: var(--ivory); padding-block: var(--section) var(--s7); }
.menu-hero__content { position: static; }
.menu-nav { background: var(--ivory); border-color: var(--rule-light); padding-block: var(--s3); }
.menu-nav a { color: var(--blue); border-color: var(--blue); letter-spacing: 0; font-size: .9375rem; gap: var(--s2); }
.menu-nav a:hover, .menu-nav a[aria-current="true"] { background: var(--blue); border-color: var(--blue); color: var(--ivory); }
.menu-nav a[aria-current="true"] .chip__kanji { color: var(--ivory); }
.menu-cat { background: var(--ivory); }
.menu-cat__head h2:focus { outline-color: var(--blue); }
.menu-cat__head { padding-right: 7rem; }
.menu-cat__spot { width: 6rem; right: 0; top: 0; transform: rotate(-8deg); }
.cards { gap: var(--s6); }
.card { background: none; border: 0; border-bottom: 1px solid var(--rule-light); box-shadow: none; color: var(--ink); }
.card:hover, .card:focus-within { border-color: var(--blue); transform: none; box-shadow: none; }
.card__media { background: var(--surface); }
.card__body { padding: var(--s4) 0 var(--s5); }
.card__name { font: 700 1rem/1.4 var(--font); color: var(--blue); }
.card__num { top: var(--s2); left: var(--s2); border-radius: var(--pill); min-width: 2.5rem; padding: var(--s2); box-shadow: none; }
.card__price { color: var(--ink); }
.tag { background: var(--surface-2); color: var(--ink); font-size: .625rem; }
.card__variants, .card__pictured, .advisory { color: var(--muted); }
.card__vprice { color: var(--ink); }
.card:focus-within { outline-color: var(--blue); }
.card__variants li { align-items: baseline; }

/* Existing category, item, About and gift-card journeys share the new palette */
.crumbs, .item__note, .item__advisory { color: var(--muted); }
.crumbs a, .item__adj, .item__all a { color: var(--blue); }
.item__h2 { color: var(--orange); font: 700 .875rem/1.5 var(--font); }
.item__price { color: var(--blue); font-weight: 700; }
.item__related .display { font-size: clamp(2rem, 4vw, 3rem); }
.about-hero, .about-facts, .about-shop, .gift { background: var(--ivory); }
.about-hero .lede, .about-facts .lede, .about-facts__press { color: var(--muted); }
.sample-dialog { color: var(--ink); }
.sample-dialog__note { color: var(--muted); }
.notfound { padding-block: var(--section); }
.reviews, .footer, .gift, .visit, .discover { background-image: none; }

/* Tablet and phone: useful actions remain close, and menus become a scanable list */
@media (max-width: 63.99rem) {
  .masthead__place { display: none; }
  .appetite .hero__actions .btn { padding-inline: var(--s4); font-size: .9375rem; }
  .footer__top { grid-template-columns: 1fr; }

}
@media (max-width: 47.99rem) {
  .masthead__row { min-height: 4.5rem; }
  .masthead__logo { width: 52px; height: 52px; }
  .nav { background: var(--ivory); border-color: var(--blue); }
  .nav__link[aria-current="page"] { box-shadow: inset 3px 0 0 var(--orange); }
  .appetite { padding-top: var(--s5); }
  .appetite__brand { font-size: 16.9vw; margin-bottom: var(--s6); }
  .appetite__grid { grid-template-columns: minmax(0, 1fr); gap: var(--s6); }
  .appetite .hero__title { font-size: clamp(3.75rem, 17vw, 5.75rem); }
  .appetite .hero__content .eyebrow { display: flex; margin-bottom: var(--s4); }
  .appetite .lede { font-size: 1rem; }
  .appetite .hero__actions { margin-top: var(--s5); gap: var(--s2); }
  .appetite .hero__actions .btn { flex: 1 1 auto; }
  .appetite__image { aspect-ratio: 6 / 5; border-radius: 38% 38% 0 0; }
  .appetite__spot { left: -2%; width: 24%; }
  .editorial { grid-template-columns: minmax(0, 1fr); gap: var(--s7); }
  .tile img, .tile--b img, .tile--c img { aspect-ratio: 3 / 2; border-radius: 0; }
  .tile__caption { padding-top: var(--s4); }
  .tile__name { font-size: 2.5rem; }
  .share__grid { gap: var(--s7); }
  .shop__wide { aspect-ratio: 5 / 4; }
  .shop__grid { gap: var(--s5); }
  .sips__grid { gap: var(--s5); }

  .reviews__grid { grid-template-columns: minmax(0, 1fr); }

  .visit__grid { gap: var(--s6); }
  .board__row { grid-template-columns: minmax(0, 1fr); gap: var(--s2); }
  .footer__cols { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .footer__cols > :first-child { grid-column: 1 / -1; }
  .footer__brand { gap: var(--s4); }
  .footer__logo { width: 64px; height: 64px; }
  .bar { min-height: var(--bar-h); background: var(--ivory); border-top: 1px solid var(--blue); box-shadow: none; }
  .bar__item, .bar__item--primary { background: var(--ivory); color: var(--blue); border-color: var(--rule-light); font-weight: 700; }
  .bar__item:last-child { background: var(--blue); color: var(--ivory); }
  .bar__item:focus-visible { outline-color: var(--orange); outline-offset: -4px; }
  /* page bottom padding equals the action bar, so the last content and the footer end right above it */
  body { padding-bottom: calc(var(--bar-h) + env(safe-area-inset-bottom)); }
  .menu-nav ul { gap: var(--s2); }
  .menu-nav a { min-height: 44px; padding: var(--s2) var(--s3); font-size: .8125rem; }
  .chip__kanji { display: none; }
  .menu-cat { scroll-margin-top: 7rem; }
  .cards { grid-template-columns: minmax(0, 1fr); gap: var(--s5); }
  .card { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); align-items: start; gap: var(--s4); padding-bottom: var(--s5); }
  .card__media { aspect-ratio: 4 / 3; }
  .card__num { font-size: .75rem; }
  .card__body { padding: 0; gap: var(--s2); }
  .card__name { font-size: 1rem; }
  .card__price { font-size: 1rem; }
  .card__variants { font-size: .8125rem; }
  .card__variants li { gap: var(--s2); }
  .card__pictured { font-family: var(--font); font-size: .75rem; }
  .item__body .eyebrow { font-size: .75rem; }
  .item__body .display { font-size: 2.75rem; }
  .item__variants li > :last-child { white-space: nowrap; }
  .menu-cat__head { padding-right: 0; }
  .menu-cat__spot { width: 4.5rem; position: static; float: right; margin: 0 0 var(--s4) var(--s4); }
  .about-hero__body .display { font-size: 3rem; }
}

/* Motion: small one-time reveals; reduced-motion changes take effect immediately */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .js-reveal .reveal { opacity: 1; transform: none; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}
@media (forced-colors: active) {
  :focus-visible, .card:focus-within { outline-color: Highlight; }
}

/* Bolder rhythm and playful restaurant motion, kept clear of readable content. */
:root { --motion-cycle: 16s; --fish-size: clamp(5rem, 11vw, 10rem); }
.home .lede { font-weight: 500; }
.nav__link, .btn, .bar__item, .card__name { font-weight: 800; }
.home .hero__title { text-shadow: 1px 0 currentColor; }
.home .tile__name { font-size: clamp(2.5rem, 4vw, 3.75rem); }
.motion-toggle { display: inline-flex; min-height: 44px; align-items: center; background: none; border: 0; padding: var(--s2) 0; margin-top: var(--s3); color: var(--blue); font: 700 .8125rem/1.5 var(--font); text-decoration: underline; text-underline-offset: .25em; cursor: pointer; }
.motion-toggle[hidden] { display: none; }
/* Home: the hero text is centred beside the photo, so its Pause control keeps its space before the
   script shows it; revealing it no longer shifts the block (CLS, 2026-10-24) */
.appetite .motion-toggle[hidden] { display: inline-flex; visibility: hidden; }
.motion-toggle:disabled { cursor: default; text-decoration: none; }
.fish-lane { height: clamp(5rem, 9vw, 8rem); position: relative; overflow: hidden; background: var(--ivory); color: var(--orange); pointer-events: none; }
.swimmer { position: absolute; width: var(--fish-size); top: 16%; left: 15%; animation: fish-swim var(--motion-cycle) linear infinite; animation-play-state: paused; }
.swimmer svg { display: block; width: 100%; overflow: visible; }
.swimmer--two { left: 65%; top: 45%; color: var(--blue); width: calc(var(--fish-size) * .7); animation-name: fish-swim-back; animation-duration: 21s; animation-delay: -8s; }
.fish__body { fill: currentColor; }
.fish__fin { fill: var(--peach); }
.fish__gill { fill: none; stroke: var(--ivory); stroke-width: 3; }
.fish__eye { fill: var(--ivory); }
.fish-lane__dots { position: absolute; inset: 30% 0 auto; text-align: center; color: var(--blue); letter-spacing: .8em; }
.shop__wide { position: relative; overflow: hidden; }
.welcome-cat { position: absolute; width: clamp(8rem, 19vw, 18rem); right: var(--gutter); bottom: 0; pointer-events: none; }
.welcome-cat svg { width: 100%; display: block; overflow: visible; }
.cat__cream { fill: var(--ivory); }
.cat__blue { fill: var(--blue); }
.cat__orange { fill: var(--orange); }
.cat__peach, .cat__coin { fill: var(--peach); }
.cat__shadow { fill: var(--blue-dark); opacity: .2; }
.cat__outline { stroke: var(--blue-dark); stroke-width: 4; stroke-linejoin: round; }
.cat__line { fill: none; stroke: var(--blue-dark); stroke-width: 4; stroke-linecap: round; }
.cat__paw { transform-origin: 183px 162px; animation: cat-beckon 1.6s ease-in-out infinite; animation-play-state: paused; }
.motion-ready .swimmer, .motion-ready .cat__paw { animation-play-state: running; }
/* 2026-10-24: the watercolor nigiri rests; it competed with the sushi rain in the same view */
.home .btn { transition: transform .22s ease, background-color .22s ease, color .22s ease, box-shadow .22s ease; }
.home .btn:hover { transform: translateY(-3px); box-shadow: 0 4px 0 var(--orange); }
.home .tile img { transition: transform .45s ease, border-radius .45s ease; }
.home .tile:hover img { transform: translateY(-8px) rotate(-1deg); }
.motion-paused .swimmer, .motion-paused .cat__paw, .motion-paused .appetite__spot { animation-play-state: paused; }
@keyframes cat-beckon { 0%, 100% { transform: rotate(-10deg); } 50% { transform: rotate(16deg); } }
@keyframes fish-swim { 0% { left: -18%; transform: translateY(0) rotate(-3deg); } 25% { transform: translateY(12px) rotate(3deg); } 50% { transform: translateY(-8px) rotate(-3deg); } 75% { transform: translateY(10px) rotate(3deg); } 100% { left: 110%; transform: translateY(0) rotate(-3deg); } }
@keyframes fish-swim-back { 0% { left: 110%; transform: scaleX(-1) translateY(0); } 50% { transform: scaleX(-1) translateY(-14px); } 100% { left: -18%; transform: scaleX(-1) translateY(0); } }
@media (max-width: 47.99rem) { .motion-toggle { margin-top: 0; } .home .tile__name { font-size: 2.75rem; } }
/* System motion preference always takes precedence over decorative effects. */
@media (prefers-reduced-motion: reduce) {
  .swimmer, .cat__paw, .appetite__spot, .motion-ready .appetite__spot { animation: none !important; }
  .home .btn, .home .tile img { transition: none; }
  .home .btn:hover, .home .tile:hover img { transform: none; box-shadow: none; }
}

/* Japanese graphic rhythm: verified seals and abstract seigaiha wave geometry. */
:root { --wave-ink: var(--ivory); --intro-duration: 1.55s; }
.appetite { position: relative; }
.appetite__brand { font-size: clamp(3rem, 18.6vw, 17.5rem); letter-spacing: -.075em; text-shadow: 3px 3px 0 var(--peach); }
.appetite__brand span { display: inline-block; }
/* Phones: one plain line under the wordmark says what and where, inside the first screen */
.appetite__id { display: none; position: relative; z-index: 2; margin: calc(var(--s3) - var(--s6)) 0 var(--s6); color: var(--blue); font: 700 .8125rem/1.35 var(--font); letter-spacing: .01em; }
.motion-ready .appetite__brand span { animation: brand-arrive .65s cubic-bezier(.2,.7,.2,1) both; }
.motion-ready .appetite__brand span:last-child { animation-delay: .12s; }
.home .eyebrow .seal { background: var(--orange); color: var(--ivory); padding: var(--s2); border: 1px solid currentColor; font-size: 1rem; }
.home .tile__kanji { display: inline-flex; width: fit-content; background: var(--ivory); color: var(--blue); padding: var(--s2) var(--s3); border: 1px solid currentColor; }
.home .discover, .home .visit { position: relative; isolation: isolate; }
.home .discover::after, .home .visit::after { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; opacity: .08; background-image: radial-gradient(circle at 50% 100%, transparent 36%, var(--wave-ink) 37% 39%, transparent 40% 53%, var(--wave-ink) 54% 56%, transparent 57% 70%, var(--wave-ink) 71% 73%, transparent 74%); background-size: 96px 48px; }
.home .share { border-block: 3px solid var(--orange); }
.home .menu-cat__head .seal { border: 1px solid currentColor; }
/* Sushi rain: restaurant-motion.js drops the pieces once per visit; the layer sits behind the
   wordmark, the photo and the actions, never takes a click, and is empty without JavaScript. */
:root { --rain-shadow: color-mix(in srgb, var(--blue-dark) 20%, transparent); }
.sushi-arrival { display: none; position: absolute; inset: 0; z-index: 1; pointer-events: none; overflow: hidden; contain: strict; }
.motion-ready .sushi-arrival { display: block; }
.appetite__brand, .appetite__photo { position: relative; z-index: 2; }
.sushi-arrival img { position: absolute; top: 0; left: 0; height: auto; object-fit: contain; opacity: 0; filter: drop-shadow(0 3px 3px var(--rain-shadow)); }
.sushi-arrival.is-raining img { will-change: transform, opacity; }
.motion-paused .appetite__brand span { animation-play-state: paused; }
@keyframes brand-arrive { from { transform: translateY(20px); } to { transform: translateY(0); } }
@media (max-width: 47.99rem) {
  .appetite__brand { white-space: normal; font-size: clamp(5rem, 27vw, 13rem); line-height: .82; margin-bottom: var(--s6); letter-spacing: -.07em; }
  .appetite__brand span { display: block; }
  .appetite__brand span + span { margin-top: var(--s2); }
  .appetite__id { display: block; }
  .appetite .hero__title { font-size: clamp(3.25rem, 15vw, 5rem); }
}
/* Keep the opening fully visible and still under system reduced-motion settings. */
@media (prefers-reduced-motion: reduce) {
  .motion-ready .sushi-arrival { display: none; }
  .motion-ready .appetite__brand span { animation: none !important; }
}

/* Hanko-inspired action buttons: vermilion ink, squared form and inset seal border. */
:root { --stamp-radius: .125rem; --stamp-inset: .25rem; --stamp-lift: .1875rem; }
.btn, .nav__toggle, .menu-nav a { position: relative; border-radius: var(--stamp-radius); min-height: 44px; }
.btn { padding-inline: var(--s5); letter-spacing: .025em; font-weight: 800; }
.btn::before, .nav__toggle::before { content: ""; position: absolute; inset: var(--stamp-inset); border: 1px solid currentColor; border-radius: var(--stamp-radius); opacity: .65; pointer-events: none; }
.btn--primary { background: var(--orange); border-color: var(--orange); color: var(--ivory); }
.btn--primary:hover, .paper .btn--primary:hover, .sips .btn--primary:hover { background: var(--blue-dark); border-color: var(--blue-dark); color: var(--ivory); }
.btn--secondary, .paper .btn--secondary, .btn--ghost { border-color: var(--blue); color: var(--blue); }
.home .btn:hover { transform: translateY(-2px); box-shadow: var(--stamp-lift) var(--stamp-lift) 0 var(--blue-dark); }
.btn:active, .home .btn:active { transform: translateY(1px); box-shadow: none; }
.visit .btn--primary { background: var(--ivory); border-color: var(--ivory); color: var(--blue); }
.visit .btn--primary:hover { background: var(--white); border-color: var(--white); color: var(--blue-dark); }
.menu-nav a { border-width: 2px; }
@media (prefers-reduced-motion: reduce) { .home .btn:hover, .btn:active, .home .btn:active { transform: none; box-shadow: none; } }
