:root {
  color-scheme: light;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background: #241c25;
  color: #fff9fb;
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }

body {
  min-width: 320px;
  min-height: 100vh;
  margin: 0;
  background:
    radial-gradient(circle at 100% 0%, rgb(237 151 192 / 25%), transparent 32rem),
    radial-gradient(circle at 0% 24%, rgb(129 85 149 / 24%), transparent 30rem),
    linear-gradient(145deg, #2d1d2a, #171317 65%);
}

button, input { font: inherit; }
select, textarea { font: inherit; }
button { cursor: pointer; }
button:disabled { cursor: wait; opacity: 0.65; }

.app-shell { width: min(100% - 32px, 760px); margin: 0 auto; padding: 56px 0 32px; }
.hero { margin-bottom: 26px; }
.eyebrow, .panel-kicker { margin: 0 0 9px; color: #f4b8d9; font-size: 0.75rem; font-weight: 750; letter-spacing: 0.12em; text-transform: uppercase; }
h1, h2, h3, p { margin-top: 0; }
h1 { margin-bottom: 10px; font-size: clamp(2.2rem, 9vw, 4.6rem); line-height: 0.98; letter-spacing: -0.05em; }
h2 { margin-bottom: 6px; font-size: 1.4rem; letter-spacing: -0.025em; }
h3 { margin-bottom: 8px; font-size: 1.05rem; }
.lead { max-width: 37rem; margin-bottom: 0; color: #eadce8; font-size: 1.08rem; line-height: 1.55; }
.hero-link { display: inline-flex; margin-top: 16px; color: #ffd4e8; font-weight: 750; text-decoration-color: rgb(255 212 232 / 54%); text-underline-offset: 4px; }
.hero-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 15px; margin-top: 16px; }
.hero-actions .hero-link { margin-top: 0; }
.sound-toggle { padding: 7px 10px; border: 1px solid #805a76; border-radius: 999px; background: rgb(60 39 58 / 72%); color: #eadce8; font-size: .76rem; font-weight: 800; }
.sound-toggle[aria-pressed="true"] { border-color: #f1aace; color: #ffd4e8; }
.header-links { display: flex; flex-wrap: wrap; gap: 18px; }
.header-links .hero-link { margin-top: 0; }

.notice { margin: 0 0 18px; padding: 13px 15px; border: 1px solid #805c75; border-radius: 14px; background: rgb(56 36 54 / 88%); line-height: 1.45; }
.notice[data-tone="error"] { border-color: #d87979; background: rgb(104 44 48 / 88%); }
.notice[data-tone="success"] { border-color: #78ba90; background: rgb(35 78 58 / 88%); }

.panel { margin-bottom: 18px; padding: 21px; border: 1px solid rgb(255 223 242 / 18%); border-radius: 20px; background: rgb(49 33 47 / 82%); box-shadow: 0 16px 36px rgb(0 0 0 / 16%); }
.share-panel { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.share-panel h2 { font-size: 1.05rem; }
.share-panel p:not(.panel-kicker) { max-width: 31rem; margin: 0; color: #d7c7d5; line-height: 1.45; }
.share-panel img { flex: 0 0 auto; padding: 6px; border-radius: 12px; background: white; }
.pulse-panel { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 16px; }
.pulse-panel .hint { max-width: 38rem; margin-bottom: 0; }
.pulse-grid { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.pulse-button { display: grid; width: 48px; height: 48px; place-items: center; padding: 0 !important; border-color: #805a76 !important; background: #4b3147 !important; color: inherit !important; font-size: 1.4rem; transition: transform 150ms ease, border-color 150ms ease; }
.pulse-button:hover { border-color: #f1aace !important; transform: translateY(-2px) scale(1.04); }
.pulse-feedback { grid-column: 1 / -1; min-height: 1.1rem; margin: 0; color: #c7b5c3; font-size: .82rem; font-weight: 700; }
.section-heading { display: flex; align-items: start; justify-content: space-between; gap: 14px; }
.step-chip { display: inline-flex; align-items: center; min-height: 28px; padding: 4px 10px; border: 1px solid #916480; border-radius: 999px; color: #f2ccdf; font-size: 0.78rem; font-weight: 700; white-space: nowrap; }
.hint, .privacy-note { color: #d8c8d6; line-height: 1.5; }
.hint { margin: 2px 0 16px; }
.privacy-note { margin: 14px 0 0; font-size: 0.88rem; }

.teams { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 10px; }
.team-card { display: flex; align-items: center; gap: 11px; min-width: 0; padding: 13px; border: 1px solid #6f4e68; border-radius: 14px; background: #362737; color: inherit; text-align: left; transition: border-color 120ms ease, transform 120ms ease; }
.team-card:hover, .team-card[data-selected="true"] { border-color: #f1aace; transform: translateY(-1px); }
.team-dot { width: 12px; height: 12px; border-radius: 50%; box-shadow: 0 0 0 4px rgb(255 255 255 / 7%); }
.team-card strong, .team-card small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.team-card small { margin-top: 3px; color: #c9b8c7; }

.inline-form { display: flex; gap: 9px; margin-top: 13px; }
.email-otp-panel { max-width: 680px !important; }
.email-otp-panel strong { color: #ffe2b4; overflow-wrap: anywhere; }
.otp-resend { display: inline-flex; margin-top: 14px; }
.identity-form { margin-top: 18px; padding-top: 18px; border-top: 1px solid rgb(255 223 242 / 14%); }
.identity-form label { display: block; margin-bottom: 8px; font-weight: 700; }
.identity-form label span { color: #cbbac8; font-weight: 400; }
input { width: 100%; min-width: 0; padding: 11px 12px; border: 1px solid #75566f; border-radius: 11px; background: #281e29; color: inherit; outline: none; }
select, textarea { width: 100%; min-width: 0; padding: 11px 12px; border: 1px solid #75566f; border-radius: 11px; background: #281e29; color: inherit; outline: none; }
textarea { min-height: 92px; resize: vertical; }
input:focus, select:focus, textarea:focus { border-color: #f1aace; box-shadow: 0 0 0 3px rgb(241 170 206 / 18%); }
button:not(.team-card):not(.text-button) { padding: 11px 14px; border: 1px solid #f1aace; border-radius: 11px; background: #f1aace; color: #321a2b; font-weight: 800; white-space: nowrap; }
.secondary-button { border-color: #8d627f !important; background: #4e3349 !important; color: #fff7fb !important; }
.danger-button { border-color: rgb(237 135 145 / 72%) !important; background: rgb(119 51 65 / 92%) !important; color: #fff5f5 !important; }

.challenges { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 12px; }
.challenge-card { display: flex; flex-direction: column; padding: 16px; border: 1px solid #63485f; border-radius: 15px; background: rgb(38 27 39 / 72%); }
.challenge-card p { flex: 1; margin-bottom: 16px; color: #d4c4d2; line-height: 1.45; }
.challenge-card button { width: 100%; }
.challenge-meta { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 14px; color: #f0bdd9; font-size: 0.76rem; font-weight: 750; text-transform: uppercase; letter-spacing: 0.07em; }
.challenge-meta strong { color: #ffe1b4; }

.selected-challenge { margin: 2px 0 16px; color: #f4c0dc; font-weight: 750; }
.text-button { padding: 2px; border: 0; background: transparent; color: #eeb4d3; text-decoration: underline; }
.file-picker { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 160px; padding: 18px; border: 1px dashed #a47696; border-radius: 16px; background: rgb(43 30 43 / 60%); color: #fbe6f4; text-align: center; cursor: pointer; }
.file-picker input { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; clip-path: inset(50%); }
.file-picker-icon { margin-bottom: 8px; color: #f1aace; font-size: 2rem; font-weight: 900; transform: rotate(-18deg); }
.file-picker small { margin-top: 7px; color: #cbb9c7; }
#photo-preview { display: block; width: 100%; max-height: 360px; margin-top: 12px; border-radius: 14px; object-fit: contain; background: #171217; }
.submit-photo { width: 100%; margin-top: 12px; }
.submission-progress { display: grid; grid-template-columns: 66px minmax(0, 1fr); gap: 5px 15px; margin-top: 16px; padding: 18px; border: 1px solid #916480; border-radius: 17px; background: linear-gradient(135deg, rgb(93 50 81 / 76%), rgb(42 33 51 / 92%)); }
.submission-progress[hidden], .moderation-image[hidden] { display: none; }
.processing-mascot { position: relative; display: grid; width: 66px; height: 66px; flex: 0 0 auto; align-self: center; place-items: center; border-radius: 26px; background: radial-gradient(circle at 50% 45%, rgb(255 235 204 / 22%), rgb(241 150 196 / 9%) 48%, transparent 69%); box-shadow: 0 0 0 7px rgb(241 170 206 / 9%), 0 0 30px rgb(241 170 206 / 26%); }
.processing-mascot::before, .processing-mascot::after { position: absolute; border-radius: 50%; content: ''; pointer-events: none; }
.processing-mascot::before { inset: -6px; border: 1.5px solid transparent; border-top-color: #ffe2b5; border-right-color: #f4afd2; animation: processing-spin 1.7s linear infinite; }
.processing-mascot::after { right: 4px; bottom: 5px; width: 10px; height: 10px; border: 2px solid #3b2939; background: #ffc977; box-shadow: 0 0 12px #ffd5a7; animation: processing-pulse 1.15s ease-in-out infinite; }
.processing-mascot img { width: 60px; height: 60px; filter: drop-shadow(0 8px 10px rgb(25 13 26 / 24%)); animation: mascot-bob 2.9s ease-in-out infinite; }
.processing-mascot[data-stage="published"] { box-shadow: 0 0 0 7px rgb(120 186 144 / 12%), 0 0 30px rgb(120 219 158 / 35%); }
.processing-mascot[data-stage="published"]::before { border-color: rgb(202 242 201 / 70%); animation: none; }
.processing-mascot[data-stage="published"]::after { background: #8ed9a0; box-shadow: 0 0 12px #bcf3be; animation: none; }
.processing-mascot[data-stage="private"] { opacity: .7; filter: grayscale(.32); box-shadow: none; }
.processing-mascot[data-stage="private"]::before, .processing-mascot[data-stage="private"]::after { animation: none; }
.processing-mascot[data-stage="review"]::after { background: #f2c47b; box-shadow: 0 0 12px #ffe0aa; }
.submission-copy .panel-kicker { margin-bottom: 5px; }
.submission-copy h3 { margin-bottom: 5px; }
.submission-copy p:last-child { margin: 0; color: #ead8e6; line-height: 1.4; }
.submission-steps { display: grid; grid-column: 1 / -1; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; padding: 14px 0 0; margin: 9px 0 0; border-top: 1px solid rgb(255 223 242 / 15%); list-style: none; }
.submission-steps li { display: flex; align-items: center; gap: 7px; color: #c9b7c5; font-size: .78rem; font-weight: 750; line-height: 1.25; }
.submission-steps li::before { display: grid; width: 19px; height: 19px; flex: 0 0 auto; place-items: center; border: 1px solid #98748d; border-radius: 50%; content: '…'; color: #eec7db; font-size: .78rem; }
.submission-steps li[data-state="done"] { color: #e9f9e8; }
.submission-steps li[data-state="done"]::before { border-color: #78ba90; background: #437a5b; content: '✓'; color: white; }
.submission-steps li[data-state="active"] { color: #ffe4b9; }
.submission-steps li[data-state="active"]::before { border-color: #f2c47b; color: #ffe4b9; animation: processing-pulse 1.15s ease-in-out infinite; }
.submission-steps li[data-state="private"] { color: #d2c7d4; }
.submission-steps li[data-state="private"]::before { border-color: #a999b0; background: #65596b; content: '–'; color: white; }
.submission-actions { display: flex; grid-column: 1 / -1; flex-wrap: wrap; gap: 10px; margin-top: 4px; }
.submission-actions > * { display: inline-flex; flex: 1 1 190px; align-items: center; justify-content: center; min-height: 42px; text-decoration: none; }
.submission-actions .secondary-button { border: 1px solid #8d627f; border-radius: 11px; }
@keyframes processing-spin { to { transform: rotate(360deg); } }
@keyframes processing-pulse { 50% { opacity: .35; transform: scale(.78); } }
@keyframes mascot-bob { 0%, 100% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-4px) rotate(2deg); } }
footer { padding: 6px 4px; color: #bba9b8; font-size: 0.78rem; line-height: 1.45; text-align: center; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }

.organizer-shell { max-width: 1040px; }
.regie-command-deck { position: sticky; z-index: 7; top: 12px; display: grid; grid-template-columns: minmax(180px, .9fr) minmax(0, 2.5fr) auto; align-items: center; gap: 16px; margin-bottom: 15px; padding: 15px 17px; border: 1px solid rgb(255 214 169 / 32%); border-radius: 18px; background: linear-gradient(120deg, rgb(70 42 62 / 94%), rgb(38 29 47 / 92%)); box-shadow: 0 16px 44px rgb(0 0 0 / 18%); backdrop-filter: blur(16px); }
.command-deck-heading .panel-kicker { margin-bottom: 5px; color: #ffd39e; }
.command-deck-heading h2 { margin: 0; color: #fff5eb; font-family: Iowan Old Style, Palatino Linotype, Georgia, ui-serif, serif; font-size: 1.2rem; letter-spacing: -.035em; }
.command-deck-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.command-deck-metrics article { min-width: 0; padding: 9px 10px; border: 1px solid rgb(255 228 203 / 13%); border-radius: 12px; background: rgb(21 16 27 / 30%); }
.command-deck-metrics span, .command-deck-metrics small { display: block; overflow: hidden; color: #d5c2cf; font-size: .66rem; font-weight: 720; line-height: 1.28; text-overflow: ellipsis; white-space: nowrap; }
.command-deck-metrics span { color: #f0c4dc; font-size: .62rem; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; }
.command-deck-metrics strong { display: block; overflow: hidden; margin: 3px 0 2px; color: #fff7f0; font-size: .94rem; text-overflow: ellipsis; white-space: nowrap; }
.command-deck-actions { display: flex; justify-content: flex-end; gap: 7px; }
.command-deck-actions > * { display: inline-flex; min-height: 37px; align-items: center; justify-content: center; padding: 8px 10px; border-radius: 10px; font-size: .75rem; text-decoration: none; white-space: nowrap; }
.command-deck[data-status="live"] { border-color: rgb(124 218 155 / 38%); }
.command-deck[data-status="finished"] { border-color: rgb(160 184 239 / 32%); }
.field-test-heading { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 15px; color: #f4c8df; font-size: .72rem; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
.field-test-heading small { color: #c9b6c3; font-size: .68rem; font-weight: 750; letter-spacing: normal; text-transform: none; }
.field-test-list { display: grid; gap: 7px; margin: 9px 0 13px; padding: 0; list-style: none; }
.field-test-list li { display: flex; align-items: flex-start; gap: 9px; color: #d8c7d2; font-size: .79rem; line-height: 1.35; }
.field-test-list input { flex: 0 0 auto; width: 16px; height: 16px; margin: 1px 0 0; accent-color: #ffd09b; }
.field-test-list label { cursor: pointer; }
.preflight-actions { display: flex; flex-wrap: wrap; gap: 9px; }
.preflight-actions > * { display: inline-flex; min-height: 39px; align-items: center; justify-content: center; padding: 8px 11px; border-radius: 10px; font-size: .78rem; text-decoration: none; }
.afterglow-panel { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin: 14px 0; padding: 15px; border: 1px solid rgb(255 211 159 / 30%); border-radius: 15px; background: radial-gradient(circle at 88% 16%, rgb(255 187 120 / 18%), transparent 16rem), rgb(58 37 57 / 70%); }
.afterglow-panel[hidden] { display: none; }
.afterglow-panel .panel-kicker { margin-bottom: 4px; color: #ffd29f; }
.afterglow-panel h3 { margin-bottom: 4px; color: #fff7ed; font-family: Iowan Old Style, Palatino Linotype, Georgia, ui-serif, serif; font-size: 1.16rem; }
.afterglow-panel p:not(.panel-kicker) { margin: 0; color: #d8c7d2; font-size: .82rem; line-height: 1.4; }
.afterglow-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 9px; }
.afterglow-actions > * { display: inline-flex; min-height: 39px; align-items: center; justify-content: center; padding: 8px 11px; border: 1px solid #ffd19e; border-radius: 10px; background: linear-gradient(135deg, #ffd09b, #ef9cbd); color: #34202e; font-size: .78rem; font-weight: 850; text-decoration: none; white-space: nowrap; }
.afterglow-actions .secondary-button { border-color: rgb(255 211 167 / 46%) !important; background: rgb(91 55 76 / 84%) !important; color: #fff8f7 !important; }
.regie-utility-bar { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 20px; padding: 10px 13px; border: 1px solid rgb(255 218 181 / 18%); border-radius: 14px; background: rgb(34 25 39 / 62%); }
.regie-portal-link { display: inline-flex; align-items: center; gap: 8px; color: #ffdbb2; font-size: .84rem; font-weight: 850; text-decoration: none; }
.regie-portal-link:hover { color: #fff3e7; }
.regie-utility-actions { display: flex; align-items: center; flex-wrap: wrap; justify-content: flex-end; gap: 8px 15px; }
.regie-utility-actions a { color: #d8c5d2; font-size: .76rem; font-weight: 750; text-decoration-color: rgb(216 197 210 / 38%); text-underline-offset: 4px; }
.regie-utility-actions a:hover { color: #fff5f9; }
.organizer-hero .header-links { margin-top: 16px; justify-content: flex-start; }
.login-panel { max-width: 650px; }
.auth-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; margin-top: 18px; }
.auth-grid form { display: grid; align-content: start; gap: 12px; }
.auth-grid form + form { padding-left: 28px; border-left: 1px solid rgb(255 223 242 / 14%); }
.auth-grid h3 { margin-bottom: 2px; }
.auth-grid label, .event-create-form label { display: grid; gap: 7px; color: #e7d2e1; font-size: .86rem; font-weight: 750; }
.auth-grid label span, .event-create-form label span { color: #c7b5c3; font-weight: 400; }
.portal-welcome { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.portal-welcome .hint { margin: 0; }
.event-create-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-top: 16px; }
.event-create-form label:first-child, .event-create-form label:nth-child(5) { grid-column: span 2; }
.event-create-form button { align-self: end; }
.private-access { display: flex; align-items: center; justify-content: space-between; gap: 24px; border-color: #6b9278; background: linear-gradient(145deg, rgb(39 82 60 / 92%), rgb(36 32 44 / 94%)); }
.private-access h2 { margin-bottom: 7px; }
.private-access img { flex: 0 0 auto; padding: 7px; border-radius: 13px; background: white; }
.client-event-list { display: grid; gap: 12px; margin-top: 16px; }
.client-event-card { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 16px; border: 1px solid rgb(255 223 242 / 16%); border-radius: 15px; background: rgb(37 27 38 / 72%); }
.client-event-card h3 { margin: 9px 0 5px; }
.client-event-card p, .client-event-card small { margin: 0; color: #c7b5c3; line-height: 1.45; }
.client-event-card small { display: block; margin-top: 4px; }
.event-card-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; }
.event-card-actions a { color: #f0bed9; font-weight: 800; text-underline-offset: 3px; }
.stats-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-bottom: 18px; }
.showtime-panel { display: flex; align-items: center; justify-content: space-between; gap: 22px; margin-bottom: 16px; border-color: rgb(255 208 157 / 43%); background: radial-gradient(circle at 88% 10%, rgb(255 190 121 / 19%), transparent 24rem), linear-gradient(120deg, rgb(83 52 71 / 96%), rgb(35 29 45 / 96%)); }
.showtime-state { max-width: 620px; }
.showtime-state .panel-kicker { margin-bottom: 5px; color: #ffd29e; }
.showtime-state h2 { margin-bottom: 6px; color: #fff5ed; font-family: Iowan Old Style, Palatino Linotype, Georgia, ui-serif, serif; font-size: 1.6rem; letter-spacing: -.045em; }
.showtime-state .hint { margin: 0; }
.showtime-actions { display: flex; flex: 0 1 490px; flex-wrap: wrap; justify-content: flex-end; gap: 9px; }
.showtime-actions > * { display: inline-flex; min-height: 42px; align-items: center; justify-content: center; text-decoration: none; }
.showtime-actions > button:last-child { box-shadow: 0 9px 24px rgb(241 170 206 / 18%); }
.qr-print-panel { display: grid; grid-template-columns: minmax(220px, 1fr) minmax(290px, 1.05fr) auto; align-items: center; gap: 18px; margin-bottom: 16px; border-color: rgb(255 207 157 / 31%); background: radial-gradient(circle at 94% 8%, rgb(255 204 141 / 14%), transparent 18rem), linear-gradient(135deg, rgb(66 41 62 / 94%), rgb(35 26 43 / 94%)); }
.qr-print-panel .panel-kicker { margin-bottom: 5px; color: #ffd29e; }
.qr-print-panel h2 { margin-bottom: 5px; color: #fff6ee; font-size: 1.28rem; }
.qr-print-panel .hint { margin: 0; }
.qr-print-message-label { display: grid; gap: 6px; color: #f2dce8; font-size: .77rem; font-weight: 800; }
.qr-print-message-label span { color: #c9b0c1; font-weight: 650; }
.qr-print-message-label textarea { min-height: 66px; resize: vertical; }
.qr-print-options { display: grid; gap: 10px; }
.qr-print-controls { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.qr-print-controls label { display: grid; gap: 6px; color: #f2dce8; font-size: .77rem; font-weight: 800; }
.qr-print-controls select { min-height: 38px; padding: 7px 9px; font-size: .8rem; }
.qr-print-actions { display: flex; justify-content: flex-end; }
.qr-print-actions button { min-height: 46px; white-space: nowrap; }
.qr-download-dialog { width: min(94vw, 680px); max-height: min(92vh, 980px); overflow: auto; padding: 0; border: 1px solid rgb(255 217 181 / 34%); border-radius: 24px; background: #241a2a; color: #fff6f0; box-shadow: 0 28px 100px rgb(0 0 0 / 56%); }
.qr-download-dialog::backdrop { background: rgb(9 6 13 / 78%); backdrop-filter: blur(12px); }
.qr-download-dialog-content { display: grid; gap: 16px; padding: clamp(18px, 4vw, 28px); background: radial-gradient(circle at 94% 4%, rgb(255 201 141 / 16%), transparent 20rem), linear-gradient(145deg, #3c283d, #211827); }
.qr-download-dialog .section-heading { align-items: start; margin: 0; }
.qr-download-dialog .section-heading h2 { margin: 3px 0 0; }
.qr-download-dialog img { display: block; width: min(100%, 430px); max-height: 53vh; justify-self: center; border: 1px solid rgb(255 233 208 / 27%); border-radius: 16px; background: #fffaf8; box-shadow: 0 16px 42px rgb(0 0 0 / 28%); object-fit: contain; }
.qr-download-dialog .hint { margin: 0; }
.qr-download-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.qr-download-actions > * { display: inline-flex; min-height: 46px; align-items: center; justify-content: center; padding: 0 17px; border: 1px solid #d796b7; border-radius: 11px; background: linear-gradient(115deg, #ffd092, #ed9ac4); color: #2c1c2b; font: inherit; font-weight: 850; text-decoration: none; }
.qr-download-actions .secondary-button { border-color: #8d627f !important; background: #4e3349 !important; color: #fff7fb !important; }
.stat-card { display: flex; min-height: 144px; flex-direction: column; justify-content: flex-end; padding: 17px; border: 1px solid rgb(255 223 242 / 18%); border-radius: 17px; background: linear-gradient(145deg, rgb(92 54 82 / 94%), rgb(38 27 39 / 94%)); }
.stat-card strong { color: #ffe4f2; font-size: 2.3rem; letter-spacing: -0.05em; line-height: 1; }
.stat-card span { margin-top: 8px; color: #f5c5dd; font-weight: 800; }
.stat-card small { margin-top: 7px; color: #c9b8c7; line-height: 1.35; }
.moderation-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(285px, 1fr)); gap: 14px; }
.moment-actions { display: flex; flex-wrap: wrap; gap: 9px; margin: 16px 0 12px; }
.moment-actions button { flex: 1 1 150px; }
.moment-actions button[data-active="true"] { border-color: #ffe0ad !important; background: linear-gradient(135deg, #f2b46f, #e98fac) !important; color: #321a2b !important; box-shadow: 0 0 0 4px rgb(242 180 111 / 13%), 0 12px 28px rgb(0 0 0 / 18%); }
.director-grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(260px, .85fr); gap: 16px; margin: 16px 0; }
.event-ready-panel, .director-panel, .live-controls-panel { min-height: 0; }
.preflight-list { display: grid; gap: 8px; margin: 16px 0; padding: 0; list-style: none; }
.setup-summary { margin: 12px 0 -5px; color: #f0d5e3; font-size: .79rem; font-weight: 750; line-height: 1.42; }
.preflight-list li { display: flex; align-items: center; gap: 9px; color: #c9b8c7; font-size: .88rem; font-weight: 700; }
.preflight-list li span { display: grid; width: 20px; height: 20px; place-items: center; border: 1px solid #76566e; border-radius: 50%; color: #d6bbc9; font-size: .77rem; }
.preflight-list li[data-complete="true"] { color: #e6f8df; }
.preflight-list li[data-complete="true"] span { border-color: #86ca98; background: #254f3c; color: #d9ffdf; }
.step-chip[data-ready="true"] { border-color: #86ca98; color: #d9ffdf; }
.rehearsal-link { display: inline-flex; align-items: center; justify-content: center; text-decoration: none; }
.director-panel { background: radial-gradient(circle at 90% 8%, rgb(255 206 146 / 18%), transparent 35%), linear-gradient(145deg, rgb(76 48 67 / 94%), rgb(29 25 35 / 92%)); }
.director-panel h2 { margin-bottom: 8px; }
.director-actions { margin-top: 16px; }
.big-moment-actions, .team-live-actions { display: flex; flex-wrap: wrap; align-items: end; gap: 10px; margin-top: 15px; }
.big-moment-actions button { flex: 1 1 190px; }
.team-live-actions { padding-top: 15px; border-top: 1px solid rgb(255 224 198 / 12%); }
.team-live-actions label { display: grid; flex: 1 1 180px; gap: 7px; color: #e7d2e1; font-size: .82rem; font-weight: 800; }
.moderation-card { overflow: hidden; border: 1px solid #705168; border-radius: 16px; background: #2b202c; }
.moderation-preview { display: grid; min-height: 210px; place-items: center; overflow: hidden; background: linear-gradient(135deg, #211a22, #37283a); }
.moderation-preview .moderation-image { display: block; width: 100%; min-height: 210px; aspect-ratio: 4 / 3; object-fit: cover; background: #1a141a; }
.moderation-preview .moderation-image[hidden] { display: none; }
.image-loading { margin: 0; padding: 24px; color: #d7c1d0; font-size: .88rem; text-align: center; }
.moderation-content { padding: 14px; }
.moderation-content h3 { margin: 9px 0 5px; }
.photo-team { display: flex; align-items: center; gap: 7px; margin: 0; color: #e7c9dc; font-weight: 700; font-size: .9rem; }
.photo-team span, .wall-photo figcaption span { width: 9px; height: 9px; border-radius: 50%; flex: 0 0 auto; }
.ai-note { min-height: 42px; margin: 11px 0; color: #cbbac8; font-size: .88rem; line-height: 1.45; }
.moderation-actions { display: flex; gap: 9px; }
.moderation-actions button { flex: 1; font-size: .86rem; }
.status-pill { display: inline-flex; padding: 4px 8px; border: 1px solid #836178; border-radius: 999px; color: #efc5da; font-size: .72rem; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; }
.status-pill[data-status="approved"], .status-pill[data-status="visible"], .status-pill[data-status="live"] { border-color: #78ba90; color: #b8e6c5; }
.status-pill[data-status="rejected"], .status-pill[data-status="hidden"] { border-color: #d87979; color: #f2b0b0; }
.status-pill[data-status="analysing"] { border-color: #bd9c62; color: #f2d493; }
.status-pill[data-status="finished"] { border-color: #94a8d6; color: #cbd9ff; }
.status-pill[data-status="archived"] { border-color: #9a8b94; color: #d7cad0; }
.empty-state { margin: 0; padding: 26px 8px; color: #c9b8c7; text-align: center; }
.settings-form, .challenge-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-top: 16px; }
.settings-form label, .challenge-form label { display: grid; gap: 7px; color: #e7d2e1; font-size: .86rem; font-weight: 750; }
.settings-form button, .challenge-form button { align-self: end; }
.challenge-form label:nth-child(2) { grid-column: span 2; }
.ai-target-check, .ai-summary { display: block; margin: 2px 0 0; color: #c7b5c3; font-size: .82rem; font-weight: 600; line-height: 1.4; }
.ai-target-check[data-level="ready"], .challenge-suitability[data-level="ready"] { color: #b8e6c5; }
.ai-target-check[data-level="review"], .challenge-suitability[data-level="review"] { color: #f2d493; }
.ai-target-check[data-level="rewrite"], .challenge-suitability[data-level="rewrite"] { color: #f2b0b0; }
.pilot-metrics { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 10px; margin-top: 16px; }
.pilot-metric { padding: 13px; border: 1px solid rgb(255 223 242 / 14%); border-radius: 13px; background: rgb(37 27 38 / 72%); }
.pilot-metric strong, .pilot-metric small { display: block; }
.pilot-metric small { margin-top: 5px; color: #c7b5c3; line-height: 1.35; }
.pilot-metric .pilot-detail { color: #f2d493; }
.challenge-admin-list, .recent-photo-list { display: grid; gap: 9px; margin-top: 18px; }
.gallery-link-list { display: grid; gap: 9px; margin-top: 16px; }
.share-link { margin: 14px 0 0; padding: 11px 12px; border: 1px solid #6b9278; border-radius: 11px; background: rgb(35 78 58 / 56%); color: #d6f1de; overflow-wrap: anywhere; }
.share-link a { color: #f0ffe8; font-weight: 800; }
.gallery-link-item { display: flex; align-items: center; justify-content: space-between; gap: 13px; padding: 12px 13px; border: 1px solid rgb(255 223 242 / 14%); border-radius: 13px; background: rgb(37 27 38 / 72%); }
.gallery-link-item strong, .gallery-link-item small { display: block; }
.gallery-link-item small { margin-top: 4px; color: #c7b5c3; }
.challenge-admin-item, .recent-photo-item { display: flex; align-items: center; justify-content: space-between; gap: 13px; padding: 12px 13px; border: 1px solid rgb(255 223 242 / 14%); border-radius: 13px; background: rgb(37 27 38 / 72%); }
.challenge-admin-item strong, .recent-photo-item strong, .challenge-admin-item small, .recent-photo-item small { display: block; }
.challenge-admin-item small, .recent-photo-item small { margin-top: 4px; color: #c7b5c3; }
.challenge-instruction { color: #eadce8 !important; line-height: 1.35; }
.challenge-suitability, .recent-ai-note { font-size: .78rem; line-height: 1.35; }
.challenge-actions { display: flex; flex: 0 0 auto; align-items: center; gap: 9px; }
.recent-photo-item { justify-content: flex-start; }
.recent-photo-item .status-pill { min-width: 88px; justify-content: center; }
.gallery-report, .wall-report { margin: 8px 10px 0; color: #f0bed9; font-size: .78rem; }
.wall-report { position: absolute; right: 8px; top: 8px; z-index: 2; background: rgb(23 17 22 / 72%); border-radius: 999px; padding: 5px 8px; }
.recent-correction { margin-left: auto; text-align: right; }

.wall-body { min-width: 320px; min-height: 100vh; background: #171116; }
.wall-shell { --wall-ink: #201319; --wall-surface: rgb(44 25 32 / 72%); --wall-line: rgb(255 237 211 / 18%); --wall-copy: #fff7f0; --wall-muted: #ddc9bd; --wall-accent: #ffc977; --wall-content-x: 0px; --wall-content-y: 0px; --wall-canvas-x: 0px; --wall-canvas-y: 0px; --wall-aura-x: 0px; --wall-aura-y: 0px; position: relative; isolation: isolate; min-height: 100vh; padding: clamp(20px, 4vw, 54px); overflow: hidden; background: radial-gradient(circle at 10% 0%, rgb(255 183 117 / 16%), transparent 36rem), radial-gradient(circle at 88% 90%, rgb(237 80 129 / 15%), transparent 32rem), linear-gradient(145deg, #342027, #171116 64%); color: var(--wall-copy); transition: background 1.1s ease; }
.wall-shell[data-theme="afterglow"] { --wall-ink: #121126; --wall-surface: rgb(25 22 62 / 72%); --wall-line: rgb(213 205 255 / 19%); --wall-copy: #fbf9ff; --wall-muted: #d5ceef; --wall-accent: #b8a7ff; background: radial-gradient(circle at 8% 4%, rgb(141 104 255 / 20%), transparent 36rem), radial-gradient(circle at 91% 82%, rgb(241 59 162 / 17%), transparent 34rem), linear-gradient(145deg, #1f1d48, #0d0d1d 67%); }
.wall-shell[data-theme="romance-moderne"] { --wall-accent: #ffb7d9; background: radial-gradient(circle at 10% 0%, rgb(255 152 195 / 19%), transparent 36rem), radial-gradient(circle at 89% 90%, rgb(151 99 224 / 17%), transparent 32rem), linear-gradient(145deg, #2e1d2d, #171317 65%); }
.wall-shell[data-theme="garden-party"] { --wall-surface: rgb(22 44 34 / 72%); --wall-line: rgb(234 255 217 / 19%); --wall-copy: #f8fff2; --wall-muted: #d0e0c8; --wall-accent: #e8ff9d; background: radial-gradient(circle at 9% 4%, rgb(199 239 144 / 18%), transparent 36rem), radial-gradient(circle at 91% 86%, rgb(245 180 98 / 15%), transparent 34rem), linear-gradient(145deg, #1f372b, #111c16 67%); }
.wall-shell[data-theme="terracotta"] { --wall-accent: #ffd0a8; background: radial-gradient(circle at 8% 4%, rgb(255 143 82 / 20%), transparent 36rem), radial-gradient(circle at 92% 88%, rgb(224 73 61 / 15%), transparent 34rem), linear-gradient(145deg, #43251f, #1c1311 67%); }
.wall-shell[data-theme="midnight"] { --wall-surface: rgb(19 27 55 / 72%); --wall-line: rgb(206 220 255 / 18%); --wall-copy: #f7f9ff; --wall-muted: #cbd6f0; --wall-accent: #a8c7ff; background: radial-gradient(circle at 9% 4%, rgb(105 147 255 / 20%), transparent 36rem), radial-gradient(circle at 91% 86%, rgb(131 74 255 / 17%), transparent 34rem), linear-gradient(145deg, #1d2447, #0d101e 67%); }
.wall-shell[data-theme="minimal"] { --wall-surface: rgb(34 34 37 / 72%); --wall-accent: #f8eddd; background: radial-gradient(circle at 10% 6%, rgb(255 245 220 / 12%), transparent 34rem), linear-gradient(145deg, #303035, #131315 67%); }
.wall-shell[data-theme="celestial"] { --wall-surface: rgb(17 29 61 / 75%); --wall-line: rgb(211 226 255 / 19%); --wall-copy: #f4f7ff; --wall-muted: #c9d8f5; --wall-accent: #a9d8ff; background: radial-gradient(circle at 12% 4%, rgb(93 153 255 / 24%), transparent 35rem), radial-gradient(circle at 88% 88%, rgb(208 129 255 / 17%), transparent 34rem), linear-gradient(145deg, #162750, #0d1020 68%); }
.wall-shell[data-theme="citrus-club"] { --wall-surface: rgb(49 34 24 / 75%); --wall-line: rgb(255 243 189 / 21%); --wall-copy: #fffdf2; --wall-muted: #ffe9b6; --wall-accent: #f8e75a; background: radial-gradient(circle at 9% 4%, rgb(255 213 47 / 24%), transparent 34rem), radial-gradient(circle at 92% 90%, rgb(255 92 84 / 20%), transparent 34rem), linear-gradient(145deg, #443025, #1b1514 67%); }
.wall-shell[data-theme="wildflower"] { --wall-surface: rgb(57 34 62 / 73%); --wall-line: rgb(255 229 245 / 19%); --wall-copy: #fff7fb; --wall-muted: #ead2e7; --wall-accent: #ffd28a; background: radial-gradient(circle at 10% 4%, rgb(255 141 181 / 20%), transparent 36rem), radial-gradient(circle at 90% 88%, rgb(145 112 233 / 20%), transparent 34rem), linear-gradient(145deg, #3b2541, #18111d 67%); }
.wall-shell[data-moment="cocktail"] .living-light-canvas { filter: saturate(1.12) brightness(1.06); }
.wall-shell[data-moment="discours"] .living-light-canvas { opacity: .58; filter: saturate(.78); }
.wall-shell[data-moment="ouverture-bal"] .living-light-canvas { opacity: .92; filter: saturate(1.35) hue-rotate(10deg); }
.wall-shell[data-moment="dessert"] .living-light-canvas { filter: saturate(1.2) hue-rotate(-8deg); }
.wall-shell[data-moment="dancefloor"] .living-light-canvas { opacity: .98; filter: saturate(1.48) hue-rotate(28deg); }
.living-light-canvas, .wall-aura, .wall-vignette { position: absolute; z-index: -2; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.living-light-canvas { opacity: .78; mix-blend-mode: screen; transform: translate3d(var(--wall-canvas-x), var(--wall-canvas-y), 0) scale(1.035); transition: transform 1.2s cubic-bezier(.2, .8, .2, 1); }
.wall-aura { z-index: -1; inset: -14%; width: auto; height: auto; opacity: .62; background: radial-gradient(circle at 20% 22%, rgb(255 226 157 / 12%), transparent 22%), radial-gradient(circle at 75% 70%, rgb(241 125 194 / 15%), transparent 27%), radial-gradient(circle at 50% 55%, rgb(149 121 255 / 11%), transparent 32%); filter: blur(16px); mix-blend-mode: screen; transform: translate3d(var(--wall-aura-x), var(--wall-aura-y), 0) scale(1.03); animation: wall-aura-drift 15s ease-in-out infinite alternate; }
.wall-vignette { z-index: -1; background: radial-gradient(ellipse at center, transparent 24%, rgb(4 3 7 / 21%) 100%); }
.wall-content { position: relative; z-index: 1; transform: translate3d(var(--wall-content-x), var(--wall-content-y), 0); transition: transform 900ms cubic-bezier(.2, .8, .2, 1); }
.wall-header { display: flex; align-items: end; justify-content: space-between; gap: 24px; max-width: 1680px; margin: 0 auto clamp(24px, 3.2vw, 48px); }
.wall-header h1 { max-width: 18ch; margin-bottom: 0; font-size: clamp(2.8rem, 6.4vw, 7rem); line-height: .9; text-wrap: balance; text-shadow: 0 10px 44px rgb(0 0 0 / 20%); }
.wall-header .eyebrow { color: var(--wall-accent); }
.wall-meta { display: flex; align-items: end; justify-content: flex-end; flex-wrap: wrap; gap: 9px 13px; max-width: 330px; text-align: right; }
.wall-count, .wall-moment { margin: 0; font-weight: 800; white-space: nowrap; }
.wall-count { color: var(--wall-muted); font-size: .91rem; }
.wall-moment { width: 100%; color: var(--wall-accent); font-size: .83rem; letter-spacing: .08em; text-transform: uppercase; }
.wall-sound-toggle { padding: 7px 10px !important; border: 1px solid var(--wall-line) !important; border-radius: 999px !important; background: rgb(15 10 15 / 34%) !important; color: var(--wall-copy) !important; font-size: .76rem; font-weight: 800; backdrop-filter: blur(12px); }
.wall-sound-toggle[aria-pressed="true"] { border-color: var(--wall-accent) !important; color: var(--wall-accent) !important; }
.wall-layout { display: grid; grid-template-columns: minmax(220px, 285px) minmax(0, 1fr); align-items: start; gap: clamp(18px, 2.8vw, 44px); max-width: 1680px; margin: 0 auto; }
.leaderboard-panel { position: sticky; top: 18px; padding: 20px; border: 1px solid var(--wall-line); border-radius: 22px; background: linear-gradient(145deg, var(--wall-surface), rgb(17 10 17 / 54%)); box-shadow: 0 20px 60px rgb(0 0 0 / 17%); backdrop-filter: blur(18px); }
.leaderboard-panel .panel-kicker { color: var(--wall-accent); }
.leaderboard-panel h2 { margin-bottom: 19px; font-size: 1.27rem; }
.leaderboard { display: grid; gap: 16px; }
.leaderboard-entry > div { display: grid; grid-template-columns: 25px minmax(0, 1fr) auto; align-items: center; gap: 8px; }
.rank { color: var(--wall-muted); font-weight: 800; }
.leaderboard-entry strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.team-bonus { display: inline-block; margin-left: 6px; padding: 2px 5px; border: 1px solid var(--wall-accent); border-radius: 999px; color: var(--wall-accent); font-size: .65rem; font-style: normal; vertical-align: 2px; }
.leaderboard-entry b { color: var(--wall-accent); font-size: .8rem; }
.score-track { display: block; height: 5px; margin-top: 8px; overflow: hidden; border-radius: 99px; background: rgb(255 255 255 / 10%); }
.score-track i { display: block; height: 100%; min-width: 4px; border-radius: inherit; box-shadow: 0 0 14px currentColor; transition: width 850ms cubic-bezier(.22, 1, .36, 1); }
.photo-fountain { columns: 3 230px; column-gap: clamp(12px, 1.3vw, 20px); }
.wall-photo { position: relative; break-inside: avoid; margin: 0 0 clamp(12px, 1.3vw, 20px); overflow: hidden; border: 1px solid var(--wall-line); border-radius: 20px; background: var(--wall-ink); box-shadow: 0 16px 38px rgb(0 0 0 / 24%), 0 0 0 1px rgb(255 255 255 / 2%) inset; transform: translateZ(0); transition: border-color 240ms ease, box-shadow 240ms ease, filter 240ms ease; }
.wall-photo::after { position: absolute; inset: 0; border: 1px solid rgb(255 255 255 / 7%); border-radius: inherit; content: ''; pointer-events: none; }
.wall-photo.is-new { animation: photo-arrives 920ms cubic-bezier(.16, 1, .3, 1) both; }
.wall-photo img { display: block; width: 100%; min-height: 170px; max-height: 500px; object-fit: cover; background: #1d151c; transition: transform 800ms cubic-bezier(.2, .9, .2, 1), filter 400ms ease; }
.wall-photo:hover img { transform: scale(1.035); filter: saturate(1.08); }
.wall-photo figcaption { display: grid; grid-template-columns: 9px minmax(0, 1fr); column-gap: 8px; align-items: center; padding: 11px 12px 12px; background: linear-gradient(90deg, rgb(18 12 19 / 92%), rgb(35 22 33 / 82%)); }
.wall-photo figcaption span { box-shadow: 0 0 14px var(--team-color); }
.wall-photo figcaption small { grid-column: 2; margin-top: 3px; overflow: hidden; color: var(--wall-muted); font-size: .74rem; text-overflow: ellipsis; white-space: nowrap; }
.wall-empty { display: block; break-inside: avoid; column-span: all; margin: 0; padding: 15vh 4vw; color: var(--wall-muted); font-size: 1.15rem; text-align: center; }
.arrival-layer, .live-event-layer, .pulse-layer { position: absolute; z-index: 5; inset: 0; pointer-events: none; overflow: hidden; }
.arrival-layer { display: grid; place-items: center; }
.live-event-layer { display: flex; align-items: end; justify-content: center; padding: clamp(16px, 3vw, 40px); }
.live-event-card { display: grid; min-width: min(92vw, 480px); max-width: 560px; gap: 4px; padding: 15px 19px; border: 1px solid rgb(255 244 212 / 42%); border-radius: 18px; background: linear-gradient(125deg, rgb(44 25 39 / 92%), rgb(38 31 57 / 88%)); box-shadow: 0 18px 65px rgb(0 0 0 / 33%), 0 0 46px rgb(255 199 119 / 20%); backdrop-filter: blur(18px); text-align: center; animation: live-event-in 520ms cubic-bezier(.16, 1, .3, 1) both; }
.live-event-card p { margin: 0; color: var(--wall-accent); font-size: .68rem; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
.live-event-card strong { font-size: clamp(1.05rem, 2vw, 1.45rem); }
.live-event-card > span { color: var(--wall-muted); font-size: .84rem; }
.live-event-card small { display: inline-flex; align-items: center; justify-content: center; gap: 6px; color: var(--wall-copy); font-weight: 750; }
.live-event-card small i { width: 8px; height: 8px; border-radius: 50%; }
.live-event-card b { color: var(--wall-accent); font-size: .85rem; }
.live-event-card.is-comeback { border-color: rgb(177 255 194 / 46%); box-shadow: 0 18px 65px rgb(0 0 0 / 33%), 0 0 46px rgb(129 246 173 / 19%); }
.wall-arrival { display: grid; min-width: min(92vw, 430px); gap: 4px; padding: 18px 22px; border: 1px solid rgb(255 251 240 / 37%); border-radius: 18px; background: rgb(31 18 29 / 72%); box-shadow: 0 18px 80px rgb(0 0 0 / 35%), 0 0 65px rgb(255 193 116 / 23%); backdrop-filter: blur(18px); animation: arrival-card 3.7s cubic-bezier(.16, 1, .3, 1) both; text-align: center; }
.wall-arrival p { margin: 0; color: var(--wall-accent); font-size: .72rem; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.wall-arrival strong { font-size: clamp(1.2rem, 2.1vw, 1.9rem); line-height: 1.05; }
.wall-arrival span { color: var(--wall-muted); font-size: .9rem; }
.wall-arrival.is-moment { min-width: min(92vw, 500px); }
.pulse-wave { position: absolute; top: 50%; left: 50%; display: grid; width: 24vmin; aspect-ratio: 1; place-items: center; border: 2px solid rgb(255 238 189 / 78%); border-radius: 50%; box-shadow: 0 0 40px rgb(255 188 119 / 70%), inset 0 0 28px rgb(255 245 218 / 34%); opacity: 0; transform: translate(-50%, -50%) scale(.12); animation: pulse-wave 1.85s cubic-bezier(.12, .76, .23, 1) both; }
.pulse-emoji { display: grid; width: 72px; height: 72px; place-items: center; border: 1px solid rgb(255 255 255 / 30%); border-radius: 50%; background: rgb(37 21 38 / 56%); box-shadow: 0 0 42px rgb(255 211 146 / 52%); font-size: clamp(2.1rem, 5vmin, 4.3rem); line-height: 1; animation: pulse-emoji 780ms cubic-bezier(.16, 1, .3, 1) both; }
.pulse-particle { position: absolute; font-style: normal; font-size: clamp(1.2rem, 3vmin, 2rem); opacity: 0; transform: rotate(calc(var(--particle-index) * 120deg)) translateY(-5vmin); animation: pulse-particle 1.25s cubic-bezier(.16, .85, .25, 1) both; animation-delay: calc(var(--particle-index) * 70ms); }
.wall-shell.is-blooming::before { position: absolute; z-index: 0; inset: 0; background: radial-gradient(circle at 50% 50%, rgb(255 214 155 / 20%), transparent 34%); content: ''; pointer-events: none; animation: wall-bloom 1.5s ease-out both; }
@keyframes photo-arrives { 0% { opacity: 0; transform: translateY(28px) scale(.92); filter: brightness(1.35); } 46% { opacity: 1; transform: translateY(-4px) scale(1.012); } 100% { opacity: 1; transform: translateY(0) scale(1); filter: brightness(1); } }
@keyframes arrival-card { 0% { opacity: 0; transform: translateY(22px) scale(.94); } 13%, 75% { opacity: 1; transform: translateY(0) scale(1); } 100% { opacity: 0; transform: translateY(-12px) scale(.985); } }
@keyframes pulse-wave { 0% { opacity: 0; transform: translate(-50%, -50%) scale(.12); } 12% { opacity: .96; } 100% { opacity: 0; transform: translate(-50%, -50%) scale(calc(4 + var(--pulse-strength) * .24)); } }
@keyframes pulse-emoji { 0% { opacity: 0; transform: scale(.32) rotate(-12deg); } 48% { opacity: 1; transform: scale(1.13) rotate(4deg); } 100% { opacity: .86; transform: scale(1) rotate(0); } }
@keyframes pulse-particle { 0%, 18% { opacity: 0; } 42% { opacity: 1; } 100% { opacity: 0; transform: rotate(calc(var(--particle-index) * 120deg)) translateY(-15vmin) scale(.72); } }
@keyframes wall-bloom { 0% { opacity: 0; } 16% { opacity: 1; } 100% { opacity: 0; } }
@keyframes live-event-in { from { opacity: 0; transform: translateY(18px) scale(.96); } to { opacity: 1; transform: translateY(0) scale(1); } }
@keyframes wall-aura-drift { 0% { opacity: .48; transform: translate3d(calc(var(--wall-aura-x) - 2%), calc(var(--wall-aura-y) - 1%), 0) scale(1.03) rotate(-2deg); } 100% { opacity: .78; transform: translate3d(calc(var(--wall-aura-x) + 2%), calc(var(--wall-aura-y) + 1%), 0) scale(1.1) rotate(2deg); } }
@keyframes wall-photo-drift { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
.gallery-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 14px; max-width: 1500px; margin: 0 auto; }
.gallery-photo { overflow: hidden; margin: 0; border: 1px solid rgb(255 240 249 / 16%); border-radius: 17px; background: #2c222c; box-shadow: 0 13px 28px rgb(0 0 0 / 17%); }
.gallery-photo img { display: block; width: 100%; aspect-ratio: 1 / 1; object-fit: cover; }
.gallery-photo figcaption { display: grid; grid-template-columns: 9px minmax(0, 1fr); column-gap: 7px; align-items: center; padding: 10px 11px 11px; }
.gallery-photo figcaption span { width: 9px; height: 9px; border-radius: 50%; }
.gallery-photo figcaption small { grid-column: 2; margin-top: 3px; overflow: hidden; color: #cdbccb; font-size: .78rem; text-overflow: ellipsis; white-space: nowrap; }
.gallery-download { display: block; padding: 0 11px 12px; color: #f4c0dc; font-size: .82rem; font-weight: 800; text-decoration: underline; text-underline-offset: 3px; }

@media (max-width: 520px) {
  .app-shell { width: min(100% - 24px, 760px); padding-top: 32px; }
  .panel { padding: 17px; border-radius: 16px; }
  .share-panel { align-items: flex-start; }
  .pulse-panel { grid-template-columns: 1fr; }
  .pulse-grid { justify-content: flex-start; }
  .share-panel img { width: 92px; height: 92px; }
  .inline-form { flex-direction: column; }
  .inline-form button { width: 100%; }
  .organizer-hero .header-links { margin-top: 14px; justify-content: flex-start; }
  .stats-grid, .settings-form, .challenge-form, .director-grid { grid-template-columns: 1fr; }
  .challenge-form label:nth-child(2) { grid-column: auto; }
  .wall-header { align-items: start; flex-direction: column; }
  .wall-layout { grid-template-columns: 1fr; }
  .leaderboard-panel { position: static; }
  .photo-fountain { columns: 1; }
  .auth-grid, .event-create-form { grid-template-columns: 1fr; }
  .auth-grid form + form { padding-top: 22px; padding-left: 0; border-top: 1px solid rgb(255 223 242 / 14%); border-left: 0; }
  .event-create-form label:first-child, .event-create-form label:nth-child(5) { grid-column: auto; }
  .private-access, .client-event-card { align-items: flex-start; flex-direction: column; }
  .regie-command-deck { position: static; grid-template-columns: 1fr; padding: 15px; }
  .command-deck-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .command-deck-actions, .afterglow-actions { justify-content: flex-start; }
  .afterglow-panel { align-items: flex-start; flex-direction: column; }
  .regie-utility-bar { align-items: flex-start; flex-direction: column; }
  .regie-utility-actions { justify-content: flex-start; }
  .private-access img { width: 136px; height: 136px; }
  .event-card-actions { justify-content: flex-start; }
}

@media (min-width: 521px) and (max-width: 850px) {
  .stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .wall-layout { grid-template-columns: 220px minmax(0, 1fr); }
  .photo-fountain { columns: 2 180px; }
}

@media (max-width: 700px) {
  .wall-shell { padding: 24px 16px 32px; }
  .wall-header { align-items: start; flex-direction: column; gap: 15px; margin-bottom: 26px; }
  .wall-header h1 { max-width: 11ch; font-size: clamp(2.7rem, 15vw, 4.8rem); }
  .wall-meta { align-items: center; justify-content: flex-start; max-width: none; text-align: left; }
  .wall-moment { width: auto; }
  .wall-layout { grid-template-columns: 1fr; }
  .leaderboard-panel { position: static; }
  .photo-fountain { columns: 1; }
}

@media (prefers-reduced-motion: reduce) {
  .living-light-canvas, .wall-aura { display: none; }
  .wall-content, .living-light-canvas { transform: none; transition: none; }
  .wall-photo.is-new, .wall-arrival, .live-event-card, .pulse-wave, .wall-shell.is-blooming::before, .wall-photo { animation: none; }
  .wall-arrival { opacity: 1; }
  .pulse-wave { display: none; }
  .wall-photo img, .score-track i { transition: none; }
}

/* Living Light — application surfaces */
.guest-body, .portal-body, .regie-body, .privacy-body {
  min-height: 100vh;
  background:
    radial-gradient(circle at 8% 3%, rgb(255 191 117 / 20%), transparent 30rem),
    radial-gradient(circle at 91% 18%, rgb(235 98 152 / 17%), transparent 33rem),
    radial-gradient(circle at 52% 108%, rgb(130 84 185 / 16%), transparent 34rem),
    linear-gradient(145deg, #2c1b26, #151116 62%);
}
.portal-body { background: radial-gradient(circle at 8% 3%, rgb(251 193 122 / 18%), transparent 31rem), radial-gradient(circle at 88% 19%, rgb(209 111 180 / 14%), transparent 35rem), linear-gradient(145deg, #211927, #111116 68%); }
.regie-body { background: radial-gradient(circle at 6% 0%, rgb(255 190 132 / 12%), transparent 29rem), radial-gradient(circle at 95% 7%, rgb(136 141 255 / 13%), transparent 33rem), linear-gradient(145deg, #1e1920, #101114 65%); }
.privacy-body { background: radial-gradient(circle at 12% 2%, rgb(255 201 137 / 13%), transparent 29rem), linear-gradient(145deg, #211a20, #121114 66%); }

.guest-shell, .portal-shell, .regie-shell, .privacy-shell { position: relative; padding-top: clamp(42px, 7vw, 84px); padding-bottom: 52px; }
.guest-shell { max-width: 820px; }
.portal-shell, .regie-shell { max-width: 1240px; }
.privacy-shell { max-width: 920px; }
.guest-body .hero, .portal-body .hero, .regie-body .hero, .privacy-body .hero { position: relative; margin-bottom: 34px; }
.guest-body .hero::after, .portal-body .hero::after, .privacy-body .hero::after { display: block; width: min(180px, 35vw); height: 1px; margin-top: 25px; background: linear-gradient(90deg, #ffd39d, rgb(255 211 157 / 0%)); content: ''; }
.guest-body h1, .portal-body h1, .regie-body h1, .privacy-body h1 { max-width: 13ch; font-family: Iowan Old Style, Palatino Linotype, Georgia, ui-serif, serif; font-weight: 600; letter-spacing: -.065em; line-height: .91; text-wrap: balance; }
.portal-body h1, .privacy-body h1 { max-width: 12ch; }
.regie-body h1 { max-width: 17ch; }
.guest-body .lead, .portal-body .lead, .regie-body .lead, .privacy-body .lead { max-width: 44rem; color: #e8d8dc; font-size: 1.05rem; }
.guest-body .eyebrow, .portal-body .eyebrow, .regie-body .eyebrow, .privacy-body .eyebrow { color: #ffd4a1; }

.guest-body .panel, .portal-body .panel, .regie-body .panel, .privacy-body .panel {
  border-color: rgb(255 238 220 / 17%);
  border-radius: 24px;
  background: linear-gradient(135deg, rgb(66 42 56 / 81%), rgb(29 22 31 / 88%));
  box-shadow: 0 20px 58px rgb(0 0 0 / 16%), inset 0 1px 0 rgb(255 255 255 / 5%);
  backdrop-filter: blur(16px);
}
.regie-body .panel { border-radius: 19px; background: linear-gradient(135deg, rgb(45 37 47 / 92%), rgb(24 24 30 / 94%)); box-shadow: 0 15px 40px rgb(0 0 0 / 15%), inset 0 1px 0 rgb(255 255 255 / 4%); }
.privacy-body .panel { padding: clamp(20px, 3vw, 30px); background: linear-gradient(135deg, rgb(57 43 51 / 86%), rgb(29 24 30 / 92%)); }
.privacy-body .panel p { max-width: 72ch; color: #e1d3d9; line-height: 1.7; }
.privacy-body .panel h2 { font-family: Iowan Old Style, Palatino Linotype, Georgia, ui-serif, serif; font-size: clamp(1.55rem, 3vw, 2.15rem); letter-spacing: -.04em; }
.legal-shell { max-width: 980px; }
.legal-status { margin: 0 0 18px; padding: 17px 20px; border: 1px solid rgb(255 207 145 / 45%); border-radius: 18px; background: rgb(255 196 128 / 10%); color: #f5dfca; }
.legal-status strong { display: block; color: #ffd29d; }
.legal-status p { margin: 7px 0 0; line-height: 1.55; }
.legal-definition-list { display: grid; gap: 0; margin: 0; }
.legal-definition-list > div { display: grid; grid-template-columns: minmax(9rem, 26%) 1fr; gap: 16px; padding: 14px 0; border-top: 1px solid rgb(255 238 220 / 12%); }
.legal-definition-list > div:first-child { border-top: 0; padding-top: 0; }
.legal-definition-list dt { color: #ffd1dd; font-weight: 700; }
.legal-definition-list dd { margin: 0; color: #e1d3d9; line-height: 1.6; }
.legal-footer { display: flex; flex-wrap: wrap; gap: 10px 18px; margin: 30px auto 0; color: #d5c2cf; font-size: .9rem; }
.legal-footer a { color: #f0b9d2; }
.event-compliance { grid-column: 1 / -1; }
.wall-legal-link { color: var(--wall-muted); font-size: .72rem; text-decoration: underline; text-underline-offset: 3px; }

.guest-body input, .guest-body select, .guest-body textarea, .portal-body input, .portal-body select, .portal-body textarea, .regie-body input, .regie-body select, .regie-body textarea, .privacy-body input, .privacy-body select, .privacy-body textarea {
  border-color: rgb(236 193 214 / 32%);
  border-radius: 13px;
  background: rgb(16 13 18 / 58%);
}
.guest-body input:focus, .guest-body select:focus, .guest-body textarea:focus, .portal-body input:focus, .portal-body select:focus, .portal-body textarea:focus, .regie-body input:focus, .regie-body select:focus, .regie-body textarea:focus, .privacy-body input:focus, .privacy-body select:focus, .privacy-body textarea:focus { border-color: #ffd09e; box-shadow: 0 0 0 3px rgb(255 190 129 / 16%); }
.guest-body button:not(.team-card):not(.text-button), .portal-body button:not(.text-button), .regie-body button:not(.text-button), .privacy-body button:not(.text-button) { border-color: #ffd19e; background: linear-gradient(135deg, #ffd09b, #ef9cbd); box-shadow: 0 9px 22px rgb(0 0 0 / 14%); color: #34202e; transition: transform 160ms ease, box-shadow 160ms ease, filter 160ms ease; }
.guest-body button:not(.team-card):not(.text-button):hover, .portal-body button:not(.text-button):hover, .regie-body button:not(.text-button):hover, .privacy-body button:not(.text-button):hover { filter: brightness(1.04); transform: translateY(-1px); box-shadow: 0 13px 28px rgb(0 0 0 / 20%); }
.guest-body .secondary-button, .portal-body .secondary-button, .regie-body .secondary-button { border-color: rgb(255 211 167 / 46%) !important; background: rgb(91 55 76 / 84%) !important; color: #fff8f7 !important; }
.guest-body .step-chip, .portal-body .step-chip, .regie-body .step-chip { border-color: rgb(255 215 172 / 38%); color: #ffdbb4; background: rgb(255 221 185 / 5%); }

.guest-hero { padding: clamp(10px, 2vw, 20px) 0 6px; }
.guest-shell .share-panel { position: relative; border-color: rgb(255 211 160 / 32%); background: linear-gradient(120deg, rgb(109 60 78 / 83%), rgb(48 34 48 / 89%)); overflow: hidden; }
.guest-shell .share-panel::after { position: absolute; top: -110px; right: 80px; width: 250px; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle, rgb(255 210 150 / 23%), transparent 68%); content: ''; pointer-events: none; }
.guest-shell .share-panel > * { position: relative; z-index: 1; }
.guest-shell .pulse-panel { border-color: rgb(255 211 160 / 16%); background: linear-gradient(145deg, rgb(49 34 48 / 76%), rgb(29 23 31 / 88%)); }
.game-signal { display: grid; gap: 3px; margin: 16px 0; padding: 15px 17px; border: 1px solid rgb(255 220 139 / 48%); border-radius: 16px; background: radial-gradient(circle at 86% 10%, rgb(255 217 102 / 19%), transparent 38%), linear-gradient(135deg, rgb(99 58 51 / 86%), rgb(43 28 43 / 92%)); box-shadow: 0 13px 32px rgb(0 0 0 / 14%); }
.game-signal p { margin: 0; color: #ffdb85; font-size: .68rem; font-weight: 900; letter-spacing: .13em; text-transform: uppercase; }
.game-signal strong { font-family: Iowan Old Style, Palatino Linotype, Georgia, ui-serif, serif; font-size: 1.28rem; letter-spacing: -.03em; }
.game-signal span { color: #ead6cf; font-size: .87rem; font-weight: 700; }
.guest-shell .pulse-button { border-color: rgb(255 211 160 / 33%) !important; background: rgb(255 213 169 / 8%) !important; box-shadow: none !important; }
.guest-shell .pulse-button:hover { background: rgb(255 213 169 / 17%) !important; }
.guest-shell .team-card { border-color: rgb(255 218 185 / 17%); border-radius: 16px; background: linear-gradient(145deg, rgb(63 44 61 / 79%), rgb(32 26 35 / 89%)); }
.guest-shell .team-card:hover, .guest-shell .team-card[data-selected="true"] { border-color: #ffd09e; box-shadow: 0 12px 24px rgb(0 0 0 / 12%); }
.guest-shell .challenge-card { position: relative; min-height: 242px; overflow: hidden; border-color: rgb(255 220 184 / 16%); border-radius: 18px; background: linear-gradient(145deg, rgb(55 39 54 / 92%), rgb(27 23 31 / 94%)); box-shadow: inset 0 1px 0 rgb(255 255 255 / 4%); }
.guest-shell .challenge-card::before { position: absolute; top: 0; right: 0; left: 0; height: 2px; background: linear-gradient(90deg, transparent, #ffd39f, transparent); content: ''; opacity: .62; }
.guest-shell .challenge-card h3 { font-family: Iowan Old Style, Palatino Linotype, Georgia, ui-serif, serif; font-size: 1.42rem; letter-spacing: -.035em; }
.guest-shell .challenge-meta strong { color: #ffd39f; }
.guest-shell .challenge-card.is-completed { border-color: rgb(126 211 158 / 42%); background: linear-gradient(145deg, rgb(43 72 59 / 76%), rgb(24 35 33 / 91%)); opacity: .78; }
.guest-shell .challenge-card.is-completed::before { background: linear-gradient(90deg, transparent, #9ee9b8, transparent); }
.challenge-completion { margin: -5px 0 12px; color: #b9efd0; font-size: .78rem; font-weight: 750; line-height: 1.4; }
.guest-shell .upload-panel { border-color: rgb(255 210 155 / 32%); background: linear-gradient(145deg, rgb(78 49 63 / 90%), rgb(32 24 37 / 95%)); }
.guest-shell .file-picker { min-height: 188px; border-color: rgb(255 211 160 / 38%); background: radial-gradient(circle at 50% 15%, rgb(255 201 144 / 13%), transparent 46%), rgb(31 24 34 / 66%); }
.guest-shell .submission-progress { border-color: rgb(255 214 171 / 35%); background: linear-gradient(135deg, rgb(107 65 92 / 79%), rgb(39 29 46 / 93%)); }

.portal-shell .auth-panel { max-width: 1000px; }
.portal-shell .auth-grid { gap: 0; border: 1px solid rgb(255 222 195 / 11%); border-radius: 18px; overflow: hidden; background: rgb(16 14 19 / 20%); }
.portal-shell .auth-grid form { padding: 22px; }
.portal-shell .auth-grid form + form { border-color: rgb(255 222 195 / 13%); }
.portal-shell .auth-grid h3 { font-family: Iowan Old Style, Palatino Linotype, Georgia, ui-serif, serif; font-size: 1.35rem; letter-spacing: -.03em; }
.portal-shell .portal-welcome { border-color: rgb(255 211 160 / 28%); background: linear-gradient(130deg, rgb(91 57 73 / 89%), rgb(36 29 43 / 94%)); }
.portal-shell .event-create-form { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.portal-shell .event-create-form label:first-child, .portal-shell .event-create-form label:nth-child(5) { grid-column: span 3; }
.portal-shell .event-create-form button { min-height: 46px; }
.portal-shell .client-event-card { border-color: rgb(255 222 195 / 14%); border-radius: 17px; background: linear-gradient(145deg, rgb(54 40 55 / 74%), rgb(29 24 34 / 88%)); transition: transform 160ms ease, border-color 160ms ease; }
.portal-shell .client-event-card:hover { border-color: rgb(255 209 162 / 42%); transform: translateY(-2px); }
.portal-shell .private-access { border-color: rgb(211 232 177 / 44%); background: linear-gradient(135deg, rgb(45 99 73 / 92%), rgb(48 35 50 / 94%)); }

.regie-shell #dashboard { display: grid; gap: 18px; }
.regie-shell #dashboard > .panel { margin-bottom: 0; }
.regie-shell .stats-grid { margin-bottom: 0; }
.regie-shell .stat-card { min-height: 132px; border-color: rgb(255 221 188 / 14%); border-radius: 18px; background: linear-gradient(145deg, rgb(68 48 65 / 91%), rgb(30 29 36 / 94%)); }
.regie-shell .stat-card strong { color: #ffdbb0; }
.regie-shell .moderation-card, .regie-shell .pilot-metric, .regie-shell .challenge-admin-item, .regie-shell .recent-photo-item, .regie-shell .gallery-link-item { border-color: rgb(255 221 188 / 14%); background: rgb(18 18 24 / 46%); }
.regie-shell .moderation-card { border-radius: 17px; }
.regie-shell .moderation-preview { background: radial-gradient(circle at 45% 22%, rgb(255 204 145 / 13%), transparent 48%), #18151c; }
.regie-shell .moment-actions button { min-height: 49px; }
.regie-shell .settings-form, .regie-shell .challenge-form { gap: 16px; }

.gallery-body .gallery-shell { min-height: 100vh; padding-bottom: clamp(34px, 6vw, 78px); }
.gallery-body .wall-header { margin-bottom: clamp(28px, 4vw, 54px); }
.gallery-actions { display: flex; align-items: center; justify-content: end; flex-wrap: wrap; gap: 10px; }
.gallery-body .wall-header h1 { font-family: Iowan Old Style, Palatino Linotype, Georgia, ui-serif, serif; font-weight: 600; letter-spacing: -.06em; }
.gallery-body .gallery-grid { gap: clamp(13px, 1.4vw, 22px); }
.gallery-body .gallery-photo { border-color: var(--wall-line); border-radius: 20px; background: rgb(25 18 24 / 88%); box-shadow: 0 16px 38px rgb(0 0 0 / 23%); }
.gallery-body .gallery-photo img { aspect-ratio: 4 / 3; transition: transform 500ms ease; }
.gallery-body .gallery-photo:hover img { transform: scale(1.025); }
.gallery-body .gallery-photo figcaption { background: linear-gradient(90deg, rgb(18 12 19 / 92%), rgb(35 22 33 / 82%)); }
.gallery-body .gallery-download { color: var(--wall-accent); }
.memory-reel { position: fixed; z-index: 20; inset: 0; display: grid; place-items: center; padding: clamp(18px, 4vw, 64px); background: rgb(9 7 13 / 92%); backdrop-filter: blur(16px); }
.memory-reel[hidden] { display: none; }
.memory-reel img { width: min(82vw, 980px); max-height: 78vh; object-fit: contain; border: 1px solid rgb(255 244 229 / 25%); border-radius: 22px; box-shadow: 0 24px 90px rgb(0 0 0 / 55%); }
.memory-reel-caption { position: absolute; bottom: clamp(24px, 5vw, 58px); left: 50%; display: grid; min-width: min(82vw, 420px); gap: 3px; padding: 13px 18px; border: 1px solid rgb(255 236 204 / 27%); border-radius: 15px; background: rgb(32 18 31 / 72%); box-shadow: 0 14px 40px rgb(0 0 0 / 30%); transform: translateX(-50%); text-align: center; }
.memory-reel-caption p { margin: 0; color: var(--wall-accent); font-size: .68rem; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.memory-reel-caption span { color: var(--wall-muted); font-size: .84rem; }
.memory-reel-close { position: absolute; z-index: 1; top: clamp(14px, 3vw, 34px); right: clamp(14px, 3vw, 34px); display: grid; width: 42px; height: 42px; place-items: center; padding: 0 !important; border-radius: 50% !important; font-size: 1.75rem !important; }
.memory-reel.is-changing img { animation: reel-photo-in 720ms cubic-bezier(.16, 1, .3, 1) both; }
@keyframes reel-photo-in { from { opacity: 0; transform: scale(.975); filter: brightness(1.22); } to { opacity: 1; transform: scale(1); filter: brightness(1); } }

@media (max-width: 850px) {
  .portal-shell .event-create-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .portal-shell .event-create-form label:first-child, .portal-shell .event-create-form label:nth-child(5) { grid-column: span 2; }
}

@media (max-width: 520px) {
  .guest-shell, .portal-shell, .regie-shell, .privacy-shell { padding-top: 38px; }
  .legal-definition-list > div { grid-template-columns: 1fr; gap: 5px; }
  .guest-body h1, .portal-body h1, .regie-body h1, .privacy-body h1 { font-size: clamp(2.75rem, 14vw, 4.2rem); }
  .guest-body .panel, .portal-body .panel, .regie-body .panel, .privacy-body .panel { border-radius: 18px; }
  .portal-shell .event-create-form { grid-template-columns: 1fr; }
  .portal-shell .event-create-form label:first-child, .portal-shell .event-create-form label:nth-child(5) { grid-column: auto; }
  .portal-shell .auth-grid { border-radius: 15px; }
  .portal-shell .auth-grid form { padding: 18px; }

  /* The guest path is a one-task-at-a-time mobile flow: choose, shoot, send. */
  .guest-body[data-mode="event"] .guest-shell { width: min(100% - 18px, 720px); padding-top: 16px; padding-bottom: 20px; }
  .guest-body[data-mode="event"] .hero { margin-bottom: 13px; }
  .guest-body[data-mode="event"] .hero::after { display: none; }
  .guest-body[data-mode="event"] .hero h1 { max-width: 16ch; margin-bottom: 5px; font-size: clamp(2rem, 10vw, 2.8rem); line-height: .98; }
  .guest-body[data-mode="event"] .hero .lead { display: -webkit-box; overflow: hidden; font-size: .88rem; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
  .guest-body[data-mode="event"] .share-panel, .guest-body[data-mode="event"] .pulse-panel { display: none !important; }
  .guest-body[data-mode="event"] .panel { margin-bottom: 10px; padding: 14px; }
  .guest-body[data-mode="event"][data-guest-stage="challenge"] #team-panel, .guest-body[data-mode="event"][data-guest-stage="photo"] #team-panel, .guest-body[data-mode="event"][data-guest-stage="photo"] #challenge-panel { display: none !important; }
  .guest-body[data-mode="event"] .section-heading { gap: 8px; }
  .guest-body[data-mode="event"] .panel-kicker { margin-bottom: 4px; font-size: .62rem; }
  .guest-body[data-mode="event"] .section-heading h2 { margin: 0; font-size: 1.2rem; }
  .guest-body[data-mode="event"] .hint { margin: 4px 0 10px; font-size: .82rem; }
  .guest-body[data-mode="event"] .teams, .guest-body[data-mode="event"] .challenges { display: grid; grid-auto-columns: minmax(78vw, 1fr); grid-auto-flow: column; grid-template-columns: none; overflow-x: auto; overscroll-behavior-x: contain; padding: 2px 2px 9px; scroll-snap-type: x mandatory; scrollbar-width: thin; }
  .guest-body[data-mode="event"] .team-card, .guest-body[data-mode="event"] .challenge-card { scroll-snap-align: center; }
  .guest-body[data-mode="event"] .team-card { min-height: 66px; }
  .guest-body[data-mode="event"] .challenge-card { min-height: 206px; padding: 14px; }
  .guest-body[data-mode="event"] .challenge-card h3 { font-size: 1.2rem; }
  .guest-body[data-mode="event"] .challenge-card p { margin-bottom: 11px; font-size: .84rem; }
  .guest-body[data-mode="event"] .inline-form { align-items: stretch; margin-top: 9px; }
  .guest-body[data-mode="event"] .file-picker { min-height: 128px; padding: 13px; }
  .guest-body[data-mode="event"] .file-picker-icon { margin-bottom: 4px; font-size: 1.65rem; }
  .guest-body[data-mode="event"] .privacy-note { margin: 11px 0 0; font-size: .73rem; }
  .guest-body[data-mode="event"] .submission-progress { grid-template-columns: 48px minmax(0, 1fr); gap: 5px 11px; margin-top: 11px; padding: 13px; }
  .guest-body[data-mode="event"] .processing-mascot { width: 48px; height: 48px; border-radius: 18px; }
  .guest-body[data-mode="event"] .processing-mascot img { width: 44px; height: 44px; }
  .guest-body[data-mode="event"] .submission-steps { gap: 5px; padding-top: 10px; }
  .guest-body[data-mode="event"] .submission-steps li { font-size: .66rem; }
  .guest-body[data-mode="event"] .guest-guide { position: fixed; right: 10px; bottom: 10px; left: 10px; grid-template-columns: 37px minmax(0, 1fr); gap: 8px; margin: 0; padding: 7px 10px 7px 7px; border-radius: 15px; }
  .guest-body[data-mode="event"] .guest-guide-orb { width: 36px; height: 36px; }
  .guest-body[data-mode="event"] .guest-guide-orb img { width: 28px; height: 28px; }
  .guest-body[data-mode="event"] .guest-guide strong { display: -webkit-box; overflow: hidden; font-size: .71rem; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
  .guest-body[data-mode="event"] .guest-guide p { display: none; }

  .wall-layout { min-height: 0; }
  .photo-fountain { min-height: min(65dvh, 650px); }
  .wall-photo.wall-stage-card { width: min(42vw, 184px); }
  .photo-viewer { width: calc(100vw - 16px); max-height: calc(100dvh - 16px); border-radius: 19px; }
  .photo-viewer-content { gap: 10px; padding: 13px; }
  .photo-viewer-header h2 { font-size: 1.28rem; }
  .photo-viewer-stage { min-height: min(58dvh, 520px); border-radius: 14px; }
  .photo-viewer-image { max-height: min(58dvh, 520px); }
  .photo-viewer-watermark { font-size: .55rem; }
  .photo-viewer-controls { gap: 6px; }
  .photo-viewer-controls span { flex-basis: 100%; margin: 0; text-align: center; }
  .wall-vote-popup { min-width: min(300px, calc(100vw - 28px)); padding: 14px 16px; }
}

/* Commercial home — intentionally separate from the private guest journey. */
body[data-mode="marketing"] {
  background:
    radial-gradient(circle at 2% 7%, rgb(255 185 112 / 19%), transparent 31rem),
    radial-gradient(circle at 93% 5%, rgb(239 72 147 / 20%), transparent 36rem),
    radial-gradient(circle at 54% 83%, rgb(138 91 215 / 16%), transparent 38rem),
    linear-gradient(145deg, #301b31, #151117 62%);
}
body[data-mode="marketing"] .guest-shell {
  width: min(100% - 64px, 1280px);
  max-width: 1280px;
  padding-top: clamp(28px, 4vw, 58px);
  padding-bottom: clamp(42px, 7vw, 84px);
}
.marketing-topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  min-height: 42px;
}
.topbar-brand {
  color: #ffce95;
  font-size: .77rem;
  font-weight: 900;
  letter-spacing: .15em;
  text-decoration: none;
}
.topbar-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px 18px;
}
.topbar-actions > a {
  color: #ead5df;
  font-size: .79rem;
  font-weight: 760;
  text-decoration-color: rgb(234 213 223 / 44%);
  text-underline-offset: 4px;
}
.topbar-actions > a:hover { color: #fff4ec; }
.topbar-actions .topbar-register {
  padding: 8px 12px;
  border: 1px solid rgb(255 220 179 / 38%);
  border-radius: 999px;
  background: rgb(255 203 151 / 10%);
  color: #ffdfba;
  text-decoration: none;
  transition: background 160ms ease, border-color 160ms ease, transform 160ms ease;
}
.topbar-actions .topbar-register:hover {
  border-color: rgb(255 220 179 / 62%);
  background: rgb(255 203 151 / 18%);
  transform: translateY(-1px);
}
body[data-mode="marketing"] .marketing-hero {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(440px, 1.1fr);
  align-items: center;
  gap: clamp(30px, 6vw, 92px);
  min-height: min(660px, calc(100vh - 86px));
  margin-bottom: clamp(48px, 7vw, 90px);
  padding: 0;
}
body[data-mode="marketing"] .marketing-hero::after { display: none; }
.brand-lockup {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  color: #ffce95;
  font-size: .77rem;
  font-weight: 900;
  letter-spacing: .15em;
  text-decoration: none;
}
body[data-mode="marketing"] .marketing-hero .brand-lockup { display: none; }
.marketing-kicker {
  margin: 0 0 12px;
  color: #f5a9d0;
  font-size: .76rem;
  font-weight: 850;
  letter-spacing: .12em;
  text-transform: uppercase;
}
body[data-mode="marketing"] h1 {
  max-width: 10.5ch;
  margin-bottom: 19px;
  color: #fff9f4;
  font-size: clamp(3.55rem, 5.55vw, 6.25rem);
  letter-spacing: -.07em;
  text-wrap: balance;
}
body[data-mode="marketing"] .lead {
  max-width: 32rem;
  color: #f0dfe5;
  font-size: clamp(1.04rem, 1.35vw, 1.24rem);
  line-height: 1.55;
}
body[data-mode="marketing"] .hero-actions { gap: 16px 21px; margin-top: 28px; }
.marketing-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 48px;
  padding: 12px 18px;
  border: 1px solid rgb(255 236 204 / 36%);
  border-radius: 999px;
  background: linear-gradient(135deg, #ffd096, #f199c1 58%, #cc72bd);
  box-shadow: 0 14px 34px rgb(225 104 153 / 19%), inset 0 1px 0 rgb(255 255 255 / 43%);
  color: #341c30;
  font-size: .93rem;
  font-weight: 900;
  text-decoration: none;
  transition: transform 180ms ease, box-shadow 180ms ease, filter 180ms ease;
}
.marketing-primary span { font-size: 1.1em; transition: transform 180ms ease; }
.marketing-primary:hover { filter: saturate(1.08) brightness(1.04); box-shadow: 0 18px 44px rgb(225 104 153 / 31%), inset 0 1px 0 rgb(255 255 255 / 43%); transform: translateY(-2px); }
.marketing-primary:hover span { transform: translateX(3px); }
body[data-mode="marketing"] .hero-link {
  color: #fff3e8;
  font-size: .91rem;
  font-weight: 800;
  text-decoration-color: rgb(255 228 199 / 52%);
}
body[data-mode="marketing"] .sound-toggle { display: none; }
.marketing-reassurance {
  max-width: 34rem;
  margin: 20px 0 0;
  color: #ccb8c2;
  font-size: .78rem;
  font-weight: 650;
  letter-spacing: .015em;
  line-height: 1.5;
}
.marketing-showcase {
  position: relative;
  min-height: clamp(370px, 43vw, 570px);
  overflow: hidden;
  border: 1px solid rgb(255 231 203 / 25%);
  border-radius: clamp(26px, 3vw, 42px);
  background: #362333;
  box-shadow: 0 32px 85px rgb(5 2 8 / 40%), 0 0 0 1px rgb(255 255 255 / 4%) inset;
  isolation: isolate;
}
.marketing-showcase::before {
  position: absolute;
  z-index: 1;
  inset: 0;
  background: linear-gradient(90deg, rgb(36 19 37 / 44%), transparent 46%, rgb(49 17 47 / 17%));
  content: '';
  pointer-events: none;
}
.marketing-showcase img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: inherit;
  object-fit: cover;
  object-position: center;
  animation: marketing-image-drift 16s ease-in-out infinite alternate;
}
.showcase-halo {
  position: absolute;
  z-index: 2;
  top: -22%;
  left: -14%;
  width: 63%;
  aspect-ratio: 1;
  border-radius: 50%;
  background: radial-gradient(circle, rgb(255 213 153 / 29%), transparent 68%);
  filter: blur(2px);
  pointer-events: none;
}
.showcase-live-card, .showcase-score-card {
  position: absolute;
  z-index: 3;
  border: 1px solid rgb(255 244 228 / 30%);
  background: rgb(35 18 37 / 63%);
  box-shadow: 0 14px 35px rgb(0 0 0 / 22%), inset 0 1px 0 rgb(255 255 255 / 9%);
  backdrop-filter: blur(16px);
}
.showcase-live-card {
  bottom: 24px;
  left: 24px;
  display: grid;
  grid-template-columns: 10px auto;
  column-gap: 8px;
  align-items: center;
  min-width: min(230px, calc(100% - 48px));
  padding: 13px 15px;
  border-radius: 17px;
  animation: marketing-card-float 5.6s ease-in-out infinite;
}
.showcase-live-dot { width: 8px; height: 8px; border-radius: 50%; background: #ffd09c; box-shadow: 0 0 0 5px rgb(255 208 156 / 14%), 0 0 17px #ffbb88; }
.showcase-live-card p, .showcase-live-card strong { margin: 0; }
.showcase-live-card p { color: #ffd6b0; font-size: .69rem; font-weight: 900; letter-spacing: .11em; text-transform: uppercase; }
.showcase-live-card strong { grid-column: 2; color: #fff9f3; font-family: Iowan Old Style, Palatino Linotype, Georgia, ui-serif, serif; font-size: 1.18rem; font-weight: 600; letter-spacing: -.04em; }
.showcase-score-card {
  top: 23px;
  right: 23px;
  display: grid;
  gap: 2px;
  min-width: 131px;
  padding: 12px 14px;
  border-radius: 16px;
  animation: marketing-card-float 6.7s .7s ease-in-out infinite reverse;
}
.showcase-score-card span, .showcase-score-card small { color: #f8d5e8; font-size: .69rem; font-weight: 800; }
.showcase-score-card strong { color: #fff2b8; font-size: 1.52rem; letter-spacing: -.06em; line-height: 1; }
.showcase-score-card small { color: #dfc7d5; font-weight: 600; }
.marketing-sections { display: grid; gap: clamp(52px, 8vw, 104px); }
.marketing-proof { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.marketing-proof-card {
  min-height: 225px;
  padding: 25px;
  border: 1px solid rgb(255 233 214 / 15%);
  border-radius: 24px;
  background: linear-gradient(145deg, rgb(78 46 67 / 74%), rgb(34 23 38 / 79%));
  box-shadow: inset 0 1px 0 rgb(255 255 255 / 5%);
}
.proof-number { display: block; margin-bottom: 31px; color: #ffca94; font-size: .74rem; font-weight: 900; letter-spacing: .12em; }
.marketing-proof-card h2 { max-width: 12ch; margin-bottom: 9px; color: #fff7f3; font-family: Iowan Old Style, Palatino Linotype, Georgia, ui-serif, serif; font-size: clamp(1.37rem, 2vw, 1.72rem); font-weight: 600; letter-spacing: -.045em; line-height: 1.03; }
.marketing-proof-card p { margin: 0; color: #dac8d3; font-size: .91rem; line-height: 1.48; }
.marketing-flow {
  display: grid;
  grid-template-columns: minmax(0, .88fr) minmax(0, 1.12fr);
  gap: clamp(32px, 8vw, 120px);
  align-items: start;
  padding: clamp(30px, 5vw, 66px);
  border: 1px solid rgb(255 231 207 / 17%);
  border-radius: 32px;
  background: radial-gradient(circle at 7% 9%, rgb(255 193 134 / 15%), transparent 31%), linear-gradient(135deg, rgb(69 43 61 / 86%), rgb(29 23 37 / 90%));
  box-shadow: 0 23px 62px rgb(0 0 0 / 14%), inset 0 1px 0 rgb(255 255 255 / 5%);
}
.marketing-section-heading .panel-kicker { color: #ffd19d; }
.marketing-section-heading h2 { max-width: 12ch; margin: 0; color: #fff8f2; font-family: Iowan Old Style, Palatino Linotype, Georgia, ui-serif, serif; font-size: clamp(2rem, 3.7vw, 3.8rem); font-weight: 600; letter-spacing: -.06em; line-height: .96; text-wrap: balance; }
.marketing-steps { display: grid; gap: 22px; margin: 0; padding: 0; list-style: none; }
.marketing-steps li { display: grid; grid-template-columns: 39px minmax(0, 1fr); gap: 16px; align-items: start; padding-bottom: 22px; border-bottom: 1px solid rgb(255 234 214 / 13%); }
.marketing-steps li:last-child { padding-bottom: 0; border-bottom: 0; }
.marketing-steps li > span { display: grid; width: 34px; height: 34px; place-items: center; border: 1px solid rgb(255 214 167 / 35%); border-radius: 50%; background: rgb(255 206 153 / 8%); color: #ffd5a8; font-size: .78rem; font-weight: 900; }
.marketing-steps strong { color: #fff7f4; font-size: 1.04rem; }
.marketing-steps p { max-width: 38rem; margin: 5px 0 0; color: #d9c7d3; line-height: 1.46; }
.marketing-closing {
  display: grid;
  justify-items: center;
  max-width: 810px;
  margin: 0 auto;
  padding: clamp(20px, 4vw, 40px) 20px;
  text-align: center;
}
.marketing-closing .panel-kicker { color: #ffd19d; }
.marketing-closing h2 { max-width: 15ch; margin-bottom: 14px; color: #fff9f4; font-family: Iowan Old Style, Palatino Linotype, Georgia, ui-serif, serif; font-size: clamp(2.35rem, 4.7vw, 4.35rem); font-weight: 600; letter-spacing: -.065em; line-height: .94; text-wrap: balance; }
.marketing-closing p:not(.panel-kicker) { max-width: 48rem; margin-bottom: 21px; color: #dac9d3; font-size: 1.02rem; line-height: 1.52; }
body[data-mode="marketing"] .landing-panel {
  display: grid;
  max-width: 810px;
  margin: 0 auto;
  padding: 24px 28px;
  border-color: rgb(255 231 207 / 14%);
  border-radius: 20px;
  background: rgb(43 29 44 / 54%);
  box-shadow: none;
  text-align: center;
}
body[data-mode="marketing"] .landing-panel .panel-kicker { margin-bottom: 7px; color: #f3b4d5; }
body[data-mode="marketing"] .landing-panel h2 { margin-bottom: 8px; color: #fff7f2; font-family: Iowan Old Style, Palatino Linotype, Georgia, ui-serif, serif; font-size: 1.35rem; font-weight: 600; letter-spacing: -.035em; }
body[data-mode="marketing"] .landing-panel .hint { max-width: 46rem; margin: 0 auto; color: #cdbac6; font-size: .87rem; }
@keyframes marketing-card-float { 50% { transform: translateY(-7px); } }
@keyframes marketing-image-drift { to { transform: scale(1.035) translateX(-.65%); } }

@media (max-width: 920px) {
  body[data-mode="marketing"] .marketing-hero { grid-template-columns: 1fr; gap: 36px; min-height: 0; }
  body[data-mode="marketing"] h1 { max-width: 12ch; }
  .marketing-showcase { min-height: min(70vw, 525px); }
  .marketing-proof { grid-template-columns: 1fr; }
  .marketing-proof-card { min-height: 0; }
  .proof-number { margin-bottom: 20px; }
  .marketing-flow { grid-template-columns: 1fr; gap: 35px; }
  .marketing-section-heading h2 { max-width: 16ch; }
}
@media (max-width: 580px) {
  body[data-mode="marketing"] .guest-shell { width: min(100% - 32px, 1280px); padding-top: 23px; }
  .marketing-topbar { align-items: flex-start; gap: 13px; }
  .topbar-actions { justify-content: flex-start; gap: 8px 13px; }
  .topbar-actions > a { font-size: .74rem; }
  .topbar-actions .topbar-register { padding: 7px 10px; }
  body[data-mode="marketing"] .marketing-hero { gap: 28px; margin-bottom: 52px; }
  .marketing-kicker { margin-top: 19px; }
  body[data-mode="marketing"] h1 { max-width: 10.5ch; font-size: clamp(3.15rem, 15.3vw, 4.2rem); }
  body[data-mode="marketing"] .hero-actions { align-items: flex-start; flex-direction: column; gap: 15px; margin-top: 24px; }
  .marketing-primary { width: 100%; }
  .marketing-showcase { min-height: 350px; border-radius: 25px; }
  .marketing-showcase img { object-position: 58% center; }
  .showcase-live-card { bottom: 15px; left: 15px; }
  .showcase-score-card { top: 15px; right: 15px; }
  .marketing-flow { padding: 26px 20px; border-radius: 25px; }
  .marketing-section-heading h2 { font-size: clamp(2rem, 10vw, 3rem); }
  .marketing-closing { padding-right: 0; padding-left: 0; }
  body[data-mode="marketing"] .landing-panel { padding: 22px 18px; }
}
@media (prefers-reduced-motion: reduce) {
  .marketing-showcase img, .showcase-live-card, .showcase-score-card { animation: none; }
  .marketing-primary, .marketing-primary span { transition: none; }
}

/* Client dashboard */
.portal-shell {
  width: min(100% - 64px, 1240px);
  max-width: 1240px;
  padding-top: clamp(26px, 4vw, 50px);
}
.portal-body .portal-hero { margin-bottom: 20px; }
.portal-body .portal-hero::after { display: none; }
.portal-body .portal-hero h1 { max-width: 16ch; margin-bottom: 10px; font-size: clamp(2.7rem, 4.35vw, 4.25rem); }
.portal-body .portal-hero .lead { max-width: 58rem; font-size: 1rem; }
.portal-body #portal {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(310px, 360px);
  gap: 16px;
  align-items: start;
}
.portal-body #portal > .panel, .portal-body #portal > .dashboard-stats, .portal-body #portal > .assistant-panel { margin: 0; }
.portal-body .portal-welcome, .portal-body .dashboard-stats, .portal-body .portal-next-action { grid-column: 1 / -1; }
.portal-shell .portal-welcome {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
  padding: 20px 24px;
  border-radius: 20px;
  background: linear-gradient(118deg, rgb(97 57 78 / 90%), rgb(35 29 43 / 94%));
}
.portal-shell .portal-welcome .panel-kicker { margin-bottom: 5px; }
.portal-shell .portal-welcome h2 { margin-bottom: 3px; font-family: Iowan Old Style, Palatino Linotype, Georgia, ui-serif, serif; font-size: 1.65rem; font-weight: 600; letter-spacing: -.045em; }
.portal-shell .portal-welcome h2 span { color: #fff5ec; }
.portal-shell .portal-welcome .hint { margin: 0; font-size: .84rem; }
.dashboard-actions { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 10px 15px; }
.dashboard-actions button { min-height: 42px !important; }
.dashboard-actions button span { margin-left: 5px; font-size: 1.05em; }
.portal-next-action { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 20px 24px; border-color: rgb(255 210 161 / 32%); background: radial-gradient(circle at 88% 4%, rgb(255 190 127 / 15%), transparent 22rem), linear-gradient(135deg, rgb(76 49 64 / 91%), rgb(30 25 39 / 94%)); }
.portal-next-action h2 { margin-bottom: 5px; color: #fff6ed; font-family: Iowan Old Style, Palatino Linotype, Georgia, ui-serif, serif; font-size: 1.45rem; letter-spacing: -.045em; }
.portal-next-action .hint { max-width: 690px; margin: 0; font-size: .87rem; }
.portal-next-action-actions { display: flex; flex: 0 1 430px; flex-wrap: wrap; justify-content: flex-end; gap: 9px; }
.portal-next-action-actions > * { display: inline-flex; min-height: 41px; align-items: center; justify-content: center; padding: 10px 13px; border: 1px solid #f1aace; border-radius: 11px; background: #f1aace; color: #321a2b; font-weight: 800; text-decoration: none; white-space: nowrap; }
.portal-next-action-actions .secondary-button { border-color: #8d627f !important; background: #4e3349 !important; color: #fff7fb !important; }
.dashboard-contact { color: #f6d4e5; font-size: .84rem; font-weight: 800; text-decoration-color: rgb(246 212 229 / 45%); text-underline-offset: 4px; }
.dashboard-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.dashboard-stats article {
  display: grid;
  align-content: end;
  min-height: 132px;
  padding: 19px 21px;
  border: 1px solid rgb(255 222 195 / 14%);
  border-radius: 18px;
  background: linear-gradient(145deg, rgb(66 45 64 / 85%), rgb(29 24 37 / 89%));
  box-shadow: inset 0 1px 0 rgb(255 255 255 / 5%);
}
.dashboard-stats span { color: #eacbdc; font-size: .77rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.dashboard-stats strong { margin-top: 8px; color: #ffdbad; font-size: clamp(2rem, 3.5vw, 3rem); letter-spacing: -.065em; line-height: .9; }
.dashboard-stats small { margin-top: 8px; color: #cdbbc8; font-size: .82rem; }
.portal-body #portal > .event-create-panel, .portal-body #portal > .private-access, .portal-body #portal > .event-list-panel { grid-column: 1; }
.portal-shell .event-create-panel { padding: 24px; border-color: rgb(255 208 161 / 32%); background: radial-gradient(circle at 93% 5%, rgb(255 188 127 / 14%), transparent 25rem), linear-gradient(135deg, rgb(75 48 63 / 91%), rgb(31 25 38 / 94%)); }
.portal-shell .event-create-panel .hint { max-width: 48rem; margin-top: 2px; }
.portal-shell .event-create-panel .section-heading { align-items: center; }
.portal-shell .event-list-panel { min-height: 300px; }
.portal-shell .event-list-panel .client-event-list { gap: 11px; }
.portal-shell .event-list-panel .client-event-card { padding: 17px 18px; }
.portal-shell .event-list-panel .client-event-card h3 { font-size: 1.13rem; }
.portal-shell .event-list-panel .event-card-actions { max-width: 365px; }
.portal-shell .event-list-panel .event-card-actions button { min-height: 39px; }
.assistant-panel {
  position: sticky;
  top: 18px;
  grid-column: 2;
  grid-row: 3 / span 3;
  padding: 21px;
  overflow: hidden;
  border: 1px solid rgb(255 222 195 / 20%);
  border-radius: 23px;
  background: radial-gradient(circle at 86% 6%, rgb(255 190 129 / 22%), transparent 22rem), linear-gradient(145deg, rgb(77 45 74 / 93%), rgb(26 23 42 / 96%));
  box-shadow: 0 20px 58px rgb(0 0 0 / 19%), inset 0 1px 0 rgb(255 255 255 / 8%);
}
.assistant-heading { display: flex; align-items: center; gap: 12px; }
.assistant-heading .panel-kicker { margin-bottom: 4px; color: #ffd0a0; }
.assistant-heading h2 { margin: 0; color: #fff7f2; font-family: Iowan Old Style, Palatino Linotype, Georgia, ui-serif, serif; font-size: 1.45rem; font-weight: 600; letter-spacing: -.045em; }
.assistant-mascot { position: relative; display: grid; width: 54px; height: 54px; flex: 0 0 auto; place-items: center; border-radius: 19px; background: radial-gradient(circle at 50% 45%, rgb(255 238 201 / 21%), rgb(242 147 183 / 8%) 52%, transparent 70%); box-shadow: 0 0 0 6px rgb(255 195 137 / 8%), 0 0 25px rgb(242 147 183 / 24%); }
.assistant-mascot::before { position: absolute; inset: -5px; border: 1px solid rgb(255 216 173 / 32%); border-radius: 50%; content: ''; animation: assistant-orbit 4.8s linear infinite; }
.assistant-mascot img { width: 53px; height: 53px; filter: drop-shadow(0 8px 10px rgb(25 13 26 / 22%)); animation: mascot-bob 3.4s ease-in-out infinite; }
.guide-dialogue { display: grid; max-height: 138px; gap: 9px; margin: 19px 0 14px; overflow: auto; padding-right: 3px; }
.guide-message { margin: 0; padding: 11px 12px; border: 1px solid rgb(255 228 201 / 14%); border-radius: 13px 13px 13px 4px; background: rgb(20 18 31 / 34%); color: #eedee4; font-size: .86rem; line-height: 1.46; }
.guide-message-user { justify-self: end; border-color: rgb(255 209 169 / 28%); border-radius: 13px 13px 4px 13px; background: rgb(255 199 150 / 12%); color: #fff0e4; }
.guide-context { margin: 0 0 14px; padding: 13px; border: 1px solid rgb(255 221 183 / 17%); border-radius: 15px; background: rgb(22 18 33 / 33%); }
.guide-context .panel-kicker { margin-bottom: 5px; color: #ffd0a0; }
.guide-context h3 { margin-bottom: 5px; color: #fff6ef; font-size: .98rem; letter-spacing: -.02em; }
.guide-context > p:not(.panel-kicker) { margin: 0; color: #d5c2cd; font-size: .79rem; line-height: 1.42; }
.guide-context-actions { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 11px; }
.portal-body .guide-context-actions button, .guide-context-actions a { display: inline-flex; align-items: center; justify-content: center; min-height: 34px; padding: 7px 10px; border: 1px solid rgb(255 216 174 / 31%); border-radius: 999px; background: rgb(255 211 168 / 8%); box-shadow: none; color: #ffe1bf; font-size: .77rem; font-weight: 800; text-decoration: none; }
.guide-context-actions a { text-decoration: underline; text-decoration-color: rgb(255 225 193 / 44%); text-underline-offset: 3px; }
.guide-setup { margin: 0 0 15px; padding: 14px; border: 1px solid rgb(255 206 153 / 25%); border-radius: 16px; background: radial-gradient(circle at 91% 12%, rgb(255 196 130 / 13%), transparent 35%), rgb(35 25 40 / 42%); }
.guide-setup .panel-kicker { margin-bottom: 5px; color: #ffd09b; }
.guide-setup h3 { margin-bottom: 5px; color: #fff4ec; font-size: 1rem; letter-spacing: -.02em; }
.guide-setup > p:not(.panel-kicker) { margin: 0; color: #d8c5cf; font-size: .8rem; line-height: 1.42; }
.guide-setup-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 9px; margin-top: 12px; }
.guide-setup-actions > button:first-child { min-height: 37px; padding: 8px 11px; font-size: .78rem; }
.guide-setup-actions .text-button { color: #f1c5dc; font-size: .77rem; }
.guide-quiz { margin-top: 14px; padding-top: 14px; border-top: 1px solid rgb(255 228 201 / 14%); }
.guide-quiz-progress { margin: 0 0 9px; color: #ffd2a0; font-size: .69rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.guide-quiz fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
.guide-quiz legend { color: #fff6ef; font-size: .98rem; font-weight: 850; line-height: 1.2; }
.guide-quiz fieldset > p { margin: 5px 0 10px; color: #d4bfcb; font-size: .78rem; line-height: 1.4; }
.guide-quiz-choices { display: grid; gap: 7px; }
.guide-quiz-choice { display: grid; grid-template-columns: 16px minmax(0, 1fr); gap: 8px; align-items: start; padding: 9px 10px; border: 1px solid rgb(255 226 203 / 14%); border-radius: 12px; background: rgb(18 16 27 / 32%); cursor: pointer; }
.guide-quiz-choice:hover, .guide-quiz-choice[data-selected="true"] { border-color: rgb(255 205 157 / 51%); background: rgb(255 202 159 / 10%); }
.guide-quiz-choice input { width: 15px; height: 15px; margin: 2px 0 0; accent-color: #f1a5bd; }
.guide-quiz-choice strong, .guide-quiz-choice small { display: block; }
.guide-quiz-choice strong { color: #f8e5d9; font-size: .79rem; }
.guide-quiz-choice small { margin-top: 2px; color: #cbb8c5; font-size: .72rem; line-height: 1.28; }
.guide-quiz-actions { display: flex; justify-content: space-between; gap: 10px; margin-top: 12px; }
.guide-quiz-actions .text-button { color: #f0c4db; font-size: .77rem; }
.guide-quiz-actions > button:last-child { min-height: 36px; padding: 8px 11px; font-size: .78rem; }
.guide-quiz-result { margin-top: 14px; padding-top: 14px; border-top: 1px solid rgb(255 228 201 / 14%); }
.guide-quiz-result .panel-kicker { margin-bottom: 5px; color: #ffd09b; }
.guide-quiz-result h3 { margin-bottom: 6px; color: #fff5ed; font-family: Iowan Old Style, Palatino Linotype, Georgia, ui-serif, serif; font-size: 1.2rem; letter-spacing: -.04em; }
.guide-quiz-result > p:not(.panel-kicker) { margin: 0; color: #dac6d0; font-size: .8rem; line-height: 1.42; }
.guide-tool-list { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; }
.guide-tool-list span { padding: 5px 7px; border: 1px solid rgb(255 214 171 / 25%); border-radius: 999px; background: rgb(255 211 168 / 8%); color: #ffe1bf; font-size: .69rem; font-weight: 800; }
.guide-highlight { position: relative; z-index: 2; border-radius: 14px; outline: 2px solid #ffd19e; outline-offset: 5px; box-shadow: 0 0 0 7px rgb(255 207 154 / 13%), 0 0 42px rgb(255 185 125 / 18%); animation: guide-highlight-pulse 1.7s ease-in-out infinite; }
.guide-coachmark { position: relative; z-index: 3; display: grid; gap: 5px; margin: 14px 0 18px; padding: 13px; border: 1px solid rgb(255 212 166 / 47%); border-radius: 15px; background: linear-gradient(135deg, rgb(102 58 74 / 96%), rgb(37 29 47 / 97%)); box-shadow: 0 16px 40px rgb(0 0 0 / 27%), 0 0 0 5px rgb(255 209 161 / 8%); color: #fff5eb; }
.guide-coachmark::before { position: absolute; top: -7px; left: 23px; width: 12px; height: 12px; border-top: 1px solid rgb(255 212 166 / 47%); border-left: 1px solid rgb(255 212 166 / 47%); background: #633a4a; content: ''; transform: rotate(45deg); }
.guide-coachmark p { margin: 0; color: #ffd4a3; font-size: .66rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.guide-coachmark strong { font-size: .89rem; }
.guide-coachmark > span { color: #ead6df; font-size: .79rem; line-height: 1.4; }
.guide-coachmark > div { display: flex; align-items: center; justify-content: space-between; gap: 9px; margin-top: 5px; }
.guide-coachmark button { min-height: 33px; padding: 7px 10px; font-size: .75rem; }
.guide-coachmark .text-button { color: #f7cde0; }
@keyframes guide-highlight-pulse { 0%, 100% { box-shadow: 0 0 0 7px rgb(255 207 154 / 10%), 0 0 31px rgb(255 185 125 / 14%); } 50% { box-shadow: 0 0 0 10px rgb(255 207 154 / 18%), 0 0 48px rgb(255 185 125 / 23%); } }
.guide-choices { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 13px; }
.portal-body .guide-choices button {
  min-height: 34px;
  padding: 7px 10px;
  border-color: rgb(255 218 176 / 28%);
  border-radius: 999px;
  background: rgb(255 217 176 / 7%);
  box-shadow: none;
  color: #fee3c7;
  font-size: .77rem;
  font-weight: 800;
}
.portal-body .guide-choices button[data-active="true"] { border-color: #ffd09b; background: linear-gradient(135deg, #ffd09b, #ef9cbd); color: #372032; }
.guide-prompt-form { display: grid; gap: 8px; }
.guide-prompt-form textarea { min-height: 68px; padding: 10px 11px; font-size: .84rem; line-height: 1.35; }
.portal-body .guide-send { width: 100%; min-height: 39px; padding: 9px 12px; font-size: .82rem; }
.guide-recipe { margin-top: 16px; padding-top: 16px; border-top: 1px solid rgb(255 228 201 / 14%); }
.guide-recipe .panel-kicker { margin-bottom: 6px; color: #ffd0a0; }
.guide-recipe h3 { margin-bottom: 7px; color: #fff7ef; font-family: Iowan Old Style, Palatino Linotype, Georgia, ui-serif, serif; font-size: 1.3rem; letter-spacing: -.04em; }
.guide-recipe > p:not(.panel-kicker) { margin-bottom: 12px; color: #dac9d4; font-size: .84rem; line-height: 1.45; }
.guide-recipe ul { display: grid; gap: 7px; margin: 0 0 14px; padding: 0; list-style: none; }
.guide-recipe li { padding: 9px 10px; border: 1px solid rgb(255 231 208 / 12%); border-radius: 11px; background: rgb(22 17 29 / 29%); }
.guide-recipe li strong, .guide-recipe li span { display: block; }
.guide-recipe li strong { color: #ffe4bc; font-size: .8rem; }
.guide-recipe li span { margin-top: 3px; color: #d3c0ca; font-size: .74rem; line-height: 1.32; }
.guide-event-name-label { display: grid; gap: 6px; margin: 0 0 10px; color: #e9d2de; font-size: .78rem; font-weight: 800; }
.guide-event-name-label input { min-height: 39px; padding: 9px 10px; font-size: .82rem; }
.guide-recipe-actions { display: grid; gap: 9px; }
.guide-recipe-actions > button:first-child { width: 100%; min-height: 42px; font-size: .84rem; }
.guide-recipe-actions .text-button { justify-self: start; color: #f4c4df; font-size: .79rem; }
.guide-recipe small { display: block; margin-top: 10px; color: #c7b3c2; font-size: .72rem; line-height: 1.38; }
.guide-confirm { margin-top: 15px; padding: 13px; border: 1px solid rgb(255 207 157 / 35%); border-radius: 15px; background: linear-gradient(135deg, rgb(105 61 73 / 87%), rgb(46 32 49 / 93%)); }
.guide-confirm .panel-kicker { margin-bottom: 6px; color: #ffdaa6; }
.guide-confirm > p:not(.panel-kicker) { margin-bottom: 12px; color: #fff0e5; font-size: .82rem; line-height: 1.43; }
.guide-confirm > div { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.guide-confirm > div > button:first-child { min-height: 38px; padding: 9px 11px; font-size: .78rem; }
.guide-confirm .text-button { color: #f5d1e4; font-size: .78rem; }
.portal-body #privacy-admin-panel { grid-column: 1 / -1; }
@keyframes assistant-orbit { to { transform: rotate(360deg); } }

@media (hover: hover) and (pointer: fine) {
  .guest-body .panel, .portal-body .panel, .regie-body .panel, .privacy-body .panel, .studio-workspace, .studio-hero-card, .marketing-proof-card { transition: transform 240ms cubic-bezier(.2, .8, .2, 1), border-color 240ms ease, box-shadow 240ms ease, filter 240ms ease; }
  .guest-body .panel:hover, .portal-body .panel:hover, .regie-body .panel:hover, .privacy-body .panel:hover, .studio-workspace:hover, .studio-hero-card:hover { border-color: rgb(255 214 174 / 38%); box-shadow: 0 24px 68px rgb(0 0 0 / 23%), inset 0 1px 0 rgb(255 255 255 / 8%); transform: translateY(-3px); }
  .marketing-proof-card:hover { border-color: rgb(255 219 184 / 42%); box-shadow: 0 22px 54px rgb(0 0 0 / 18%), 0 0 0 1px rgb(255 226 204 / 7%) inset; transform: translateY(-5px); }
  .guest-shell .file-picker:hover { border-color: #ffd39f; box-shadow: 0 15px 38px rgb(255 186 133 / 12%); transform: translateY(-2px); }
  .leaderboard-entry { padding: 6px 7px; border-radius: 12px; transition: background 180ms ease, transform 180ms ease; }
  .leaderboard-entry:hover { background: rgb(255 238 216 / 7%); transform: translateX(3px); }
  .wall-photo:not(.wall-stage-card):hover { border-color: color-mix(in srgb, var(--wall-accent) 58%, white); box-shadow: 0 22px 48px rgb(0 0 0 / 31%), 0 0 28px color-mix(in srgb, var(--wall-accent) 15%, transparent); filter: brightness(1.035); }
  .wall-photo:not(.wall-stage-card):not(.is-new) { animation: wall-photo-drift 10s ease-in-out infinite; animation-delay: var(--wall-float-delay, 0s); }
  .assistant-panel:hover .assistant-mascot img { animation-duration: 1.85s; }
  .processing-mascot:hover img { animation-duration: 1.7s; }
}

@media (max-width: 960px) {
  .portal-shell { width: min(100% - 40px, 1240px); }
  .portal-body #portal { grid-template-columns: 1fr; }
  .portal-body .portal-welcome, .portal-body .dashboard-stats, .portal-body .portal-next-action, .portal-body #portal > .event-create-panel, .portal-body #portal > .private-access, .portal-body #portal > .event-list-panel, .portal-body #privacy-admin-panel { grid-column: auto; }
  .assistant-panel { position: relative; top: auto; grid-column: auto; grid-row: auto; }
  .guide-dialogue { max-height: none; }
}
@media (max-width: 620px) {
  .portal-shell { width: min(100% - 28px, 1240px); padding-top: 28px; }
  .portal-body .portal-hero h1 { max-width: 11ch; font-size: clamp(2.55rem, 13vw, 3.65rem); }
  .portal-shell .portal-welcome { align-items: flex-start; flex-direction: column; padding: 19px; }
  .portal-next-action, .showtime-panel { align-items: flex-start; flex-direction: column; padding: 19px; }
  .portal-next-action-actions, .showtime-actions { justify-content: flex-start; }
  .qr-print-panel { grid-template-columns: 1fr; }
  .qr-print-controls { grid-template-columns: 1fr; }
  .qr-print-actions { justify-content: stretch; }
  .qr-print-actions button { width: 100%; }
  .dashboard-actions { justify-content: flex-start; }
  .dashboard-stats { grid-template-columns: 1fr; }
  .dashboard-stats article { min-height: 104px; }
  .portal-shell .event-create-panel { padding: 19px; }
  .portal-shell .event-list-panel .client-event-card { align-items: flex-start; flex-direction: column; }
  .portal-shell .event-list-panel .event-card-actions { justify-content: flex-start; max-width: none; }
  .assistant-panel { padding: 19px; border-radius: 19px; }
}

/* Public interactive showcase. It intentionally exposes only the guest and wall paths. */
.showcase-body {
  background:
    radial-gradient(circle at 5% 0%, rgb(255 190 114 / 18%), transparent 29rem),
    radial-gradient(circle at 92% 13%, rgb(235 83 157 / 22%), transparent 33rem),
    linear-gradient(145deg, #2e1b30, #121116 64%);
}
.showcase-shell { width: min(100% - 64px, 1280px); margin: 0 auto; padding: clamp(28px, 4vw, 58px) 0 clamp(48px, 8vw, 96px); }
.showcase-hero { display: grid; grid-template-columns: minmax(0, .9fr) minmax(440px, 1.1fr); align-items: center; gap: clamp(30px, 6vw, 94px); min-height: min(670px, calc(100vh - 84px)); padding: clamp(32px, 5vw, 72px) 0; }
.showcase-hero h1 { max-width: 10.5ch; margin: 0 0 19px; color: #fff9f4; font-family: Iowan Old Style, Palatino Linotype, Georgia, ui-serif, serif; font-size: clamp(3.6rem, 5.8vw, 6.35rem); font-weight: 600; letter-spacing: -.075em; line-height: .91; text-wrap: balance; }
.showcase-hero .marketing-kicker { display: flex; align-items: center; gap: 10px; color: #ffd09b; }
.showcase-hero .lead { max-width: 35rem; color: #eddae4; font-size: clamp(1.06rem, 1.32vw, 1.23rem); }
.showcase-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 15px 20px; margin-top: 28px; }
.showcase-actions .hero-link { margin: 0; }
.showcase-live-preview { position: relative; min-height: clamp(380px, 44vw, 570px); overflow: hidden; border: 1px solid rgb(255 234 207 / 26%); border-radius: clamp(26px, 3vw, 42px); background: #362333; box-shadow: 0 32px 90px rgb(5 2 8 / 42%), 0 0 0 1px rgb(255 255 255 / 4%) inset; }
.showcase-live-preview::after { position: absolute; inset: 0; background: linear-gradient(100deg, rgb(32 14 32 / 46%), transparent 48%, rgb(65 14 57 / 21%)); content: ''; pointer-events: none; }
.showcase-live-preview img { display: block; width: 100%; height: 100%; min-height: inherit; object-fit: cover; object-position: center; animation: marketing-image-drift 16s ease-in-out infinite alternate; }
.showcase-preview-overlay, .showcase-preview-score { position: absolute; z-index: 1; border: 1px solid rgb(255 243 225 / 30%); background: rgb(34 17 37 / 65%); box-shadow: 0 14px 35px rgb(0 0 0 / 22%), inset 0 1px 0 rgb(255 255 255 / 9%); backdrop-filter: blur(16px); }
.showcase-preview-overlay { bottom: 24px; left: 24px; display: grid; gap: 3px; max-width: min(300px, calc(100% - 48px)); padding: 14px 16px; border-radius: 17px; }
.showcase-preview-overlay p { margin: 0; color: #ffd4a5; font-size: .68rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.showcase-preview-overlay strong { color: #fff9f4; font-family: Iowan Old Style, Palatino Linotype, Georgia, ui-serif, serif; font-size: 1.22rem; font-weight: 600; letter-spacing: -.035em; }
.showcase-preview-overlay span { color: #e4cad7; font-size: .76rem; font-weight: 700; }
.showcase-preview-score { top: 24px; right: 24px; display: grid; gap: 2px; min-width: 145px; padding: 13px 15px; border-radius: 16px; }
.showcase-preview-score span, .showcase-preview-score small { color: #f7d1e3; font-size: .69rem; font-weight: 800; }
.showcase-preview-score strong { color: #fff0bd; font-size: 1.45rem; letter-spacing: -.06em; }
.showcase-progression { display: grid; grid-template-columns: auto 1fr auto 1fr auto 1fr auto; align-items: center; gap: 10px; margin: 12px 0 clamp(36px, 5vw, 72px); color: #cdbac6; font-size: .72rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.showcase-progression span { display: inline-flex; align-items: center; gap: 7px; white-space: nowrap; }
.showcase-progression span::before { width: 8px; height: 8px; border: 1px solid #a27595; border-radius: 50%; content: ''; }
.showcase-progression .is-active { color: #ffdcad; }
.showcase-progression .is-active::before { border-color: #ffd19a; background: #ffd19a; box-shadow: 0 0 14px rgb(255 202 142 / 62%); }
.showcase-progression i { height: 1px; background: linear-gradient(90deg, rgb(255 216 175 / 35%), rgb(245 157 201 / 12%)); }
.showcase-routes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 13px; }
.showcase-route-card { position: relative; display: flex; min-height: 318px; flex-direction: column; overflow: hidden; padding: 25px; border: 1px solid rgb(255 232 212 / 17%); border-radius: 25px; background: linear-gradient(145deg, rgb(84 50 72 / 82%), rgb(28 21 36 / 88%)); box-shadow: inset 0 1px 0 rgb(255 255 255 / 5%); }
.showcase-route-card::after { position: absolute; right: -44px; bottom: -58px; width: 172px; height: 172px; border-radius: 50%; background: radial-gradient(circle, rgb(255 195 136 / 17%), transparent 68%); content: ''; pointer-events: none; }
.showcase-route-wall { background: radial-gradient(circle at 85% 10%, rgb(239 87 171 / 18%), transparent 23rem), linear-gradient(145deg, rgb(72 42 74 / 84%), rgb(26 20 38 / 91%)); }
.showcase-route-regie { background: radial-gradient(circle at 90% 0%, rgb(255 191 123 / 17%), transparent 20rem), linear-gradient(145deg, rgb(67 50 70 / 84%), rgb(25 22 35 / 91%)); }
.showcase-route-card .panel-kicker { color: #ffc993; }
.showcase-route-mode { display: inline-flex; align-self: flex-start; margin: 15px 0 20px; padding: 7px 10px; border: 1px solid rgb(255 221 182 / 28%); border-radius: 999px; background: rgb(255 229 199 / 8%); color: #ffe0b4; font-size: .67rem; font-weight: 900; letter-spacing: .1em; line-height: 1; text-transform: uppercase; }
.showcase-route-card h2 { max-width: 13ch; margin: 0 0 10px; color: #fff8f2; font-family: Iowan Old Style, Palatino Linotype, Georgia, ui-serif, serif; font-size: clamp(1.55rem, 2.1vw, 2rem); font-weight: 600; letter-spacing: -.055em; line-height: .98; }
.showcase-route-card p:not(.panel-kicker) { max-width: 29rem; margin: 0; color: #dbc9d4; font-size: .9rem; line-height: 1.5; }
.showcase-route-card p strong { color: #ffdeae; font-size: 1.05em; }
.showcase-route-link { position: relative; z-index: 1; margin-top: auto; padding-top: 22px; color: #ffe2bc; font-size: .88rem; font-weight: 900; text-decoration-color: rgb(255 226 188 / 52%); text-underline-offset: 5px; }
.showcase-route-link span { display: inline-block; margin-left: 5px; transition: transform 180ms ease; }
.showcase-route-link:hover span { transform: translateX(4px); }
.showcase-console-brief { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(280px, .95fr); gap: 24px 40px; align-items: end; margin-top: clamp(42px, 7vw, 88px); padding: clamp(25px, 4vw, 46px); border: 1px solid rgb(255 221 190 / 20%); border-radius: 30px; background: radial-gradient(circle at 92% 10%, rgb(244 155 194 / 18%), transparent 24rem), linear-gradient(135deg, rgb(72 45 65 / 92%), rgb(27 22 38 / 96%)); box-shadow: 0 25px 66px rgb(0 0 0 / 16%), inset 0 1px 0 rgb(255 255 255 / 5%); }
.showcase-console-brief .panel-kicker { color: #ffd19d; }
.showcase-console-brief h2 { max-width: 13ch; margin: 0 0 13px; color: #fff9f4; font-family: Iowan Old Style, Palatino Linotype, Georgia, ui-serif, serif; font-size: clamp(2rem, 3.6vw, 3.5rem); font-weight: 600; letter-spacing: -.065em; line-height: .95; }
.showcase-console-brief > div > p:not(.panel-kicker) { max-width: 38rem; margin: 0; color: #dac7d3; line-height: 1.55; }
.showcase-console-flow { display: grid; gap: 9px; margin: 0; padding: 0; list-style: none; }
.showcase-console-flow li { display: grid; grid-template-columns: 104px 1fr; gap: 10px; align-items: baseline; padding: 13px 14px; border: 1px solid rgb(255 228 207 / 15%); border-radius: 14px; background: rgb(24 19 32 / 46%); }
.showcase-console-flow strong { color: #ffe0b5; font-size: .74rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.showcase-console-flow span { color: #e3d0da; font-size: .86rem; line-height: 1.4; }
.showcase-console-brief-action { display: flex; grid-column: 1 / -1; align-items: center; justify-content: space-between; gap: 18px; padding-top: 3px; }
.showcase-console-brief-action button { min-height: 48px; }
.showcase-console-brief-action button span { display: inline-block; margin-left: 5px; transition: transform 180ms ease; }
.showcase-console-brief-action button:hover span { transform: translateX(4px); }
.showcase-console-brief-action p { max-width: 34rem; margin: 0; color: #cdb9c6; font-size: .79rem; font-weight: 700; line-height: 1.4; text-align: right; }
.showcase-console { margin-top: clamp(18px, 3vw, 36px); padding: clamp(24px, 4vw, 48px); border: 1px solid rgb(255 227 203 / 19%); border-radius: 32px; background: radial-gradient(circle at 92% 8%, rgb(244 155 194 / 16%), transparent 26rem), linear-gradient(135deg, rgb(65 43 62 / 93%), rgb(25 21 35 / 95%)); box-shadow: 0 25px 66px rgb(0 0 0 / 16%), inset 0 1px 0 rgb(255 255 255 / 5%); }
.showcase-console-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 26px; }
.showcase-console-header .panel-kicker { color: #ffd29f; }
.showcase-console-header h2 { max-width: 18ch; margin: 0 0 10px; color: #fff8f2; font-family: Iowan Old Style, Palatino Linotype, Georgia, ui-serif, serif; font-size: clamp(2rem, 3.6vw, 3.6rem); font-weight: 600; letter-spacing: -.065em; line-height: .95; }
.showcase-console-header p:not(.panel-kicker) { max-width: 46rem; margin: 0; color: #dbc9d3; line-height: 1.52; }
.showcase-read-only { flex: 0 0 auto; padding: 8px 11px; border: 1px solid rgb(255 218 174 / 35%); border-radius: 999px; background: rgb(255 211 162 / 9%); color: #ffdcad; font-size: .71rem; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; white-space: nowrap; }
.showcase-console-grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(260px, .8fr); gap: 16px; margin-top: 28px; }
.showcase-console-main, .showcase-console-aside { padding: 19px; border: 1px solid rgb(255 228 207 / 15%); border-radius: 20px; background: rgb(20 17 30 / 38%); }
.showcase-console-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; margin-top: 14px; }
.showcase-console-stats article { display: grid; gap: 5px; min-height: 110px; padding: 14px; border: 1px solid rgb(255 225 205 / 13%); border-radius: 14px; background: linear-gradient(145deg, rgb(98 54 79 / 45%), rgb(25 21 35 / 52%)); }
.showcase-console-stats span { color: #f1b5d3; font-size: .65rem; font-weight: 900; letter-spacing: .09em; text-transform: uppercase; }
.showcase-console-stats strong { color: #fff0c8; font-family: Iowan Old Style, Palatino Linotype, Georgia, ui-serif, serif; font-size: 2rem; letter-spacing: -.06em; line-height: 1; }
.showcase-console-stats small { color: #cdbac6; font-size: .73rem; font-weight: 700; }
.showcase-next-action { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 12px; padding: 18px; border: 1px solid rgb(255 210 163 / 28%); border-radius: 17px; background: radial-gradient(circle at 96% 0%, rgb(255 188 121 / 18%), transparent 18rem), rgb(53 35 54 / 74%); }
.showcase-next-action .panel-kicker { margin-bottom: 5px; color: #ffd29e; }
.showcase-next-action h3 { margin: 0 0 5px; color: #fff5ed; font-family: Iowan Old Style, Palatino Linotype, Georgia, ui-serif, serif; font-size: 1.4rem; font-weight: 600; letter-spacing: -.045em; }
.showcase-next-action p:not(.panel-kicker) { max-width: 35rem; margin: 0; color: #dac6d1; font-size: .85rem; line-height: 1.45; }
.showcase-console-actions { display: flex; flex: 0 1 380px; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.showcase-console-actions button { min-height: 42px; }
.showcase-console-actions button span { margin-left: 3px; font-size: 1.05em; }
.showcase-console-effect { position: relative; display: flex; align-items: center; gap: 15px; min-height: 104px; margin-top: 12px; padding: 16px; overflow: hidden; border: 1px solid rgb(255 207 158 / 31%); border-radius: 17px; background: radial-gradient(circle at 92% 10%, rgb(255 193 124 / 24%), transparent 18rem), rgb(56 35 55 / 82%); }
.showcase-console-effect::after { position: absolute; inset: -70%; background: conic-gradient(from 0deg, transparent 0deg 150deg, rgb(255 221 159 / 18%) 180deg, transparent 220deg 360deg); content: ''; animation: showcase-effect-spin 6s linear infinite; pointer-events: none; }
.showcase-console-effect > * { position: relative; z-index: 1; }
.showcase-console-effect[data-effect="spotlight"] { background: radial-gradient(circle at 7% 50%, rgb(242 119 190 / 26%), transparent 11rem), rgb(56 35 55 / 82%); }
.showcase-console-effect[data-effect="spotlight"]::after { animation-direction: reverse; }
.showcase-console-effect-mark { display: grid; width: 54px; height: 54px; flex: 0 0 auto; place-items: center; border: 1px solid rgb(255 228 175 / 43%); border-radius: 50%; background: rgb(255 220 169 / 14%); box-shadow: 0 0 26px rgb(255 196 124 / 29%); color: #fff0bf; font-family: Iowan Old Style, Palatino Linotype, Georgia, ui-serif, serif; font-size: 1.6rem; font-weight: 700; }
.showcase-console-effect .panel-kicker { margin-bottom: 4px; color: #ffd29e; }
.showcase-console-effect h3 { margin: 0 0 4px; color: #fff5ed; font-family: Iowan Old Style, Palatino Linotype, Georgia, ui-serif, serif; font-size: 1.25rem; font-weight: 600; letter-spacing: -.045em; }
.showcase-console-effect p:not(.panel-kicker) { max-width: 38rem; margin: 0; color: #dac6d1; font-size: .82rem; line-height: 1.42; }
.showcase-console-links { display: flex; align-items: center; flex-wrap: wrap; gap: 13px; margin-top: 14px; }
.showcase-console-links > span { width: 100%; color: #ffcfa1; font-size: .67rem; font-weight: 900; letter-spacing: .09em; text-transform: uppercase; }
.showcase-console-links .hero-link { margin: 0; }
.showcase-console-feedback { min-height: 1.3rem; margin: 13px 0 0; color: #d4c1ce; font-size: .78rem; font-weight: 750; line-height: 1.4; }
.showcase-console-aside .panel-kicker { color: #f3b5d5; }
.showcase-console-aside h3 { margin: 0 0 13px; color: #fff5ed; font-family: Iowan Old Style, Palatino Linotype, Georgia, ui-serif, serif; font-size: 1.4rem; font-weight: 600; letter-spacing: -.045em; }
.showcase-console-aside ul { display: grid; gap: 10px; margin: 0 0 15px; padding: 0; list-style: none; }
.showcase-console-aside li { display: flex; align-items: center; gap: 9px; color: #ead9e4; font-size: .86rem; font-weight: 750; }
.showcase-console-aside li span { display: grid; width: 19px; height: 19px; place-items: center; border: 1px solid rgb(140 222 171 / 54%); border-radius: 50%; background: rgb(104 187 133 / 17%); color: #c9f4d4; font-size: .72rem; }
.showcase-console-aside p:not(.panel-kicker) { margin: 0; color: #cbb9c5; font-size: .8rem; line-height: 1.45; }
@keyframes showcase-effect-spin { to { transform: rotate(360deg); } }
.showcase-story { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(30px, 7vw, 110px); align-items: center; margin-top: clamp(52px, 8vw, 106px); padding: clamp(30px, 5vw, 60px); border: 1px solid rgb(255 232 212 / 17%); border-radius: 32px; background: radial-gradient(circle at 4% 9%, rgb(255 194 133 / 15%), transparent 29rem), linear-gradient(135deg, rgb(67 42 60 / 86%), rgb(28 23 38 / 93%)); }
.showcase-story .panel-kicker { color: #ffd29f; }
.showcase-story h2, .showcase-closing h2 { max-width: 13ch; margin: 0 0 13px; color: #fff9f4; font-family: Iowan Old Style, Palatino Linotype, Georgia, ui-serif, serif; font-size: clamp(2.1rem, 3.8vw, 3.9rem); font-weight: 600; letter-spacing: -.065em; line-height: .94; }
.showcase-story > div > p:not(.panel-kicker) { max-width: 38rem; margin: 0; color: #dac7d3; line-height: 1.55; }
.showcase-role-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.showcase-role-list article { display: grid; gap: 6px; min-height: 114px; padding: 16px; border: 1px solid rgb(255 229 205 / 15%); border-radius: 17px; background: rgb(24 19 32 / 47%); }
.showcase-role-list span { color: #ffc993; font-size: .68rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.showcase-role-list strong { color: #fdf4ee; font-size: .96rem; line-height: 1.3; }
.showcase-closing { display: grid; justify-items: center; max-width: 860px; margin: clamp(58px, 9vw, 126px) auto 0; padding: 20px; text-align: center; }
.showcase-closing .panel-kicker { color: #ffd19d; }
.showcase-closing h2 { max-width: 15ch; }
.showcase-closing .showcase-actions { justify-content: center; margin-top: 9px; }
@media (max-width: 920px) {
  .showcase-hero, .showcase-story { grid-template-columns: 1fr; gap: 36px; min-height: 0; }
  .showcase-hero { padding-top: 48px; }
  .showcase-live-preview { min-height: min(70vw, 525px); }
  .showcase-routes, .showcase-console-brief { grid-template-columns: 1fr; }
  .showcase-route-card { min-height: 270px; }
  .showcase-console-grid { grid-template-columns: 1fr; }
}
@media (max-width: 620px) {
  .showcase-shell { width: min(100% - 32px, 1280px); padding-top: 23px; }
  .showcase-hero { padding: 45px 0 28px; }
  .showcase-hero h1 { font-size: clamp(3.1rem, 15vw, 4.2rem); }
  .showcase-actions { align-items: flex-start; flex-direction: column; }
  .showcase-actions .marketing-primary { width: 100%; }
  .showcase-live-preview { min-height: 350px; border-radius: 25px; }
  .showcase-preview-overlay { bottom: 15px; left: 15px; }
  .showcase-preview-score { top: 15px; right: 15px; }
  .showcase-progression { grid-template-columns: 1fr; justify-items: start; gap: 9px; margin: 24px 0 46px; }
  .showcase-progression i { display: none; }
  .showcase-role-list { grid-template-columns: 1fr; }
  .showcase-console, .showcase-console-brief { padding: 26px 20px; border-radius: 25px; }
  .showcase-console-header, .showcase-next-action { align-items: flex-start; flex-direction: column; }
  .showcase-console-brief-action { align-items: flex-start; flex-direction: column; }
  .showcase-console-brief-action p { text-align: left; }
  .showcase-console-flow li { grid-template-columns: 1fr; gap: 4px; }
  .showcase-read-only { white-space: normal; }
  .showcase-console-stats { grid-template-columns: 1fr; }
  .showcase-console-actions { justify-content: flex-start; }
  .showcase-console-actions button { width: 100%; }
  .showcase-console-effect { align-items: flex-start; }
  .showcase-story { padding: 26px 20px; border-radius: 25px; }
}
@media (prefers-reduced-motion: reduce) {
  .showcase-live-preview img { animation: none; }
  .showcase-route-link span { transition: none; }
  .showcase-console-effect::after { animation: none; }
}

/* Jubiqo Studio: professional workspace and partner acquisition. */
.studio-body { min-height: 100vh; background: radial-gradient(circle at 8% 4%, rgb(255 178 117 / 18%), transparent 28rem), radial-gradient(circle at 90% 12%, rgb(210 113 173 / 14%), transparent 27rem), #141017; }
.studio-shell { width: min(100% - 48px, 1240px); padding-top: 22px; }
.studio-hero { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(280px, .75fr); gap: clamp(28px, 6vw, 84px); align-items: center; padding: 74px 0 58px; }
.studio-hero h1 { max-width: 12ch; margin: 10px 0 16px; color: #fff7f0; font-family: Iowan Old Style, Palatino Linotype, Georgia, ui-serif, serif; font-size: clamp(3rem, 6vw, 5.6rem); line-height: .91; letter-spacing: -.075em; }
.studio-hero .lead { max-width: 650px; color: #e9d7e0; }
.studio-hero-card { position: relative; overflow: hidden; padding: 29px; border: 1px solid rgb(255 214 178 / 40%); border-radius: 26px; background: linear-gradient(145deg, rgb(99 48 79 / 88%), rgb(39 27 50 / 94%)); box-shadow: 0 22px 65px rgb(0 0 0 / 30%); }
.studio-hero-card::after { position: absolute; top: -90px; right: -75px; width: 220px; height: 220px; border-radius: 50%; background: radial-gradient(circle, rgb(255 214 161 / 38%), transparent 67%); content: ''; pointer-events: none; }
.studio-hero-card .panel-kicker { color: #ffd39f; }
.studio-hero-card strong { position: relative; display: block; margin: 7px 0 22px; color: #fff6ed; font-family: Iowan Old Style, Palatino Linotype, Georgia, ui-serif, serif; font-size: clamp(1.7rem, 2.8vw, 2.45rem); line-height: .96; letter-spacing: -.055em; }
.studio-hero-card ul { position: relative; display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; color: #eedde7; font-size: .91rem; line-height: 1.35; }
.studio-hero-card li { display: flex; gap: 9px; align-items: center; }
.studio-hero-card li::before { width: 8px; height: 8px; border-radius: 50%; background: linear-gradient(135deg, #ffd19d, #ee98bd); box-shadow: 0 0 15px rgb(255 198 146 / 62%); content: ''; }
.studio-value-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-bottom: 26px; }
.studio-value-grid article { min-height: 180px; padding: 22px; border: 1px solid rgb(255 222 193 / 16%); border-radius: 20px; background: rgb(44 29 43 / 62%); }
.studio-value-grid span { display: block; margin-bottom: 26px; color: #f0a4bf; font-size: .7rem; font-weight: 900; letter-spacing: .14em; }
.studio-value-grid h2 { margin: 0 0 7px; color: #fff3e9; font-size: 1.12rem; letter-spacing: -.035em; }
.studio-value-grid p { margin: 0; color: #cfbdc8; font-size: .87rem; line-height: 1.5; }
.studio-workspace { margin-bottom: 26px; }
.studio-workspace > .hint { max-width: 700px; margin-top: -7px; }
.studio-form { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-top: 20px; }
.studio-form label { display: grid; gap: 7px; min-width: 0; color: #ebd2de; font-size: .78rem; font-weight: 850; }
.studio-form label > span { color: #bfaeb9; font-weight: 650; }
.studio-form input, .studio-form select, .studio-form textarea { width: 100%; min-height: 42px; padding: 9px 11px; border: 1px solid rgb(255 215 182 / 25%); border-radius: 11px; background: rgb(17 13 23 / 66%); color: #fff0e8; font: inherit; }
.studio-form textarea { min-height: 88px; resize: vertical; }
.studio-form button { align-self: end; min-height: 42px; }
.studio-form .checkbox-label { grid-column: 1 / -1; display: flex; align-items: flex-start; gap: 9px; color: #d8c4ce; font-size: .8rem; font-weight: 650; }
.studio-form .checkbox-label input { width: 17px; min-height: 17px; height: 17px; margin: 1px 0 0; accent-color: #ef9fbe; }
.studio-form .form-legal { grid-column: 1 / -1; margin: -4px 0 0; color: #bdaab8; font-size: .72rem; line-height: 1.4; }
.studio-form .form-legal a { color: #f0b9d2; }
.studio-template-form { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.studio-event-form { grid-template-columns: 1.2fr 1fr .9fr auto; }
.studio-metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 24px 0 14px; }
.studio-next-action { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin: 0 0 14px; padding: 17px; border: 1px solid rgb(255 211 169 / 30%); border-radius: 17px; background: radial-gradient(circle at 88% 10%, rgb(255 190 122 / 15%), transparent 20rem), rgb(51 34 51 / 68%); }
.studio-next-action .panel-kicker { margin-bottom: 5px; color: #ffd19d; }
.studio-next-action h3 { margin: 0 0 4px; color: #fff5ed; font-size: 1.12rem; }
.studio-next-action p:not(.panel-kicker) { max-width: 700px; margin: 0; color: #d6c2cd; font-size: .82rem; line-height: 1.4; }
.studio-next-action > div:last-child { display: flex; flex: 0 0 auto; }
.studio-next-action button { min-height: 41px; }
.studio-metrics article, .quality-grid article { display: grid; gap: 5px; min-height: 112px; padding: 16px; border: 1px solid rgb(255 220 189 / 18%); border-radius: 16px; background: linear-gradient(145deg, rgb(92 51 70 / 44%), rgb(24 18 31 / 68%)); }
.studio-metrics span, .quality-grid span { color: #f2b1c9; font-size: .69rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.studio-metrics strong, .quality-grid strong { color: #fff2e9; font-family: Iowan Old Style, Palatino Linotype, Georgia, ui-serif, serif; font-size: 1.85rem; letter-spacing: -.055em; }
.studio-metrics small, .quality-grid small { color: #cdbac5; font-size: .76rem; line-height: 1.35; }
.studio-organization-list, .studio-template-list, .studio-lead-list { display: grid; gap: 10px; }
.studio-organization-card, .studio-template-card, .studio-lead-card { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 16px; border: 1px solid rgb(255 220 189 / 17%); border-radius: 16px; background: rgb(24 18 31 / 46%); }
.studio-organization-card .panel-kicker, .studio-lead-card .panel-kicker { margin-bottom: 5px; color: #f2afc8; }
.studio-organization-card h3, .studio-template-card h4, .studio-lead-card h4 { margin: 0; color: #fff3eb; font-size: 1rem; letter-spacing: -.025em; }
.studio-organization-card p, .studio-template-card p, .studio-lead-card p { margin: 5px 0 0; color: #cbb9c4; font-size: .79rem; }
.studio-organization-card > span { flex: 0 0 auto; padding: 6px 8px; border: 1px solid rgb(255 211 169 / 31%); border-radius: 999px; color: #ffe0bd; font-size: .68rem; font-weight: 850; }
.studio-template-card .text-button { flex: 0 0 auto; color: #f4bdd5; }
.studio-section { margin-top: 28px; padding-top: 23px; border-top: 1px solid rgb(255 223 201 / 14%); }
.studio-section h3 { margin: 2px 0 0; color: #fff5ed; font-size: 1.36rem; letter-spacing: -.045em; }
.studio-event-result { margin-top: 13px; padding: 13px; border: 1px solid rgb(145 230 177 / 45%); border-radius: 14px; background: rgb(54 137 91 / 14%); color: #e2ffeb; font-size: .87rem; }
.studio-event-result a { color: #fff0c9; font-weight: 850; }
.quality-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; }
.quality-grid article { min-height: 128px; }
.quality-grid strong { font-size: 1.4rem; }
.studio-lead-card { align-items: flex-start; }
.studio-lead-card small { display: block; max-width: 700px; margin-top: 7px; color: #d6c3cd; font-size: .79rem; line-height: 1.45; }
.studio-lead-card select { flex: 0 0 128px; min-height: 36px; padding: 7px; border: 1px solid rgb(255 216 180 / 26%); border-radius: 9px; background: #251c2c; color: #fff0e9; font: inherit; font-size: .76rem; }
.studio-lead { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 28px; align-items: start; margin-bottom: 40px; }
.studio-lead h2 { margin: 7px 0 10px; color: #fff5ed; font-family: Iowan Old Style, Palatino Linotype, Georgia, ui-serif, serif; font-size: clamp(2rem, 3.4vw, 3rem); line-height: .96; letter-spacing: -.06em; }
.studio-lead .studio-form { margin-top: 0; }
.studio-lead .studio-message-field { grid-column: 1 / -1; }
.studio-lead .studio-form button { grid-column: 1 / -1; justify-self: start; min-width: 190px; }
@media (max-width: 960px) {
  .studio-hero, .studio-lead { grid-template-columns: 1fr; }
  .studio-value-grid { grid-template-columns: 1fr; }
  .studio-form, .studio-template-form, .studio-event-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .studio-event-form button { grid-column: auto; }
  .quality-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 620px) {
  .studio-shell { width: min(100% - 28px, 1240px); }
  .studio-hero { padding: 46px 0 38px; }
  .studio-hero h1 { font-size: clamp(3rem, 14vw, 4.4rem); }
  .studio-hero-card, .studio-workspace, .studio-lead { padding: 19px; }
  .studio-form, .studio-template-form, .studio-event-form, .studio-metrics, .quality-grid { grid-template-columns: 1fr; }
  .studio-event-form button { grid-column: auto; }
  .studio-organization-card, .studio-template-card, .studio-lead-card { align-items: flex-start; flex-direction: column; }
  .studio-next-action { align-items: flex-start; flex-direction: column; }
  .studio-lead-card select { width: 100%; flex-basis: auto; }
}
@media (prefers-reduced-motion: reduce) {
  .guide-highlight { animation: none; }
  .assistant-mascot::before, .assistant-mascot img, .processing-mascot::before, .processing-mascot::after, .processing-mascot img { animation: none; }
}

.language-switcher {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: #f3d4e4;
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.language-switcher select {
  min-height: 32px;
  max-width: 130px;
  padding: 5px 24px 5px 9px;
  border: 1px solid rgb(255 215 180 / 34%);
  border-radius: 999px;
  background: rgb(43 29 45 / 78%);
  color: #fff1e8;
  font: inherit;
  letter-spacing: normal;
  text-transform: none;
}
.capture-network-status {
  margin: 11px 0 0;
  padding: 10px 12px;
  border: 1px solid rgb(255 211 164 / 28%);
  border-radius: 12px;
  background: rgb(255 211 164 / 8%);
  color: #ffe5c8;
  font-size: .84rem;
  line-height: 1.4;
}
.capture-network-status[data-tone="success"] { border-color: rgb(151 236 184 / 48%); background: rgb(75 184 126 / 14%); color: #d9ffe5; }
.capture-network-status[data-tone="warning"] { border-color: rgb(255 202 119 / 48%); background: rgb(196 130 45 / 13%); color: #ffe8bc; }
.show-cue-form { display: grid; grid-template-columns: 1.2fr repeat(3, minmax(0, 1fr)); gap: 11px; align-items: end; margin-top: 16px; }
.show-cue-form label { display: grid; gap: 6px; color: #ecd2de; font-size: .76rem; font-weight: 800; }
.show-cue-form button { min-height: 42px; }
.show-cue-list { display: grid; gap: 8px; margin-top: 14px; }
.show-cue-item { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 13px; border: 1px solid rgb(255 223 202 / 14%); border-radius: 14px; background: rgb(22 17 29 / 28%); }
.show-cue-item > div { display: grid; gap: 4px; min-width: 0; }
.show-cue-item strong, .show-cue-item small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.show-cue-item strong { color: #fff3eb; font-size: .9rem; }
.show-cue-item small { color: #cfbdc8; font-size: .77rem; }
.afterglow-story { display: grid; grid-template-columns: minmax(190px, .75fr) minmax(0, 1.25fr); gap: 20px; align-items: center; margin: 0 auto 24px; padding: 20px; border: 1px solid rgb(255 221 183 / 22%); border-radius: 22px; background: radial-gradient(circle at 7% 15%, rgb(255 196 131 / 15%), transparent 22rem), rgb(29 21 37 / 74%); }
.afterglow-story h2 { margin: 2px 0 7px; color: #fff4eb; font-family: Iowan Old Style, Palatino Linotype, Georgia, ui-serif, serif; font-size: clamp(1.3rem, 2.5vw, 2rem); letter-spacing: -.045em; }
.afterglow-story p:not(.panel-kicker) { margin: 0; color: #d7c3ce; font-size: .86rem; line-height: 1.45; }
.afterglow-strip { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.afterglow-card { position: relative; min-height: 112px; overflow: hidden; padding: 0; border: 1px solid rgb(255 229 204 / 18%); border-radius: 14px; background: #211725; cursor: pointer; }
.afterglow-card img { width: 100%; height: 100%; min-height: 112px; object-fit: cover; transition: transform .35s ease; }
.afterglow-card:hover img, .afterglow-card:focus-visible img { transform: scale(1.06); }
.afterglow-card span { position: absolute; right: 0; bottom: 0; left: 0; padding: 20px 8px 7px; background: linear-gradient(transparent, rgb(15 10 17 / 83%)); color: #fff5ef; font-size: .7rem; font-weight: 850; text-align: left; }
.studio-invitation-banner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin: 1rem 0; padding: 1rem 1.1rem; border: 1px solid rgb(255 201 119 / 60%); border-radius: 1rem; background: linear-gradient(120deg, rgb(255 201 119 / 18%), rgb(231 117 171 / 16%)); }
.studio-invitation-banner strong { display: block; max-width: 58rem; }
.studio-brand-form, .studio-invite-form { margin-top: 1rem; }
.studio-member-list, .studio-invitation-list { display: grid; gap: .6rem; margin-top: 1rem; }
.studio-member-card, .studio-invitation-card { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .8rem .9rem; border: 1px solid rgb(255 231 239 / 14%); border-radius: .85rem; background: rgb(17 10 20 / 35%); }
.studio-member-card strong, .studio-invitation-card strong, .studio-member-card small, .studio-invitation-card small { display: block; }
.studio-member-card small, .studio-invitation-card small { margin-top: .2rem; color: #cdbac5; }
.has-partner-brand .marketing-kicker, .wall-shell.has-partner-brand .eyebrow { color: var(--jubiqo-partner-accent, #f0a4bf); }
.has-partner-brand .brand-lockup { color: var(--jubiqo-partner-accent, #ffc977); }
@media (max-width: 620px) {
  .language-switcher > span { display: none; }
  .language-switcher select { max-width: 110px; }
  .show-cue-form { grid-template-columns: 1fr; }
  .show-cue-item { align-items: flex-start; flex-direction: column; }
  .afterglow-story { grid-template-columns: 1fr; padding: 17px; }
  .afterglow-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .studio-invitation-banner, .studio-member-card, .studio-invitation-card { align-items: flex-start; flex-direction: column; }
}

/* Live show wall: an always-moving field, never a carousel or slideshow. */
.photo-fountain { position: relative; display: block; min-height: clamp(420px, 55vh, 690px); columns: initial; isolation: isolate; perspective: 1250px; }
.photo-fountain::before, .photo-fountain::after { position: absolute; z-index: -1; content: ''; pointer-events: none; }
.photo-fountain::before { inset: 1% -4%; border-radius: 42% 58% 53% 47% / 47% 38% 62% 53%; background: radial-gradient(ellipse at 23% 28%, rgb(255 190 126 / 18%), transparent 36%), radial-gradient(ellipse at 74% 66%, rgb(245 105 177 / 17%), transparent 43%), radial-gradient(ellipse at 48% 44%, rgb(255 235 178 / 10%), transparent 49%); filter: blur(24px); animation: wall-field-aurora 22s ease-in-out infinite alternate; }
.photo-fountain::after { inset: 5% 0; opacity: .42; background-image: radial-gradient(circle, rgb(255 242 204 / 40%) 0 1px, transparent 1.7px), radial-gradient(circle, rgb(245 153 205 / 28%) 0 1px, transparent 1.8px); background-position: 0 0, 47px 63px; background-size: 127px 127px, 173px 173px; -webkit-mask-image: radial-gradient(ellipse at center, black 13%, transparent 72%); mask-image: radial-gradient(ellipse at center, black 13%, transparent 72%); animation: wall-field-particles 28s linear infinite; }
.wall-photo.wall-stage-card { position: absolute; top: var(--scene-y, 50%); left: var(--scene-x, 50%); width: clamp(164px, 19vw, 316px); margin: 0; break-inside: auto; z-index: var(--scene-z, 1); overflow: visible; opacity: .78; scale: .975; transform: translate(-50%, -50%) rotate(var(--scene-rotate, 0deg)) scale(var(--scene-scale, 1)); animation: wall-field-drift var(--scene-duration, 21s) cubic-bezier(.42, 0, .58, 1) var(--scene-delay, 0s) infinite; transition: opacity 1.52s cubic-bezier(.18, .86, .25, 1), scale 1.52s cubic-bezier(.18, .86, .25, 1), border-color 1.52s cubic-bezier(.18, .86, .25, 1), box-shadow 1.52s cubic-bezier(.18, .86, .25, 1), filter 1.52s cubic-bezier(.18, .86, .25, 1); will-change: transform, opacity, scale; }
.wall-photo.wall-stage-card::after { z-index: 2; }
.wall-photo.wall-stage-card img { min-height: 0; max-height: min(48vh, 440px); aspect-ratio: 4 / 3; border-radius: inherit; object-fit: cover; }
.wall-photo.wall-stage-card figcaption { position: relative; z-index: 3; min-height: 47px; padding: 10px 12px 11px; border-radius: 0 0 19px 19px; }
.wall-photo.wall-stage-card:not(.is-featured) { opacity: .74; scale: .96; filter: saturate(.89) brightness(.89); }
.wall-photo.wall-stage-card.is-featured { z-index: 17; opacity: 1; scale: 1.06; border-color: color-mix(in srgb, var(--wall-accent) 62%, white); box-shadow: 0 24px 70px rgb(0 0 0 / 37%), 0 0 54px color-mix(in srgb, var(--wall-accent) 27%, transparent); filter: saturate(1.09) brightness(1.04); }
.wall-photo.wall-stage-card.is-featured::before { position: absolute; z-index: 4; inset: -12px; border: 1px solid color-mix(in srgb, var(--wall-accent) 55%, transparent); border-radius: 25px; box-shadow: 0 0 0 0 color-mix(in srgb, var(--wall-accent) 0%, transparent); content: ''; opacity: 0; pointer-events: none; }
.wall-photo.wall-stage-card.is-featured-enter::before { animation: wall-field-glint 1.7s cubic-bezier(.16, 1, .3, 1) both; }
.wall-photo.wall-stage-card.is-featured.is-featured-leaving { z-index: 16; opacity: .74; scale: .96; border-color: color-mix(in srgb, var(--wall-accent) 30%, white); box-shadow: 0 14px 44px rgb(0 0 0 / 23%), 0 0 24px color-mix(in srgb, var(--wall-accent) 11%, transparent); filter: saturate(.89) brightness(.89); }
.feature-flow { position: absolute; z-index: 19; top: 0; left: 0; display: block; width: var(--feature-flow-length); height: 12px; border-radius: 99px; background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--wall-accent) 32%, transparent) 20%, color-mix(in srgb, var(--wall-accent) 72%, white) 42%, #fff9df 54%, color-mix(in srgb, var(--wall-accent) 32%, transparent) 77%, transparent 100%); box-shadow: 0 0 18px var(--wall-accent), 0 0 48px color-mix(in srgb, var(--wall-accent) 48%, transparent); opacity: 0; pointer-events: none; transform-origin: 0 50%; animation: wall-feature-flow 1.52s cubic-bezier(.16, .8, .22, 1) both; }
.wall-photo.wall-stage-card.is-crowd-favorite:not(.is-featured) { border-color: color-mix(in srgb, var(--team-color) 68%, white); box-shadow: 0 21px 56px rgb(0 0 0 / 32%), 0 0 38px color-mix(in srgb, var(--team-color) 32%, transparent); filter: saturate(1.02) brightness(1.01); }
.wall-photo.wall-stage-card.is-crowd-favorite::after { border-color: color-mix(in srgb, var(--team-color) 72%, white); box-shadow: 0 0 28px color-mix(in srgb, var(--team-color) 34%, transparent); animation: wall-crowd-breathe 2.8s ease-in-out infinite; }
.wall-photo.wall-stage-card.is-traveling, .wall-photo.wall-stage-card.is-entering, .wall-photo.wall-stage-card.is-leaving { animation: none !important; will-change: transform, opacity; }
.wall-photo.wall-stage-card:hover { z-index: 20; filter: saturate(1.08) brightness(1.04); }
.wall-photo.wall-stage-card:hover img { transform: scale(1.04); }
.photo-drop-layer, .score-layer { position: absolute; z-index: 8; inset: 0; overflow: hidden; pointer-events: none; }
.photo-drop { position: absolute; top: -190px; left: 50%; display: grid; width: clamp(185px, 24vw, 350px); gap: 0; overflow: hidden; border: 2px solid rgb(255 244 214 / 62%); border-radius: 21px; background: #231724; box-shadow: 0 26px 82px rgb(0 0 0 / 52%), 0 0 70px rgb(255 197 117 / 38%); opacity: 0; transform: translateX(-50%) rotate(var(--drop-rotate, 0deg)); animation: photo-drop-to-stage 1.62s cubic-bezier(.12, .87, .2, 1) both; }
.photo-drop img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.photo-drop p { margin: 0; padding: 10px 12px 11px; background: linear-gradient(90deg, rgb(38 21 39 / 96%), rgb(69 34 55 / 92%)); color: #fff5ed; font-size: .82rem; font-weight: 850; text-align: center; }
.team-score-burst { position: absolute; top: 43%; left: clamp(16px, 14vw, 250px); display: grid; justify-items: center; gap: 3px; min-width: 132px; padding: 15px 18px; border: 1px solid color-mix(in srgb, var(--team-color) 78%, white); border-radius: 18px; background: rgb(35 21 35 / 77%); box-shadow: 0 18px 50px rgb(0 0 0 / 33%), 0 0 38px var(--team-color); color: #fff8ef; opacity: 0; transform: translateY(18px) scale(.72); animation: team-score-burst 2.45s cubic-bezier(.16, .86, .24, 1) both; backdrop-filter: blur(14px); }
.team-score-burst::before { position: absolute; inset: -12px; border: 1px solid color-mix(in srgb, var(--team-color) 54%, transparent); border-radius: inherit; content: ''; animation: team-score-ring 1.15s ease-out both; }
.team-score-burst strong { color: var(--team-color); font-size: clamp(1.35rem, 2.8vw, 2rem); letter-spacing: -.06em; line-height: 1; }
.team-score-burst span { font-size: .76rem; font-weight: 850; }
.leaderboard-entry.is-scoring { border-radius: 13px; background: color-mix(in srgb, var(--wall-accent) 15%, transparent); animation: leaderboard-score 1.16s cubic-bezier(.16, .9, .3, 1) both; }
.wall-guide { position: absolute; z-index: 10; right: clamp(15px, 3vw, 48px); bottom: clamp(15px, 3vw, 42px); display: grid; grid-template-columns: 72px minmax(170px, 290px); align-items: center; gap: 11px; pointer-events: none; }
.wall-guide-aura { position: absolute; z-index: -1; width: 74px; height: 74px; border-radius: 50%; background: radial-gradient(circle, rgb(255 216 142 / 49%), rgb(242 122 192 / 18%) 46%, transparent 71%); filter: blur(3px); animation: wall-guide-aura 3s ease-in-out infinite; }
.wall-guide img { width: 72px; height: 72px; filter: drop-shadow(0 12px 16px rgb(0 0 0 / 31%)); animation: wall-guide-float 3.5s ease-in-out infinite; }
.wall-guide p { margin: 0; padding: 11px 14px; border: 1px solid rgb(255 231 199 / 29%); border-radius: 16px 16px 5px 16px; background: rgb(34 21 37 / 77%); box-shadow: 0 14px 42px rgb(0 0 0 / 24%); color: #fff6ee; font-size: .8rem; font-weight: 760; line-height: 1.35; backdrop-filter: blur(14px); }
.wall-guide[data-mood="celebrate"] img { animation-duration: 1.08s; }
.wall-guide[data-mood="pulse"] .wall-guide-aura { background: radial-gradient(circle, rgb(255 243 180 / 60%), rgb(249 126 181 / 23%) 48%, transparent 72%); animation-duration: 1.18s; }
.wall-guide[data-mood="spotlight"] p { border-color: color-mix(in srgb, var(--wall-accent) 64%, white); color: var(--wall-accent); }
.wall-guide.is-speaking img { animation: wall-guide-talk 620ms cubic-bezier(.2, .9, .25, 1) 2; }
.wall-guide.is-speaking p { animation: wall-guide-bubble 480ms cubic-bezier(.16, 1, .3, 1) both; }
@keyframes wall-field-aurora { 0% { opacity: .56; transform: translate3d(-2%, 1%, 0) rotate(-3deg) scale(.94); } 52% { opacity: .94; transform: translate3d(3%, -2%, 0) rotate(4deg) scale(1.08); } 100% { opacity: .68; transform: translate3d(-1%, 3%, 0) rotate(-1deg) scale(.98); } }
@keyframes wall-field-particles { from { background-position: 0 0, 47px 63px; } to { background-position: 127px 254px, -126px 236px; } }
@keyframes wall-field-drift { 0%, 100% { transform: translate(-50%, -50%) rotate(var(--scene-rotate, 0deg)) scale(var(--scene-scale, 1)) translate3d(0, 0, 0); } 31% { transform: translate(-50%, -50%) rotate(calc(var(--scene-rotate, 0deg) + var(--scene-turn, 2deg))) scale(var(--scene-scale, 1)) translate3d(var(--scene-drift-x, 14px), var(--scene-drift-y, -12px), 0); } 67% { transform: translate(-50%, -50%) rotate(calc(var(--scene-rotate, 0deg) - var(--scene-turn, 2deg))) scale(var(--scene-scale, 1)) translate3d(var(--scene-drift-x-alt, -10px), var(--scene-drift-y-alt, 11px), 0); } }
@keyframes wall-field-glint { 0% { opacity: 0; transform: scale(.88); box-shadow: 0 0 0 0 color-mix(in srgb, var(--wall-accent) 36%, transparent); } 38% { opacity: .95; box-shadow: 0 0 42px 15px color-mix(in srgb, var(--wall-accent) 34%, transparent); } 100% { opacity: 0; transform: scale(1.14); box-shadow: 0 0 70px 29px color-mix(in srgb, var(--wall-accent) 0%, transparent); } }
@keyframes wall-crowd-breathe { 0%, 100% { opacity: .42; } 50% { opacity: var(--crowd-opacity, .8); } }
@keyframes wall-feature-flow { 0% { opacity: 0; transform: translate(var(--feature-flow-x), var(--feature-flow-y)) rotate(var(--feature-flow-angle)) scaleX(.04); } 16% { opacity: .94; } 66% { opacity: .76; } 100% { opacity: 0; transform: translate(var(--feature-flow-x), var(--feature-flow-y)) rotate(var(--feature-flow-angle)) scaleX(1); } }
@keyframes photo-drop-to-stage { 0% { opacity: 0; transform: translate(-50%, -18vh) rotate(var(--drop-rotate, 0deg)) scale(.58); } 18% { opacity: 1; } 67% { opacity: 1; transform: translate(-50%, 37vh) rotate(0) scale(1.03); } 83% { opacity: 1; transform: translate(-50%, 34vh) rotate(0) scale(.94); } 100% { opacity: 0; transform: translate(-50%, 34vh) rotate(0) scale(.86); } }
@keyframes team-score-burst { 0% { opacity: 0; transform: translateY(20px) scale(.72); } 19%, 68% { opacity: 1; transform: translateY(0) scale(1); } 100% { opacity: 0; transform: translateY(-30px) scale(.95); } }
@keyframes team-score-ring { from { opacity: .8; transform: scale(.7); } to { opacity: 0; transform: scale(1.36); } }
@keyframes leaderboard-score { 0%, 100% { transform: translateX(0); } 32% { transform: translateX(7px) scale(1.02); } 58% { transform: translateX(-3px); } }
@keyframes wall-guide-float { 0%, 100% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-7px) rotate(2deg); } }
@keyframes wall-guide-aura { 0%, 100% { opacity: .56; transform: scale(.9); } 50% { opacity: 1; transform: scale(1.14); } }
@keyframes wall-guide-talk { 0%, 100% { transform: translateY(0) rotate(0); } 40% { transform: translateY(-9px) rotate(-7deg) scale(1.08); } 72% { transform: translateY(-2px) rotate(5deg); } }
@keyframes wall-guide-bubble { from { opacity: .35; transform: translateY(10px) scale(.94); } to { opacity: 1; transform: translateY(0) scale(1); } }
@media (max-width: 700px) {
  .photo-fountain { min-height: 520px; }
  .wall-photo.wall-stage-card { width: min(38vw, 190px); }
  .wall-photo.wall-stage-card:nth-child(n + 6) { display: none; }
  .wall-guide { grid-template-columns: 55px minmax(145px, 220px); right: 12px; bottom: 12px; gap: 7px; }
  .wall-guide img, .wall-guide-aura { width: 55px; height: 55px; }
  .wall-guide p { padding: 9px 11px; font-size: .7rem; }
  .team-score-burst { top: 35%; left: 50%; transform: translateX(-50%); }
  .photo-drop { width: min(62vw, 310px); }
}
@media (prefers-reduced-motion: reduce) {
  .photo-fountain::before, .photo-fountain::after, .wall-photo.wall-stage-card, .wall-photo.wall-stage-card.is-new, .photo-drop, .team-score-burst, .team-score-burst::before, .leaderboard-entry.is-scoring, .wall-guide-aura, .wall-guide img, .wall-guide.is-speaking img, .wall-guide.is-speaking p, .feature-flow { animation: none !important; }
  .wall-photo.wall-stage-card { translate: 0 0; }
  .photo-drop, .team-score-burst { display: none; }
  .feature-flow { display: none; }
}

/* Jubiqo constellation: a continuous living field, never a slideshow. */
.wall-shell[data-moment="cocktail"] .photo-fountain { filter: saturate(.94) brightness(.98); }
.wall-shell[data-moment="discours"] .photo-fountain { filter: saturate(.78) brightness(.88); }
.wall-shell[data-moment="ouverture-bal"] .photo-fountain::before { opacity: .9; animation-duration: 10s; }
.wall-shell[data-moment="dessert"] .photo-fountain::after { opacity: .64; }
.wall-shell[data-moment="dancefloor"] .photo-fountain::before { opacity: 1; animation-duration: 7.5s; }
.wall-shell.is-big-moment .photo-fountain::before { opacity: 1; animation-duration: 4.8s; filter: blur(18px) saturate(1.35); }
.wall-shell.is-big-moment .photo-fountain::after { opacity: .82; animation-duration: 9s; }
.wall-shell.is-big-moment .wall-stage-card { filter: saturate(1.08) brightness(1.04); }

.wall-photo.wall-stage-card { width: clamp(136px, 16vw, 260px); opacity: .84; scale: 1; transition: opacity 1.15s cubic-bezier(.18, .86, .25, 1), scale 1.15s cubic-bezier(.18, .86, .25, 1), border-color .8s ease, box-shadow .8s ease, filter .8s ease; }
.wall-photo.wall-stage-card:not(.is-featured) { opacity: .84; scale: 1; filter: saturate(.95) brightness(.97); }
.wall-photo.wall-stage-card.is-featured { opacity: .84; scale: 1; border-color: rgb(255 239 213 / 30%); box-shadow: 0 18px 54px rgb(0 0 0 / 28%); filter: saturate(.95) brightness(.97); }
.wall-photo.wall-stage-card.is-crowd-favorite:not(.is-featured) { border-color: color-mix(in srgb, var(--team-color) 78%, white); box-shadow: 0 22px 64px rgb(0 0 0 / 32%), 0 0 44px color-mix(in srgb, var(--team-color) 38%, transparent); filter: saturate(1.07) brightness(1.05); }
.wall-photo.wall-stage-card.is-vote-resonating { z-index: 18; border-color: color-mix(in srgb, var(--team-color) 85%, white); box-shadow: 0 25px 76px rgb(0 0 0 / 38%), 0 0 70px color-mix(in srgb, var(--team-color) 52%, transparent); filter: saturate(1.16) brightness(1.1); }
.wall-photo.wall-stage-card.is-vote-resonating::before { position: absolute; z-index: 5; inset: -18px; border: 2px solid color-mix(in srgb, var(--team-color) 78%, white); border-radius: 28px; content: ''; pointer-events: none; animation: wall-team-photo-resonance 2.4s cubic-bezier(.16, .86, .24, 1) both; }
.wall-photo.wall-stage-card.has-photo-votes { border-color: color-mix(in srgb, var(--wall-accent) 64%, white); box-shadow: 0 21px 60px rgb(0 0 0 / 31%), 0 0 40px color-mix(in srgb, var(--wall-accent) 28%, transparent); filter: saturate(1.05) brightness(1.035); }
.wall-photo.wall-stage-card.is-photo-voted::after { animation: photo-vote-card-glow 1.15s cubic-bezier(.16, 1, .3, 1) both; }
.wall-photo.wall-stage-card .wall-report { opacity: 0; pointer-events: none; transition: opacity 180ms ease; }
@media (hover: hover) and (pointer: fine) { .wall-photo.wall-stage-card:hover .wall-report, .wall-photo.wall-stage-card:focus-within .wall-report { opacity: 1; pointer-events: auto; } }
.wall-photo.wall-stage-card.is-reaction-open { z-index: 22; border-color: color-mix(in srgb, var(--wall-accent) 82%, white); box-shadow: 0 24px 70px rgb(0 0 0 / 36%), 0 0 46px color-mix(in srgb, var(--wall-accent) 30%, transparent); }
.photo-reaction-trigger { position: absolute; z-index: 7; right: 7px; bottom: 7px; display: inline-flex; align-items: center; justify-content: center; gap: 3px; min-width: 35px; min-height: 30px; padding: 4px 7px !important; border: 1px solid rgb(255 235 214 / 30%) !important; border-radius: 999px !important; background: rgb(30 18 34 / 80%) !important; box-shadow: 0 8px 19px rgb(0 0 0 / 27%); color: #fff7f0; font-size: .88rem; line-height: 1; backdrop-filter: blur(10px); transition: transform 180ms cubic-bezier(.16, 1, .3, 1), background 180ms ease, border-color 180ms ease, box-shadow 180ms ease; }
.photo-reaction-trigger b { color: #fff3ec; font-size: .64rem; font-variant-numeric: tabular-nums; }
.photo-reaction-trigger i { display: none; font-size: .62rem; font-style: normal; font-weight: 850; }
.photo-reaction-trigger:hover, .photo-reaction-trigger:focus-visible, .wall-photo.wall-stage-card.is-reaction-open .photo-reaction-trigger { border-color: #ffd6a9 !important; background: rgb(116 52 88 / 88%) !important; box-shadow: 0 9px 24px rgb(255 137 190 / 28%); outline: none; transform: translateY(-2px) scale(1.06); }
.photo-reaction-menu { position: absolute; z-index: 10; right: -8px; bottom: 48px; display: flex; gap: 5px; padding: 6px; border: 1px solid rgb(255 232 204 / 34%); border-radius: 18px; background: linear-gradient(135deg, rgb(41 23 43 / 94%), rgb(89 37 63 / 91%)); box-shadow: 0 17px 45px rgb(0 0 0 / 38%); opacity: 0; pointer-events: none; transform: translateY(10px) scale(.92); transform-origin: right bottom; transition: opacity 180ms ease, transform 220ms cubic-bezier(.16, 1, .3, 1); backdrop-filter: blur(16px); }
.photo-reaction-menu::after { position: absolute; right: 18px; bottom: -6px; width: 11px; height: 11px; border-right: 1px solid rgb(255 232 204 / 31%); border-bottom: 1px solid rgb(255 232 204 / 31%); background: rgb(75 33 58 / 92%); content: ''; transform: rotate(45deg); }
.wall-photo.wall-stage-card.is-reaction-open .photo-reaction-menu { opacity: 1; pointer-events: auto; transform: translateY(0) scale(1); }
.photo-reaction-menu button { position: relative; z-index: 1; display: inline-flex; align-items: center; justify-content: center; gap: 2px; width: 38px; height: 38px; padding: 0 !important; border: 1px solid rgb(255 231 204 / 21%) !important; border-radius: 12px !important; background: rgb(255 245 234 / 7%) !important; box-shadow: none; color: #fff7ef; font-size: 1rem; line-height: 1; transition: transform 180ms cubic-bezier(.16, 1, .3, 1), background 180ms ease, border-color 180ms ease, box-shadow 180ms ease; }
.photo-reaction-menu button b { color: #fff4ea; font-size: .6rem; font-variant-numeric: tabular-nums; }
.photo-reaction-menu button:hover:not(:disabled), .photo-reaction-menu button:focus-visible { border-color: rgb(255 220 176 / 76%) !important; background: rgb(255 204 154 / 19%) !important; box-shadow: 0 0 20px rgb(255 189 125 / 25%); outline: none; transform: translateY(-4px) scale(1.1); }
.photo-reaction-menu button.is-selected { border-color: #ffd7a7 !important; background: linear-gradient(135deg, rgb(249 153 191 / 72%), rgb(255 196 132 / 74%)) !important; box-shadow: 0 7px 20px rgb(252 142 176 / 29%); }
.photo-reaction-menu button:disabled { cursor: wait; opacity: .62; }
.photo-zoom-trigger { position: absolute; z-index: 7; right: 7px; top: 7px; display: inline-flex; align-items: center; justify-content: center; gap: 4px; min-width: 36px; min-height: 30px; padding: 4px 7px !important; border: 1px solid rgb(255 235 214 / 30%) !important; border-radius: 999px !important; background: rgb(30 18 34 / 80%) !important; box-shadow: 0 8px 19px rgb(0 0 0 / 27%); color: #fff7f0; font-size: .82rem; line-height: 1; backdrop-filter: blur(10px); transition: transform 180ms cubic-bezier(.16, 1, .3, 1), background 180ms ease, border-color 180ms ease; }
.photo-zoom-trigger i { display: none; font-size: .62rem; font-style: normal; font-weight: 850; }
.photo-zoom-trigger:hover, .photo-zoom-trigger:focus-visible { border-color: #ffd6a9 !important; background: rgb(116 52 88 / 88%) !important; outline: none; transform: translateY(-2px) scale(1.06); }
.wall-photo.wall-stage-card img { cursor: zoom-in; }

.wall-vote-popup { position: fixed; z-index: 90; top: 50%; left: 50%; display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 2px 12px; min-width: min(330px, calc(100vw - 34px)); padding: 16px 20px; border: 1px solid rgb(255 231 205 / 46%); border-radius: 22px; background: linear-gradient(135deg, rgb(51 29 56 / 96%), rgb(113 48 78 / 94%)); box-shadow: 0 28px 90px rgb(0 0 0 / 48%), 0 0 58px rgb(255 140 195 / 26%); color: #fff8f1; opacity: 0; pointer-events: none; transform: translate(-50%, -42%) scale(.9); transition: opacity 180ms ease, transform 260ms cubic-bezier(.16, 1, .3, 1); backdrop-filter: blur(20px); }
.wall-vote-popup.is-showing { opacity: 1; transform: translate(-50%, -50%) scale(1); }
.wall-vote-popup > span { grid-row: 1 / span 2; display: grid; width: 48px; height: 48px; place-items: center; border: 1px solid rgb(255 232 202 / 30%); border-radius: 50%; background: rgb(255 229 196 / 12%); font-size: 1.6rem; box-shadow: 0 0 28px rgb(255 178 190 / 25%); }
.wall-vote-popup strong { color: #fff5ea; font-size: .94rem; }
.wall-vote-popup p { margin: 0; color: #ffd7bd; font-size: .76rem; font-weight: 750; }

.photo-viewer { width: min(1180px, calc(100vw - 28px)); max-width: none; max-height: calc(100dvh - 28px); margin: auto; padding: 0; overflow: hidden; border: 1px solid rgb(255 232 205 / 43%); border-radius: 26px; background: linear-gradient(145deg, rgb(52 31 57 / 99%), rgb(22 18 31 / 99%)); box-shadow: 0 32px 110px rgb(0 0 0 / 62%), 0 0 66px rgb(255 145 194 / 17%); color: #fff8f2; }
.photo-viewer::backdrop { background: rgb(10 7 15 / 80%); backdrop-filter: blur(9px); }
.photo-viewer-content { display: grid; gap: 13px; padding: clamp(15px, 2.5vw, 23px); }
.photo-viewer-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.photo-viewer-header .panel-kicker { margin: 0 0 4px; color: #ffd39c; }
.photo-viewer-header h2 { margin: 0; color: #fff7ee; font-family: Iowan Old Style, Palatino Linotype, Georgia, ui-serif, serif; font-size: clamp(1.45rem, 3vw, 2.2rem); letter-spacing: -.045em; }
.photo-viewer-header p:last-child { margin: 4px 0 0; color: #decbd5; font-size: .84rem; }
.photo-viewer-stage { position: relative; display: grid; min-height: min(65dvh, 670px); overflow: hidden; place-items: center; border: 1px solid rgb(255 232 208 / 15%); border-radius: 18px; background: radial-gradient(circle at 50% 35%, rgb(255 188 138 / 11%), transparent 34rem), #120f18; touch-action: none; }
.photo-viewer-image { display: block; max-width: 100%; max-height: min(65dvh, 670px); object-fit: contain; transform: scale(var(--photo-viewer-scale, 1)); transform-origin: center; transition: transform 180ms cubic-bezier(.16, 1, .3, 1); user-select: none; }
.photo-viewer-watermark { position: absolute; top: 50%; left: 50%; padding: 9px 13px; border: 1px solid rgb(255 244 226 / 22%); border-radius: 999px; background: rgb(26 14 31 / 18%); color: rgb(255 247 234 / 36%); font-size: clamp(.62rem, 1.4vw, .86rem); font-weight: 900; letter-spacing: .19em; pointer-events: none; transform: translate(-50%, -50%) rotate(-24deg); white-space: nowrap; }
.photo-viewer-controls { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 8px; color: #d9c9d2; font-size: .75rem; font-weight: 700; }
.photo-viewer-controls button { min-width: 40px; min-height: 38px; padding: 7px 11px; }
.photo-viewer-controls span { flex: 0 1 320px; margin-left: 5px; line-height: 1.35; }

.team-resonance { position: absolute; z-index: 24; left: var(--resonance-x); top: var(--resonance-y); display: block; width: 30px; height: 30px; border: 2px solid color-mix(in srgb, var(--team-color) 84%, white); border-radius: 50%; box-shadow: 0 0 34px var(--team-color), inset 0 0 18px color-mix(in srgb, var(--team-color) 45%, transparent); pointer-events: none; transform: translate(-50%, -50%) scale(.22); animation: wall-team-resonance 2.05s cubic-bezier(.12, .82, .22, 1) both; }
.leaderboard-entry.is-vote-resonating { animation: leaderboard-vote-resonance 1.8s cubic-bezier(.16, .9, .3, 1) both; }

.photo-drop-layer { z-index: 25; }
.photo-drop { top: var(--drop-y); left: var(--drop-x); width: clamp(150px, 18vw, 245px); transform: translate(-50%, -125vh) rotate(var(--drop-rotate, 0deg)) scale(.56); animation: photo-drop-to-constellation 1.95s cubic-bezier(.12, .86, .2, 1) both; }

.wall-pulse-dock { position: fixed; z-index: 32; left: clamp(14px, 3vw, 46px); bottom: clamp(14px, 3vw, 38px); display: grid; grid-template-columns: 1fr; align-items: center; gap: 8px; max-width: min(590px, calc(100vw - 28px)); padding: 11px 13px; border: 1px solid rgb(255 233 204 / 27%); border-radius: 20px; background: linear-gradient(135deg, rgb(39 23 42 / 88%), rgb(60 30 53 / 80%)); box-shadow: 0 18px 52px rgb(0 0 0 / 29%), inset 0 1px 0 rgb(255 255 255 / 8%); backdrop-filter: blur(18px); }
.wall-pulse-copy { display: grid; gap: 1px; }
.wall-pulse-copy .panel-kicker { margin: 0; color: #ffc993; font-size: .58rem; }
.wall-pulse-copy strong { color: #fff7ed; font-size: .8rem; }
.wall-pulse-actions { display: flex; flex-wrap: wrap; gap: 6px; }
.wall-pulse-actions button { display: grid; width: 39px; height: 39px; place-items: center; padding: 0; border: 1px solid rgb(255 229 199 / 27%); border-radius: 12px; background: rgb(255 242 226 / 8%); font-size: 1.15rem; transition: transform 180ms cubic-bezier(.16, 1, .3, 1), background 180ms ease, box-shadow 180ms ease; }
.wall-pulse-actions button:hover:not(:disabled) { background: rgb(255 210 164 / 18%); box-shadow: 0 0 22px rgb(255 194 130 / 25%); transform: translateY(-3px) scale(1.08); }
.wall-pulse-actions button:disabled { cursor: wait; opacity: .55; }
.wall-pulse-feedback { grid-column: 1 / -1; min-height: 1.05rem; margin: -1px 0 0; color: #f2d2e4; font-size: .68rem; font-weight: 760; }

.wall-join-card { position: fixed; z-index: 31; left: clamp(14px, 3vw, 46px); bottom: clamp(158px, 16vw, 186px); display: flex; align-items: center; gap: 9px; padding: 9px; border: 1px solid rgb(255 233 204 / 23%); border-radius: 17px; background: rgb(34 20 37 / 74%); box-shadow: 0 14px 42px rgb(0 0 0 / 23%); backdrop-filter: blur(14px); }
.wall-join-card img { width: 68px; height: 68px; border-radius: 9px; background: white; }
.wall-join-card p { margin: 0 0 3px; color: #f6d5a8; font-size: .61rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.wall-join-card a { color: #fff7ee; font-size: .73rem; font-weight: 850; text-decoration-color: rgb(255 220 190 / 56%); text-underline-offset: 4px; }

.memory-reel { position: fixed; z-index: 34; right: clamp(16px, 4vw, 56px); bottom: clamp(16px, 4vw, 48px); display: grid; gap: 12px; width: min(620px, calc(100vw - 32px)); padding: 18px; border: 1px solid rgb(255 238 211 / 33%); border-radius: 24px; background: linear-gradient(135deg, rgb(37 24 43 / 91%), rgb(79 38 57 / 85%)); box-shadow: 0 28px 82px rgb(0 0 0 / 38%), 0 0 60px rgb(255 191 127 / 13%); backdrop-filter: blur(20px); }
.memory-reel-copy p { margin: 0 0 5px; color: #ffc993; font-size: .66rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.memory-reel-copy strong, .memory-reel-copy span { display: block; }
.memory-reel-copy strong { color: #fff8f0; font-family: Iowan Old Style, Palatino Linotype, Georgia, ui-serif, serif; font-size: 1.32rem; font-weight: 600; }
.memory-reel-copy span { margin-top: 4px; color: #dbc8d3; font-size: .76rem; font-weight: 730; }
.memory-reel-window { overflow: hidden; border-radius: 14px; mask-image: linear-gradient(90deg, transparent, black 7%, black 93%, transparent); }
.memory-reel-track { display: flex; width: max-content; gap: 9px; animation: memory-reel-glide 42s linear infinite; }
.memory-reel-track img { display: block; width: 132px; height: 86px; border: 1px solid rgb(255 238 216 / 24%); border-radius: 11px; object-fit: cover; box-shadow: 0 10px 24px rgb(0 0 0 / 23%); }

@keyframes wall-team-photo-resonance { 0% { opacity: 0; transform: scale(.7); box-shadow: 0 0 0 0 color-mix(in srgb, var(--team-color) 60%, transparent); } 28% { opacity: .95; box-shadow: 0 0 54px 19px color-mix(in srgb, var(--team-color) 42%, transparent); } 100% { opacity: 0; transform: scale(1.24); box-shadow: 0 0 78px 32px color-mix(in srgb, var(--team-color) 0%, transparent); } }
@keyframes wall-team-resonance { 0% { opacity: 0; transform: translate(-50%, -50%) scale(.22); } 16% { opacity: .95; } 75% { opacity: .5; } 100% { opacity: 0; transform: translate(-50%, -50%) scale(13); } }
@keyframes leaderboard-vote-resonance { 0%, 100% { transform: translateX(0); } 22% { background: color-mix(in srgb, var(--wall-accent) 22%, transparent); transform: translateX(7px) scale(1.025); } 55% { transform: translateX(-2px); } }
@keyframes photo-vote-card-glow { 0% { border-color: rgb(255 232 242 / 32%); box-shadow: 0 18px 54px rgb(0 0 0 / 28%), 0 0 0 0 rgb(255 105 174 / 0%); } 32% { border-color: #ffd1e5; box-shadow: 0 24px 72px rgb(0 0 0 / 38%), 0 0 0 13px rgb(255 101 172 / 0%); } 100% { border-color: color-mix(in srgb, var(--wall-accent) 58%, white); box-shadow: 0 21px 60px rgb(0 0 0 / 31%), 0 0 28px rgb(255 130 188 / 22%); } }
@keyframes photo-drop-to-constellation { 0% { opacity: 0; transform: translate(-50%, -125vh) rotate(var(--drop-rotate, 0deg)) scale(.56); } 18% { opacity: 1; } 70% { opacity: 1; transform: translate(-50%, -50%) rotate(0deg) scale(.82); } 100% { opacity: 0; transform: translate(-50%, -50%) rotate(0deg) scale(.66); } }
@keyframes memory-reel-glide { from { transform: translateX(0); } to { transform: translateX(-50%); } }

.offers-shell { max-width: 1160px; }
.offers-hero { max-width: 780px; }
.offers-sandbox-pill { display: inline-flex; margin: 14px 0 0; padding: 8px 12px; border: 1px solid rgb(255 210 164 / 44%); border-radius: 999px; background: rgb(255 226 193 / 9%); color: #ffd4aa; font-size: .78rem; font-weight: 820; }
.offer-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin: 24px 0; }
.offer-card { position: relative; display: grid; align-content: start; gap: 12px; min-height: 420px; padding: 24px; border: 1px solid rgb(241 198 176 / 24%); border-radius: 25px; background: linear-gradient(145deg, rgb(56 33 51 / 91%), rgb(32 21 39 / 92%)); box-shadow: 0 20px 56px rgb(0 0 0 / 20%); transition: transform 240ms cubic-bezier(.16, 1, .3, 1), border-color 240ms ease, box-shadow 240ms ease; }
.offer-card:hover, .offer-card:focus-within, .offer-card.is-selected { border-color: rgb(255 202 155 / 73%); box-shadow: 0 26px 70px rgb(0 0 0 / 32%), 0 0 38px rgb(255 152 193 / 14%); transform: translateY(-6px); }
.offer-card.is-featured { border-color: rgb(255 180 151 / 70%); background: radial-gradient(circle at 87% 7%, rgb(255 160 198 / 23%), transparent 34%), linear-gradient(145deg, rgb(86 40 70 / 95%), rgb(40 24 46 / 94%)); }
.offer-card h2 { margin: 0; color: #fff6ef; font-family: Iowan Old Style, Palatino Linotype, Georgia, ui-serif, serif; font-size: clamp(2rem, 4vw, 3rem); }
.offer-card h2 small { color: #e4bbc9; font-family: ui-sans-serif, system-ui, sans-serif; font-size: .7rem; font-weight: 760; }
.offer-card p { margin: 0; color: #ead9df; line-height: 1.5; }
.offer-card ul { display: grid; gap: 9px; margin: 2px 0 auto; padding: 0; list-style: none; color: #ecdbe2; font-size: .86rem; }
.offer-card li { position: relative; padding-left: 20px; }
.offer-card li::before { position: absolute; left: 0; color: #ffc782; content: '✦'; }
.offer-card button { width: 100%; }
.offer-simulator { animation: panel-rise 420ms cubic-bezier(.16, 1, .3, 1) both; }
.offer-simulation-result { margin-top: 16px; padding: 15px 17px; border: 1px solid rgb(144 233 184 / 56%); border-radius: 15px; background: rgb(27 101 70 / 32%); color: #e2fff0; font-weight: 720; line-height: 1.55; }
.status-components { display: grid; gap: 10px; margin-top: 16px; }
.status-component { display: grid; grid-template-columns: 12px minmax(0, 1fr) auto; align-items: center; gap: 11px; padding: 14px 15px; border: 1px solid rgb(241 209 192 / 19%); border-radius: 14px; background: rgb(255 248 241 / 4%); }
.status-component > span { width: 10px; height: 10px; border-radius: 50%; background: #7ee0a0; box-shadow: 0 0 0 5px rgb(126 224 160 / 11%), 0 0 20px rgb(126 224 160 / 45%); animation: status-pulse 2.2s ease-in-out infinite; }
.status-component[data-status="degraded"] > span { background: #ffc56d; box-shadow: 0 0 0 5px rgb(255 197 109 / 12%), 0 0 20px rgb(255 197 109 / 42%); }
.status-component[data-status="unavailable"] > span { background: #ff7f9a; box-shadow: 0 0 0 5px rgb(255 127 154 / 12%); }
.status-component strong { color: #fff6ef; font-size: .93rem; }
.status-component small { color: #d8bfcd; font-size: .75rem; font-weight: 780; }
.event-help-dialog { width: min(640px, calc(100vw - 28px)); max-height: min(760px, calc(100vh - 28px)); margin: auto; padding: 0; border: 1px solid rgb(255 218 192 / 38%); border-radius: 25px; background: linear-gradient(145deg, rgb(54 33 56 / 98%), rgb(28 21 39 / 98%)); box-shadow: 0 30px 100px rgb(0 0 0 / 58%); color: #f8ecea; }
.event-help-dialog::backdrop { background: rgb(13 9 18 / 68%); backdrop-filter: blur(6px); }
.event-help-content { display: grid; gap: 16px; padding: clamp(20px, 4vw, 30px); }
.event-help-content .section-heading { margin: 0; }
.event-help-content .hint { margin: 0; }
.event-help-steps { display: grid; gap: 9px; }
.event-help-step { display: grid; grid-template-columns: 29px 1fr; gap: 11px; padding: 13px; border: 1px solid rgb(255 230 209 / 17%); border-radius: 15px; background: rgb(255 248 242 / 4%); }
.event-help-step > span { display: grid; width: 27px; height: 27px; place-items: center; border-radius: 50%; background: rgb(255 194 122 / 16%); color: #ffcf91; font-size: .82rem; font-weight: 900; }
.event-help-step[data-ready="true"] > span { background: rgb(111 221 151 / 18%); color: #9df0bb; }
.event-help-step strong { display: block; color: #fff6f0; font-size: .9rem; }
.event-help-step p { margin: 4px 0 0; color: #d9c7d2; font-size: .8rem; line-height: 1.45; }
.event-help-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.guest-guide { position: sticky; z-index: 12; bottom: 14px; display: grid; grid-template-columns: 48px minmax(0, 1fr); align-items: center; gap: 10px; max-width: 620px; margin: 0 auto 15px; padding: 10px 13px 10px 10px; border: 1px solid rgb(255 214 187 / 38%); border-radius: 19px; background: linear-gradient(135deg, rgb(62 35 57 / 93%), rgb(112 53 76 / 88%)); box-shadow: 0 16px 42px rgb(0 0 0 / 25%), 0 0 32px rgb(255 151 192 / 14%); backdrop-filter: blur(16px); transform-origin: center bottom; }
.guest-guide p { margin: 0 0 2px; color: #ffc88e; font-size: .61rem; font-weight: 900; letter-spacing: .11em; text-transform: uppercase; }
.guest-guide strong { display: block; color: #fff7f0; font-size: .81rem; line-height: 1.35; }
.guest-guide-orb { position: relative; display: grid; width: 46px; height: 46px; place-items: center; border-radius: 50%; background: radial-gradient(circle at 35% 30%, #fff9dc 0 7%, #ffc784 22%, #f47bba 58%, #7f4cc1 100%); box-shadow: 0 0 0 4px rgb(255 229 194 / 11%), 0 0 25px rgb(255 146 194 / 48%); animation: guest-guide-float 3.2s ease-in-out infinite; }
.guest-guide-orb::after { position: absolute; inset: -7px; border: 1px solid rgb(255 215 165 / 33%); border-radius: inherit; content: ''; animation: guest-guide-ring 2.6s ease-out infinite; }
.guest-guide-orb img { width: 34px; height: 34px; filter: drop-shadow(0 2px 4px rgb(50 20 47 / 35%)); }
.guest-guide[data-mood="celebrate"] .guest-guide-orb { background: radial-gradient(circle at 35% 30%, #fffbd9 0 7%, #ffdf82 24%, #ff8d8d 55%, #b454d8 100%); }
.guest-guide[data-mood="focus"] .guest-guide-orb { background: radial-gradient(circle at 35% 30%, #edffff 0 7%, #8ce6ec 24%, #7d8bff 55%, #8c54d3 100%); }
.guest-guide.is-speaking { animation: guest-guide-speak 580ms cubic-bezier(.16, 1, .3, 1) both; }

@keyframes panel-rise { from { opacity: 0; transform: translateY(18px) scale(.985); } to { opacity: 1; transform: translateY(0) scale(1); } }
@keyframes status-pulse { 0%, 100% { transform: scale(.86); opacity: .8; } 50% { transform: scale(1.16); opacity: 1; } }
@keyframes guest-guide-float { 0%, 100% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-4px) rotate(2deg); } }
@keyframes guest-guide-ring { 0% { opacity: .8; transform: scale(.72); } 78%, 100% { opacity: 0; transform: scale(1.28); } }
@keyframes guest-guide-speak { 0% { opacity: .2; transform: translateY(14px) scale(.95); } 65% { opacity: 1; transform: translateY(-2px) scale(1.012); } 100% { opacity: 1; transform: translateY(0) scale(1); } }

@media (max-width: 700px) {
  .offer-grid { grid-template-columns: 1fr; }
  .offer-card { min-height: 0; }
  .wall-photo.wall-stage-card { width: min(31vw, 168px); }
  .wall-photo.wall-stage-card:nth-child(n + 7) { display: none; }
  .wall-photo.wall-stage-card .wall-report { opacity: .82; pointer-events: auto; }
  .wall-pulse-dock { right: 12px; left: 12px; bottom: 12px; grid-template-columns: 1fr; border-radius: 17px; }
  .wall-pulse-actions { justify-content: space-between; }
  .wall-pulse-actions button { width: 43px; height: 43px; }
  .photo-reaction-trigger { right: 5px; bottom: 5px; min-width: 42px; min-height: 42px; padding: 5px 8px !important; }
  .photo-reaction-trigger i { display: none; }
  .photo-reaction-menu { right: 50%; bottom: 54px; display: flex; flex-wrap: wrap; justify-content: center; width: 152px; gap: 6px; padding: 7px; transform: translate(50%, 10px) scale(.92); transform-origin: center bottom; }
  .wall-photo.wall-stage-card.is-reaction-open .photo-reaction-menu { transform: translate(50%, 0) scale(1); }
  .wall-photo.wall-stage-card[data-scene-slot="north-west"] .photo-reaction-menu, .wall-photo.wall-stage-card[data-scene-slot="west"] .photo-reaction-menu, .wall-photo.wall-stage-card[data-scene-slot="south-west"] .photo-reaction-menu { right: auto; left: -6px; transform: translateY(10px) scale(.92); transform-origin: left bottom; }
  .wall-photo.wall-stage-card.is-reaction-open[data-scene-slot="north-west"] .photo-reaction-menu, .wall-photo.wall-stage-card.is-reaction-open[data-scene-slot="west"] .photo-reaction-menu, .wall-photo.wall-stage-card.is-reaction-open[data-scene-slot="south-west"] .photo-reaction-menu { transform: translateY(0) scale(1); }
  .wall-photo.wall-stage-card[data-scene-slot="north-east"] .photo-reaction-menu, .wall-photo.wall-stage-card[data-scene-slot="east"] .photo-reaction-menu, .wall-photo.wall-stage-card[data-scene-slot="south-east"] .photo-reaction-menu { right: -6px; left: auto; transform: translateY(10px) scale(.92); transform-origin: right bottom; }
  .wall-photo.wall-stage-card.is-reaction-open[data-scene-slot="north-east"] .photo-reaction-menu, .wall-photo.wall-stage-card.is-reaction-open[data-scene-slot="east"] .photo-reaction-menu, .wall-photo.wall-stage-card.is-reaction-open[data-scene-slot="south-east"] .photo-reaction-menu { transform: translateY(0) scale(1); }
  .photo-reaction-menu button { width: 42px; height: 42px; font-size: 1.08rem; }
  .wall-join-card { display: none; }
  .memory-reel { right: 12px; bottom: 12px; left: 12px; width: auto; }
  .memory-reel-track img { width: 102px; height: 68px; }
}
@media (prefers-reduced-motion: reduce) {
  .team-resonance, .wall-photo.wall-stage-card.is-vote-resonating::before, .wall-photo.wall-stage-card.is-photo-voted::after, .memory-reel-track { animation: none !important; }
  .team-resonance { display: none; }
}

/* Responsive composition v5 -------------------------------------------------
   The public guest path, client dashboard and show-control console must not
   inherit the narrow 760px reading column used by the legal and auth pages.
   Each surface owns a fluid layout, then deliberately changes composition at
   tablet/mobile and presentation-scale viewports. */
.guest-shell {
  width: min(calc(100% - 48px), 1080px);
  max-width: 1080px;
}

.portal-shell,
.regie-shell,
.organizer-shell {
  width: min(calc(100% - 64px), 1500px);
  max-width: 1500px;
}

/* The organizer dashboard reads as a workspace: the Guide is a useful side
   rail, while the next action, activity and event data retain a clear span. */
.portal-body #portal {
  grid-template-columns: minmax(0, 1.55fr) minmax(340px, .72fr);
  gap: clamp(16px, 1.8vw, 28px);
}

/* Keep the activity strip as a full-width third row. The Guide used to begin
   on this row, which forced the browser to create an empty cell on the left
   and pushed the statistics far down the page. */
.portal-body .assistant-panel { grid-row: 4 / span 4; }

.portal-body .portal-welcome,
.portal-body .portal-next-action,
.portal-body .dashboard-stats {
  min-width: 0;
}

.portal-body .dashboard-stats article { min-height: 142px; }
.portal-shell .event-list-panel { min-height: 0; }
.assistant-panel { max-height: calc(100dvh - 36px); overflow: auto; scrollbar-gutter: stable; }

/* Regie status stays readable. Metrics may wrap, actions may flow onto a new
   line; neither is allowed to collapse into ellipses. */
.regie-command-deck {
  grid-template-columns: minmax(220px, .76fr) minmax(380px, 1.45fr) minmax(300px, .94fr);
  gap: clamp(12px, 1.5vw, 24px);
  padding: 18px clamp(18px, 2vw, 28px);
}

.command-deck-metrics { gap: 9px; }
.command-deck-metrics article { min-height: 78px; }
.command-deck-metrics span,
.command-deck-metrics small,
.command-deck-metrics strong {
  overflow: visible;
  text-overflow: clip;
  white-space: normal;
  overflow-wrap: anywhere;
}

.command-deck-actions { flex-wrap: wrap; justify-content: flex-end; }
.command-deck-actions > * { flex: 1 1 132px; }

/* A guest on a desktop gets a generous game board instead of a single-column
   phone column. */
@media (min-width: 861px) {
  .guest-body[data-mode="event"] .guest-shell { width: min(calc(100% - 64px), 1180px); max-width: 1180px; }
  .guest-body[data-mode="event"] .share-panel,
  .guest-body[data-mode="event"] .pulse-panel { margin-bottom: 18px; }
  .guest-body[data-mode="event"] #team-panel,
  .guest-body[data-mode="event"] #challenge-panel,
  .guest-body[data-mode="event"] #upload-panel { padding: clamp(20px, 2.5vw, 28px); }
  .guest-body[data-mode="event"] .challenges { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .guest-body[data-mode="event"] .challenge-card { min-height: 254px; }
}

/* Phone and portrait-tablet: one explicit task at a time. The QR is useful on
   a poster, not once the guest already opened the invite on their own phone. */
@media (max-width: 860px) {
  .guest-body[data-mode="event"] .guest-shell {
    width: calc(100% - 28px);
    max-width: 720px;
    padding-top: 18px;
    padding-bottom: 22px;
  }

  .guest-body[data-mode="event"] .hero { margin-bottom: 12px; }
  .guest-body[data-mode="event"] .hero::after { display: none; }
  .guest-body[data-mode="event"] .hero h1 { max-width: 16ch; margin-bottom: 5px; font-size: clamp(2.05rem, 9vw, 3rem); line-height: .98; }
  .guest-body[data-mode="event"] .hero .lead { display: -webkit-box; overflow: hidden; margin-bottom: 0; font-size: .9rem; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
  .guest-body[data-mode="event"] .share-panel,
  .guest-body[data-mode="event"] .pulse-panel { display: none !important; }
  .guest-body[data-mode="event"] .panel { margin-bottom: 11px; padding: clamp(15px, 3.8vw, 20px); }
  .guest-body[data-mode="event"][data-guest-stage="challenge"] #team-panel,
  .guest-body[data-mode="event"][data-guest-stage="photo"] #team-panel,
  .guest-body[data-mode="event"][data-guest-stage="photo"] #challenge-panel { display: none !important; }
  .guest-body[data-mode="event"] .teams,
  .guest-body[data-mode="event"] .challenges {
    display: grid;
    grid-auto-columns: minmax(min(78vw, 390px), 1fr);
    grid-auto-flow: column;
    grid-template-columns: none;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    padding: 2px 2px 10px;
    scroll-padding-inline: 2px;
    scroll-snap-type: x mandatory;
    scrollbar-width: thin;
  }
  .guest-body[data-mode="event"] .team-card,
  .guest-body[data-mode="event"] .challenge-card { min-width: 0; scroll-snap-align: start; }
  .guest-body[data-mode="event"] .team-card { min-height: 70px; }
  .guest-body[data-mode="event"] .challenge-card { min-height: 218px; }
  .guest-body[data-mode="event"] .guest-guide { position: sticky; bottom: 9px; max-width: none; margin-bottom: 10px; }
}

/* On an ultrawide screen (or when a wall is deliberately zoomed out for a
   projector) use the physical scene. A fixed 760/1240/1680px cap makes the
   experience look like a tiny postcard in the middle of the display. */
@media (min-width: 1800px) {
  .guest-shell { width: min(92vw, 2400px); max-width: none; }
  .portal-shell,
  .regie-shell,
  .organizer-shell { width: calc(100% - clamp(80px, 7vw, 360px)); max-width: none; }

  .portal-body #portal { grid-template-columns: minmax(0, 1.65fr) minmax(390px, .68fr); }
  .portal-body .dashboard-stats article { min-height: clamp(150px, 12vw, 240px); padding: clamp(20px, 2vw, 34px); }
  .portal-body .dashboard-stats strong { font-size: clamp(2.4rem, 3.2vw, 5rem); }

  .regie-command-deck { grid-template-columns: minmax(290px, .76fr) minmax(510px, 1.48fr) minmax(390px, .88fr); }
  .command-deck-heading h2 { font-size: clamp(1.35rem, 1.45vw, 2.25rem); }
  .command-deck-metrics article { min-height: clamp(94px, 8vw, 150px); padding: clamp(12px, 1.15vw, 22px); }
  .command-deck-metrics strong { font-size: clamp(1.05rem, 1.2vw, 1.75rem); }
  .command-deck-actions > * { min-height: clamp(44px, 3vw, 64px); font-size: clamp(.78rem, .85vw, 1.1rem); }

  .wall-shell { padding: clamp(42px, 4vw, 180px); }
  .wall-header,
  .wall-layout { width: 100%; max-width: none; }
  .wall-header { margin-bottom: clamp(36px, 3.4vw, 120px); }
  .wall-header h1 { max-width: 19ch; font-size: clamp(4rem, 5.4vw, 10rem); }
  .wall-meta { max-width: 560px; font-size: clamp(.95rem, 1vw, 1.5rem); }
  .wall-layout { grid-template-columns: minmax(320px, .22fr) minmax(0, 1fr); gap: clamp(34px, 4.4vw, 160px); }
  .leaderboard-panel { padding: clamp(22px, 2vw, 40px); border-radius: clamp(22px, 1.7vw, 38px); }
  .leaderboard-panel h2 { font-size: clamp(1.55rem, 2.1vw, 3rem); }
  .photo-fountain { min-height: clamp(900px, 74vh, 2800px); }
  .wall-photo.wall-stage-card { width: clamp(230px, 15vw, 780px); }
  .wall-photo.wall-stage-card img { max-height: min(54vh, 1050px); }
  .wall-photo.wall-stage-card figcaption { min-height: clamp(60px, 4vw, 102px); padding: clamp(12px, 1vw, 22px) clamp(14px, 1.2vw, 26px); font-size: clamp(.82rem, .9vw, 1.35rem); }
  .wall-join-card { transform: scale(clamp(1, 1.05vw, 1.45)); transform-origin: left bottom; }
  .wall-pulse-dock { max-width: min(760px, calc(100vw - 72px)); padding: clamp(14px, 1.2vw, 24px); }
  .wall-pulse-actions button { width: clamp(43px, 3.1vw, 68px); height: clamp(43px, 3.1vw, 68px); font-size: clamp(1.15rem, 1.45vw, 2rem); }
}

@media (max-width: 1100px) {
  .portal-shell,
  .regie-shell,
  .organizer-shell { width: min(calc(100% - 40px), 1500px); }
  .regie-command-deck { grid-template-columns: minmax(0, 1fr) auto; }
  .command-deck-metrics { grid-column: 1 / -1; grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .command-deck-actions { justify-content: flex-end; }
}

@media (max-width: 700px) {
  .portal-shell,
  .regie-shell,
  .organizer-shell { width: calc(100% - 28px); }
  .portal-body #portal { grid-template-columns: 1fr; }
  .portal-body .portal-welcome,
  .portal-body .dashboard-stats,
  .portal-body .portal-next-action,
  .portal-body #portal > .event-create-panel,
  .portal-body #portal > .private-access,
  .portal-body #portal > .event-list-panel,
  .portal-body #privacy-admin-panel { grid-column: auto; }
  .assistant-panel { position: relative; top: auto; max-height: none; overflow: visible; }
  .regie-command-deck { position: static; grid-template-columns: 1fr; }
  .command-deck-metrics { grid-column: auto; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .command-deck-actions { justify-content: stretch; }
  .command-deck-actions > * { flex-basis: 150px; }
}
