/* ═══ Students Hub — Game Lobby theme (2026-10-03) ═══════════════════════
 * Stitch "Arcade Academic" design system (project 4481946878143943737).
 * Opt-in per page: <link rel="stylesheet" href="lobby.css"> after base.css and
 * <body class="lobby">. Everything is scoped to body.lobby, so a page that does
 * not opt in is untouched. The home page (index.html) carries its own copy of
 * the dashboard-specific rules; this file is the shared chrome + components.
 *
 * It works by re-pointing base.css's design tokens (--white, --ink, --border,
 * --mor-2, …) to dark-glass values, so every rule that already reads a token
 * flips with no per-page edit. Hard-coded colours need a per-page block below.
 */
body.lobby {
  --ink:#f1ecff; --ink-2:#cfc8ee; --ink-3:#9d96c4;
  --white:#1a1545; --paper:rgba(255,255,255,.05);
  --border:rgba(255,255,255,.11); --border-2:rgba(255,255,255,.22);
  --mor:#8b7cff; --mor-dk:#6c5ce7; --mor-2:rgba(139,124,255,.18);
  --cyan:#22d3ee; --cyan-dk:#0891b2; --cyan-2:rgba(34,211,238,.14);
  --ok:#34d399; --ok-bg:rgba(52,211,153,.14);
  --warn:#fbbf24; --warn-bg:rgba(251,191,36,.14);
  --danger:#fb7185; --danger-bg:rgba(251,113,133,.14);
  --gold:#fbbf24; --gold-2:rgba(251,191,36,.16);
  --silver:#cbd5e1; --silver-2:rgba(203,213,225,.14);
  --bronze:#f59e0b; --bronze-2:rgba(245,158,11,.16);
  --stage-primary:#8b7cff; --stage-primary-dk:#c9c1ff; --stage-primary-2:rgba(139,124,255,.18);
  --stage-accent:#22d3ee; --stage-accent-dk:#8fe9f7; --stage-accent-2:rgba(34,211,238,.14);
  --stage-gradient:linear-gradient(135deg,#6c5ce7 0%,#0891b2 100%);
  --stage-glow:0 18px 40px -16px rgba(108,92,231,.7);
  --shadow-sm:0 10px 24px -18px rgba(0,0,0,.8); --shadow:0 18px 40px -22px rgba(0,0,0,.85); --shadow-lg:0 28px 60px -20px rgba(0,0,0,.9);
  --glass:linear-gradient(160deg,rgba(255,255,255,.09),rgba(255,255,255,.03));
  --lobby-cyan:#22d3ee; --flame:#ff7a2f;
  background:
    radial-gradient(900px 500px at 12% -8%,rgba(108,92,231,.38),transparent 60%),
    radial-gradient(800px 480px at 95% 8%,rgba(8,145,178,.30),transparent 60%),
    radial-gradient(700px 500px at 50% 110%,rgba(245,179,1,.10),transparent 60%),
    #0f0b24;
  background-attachment:fixed; min-height:100vh;
  color:var(--ink); font-family:'DM Sans',system-ui,sans-serif;
}
html:has(body.lobby) { background:#0f0b24; color-scheme:dark; }
body.lobby h1, body.lobby h2, body.lobby h3, body.lobby .card-title { font-family:'Outfit','DM Sans',sans-serif; font-weight:800; color:#fff; }
body.lobby a { color:#c9c1ff; }
body.lobby ::selection { background:rgba(139,124,255,.5); color:#fff; }

/* chrome */
body.lobby .topbar { background:rgba(15,11,36,.78); backdrop-filter:blur(14px); border-bottom:1px solid var(--border); }
body.lobby .topbar-brand { color:#fff; }
body.lobby .topbar-nav a { color:var(--ink-2); }
body.lobby .topbar-nav a:hover { background:rgba(139,124,255,.18); color:#fff; }
body.lobby .topbar-nav a.active { background:linear-gradient(180deg,#8b7cff,#6c5ce7); color:#fff; box-shadow:0 3px 0 #3f31a8, 0 0 18px rgba(139,124,255,.5); }
body.lobby .page-intro { background:var(--glass); border-color:var(--border-2); }
body.lobby .page-intro-title, body.lobby .page-intro-text strong, body.lobby .page-intro-link { color:#c9c1ff; }
body.lobby .page-intro-text { color:var(--ink-2); }
body.lobby .page-intro-dismiss { background:rgba(255,255,255,.08); border-color:var(--border-2); color:var(--ink); }

/* surfaces */
body.lobby .card, body.lobby .modal {
  background:var(--glass); border:1px solid var(--border); border-radius:20px; color:var(--ink);
  box-shadow:0 18px 40px -26px rgba(0,0,0,.8), inset 0 1px 0 rgba(255,255,255,.08); backdrop-filter:blur(10px);
}
body.lobby .modal { background:#1a1545; }
body.lobby .modal-overlay { background:rgba(8,5,24,.72); backdrop-filter:blur(4px); }
body.lobby .card-sub { color:var(--ink-3); }
body.lobby .empty { color:var(--ink-3); }
body.lobby .empty-title { color:var(--ink-2); }
body.lobby .skel { background:rgba(255,255,255,.08); }

/* chunky 3D buttons */
body.lobby .btn { border-radius:14px; font-family:'Outfit',sans-serif; font-weight:700; }
body.lobby .btn-primary {
  background:linear-gradient(180deg,#9a8cff,#6c5ce7); color:#fff; border:1px solid #b9b0ff;
  box-shadow:0 4px 0 #3f31a8, 0 12px 24px -8px rgba(108,92,231,.7);
}
body.lobby .btn-primary:hover { filter:brightness(1.08); transform:translateY(-2px); box-shadow:0 6px 0 #3f31a8, 0 16px 28px -8px rgba(108,92,231,.8); }
body.lobby .btn-primary:active { transform:translateY(3px); box-shadow:0 1px 0 #3f31a8; }
body.lobby .btn-secondary { background:rgba(255,255,255,.07); color:#fff; border:1px solid var(--border-2); border-bottom-width:3px; }
body.lobby .btn-secondary:hover { background:rgba(34,211,238,.12); border-color:var(--lobby-cyan); }
body.lobby .btn-ghost { color:var(--ink-2); }
body.lobby .btn-ghost:hover { background:rgba(139,124,255,.18); color:#fff; }
body.lobby .btn-danger { background:linear-gradient(180deg,#fb7185,#e11d48); color:#fff; box-shadow:0 4px 0 #9f1239; }
body.lobby .btn-stage, body.lobby .btn-gold {
  background:linear-gradient(180deg,#ffd54a,#f5a30b); color:#3b2600; border:2px solid #fff3c4;
  box-shadow:0 5px 0 #b45309, 0 14px 28px -8px rgba(245,158,11,.6);
}
body.lobby .btn-stage:hover { filter:brightness(1.05); transform:translateY(-2px); }
body.lobby .btn-stage:active { transform:translateY(4px); box-shadow:0 1px 0 #b45309; }

/* forms + chips */
body.lobby .field-label { color:var(--ink-2); }
body.lobby .input, body.lobby .select, body.lobby .textarea, body.lobby select, body.lobby input[type=text], body.lobby input[type=search] {
  background:rgba(0,0,0,.28); color:#fff; border:1px solid var(--border-2); border-radius:12px;
}
body.lobby .input::placeholder, body.lobby .textarea::placeholder { color:var(--ink-3); }
body.lobby .input:focus, body.lobby .select:focus, body.lobby .textarea:focus { border-color:var(--lobby-cyan); box-shadow:0 0 0 3px rgba(34,211,238,.25); }
body.lobby .select option, body.lobby select option { background:#1a1545; color:#fff; }
body.lobby .badge { background:rgba(255,255,255,.07); color:var(--ink-2); border-color:var(--border-2); }
body.lobby .badge-mor { background:rgba(139,124,255,.2); color:#c9c1ff; border-color:rgba(139,124,255,.5); }
body.lobby .badge-cyan { background:rgba(34,211,238,.16); color:#8fe9f7; border-color:rgba(34,211,238,.5); }
body.lobby .badge-ok { background:var(--ok-bg); color:var(--ok); border-color:rgba(52,211,153,.5); }
body.lobby .badge-warn { background:var(--warn-bg); color:var(--warn); border-color:rgba(251,191,36,.5); }
body.lobby .badge-danger { background:var(--danger-bg); color:var(--danger); border-color:rgba(251,113,133,.5); }
body.lobby a:focus-visible, body.lobby button:focus-visible, body.lobby .btn:focus-visible, body.lobby [tabindex]:focus-visible { outline-color:var(--lobby-cyan); }

/* hero banners: richer, deeper gradient (home-hero family) */
body.lobby { --stage-gradient:linear-gradient(135deg,#5b49e0 0%,#2a2090 52%,#0b6c8a 100%); }

/* ── per-page hard-coded light surfaces ─────────────────────────────── */
/* welcome.html + how-points-work.html */
body.lobby .flow-step, body.lobby .page-card, body.lobby .glossary, body.lobby section.hpw-card {
  background:var(--glass); border-color:var(--border); border-radius:20px; color:var(--ink);
  box-shadow:0 18px 40px -26px rgba(0,0,0,.8), inset 0 1px 0 rgba(255,255,255,.08);
}
body.lobby .page-card-icon { background:rgba(139,124,255,.2); }
body.lobby .flow-step-num, body.lobby .flow-step-link { color:#8fe9f7; }
body.lobby .page-card-open { background:linear-gradient(180deg,#9a8cff,#6c5ce7); box-shadow:0 3px 0 #3f31a8; }
body.lobby .tip { background:rgba(251,191,36,.12); border-left-color:#fbbf24; color:#fde68a; }
body.lobby .tip strong { color:#fbbf24; }
body.lobby .boundary { background:rgba(251,113,133,.12); border-color:rgba(251,113,133,.45); }
body.lobby .boundary-title, body.lobby .boundary-text strong { color:#fda4af; }
body.lobby .boundary-text { color:#fecdd3; }
body.lobby .gloss-def code { background:rgba(255,255,255,.1); color:#c9c1ff; }
body.lobby .not-built .nb { background:rgba(255,255,255,.05); }
body.lobby section.hpw-card h2 { font-family:"Outfit","DM Sans",sans-serif; }

/* practice-run.html — the question card is a LIGHT "paper" surface inside the dark lobby.
   Maths, equations and diagrams are authored on white, and a reader needs the most contrast
   here; the dark chrome around it keeps the game feel. Tokens are reset locally so every
   base.css / page rule that reads a variable renders its normal light-theme value. */
body.lobby .qcard {
  --ink:#1a1d29; --ink-2:#475066; --ink-3:#6b7490; --white:#ffffff; --paper:#f4f3fb;
  --border:#dedcf0; --border-2:#c9c5e6;
  --ok:#166534; --ok-bg:#dcfce7; --danger:#b91c1c; --danger-bg:#fee2e2;
  --gold-2:#fef3c7; --stage-primary:#6c5ce7; --stage-primary-dk:#4e3db8; --stage-primary-2:#efedfb;
  --stage-accent:#0891b2;
  background:#fff; color:#1a1d29; border:2px solid #fff3c4; border-radius:22px; backdrop-filter:none;
  box-shadow:0 28px 60px -24px rgba(0,0,0,.9), 0 0 0 6px rgba(139,124,255,.18), 0 0 40px -8px rgba(139,124,255,.55);
}
body.lobby .qcard-head { background:linear-gradient(135deg,#ece8ff,#d9f6fb); border-bottom:1px solid #dedcf0; }
body.lobby .q-counter { color:#4e3db8; }
body.lobby .q-streak-pill { background:#fff; color:#475066; border-color:#c9c5e6; }
body.lobby .q-streak-pill.is-hot { color:#92400e; background:#fef3c7; border-color:#fcd34d; box-shadow:0 6px 16px -8px rgba(245,158,11,.8); }
body.lobby .q-mini-progress { background:rgba(108,92,231,.14); border-color:rgba(108,92,231,.22); }
body.lobby .qstem { color:#1a1d29; }
body.lobby .qopt { background:#fff; border:2px solid #dedcf0; border-bottom-width:4px; border-radius:16px; color:#1a1d29; box-shadow:none; }
body.lobby .qopt:hover:not(.is-locked) { background:#f4f1ff; border-color:#6c5ce7; transform:translateY(-2px); box-shadow:0 10px 20px -14px rgba(108,92,231,.7); }
body.lobby .qopt:active:not(.is-locked) { transform:translateY(2px); border-bottom-width:2px; }
body.lobby .qopt .letter { background:#efedfb; border:1.5px solid #c9c5e6; color:#4e3db8; }
body.lobby .qopt.is-pending { background:#efedfb; border-color:#6c5ce7; }
body.lobby .qopt.is-correct, body.lobby .qopt.is-correct-untouched { background:#dcfce7; border-color:#22a35a; box-shadow:0 0 0 3px rgba(34,163,90,.18); }
body.lobby .qopt.is-wrong { background:#fee2e2; border-color:#e5484d; box-shadow:0 0 0 3px rgba(229,72,77,.15); }
body.lobby .qopt.is-correct .letter, body.lobby .qopt.is-correct-untouched .letter { background:#22a35a; border-color:#22a35a; color:#fff; }
body.lobby .qopt.is-wrong .letter { background:#e5484d; border-color:#e5484d; color:#fff; }
body.lobby .feedback.ok { background:#dcfce7; color:#166534; border-color:#86e0ac; box-shadow:none; }
body.lobby .feedback.no { background:#fee2e2; color:#b91c1c; border-color:#f5a3a6; }
body.lobby .feedback.ok .icon { background:#22a35a; color:#fff; box-shadow:none; }
body.lobby .feedback.no .icon { background:#e5484d; color:#fff; }
body.lobby .fb-explain { color:#475066; }
body.lobby .btn-next { background:linear-gradient(180deg,#ffd54a,#f5a30b); color:#3b2600; border:2px solid #fff3c4; box-shadow:0 4px 0 #b45309, 0 12px 24px -8px rgba(245,158,11,.6); }
body.lobby .btn-next:disabled { background:linear-gradient(180deg,#d9d6ee,#bdb8de); color:#6b6890; border-color:#e8e6f6; box-shadow:0 4px 0 #9b96c4; opacity:1; }
body.lobby .btn-next:active:not(:disabled) { transform:translateY(3px); box-shadow:0 1px 0 #b45309; }
/* the Next button sits on the paper card, so keep its disabled state quiet but legible */

/* shared decorative primitives (reused by page blocks) */
@keyframes lobbyPulse { 0%,100%{box-shadow:0 6px 0 #b45309,0 16px 34px -6px rgba(245,158,11,.55)} 50%{box-shadow:0 6px 0 #b45309,0 16px 46px 0 rgba(245,158,11,.95)} }
@keyframes lobbyShine { from{background-position:-80% 0} to{background-position:180% 0} }
@media (prefers-reduced-motion: reduce) {
  body.lobby *, body.lobby *::before, body.lobby *::after { animation:none !important; transition:none !important; }
}

/* ═══ BLOOM theme (light) — Stitch "Bloom Journal Gamified Study" ═══════════
 * Second, opt-in look: html.theme-bloom (set by the navbar toggle, remembered in
 * localStorage 'sh-theme'). Same lobby mechanics, but a warm cream / lilac / blush /
 * peach / mint surface, plum ink, rose + violet + honey accents. Higher specificity
 * (html.theme-bloom body.lobby …) so it beats both the dark rules above and the home
 * page's own inline dark block without touching either.
 * Stitch project 17354194080994457753.
 */
html.theme-bloom { background:#fff8fb; color-scheme:light; }
html.theme-bloom body.lobby {
  --ink:#211143; --ink-2:#4a3f6b; --ink-3:#7a6f99;
  --white:#ffffff; --paper:#f9f1ff;
  --border:#eadff8; --border-2:#d9c9f3;
  --mor:#7757fa; --mor-dk:#5e39e0; --mor-2:#efe7ff;
  --cyan:#0891b2; --cyan-dk:#0e7490; --cyan-2:#e0f7fb;
  --ok:#15803d; --ok-bg:#dcfce7; --warn:#92400e; --warn-bg:#fff1cc;
  --danger:#be123c; --danger-bg:#ffe1e8;
  --gold:#ffb830; --gold-2:#fff1cc; --silver:#94a3b8; --silver-2:#f1f5f9; --bronze:#c2570c; --bronze-2:#ffe6d2;
  --stage-primary:#7757fa; --stage-primary-dk:#5e39e0; --stage-primary-2:#efe7ff;
  --stage-accent:#ff6fae; --stage-accent-dk:#be185d; --stage-accent-2:#ffe1ee;
  --stage-gradient:linear-gradient(135deg,#6a4bf0 0%,#9b5cf6 52%,#e0529c 100%);
  --stage-glow:0 16px 34px -16px rgba(119,87,250,.55);
  --shadow-sm:0 8px 22px -16px rgba(119,87,250,.35); --shadow:0 14px 34px -18px rgba(119,87,250,.4); --shadow-lg:0 26px 56px -22px rgba(119,87,250,.45);
  --glass:linear-gradient(160deg,#ffffff,#fdf8ff);
  --lobby-cyan:#7757fa; --flame:#ff7a2f;
  background:
    radial-gradient(700px 420px at 8% -6%,#e9defd 0%,transparent 62%),
    radial-gradient(640px 420px at 96% 4%,#ffd9e8 0%,transparent 62%),
    radial-gradient(620px 460px at 4% 98%,#d4f5e4 0%,transparent 60%),
    radial-gradient(640px 460px at 100% 100%,#ffe3cf 0%,transparent 60%),
    #fff8fb;
  background-attachment:fixed; color:var(--ink);
}
html.theme-bloom:has(body.lobby) { background:#fff8fb; color-scheme:light; }
html.theme-bloom body.lobby h1, html.theme-bloom body.lobby h2, html.theme-bloom body.lobby h3,
html.theme-bloom body.lobby .card-title, html.theme-bloom body.lobby .hero-name,
html.theme-bloom body.lobby .command-main, html.theme-bloom body.lobby .stat-tile-val,
html.theme-bloom body.lobby .quest-card .q-title, html.theme-bloom body.lobby .card-h h3 { font-family:'Comfortaa','DM Sans',sans-serif; color:var(--ink); }
html.theme-bloom body.lobby a { color:#5e39e0; }
html.theme-bloom body.lobby ::selection { background:#ffd9e8; color:#211143; }

/* chrome */
html.theme-bloom body.lobby .topbar { background:rgba(255,248,251,.86); border-bottom:1px solid var(--border); }
html.theme-bloom body.lobby .topbar-brand { color:var(--ink); }
html.theme-bloom body.lobby .topbar-nav a { color:var(--ink-2); }
html.theme-bloom body.lobby .topbar-nav a:hover { background:#efe7ff; color:#5e39e0; }
html.theme-bloom body.lobby .topbar-nav a.active { background:linear-gradient(180deg,#8d70ff,#7757fa); color:#fff; box-shadow:0 3px 0 #5232c9, 0 8px 18px -6px rgba(119,87,250,.6); }
html.theme-bloom body.lobby .page-intro { background:linear-gradient(135deg,#f3ecff,#ffe9f2); border-color:#e3d3fb; }
html.theme-bloom body.lobby .page-intro-title, html.theme-bloom body.lobby .page-intro-text strong, html.theme-bloom body.lobby .page-intro-link { color:#5e39e0; }
html.theme-bloom body.lobby .page-intro-text { color:var(--ink-2); }
html.theme-bloom body.lobby .page-intro-dismiss { background:#fff; border-color:#e3d3fb; color:var(--ink-2); }

/* surfaces */
html.theme-bloom body.lobby .card, html.theme-bloom body.lobby .modal,
html.theme-bloom body.lobby .command-card, html.theme-bloom body.lobby .stat-tile,
html.theme-bloom body.lobby .quest-card, html.theme-bloom body.lobby .ach-tile,
html.theme-bloom body.lobby .flow-step, html.theme-bloom body.lobby .page-card,
html.theme-bloom body.lobby .glossary, html.theme-bloom body.lobby section.hpw-card {
  background:var(--glass); border:1px solid var(--border); border-radius:26px; color:var(--ink);
  box-shadow:0 14px 34px -20px rgba(119,87,250,.38), inset 0 1px 0 #fff; backdrop-filter:none;
}
html.theme-bloom body.lobby .modal-overlay { background:rgba(60,30,110,.35); }
html.theme-bloom body.lobby .card-sub, html.theme-bloom body.lobby .empty, html.theme-bloom body.lobby .command-sub,
html.theme-bloom body.lobby .quest-card .q-sub, html.theme-bloom body.lobby .stat-tile-lbl { color:var(--ink-3); }
html.theme-bloom body.lobby .empty-title { color:var(--ink-2); }
html.theme-bloom body.lobby .skel { background:#efe7ff; }

/* buttons */
html.theme-bloom body.lobby .btn { font-family:'Comfortaa','DM Sans',sans-serif; border-radius:999px; }
html.theme-bloom body.lobby .btn-primary { background:linear-gradient(180deg,#8d70ff,#7757fa); color:#fff; border:1px solid #a994ff; box-shadow:0 4px 0 #5232c9, 0 12px 24px -10px rgba(119,87,250,.6); }
html.theme-bloom body.lobby .btn-primary:hover { box-shadow:0 6px 0 #5232c9, 0 16px 28px -10px rgba(119,87,250,.7); }
html.theme-bloom body.lobby .btn-primary:active { box-shadow:0 1px 0 #5232c9; }
html.theme-bloom body.lobby .btn-secondary { background:#fff; color:var(--ink); border:1.5px solid var(--border-2); border-bottom-width:3px; }
html.theme-bloom body.lobby .btn-secondary:hover { background:#f6f0ff; border-color:#7757fa; }
html.theme-bloom body.lobby .btn-ghost { color:var(--ink-2); }
html.theme-bloom body.lobby .btn-ghost:hover { background:#efe7ff; color:#5e39e0; }
html.theme-bloom body.lobby .btn-danger { background:linear-gradient(180deg,#ff6b8f,#e11d48); box-shadow:0 4px 0 #9f1239; }
html.theme-bloom body.lobby .card .btn-secondary { background:#fff; color:var(--ink); border:1.5px solid var(--border-2); border-bottom-width:3px; border-radius:999px; }
html.theme-bloom body.lobby .card .btn-secondary:hover { background:#f6f0ff; border-color:#7757fa; }

/* forms + chips */
html.theme-bloom body.lobby .field-label { color:var(--ink-2); }
html.theme-bloom body.lobby .input, html.theme-bloom body.lobby .select, html.theme-bloom body.lobby .textarea,
html.theme-bloom body.lobby select, html.theme-bloom body.lobby input[type=text], html.theme-bloom body.lobby input[type=search] {
  background:#fff; color:var(--ink); border:1.5px solid var(--border-2); border-radius:14px;
}
html.theme-bloom body.lobby .select option, html.theme-bloom body.lobby select option { background:#fff; color:var(--ink); }
html.theme-bloom body.lobby .badge { background:#f6f0ff; color:var(--ink-2); border-color:var(--border-2); }
html.theme-bloom body.lobby .badge-mor { background:#efe7ff; color:#5e39e0; border-color:#d3c3fb; }
html.theme-bloom body.lobby .badge-cyan { background:#e0f7fb; color:#0e7490; border-color:#a5e3ef; }
html.theme-bloom body.lobby .badge-ok { background:#dcfce7; color:#15803d; border-color:#9be6b5; }
html.theme-bloom body.lobby .badge-warn { background:#fff1cc; color:#92400e; border-color:#f6d27a; }
html.theme-bloom body.lobby .badge-danger { background:#ffe1e8; color:#be123c; border-color:#f7a8bc; }

/* home hero — pastel journal card */
html.theme-bloom body.lobby .hero-v2 {
  background:
    radial-gradient(360px 200px at 100% 0%,rgba(255,111,174,.30),transparent 65%),
    radial-gradient(360px 220px at 0% 100%,rgba(119,87,250,.22),transparent 65%),
    linear-gradient(135deg,#eadffd 0%,#ffdce9 58%,#ffe6d3 100%);
  border:1px solid #fff; color:var(--ink);
  box-shadow:0 26px 50px -26px rgba(119,87,250,.5), inset 0 1px 0 #fff;
}
html.theme-bloom body.lobby .hero-v2::before { background:radial-gradient(circle at 92% 18%,rgba(255,255,255,.7) 0%,transparent 55%); }
html.theme-bloom body.lobby .hero-v2::after { background-image:radial-gradient(2.5px 2.5px at 18% 28%,#ffb830,transparent),radial-gradient(2px 2px at 64% 74%,#ff6fae,transparent),radial-gradient(2.5px 2.5px at 84% 24%,#7757fa,transparent),radial-gradient(2px 2px at 42% 86%,#ffb830,transparent); opacity:.7; }
html.theme-bloom body.lobby .hero-avatar-shell { filter:drop-shadow(0 8px 16px rgba(119,87,250,.35)); }
html.theme-bloom body.lobby .hero-avatar-shell .ring-track-v2 { stroke:rgba(119,87,250,.16); }
html.theme-bloom body.lobby .hero-avatar-shell .ring-fill-v2 { stroke:#ff6fae; filter:drop-shadow(0 0 6px rgba(255,111,174,.6)); }
html.theme-bloom body.lobby .hero-avatar-shell .avatar-pic { background:#fff; box-shadow:inset 0 0 0 3px #fff, 0 6px 16px -6px rgba(119,87,250,.4); }
html.theme-bloom body.lobby .hero-avatar-shell .lvl-badge { background:linear-gradient(180deg,#ffd266,#ffb020); color:#4a2b00; border:2px solid #fff; box-shadow:0 3px 0 #c98108, 0 8px 16px rgba(255,176,32,.5); }
html.theme-bloom body.lobby .hero-greet { color:#8a3d6e; }
html.theme-bloom body.lobby .hero-name { color:var(--ink); text-shadow:none; }
html.theme-bloom body.lobby .hero-pill { background:rgba(255,255,255,.75); border-color:#e3d3fb; color:var(--ink-2); }
html.theme-bloom body.lobby .hero-pill[data-tier] { background:#fff1cc; border-color:#f6d27a; color:#7a4a00; }
html.theme-bloom body.lobby .hero-cta { background:linear-gradient(180deg,#ffd266,#ffb020); color:#4a2b00; border:2px solid #fff; border-radius:999px; box-shadow:0 5px 0 #c98108, 0 14px 28px -8px rgba(255,176,32,.7); }
html.theme-bloom body.lobby .hero-cta-eyebrow, html.theme-bloom body.lobby .hero-cta .reset { color:#7a4a00; }
html.theme-bloom body.lobby .hero-cta .reward { background:#4a2b00; color:#ffd266; }

/* headings of home sections */
html.theme-bloom body.lobby .quest-h h2::before { content:'🌸 '; }
html.theme-bloom body.lobby .quest-h .meta, html.theme-bloom body.lobby .ach-h .meta { color:#5e39e0; background:#efe7ff; border-color:#d3c3fb; }

/* quests */
html.theme-bloom body.lobby .quest-card { border-color:#e3d3fb; }
html.theme-bloom body.lobby .quest-card::before { background:radial-gradient(240px 120px at 0% 0%,rgba(255,111,174,.14),transparent 70%); }
html.theme-bloom body.lobby .quest-card:hover { border-color:#7757fa; box-shadow:0 20px 40px -20px rgba(119,87,250,.55); }
html.theme-bloom body.lobby .quest-card .q-glyph { background:linear-gradient(160deg,#9b83ff,#7757fa); box-shadow:0 4px 0 #5232c9; color:#fff; }
html.theme-bloom body.lobby .quest-card[data-quest="challenge"] .q-glyph { background:linear-gradient(160deg,#ffd266,#ffb020); box-shadow:0 4px 0 #c98108; }
html.theme-bloom body.lobby .quest-card[data-quest="streak"] .q-glyph { background:linear-gradient(160deg,#ff9bc6,#ff6fae); box-shadow:0 4px 0 #c2417f; }
html.theme-bloom body.lobby .quest-card .q-reward { color:#b86e00; border-top-color:#eadff8; }
html.theme-bloom body.lobby .quest-card.is-done { background:linear-gradient(160deg,#e3f9ec,#f3fcf7); border-color:#6ed3a0; }
html.theme-bloom body.lobby .quest-card.is-done::after { background:#22a35a; color:#fff; box-shadow:none; }
html.theme-bloom body.lobby .quest-card.is-done .q-glyph { background:linear-gradient(160deg,#4cd08a,#22a35a); box-shadow:0 4px 0 #17803f; }
html.theme-bloom body.lobby .quest-card.is-done .q-reward { color:#15803d; }
html.theme-bloom body.lobby .quest-node { background:#fff; border-color:var(--border); color:var(--ink-2); }
html.theme-bloom body.lobby .quest-node .node-dot { background:#fff; border-color:#d3c3fb; }
html.theme-bloom body.lobby .quest-node.is-done { background:#e3f9ec; border-color:#6ed3a0; color:#15803d; }
html.theme-bloom body.lobby .quest-node.is-done .node-dot { background:#22a35a; box-shadow:none; }
html.theme-bloom body.lobby .quest-chest { background:#fff; border-color:#d3c3fb; color:var(--ink-3); }
html.theme-bloom body.lobby .quest-chest.is-open { background:linear-gradient(160deg,#fff1cc,#ffe3a0); border-color:#ffb830; color:#7a4a00; animation:none; box-shadow:0 8px 20px -10px rgba(255,176,32,.8); }

/* status deck, streak week, stats */
html.theme-bloom body.lobby .command-card::after { background:radial-gradient(circle,rgba(255,111,174,.22),transparent 70%); }
html.theme-bloom body.lobby .command-eyebrow { color:#7757fa; }
html.theme-bloom body.lobby .command-main { color:var(--ink); }
html.theme-bloom body.lobby .xp-track { background:#efe7ff; border-color:#e3d3fb; box-shadow:inset 0 2px 4px rgba(119,87,250,.12); }
html.theme-bloom body.lobby .xp-fill { background:linear-gradient(90deg,#9b83ff,#ff6fae 60%,#ffb830); box-shadow:0 0 12px rgba(255,111,174,.5); }
html.theme-bloom body.lobby .command-link { color:#5e39e0; }
html.theme-bloom body.lobby .week-cal .wd { color:var(--ink-3); }
html.theme-bloom body.lobby .week-cal .wd i { background:#f4eaff; border-color:#e3d3fb; }
html.theme-bloom body.lobby .week-cal .wd.on i { background:linear-gradient(160deg,#ff9bc6,#ff6fae); border-color:#ffc2dc; box-shadow:0 4px 10px -3px rgba(255,111,174,.7); }
html.theme-bloom body.lobby .week-cal .wd.today i { outline-color:#ffb830; }
html.theme-bloom body.lobby .stat-tile-val { color:var(--ink); }
html.theme-bloom body.lobby .stat-tile-icon { box-shadow:none; }
html.theme-bloom body.lobby .stat-tile-icon.icon-gold { background:#fff1cc; color:#e69a00; }
html.theme-bloom body.lobby .stat-tile-icon.icon-flame { background:#ffe6d2; color:#f26a1f; }
html.theme-bloom body.lobby .stat-tile-icon.icon-mor { background:#efe7ff; color:#7757fa; }
html.theme-bloom body.lobby .stat-tile-icon.icon-cyan { background:#ffe1ee; color:#e0529c; }

/* achievements = enamel pins */
html.theme-bloom body.lobby .ach-tile:not(.locked) { border-color:#ffd27a; background:linear-gradient(160deg,#fff4d6,#fffaf0); box-shadow:0 12px 26px -14px rgba(255,176,32,.7); }
html.theme-bloom body.lobby .ach-tile .ach-glyph { filter:drop-shadow(0 4px 6px rgba(255,176,32,.45)); }
html.theme-bloom body.lobby .ach-tile.locked { background:#f6f0ff; border:1.5px dashed #d3c3fb; }
html.theme-bloom body.lobby .ach-tile.locked .ach-glyph { filter:grayscale(1) opacity(.45); }
html.theme-bloom body.lobby .ach-tile .ach-label { color:var(--ink); }
html.theme-bloom body.lobby .ach-tile.locked .ach-label { color:var(--ink-3); }
html.theme-bloom body.lobby .ach-tile .ach-progress { background:#eadff8; }
html.theme-bloom body.lobby .ach-tile .ach-progress > span { background:linear-gradient(90deg,#9b83ff,#ff6fae); }

/* recent practice */
html.theme-bloom body.lobby .card-h .more { color:#5e39e0; }
html.theme-bloom body.lobby .test-row:hover { background:#f9f1ff; }
html.theme-bloom body.lobby .test-row-title { color:var(--ink); }
html.theme-bloom body.lobby .test-row-meta { color:var(--ink-3); }
html.theme-bloom body.lobby .test-row-score { background:#fff1cc; color:#8a5200; border-color:#f6d27a; }

/* welcome / how-points-work leftovers */
html.theme-bloom body.lobby .page-card-icon { background:linear-gradient(135deg,#efe7ff,#ffe1ee); }
html.theme-bloom body.lobby .flow-step-num, html.theme-bloom body.lobby .flow-step-link { color:#5e39e0; }
html.theme-bloom body.lobby .page-card-open { background:linear-gradient(180deg,#8d70ff,#7757fa); box-shadow:0 3px 0 #5232c9; color:#fff; }
html.theme-bloom body.lobby .tip { background:#fff4d6; border-left-color:#ffb830; color:#78350f; }
html.theme-bloom body.lobby .tip strong { color:#92400e; }
html.theme-bloom body.lobby .boundary { background:#ffe9ee; border-color:#f7b4c4; }
html.theme-bloom body.lobby .boundary-title, html.theme-bloom body.lobby .boundary-text strong { color:#9f1239; }
html.theme-bloom body.lobby .boundary-text { color:#7f1d3a; }
html.theme-bloom body.lobby .gloss-def code { background:#f4eaff; color:#5e39e0; }
html.theme-bloom body.lobby .not-built .nb { background:#f9f1ff; }

/* practice-run question card: same paper, softer frame */
html.theme-bloom body.lobby .qcard { border:2px solid #fff; box-shadow:0 22px 46px -22px rgba(119,87,250,.5), 0 0 0 6px rgba(255,111,174,.12); }
html.theme-bloom body.lobby .qcard-head { background:linear-gradient(135deg,#f0e8ff,#ffe6f0); }
html.theme-bloom body.lobby .qopt { border-color:#eadff8; border-radius:20px; }
html.theme-bloom body.lobby .qopt.is-correct, html.theme-bloom body.lobby .qopt.is-correct-untouched { border-color:#22a35a; box-shadow:0 0 0 3px rgba(34,163,90,.18); }
html.theme-bloom body.lobby .qopt.is-wrong { border-color:#e5484d; box-shadow:0 0 0 3px rgba(229,72,77,.15); }
html.theme-bloom body.lobby .qopt.is-pending { border-color:#7757fa; }
html.theme-bloom body.lobby .btn-next { border-radius:999px; }


/* gradient banners keep white text in Bloom; stand-alone chips get a pastel pill */
html.theme-bloom body.lobby .stage-hero, html.theme-bloom body.lobby .hero-dc, html.theme-bloom body.lobby .av-hero,
html.theme-bloom body.lobby .hpw-hero, html.theme-bloom body.lobby .welcome-hero { color:#fff; }
html.theme-bloom body.lobby .stage-hero h1, html.theme-bloom body.lobby .stage-hero h2, html.theme-bloom body.lobby .stage-hero h3,
html.theme-bloom body.lobby .hero-dc h1, html.theme-bloom body.lobby .hero-dc h2, html.theme-bloom body.lobby .av-hero h1,
html.theme-bloom body.lobby .av-hero h2, html.theme-bloom body.lobby .hpw-hero h1, html.theme-bloom body.lobby .hpw-hero h2,
html.theme-bloom body.lobby .welcome-hero h1, html.theme-bloom body.lobby .welcome-hero h2 { color:#fff; }
html.theme-bloom body.lobby .stage-hero a, html.theme-bloom body.lobby .hero-dc a, html.theme-bloom body.lobby .welcome-hero a { color:#fff; }
html.theme-bloom body.lobby .stage-chip { background:#efe7ff; border:1px solid #d3c3fb; color:#5e39e0; backdrop-filter:none; }
html.theme-bloom body.lobby .stage-hero .stage-chip, html.theme-bloom body.lobby .hero-dc .stage-chip, html.theme-bloom body.lobby .av-hero .stage-chip {
  background:rgba(255,255,255,.22); border-color:rgba(255,255,255,.45); color:#fff; }
html.theme-bloom body.lobby .welcome-hero { background:var(--stage-gradient); }
html.theme-bloom body.lobby .hero-pra p { color:var(--ink-3); }

/* theme toggle button in the navbar (shared by both themes) */
.theme-toggle-btn { background:transparent; border:1px solid var(--border-2,#d3d7e1); border-radius:999px; width:34px; height:34px; cursor:pointer; font-size:1rem; line-height:1; display:inline-flex; align-items:center; justify-content:center; transition:transform .12s; }
.theme-toggle-btn:hover { transform:scale(1.1) rotate(-8deg); }

/* ═══ PRO theme (3rd look) — calm, data-forward, for teachers / school leaders / testers ═══
 * Stitch reference: "Pro" dashboard (project 4481946878143943737). Layered ON TOP of Bloom:
 * the switcher sets html.theme-bloom + html.theme-pro together, so every structural light-theme
 * rule above still applies and this block only swaps palette, radius, type and removes the play
 * decoration (glow, 3D button edges, pulse/shine/float animation, emoji heading marks).
 * Higher specificity (html.theme-bloom.theme-pro body.lobby …) so it wins over Bloom.
 */
html.theme-pro, html.theme-pro:has(body.lobby) { background: #f4f6fb; }
html.theme-bloom.theme-pro body.lobby {
  --ink:#0f172a; --ink-2:#475569; --ink-3:#64748b;
  --white:#ffffff; --paper:#f1f5f9;
  --border:#e2e8f0; --border-2:#cbd5e1;
  --mor:#4338ca; --mor-dk:#3730a3; --mor-2:#eef2ff;
  --cyan:#0f766e; --cyan-dk:#115e59; --cyan-2:#ccfbf1;
  --ok:#15803d; --ok-bg:#dcfce7; --warn:#92400e; --warn-bg:#fef3c7;
  --danger:#b91c1c; --danger-bg:#fee2e2;
  --gold:#b45309; --gold-2:#fef3c7;
  --stage-primary:#4338ca; --stage-primary-dk:#3730a3; --stage-primary-2:#eef2ff;
  --stage-accent:#0f766e; --stage-accent-dk:#115e59; --stage-accent-2:#ccfbf1;
  --stage-gradient:linear-gradient(135deg,#312e81 0%,#4338ca 100%);
  --stage-glow:0 1px 2px rgba(15,23,42,.12);
  --shadow-sm:0 1px 2px rgba(15,23,42,.06); --shadow:0 2px 8px rgba(15,23,42,.08); --shadow-lg:0 12px 28px rgba(15,23,42,.14);
  --glass:#ffffff;
  --lobby-cyan:#4338ca;
  background:#f4f6fb !important; color:var(--ink);
}
/* typography: DM Sans everywhere, no display faces */
html.theme-bloom.theme-pro body.lobby :is(h1,h2,h3,.card-title,.hero-name,.command-main,.stat-tile-val,.quest-card .q-title,.card-h h3,.nm,.rs-title,.tr-hero h1,.cs-head h1,.test-row-score,.big-pct,.rs-box .v,.btn,.hero-cta,.btn-next,.cs-char-card .nm,.cs-item .nm,.rs-badge b,.lvl-badge,.cs-plate .nm,.tr-card .nm) {
  font-family:'DM Sans',system-ui,sans-serif; letter-spacing:0;
}
html.theme-bloom.theme-pro body.lobby h1, html.theme-bloom.theme-pro body.lobby h2, html.theme-bloom.theme-pro body.lobby h3 { font-weight:700; }

/* surfaces: crisp white cards, thin borders, 12px */
html.theme-bloom.theme-pro body.lobby :is(.card,.modal,.command-card,.stat-tile,.quest-card,.ach-tile,.flow-step,.page-card,.glossary,section.hpw-card,.tr-card,.cs-item,.cs-char-card,.cs-form,.rs-box,.rs-badge,.tr-feature,.cs-evo,.cs-chars,.cs-wardrobe,.cs-section,.cs-stage-card,.page-intro) {
  background:#fff; border:1px solid var(--border); border-radius:12px; box-shadow:var(--shadow-sm);
}
html.theme-bloom.theme-pro body.lobby .cs-stage-card, html.theme-bloom.theme-pro body.lobby .cs-scene { border-radius:12px; }
html.theme-bloom.theme-pro body.lobby .command-card::after, html.theme-bloom.theme-pro body.lobby .quest-card::before { display:none; }
html.theme-bloom.theme-pro body.lobby .page-intro { background:#eef2ff; border-color:#c7d2fe; }
html.theme-bloom.theme-pro body.lobby .quest-card:hover, html.theme-bloom.theme-pro body.lobby .cs-item:hover:not(.locked), html.theme-bloom.theme-pro body.lobby .cs-char-card:hover { transform:none; border-color:#4338ca; box-shadow:var(--shadow); }
html.theme-bloom.theme-pro body.lobby .stat-tile:hover, html.theme-bloom.theme-pro body.lobby .ach-tile:hover { transform:none; }
html.theme-bloom.theme-pro body.lobby .cs-char-card.is-active, html.theme-bloom.theme-pro body.lobby .cs-item.is-equipped, html.theme-bloom.theme-pro body.lobby .cs-form.current { border-color:#4338ca; box-shadow:0 0 0 3px rgba(67,56,202,.18); }
html.theme-bloom.theme-pro body.lobby .cs-form.current::before { background:#4338ca; color:#fff; }

/* chrome */
html.theme-bloom.theme-pro body.lobby .topbar { background:#fff; backdrop-filter:none; border-bottom:1px solid var(--border); }
html.theme-bloom.theme-pro body.lobby .topbar-nav a.active { background:#eef2ff; color:#3730a3; box-shadow:none; }
html.theme-bloom.theme-pro body.lobby .topbar-nav a:hover { background:#f1f5f9; color:#0f172a; }

/* flat buttons (no bottom edge, no glow) */
html.theme-bloom.theme-pro body.lobby :is(.btn-primary,.page-card-open,.cs-tab.is-active,.tr-tab.is-active) { background:#4338ca; border:1px solid #4338ca; color:#fff; box-shadow:none; }
html.theme-bloom.theme-pro body.lobby .btn-primary:hover { background:#3730a3; box-shadow:none; transform:none; }
html.theme-bloom.theme-pro body.lobby .btn-primary:active { transform:none; }
html.theme-bloom.theme-pro body.lobby .btn { border-radius:8px; }
html.theme-bloom.theme-pro body.lobby .btn-secondary, html.theme-bloom.theme-pro body.lobby .card .btn-secondary { background:#fff; border:1px solid var(--border-2); border-bottom-width:1px; border-radius:8px; color:var(--ink); }
html.theme-bloom.theme-pro body.lobby .btn-secondary:hover { background:#f1f5f9; border-color:#94a3b8; }
html.theme-bloom.theme-pro body.lobby :is(.hero-cta,.btn-next,.cs-save .btn-save) { background:#4338ca; color:#fff; border:1px solid #4338ca; border-radius:8px; box-shadow:none; animation:none; }
html.theme-bloom.theme-pro body.lobby :is(.hero-cta,.btn-next,.cs-save .btn-save):hover:not(:disabled) { background:#3730a3; transform:none; box-shadow:none; }
html.theme-bloom.theme-pro body.lobby :is(.hero-cta-eyebrow,.hero-cta .reset) { color:#c7d2fe; }
html.theme-bloom.theme-pro body.lobby .hero-cta .reward { background:#fff; color:#4338ca; }
html.theme-bloom.theme-pro body.lobby :is(.btn-next:disabled,.cs-save .btn-save:disabled) { background:#e2e8f0; color:#94a3b8; border-color:#e2e8f0; }
html.theme-bloom.theme-pro body.lobby :is(.cs-tab,.tr-tab) { border-radius:8px; }
html.theme-bloom.theme-pro body.lobby .input, html.theme-bloom.theme-pro body.lobby select, html.theme-bloom.theme-pro body.lobby .select { border-radius:8px; }

/* home hero: a calm indigo band */
html.theme-bloom.theme-pro body.lobby .hero-v2 { background:linear-gradient(135deg,#312e81,#4338ca); border:0; border-radius:12px; color:#fff; box-shadow:var(--shadow); padding:22px 26px; }
html.theme-bloom.theme-pro body.lobby .hero-v2::before, html.theme-bloom.theme-pro body.lobby .hero-v2::after { display:none; }
html.theme-bloom.theme-pro body.lobby .hero-greet { color:#c7d2fe; letter-spacing:.08em; }
html.theme-bloom.theme-pro body.lobby .hero-name { color:#fff; font-weight:700; }
html.theme-bloom.theme-pro body.lobby .hero-pill { background:rgba(255,255,255,.14); border-color:rgba(255,255,255,.28); color:#fff; }
html.theme-bloom.theme-pro body.lobby .hero-pill[data-tier] { background:#fff; border-color:#fff; color:#3730a3; }
html.theme-bloom.theme-pro body.lobby .hero-avatar-shell { filter:none; }
html.theme-bloom.theme-pro body.lobby .hero-avatar-shell .ring-track-v2 { stroke:rgba(255,255,255,.25); }
html.theme-bloom.theme-pro body.lobby .hero-avatar-shell .ring-fill-v2 { stroke:#fff; filter:none; }
html.theme-bloom.theme-pro body.lobby .hero-avatar-shell .lvl-badge { background:#fff; color:#3730a3; border:0; box-shadow:0 1px 3px rgba(0,0,0,.25); }

/* remove play decoration */
html.theme-bloom.theme-pro body.lobby :is(.quest-h h2,.ach-h h2)::before { content:none; }
html.theme-bloom.theme-pro body.lobby .quest-h .meta, html.theme-bloom.theme-pro body.lobby .ach-h .meta { background:#eef2ff; border-color:#c7d2fe; color:#3730a3; border-radius:6px; }
html.theme-bloom.theme-pro body.lobby .xp-fill::after { display:none; }
html.theme-bloom.theme-pro body.lobby .xp-fill, html.theme-bloom.theme-pro body.lobby .tr-bar > i, html.theme-bloom.theme-pro body.lobby .rs-bar > i, html.theme-bloom.theme-pro body.lobby .cs-bar > i { background:#4338ca; box-shadow:none; }
html.theme-bloom.theme-pro body.lobby .xp-track, html.theme-bloom.theme-pro body.lobby .tr-bar, html.theme-bloom.theme-pro body.lobby .rs-bar, html.theme-bloom.theme-pro body.lobby .cs-bar { background:#e2e8f0; border-color:#e2e8f0; box-shadow:none; height:10px; }
html.theme-bloom.theme-pro body.lobby .ach-tile .ach-progress > span, html.theme-bloom.theme-pro body.lobby .tr-card .mini > i { background:#4338ca; }
html.theme-bloom.theme-pro body.lobby .stat-tile-icon { border-radius:8px; animation:none; }
html.theme-bloom.theme-pro body.lobby .stat-tile-icon.icon-gold { background:#fef3c7; color:#b45309; }
html.theme-bloom.theme-pro body.lobby .stat-tile-icon.icon-flame { background:#ffedd5; color:#c2410c; }
html.theme-bloom.theme-pro body.lobby .stat-tile-icon.icon-mor { background:#eef2ff; color:#4338ca; }
html.theme-bloom.theme-pro body.lobby .stat-tile-icon.icon-cyan { background:#ccfbf1; color:#0f766e; }
html.theme-bloom.theme-pro body.lobby .command-eyebrow { color:#4338ca; }
html.theme-bloom.theme-pro body.lobby .command-link, html.theme-bloom.theme-pro body.lobby .card-h .more { color:#4338ca; }
html.theme-bloom.theme-pro body.lobby .week-cal .wd.on i { background:#4338ca; border-color:#4338ca; box-shadow:none; }
html.theme-bloom.theme-pro body.lobby .week-cal .wd.today i { outline-color:#0f766e; }
html.theme-bloom.theme-pro body.lobby .quest-card .q-glyph { background:#4338ca; box-shadow:none; border-radius:10px; }
html.theme-bloom.theme-pro body.lobby .quest-card[data-quest="challenge"] .q-glyph { background:#b45309; box-shadow:none; }
html.theme-bloom.theme-pro body.lobby .quest-card[data-quest="streak"] .q-glyph { background:#0f766e; box-shadow:none; }
html.theme-bloom.theme-pro body.lobby .quest-card .q-reward { color:#b45309; }
html.theme-bloom.theme-pro body.lobby .quest-card.is-done { background:#f0fdf4; border-color:#86efac; }
html.theme-bloom.theme-pro body.lobby .quest-card.is-done .q-glyph { background:#15803d; box-shadow:none; }
html.theme-bloom.theme-pro body.lobby .quest-chest.is-open { animation:none; background:#fef3c7; border-color:#f59e0b; box-shadow:none; }
html.theme-bloom.theme-pro body.lobby .quest-chest.is-open .chest-ico { animation:none; }
html.theme-bloom.theme-pro body.lobby .ach-tile:not(.locked), html.theme-bloom.theme-pro body.lobby .tr-card.done { background:#fff; box-shadow:var(--shadow-sm); }
html.theme-bloom.theme-pro body.lobby .ach-tile .ach-art, html.theme-bloom.theme-pro body.lobby .tr-card img { filter:none; }
html.theme-bloom.theme-pro body.lobby .ach-tile.locked .ach-art, html.theme-bloom.theme-pro body.lobby .tr-card.locked img { filter:grayscale(1) opacity(.45); }
html.theme-bloom.theme-pro body.lobby .test-row-score { background:#eef2ff; color:#3730a3; border-color:#c7d2fe; border-radius:6px; }

/* trophy room + results + studio chrome */
html.theme-bloom.theme-pro body.lobby .tr-hero { background:linear-gradient(135deg,#312e81,#4338ca); border-radius:12px; border:0; box-shadow:var(--shadow); }
html.theme-bloom.theme-pro body.lobby .tr-feature { background:#fffbeb; border-radius:12px; box-shadow:none; }
html.theme-bloom.theme-pro body.lobby .tr-feature .flag { background:#b45309; color:#fff; }
html.theme-bloom.theme-pro body.lobby .tr-card.is-new::before { background:#4338ca; color:#fff; }
html.theme-bloom.theme-pro body.lobby .rs-stage { background:linear-gradient(135deg,#1e1b4b,#312e81); border-radius:12px; border:0; box-shadow:var(--shadow); }
html.theme-bloom.theme-pro body.lobby .rs-title { text-shadow:none; }
html.theme-bloom.theme-pro body.lobby .rs-star.on .st { background:#f59e0b; border:0; box-shadow:none; }
html.theme-bloom.theme-pro body.lobby .rs-badge { background:#fffbeb; box-shadow:none; }
html.theme-bloom.theme-pro body.lobby .qcard { border:1px solid var(--border); border-radius:12px; box-shadow:var(--shadow); }
html.theme-bloom.theme-pro body.lobby .qcard-head { background:#f8fafc; }
html.theme-bloom.theme-pro body.lobby .qopt { border-radius:10px; border-width:1px; border-bottom-width:1px; }
html.theme-bloom.theme-pro body.lobby .qopt:hover:not(.is-locked) { background:#f8fafc; border-color:#4338ca; transform:none; box-shadow:none; }
html.theme-bloom.theme-pro body.lobby .q-streak-pill { border-radius:6px; animation:none; transform:none; }
html.theme-bloom.theme-pro body.lobby .cs-plate .lv { background:#fff; color:#3730a3; box-shadow:none; }
html.theme-bloom.theme-pro body.lobby .cs-char, html.theme-bloom.theme-pro body.lobby .rs-mascot img { animation:none; }
html.theme-bloom.theme-pro body.lobby .cs-chars .new-flag { background:#b45309; color:#fff; }
html.theme-bloom.theme-pro body.lobby .sh-tester { background:#fffbeb; border-color:#f59e0b; }
