.bestiary-page{background:#090e18}
.bestiary{max-width:1240px;padding:0 clamp(20px,4vw,54px) 72px}
.bestiary [hidden]{display:none!important}
.bestiary-heading{padding:52px 0 30px;max-width:780px}
.bestiary-back{display:inline-flex;gap:10px;margin-bottom:28px;font-size:13px;color:var(--muted);text-decoration:none}
.bestiary-back:hover{color:var(--gold)}
.bestiary h1{margin:0 0 20px;font-family:Georgia,serif;font-weight:400;font-size:clamp(46px,6.5vw,84px);line-height:1.02;letter-spacing:-.03em;text-wrap:balance}
.bestiary-lead{margin:0 0 14px;max-width:62ch;color:#d9d7d3;font-size:clamp(17px,1.4vw,19px);line-height:1.7}
.bestiary-truth{margin:0;max-width:66ch;color:var(--muted);font-size:14px;line-height:1.65}

.bestiary-tools{display:grid;gap:16px;padding:20px;margin-bottom:28px;background:#121b2bcc;border:1px solid var(--line);border-radius:10px}
.bestiary-search{display:grid;gap:7px;max-width:380px;font-size:13px;color:var(--muted)}
.bestiary-search input{min-height:44px;padding:0 14px;color:var(--text);background:#0b121f;border:1px solid var(--line);border-radius:8px;font:inherit;font-size:15px}
.bestiary-search input:focus{border-color:var(--gold)}
.bestiary-filter-groups{display:grid;gap:12px}
.bestiary-filter{display:flex;flex-wrap:wrap;gap:8px}
.bestiary-filter button{min-height:38px;padding:0 14px;color:var(--text);background:#0f1726;border:1px solid var(--line);font:inherit;font-size:13px;font-weight:600;cursor:pointer}
.bestiary-filter button:hover{border-color:var(--gold)}
.bestiary-filter button[aria-pressed="true"]{color:#1b160d;background:var(--gold);border-color:var(--gold)}
.bestiary-filter button[style]{border-left:4px solid var(--rarity)}
.bestiary-count{margin:0;font-size:13px;color:var(--muted)}

.bestiary-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:20px;align-items:start}
.bestiary-card{display:flex;flex-direction:column;overflow:hidden;background:var(--panel);border:1px solid var(--line);border-top:3px solid var(--rarity);border-radius:10px;scroll-margin-top:110px}
.bestiary-card:target{box-shadow:0 0 0 2px var(--gold)}
.bestiary-art{display:grid;place-items:center;aspect-ratio:1;padding:14px;background:radial-gradient(circle at 50% 38%,#26354f 0,#0f1726 72%)}
.bestiary-art img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 8px 14px #0008)}
.bestiary-noart{display:grid;place-items:center;width:84px;height:84px;color:var(--muted);border:1px dashed var(--line);border-radius:50%;font-size:30px}
.bestiary-body{display:grid;gap:8px;padding:16px 18px 18px}
.bestiary-tags{display:flex;flex-wrap:wrap;gap:8px;margin:0;font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}
.bestiary-rarity{color:var(--rarity)}
.bestiary-rank{padding:1px 8px;color:#1b160d;background:var(--gold);border-radius:4px}
.bestiary-card h2{margin:0;font-family:Georgia,serif;font-weight:400;font-size:23px;line-height:1.2;letter-spacing:-.01em;text-wrap:balance}
.bestiary-facts{display:flex;flex-wrap:wrap;gap:4px 14px;margin:0;font-size:14px;color:var(--muted)}
.bestiary-more{margin-top:6px;border-top:1px solid var(--line);padding-top:10px}
.bestiary-more summary{cursor:pointer;font-size:14px;font-weight:650;color:var(--gold)}
.bestiary-detail{display:grid;gap:10px;padding-top:12px}
.bestiary-detail h3{margin:2px 0 0;font-size:13px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.bestiary-desc{margin:0;font-size:14px;line-height:1.65;color:#d9d7d3}
.bestiary-pending{color:var(--muted);font-style:italic}
.bestiary-stats{display:grid;gap:4px;margin:0}
.bestiary-stats div{display:flex;justify-content:space-between;gap:12px;padding:5px 0;border-bottom:1px solid #27344a88;font-size:14px}
.bestiary-stats dt{color:var(--muted)}
.bestiary-stats dd{margin:0;font-weight:700;font-variant-numeric:tabular-nums}
.bestiary-growth{margin:0;font-size:13px;line-height:1.6;color:var(--muted)}

.bestiary-empty,.bestiary-note{padding:24px;margin:0 0 24px;color:var(--muted);background:#121b2bcc;border:1px dashed var(--line);border-radius:10px;text-align:center}
.bestiary-close{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px 32px;margin-top:56px;padding:28px 0 0;border-top:1px solid var(--line)}
.bestiary-close p{margin:0;font-family:Georgia,serif;font-size:clamp(20px,2.4vw,28px);line-height:1.3}
.bestiary-close a{color:var(--gold);font-weight:650}

@media(max-width:640px){.bestiary-heading{padding-top:30px}.bestiary-grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px}.bestiary-tools{padding:14px}}
@media(prefers-reduced-motion:reduce){.bestiary *{transition:none!important}}

/* Creature page */
.creature{padding-top:8px}
.creature-crumbs{display:flex;gap:8px;padding:34px 0 8px;font-size:13px;color:var(--muted)}.creature-crumbs a{color:var(--muted);text-decoration:none}.creature-crumbs a:hover{color:var(--gold)}
.creature-hero{display:grid;grid-template-columns:minmax(240px,380px) 1fr;gap:clamp(24px,4vw,56px);align-items:center;padding:18px 0 34px}
.creature-portrait{display:grid;place-items:center;aspect-ratio:1;padding:22px;background:radial-gradient(circle at 50% 38%,#2b3b57 0,#0f1726 74%);border:1px solid var(--line);border-top:3px solid var(--rarity);border-radius:14px}
.creature-portrait img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 14px 22px #000a)}
.creature-id{display:grid;gap:14px;min-width:0}.creature-id h1{margin:0;font-size:clamp(40px,5.4vw,72px)}
.creature-desc{margin:0;max-width:60ch;font-size:clamp(16px,1.3vw,18px);line-height:1.75;color:#d9d7d3}
.creature-where{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:4px 0 0}.creature-where-label{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-right:4px}
.zone-chip{padding:6px 12px;font-size:13px;font-weight:650;color:var(--text);text-decoration:none;background:#0f1726;border:1px solid var(--line);border-radius:999px}.zone-chip:hover{border-color:var(--gold);color:var(--gold)}
.creature-rewards{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;margin:0 0 36px}
.creature-rewards div{display:grid;gap:4px;padding:16px 18px;background:#121b2bcc;border:1px solid var(--line);border-radius:10px}.creature-rewards span{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.creature-rewards strong{font:400 28px/1.15 Georgia,serif;color:var(--gold)}.creature-rewards small{font-size:12px;color:var(--muted)}
.creature-section{margin:0 0 40px}.creature-section h2{margin:0 0 16px;font:400 clamp(26px,3vw,36px)/1.2 Georgia,serif;letter-spacing:-.015em}.creature-section h3{margin:22px 0 10px;font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.creature-note{margin:0 0 6px;max-width:70ch;font-size:14px;line-height:1.65;color:var(--muted)}
.loot-list{list-style:none;margin:0;padding:0;display:grid;gap:0;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#101828}
.loot-list li{display:grid;grid-template-columns:44px minmax(0,1fr) auto 84px;align-items:center;gap:14px;padding:9px 16px;border-top:1px solid #27344a88}.loot-list li:first-child{border-top:0}
.loot-icon{display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--rarity);border-radius:8px;background:#0b121f}.loot-icon img{width:36px;height:36px;object-fit:contain}.loot-noicon{color:var(--muted)}
.loot-name{display:grid;gap:2px;min-width:0}.loot-title{font-size:15px;font-weight:600;overflow-wrap:anywhere}.loot-meta{font-size:12px;color:var(--muted)}.loot-rarity{font-weight:700}
.loot-qty{font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}.loot-chance{text-align:right;font-weight:700;font-variant-numeric:tabular-nums;color:var(--gold)}
.loot-pool{margin-top:14px;border:1px solid var(--line);border-radius:10px;background:#0f1726}.loot-pool>summary{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 18px;padding:14px 16px;cursor:pointer;font-weight:650}.loot-pool-info{font-size:13px;font-weight:500;color:var(--muted)}
.loot-pool .loot-list{border:0;border-top:1px solid var(--line);border-radius:0 0 10px 10px}
.creature-pager{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 24px;margin-top:48px;padding-top:24px;border-top:1px solid var(--line)}.creature-pager a{color:var(--gold);font-weight:650;text-decoration:none}.creature-pager a:hover{text-decoration:underline}
.bestiary-card h2 a{color:inherit;text-decoration:none}.bestiary-card h2 a:hover{color:var(--gold)}.bestiary-full{display:inline-block;margin-top:4px;color:var(--gold);font-weight:650;font-size:14px}
@media(max-width:760px){.creature-hero{grid-template-columns:1fr}.creature-portrait{max-width:340px}.loot-list li{grid-template-columns:40px minmax(0,1fr) auto;gap:10px;padding:9px 12px}.loot-qty{display:none}.loot-icon{width:40px;height:40px}}

/* Familiar spells page */
nav.bestiary-jump{display:flex;flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:10px;margin:0 0 36px;padding:0}
.bestiary-jump a{padding:9px 18px;color:var(--text);background:#0f1726;border:1px solid var(--line);border-radius:999px;font-size:14px;font-weight:650;text-decoration:none}
.bestiary-jump a:hover{color:#1b160d;background:var(--gold);border-color:var(--gold)}
.bestiary-role-group{margin:0 0 56px;scroll-margin-top:100px}
.bestiary-role-group>h2{margin:0 0 22px;padding-bottom:12px;border-bottom:1px solid var(--line);font-family:Georgia,serif;font-weight:400;font-size:clamp(30px,3.4vw,42px);letter-spacing:-.02em}
.bestiary-rarity-group{margin:0 0 30px}
.bestiary-rarity-group>h3{display:flex;align-items:baseline;gap:12px;margin:0 0 14px;font-size:15px;letter-spacing:.06em;text-transform:uppercase}
.bestiary-rarity-group>h3 .bestiary-rarity{padding-left:10px;border-left:4px solid var(--rarity)}
.bestiary-count-inline{color:var(--muted);font-size:13px;font-weight:600;letter-spacing:0;text-transform:none}
.ability-grid{grid-template-columns:repeat(auto-fill,minmax(310px,1fr))}
.bestiary-ability{gap:14px;padding:16px 18px 18px}
.ability-head{display:grid;grid-template-columns:64px 1fr;gap:14px;align-items:center}
.ability-icon{display:grid;place-items:center;width:64px;height:64px;border:2px solid var(--rarity);border-radius:14px;background:radial-gradient(circle at 50% 35%,#26354f 0,#0b121f 78%);box-shadow:0 0 16px color-mix(in srgb,var(--rarity) 32%,transparent)}
.ability-icon img{width:52px;height:52px;object-fit:contain}
.ability-icon span{color:var(--rarity);font-size:26px}
.ability-title h4{margin:0 0 4px;font-family:Georgia,serif;font-weight:400;font-size:21px;line-height:1.2;text-wrap:balance}
.ability-kind{margin:0;color:var(--muted);font-size:13px;font-weight:650;letter-spacing:.03em}
.ability-chips{display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none}
.ability-chips li{display:inline-flex;gap:6px;align-items:baseline;padding:4px 10px;background:#0f1726;border:1px solid var(--line);border-radius:999px;font-size:12.5px}
.ability-chips span{color:var(--muted)}
.ability-chips b{font-variant-numeric:tabular-nums}
.ability-effects{display:grid;gap:6px;margin:0;padding:0;list-style:none}
.ability-effects .fx{--fx:var(--gold);display:grid;gap:2px;padding:9px 12px;background:#0e1626;border-left:3px solid var(--fx);border-radius:6px;font-size:14px;line-height:1.45}
.ability-effects .fx b{color:var(--fx);font-size:11.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.ability-effects .fx-damage{--fx:#ef6a60}
.ability-effects .fx-heal{--fx:#58d68a}
.ability-effects .fx-buff{--fx:#58a8ff}
.ability-effects .fx-control{--fx:#b97aff}
.ability-effects .fx-bonus{--fx:var(--gold)}
.ability-desc{margin:0;color:var(--muted);font-size:13.5px;line-height:1.55;font-style:italic}
.ability-more summary{cursor:pointer;color:var(--gold);font-size:13px;font-weight:650}
.ability-more[open] summary{margin-bottom:8px}
@media(max-width:640px){.ability-grid{grid-template-columns:1fr}}

/* Call to action to the familiar spells page (bestiary header) */
.bestiary-cta{display:inline-flex;align-items:center;gap:16px;margin:6px 0 22px;padding:14px 22px 14px 16px;color:var(--text);background:linear-gradient(135deg,#2a2112,#141c2c);border:1px solid var(--gold);border-radius:12px;text-decoration:none;box-shadow:0 6px 22px #0006;transition:transform .15s,box-shadow .15s,border-color .15s}
.bestiary-cta:hover{transform:translateY(-2px);box-shadow:0 10px 28px #000a,0 0 0 1px var(--gold)}
.bestiary-cta-icon{display:grid;place-items:center;width:42px;height:42px;color:#1b160d;background:var(--gold);border-radius:10px;font-size:22px}
.bestiary-cta-text{display:grid;gap:2px}
.bestiary-cta-text strong{font-family:Georgia,serif;font-weight:400;font-size:21px;line-height:1.2}
.bestiary-cta-text small{color:var(--muted);font-size:13px}
.bestiary-cta-arrow{color:var(--gold);font-size:24px;transition:transform .15s}
.bestiary-cta:hover .bestiary-cta-arrow{transform:translateX(4px)}
@media(max-width:640px){.bestiary-cta{display:flex}}

/* The creature portrait links to its sheet, like the name */
a.bestiary-art{text-decoration:none;cursor:pointer}
a.bestiary-art img{transition:transform .2s}
a.bestiary-art:hover img{transform:scale(1.05)}

/* Level tiers of a species (creature sheet) */
.creature-tiers-wrap{overflow-x:auto;margin-top:12px}
.creature-tiers{width:100%;border-collapse:collapse;font-size:14px;font-variant-numeric:tabular-nums}
.creature-tiers th,.creature-tiers td{padding:6px 10px;text-align:right;border-bottom:1px solid rgba(255,255,255,.08);white-space:nowrap}
.creature-tiers thead th{font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.creature-tiers tbody th{font-weight:700;color:var(--gold)}
.creature-tiers .tier-art{width:64px;padding:2px 6px;text-align:center}
.creature-tiers .tier-art img{display:block;margin:0 auto;width:56px;height:56px;object-fit:contain}
.creature-tiers th:first-child,.creature-tiers th:nth-child(2){text-align:center}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
