:root {
  color-scheme: dark;
  --ink: #090807;
  --stone: #171715;
  --stone-2: #24221e;
  --metal: #121416;
  --bronze: #715536;
  --gold: #c4a261;
  --gold-bright: #f0d69a;
  --blood: #5b0d13;
  --ember: #e76d27;
  --ash: #b8b1a2;
  --ivory: #f1ead8;
  --muted: #928b7e;
  --danger: #b52d32;
  --success: #9f8a54;
  --shadow: rgba(0, 0, 0, .78);
  --serif: Georgia, "Times New Roman", serif;
  --sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
html, body { min-height: 100%; margin: 0; }
body {
  background: #090807;
  color: var(--ivory);
  font-family: var(--sans);
  overflow-x: hidden;
}
button, input, select, textarea { font: inherit; }
button { color: inherit; }
a { color: var(--gold-bright); }
.overlay-page { background: transparent; overflow: hidden; }
.overlay-page body { background: transparent; overflow: hidden; }

.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}

.view-shell {
  min-height: 100vh;
  position: relative;
  isolation: isolate;
}

.museum-shell {
  background: #090807 url('/assets/hall-of-bosses.webp') center top / cover fixed no-repeat;
}
.control-shell {
  background: linear-gradient(rgba(8,8,7,.78),rgba(8,8,7,.9)), url('/assets/hall-of-bosses.webp') center top / cover fixed no-repeat;
}
.museum-shell::after, .control-shell::after {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background:
    radial-gradient(circle at 50% 26%, transparent 0 35%, rgba(0,0,0,.06) 68%, rgba(0,0,0,.28) 100%),
    repeating-linear-gradient(97deg, rgba(255,255,255,.012) 0 1px, transparent 1px 9px);
}

.ornate-frame {
  position: relative;
  background:
    linear-gradient(135deg, rgba(255,255,255,.075), transparent 20% 74%, rgba(255,255,255,.025)),
    radial-gradient(ellipse at 50% 0, rgba(160,125,76,.14), transparent 50%),
    linear-gradient(160deg, #282620, #111211 43%, #1c1a17 70%, #090a0a);
  border: 1px solid #6b5639;
  box-shadow:
    0 18px 60px var(--shadow),
    inset 0 0 0 3px #090a0a,
    inset 0 0 0 5px rgba(156,124,72,.24),
    inset 0 0 34px rgba(0,0,0,.9),
    0 0 28px rgba(199,111,36,.12);
  clip-path: polygon(2.4% 0, 97.6% 0, 100% 9%, 100% 91%, 97.6% 100%, 2.4% 100%, 0 91%, 0 9%);
}
.ornate-frame::before, .ornate-frame::after {
  content: "";
  position: absolute;
  pointer-events: none;
  z-index: 1;
}
.ornate-frame::before {
  inset: 10px;
  border: 1px solid rgba(213,176,105,.32);
  box-shadow: inset 0 0 18px rgba(0,0,0,.82), 0 0 0 1px rgba(0,0,0,.8);
  clip-path: inherit;
}
.ornate-frame::after {
  inset: 0;
  opacity: .36;
  background:
    radial-gradient(circle at 4% 50%, #b18c50 0 2px, transparent 3px),
    radial-gradient(circle at 96% 50%, #b18c50 0 2px, transparent 3px),
    repeating-linear-gradient(13deg, transparent 0 17px, rgba(255,255,255,.018) 18px, transparent 19px 31px);
}

.rune-divider {
  display: flex; align-items: center; gap: 12px; color: var(--gold); opacity: .72;
  letter-spacing: .38em; font-size: 10px; text-transform: uppercase;
}
.rune-divider::before, .rune-divider::after {
  content: ""; height: 1px; flex: 1;
  background: linear-gradient(90deg, transparent, currentColor, transparent);
}

.torch {
  position: absolute;
  width: 44px; height: 102px;
  z-index: 8;
  filter: drop-shadow(0 2px 3px #000);
}
.torch .sconce {
  position: absolute; left: 17px; bottom: 0; width: 10px; height: 61px;
  border-radius: 3px 3px 8px 8px;
  background: linear-gradient(90deg, #090b0c, #66533b 46%, #151718 72%);
  transform: perspective(50px) rotateX(-8deg);
  box-shadow: inset 2px 0 rgba(255,255,255,.08), 0 0 0 1px #060707;
}
.torch .sconce::after {
  content: ""; position: absolute; left: -8px; top: 7px; width: 26px; height: 8px;
  border: 3px solid #2e2b25; border-top: 0; border-radius: 0 0 14px 14px;
}
.torch .flame {
  position: absolute; left: 11px; top: 8px; width: 22px; height: 39px;
  border-radius: 54% 46% 62% 38% / 69% 62% 38% 31%;
  transform-origin: 50% 100%;
  background: radial-gradient(circle at 53% 70%, #fff7c2 0 9%, #ffc14c 18%, #e65a18 48%, rgba(136,19,5,.35) 72%, transparent 74%);
  filter: drop-shadow(0 0 7px #ff8b22) drop-shadow(0 0 16px rgba(238,78,10,.7));
  animation: flame 1.7s ease-in-out infinite alternate;
}
.torch .glow {
  position: absolute; width: 160px; height: 160px; left: -58px; top: -47px;
  border-radius: 50%; z-index: -1;
  background: radial-gradient(circle, rgba(239,112,28,.28), rgba(212,70,14,.07) 42%, transparent 70%);
  animation: fireglow 2.2s ease-in-out infinite alternate;
}
.torch .smoke {
  position: absolute; left: 12px; top: -13px; width: 24px; height: 35px;
  border-radius: 50%; opacity: .22; filter: blur(5px);
  background: #aaa292; animation: smoke 3.5s linear infinite;
}
.torch.right .flame { animation-delay: -.73s; }
.torch.right .glow { animation-delay: -1.1s; }

@keyframes flame {
  0% { transform: rotate(-3deg) scale(.94, 1.06); }
  45% { transform: rotate(4deg) scale(1.04, .95); }
  72% { transform: rotate(-1deg) scale(.91, 1.1); }
  100% { transform: rotate(3deg) scale(1.06, .92); }
}
@keyframes fireglow { from { opacity: .7; transform: scale(.94); } to { opacity: 1; transform: scale(1.07); } }
@keyframes smoke { from { transform: translateY(5px) scale(.7); opacity: .18; } to { transform: translate(8px,-28px) scale(1.5); opacity: 0; } }

.embers { position: absolute; inset: 0; pointer-events: none; overflow: hidden; z-index: 6; }
.ember {
  position: absolute; width: 3px; height: 3px; border-radius: 50%; bottom: 3%;
  background: #f08b35; box-shadow: 0 0 7px #e74613;
  opacity: 0; animation: ember-rise var(--duration, 4s) linear infinite var(--delay, 0s);
}
@keyframes ember-rise {
  0% { opacity: 0; transform: translate(0,8px) scale(.4); }
  14% { opacity: .65; }
  75% { opacity: .25; }
  100% { opacity: 0; transform: translate(var(--drift,20px),-170px) scale(1); }
}

.blood-mark {
  position: absolute; z-index: 2; left: 23%; right: 28%; bottom: 2px; height: 13px;
  opacity: .48; filter: saturate(.75);
  background: radial-gradient(ellipse at center bottom, rgba(91,7,12,.95), rgba(40,2,5,.68) 47%, transparent 71%);
}
.blood-mark::after {
  content: ""; position: absolute; right: 14%; top: 7px; width: 4px; height: 23px;
  border-radius: 0 0 80% 80%; background: linear-gradient(#551016, #210104);
  animation: drip 8s ease-in infinite;
}
@keyframes drip { 0%,65% { transform: scaleY(.15); transform-origin: top; opacity: .3; } 88% { transform: scaleY(1); opacity: .8; } 100% { transform: translateY(7px) scaleY(.7); opacity: 0; } }

.status-stage, .event-stage {
  width: min(100vw, 850px); aspect-ratio: 850 / 230;
  position: relative; margin: 0 auto;
}
.status-frame { position: absolute; inset: 9% 5%; padding: 20px 72px 16px; }
.status-frame .torch.left { left: 8px; top: 23%; }
.status-frame .torch.right { right: 8px; top: 23%; }
.game-kicker {
  color: var(--gold); font: 700 11px/1 var(--sans); letter-spacing: .34em;
  text-transform: uppercase; text-align: center; opacity: .88;
}
.boss-heading {
  margin: 7px 0 0; text-align: center; color: var(--ivory);
  font: 700 clamp(17px, 3vw, 31px)/1.04 var(--serif); letter-spacing: .055em;
  text-transform: uppercase; text-shadow: 0 2px 2px #000, 0 0 18px rgba(206,154,69,.12);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.boss-caption { text-align: center; margin-top: 5px; color: #a38b61; font-size: 9px; letter-spacing: .38em; }
.status-main { position: relative; z-index: 3; transition: transform .5s ease; }
.stats-row {
  position: absolute; z-index: 4; left: 74px; right: 74px; bottom: 22px;
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 4px;
  transition: grid-template-columns .55s cubic-bezier(.2,.7,.2,1);
}
.status-frame:not(.boss-active) .stats-row { grid-template-columns: repeat(3, 1fr); }
.status-frame:not(.boss-active) .boss-only { display: none; }
.status-frame:not(.boss-active) .status-main { transform: translateY(9px); }
.stat { min-width: 0; text-align: center; position: relative; }
.stat + .stat::before { content: ""; position: absolute; left: 0; top: 7px; bottom: 3px; width: 1px; background: linear-gradient(transparent,#755d39,transparent); }
.stat-label { display: block; color: var(--muted); font-size: 8px; letter-spacing: .24em; }
.stat-value { display: block; margin-top: 2px; color: var(--ivory); font: 700 23px/1 var(--serif); font-variant-numeric: tabular-nums; }
.stat.attention .stat-value { animation: death-pulse .65s ease-out; }
@keyframes death-pulse { 0% { color:#fff; transform:scale(1); } 25% { color:#ffb19d; text-shadow:0 0 20px #b00; transform:scale(1.18); } 100% { transform:scale(1); } }
.boss-starting { animation: boss-awaken 1.25s cubic-bezier(.15,.75,.2,1); }
@keyframes boss-awaken { 0% { filter:brightness(.6); transform:scaleX(.93); } 35% { filter:brightness(1.5); } 100% { filter:brightness(1); transform:scaleX(1); } }

.event-stage { width:min(100vw,650px); aspect-ratio:650/380; opacity:0; transform:scale(.94); pointer-events:none; transition:opacity .5s,transform .5s; }
.event-stage.is-visible { opacity:1; transform:scale(1); }
.event-frame { position:absolute; inset:6% 7%; display:grid; place-items:center; padding:48px 74px; text-align:center; }
.event-frame .torch.left { left:13px; top:37%; }.event-frame .torch.right { right:13px; top:37%; }
.event-content { position:relative; z-index:4; width:100%; }
.crest {
  width:56px; height:56px; margin:0 auto 9px; display:grid; place-items:center;
  border:1px solid #806744; transform:rotate(45deg);
  background:radial-gradient(circle,#3c3327,#111 68%); box-shadow:inset 0 0 18px #000,0 0 15px rgba(215,151,58,.18);
}
.crest span { transform:rotate(-45deg); font:700 22px var(--serif); color:var(--gold-bright); }
.event-name { font:700 22px/1.1 var(--serif); text-transform:uppercase; letter-spacing:.09em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.event-number { margin:4px 0 -2px; font:700 78px/.95 var(--serif); color:#fff4dc; text-shadow:0 0 28px rgba(184,40,22,.34),0 3px 4px #000; font-variant-numeric:tabular-nums; }
.event-label { color:var(--gold); font:700 12px var(--sans); letter-spacing:.48em; }
.event-context { margin-top:12px; color:#aca290; font-size:10px; letter-spacing:.24em; }
.event-stage.is-visible .event-content { animation:event-reveal .9s ease both; }
@keyframes event-reveal { from { opacity:0; transform:translateY(13px); filter:blur(4px); } to { opacity:1; transform:none; filter:none; } }

.bosses-stage { width:min(100vw,900px); aspect-ratio:900/520; opacity:0; transform:translateY(12px) scale(.97); transition:.55s ease; }
.bosses-stage.is-visible { opacity:1; transform:none; }
.bosses-frame { position:absolute; inset:4%; padding:34px 58px 40px; }
.bosses-frame .torch.left { left:12px; top:31%; }.bosses-frame .torch.right { right:12px; top:31%; }
.bosses-head { text-align:center; position:relative; z-index:4; }
.bosses-head h1 { margin:5px 0 0; font:700 29px var(--serif); letter-spacing:.17em; text-transform:uppercase; }
.bosses-progress { color:var(--gold); font-size:11px; letter-spacing:.27em; margin-top:7px; }
.plaques { position:relative; z-index:4; display:grid; grid-template-columns:repeat(2,1fr); gap:10px 13px; margin-top:21px; }
.plaque {
  min-height:55px; display:grid; grid-template-columns:28px 1fr auto; align-items:center; gap:10px; padding:8px 14px;
  border:1px solid rgba(151,117,68,.58); background:linear-gradient(100deg,#191915,#252119 55%,#111);
  box-shadow:inset 0 0 12px #000,0 4px 9px rgba(0,0,0,.45); opacity:0; transform:translateY(8px);
}
.is-visible .plaque { animation:plaque-in .5s ease forwards; animation-delay:var(--delay); }
@keyframes plaque-in { to { opacity:1; transform:none; } }
.plaque-seal { width:22px;height:22px;border-radius:50%;border:1px solid #ae8c52;color:#d9bb7a;display:grid;place-items:center;font:700 11px var(--serif);box-shadow:inset 0 0 8px #000; }
.plaque-name { font:700 13px var(--serif); letter-spacing:.055em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.plaque-deaths { color:#bba77d;font:700 12px var(--serif); }
.page-mark { text-align:center;color:#837762;font-size:9px;letter-spacing:.25em;margin-top:13px; }

.debug-panel {
  position:fixed; z-index:100; right:12px; bottom:12px; display:flex; flex-wrap:wrap; gap:6px; max-width:420px;
  padding:8px; border:1px solid #665438; background:rgba(9,9,8,.93); box-shadow:0 8px 30px #000;
}
.debug-panel button, .btn {
  border:1px solid #80663e; background:linear-gradient(#2b2821,#141412); padding:9px 13px; cursor:pointer;
  text-transform:uppercase; letter-spacing:.09em; font-size:10px; transition:.2s;
}
.debug-panel button:hover, .btn:hover { border-color:var(--gold); filter:brightness(1.18); }

.museum-hero { min-height:92vh; display:grid; place-items:center; text-align:center; padding:90px 24px 50px; position:relative; z-index:2; }
.museum-hero::after { content:"";position:absolute;left:0;right:0;bottom:0;height:32%;background:linear-gradient(transparent,#090807);pointer-events:none; }
.hero-copy { position:relative;z-index:2;max-width:920px;text-shadow:0 4px 20px #000; }
.eyebrow { color:var(--gold);font-size:11px;letter-spacing:.52em;text-transform:uppercase; }
.hero-copy h1 { margin:17px 0 8px;font:700 clamp(48px,8vw,105px)/.82 var(--serif);letter-spacing:.035em;text-transform:uppercase; }
.hero-copy h1 span { display:block;color:#bda56f;font-size:.42em;letter-spacing:.32em;margin-top:22px; }
.hero-game { margin:38px auto 0;display:inline-grid;gap:7px;padding:21px 48px;min-width:310px; }
.hero-game strong { font:700 25px var(--serif);letter-spacing:.12em;text-transform:uppercase; }
.hero-game small { color:#b8aa8e;letter-spacing:.18em; }
.scroll-cue { position:absolute;z-index:3;bottom:28px;color:#9e8a62;font-size:9px;letter-spacing:.3em;text-transform:uppercase; }

.museum-content { position:relative;z-index:3;background:linear-gradient(#090807,rgba(10,9,8,.96));padding:25px clamp(18px,5vw,80px) 100px; }
.section-heading { max-width:1320px;margin:0 auto 24px;display:flex;align-items:end;justify-content:space-between;gap:20px;border-bottom:1px solid rgba(153,120,69,.3);padding-bottom:15px; }
.section-heading p { margin:0;color:var(--gold);font-size:10px;letter-spacing:.3em;text-transform:uppercase; }
.section-heading h2 { margin:5px 0 0;font:700 clamp(28px,4vw,50px)/1 var(--serif);text-transform:uppercase;letter-spacing:.08em; }
.game-portals { max-width:1320px;margin:0 auto 90px;display:flex;gap:12px;overflow:auto;padding:10px 2px 24px;scrollbar-color:#70583a transparent; }
.game-portal { min-width:220px;text-align:left;padding:18px;border:1px solid #51452f;background:linear-gradient(140deg,rgba(50,46,37,.9),rgba(13,13,12,.95));cursor:pointer;position:relative; }
.game-portal.active { border-color:#b89354;box-shadow:0 0 25px rgba(185,126,42,.17),inset 0 0 18px #000; }
.game-portal strong { display:block;font:700 16px var(--serif);text-transform:uppercase; }
.game-portal span { display:block;color:#998e7a;font-size:11px;margin-top:8px; }
.boss-grid { max-width:1320px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(245px,1fr));gap:18px; }
.boss-card { min-height:320px;padding:15px;position:relative;overflow:hidden; }
.boss-art { height:160px;display:grid;place-items:center;background:radial-gradient(circle at 50% 80%,#49341f,#111 55%,#080808);border:1px solid #3d3528;overflow:hidden; }
.boss-silhouette { font:700 76px var(--serif);color:#68593f;opacity:.38;transform:scaleX(.8); }
.boss-card-body { position:relative;z-index:2;padding:18px 9px 5px; }
.boss-card h3 { min-height:42px;margin:0;font:700 19px/1.1 var(--serif);letter-spacing:.05em;text-transform:uppercase; }
.boss-card-meta { display:flex;justify-content:space-between;margin-top:16px;padding-top:12px;border-top:1px solid rgba(153,119,65,.3); }
.boss-card-meta span { color:#8f8574;font-size:9px;letter-spacing:.14em;text-transform:uppercase; }
.boss-card-meta strong { display:block;color:#dcc58f;font:700 23px var(--serif);margin-top:3px; }
.victory-seal { position:absolute;right:15px;top:142px;width:54px;height:54px;border-radius:50%;display:grid;place-items:center;transform:rotate(-9deg);border:2px double #b28e4d;color:#d9bb78;background:#201a12;box-shadow:0 0 14px rgba(219,149,42,.24);font:700 8px var(--serif);letter-spacing:.08em; }
.empty-hall { grid-column:1/-1;text-align:center;padding:70px 20px;color:#9d927e;border:1px solid #3b3428;background:rgba(14,14,13,.75); }
.museum-footer { text-align:center;color:#6f685d;font-size:10px;letter-spacing:.18em;padding:40px; }
.live-toast { position:fixed;z-index:50;left:50%;top:24px;transform:translate(-50%,-18px);opacity:0;pointer-events:none;padding:14px 24px;border:1px solid #9f7944;background:rgba(15,13,10,.96);box-shadow:0 12px 35px #000;color:#ead9b4;font:700 13px var(--serif);letter-spacing:.08em;text-transform:uppercase;transition:.35s; }
.live-toast.show { opacity:1;transform:translate(-50%,0); }

.control-shell { min-height:100vh;padding:26px; }
.control-wrap { max-width:1500px;margin:auto;position:relative;z-index:2; }
.control-header { display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 24px;margin-bottom:18px; }
.brand { display:flex;align-items:center;gap:14px; }
.brand-mark { width:42px;height:42px;display:grid;place-items:center;border:1px solid #927343;transform:rotate(45deg);background:#151411;box-shadow:inset 0 0 14px #000; }
.brand-mark span { transform:rotate(-45deg);font:700 16px var(--serif);color:var(--gold); }
.brand h1 { margin:0;font:700 20px var(--serif);letter-spacing:.09em;text-transform:uppercase; }
.brand small { color:#8e8575;letter-spacing:.16em;text-transform:uppercase; }
.connection { display:flex;align-items:center;gap:8px;color:#968c7a;font-size:11px; }
.connection-dot { width:8px;height:8px;border-radius:50%;background:#89332d;box-shadow:0 0 7px currentColor; }
.connection.online .connection-dot { background:#9b8b52; }
.control-grid { display:grid;grid-template-columns:minmax(270px,340px) 1fr;gap:18px; }
.side-panel, .main-panel { padding:20px; }
.side-panel { align-self:start;position:sticky;top:18px; }
.live-game { color:var(--gold);font-size:10px;letter-spacing:.28em;text-transform:uppercase; }
.live-boss { margin:9px 0 18px;font:700 24px/1.05 var(--serif);text-transform:uppercase; }
.quick-stats { display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:15px 0; }
.quick-stat { padding:13px;background:rgba(0,0,0,.25);border:1px solid #3f372b;text-align:center; }
.quick-stat strong { display:block;font:700 25px var(--serif); }.quick-stat span { color:#8e8576;font-size:8px;letter-spacing:.17em;text-transform:uppercase; }
.action-stack { display:grid;gap:8px;margin-top:16px; }
.btn.primary { border-color:#a37e45;background:linear-gradient(#4b3924,#211a12); }
.btn.danger { border-color:#71343a;background:linear-gradient(#421b1e,#1b1011); }
.btn.ghost { background:rgba(10,10,9,.4); }
.nav-tabs { display:flex;flex-wrap:wrap;gap:7px;margin-bottom:18px; }
.nav-tabs button.active { border-color:#c39a59;color:#f0d8a5;box-shadow:inset 0 -2px #a77e3e; }
.panel-view { display:none; }.panel-view.active { display:block;animation:panel-in .25s ease; }
@keyframes panel-in { from{opacity:.3;transform:translateY(4px)}to{opacity:1;transform:none} }
.panel-title { display:flex;justify-content:space-between;align-items:end;gap:15px;margin-bottom:18px; }
.panel-title h2 { margin:0;font:700 27px var(--serif);text-transform:uppercase;letter-spacing:.08em; }
.panel-title p { margin:5px 0 0;color:#8d8578;font-size:11px; }
.form-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px; }
.field { display:grid;gap:6px; }.field.full { grid-column:1/-1; }
.field label { color:#aaa08e;font-size:9px;text-transform:uppercase;letter-spacing:.16em; }
.field input,.field select,.field textarea { width:100%;border:1px solid #4c4130;background:#0c0d0c;color:#eee5d3;padding:11px 12px;outline:none; }
.field input:focus,.field select:focus,.field textarea:focus { border-color:#b0894b;box-shadow:0 0 0 2px rgba(170,127,58,.13); }
.field textarea { min-height:110px;resize:vertical; }
.form-actions { display:flex;gap:8px;flex-wrap:wrap;margin-top:14px; }
.data-list { display:grid;gap:7px;max-height:520px;overflow:auto;padding-right:5px; }
.data-row { display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:11px 13px;border:1px solid #393329;background:rgba(12,12,11,.72); }
.data-row strong { font:700 14px var(--serif); }.data-row small { display:block;color:#81796d;margin-top:3px; }
.row-actions { display:flex;gap:6px;align-items:center; }.row-actions .btn { padding:7px 9px; }
.api-grid { display:grid;gap:8px; }
.api-row { display:grid;grid-template-columns:70px minmax(180px,1fr) 1.5fr auto;gap:10px;align-items:center;padding:10px;border:1px solid #3e362a;background:rgba(9,9,8,.72); }
.method { color:#d4b578;font:700 10px var(--sans);letter-spacing:.12em; }.endpoint { font:12px ui-monospace,SFMono-Regular,Consolas,monospace;color:#d8d0c0; }
.api-desc { color:#8f8779;font-size:11px; }
.result-box { margin-top:14px;padding:14px;max-height:340px;overflow:auto;white-space:pre-wrap;border:1px solid #40372a;background:#080908;color:#bfb7a8;font:11px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace; }
.login-shell { min-height:100vh;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at 50% 20%,#29241b,#080807 64%); }
.login-card { width:min(440px,100%);padding:38px; }.login-card h1 { font:700 30px var(--serif);text-transform:uppercase;letter-spacing:.08em;margin:0 0 8px; }.login-card p { color:#9d9485;line-height:1.55; }.login-error { color:#d77a78;min-height:20px;font-size:12px;margin-top:9px; }
.notice { padding:12px;border-left:2px solid #987542;background:rgba(77,58,31,.2);color:#bcb2a1;font-size:12px;line-height:1.5;margin-bottom:14px; }

@media (max-width: 860px) {
  .control-shell { padding:10px; }.control-grid { grid-template-columns:1fr; }.side-panel { position:static; }
  .api-row { grid-template-columns:55px 1fr auto; }.api-desc { grid-column:2/4; }
  .museum-hero { min-height:78vh; }.hero-copy h1 { font-size:48px; }.hero-copy h1 span { font-size:20px; }
}
@media (max-width: 560px) {
  .control-header { align-items:flex-start; }.control-header .brand small { display:none; }.form-grid { grid-template-columns:1fr; }.field.full { grid-column:auto; }
  .quick-stats { grid-template-columns:repeat(2,1fr); }.panel-title { align-items:flex-start;flex-direction:column; }
  .boss-grid { grid-template-columns:1fr; }.section-heading { align-items:flex-start;flex-direction:column; }.hero-game { min-width:0;width:100%;padding-inline:20px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; scroll-behavior:auto !important; transition-duration:.01ms !important; }
  .embers,.torch .smoke { display:none; }
}

/* Presentation revision: static animation classes also work with strict CSP. */
[hidden] { display:none !important; }
.overlay-error { position:fixed;left:12px;right:12px;top:12px;z-index:200;padding:14px;background:#211612;color:#ffe2b0;border:1px solid #c98d52;font:14px/1.4 sans-serif; }
.live-toast.error { border-color:#9c3b40; }
.status-stage { margin:0; }
.status-frame { padding:14px 65px; }
.status-main { min-height:64px;padding:0 65px; }
.status-frame:not(.boss-active) .status-main { transform:none;display:grid;align-items:center; }
.status-frame .boss-heading { font-size:25px;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical; }
.status-frame .game-kicker { font-size:9px;letter-spacing:.16em; }
.status-frame .stats-row { bottom:18px;left:72px;right:72px; }
.status-frame .stat-label { font-size:10px;letter-spacing:.13em; }
.status-frame .stat-value { font-size:45px;line-height:1.05; }
.status-frame [data-stat="bosses"] .stat-value { font-size:33px;line-height:1.43; }
.game-logo { position:absolute;left:12px;top:10px;width:104px;height:48px;z-index:5; }
.game-logo img { width:100%;height:100%;object-fit:contain; }
.status-frame .torch.left,.status-frame .torch.right { top:40%; }
@media(max-width:600px) {
  .status-stage { min-height:230px;aspect-ratio:auto; }
  .status-frame { inset:8px;padding:12px 30px; }
  .status-main { padding:0 25px 0 62px; }
  .game-logo { width:76px;height:38px; }
  .status-frame .boss-heading { font-size:19px; }
  .status-frame .stats-row { left:34px;right:34px; }
  .status-frame .stat-value { font-size:36px; }
  .status-frame [data-stat="bosses"] .stat-value { font-size:26px; }
  .status-frame .stat-label { font-size:8px;letter-spacing:0; }
}
.ember-0 { left:8%;--delay:-0.00s;--duration:3.2s;--drift:-12px; }
.ember-1 { left:91%;--delay:-0.57s;--duration:3.9s;--drift:14px; }
.ember-2 { left:86%;--delay:-1.14s;--duration:4.6s;--drift:-16px; }
.ember-3 { left:81%;--delay:-1.71s;--duration:5.3s;--drift:18px; }
.ember-4 { left:76%;--delay:-2.28s;--duration:3.2s;--drift:-20px; }
.ember-5 { left:71%;--delay:-2.85s;--duration:3.9s;--drift:22px; }
.ember-6 { left:66%;--delay:-3.42s;--duration:4.6s;--drift:-24px; }
.ember-7 { left:61%;--delay:-3.99s;--duration:5.3s;--drift:26px; }
.ember-8 { left:56%;--delay:-4.56s;--duration:3.2s;--drift:-28px; }
.ember-9 { left:51%;--delay:-5.13s;--duration:3.9s;--drift:30px; }
.ember-10 { left:46%;--delay:-5.70s;--duration:4.6s;--drift:-32px; }
.ember-11 { left:41%;--delay:-6.27s;--duration:5.3s;--drift:34px; }
.ember-12 { left:36%;--delay:-6.84s;--duration:3.2s;--drift:-36px; }
.plaque-0 { --delay:0ms; }
.plaque-1 { --delay:90ms; }
.plaque-2 { --delay:180ms; }
.plaque-3 { --delay:270ms; }
.plaque-4 { --delay:360ms; }
.plaque-5 { --delay:450ms; }
.plaque-6 { --delay:540ms; }
.plaque-7 { --delay:630ms; }
.plaque-8 { --delay:720ms; }
.plaque-9 { --delay:810ms; }

/* Overlay readability: ten plaques on one page; artwork aligned with heading. */
.status-frame .status-main { padding:0 0 0 190px;min-height:78px; }
.status-frame:not(.boss-active) .status-main { padding-top:5px; }
.game-logo { left:60px;top:18px;width:176px;height:82px; }
.game-logo img { border:1px solid #6b5635;box-shadow:0 3px 14px #000;object-fit:contain;background:#0b0c0b; }
.event-frame .event-name { white-space:normal;text-wrap:balance;font-size:27px;line-height:1.2; }
.event-frame .event-number { font-size:106px;margin:18px 0 8px; }
.event-frame .event-label { font-size:16px; }
.bosses-stage { container-type:inline-size; }
.bosses-frame { display:flex;flex-direction:column;padding:clamp(16px,2.5cqw,23px) clamp(38px,5.3cqw,48px) clamp(14px,2.2cqw,20px); }
.bosses-head { flex:none; }
.bosses-head h1 { font-size:clamp(20px,2.8cqw,25px);letter-spacing:.12em; }
.bosses-head .game-kicker { font-size:clamp(10px,1.4cqw,13px);letter-spacing:.22em; }
.bosses-progress { font:700 clamp(18px,2.7cqw,24px)/1.15 var(--serif);letter-spacing:.06em;color:#fff0d0;margin-top:10px; }
.plaques { flex:1;min-height:0;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(5,minmax(0,1fr));gap:clamp(6px,.8cqw,7px);margin-top:clamp(10px,1.4cqw,12px); }
.plaque { min-height:0;grid-template-columns:18px minmax(0,1fr) auto;gap:clamp(6px,.9cqw,8px);padding:clamp(3px,.6cqw,5px) clamp(8px,1.1cqw,10px); }
.plaque-seal { width:17px;height:17px;font-size:9px; }
.plaque-name { font-size:clamp(14px,2.1cqw,19px);line-height:1.15;letter-spacing:.015em;white-space:normal;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;text-overflow:clip; }
.plaque-deaths { text-align:center;min-width:34px;color:#f4db9e; }
.plaque-deaths strong { display:block;font:700 clamp(20px,2.9cqw,26px)/1 var(--serif); }
.plaque-deaths small { display:block;font:700 9px/1.2 var(--sans);letter-spacing:.04em;margin-top:3px; }
.page-mark { margin-top:9px;font-size:10px;color:#c9b793; }
@media(max-width:600px) {
  .status-frame .status-main { padding-left:116px;padding-right:6px;min-height:80px; }
  .game-logo { left:30px;top:20px;width:110px;height:52px; }
  .event-frame .event-name { font-size:22px; }
  .event-frame .event-number { font-size:84px;margin:12px 0 6px; }
}

.boss-edit-row { grid-template-columns:1fr; }
.boss-edit-row .row-actions { flex-wrap:wrap; }
.boss-position { width:64px;padding:7px;background:#0c0d0c;color:#eee5d3;border:1px solid #80663e; }
.boss-edit-row [data-move-boss] { inline-size:40px;padding-inline:0; }
.boss-edit-row [data-position-boss] { inline-size:114px; }
.boss-edit-row [data-image-boss] { inline-size:136px; }
.boss-edit-row [data-edit-boss] { inline-size:82px; }
.boss-edit-row [data-delete-boss] { inline-size:88px; }
.proposal-history { display:flex;flex-wrap:wrap;gap:8px;margin:16px 0; }
.review-items { display:grid;gap:12px;max-height:650px;overflow:auto; }
.review-row { display:grid;grid-template-columns:110px minmax(170px,1fr) 120px;gap:9px;padding:12px;border:1px solid #554730; }
.review-row input:not([type="checkbox"]),.review-row select { width:100%;min-width:0;padding:8px;background:#0c0d0c;color:#eee5d3;border:1px solid #615037; }
.review-row select[name="existingBossId"] { grid-column:2/4; }
.review-row small { grid-column:1/-1;color:#b2a892; }
.review-row label,.review-total { font-size:12px;line-height:1.5; }
.review-total { display:block;margin-top:15px; }
@media(max-width:680px) { .review-row { grid-template-columns:1fr; }.review-row select[name="existingBossId"] { grid-column:auto; } }

.steam-suggestions { max-height:300px;overflow:auto;border:1px solid #80663e;background:#11120f; }
.steam-suggestions[hidden] { display:none; }
.steam-option { display:block;width:100%;text-align:left;padding:12px;border:0;border-bottom:1px solid #403823;background:transparent;color:#eee5d3;cursor:pointer; }
.steam-option strong,.steam-option small { display:block;overflow-wrap:anywhere; }
.steam-option small { margin-top:5px;color:#c5b58e; }
.steam-option:hover,.steam-option[aria-selected="true"] { background:#3b3220;outline:1px solid #bba16d;outline-offset:-1px; }
.steam-option[aria-disabled="true"] { opacity:.65; }
[data-steam-status] { display:block;line-height:1.5;color:#c5b58e;margin-top:8px; }

/* 1080p status source: 1200 × 340 panel, proportional downscaling in smaller sources. */
.status-stage { width:min(100vw,1200px);aspect-ratio:1200/340;min-height:0;margin:0;container-type:inline-size; }
.status-frame { inset:1.5cqw;padding:1.65cqw 6.5cqw; }
.status-frame .status-main { min-height:8.7cqw;padding:0 0 0 21cqw; }
.status-frame:not(.boss-active) .status-main { padding-top:0;transform:none; }
.status-frame .boss-heading { margin:.5cqw 0 0;font-size:2.85cqw;line-height:1.12;letter-spacing:.035em; }
.status-frame .boss-caption { margin-top:.45cqw;font-size:1.2cqw;line-height:1.2;color:#e4cb93;letter-spacing:.22em; }
.status-frame .game-logo { left:6.5cqw;top:1.7cqw;width:18cqw;height:8.45cqw; }
.status-frame .stats-row { left:6.5cqw;right:6.5cqw;bottom:2.2cqw;gap:1cqw;align-items:start; }
.status-frame .stat-label { color:#f0dfb8;font-size:2cqw;font-weight:700;line-height:1.2;letter-spacing:.075em;text-shadow:0 2px 3px #000;white-space:nowrap; }
.status-frame .stat-value { margin-top:.65cqw;font-size:7.2cqw;line-height:1;color:#fff6df;text-shadow:0 3px 4px #000;font-variant-numeric:tabular-nums; }
.status-frame [data-stat="bosses"] .stat-value { font-size:6cqw;line-height:1; }
.status-frame.boss-active [data-stat="bosses"] .stat-value { font-size:5cqw;line-height:1.44; }
.status-frame .stat + .stat::before { top:.4cqw;bottom:.2cqw;background:linear-gradient(transparent,#b8975d,transparent); }
.status-frame .torch.left { left:.9cqw;top:44%; }
.status-frame .torch.right { right:.9cqw;top:44%; }

/* Read-only museum dashboard; usable in narrow future extension panels. */
.museum-dashboard { padding:20px clamp(10px,3vw,46px); }
.museum-header { position:relative;z-index:3;max-width:1400px;margin:0 auto 22px;display:flex;align-items:center;justify-content:space-between;gap:20px; }
.museum-header h1 { margin:8px 0;font:700 clamp(28px,4vw,48px)/1.1 var(--serif);color:var(--ivory); }
.museum-live { padding:14px 18px;border-left:2px solid #9c7c44;background:#14130fe8; }
.museum-live strong,.museum-live small { display:block; }.museum-live small { margin-top:7px;color:#cebf9f; }
.museum-navigation { position:relative;z-index:3;max-width:1400px;margin:0 auto 20px;display:flex;flex-wrap:wrap;gap:10px;align-items:center; }
.museum-navigation>span { margin-left:auto;color:#dfcc9d;font-weight:700; }
.museum-best-grid { display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:22px;max-width:1400px;margin:auto;position:relative;z-index:3; }
.museum-dashboard [hidden] { display:none!important; }
.museum-section { position:relative;margin:0 0 22px;padding:24px;min-width:0; }
.museum-section>header { position:relative;z-index:2;margin-bottom:20px; }
.museum-section h2 { font:700 26px/1.2 var(--serif);margin:5px 0 10px; }.museum-section header p { color:#ceae69;margin:0; }.museum-section header small { color:#c4b89e;line-height:1.5; }
.museum-ranking,.museum-game-ranking { position:relative;z-index:2;list-style:none;margin:0;padding:0; }
.museum-ranking li { display:grid;grid-template-columns:28px 64px minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid #68533277; }
.rank-number { font:700 20px var(--serif);color:#debd70; }.rank-info strong { display:block;font-size:17px;overflow-wrap:anywhere; }.rank-info small { display:block;color:#c4b89e;font-size:12px;line-height:1.4;margin-top:4px; }
.rank-deaths { color:#fff1d0;text-align:right;font:700 30px/1 var(--serif); }.rank-deaths small { display:block;font:700 10px var(--sans);margin-top:5px;color:#cbb581; }
.museum-boss-image { display:grid;place-items:center;flex:none;width:64px;height:64px;overflow:hidden;background:#262219;border:1px solid #9a7a42;color:#d9bb7b;font:700 17px var(--serif); }
.museum-boss-image img { width:100%;height:100%;object-fit:cover; }.image-credit { font-size:11px;color:#b4a68a;line-height:1.3; }.image-credit a { color:#c9b786; }
.museum-game-ranking { max-height:980px;overflow:auto; }.museum-game-ranking button { display:grid;width:100%;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:12px;background:transparent;border:0;border-bottom:1px solid #68533277;color:#eee5d3;text-align:left;padding:15px 4px;cursor:pointer; }
.museum-game-ranking button:hover,.museum-game-ranking button:focus-visible { background:#463620; }.museum-game-ranking button>span>strong { display:block;font-size:16px;overflow-wrap:anywhere; }.museum-game-ranking button>span>small { display:block;color:#c4b89e;margin-top:4px; }
[data-museum-panel="archive"] { position:relative;z-index:3;max-width:1400px;margin:auto; }.museum-archive-heading { display:flex;align-items:end;justify-content:space-between;gap:20px;margin:20px 0; }.museum-archive-heading label { display:block;margin-bottom:6px; }.museum-archive-heading select,.museum-filter input { padding:12px;background:#12110f;border:1px solid #8b7044;color:#f5ebd7;max-width:100%; }
[data-game-top] .museum-ranking { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:26px; }
.museum-filter { display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:15px 0;font-size:13px;color:#cbbca0; }.museum-filter input { flex:1;min-width:180px; }
.museum-table-scroll { position:relative;z-index:2;max-height:75vh;overflow:auto; }.museum-table { width:100%;border-collapse:collapse;text-align:left; }.museum-table th { position:sticky;top:0;z-index:3;background:#211d15;color:#dfc68e;padding:12px; }.museum-table td { padding:12px;border-bottom:1px solid #68533277; }.museum-table th:last-child { text-align:right; }
.museum-id { color:#dbc18b;width:100px;font-weight:700; }.museum-id small { display:block;color:#a99d84;font-size:10px;font-weight:400; }.museum-boss-cell { display:flex;gap:14px;align-items:center; }.museum-boss-cell strong { font-size:17px;overflow-wrap:anywhere; }.museum-boss-cell .image-credit { display:block;margin-top:5px; }.museum-deaths { text-align:right;font:700 26px var(--serif);color:#fff0cd; }
.museum-empty { position:relative;z-index:2;color:#c7b99d; }
@media(max-width:900px) { .museum-best-grid { grid-template-columns:1fr; }.museum-game-ranking { max-height:440px; } }
@media(max-width:600px) {
  .museum-dashboard { padding:12px 8px; }.museum-header { display:block; }.museum-live { margin-top:15px; }.museum-navigation>span { margin:0;width:100%;font-size:13px; }.museum-section { padding:16px 10px; }.museum-section h2 { font-size:22px; }
  .museum-ranking li { grid-template-columns:22px 44px minmax(0,1fr) auto;gap:8px; }.museum-boss-image { width:44px;height:44px;font-size:13px; }.rank-info strong { font-size:14px; }.rank-info small { font-size:10px; }.rank-deaths { font-size:25px; }
  [data-game-top] .museum-ranking { grid-template-columns:1fr; }.museum-archive-heading { display:block; }.museum-archive-heading strong { display:block;margin-top:14px; }.museum-archive-heading select { width:100%; }
  .museum-table td,.museum-table th { padding:8px 4px; }.museum-id { width:58px;font-size:12px; }.museum-boss-cell { gap:8px; }.museum-boss-cell strong { font-size:14px; }.museum-table .museum-boss-image { width:32px;height:40px; }.museum-deaths { font-size:23px; }
}

.image-editor { margin:20px 0;padding:20px;border:1px solid #9d7b40;background:#13120f; }.image-editor[hidden] { display:none; }
.image-editor-grid { display:grid;grid-template-columns:minmax(180px,.6fr) minmax(0,1fr);gap:20px; }.image-editor-preview { min-height:200px;background:#080908;display:grid;place-items:center;color:#b9a783; }.image-editor-preview img { display:block;width:100%;max-height:420px;object-fit:contain; }
.image-candidates { display:flex;flex-wrap:wrap;gap:8px;margin:12px 0; }.image-editor .field button { margin-top:8px; }
@media(max-width:700px) { .image-editor-grid { grid-template-columns:1fr; } }

.catalog-edit-row { align-items:start;gap:18px; }
.catalog-edit-row .row-actions { flex-wrap:wrap;justify-content:flex-end; }
.catalog-edit-row label { display:grid;gap:5px;font-size:12px;color:var(--ivory); }
.catalog-edit-row input { width:90px; }
.catalog-edit-row select { min-width:110px; }
.catalog-edit-row [data-catalog-save] { min-width:110px;max-width:170px; }

/* Persisted stream/game counters share one row; the game scope appears only when needed. */
.status-frame.separate-game-counter:not(.boss-active) .stats-row { grid-template-columns:repeat(4,minmax(0,1fr)); }
.status-frame.separate-game-counter.boss-active .stats-row { grid-template-columns:repeat(5,minmax(0,1fr)); }
.status-frame .stat-scope { display:block;font-size:.8em;letter-spacing:.04em; }
.status-frame.separate-game-counter .stat-label { min-height:2.3em;white-space:normal;font-size:1.85cqw;text-transform:uppercase; }
.status-frame.separate-game-counter .stat-value { font-size:6.5cqw; }
.status-frame.separate-game-counter.boss-active .stat-value { font-size:5.8cqw; }
.status-frame.separate-game-counter.boss-active [data-stat="bosses"] .stat-value { font-size:4.4cqw;line-height:1.32; }
.control-hint { color:var(--muted);font-size:12px;line-height:1.5;margin:8px 0 12px; }
.session-options { margin:12px 0;color:var(--muted);font-size:12px; }
.session-options summary { cursor:pointer;padding:6px 0; }
.session-options .action-stack { margin-top:8px; }

.event-frame.has-overall { padding-top:28px;padding-bottom:28px; }
.event-overall { display:flex;flex-wrap:wrap;align-items:baseline;justify-content:center;gap:4px 12px;margin-top:14px;padding-top:10px;border-top:1px solid #755d39;color:#f0dfb8; }
.event-overall span { font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase; }
.event-overall strong { color:#fff4dc;font:700 32px/1 var(--serif);font-variant-numeric:tabular-nums; }

/* Boss victory: a new trophy enters the hall, in the existing 650 × 380 source. */
.event-stage { container-type:inline-size; }
.event-frame.is-victory { inset:4% 3%; padding:0; overflow:hidden; border-color:#9c7b43; text-align:left;
  background:radial-gradient(ellipse at 70% 0%,#54442b55,transparent 65%),linear-gradient(110deg,#10100e,#25231d 55%,#0e0f0e); }
.is-victory .blood-mark { display:none; }
.victory-content { position:absolute; inset:2.2cqw; z-index:4; display:grid; grid-template-columns:40% 1fr; gap:4%; }
.victory-portrait { position:relative; min-width:0; overflow:hidden; background:radial-gradient(ellipse,#403827,#131411 75%); border:1px solid #6d5939; }
.victory-portrait::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,#080a08 0%,transparent 36%,#06070633 100%); box-shadow:inset 0 0 28px #000b; }
.victory-portrait img { position:absolute; width:100%; height:100%; object-fit:cover; object-position:center; }
.victory-portrait-rim { position:absolute; z-index:2; inset:7px; border:1px solid #c09a544d; }
.victory-emblem { position:absolute; inset:26% 15%; display:grid; place-items:center; border:1px solid #96784a; clip-path:polygon(0 0,100% 0,100% 68%,50% 100%,0 68%); background:linear-gradient(140deg,#494131,#181b17); box-shadow:inset 0 0 30px #000; }
.victory-emblem span { color:#b2945a; font:normal 15cqw var(--serif); text-shadow:0 3px 3px #000; }
.victory-archive { position:absolute; z-index:3; bottom:5%; width:100%; text-align:center; color:#ddc18e; font:600 1.5cqw var(--sans); letter-spacing:.19em; }
.victory-inscription { position:relative; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; min-width:0; padding:3% 6% 3% 0; }
.victory-game { width:100%; color:#bca473; font:600 1.7cqw/1.3 var(--sans); letter-spacing:.12em; text-transform:uppercase; overflow-wrap:anywhere; }
.victory-heading { margin-top:2.7cqw; color:#b7b09f; font:italic 2cqw/1.2 var(--serif); }
.victory-name { margin:1.2cqw 0 0; width:100%; font:700 4.7cqw/1.04 var(--serif); letter-spacing:.015em; color:#fff2d4; text-wrap:balance; overflow-wrap:anywhere; text-shadow:0 2px 3px #000; }
.victory-name.is-long { font-size:3.5cqw; }
.victory-deaths { display:flex; align-items:baseline; gap:1.5cqw; margin-top:2cqw; color:#e5d3a8; }
.victory-deaths strong { font:700 6.6cqw/1 var(--serif); font-variant-numeric:tabular-nums; }
.victory-deaths span { font:600 1.7cqw var(--sans); letter-spacing:.25em; }
.victory-stamp { margin-top:2.1cqw; padding:.8cqw 1.9cqw; border:3px double #c5a35b; color:#eac984; font:700 3.2cqw/1 var(--serif); letter-spacing:.17em; transform:rotate(-5deg); box-shadow:inset 0 0 12px #a37a352b,0 0 18px #d9982022; background:#211e15; }
.victory-progress { display:flex; flex-wrap:wrap; gap:.7cqw 1.5cqw; align-items:baseline; margin-top:2.6cqw; padding-top:1.2cqw; width:100%; border-top:1px solid #98774170; color:#c2b69d; font:500 1.8cqw var(--sans); }
.victory-progress strong { color:#eee0c1; font:700 2.8cqw var(--serif); font-variant-numeric:tabular-nums; }
.victory-progress strong span { color:#bf9853; padding:0 .3cqw; }
.victory-light { position:absolute; inset:-30%; pointer-events:none; opacity:0; background:linear-gradient(115deg,transparent 40%,#ffe6a130 49%,#fff3c454 50%,transparent 58%); }
.is-visible .victory-portrait { animation:trophy-portrait 1.5s cubic-bezier(.2,.7,.2,1) both; }
.is-visible .victory-name { animation:trophy-name 1s .45s ease both; }
.is-visible .victory-stamp { animation:trophy-stamp .65s 1.4s cubic-bezier(.2,.7,.2,1) both; }
.is-visible .victory-progress { animation:trophy-name .75s 2s ease both; }
.is-visible .victory-light { animation:trophy-light 2.1s .5s ease both; }
@keyframes trophy-portrait { from { opacity:0; transform:translateX(-12px) scale(1.025); } to { opacity:1; transform:none; } }
@keyframes trophy-name { from { opacity:0; transform:translateY(9px); } to { opacity:1; transform:none; } }
@keyframes trophy-stamp { 0% { opacity:0; transform:scale(1.5) rotate(-12deg); } 65% { opacity:1; transform:scale(.97) rotate(-5deg); } 100% { opacity:1; transform:scale(1) rotate(-5deg); } }
@keyframes trophy-light { 0% { opacity:0; transform:translateX(-65%); } 25% { opacity:1; } 100% { opacity:0; transform:translateX(65%); } }
@media (prefers-reduced-motion:reduce) {
  .victory-content *, .victory-content *::before, .victory-content *::after { animation:none!important; transition:none!important; }
  .victory-light { display:none; }
}

.victory-name.is-very-long { font-size:2.35cqw; }
.victory-inscription.is-dense .victory-heading { margin-top:1.2cqw; }
.victory-inscription.is-dense .victory-progress { margin-top:1.5cqw; }
.victory-progress .victory-count { display:inline-grid; padding:0; color:inherit; }
.victory-count > span { grid-area:1/1; padding:0!important; color:inherit!important; }
.victory-count-before { opacity:0; }
.is-visible .victory-count-before { animation:trophy-count-before 2.8s both; }
.is-visible .victory-count-after { animation:trophy-name .55s 2.25s both; }
.is-victory .torch { display:block; transform:scale(.48); }
.event-frame.is-victory .torch.left { left:-13px; top:39%; }
.event-frame.is-victory .torch.right { right:-13px; top:39%; }
.is-visible .is-victory .torch { animation:trophy-flare 2.8s ease both; }
.is-visible .is-victory { animation:trophy-frame 2.8s ease both; }
@keyframes trophy-count-before { 0%,80% { opacity:1; transform:none; } 100% { opacity:0; transform:translateY(-8px); } }
@keyframes trophy-flare { 0% { transform:scale(.48); filter:brightness(.7); } 35% { transform:scale(.57); filter:brightness(1.6); } 100% { transform:scale(.48); filter:brightness(1); } }
@keyframes trophy-frame { 0% { filter:brightness(.7); } 35% { filter:brightness(1.12); box-shadow:inset 0 0 30px #d4ab504d; } 100% { filter:brightness(1); } }
@media (prefers-reduced-motion:reduce) {
  .is-victory,.is-victory .torch { animation:none!important; }
  .victory-count-before { display:none; }
}

/* Combined OBS source: proportions refer to a 1920 × 1080 canvas. */
.combined-overlay { position:fixed;inset:0;pointer-events:none; }
.combined-layer { position:absolute;right:min(1.25vw,2.22222vh);bottom:min(1.25vw,2.22222vh); }
.combined-layer .status-stage { width:min(62.5vw,111.11111vh); }
.combined-layer .event-stage { width:min(30.46875vw,54.16667vh); }
.combined-layer .bosses-stage { width:min(42.1875vw,75vh); }
.combined-layer .ornate-frame { inset:0; }
.combined-layer .debug-panel { display:none; }
.combined-layer .bosses-stage { position:relative; }
.combined-layer .event-frame:not(.is-victory) { padding:7.4cqw 11.4cqw; }
.combined-layer .event-frame.has-overall { padding-top:4.3cqw;padding-bottom:4.3cqw; }
.combined-layer .event-name { font-size:4.45cqw; }
.combined-layer .event-number { font-size:16.3cqw;margin:2.77cqw 0 1.23cqw; }
.combined-layer .event-label { font-size:3.08cqw;letter-spacing:.25em; }
.combined-layer .event-overall { margin-top:2.15cqw;padding-top:1.54cqw;gap:.62cqw 1.85cqw; }
.combined-layer .event-overall span { font-size:3.08cqw;letter-spacing:.06em; }
.combined-layer .event-overall strong { font-size:5.47cqw; }
.combined-layer .bosses-frame { padding:2.5cqw 5.3cqw 2.2cqw; }
.combined-layer .bosses-head h1 { font-size:3.21cqw; }
.combined-layer .bosses-head .game-kicker { font-size:2.22cqw;line-height:1.15;letter-spacing:.12em; }
.combined-layer .bosses-progress { font-size:3.21cqw;margin-top:1.11cqw; }
.combined-layer .plaques { gap:.8cqw;margin-top:1.4cqw; }
.combined-layer .plaque { grid-template-columns:2.72cqw minmax(0,1fr) auto;gap:.7cqw;padding:.35cqw 1.1cqw; }
.combined-layer .plaque-seal { width:2.72cqw;height:2.72cqw;font-size:2.22cqw; }
.combined-layer .plaque-name { font-size:2.72cqw;line-height:1.1; }
.combined-layer .plaque-deaths { min-width:6.3cqw; }
.combined-layer .plaque-deaths strong { font-size:3.46cqw; }
.combined-layer .plaque-deaths small { font-size:2.22cqw;margin-top:.25cqw; }
/* Three search results have room for game names and globally unique boss IDs. */
.combined-layer .plaques:has(.plaque-name small) { grid-template-columns:1fr;grid-template-rows:repeat(3,minmax(0,1fr)); }
.combined-layer .plaque-name:has(small) { display:block;-webkit-line-clamp:unset; }
.combined-layer .plaque-name small { font-size:2.22cqw;line-height:1.2;color:#e0d2b9; }
/* Keep victory captions readable inside the smaller event window. */
.combined-layer .victory-content { grid-template-columns:32% 1fr;gap:3%; }
.combined-layer .victory-inscription { padding:1% 2% 1% 0; }
.combined-layer .victory-game { font-size:3.08cqw;line-height:1.1;letter-spacing:.06em; }
.combined-layer .victory-heading { font-size:3.08cqw;line-height:1.1;margin-top:1cqw; }
.combined-layer .victory-name { font-size:4.79cqw; }
.combined-layer .victory-name.is-long { font-size:3.76cqw; }
.combined-layer .victory-name.is-very-long { font-size:3.08cqw; }
.combined-layer .victory-deaths { margin-top:1cqw; }
.combined-layer .victory-deaths span { font-size:3.08cqw;letter-spacing:.1em; }
.combined-layer .victory-stamp { font-size:3.42cqw;margin-top:1cqw; }
.combined-layer .victory-progress { font-size:3.08cqw;margin-top:1cqw;padding-top:.8cqw; }
.combined-layer .victory-progress strong { font-size:3.76cqw; }
.combined-layer .victory-archive { font-size:3.08cqw;letter-spacing:.04em; }
.combined-overlay ~ .debug-panel { top:16px;left:16px;bottom:auto;right:auto; }

/* Milestone procession crosses the screen, but still owns the shared event queue. */
.combined-layer[data-panel="milestone"] { inset:0; }
.shame-procession { position:absolute;inset:0;overflow:hidden;opacity:0;pointer-events:none;transition:opacity .4s; }
.shame-procession.is-visible { opacity:1; }
.shame-actor { position:absolute;left:100%;bottom:0;width:min(30vw,42vh);aspect-ratio:3/4;transform:translateX(0);container-type:inline-size; }
.shame-sprite { position:absolute;inset:0;width:100%;height:100%;filter:drop-shadow(0 8px 5px #0007); }
.shame-shadow { position:absolute;bottom:1%;left:12%;width:72%;height:5%;border-radius:50%;background:radial-gradient(ellipse,#0007,transparent 70%); }
.shame-counter { position:absolute;left:50%;bottom:calc(min(40vw,56vh) + 1.6vh);transform:translateX(-50%);width:min(40vw,71vh);container-type:inline-size;text-align:center;color:var(--ivory);text-shadow:-1px -1px 0 #080604,1px -1px 0 #080604,-1px 1px 0 #080604,1px 1px 0 #080604,0 3px 3px #000,0 0 10px #000,0 0 24px #000;background:radial-gradient(ellipse,#080604dc 0%,#08060499 40%,transparent 74%); }
.shame-counter strong,.shame-counter small,.shame-counter em { -webkit-text-stroke:clamp(.7px,.2cqw,1.8px) #080604;paint-order:stroke fill; }
.shame-counter small { -webkit-text-stroke-width:.7px; }
.shame-counter strong { display:block;font:700 8cqw/1.05 var(--serif);color:var(--gold-bright); }
.shame-counter small { display:flex;align-items:center;justify-content:center;gap:1.6cqw;margin:1cqw 0;font:600 1.9cqw var(--sans);letter-spacing:.25em;text-transform:uppercase; }
.shame-counter small::before,.shame-counter small::after { content:"";width:10cqw;height:1px;background:linear-gradient(90deg,transparent,var(--gold)); }
.shame-counter small::after { transform:rotate(180deg); }
.shame-counter em { display:block;font:700 4cqw/1.2 var(--serif);font-style:normal;letter-spacing:.23em;text-indent:.23em;text-transform:uppercase;color:var(--gold); }
.is-visible .shame-counter { animation:shame-inscription-in .9s ease-out both; }
.is-visible .shame-counter strong { animation:shame-gold-glow 2.2s ease-out both; }
.is-visible .shame-counter em { animation:shame-word-in .7s .45s ease-out both; }
@keyframes shame-inscription-in { from { opacity:0;transform:translate(-50%,10px); } to { opacity:1;transform:translate(-50%,0); } }
@keyframes shame-gold-glow { 0% { filter:brightness(.7); } 40% { filter:brightness(1.25); } 100% { filter:brightness(1); } }
@keyframes shame-word-in { from { opacity:0;letter-spacing:.38em; } to { opacity:1;letter-spacing:.23em; } }
.is-visible .shame-actor { animation:shame-crossing 20s linear both; }
@keyframes shame-crossing { from { transform:translateX(0); } to { transform:translateX(calc(-100vw - 100%)); } }
.plaque-name small { display:block;font:500 1.5cqw/1.25 var(--sans);color:#b4a486;margin-top:.5cqw; }
@media (prefers-reduced-motion:reduce) {
  .shame-procession { transition:none; }
  .is-visible .shame-actor { left:50%;transform:translateX(-50%);animation:none; }
  .is-visible .shame-sprite,.is-visible .shame-counter,.is-visible .shame-counter strong,.is-visible .shame-counter em { animation:none; }
}

.recognition-editor { margin:24px 0; padding:20px; border:1px solid #726345; border-radius:10px; }
.recognition-editor canvas { display:block; width:100%; height:auto; background:#141414; touch-action:none; cursor:crosshair; margin:12px 0; }
.recognition-editor .form-grid label { display:flex; flex-direction:column; gap:8px; }
.recognition-editor textarea { width:100%; box-sizing:border-box; }
.recognition-editor .recognition-regions { font-size:12px; overflow-wrap:anywhere; margin-bottom:12px; }

/* Global catalog edits are separate from creator preferences. */
html[data-creator-role="creator"] [data-catalog-only],
html[data-creator-role="creator"] [data-detector-form="profile"] button,
html[data-creator-role="creator"] [data-detector-form="template"],
html[data-creator-role="creator"] [data-detector-action="new"],
html[data-creator-role="creator"] .recognition-editor [data-save],
html[data-creator-role="creator"] .recognition-editor [data-save-names],
html[data-creator-role="creator"] .recognition-editor [data-publish-image] { display:none; }

/* Hide operator navigation before the asynchronous creator account UI is attached. */
html[data-creator-owner="false"] :is([data-tab="research"], [data-tab="museum"], [data-tab="api"], [data-tab="detector"], [data-panel="research"], [data-panel="museum"], [data-panel="api"], [data-panel="detector"], [data-twitch-bot], [data-form="presentation"], [data-research], a[href^="/museum"]) { display:none !important; }

/* Copy-only integration secrets: never render token values or URL fields. */
[hidden] { display:none !important; }
.twitch-gate { max-width:640px;margin:28px auto;padding:32px;border:1px solid var(--bronze);border-radius:14px;background:var(--stone); }
.twitch-gate h2 { font-size:26px;margin:12px 0; }
.twitch-gate p,.integration-card p { color:var(--ash);line-height:1.6; }
.twitch-eyebrow { color:var(--gold);font-size:11px;letter-spacing:.15em; }
.integration-heading { display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap; }
.integration-grid { display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr));gap:16px;margin:22px 0; }
.integration-card { border:1px solid #494438;border-radius:12px;background:#191b18;padding:22px; }
.integration-card--event { grid-column:1 / -1; }
.integration-card h3 { margin:12px 0;font-size:21px; }
.integration-card .btn { margin:8px 8px 0 0; }
.secret-placeholder { color:var(--muted);padding:14px 0;font-size:13px; }
.twitch-integrations > details { margin-top:22px; }
.copy-notice { color:var(--ivory);background:#191b18;border:1px solid var(--gold);border-radius:14px;padding:28px;max-width:min(480px,90vw);box-shadow:0 20px 80px #0009; }
.copy-notice::backdrop { background:#000b; }
.copy-notice p { line-height:1.6; }

/* Credential-free screenshots in the protected stream tools area. */
.integration-preview { margin:18px 0 12px; overflow:hidden; border:1px solid #ffffff16; border-radius:10px; background:#111419; }
.integration-preview figcaption { padding:8px 12px; color:#aebac9; background:#ffffff04; font:600 10px/1.4 system-ui,sans-serif; letter-spacing:.1em; }
.integration-preview img { display:block; width:100%; height:auto; max-height:430px; object-fit:contain; object-position:center; background:radial-gradient(ellipse at top,#26313b66,transparent 75%),#101216; }
.integration-preview--event img { width:auto;max-width:100%;max-height:720px;margin:auto; }
.integration-preview p { margin:0; padding:9px 12px; font:12px/1.4 system-ui,sans-serif; color:#abb5c2; }
.event-preview-host { min-height:0; }

/* Approved OBS panel review; production procession preserved. */
.event-stage:not(.is-visible) *, .event-stage:not(.is-visible) *::after,
.bosses-stage:not(.is-visible) *, .bosses-stage:not(.is-visible) *::after {
  animation-play-state:paused;
}
@keyframes event-reveal {
  from { opacity:0;transform:translateY(10px); }
  to { opacity:1;transform:translateY(0); }
}
@keyframes trophy-frame {
  0% { opacity:.78; } 35%,100% { opacity:1; }
}
@keyframes trophy-flare {
  0% { transform:scale(.48);opacity:.7; }
  35% { transform:scale(.57);opacity:1; }
  100% { transform:scale(.48);opacity:1; }
}
.combined-layer .event-number, .combined-layer .event-overall strong,
.combined-layer .plaque-deaths strong { font-variant-numeric:tabular-nums; }
.combined-layer .victory-name.is-very-long { line-height:1.14; }
/* Local choreography follow-up: scoped to command panels; Shame stays unchanged. */
.event-stage.is-visible, .bosses-stage.is-visible { will-change:auto; }
.event-stage.is-sequencing .event-number,
.event-stage.is-sequencing .victory-portrait,
.event-stage.is-sequencing .victory-name,
.event-stage.is-sequencing .victory-stamp,
.event-stage.is-sequencing .victory-deaths,
.event-stage.is-sequencing .victory-progress,
.bosses-stage.is-sequencing .plaque { will-change:transform,opacity; }
.event-number { position:relative; }
.event-number.number-wide { font-size:48px; }
.event-number.number-extreme { font-size:28px; }
.combined-layer .event-number.number-wide { font-size:8.2cqw; }
.combined-layer .event-number.number-extreme { font-size:4.79cqw; }
.event-number::after {
  content:"";position:absolute;left:50%;top:50%;width:1.6em;height:1.05em;
  border:2px solid #d5ad61;border-radius:50%;opacity:0;pointer-events:none;
  box-shadow:0 0 14px #8f291e66,inset 0 0 9px #ce9e4333;
  transform:translate(-50%,-50%) scale(.6);
}
.event-number.has-impact { animation:death-arrival .48s cubic-bezier(.2,.7,.2,1) both; }
.event-number.has-impact::after { animation:death-ring .48s ease-out both; }
@keyframes death-arrival {
  0% { transform:scale(.98); } 30% { transform:scale(1.09); }
  65% { transform:scale(.995); } 100% { transform:scale(1); }
}
@keyframes death-ring {
  0% { opacity:0;transform:translate(-50%,-50%) scale(.6); }
  18% { opacity:.8; }
  100% { opacity:0;transform:translate(-50%,-50%) scale(1.5); }
}
.bosses-stage { transition:opacity .55s ease,transform .55s ease; }
.bosses-stage.is-visible .plaque { animation:plaque-in .44s ease-out both;animation-delay:var(--row-delay); }
.bosses-stage .plaque-0,.bosses-stage .plaque-1 { --row-delay:.3s; }
.bosses-stage .plaque-2,.bosses-stage .plaque-3 { --row-delay:.45s; }
.bosses-stage .plaque-4,.bosses-stage .plaque-5 { --row-delay:.6s; }
.bosses-stage .plaque-6,.bosses-stage .plaque-7 { --row-delay:.75s; }
.bosses-stage .plaque-8,.bosses-stage .plaque-9 { --row-delay:.9s; }
.bosses-stage .plaques:has(.plaque-name small) .plaque-1 { --row-delay:.45s; }
.bosses-stage .plaques:has(.plaque-name small) .plaque-2 { --row-delay:.6s; }
.event-stage.is-visible .victory-portrait { animation:trophy-portrait .65s .1s ease-out both; }
.event-stage.is-visible .victory-game,
.event-stage.is-visible .victory-heading { animation:trophy-name .4s .6s ease-out both; }
.event-stage.is-visible .victory-name { animation:trophy-name .55s .65s ease-out both; }
.event-stage.is-visible .victory-stamp { animation:trophy-stamp .42s 1.25s cubic-bezier(.2,.7,.2,1) both; }
.event-stage.is-visible .victory-deaths { animation:trophy-name .45s 1.75s ease-out both; }
.event-stage.is-visible .victory-progress { animation:trophy-name .45s 2s ease-out both; }
.event-stage.is-visible .victory-count-before { animation:trophy-count-before 2.8s both; }
.event-stage.is-visible .victory-count-after { animation:trophy-name .4s 2.4s ease-out both; }
.victory-light { background:linear-gradient(115deg,transparent 48%,#ffe6a124 49.5%,#fff3c44d 50%,transparent 51.5%); }
.event-stage.is-visible .victory-light { animation:trophy-light .65s 1.35s ease-out both; }
@media (prefers-reduced-motion:reduce) {
  .event-stage .event-number,.bosses-stage .plaque { animation:none!important;transform:none; }
  .event-stage .event-number::after { display:none; }
  .bosses-stage .plaque { opacity:1; }
  .event-stage.is-sequencing *, .bosses-stage.is-sequencing * { will-change:auto; }
}
