: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; }

.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: 58px 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-orb { position: relative; width: 58px; height: 58px; align-self: center; border-radius: 50%; background: radial-gradient(circle at 35% 32%, #ffe7f3, #f09dcc 24%, #83536f 58%, #372839 70%); box-shadow: 0 0 0 7px rgb(241 170 206 / 10%), 0 0 26px rgb(241 170 206 / 28%); }
.processing-orb::before, .processing-orb::after { position: absolute; border-radius: inherit; content: ''; }
.processing-orb::before { inset: -7px; border: 2px solid transparent; border-top-color: #ffe2b5; border-right-color: #f4afd2; animation: processing-spin 1.15s linear infinite; }
.processing-orb::after { inset: 15px; background: rgb(255 255 255 / 58%); filter: blur(2px); animation: processing-pulse 1.15s ease-in-out infinite; }
.processing-orb[data-stage="published"] { background: radial-gradient(circle at 35% 32%, #efffe9, #8ed9a0 26%, #4b9270 60%, #29463b 72%); box-shadow: 0 0 0 7px rgb(120 186 144 / 12%), 0 0 26px rgb(120 186 144 / 35%); }
.processing-orb[data-stage="published"]::before { border-color: #c9f2c9; animation: none; }
.processing-orb[data-stage="private"] { background: radial-gradient(circle at 35% 32%, #f4edf7, #b5a4c5 27%, #6f627c 60%, #342f3a 72%); box-shadow: none; }
.processing-orb[data-stage="private"]::before, .processing-orb[data-stage="private"]::after { animation: none; }
.processing-orb[data-stage="review"] { background: radial-gradient(circle at 35% 32%, #fff0d9, #f2c47b 27%, #9b6c50 60%, #463637 72%); }
.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; }
@keyframes processing-spin { to { transform: rotate(360deg); } }
@keyframes processing-pulse { 50% { opacity: .35; transform: scale(.78); } }
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; }
.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; }
.regie-code { width: fit-content; max-width: 100%; margin: 12px 0 0; padding: 10px 13px; border: 1px dashed #b6d1a9; border-radius: 10px; color: #fbffe8; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: 1rem; font-weight: 800; letter-spacing: .04em; overflow-wrap: anywhere; }
.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; }
.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%); }
.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; }
.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; }
.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; 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-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-vignette { position: absolute; z-index: -2; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.living-light-canvas { opacity: .78; mix-blend-mode: screen; }
.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; }
.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; }
.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); }
.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, .pulse-layer { position: absolute; z-index: 5; inset: 0; pointer-events: none; overflow: hidden; }
.arrival-layer { display: grid; place-items: center; }
.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%; width: 24vmin; aspect-ratio: 1; 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; }
.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 wall-bloom { 0% { opacity: 0; } 16% { opacity: 1; } 100% { opacity: 0; } }
.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 { 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; }
  .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 { display: none; }
  .wall-photo.is-new, .wall-arrival, .pulse-wave, .wall-shell.is-blooming::before { 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; }

.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%)); }
.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 .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-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); }

@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; }
  .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; }
}

/* 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 { 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; }
.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: 240px; }
.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-orb { position: relative; display: grid; width: 43px; height: 43px; flex: 0 0 auto; place-items: center; border: 1px solid rgb(255 232 196 / 45%); border-radius: 50%; background: radial-gradient(circle at 35% 30%, #fff8dc, #ffcf97 28%, #e88cac 62%, #6f496c); box-shadow: 0 0 0 6px rgb(255 195 137 / 9%), 0 0 25px rgb(242 147 183 / 27%); }
.assistant-orb::before { position: absolute; inset: -6px; border: 1px solid rgb(255 216 173 / 32%); border-radius: inherit; content: ''; animation: assistant-orbit 3.7s linear infinite; }
.assistant-orb i { width: 12px; height: 12px; border-radius: 50%; background: rgb(255 255 255 / 77%); filter: blur(1px); }
.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-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 (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 > .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; }
  .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; }
}
@media (prefers-reduced-motion: reduce) {
  .assistant-orb::before { animation: none; }
}
