@font-face {
  font-family: "XI Sans";
  src: url("fonts/260904_XISans-Light.otf") format("opentype");
  font-weight: 300;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00B6, U+00B8-2021, U+2023-218F, U+2200-318C, U+318E-10FFFF;
}
@font-face {
  font-family: "XI Sans";
  src: url("fonts/260904_XISans-Regular.otf") format("opentype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00B6, U+00B8-2021, U+2023-218F, U+2200-318C, U+318E-10FFFF;
}
@font-face {
  font-family: "XI Sans";
  src: url("fonts/260904_XISans-Medium.otf") format("opentype");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00B6, U+00B8-2021, U+2023-218F, U+2200-318C, U+318E-10FFFF;
}
@font-face {
  font-family: "XI Sans";
  src: url("fonts/260904_XISans-Bold.otf") format("opentype");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00B6, U+00B8-2021, U+2023-218F, U+2200-318C, U+318E-10FFFF;
}
@font-face {
  font-family: "XI Sans";
  src: url("fonts/260904_XISans-ExtraBold.otf") format("opentype");
  font-weight: 800;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00B6, U+00B8-2021, U+2023-218F, U+2200-318C, U+318E-10FFFF;
}

:root {
  --ink: #061820;
  --paper: #fff;
  --muted: rgb(255 255 255 / 55%);
  --quiet: rgb(255 255 255 / 45%);
  --soft: rgb(255 255 255 / 70%);
  --faint: rgb(255 255 255 / 35%);
  --rule: rgb(255 255 255 / 20%);
  --fill: rgb(255 255 255 / 6%);
  --edge: rgb(255 255 255 / 50%);

  --font: "XI Sans", "Apple SD Gothic Neo", sans-serif;
  --weight: 700;
  --weight-title: 800;

  --text-xs: 0.75rem;
  --text-sm: 0.875rem;
  --text-md: 1rem;
  --text-lg: 1.125rem;
  --text-xl: 1.25rem;
  --text-2xl: 1.375rem;
  --text-3xl: 1.5rem;
  --text-4xl: 1.75rem;
  --text-5xl: 2rem;
  --text-6xl: 2.25rem;
  --text-display: 4.75rem;

  /* display > page > feature > card > section > item > lede / body / ui / kicker */
  --type-display: 5.5rem;
  --type-page: 2.5rem;
  --type-feature: var(--text-5xl);
  --type-card: var(--text-4xl);
  --type-section: var(--text-xl);
  --type-item: var(--text-lg);
  --type-lede: var(--text-2xl);
  --type-body: var(--text-md);
  --type-ui: var(--text-md);
  --type-kicker: var(--text-sm);

  --leading-display: 1.15;
  --leading-title: 1.25;
  --leading-snug: 1.4;
  --leading-body: 1.6;

  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.25rem;
  --space-6: 1.5rem;
  --space-7: 1.75rem;
  --space-8: 2rem;
  --space-10: 2.5rem;
  --space-12: 3rem;
  --space-16: 4rem;

  --page: 70rem;
  --gutter: clamp(1.5rem, 6.94vw, 6.25rem);
  --column: min(var(--page), calc(100% - 2 * var(--gutter)));
  --column-inset: max(var(--gutter), calc((100% - var(--page)) / 2));
  --header-h: 4.5rem;
  --local-h: 3.5rem;
}

* { box-sizing: border-box; }

html, body {
  margin: 0;
  min-height: 100%;
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
}

html { background: var(--ink); }

body {
  isolation: isolate;
  min-height: 100svh;
  display: flex;
  flex-direction: column;
  min-width: 0;
  background: transparent;
  color: var(--paper);
  font-family: var(--font);
  font-size: var(--type-body);
  font-weight: var(--weight);
  line-height: var(--leading-body);
  font-variant-ligatures: none;
  -webkit-font-smoothing: antialiased;
}

body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  background: url("images/invitation-background.png") center 40% / cover no-repeat;
  pointer-events: none;
}

p, h1, h2, h3, h4, dl, dd { margin: 0; }

a {
  color: inherit;
  text-decoration: none;
}

button, input, textarea { font: inherit; }

button { cursor: pointer; }

button:disabled {
  cursor: default;
  opacity: 0.5;
}

[hidden] { display: none !important; }

#main {
  width: 100%;
  min-width: 0;
  max-width: 100%;
  overflow-x: hidden;
}

.skip {
  position: fixed;
  left: var(--space-5);
  top: -5rem;
  z-index: 100;
  padding: var(--space-3);
  background: var(--paper);
  color: var(--ink);
}

.skip:focus { top: var(--space-4); }

/* Hero */

.hero {
  flex: 1;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 15rem;
  grid-template-areas:
    "heading ."
    "lockup nav1"
    "details navrest";
  align-items: start;
  align-content: start;
  column-gap: 3.75rem;
  min-height: 100svh;
  padding: 3.125rem var(--gutter) var(--space-16);
  background: transparent;
}

.hero-heading { grid-area: heading; }

.brand {
  display: block;
  width: auto;
  height: 2.625rem;
  margin-bottom: 3.75rem;
}

.hero-lockup {
  grid-area: lockup;
  display: flex;
  align-items: center;
  align-self: stretch;
  border-bottom: 1px solid var(--rule);
  font-size: var(--type-card);
  line-height: var(--leading-snug);
}

.hero-schedule,
.hero-actions,
.hero-index { display: none; }

.eyebrow {
  font-size: var(--type-lede);
  line-height: var(--leading-body);
}

h1 {
  margin-top: var(--space-5);
  font-size: var(--type-display);
  line-height: var(--leading-display);
  font-weight: var(--weight-title);
  white-space: nowrap;
}

.title-rule { display: none; }

.hero-details {
  grid-area: details;
  margin-top: var(--space-10);
}

.intro {
  font-size: var(--type-lede);
  line-height: var(--leading-body);
  word-break: keep-all;
}

.meta {
  margin-top: var(--space-10);
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: 0;
}

.meta dt {
  font-size: var(--type-kicker);
  line-height: var(--leading-snug);
  color: var(--muted);
}

.meta dd {
  font-size: var(--type-lede);
  line-height: var(--leading-body);
}

.hero-nav { display: contents; }

.hero-nav > .hero-menu:first-child {
  grid-area: nav1;
  display: flex;
  align-self: stretch;
}

.hero-nav > .hero-menu:first-child > a { flex: 1; }

.hero-nav-rest {
  grid-area: navrest;
  display: flex;
  flex-direction: column;
}

.hero-register {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  margin-top: var(--space-8);
  padding: var(--space-4) var(--space-5);
  border: 1px solid var(--edge);
  border-radius: 0.375rem;
  font-size: var(--type-item);
  line-height: var(--leading-display);
}

.hero-menu > a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  padding-block: var(--space-5);
  border-bottom: 1px solid var(--rule);
  font-size: var(--type-item);
  line-height: var(--leading-display);
}

.nav-index {
  display: inline-block;
  min-width: var(--space-6);
  margin-right: 0.375rem;
}

.nav-arrow {
  width: var(--space-4);
  height: var(--space-4);
  flex: 0 0 auto;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.25;
  stroke-linecap: square;
  stroke-linejoin: miter;
}

.menu-toggle,
.site-menu { display: none; }

/* Inner chrome */

#inner-pages {
  min-height: 100svh;
  background: transparent;
  color: var(--paper);
  word-break: keep-all;
}

.nav-shell {
  position: sticky;
  top: 0;
  z-index: 20;
  background: transparent;
}

.inner-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-8);
  height: var(--header-h);
  padding-inline: var(--column-inset);
  border-bottom: 1px solid var(--rule);
}

.inner-brand {
  display: flex;
  align-items: center;
  gap: var(--space-5);
  font-size: var(--type-ui);
  line-height: var(--leading-display);
  flex: 0 0 auto;
}

.inner-brand img {
  display: block;
  width: auto;
  height: 2.25rem;
}

.primary-nav {
  display: flex;
  align-items: stretch;
  height: 100%;
  gap: var(--space-2);
}

.nav-item {
  position: relative;
  flex: 0 0 auto;
}

.nav-item > a {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-3);
  height: 100%;
  padding-inline: var(--space-5);
  font-size: var(--type-item);
  line-height: var(--leading-display);
  border-bottom: 3px solid transparent;
}

.nav-item small {
  font-size: var(--type-kicker);
  color: var(--muted);
}

.nav-item.active > a {
  border-bottom-color: var(--paper);
}

.local-nav {
  display: flex;
  justify-content: flex-start;
  gap: var(--space-10);
  padding-inline: var(--column-inset);
  background: transparent;
  border-bottom: 1px solid var(--rule);
}

.local-nav a {
  padding: var(--space-4) 0 var(--space-3);
  color: var(--muted);
  font-size: var(--type-ui);
  line-height: var(--leading-snug);
  border-bottom: 2px solid transparent;
  white-space: nowrap;
}

.local-nav a[aria-current="page"] {
  color: var(--paper);
  border-bottom-color: var(--paper);
}

/* Page layout */

.fold-toggle { display: none; }

.fold-group,
.fold-pages,
.page-body { display: contents; }

.page-container {
  width: var(--column);
  max-width: var(--page);
  min-height: calc(100svh - var(--header-h) - var(--local-h));
  margin-inline: auto;
  padding: var(--space-12) 0 var(--space-16);
}

.page-heading { margin-bottom: var(--space-8); }

.page-kicker {
  margin-bottom: var(--space-3);
  font-size: var(--type-kicker);
  line-height: var(--leading-snug);
  color: var(--muted);
}

.page-heading h2 {
  font-size: var(--type-page);
  line-height: var(--leading-title);
  font-weight: var(--weight-title);
}

.page-heading h2:focus { outline: none; }

.page-heading > p:last-child:not(.page-kicker) {
  margin-top: 0.25rem;
  font-size: var(--type-lede);
  line-height: var(--leading-body);
  color: var(--muted);
}

.fine {
  margin-top: var(--space-6);
  font-size: var(--type-kicker);
  color: var(--quiet);
}

.section-label {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: var(--space-10) 0 var(--space-5);
}

.section-label h3 {
  font-size: var(--type-section);
  line-height: var(--leading-title);
}

/* Schedule */

.schedule-group {
  display: grid;
  grid-template-columns: 12rem minmax(0, 1fr);
  padding: var(--space-6) 0;
  border-top: 1px solid var(--rule);
}

.schedule-group-heading h3 {
  font-size: var(--type-section);
  line-height: var(--leading-title);
}

.schedule-group-heading > span {
  display: block;
  margin-top: var(--space-1);
  font-size: var(--type-body);
  color: var(--muted);
}

.program-list {
  padding: 0;
  margin: 0;
  list-style: none;
}

.program-list li {
  display: grid;
  grid-template-columns: 9rem minmax(0, 1fr);
  gap: var(--space-5);
  align-items: start;
  padding: var(--space-2) 0;
}

.program-list li:first-child { padding-top: 0; }
.program-list li:last-child { padding-bottom: 0; }

.schedule-time {
  font-size: var(--type-item);
  color: var(--soft);
  white-space: nowrap;
}

.program-list h4 {
  font-size: var(--type-item);
  line-height: var(--leading-snug);
}

.program-list p {
  font-size: var(--type-body);
  color: var(--muted);
}

.program-list .schedule-speaker {
  color: var(--quiet);
}

.program-list .schedule-host {
  color: var(--quiet);
}

/* Cards */

.brand-feature,
.product-grid article,
.typeform-shell,
.floor-plan,
.wifi-box,
.gift-card {
  background: var(--fill);
  border: 1px solid var(--rule);
  color: var(--paper);
}

.brand-feature {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  min-height: 0;
  padding: var(--space-8) var(--space-10);
}

.brand-feature h3 {
  font-size: var(--type-feature);
  line-height: var(--leading-title);
  font-weight: var(--weight-title);
}

.product-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-5);
}

.product-grid article {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  min-height: 0;
  padding: var(--space-8);
}

.product-grid h3 {
  margin: 0 0 var(--space-1);
  font-size: var(--type-feature);
  line-height: var(--leading-title);
  font-weight: var(--weight-title);
}

.product-grid p {
  color: var(--soft);
  font-size: var(--type-body);
}

.session-host {
  margin-top: var(--space-3);
  font-size: var(--type-kicker);
  line-height: var(--leading-snug);
  color: var(--muted);
}

.product-grid .session-host {
  color: var(--muted);
  font-size: var(--type-kicker);
}

/* Forms */

.typeform-shell {
  max-width: 48rem;
  margin-inline: auto;
  padding: 0;
  background: transparent;
  border: 0;
}

.form-brand { margin-bottom: 3.125rem; }

.form-brand > p {
  margin-bottom: 0.875rem;
  font-size: var(--type-kicker);
  color: var(--muted);
}

.form-brand h3 {
  font-size: var(--type-feature);
  line-height: var(--leading-title);
  font-weight: var(--weight-title);
}

.form-brand em {
  color: var(--soft);
  font-style: normal;
}

.question-label {
  display: block;
  margin-bottom: var(--space-5);
  font-size: var(--type-section);
  line-height: var(--leading-body);
}

.question-label > span {
  display: block;
  margin-bottom: var(--space-2);
  font-size: var(--type-kicker);
  color: var(--muted);
}

.typeform-shell textarea,
.typeform-shell input {
  display: block;
  width: 100%;
  margin-top: var(--space-2);
  padding: var(--space-3) 0;
  border: 0;
  border-bottom: 1px solid var(--rule);
  background: transparent;
  color: var(--paper);
  font-size: var(--type-section);
  resize: vertical;
}

.typeform-shell input::placeholder,
.typeform-shell textarea::placeholder {
  color: var(--faint);
}

.typeform-shell textarea {
  min-height: 6.25rem;
  margin: 0 0 var(--space-5);
}

.reporter-fields { margin: 0 0 var(--space-6); }

.reporter-fields summary {
  display: list-item;
  min-height: 2.75rem;
  padding: 0.625rem 0;
  font-size: var(--type-ui);
  color: var(--soft);
  cursor: pointer;
}

.form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-5);
  margin-top: var(--space-4);
}

.reporter-fields label {
  font-size: var(--type-kicker);
  color: var(--muted);
}

.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-3);
  min-height: var(--space-12);
  padding: var(--space-3) var(--space-6);
  border: 1px solid var(--edge);
  background: transparent;
  color: var(--paper);
  font-size: var(--type-ui);
}

.typeform-shell .button {
  width: 100%;
  font-size: var(--type-item);
}

.tf-embed {
  width: 100%;
  height: 40rem;
  overflow: hidden;
}

.tf-embed iframe {
  display: block;
  width: 100%;
  border: 0;
}

.button.light {
  background: var(--paper);
  color: var(--ink);
  border-color: var(--paper);
}

.button.outline {
  background: transparent;
  color: var(--paper);
}

.form-status {
  margin: var(--space-5) 0 0;
  font-size: var(--type-kicker);
  color: var(--muted);
}

.form-foot {
  margin-top: var(--space-8);
  padding-top: var(--space-5);
  border-top: 1px solid var(--rule);
  font-size: var(--type-kicker);
  color: var(--quiet);
}

.survey-message {
  margin-bottom: var(--space-8);
  font-size: var(--type-lede);
  line-height: var(--leading-body);
}

.survey-message h3 {
  margin: 0 0 var(--space-5);
  font-size: var(--type-section);
  line-height: var(--leading-title);
}

.survey-message p { color: var(--soft); }

.survey-time {
  margin-top: var(--space-5);
  font-size: var(--type-body);
  color: var(--quiet);
}

/* Directions */

.venue-block {
  padding-bottom: var(--space-7);
  border-bottom: 1px solid var(--rule);
}

.venue-block h3 {
  font-size: var(--type-feature);
  line-height: var(--leading-title);
  font-weight: var(--weight-title);
}

.venue-block .venue-room {
  margin: var(--space-2) 0 var(--space-3);
  font-size: var(--type-lede);
}

.venue-block p {
  font-size: var(--type-body);
  color: var(--soft);
}

.venue-map {
  margin-top: var(--space-7);
  border: 1px solid var(--rule);
  overflow: hidden;
}

.venue-map iframe {
  display: block;
  width: 100%;
  height: 20rem;
  border: 0;
  filter: grayscale(1) invert(1) contrast(0.9);
}

.directions-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 3.5rem;
  margin-top: var(--space-5);
}

.directions-grid article {
  padding: var(--space-7) 0;
  border-bottom: 1px solid var(--rule);
}

.directions-grid h3 {
  margin-bottom: var(--space-5);
  font-size: var(--type-section);
  line-height: var(--leading-title);
}

.directions-grid p,
.directions-grid dd { color: var(--muted); }

#inner-pages dt,
.directions-grid dt { font-size: var(--type-kicker); }

#inner-pages dd,
.directions-grid dd { margin: 0.375rem 0 var(--space-5); }

.directions-grid dd:last-child { margin-bottom: 0; }

.text-link {
  display: inline-block;
  padding: 0 0 0.125rem;
  border-bottom: 1px solid var(--edge);
  font-size: var(--type-ui);
  color: var(--paper);
}

/* Exhibition */

.exhibition-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 16rem;
  gap: var(--space-8);
  align-items: start;
}

.floor-plan {
  margin: 0;
  overflow: hidden;
  background: transparent;
}

.floor-plan img {
  display: block;
  width: 100%;
  height: auto;
  mix-blend-mode: screen;
}

.wifi-box { padding: var(--space-7); }

.wifi-box h3 {
  margin-bottom: var(--space-8);
  font-size: var(--type-card);
  line-height: var(--leading-title);
  font-weight: var(--weight-title);
}

.wifi-box dl > div + div { margin-top: var(--space-5); }

.wifi-box dt {
  color: var(--muted);
  font-size: var(--type-kicker);
}

.wifi-box dd {
  margin: 0.375rem 0 0;
  font-size: var(--type-item);
}

/* Press & gifts */

.embargo-line {
  margin-bottom: var(--space-8);
  font-size: var(--type-lede);
  line-height: var(--leading-body);
}

.press-files {
  margin: 0;
  padding: 0;
  list-style: none;
}

.press-files li {
  padding: var(--space-5) 0;
  border-top: 1px solid var(--rule);
}

.press-files span {
  display: block;
  font-size: var(--type-section);
}

.press-files p {
  margin-top: var(--space-2);
  color: var(--muted);
  font-size: var(--type-body);
}

.gift-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-7);
}

.gift-card {
  display: flex;
  flex-direction: column;
  padding: var(--space-8);
}

.gift-photo {
  position: relative;
  width: 100%;
  aspect-ratio: 1024 / 682;
  margin: var(--space-5) 0 var(--space-8);
  overflow: hidden;
  background: var(--paper);
  border: 1px solid var(--rule);
}

.gift-photo-dark {
  background: transparent;
  border: 0;
}

.gift-photo-dark img {
  transform: scale(1.04);
}

.gift-photo img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.gift-card > span {
  font-size: var(--type-kicker);
  color: var(--muted);
}

.gift-card h3 {
  margin-top: var(--space-3);
  font-size: var(--type-card);
  line-height: var(--leading-title);
  font-weight: var(--weight-title);
}

.gift-card p {
  margin-top: var(--space-3);
  font-size: var(--type-body);
  line-height: var(--leading-body);
  color: var(--muted);
}

.site-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: var(--column);
  max-width: var(--page);
  margin-inline: auto;
  padding: var(--space-4) 0;
  border-top: 1px solid var(--rule);
  font-size: var(--type-kicker);
  color: var(--quiet);
}

.site-footer a { font-size: var(--type-ui); }

.scroll-top { display: none; }

/* Dialog */

#qa-dialog {
  width: 25.5rem;
  max-width: calc(100vw - var(--space-8));
  max-height: 90svh;
  padding: var(--space-10) var(--space-8) var(--space-6);
  border: 1px solid var(--rule);
  background: var(--ink);
  color: var(--paper);
}

#qa-dialog::backdrop {
  background: rgb(0 16 32 / 60%);
}

.popup-close {
  position: absolute;
  right: var(--space-3);
  top: 0.625rem;
  width: 2.625rem;
  height: 2.625rem;
  border: 0;
  background: transparent;
  color: var(--paper);
  font-size: var(--text-4xl);
}

.popup-brand {
  margin-bottom: var(--space-10);
  font-size: var(--type-ui);
  color: var(--muted);
}

#qa-dialog .eyebrow {
  margin-bottom: var(--space-3);
  color: var(--muted);
}

#qa-dialog h2 {
  font-size: var(--type-card);
  line-height: var(--leading-title);
  font-weight: var(--weight-title);
}

#qa-dialog > p:not(.eyebrow) {
  margin-top: var(--space-5);
  font-size: var(--type-lede);
  line-height: var(--leading-body);
  color: var(--soft);
}

#qa-dialog .button {
  display: flex;
  width: 100%;
  margin-top: var(--space-8);
}

#qa-popup-later {
  width: 100%;
  min-height: 2.75rem;
  margin-top: var(--space-3);
  padding: 0.625rem;
  border: 0;
  background: transparent;
  color: var(--muted);
  font-size: var(--type-ui);
}

/* Breakpoints — rem, 16px root */

@media (max-width: 68.75rem) {
  h1 { font-size: clamp(2.5rem, 6vw, var(--type-display)); }
  .hero {
    grid-template-columns: minmax(0, 1fr) 13.75rem;
    grid-template-areas:
      "heading ."
      "lockup nav1"
      "details navrest";
    column-gap: var(--space-10);
  }
}

@media (max-width: 50rem) {
  :root {
    --type-display: var(--text-display);
    --type-page: var(--text-6xl);
    --type-feature: var(--text-4xl);
    --type-card: var(--text-3xl);
    --type-section: var(--text-lg);
    --type-item: var(--text-md);
    --type-lede: var(--text-xl);
    --type-body: var(--text-sm);
    --type-ui: var(--text-sm);
    --type-kicker: var(--text-xs);
  }

  .hero {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    width: 100%;
    max-width: none;
    min-width: 0;
    min-height: 100svh;
    margin-inline: 0;
    padding: 3.375rem var(--space-6) var(--space-8);
    overflow-x: hidden;
  }
  .hero-heading,
  .hero-lockup,
  .hero-details,
  .hero-schedule,
  .hero-actions,
  .hero-index {
    width: 100%;
    max-width: 100%;
    min-width: 0;
  }
  .hero-heading,
  .hero-lockup { text-align: center; }
  .hero-heading { padding-inline: 0; }
  .brand { display: none; }
  .eyebrow {
    font-size: 1.125rem;
    letter-spacing: 0.02em;
  }
  h1 {
    margin-top: var(--space-5);
    margin-bottom: 0;
    max-width: 100%;
    font-size: clamp(2.75rem, 15vw, 3.75rem);
    line-height: 0.95;
    letter-spacing: 0.02em;
    white-space: normal;
  }
  .title-line { display: block; }
  .hero-lockup {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-5);
    margin-top: var(--space-3);
    margin-bottom: 0;
    border-bottom: 0;
    font-size: 1.625rem;
    letter-spacing: 0.03em;
  }
  .hero-lockup::before,
  .hero-lockup::after {
    content: "";
    flex: 1 1 0;
    min-width: 0;
    border-top: 1px solid var(--paper);
  }
  .title-rule { display: none; }
  .hero-details {
    display: flex;
    flex-direction: column;
    gap: 0;
    margin-top: 0;
    padding-top: 0;
  }
  .intro {
    margin-top: var(--space-12);
    padding: 0;
    border-bottom: 0;
    font-size: var(--text-2xl);
    line-height: 1.4;
    text-align: center;
  }
  .meta {
    margin-top: var(--space-7);
    display: flex;
    flex-direction: column;
    gap: 0;
    text-align: center;
    font-size: var(--type-body);
    line-height: var(--leading-body);
  }
  .meta > div {
    display: flex;
    justify-content: center;
    align-items: baseline;
    padding-inline: 0;
  }
  .meta dt {
    flex: 0 0 auto;
    font-size: inherit;
    color: var(--paper);
  }
  .meta dt::after {
    content: "|";
    margin: 0 var(--space-2);
    color: rgb(255 255 255 / 50%);
  }
  .meta dd { font-size: inherit; }
  .meta-break { display: none; }
  .hero-schedule {
    display: block;
    margin-top: var(--space-12);
    padding: var(--space-3) 0.625rem 0;
    border-top: 1px solid var(--paper);
    text-align: left;
    line-height: 1.55;
    word-break: keep-all;
  }
  .hero-schedule-track {
    display: flex;
    align-items: stretch;
    justify-content: space-between;
    width: 100%;
    max-width: 20.875rem;
    margin-inline: auto;
  }
  .hero-schedule dl {
    flex: 0 0 auto;
    min-width: 0;
    padding-inline: 0;
  }
  .hero-schedule-rule {
    flex: 0 0 auto;
    width: 0;
    border-left: 1px solid rgb(255 255 255 / 50%);
  }
  .hero-schedule dt { font-size: 0.875rem; }
  .hero-schedule dd {
    font-size: var(--type-body);
    white-space: nowrap;
  }
  .hero-nav { display: none; }
  .hero-actions {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    margin-top: var(--space-16);
    padding-top: 0;
  }
  .hero-action {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-1);
    padding: var(--space-4) var(--space-5);
    border: 1px solid rgb(255 255 255 / 25%);
    border-radius: 0.375rem;
    background: rgb(255 255 255 / 10%);
    font-size: 1.125rem;
    line-height: var(--leading-display);
    text-align: center;
  }
  .hero-index {
    display: none;
    flex-direction: column;
    margin-top: var(--space-8);
  }
  .fold-group,
  .fold-pages,
  .page-body { display: block; }

  .fold-toggle {
    display: flex;
    align-items: center;
    width: 100%;
    min-height: 3rem;
    padding: var(--space-5) 0;
    border: 0;
    border-bottom: 1px solid var(--rule);
    background: transparent;
    color: inherit;
    font-size: var(--type-lede);
    line-height: var(--leading-display);
    text-align: left;
    cursor: pointer;
  }

  .fold-toggle::after {
    content: "";
    width: var(--space-4);
    height: var(--space-4);
    margin-left: auto;
    background: currentColor;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='black' stroke-width='1.25' d='M3 6 L8 11 L13 6'/%3E%3C/svg%3E") center / contain no-repeat;
  }

  .fold-group.is-open > .fold-toggle::after,
  .page-panel.is-open > .fold-toggle::after {
    transform: rotate(180deg);
  }

  .fold-toggle-sub {
    min-height: 0;
    padding: var(--space-4) 0 var(--space-4) calc(var(--space-6) + 0.375rem);
    color: var(--soft);
    font-size: var(--type-item);
  }

  .fold-pages { display: none; }

  .fold-group.is-open > .fold-pages { display: block; }

  .page-panel > .page-body { display: none; }

  .page-panel.is-open > .page-body,
  .fold-group.is-open .page-panel:not(:has(> .fold-toggle)) > .page-body {
    display: block;
  }

  .page-body { padding: var(--space-6) 0 var(--space-8); }

  .page-panel:has(> .fold-toggle) .page-heading .page-kicker,
  .page-panel:has(> .fold-toggle) .page-heading h2 { display: none; }

  .page-panel:has(> .fold-toggle) .page-heading { margin-bottom: var(--space-6); }

  .page-panel:has(> .fold-toggle) .page-heading:not(:has(> p:not(.page-kicker))) {
    display: none;
  }

  .fold-group,
  .page-panel { scroll-margin-top: var(--space-4); }

  .hero.is-menu .hero-details,
  .hero.is-menu .hero-actions { display: none; }
  .hero.is-menu .hero-index { display: flex; flex: 1; }
  .hero-index-group {
    border-bottom: 1px solid var(--rule);
  }
  .hero-index-group summary {
    display: flex;
    align-items: center;
    min-height: 3rem;
    padding-block: var(--space-3);
    font-size: var(--type-lede);
    line-height: var(--leading-display);
    list-style: none;
    cursor: pointer;
  }
  .hero-index-group summary::-webkit-details-marker { display: none; }
  .hero-index-group summary::after {
    content: "";
    width: var(--space-4);
    height: var(--space-4);
    margin-left: auto;
    background: currentColor;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='black' stroke-width='1.25' d='M3 6 L8 11 L13 6'/%3E%3C/svg%3E") center / contain no-repeat;
  }
  .hero-index-group[open] summary::after {
    transform: rotate(180deg);
  }
  .hero-index-group a {
    display: block;
    padding: var(--space-3) 0 var(--space-3) calc(var(--space-6) + 0.375rem);
    border-top: 1px solid var(--rule);
    color: var(--soft);
    font-size: var(--type-item);
  }
  .hero-index .hero-action { margin-top: auto; }

  body.is-inner {
    overflow: visible;
    height: auto;
  }

  body.is-menu-open { overflow: hidden; }

  #inner-pages {
    --header-h: 3.5rem;
    position: static;
    overflow: visible;
    min-height: 0;
    background: transparent;
  }

  .nav-shell,
  .site-menu { display: none; }

  body.is-menu-open #inner-pages { overflow: hidden; }

  body.is-menu-open .nav-shell { z-index: 50; }

  body.is-menu-open .inner-header {
    background: transparent;
    border-bottom-color: transparent;
  }

  .nav-shell {
    --header-h: 3.5rem;
    background: transparent;
  }

  .inner-header {
    height: var(--header-h);
    gap: var(--space-4);
    padding-inline: var(--space-6);
    border-bottom-color: var(--rule);
    background: transparent;
  }

  .inner-brand img { display: none; }

  .inner-brand span { display: block; }

  body.is-beta.is-inner .nav-shell {
    display: block;
    position: sticky;
    top: 0;
    z-index: 20;
  }

  body.is-beta.is-inner .inner-header {
    height: auto;
    padding: var(--space-6);
  }

  body.is-beta.is-inner .inner-brand img { display: block; }

  body.is-beta.is-inner #main {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-height: 100svh;
  }

  body.is-beta.is-inner .page-container {
    flex: 1;
    padding: var(--space-6);
    border-top: 0;
  }

  body.is-beta.is-inner .page-kicker {
    margin-bottom: var(--space-2);
  }

  body.is-beta.is-inner .site-footer {
    padding-inline: var(--space-6);
  }

  .primary-nav,
  .local-nav { display: none; }

  .menu-toggle {
    display: block;
    position: relative;
    width: 2.75rem;
    height: 2.75rem;
    margin-right: -0.75rem;
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
  }

  .menu-toggle span {
    position: absolute;
    left: 0.75rem;
    right: 0.75rem;
    height: 0.125rem;
    background: currentColor;
  }

  .menu-toggle span:first-child { top: 1.125rem; }
  .menu-toggle span:last-child { top: 1.625rem; }

  .menu-toggle[aria-expanded="true"] span:first-child {
    top: 1.375rem;
    transform: rotate(45deg);
  }

  .menu-toggle[aria-expanded="true"] span:last-child {
    top: 1.375rem;
    transform: rotate(-45deg);
  }

  .page-container {
    width: 100%;
    max-width: none;
    min-height: 0;
    padding: var(--space-4) var(--space-6) var(--space-16);
    border-top: 1px solid var(--rule);
  }

  .page-heading { margin-bottom: var(--space-8); }

  .page-heading h2 { font-size: var(--type-feature); }

  .page-heading > p:last-child:not(.page-kicker) {
    font-size: var(--type-body);
  }

  .section-label { margin: var(--space-8) 0 var(--space-4); }

  .schedule-group {
    display: block;
    padding: var(--space-4) 0;
  }

  .schedule-group-heading {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--space-4);
    margin-bottom: var(--space-3);
  }

  .schedule-group-heading h3 { font-size: var(--type-section); }

  .schedule-group-heading > span {
    margin: 0;
    font-size: var(--type-kicker);
  }

  .program-list li {
    display: grid;
    grid-template-columns: 6.75rem minmax(0, 1fr);
    column-gap: var(--space-4);
    align-items: start;
  }

  .schedule-time {
    margin-bottom: 0;
    font-size: var(--type-kicker);
    color: var(--soft);
  }

  .program-list h4 { font-size: var(--type-item); }

  .program-list p { font-size: 0.75rem; }

  .brand-feature {
    min-height: 0;
    padding: var(--space-8);
  }

  .brand-feature h3 { font-size: var(--type-card); }

  .product-grid,
  .gift-grid,
  .directions-grid,
  .exhibition-layout { grid-template-columns: 1fr; }

  .product-grid { gap: var(--space-3); }

  .product-grid article {
    min-height: 0;
    padding: var(--space-6);
  }

  .product-grid h3 { font-size: var(--type-card); }

  .venue-map iframe { height: 14rem; }

  .directions-grid { gap: 0; }

  .directions-grid article { padding: var(--space-6) 0; }

  .directions-grid article:last-child { border-bottom: 0; }

  .wifi-box { padding: var(--space-6); }

  .wifi-box h3 { font-size: var(--type-section); }

  .embargo-line { font-size: var(--type-body); }

  .gift-grid { gap: var(--space-5); }

  .gift-card { padding: var(--space-6); }

  .gift-photo { margin: var(--space-4) 0 var(--space-6); }

  .form-brand { display: none; }

  .typeform-shell {
    max-width: none;
    padding: 0;
  }

  .form-grid { grid-template-columns: 1fr; }

  .site-footer {
    width: 100%;
    max-width: none;
    padding: var(--space-4);
  }

  .scroll-top {
    position: fixed;
    right: var(--space-5);
    bottom: max(var(--space-5), env(safe-area-inset-bottom));
    z-index: 30;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 3.5rem;
    height: 3.5rem;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: rgb(6 24 32 / 40%);
    color: var(--paper);
    backdrop-filter: blur(0.75rem);
    -webkit-backdrop-filter: blur(0.75rem);
    opacity: 0;
    pointer-events: none;
    -webkit-tap-highlight-color: transparent;
    transition: opacity 0.25s ease;
  }

  .scroll-top.is-visible {
    opacity: 1;
    pointer-events: auto;
  }

  .scroll-top svg {
    display: block;
    width: 1.5rem;
    height: 1.5rem;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.25;
  }

  body.is-menu-open .scroll-top { display: none; }

  .site-menu:not([hidden]) {
    display: flex;
    flex-direction: column;
    position: fixed;
    inset: 0;
    z-index: 40;
    overflow: auto;
    padding: calc(var(--header-h) + var(--space-4)) var(--space-6) var(--space-6);
    padding-bottom: max(var(--space-6), env(safe-area-inset-bottom));
    background: var(--ink) url("images/invitation-background.png") center 40% / cover no-repeat;
  }

  .site-menu-nav {
    flex: 1;
    display: flex;
    flex-direction: column;
  }

  .site-menu-nav .hero-action { margin-top: auto; }
}

body.is-beta .hero {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  width: 100%;
  max-width: 56rem;
  margin-inline: 0;
}

body.is-beta .hero-lockup {
  border-bottom: 0;
  align-self: start;
}

body.is-beta .hero-ctas {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: var(--space-4);
  width: 100%;
  max-width: 22.5rem;
  margin-top: var(--space-10);
}

body.is-beta .hero-register {
  width: 100%;
  max-width: none;
  margin-top: 0;
}

body.is-beta .hero-note {
  margin-top: var(--space-8);
  color: var(--muted);
  font-size: var(--type-kicker);
  line-height: var(--leading-snug);
}

@media (max-width: 50rem) {
  body.is-beta .hero-ctas {
    max-width: none;
    margin-top: var(--space-16);
    gap: var(--space-3);
  }

  body.is-beta .hero-register {
    width: 100%;
    justify-content: center;
    border-color: rgb(255 255 255 / 25%);
    background: rgb(255 255 255 / 10%);
    font-size: 1.125rem;
  }

  body.is-beta .hero-note {
    text-align: center;
  }
}

@media (max-width: 23.75rem) {
  h1 { font-size: clamp(2.25rem, 13vw, 3.25rem); }
  .hero { padding-inline: var(--space-5); }
  .inner-header,
  .page-container,
  .site-footer,
  .site-menu:not([hidden]) { padding-inline: var(--space-5); }
}
