:root {
  --bestiary-gold:#ffd95d;
  --bestiary-cyan:#73dcff;
  --bestiary-red:#ff657c;
  --bestiary-green:#9cff65;
}
.bestiary-page { background:#07070c; }
.bestiary-hero { padding:72px 0 38px;text-align:center; }
.bestiary-hero h1 { margin:7px 0 14px;color:var(--green);font-size:clamp(48px,8vw,82px);line-height:.95;text-shadow:0 0 24px rgba(114,255,71,.35); }
.bestiary-hero > p { width:min(780px,100%);margin:0 auto;color:#d2c5db;font-size:clamp(15px,2vw,18px); }
.bestiary-kicker { display:flex;justify-content:center;gap:8px;margin-bottom:14px; }
.bestiary-kicker span { padding:5px 9px;border:1px solid #654282;border-radius:999px;background:#181020;color:#d8b9ff;font-size:10px;font-weight:900;letter-spacing:.14em;text-transform:uppercase; }
.bestiary-kicker span:last-child { border-color:#447337;background:#11200e;color:#b8ff9b; }
.archive-counts { display:flex;justify-content:center;flex-wrap:wrap;gap:8px;margin-top:22px; }
.archive-counts span { padding:7px 11px;border:1px solid #3f314d;border-radius:999px;background:#100d16;color:#cfc2d8;font-size:12px;font-weight:800; }
.archive-counts strong { color:#fff; }
.bestiary-layout { display:grid;grid-template-columns:260px minmax(0,1fr);gap:20px;align-items:start; }
.dungeon-sidebar { position:sticky;top:76px;max-height:calc(100vh - 92px);overflow:auto;border:1px solid #382943;border-radius:14px;background:linear-gradient(180deg,#15101c,#0b0a10);box-shadow:0 18px 45px #000;scrollbar-color:#66417f #0b0910; }
.sidebar-heading { position:sticky;z-index:2;top:0;padding:17px 16px 13px;border-bottom:1px solid #33243e;background:rgba(17,13,23,.97); }
.sidebar-heading strong { display:block;margin-top:3px;color:#fff;font:800 20px Georgia,serif; }
.tier-navigation { padding:10px; }
.tier-group + .tier-group { margin-top:14px; }
.tier-label { display:flex;justify-content:space-between;gap:7px;padding:5px 6px;color:var(--bestiary-gold);font-size:10px;font-weight:950;letter-spacing:.1em;text-transform:uppercase; }
.tier-label span:last-child { color:#91859d;font-weight:800;letter-spacing:0; }
.dungeon-button { display:block;width:100%;margin:4px 0;padding:10px 11px;border:1px solid transparent;border-radius:8px;background:transparent;color:#cfc3d7;text-align:left;font:750 13px/1.15 Inter,Segoe UI,Arial,sans-serif;cursor:pointer;transition:.16s ease; }
.dungeon-button:hover { border-color:#573b68;background:#1c1424;color:#fff;transform:translateX(2px); }
.dungeon-button.active { border-color:#8b55bd;background:linear-gradient(90deg,#352046,#1c1326);color:#fff;box-shadow:inset 3px 0 var(--green),0 0 18px rgba(134,76,201,.18); }
.mobile-dungeon-picker { display:none; }
.bestiary-content { min-width:0; }
.dungeon-showcase { --dungeon-bg:none;position:relative;isolation:isolate;min-height:340px;overflow:hidden;border:1px solid #5a4167;border-radius:16px;background:#121019;box-shadow:0 20px 54px #000; }
.dungeon-showcase::before { content:"";position:absolute;z-index:-2;inset:0;background-image:var(--dungeon-bg);background-size:cover;background-position:center;transform:scale(1.02); }
.dungeon-showcase::after { content:"";position:absolute;z-index:-1;inset:0;background:linear-gradient(90deg,rgba(5,5,10,.94) 0%,rgba(8,7,13,.76) 50%,rgba(8,7,13,.38)),linear-gradient(0deg,rgba(6,5,10,.95),transparent 68%); }
.dungeon-shade { position:absolute;inset:0;box-shadow:inset 0 0 55px #000;pointer-events:none; }
.dungeon-copy { position:relative;z-index:1;width:min(680px,76%);padding:43px 42px 78px; }
.dungeon-meta { display:flex;flex-wrap:wrap;gap:8px; }
.dungeon-meta span { padding:5px 8px;border:1px solid rgba(255,255,255,.25);border-radius:999px;background:rgba(8,7,12,.7);color:#f3e8fa;font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase; }
.dungeon-meta .tier-pill { border-color:#8fcf61;color:#c8ff9e; }
.dungeon-copy h2 { margin:10px 0 9px;color:#fff;font-size:clamp(34px,5.5vw,59px);line-height:.95;text-shadow:0 2px 4px #000,0 0 22px rgba(143,80,211,.55); }
.dungeon-copy p { margin:0;color:#e2d8e8;font-size:15px;text-shadow:0 2px 3px #000; }
.dungeon-facts { display:flex;flex-wrap:wrap;gap:8px;margin-top:17px; }
.dungeon-facts span { padding:7px 10px;border-radius:7px;background:rgba(7,6,10,.72);color:#ddd1e4;font-size:11px;font-weight:800;backdrop-filter:blur(4px); }
.dungeon-facts strong { color:var(--bestiary-gold); }
.dungeon-stepper { position:absolute;z-index:2;right:18px;bottom:17px;left:18px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px; }
.dungeon-stepper button,.clear-filters { min-height:38px;border:1px solid #684781;border-radius:8px;background:rgba(24,15,32,.88);color:#fff;padding:0 13px;font-weight:850;cursor:pointer; }
.dungeon-stepper button:hover,.clear-filters:hover { border-color:#aa6bdf;background:#342044; }
.dungeon-stepper button:disabled { opacity:.35;cursor:not-allowed; }
.dungeon-stepper span { color:#c0b3c9;text-align:center;font-size:11px;font-weight:800; }
.monster-toolbar { display:grid;grid-template-columns:minmax(220px,1fr) minmax(135px,.35fr) minmax(135px,.35fr) auto;gap:10px;margin-top:16px;padding:14px;border:1px solid #37293f;border-radius:12px;background:#0e0c13; }
.monster-toolbar label { display:grid;gap:5px;color:#aaa0b4;font-size:9px;font-weight:900;letter-spacing:.1em;text-transform:uppercase; }
.monster-toolbar input,.monster-toolbar select { width:100%;height:40px;border:1px solid #574069;border-radius:7px;background:#1b1423;color:#fff;padding:0 11px;font:700 13px Inter,Segoe UI,Arial,sans-serif;outline:none; }
.monster-toolbar input:focus,.monster-toolbar select:focus { border-color:#aa68de;box-shadow:0 0 0 2px rgba(168,94,222,.16); }
.clear-filters { align-self:end;white-space:nowrap; }
.collection-heading { display:flex;align-items:end;justify-content:space-between;gap:12px;margin:28px 2px 12px; }
.collection-heading h2 { margin:2px 0 0;color:#fff;font-size:clamp(27px,4vw,39px); }
.result-count { padding:6px 9px;border:1px solid #3d3048;border-radius:999px;color:#bdb1c7;font-size:11px;font-weight:850;white-space:nowrap; }
.monster-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px; }
.monster-card { --rarity:#d8d8df;position:relative;isolation:isolate;contain:layout paint;display:grid;grid-template-rows:190px auto;min-width:0;overflow:hidden;overflow:clip;padding:0;border:1px solid color-mix(in srgb,var(--rarity) 58%,#3b3045);border-radius:13px;background:linear-gradient(160deg,color-mix(in srgb,var(--rarity) 8%,#15111b),#09090e 63%);color:#fff;text-align:left;cursor:pointer;box-shadow:0 12px 30px rgba(0,0,0,.48);transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease; }
.monster-card:hover,.monster-card:focus-visible { transform:translateY(-3px);border-color:var(--rarity);box-shadow:0 16px 34px #000,0 0 20px color-mix(in srgb,var(--rarity) 20%,transparent);outline:none; }
.monster-art { position:relative;isolation:isolate;contain:layout paint;display:grid;place-items:center;min-width:0;min-height:0;overflow:hidden;overflow:clip;clip-path:inset(0);background:radial-gradient(circle at 50% 78%,color-mix(in srgb,var(--rarity) 24%,transparent),transparent 65%); }
.monster-art::after { content:"";position:absolute;right:0;bottom:0;left:0;height:45%;background:linear-gradient(transparent,rgba(8,7,12,.82)); }
.monster-art img { display:block;width:94%;height:94%;max-width:100%;max-height:100%;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 9px 8px rgba(0,0,0,.8));transition:transform .18s ease; }
.monster-card:hover .monster-art img { transform:scale(1.045); }
.missing-art img { display:none; }
.missing-art-label { position:relative;z-index:1;align-self:center;justify-self:center;padding:10px 12px;border:1px dashed color-mix(in srgb,var(--rarity) 55%,#75667f);border-radius:9px;background:rgba(8,7,12,.78);color:#cfc3d6;font-size:11px;font-weight:900;letter-spacing:.08em;text-align:center;text-transform:uppercase; }
.boss-ribbon { position:absolute;z-index:2;top:9px;left:9px;padding:5px 8px;border:1px solid #ff6477;border-radius:999px;background:rgba(57,8,18,.9);color:#ffb3bd;font-size:9px;font-weight:950;letter-spacing:.1em;text-transform:uppercase; }
.size-ribbon { position:absolute;z-index:2;right:9px;top:9px;padding:4px 7px;border:1px solid #4b92ad;border-radius:999px;background:rgba(7,28,37,.86);color:#aeeaff;font-size:9px;font-weight:900; }
.monster-card-copy { position:relative;z-index:2;min-width:0;padding:13px 14px 15px;background:linear-gradient(180deg,rgba(9,9,14,.96),#09090e 45%); }
.monster-level { color:var(--rarity);font-size:9px;font-weight:950;letter-spacing:.08em;text-transform:uppercase; }
.monster-card h3 { overflow:hidden;margin:4px 0 5px;color:#fff;font-size:18px;line-height:1.05;text-overflow:ellipsis;white-space:nowrap; }
.monster-subtitle { overflow:hidden;color:#bdb2c6;font-size:11px;text-overflow:ellipsis;white-space:nowrap; }
.mini-stats { display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin-top:11px; }
.mini-stats span { padding:5px 3px;border:1px solid #302738;border-radius:6px;background:#0b0910;color:#a99eaf;text-align:center;font-size:9px;font-weight:850; }
.mini-stats strong { display:block;color:#fff;font-size:12px; }
.trait-preview { display:flex;gap:5px;overflow:hidden;margin-top:9px; }
.trait-preview span { flex:0 0 auto;padding:4px 6px;border-radius:5px;background:#21172a;color:#cab8d8;font-size:9px;font-weight:800; }
.empty-state { padding:52px 20px;border:1px dashed #4b3858;border-radius:13px;color:#bcaec5;text-align:center; }
.empty-state strong,.empty-state span { display:block; }
.empty-state strong { margin-bottom:6px;color:#fff;font:800 21px Georgia,serif; }
.monster-dialog { width:min(940px,calc(100% - 28px));max-height:calc(100vh - 28px);overflow:auto;padding:0;border:1px solid #704d89;border-radius:17px;background:#0b0910;color:#fff;box-shadow:0 28px 90px #000; }
.monster-dialog::backdrop { background:rgba(2,2,6,.83);backdrop-filter:blur(5px); }
.dialog-close { position:sticky;z-index:5;top:12px;float:right;width:39px;height:39px;margin:12px 12px -51px 0;border:1px solid #76558d;border-radius:50%;background:#160f1e;color:#fff;font-size:26px;line-height:1;cursor:pointer; }
.monster-detail-hero { --rarity:#ddd;position:relative;display:grid;grid-template-columns:minmax(300px,44%) 1fr;min-height:400px;overflow:hidden;background:linear-gradient(135deg,color-mix(in srgb,var(--rarity) 10%,#221629),#08070c 65%); }
.detail-art { display:grid;place-items:center;min-height:360px;background:radial-gradient(circle at 50% 70%,color-mix(in srgb,var(--rarity) 30%,transparent),transparent 64%); }
.detail-art img { width:95%;height:390px;object-fit:contain;filter:drop-shadow(0 14px 12px #000); }
.detail-intro { align-self:center;padding:52px 38px 36px 20px; }
.detail-intro h2 { margin:7px 0 7px;color:#fff;font-size:clamp(33px,5vw,54px);line-height:.95; }
.detail-intro p { margin:0;color:#cfc3d6; }
.detail-badges,.detail-tags { display:flex;flex-wrap:wrap;gap:6px;margin-top:14px; }
.detail-badges span,.detail-tags span { padding:5px 8px;border:1px solid #4a3a56;border-radius:999px;background:#15101b;color:#d8cbdf;font-size:10px;font-weight:850; }
.detail-badges .weakness { border-color:#a74655;color:#ffb1bc; }
.detail-badges .resistance { border-color:#3d7d58;color:#afffc5; }
.detail-body { display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:18px; }
.detail-panel { padding:16px;border:1px solid #362a40;border-radius:11px;background:#08070c; }
.detail-panel h3 { margin:0 0 11px;color:var(--rarity,#fff);font-size:19px; }
.full-stats { display:grid;grid-template-columns:repeat(4,1fr);gap:7px; }
.full-stats div { padding:8px;border:1px solid #302638;border-radius:7px;background:#100c15;text-align:center; }
.full-stats span { display:block;color:#94899d;font-size:8px;font-weight:900;letter-spacing:.07em;text-transform:uppercase; }
.full-stats strong { color:#fff;font-size:16px; }
.move-list { display:grid;gap:7px; }
.move-row { display:flex;justify-content:space-between;gap:12px;padding:9px 10px;border-left:3px solid #765095;border-radius:6px;background:#14101a;color:#e8deed;font-size:12px;font-weight:800; }
.move-row span:last-child { color:#9f91aa;font-size:10px;white-space:nowrap; }
.move-detail-row { padding:11px;border-left:3px solid var(--rarity,#765095);border-radius:7px;background:#14101a; }
.move-detail-title { display:flex;justify-content:space-between;gap:12px;align-items:baseline; }
.move-detail-title strong { color:#fff;font-size:13px; }
.move-detail-title > span { color:#9f91aa;font-size:10px;white-space:nowrap; }
.move-detail-row p { margin:6px 0 9px;color:#c8bccf;font-size:11px;line-height:1.45; }
.move-facts { display:flex;flex-wrap:wrap;gap:5px; }
.move-facts span { padding:4px 6px;border:1px solid #443250;border-radius:5px;color:#d9cce2;background:#0b0910;font-size:9px;font-weight:800; }
.detail-panel-wide { grid-column:1/-1; }
.noscript-warning { margin:25px auto;padding:20px;border:1px solid #844;background:#211;color:#fff; }
@media (max-width:1050px) {
  .monster-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .monster-toolbar { grid-template-columns:1fr 1fr; }
  .clear-filters { min-height:40px; }
}
@media (max-width:800px) {
  .bestiary-hero { padding-top:48px; }
  .bestiary-layout { grid-template-columns:1fr; }
  .dungeon-sidebar { position:static;max-height:none;overflow:visible; }
  .sidebar-heading { position:static; }
  .mobile-dungeon-picker { display:grid;gap:5px;padding:12px 14px;color:#bdb0c8;font-size:10px;font-weight:900;letter-spacing:.1em;text-transform:uppercase; }
  .mobile-dungeon-picker select { height:42px;border:1px solid #6b4a80;border-radius:7px;background:#21172a;color:#fff;padding:0 10px;font-weight:800; }
  .tier-navigation { display:none; }
  .dungeon-copy { width:88%;padding-inline:26px; }
}
@media (max-width:560px) {
  .bestiary-hero { padding-top:40px; }
  .bestiary-page { overflow-x:clip; }
  .bestiary-hero h1 { max-width:100%;font-size:clamp(38px,11vw,48px);overflow-wrap:anywhere; }
  .bestiary-layout { width:calc(100% - 14px);max-width:calc(100vw - 14px); }
  .bestiary-content,.dungeon-sidebar,.dungeon-showcase,.monster-toolbar,.collection-heading,.monster-grid { width:100%;max-width:100%;min-width:0; }
  .dungeon-showcase { min-height:390px; }
  .dungeon-copy { width:100%;min-width:0;overflow:hidden;padding:30px 20px 92px; }
  .dungeon-copy h2 { max-width:100%;font-size:38px;overflow-wrap:anywhere; }
  .dungeon-stepper { grid-template-columns:1fr 1fr; }
  .dungeon-stepper span { grid-column:1/-1;grid-row:1; }
  .monster-toolbar { grid-template-columns:1fr; }
  .monster-grid { grid-template-columns:1fr 1fr;gap:8px; }
  .monster-card { grid-template-rows:145px auto; }
  .monster-art img { filter:none; }
  .monster-card-copy { padding:10px; }
  .monster-card h3 { font-size:15px; }
  .mini-stats span:nth-child(3) { display:none; }
  .mini-stats { grid-template-columns:1fr 1fr; }
  .trait-preview { display:none; }
  .monster-detail-hero { grid-template-columns:1fr; }
  .detail-art { min-height:260px; }
  .detail-art img { height:280px; }
  .detail-intro { padding:10px 22px 26px; }
  .detail-body { grid-template-columns:1fr;padding:10px; }
  .detail-panel-wide { grid-column:auto; }
  .full-stats { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:440px) {
  .collection-heading { align-items:flex-start;flex-wrap:wrap; }
  .collection-heading > div { min-width:0;max-width:100%; }
  .collection-heading h2 { overflow-wrap:anywhere; }
  .monster-grid { grid-template-columns:minmax(0,1fr);gap:10px; }
  .monster-card { grid-template-rows:210px auto; }
  .monster-card h3,.monster-subtitle { white-space:normal; }
}

/* Public move summaries share the full detail width. */
.move-mana { color:#dacbe6;font-size:11px;font-weight:700; }
.detail-badges > span, .trait-preview > span { text-transform:uppercase; }
.move-detail-title > span { color:#ffd580;font-size:11px; }
.move-detail-row p { font-size:12px;line-height:1.6; }
