/* Poppins throughout: geometric headings, clear menu typography. */
:root {
  --display: 'Poppins', 'DM Sans', Arial, sans-serif;
  --serif: var(--display);
  --body: 'Poppins', 'DM Sans', Arial, sans-serif;
  --mono: var(--body);
}
body { font-size: 15px; font-synthesis: none; }
h1, h2, h3 { font-family: var(--display); font-weight: 600; letter-spacing: -.035em; line-height: 1.08; }
h1 em, h2 em, h3 em, h4 em { font-style: normal; font-weight: inherit; }
.eyebrow, .chapter { font-size: 10px; font-weight: 500; letter-spacing: .11em; line-height: 1.6; }
.intro-curtain span { font-size: 10px; font-weight: 500; letter-spacing: .12em; }
.desktop-nav a { font-size: 12px; font-weight: 400; letter-spacing: .015em; text-transform: none; }
.header-cta, .pill { font-size: 12px; font-weight: 500; letter-spacing: .01em; text-transform: none; }
.header-cta { font-size: 11px; }
.line-link { font-size: 12px; font-weight: 500; letter-spacing: 0; }
.hero h1 { font-family: var(--display); font-weight: 700; text-transform: uppercase; font-size: 18vw; letter-spacing: -.06em; line-height: .95; gap: .3vw; }
.hero-meta { font-size: 10px; font-weight: 400; letter-spacing: .07em; }
.hero-subtitle { font: 400 clamp(16px,1.55vw,23px)/1.5 var(--body); letter-spacing: .005em; }
.hero-subtitle em { font-style: normal; }
.hero-finale h2 { font-size: clamp(72px,8vw,128px); line-height: 1.02; font-weight: 600; letter-spacing: -.04em; }
.hero-footer { font-size: 9px; font-weight: 400; letter-spacing: .06em; }
.scroll-prompt b { font-family: var(--body); font-weight: 400; }
.reading-text { font-family: var(--display); font-size: clamp(35px,3.6vw,58px); font-weight: 500; line-height: 1.24; letter-spacing: -.025em; }
.handwritten { font: 400 16px/1.6 var(--body); letter-spacing: .01em; color: #d4bda0; }
.floating-photo figcaption { font-size: 9px; font-weight: 400; letter-spacing: .05em; }
.story-year { font: 500 92px/1 var(--display); letter-spacing: -.04em; }
.story-year>span { font-size: 10px; font-weight: 400; letter-spacing: .06em; }
.story-detail p { font-size: 14px; line-height: 1.8; }
.tasting-head h2 { font-size: clamp(52px,5.5vw,84px); font-weight: 600; line-height: 1.04; }
.tasting-head p { font-size: 13px; line-height: 1.75; }
.tasting-counter b { font: 400 54px/1 var(--display); }
.tasting-counter i { font: 400 11px var(--body); }
.taste-no { font-size: 11px; font-weight: 500; letter-spacing: .04em; }
.taste-photo .taste-label { font-size: 10px; font-weight: 500; letter-spacing: .08em; }
.taste-photo .taste-title h3 { font-family: var(--display); font-size: clamp(27px,2.5vw,36px); font-weight: 500; line-height: 1.15; letter-spacing: -.035em; }
.taste-photo .taste-title>span { font-family: var(--body); font-size: 25px; }
.taste-card>p { font-size: 10px; font-weight: 400; letter-spacing: .07em; }
.taste-photo .taste-detail { font-size: 13px; line-height: 1.7; }
.taste-photo .taste-detail span { font-size: 11px; font-weight: 500; }
.tasting-foot { font-size: 9px; letter-spacing: .06em; }
.menu-heading h2 { font-size: clamp(56px,7vw,106px); font-weight: 600; line-height: 1.04; }
.menu-sidebar>.eyebrow { font-size: 10px; letter-spacing: .08em; }
.category-tabs button { font-family: var(--body); font-size: 14px; line-height: 1.5; font-weight: 400; letter-spacing: 0; }
.category-tabs button[aria-pressed=true] { font-weight: 600; }
.category-tabs button>span { font-size: 10px; font-weight: 400; }
.menu-download { font: 400 16px/1.5 var(--body); }
.menu-download>span { font-size: 11px; letter-spacing: 0; }
.menu-category-kicker { font-size: 10px; font-weight: 500; letter-spacing: .09em; }
.menu-category-header h3 { font-family: var(--display); font-size: 30px; line-height: 1.15; font-weight: 600; letter-spacing: -.025em; }
.menu-category-header p { font-size: 13px; line-height: 1.75; }
.dish h4 { font-family: var(--body); font-size: 20px; font-weight: 500; line-height: 1.4; letter-spacing: -.015em; }
.dish p { font-size: 13px; line-height: 1.8; margin-top: 7px; }
.dish-number { font: 400 10px/1.5 var(--body); letter-spacing: 0; padding-top: 6px; }
.dish-price { font: 500 20px/1.4 var(--body); letter-spacing: -.025em; font-variant-numeric: lining-nums tabular-nums; padding-top: 0; }
.dish-price small { font: 400 12px var(--body); }
.dish sup { font-family: var(--body); font-weight: 400; letter-spacing: 0; }
.menu-more { font-size: 12px; font-weight: 500; letter-spacing: 0; }
.menu-disclaimer, .menu-disclaimer p, .menu-disclaimer .plain-link { font-size: 10px; line-height: 1.6; }
.meter-lines { font-family: var(--display); font-weight: 400; font-size: 10.7vw; line-height: 1; letter-spacing: -.035em; }
.meter-orbit>span { font: 400 54px var(--display); }
.meter-orbit text { font-family: var(--body); font-weight: 400; letter-spacing: 1.4px; }
.meter-caption h2 { font-size: clamp(38px,4.2vw,66px); line-height: 1.08; font-weight: 600; }
.meter-caption p { font-size: 14px; line-height: 1.75; }
.room-copy h2 { font-size: clamp(45px,4.8vw,74px); line-height: 1.07; font-weight: 600; }
.room-copy p { font-size: 14px; line-height: 1.75; }
.room-facts b { font: 400 41px/1.1 var(--display); }
.room-facts>span { font-size: 8px; letter-spacing: .04em; }
.room-card>span { font: 400 12px/1.45 var(--body); letter-spacing: 0; }
.room-card b { font: 400 9px var(--body); }
.ticker-track>span { font-family: var(--display); font-weight: 500; font-style: normal; font-size: 78px; line-height: 1.1; letter-spacing: -.025em; }
.ticker i { font-family: var(--body); font-size: 30px; vertical-align: 10px; }
.gallery-heading>.eyebrow { font-size: 10px; letter-spacing: .07em; }
.gallery-controls>span { font-size: 10px; font-weight: 400; letter-spacing: .02em; }
.gallery-caption { font-size: 9px; letter-spacing: .02em; line-height: 1.6; }
.gallery-bottom { font-size: 9px; letter-spacing: .05em; }
.family-copy h2 { font-size: clamp(35px,3.9vw,60px); line-height: 1.12; }
.family-copy p { font-size: 14px; }
.family-seal { font-family: var(--display); font-size: 21px; font-weight: 400; line-height: 1.15; letter-spacing: -.02em; }
.family-seal em { font-style: normal; }
.news summary>span:nth-child(2) { font: 400 25px/1.25 var(--display); letter-spacing: -.02em; }
.news-content h3 { font: 400 28px/1.2 var(--display); letter-spacing: -.02em; }
.news-content p { font-size: 13px; }
.visit h2 { font-size: clamp(48px,6vw,94px); font-weight: 600; line-height: 1.1; letter-spacing: -.035em; }
.visit-small { font-size: 10px; font-weight: 400; letter-spacing: .07em; }
.footer-grid p { font-size: 13px; }
.footer-grid .hours-note { font-size: 11px; }
.footer-grid .plain-link { font-size: 11px; letter-spacing: 0; }
.footer-social { font-size: 10px; font-weight: 400; letter-spacing: .02em; }
.footer-logo>span { font-size: 10px; letter-spacing: .12em; }
.footer-bottom, .footer-bottom button { font-size: 10px; letter-spacing: 0; line-height: 1.6; }
.map-panel>#load-map { font-size: 10px; font-weight: 500; letter-spacing: .04em; }
.info-dialog h2 { font-size: 38px; font-weight: 600; line-height: 1.15; }
.info-dialog h3 { font-family: var(--body); font-size: 21px; font-weight: 500; line-height: 1.4; letter-spacing: -.015em; }
.info-dialog p, .info-dialog li { font-size: 13px; }
.contact-form label { font-size: 12px; }
.contact-form .form-note { font-size: 11px; }
.contact-form .button { font-size: 12px; font-weight: 500; }
.lightbox figcaption { font-size: 11px; letter-spacing: .02em; }
.motion-ready:not(.motion-paused) .tasting-head h2 { font-size: clamp(50px,8.3vh,78px); line-height: 1.04; }
@media (max-width: 1100px) {
  .desktop-nav { gap: 18px; }
  .desktop-nav a { font-size: 11px; }
  .header-cta { font-size: 10px; gap: 15px; }
  .room-copy h2 { font-size: 5.1vw; }
  .family-copy h2 { font-size: 4.1vw; }
}
@media (max-width: 760px) {
  .header-cta { font-size: 10px; padding: 12px 14px; gap: 10px; letter-spacing: 0; }
  .mobile-nav>a { font: 400 29px/1.3 var(--display); letter-spacing: -.025em; }
  .mobile-nav>a>span { font: 400 10px var(--body); }
  .mobile-nav .mobile-phone { font: 400 16px var(--body); letter-spacing: 0; }
  .hero h1 { font-size: 18vw; line-height: .95; letter-spacing: -.06em; justify-content: center; gap: .3vw; }
  .hero-meta { font-size: 8px; letter-spacing: .04em; }
  .hero-subtitle { font: 400 clamp(13px,3.65vw,20px)/1.5 var(--body); }
  .hero-footer { font-size: 7px; letter-spacing: .02em; }
  .scroll-prompt>span { font-size: 6px; }
  .hero-finale h2 { font-size: clamp(48px,14.5vw,88px); line-height: 1.05; }
  .hero-finale .eyebrow { font-size: 10px; }
  .hero-finale .pill { font-size: 11px; }
  .chapter { font-size: 8px; letter-spacing: .04em; }
  .reading-text { font-size: clamp(29px,7.4vw,48px); line-height: 1.24; }
  .handwritten { font: 400 14px/1.6 var(--body); }
  .story-year { font-size: 70px; }
  .story-year>span { font-size: 9px; letter-spacing: .04em; }
  .story-detail p { font-size: 13px; }
  .line-link { font-size: 11px; }
  .tasting-head h2 { font-size: 48px; line-height: 1.04; }
  .tasting-head .eyebrow { font-size: 9px; }
  .tasting-head p { font-size: 12px; }
  .tasting-counter b { font-size: 40px; }
  .tasting-counter i { font-size: 9px; }
  .taste-no { font-size: 10px; }
  .taste-photo .taste-label { font-size: 8px; letter-spacing: .03em; }
  .taste-photo .taste-title h3 { font-size: clamp(23px,6vw,30px); line-height: 1.2; }
  .taste-card>p { font-size: 8px; letter-spacing: .03em; }
  .taste-photo .taste-detail { font-size: 12px; }
  .taste-photo .taste-detail span { font-size: 10px; }
  .tasting-foot { font-size: 7px; letter-spacing: .02em; }
  .motion-ready:not(.motion-paused) .tasting-head h2 { font-size: 45px; line-height: 1.04; }
  .menu-heading h2 { font-size: clamp(34px,10.5vw,72px); line-height: 1.1; }
  .menu-sidebar>.eyebrow { font-size: 9px; }
  .category-tabs button { font: 400 13px/1.5 var(--body); }
  .category-tabs button>span { font-size: 9px; }
  .menu-category-kicker { font-size: 9px; }
  .menu-category-header h3 { font-size: clamp(24px,6.5vw,30px); }
  .menu-category-header p { font-size: 12px; }
  .dish h4 { font-size: 18px; line-height: 1.4; }
  .dish p { font-size: 12px; line-height: 1.8; }
  .dish-number { font-size: 9px; padding-top: 5px; }
  .dish-price { font: 500 18px/1.4 var(--body); padding-top: 0; }
  .dish-price small { font-size: 10px; }
  .menu-more { font-size: 11px; }
  .menu-disclaimer, .menu-disclaimer p, .menu-disclaimer .plain-link { font-size: 9px; }
  .meter-lines { font-size: 12.7vw; }
  .meter-caption h2 { font-size: clamp(30px,8.8vw,46px); line-height: 1.12; }
  .meter-caption p { font-size: 12px; }
  .meter-caption .eyebrow { font-size: 9px; }
  .meter-caption .pill { font-size: 11px; }
  .meter-orbit>span { font-size: 39px; }
  .room-copy h2 { font-size: 44px; line-height: 1.06; }
  .room-copy .eyebrow { font-size: 9px; }
  .room-copy p { font-size: 13px; }
  .room-facts b { font-size: 36px; }
  .room-facts>span { font-size: 7px; }
  .room-card>span { font: 400 11px/1.35 var(--body); }
  .motion-ready:not(.motion-paused) .room-copy h2 { font-size: 38px; line-height: 1.06; }
  .motion-ready:not(.motion-paused) .room-copy p { font-size: 12px; line-height: 1.6; max-width: 290px; }
  .motion-ready:not(.motion-paused) .room-copy .line-link { font-size: 10px; }
  .motion-ready:not(.motion-paused) .room-facts b { font-size: 27px; }
  .motion-ready:not(.motion-paused) .room-facts>span { font-size: 6px; }
  .motion-ready:not(.motion-paused) .room-card>span { font-size: 10px; }
  .ticker-track>span { font-size: 52px; line-height: 1.15; }
  .ticker i { font-size: 22px; vertical-align: 8px; }
  .gallery-heading>.eyebrow { font-size: 9px; }
  .gallery-controls>span { font-size: 9px; }
  .gallery-caption { font-size: 8px; }
  .gallery-bottom { font-size: 7px; line-height: 1.7; letter-spacing: .02em; }
  .family-copy h2 { font-size: clamp(31px,8.6vw,54px); line-height: 1.13; }
  .family-copy>.eyebrow { font-size: 9px; }
  .family-copy p { font-size: 13px; }
  .family-seal { font-size: 19px; }
  .news summary>.eyebrow { font-size: 9px; }
  .news summary>span:nth-child(2) { font-size: 22px; }
  .news-content h3 { font-size: 25px; }
  .news-content p { font-size: 12px; }
  .visit h2 { font-size: clamp(30px,8.3vw,58px); line-height: 1.13; }
  .visit .eyebrow { font-size: 9px; }
  .visit-cta .pill { font-size: 11px; }
  .visit-small { font-size: 8px; letter-spacing: .04em; }
  .footer-grid .eyebrow { font-size: 9px; }
  .footer-grid p { font-size: 12px; overflow-wrap: anywhere; }
  .footer-grid .hours-note { font-size: 10px; }
  .footer-grid .plain-link { font-size: 10px; }
  .footer-social { font-size: 8px; }
  .footer-logo>span { font-size: 8px; letter-spacing: .05em; line-height: 1.7; }
  .footer-bottom, .footer-bottom button { font-size: 9px; }
  .info-dialog h2 { font-size: 32px; }
}
@media (max-width: 380px) {
  .brand { width: 124px; }
  .header { gap: 14px; }
  .header-cta { font-size: 10px; padding: 11px 12px; gap: 8px; }
  .hero-subtitle { font-size: 13px; }
  .room-copy h2 { font-size: 40px; }
  .motion-ready:not(.motion-paused) .room-copy h2 { font-size: 36px; }
}
@media (max-width: 360px) {
  .brand { width: 110px; }
  .header { gap: 10px; }
  .header-cta { font-size: 9.5px; padding: 11px 12px; gap: 8px; }
}
