/* Primary mobile-first light editorial composition. */
.site-header { position: relative; z-index: 100; border-bottom: 1px solid rgba(21, 55, 47, .12); background: rgba(250, 248, 243, .98); }
.site-header__inner { display: flex; min-height: 72px; align-items: center; justify-content: space-between; gap: 1rem; }
.brand { display: inline-flex; flex-direction: column; align-items: center; color: var(--color-primary); line-height: 1; text-decoration: none; }
.brand__name { font-family: var(--font-display); font-size: 1.55rem; font-weight: 700; letter-spacing: .055em; }
.brand__place { margin-top: .35rem; font-size: .58rem; font-weight: 700; letter-spacing: .32em; text-transform: uppercase; }
.menu-toggle, .menu-close { display: none; }
.site-nav { display: flex; align-items: center; gap: 1.2rem; }
.site-nav__top { display: none; }
.site-nav__links { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem 1rem; list-style: none; }
.site-nav__links a { display: inline-flex; min-height: 44px; align-items: center; text-decoration: none; }
.site-nav__cta { white-space: nowrap; }
.nav-backdrop { display: none; }

.hero { position: relative; background: var(--color-surface); }
.hero__content { padding-block: clamp(3.25rem, 12vw, 5.5rem) 2.4rem; }
.hero__copy { max-width: 40rem; }
.hero h1 { margin-bottom: .1rem; }
.hero__lead { margin-bottom: 1rem; color: var(--color-primary); font-family: var(--font-display); font-size: clamp(1.75rem, 7vw, 2.45rem); line-height: 1.1; }
.hero__body { margin-bottom: 1.55rem; font-size: 1.04rem; line-height: 1.55; }
.hero__visual { position: relative; height: clamp(18rem, 85vw, 25rem); overflow: hidden; background: #262a25; }
.hero__visual img { height: 100%; object-fit: cover; object-position: 61% 60%; }
.hand-note { color: var(--color-accent); font-family: var(--font-display); font-style: italic; line-height: 1.35; }
.hero__visual .hand-note { position: absolute; right: 1rem; bottom: 1rem; margin: 0; padding: .55rem .7rem; border-radius: 4px; background: rgba(250, 248, 243, .88); font-size: .8rem; }

.quick-facts { border-block: 1px solid var(--color-border); background: var(--color-surface); }
.quick-facts__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.fact { display: grid; min-width: 0; grid-template-columns: 2rem 1fr; gap: .75rem; align-items: start; padding: 1.35rem .65rem; }
.fact:nth-child(odd) { padding-left: 0; border-right: 1px solid var(--color-border); }
.fact:nth-child(n+3) { border-top: 1px solid var(--color-border); }
.fact svg { width: 2rem; fill: none; stroke: var(--color-accent); stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.6; }
.fact h2 { margin-bottom: .2rem; font-size: 1.05rem; line-height: 1.2; }
.fact p { margin: 0; color: var(--color-muted); font-size: .72rem; line-height: 1.45; }
.launch-note { border-bottom: 1px solid var(--color-border); background: var(--color-sage); }
.launch-note__inner { padding-block: 1.75rem; }
.launch-note h2 { margin-bottom: .45rem; font-size: clamp(1.6rem, 7vw, 2.15rem); }
.launch-note p:last-child { margin-bottom: 0; }

.split-section { padding-block: var(--section-space); }
.split-section + .split-section { border-top: 1px solid var(--color-border); }
.split-section__inner { display: grid; gap: 2.5rem; }
.split-section__copy { align-self: center; }
.split-section__copy h2 { margin-bottom: 1.15rem; }
.split-section__copy > p:not(.eyebrow, .feature-line, .hand-note) { margin-bottom: 1.5rem; }
.split-section__visual { aspect-ratio: 4 / 3; min-height: 0; overflow: hidden; border-radius: var(--radius); background: #d7d0c4; }
.split-section__visual img { height: 100%; object-fit: cover; }
.story { background: var(--color-bg); }
.story__visual img { object-position: 42% center; }
.timeline { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 2rem; list-style: none; }
.timeline li { position: relative; display: flex; min-width: 0; flex-direction: column; align-items: center; padding-inline: .25rem; text-align: center; }
.timeline li:not(:last-child)::after { position: absolute; top: 1rem; left: 72%; width: 56%; border-top: 1px solid var(--color-accent); content: ""; }
.timeline__mark { display: grid; width: 2rem; height: 2rem; place-items: center; margin-bottom: .35rem; border: 1px solid var(--color-accent); border-radius: 50%; color: var(--color-accent); font-family: var(--font-display); }
.timeline strong { color: var(--color-primary); font-family: var(--font-display); font-size: .95rem; font-weight: 400; }
.timeline small { color: var(--color-muted); font-size: .65rem; line-height: 1.3; }
.split-section__note { margin: 1.5rem 0 0 auto; max-width: 12rem; text-align: right; }
.events { background: var(--color-surface); }
.events__visual img { object-position: center; }
.event-types { display: grid; gap: 0; margin-top: 3rem; border-block: 1px solid var(--color-border); }
.event-type { display: grid; grid-template-columns: 2.25rem 1fr; gap: .9rem; align-items: start; padding: 1.25rem 0; }
.event-type + .event-type { border-top: 1px solid var(--color-border); }
.event-type__icon { width: 2.25rem; height: 2.25rem; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.6; color: var(--color-accent); }
.event-type h3 { margin-bottom: .25rem; font-size: 1.1rem; }
.event-type p { margin: 0; color: var(--color-muted); font-size: .82rem; line-height: 1.45; }
.darts { background: var(--color-bg); }
.darts__visual img { object-position: 72% center; }
.feature-line { margin-block: 1.25rem; color: var(--color-primary); font-size: .78rem; font-weight: 700; letter-spacing: .02em; }
.feature-line span { margin-inline: .2rem; color: var(--color-accent); }

.gallery { padding-block: var(--section-space); border-top: 1px solid var(--color-border); background: var(--color-surface); }
.gallery__intro h2 { margin-bottom: .8rem; }
.gallery__intro > p:not(.eyebrow) { margin-bottom: .5rem; }
.gallery__support { color: var(--color-muted); }
.gallery__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .4rem; margin-top: 2rem; }
.gallery__grid figure { min-height: 11rem; overflow: hidden; }
.gallery__grid img { height: 100%; object-fit: cover; }
.gallery__room { grid-column: 1 / -1; height: clamp(15rem, 60vw, 26rem); }
.gallery__room img { object-position: center 62%; }
.gallery__grid figure:not(.gallery__room) { height: clamp(11rem, 44vw, 20rem); }
.gallery__grid figure:nth-child(2) img { object-position: center 68%; }
.gallery__grid figure:nth-child(3) img { object-position: 63% center; }
.gallery__note { margin: 1.25rem 0 0; text-align: right; }

.contact { padding-block: clamp(4rem, 8vw, 6.5rem); border-top: 1px solid var(--color-border); background: var(--color-bg); }
.contact__inner { display: grid; gap: 2rem; }
.contact h2 { margin-bottom: .85rem; }
.contact__intro > p:last-child { margin-bottom: 0; }
.contact__details { padding-top: 1.5rem; border-top: 1px solid var(--color-border); font-style: normal; }
.contact__details p { margin-bottom: .8rem; }
.contact__details span { color: var(--color-muted); }
.contact__details a { overflow-wrap: anywhere; }
.contact__cta { justify-self: start; }
.site-footer { padding-block: 3rem; background: var(--color-primary); color: #f8f2e8; }
.site-footer__inner { display: grid; gap: 2rem; }
.brand--footer { justify-self: start; color: #fffaf2; }
.footer-nav { display: flex; flex-wrap: wrap; gap: .3rem 1.25rem; list-style: none; }
.footer-nav a { display: inline-flex; min-height: 44px; align-items: center; text-decoration: none; }
.footer-legal { display: flex; flex-wrap: wrap; gap: .55rem 1.1rem; color: #c9d4cd; font-size: .78rem; }

@media (max-width: 819px) {
  .no-js .site-header__inner { align-items: flex-start; flex-wrap: wrap; padding-block: .8rem; }
  .no-js .site-nav { display: flex; width: 100%; flex-wrap: wrap; }
  .no-js .site-nav__links { width: 100%; }
  .js .menu-toggle { display: inline-flex; min-width: 48px; min-height: 48px; align-items: center; justify-content: center; gap: .55rem; border: 0; background: transparent; color: var(--color-primary); cursor: pointer; }
  .menu-toggle__label { font-size: .82rem; font-weight: 700; }
  .menu-toggle__icon { display: flex; width: 1.25rem; flex-direction: column; gap: .35rem; }
  .menu-toggle__icon span { display: block; border-top: 2px solid currentColor; }
  .js .site-nav { position: fixed; z-index: 102; top: 0; right: 0; bottom: 0; display: flex; width: min(85vw, 360px); max-width: 100%; flex-direction: column; align-items: stretch; gap: 1.5rem; padding: 1.25rem 1.5rem 2rem; overflow-y: auto; overscroll-behavior: contain; transform: translateX(105%); visibility: hidden; background: var(--color-surface); box-shadow: -16px 0 40px rgba(17, 30, 25, .16); transition: transform 260ms ease, visibility 0s linear 260ms; }
  .js .site-nav.is-open { transform: translateX(0); visibility: visible; transition-delay: 0s; }
  .js .site-nav__top { display: flex; min-height: 48px; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--color-border); }
  .site-nav__title { color: var(--color-accent); font-size: .75rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
  .js .menu-close { display: grid; width: 48px; height: 48px; place-items: center; border: 0; background: transparent; color: var(--color-primary); cursor: pointer; }
  .menu-close span { font-size: 2rem; font-weight: 300; line-height: 1; }
  .js .site-nav__links { display: grid; align-content: start; gap: 0; }
  .js .site-nav__links a { min-height: 52px; border-bottom: 1px solid var(--color-border); font-family: var(--font-display); font-size: 1.4rem; }
  .js .site-nav__cta { margin-top: auto; }
  .js .nav-backdrop { position: fixed; z-index: 101; inset: 0; display: block; padding: 0; border: 0; opacity: 0; visibility: hidden; background: rgba(10, 20, 17, .55); cursor: pointer; transition: opacity 260ms ease, visibility 0s linear 260ms; }
  .js .nav-backdrop.is-visible { opacity: 1; visibility: visible; transition-delay: 0s; }
}
@media (max-width: 359px) {
  .quick-facts__grid { grid-template-columns: 1fr; }
  .fact, .fact:nth-child(odd), .fact:nth-child(n+3) { padding-inline: 0; border: 0; }
  .fact + .fact { border-top: 1px solid var(--color-border); }
  .gallery__grid { grid-template-columns: 1fr; }
  .gallery__room { grid-column: auto; }
}
@media (min-width: 560px) {
  .button-row .button { flex: 0 0 auto; }
  .fact { grid-template-columns: 2.5rem 1fr; padding: 1.65rem 1.2rem; }
  .fact svg { width: 2.5rem; }
  .fact h2 { font-size: 1.15rem; }
  .fact p { font-size: .78rem; }
  .launch-note__inner { display: grid; grid-template-columns: minmax(10rem, .7fr) 1fr; column-gap: 2rem; align-items: center; }
  .launch-note .eyebrow { grid-column: 1; margin-bottom: .35rem; }
  .launch-note h2 { grid-column: 1; margin-bottom: 0; }
  .launch-note p:last-child { grid-column: 2; grid-row: 1 / span 2; }
  .event-types { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .event-type { padding-inline: 1.25rem; }
  .event-type:nth-child(even) { border-left: 1px solid var(--color-border); }
  .event-type:nth-child(2) { border-top: 0; }
  .contact__cta { min-width: 12rem; }
}
@media (min-width: 820px) {
  .site-header { position: sticky; top: 0; }
  .site-header__inner { min-height: 80px; }
  .brand__name { font-size: 1.8rem; }
  .site-nav { flex: 1; justify-content: flex-end; }
  .hero { min-height: 590px; display: grid; grid-template-columns: minmax(0, 49%) minmax(0, 51%); }
  .hero__content { display: grid; width: 100%; max-width: none; margin: 0; padding-left: max(var(--gutter), calc((100vw - var(--container-max)) / 2)); padding-right: clamp(1.5rem, 4vw, 4rem); align-items: center; }
  .hero__visual { height: 100%; min-height: 590px; }
  .hero__visual::before { position: absolute; z-index: 1; inset: 0 auto 0 0; width: 28%; background: linear-gradient(90deg, var(--color-surface), transparent); content: ""; pointer-events: none; }
  .hero__visual img { object-position: 66% center; }
  .hero__visual .hand-note { z-index: 2; right: 2rem; top: 2.5rem; bottom: auto; background: rgba(250, 248, 243, .76); }
  .quick-facts__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .fact, .fact:nth-child(odd), .fact:nth-child(n+3) { padding: 1.65rem 1.25rem; border-top: 0; border-right: 0; }
  .fact + .fact { border-left: 1px solid var(--color-border); }
  .split-section__inner { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(3rem, 7vw, 7rem); align-items: center; }
  .split-section__visual { height: clamp(26rem, 39vw, 34rem); aspect-ratio: auto; }
  .story .split-section__visual, .darts .split-section__visual { grid-column: 1; grid-row: 1; }
  .story .split-section__copy, .darts .split-section__copy { grid-column: 2; grid-row: 1; }
  .events .split-section__copy { grid-column: 1; }
  .events .split-section__visual { grid-column: 2; }
  .event-types { grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: clamp(3rem, 6vw, 5rem); }
  .event-type, .event-type:nth-child(2) { border-top: 0; }
  .event-type + .event-type { border-left: 1px solid var(--color-border); }
  .gallery__layout { display: grid; grid-template-columns: minmax(9rem, .75fr) minmax(0, 2.7fr) minmax(6.5rem, .55fr); gap: clamp(.75rem, 1.5vw, 1.5rem); align-items: stretch; }
  .gallery__intro { align-self: center; }
  .gallery__intro h2 { margin-bottom: 1rem; font-size: clamp(2rem, 3.5vw, 3.35rem); }
  .gallery__intro p { font-size: .85rem; line-height: 1.5; }
  .gallery__grid { grid-template-columns: 1.55fr .8fr .9fr; height: clamp(22rem, 31vw, 29rem); margin-top: 0; }
  .gallery__grid figure, .gallery__grid figure:not(.gallery__room), .gallery__room { grid-column: auto; height: 100%; min-height: 0; }
  .gallery__note { align-self: end; margin: 0 0 1.5rem; text-align: left; }
  .contact__inner { grid-template-columns: minmax(0, 1.35fr) minmax(17rem, .8fr) auto; align-items: center; }
  .contact__details { padding: 0 0 0 2rem; border-top: 0; border-left: 1px solid var(--color-border); }
  .contact__cta { justify-self: end; }
  .site-footer__inner { grid-template-columns: auto 1fr auto; align-items: center; }
  .footer-nav { justify-content: center; }
  .footer-legal { max-width: 15rem; justify-content: flex-end; }
}
@media (min-width: 1180px) {
  .site-nav { gap: 2.4rem; }
  .site-nav__links { gap: 2rem; }
  .hero, .hero__visual { min-height: 650px; }
  .hero__body { font-size: 1.1rem; }
}
