:root {
  color-scheme: light;
  --ink: #28163d;
  --muted: #6e5c7a;
  --bg: #fff5ec;
  --panel: #ffffff;
  --line: #e5d5ea;
  --violet: #7138d0;
  --pink: #e83e8c;
  --coral: #ff6f61;
  --orange: #ff9b3d;
  --gold: #f5c242;
  --green: #22a978;
  --cyan: #16a6c9;
  --danger: #bd2450;
  --scene: url("/images/backgrounds/jubilee-world-sunset.webp");
  font: 16px/1.45 system-ui, -apple-system, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  min-height: 100vh;
  color: var(--ink);
  background:
    linear-gradient(135deg, rgba(72,26,103,.18), rgba(255,240,235,.08)),
    var(--scene) center / cover fixed;
}

body::before {
  content: "";
  position: fixed;
  inset: 0 0 auto;
  height: 7px;
  z-index: 20;
  background: linear-gradient(90deg,
    #e93446 0 16.6%, #ff8c32 16.6% 33.2%, #f4cf3d 33.2% 49.8%,
    #31ad72 49.8% 66.4%, #2583d8 66.4% 83%, #8344c9 83% 100%);
}

.skip { position: fixed; left: -999px; top: 0; }
.skip:focus {
  left: 1rem;
  top: 1rem;
  z-index: 30;
  padding: .7rem;
  border-radius: 10px;
  background: #fff;
  color: var(--ink);
}

body.splash-active { overflow: hidden; }
.splash {
  position: fixed;
  inset: 0;
  z-index: 100;
  display: grid;
  place-items: center;
  overflow: hidden;
  color: #fff;
  background:
    radial-gradient(circle at 50% 48%, rgba(255,255,255,.2), transparent 24%),
    radial-gradient(circle at 18% 80%, rgba(22,166,201,.34), transparent 34%),
    linear-gradient(135deg, #3d197c, #9d278f 55%, #e84975);
  transition: opacity .42s ease, visibility .42s ease;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}
body.splash-active .splash { opacity: 1; visibility: visible; pointer-events: auto; }
.splash::before,.splash-mark,.splash-name { animation-play-state: paused; }
body.splash-active .splash::before,
body.splash-active .splash-mark,
body.splash-active .splash-name { animation-play-state: running; }
.splash::before {
  content: "";
  position: absolute;
  width: 70vmax;
  height: 70vmax;
  border: 2px solid rgba(255,255,255,.13);
  border-radius: 50%;
  box-shadow: 0 0 0 10vmax rgba(255,255,255,.025), 0 0 0 20vmax rgba(255,255,255,.018);
  animation: splashPulse 2.2s ease-out both;
}
.splash-lockup { position: relative; display: flex; align-items: center; gap: 1rem; filter: drop-shadow(0 15px 35px rgba(27,6,47,.35)); }
.splash-mark {
  display: grid;
  place-items: center;
  width: 92px;
  height: 92px;
  border-radius: 28px;
  color: #fff;
  font-size: 2.8rem;
  background: conic-gradient(from 30deg, #ffe36d, #ff8a6d, #f06bb4, #7f6ee8, #56cde2, #6fd39b, #ffe36d);
  box-shadow: 0 12px 34px rgba(34,8,58,.35), inset 0 0 0 1px rgba(255,255,255,.28);
  animation: splashMarkIn 1.15s cubic-bezier(.2,.8,.2,1) both, splashMarkGlow .65s 1.15s ease-out both;
}
.splash-mark > span { line-height: 1; transform: translateY(-.09em); }
.splash-name {
  display: grid;
  font: 800 clamp(2.3rem,10vw,4.6rem)/.92 Georgia,serif;
  letter-spacing: -.04em;
  animation: splashNameIn 1.15s cubic-bezier(.2,.8,.2,1) both;
}
.splash-name small { margin-top: .65rem; color: #ffe995; font: 850 .65rem/1 system-ui,sans-serif; letter-spacing: .22em; }
.splash-skip { position: absolute; right: 1rem; bottom: 1rem; min-height: 36px; padding: .45rem .8rem; border-color: rgba(255,255,255,.38); background: rgba(37,11,62,.28); color: #fff; font-size: .76rem; box-shadow: none; }
body.splash-active .splash.leaving { opacity: 0; visibility: hidden; pointer-events: none; }
@keyframes splashMarkIn { from { opacity: 0; transform: translateX(-90px) rotate(-18deg) scale(.72); } to { opacity: 1; transform: none; } }
@keyframes splashNameIn { from { opacity: 0; transform: translateX(90px); } to { opacity: 1; transform: none; } }
@keyframes splashMarkGlow { 50% { transform: scale(1.08); box-shadow: 0 0 42px rgba(255,239,158,.75); } }
@keyframes splashPulse { from { opacity: 0; transform: scale(.35); } 55% { opacity: 1; } to { opacity: 0; transform: scale(1.15); } }

.shell {
  width: min(100%,760px);
  min-height: 100vh;
  margin: auto;
  display: grid;
  grid-template-rows: auto 1fr auto;
  background: rgba(255,255,255,.70);
  box-shadow: 0 28px 80px rgba(76,34,94,.16);
  backdrop-filter: blur(18px);
}

header {
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1.1rem 1.1rem .9rem;
  color: #fff;
  border-bottom: 0;
  background:
    radial-gradient(circle at 88% 20%, rgba(255,197,66,.35), transparent 28%),
    linear-gradient(118deg, #5627a8, #a72f9d 54%, #e54b75);
}

.brand-lockup { display: flex; align-items: center; gap: .7rem; }
.brand-mark {
  display: grid;
  place-items: center;
  width: 54px;
  height: 54px;
  border-radius: 17px;
  color: #fff;
  font-size: 1.65rem;
  background: conic-gradient(from 30deg, #ffe36d, #ff8a6d, #f06bb4, #7f6ee8, #56cde2, #6fd39b, #ffe36d);
  box-shadow: 0 6px 20px rgba(43,13,73,.28);
}
.brand-mark > span { line-height: 1; transform: translateY(-.09em); }

h1, h2, h3, p { margin-top: 0; }
h1 { margin: .15rem 0; font: 800 1.45rem/1.05 Georgia, serif; }
h2, h3 { color: #34164b; }
header h1 { color: #fff; }
.eyebrow { color: #ffe995; font-size: .64rem; font-weight: 800; letter-spacing: .17em; }
.status { color: rgba(255,255,255,.84); font-size: .72rem; }
.header-actions { position: absolute; right: .55rem; bottom: .45rem; display: flex; align-items: center; gap: .35rem; }

main { position: relative; min-height: 0; overflow: auto; padding: 1rem 1rem 2rem; }

.recovery-help {
  width: min(100%,760px);
  margin: 0 auto;
  padding: .55rem .8rem;
  border-bottom: 1px solid rgba(113,56,208,.2);
  background: #fff4c7;
  color: #34164b;
  font-size: .78rem;
  font-weight: 700;
  line-height: 1.35;
}
.recovery-help[hidden] { display: none; }

.filter-launch {
  position: relative;
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  min-height: 36px;
  padding: 0;
  border: 2px solid rgba(255,255,255,.92);
  border-radius: 50%;
  background: rgba(48,16,80,.58);
  box-shadow: 0 4px 14px rgba(35,9,58,.3), inset 0 0 0 1px rgba(255,255,255,.1);
  color: #fff;
}
.filter-launch[hidden] { display: none; }
.filter-launch:hover,
.filter-launch:focus-visible { background: rgba(48,16,80,.82); transform: translateY(-1px); }
.filter-icon { position: relative; display: block; width: 22px; height: 22px; background: transparent; }
.filter-icon::before { content: ""; position: absolute; left: 1px; top: 3px; width: 20px; height: 9px; background: currentColor; clip-path: polygon(0 0,100% 0,60% 100%,40% 100%); }
.filter-icon::after { content: ""; position: absolute; left: 9px; top: 12px; width: 4px; height: 7px; border-radius: 0 0 1px 1px; background: currentColor; }
.filter-letter { position: absolute; left: 50%; top: 50%; display: block; font: 900 1rem/1 Arial,sans-serif; color: currentColor; transform: translate(-50%,-52%); }
.filter-launch b { position: absolute; right: -3px; top: -5px; min-width: 20px; padding: 1px 5px; border-radius: 10px; background: var(--pink); color: #fff; font-size: .65rem; }

nav {
  position: sticky;
  bottom: 0;
  display: grid;
  grid-template-columns: repeat(2,1fr);
  padding: .45rem max(.3rem,env(safe-area-inset-right)) max(.45rem,env(safe-area-inset-bottom));
  border-top: 1px solid rgba(113,56,208,.16);
  background: rgba(255,255,255,.94);
  box-shadow: 0 -10px 30px rgba(76,34,94,.10);
  backdrop-filter: blur(14px);
}
nav[hidden] { display: none; }

nav button {
  min-height: 52px;
  padding: .35rem .1rem;
  border: 0;
  border-radius: 12px;
  background: transparent;
  color: var(--muted);
  font-size: .68rem;
}
nav button span { display: block; font-size: 1.25rem; }
nav button.active {
  color: #6e2db4;
  background: linear-gradient(135deg, rgba(232,62,140,.12), rgba(22,166,201,.13));
}

.launcher-head { display: flex; gap: .85rem; align-items: center; min-width: 0; margin-bottom: 1rem; }
.launcher-head > div { min-width: 0; }
.launcher-head h2 { overflow-wrap: anywhere; }
.launcher-avatar { display: grid; place-items: center; width: 62px; height: 62px; flex: 0 0 62px; border-radius: 20px; color: #fff; font-size: 1.8rem; background: linear-gradient(135deg,#ec477f,#7138d0 60%,#16a6c9); }
.launcher-head h2 { margin-bottom: .15rem; }
.launcher-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .7rem; }
.launcher-card { position: relative; display: grid; align-content: start; gap: .2rem; min-width: 0; min-height: 106px; padding: .85rem .7rem; overflow-wrap: anywhere; text-align: left; }
.launcher-card .launcher-icon { display: block; font-size: 1.45rem; }
.launcher-alert-badge { position: absolute; top: .4rem; right: .4rem; min-width: 1.35rem; padding: .12rem .35rem; border-radius: 999px; background: #d93871; color: #fff; font-size: .65rem; font-weight: 900; text-align: center; }
.launcher-card small { color: var(--muted); font-weight: 600; line-height: 1.25; }
.launcher-card.locked { color: #74687b; background: #f3eef4; border-style: dashed; }
.launcher-card.locked::after { content: "Locked"; position: absolute; top: .45rem; right: .45rem; padding: .12rem .38rem; border-radius: 99px; background: #dfd6e2; font-size: .58rem; }
.launcher-card.opaque-lock { opacity: 1; color: #766d7b; background: #eee9ef; cursor: not-allowed; }
.launcher-card.opaque-lock small { color: #766d7b; }
.launcher-card.opaque-lock:disabled { opacity: 1; }
.showroom-filters { display: grid; gap: .35rem; }
.showroom-filters .field { margin-bottom: .35rem; }
.plan-grid { display: grid; gap: .75rem; }
.plan-card.active-plan { border-color: var(--green); }
.plan-card h3 { margin-bottom: .25rem; }
.plan-purchases { display: grid; gap: .5rem; margin-top: .75rem; }
.plan-purchases > * { width: 100%; text-align: center; }
.vendor-journey p { margin: .35rem 0 0; }
.membership-refresh { margin-top: .75rem; }
.membership-expiry { margin: .4rem 0; }
.membership-grid { display: grid; gap: .7rem; }
.membership-tier { display: grid; gap: .35rem; }
.membership-tier-head { display: flex; align-items: flex-start; justify-content: space-between; gap: .7rem; }
.membership-tier-head h3 { margin: 0; }
.membership-status { flex: 0 0 auto; padding: .2rem .45rem; border-radius: 999px; font-size: .68rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; background: rgba(255,255,255,.12); }
.membership-status.active { background: rgba(87,224,166,.22); color: #baffdf; }
.membership-status.expired { background: rgba(255,183,77,.18); color: #ffe0a6; }
.membership-grid > .card:not(.membership-tier) { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: start; gap: .35rem .7rem; }
.membership-grid > .card:not(.membership-tier) > h3 { margin: 0; }
.membership-grid > .card:not(.membership-tier) > p:first-of-type { margin: 0; padding: .2rem .45rem; border-radius: 999px; background: rgba(255,255,255,.12); font-size: .68rem; font-weight: 800; letter-spacing: .05em; line-height: 1.2; text-transform: uppercase; }
.membership-grid > .card:not(.membership-tier) > .help { grid-column: 1 / -1; margin: 0; }
.membership-remaining { margin: 0; }
.membership-meter { width: 100%; height: 12px; overflow: hidden; border-radius: 999px; background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.2); }
.membership-meter > span { display: block; height: 100%; background: var(--green); border-radius: inherit; }
.membership-meter.expiring-soon > span { background: #ffb74d; }
.membership-meter.expired > span, .membership-meter.inactive > span { background: transparent; }
.membership-expiring-soon { border-color: rgba(255,183,77,.75); }
.membership-actions { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; margin-top: .8rem; }
.membership-actions > * { width: 100%; text-align: center; }
.membership-alert-region { display: grid; gap: .55rem; margin-bottom: .7rem; }
.membership-alert { position: relative; padding-right: 2.6rem; }
.membership-alert p { margin: .35rem 0 .55rem; }
.membership-alert .button { width: 100%; text-align: center; }
.plan-price { color: #6e2db4; font-weight: 850; }
.membership-panel { max-width: 34rem; margin: 0 auto; }

button, .button {
  min-height:44px;
  padding: .75rem 1rem;
  border: 1px solid #cdb7d6;
  border-radius: 13px;
  background: #fff;
  color: var(--ink);
  font: inherit;
  font-weight: 700;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  box-shadow: 0 4px 12px rgba(69,31,86,.07);
}
button:hover, button:focus-visible, .button:focus-visible {
  border-color: var(--pink);
  outline: 3px solid rgba(232,62,140,.18);
  transform: translateY(-1px);
}
button.primary, .button.primary {
  border-color: transparent;
  color: #fff;
  background: linear-gradient(120deg, #6d3ed2, #d63d9a);
  box-shadow: 0 8px 22px rgba(137,48,178,.24);
}
button.warm {
  border-color: transparent;
  color: #fff;
  background: linear-gradient(120deg, #f34783, #ff785c);
  box-shadow: 0 8px 22px rgba(227,64,109,.22);
}
button.ghost { background: rgba(255,255,255,.55); }
button.danger { color: var(--danger); }
button:disabled { opacity: .45; cursor: not-allowed; transform: none; }

.card {
  position: relative;
  margin-bottom: 1rem;
  padding: 1.1rem;
  overflow: hidden;
  border: 1px solid rgba(130,80,150,.15);
  border-radius: 21px;
  background: rgba(255,255,255,.92);
  box-shadow: 0 16px 42px rgba(88,42,104,.12);
}
.card::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 4px;
  background: linear-gradient(90deg, var(--pink), var(--orange), var(--gold), var(--green), var(--cyan), var(--violet));
}
.demo-badge {
  position: absolute;
  z-index: 2;
  top: .75rem;
  right: .75rem;
  padding: .22rem .48rem;
  border: 1px solid rgba(255,255,255,.72);
  border-radius: 999px;
  background: rgba(48,16,80,.62);
  color: rgba(255,255,255,.94);
  font-size: .62rem;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
  box-shadow: 0 3px 10px rgba(35,9,58,.18);
  backdrop-filter: blur(8px);
}

.hero {
  padding: 1.5rem;
  color: #fff;
  border: 0;
  background:
    radial-gradient(circle at 88% 18%, rgba(255,220,100,.42), transparent 28%),
    radial-gradient(circle at 12% 90%, rgba(44,207,188,.32), transparent 32%),
    linear-gradient(128deg, #5526a5, #bd328e 52%, #ef5f68);
}
.hero::before { height: 0; }
.hero h2 { color: #fff; font: 800 2.25rem/1.03 Georgia, serif; }
.hero p { max-width: 35rem; font-size: 1.02rem; }

.kicker { color: #8a2ca1; font-size: .76rem; font-weight: 850; letter-spacing: .13em; }
.hero .kicker { color: #ffe995; }
.muted, .help { color: var(--muted); }
.help { font-size: .78rem; }
.actions { display: flex; gap: .6rem; flex-wrap: wrap; }
.actions > * { flex: 1; }
.stack { display: grid; gap: .8rem; }
.field { display: grid; gap: .35rem; margin-bottom: .85rem; }
.picker-field { min-width: 0; }
.hud-picker-trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .65rem;
  width: 100%;
  min-width: 0;
  text-align: left;
}
.hud-picker-value { min-width: 0; overflow-wrap: anywhere; }
.hud-picker {
  position: fixed;
  z-index: 80;
  left: 50%;
  top: 0;
  bottom: 72px;
  width: min(100vw,760px);
  max-width: 100vw;
  padding: .4rem;
  overflow: hidden;
  background: rgba(41,17,58,.7);
  transform: translateX(-50%);
}
.hud-picker[hidden] { display: none; }
.hud-picker-panel {
  width: 100%;
  max-width: 100%;
  height: 100%;
  max-height: 100%;
  min-width: 0;
  display: grid;
  grid-template-rows: auto auto minmax(0,1fr) auto;
  gap: .5rem;
  padding: .65rem;
  overflow: hidden;
  border: 1px solid #d8c6df;
  border-radius: 17px;
  background: #fffafd;
  box-shadow: 0 18px 50px rgba(38,12,56,.35);
}
.hud-picker-head { display: flex; align-items: center; justify-content: space-between; gap: .5rem; min-width: 0; }
.hud-picker-head strong { min-width: 0; overflow-wrap: anywhere; }
.hud-picker-close { flex: 0 0 44px; min-width: 44px; min-height: 44px; padding: .25rem; font-size: 1.25rem; }
.hud-picker-search { min-width: 0; margin: 0; }
.hud-picker-search input { width: 100%; min-width: 0; min-height: 44px; }
.hud-picker-list {
  min-width: 0;
  min-height: 0;
  display: grid;
  align-content: start;
  gap: .35rem;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}
.hud-picker-option { width: 100%; min-width: 0; min-height: 44px; padding: .58rem .7rem; text-align: left; overflow-wrap: anywhere; }
.hud-picker-option[aria-selected="true"] { border-color: var(--violet); background: #eee8ff; color: #4b238a; }
.hud-picker-option.active { outline: 3px solid rgba(232,62,140,.18); border-color: var(--pink); }
.hud-picker-empty { margin: 0; color: var(--muted); }
.hud-picker-empty[hidden] { display: none; }
.hud-picker *, .hud-picker *::before, .hud-picker *::after { max-width: 100%; }
.field > label, .field > span { color: #49225f; font-size: .88rem; font-weight: 750; }

input, textarea, select {
  width: 100%;
  padding: .78rem;
  border: 1px solid #d8c6df;
  border-radius: 11px;
  background: #fffafd;
  color: var(--ink);
  font: inherit;
}
textarea { min-height: 110px; resize: vertical; }
input[type="checkbox"] { accent-color: var(--violet); }
input:focus, textarea:focus, select:focus {
  border-color: var(--pink);
  outline: 3px solid rgba(232,62,140,.16);
  background: #fff;
}

.checks { display: grid; grid-template-columns: repeat(auto-fit,minmax(135px,1fr)); gap: .45rem; }
.check {
  display: flex;
  gap: .55rem;
  align-items: center;
  padding: .6rem;
  border: 1px solid #e2d2e6;
  border-radius: 11px;
  background: linear-gradient(135deg, #fff, #fff6fb);
  font-size: .82rem;
}
.check input { width: auto; }

.progress { display: flex; gap: .28rem; margin: .5rem 0 1.1rem; }
.progress i { height: 7px; flex: 1; border-radius: 9px; background: #eadfea; }
.progress i.done:nth-child(1) { background: #e8476f; }
.progress i.done:nth-child(2) { background: #f2873f; }
.progress i.done:nth-child(3) { background: #e8b92e; }
.progress i.done:nth-child(4) { background: #27a978; }
.progress i.done:nth-child(5) { background: #1da4c5; }
.progress i.done:nth-child(6) { background: #5278d2; }
.progress i.done:nth-child(7) { background: #8a45c5; }

.photo { width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: 16px; background: #f5eafa; }
.avatar-placeholder {
  display: grid;
  place-items: center;
  aspect-ratio: 4/3;
  border-radius: 16px;
  color: #fff;
  font-size: 3.5rem;
  background:
    radial-gradient(circle at 70% 24%, rgba(255,230,100,.7), transparent 25%),
    linear-gradient(135deg, #ec477f, #8a4bd1 50%, #23b6c7);
}
.reasons { margin: .7rem 0; padding: 0; list-style: none; }
.reasons li { margin: .25rem 0; color: #5a4267; font-size: .8rem; }
.reasons li::before { content: "✦ "; color: var(--pink); }
.chips { display: flex; gap: .38rem; flex-wrap: wrap; }
.chip {
  padding: .3rem .62rem;
  border: 1px solid rgba(113,56,208,.12);
  border-radius: 99px;
  color: #6d2e93;
  background: linear-gradient(120deg, #fce6f3, #e9efff);
  font-size: .74rem;
  font-weight: 650;
}

.empty { padding: 2.3rem 1rem; text-align: center; }
.empty .symbol { color: var(--pink); font-size: 2.8rem; }
.loading { display: grid; place-items: center; align-content: center; height: 50vh; }
.spinner {
  width: 32px;
  height: 32px;
  border: 4px solid #eadfea;
  border-top-color: var(--pink);
  border-right-color: var(--violet);
  border-radius: 50%;
  animation: spin .8s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }

#toast {
  position: fixed;
  left: 50%;
  bottom: 76px;
  z-index: 10;
  max-width: 90%;
  padding: .78rem 1rem;
  border-radius: 13px;
  background: #3a1850;
  color: #fff;
  box-shadow: 0 10px 30px rgba(50,18,73,.3);
  opacity: 0;
  pointer-events: none;
  transform: translateX(-50%) translateY(30px);
  transition: .2s;
}
#toast.show { opacity: 1; transform: translateX(-50%) translateY(0); }

dialog {
  max-width: 360px;
  color: var(--ink);
  border: 1px solid #d8c6df;
  border-radius: 18px;
  background: #fffafd;
  box-shadow: 0 24px 70px rgba(58,24,80,.28);
}
dialog::backdrop { background: rgba(41,17,58,.66); }
.dialog-title { display: flex; align-items: center; justify-content: space-between; gap: .5rem; }
.dialog-title h2 { margin: 0; }
.dialog-close { min-width: 42px; padding: .25rem; font-size: 1.2rem; line-height: 1; }
.filter-dialog-form { display: grid; gap: .65rem; }
.legal { color: var(--muted); font-size: .78rem; }
.match-head { display: flex; gap: .8rem; align-items: center; }
.match-head .thumb { width: 64px; height: 64px; object-fit: cover; border-radius: 50%; background: #f5eafa; }
.notice {
  padding: .72rem .85rem;
  border-left: 4px solid var(--orange);
  border-radius: 0 12px 12px 0;
  background: linear-gradient(90deg, #fff2d7, #fff7f3);
  font-size: .82rem;
}
.profile-details { display: grid; gap: .55rem; margin: 1rem 0; }
.profile-details > div { padding-top: .55rem; border-top: 1px solid var(--line); }
.profile-details dt { color: var(--muted); font-size: .78rem; font-weight: 750; }
.profile-details dd { margin: .12rem 0 0; }
.profile-preview > button { width: 100%; }
.showroom-intro { margin-bottom: 1rem; text-align: center; }
.showroom-intro h2 { margin: .2rem 0; font: 800 2rem/1.05 Georgia,serif; }
.showroom-intro p:last-child { margin: .4rem auto 0; max-width: 34rem; color: var(--muted); }
.showroom-count { margin: .8rem 0 .2rem; color: var(--muted); font-size: .78rem; font-weight: 750; }
.showroom-details { display: grid; gap: .45rem; margin: .9rem 0; }
.showroom-details > div { padding-top: .45rem; border-top: 1px solid var(--line); }
.showroom-details dt { color: var(--muted); font-size: .72rem; font-weight: 750; }
.showroom-details dd { margin: .1rem 0 0; }
.showroom-controls { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .6rem; }
.showroom-controls #showHome { grid-column: 1 / -1; }
.offline { color: #ffe36d; }

/* The Second Life phone renders this page onto a small media texture. The
   explicit display mode enlarges type and touch targets without changing the
   regular browser experience. */
html.hud-mode { font-size: 29.5px; }
.hud-mode.launcher-mode { font-size: 18px; }
.hud-mode.launcher-mode header { padding: .65rem .7rem .55rem; }
.hud-mode.launcher-mode .brand-mark { width: 50px; height: 50px; font-size: 1.55rem; }
.hud-mode.launcher-mode main { padding: .7rem .65rem 1rem; }
.hud-mode.launcher-mode .launcher-head { gap: .65rem; margin-bottom: .7rem; }
.hud-mode.launcher-mode .launcher-avatar { width: 50px; height: 50px; flex-basis: 50px; font-size: 1.45rem; }
.hud-mode.launcher-mode .launcher-head h2 { margin-bottom: .05rem; font-size: 1.15rem; }
.hud-mode.launcher-mode .launcher-head p { margin-bottom: .2rem; }
.hud-mode.launcher-mode .launcher-grid { gap: .5rem; }
.hud-mode.launcher-mode .launcher-card { min-height: 102px; padding: .65rem .55rem; font-size: .78rem; }
.hud-mode.launcher-mode .launcher-card .launcher-icon { font-size: 1.55rem; line-height: 1; }
.hud-mode.launcher-mode .launcher-card > strong { font-size: .94rem; line-height: 1.12; letter-spacing: .045em; }
.hud-mode.launcher-mode .launcher-card small { font-size: .72rem; line-height: 1.28; }
.hud-mode main { padding: .8rem .65rem 1.35rem; }
.hud-mode .hud-picker { bottom: 112px; padding: .28rem; font-size: .62rem; }
.hud-mode .hud-picker-panel { gap: .25rem; padding: .4rem; border-radius: 12px; }
.hud-mode .hud-picker-head strong { font-size: .72rem; line-height: 1.15; }
.hud-mode .hud-picker-search span { font-size: .58rem; }
.hud-mode .hud-picker-search input,
.hud-mode .hud-picker-close,
.hud-mode .hud-picker-option { min-height: 44px; font-size: .62rem; }
.hud-mode .hud-picker-option { padding: .28rem .4rem; }
.hud-mode .filter-dialog {
  width: calc(100vw - .5rem);
  max-width: calc(100vw - .5rem);
  max-height: calc(100vh - .5rem);
  padding: .45rem;
  overflow: hidden;
  font-size: .68rem;
}
.hud-mode .filter-dialog-form { gap: .22rem; }
.hud-mode .membership-actions { grid-template-columns: 1fr; }
.hud-mode .membership-tier, .hud-mode .membership-meter { width: 100%; max-width: 100%; }
.hud-mode .membership-alert-region, .hud-mode .membership-alert { width: 100%; max-width: 100%; }
.hud-mode .filter-dialog .dialog-title h2 { font-size: 1rem; }
.hud-mode .filter-dialog .field { gap: .05rem; }
.hud-mode .filter-dialog .field span { font-size: .65rem; line-height: 1.05; }
.hud-mode .filter-dialog input,
.hud-mode .filter-dialog select { min-height: 35px; padding: .2rem .4rem; font-size: .68rem; }
.hud-mode .filter-dialog button { min-height: 35px; padding: .25rem .45rem; font-size: .65rem; }
.hud-mode .filter-dialog .actions { margin-top: .12rem; }
.hud-mode header { padding: .8rem .7rem .65rem; }
.hud-mode .brand-mark { width: 64px; height: 64px; font-size: 1.8rem; }
.hud-mode header .filter-launch { width: 40px; height: 40px; min-height: 40px; }
.hud-mode .status,
.hud-mode .eyebrow,
.hud-mode .kicker,
.hud-mode .help,
.hud-mode .legal,
.hud-mode .notice,
.hud-mode .check,
.hud-mode .reasons li,
.hud-mode .chip { font-size: .82rem; }
.hud-mode button,
.hud-mode .button,
.hud-mode input,
.hud-mode textarea,
.hud-mode select { min-height: 56px; }
.hud-mode nav button { min-height: 81px; font-size: .72rem; }
.hud-mode nav button span { font-size: 1.4rem; }
.hud-mode .card { padding: 1rem .8rem; }
.hud-mode .hero h2 { font-size: 2rem; }
.hud-mode .actions { gap: .45rem; }
.hud-mode .checks { grid-template-columns: 1fr; }
.hud-mode .check { width: 100%; }
.hud-mode .showroom-intro h2 { font-size: 1.55rem; }
.hud-mode .showroom-intro p:last-child,
.hud-mode .showroom-count,
.hud-mode .showroom-details dt { font-size: .72rem; }
.showroom-mode header { padding: .55rem; }
.showroom-mode .brand-lockup { min-width: 0; gap: .45rem; }
.showroom-mode .brand-mark { width: 46px; height: 46px; border-radius: 14px; font-size: 1.25rem; }
.showroom-mode header h1 { font-size: 1.05rem; }
.showroom-mode .eyebrow { font-size: .46rem; letter-spacing: .12em; }
.showroom-mode .showroom-intro .kicker { font-size: .58rem; letter-spacing: .1em; }
.showroom-mode .showroom-intro h2 { font-size: 1.25rem; }
.showroom-mode body { overflow-x: hidden; }
.showroom-mode .shell { width: 100%; max-width: 100vw; min-width: 0; overflow-x: hidden; }
.showroom-mode main { width: 100%; min-width: 0; overflow-x: hidden; }
.showroom-mode .showroom-intro,
.showroom-mode .showroom-card { width: 100%; max-width: 100%; min-width: 0; }
.showroom-mode .showroom-intro h2,
.showroom-mode .showroom-intro p,
.showroom-mode .showroom-details dd { overflow-wrap: anywhere; }
.showroom-mode .showroom-controls button { min-width: 0; padding: .45rem .2rem; font-size: .68rem; }

.public-events-entry { width: 100%; margin-top: .75rem; }
.event-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: .8rem; flex-wrap: wrap; margin-bottom: 1rem; }
.event-heading h2, .event-heading h3 { margin-bottom: .25rem; }
.event-grid { display: grid; grid-template-columns: minmax(0,1fr); gap: 1rem; margin-bottom: 1.25rem; }
.event-card { padding: 0; overflow: hidden; }
.event-card-body { padding: 1rem; }
.event-poster { display: block; width: 100%; aspect-ratio: 16/9; object-fit: cover; background: var(--soft); }
.event-poster-empty { display: grid; place-items: center; color: var(--purple); font-size: 2rem; }
.event-card .compact { width: auto; min-height: 44px; }
.event-release { margin-bottom: 1rem; }
.event-analytics { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .5rem; margin: .75rem 0 1rem; }
.event-analytics div { padding: .65rem; border-radius: 12px; background: var(--soft); }
.event-analytics dt { color: var(--muted); font-size: .72rem; }
.event-analytics dd { margin: .15rem 0 0; font-size: 1.2rem; font-weight: 800; }
.event-cancel-occurrence { display: block; margin-top: .55rem; }

@media (min-width:620px) {
  .event-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .event-analytics { grid-template-columns: repeat(3,minmax(0,1fr)); }
}

@media (min-width:620px) {
  main { padding: 1.5rem 2rem; }
  .shell { min-height: 850px; margin: 2rem auto; overflow: hidden; border: 1px solid rgba(113,56,208,.16); border-radius: 28px; }
  .profile-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
}

@media (prefers-reduced-motion:reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; animation-duration: .01ms !important; }
}
