/* R6.3: terracotta opening; R6.2 layout and native photography retained. */
body { --opening-bg: #9b4939; --opening-red: #713427; --opening-ink: #fff5ef; --opening-detail: #f7ded2; --opening-highlight: #ffd8c8; }
.topline { background: var(--opening-red); color: #fff0d7; height: 32px; }
.header { position: relative; height: 94px; color: var(--opening-ink); border-bottom: 1px solid #fff5ef40; }
.opening-header { background: var(--opening-bg); }
.header .brand { width: 217px; }
.header .navigation > a:not(.button):hover { color: var(--opening-highlight); }
.header .button { background: #f3f2ed; color: #653325; border-radius: 0; }
.header .button:hover { background: #dfe7df; }
.opening { position: relative; isolation: isolate; overflow: hidden; color: var(--opening-ink); background: var(--opening-bg); padding: 24px 0 0; }
.opening::before { content: ''; position: absolute; inset: 0; background: url('material-grain.svg'); opacity: .26; z-index: -1; pointer-events: none; }
.opening-heading { position: relative; padding-bottom: 24px; }
.opening-kicker { text-align: center; font-size: 11px; letter-spacing: .18em; color: var(--opening-detail); margin-bottom: 12px; }
.opening h1 { text-align: center; font-size: clamp(66px, 6.1vw, 90px); font-weight: 600; letter-spacing: -.06em; line-height: 1.04; margin: 0 auto; text-wrap: initial; }
.opening h1 span { display: block; color: var(--opening-highlight); }
.opening-intro { position: absolute; left: 0; bottom: 32px; width: 190px; }
.opening-intro svg { width: 28px; height: 28px; color: var(--opening-highlight); margin-bottom: 14px; }
.opening-intro p { font-size: 13px; line-height: 1.8; }
.opening-invite { position: absolute; right: 0; bottom: 32px; text-align: right; }
.opening-invite > p { font-size: 11px; color: var(--opening-detail); margin-bottom: 14px; }
.opening .hero-cta { background: #f3f2ed; color: #653325; border-radius: 0; padding: 13px 19px; min-height: 52px; font-size: 13px; gap: 33px; }
.opening .hero-cta:hover { background: #dfe7df; }
.opening-photo { position: relative; margin: 0; }
.opening-image { overflow: hidden; border-radius: 220px 220px 0 0 / 105px 105px 0 0; background: #713427; position: relative; }
.opening-image picture { display: block; }
.opening-image img { width: 100%; height: auto; aspect-ratio: 33 / 13; object-fit: cover; }
.opening-photo figcaption { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 17px 0 21px; font-size: 11px; line-height: 1.5; }
.opening-photo figcaption > span:first-child { color: var(--opening-detail); }
.opening-photo figcaption a { display: flex; align-items: center; min-height: 32px; gap: 10px; font-weight: 500; }
.opening-photo figcaption svg { width: 16px; height: 16px; }
.opening .motion-control { color: var(--opening-detail); font-size: 10px; padding-block: 6px; min-height: 32px; }
.opening-signoff { background: var(--opening-red); color: #f9e6c7; display: flex; align-items: center; justify-content: center; gap: 30px; padding: 16px 24px; font-size: 12px; font-weight: 500; letter-spacing: .05em; }
.opening-signoff svg { width: 16px; height: 16px; }
@media (min-width: 1700px) { .opening { padding-top: 55px; } .opening-heading { padding-bottom: 42px; } }
@media (max-width: 1180px) {
  .opening { padding-top: 29px; }
  .opening h1 { font-size: 7.2vw; }
  .opening-intro { width: 155px; }
  .opening-intro p { font-size: 11px; }
  .opening-invite > p { font-size: 10px; }
  .opening .hero-cta { padding-inline: 15px; gap: 20px; font-size: 12px; }
  .opening-image { border-radius: 160px 160px 0 0 / 90px 90px 0 0; }
}
@media (min-width: 701px) and (max-width: 900px) {
  .header .brand { width: 180px; }
  .header .navigation { gap: 19px; font-size: 11px; }
  .header .navigation .button { gap: 13px; padding-inline: 14px; font-size: 11px; }
  .opening h1 { font-size: 8vw; }
  .opening-heading { padding-bottom: 107px; }
  .opening-intro { bottom: 24px; width: 350px; }
  .opening-intro svg { display: none; }
  .opening-intro p { font-size: 12px; }
  .opening-intro br { display: none; }
  .opening-invite { bottom: 24px; }
  .opening-invite > p { display: none; }
  .opening-photo figcaption { font-size: 10px; }
  .opening-image { border-radius: 100px 100px 0 0 / 60px 60px 0 0; }
}
@media (max-width: 700px) {
  .topline { height: 28px; font-size: 9px; }
  .header { height: 83px; }
  .header .brand { width: 184px; }
  .header .nav-toggle { color: var(--opening-ink); }
  .header .navigation { top: 82px; background: var(--opening-bg); color: var(--opening-ink); border-color: #d29985; box-shadow: 0 24px 30px #5e382521; }
  .header .navigation > a:not(.button) { border-bottom-color: #fff5ef35; }
  .header .navigation .button { font-size: 14px; }
  .opening { padding-top: 24px; }
  .opening-heading { padding-bottom: 20px; }
  .opening-kicker { font-size: 9px; letter-spacing: .13em; margin-bottom: 14px; }
  .opening h1 { font-size: clamp(45px, 12.8vw, 74px); line-height: 1.07; letter-spacing: -.055em; }
  .opening-intro { position: static; width: auto; margin: 14px auto 16px; text-align: center; }
  .opening-intro svg { display: none; }
  .opening-intro p { font-size: 12px; line-height: 1.75; }
  .opening-intro br { display: none; }
  .opening-intro br:last-child { display: block; }
  .opening-invite { position: static; text-align: center; }
  .opening-invite > p { display: none; }
  .opening .hero-cta { min-height: 47px; padding: 11px 19px; font-size: 12px; gap: 27px; }
  .opening .hero-cta svg { width: 19px; height: 19px; }
  .opening-image { border-radius: 160px 160px 0 0 / 62px 62px 0 0; }
  .opening-image img { aspect-ratio: 9 / 10; }
  .opening-photo figcaption { font-size: 9px; gap: 14px; padding: 10px 0 14px; flex-wrap: wrap; }
  .opening-photo figcaption > span:first-child { max-width: 150px; }
  .opening .motion-control { margin-left: auto; font-size: 9px; }
  .opening-signoff { padding: 15px 16px; gap: 13px; font-size: 9px; letter-spacing: .02em; }
  .opening-signoff svg { width: 12px; height: 12px; }
  html:not(.js) .header { background: var(--opening-bg); }
}
@media (max-width: 370px) {
  .opening h1 { font-size: 44px; }
  .opening-kicker { font-size: 8px; }
  .opening-intro p { font-size: 11px; }
  .opening-signoff { gap: 10px; font-size: 8px; }
}

/* R6.3: terracotta and limestone surfaces; the R6.2 composition is retained. */
body {
  --paper: #d9deda;
  --cream: #f5f2ee;
}
.lunch-ticket { background: #ebeeea; border-top-color: #ebeeea; border-bottom-color: #ebeeea; }
.bar-note { background: #cbd4cc; }
.visit-seal {
  background: #c4cec6;
  border-color: #899c8f;
  box-shadow: inset 0 0 0 10px #d9dfd8, inset 0 0 0 11px #899c8f;
}
.ribbon { background: #bd684d; color: #fff6f0; }
.mobile-actions { background: #e1e6e0; border-color: #a3b2a7; }

/* All interface marks use SVG geometry instead of font glyphs. */
.separator { width: 6px; height: 6px; fill: currentColor; stroke: none; }
.topline .separator { width: 6px; height: 6px; }
.opening-kicker { display: flex; align-items: center; justify-content: center; gap: 10px; }
.opening-kicker > span { white-space: nowrap; }
.header .nav-toggle { gap: 0; }
.header .nav-toggle svg { width: 24px; height: 24px; }
.icon-close, .motion-icon .icon-play { display: none; }
.nav-toggle[aria-expanded=true] .icon-menu { display: none; }
.nav-toggle[aria-expanded=true] .icon-close { display: block; }
.opening .motion-control .motion-icon { width: 14px; height: 14px; border: 0; }
.motion-control[aria-pressed=true] .icon-pause { display: none; }
.motion-control[aria-pressed=true] .icon-play { display: block; }
@media (max-width: 700px) {
  .visit-seal { box-shadow: inset 0 0 0 5px #d9dfd8, inset 0 0 0 6px #899c8f; }
  .opening-kicker { gap: 8px; }
  .opening-kicker .separator { width: 4px; height: 4px; }
}
