/* Shared editorial grid and visitor routes. No framework or external fonts. */
.red-punctuation { color: var(--red); }
.page-header { padding: 25px var(--gutter); display: flex; gap: 35px; align-items: center; justify-content: space-between; border-bottom: 1px solid #f3eddf30; }
.page-header nav { display: flex; flex-wrap: wrap; gap: 28px; }
.page-header nav a { padding-block: 12px; font-size: 14px; text-decoration: none; }
.page-header nav a[aria-current="page"] { text-decoration: underline; text-decoration-color: var(--red); text-decoration-thickness: 2px; text-underline-offset: 8px; }
.page-main { overflow: clip; }
.page-hero { padding: 70px var(--gutter) 65px; }
.page-hero h1 { position: static; font-size: clamp(48px, 7.5vw, 112px); line-height: .98; letter-spacing: -.055em; font-weight: 550; max-width: 1100px; }
.text-link { display: inline-flex; align-items: center; gap: 40px; padding: 12px 0; text-decoration-thickness: 1px; text-underline-offset: 6px; font-size: 15px; }
.text-link span { display: inline-block; transition: transform 250ms ease; }
.text-link:hover span { transform: translate(4px,-4px); }
.questions-heading { grid-template-columns: 1.6fr 1fr; align-items: end; }
.questions-heading h2 { font-size: clamp(50px, 6.8vw, 100px); font-weight: 550; }
.speakers-section { padding: 90px var(--gutter); background: var(--paper); color: var(--ink); }
.section-heading-row { display: grid; grid-template-columns: 1.5fr 1fr; gap: 50px; align-items: end; margin-bottom: 48px; }
.section-heading-row h2 { font-size: clamp(52px, 8vw, 115px); font-weight: 600; }
.section-side-copy { max-width: 370px; font-size: 16px; line-height: 1.6; }
.section-side-copy p { margin-bottom: 15px; }
.speaker-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 26px; }
.portrait-slot { position: relative; aspect-ratio: 4/5; background: #e4ded2; border-top: 1px solid var(--ink); overflow: hidden; }
.portrait-number { position: absolute; top: -10%; left: -3%; font-size: clamp(120px, 18vw, 290px); font-weight: 600; letter-spacing: -.08em; color: transparent; -webkit-text-stroke: 1px #16121170; line-height: 1; }
.portrait-circle { position: absolute; width: 38%; aspect-ratio: 1; border-radius: 50%; background: var(--red); right: 12%; bottom: 15%; }
.speaker-placeholder:nth-child(2) .portrait-circle { border-radius: 0; width: 34%; transform: rotate(45deg); bottom: 20%; }
.speaker-placeholder:nth-child(3) .portrait-circle { background: transparent; border: 14px solid var(--red); }
.portrait-note { position: absolute; bottom: 16px; left: 18px; font-size: 12px; }
.speaker-placeholder h3 { font-size: 25px; font-weight: 500; letter-spacing: -.025em; margin: 18px 0 6px; }
.speaker-placeholder > p { font-size: 13px; color: #625a53; }
body.motion-enabled .portrait-slot::after { content: ""; position: absolute; inset: 0; background: var(--paper); transform: translateY(0); transition: transform 850ms cubic-bezier(.2,.7,.2,1); }
body.motion-enabled .portrait-slot.is-visible::after { transform: translateY(-101%); }
.speaker-placeholder:nth-child(2) .portrait-slot::after { transition-delay: 130ms; }
.speaker-placeholder:nth-child(3) .portrait-slot::after { transition-delay: 260ms; }
.stage-window { --stage-progress: 0; height: clamp(430px, 65vw, 780px); position: relative; overflow: hidden; background: var(--ink); isolation: isolate; }
.stage-window > img { width: 100%; height: 100%; object-fit: cover; }
.stage-shade { position: absolute; inset: 0; background: #0005; }
.stage-door { display: none; position: absolute; top: 0; bottom: 0; width: 50.1%; background: var(--ink); }
.stage-door-left { left: 0; }
.stage-door-right { right: 0; }
body.motion-enabled .stage-door { display: block; }
body.motion-enabled .stage-door-left { transform: translateX(calc(var(--stage-progress) * -101%)); }
body.motion-enabled .stage-door-right { transform: translateX(calc(var(--stage-progress) * 101%)); }
body.motion-enabled .stage-window > img { transform: scale(calc(1.12 - var(--stage-progress) * .12)); }
.stage-statement { position: absolute; inset: 50% auto auto var(--gutter); transform: translateY(-50%); color: white; font-size: clamp(50px,10vw,155px); font-weight: 650; line-height: .9; letter-spacing: -.065em; }
.stage-statement span { color: var(--red); }
.stage-credit { position: absolute; bottom: 20px; right: var(--gutter); left: var(--gutter); text-align: right; color: white; font-size: 11px; }
.stage-credit a { text-underline-offset: 3px; }
.action-section { display: grid; grid-template-columns: .75fr 1.25fr; gap: 80px; padding-top: 80px; padding-bottom: 80px; }
.event-index > p { font-size: 14px; line-height: 1.5; }
.event-index .event-index-date { font-size: clamp(52px,6.5vw,100px); font-weight: 600; line-height: .95; letter-spacing: -.06em; margin: 28px 0 35px; }
.action-row { position: relative; display: grid; grid-template-columns: 28px 1fr 48px; gap: 15px; border-top: 1px solid #f3eddf70; padding: 26px 12px 28px; text-decoration: none; overflow: hidden; isolation: isolate; }
.action-row::before { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--red); transform: translateX(-101%); transition: transform 350ms cubic-bezier(.2,.7,.2,1); }
.action-row:hover::before, .action-row:focus-visible::before { transform: translateX(0); }
.action-number { font-size: 12px; padding-top: 12px; }
.action-row strong { font-size: clamp(35px,4.8vw,73px); font-weight: 500; line-height: 1; letter-spacing: -.05em; }
.action-arrow { font-size: 45px; line-height: 1; transition: transform 300ms ease; }
.action-row:hover .action-arrow { transform: rotate(45deg); }
.action-explanation, .action-status { grid-column: 2 / 4; font-size: 14px; line-height: 1.5; }
.action-status { font-size: 12px; border: 1px solid #f3eddf50; justify-self: start; padding: 5px 9px; }
.action-row:hover, .action-row:focus-visible { color: #fff; }
.attend-hero { display: grid; grid-template-columns: 1fr .8fr; gap: 70px; align-items: end; }
.attend-hero h1 { font-size: clamp(75px,13vw,180px); }
.attend-intro { max-width: 490px; margin-top: 24px; font-size: 21px; line-height: 1.5; }
.ticket-panel { padding: 26px 0 0; border-top: 2px solid var(--red); }
.ticket-panel h2 { font-size: 27px; line-height: 1.1; letter-spacing: -.025em; margin-bottom: 18px; }
.ticket-panel p { font-size: 15px; line-height: 1.6; margin-top: 13px; }
.ticket-panel .ticket-price { font-size: 42px; letter-spacing: -.04em; }
.ticket-price small { font-size: 13px; letter-spacing: 0; margin-left: 8px; }
.attendance-details { background: var(--paper); color: var(--ink); padding: 60px var(--gutter); }
.attendance-facts { margin: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 0 65px; }
.attendance-facts > div { border-top: 1px solid #9f9688; padding: 24px 0 30px; }
.attendance-facts dt { font-size: 13px; margin-bottom: 13px; }
.attendance-facts dd { margin: 0; font-size: 30px; line-height: 1.15; letter-spacing: -.025em; }
.attendance-facts dd small { display: block; margin-top: 10px; font-size: 14px; line-height: 1.5; letter-spacing: 0; color: #625a53; }
.attend-information { display: grid; grid-template-columns: 1fr 1fr; gap: 65px; padding: 55px 0 10px; }
.attend-information h2 { font-size: 29px; margin-bottom: 22px; }
.attend-information p { font-size: 16px; line-height: 1.65; }
.attend-information p + p { margin-top: 16px; }
.attend-information ol { margin: 0; padding-left: 22px; font-size: 16px; line-height: 1.6; }
.attend-information li + li { margin-top: 15px; }
.attend-faq { padding: 65px var(--gutter); }
.attend-faq h2 { font-size: 42px; margin-bottom: 28px; }
.attend-faq details { border-top: 1px solid #f3eddf50; padding: 22px 0; }
.attend-faq summary { font-size: 21px; cursor: pointer; }
.attend-faq details p { max-width: 750px; margin-top: 18px; line-height: 1.7; color: var(--muted); }
@media (max-width: 760px) {
  .masthead { gap: 16px; }
  .masthead nav { width: 100%; justify-content: space-between; gap: 12px; }
  .masthead nav a { display: block; font-size: 12px; }
  .masthead nav a span { margin-left: 4px; }
  .page-header { align-items: start; flex-wrap: wrap; gap: 22px; }
  .page-header nav { gap: 24px; width: 100%; }
  .page-hero { padding-block: 45px; }
  .questions-heading, .section-heading-row { grid-template-columns: 1fr; gap: 24px; }
  .questions-heading h2 { font-size: 57px; }
  .speakers-section { padding-block: 55px; }
  .speaker-grid { grid-template-columns: 1fr; gap: 38px; }
  .portrait-slot { aspect-ratio: 5/4; }
  .portrait-number { font-size: 220px; }
  .section-heading-row h2 { font-size: 65px; }
  .action-section { grid-template-columns: 1fr; gap: 45px; padding-block: 55px; }
  .event-index .event-index-date { font-size: 69px; margin-block: 20px; }
  .event-index { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; align-items: end; }
  .event-index > p:first-child { grid-column: 1 / -1; }
  .action-row strong { font-size: 48px; }
  .stage-window { height: 480px; }
  .stage-statement { font-size: 66px; }
  .stage-credit { font-size: 10px; text-align: left; }
  .attend-hero, .attend-information { grid-template-columns: 1fr; gap: 38px; }
  .attend-hero h1 { font-size: 105px; }
  .attend-intro { font-size: 19px; }
  .attendance-facts { grid-template-columns: 1fr; }
  .attendance-facts dd { font-size: 28px; }
}
@media (prefers-reduced-motion: reduce) {
  .portrait-slot::after { display: none !important; }
  .stage-door { display: none !important; }
  .stage-window > img { transform: none !important; }
}
