:root {
  color-scheme: light;
  --paper: #f6f3ec;
  --surface: #fff;
  --ink: #17202a;
  --muted: #59646e;
  --accent: #745a44;
  --accent-ink: #fff;
  --soft: #ece6dc;
  --line: rgba(23, 32, 42, .16);
  --header-bg: rgba(255, 255, 255, .96);
  --serif: "Yu Mincho", "Hiragino Mincho ProN", "Hiragino Mincho Pro", Georgia, serif;
  --sans: "Yu Gothic", "Hiragino Kaku Gothic ProN", "Noto Sans JP", system-ui, sans-serif;
  --shadow: 0 24px 80px rgba(13, 20, 29, .12);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 106px; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: var(--sans);
  font-size: 15px;
  line-height: 1.85;
  overflow-wrap: break-word;
  word-break: normal;
  -webkit-font-smoothing: antialiased;
}
body.sample-menu-open { overflow: hidden; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { color: inherit; }
.sample-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

.sample-skip {
  position: fixed;
  z-index: 9999;
  top: 8px;
  left: 8px;
  padding: 9px 14px;
  color: #fff;
  background: #000;
  transform: translateY(-150%);
}
.sample-skip:focus { transform: none; }
.sample-ribbon {
  min-height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 7px 18px;
  color: #fff;
  background: #0d1116;
  font-size: 9px;
  font-weight: 800;
  line-height: 1.5;
  letter-spacing: .12em;
  text-align: center;
}
.sample-progress { position: fixed; z-index: 1200; top: 0; right: 0; left: 0; height: 3px; pointer-events: none; }
.sample-progress i { width: 0; height: 100%; display: block; background: var(--accent); box-shadow: 0 0 18px color-mix(in srgb,var(--accent) 70%,transparent); transform-origin: left center; }

.event-header {
  position: sticky;
  z-index: 900;
  top: 0;
  color: var(--ink);
  background: var(--header-bg);
  border-bottom: 1px solid var(--line);
  backdrop-filter: blur(18px);
}
.event-header-inner {
  width: min(1240px, calc(100% - 40px));
  min-height: 76px;
  display: flex;
  align-items: center;
  gap: 30px;
  margin: 0 auto;
}
.event-brand { display: flex; align-items: center; gap: 13px; min-width: 0; }
.event-brand-mark {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  color: var(--accent-ink);
  background: var(--accent);
  border-radius: 50%;
  font-family: var(--serif);
  font-size: 13px;
}
.event-brand-copy { display: grid; min-width: 0; line-height: 1.25; }
.event-brand-copy strong { max-width: 290px; overflow: hidden; font-family: var(--serif); font-size: 13px; font-weight: 600; letter-spacing: .04em; text-overflow: ellipsis; white-space: nowrap; }
.event-brand-copy small { margin-top: 4px; color: var(--muted); font-size: 8px; font-weight: 700; letter-spacing: .12em; }
.event-nav { display: flex; align-items: center; gap: clamp(14px, 2vw, 28px); margin-left: auto; }
.event-nav a { font-size: 10px; font-weight: 700; letter-spacing: .07em; white-space: nowrap; }
.event-nav .event-nav-rsvp { min-height: 42px; display: inline-flex; align-items: center; padding: 9px 18px; color: var(--accent-ink); background: var(--accent); }
.event-menu-button { display: none; width: 48px; height: 48px; place-content: center; gap: 6px; margin-left: auto; padding: 0; background: transparent; border: 1px solid var(--line); }
.event-menu-button i { width: 20px; height: 1px; display: block; background: currentColor; transition: transform .2s; }
.event-menu-button[aria-expanded="true"] i:first-child { transform: translateY(3.5px) rotate(45deg); }
.event-menu-button[aria-expanded="true"] i:last-child { transform: translateY(-3.5px) rotate(-45deg); }

.event-hero {
  min-height: 0;
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(380px, .75fr);
  background: var(--surface);
}
.hero-visuals { position: relative; min-width: 0; display: grid; background: #0b0f14; overflow: hidden; }
.hero-photo { position: relative; min-height: 0; display: grid; place-items: center; margin: 0; overflow: hidden; background: #0b0f14; }
.hero-photo img { width: 100%; height: auto; object-fit: contain; object-position: center; }
.hero-accent { display: none; }
.sample-photo-label {
  position: absolute;
  z-index: 3;
  right: 12px;
  bottom: 12px;
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 6px 9px;
  color: #fff;
  background: rgba(5, 9, 14, .82);
  border: 1px solid rgba(255, 255, 255, .55);
  font-size: 7px;
  font-weight: 800;
  line-height: 1;
  letter-spacing: .12em;
  backdrop-filter: blur(8px);
}
.hero-panel {
  position: relative;
  display: flex;
  justify-content: center;
  flex-direction: column;
  padding: clamp(60px, 7vw, 112px) clamp(32px, 5vw, 76px);
  color: var(--ink);
  background: var(--surface);
}
.hero-eyebrow { margin: 0 0 22px; color: var(--accent); font-size: 9px; font-weight: 800; letter-spacing: .19em; text-transform: uppercase; }
.hero-panel h1 {
  max-width: 620px;
  margin: 0;
  font-family: var(--title-font, var(--serif));
  font-size: clamp(40px, 5.6vw, 82px);
  font-weight: var(--title-weight, 400);
  line-height: 1.18;
  letter-spacing: var(--title-spacing, .015em);
  text-wrap: balance;
}
.hero-subtitle { max-width: 520px; margin: 24px 0 0; color: var(--muted); font-size: 14px; line-height: 1.9; text-wrap: pretty; }
.hero-meta { display: grid; gap: 7px; margin-top: 30px; padding: 20px 0; border-block: 1px solid var(--line); }
.hero-meta span { font-family: var(--serif); font-size: 15px; letter-spacing: .05em; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 28px; }
.event-button {
  min-height: 52px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 22px;
  border: 1px solid var(--ink);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .08em;
}
.event-button.primary { color: var(--accent-ink); background: var(--accent); border-color: var(--accent); }
.hero-note { margin: 17px 0 0; color: var(--muted); font-size: 9px; line-height: 1.7; }

.layout-centered .event-hero { display: flex; flex-direction: column; }
.layout-centered .hero-visuals { min-height: 0; }
.layout-centered .hero-panel { align-items: center; padding-block: 62px; text-align: center; }
.layout-centered .hero-actions { justify-content: center; }
.layout-split .hero-visuals, .layout-vertical .hero-visuals, .layout-timeline .hero-visuals, .layout-letter .hero-visuals { order: 2; }
.layout-editorial .hero-panel h1, .layout-cinema .hero-panel h1, .layout-summit .hero-panel h1, .layout-concert .hero-panel h1, .layout-score .hero-panel h1 { font-family: var(--sans); font-weight: 800; letter-spacing: -.04em; }
.layout-editorial .hero-panel { border-left: 10px solid var(--accent); }
.layout-botanical .hero-visuals { margin: 24px 0 24px 24px; border-radius: 0 140px 0 0; }
.layout-playful .hero-panel { background: var(--soft); border-radius: 0 0 0 90px; }
.layout-cinema .event-hero, .layout-gala .event-hero, .layout-theatre .event-hero, .layout-concert .event-hero, .layout-score .event-hero { background: var(--ink); }
.layout-cinema .hero-panel, .layout-gala .hero-panel, .layout-theatre .hero-panel, .layout-concert .hero-panel, .layout-score .hero-panel { color: var(--surface); background: var(--ink); }
.layout-cinema .hero-panel .hero-subtitle, .layout-cinema .hero-panel .hero-note, .layout-gala .hero-panel .hero-subtitle, .layout-gala .hero-panel .hero-note, .layout-theatre .hero-panel .hero-subtitle, .layout-theatre .hero-panel .hero-note, .layout-concert .hero-panel .hero-subtitle, .layout-concert .hero-panel .hero-note, .layout-score .hero-panel .hero-subtitle, .layout-score .hero-panel .hero-note { color: color-mix(in srgb, var(--surface) 72%, transparent); }
.layout-cinema .hero-meta, .layout-gala .hero-meta, .layout-theatre .hero-meta, .layout-concert .hero-meta, .layout-score .hero-meta { border-color: color-mix(in srgb, var(--surface) 25%, transparent); }
.layout-cinema .event-button:not(.primary), .layout-gala .event-button:not(.primary), .layout-theatre .event-button:not(.primary), .layout-concert .event-button:not(.primary), .layout-score .event-button:not(.primary) { color: var(--surface); border-color: var(--surface); }
.layout-ticket .hero-panel { margin: 32px; border: 1px dashed var(--ink); }
.layout-retail .hero-panel { border-top: 16px solid var(--accent); }
.layout-festival .hero-panel { background-image: radial-gradient(circle at 90% 10%, var(--soft), transparent 45%); }

/* Each sample uses a deliberately different hero composition. */
.sample-variant-01 .hero-visuals { min-height: 62vw; max-height: 820px; }
.sample-variant-01 .hero-photo-main { z-index: 1; }
.sample-variant-01 .hero-accent { position: absolute; z-index: 2; bottom: 4%; display: block; width: min(24vw, 320px); border: 8px solid var(--surface); box-shadow: var(--shadow); }
.sample-variant-01 .hero-accent-a { left: 4%; }
.sample-variant-01 .hero-accent-b { right: 4%; }
.sample-variant-01 .hero-panel { position: relative; z-index: 3; width: min(850px, calc(100% - 48px)); margin: -120px auto 0; box-shadow: var(--shadow); }

.sample-variant-02 .event-hero { grid-template-columns: minmax(360px,.72fr) minmax(0,1.28fr); }
.sample-variant-02 .hero-visuals { grid-template-columns: 1.55fr .75fr; grid-template-rows: 1fr 1fr; gap: 7px; padding: 7px; background: var(--surface); }
.sample-variant-02 .hero-photo-main { grid-row: 1 / 3; }
.sample-variant-02 .hero-accent { display: grid; }
.sample-variant-02 .hero-photo img { height: 100%; object-fit: cover; }

.sample-variant-03 .event-hero { grid-template-columns: minmax(0,1.08fr) minmax(420px,.92fr); border-top: 18px solid var(--accent); }
.sample-variant-03 .hero-visuals { grid-template-columns: 2fr 1fr; align-items: end; padding: 20px; background: var(--paper); }
.sample-variant-03 .hero-photo-main { align-self: stretch; }
.sample-variant-03 .hero-accent-a { display: grid; margin-left: 18px; }
.sample-variant-03 .hero-panel { border-left: 1px solid var(--ink); }

.sample-variant-04 .hero-visuals { grid-template-columns: 1fr .48fr; grid-template-rows: 1fr 1fr; gap: 12px; padding: 20px; background: var(--paper); }
.sample-variant-04 .hero-photo-main { grid-row: 1 / 3; border-radius: 0 150px 0 0; }
.sample-variant-04 .hero-accent { display: grid; border-radius: 100px 100px 0 0; }
.sample-variant-04 .invitation-card { border-radius: 180px 180px 20px 20px; }

.sample-variant-05 .event-hero { grid-template-columns: minmax(370px,.7fr) minmax(0,1.3fr); }
.sample-variant-05 .hero-visuals { padding: 36px; background: var(--accent); }
.sample-variant-05 .hero-photo-main { border: 14px solid var(--paper); }
.sample-variant-05 .hero-panel::after { content: "佳き日"; position: absolute; right: 24px; top: 40px; color: var(--accent); font-family: var(--serif); font-size: 15px; letter-spacing: .5em; writing-mode: vertical-rl; }

.sample-variant-06 .event-hero { grid-template-columns: minmax(0,1.2fr) minmax(380px,.8fr); }
.sample-variant-06 .hero-visuals { grid-template-columns: 1.3fr .7fr; grid-template-rows: 1fr 1fr; gap: 10px; padding: 10px; background: var(--soft); }
.sample-variant-06 .hero-photo-main { grid-row: 1 / 3; border-radius: 26px; }
.sample-variant-06 .hero-accent { display: grid; border-radius: 26px; transform: rotate(2deg); }
.sample-variant-06 .hero-accent-b { transform: rotate(-2deg); }
.sample-variant-06 .option-card { border-radius: 28px; }

.sample-variant-07 .event-hero { display: flex; flex-direction: column; }
.sample-variant-07 .hero-visuals { min-height: 54vw; max-height: 760px; }
.sample-variant-07 .hero-panel { width: min(1180px,calc(100% - 40px)); margin: -80px auto 0; padding-block: 42px; border: 1px solid color-mix(in srgb,var(--surface) 20%,transparent); }
.sample-variant-07 .hero-panel h1 { font-size: clamp(48px,8vw,116px); }

.sample-variant-08 .hero-visuals { grid-template-columns: repeat(2,1fr); grid-template-rows: repeat(2,1fr); gap: 8px; padding: 8px; background: var(--surface); }
.sample-variant-08 .hero-photo-main { grid-column: 1 / 3; }
.sample-variant-08 .hero-accent { display: grid; }
.sample-variant-08 .schedule-list { position: relative; padding-left: 60px; border: 0; }
.sample-variant-08 .schedule-list::before { content:""; position:absolute; left:18px; top:0; bottom:0; width:1px; background:var(--accent); }
.sample-variant-08 .schedule-list li { position:relative; grid-template-columns:110px 1fr; background:var(--surface); border:0; margin-bottom:10px; padding:26px; }

.sample-variant-09 .event-hero { grid-template-columns: minmax(340px,.62fr) minmax(0,1.38fr); padding: 32px; gap: 32px; }
.sample-variant-09 .hero-visuals { order: 2; }
.sample-variant-09 .hero-panel { order: 1; padding-inline: 5vw; border: 1px solid var(--line); }
.sample-variant-09 .event-section { padding-block: clamp(92px,12vw,180px); }
.sample-variant-09 .invitation-card { box-shadow: none; border: 0; background: transparent; }

.sample-variant-10 .hero-visuals { grid-template-columns: 1fr 1fr; grid-template-rows: 1fr 1fr; gap: 12px; padding: 22px; background: var(--soft); }
.sample-variant-10 .hero-photo-main { grid-row: 1 / 3; border-radius: 140px 140px 24px 24px; }
.sample-variant-10 .hero-accent { display: grid; border-radius: 22px; }
.sample-variant-10 .quick-facts { border-radius: 22px; overflow: hidden; }

.sample-variant-11 .event-hero { border-bottom: 5px solid var(--accent); }
.sample-variant-11 .hero-visuals { order: 2; }
.sample-variant-11 .hero-panel { order: 1; }
.sample-variant-11 .quick-facts dt,.sample-variant-11 .option-number { font-family: ui-monospace,monospace; }
.sample-variant-11 .option-grid { grid-template-columns: 1.4fr .8fr .8fr; }

.sample-variant-12 .event-hero { display: flex; flex-direction: column; }
.sample-variant-12 .hero-visuals { min-height: 50vw; max-height: 700px; }
.sample-variant-12 .hero-panel { display: grid; grid-template-columns: 1fr 1fr; align-items: end; gap: 20px 50px; }
.sample-variant-12 .hero-eyebrow,.sample-variant-12 .hero-panel h1 { grid-column:1; }
.sample-variant-12 .hero-subtitle,.sample-variant-12 .hero-meta,.sample-variant-12 .hero-actions,.sample-variant-12 .hero-note { grid-column:2; }
.sample-variant-12 .hero-subtitle { grid-row:1 / 3; }
.sample-variant-12 .sprinkle-hero { grid-column:2; }
.sample-variant-12 .schedule-list { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; border:0; }
.sample-variant-12 .schedule-list li { display:block; border:1px solid var(--line); padding:26px; }

.sample-variant-13 .event-hero { display:flex; flex-direction:column; }
.sample-variant-13 .hero-visuals { grid-template-columns: 2fr 1fr 1fr; gap: 3px; background:var(--surface); }
.sample-variant-13 .hero-accent { display:grid; }
.sample-variant-13 .hero-panel { padding-block:40px; border-top:14px solid var(--accent); }
.sample-variant-13 .after-gallery { grid-template-columns:repeat(4,1fr); }
.sample-variant-13 .gallery-item,.sample-variant-13 .gallery-item:first-child { grid-column:span 1; grid-row:auto; }

.sample-variant-14 .hero-visuals { border:24px solid var(--ink); border-bottom-width:70px; }
.sample-variant-14 .hero-panel { border:1px solid color-mix(in srgb,var(--surface) 30%,transparent); margin:28px; }
.sample-variant-14 .program-section { background:var(--ink); color:var(--surface); }
.sample-variant-14 .program-section .schedule-list p { color:color-mix(in srgb,var(--surface) 68%,transparent); }

.sample-variant-15 .hero-visuals { grid-template-columns: 1.35fr .65fr; grid-template-rows:1fr 1fr; gap:6px; padding:6px; background:var(--paper); }
.sample-variant-15 .hero-photo-main { grid-row:1 / 3; filter:sepia(.28); }
.sample-variant-15 .hero-accent { display:grid; filter:sepia(.6); }
.sample-variant-15 .invitation-card { background-image:linear-gradient(var(--line) 1px,transparent 1px); background-size:100% 32px; }

.sample-variant-16 .event-hero { padding: 26px; gap: 26px; }
.sample-variant-16 .hero-visuals { order:2; border-radius:30px; }
.sample-variant-16 .hero-panel { order:1; margin:0; border:1px dashed var(--ink); }
.sample-variant-16 .venue-map { border-radius:999px; }

.sample-variant-17 .event-hero { display:flex; flex-direction:column; }
.sample-variant-17 .hero-visuals { grid-template-columns:2fr 1fr; grid-template-rows:1fr 1fr; gap:2px; background:var(--accent); }
.sample-variant-17 .hero-photo-main { grid-row:1 / 3; }
.sample-variant-17 .hero-accent { display:grid; }
.sample-variant-17 .hero-panel { border-left:clamp(20px,7vw,110px) solid var(--accent); }
.sample-variant-17 .schedule-time { font-size:22px; }

.sample-variant-18 .event-hero { grid-template-columns:minmax(340px,.65fr) minmax(0,1.35fr); padding:34px; gap:34px; }
.sample-variant-18 .hero-visuals { order:2; transform:rotate(1deg); box-shadow:var(--shadow); }
.sample-variant-18 .hero-panel { order:1; background:transparent; border-left:1px solid var(--accent); }
.sample-variant-18 .quote-section { background:var(--surface); }
.sample-variant-18 .event-quote { text-align:left; }

.sample-variant-19 .event-hero { display:flex; flex-direction:column; }
.sample-variant-19 .hero-visuals { min-height:52vw; max-height:760px; }
.sample-variant-19 .hero-panel { display:grid; grid-template-columns:1fr 1fr; gap:20px 60px; }
.sample-variant-19 .hero-panel h1,.sample-variant-19 .hero-eyebrow { grid-column:1; }
.sample-variant-19 .hero-subtitle,.sample-variant-19 .hero-meta,.sample-variant-19 .hero-actions,.sample-variant-19 .hero-note { grid-column:2; }
.sample-variant-19 .sprinkle-hero { grid-column:2; }
.sample-variant-19 .venue-map { background-image:repeating-linear-gradient(45deg,transparent,transparent 24px,rgba(255,255,255,.14) 25px,rgba(255,255,255,.14) 26px); }

.sample-variant-20 .event-hero { border-block:8px solid var(--accent); }
.sample-variant-20 .hero-visuals { order:2; }
.sample-variant-20 .hero-panel { order:1; }
.sample-variant-20 .hero-panel h1 { font-size:clamp(50px,6.5vw,102px); text-transform:uppercase; }
.sample-variant-20 .quick-facts { border:0; box-shadow:none; background:var(--ink); color:var(--surface); }
.sample-variant-20 .quick-facts div { border-color:color-mix(in srgb,var(--surface) 20%,transparent); }

/* Bespoke editorial treatment for the added story chapter. */
.sample-variant-01 .story-section { background-image:radial-gradient(circle at 20% 15%,color-mix(in srgb,var(--accent) 18%,transparent) 0 1px,transparent 2px),radial-gradient(circle at 75% 28%,color-mix(in srgb,var(--ink) 28%,transparent) 0 1px,transparent 2px); background-size:80px 80px,130px 130px; }
.sample-variant-01 .story-card:first-child { grid-column:2 / span 7; }
.sample-variant-01 .story-card:nth-child(2),.sample-variant-01 .story-card:nth-child(3) { grid-column:span 3; transform:translateY(54px); }
.sample-variant-01 .story-card { box-shadow:0 25px 70px rgba(0,0,0,.14); }

.sample-variant-02 .story-grid { grid-template-columns:repeat(3,1fr); gap:28px; }
.sample-variant-02 .story-card,.sample-variant-02 .story-card:first-child,.sample-variant-02 .story-card:nth-child(2),.sample-variant-02 .story-card:nth-child(3) { grid-column:auto; grid-row:auto; }
.sample-variant-02 .story-card:nth-child(1) { transform:rotate(-1deg); }
.sample-variant-02 .story-card:nth-child(3) { transform:rotate(1deg); }
.sample-variant-02 .story-card figure,.sample-variant-02 .story-card:first-child figure { min-height:270px; }
.sample-variant-02 .story-card { border:10px solid var(--surface); box-shadow:0 15px 40px rgba(17,56,70,.12); }

.sample-variant-03 .story-grid { gap:0; border-top:1px solid var(--ink); border-left:1px solid var(--ink); }
.sample-variant-03 .story-card,.sample-variant-03 .story-card:first-child,.sample-variant-03 .story-card:nth-child(2),.sample-variant-03 .story-card:nth-child(3) { grid-column:span 4; grid-row:auto; border:0; border-right:1px solid var(--ink); border-bottom:1px solid var(--ink); }
.sample-variant-03 .story-card figure,.sample-variant-03 .story-card:first-child figure { min-height:340px; }
.sample-variant-03 .story-card-copy > span { color:var(--ink); opacity:1; font-family:var(--sans); font-weight:900; }

.sample-variant-04 .story-card figure,.sample-variant-04 .story-card:first-child figure { border-radius:180px 180px 0 0; }
.sample-variant-04 .story-card { background:transparent; border:0; }
.sample-variant-04 .story-grid { align-items:start; }
.sample-variant-04 .story-card:nth-child(2) { margin-top:90px; }

.sample-variant-05 .story-section { border-block:1px solid var(--accent); }
.sample-variant-05 .story-card { grid-template-columns:minmax(210px,.8fr) 1fr; grid-template-rows:1fr; }
.sample-variant-05 .story-card,.sample-variant-05 .story-card:first-child,.sample-variant-05 .story-card:nth-child(2),.sample-variant-05 .story-card:nth-child(3) { grid-column:1 / -1; grid-row:auto; }
.sample-variant-05 .story-card figure,.sample-variant-05 .story-card:first-child figure { min-height:250px; }
.sample-variant-05 .story-card:nth-child(2) figure { order:2; }

.sample-variant-06 .story-card { border:0; border-radius:34px; box-shadow:8px 12px 0 color-mix(in srgb,var(--accent) 35%,transparent); }
.sample-variant-06 .story-card:nth-child(2) { transform:rotate(2deg); }
.sample-variant-06 .story-card:nth-child(3) { transform:rotate(-2deg); }
.sample-variant-06 .story-card figure { border-radius:34px 34px 0 0; }

.sample-variant-07 .story-section { background:#050912; color:#f4efff; }
.sample-variant-07 .story-heading .section-lead,.sample-variant-07 .story-card-copy > div { color:#b9b3c9; }
.sample-variant-07 .story-grid { gap:8px; }
.sample-variant-07 .story-card { color:#f4efff; background:#0c1220; border-color:#2a3241; }
.sample-variant-07 .story-card:first-child { grid-column:1 / -1; grid-row:auto; grid-template-columns:1.35fr .65fr; grid-template-rows:1fr; }
.sample-variant-07 .story-card:nth-child(2),.sample-variant-07 .story-card:nth-child(3) { grid-column:span 6; }
.sample-variant-07 .story-card:first-child figure { min-height:440px; }

.sample-variant-08 .story-card img { filter:sepia(.22) saturate(.8); }
.sample-variant-08 .story-card-copy { border-left:5px solid var(--accent); }
.sample-variant-08 .story-foot i { background:var(--accent); }

.sample-variant-09 .story-grid { display:grid; grid-template-columns:1fr; gap:60px; width:min(860px,100%); margin-inline:auto; }
.sample-variant-09 .story-card,.sample-variant-09 .story-card:first-child,.sample-variant-09 .story-card:nth-child(2),.sample-variant-09 .story-card:nth-child(3) { grid-column:auto; grid-row:auto; grid-template-columns:1fr 1fr; grid-template-rows:1fr; border:0; background:transparent; }
.sample-variant-09 .story-card:nth-child(2) figure { order:2; }
.sample-variant-09 .story-card figure,.sample-variant-09 .story-card:first-child figure { min-height:300px; }

.sample-variant-10 .story-card { border:8px solid var(--surface); box-shadow:0 18px 45px rgba(67,75,85,.12); }
.sample-variant-10 .story-card:nth-child(2) { transform:translateY(60px) rotate(1deg); }
.sample-variant-10 .story-card:nth-child(3) { transform:rotate(-1deg); }
.sample-variant-10 .story-grid { padding-bottom:60px; }

.sample-variant-11 .story-grid { grid-template-columns:repeat(3,1fr); gap:1px; background:color-mix(in srgb,var(--surface) 18%,transparent); }
.sample-variant-11 .story-card,.sample-variant-11 .story-card:first-child,.sample-variant-11 .story-card:nth-child(2),.sample-variant-11 .story-card:nth-child(3) { grid-column:auto; grid-row:auto; border:0; }
.sample-variant-11 .story-card figure,.sample-variant-11 .story-card:first-child figure { min-height:320px; }
.sample-variant-11 .story-card-copy { min-height:220px; }

.sample-variant-12 .story-grid { grid-template-columns:repeat(3,1fr); }
.sample-variant-12 .story-card,.sample-variant-12 .story-card:first-child,.sample-variant-12 .story-card:nth-child(2),.sample-variant-12 .story-card:nth-child(3) { grid-column:auto; grid-row:auto; border-radius:18px; }
.sample-variant-12 .story-card figure,.sample-variant-12 .story-card:first-child figure { min-height:240px; }
.sample-variant-12 .story-card-copy > span { width:48px; height:48px; display:grid; place-items:center; color:var(--accent-ink); background:var(--accent); border-radius:50%; opacity:1; font-size:16px; }

.sample-variant-13 .story-grid { grid-template-columns:repeat(8,1fr); }
.sample-variant-13 .story-card:first-child { grid-column:span 5; }
.sample-variant-13 .story-card:nth-child(2),.sample-variant-13 .story-card:nth-child(3) { grid-column:span 3; }
.sample-variant-13 .story-card:first-child figure { min-height:560px; }
.sample-variant-13 .story-card-copy h3 { font-family:var(--sans); font-weight:900; text-transform:uppercase; }

.sample-variant-14 .story-section { color:var(--surface); background:var(--ink); }
.sample-variant-14 .story-section::before { background:radial-gradient(circle,var(--accent),transparent 68%); opacity:.22; }
.sample-variant-14 .story-heading .section-lead,.sample-variant-14 .story-card-copy > div,.sample-variant-14 .story-foot p { color:color-mix(in srgb,var(--surface) 68%,transparent); }
.sample-variant-14 .story-card { color:var(--surface); background:#111; border-color:color-mix(in srgb,var(--surface) 22%,transparent); }
.sample-variant-14 .story-card figure { border-bottom:6px solid var(--accent); }

.sample-variant-15 .story-grid { grid-template-columns:repeat(3,1fr); gap:34px; }
.sample-variant-15 .story-card,.sample-variant-15 .story-card:first-child,.sample-variant-15 .story-card:nth-child(2),.sample-variant-15 .story-card:nth-child(3) { grid-column:auto; grid-row:auto; padding:12px 12px 30px; background:var(--surface); box-shadow:0 18px 45px rgba(47,42,35,.15); transform:rotate(-1deg); }
.sample-variant-15 .story-card:nth-child(2) { transform:rotate(1deg) translateY(28px); }
.sample-variant-15 .story-card figure,.sample-variant-15 .story-card:first-child figure { min-height:280px; filter:sepia(.3); }

.sample-variant-16 .story-card { border:1px dashed var(--ink); border-radius:22px; }
.sample-variant-16 .story-card-copy::after { content:"ADMIT ONE"; position:absolute; right:18px; bottom:12px; color:var(--accent); font-size:6px; letter-spacing:.14em; }
.sample-variant-16 .story-grid { gap:26px; }

.sample-variant-17 .story-section { color:var(--surface); background:linear-gradient(145deg,#07080b,var(--ink)); }
.sample-variant-17 .story-heading .section-lead,.sample-variant-17 .story-card-copy > div,.sample-variant-17 .story-foot p { color:color-mix(in srgb,var(--surface) 65%,transparent); }
.sample-variant-17 .story-card { color:var(--surface); background:#0d1015; border:0; border-top:5px solid var(--accent); }
.sample-variant-17 .story-card:nth-child(2) { transform:translateY(70px); }

.sample-variant-18 .story-card { background:var(--surface); border:0; box-shadow:0 16px 46px rgba(46,52,61,.1); }
.sample-variant-18 .story-card-copy { min-height:260px; background-image:repeating-linear-gradient(transparent,transparent 31px,var(--line) 32px); }
.sample-variant-18 .story-card-copy h3 { font-style:italic; }

.sample-variant-19 .story-grid { padding:18px; background:var(--accent); border-radius:16px; }
.sample-variant-19 .story-card { border:4px solid var(--ink); box-shadow:7px 7px 0 var(--ink); }
.sample-variant-19 .story-card-copy > span { opacity:1; color:var(--accent); -webkit-text-stroke:1px var(--ink); }

.sample-variant-20 .story-grid { grid-template-columns:repeat(3,1fr); gap:5px; background:var(--accent); }
.sample-variant-20 .story-card,.sample-variant-20 .story-card:first-child,.sample-variant-20 .story-card:nth-child(2),.sample-variant-20 .story-card:nth-child(3) { grid-column:auto; grid-row:auto; color:var(--surface); background:var(--ink); border:0; }
.sample-variant-20 .story-card figure,.sample-variant-20 .story-card:first-child figure { min-height:300px; }
.sample-variant-20 .story-card-copy > div { color:color-mix(in srgb,var(--surface) 65%,transparent); }
.sample-variant-20 .story-card-copy h3 { font-family:var(--sans); font-weight:900; text-transform:uppercase; }

.event-main { position: relative; }
.event-section { padding: clamp(78px, 9vw, 140px) 24px; }
.event-section.alt { background: var(--soft); }
.event-container { width: min(1120px, 100%); margin: 0 auto; }
.event-container.narrow { width: min(800px, 100%); }
.section-kicker { display: block; margin-bottom: 16px; color: var(--accent); font-size: 9px; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; }
.event-section h2 { max-width: 760px; margin: 0; font-family: var(--serif); font-size: clamp(29px, 4.3vw, 54px); font-weight: 400; line-height: 1.45; letter-spacing: .02em; text-wrap: balance; }
.hero-panel h1, .event-section h2, .option-card h3, .story-card-copy h3, .mood-panel blockquote, .event-quote { line-break: strict; overflow-wrap: break-word; word-break: normal; }
.section-lead { max-width: 720px; margin: 24px 0 0; color: var(--muted); font-size: 14px; line-height: 2; text-wrap: pretty; }

.quick-facts-wrap { position: relative; z-index: 10; width: min(1120px, calc(100% - 48px)); margin: -36px auto 0; }
.quick-facts { display: grid; grid-template-columns: repeat(4, 1fr); margin: 0; background: var(--surface); border: 1px solid var(--line); box-shadow: var(--shadow); }
.quick-facts div { min-width: 0; padding: 25px 24px; border-right: 1px solid var(--line); }
.quick-facts div:last-child { border-right: 0; }
.quick-facts dt { color: var(--accent); font-size: 8px; font-weight: 800; letter-spacing: .15em; }
.quick-facts dd { margin: 9px 0 0; font-family: var(--serif); font-size: 14px; line-height: 1.65; }

.invitation-card { position: relative; padding: clamp(36px, 6vw, 72px); background: var(--surface); border: 1px solid var(--line); box-shadow: var(--shadow); }
.invitation-card::before, .invitation-card::after { content: ""; position: absolute; width: 42px; height: 42px; border-color: var(--accent); opacity: .7; }
.invitation-card::before { top: 16px; left: 16px; border-top: 1px solid; border-left: 1px solid; }
.invitation-card::after { right: 16px; bottom: 16px; border-right: 1px solid; border-bottom: 1px solid; }
.invitation-copy { max-width: 680px; margin: 0 auto; text-align: center; }
.invitation-copy p { margin: 28px 0 0; color: var(--muted); line-height: 2.2; white-space: pre-line; }
.invitation-sign { display: block; margin-top: 30px; color: var(--accent); font-family: var(--serif); font-size: 17px; }
.event-quote { max-width: 850px; margin: 0 auto; font-family: var(--serif); font-size: clamp(24px, 3.5vw, 44px); line-height: 1.8; text-align: center; text-wrap: balance; }
.event-quote cite { display: block; margin-top: 24px; color: var(--accent); font-family: var(--sans); font-size: 9px; font-style: normal; letter-spacing: .15em; }

.story-section { position: relative; background: var(--surface); overflow: hidden; }
.story-section::before { content:""; position:absolute; width:420px; height:420px; top:-210px; right:-180px; background:radial-gradient(circle,var(--soft),transparent 68%); border-radius:50%; pointer-events:none; }
.story-heading { position:relative; z-index:1; display:grid; grid-template-columns:minmax(0,1.05fr) minmax(300px,.75fr); gap:clamp(36px,7vw,100px); align-items:end; }
.story-heading .section-lead { margin:0; }
.story-grid { position:relative; z-index:1; display:grid; grid-template-columns:repeat(12,1fr); gap:18px; margin-top:60px; }
.story-card { min-width:0; display:grid; grid-template-rows:auto 1fr; background:var(--paper); border:1px solid var(--line); overflow:hidden; }
.story-card:first-child { grid-column:span 6; grid-row:span 2; }
.story-card:nth-child(2),.story-card:nth-child(3) { grid-column:span 3; }
.story-card figure { position:relative; min-height:0; margin:0; background:#101419; overflow:hidden; }
.story-card:first-child figure { min-height:420px; }
.story-card:not(:first-child) figure { min-height:230px; }
.story-card img { width:100%; height:100%; object-fit:cover; transition:transform .8s cubic-bezier(.2,.75,.2,1); }
.story-card-copy { position:relative; padding:clamp(22px,3vw,36px); }
.story-card-copy > span { position:absolute; right:20px; top:18px; color:var(--accent); font-family:var(--serif); font-size:clamp(28px,4vw,54px); line-height:1; opacity:.22; }
.story-card-copy > p { margin:0; color:var(--accent); font-size:7px; font-weight:800; letter-spacing:.17em; }
.story-card-copy h3 { margin:14px 0 0; padding-right:20px; font-family:var(--serif); font-size:clamp(19px,2.2vw,29px); font-weight:400; line-height:1.45; }
.story-card-copy > div { margin-top:12px; color:var(--muted); font-size:11px; line-height:1.85; }
.story-foot { display:grid; grid-template-columns:auto minmax(80px,1fr) minmax(280px,.75fr); gap:18px; align-items:center; margin-top:28px; }
.story-foot > span { color:var(--accent); font-family:var(--serif); font-size:18px; }
.story-foot i { height:1px; background:var(--line); }
.story-foot p { margin:0; color:var(--muted); font-size:9px; line-height:1.7; }

.sprinkle-option { position:relative; display:grid; grid-template-columns:42px minmax(0,1fr) auto; gap:14px; align-items:center; margin-top:32px; padding:16px 16px 16px 18px; color:var(--ink); background:color-mix(in srgb,var(--surface) 88%,transparent); border:1px solid var(--line); box-shadow:0 12px 34px rgba(13,20,29,.06); overflow:hidden; }
.sprinkle-option::before { content:""; position:absolute; inset:0 auto 0 0; width:3px; background:var(--accent); }
.sprinkle-mark { width:36px; height:36px; display:grid; place-items:center; color:var(--accent-ink); background:var(--accent); border-radius:50%; font-size:17px; }
.sprinkle-copy { min-width:0; display:grid; }
.sprinkle-copy small { color:var(--accent); font-size:6px; font-weight:800; letter-spacing:.14em; }
.sprinkle-copy strong { margin-top:3px; font-family:var(--serif); font-size:14px; font-weight:500; line-height:1.5; }
.sprinkle-copy p { margin:3px 0 0; color:var(--muted); font-size:8px; line-height:1.6; }
.sprinkle-option > button { min-width:104px; min-height:46px; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 13px; color:var(--ink); background:transparent; border:1px solid var(--line); font-size:8px; font-weight:800; cursor:pointer; }
.sprinkle-option > button i { color:var(--accent); font-size:14px; font-style:normal; }
.sprinkle-option > button.is-selected { color:var(--accent-ink); background:var(--accent); border-color:var(--accent); }
.sprinkle-option > button.is-selected i { color:inherit; transform:rotate(90deg); }
.sprinkle-hero { margin-top:20px; background:var(--soft); box-shadow:none; }
.sprinkle-hero .sprinkle-copy p { display:none; }
.sprinkle-story { width:min(660px,72%); margin:34px 0 0 auto; }
.sprinkle-access { width:min(680px,100%); margin:38px 0 0 auto; }
.sprinkle-gallery { width:min(720px,100%); margin:30px 0 0; }
.sprinkle-rsvp { grid-template-columns:34px 1fr; margin-top:30px; padding:14px; color:inherit; background:color-mix(in srgb,var(--accent-ink) 10%,transparent); border-color:color-mix(in srgb,var(--accent-ink) 28%,transparent); box-shadow:none; }
.sprinkle-rsvp::before { background:currentColor; opacity:.35; }
.sprinkle-rsvp .sprinkle-mark { width:30px; height:30px; color:var(--accent); background:var(--accent-ink); }
.sprinkle-rsvp .sprinkle-copy small,.sprinkle-rsvp .sprinkle-copy p { color:inherit; opacity:.72; }
.sprinkle-rsvp .sprinkle-copy strong { font-size:13px; }
.sprinkle-rsvp > button { grid-column:1 / -1; width:100%; color:inherit; border-color:color-mix(in srgb,var(--accent-ink) 42%,transparent); }
.sprinkle-rsvp > button.is-selected { color:var(--accent); background:var(--accent-ink); border-color:var(--accent-ink); }

.mood-section { min-height:650px; display:grid; grid-template-columns:minmax(0,1.18fr) minmax(360px,.82fr); color:var(--paper); background:var(--ink); overflow:hidden; }
.mood-visual { position:relative; min-width:0; min-height:650px; }
.mood-photo { position:absolute; margin:0; background:#0b0e12; overflow:hidden; }
.mood-photo-main { inset:0 12% 0 0; }
.mood-photo-inset { z-index:2; right:0; bottom:8%; width:38%; border:10px solid var(--ink); box-shadow:0 24px 60px rgba(0,0,0,.3); }
.mood-photo img { width:100%; height:100%; object-fit:cover; }
.mood-photo-inset img { aspect-ratio:16/9; }
.mood-panel { position:relative; display:flex; justify-content:center; flex-direction:column; padding:clamp(54px,7vw,110px); }
.mood-panel::before { content:""; width:74px; height:1px; margin-bottom:28px; background:var(--accent); }
.mood-panel .section-kicker { color:var(--accent); }
.mood-panel blockquote { margin:0; white-space:pre-line; font-family:var(--serif); font-size:clamp(30px,4.2vw,58px); line-height:1.45; text-wrap:balance; }
.mood-panel > p { max-width:560px; margin:28px 0 0; color:color-mix(in srgb,var(--paper) 72%,transparent); font-size:12px; line-height:2; }
.mood-tags { display:flex; flex-wrap:wrap; gap:7px; margin-top:30px; }
.mood-tags span { padding:7px 10px; color:color-mix(in srgb,var(--paper) 82%,transparent); border:1px solid color-mix(in srgb,var(--paper) 22%,transparent); font-size:7px; font-weight:800; letter-spacing:.09em; }
.mood-panel > a { width:max-content; display:flex; align-items:center; gap:28px; margin-top:36px; padding-bottom:8px; border-bottom:1px solid color-mix(in srgb,var(--paper) 40%,transparent); font-size:9px; font-weight:800; letter-spacing:.1em; }
.mood-panel > a span { color:var(--accent); font-size:18px; }

.schedule-list { margin: 50px 0 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.schedule-list li { display: grid; grid-template-columns: 150px 1fr; gap: 32px; padding: 28px 8px; border-bottom: 1px solid var(--line); }
.schedule-time { color: var(--accent); font-size: 11px; font-weight: 800; letter-spacing: .1em; }
.schedule-list h3 { margin: 0 0 7px; font-family: var(--serif); font-size: 21px; font-weight: 400; }
.schedule-list p { margin: 0; color: var(--muted); font-size: 13px; }

.venue-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(34px, 7vw, 90px); align-items: stretch; margin-top: 46px; }
.venue-map { min-height: 380px; display: grid; place-items: center; padding: 36px; background: var(--accent); color: var(--accent-ink); text-align: center; }
.venue-map-mark { width: 74px; height: 74px; display: grid; place-items: center; margin: 0 auto 22px; border: 1px solid currentColor; border-radius: 50%; font-family: var(--serif); font-size: 22px; }
.venue-map strong { display: block; font-family: var(--serif); font-size: 22px; }
.venue-map span { display: block; margin-top: 12px; font-size: 10px; line-height: 1.8; letter-spacing: .05em; }
.venue-details { margin: 0; padding: 18px 0; }
.venue-details div { padding: 20px 0; border-bottom: 1px solid var(--line); }
.venue-details dt { color: var(--accent); font-size: 8px; font-weight: 800; letter-spacing: .15em; }
.venue-details dd { margin: 7px 0 0; font-family: var(--serif); font-size: 16px; }

.video-sample { margin-top: 42px; color: #fff; background: #080b10; }
.video-poster { position: relative; aspect-ratio: 16 / 9; display: grid; place-items: center; overflow: hidden; }
.video-poster img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .56; }
.video-poster::after { content: ""; position: absolute; inset: 0; background: radial-gradient(circle, transparent, rgba(0,0,0,.72)); }
.video-demo-button { position: relative; z-index: 2; display: grid; justify-items: center; gap: 14px; padding: 22px; color: #fff; background: transparent; border: 0; cursor: pointer; }
.video-play { width: 78px; height: 78px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.8); border-radius: 50%; background: rgba(0,0,0,.3); }
.video-play::before { content: ""; margin-left: 5px; border-block: 10px solid transparent; border-left: 16px solid #fff; }
.video-demo-button strong { font-size: 10px; letter-spacing: .18em; }
.video-note { margin: 0; padding: 18px; color: #f7e9bc; background: #161b22; font-size: 11px; text-align: center; }

.gallery-head { display: flex; align-items: end; justify-content: space-between; gap: 32px; }
.gallery-note { max-width: 400px; margin: 0; color: var(--muted); font-size: 11px; line-height: 1.8; }
.after-gallery { display: grid; grid-template-columns: repeat(12, 1fr); gap: 12px; margin-top: 44px; }
.gallery-item { position: relative; grid-column: span 4; display: block; padding: 0; background: var(--surface); border: 0; cursor: zoom-in; overflow: hidden; }
.gallery-item:first-child { grid-column: span 8; grid-row: span 2; }
.gallery-item img { width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: contain; background: #111; }
.gallery-item:first-child img { height: 100%; object-fit: cover; }
.gallery-item .sample-photo-label { right: 8px; bottom: 8px; }
.gallery-item-caption { display: block; padding: 13px 14px; color: var(--muted); background: var(--surface); font-size: 9px; line-height: 1.6; text-align: left; }
.gallery-privacy { display: flex; align-items: center; gap: 12px; margin-top: 20px; padding: 18px; color: var(--muted); background: var(--surface); border: 1px solid var(--line); font-size: 10px; line-height: 1.7; }
.gallery-privacy::before { content: "LOCK"; padding: 5px 7px; color: var(--accent-ink); background: var(--accent); font-size: 7px; font-weight: 800; letter-spacing: .1em; }

.option-section { color: var(--ink); background: var(--paper); overflow: hidden; }
.option-heading { display: grid; grid-template-columns: 1fr minmax(300px,.72fr); gap: 50px; align-items: end; }
.option-heading .section-lead { margin: 0; }
.option-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; margin-top: 48px; }
.option-card { min-width: 0; display: flex; flex-direction: column; padding: clamp(24px,3vw,38px); background: var(--surface); border: 1px solid var(--line); box-shadow: 0 16px 46px rgba(13,20,29,.07); }
.option-number { color: var(--accent); font-size: 8px; font-weight: 800; letter-spacing: .16em; }
.option-card h3 { margin: 18px 0 0; font-family: var(--serif); font-size: 22px; font-weight: 400; line-height: 1.55; }
.option-card > p { min-height: 5.3em; margin: 12px 0 0; color: var(--muted); font-size: 12px; line-height: 1.8; }
.option-card > small { display: block; margin-top: 11px; color: var(--accent); font-size: 8px; font-weight: 800; line-height: 1.6; letter-spacing: .08em; }
.option-preview { min-height: 146px; display: grid; place-items: center; margin-top: 25px; padding: 18px; background: var(--paper); border: 1px solid var(--line); overflow: hidden; }
.option-demo-action { width: 100%; min-height: 48px; margin-top: 14px; color: var(--accent-ink); background: var(--accent); border: 0; font-size: 9px; font-weight: 800; letter-spacing: .08em; cursor: pointer; }
.option-feedback { min-height: 0 !important; margin: 11px 0 0 !important; color: var(--muted) !important; font-size: 8px !important; line-height: 1.6 !important; }
.option-feedback.is-active { color: var(--accent) !important; font-weight: 800; }
.option-choice-row,.option-language,.option-filter,.option-times,.option-weather { width: 100%; display: flex; flex-wrap: wrap; gap: 7px; }
.option-choice-row button,.option-language button,.option-filter button,.option-times button,.option-weather button { min-width: 48px; min-height: 42px; flex: 1; padding: 8px; color: var(--ink); background: var(--surface); border: 1px solid var(--line); font-size: 9px; cursor: pointer; }
.option-choice-row button.is-active,.option-language button.is-active,.option-filter button.is-active,.option-times button.is-active,.option-weather button.is-active { color: var(--accent-ink); background: var(--accent); border-color: var(--accent); }
.option-language + p { min-height: auto; margin: 14px 0 0; color: var(--muted); font-size: 10px; line-height: 1.7; }
.option-search { width: 100%; display: grid; grid-template-columns:1fr auto; }
.option-search input { min-width:0; height:46px; padding:10px 12px; color:var(--ink); background:var(--surface); border:1px solid var(--line); font-size:12px; }
.option-search button { min-width:64px; color:var(--accent-ink); background:var(--accent); border:0; font-size:9px; font-weight:800; cursor:pointer; }
.option-route { width:100%; margin:0; padding:0; list-style:none; }
.option-route li { display:grid; grid-template-columns:35px 1fr; align-items:center; gap:10px; padding:8px 0; border-bottom:1px solid var(--line); }
.option-route b { color:var(--accent); font-size:10px; }
.option-route span { font-size:9px; font-weight:800; letter-spacing:.08em; }
.option-mini-cards { width:100%; display:grid; grid-template-columns:repeat(3,1fr); gap:7px; }
.option-mini-cards i { height:90px; display:block; background:linear-gradient(150deg,var(--accent),var(--soft)); border:5px solid var(--surface); box-shadow:0 8px 18px rgba(0,0,0,.1); }
.option-mini-cards i:nth-child(2) { transform:translateY(9px); filter:saturate(.6); }
.option-mini-cards i:nth-child(3) { filter:hue-rotate(28deg); }
.option-swatches { display:flex; gap:8px; }
.option-swatches i { width:42px; height:76px; display:block; background:var(--swatch); border:1px solid rgba(0,0,0,.15); }
.option-list { width:100%; margin:0; padding:0; list-style:none; }
.option-list li { display:flex; justify-content:space-between; gap:12px; padding:9px 0; border-bottom:1px dotted var(--line); }
.option-list span { color:var(--accent); font-size:9px; }
.option-list b { font-family:var(--serif); font-size:12px; font-weight:400; }
.option-upload { width:100%; min-height:76px; display:grid; place-items:center; color:var(--accent); background:var(--surface); border:1px dashed var(--accent); font-size:10px; font-weight:800; cursor:pointer; }
.option-upload input { position:absolute; opacity:0; pointer-events:none; }
.option-message { width:100%; display:grid; grid-template-columns:1fr auto; }
.option-message input { min-width:0; height:42px; padding:9px; border:1px solid var(--line); background:var(--surface); }
.option-message button { width:52px; color:var(--accent-ink); background:var(--accent); border:0; cursor:pointer; }
.option-message-wall { width:100%; display:flex; flex-wrap:wrap; gap:6px; margin-top:10px; }
.option-message-wall span { padding:5px 8px; background:var(--soft); border-radius:999px; font-size:8px; }
.option-countdown { text-align:center; }
.option-countdown b { display:block; color:var(--accent); font-family:var(--serif); font-size:48px; font-weight:400; line-height:1; }
.option-countdown span { display:block; margin-top:10px; font-size:8px; font-weight:800; letter-spacing:.17em; }
.option-ticket { width:100%; display:grid; grid-template-columns:82px 1fr; gap:16px; align-items:center; padding:12px; background:var(--surface); border:1px dashed var(--ink); }
.option-ticket b,.option-ticket span { display:block; font-size:9px; letter-spacing:.1em; }
.option-ticket span { margin-top:8px; color:var(--muted); }
.option-qr { width:72px; aspect-ratio:1; background:repeating-conic-gradient(var(--ink) 0 25%,var(--surface) 0 50%) 0 0/16px 16px; border:6px solid var(--surface); outline:1px solid var(--line); }
.option-screen { width:100%; aspect-ratio:16/8; display:grid; place-content:center; justify-items:center; gap:8px; color:#fff; background:radial-gradient(circle at 60% 20%,var(--accent),#090d12 60%); }
.option-screen span { width:42px; height:42px; display:grid; place-items:center; border:1px solid currentColor; border-radius:50%; }
.option-screen b { font-size:8px; letter-spacing:.15em; }
.option-stats { width:100%; display:grid; grid-template-columns:repeat(3,1fr); gap:4px; }
.option-stats span { padding:13px 4px; text-align:center; background:var(--surface); font-size:7px; }
.option-stats b { display:block; color:var(--accent); font-family:var(--serif); font-size:24px; font-weight:400; line-height:1.1; }
.option-compare { width:100%; display:grid; grid-template-columns:auto 1fr auto; gap:12px; align-items:center; font-size:9px; font-weight:800; }
.option-compare i { height:72px; background:linear-gradient(90deg,var(--accent) 50%,var(--soft) 50%); border-radius:999px; }
.option-alert { width:100%; display:grid; grid-template-columns:12px 1fr auto; gap:9px; align-items:center; padding:12px; background:var(--surface); border:1px solid var(--line); }
.option-alert i { width:10px; height:10px; background:var(--accent); border-radius:50%; }
.option-alert span { font-size:9px; }
.option-alert button { min-width:44px; min-height:36px; color:var(--accent-ink); background:var(--accent); border:0; cursor:pointer; }
.option-roster { width:100%; display:grid; grid-template-columns:repeat(3,1fr); gap:5px; }
.option-roster span { padding:13px 5px; color:var(--surface); background:var(--ink); text-align:center; font-size:8px; }
.option-roster b { display:block; color:var(--accent); font-size:20px; }
.option-book { width:118px; height:94px; display:grid; place-content:center; color:var(--accent-ink); background:var(--accent); box-shadow:9px 9px 0 var(--ink); text-align:center; transform:rotate(-3deg); }
.option-book span { font-family:var(--serif); font-size:14px; line-height:1.3; }
.option-book i { margin-top:6px; font-size:6px; font-style:normal; letter-spacing:.1em; }
.option-envelope { width:140px; height:86px; display:grid; place-items:center; color:var(--accent); background:var(--surface); border:1px solid var(--accent); clip-path:polygon(0 0,100% 0,100% 100%,0 100%); font-size:8px; font-weight:800; }
.option-generic { font-size:9px; letter-spacing:.12em; }
.option-calendar { width:100%; display:grid; grid-template-columns:78px 1fr; align-items:stretch; color:var(--ink); background:var(--surface); border:1px solid var(--line); }
.option-calendar time { display:grid; place-content:center; text-align:center; color:var(--accent-ink); background:var(--accent); }
.option-calendar time b { font-family:var(--serif); font-size:34px; font-weight:400; line-height:1; }
.option-calendar time span { margin-top:6px; font-size:6px; font-weight:800; letter-spacing:.1em; }
.option-calendar > div { display:grid; align-content:center; gap:5px; padding:14px; }
.option-calendar i,.option-calendar strong,.option-calendar small { display:block; font-style:normal; }
.option-calendar i { color:var(--accent); font-size:9px; font-weight:800; }
.option-calendar strong { font-family:var(--serif); font-size:12px; }
.option-calendar small { color:var(--muted); font-size:6px; letter-spacing:.08em; }
.option-guide { width:128px; min-height:100px; padding:16px; color:var(--accent-ink); background:var(--accent); box-shadow:8px 8px 0 var(--ink); transform:rotate(-2deg); }
.option-guide > span { display:block; padding-bottom:10px; border-bottom:1px solid currentColor; font-family:var(--serif); font-size:16px; }
.option-guide ol { margin:10px 0 0; padding:0; list-style:none; font-size:6px; line-height:2; letter-spacing:.08em; }
.option-player { width:100%; display:grid; grid-template-columns:54px 1fr; gap:14px; align-items:center; padding:14px; color:var(--surface); background:var(--ink); }
.option-player button { width:50px; height:50px; color:var(--ink); background:var(--accent); border:0; border-radius:50%; cursor:pointer; }
.option-player b,.option-player span { display:block; }
.option-player b { font-family:var(--serif); font-size:10px; }
.option-player span { margin-top:8px; color:color-mix(in srgb,var(--surface) 60%,transparent); font-size:7px; letter-spacing:.07em; }

.rsvp-shell { display: grid; grid-template-columns: .72fr 1.28fr; background: var(--surface); border: 1px solid var(--line); box-shadow: var(--shadow); }
.rsvp-intro { padding: clamp(34px, 5vw, 64px); color: var(--accent-ink); background: var(--accent); }
.rsvp-intro h2 { color: inherit; }
.rsvp-intro p { margin: 22px 0 0; color: inherit; opacity: .88; font-size: 13px; line-height: 2; }
.rsvp-deadline { display: inline-block; margin-top: 30px; padding-top: 16px; border-top: 1px solid currentColor; font-family: var(--serif); font-size: 16px; }
.rsvp-form { padding: clamp(34px, 5vw, 64px); }
.form-row { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; margin-bottom: 22px; }
.form-field { display: grid; gap: 8px; color: var(--ink); font-size: 11px; font-weight: 700; }
.form-field.full { grid-column: 1 / -1; }
.form-field small { color: var(--muted); font-weight: 400; }
.form-field input, .form-field select, .form-field textarea { width: 100%; min-height: 52px; padding: 12px 14px; color: var(--ink); background: var(--paper); border: 1px solid var(--line); border-radius: 0; }
.form-field textarea { min-height: 120px; resize: vertical; }
.attendance-fieldset { margin: 0 0 22px; padding: 0; border: 0; }
.attendance-fieldset legend { margin-bottom: 10px; font-size: 11px; font-weight: 700; }
.attendance-options { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
.attendance-options label { position: relative; min-height: 58px; display: grid; place-items: center; padding: 12px; background: var(--paper); border: 1px solid var(--line); cursor: pointer; }
.attendance-options input { position: absolute; opacity: 0; }
.attendance-options label:has(input:checked) { color: var(--accent-ink); background: var(--accent); border-color: var(--accent); }
.consent-check { display: flex; align-items: flex-start; gap: 10px; margin: 25px 0; color: var(--muted); font-size: 10px; line-height: 1.7; }
.consent-check input { width: 18px; height: 18px; flex: 0 0 auto; margin-top: 2px; accent-color: var(--accent); }
.rsvp-submit { width: 100%; min-height: 58px; color: var(--accent-ink); background: var(--accent); border: 0; font-size: 11px; font-weight: 800; letter-spacing: .08em; cursor: pointer; }
.form-demo-note { margin: 14px 0 0; color: var(--muted); font-size: 9px; line-height: 1.7; text-align: center; }
.demo-response { min-height: 520px; place-content: center; padding: 50px; text-align: center; }
.demo-response:not([hidden]) { display: grid; }
.demo-response-mark { width: 68px; height: 68px; display: grid; place-items: center; margin: 0 auto 22px; color: var(--accent-ink); background: var(--accent); border-radius: 50%; font-size: 24px; }
.demo-response h3 { margin: 0; font-family: var(--serif); font-size: 28px; font-weight: 400; }
.demo-response p { margin: 16px 0 0; color: var(--muted); }
.demo-response button { margin: 26px auto 0; min-height: 48px; padding: 10px 22px; color: var(--ink); background: transparent; border: 1px solid var(--ink); cursor: pointer; }

.faq-list { margin-top: 42px; border-top: 1px solid var(--line); }
.faq-list details { border-bottom: 1px solid var(--line); }
.faq-list summary { min-height: 78px; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 18px 4px; font-family: var(--serif); font-size: 16px; cursor: pointer; list-style: none; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary::after { content: "+"; color: var(--accent); font-family: var(--sans); font-size: 22px; font-weight: 300; }
.faq-list details[open] summary::after { content: "−"; }
.faq-list details p { max-width: 760px; margin: 0; padding: 0 4px 26px; color: var(--muted); font-size: 13px; line-height: 2; }

.sample-handoff { padding: 38px 24px; color: #fff; background: #11161d; }
.sample-handoff-inner { width: min(1120px, 100%); display: flex; align-items: center; justify-content: space-between; gap: 32px; margin: 0 auto; }
.sample-handoff p { margin: 0; color: rgba(255,255,255,.7); font-size: 11px; line-height: 1.8; }
.sample-handoff a { min-height: 48px; display: inline-flex; align-items: center; flex: 0 0 auto; padding: 10px 18px; border: 1px solid rgba(255,255,255,.45); font-size: 9px; font-weight: 800; letter-spacing: .08em; }
.event-footer { padding: 32px 24px 96px; color: rgba(255,255,255,.58); background: #090c10; }
.event-footer-inner { width: min(1120px, 100%); display: flex; justify-content: space-between; gap: 24px; margin: 0 auto; font-size: 9px; line-height: 1.7; }
.mobile-rsvp { display: none; }
.event-rail { display:none; }
.sample-toast { position:fixed; z-index:1400; right:22px; bottom:22px; max-width:min(360px,calc(100% - 44px)); padding:14px 18px; color:#fff; background:#11161d; border:1px solid rgba(255,255,255,.2); box-shadow:0 18px 50px rgba(0,0,0,.28); font-size:10px; line-height:1.7; }
.sample-toast:not([hidden]) { display:block; animation:toast-in .25s ease both; }
@keyframes toast-in { from { opacity:0; transform:translateY(8px); } }

body.sample-motion-ready .reveal-target { opacity:0; transform:translateY(28px); transition:opacity .8s ease,transform .9s cubic-bezier(.2,.7,.2,1); }
body.sample-motion-ready .reveal-target.is-visible { opacity:1; transform:none; }
body.sample-motion-ready .story-card.reveal-target:nth-child(2) { transition-delay:.08s; }
body.sample-motion-ready .story-card.reveal-target:nth-child(3) { transition-delay:.16s; }

@media (min-width: 1380px) {
  .event-rail { position:fixed; z-index:700; top:50%; right:16px; display:grid; gap:4px; transform:translateY(-50%); }
  .event-rail a { width:76px; min-height:34px; display:grid; grid-template-columns:18px 1fr; align-items:center; gap:5px; padding:6px 7px; color:var(--muted); background:color-mix(in srgb,var(--surface) 88%,transparent); border:1px solid var(--line); backdrop-filter:blur(14px); font-size:6px; font-weight:800; letter-spacing:.08em; }
  .event-rail a span { color:var(--accent); font-family:var(--serif); font-size:8px; }
  .event-rail a.is-current { color:var(--accent-ink); background:var(--accent); border-color:var(--accent); }
  .event-rail a.is-current span { color:inherit; }
}

.gallery-lightbox { width: min(1040px, calc(100% - 28px)); max-width: none; padding: 0; color: #fff; background: #07090c; border: 1px solid rgba(255,255,255,.2); }
.gallery-lightbox::backdrop { background: rgba(0,0,0,.82); backdrop-filter: blur(8px); }
.lightbox-inner { position: relative; padding: 48px 52px 28px; }
.lightbox-inner img { width: 100%; height: auto; max-height: 72vh; object-fit: contain; }
.lightbox-caption { margin: 16px 0 0; color: rgba(255,255,255,.72); font-size: 10px; text-align: center; }
.lightbox-close, .lightbox-prev, .lightbox-next { position: absolute; z-index: 2; width: 42px; height: 42px; display: grid; place-items: center; color: #fff; background: rgba(0,0,0,.62); border: 1px solid rgba(255,255,255,.35); cursor: pointer; }
.lightbox-close { top: 10px; right: 10px; }
.lightbox-prev { top: 50%; left: 6px; transform: translateY(-50%); }
.lightbox-next { top: 50%; right: 6px; transform: translateY(-50%); }

:focus-visible { outline: 3px solid color-mix(in srgb, var(--accent) 75%, #fff); outline-offset: 3px; }
@media (hover: hover) {
  .event-button, .event-nav a, .rsvp-submit, .gallery-item { transition: transform .2s ease, opacity .2s ease, box-shadow .2s ease; }
  .event-button:hover, .rsvp-submit:hover { transform: translateY(-2px); box-shadow: 0 10px 26px rgba(0,0,0,.13); }
  .event-nav a:hover { opacity: .65; }
  .gallery-item:hover { transform: translateY(-3px); }
}

@media (max-width: 1000px) {
  .event-header-inner { width: calc(100% - 28px); }
  .event-nav { gap: 12px; }
  .event-nav a { font-size: 9px; }
  .event-hero { grid-template-columns: minmax(0, 1.1fr) minmax(340px, .9fr); }
  .hero-panel { padding-inline: 34px; }
}

@media (max-width: 820px) {
  html { scroll-padding-top: 102px; }
  body { padding-bottom: calc(70px + env(safe-area-inset-bottom)); font-size: 14px; }
  .sample-ribbon { min-height: 38px; padding-inline: 10px; font-size: 7px; letter-spacing: .07em; }
  .event-header-inner { min-height: 64px; }
  .event-brand-mark { width: 34px; height: 34px; }
  .event-brand-copy strong { max-width: 190px; font-size: 11px; }
  .event-brand-copy small { font-size: 7px; }
  .event-menu-button { display: grid; }
  .event-nav {
    position: fixed;
    z-index: 890;
    inset: 102px 0 auto;
    max-height: calc(100svh - 102px);
    display: grid;
    align-content: start;
    gap: 0;
    margin: 0;
    padding: 14px 20px 24px;
    color: var(--ink);
    background: var(--surface);
    border-bottom: 1px solid var(--line);
    box-shadow: 0 24px 60px rgba(0,0,0,.18);
    overflow: auto;
  }
  .event-menu-button[aria-expanded="false"] + .event-nav { display: none; }
  .event-nav[hidden] { display: none; }
  .event-nav a { min-height: 50px; display: flex; align-items: center; padding: 10px 4px; border-bottom: 1px solid var(--line); font-size: 11px; }
  .event-nav .event-nav-rsvp { justify-content: center; margin-top: 14px; color: var(--accent-ink); border: 0; }

  .event-hero, .layout-centered .event-hero, body[class*="sample-variant-"] .event-hero { min-height: 0; display: flex; flex-direction: column; gap: 0; padding: 0; border-width: 0; }
  .hero-visuals, body[class*="sample-variant-"] .hero-visuals { width: 100%; min-height: 0; max-height: none; display: grid; grid-template-columns: 1fr; grid-template-rows: auto; order: 1; gap: 0; margin: 0; padding: 0; background: #111; border: 0; border-radius: 0; box-shadow: none; transform: none; }
  .hero-photo, .layout-centered .hero-photo, body[class*="sample-variant-"] .hero-photo-main { min-height: 0; grid-area: auto; order: 1; margin: 0; background: #111; border: 0; border-radius: 0; filter: none; transform: none; }
  .hero-accent, body[class*="sample-variant-"] .hero-accent { display: none !important; }
  .hero-photo img { width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: contain; object-position: center; background: #111; }
  .hero-panel, .layout-centered .hero-panel, body[class*="sample-variant-"] .hero-panel { width: auto; display: flex; order: 2; align-items: flex-start; gap: 0; margin: 0; padding: 44px 20px 52px; text-align: left; background-image: none; border: 0; border-radius: 0; box-shadow: none; transform: none; }
  body[class*="sample-variant-"] .hero-panel::after { display: none; }
  .layout-ticket .hero-panel { margin: 0; border: 0; }
  .hero-panel h1, body[class*="sample-variant-"] .hero-panel h1 { max-width: 100%; font-size: clamp(34px, 10.5vw, 52px); line-height: 1.26; }
  body[class*="sample-variant-"] .hero-eyebrow, body[class*="sample-variant-"] .hero-panel h1, body[class*="sample-variant-"] .hero-subtitle, body[class*="sample-variant-"] .hero-meta, body[class*="sample-variant-"] .hero-actions, body[class*="sample-variant-"] .hero-note { width: 100%; grid-column: auto; grid-row: auto; }
  .hero-subtitle { width: 100%; margin-top: 18px; font-size: 13px; }
  .hero-meta { width: 100%; margin-top: 23px; padding: 16px 0; }
  .hero-meta span { font-size: 13px; }
  .hero-actions, .layout-centered .hero-actions { width: 100%; justify-content: stretch; }
  .event-button { flex: 1 1 140px; min-height: 54px; padding-inline: 14px; }
  .sample-photo-label { right: 8px; bottom: 8px; min-height: 24px; font-size: 6px; }

  .quick-facts-wrap { width: calc(100% - 24px); margin: 12px auto 0; }
  .quick-facts { grid-template-columns: repeat(2, 1fr); box-shadow: 0 12px 38px rgba(13,20,29,.09); }
  .quick-facts div { padding: 18px 15px; }
  .quick-facts div:nth-child(2) { border-right: 0; }
  .quick-facts div:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .quick-facts dd { font-size: 12px; }

  .event-section { padding: 74px 18px; }
  .event-section h2 { font-size: 29px; line-height: 1.55; }
  .section-lead { margin-top: 18px; font-size: 13px; line-height: 1.9; }
  .invitation-card { padding: 48px 23px; }
  .invitation-copy p { font-size: 13px; line-height: 2; white-space: normal; }
  .invitation-sign { font-size: 15px; }
  .event-quote { font-size: 23px; line-height: 1.85; }
  .story-heading { grid-template-columns:1fr; gap:18px; }
  .story-heading .section-lead { margin:0; }
  .story-grid, body[class*="sample-variant-"] .story-grid { width:100%; display:grid; grid-template-columns:1fr; gap:16px; margin:34px 0 0; padding:0; padding-bottom:0; background:transparent; border:0; }
  .story-card, .story-card:first-child, .story-card:nth-child(2), .story-card:nth-child(3), body[class*="sample-variant-"] .story-card, body[class*="sample-variant-"] .story-card:first-child, body[class*="sample-variant-"] .story-card:nth-child(2), body[class*="sample-variant-"] .story-card:nth-child(3) { width:100%; display:grid; grid-template-columns:1fr; grid-template-rows:auto 1fr; grid-column:auto; grid-row:auto; margin:0; padding:0; background:var(--paper); border:1px solid var(--line); border-radius:0; box-shadow:none; transform:none; }
  .story-card figure, .story-card:first-child figure, body[class*="sample-variant-"] .story-card figure, body[class*="sample-variant-"] .story-card:first-child figure { min-height:0; order:0; margin:0; padding:0; border:0; border-radius:0; filter:none; }
  .story-card img, body[class*="sample-variant-"] .story-card img { width:100%; height:auto; aspect-ratio:16/9; object-fit:contain; filter:none; }
  .story-card-copy, body[class*="sample-variant-"] .story-card-copy { min-height:0; padding:24px 20px; background-image:none; border:0; }
  .story-foot { grid-template-columns:auto 1fr; margin-top:24px; }
  .story-foot p { grid-column:1 / -1; }
  .sprinkle-option,.sprinkle-hero,.sprinkle-story,.sprinkle-access,.sprinkle-gallery,.sprinkle-rsvp { width:100%; grid-template-columns:36px minmax(0,1fr); gap:11px; margin:24px 0 0; padding:14px; }
  .sprinkle-mark { width:32px; height:32px; }
  .sprinkle-copy strong { font-size:13px; }
  .sprinkle-copy p,.sprinkle-hero .sprinkle-copy p { display:block; font-size:8px; }
  .sprinkle-option > button,.sprinkle-rsvp > button { grid-column:1 / -1; width:100%; min-height:50px; }

  .mood-section { min-height:0; display:flex; flex-direction:column; }
  .mood-visual { min-height:0; display:grid; grid-template-columns:1fr 1fr; background:#111; }
  .mood-photo, .mood-photo-main, .mood-photo-inset { position:relative; inset:auto; right:auto; bottom:auto; width:100%; margin:0; border:0; box-shadow:none; }
  .mood-photo-main { grid-column:1 / -1; }
  .mood-photo-inset { grid-column:1 / -1; }
  .mood-photo img,.mood-photo-inset img { width:100%; height:auto; aspect-ratio:16/9; object-fit:contain; }
  .mood-panel { padding:64px 20px 72px; }
  .mood-panel blockquote { font-size:31px; line-height:1.55; }
  .mood-panel > p { font-size:12px; }
  .schedule-list { margin-top: 34px; }
  .schedule-list li { grid-template-columns: 1fr; gap: 7px; padding: 22px 2px; }
  .schedule-list h3 { font-size: 18px; }
  .venue-grid { grid-template-columns: 1fr; gap: 24px; margin-top: 34px; }
  .venue-map { min-height: 290px; }
  .venue-details { padding: 0; }
  .video-sample { margin-top: 30px; }
  .video-play { width: 66px; height: 66px; }
  .gallery-head { align-items: flex-start; flex-direction: column; gap: 16px; }
  .after-gallery { grid-template-columns: 1fr; gap: 14px; margin-top: 32px; }
  .gallery-item, .gallery-item:first-child { grid-column: auto; grid-row: auto; }
  .gallery-item img, .gallery-item:first-child img { width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: contain; }
  .gallery-privacy { align-items: flex-start; }

  .option-heading { grid-template-columns: 1fr; gap: 18px; }
  .option-heading .section-lead { margin-top: 0; }
  .option-grid, body[class*="sample-variant-"] .option-grid { grid-template-columns: 1fr; gap: 14px; margin-top: 34px; }
  .option-card { padding: 26px 20px; }
  .option-card > p { min-height: 0; }
  .option-preview { min-height: 136px; }
  .option-demo-action { min-height: 52px; }
  .option-choice-row button,.option-language button,.option-filter button,.option-times button,.option-weather button { min-height: 48px; }
  .option-search input { height:52px; font-size:16px; }
  .option-search button { min-width:70px; }
  .option-message input { height:52px; font-size:16px; }
  .option-message button { width:60px; }

  body[class*="sample-variant-"] .schedule-list { display:block; margin-top:34px; padding:0; border-top:1px solid var(--line); }
  body[class*="sample-variant-"] .schedule-list::before { display:none; }
  body[class*="sample-variant-"] .schedule-list li { display:grid; grid-template-columns:1fr; gap:7px; margin:0; padding:22px 2px; background:transparent; border:0; border-bottom:1px solid var(--line); }
  body[class*="sample-variant-"] .after-gallery { grid-template-columns:1fr; }
  body[class*="sample-variant-"] .gallery-item, body[class*="sample-variant-"] .gallery-item:first-child { grid-column:auto; grid-row:auto; }

  .rsvp-shell { grid-template-columns: 1fr; }
  .rsvp-intro { padding: 38px 22px; }
  .rsvp-form { padding: 34px 20px; }
  .form-row { grid-template-columns: 1fr; gap: 18px; margin-bottom: 18px; }
  .form-field.full { grid-column: auto; }
  .form-field input, .form-field select, .form-field textarea { min-height: 56px; font-size: 16px; }
  .attendance-options { grid-template-columns: 1fr; }
  .attendance-options label { min-height: 60px; }
  .rsvp-submit { min-height: 62px; }
  .demo-response { min-height: 420px; padding: 46px 22px; }
  .faq-list summary { min-height: 76px; font-size: 14px; line-height: 1.7; }
  .sample-handoff-inner, .event-footer-inner { align-items: flex-start; flex-direction: column; }
  .sample-handoff a { width: 100%; justify-content: center; }
  .event-footer { padding-bottom: 34px; }

  .mobile-rsvp {
    position: fixed;
    z-index: 950;
    right: 0;
    bottom: 0;
    left: 0;
    min-height: 70px;
    display: grid;
    grid-template-columns: .72fr 1.28fr;
    padding-bottom: env(safe-area-inset-bottom);
    color: #fff;
    background: #10151b;
    border-top: 1px solid rgba(255,255,255,.18);
    box-shadow: 0 -10px 36px rgba(0,0,0,.22);
  }
  .mobile-rsvp a { min-height: 70px; display: grid; place-items: center; padding: 10px; font-size: 10px; font-weight: 800; letter-spacing: .05em; text-align: center; }
  .mobile-rsvp a:last-child { color: var(--accent-ink); background: var(--accent); }
  .lightbox-inner { padding: 52px 10px 22px; }
  .lightbox-prev { left: 3px; }
  .lightbox-next { right: 3px; }
}

@media (max-width: 390px) {
  .event-brand-copy strong { max-width: 150px; }
  .hero-panel h1 { font-size: 34px; }
  .quick-facts-wrap { width: calc(100% - 16px); }
  .quick-facts div { padding-inline: 12px; }
  .event-section { padding-inline: 16px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; }
}

@media print {
  .sample-ribbon, .event-header, .mobile-rsvp, .rsvp-section, .sample-handoff, .gallery-lightbox { display: none !important; }
  body { padding: 0; color: #000; background: #fff; }
  .event-hero { min-height: 0; grid-template-columns: 1fr 1fr; }
  .hero-photo { min-height: 360px; }
  .event-section { padding: 45px 20px; break-inside: avoid; }
}
