/* ==========================================================================
   Attendee experience — Kasasa brand pass (see brand.css for tokens).
   Overrides app.css and access.css; loaded after both.
   ========================================================================== */

:root {
  --bg: var(--k-black);
  --panel: var(--k-black-2);
  --line: #ffffff1f;
  --text: var(--k-white);
  --muted: #bdb8b5;
  --red: var(--k-red);
  --cream: var(--k-white);
}
body { background: var(--k-black); }
:is(button, a, select, textarea, input):focus-visible { outline-color: var(--k-orange) !important; }

/* ---------- Type ---------- */
h1, h2, h3 { font-weight: 700; letter-spacing: -.025em; line-height: 1.06; }
p { color: var(--muted); }
em { color: var(--k-orange); }
.hero h1, .page-intro h1, .arrival h1, .access-story h1, .personal-welcome h1 { font-weight: 800; letter-spacing: -.03em; }
.hero h1 em, .page-intro h1 em, .arrival h1 em, .access-story h1 em { color: var(--k-orange); font-weight: 800; }

/* Page-level eyebrows become the red tab label. */
.hero .eyebrow, .page-intro .eyebrow, .arrival .eyebrow, .access-story .eyebrow, .personal-kicker, .panel-dialog .dialog-top .eyebrow {
  display: inline-block; padding: 7px 12px 6px; background: var(--k-red); color: var(--k-white);
  font-size: 11px; font-weight: 700; letter-spacing: .06em; line-height: 1.2;
}
.access-story .eyebrow { display: inline-flex; }
.access-story .eyebrow::before { display: none; }
.eyebrow, .card-content .eyebrow, #session-time { color: var(--k-orange); font-weight: 700; letter-spacing: .08em; }
.masthead-note, .card-label, .small-label, .preview-banner, .hero-bottom, .page-footer, .section-heading > span, .arrival-top, .arrival-bottom {
  font-weight: 600; letter-spacing: .1em;
}
.card-label, .section-heading > span, .small-label { color: var(--k-grey-500); font-size: 10px; }

/* ---------- Buttons ---------- */
.primary-button {
  background: var(--k-red); color: var(--k-white); border: 0; border-radius: 0;
  font-size: 14px; font-weight: 700; letter-spacing: .01em; min-height: 52px; padding: 14px 22px;
}
.primary-button:hover { background: var(--k-red-hover); }
.primary-button:disabled { background: var(--k-grey-700); color: #d8d4d2; }
.secondary-button { border: 1.5px solid var(--k-white); background: transparent; color: var(--k-white); border-radius: 0; font-weight: 700; }
.secondary-button:hover { background: #ffffff14; }
.text-button { color: #dcd8d6; font-weight: 600; }
.icon-button { border-color: #ffffff33; }
.segmented button { background: transparent; border: 1.5px solid #ffffff33; border-radius: 0; color: #e6e2e0; font-weight: 600; }
.segmented button[aria-pressed=true] { background: var(--k-red); border-color: var(--k-red); color: var(--k-white); }
.toggle { border-radius: 24px; border-color: #ffffff40; background: var(--k-black-3); font-weight: 700; }
.toggle[aria-pressed=true] { background: var(--k-red); border-color: var(--k-red); color: var(--k-white); }

/* ---------- Masthead & navigation ---------- */
.masthead { border-bottom-color: var(--line); }
.navigation a { color: #c9c4c1; font-weight: 600; }
.navigation a[aria-current=page] { color: var(--k-white); }
.navigation a[aria-current=page]::after { width: 6px; height: 6px; background: var(--k-red); border-radius: 0; }
.preview-banner { color: #cfcac7; }
.status-dot, .access-local i { background: var(--k-red); box-shadow: none; border-radius: 0; }
.access-account span { color: #d8d4d2; }

/* ---------- Hero: black field, grainy lava drapes in from the corner ---------- */
.hero, .personal-welcome {
  border: 0;
  background: url('/assets/brand/lava-blob.webp') right -150px top -190px / min(620px, 58%) auto no-repeat, var(--k-black);
}
/* The hero stays smooth: no grain overlay. */
.hero-orbit, .hero-flame { display: none; }
.hero-description { color: #e3dfdd; font-size: 16px; }
.hero-bottom { border-top-color: #ffffff26; color: #bdb8b5; }

/* ---------- Sections & cards ---------- */
.section-heading h2 { font-size: 28px; }
.feature-card { background: var(--k-black-2); border: 0; border-top: 3px solid var(--k-red); }
.feature-card:hover { border-color: var(--k-orange); background: #262221; }
.agenda-card { background: var(--k-black-2); }
.feature-card::after { background: linear-gradient(110deg, transparent 43%, #ff592112 49%, #ff59211f 50%, transparent 57%); }
.card-content h3 { font-size: 30px; }
.card-footer { border-top-color: var(--line); font-weight: 700; font-size: 12px; }
.card-footer > span:last-child { color: var(--k-orange); }
.connection-art i { border-color: #ff592166; background: radial-gradient(circle, #d7192033, transparent); }
.home-glyph { color: var(--k-red); font-weight: 700; }
.page-footer { color: var(--k-grey-500); border-top: 1px solid var(--line); }

/* ---------- Personal itinerary ---------- */
.personal-panel { border: 0; background: var(--k-black-2); padding: 32px; }
.personal-panel > h2 { font-size: 30px; }
.personal-panel > p { color: #d0cbc8; }
.personal-session { background: var(--k-black); border: 0; border-left: 3px solid var(--k-red); }
.personal-session time { color: var(--k-orange); font-weight: 600; }
.personal-session h3 { font-weight: 700; }
.personal-session .session-phase { color: var(--k-orange); font-weight: 700; letter-spacing: .1em; }
.personal-session strong { color: var(--k-white); }
.personal-session p { color: #c9c4c1; }
.personal-session .directions { border-top-color: var(--line); }
.publication-message { border-left-color: var(--k-red); background: var(--k-black); }

/* ---------- Live signals ---------- */
.signal-stack { background: linear-gradient(180deg, #181615f5, #181615cc, transparent); }
.attendee-signal { border: 0; background: var(--k-black-2); box-shadow: 0 16px 44px #0008; }
.attendee-signal::after { width: 4px; background: var(--k-red); }
.signal-flare { border-radius: 0; color: var(--k-white); background: var(--k-red); box-shadow: none; }
.attendee-signal div > p:first-child { color: var(--k-orange); font-size: 10px; }
.attendee-signal p { color: #cfcac7; font-size: 13px; }
.attendee-signal strong { color: var(--k-white); font-size: 12px; }
.signal-actions button { border-radius: 0; border-color: #ffffff33; font-size: 11px; font-weight: 700; }
.signal-urgent { outline: 2px solid var(--k-orange); }

/* ---------- Agenda ---------- */
.agenda-list { border-top-color: var(--line); }
.session-row { border-bottom-color: var(--line); }
.session-row:hover { background: var(--k-black-2); }
.session-row time { color: var(--k-orange); font-weight: 600; }
.session-row strong { font-weight: 700; letter-spacing: -.02em; }
.session-row > .session-arrow { color: var(--k-red); }
.content-note { color: #bdb8b5; }

/* ---------- Connect ---------- */
.connection-card { background: var(--k-black-2); border: 0; border-top: 3px solid var(--k-red); }
.connection-spot { border-left-color: var(--k-red); }
.connection-spot strong { font-weight: 700; }
.connection-people li { border-radius: 0; background: var(--k-black); }
.common-spark { background: var(--k-black-2); border: 0; }
.common-spark-steps li { color: #e3dfdd; }
.common-spark-clock { color: var(--k-orange); font-weight: 700; }
.common-spark-nudge, .connection-status { color: var(--k-orange-soft) !important; font-style: normal; }
.common-spark-form input { background: var(--k-black); border-color: #ffffff40; border-radius: 0; }
.common-spark-result { background: url('/assets/brand/lava-blob.webp') right -60px center / 220px auto no-repeat, var(--k-black); border: 0; border-left: 3px solid var(--k-orange); }
.common-spark-result strong { font-family: var(--k-font); font-weight: 800; letter-spacing: -.02em; }
.empty-card { background: url('/assets/brand/lava-blob.webp') center -150px / 320px auto no-repeat, var(--k-black-2); border: 0; }
.empty-symbol { color: var(--k-white); }

/* ---------- Ask & survey forms ---------- */
.question-card { background: var(--k-black-2); border: 0; border-top: 3px solid var(--k-red); }
label, legend { color: #ece9e7; font-weight: 600; }
textarea, select, #survey-content input:not([type=checkbox]), #survey-content textarea, #survey-content select {
  background: var(--k-black) !important; border: 1.5px solid #ffffff33 !important; border-radius: 0 !important;
}
textarea:focus, select:focus, input:focus { border-color: var(--k-orange) !important; }
#question-status { color: var(--k-orange-soft); }
#survey-content input[type=checkbox], #survey-content input[type=radio] { accent-color: var(--k-red); }

/* ---------- Dialogs & toast ---------- */
dialog { background: var(--k-black-2); border: 0; border-top: 4px solid var(--k-red); }
dialog::backdrop { background: #0c0b0bd9; }
.panel-dialog { border-radius: 0; }
.panel-dialog h2 { font-size: 34px; }
.mode-options button { background: var(--k-black); border: 1.5px solid #ffffff26; border-radius: 0; }
.mode-options button[aria-pressed=true] { border-color: var(--k-red); background: #2a1515; }
.mode-options span { color: var(--k-orange); }
.mode-options small { color: #c9c4c1; }
.install-steps { background: var(--k-black); border-left: 3px solid var(--k-red); }
.toast { background: var(--k-white); color: var(--k-black); border-radius: 0; font-weight: 600; border-left: 4px solid var(--k-red); }
.skip-link { background: var(--k-red); color: var(--k-white); }

/* ---------- Arrival: black sheet; the lava is the motion ---------- */
.arrival, .arrival::backdrop { background-color: var(--k-black); }
.arrival-sheet { background: var(--k-black); }
.arrival-halo, .arrival-flame { display: none; }
.arrival-top, .arrival-bottom { color: #cfcac7; }
.arrival-content > p:not(.eyebrow) { color: #e3dfdd; font-size: 16px; }
.arrival h1 { font-size: clamp(34px, 4vw, 58px); }
#arrival .arrival-bottom { background: #181615cc; border: 1px solid #ffffff1f; border-radius: 0; }
#arrival .sound-choice { background: transparent; border: 1.5px solid #ffffff33; color: #e3dfdd; font-weight: 600; }
#arrival .sound-choice[aria-pressed=true] { border-color: var(--k-orange); color: var(--k-white); }
#arrival .arrival-content > p, #arrival .arrival-content h1 { text-shadow: 0 2px 20px #181615; }
#arrival .arrival-logo { filter: brightness(var(--logo-brightness, 1)) drop-shadow(0 0 var(--logo-glow-size, 26px) rgb(255 89 33 / var(--logo-glow-alpha, .22))); }
.logo-heat { background: linear-gradient(90deg, #d71920, #ff5921 70%, #ff8a5c); }
.logo-spark { background: #ff8a5c; box-shadow: 0 0 12px 5px #ff5921, 0 0 36px 14px #d71920; border-radius: 0; }
#arrival.spark-unlocked .arrival-sheet { filter: saturate(1.25) brightness(1.2); }
/* Without motion the lava still frames the arrival, as a still print graphic. */
body.mode-simple .arrival-sheet, .arrival-sheet.k-still {
  background: url('/assets/brand/lava-blob.webp') right -130px top -150px / clamp(320px, 42vw, 560px) auto no-repeat,
              url('/assets/brand/lava-blob.webp') left -140px bottom -160px / 420px auto no-repeat, var(--k-black);
}
@media (prefers-reduced-motion: reduce) {
  .arrival-sheet { background: url('/assets/brand/lava-blob.webp') right -130px top -150px / clamp(320px, 42vw, 560px) auto no-repeat,
                   url('/assets/brand/lava-blob.webp') left -140px bottom -160px / 420px auto no-repeat, var(--k-black); }
}
.atmosphere { background: radial-gradient(ellipse at 12% 65%, #d7192014, transparent 45%), radial-gradient(ellipse at 88% 25%, #ff592110, transparent 40%); }

/* ---------- Access (sign-in): black story, white ticket ---------- */
.access-view { background: var(--k-black); color: var(--k-white); }
.access-wrap { background: var(--k-black); }
.access-wrap::before { display: none; }
.access-art { position: fixed; width: 620px; height: 620px; left: -300px; top: auto; bottom: -330px; z-index: 0; }
.access-stage, .access-header, .access-footer { z-index: 1; }
.access-art::before, .access-art::after { display: none; }
.access-art img { position: absolute; inset: 0; width: 100%; height: auto; opacity: 1; filter: none; transform: rotate(-12deg); animation: none; right: auto; top: 0; }
.access-header, .access-footer { border-color: #ffffff1f; }
.access-wordmark span, .access-footer, .access-edition, .access-sequence span { color: #c9c4c1; font-weight: 600; }
.access-sequence b { color: var(--k-orange); font-weight: 800; }
.access-header-actions button, .access-footer button { color: #e3dfdd; font-weight: 600; }
.access-story h1 { line-height: 1; }
.access-story > p:last-of-type { color: #e3dfdd; }
.access-story-footer { color: #c9c4c1; font-weight: 600; }
.access-story-footer b { color: var(--k-red); font-weight: 800; }
.access-ticket { background: var(--k-white); color: var(--k-black); border: 0; box-shadow: 0 30px 80px #0008; }
.access-ticket::before { height: 6px; top: 0; background: var(--k-red); }
.ticket-top { color: var(--k-grey-500); font-weight: 700; }
.ticket-symbol { color: var(--k-red); }
.access-ticket h2 { color: var(--k-black); font-weight: 800; }
.access-description, .access-fine, .access-help { color: var(--k-grey-700); }
.access-ticket label { color: var(--k-black); font-weight: 700; }
.access-ticket input { background: var(--k-white); color: var(--k-black); border: 1.5px solid var(--k-grey-300); border-radius: 0; }
.access-ticket input::placeholder { color: var(--k-grey-500); }
.access-ticket .primary-button { background: var(--k-red); border: 0; box-shadow: none; color: var(--k-white); font-size: 16px; }
.access-ticket .primary-button:hover { background: var(--k-red-hover); }
.access-ticket .text-button, .ticket-bottom button { color: var(--k-red); font-weight: 700; }
.access-message { color: var(--k-red-deep); }
.access-busy { color: var(--k-red); }
.ticket-bottom { border-top: 1px solid var(--k-grey-100); }
.ticket-progress i { background: var(--k-grey-100); }
.ticket-progress i:first-child,
.access-ticket[data-state=link_requested] .ticket-progress i:nth-child(2),
.access-ticket[data-state=restoring] .ticket-progress i { background: var(--k-red); }
@keyframes invitation-light { 50% { box-shadow: 0 0 0 6px #d7192033; } }

/* ---------- Spark game: same arcade, brand colours ---------- */
.spark-arena { border: 0; background: radial-gradient(circle at 50% 115%, #d7192055, transparent 65%), var(--k-black); }
.spark-game-stats { color: var(--k-orange); font-weight: 700; }
.spark-particle { background: var(--k-orange); }
.spark-particle:nth-child(even) { background: var(--k-red); }
.spark-arcade { border-color: var(--k-red); background: repeating-linear-gradient(0deg, #ffffff04 0 1px, transparent 1px 4px), var(--k-black); color: #ffd0bb; }
.spark-arcade h3, #spark-over-title { text-shadow: 2px 2px var(--k-red); color: var(--k-white); }
.spark-arcade .spark-arcade-kicker { color: var(--k-orange); }
.spark-entry-controls button { background: var(--k-orange); color: var(--k-black); }
#spark-initials { border-color: var(--k-orange); color: var(--k-white); background: var(--k-black-2); }

/* ---------- Kasasa sign-off ---------- */
.k-wordmark { display: inline-block; width: 84px; height: auto; margin-left: 10px; opacity: .9; vertical-align: -1px; }
main:focus { outline: none; }
.signal-actions button:last-child:not([aria-label]) { font-size: 11px; line-height: 1.2; padding: 7px 10px; }

@media (max-width: 620px) {
  .masthead { background: #181615f5; }
  .hero, .personal-welcome { background: url('/assets/brand/lava-blob.webp') right -170px top -170px / 360px auto no-repeat, var(--k-black); }
  .access-art { width: 360px; height: 360px; left: auto; right: -190px; bottom: auto; top: -150px; }
  .access-art img { transform: rotate(20deg); }
}

/* Enter: the lava flood covers everything; the arrival chrome steps aside first. */
#arrival.entering .arrival-top, #arrival.entering .arrival-bottom { opacity: 0; transition: opacity .25s ease-out; }
/* Short windows (small laptops, landscape phones): keep Enter clear of the bottom bar. */
@media (max-height: 640px) {
  #arrival .arrival-content { padding: 56px 24px 84px; }
  #arrival .logo-ignition { width: min(240px, 50vw); margin: 10px 0 14px; }
  #arrival h1 { font-size: clamp(26px, 3.4vw, 36px); }
  #arrival .arrival-content > p:not(.eyebrow) { margin: 10px 0 16px; }
}

/* Ignite Signals: the flame mark replaces the generated glyph. */
.signal-flare { width: 28px; height: 38px; background: none; box-shadow: none; animation: none; object-fit: contain; }

/* ---------- Consumer Portal / Editorial ----------
   The attendee sheet is light; only the branded scenes and arcade are dark.
   This stylesheet is not loaded by the planner. */
:root {
  color-scheme: light;
  --bg: #fff;
  --panel: #f5f3f1;
  --line: #dedad6;
  --text: var(--k-black);
  --muted: #625b56;
}
body { background: #fff; color: var(--text); }
.atmosphere { display: none; }
.app-shell { max-width: none; padding: 0; background: #fff; }
.masthead {
  height: 96px; padding: 0 max(40px, calc((100vw - 1200px) / 2));
  background: var(--k-black); color: #fff; border: 0;
}
.masthead-note { color: #c9c4c1; }
.masthead .icon-button { color: #fff; }
.navigation { right: max(118px, calc((100vw - 1044px) / 2)); top: 25px; }
.navigation a { color: #c9c4c1; }
.navigation a[aria-current=page] { color: #fff; }
main { width: min(1200px, calc(100% - 80px)); margin: 0 auto; }
.preview-banner, .access-account, .signal-stack { width: min(1200px, calc(100% - 80px)); margin-inline: auto; }
.preview-banner { color: #625b56; }
.access-account { padding: 12px 0; }
.access-account span { color: #625b56; overflow-wrap: anywhere; min-width: 0; }
.text-button { color: var(--k-red-deep); }
.icon-button { border: 0; border-radius: 0; box-shadow: none; }
.secondary-button { border-color: var(--k-red); color: var(--k-red-deep); }
.secondary-button:hover { background: #d719200a; }
.content-note, .card-label, .small-label, .section-heading > span, .page-footer { color: #625b56; }
.page-intro h1 em, .eyebrow, .card-content .eyebrow, #session-time { color: var(--k-red-deep); }

/* Still artwork follows the renderer's resting flow, with each row filled
   to the screen edge. It never curves back into a separate corner bubble. */
.arrival-sheet::before, .arrival-sheet::after, .hero::before, .hero::after,
.companion-page .page-intro::before, .companion-page .page-intro::after,
.access-story::before, .access-story::after {
  content: ''; position: absolute; pointer-events: none; z-index: 0;
  inset: -1px;
  background: var(--k-grain), radial-gradient(ellipse at 25% 85%, #ff9a46 0%, #ff5921 32%, #e83221 64%, #c41220 100%);
  background-blend-mode: soft-light;
}
.arrival-sheet::before, .hero::before, .companion-page .page-intro::before, .access-story::before {
  clip-path: polygon(100% 0%, 55.00% 0.000%, 59.36% 3.125%, 63.56% 6.250%, 67.50% 9.375%, 71.13% 12.500%, 74.40% 15.625%, 77.26% 18.750%, 79.72% 21.875%, 81.78% 25.000%, 83.46% 28.125%, 84.83% 31.250%, 85.94% 34.375%, 86.87% 37.500%, 87.68% 40.625%, 88.47% 43.750%, 89.30% 46.875%, 90.23% 50.000%, 91.32% 53.125%, 92.60% 56.250%, 94.11% 59.375%, 95.84% 62.500%, 97.79% 65.625%, 99.95% 68.750%, 102.29% 71.875%, 104.78% 75.000%, 107.39% 78.125%, 110.09% 81.250%, 112.86% 84.375%, 115.68% 87.500%, 118.54% 90.625%, 121.45% 93.750%, 124.40% 96.875%, 127.43% 100.000%, 100% 100%);
}
.arrival-sheet::after, .hero::after, .companion-page .page-intro::after, .access-story::after {
  clip-path: polygon(0% 0%, -43.28% 0.000%, -40.76% 3.125%, -38.54% 6.250%, -36.58% 9.375%, -34.84% 12.500%, -33.29% 15.625%, -31.87% 18.750%, -30.52% 21.875%, -29.18% 25.000%, -27.81% 28.125%, -26.33% 31.250%, -24.71% 34.375%, -22.87% 37.500%, -20.80% 40.625%, -18.45% 43.750%, -15.80% 46.875%, -12.83% 50.000%, -9.54% 53.125%, -5.94% 56.250%, -2.05% 59.375%, 2.10% 62.500%, 6.48% 65.625%, 11.05% 68.750%, 15.75% 71.875%, 20.52% 75.000%, 25.31% 78.125%, 30.06% 81.250%, 34.72% 84.375%, 39.22% 87.500%, 43.52% 90.625%, 47.59% 93.750%, 51.37% 96.875%, 54.85% 100.000%, 0% 100%);
  background: var(--k-grain), radial-gradient(ellipse at 78% 20%, #ff8b38 0%, #f04b20 35%, #d71920 76%);
}
.arrival-sheet, body.mode-simple .arrival-sheet, .arrival-sheet.k-still {
  background: var(--k-black);
}
.arrival-sheet { overflow: hidden; }
/* The canvas owns both moving and paused frames; CSS covers Simple/no graphics. */
#arrival:has(> .fire-surface:not([hidden])) .arrival-sheet::before,
#arrival:has(> .fire-surface:not([hidden])) .arrival-sheet::after,
.hero:has(> .fire-surface:not([hidden]))::before,
.hero:has(> .fire-surface:not([hidden]))::after,
.companion-page .page-intro:has(> .fire-surface:not([hidden]))::before,
.companion-page .page-intro:has(> .fire-surface:not([hidden]))::after,
.access-story:has(> .fire-surface:not([hidden]))::before,
.access-story:has(> .fire-surface:not([hidden]))::after { visibility: hidden; }
.arrival, .hero { color-scheme: dark; color: #fff; }
.arrival-content { padding: 100px 24px 124px; }
.arrival-content .eyebrow { background: transparent; color: #efebe8; letter-spacing: .2em; }
#arrival .arrival-content h1 { max-width: 660px; font-size: clamp(36px, 4.3vw, 64px); color: #fff; text-wrap: balance; }
#arrival .arrival-content h1 > span, #arrival .arrival-content h1 > em { display: block; color: #fff; }
#arrival .arrival-logo { filter: none; }
.arrival .logo-ignition { width: min(420px, 64vw); margin: 22px 0 32px; }
#arrival .arrival-top { top: max(28px, env(safe-area-inset-top)); }
#arrival .arrival-bottom {
  left: 6%; right: 6%; bottom: max(16px, env(safe-area-inset-bottom));
  border: 0; border-top: 1px solid #ffffff40; padding: 10px 0 0;
  background: transparent; backdrop-filter: none; flex-wrap: wrap;
}
#arrival .arrival-bottom .text-button { color: #fff; font-size: 12px; }
#arrival .arrival-content > p { max-width: 440px; }
#arrival .sound-choice { border: 0; }

/* The home scene is a clipped, stable host; content never follows the lava. */
.hero, .hero.personal-welcome {
  position: relative; isolation: isolate; overflow: hidden;
  min-height: 300px; padding: 36px 40px 20px; background: var(--k-black);
}
.hero .fire-surface { position: absolute; inset: 0; z-index: 1; }
.hero-copy, .hero-bottom { position: relative; z-index: 2; }
.hero .hero-copy { padding-top: 0; max-width: 780px; }
.hero h1, .personal-welcome h1 { color: #fff; font-size: clamp(32px, 4vw, 52px); max-width: 740px; margin: 18px 0 16px; line-height: 1.08; }
.hero h1 em { color: #fff; }
.hero .personal-kicker, .hero .eyebrow { background: transparent; padding: 0; color: #f5efea; font-size: 10px; letter-spacing: .14em; margin-bottom: 12px; }
.hero-description, .personal-welcome .hero-description { color: #e3dfdd; font-size: 14px; line-height: 1.65; max-width: 600px; }
.hero-bottom { margin-top: 28px; gap: 16px; min-height: 58px; color: #d7d1cd; }
.hero-controls { display: flex; align-items: center; gap: 22px; flex-wrap: wrap; }
.hero-bottom .text-button { color: #fff; font-size: 11px; }
.personal-reveal { animation: none; }

/* Live itinerary order comes from access.js, with past sessions disclosed. */
.personal-panel {
  position: relative; z-index: 2; background: #fff;
  margin: -20px 0 40px; padding: 28px 24px 0;
  border-radius: 24px 24px 0 0;
}
.personal-panel > h2 { font-size: clamp(25px, 3vw, 34px); margin: 12px 0 24px; }
.personal-panel > p, .personal-session p { color: #625b56; }
.personal-panel > .eyebrow { color: var(--k-red-deep); }
.personal-session {
  background: #fff; border: 1px solid #e5e0db; border-radius: 16px;
  padding: 24px; min-width: 0; overflow-wrap: anywhere;
}
.personal-session h3 { font-size: clamp(24px, 2.6vw, 32px); margin: 12px 0; }
.personal-session time, .personal-session .session-phase { color: var(--k-red-deep); }
.personal-session strong { color: var(--k-black); }
.personal-session .directions { border-color: #dedad6; }
.personal-session .dinner-table { color: var(--k-red-deep); border-color: #d7192066; }
.personal-primary { margin: 0 0 18px; background: #fff; border: 1px solid #e5e0db; border-radius: 16px; padding: 28px; }
.personal-primary > .personal-session { border: 0; border-radius: 0; padding: 0; background: transparent; }
.personal-primary h3 { font-size: clamp(28px, 3.4vw, 42px); }
.personal-connections, .personal-dinner { display: block; margin: 18px 0; }
.personal-connections { padding: 24px; border: 1px solid #e5e0db; border-radius: 16px; background: #fff; }
.personal-connections h3 { font-size: 26px; margin: 10px 0; }
.personal-connections p { margin-top: 8px; }
.personal-connections:hover { border-color: var(--k-red); }
.personal-schedule { gap: 18px; margin: 18px 0; }
.personal-earlier { border-top: 1px solid var(--line); margin: 26px 0; padding-top: 16px; }
.personal-earlier summary { cursor: pointer; min-height: 44px; padding: 8px 0; font-size: 14px; font-weight: 700; }
.personal-earlier summary:focus-visible { outline: 2px solid var(--k-orange); outline-offset: 4px; }
.publication-message { background: #f5f3f1; color: var(--text); margin: 24px 0; border-radius: 16px; }
.publication-message p, .publication-message time { color: #625b56; }
.section-heading { margin: 28px 0 18px; }
.overview-grid { grid-template-columns: repeat(3, 1fr); }
.feature-card, .agenda-card { background: #f5f3f1; min-height: 240px; border: 1px solid #e5e0db; border-radius: 16px; }
.feature-card:hover { background: #eeebe7; }
.feature-card::after { display: none; }
.card-content { padding-top: 28px; }
.card-content h3 { font-size: 26px; }
.card-footer { color: var(--k-red-deep); }
.page-footer .k-wordmark { filter: brightness(0); }

/* Functional pages, dialogs, and feedback use readable light surfaces. */
.companion-page .page-intro {
  position: relative; isolation: isolate; overflow: hidden;
  background: var(--k-black); color: #fff; padding: 36px 32px 48px;
}
.companion-page .page-intro > :not(.fire-surface) { position: relative; z-index: 2; }
.companion-page .page-intro .fire-surface { z-index: 1; }
.companion-page .page-intro .page-motion-toggle { color: #fff; margin-top: 12px; }
.settings-account { border-top: 1px solid #dedad6; margin-top: 24px; padding-top: 20px; }
.settings-account p { overflow-wrap: anywhere; color: #625b56; font-size: 13px; }
.settings-account > div { display: flex; gap: 24px; }
.companion-page .page-intro h1 { color: #fff; font-size: clamp(32px, 4vw, 48px); line-height: 1.12; max-width: 700px; margin: 16px 0; text-wrap: balance; }
.companion-page .page-intro h1 em { color: #fff; }
.companion-page .page-intro .eyebrow { background: transparent; color: #e8e2de; padding: 0; font-size: 10px; }
.companion-page .page-intro > p:not(.eyebrow) { color: #e8e2de; font-size: 14px; max-width: 600px; }
.page-sheet { position: relative; background: #fff; border-radius: 24px 24px 0 0; margin-top: -20px; padding: 28px 32px 40px; }
.page-sheet > .segmented { margin: 20px 0 24px; gap: 8px; flex-wrap: wrap; }
.page-sheet .segmented button { border: 1px solid #dedad6; border-radius: 999px; background: #f7f5f3; padding: 10px 18px; }
.page-sheet .segmented button[aria-pressed=true] { background: var(--k-red); border-color: var(--k-red); color: #fff; }
.page-sheet .agenda-list { border: 0; display: grid; gap: 12px; }
.page-sheet .session-row { padding: 22px; gap: 20px; background: #fff; border: 1px solid #e5e0db; border-radius: 16px; }
.page-sheet .session-row:hover { border-color: var(--k-red); background: #fff9f6; }
.page-sheet .session-row time { align-self: flex-start; flex: 0 0 90px; width: auto; padding: 12px 8px; border-radius: 10px; background: #fff0eb; text-align: center; }
.page-sheet .session-row > span:not(.session-arrow) { min-width: 0; flex: 1; }
.page-sheet .session-row strong { font-size: 23px; line-height: 1.25; overflow-wrap: anywhere; }
.page-sheet .session-row small { color: #625b56; line-height: 1.5; }
.page-sheet .session-arrow { flex-shrink: 0; }
.page-sheet #connection-content { max-width: none; margin-bottom: 0; }
.page-sheet :is(.connection-card, .common-spark, .question-card, .empty-card) { background: #fff; border: 1px solid #e5e0db; border-radius: 16px; }
.page-sheet .connection-intro h2 { font-size: clamp(26px, 3vw, 36px); line-height: 1.15; }
.page-sheet .connection-spot { background: #faf7f4; border: 0; border-radius: 12px; padding: 18px; }
.page-sheet .connection-spot strong { font-size: 19px; }
.page-sheet .connection-people li { border-radius: 10px; background: #f7f5f3; padding: 12px; overflow-wrap: anywhere; }
.page-sheet .common-spark h2 { font-size: clamp(26px, 3vw, 36px); }
.page-sheet .common-spark-result { border: 1px solid #eaded7; border-radius: 12px; background: #fff7f2; }
.page-sheet .common-spark-clock { border-radius: 12px; padding: 8px 14px; background: #fff0eb; text-align: center; }
.page-sheet .question-card { max-width: 800px; padding: 28px; }
.page-sheet #question-availability { margin: 0 0 24px; padding: 14px 16px; background: #f7f5f3; border-radius: 12px; }
.page-sheet .question-meta { flex-wrap: wrap; gap: 8px 16px; line-height: 1.6; }
.page-sheet :is(textarea, select, input:not([type=checkbox])),
.page-sheet #survey-content :is(textarea, select, input:not([type=checkbox])) { border-radius: 10px !important; }
.page-sheet :is(.primary-button, .secondary-button) { border-radius: 8px; }
.page-sheet #survey-content { max-width: 820px; margin: 0; }
.page-sheet #survey-content > h2 { font-size: 26px; line-height: 1.2; }
.page-sheet #survey-content > p { max-width: 720px; font-size: 14px; }
.page-sheet #event-survey-form > fieldset { padding: 24px; border: 1px solid #e5e0db; border-radius: 16px; }
.page-sheet #survey-content .survey-presentation,
.page-sheet #survey-content fieldset fieldset:not(.survey-presentation) { padding: 20px; border: 1px solid #e5e0db; border-radius: 12px; background: #faf9f7; margin-top: 24px; }
.page-sheet #survey-content legend { padding-inline: 8px; font-size: 16px; line-height: 1.4; }
.page-sheet #survey-content .survey-check { min-height: 44px; align-items: center; gap: 12px; }
.page-sheet #survey-content :is(input, textarea, select):focus-visible { outline: 2px solid var(--k-orange); outline-offset: 3px; }
.page-sheet #survey-status:not(:empty) { padding: 16px; background: #fff7f2; border: 1px solid #eaded7; border-radius: 12px; margin-top: 18px; max-width: 820px; }
.page-sheet #survey-content:empty { display: none; }
.segmented button { color: #514943; border-color: #b9b2ad; }
.session-row:hover { background: #f5f3f1; }
.session-row time { color: var(--k-red-deep); }
.connection-card, .common-spark, .question-card, .empty-card { background: #f5f3f1; }
.connection-people li, .common-spark-result { background: #fff; }
.common-spark-steps li { color: #514943; }
.common-spark-clock, .common-spark-nudge, .connection-status { color: var(--k-red-deep) !important; }
.common-spark-result strong, .empty-symbol { color: var(--k-red-deep); }
label, legend { color: var(--k-black); }
textarea, select, .common-spark-form input,
#survey-content input:not([type=checkbox]), #survey-content textarea, #survey-content select {
  color-scheme: light; color: var(--k-black); background: #fff !important; border: 1.5px solid #b9b2ad !important;
}
textarea::placeholder, input::placeholder { color: #766c64; }
textarea:disabled, select:disabled, input:disabled { color: #766c64; background: #eeeae6 !important; opacity: 1; }
#question-status, #survey-status { color: var(--k-red-deep); }
dialog.panel-dialog { color-scheme: light; color: var(--k-black); background: #fff; }
.panel-dialog .dialog-top .eyebrow { color: #fff; }
.mode-options button { color: var(--k-black); background: #f5f3f1; border-color: #c9c1bb; }
.mode-options button[aria-pressed=true] { background: #fff0eb; }
.mode-options small { color: #625b56; }
.mode-options span { color: var(--k-red-deep); }
.toggle { background: #eeeae6; color: #514943; border-color: #b9b2ad; }
.toggle[aria-pressed=true] { color: #fff; }
.install-steps { background: #f5f3f1; }
.signal-stack { background: linear-gradient(#fffffff5, #ffffffcc, transparent); }
.attendee-signal { background: #fff; box-shadow: 0 12px 32px #18161518; border: 1px solid #dedad6; }
.attendee-signal p, .attendee-signal strong { color: #514943; }
.attendee-signal div > p:first-child { color: var(--k-red-deep); }
.signal-actions button { color: var(--k-red-deep); border-color: #b9b2ad; }
/* One pair of lava corners frames the game; the arena stays clear for targets. */
dialog.panel-dialog.spark-game {
  position: fixed; isolation: isolate; overflow-x: hidden; overflow-y: auto;
  color-scheme: dark; color: #fff; background: var(--k-black); border: 0;
  padding: 30px; box-shadow: 0 24px 100px #0008;
}
.spark-game::before, .spark-game::after {
  content: ''; position: absolute; pointer-events: none; z-index: 0;
  background: var(--k-grain), linear-gradient(140deg, #d71920, #ff5921 75%, #ff9646);
  background-blend-mode: soft-light;
}
.spark-game::before { top: 0; right: 0; width: 24%; height: 110px; border-bottom-left-radius: 95% 86%; }
.spark-game::after { left: 0; bottom: 0; width: 20%; height: 80px; border-top-right-radius: 94% 88%; }
.spark-game > * { position: relative; z-index: 1; }
.spark-game .dialog-top { margin-bottom: 28px; }
.spark-game .dialog-top .eyebrow { padding: 0; background: transparent; color: #ddd5cf; font-size: 10px; letter-spacing: .12em; }
.spark-game .icon-button { border: 0; border-radius: 0; background: transparent; color: #fff; }
.spark-game h2, .spark-game h3 { color: #fff; font-family: var(--k-font); text-shadow: none; }
.spark-game p { color: #d7d1cd; }
#spark-play-screen > p { font-size: 14px; line-height: 1.65; max-width: 420px; }
.spark-game-stats { color: #fff; font-weight: 700; border-top: 1px solid #ffffff26; padding-top: 16px; }
.spark-arena { isolation: isolate; color: #fff; background: #100f0e; border: 1px solid #ffffff26; }
.spark-arena > p { position: relative; z-index: 1; color: #ddd5cf; }
#spark-target { z-index: 2; border-radius: 0; border: 1px solid #ffffff45; background: #181615e6; }
#spark-target img { filter: drop-shadow(0 0 10px #ff592180); }
.spark-burst { z-index: 3; }
.spark-game .spark-arcade {
  --arcade-font: ui-monospace, 'Lucida Console', Monaco, Consolas, monospace;
  padding: 24px 18px; margin: 0; border: 2px solid #65faff;
  box-shadow: inset 0 0 0 5px #0b1020, inset 0 0 30px #65faff12, 0 0 18px #65faff35, 6px 6px 0 #ff4ac655;
  background: repeating-linear-gradient(0deg, #ffffff05 0 1px, transparent 1px 4px), radial-gradient(ellipse at top, #20204a, #080c19 70%);
  color: #fff; font-family: var(--arcade-font); text-align: center;
}
.spark-game .spark-arcade-kicker { display: block; color: #65faff; font-size: 11px; font-weight: 700; letter-spacing: .14em; }
.spark-game #spark-over-title {
  font-family: var(--arcade-font); font-size: clamp(28px, 7vw, 42px); font-weight: 900; letter-spacing: .04em;
  color: #ff81d7; text-shadow: 2px 2px 0 #811b62, 0 0 15px #ff4ac655; line-height: 1.2;
}
.spark-game .spark-final-label { color: #65faff; font-size: 11px; font-weight: 700; letter-spacing: .16em; margin-top: 22px; }
.spark-game #spark-final-score { color: #ffe973; font-family: var(--arcade-font); font-size: 76px; font-weight: 900; letter-spacing: .04em; margin: 4px 0 12px; line-height: 1; text-shadow: 3px 3px 0 #995f22, 0 0 18px #ffe97345; }
.spark-game .spark-arcade h3 { font-family: var(--arcade-font); font-size: 22px; font-weight: 900; letter-spacing: .12em; text-align: center; margin: 26px 0 14px; color: #65faff; text-shadow: 2px 2px #176984; }
.spark-arcade label { display: block; color: #ffe973; font-size: 12px; font-weight: 700; letter-spacing: .08em; }
#spark-initials { font: 700 26px var(--arcade-font); letter-spacing: .2em; border: 2px solid #65faff; border-radius: 0; color: #fff; background: #060916; box-shadow: inset 0 0 12px #65faff15; }
.spark-entry-controls { justify-content: center; }
.spark-entry-controls button, #spark-scores-refresh {
  font-family: var(--arcade-font); font-weight: 900; font-size: 12px; letter-spacing: .06em;
  border: 2px solid #65faff; border-radius: 0; background: #65faff; color: #080c19; min-height: 48px; padding: 12px 14px;
  box-shadow: 3px 3px 0 #257082;
}
.spark-entry-controls button:hover, #spark-scores-refresh:hover { background: #b8fcff; }
.spark-entry-controls button:disabled, #spark-scores-refresh:disabled { background: #353d50; border-color: #7c869e; color: #e0e6f5; box-shadow: none; }
.spark-arcade #spark-game-start { display: flex; justify-content: center; width: 100%; background: #ff81d7; border: 2px solid #ffb6e8; border-radius: 0; color: #080c19; font: 900 14px var(--arcade-font); letter-spacing: .08em; box-shadow: 3px 3px 0 #811b62; }
.spark-arcade #spark-game-start:hover { background: #ffb6e8; }
.spark-arcade :is(button, input):focus-visible { outline: 3px solid #ffe973; outline-color: #ffe973 !important; outline-offset: 4px; }
.spark-arcade table { background: #080c19b3; color: #fff; font-family: var(--arcade-font); font-size: 18px; font-weight: 700; }
.spark-arcade caption { color: #ffe973; text-align: center; padding: 12px 0; font-size: 11px; font-weight: 700; letter-spacing: .1em; }
.spark-arcade th { color: #65faff; border-bottom: 2px solid #65faff80; font-size: 11px; letter-spacing: .08em; }
.spark-arcade th, .spark-arcade td { padding: 12px 6px; }
.spark-arcade tbody tr:first-child { color: #fff; background: #ffe97313; text-shadow: 0 0 10px #ffe97345; }
.spark-arcade tbody tr + tr { border-top: 1px dashed #65faff35; }
#spark-score-status, #spark-play-status { color: #fff; }
#spark-score-status { font-size: 12px; line-height: 1.7; }
#spark-initials-hint, #spark-storage-note, #spark-scores-empty { color: #d4d9ee; font-size: 11px; line-height: 1.65; }
@media (max-width: 360px) {
  .spark-game .spark-arcade { padding: 22px 12px; }
  .spark-game #spark-over-title { font-size: 26px; }
  .spark-game .spark-arcade h3 { font-size: 19px; }
  .spark-arcade .spark-arcade-kicker { letter-spacing: .08em; font-size: 10px; }
  .spark-arcade th, .spark-arcade td { padding: 12px 4px; }
}
.spark-particle.spark-glint {
  width: 7px; height: 7px; mask: none; background: #fff0bc;
  clip-path: polygon(50% 0, 62% 38%, 100% 50%, 62% 62%, 50% 100%, 38% 62%, 0 50%, 38% 38%);
  animation-duration: .9s;
}
.spark-particle.spark-trail {
  width: 4px; height: 22px; mask: none;
  background: linear-gradient(0deg, transparent, #ff5921 45%, #fff0bc);
  border-radius: 50%; animation-duration: .9s;
}
body.motion-paused *, body.motion-paused *::before, body.motion-paused *::after {
  animation: none !important; transition: none !important;
}
body.motion-paused .spark-particle {
  transform: translate(calc(-50% + var(--spark-x)), calc(-50% + var(--spark-y))) scale(.65);
}

/* Sign-in retains its black stage and white invitation. */
.access-view { color-scheme: dark; }
.access-story h1, .no-script, .no-script p { color: #fff; }
.access-ticket { color-scheme: light; }
.access-ticket input { color-scheme: light; }
.access-story .eyebrow, .access-footer .text-button, .access-header .text-button { color: #fff; }
.access-art { display: none; }
/* The public entry shares the same lava header and rounded content surfaces. */
.access-wrap::before, .access-wrap::after { display: none; }
.access-header { width: min(1200px, calc(100% - 80px)); min-height: 96px; padding: 20px 0; border: 0; }
.access-stage { width: min(1200px, calc(100% - 80px)); grid-template-columns: 1.15fr 1fr; gap: 32px; padding: 32px 0 48px; }
.access-story { isolation: isolate; overflow: hidden; background: var(--k-black); padding: 36px 32px 48px; }
.access-story > :not(.fire-surface) { position: relative; z-index: 2; }
.access-story .fire-surface { z-index: 1; }
.access-story h1 { font-size: clamp(44px, 4.5vw, 64px); line-height: 1.08; letter-spacing: -.03em; margin: 20px 0; }
.access-story h1 em { color: #fff; }
.access-story > p:last-of-type { font-size: 14px; line-height: 1.65; max-width: 380px; }
.access-story .eyebrow { background: transparent; padding: 0; font-size: 10px; letter-spacing: .14em; }
#access-motion-toggle { color: #fff; margin-top: 12px; }
.access-ticket { border-radius: 24px; padding: 32px; box-shadow: none; }
.access-ticket::before { display: none; }
.access-ticket h2 { font-size: 32px; letter-spacing: -.03em; line-height: 1.15; }
.access-description { min-height: 0; font-size: 14px; line-height: 1.65; }
.access-ticket input { border-radius: 10px; }
.access-ticket .primary-button { border-radius: 8px; }
.ticket-top { margin-bottom: 22px; }
.ticket-bottom { margin: 24px 0 0; padding: 16px 0 0; }
.access-footer { width: min(1200px, calc(100% - 80px)); }

@media (max-width: 1000px) {
  .masthead { padding-inline: 28px; }
  .navigation { right: 98px; gap: 18px; }
  main, .preview-banner, .access-account, .signal-stack { width: calc(100% - 56px); }
  .hero, .hero.personal-welcome { padding-inline: 28px; }
  .overview-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 620px) {
  .companion-page .page-intro { margin-inline: -20px; padding: 28px 20px 44px; }
  .companion-page .page-intro h1 { font-size: 34px; max-width: 330px; }
  .companion-page .page-intro > p:not(.eyebrow) { font-size: 13px; }
  .page-sheet { margin-inline: -20px; padding: 24px 20px 32px; }
  .page-sheet .session-row { padding: 18px 14px; gap: 12px; }
  .page-sheet .session-row time { flex-basis: 68px; padding: 10px 4px; font-size: 11px; }
  .page-sheet .session-row strong { font-size: 18px; }
  .page-sheet :is(.question-card, .common-spark, .connection-card) { padding: 20px; }
  .page-sheet #event-survey-form > fieldset { padding: 16px; }
  .page-sheet #survey-content .survey-presentation,
  .page-sheet #survey-content fieldset fieldset:not(.survey-presentation) { padding: 16px; }
  .page-sheet .survey-actions { flex-direction: column; }
  dialog.panel-dialog.spark-game { padding: 22px; }
  .masthead { height: 76px; padding: env(safe-area-inset-top) 20px 0; background: var(--k-black); }
  .masthead-note { color: #c9c4c1; }
  main, .preview-banner, .access-account, .signal-stack { width: calc(100% - 40px); }
  .navigation {
    top: auto; right: 0; padding-inline: 8px; background: #fffffff5;
    border-top: 1px solid #dedad6; box-shadow: 0 -4px 18px #18161508;
  }
  .navigation a { color: #625b56; min-width: 52px; }
  .navigation a[aria-current=page] { color: var(--k-red-deep); }
  .preview-banner { font-size: 8px; padding: 10px 20px; }
  .preview-banner, .access-account { width: 100%; background: var(--k-black); color: #d7d1cd; }
  .preview-banner > span:last-child, .access-account span { color: #c9c4c1; }
  .access-account { padding: 8px 20px; gap: 10px; font-size: 10px; border-color: #ffffff20; }
  .access-account span { flex-basis: 100%; }
  .access-account .text-button { color: #fff; }
  .access-account button { min-height: 32px; }
  .signal-stack { top: 76px; }
  .hero, .hero.personal-welcome {
    margin-inline: -20px; padding: 26px 20px 20px; min-height: 0;
  }
  .hero .hero-copy { padding-top: 0; }
  .hero h1, .personal-welcome h1 { font-size: clamp(29px, 7.8vw, 39px); margin: 12px 0; max-width: 90%; }
  .hero-description, .personal-welcome .hero-description { font-size: 12px; max-width: 92%; }
  .hero .personal-kicker, .hero .eyebrow { font-size: 9px; }
  .hero-bottom { margin-top: 20px; padding: 8px 0; min-height: 50px; }
  .hero-bottom > span { display: none; }
  .hero-controls { width: 100%; justify-content: space-between; gap: 12px; }
  .hero-bottom .text-button { font-size: 10px; min-height: 36px; }
  .personal-panel { margin-inline: -20px; padding: 26px 20px 0; margin-bottom: 28px; }
  .personal-panel > h2 { font-size: 25px; margin-bottom: 20px; }
  .personal-primary, .personal-session, .personal-connections { padding: 20px; }
  .personal-primary h3 { font-size: 28px; }
  .personal-schedule { grid-template-columns: 1fr; gap: 14px; }
  .personal-session h3 { font-size: 25px; }
  .overview-grid { grid-template-columns: 1fr; }
  .feature-card { min-height: 210px; padding: 20px 20px 0; }
  .card-content { padding-top: 22px; }
  .section-heading h2 { font-size: 24px; }
  .page-footer { padding-bottom: calc(100px + env(safe-area-inset-bottom)); }
  .page:not(#page-now) { padding-bottom: calc(100px + env(safe-area-inset-bottom)); }
  .arrival .logo-ignition { width: min(310px, 72vw); margin: 22px 0 28px; }
  #arrival .arrival-content { padding: 90px 24px 140px; }
  #arrival .arrival-content h1 { font-size: clamp(30px, 8.4vw, 42px); }
  #arrival .arrival-content > p:not(.eyebrow) { font-size: 13px; max-width: 280px; }
  #arrival .arrival-bottom { left: 20px; right: 20px; gap: 2px 12px; }
  #arrival .arrival-bottom .text-button { font-size: 10px; }
  .access-wrap::before, .access-wrap::after { width: 42%; height: 24%; }
}
@media (max-height: 640px) {
  #arrival { overflow-y: auto; }
  #arrival .arrival-sheet { min-height: 100%; height: max(100%, 530px); }
  #arrival .arrival-content { padding: 58px 24px 96px; }
  #arrival .logo-ignition { width: min(230px, 46vw); margin: 8px 0 16px; }
  #arrival .arrival-content h1 { font-size: clamp(26px, 3.4vw, 36px); }
  #arrival .arrival-content > p:not(.eyebrow) { margin: 12px 0 18px; }
  #arrival .arrival-bottom { position: absolute; top: max(440px, calc(100% - 72px)); bottom: auto; }
}
@media (prefers-reduced-motion: reduce) {
  .arrival-sheet { background: var(--k-black); }
}

@media (max-width: 650px) {
  .access-wrap { background: #fff; }
  .access-header { width: 100%; min-height: 76px; padding: 16px 20px; background: var(--k-black); }
  .access-header img { width: 118px; }
  .access-stage { width: 100%; display: block; min-height: 0; padding: 0; }
  .access-story { padding: 28px 20px 40px; }
  .access-story h1 { font-size: 40px; max-width: 340px; }
  .access-story > p:last-of-type { font-size: 13px; }
  .access-ticket { position: relative; z-index: 2; margin-top: -20px; padding: 26px 20px; border-radius: 24px 24px 0 0; }
  .access-ticket h2 { font-size: 28px; }
  .access-footer { width: calc(100% - 40px); padding: 20px 0 28px; border-color: #dedad6; }
  .access-sequence { display: none; }
  .access-footer-right { width: 100%; justify-content: space-between; }
  .access-footer .text-button { color: var(--k-red-deep); }
}

/* Attendee-owned profiles use the same rounded, white content surface. */
.profile-actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 20px 0; }
dialog.profile-dialog { border: 0; border-radius: 24px; width: min(680px, calc(100vw - 32px)); padding: 28px; }
.profile-dialog h2 { font-size: 32px; }
.profile-dialog fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
.profile-dialog input:not([type=checkbox]) { width: 100%; padding: 14px; min-width: 0; border: 1px solid #b9b2ad; border-radius: 10px; color: #181615; background: #fff; }
.profile-dialog input[readonly] { background: #f7f5f3; }
.profile-dialog input[type=file] { font-size: 13px; }
.profile-dialog label:not(.profile-consent) { display: block; margin: 20px 0 8px; }
.profile-dialog .primary-button, .profile-dialog .secondary-button { border-radius: 8px; }
.profile-avatar { width: 80px; height: 80px; object-fit: cover; border-radius: 50%; flex-shrink: 0; }
.profile-initials { display: inline-flex; align-items: center; justify-content: center; background: #fff0eb; color: #a9191b; font-weight: 700; font-size: 26px; }
.profile-consent { display: flex; align-items: flex-start; gap: 12px; margin-top: 24px; font-size: 14px; line-height: 1.6; }
.profile-consent input { flex-shrink: 0; margin-top: 5px; accent-color: #d71920; }
.profile-dialog .content-note { font-size: 12px; line-height: 1.6; }
.profile-dialog [role=status] { font-size: 14px; color: #8d171b; }
.attendee-directory-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
.attendee-profile-card { border: 1px solid #e5e0db; border-radius: 16px; padding: 20px; overflow-wrap: anywhere; }
.attendee-profile-card h3 { font-size: 20px; margin: 16px 0 8px; }
.attendee-profile-card p { font-size: 13px; color: #625b56; }
.attendee-profile-card a { display: inline-flex; align-items: center; min-height: 44px; font-size: 13px; }
@media (max-width: 500px) {
 dialog.profile-dialog { padding: 22px; }
 .attendee-directory-grid { grid-template-columns: 1fr; }
}

.profile-dialog button:disabled { opacity: .45; cursor: default; }

#session-survey-content { max-width: 820px; }
#session-survey-form > fieldset { min-width: 0; margin: 0; padding: 24px; border: 1px solid #e5e0db; border-radius: 16px; }
#session-survey-form legend { padding-inline: 8px; font-size: 20px; font-weight: 600; }
#session-survey-form label { display: block; margin: 20px 0 8px; }
#session-survey-form :is(select, textarea) { display: block; width: 100%; min-height: 48px; padding: 12px; border-radius: 10px; font: inherit; }
#session-survey-form :is(select, textarea):focus-visible { outline: 2px solid var(--k-orange); outline-offset: 3px; }
#survey-session-details { margin-top: 20px; padding: 16px; border: 1px solid #e5e0db; border-radius: 12px; background: #faf9f7; overflow-wrap: anywhere; }
#survey-session-details summary { cursor: pointer; min-height: 44px; display: list-item; font-weight: 600; }
#survey-session-details summary:focus-visible { outline: 2px solid var(--k-orange); outline-offset: 3px; }
#survey-session-details h3 { font-size: 22px; line-height: 1.25; margin: 12px 0; }
#survey-session-details p { margin: 8px 0; line-height: 1.6; }
#session-survey-form .primary-button { margin-top: 24px; min-width: 140px; justify-content: center; }
#session-survey-status:not(:empty) { padding: 16px; margin-top: 18px; max-width: 820px; background: #fff7f2; border: 1px solid #eaded7; border-radius: 12px; color: var(--k-red-deep); }
@media (max-width: 500px) { #session-survey-form > fieldset { padding: 16px; } }
