/* Eladation final visual language: petal pink, warm ivory and solid shining gold. */
:root {
  --cream: #fff9f3;
  --cream-deep: #f4e7df;
  --white: #fffefd;
  --gold: #bc8728;
  --gold-deep: #8c5f16;
  --gold-bright: #d5a640;
  --gold-light: #f0d28a;
  --gold-pale: #fbf1d8;
  --gold-metal: #bc8728;
  --blush: #e9bdca;
  --blush-light: #fbedf1;
  --rose: #ce829c;
  --deep-rose: #7c3e58;
  --deep-rose-2: #452435;
  --ink: #302128;
  --ink-soft: #6f5d64;
  --line: rgba(124, 62, 88, .14);
  --shadow: 0 24px 70px rgba(77, 38, 54, .11), 0 2px 10px rgba(117, 72, 90, .055);
  --shadow-soft: 0 14px 40px rgba(77, 38, 54, .07);
}

body { background-color: var(--cream); }
body::before {
  opacity: .5;
  background-image: radial-gradient(circle at 12% 18%, rgba(206,130,156,.17) 0 1.4px, transparent 2px), radial-gradient(circle at 78% 32%, rgba(188,135,40,.24) 0 1.2px, transparent 1.9px), radial-gradient(circle at 36% 82%, rgba(244,190,207,.2) 0 1.5px, transparent 2.1px);
  background-size: 155px 185px, 217px 248px, 187px 218px;
}

/* Home threshold: a quiet, editorial welcome before the landing page appears. */
.splash-active { overflow: hidden; }
.site-splash {
  position: fixed;
  inset: 0;
  z-index: 2000;
  display: grid;
  place-items: center;
  overflow: hidden;
  color: #fffaf6;
  background:
    radial-gradient(circle at 50% 42%, rgba(197, 126, 148, .2), transparent 29rem),
    radial-gradient(circle at 15% 88%, rgba(213, 166, 64, .13), transparent 24rem),
    linear-gradient(135deg, #321824 0%, #51283c 52%, #29151f 100%);
  isolation: isolate;
  transition: opacity .8s ease, visibility .8s ease;
}
.site-splash::before,
.site-splash::after {
  position: absolute;
  content: "";
  width: min(72vw, 46rem);
  aspect-ratio: 1;
  border: 1px solid rgba(240, 210, 138, .22);
  border-radius: 50%;
  pointer-events: none;
}
.site-splash::before { transform: rotate(28deg) scaleY(.46); box-shadow: 0 0 0 1.5rem rgba(240, 210, 138, .035), 0 0 0 3rem rgba(240, 210, 138, .025); }
.site-splash::after { transform: rotate(-28deg) scaleY(.46); border-color: rgba(255, 255, 255, .12); }
.site-splash.is-closing { opacity: 0; visibility: hidden; }
.site-splash-content {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  flex-direction: column;
  text-align: center;
  animation: splashRise 1.2s cubic-bezier(.2,.75,.25,1) both;
}
.site-splash-mark {
  display: grid;
  place-items: center;
  width: 4.5rem;
  height: 4.5rem;
  margin-bottom: 1.4rem;
  border: 1px solid rgba(240, 210, 138, .8);
  border-radius: 50%;
  color: #f0d28a;
  font: 600 2.15rem/.9 "Cormorant Garamond", Georgia, serif;
  box-shadow: 0 0 0 7px rgba(240, 210, 138, .07), 0 0 35px rgba(240, 210, 138, .2);
}
.site-splash-kicker {
  margin: 0 0 .8rem;
  color: #f0d28a;
  font-size: .67rem;
  font-weight: 700;
  letter-spacing: .28em;
  text-transform: uppercase;
}
.site-splash h1 {
  margin: 0;
  color: #fffaf6;
  font: 600 clamp(4rem, 10vw, 8rem)/.9 "Cormorant Garamond", Georgia, serif;
  letter-spacing: .01em;
  text-shadow: 0 2px 24px rgba(0, 0, 0, .18);
}
.site-splash-rule {
  width: 5.2rem;
  height: 1px;
  margin: 1.45rem 0 1rem;
  background: linear-gradient(90deg, transparent, #f0d28a, transparent);
}
.site-splash-tagline {
  margin: 0;
  color: rgba(255, 250, 246, .78);
  font: italic 1.15rem/1.4 var(--serif);
  letter-spacing: .02em;
}
.site-splash-enter {
  margin-top: 2.8rem;
  padding: .65rem .15rem;
  border: 0;
  border-bottom: 1px solid rgba(240, 210, 138, .72);
  color: #f0d28a;
  background: transparent;
  font-size: .76rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  transition: color .2s ease, border-color .2s ease;
}
.site-splash-enter span { display: inline-block; margin-left: .45rem; font-size: 1.1rem; transition: transform .2s ease; }
.site-splash-enter:hover,
.site-splash-enter:focus-visible { color: #fffaf6; border-color: #fffaf6; }
.site-splash-enter:hover span,
.site-splash-enter:focus-visible span { transform: translateX(4px); }
.site-splash-status {
  position: absolute;
  right: 2rem;
  bottom: 1.8rem;
  margin: 0;
  color: rgba(255, 250, 246, .5);
  font-size: .68rem;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.site-splash-status span { color: #f0d28a; }
.site-splash-orbit {
  position: absolute;
  width: .45rem;
  height: .45rem;
  border-radius: 50%;
  background: #f0d28a;
  box-shadow: 0 0 14px 3px rgba(240, 210, 138, .6);
  animation: splashOrbit 9s linear infinite;
}
.site-splash-orbit-one { top: 22%; left: 28%; }
.site-splash-orbit-two { right: 26%; bottom: 22%; width: .3rem; height: .3rem; animation-delay: -4s; animation-direction: reverse; }
.site-splash-stars i { position: absolute; width: 3px; height: 3px; border-radius: 50%; background: #fff4cf; box-shadow: 0 0 10px 2px rgba(240, 210, 138, .65); animation: splashTwinkle 3.2s ease-in-out infinite; }
.site-splash-stars i:nth-child(1) { top: 19%; left: 17%; }
.site-splash-stars i:nth-child(2) { top: 31%; right: 15%; animation-delay: -1.2s; }
.site-splash-stars i:nth-child(3) { bottom: 24%; left: 19%; animation-delay: -.5s; }
.site-splash-stars i:nth-child(4) { right: 20%; bottom: 14%; animation-delay: -2.1s; }
.site-splash-stars i:nth-child(5) { top: 15%; left: 48%; animation-delay: -1.7s; }
@keyframes splashRise { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: translateY(0); } }
@keyframes splashOrbit { to { transform: rotate(360deg) translateX(11rem) rotate(-360deg); } }
@keyframes splashTwinkle { 0%, 100% { opacity: .25; transform: scale(.7); } 50% { opacity: 1; transform: scale(1.4); } }

/* Gold is deliberately a solid colour. Shine comes from light and motion. */
.btn-primary,
.admin-page .btn-primary,
.member-page .btn-primary,
.gold-button,
.owner-action-primary {
  color: #fffdf9 !important;
  background: var(--gold) !important;
  border-color: var(--gold-deep) !important;
  box-shadow: 0 10px 26px rgba(140,95,22,.25), inset 0 1px rgba(255,255,255,.45), inset 0 -1px rgba(90,55,8,.2) !important;
  text-shadow: 0 1px rgba(71,42,6,.28);
}
.btn-primary:hover,
.btn-primary:focus-visible,
.admin-page .btn-primary:hover,
.admin-page .btn-primary:focus-visible,
.member-page .btn-primary:hover,
.member-page .btn-primary:focus-visible {
  color: #fff !important;
  background: var(--gold-deep) !important;
  box-shadow: 0 13px 30px rgba(140,95,22,.31), 0 0 0 4px rgba(240,210,138,.2) !important;
}
.btn-primary::after,
.admin-page .btn-primary::after,
.member-page .btn-primary::after {
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.68), transparent) !important;
}
.btn-secondary,
.btn-outline-primary,
.admin-page .btn-secondary,
.member-page .btn-outline-primary {
  color: var(--deep-rose) !important;
  background: #fffdfa !important;
  border-color: rgba(188,135,40,.58) !important;
  box-shadow: 0 6px 18px rgba(77,38,54,.055) !important;
}
.btn-secondary:hover,
.btn-outline-primary:hover,
.admin-page .btn-secondary:hover,
.member-page .btn-outline-primary:hover { background: var(--blush-light) !important; color: var(--deep-rose-2) !important; }

.site-header { background: rgba(255,250,247,.94); border-color: rgba(206,130,156,.22); }
.site-header::after { height: 1px; background: var(--gold); box-shadow: 0 0 10px rgba(213,166,64,.35); }
.brand-wordmark { color: var(--gold) !important; }
.brand-wordmark::after { background: var(--gold) !important; }
.eyebrow { color: var(--deep-rose); }
.eyebrow::before { background: var(--gold); box-shadow: 0 0 8px rgba(213,166,64,.35); }
.hero-copy h1 em,
.quote-mark {
  color: var(--gold) !important;
  background: none !important;
  -webkit-text-fill-color: currentColor;
  text-shadow: 0 0 12px rgba(213,166,64,.22), 0 1px #fff4cc;
}
.gilded-divider { background: #fff5e6 !important; }
.nav-link.active, .nav-link:hover { color: var(--deep-rose) !important; }

.page-hero,
.soft-section,
.portal-page,
.auth-page { background-color: var(--blush-light); }
.page-hero::after { background-color: rgba(123,62,88,.23); }
.value-icon,
.member-stat-icon,
.owner-metric-icon { background: #fffaf5 !important; border-color: rgba(188,135,40,.38) !important; box-shadow: 0 0 0 5px rgba(233,189,202,.2), 0 8px 20px rgba(140,95,22,.1) !important; }
.event-card,
.story-card,
.form-card,
.booking-card,
.member-panel,
.admin-panel,
.data-table-wrap { border-color: rgba(206,130,156,.24) !important; box-shadow: var(--shadow-soft) !important; }
.status-confirmed,
.status-active,
.status-approved,
.status-attended { background: #e9f3ec !important; color: #346247 !important; }
.status-pending,
.status-pending-payment,
.status-pending_payment,
.status-submitted,
.status-under-review,
.status-under_review,
.status-waiting,
.status-offered,
.status-in_progress { background: var(--gold-pale) !important; color: #765316 !important; }
.status-cancelled,
.status-rejected,
.status-revoked,
.status-expired,
.status-declined,
.status-blocked,
.status-disconnected,
.status-left { background: #f7e4e9 !important; color: #873f58 !important; }

/* A balanced editorial sign-in: compact, centred and supported by real event photography. */
.auth-page {
  position: relative;
  isolation: isolate;
  min-height: calc(100vh - 78px);
  display: grid;
  grid-template-columns: minmax(0, 1fr) !important;
  place-items: center;
  overflow: hidden;
  padding: clamp(2.25rem, 5vh, 4.75rem) clamp(1rem, 4vw, 3rem);
  background:
    radial-gradient(circle at 12% 18%, rgba(255,255,255,.96) 0 2px, transparent 3px),
    radial-gradient(circle at 87% 23%, rgba(213,166,64,.58) 0 1.6px, transparent 2.6px),
    radial-gradient(circle at 76% 82%, rgba(255,255,255,.92) 0 1.8px, transparent 2.8px),
    radial-gradient(circle at 22% 88%, rgba(206,130,156,.42) 0 1.5px, transparent 2.5px),
    #fbedf1;
  background-size: 170px 190px, 230px 250px, 190px 210px, 210px 240px, auto;
}
.auth-page::before,
.auth-page::after { content: ""; position: absolute; z-index: -1; pointer-events: none; border-radius: 50%; }
.auth-page::before { width: 390px; height: 390px; left: -160px; bottom: -210px; border: 1px solid rgba(188,135,40,.22); box-shadow: 0 0 0 34px rgba(255,255,255,.22), 0 0 0 68px rgba(206,130,156,.08); }
.auth-page::after { width: 440px; height: 440px; right: -220px; top: -230px; background: rgba(255,255,255,.3); border: 1px solid rgba(206,130,156,.16); }
.auth-composition {
  position: relative;
  width: min(1160px, 100%);
  min-height: 620px;
  display: grid;
  grid-template-columns: minmax(360px, .88fr) minmax(440px, 1.12fr);
  overflow: hidden;
  border: 1px solid rgba(206,130,156,.3);
  border-radius: 30px;
  background: rgba(255,254,252,.96);
  box-shadow: 0 34px 90px rgba(77,38,54,.15), 0 0 0 1px rgba(255,255,255,.7) inset;
}
.auth-composition::after { content: "✦"; position: absolute; z-index: 3; top: 20px; right: 24px; color: var(--gold-bright); font-size: 1rem; text-shadow: 0 0 8px white, 0 0 15px rgba(213,166,64,.72); animation: coutureTwinkle 3.4s ease-in-out infinite; pointer-events: none; }
.auth-composition .auth-visual { min-height: 620px; height: auto; border-radius: 0; }
.auth-composition .auth-visual img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 31%; }
.auth-composition .auth-visual::after { background: linear-gradient(0deg, rgba(54,27,40,.9) 0%, rgba(69,36,53,.52) 38%, rgba(69,36,53,.04) 72%); }
.auth-composition .auth-visual-copy { left: clamp(1.7rem, 4vw, 3rem); right: clamp(1.7rem, 4vw, 3rem); bottom: clamp(1.8rem, 5vw, 3.4rem); }
.auth-composition .auth-visual blockquote { max-width: 390px; margin-bottom: 0; font-size: clamp(1.75rem, 2.3vw, 2.45rem); line-height: 1.22; text-wrap: balance; }
.auth-composition .auth-panel { padding: clamp(2.5rem, 4.2vw, 4.25rem) clamp(2.5rem, 5vw, 5rem); }
.auth-composition .auth-card { max-width: 500px; padding: 0; border: 0 !important; background: transparent; box-shadow: none !important; overflow: visible; }
.auth-composition .auth-card::before,
.auth-composition .auth-card::after { display: none; }
.auth-composition .auth-card h1 { margin: .65rem 0 .65rem; color: var(--deep-rose-2); font-size: clamp(3.25rem, 4.4vw, 4.6rem); line-height: .98; letter-spacing: -.045em; white-space: nowrap; }
.auth-composition .auth-intro { max-width: 410px; margin: 0; color: #66545c; line-height: 1.7; }
.auth-composition .auth-card form { margin-top: 1.45rem; }
.auth-composition .form-field { margin-bottom: 1.05rem; }
.auth-composition .form-label { justify-content: flex-start; gap: .55rem; }
.auth-composition .field-requirement { padding: 0; border: 0; background: transparent; font-size: .64rem !important; }
.auth-composition .field-required { color: #a23f68; }
.auth-composition .field-optional { color: #77676d; }
.auth-composition .form-control { min-height: 56px; border-color: rgba(124,62,88,.2); border-radius: 12px; background: #fffaf7; box-shadow: 0 1px 0 rgba(255,255,255,.9) inset; }
.auth-composition .form-control:hover { border-color: rgba(188,135,40,.5); }
.auth-composition .form-control:focus { border-color: var(--gold); background: #fffefd; box-shadow: 0 0 0 .2rem rgba(188,135,40,.13), 0 10px 24px rgba(77,38,54,.06); }
.auth-composition input.form-control:-webkit-autofill,
.auth-composition input.form-control:-webkit-autofill:hover,
.auth-composition input.form-control:-webkit-autofill:focus { -webkit-text-fill-color: var(--ink); box-shadow: 0 0 0 1000px #fffaf7 inset, 0 0 0 .2rem rgba(188,135,40,.1); transition: background-color 9999s ease-out; }
.password-input { position: relative; }
.password-input .form-control { padding-right: 5rem; }
.password-toggle { position: absolute; top: 50%; right: .65rem; transform: translateY(-50%); min-width: 3.6rem; padding: .42rem .65rem; border: 0; border-radius: 8px; color: var(--deep-rose); background: #f8e8ed; font: 700 .76rem var(--sans); }
.password-toggle:hover { color: var(--deep-rose-2); background: #f3d9e2; }
.password-toggle:focus-visible { outline: 2px solid var(--gold); outline-offset: 2px; }
.auth-form-row { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin: .05rem 0 1.2rem; font-size: .86rem; }
.auth-form-row .consent-field { margin: 0; }
.auth-form-row .consent-field > span { display: flex; align-items: center; flex-wrap: wrap; gap: .35rem; margin-top: -.08rem; white-space: nowrap; }
.auth-form-row a { flex: 0 0 auto; font-weight: 700; }
.auth-composition [data-auth-submit] { min-height: 54px; }
.auth-composition [data-auth-submit]:disabled { cursor: wait; opacity: .76; }
.auth-composition .form-footnote { margin-top: 1.1rem; }
.recovery-shell { min-height: calc(100vh - 78px); display: grid; place-items: center; padding: 5rem 1.5rem; background: radial-gradient(circle at 20% 20%, rgba(233,189,202,.4), transparent 34%), var(--cream); }
.security-page .recovery-shell { display: block; padding: clamp(2.5rem,5vw,5rem) 2rem; }
.security-page .recovery-card { width: min(1180px,100%); max-width: 1180px; margin: 0 auto; padding: clamp(2rem,4vw,4rem); background: #fffdfa; }
.recovery-card { width: min(900px,100%); padding: clamp(2rem,5vw,4rem); background: #fffdfa; }
.security-heading { max-width: 680px; margin-bottom: 2rem; }
.security-heading h1 { margin-bottom: .65rem; }
.security-heading p, .security-panel > p { color: var(--ink-soft); }
.security-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: clamp(1.5rem,4vw,3.5rem); }
.security-panel { min-width: 0; padding: clamp(1.25rem,3vw,2rem); border: 1px solid var(--line); border-radius: 18px; background: rgba(255,255,255,.62); }
.security-panel h2 { margin: 0 0 .65rem; }
.security-panel hr { display: none; }
.security-panel form + form { margin-top: 1rem; }
.security-qr { display: block; margin: 1rem auto; padding: .5rem; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.security-panel ul { columns: 2; padding-left: 1.2rem; }
@media (max-width: 700px) {
  .security-grid { grid-template-columns: 1fr; }
  .security-panel ul { columns: 1; }
}

/* A photo-led testimonial landing state with no fabricated or placeholder story. */
.testimonial-moments { position: relative; overflow: hidden; background: #fffdfb; }
.testimonial-moments::before { content: ''; position: absolute; width: 260px; height: 260px; right: -90px; top: 48px; border: 1px solid rgba(188,135,40,.22); border-radius: 50%; box-shadow: 0 0 0 24px rgba(238,192,207,.1), 0 0 0 48px rgba(188,135,40,.045); pointer-events: none; }
.testimonial-moments-grid { position: relative; display: grid; grid-template-columns: minmax(280px,.72fr) minmax(520px,1.28fr); gap: clamp(3rem,6vw,7rem); align-items: center; }
.testimonial-moments-copy { max-width: 540px; padding-left: clamp(0rem,2vw,2rem); }
.testimonial-moments-copy h2 { margin: .7rem 0 1.3rem; color: var(--deep-rose-2); font-size: clamp(3.2rem,5.7vw,6rem); line-height: .91; }
.testimonial-moments-copy p { max-width: 500px; color: var(--ink-soft); font-size: 1rem; line-height: 1.8; }
.testimonial-moments-actions { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 1.8rem; }
.testimonial-photo-story { display: grid; grid-template-columns: minmax(0,1.45fr) minmax(150px,.7fr); grid-template-rows: repeat(2,235px); gap: 1rem; }
.testimonial-photo-story figure { position: relative; min-width: 0; margin: 0; overflow: hidden; border: 1px solid rgba(188,135,40,.36); border-radius: 22px; background: var(--blush-light); box-shadow: 0 24px 60px rgba(77,38,54,.12); }
.testimonial-photo-story figure::after { content: ''; position: absolute; inset: 9px; border: 1px solid rgba(255,255,255,.62); border-radius: 15px; pointer-events: none; }
.testimonial-photo-story .testimonial-photo-main { grid-row: 1 / 3; }
.testimonial-photo-story img { width: 100%; height: 100%; object-fit: cover; transition: transform .55s ease; }
.testimonial-photo-story figure:hover img { transform: scale(1.025); }
.testimonial-photo-main img { object-position: 48% 50%; }

/* Owner and member workspaces share the same generous rhythm. */
.admin-page .admin-sidebar { background-color: #fff9f4; border-color: rgba(206,130,156,.2); }
.admin-page .admin-topbar { background: rgba(255,253,250,.96); border-color: rgba(206,130,156,.2); }
.admin-page .admin-content { max-width: 1640px; padding: clamp(1.2rem,2.4vw,2.5rem); }
.admin-page .admin-sidebar nav a.active { background: var(--blush-light) !important; color: var(--deep-rose) !important; border-color: rgba(188,135,40,.32) !important; }
.member-page .member-rail { background-color: #fff9f4; }
.member-page .member-workspace { background: #fdf7f3; }
.member-membership-badge,
.member-category-tag,
.member-interest-tags span { background: var(--blush-light) !important; color: var(--deep-rose) !important; border-color: rgba(206,130,156,.28) !important; }
.owner-report-metrics { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 1rem; margin-bottom: 1.5rem; }
.owner-report-metrics > div { min-height: 122px; display: flex; flex-direction: column; justify-content: center; padding: 1.25rem 1.4rem; background: #fffdfa; border: 1px solid rgba(206,130,156,.24); border-radius: 16px; box-shadow: var(--shadow-soft); }
.owner-report-metrics span { color: var(--ink-soft); font-size: .78rem; text-transform: uppercase; letter-spacing: .08em; }
.owner-report-metrics strong { margin-top: .35rem; color: var(--deep-rose-2); font: 600 2rem/1.1 var(--serif); }
.owner-report-metrics small { font: 500 .85rem var(--sans); }
.feedback-review-grid { display: grid; gap: 1.25rem; }
.feedback-review { display: grid; grid-template-columns: 160px minmax(0,1fr); gap: 1.6rem; }
.feedback-review h2 { margin: .55rem 0 1.25rem; }
.feedback-review h3 { margin: 1rem 0 .25rem; font-size: 1.05rem; }
.feedback-score { display: grid; grid-template-columns: auto 1fr; align-content: start; gap: .4rem .7rem; padding: 1.1rem; border-radius: 14px; background: var(--blush-light); }
.feedback-score span { color: var(--deep-rose); font: 600 1.55rem var(--serif); }
.feedback-score small { align-self: center; color: var(--ink-soft); }
.action-confirmation { max-width: 760px; padding: clamp(1.5rem,4vw,2.7rem) !important; }
.danger-link { color: #9a4059 !important; }
.registration-manage-grid { display: grid; grid-template-columns: minmax(250px,.65fr) minmax(420px,1.35fr); gap: clamp(2rem,5vw,5rem); align-items: start; }
.registration-manage-actions { display: grid; gap: 1.4rem; }
.cancellation-card { border-color: rgba(154,64,89,.2) !important; }

/* Working camera check-in. */
.camera-frame { position: relative; overflow: hidden; background: #241b20; }
.camera-frame video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity .2s ease; }
.camera-frame video.is-live { opacity: 1; }
.camera-placeholder { position: relative; z-index: 1; display: grid; justify-items: center; gap: .35rem; text-align: center; color: #fff; }
.camera-placeholder[hidden] { display: none; }
.camera-placeholder span { color: var(--gold-light); font-size: 3.2rem; }
.camera-placeholder small { color: #e8dce0; }
.scan-corners { z-index: 2; pointer-events: none; }
.scanner-controls { display: flex; flex-wrap: wrap; gap: .7rem; margin: 1rem 0 .6rem; }
.scanner-file { position: relative; overflow: hidden; cursor: pointer; }
.scanner-file input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.scanner-status { min-height: 1.5rem; margin: 0 0 1rem; color: var(--ink-soft); font-size: .82rem; }
.manual-ticket { border-top: 1px solid var(--line); padding-top: 1rem; }
.manual-ticket summary { cursor: pointer; color: var(--deep-rose); font-weight: 700; }
.manual-ticket form { margin-top: 1rem; }
.result-ready .result-icon { background: var(--gold-pale); color: var(--gold-deep); }
.result-card form { display: inline-block; margin-right: .6rem; }

/* More visible, refined glitter in the blush/ivory spaces. */
.public-reference-page .glitter-field i,
.member-glitter i,
.owner-glints i { background: var(--gold-light) !important; box-shadow: 0 0 8px #fff, 0 0 16px rgba(213,166,64,.85) !important; opacity: .9 !important; }
.public-reference-page .glitter-field b { color: var(--gold-bright) !important; text-shadow: 0 0 8px #fff, 0 0 16px rgba(213,166,64,.72) !important; }

/* Spacious, high-legibility finishing pass. */
body {
  color: #33232a;
  background: #fff5f7;
  font-size: 16.5px;
  font-weight: 500;
  line-height: 1.7;
}
body::before {
  opacity: .88;
  background-image:
    radial-gradient(circle at 12% 18%, rgba(225,151,177,.3) 0 1.5px, transparent 2.2px),
    radial-gradient(circle at 78% 32%, rgba(213,166,64,.38) 0 1.4px, transparent 2.1px),
    radial-gradient(circle at 36% 82%, rgba(255,255,255,.9) 0 1.8px, transparent 2.5px),
    radial-gradient(circle at 92% 76%, rgba(213,166,64,.3) 0 1.2px, transparent 2px),
    radial-gradient(circle at 55% 8%, rgba(233,171,193,.28) 0 1.3px, transparent 2px);
  background-size: 132px 166px, 181px 217px, 159px 194px, 229px 251px, 197px 223px;
  animation: ambientShimmer 9s ease-in-out infinite alternate;
}
main { background-image: radial-gradient(circle at 8% 22%, rgba(240,188,207,.13), transparent 22%), radial-gradient(circle at 94% 62%, rgba(226,156,181,.12), transparent 24%); }
p, li, dt, dd, label, input, select, textarea, button, td, th { font-weight: 500; }
small { font-weight: 600; }
h1, h2, h3, h4 { font-weight: 600; letter-spacing: -.025em; }
.eyebrow { font-size: .74rem !important; font-weight: 700; line-height: 1.5; }
.btn, .btn-sm { font-size: .94rem; font-weight: 700 !important; letter-spacing: .012em; }
.btn-sm { min-height: 42px; padding: .58rem 1.05rem; font-size: .88rem; }
.form-control, .form-select { min-height: 50px; padding: .75rem .9rem; font-size: .96rem; font-weight: 500; }
textarea.form-control { min-height: 132px; }
.form-label { font-size: .82rem !important; font-weight: 700; }
.form-hint, .form-error, .form-footnote, .secure-note, .booking-help { font-size: .8rem !important; }
.section-pad { padding: clamp(5rem, 7vw, 7.5rem) 0; }
.soft-section { background: #fdebf1 !important; }
.page-hero { background-color: #f9dfe8 !important; }
.page-hero.compact { min-height: 440px; }
.page-hero-copy p { font-size: 1.03rem; line-height: 1.75; }
.event-grid, .story-grid, .principles-grid, .connect-grid { gap: clamp(1.25rem, 2vw, 2rem); }
.event-card, .story-card, .form-card, .booking-card, .side-card, .registration-card { border-radius: 20px; }
.story-card, .form-card, .registration-card { padding: clamp(1.6rem, 3vw, 2.5rem); }
.site-header .nav-link { font-size: .9rem !important; font-weight: 700; }
.site-footer { background: #fff0f4; }
.footer-main > div:first-child p, .footer-main > div:not(:first-child) a, .footer-bottom { font-size: .82rem; font-weight: 600; }

/* Public storytelling stays editorial without compressing cards into narrow columns. */
.reference-experiences { padding: 5rem 0 3.5rem; background: #fff8fa; }
.reference-moments { padding: 3.5rem 0 5rem; background: #fffdfc; }
.reference-hero-copy { padding-block: 4rem; }
.hero-description { font-size: 1rem; line-height: 1.75; }
.hero-beliefs span, .connection-intro p, .connection-band-grid article p { font-size: .86rem; font-weight: 500; }
.connection-band { padding: 3rem 0; background: #fff8fa; }
.connection-band-grid > * { padding-inline: 1.9rem; }
.curated-layout { gap: 2.25rem; }
.curated-intro p, .reference-event-copy p, .reference-story blockquote, .reference-join p { font-size: .87rem; line-height: 1.7; }
.reference-event-grid { gap: 1.35rem; }
.reference-event-copy { padding: 1.35rem; min-height: 250px; }
.reference-event-copy h3 { font-size: 1.35rem; }
.moment-strip, .reference-story-grid { gap: 1rem; }
.reference-story, .purpose-card { min-height: 168px; padding: 1.35rem 1.4rem 1.35rem 3.4rem; }
.reference-join { padding: 3.5rem 0; }
.gold-glitter i { opacity: 1; box-shadow: 0 0 7px 2px #fff7d3, 0 0 20px 5px rgba(235,184,67,.72), 18px 28px 0 -1px #d4a240, -24px 43px 0 -1px #f4d78d; }
.gold-glitter b { font-size: 1.8rem; color: #fff7ce; text-shadow: 0 0 5px #fff, 0 0 13px #efc566, 0 0 26px rgba(210,151,35,.9); }

/* The homepage lead image now tells a broader story through an accessible carousel. */
.home-hero-carousel:focus-visible { outline: 3px solid #fff4ce; outline-offset: -5px; }
.home-carousel-track, .home-carousel-slide { position: absolute; inset: 0; }
.home-carousel-track { z-index: 0; }
.reference-hero-inner { pointer-events: none; }
.reference-hero-copy, .hero-purpose { pointer-events: auto; }
.home-carousel-slide { margin: 0; opacity: 0; visibility: hidden; transition: opacity .8s ease, visibility .8s ease; }
.home-carousel-slide.is-active { opacity: 1; visibility: visible; }
.home-carousel-slide.focus-upper img { object-position: 50% 28%; }
.home-carousel-slide.focus-center img { object-position: 50% 48%; }
.home-hero-carousel::after { z-index: 1; pointer-events: none; }
.home-carousel-controls { position: absolute; z-index: 3; right: 270px; bottom: 1.65rem; display: grid; grid-template-columns: 36px auto 36px; align-items: center; gap: .4rem; color: #6b4630; opacity: .55; transition: opacity .25s ease; }
.home-carousel-controls:hover, .home-carousel-controls:focus-within { opacity: .96; }
.home-carousel-arrow, .home-carousel-toggle, .home-carousel-dots button { border: 0; color: inherit; background: transparent; }
.home-carousel-arrow { display: grid; width: 36px; height: 36px; padding: 0; place-items: center; border: 1px solid rgba(195,138,54,.38); border-radius: 50%; color: #70451f; background: rgba(255,252,245,.66); box-shadow: 0 4px 14px rgba(48,28,16,.08); backdrop-filter: blur(8px); transition: color .2s ease, background .2s ease, border-color .2s ease, transform .2s ease; }
.home-carousel-arrow svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 1.55; stroke-linecap: round; stroke-linejoin: round; }
.home-carousel-arrow:hover { color: #fff; border-color: #c99237; background: #ad741d; transform: translateY(-2px); }
.home-carousel-arrow:focus-visible, .home-carousel-toggle:focus-visible, .home-carousel-dots button:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
.home-carousel-progress { display: flex; min-height: 36px; align-items: center; gap: .5rem; padding: .25rem .35rem .25rem .65rem; border: 1px solid rgba(195,138,54,.3); border-radius: 999px; background: rgba(255,252,246,.64); box-shadow: 0 4px 14px rgba(48,28,16,.07); backdrop-filter: blur(8px); }
.home-carousel-count { display: flex; min-width: 50px; align-items: center; gap: .32rem; color: #8c642d; font: 600 .58rem/1 'DM Sans',sans-serif; letter-spacing: .06em; }
.home-carousel-count strong { color: #5e3825; font-size: .67rem; }
.home-carousel-count span { width: 14px; height: 1px; background: rgba(183,123,24,.4); }
.home-carousel-count small { font: inherit; opacity: .72; }
.home-carousel-dots { display: flex; align-items: center; gap: .3rem; }
.home-carousel-dots button { width: 4px; height: 4px; padding: 0; border-radius: 99px; background: rgba(139,83,97,.27); transition: width .25s ease, background .25s ease; }
.home-carousel-dots button[aria-current="true"] { width: 12px; background: rgba(163,76,114,.8); }
.home-carousel-toggle { display: grid; width: 25px; height: 25px; padding: 0; place-items: center; border-left: 1px solid rgba(183,123,24,.16); border-radius: 0 50% 50% 0; }
.home-carousel-toggle:hover { color: #a34c72; }
.home-carousel-toggle-symbol { position: relative; display: block; width: 9px; height: 11px; }
.home-carousel-toggle-symbol::before, .home-carousel-toggle-symbol::after { position: absolute; top: 1px; bottom: 1px; width: 2px; border-radius: 2px; background: currentColor; content: ""; transition: opacity .15s ease, clip-path .15s ease, width .15s ease; }
.home-carousel-toggle-symbol::before { left: 1px; }
.home-carousel-toggle-symbol::after { right: 1px; }
.home-carousel-toggle[aria-pressed="true"] .home-carousel-toggle-symbol::before { inset: 1px 0; width: 10px; clip-path: polygon(0 0,100% 50%,0 100%); }
.home-carousel-toggle[aria-pressed="true"] .home-carousel-toggle-symbol::after { opacity: 0; }
.moment-strip { grid-template-columns: repeat(3, 1fr); }
.moment-strip a:nth-child(n+4) { margin-top: .1rem; }
.reference-join { background-image: linear-gradient(90deg, rgba(255,228,225,.97), rgba(255,238,230,.95) 60%, rgba(255,242,226,.82)), url('../web/images/Cake_n_Sip/CYS00891-960.webp'); }

/* Each public destination gets its own visual identity instead of recycling one hero. */
.public-about .page-hero { background-image: linear-gradient(90deg, rgba(255,250,243,.98) 0%, rgba(255,250,243,.94) 42%, rgba(255,250,243,.28) 78%), url('../web/images/Cake_n_Sip/CYS01256-960.webp'); }
.public-events .page-hero { background-image: linear-gradient(90deg, rgba(255,250,243,.98) 0%, rgba(255,250,243,.94) 42%, rgba(255,250,243,.28) 78%), url('../web/images/Cake_n_Sip/CYS00332-960.webp'); }
.public-connect .page-hero { background-image: linear-gradient(90deg, rgba(255,250,243,.98) 0%, rgba(255,250,243,.94) 42%, rgba(255,250,243,.28) 78%), url('../web/images/Cake_n_Sip/CYS01065-960.webp'); }
.public-stories .page-hero { background-image: linear-gradient(90deg, rgba(255,250,243,.98) 0%, rgba(255,250,243,.94) 42%, rgba(255,250,243,.28) 78%), url('../web/images/Cake_n_Sip/CYS01503-960.webp'); }
.public-policy .page-hero { background-image: linear-gradient(90deg, rgba(255,250,243,.98) 0%, rgba(255,250,243,.94) 42%, rgba(255,250,243,.28) 78%), url('../web/images/Cake_n_Sip/CYS00421-960.webp'); }
.public-join .form-page { background-image: linear-gradient(90deg, rgba(255,250,243,.96), rgba(255,245,247,.93)), url('../web/images/Cake_n_Sip/CYS00081-960.webp'); }
.public-connect .connect-grid a:nth-child(1)::before { background-image: url('../web/images/Cake_n_Sip/CYS00048-960.webp'); }
.public-connect .connect-grid a:nth-child(2)::before { background-image: url('../web/images/Cake_n_Sip/CYS01486-960.webp'); }
.public-connect .connect-grid a:nth-child(3)::before { background-image: url('../web/images/Cake_n_Sip/CYS00926-960.webp'); }

@media (max-width: 1199px) {
  .home-carousel-controls { right: 220px; }
}

@media (max-width: 767px) {
  .home-carousel-slide.focus-upper img, .home-carousel-slide.focus-center img { object-position: center 34%; }
  .home-carousel-controls { right: 1rem; bottom: 1rem; opacity: .68; }
  .moment-strip { grid-template-columns: repeat(2, 1fr); }
}

@media (prefers-reduced-motion: reduce) {
  .home-carousel-slide { transition: none; }
  .home-carousel-controls, .home-carousel-arrow, .home-carousel-dots button, .home-carousel-toggle-symbol::before, .home-carousel-toggle-symbol::after { transition: none; }
}

/* The owner workspace reads like a calm operations console at every width. */
.admin-page { font-size: 16px; font-weight: 500; background: #fff2f6; }
.admin-page .admin-layout { grid-template-columns: 260px minmax(0,1fr); background: #fff4f7; }
.admin-page .admin-sidebar { width: 260px; padding: 1.5rem 1rem 1rem; background: #fff6f8; border-color: rgba(206,130,156,.28); }
.admin-page .admin-workspace { grid-column: 2; }
.admin-page .admin-sidebar nav { gap: .45rem; }
.admin-page .admin-sidebar nav a { min-height: 50px; padding: .85rem .9rem; font-size: 1.04rem; font-weight: 600; }
.admin-page .admin-brand small, .admin-sidebar-mission > span { font-size: .64rem; font-weight: 700; }
.admin-page .admin-topbar { height: 78px; padding: .8rem 2rem; background: #fffafd; }
.admin-page .admin-workspace-label > strong { font-size: 1.18rem; font-weight: 600; }
.admin-page .admin-public-link { min-height: 40px; padding: .55rem .9rem; font-size: .82rem; }
.admin-page .admin-user strong { font-size: 1.02rem; font-weight: 600; }
.admin-page .admin-user small { font-size: .74rem; }
.admin-page .admin-content { max-width: 1700px; padding: clamp(1.5rem, 2.5vw, 3rem); }
.admin-page .admin-title { margin-bottom: 2rem; }
.admin-page .admin-title h1 { font-size: clamp(2.6rem, 3.8vw, 4.25rem); }
.admin-page .admin-title p { max-width: 760px; font-size: .98rem; line-height: 1.7; }
.admin-page .admin-panel { padding: clamp(1.4rem, 2vw, 2rem); border-radius: 18px; }
.admin-page .data-table-wrap { border-radius: 18px; }
.admin-page .data-table th { padding: 1.1rem 1.25rem; font-size: .78rem; font-weight: 700; }
.admin-page .data-table td { padding: 1.3rem 1.25rem; font-size: .92rem; line-height: 1.55; }
.admin-page .data-table td small { font-size: .79rem; line-height: 1.5; }
.admin-page .status { padding: .45rem .7rem; font-size: .76rem; font-weight: 700; }
.admin-page .table-action, .event-manager-actions .table-action { min-height: 36px; display: inline-flex; align-items: center; padding: .48rem .75rem; font-size: .8rem; font-weight: 700; }
.owner-welcome { min-height: 340px; padding: 2.5rem; gap: 2.5rem; border-radius: 20px; }
.owner-welcome-copy > p { max-width: 520px; font-size: 1rem; line-height: 1.75; }
.owner-metrics { gap: 1.25rem; margin: 2rem 0; }
.owner-metrics > a { min-height: 150px; padding: 1.5rem; border-radius: 18px; background: #fffafd; }
.owner-metrics small { font-size: 1.25rem; }
.owner-metrics div > span { font-size: .82rem; }
.owner-panel-heading p, .owner-event-table td small, .owner-venue, .owner-checkin-list p small, .owner-payment-member small, .owner-testimonial-list blockquote, .owner-audit-list small { font-size: .8rem; }
.owner-event-table td, .owner-payment-table td { padding: 1.15rem .8rem; font-size: .88rem; }
.owner-event-table th, .owner-payment-table th { padding: .9rem .8rem; font-size: .92rem; }
.owner-main-grid, .owner-bottom-grid, .owner-side-panels { gap: 2rem; }
.owner-glints i:nth-child(6) { top: 22%; left: 68%; animation-delay: -1.8s; }
.owner-glints i:nth-child(7) { top: 59%; left: 58%; animation-delay: -2.8s; }
.owner-glints i:nth-child(8) { top: 81%; left: 73%; animation-delay: -.5s; }
.owner-glints i:nth-child(9) { top: 46%; left: 94%; animation-delay: -3.2s; }
.owner-glints i:nth-child(10) { top: 8%; left: 42%; animation-delay: -2.1s; }
.owner-glints i:nth-child(11) { top: 92%; left: 38%; animation-delay: -1s; }
.owner-glints i:nth-child(12) { top: 30%; left: 84%; animation-delay: -3.5s; }

/* The member dashboard favours breathing room over dashboard density. */
.member-dashboard-page { font-size: 16px; font-weight: 500; background: #fff2f6; }
.member-shell { grid-template-columns: 260px minmax(0,1fr); width: min(1840px,100%); }
.member-rail { padding: 48px 24px 34px; background: #fff3f6; border-color: rgba(206,130,156,.28); }
.member-rail nav { gap: 12px; }
.member-rail nav a { min-height: 54px; padding: 13px 15px; font-size: 1.1rem; }
.member-workspace { padding: clamp(1.75rem, 2.6vw, 3rem); background: #fff5f8; }
.member-welcome { min-height: 430px; padding: clamp(2rem,3vw,3.25rem); gap: 2.5rem; border-radius: 22px; }
.member-welcome-copy > p { max-width: 490px; font-size: 1rem; line-height: 1.75; }
.member-profile-overview { max-width: 430px; padding: 30px; border-radius: 18px; }
.member-profile-top small, .member-membership-badge { font-size: .82rem; }
.member-profile-bio, .member-profession { font-size: .9rem; line-height: 1.7; }
.member-stat-strip { margin: 2rem 0; padding: 1.75rem 1rem; border-radius: 18px; }
.member-stat { padding-inline: 1.6rem; }
.member-stat small, .member-meta, .member-payment-note small, .member-notifications small { font-size: .82rem; }
.member-panel { padding: clamp(1.5rem,2vw,2rem); border-radius: 18px; }
.member-feature-grid, .member-lower-grid { gap: 2rem; }
.member-primary-registration { gap: 1.75rem; padding: 1.25rem; border-radius: 16px; }
.member-registration-summary, .member-story-actions p, .member-muted, .member-notifications p { font-size: .92rem; }
.member-notifications { gap: 1rem; }
.member-notification-item { margin: 0; min-width: 0; }
.member-notification-link { width: 100%; min-height: 126px; display: flex; align-items: flex-start; gap: .9rem; padding: 1.1rem; text-align: left; color: #49333d; background: #fffafd; border: 1px solid rgba(206,130,156,.22); border-radius: 14px; box-shadow: 0 9px 24px rgba(77,38,54,.06); transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease; }
.member-notification-link:hover { transform: translateY(-2px); border-color: rgba(188,135,40,.48); box-shadow: 0 14px 30px rgba(77,38,54,.1); }
.member-notification-link > span:last-child { display: grid; gap: .35rem; }
.member-notification-link strong { color: var(--deep-rose-2); font: 700 1.2rem/1.25 var(--serif); }
.member-notification-link span span { color: var(--ink-soft); font-size: .88rem; line-height: 1.55; }
.member-notification-item.is-read { opacity: .76; }
.member-notification-item.is-read .member-notification-dot { background: #d8c9ce; box-shadow: none; }
.member-notification-dot { width: 9px; height: 9px; flex-basis: 9px; background: var(--gold); box-shadow: 0 0 0 4px rgba(213,166,64,.16), 0 0 12px rgba(213,166,64,.55); }
.member-panel-heading > div { display: flex; align-items: center; flex-wrap: wrap; gap: .75rem; }
.member-unread-count { padding: .25rem .6rem; color: var(--deep-rose); background: var(--blush-light); border-radius: 999px; font-size: .75rem; font-weight: 700; }
.member-mark-read { padding: .4rem .25rem; color: var(--deep-rose); background: transparent; border: 0; font-size: .82rem; font-weight: 700; text-decoration: underline; text-underline-offset: 4px; }
.member-glitter i:nth-child(7) { left: 18%; top: 18%; animation-delay: -2.2s; }
.member-glitter i:nth-child(8) { left: 81%; top: 48%; animation-delay: -.4s; }
.member-glitter i:nth-child(9) { left: 42%; top: 38%; animation-delay: -3.4s; }
.member-glitter i:nth-child(10) { left: 74%; top: 72%; animation-delay: -1.1s; }
.member-glitter i:nth-child(11) { left: 96%; top: 62%; animation-delay: -2.6s; }
.member-glitter i:nth-child(12) { left: 25%; top: 86%; animation-delay: -.9s; }

@keyframes ambientShimmer { from { filter: brightness(.96); } to { filter: brightness(1.08); } }

@media (max-width: 900px) {
  .auth-page { padding-inline: 1.25rem; }
  .auth-composition { grid-template-columns: minmax(280px,.84fr) minmax(390px,1.16fr); min-height: 590px; }
  .auth-composition .auth-visual { min-height: 590px; height: auto; }
  .auth-composition .auth-panel { padding-inline: clamp(2rem,4vw,3rem); }
  .owner-report-metrics { grid-template-columns: 1fr 1fr; }
  .registration-manage-grid { grid-template-columns: 1fr; }
  .testimonial-moments-grid { grid-template-columns: 1fr; gap: 2.5rem; }
  .testimonial-moments-copy { max-width: 680px; }
  .admin-page .admin-layout { grid-template-columns: minmax(0,1fr); }
  .admin-page .admin-workspace { grid-column: 1; }
  .admin-page .admin-sidebar { width: 260px; }
  .member-shell { display: block; }
}
@media (max-width: 820px) {
  .auth-page { min-height: auto; padding-block: 1.5rem 2.75rem; }
  .auth-composition { grid-template-columns: minmax(0,1fr); min-height: 0; border-radius: 24px; }
  .auth-composition .auth-visual { min-height: 0; height: 270px; }
  .auth-composition .auth-visual img { object-position: 50% 26%; }
  .auth-composition .auth-visual-copy { bottom: 1.5rem; }
  .auth-composition .auth-visual blockquote { max-width: 520px; font-size: clamp(1.45rem,4vw,2rem); }
  .auth-composition .auth-panel { padding: 2.6rem clamp(1.5rem,6vw,3.25rem) 3rem; }
  .auth-composition .auth-card { max-width: 560px; margin-inline: auto; }
}
@media (max-width: 700px) {
  .site-splash::before,
  .site-splash::after { width: 130vw; }
  .site-splash-status { right: 1.25rem; bottom: 1.25rem; }
  .auth-page { padding: 1rem; }
  .auth-composition { grid-template-columns: 1fr; border-radius: 20px; }
  .auth-composition .auth-visual { height: 220px; min-height: 0; }
  .auth-composition .auth-visual > div { bottom: 7%; }
  .auth-composition .auth-visual blockquote { margin-bottom: 0; font-size: 1.35rem; }
  .auth-composition .auth-panel { padding: 2rem 1.4rem 2.4rem; }
  .auth-composition .auth-card h1 { font-size: clamp(2.8rem,13vw,3.55rem); white-space: normal; }
  .auth-form-row { align-items: flex-start; flex-direction: column; gap: .5rem; }
  .owner-report-metrics { grid-template-columns: 1fr; }
  .feedback-review { grid-template-columns: 1fr; }
  .scanner-controls .btn { width: 100%; }
  .testimonial-photo-story { grid-template-columns: repeat(2,minmax(0,1fr)); grid-template-rows: 310px 180px; gap: .7rem; }
  .testimonial-photo-story .testimonial-photo-main { grid-column: 1 / -1; grid-row: 1; }
  .testimonial-photo-story figure { border-radius: 15px; }
  .testimonial-photo-story figure::after { border-radius: 10px; }
  .testimonial-moments-actions .btn { width: 100%; }
  body { font-size: 16px; }
  .section-pad { padding: 4rem 0; }
  .page-hero.compact { min-height: 390px; }
  .admin-page .admin-content { padding: 1rem; }
  .admin-page .admin-panel { padding: 1.25rem; }
  .admin-page .data-table th, .admin-page .data-table td { padding-inline: 1rem; }
  .owner-welcome { padding: 1.5rem; }
  .owner-metrics { grid-template-columns: 1fr; }
  .owner-metrics > a { min-height: 126px; }
  .member-workspace { padding: 1.25rem; }
  .member-welcome { padding: 1.5rem; }
  .member-stat-strip { grid-template-columns: 1fr; gap: 0; }
  .member-stat { min-height: 130px; padding: 1.2rem; border-right: 0; border-bottom: 1px solid #eed5ad; flex-direction: row; align-items: center; }
  .member-stat:last-child { border-bottom: 0; }
  .member-notifications { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  body::before { animation: none !important; }
  .site-splash-content,
  .site-splash-orbit,
  .site-splash-stars i { animation: none !important; }
  .site-splash { transition-duration: .01ms; }
  .brand-wordmark,
  .public-reference-page .glitter-field i,
  .member-glitter i,
  .owner-glints i { animation: none !important; }
}

/* Readable editorial typography and explicit form requirements. */
body {
  color: #30242a;
  font-family: var(--sans);
  font-size: 17px;
  font-weight: 500;
  line-height: 1.72;
  text-rendering: optimizeLegibility;
}
p, li, dt, dd, label, input, select, textarea, button, td, th {
  font-family: var(--sans);
  font-weight: 500;
}
p, .muted-copy, .admin-title p, .member-muted { color: #5d5055; }
h1, h2, h3, h4,
.owner-panel-heading h2,
.member-notification-link strong {
  font-family: var(--serif);
  font-weight: 600;
  line-height: 1.16;
  letter-spacing: -.018em;
}
.hero-copy h1, .page-hero h1, .form-intro h1 { line-height: 1.08; }
.site-header .nav-link,
.btn,
.btn-sm,
.table-action,
.admin-page .btn,
.admin-page .admin-sidebar nav a,
.owner-tab,
.owner-panel-heading > a:not(.btn),
.owner-panel-subnav > a,
.owner-event-table th,
.owner-payment-table th,
.owner-event-identity a,
.owner-payment-member strong,
.owner-checkin-list p strong,
.owner-testimonial-list strong,
.owner-audit-list strong,
.member-rail nav a,
.member-dashboard-page .btn,
.member-interest-tags span,
.member-category-tag,
.member-subtle-link,
.member-history-action,
.public-reference-page .btn,
.public-reference-page .text-link {
  font-family: var(--sans) !important;
  font-weight: 700 !important;
}
.site-header .nav-link { letter-spacing: .025em; text-transform: none; }
.btn, .btn-sm { letter-spacing: .025em; text-transform: none; }
.form-field { margin-bottom: 1.35rem; }
.form-label {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: .8rem;
  margin-bottom: .55rem;
  color: #3c2d33;
  font-family: var(--sans);
  font-size: .94rem !important;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: .01em;
  text-transform: none;
}
.form-control, .form-select {
  min-height: 54px;
  font-family: var(--sans);
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.45;
}
.form-hint, .form-error, .form-footnote, .secure-note, .booking-help {
  font-size: .86rem !important;
  line-height: 1.55;
}
.field-requirement {
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
  width: fit-content;
  padding: .22rem .5rem;
  border: 1px solid transparent;
  border-radius: 999px;
  font-family: var(--sans);
  font-size: .66rem !important;
  font-weight: 700 !important;
  line-height: 1.15;
  letter-spacing: .055em;
  text-transform: uppercase;
  vertical-align: middle;
}
.field-required {
  color: #712d46;
  background: #fbe6ed;
  border-color: rgba(177, 76, 113, .24);
}
.field-optional {
  color: #665a5f;
  background: #f5f0f2;
  border-color: rgba(80, 64, 70, .14);
}
.form-check-label .field-requirement,
.consent-field .field-requirement,
.media-file-label .field-requirement { margin-left: .4rem; }
.consent-field {
  align-items: flex-start;
  color: #4d4045;
  font-size: .92rem;
  line-height: 1.55;
}
.consent-field > label,
.consent-field > span { margin-top: -.12rem; }
.form-check-label { color: #4d4045; font-size: .92rem; line-height: 1.5; }
.form-check-label > span:first-child { margin-right: .35rem; }

@media (max-width: 700px) {
  body { font-size: 16.5px; }
  .form-label { align-items: flex-start; }
  .field-requirement { font-size: .62rem !important; }
}

/* Rose-pink editorial headings: expressive, solid and still high-contrast. */
:root { --heading-pink: #a23f68; }
main h1,
main h2,
.admin-page .admin-title h1,
.owner-welcome h1,
.owner-panel-heading h2,
.member-welcome-copy h1,
.member-profile-top h2,
.member-panel-heading h2,
.member-application h2,
.member-applicant-discover h2,
.auth-composition .auth-card h1,
.testimonial-moments-copy h2,
.scanner-header h1,
.result-card h1 {
  color: var(--heading-pink);
}
.campaign-copy h2,
.final-cta h2,
.event-hero-copy h1 {
  color: white;
}

/* Member circle, privacy tools and event-day operational surfaces. */
.community-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.25rem;
  margin-top: 2rem;
}
.community-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  min-height: 330px;
  padding: 1.5rem;
  border: 1px solid rgba(120, 54, 78, .14);
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 16px 42px rgba(63, 31, 43, .07);
}
.community-card h2 { margin: .85rem 0 .25rem; font-size: 1.75rem; }
.community-card .btn, .community-card .status-badge { margin-top: auto; }
.member-monogram {
  display: grid;
  width: 56px;
  height: 56px;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: linear-gradient(145deg, #a23f68, #5d273d);
  font: 600 1.5rem/1 var(--serif);
}
.member-interest-tags { display: flex; flex-wrap: wrap; gap: .4rem; margin: .35rem 0 1rem; }
.member-interest-tags span { padding: .28rem .6rem; border-radius: 999px; color: #6d3650; background: #f9eaf0; font-size: .72rem; }
.connection-actions, .connection-contact, .checkin-operations { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; }
.connection-contact { flex-direction: column; align-items: flex-start; margin-top: 1rem; }
.privacy-request-row { display: grid; grid-template-columns: 1fr auto; gap: .5rem 1rem; padding: 1rem 0; border-bottom: 1px solid rgba(120, 54, 78, .12); }
.privacy-request-row p { grid-column: 1 / -1; margin: 0; }
.privacy-request-row small { display: block; }
.checkin-event-picker { display: grid; gap: .5rem; margin-bottom: 1.2rem; }
.checkin-event-picker label { font-weight: 700; }
.checkin-event-picker select { min-height: 48px; padding: .65rem .8rem; border: 1px solid #d8c6cd; border-radius: 10px; background: white; }
.checkin-operations { margin-top: 1.25rem; }
.manual-guest-results { display: grid; gap: .75rem; margin: 1.25rem 0; }
.manual-guest-results article { display: flex; justify-content: space-between; gap: 1rem; align-items: center; padding: 1rem; border: 1px solid rgba(120, 54, 78, .14); border-radius: 14px; background: #fffafb; }
.manual-guest-results small { display: block; }
.scanner-shell.wide { width: min(1100px, calc(100% - 2rem)); }
.event-manager-actions form, .data-table td form { display: inline-flex; margin: 0; }
.event-manager-actions button.table-action, .data-table button.table-action { border: 0; background: transparent; }

@media (max-width: 900px) {
  .community-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .community-grid { grid-template-columns: 1fr; }
  .manual-guest-results article { align-items: flex-start; flex-direction: column; }
}
