/* GrimDex — Reliquary component kit. Tokens first, then components. No build step. */
:root{
  --bg:#0d0b09;--bg2:#15110d;--panel:#1a1510;--panel2:#120e0a;--line:#3a2e20;--line2:#5a4630;
  --brass:#c9a46a;--brass-d:#8a6c40;--bone:#e6dccb;--ash:#a89a85;--dim:#8a7c69;
  --blood:#a3302a;--blood-l:#d2564c;--aether:#6fd2a8;--frost:#8db7e0;
  /* Grim Dawn rarity colours */
  --r-common:#d8d2c4;--r-magical:#f0dc5a;--r-rare:#5fd36f;--r-epic:#4fa6ff;--r-legendary:#b773f2;--r-set:#5fd36f;--r-relic:#e6b04a;
  --fd:'IM Fell English SC',Georgia,serif;--fi:'IM Fell English',Georgia,serif;--fb:'Alegreya Sans',system-ui,sans-serif;
  --s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--s7:48px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{background:var(--bg);color:var(--bone);font:16px/1.55 var(--fb);-webkit-font-smoothing:antialiased;color-scheme:dark}
body{min-height:100vh;background:radial-gradient(1200px 600px at 50% -10%,#2a1a10 0%,transparent 60%),radial-gradient(800px 500px at 100% 100%,#1c0d0b 0%,transparent 60%),var(--bg);overflow-x:hidden}
#embers{position:fixed;inset:0;pointer-events:none;z-index:0;opacity:.75}
.grain{position:fixed;inset:0;pointer-events:none;z-index:1;opacity:.07;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.wrap{position:relative;z-index:2;max-width:1240px;margin:0 auto;padding:0 28px}
a{color:inherit}
a.lnk{color:var(--brass);text-decoration:none;border-bottom:1px solid var(--brass-d)}a.lnk:hover{color:var(--bone)}
mark{background:none;color:var(--brass);text-decoration:underline;text-decoration-color:var(--brass-d);text-underline-offset:3px}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
:focus-visible{outline:1px solid var(--brass);outline-offset:3px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.muted{color:var(--dim)}.ash{color:var(--ash)}.italic{font-family:var(--fi);font-style:italic}
.num{font-variant-numeric:tabular-nums}

/* rarity text */
.c-Common{color:var(--r-common)}.c-Magical{color:var(--r-magical)}.c-Rare{color:var(--r-rare)}.c-Epic{color:var(--r-epic)}.c-Legendary{color:var(--r-legendary)}
.c-Relic,.c-Quest{color:var(--r-relic)}
.t-monster{color:var(--blood-l)}.t-devotion{color:var(--aether)}.t-skill{color:var(--frost)}.t-set{color:var(--r-set)}

/* header */
header.top{display:flex;align-items:center;gap:28px;padding:20px 0;border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none}
.brand svg{width:28px;height:28px;color:var(--brass)}
.brand b{font:21px var(--fd);letter-spacing:.08em;color:var(--bone)}
nav.main{display:flex;gap:22px;font:15px var(--fd);letter-spacing:.06em;color:var(--ash)}
nav.main a{text-decoration:none;padding:4px 0;border-bottom:1px solid transparent}
nav.main a:hover,nav.main a[aria-current]{color:var(--bone);border-color:var(--brass-d)}
.top-right{margin-left:auto;display:flex;gap:14px;align-items:center;font-size:13px;color:var(--dim)}
.top-right .v{white-space:nowrap;border:1px solid var(--line2);padding:3px 9px;color:var(--brass);letter-spacing:.04em}
.mini-search{display:flex;align-items:center;gap:8px;border:1px solid var(--line);background:var(--panel2);padding:4px 10px;width:230px}
.mini-search input{background:none;border:0;outline:0;color:var(--bone);font:15px var(--fi);width:100%}
.mini-search svg{width:15px;color:var(--brass-d);flex:none}
footer.foot{border-top:1px solid var(--line);margin-top:60px;padding:22px 0 40px;font-size:13px;color:var(--dim);display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}

/* page head */
.phead{padding:44px 0 26px;display:flex;gap:22px;align-items:flex-end;flex-wrap:wrap}
.phead .eyebrow{font:14px var(--fi);font-style:italic;color:var(--ash)}
.phead h1{font:clamp(34px,5vw,56px)/1 var(--fd);letter-spacing:.03em;margin:6px 0 4px}
.phead .sub{color:var(--ash)}
.phead .act{margin-left:auto;display:flex;gap:10px;flex-wrap:wrap}
.rule{display:flex;align-items:center;gap:14px;justify-content:center;color:var(--brass-d);margin:6px auto 14px;max-width:520px}
.rule:before,.rule:after{content:"";flex:1;height:1px;background:linear-gradient(90deg,transparent,var(--brass-d),transparent)}

/* item page: tooltip | copies + drops | set, blueprint, record */
.ig{display:grid;grid-template-columns:minmax(340px,400px) minmax(0,1fr) 300px;grid-template-areas:"a b c";gap:30px;align-items:start}
.ig-a{grid-area:a;position:sticky;top:20px}.ig-b{grid-area:b;min-width:0}.ig-c{grid-area:c;min-width:0}
.ig-a .tt{max-width:none}
.copies{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:12px;align-items:start}
.copies .tt{max-width:none}
@media (max-width:1180px){.ig{grid-template-columns:minmax(320px,400px) minmax(0,1fr);grid-template-areas:"a b" "c b";grid-template-rows:auto 1fr}.ig-a{position:static}}
@media (max-width:800px){.ig{grid-template-columns:1fr;grid-template-areas:"a" "b" "c";grid-template-rows:none}}
@media (min-width:1500px){.wrap{max-width:1480px}}

/* layout */
.cols{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:30px;align-items:start}
.cols.c3{grid-template-columns:280px minmax(0,1fr) 290px}
.stack>*+*{margin-top:28px}
.panel h2{font:15px var(--fd);letter-spacing:.14em;color:var(--brass);display:flex;align-items:center;gap:10px;margin-bottom:14px}
.panel h2:after{content:"";flex:1;height:1px;background:var(--line)}
.panel h2 small{font:12px var(--fb);letter-spacing:.02em;color:var(--dim);order:2}
.box{border:1px solid var(--line);background:var(--panel);padding:16px 18px;position:relative}
.box.lit{border-color:var(--brass-d)}
.box+.box{margin-top:10px}
.corners{position:relative}
.corners:before,.corners:after{content:"";position:absolute;width:14px;height:14px;border:1px solid var(--brass);pointer-events:none}
.corners:before{top:-4px;left:-4px;border-right:0;border-bottom:0}
.corners:after{bottom:-4px;right:-4px;border-left:0;border-top:0}

/* buttons, chips, tags */
.btn{display:inline-flex;align-items:center;gap:10px;font:16px var(--fd);letter-spacing:.08em;color:#1a120a;background:linear-gradient(180deg,#e2c083,#a9844c);padding:10px 20px;border:1px solid #f0d8a6;box-shadow:0 0 0 1px #000,0 10px 30px -10px rgba(201,164,106,.5);text-decoration:none}
.btn:hover{filter:brightness(1.08)}.btn[disabled]{filter:grayscale(.7) brightness(.7);cursor:wait}
.btn svg{width:17px}
.btn.ghost{background:none;color:var(--ash);border:1px solid var(--line2);box-shadow:none}
.btn.ghost:hover{color:var(--bone);border-color:var(--brass-d)}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{font-size:12px;letter-spacing:.04em;color:var(--ash);border:1px solid var(--line);padding:3px 9px;text-decoration:none;white-space:nowrap}
button.chip{color:var(--dim)}
.chip[aria-pressed=true]{color:var(--bg);background:var(--brass);border-color:var(--brass)}
a.chip:hover,button.chip:hover{border-color:var(--brass-d);color:var(--bone)}
.tag{font-size:11px;letter-spacing:.12em;text-transform:uppercase}
.tag.nerf,.tag.bad{color:var(--blood-l)}.tag.buff,.tag.good{color:var(--aether)}.tag.new{color:var(--brass)}
.badge{display:inline-block;font:11px var(--fb);letter-spacing:.08em;text-transform:uppercase;padding:1px 7px;border:1px solid currentColor;line-height:1.6}
.badge.exact{color:var(--aether)}.badge.approx{color:var(--r-magical)}.badge.own{color:var(--brass)}.badge.miss{color:var(--dim)}

/* icon tile */
.tile{--sz:48px;width:var(--sz);height:var(--sz);flex:none;display:grid;place-items:center;background:radial-gradient(circle at 50% 40%,#2a2117,#0f0c09);border:1px solid var(--line2);position:relative}
/* Game icons come in 9 aspect ratios (32x128 swords to 96x64 shields): pin the image inside the tile box and letterbox it. */
.tile img{position:absolute;inset:6%;width:88%;height:88%;max-width:none;object-fit:contain;object-position:center;image-rendering:auto}
.tile.r-Magical{border-color:#7a6e2d}.tile.r-Rare{border-color:#2f6b37}.tile.r-Epic{border-color:#2a5683}.tile.r-Legendary{border-color:#5e3a80}
.tile.r-Legendary{box-shadow:inset 0 0 14px rgba(183,115,242,.18)}
.tile .n{position:absolute;right:-6px;bottom:-6px;font:11px var(--fb);background:var(--brass);color:var(--bg);padding:0 5px;line-height:16px}
.tile.empty{border-style:dashed;opacity:.55}
.tile.empty:after{content:"";width:30%;height:30%;border:1px solid var(--dim);transform:rotate(45deg)}

/* item tooltip */
.tt{background:linear-gradient(180deg,#17120d,#0e0b08);border:1px solid var(--line2);padding:18px 20px 16px;max-width:420px;box-shadow:0 24px 60px -24px #000;position:relative}
.tt:before{content:"";position:absolute;inset:4px;border:1px solid rgba(201,164,106,.12);pointer-events:none}
.tt-head{display:flex;gap:14px;align-items:flex-start}
.tt-name{font:22px/1.12 var(--fd);letter-spacing:.02em}
.tt-myth{font:12px var(--fd);letter-spacing:.14em;color:var(--blood-l);display:block;margin-bottom:2px}
.tt-kind{font:14px var(--fi);font-style:italic;color:var(--ash);text-transform:capitalize}
.tt-sec{border-top:1px solid var(--line);margin-top:12px;padding-top:10px}
.tt-sec h4{font:12px var(--fb);letter-spacing:.14em;text-transform:uppercase;color:var(--dim);margin-bottom:6px;display:flex;justify-content:space-between;gap:8px}
.tt ul{list-style:none}
.tt li{font-size:14.5px;line-height:1.5;color:#cfd8e6}
.tt li.res{color:#e8c99a}.tt li.skill{color:var(--r-magical)}.tt li.base{color:var(--bone)}
.tt li .was{color:var(--dim);font-size:12px;margin-left:6px}
.tt .granted li:first-child{color:var(--brass);font-family:var(--fi)}
.tt .granted li{color:var(--ash)}
.tt .setb li{color:var(--dim)}.tt .setb li.on{color:var(--r-set)}
.tt .setb .pcs{font:12px var(--fd);color:var(--dim);margin-top:6px}.tt .setb .pcs.on{color:var(--r-set)}
.tt .req li{color:var(--dim);font-size:13px}
.tt-foot{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px;align-items:center;font-size:12px;color:var(--dim)}
.tt.compact{padding:14px 16px;max-width:none}
.tt.compact .tt-name{font-size:18px}
.float-tt{position:fixed;z-index:50;pointer-events:none;width:360px;opacity:0;transition:opacity .12s}
.float-tt.on{opacity:1}

/* lists / tables */
.rows{list-style:none}
.rows li{display:flex;gap:12px;align-items:center;padding:9px 0;border-bottom:1px dashed var(--line);font-size:14px;color:var(--ash)}
.rows li:last-child{border-bottom:0}
.rows li b{color:var(--bone);font-weight:500}
.rows li .r{margin-left:auto;text-align:right;white-space:nowrap}
.rows a{text-decoration:none}.rows a:hover b{color:var(--brass)}
table.t{width:100%;border-collapse:collapse;font-size:14px}
table.t th{font:12px var(--fb);letter-spacing:.12em;text-transform:uppercase;color:var(--dim);text-align:left;padding:6px 8px;border-bottom:1px solid var(--line2)}
table.t td{padding:8px;border-bottom:1px dashed var(--line);color:var(--ash);vertical-align:top}
table.t td.n,table.t th.n{text-align:right;font-variant-numeric:tabular-nums}
table.t tr:hover td{background:#18130e}
.scroll-x{overflow-x:auto}

/* bars */
.gap{display:grid;grid-template-columns:62px 1fr 42px;gap:8px;align-items:center;font-size:12.5px;color:var(--ash);margin-top:6px}
.gap i{height:5px;background:#2a211a;position:relative}
.gap i:after{content:"";position:absolute;inset:0;width:var(--w);background:linear-gradient(90deg,var(--blood),var(--blood-l))}
.gap.ok i:after{background:linear-gradient(90deg,#3d6e55,var(--aether))}
.gap.neg i{background:repeating-linear-gradient(135deg,#3a1512 0 4px,#2a211a 4px 8px)}
.gap span:last-child{text-align:right;color:var(--blood-l);font-variant-numeric:tabular-nums}
.gap.ok span:last-child{color:var(--aether)}
.prog{display:flex;justify-content:space-between;gap:10px;font-size:13px;color:var(--ash);margin:12px 0 4px}
.bar{height:3px;background:#2a211a}.bar i{display:block;height:100%;width:var(--w);background:var(--brass);transition:width .6s ease}

/* character card (roster) */
.char{border:1px solid var(--line);background:var(--panel);padding:14px 16px;margin-bottom:10px;position:relative;display:block;text-decoration:none}
.char:hover{border-color:var(--line2)}
.char.main{border-color:var(--brass-d)}
.char.main:before{content:"main";position:absolute;top:-9px;right:12px;background:var(--bg);padding:0 6px;font:12px var(--fd);color:var(--brass);letter-spacing:.1em}
.char .row{display:flex;align-items:baseline;justify-content:space-between}
.char b{font:24px var(--fd)}
.char .lv{font:13px var(--fb);color:var(--ash)}.char .lv em{font:26px var(--fd);font-style:normal;color:var(--bone)}
.char .cl{font-size:14px;color:var(--brass)}.char .ms{font-size:13px;color:var(--dim)}
.char .nt{font-size:13px;color:var(--dim);margin-top:8px;font-style:italic;font-family:var(--fi)}

/* search slab */
.slab{position:relative;max-width:820px;margin:30px auto 0;text-align:left}
.slab-in{position:relative;background:linear-gradient(180deg,#1f1912,#140f0b);border:1px solid var(--line2);box-shadow:inset 0 1px 0 rgba(255,230,190,.06),0 20px 50px -20px #000;padding:6px}
.field{display:flex;align-items:center;gap:12px;padding:10px 14px}
.field svg{width:20px;color:var(--brass-d);flex:none}
.field input{flex:1;background:none;border:0;outline:0;color:var(--bone);font:22px var(--fi);min-width:0}
.field input::-webkit-search-cancel-button{display:none}
.field input::placeholder{color:var(--dim);font-style:italic}
kbd{font:12px var(--fb);color:var(--dim);border:1px solid var(--line2);padding:1px 6px;border-radius:2px}
.tabs{display:flex;gap:2px;border-top:1px solid var(--line);padding:6px 8px 2px;flex-wrap:wrap}
.tabs button{font:14px var(--fd);letter-spacing:.05em;color:var(--dim);padding:5px 12px}
.tabs button[aria-pressed=true]{color:var(--brass);background:#241c13}
.tabs button small{font:11px var(--fb);opacity:.7;margin-left:4px}
.results{display:grid;grid-template-columns:minmax(0,1fr) 340px;border-top:1px solid var(--line);max-height:0;overflow:hidden;transition:max-height .35s ease}
.results.open{max-height:520px}
.rlist{list-style:none;overflow:auto;max-height:500px;padding:6px}
.rlist li{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:10px;align-items:center;padding:6px 10px;cursor:pointer;border-left:2px solid transparent}
.rlist li[aria-selected=true]{background:#221a12;border-color:var(--brass)}
.rlist .tile{--sz:32px}
.rlist .g{width:10px;height:10px;transform:rotate(45deg);border:1px solid currentColor;margin-left:11px}
.rlist .nm{font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rlist .sb{font-size:13px;color:var(--dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-transform:capitalize}
.rlist .mt{font-size:12px;color:var(--ash);text-align:right;white-space:nowrap}
.detail{border-left:1px solid var(--line);padding:14px;background:#120e0a;overflow:auto;max-height:500px}
.detail .tt{max-width:none;box-shadow:none}
.empty{padding:22px;color:var(--dim);font-style:italic;font-family:var(--fi)}
.hints{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:14px;font-size:13px;color:var(--dim);align-items:center}
.hints button{border:1px solid var(--line);padding:3px 10px;color:var(--ash)}
.hints button:hover{border-color:var(--brass-d);color:var(--bone)}

/* omen card (Grim Tips) */
.omen{position:relative;perspective:1200px}
.card{position:relative;background:radial-gradient(500px 240px at 50% 0%,rgba(201,164,106,.10),transparent 70%),linear-gradient(180deg,#1d1711,#130f0b);border:1px solid var(--line2);padding:40px 44px 30px;min-height:360px;transition:transform .5s cubic-bezier(.3,.7,.3,1),opacity .3s}
.card.flip{transform:rotateX(8deg) translateY(10px);opacity:0}
.card.personal{border-color:var(--brass-d);background:radial-gradient(500px 240px at 50% 0%,rgba(163,48,42,.16),transparent 70%),linear-gradient(180deg,#1d1711,#130f0b)}
.frame{position:absolute;inset:8px;border:1px solid rgba(201,164,106,.18);pointer-events:none}
.frame i{position:absolute;width:26px;height:26px;color:var(--brass-d)}
.frame i:nth-child(1){top:-6px;left:-6px}.frame i:nth-child(2){top:-6px;right:-6px;transform:scaleX(-1)}
.frame i:nth-child(3){bottom:-6px;left:-6px;transform:scaleY(-1)}.frame i:nth-child(4){bottom:-6px;right:-6px;transform:scale(-1)}
.omen-top{display:flex;justify-content:space-between;align-items:center;font-size:13px;color:var(--dim);letter-spacing:.08em}
.omen-top .cat{font:14px var(--fd);color:var(--brass);letter-spacing:.14em}
.card h3{font:clamp(24px,3vw,32px)/1.14 var(--fi);margin:22px 0 14px;color:var(--bone);text-wrap:balance}
.card p.d{font-size:17px;color:var(--ash);max-width:62ch}
.card .meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px;font-size:12px}
.card .meta span,.card .meta a{border:1px solid var(--line2);padding:3px 9px;color:var(--ash);text-decoration:none}
.card .meta a:hover{color:var(--brass);border-color:var(--brass-d)}
.omen-ctl{display:flex;align-items:center;gap:12px;margin:16px 0}
.omen-ctl .seen{margin-left:auto;font-size:13px;color:var(--dim)}
.btn:active svg.spin{transform:rotate(-180deg)}.btn svg.spin{transition:transform .5s}
.ledger li{list-style:none;padding:11px 0;border-bottom:1px dashed var(--line);font-size:14px;color:var(--ash)}
.ledger li b{display:block;color:var(--bone);font:16px var(--fi)}

/* hero */
.hero{text-align:center;padding:60px 0 30px}
.hero .over{font:15px var(--fi);font-style:italic;color:var(--ash)}
.hero h1{font:clamp(54px,9vw,112px)/.95 var(--fd);letter-spacing:.04em;margin:10px 0 6px;background:linear-gradient(180deg,#f1e2c4 0%,#c9a46a 55%,#6e5230 100%);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 2px 0 #000) drop-shadow(0 0 30px rgba(201,164,106,.15))}
.hero .counts{color:var(--ash);font-size:15px}.hero .counts b{color:var(--bone);font-weight:500}

/* gear grid */
.gear{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}
.gear a{display:flex;gap:12px;align-items:center;border:1px solid var(--line);background:var(--panel2);padding:10px;text-decoration:none;min-width:0}
.gear a:hover{border-color:var(--line2);background:#18130e}
.gear .slot{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--dim)}
.gear .nm{font-size:14.5px;line-height:1.25;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}

/* forms */
.form{max-width:420px}
.form label{display:block;font:13px var(--fb);letter-spacing:.1em;text-transform:uppercase;color:var(--dim);margin:16px 0 6px}
.form input{width:100%;background:var(--panel2);border:1px solid var(--line2);color:var(--bone);font:17px var(--fb);padding:10px 12px;outline:0}
.form input:focus{border-color:var(--brass)}
.form .err{color:var(--blood-l);font-size:14px;margin-top:12px;min-height:1.4em}
.drop{display:block;border:1px dashed var(--line2);background:var(--panel2);padding:34px 20px;text-align:center;color:var(--ash);cursor:pointer;transition:border-color .2s,background .2s}
.drop.over,.drop:hover{border-color:var(--brass);background:#1a140e}
.drop b{display:block;font:20px var(--fd);color:var(--bone);margin-bottom:6px}
code{font:13px ui-monospace,Consolas,monospace;color:var(--bone);background:#0a0806;padding:1px 5px;border:1px solid var(--line);overflow-wrap:anywhere}
pre.code{background:#0a0806;border:1px solid var(--line);padding:12px 14px;font:13px/1.5 ui-monospace,Consolas,monospace;color:var(--ash);overflow-x:auto;white-space:pre-wrap}

/* toast + skeleton */
.toasts{position:fixed;bottom:22px;right:22px;z-index:60;display:flex;flex-direction:column;gap:8px}
.toast{background:#1d1711;border:1px solid var(--line2);border-left:3px solid var(--brass);padding:10px 14px;font-size:14px;max-width:340px;box-shadow:0 14px 40px -14px #000;animation:tin .25s ease}
.toast.bad{border-left-color:var(--blood-l)}.toast.good{border-left-color:var(--aether)}
@keyframes tin{from{opacity:0;transform:translateY(8px)}}
.sk{background:linear-gradient(90deg,#1a1510 0%,#241c14 50%,#1a1510 100%);background-size:200% 100%;animation:sk 1.4s linear infinite;border-radius:1px}
.sk.l{height:14px;margin:8px 0}.sk.h{height:30px;width:60%;margin:8px 0 16px}.sk.b{height:120px}
@keyframes sk{to{background-position:-200% 0}}
.notice{border:1px solid var(--line);border-left:3px solid var(--blood);background:var(--panel2);padding:14px 16px;color:var(--ash);font-size:14px}
.prose{color:var(--ash);font-size:15px}.prose p+p,.prose ul{margin-top:8px}.prose ul{padding-left:18px}.prose b{color:var(--bone)}

/* row links */
.rows li>a.rowlink{display:flex;gap:12px;align-items:center;width:100%;min-width:0;text-decoration:none}
.rows li>a.rowlink:hover b{color:var(--brass)}
.t-achievement{color:var(--r-relic)}

/* achievements */
.exp-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-bottom:18px}
.exp-cell{position:relative;text-align:left;border:1px solid var(--line);background:var(--panel2);padding:10px 12px 14px;display:flex;flex-direction:column;gap:2px;overflow:hidden}
.exp-cell span{font:13px var(--fd);letter-spacing:.06em;color:var(--ash)}
.exp-cell b{font:24px var(--fd);color:var(--bone)}.exp-cell b small{font:13px var(--fb);color:var(--dim);margin-left:2px}
.exp-cell i{position:absolute;left:0;bottom:0;height:3px;width:var(--w);background:var(--brass)}
.exp-cell:hover,.exp-cell.on{border-color:var(--brass-d)}.exp-cell.on{background:#1f1811}
.ach-filters{display:grid;gap:10px;padding:14px 16px}
.ach-q{display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--line);padding-bottom:10px}
.ach-q svg{width:18px;color:var(--brass-d);flex:none}
.ach-q input{flex:1;background:none;border:0;outline:0;color:var(--bone);font:19px var(--fi);min-width:0}
.ach-q input::placeholder{color:var(--dim);font-style:italic}
.ach-row{display:flex;flex-wrap:wrap;gap:8px 10px;align-items:center}
.ach-row .lbl,.ach-sort .lbl{font:11px var(--fb);letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}
.ach-sort{margin-left:auto;display:flex;gap:8px;align-items:center}
.ach-sort select{background:var(--panel2);color:var(--bone);border:1px solid var(--line2);font:14px var(--fb);padding:4px 8px}
.ach-bar{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:13px;margin:16px 0 8px}
.alist{border-top:1px solid var(--line)}
.ach{border-bottom:1px solid var(--line);background:linear-gradient(90deg,rgba(26,21,16,.6),transparent)}
.ach>summary{list-style:none;display:grid;grid-template-columns:26px minmax(0,1fr) auto 92px 70px;gap:14px;align-items:center;padding:12px 10px;cursor:pointer}
.ach>summary::-webkit-details-marker{display:none}
.ach>summary:hover{background:#18130e}
.ach[open]>summary{background:#1b150f}
.ach.flash>summary{animation:flash 1.6s ease}
@keyframes flash{0%,40%{background:#3a2a17}}
.ach-sig{width:20px;height:20px;transform:rotate(45deg);border:1px solid var(--line2);display:grid;place-items:center;margin-left:3px}
.ach-sig svg{width:16px;transform:rotate(-45deg);color:var(--bg)}
.ach-sig.s-done{background:var(--brass);border-color:var(--brass)}
.ach-sig.s-progress{border-color:var(--brass-d);background:linear-gradient(135deg,transparent 50%,rgba(201,164,106,.35) 50%)}
.ach-sig.s-likely{border-color:var(--r-magical);border-style:dashed}
.ach-main{min-width:0;display:flex;flex-direction:column}
.ach-name{font:18px/1.2 var(--fi);color:var(--bone)}
.ach.s-done .ach-name{color:var(--brass)}
.ach-desc{font-size:14px;color:var(--ash);line-height:1.35}
.ach.veiled .ach-name{color:var(--dim);font-style:italic}.ach.veiled .ach-desc{color:var(--dim)}
.ach-side{display:flex;flex-direction:column;align-items:flex-end;gap:4px;min-width:0}
.ach-meta{display:flex;gap:8px;align-items:center;font-size:12px;flex-wrap:wrap;justify-content:flex-end}
.ach-p{position:relative;font-size:12.5px;color:var(--bone);padding-bottom:5px;white-space:nowrap}
.ach-p i{position:absolute;left:0;right:0;bottom:0;height:2px;background:#2a211a}
.ach-p i:after{content:"";position:absolute;inset:0;width:var(--w);background:var(--brass)}
.ach-pct{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--dim)}
.ach-pct b{font-weight:500;color:var(--ash)}
.ach-pct i{height:3px;background:#2a211a;position:relative}.ach-pct i:after{content:"";position:absolute;inset:0;width:var(--w);background:var(--brass-d)}
.ach-via{text-align:right}
.ach-body{padding:4px 18px 18px 50px;max-width:980px}
.ach-how{font-size:15.5px;color:var(--bone);line-height:1.6}
.ach-tips{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px;margin-top:14px}
.ach-tip{border-left:2px solid var(--brass-d);padding:4px 12px;font-size:13.5px;color:var(--ash)}
.ach-tip b{display:block;font:15px var(--fi);color:var(--bone);margin-bottom:2px}
.ach-foot{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:14px}
.ach-foot .ach-mark{margin-left:auto;font-size:14px;padding:6px 14px}
.ach-mark[aria-pressed=true]{color:var(--brass);border-color:var(--brass-d)}

/* completionist */
.sum-head{display:grid;grid-template-columns:240px minmax(0,1fr);gap:40px;align-items:center;padding:40px 0 30px}
.ring{width:100%;max-width:240px;display:block}
.ring-o{fill:none;stroke:var(--line);stroke-width:1}.ring-t{fill:none;stroke:#241c14;stroke-width:10}
.ring-v{fill:none;stroke:url(#none);stroke:var(--brass);stroke-width:10;filter:drop-shadow(0 0 8px rgba(201,164,106,.35))}
.ring-k{stroke:var(--brass-d);stroke-width:1}
.ring-n{font:48px var(--fd);fill:var(--bone);text-anchor:middle}.ring-s{font-size:22px;fill:var(--brass)}
.ring-l{font:13px var(--fi);font-style:italic;fill:var(--dim);text-anchor:middle}
.sum-intro h1{font:clamp(34px,5vw,56px)/1 var(--fd);letter-spacing:.03em;margin:6px 0 8px}
.sum-intro .sub{max-width:70ch;font-size:15px}
.sum-parts{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:8px;margin-top:20px}
.sum-part{position:relative;display:grid;grid-template-columns:1fr auto;gap:2px 10px;border:1px solid var(--line);background:var(--panel2);padding:9px 12px 12px;text-decoration:none;overflow:hidden}
.sum-part:hover{border-color:var(--brass-d)}
.sum-part span{font:13px var(--fd);letter-spacing:.05em;color:var(--ash)}
.sum-part b{font:20px var(--fd);color:var(--bone);grid-row:2}.sum-part b small{font:12px var(--fb);color:var(--dim)}
.sum-part em{font-style:normal;font-size:13px;color:var(--brass);grid-row:1/3;grid-column:2;align-self:center}
.sum-part i{position:absolute;left:0;bottom:0;height:3px;width:var(--w);background:linear-gradient(90deg,var(--brass-d),var(--brass))}
.sum-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px;align-items:start}
.sum-grid>div{min-width:0}
.sum-stack>*+*{margin-top:28px}
.sum-big{font-size:15px;color:var(--ash);margin-bottom:6px}.sum-big b{font:30px var(--fd);color:var(--bone);margin-right:4px}
.sum-h{font:12px var(--fb);letter-spacing:.14em;text-transform:uppercase;color:var(--dim);margin:20px 0 4px}
.sum-trio{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.sum-trio div{border:1px solid var(--line);background:var(--panel2);padding:10px;text-align:center}
.sum-trio b{display:block;font:28px var(--fd);color:var(--bone)}.sum-trio span{font-size:12px;color:var(--dim);letter-spacing:.08em;text-transform:uppercase}
.sum-zones{list-style:none;max-height:340px;overflow:auto;border-top:1px solid var(--line);scrollbar-width:thin}
.sum-zones li{display:flex;justify-content:space-between;gap:10px;padding:6px 2px;border-bottom:1px dashed var(--line);font-size:13.5px}
.sum-zones li b{font-weight:500;color:var(--bone)}.sum-zones li span{color:var(--dim);text-align:right}
.sum-zones li.found b{color:var(--r-magical)}
.fac{font:11px var(--fb);letter-spacing:.1em;text-transform:uppercase;padding:1px 7px;border:1px solid var(--line2);color:var(--dim)}
.fac.f0{color:var(--bg);background:var(--brass);border-color:var(--brass)}.fac.f1{color:var(--brass);border-color:var(--brass-d)}.fac.f2{color:var(--aether);border-color:#3d6e55}
@media (max-width:1180px){.top-right .lbl{display:none}header.top{gap:22px}nav.main{gap:16px}.sum-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.exp-strip{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:800px){
  .sum-head{grid-template-columns:1fr;gap:18px;padding:28px 0 20px}.ring{max-width:180px;margin:0 auto}
  .sum-grid{grid-template-columns:1fr}.sum-parts{grid-template-columns:repeat(2,minmax(0,1fr))}.sum-part em{display:none}.exp-strip{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ach>summary{grid-template-columns:22px minmax(0,1fr) 56px;gap:10px}
  .ach-side{grid-column:2;align-items:flex-start;order:3}.ach-pct{grid-column:3;grid-row:1}.ach-via{grid-column:3;grid-row:2;order:4}
  .ach-body{padding:4px 12px 16px 12px}.ach-sort{margin-left:0}
}

@media (max-width:1060px){.cols.c3{grid-template-columns:1fr 1fr}.cols.c3>.omen{grid-column:1/-1;order:-1}.cols{grid-template-columns:1fr}.mini-search{width:170px}}
@media (max-width:700px){
  .wrap{padding:0 16px}header.top{flex-wrap:wrap;gap:12px 20px}nav.main{order:3;width:100%;overflow-x:auto;gap:18px;font-size:14px;padding-bottom:2px;scrollbar-width:none}nav.main a{white-space:nowrap}.top-right .lbl{display:none}.mini-search{display:none}
  .hero{padding:36px 0 18px}.cols.c3{grid-template-columns:1fr;gap:30px}
  .results{grid-template-columns:1fr}.detail{display:none}
  .card{padding:30px 22px 24px;min-height:0}.field input{font-size:18px}.field kbd{display:none}
  .phead{padding:30px 0 18px}.tt{max-width:none}.toasts{left:16px;right:16px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
/* ---- character: ledger band, ledger groups, skills, factions ---- */
.lband{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));border:1px solid var(--line);background:linear-gradient(180deg,#1b150f,var(--panel2));margin:-6px 0 30px;position:relative}
.lband:before,.lband:after{content:"";position:absolute;width:12px;height:12px;border:1px solid var(--brass-d)}
.lband:before{left:-4px;top:-4px;border-right:0;border-bottom:0}.lband:after{right:-4px;bottom:-4px;border-left:0;border-top:0}
.lb-cell{padding:14px 16px 13px;display:flex;flex-direction:column;gap:2px;min-width:0}
.lb-cell+.lb-cell{border-left:1px solid var(--line)}
.lb-cell span{font:12.5px var(--fd);letter-spacing:.1em;color:var(--dim)}
.lb-cell b{font:28px/1.1 var(--fd);color:var(--bone);white-space:nowrap}.lb-cell b small{font-size:16px;color:var(--ash)}
.lb-cell em{font-style:normal;font-size:12.5px;color:var(--ash);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ledger{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 28px}
.lg.wide{grid-column:1/-1}
.lg h3{font:12.5px var(--fd);letter-spacing:.14em;color:var(--brass-d);text-transform:uppercase;margin-bottom:4px}
.lg ul{list-style:none}.lg ul.two{display:grid;grid-template-columns:1fr 1fr;column-gap:28px}
.lg li{display:flex;align-items:baseline;gap:12px;padding:7px 0;border-bottom:1px dashed var(--line);font-size:14px;color:var(--ash)}
.lg li>span{min-width:0}.lg li small{display:block;font-size:12px;color:var(--dim);line-height:1.35}
.lg li b{margin-left:auto;color:var(--bone);font:500 14.5px/1.35 var(--fb);text-align:right;max-width:58%}
.lg p{font-size:13.5px}
.skl{list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:28px}
.skl li{position:relative;display:flex;align-items:baseline;gap:10px;padding:8px 0 9px;font-size:14px;color:var(--bone);border-bottom:1px solid var(--line)}
.skl li small{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--dim)}
.skl li b{margin-left:auto;font-weight:500;color:var(--ash)}.skl li b small{font-size:12px;letter-spacing:0;text-transform:none}
.skl li i{position:absolute;left:0;bottom:-1px;height:1px;width:var(--w);background:var(--brass-d)}
.facs li.frow{display:grid;grid-template-columns:1fr auto;gap:3px 10px;padding:9px 0 10px}
.facs li.frow .bar{grid-column:1/-1}.facs li.frow small{grid-column:1/-1;font-size:12px;color:var(--dim)}
.facs li.frow .r{color:var(--brass);font-size:13px}
a.lnk-q{text-decoration:none;color:inherit;border-bottom:1px dotted var(--line2)}a.lnk-q:hover{color:var(--brass);border-bottom-color:var(--brass-d)}
.eyebrow-s{font:12px var(--fd);letter-spacing:.14em;color:var(--dim);text-transform:uppercase;margin:18px 0 6px}
.foes{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:0 18px}
.foes li{display:flex;justify-content:space-between;gap:8px;align-items:baseline;font-size:13.5px;color:var(--ash);padding:6px 0;border-bottom:1px dashed var(--line)}
.foes li .tag{font-size:10.5px}
a.plink{display:block;text-decoration:none}a.plink:hover .prog{color:var(--bone)}
.cmeta{margin-top:10px;font-size:12.5px;color:var(--dim)}
@media (max-width:1180px){.lband{grid-template-columns:repeat(3,minmax(0,1fr))}.lb-cell:nth-child(4){border-left:0}.lb-cell:nth-child(n+4){border-top:1px solid var(--line)}}
@media (max-width:800px){.ledger,.skl{grid-template-columns:1fr}.lg ul.two{grid-template-columns:1fr}.lb-cell b{font-size:23px}.lb-cell{padding:11px 12px}
  .gear{grid-template-columns:1fr 1fr;gap:8px}.gear a{padding:8px;gap:9px}.gear .nm{font-size:13.5px}}
@media (max-width:420px){.lband{grid-template-columns:repeat(2,minmax(0,1fr))}.lb-cell:nth-child(n){border-left:0;border-top:1px solid var(--line)}.lb-cell:nth-child(-n+2){border-top:0}.lb-cell:nth-child(even){border-left:1px solid var(--line)}
  .gear .tile{--sz:36px!important}.foes{grid-template-columns:1fr}}
/* ---- lore reader ---- */
.lore-tools{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin-bottom:18px}
.lore-q{flex:1 1 320px;border:1px solid var(--line);background:var(--panel2);padding:8px 12px}
.lore-tools select{background:var(--panel2);color:var(--bone);border:1px solid var(--line);font:14px var(--fb);padding:8px 10px;min-height:38px}
.m-only{display:none}
.lore{display:grid;grid-template-columns:230px 330px minmax(0,1fr);gap:22px;align-items:start}
.lore.is-fac{grid-template-columns:230px minmax(0,1fr)}
.lore-side,.lore-list-wrap{position:sticky;top:14px;max-height:calc(100vh - 28px);overflow:auto;scrollbar-width:thin;scrollbar-color:var(--line2) transparent}
.lore-side{padding-right:4px}
.ls{margin-top:14px}.ls-h{font:12px var(--fd);letter-spacing:.16em;text-transform:uppercase;color:var(--brass-d);margin:0 0 4px 8px}
.lj{display:flex;width:100%;align-items:baseline;gap:8px;background:none;border:0;border-left:2px solid transparent;color:var(--ash);font:14px var(--fb);text-align:left;padding:6px 8px;cursor:pointer}
.lj:hover{color:var(--bone);background:#17120d}.lj.on{color:var(--bone);border-left-color:var(--brass);background:#1d160f}
.lj span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lj .ct{margin-left:auto;font-size:12.5px;color:var(--ash)}.lj .ct small{color:var(--dim)}
.lj .st{margin-left:auto;font-size:11.5px;color:var(--brass-d);white-space:nowrap}.lj .st.bad{color:var(--blood-l)}
.lore-count{font-size:12.5px;color:var(--dim);margin:2px 0 8px}
.lore-list{list-style:none;border-top:1px solid var(--line)}
.ln{display:grid;grid-template-columns:10px minmax(0,1fr);gap:2px 10px;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid var(--line);padding:9px 8px;cursor:pointer;color:var(--ash);font:14px var(--fb)}
.ln:hover{background:#17120d;color:var(--bone)}.ln.on{background:#1f1810;color:var(--bone);box-shadow:inset 2px 0 0 var(--brass)}
.ln .dot{width:7px;height:7px;transform:rotate(45deg);border:1px solid var(--dim);margin-top:7px}.ln.f .dot{background:var(--brass);border-color:var(--brass)}
.ln .t{line-height:1.3}.ln .z{grid-column:2;font-size:12px;color:var(--dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.folio{position:relative;border:1px solid var(--line);background:radial-gradient(900px 400px at 30% 0%,#211910,transparent 70%),var(--panel2);padding:30px clamp(20px,4vw,52px) 26px;min-height:420px}
.folio:before{content:"";position:absolute;inset:6px;border:1px solid #2a2018;pointer-events:none}
.folio.empty{display:grid;place-items:center}
.fo-meta{display:flex;align-items:center;gap:12px;font-size:12.5px;color:var(--dim);margin-bottom:12px}
.fo-t{font:clamp(26px,2.6vw,36px)/1.15 var(--fd);color:var(--bone);letter-spacing:.02em}
.fo-where{font-size:13.5px;color:var(--ash);margin:8px 0 20px}.fo-where .ok{color:var(--aether)}.fo-where .bad{color:var(--blood-l)}
.fo-body{max-width:68ch}.fo-body p{font:18.5px/1.72 var(--fi);color:#ddd2bf;margin-bottom:1em}
.fo-body p:first-child:first-letter{font:58px/.8 var(--fd);float:left;color:var(--brass);margin:8px 10px 0 0}
.fo-body.veiled{filter:blur(6px);user-select:none;pointer-events:none;opacity:.6}
.fo-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--line);margin-top:22px;padding-top:16px;font-size:13px}
.fo-h{font:13px var(--fd);letter-spacing:.16em;text-transform:uppercase;color:var(--brass);margin:28px 0 8px;display:flex;gap:10px;align-items:center}
.fo-h:after{content:"";flex:1;height:1px;background:var(--line)}
.tiers{list-style:none;counter-reset:t}
.tiers li{display:grid;grid-template-columns:150px minmax(0,1fr);gap:16px;padding:11px 0;border-bottom:1px dashed var(--line)}
.tiers .tn{display:flex;flex-direction:column}.tiers .tn b{font:17px var(--fd);color:var(--ash)}.tiers .tn span{font-size:12px;color:var(--dim)}
.tiers li.got .tn b{color:var(--brass)}
.tiers .tr p{font-size:14.5px;color:var(--bone);line-height:1.45}.tiers .tr p+p{margin-top:3px}
.tiers .tr .who{font-size:12px;color:var(--aether);margin-top:5px}
.fac-page .rows li b{font-size:14.5px}
.ok{color:var(--aether)}.bad{color:var(--blood-l)}
@media (min-width:1500px){.lore{grid-template-columns:250px 360px minmax(0,1fr)}}
@media (max-width:1180px){.lore{grid-template-columns:300px minmax(0,1fr)}.lore.is-fac{grid-template-columns:1fr}.lore-side{display:none}.m-only{display:block}}
@media (max-width:800px){.lore{grid-template-columns:1fr}.lore-list-wrap{position:static;max-height:46vh;border:1px solid var(--line);padding:0 6px}
  .folio{padding:22px 18px}.fo-body p{font-size:17px}.tiers li{grid-template-columns:96px minmax(0,1fr);gap:10px}.lore-tools select{flex:1 1 140px}}
.t-lore{color:#d9c79e}.t-faction{color:var(--brass)}.t-zone{color:#8fb39a}.t-secret{color:var(--blood-l)}
/* ---- tips in context ---- */
.tipc+.tipc{margin-top:10px}.tipc b{font:16.5px/1.3 var(--fi);color:var(--bone);display:block}
.tipc p{font-size:14px;color:var(--ash);margin:5px 0 9px;line-height:1.5}.tipc .chips .chip{font-size:11.5px}
.fac-tips{margin-top:26px}
/* ---- readiness ---- */
.rd-v{font-size:13.5px;color:var(--ash);margin-bottom:10px}
.rd-v span{font:15px var(--fd);letter-spacing:.08em;margin-right:6px}.rd-ready{color:var(--aether)}.rd-close{color:var(--brass)}.rd-notyet{color:var(--blood-l)}
.rd-gaps{display:flex;flex-wrap:wrap;gap:6px}
.rd-gaps span,.rd-gaps a{border:1px solid var(--line);background:var(--panel2);padding:3px 8px;font-size:12.5px;color:var(--ash)}
.rd-gaps b{color:var(--bone);font-weight:500}.rd-gaps i{font-style:normal;color:var(--blood-l);margin-left:5px}
.swaps{list-style:none}.swap{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:start;padding:9px 0;border-bottom:1px dashed var(--line)}
.swap a.lnk-q{font-size:14px;line-height:1.3}.swap small{display:block;font-size:12px;color:var(--dim);line-height:1.4;margin-top:2px}
.swap .dl{display:flex;flex-wrap:wrap;gap:4px 9px;font-size:12px;margin-top:3px}.swap>b{font-size:14px}
/* ---- the hunt ---- */
.hunt>*+*{margin-top:30px}
.wq{border:1px solid var(--line);background:var(--panel2);padding:8px 12px}
.wq-r{list-style:none;border:1px solid var(--line);border-top:0;background:#120e0a}.wq-r:empty{display:none}
.wq-r button{display:flex;align-items:center;gap:10px;width:100%;background:none;border:0;border-bottom:1px solid var(--line);color:var(--bone);font:14px var(--fb);padding:7px 10px;cursor:pointer;text-align:left}
.wq-r button:hover,.wq-r button:focus-visible{background:#1d160f}.wq-r small{margin-left:auto;color:var(--dim);font-size:12px}
.wl{list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(420px,1fr));gap:0 28px;margin-top:10px}
.wi{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:start;padding:11px 0;border-bottom:1px dashed var(--line)}
.wi small{display:block;font-size:12.5px;color:var(--dim);margin-top:2px}.wi.got{background:linear-gradient(90deg,rgba(111,210,168,.07),transparent 60%)}
.src{margin-top:6px}.src .chip{font-size:11.5px}
.hsg{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:14px}
.hs{border:1px solid var(--line);background:var(--panel2);padding:14px 16px}
.hs header{display:flex;align-items:baseline;gap:10px}.hs header a{font:18px/1.2 var(--fd)}.hs header span{margin-left:auto;font:20px var(--fd);color:var(--bone)}.hs header small{font-size:13px;color:var(--dim)}
.hs-m{font-size:12.5px;color:var(--dim);margin:2px 0 10px}
.hs-own{list-style:none;font-size:13.5px;color:var(--ash)}.hs-own li{padding:3px 0}.hs-own small{color:var(--dim);font-size:12px}
.hs-miss{border-top:1px solid var(--line);margin-top:10px;padding-top:10px}
.hs-miss .row{display:flex;align-items:center;gap:10px;font-size:14.5px}.hs-miss .row .pin{margin-left:auto}
@media (max-width:800px){.wl{grid-template-columns:1fr}.hsg{grid-template-columns:1fr}}
/* ---- command palette ---- */
dialog.pal{margin:12vh auto auto;width:min(620px,calc(100vw - 24px));background:none;border:0;padding:0;color:var(--bone)}
dialog.pal::backdrop{background:rgba(5,4,3,.72);backdrop-filter:blur(2px)}
.pal-in{border:1px solid var(--brass-d);background:linear-gradient(180deg,#1d160f,#120e0a);box-shadow:0 30px 80px -20px #000}
.pal-q{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--line)}
.pal-q svg{width:18px;color:var(--brass-d);flex:none}.pal-q input{flex:1;background:none;border:0;outline:0;color:var(--bone);font:19px var(--fi);min-width:0}
.pal-q kbd,.pal-btn kbd{white-space:nowrap;font:11px var(--fb);color:var(--dim);border:1px solid var(--line2);padding:2px 6px}
#pal-l{list-style:none;max-height:min(52vh,440px);overflow:auto}
#pal-l a{display:flex;align-items:baseline;gap:12px;padding:9px 16px;text-decoration:none;color:var(--ash);font-size:14.5px}
#pal-l [aria-selected="true"] a,#pal-l a:hover{background:#241b12;color:var(--bone);box-shadow:inset 2px 0 0 var(--brass)}
.pal-s{margin-left:auto;font-size:12px;color:var(--dim);text-transform:capitalize;white-space:nowrap}.pal-t{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pal-none{padding:14px 16px;color:var(--dim);font-style:italic}
.pal-f{display:flex;gap:16px;padding:8px 16px;border-top:1px solid var(--line);font-size:11.5px;color:var(--dim)}
.pal-btn{background:none;border:0;cursor:pointer;padding:0}.pal-btn:hover kbd{color:var(--bone);border-color:var(--brass-d)}
@media (max-width:800px){.pal-btn{display:none}.pal-f{display:none}}
/* ---- atlas ---- */
.atlas-tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin:-6px 0 18px}
.atlas-tabs a{font:15px var(--fd);letter-spacing:.08em;color:var(--dim);padding:8px 14px;text-decoration:none;border-bottom:2px solid transparent;margin-bottom:-1px}
.atlas-tabs a:hover{color:var(--bone)}.atlas-tabs a[aria-current]{color:var(--brass);border-bottom-color:var(--brass)}
.zgrp{margin-top:26px}.zgrp-h{font:15px var(--fd);letter-spacing:.14em;color:var(--brass);margin-bottom:8px}.zgrp-h small{font:12px var(--fb);color:var(--dim);letter-spacing:0;margin-left:6px}
.zlist{list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:0 24px}
.zlist a{display:grid;grid-template-columns:1fr;gap:3px;padding:9px 0 10px;border-bottom:1px dashed var(--line);text-decoration:none;position:relative}
.zlist a:hover b{color:var(--brass)}.zlist b{font:16px var(--fi);color:var(--bone);font-weight:400}
.zbits{display:flex;flex-wrap:wrap;gap:2px 10px;font-size:12px;color:var(--dim)}.zbits .ok{color:var(--aether)}.zbits .brass{color:var(--brass)}
.zbar{display:block;height:2px;background:var(--line);margin-top:4px}.zbar::after{content:"";display:block;height:100%;width:var(--p);background:var(--brass-d)}
.zbar[data-done]::after{background:var(--aether)}.zbar.none{opacity:0}
.zg{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:28px}
.zrows{list-style:none}.zr{display:flex;align-items:center;gap:12px;justify-content:space-between;padding:8px 0;border-bottom:1px dashed var(--line)}
.zr>div:first-child{min-width:0}.zr b{font-weight:500;color:var(--bone);font-size:14.5px}.zr a.lnk-q{font-size:14.5px}
.zr small{display:block;font-size:12px;color:var(--dim);margin-top:1px}
.ccs{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}
.cc{font-size:11.5px;border:1px solid var(--line);padding:1px 7px;color:var(--dim);white-space:nowrap}
.cc.on{border-color:rgba(111,210,168,.45);color:var(--aether);background:rgba(111,210,168,.06)}.cc em{font-style:normal;opacity:.75}
.tag-s{font:11px var(--fb);letter-spacing:.08em;text-transform:uppercase;color:var(--brass);border:1px solid var(--brass-d);padding:1px 6px}
@media (max-width:900px){.zg{grid-template-columns:1fr}.zlist{grid-template-columns:1fr}}
/* ---- secrets ---- */
.sxg{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:30px;align-items:start}
.sxs{margin-top:26px}
.sx{border:1px solid var(--line);background:var(--panel2);padding:14px 16px;margin-bottom:12px}.sx.got{border-color:rgba(111,210,168,.3)}
.sx header{display:flex;gap:12px;align-items:flex-start;justify-content:space-between}.sx h3{font:18px/1.25 var(--fi);color:var(--bone);font-weight:400}
.sx-tags{display:flex;flex-wrap:wrap;gap:5px;margin:7px 0 9px}
.conf{font:11px var(--fb);letter-spacing:.08em;text-transform:uppercase;padding:2px 7px;border:1px solid}
.c-documented{color:var(--aether);border-color:rgba(111,210,168,.4)}.c-community{color:var(--brass);border-color:var(--brass-d)}
.c-olderguide{color:#c9a97a;border-color:#6b5638}.c-unverified{color:var(--blood-l);border-color:rgba(190,70,60,.5)}
.sx-body p{font-size:14.5px;line-height:1.55;color:var(--ash)}.sx-body p+p{margin-top:7px}
.sx-body.veiled{filter:blur(5px);user-select:none;pointer-events:none;opacity:.55;max-height:3.2em;overflow:hidden}
.sx-note{border-left:2px solid var(--brass-d);padding-left:10px;font-size:13.5px!important}
.reveal{margin-top:8px}.sx-links{margin-top:10px}.sx-links .chip{font-size:11.5px}
button.cc{background:none;cursor:pointer;font:11.5px var(--fb)}button.cc:hover{color:var(--bone);border-color:var(--line2)}
.hc{list-style:none}.hc li{padding:8px 0;border-bottom:1px dashed var(--line)}.hc-h{display:flex;justify-content:space-between;margin-bottom:5px}
.hc-h b{font-weight:500;color:var(--bone)}.hc-h .num{font:18px var(--fd);color:var(--brass)}
.msx{border-bottom:1px dashed var(--line);padding:7px 0}.msx summary{display:flex;justify-content:space-between;cursor:pointer;font-size:14px;color:var(--ash);list-style:none}
.msx summary::-webkit-details-marker{display:none}.msx summary:hover{color:var(--bone)}.msx[open] summary{color:var(--brass)}
.msx ul{list-style:none;margin:6px 0 2px;font-size:13px;line-height:1.7}.msx ul a.muted{font-size:12px;margin-left:4px}.msx .chips{margin-top:6px}
@media (max-width:1000px){.sxg{grid-template-columns:1fr}}
/* ---- story ledger ---- */
.tscroll{overflow-x:auto}
.stt{width:100%;border-collapse:collapse;font-size:13.5px}
.stt th,.stt td{padding:8px 10px;border-bottom:1px dashed var(--line);text-align:left;vertical-align:top}
.stt thead th{font:12px var(--fb);letter-spacing:.1em;text-transform:uppercase;color:var(--dim);border-bottom:1px solid var(--line)}
.stt tbody th{font-weight:400;color:var(--bone);min-width:240px}.stt tbody th b{font-weight:500}
.stt tbody th small{display:block;font-size:12px;color:var(--dim);margin-top:2px;line-height:1.4}.stt code{font:11px ui-monospace,monospace;color:var(--dim)}
.stt td{white-space:nowrap;color:var(--ash)}.stt td.ok{color:var(--aether)}.stt td small{font-size:10.5px;margin-left:3px;opacity:.75}
.stt.flags td{text-align:center;width:90px}.stt.flags thead th:not(:first-child){text-align:center}
.dvl{list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:0 26px}
.dvl li{display:grid;grid-template-columns:1fr auto;gap:2px 10px;padding:8px 0;border-bottom:1px dashed var(--line)}
.dvl b{font-weight:500;color:var(--bone);font-size:14px}.dvl small{grid-column:1;font-size:12px;color:var(--dim)}.dv{grid-row:1/3;grid-column:2;display:flex;gap:4px;align-items:center}
.stgrp{border:1px solid var(--line);background:var(--panel2);margin-bottom:10px}
.stgrp summary{display:flex;justify-content:space-between;align-items:baseline;padding:12px 16px;cursor:pointer;list-style:none;font:16px var(--fd);letter-spacing:.08em;color:var(--brass)}
.stgrp summary::-webkit-details-marker{display:none}.stgrp summary small{font:12px var(--fb);color:var(--dim);letter-spacing:0}
.stgrp[open] summary{border-bottom:1px solid var(--line)}.stgrp .tscroll{padding:0 8px 8px}
@media (max-width:800px){.dvl{grid-template-columns:1fr}.stt tbody th{min-width:180px}}
/* ---- next hunt ---- */
.nh-g{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.nh-col h3{font:16px var(--fd);letter-spacing:.1em;color:var(--bone);margin-bottom:4px}
.nh{list-style:none;counter-reset:nh}.nh li{counter-increment:nh;padding:9px 0 10px 28px;border-bottom:1px dashed var(--line);position:relative}
.nh li::before{content:counter(nh);position:absolute;left:0;top:10px;font:14px var(--fd);color:var(--brass-d)}
.nh-h{display:flex;justify-content:space-between;gap:10px}.nh-h a{font-size:15px}.nh-h b{font-size:13px;color:var(--brass)}
.nh small{display:block;font-size:12px;color:var(--dim);margin:1px 0 5px}.nh small a{font-size:12px}
.nh-i{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:13px}.nh-i a{text-decoration:none}.nh-i a:hover{text-decoration:underline}.nh-i span{color:var(--dim);font-size:11.5px;margin-left:4px}
.nh-a{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.nh-a a{font-size:11.5px;border:1px solid var(--brass-d);color:var(--brass);padding:1px 6px;text-decoration:none}
@media (max-width:900px){.nh-g{grid-template-columns:1fr}}
/* ---- chronicle ---- */
.chron{list-style:none;border-left:1px solid var(--brass-d);margin-left:4px}
.chron li{position:relative;padding:0 0 14px 18px}.chron li::before{content:"";position:absolute;left:-4px;top:5px;width:7px;height:7px;background:var(--brass);transform:rotate(45deg)}
.chron li.first::before{background:var(--blood-l)}
.chron time{font:13px var(--fd);letter-spacing:.1em;color:var(--brass)}.chron .lv{font-size:11.5px;color:var(--dim);margin-left:8px}
.chron p{font:15px/1.5 var(--fi);color:var(--ash);margin-top:3px}
.ql-f{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center;margin-bottom:6px}.ql-f .ach-sort{margin-left:auto}
.stt.ql td{width:120px}.stt.ql td small{display:block;margin:2px 0 0;font-size:10.5px;white-space:normal;color:var(--dim)}
.stt td.brass{color:var(--brass)}
@media (max-width:800px){.ql-f .ach-sort{margin-left:0}}
/* character page: chronicle button, modal, swap strip */
.rd-gaps a{text-decoration:none}.rd-gaps a:hover{border-color:var(--brass-d);color:var(--bone)}
.ch-name{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.chron-btn{position:relative;display:inline-flex;align-items:center;gap:8px;margin-top:6px;padding:7px 14px 7px 11px;border:1px solid var(--line2);background:var(--panel2);color:var(--ash);font:14px var(--fd);letter-spacing:.08em;cursor:pointer;transition:color .2s,border-color .2s,box-shadow .3s}
.chron-btn svg{width:18px;height:18px}.chron-btn:hover{color:var(--bone);border-color:var(--brass-d)}
.chron-btn .new{font:600 10px var(--fb);letter-spacing:.14em;text-transform:uppercase;color:#0d0b09;background:var(--aether);padding:2px 6px}
.chron-btn .sparks{position:absolute;inset:0;pointer-events:none;display:none}
.chron-btn.fresh{color:var(--bone);border-color:#3f7f66;box-shadow:0 0 0 1px rgba(111,210,168,.18),0 0 18px rgba(111,210,168,.22)}
.chron-btn.fresh svg{color:var(--aether)}
.chron-btn.fresh .sparks{display:block}
.chron-btn .sparks i{position:absolute;width:4px;height:4px;margin:-2px 0 0 -2px;border-radius:50%;background:#9ff0cc;box-shadow:0 0 8px 2px rgba(111,210,168,.9);opacity:0;animation:spark 2.6s ease-out infinite}
.chron-btn .sparks i:nth-child(1){left:8%;top:100%;animation-delay:0s}.chron-btn .sparks i:nth-child(2){left:22%;top:0;animation-delay:.5s;--dy:-14px}
.chron-btn .sparks i:nth-child(3){left:38%;top:100%;animation-delay:1.1s}.chron-btn .sparks i:nth-child(4){left:52%;top:0;animation-delay:1.6s;--dy:-16px}
.chron-btn .sparks i:nth-child(5){left:68%;top:100%;animation-delay:.3s}.chron-btn .sparks i:nth-child(6){left:84%;top:0;animation-delay:.9s;--dy:-12px}
.chron-btn .sparks i:nth-child(7){left:100%;top:40%;animation-delay:1.3s;--dx:12px;--dy:-6px}.chron-btn .sparks i:nth-child(8){left:0;top:60%;animation-delay:2s;--dx:-12px;--dy:-6px}
.chron-btn .sparks i:nth-child(9){left:92%;top:100%;animation-delay:2.2s}.chron-btn .sparks i:nth-child(10){left:30%;top:0;animation-delay:1.9s;--dy:-18px}
@keyframes spark{0%{opacity:0;transform:translate(0,0) scale(.6)}15%{opacity:1}100%{opacity:0;transform:translate(var(--dx,0),var(--dy,-20px)) scale(.2)}}
@media (prefers-reduced-motion:reduce){.chron-btn .sparks i{animation:none;opacity:.8}}
dialog.chron-dlg{margin:auto;width:min(760px,calc(100vw - 24px));max-height:min(86vh,900px);padding:0;border:1px solid var(--line2);background:linear-gradient(180deg,#1b150f,var(--panel2));color:var(--bone);overflow:hidden}
dialog.chron-dlg[open]{display:flex;animation:dlgIn .22s ease-out}
dialog.chron-dlg::backdrop{background:rgba(5,4,3,.74);backdrop-filter:blur(2px)}
@keyframes dlgIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.cd-box{display:flex;flex-direction:column;min-height:0;width:100%}
.cd-box header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:20px 24px 14px;border-bottom:1px solid var(--line)}
.cd-box h2{font:26px/1.1 var(--fd);letter-spacing:.03em;margin-top:4px}
.cd-x{background:none;border:1px solid var(--line);color:var(--ash);width:34px;height:34px;font-size:22px;line-height:1;cursor:pointer;flex:none}.cd-x:hover{color:var(--bone);border-color:var(--brass-d)}
.cd-body{overflow-y:auto;padding:18px 24px 8px;overscroll-behavior:contain}
@media (max-width:560px){dialog.chron-dlg{width:100vw;max-height:92vh;margin:auto 0 0;border-left:0;border-right:0}.cd-box header{padding:16px}.cd-body{padding:14px 16px}.cd-box h2{font-size:22px}}
.swap-strip{overflow-x:auto;scroll-snap-type:x proximity;padding-bottom:8px;margin:0 -2px;scrollbar-color:var(--line2) transparent}
.swaps.h{display:flex;gap:10px;padding:2px}
.swaps.h .swap{flex:0 0 300px;scroll-snap-align:start;border:1px solid var(--line);background:var(--panel2);padding:12px}
@media (max-width:560px){.swaps.h .swap{flex-basis:82vw}}
/* paths of power */
.pp-you{margin:-6px 0 16px;display:flex;flex-wrap:wrap;gap:6px 16px;font-size:14px;color:var(--ash)}.pp-you .bad b{color:var(--blood-l)}.pp-you .ok b{color:var(--aether)}
.pp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:18px 26px}
.pp-slot h3{font:15px var(--fd);letter-spacing:.1em;color:var(--brass);border-bottom:1px solid var(--line);padding-bottom:4px;margin-bottom:2px}
.pp-list{list-style:none}
.pp-it{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:start;padding:9px 0;border-bottom:1px dashed var(--line)}
.pp-it a.lnk-q{font-size:14px;line-height:1.3}.pp-it small{display:block;font-size:11.5px;color:var(--dim);margin-top:1px}
.pp-why{font-size:12.5px;color:var(--ash);margin-top:3px}
.pp-it .chips.src{margin-top:5px;gap:4px}.pp-it .chips.src .chip{font-size:11.5px;padding:2px 7px}.pp-it .chips.src .muted{font-size:11.5px}
.pp-own{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--aether);border:1px solid #2f5a49;padding:1px 6px;white-space:nowrap;align-self:start}
.pp-it.got .lnk-q::after{content:" ✓";color:var(--aether)}
.pp-two{display:grid;grid-template-columns:1fr 1fr;gap:10px 26px}.pp-two .eyebrow-s{margin-top:0}
.pp-mast{list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}
.pp-mast li{border:1px solid var(--line);background:var(--panel2);padding:10px 12px;display:grid;grid-template-columns:1fr auto;gap:2px 8px}
.pp-mast b{font:17px var(--fd);letter-spacing:.04em}.pp-mast .num{color:var(--brass)}.pp-mast small{grid-column:1/-1;font-size:12px;color:var(--dim);line-height:1.4}
.pp-dev li small,.pp-sets li small{display:block;width:100%;font-size:12px;color:var(--dim);margin-top:1px}
.pp-dev li,.pp-sets li{flex-wrap:wrap}
.chip.cap{text-transform:capitalize}
@media (max-width:800px){.pp-two{grid-template-columns:1fr}.pp-grid{grid-template-columns:1fr}}
/* charts */
.charts-wrap{margin-top:30px}
.ch-feat{border:1px solid var(--line);background:var(--panel2);padding:14px 16px 8px}
.ch-fh{display:flex;align-items:flex-end;gap:18px;flex-wrap:wrap;margin-bottom:6px}
.ch-fh .lbl,.ch-card .lbl{display:block;font:11px var(--fb);letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}
.ch-fh b{font:30px/1.05 var(--fd);color:var(--bone)}
.ch-fh .chip{margin-left:auto}
.ch-legend{display:flex;gap:12px;flex-wrap:wrap;font-size:12.5px;color:var(--ash)}.ch-legend i{display:inline-block;width:14px;height:2px;margin-right:6px;vertical-align:middle}
svg.chart{width:100%;height:auto;display:block;overflow:visible}
svg.chart text{fill:var(--dim);font:11px var(--fb)}
svg.chart .g{stroke:var(--line);stroke-dasharray:2 4}
svg.chart .ln{fill:none;stroke-width:1.3;opacity:.7;stroke-linejoin:round}svg.chart .ln.me{stroke-width:2.4;opacity:1}
svg.chart .ar{fill:url(#ga)}
svg.chart circle{stroke-width:1.6}
.ch-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px;margin-top:12px}
.ch-card{all:unset;box-sizing:border-box;cursor:pointer;border:1px solid var(--line);background:var(--panel2);padding:10px 12px 6px;display:grid;grid-template-columns:1fr auto;align-items:baseline;gap:0 8px;transition:border-color .2s}
.ch-card:hover{border-color:var(--line2)}.ch-card.on{border-color:var(--brass-d);background:#18130e}
.ch-card:focus-visible{outline:1px solid var(--brass);outline-offset:2px}
.ch-card .lbl{grid-column:1/-1}.ch-card b{font:20px var(--fd);color:var(--bone)}.ch-card em{font-style:normal;font-size:12px}
.ch-card svg{grid-column:1/-1;margin-top:4px}
.cols>.stack,.cols>div{min-width:0}
@media (max-width:560px){.ch-grid{grid-template-columns:1fr 1fr}.ch-card b{font-size:17px}}

/* advisor: fingerprint, smart recommendations, Ultimate checklist, next achievements */
.adv-wrap{margin-top:30px}.adv .panel{margin:0}
.fp-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.fp-id{font:24px var(--fd);margin:4px 0 0;color:var(--bone)}
.fp-bars{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:8px}
.fp-bars li{display:grid;grid-template-columns:110px 1fr 54px;align-items:center;gap:4px 10px;font-size:13.5px}
.fp-bars i{height:8px;background:#0d0b09;border:1px solid var(--line);position:relative}
.fp-bars i::after{content:"";position:absolute;inset:0 auto 0 0;width:var(--w);background:var(--c);opacity:.85;box-shadow:0 0 10px -2px var(--c)}
.fp-bars b{text-align:right;font-size:13px}.fp-bars small{grid-column:2/-1;color:var(--dim);font-size:11.5px}
.fp-form{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.fp-form label{display:grid;gap:4px;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--dim)}
.fp-sel{background:var(--panel2);color:var(--bone);border:1px solid var(--line2);padding:7px 10px;font:14px var(--fb);min-width:140px}
.fp-form .btn{padding:7px 16px;font-size:14px}
.sr-band{font-size:13.5px;color:var(--ash);margin:0 0 12px;line-height:1.55}.sr-band .badge{margin-right:6px}
#srTabs{margin-bottom:12px}.sr-note{font-size:13px;color:var(--ash);margin:0 0 10px}
.sr-list{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.sr-it{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:start;padding-bottom:12px;border-bottom:1px solid var(--line)}
.sr-it:last-child{border-bottom:0;padding-bottom:0}.sr-it .pp-why{font-size:12.5px;color:var(--ash);margin:3px 0 4px}
.sr-it small.bad{color:var(--blood-l)}.sr-it small.ok{color:var(--aether)}.sr-it .chips{gap:6px}
.chip.static{cursor:default}
.sr-dev li small,.sr-sk li small{display:block;grid-column:1/-1;color:var(--dim);font-size:12px}
.sr-dev .r.ok{color:var(--aether)}
.uc-score{display:grid;grid-template-columns:auto 1fr;align-items:baseline;gap:4px 10px;margin-bottom:6px}
.uc-score b{font:30px var(--fd);color:var(--bone)}.uc-score span{color:var(--dim);font-size:13px}
.uc-score i{grid-column:1/-1;height:4px;background:#0d0b09;position:relative}.uc-score i::after{content:"";position:absolute;inset:0 auto 0 0;width:var(--w);background:var(--brass)}
.uc{list-style:none;margin:0 0 6px;padding:0;display:grid;gap:10px}
.uc li{display:grid;grid-template-columns:14px 1fr;gap:10px}
.uc-dot{width:9px;height:9px;margin-top:6px;border:1px solid var(--line2);transform:rotate(45deg)}
.uc-ok .uc-dot{background:var(--aether);border-color:var(--aether);box-shadow:0 0 8px -1px var(--aether)}
.uc-warn .uc-dot{background:var(--brass);border-color:var(--brass)}
.uc-todo .uc-dot{background:var(--blood-l);border-color:var(--blood-l)}
.uc-check .uc-dot{background:none;border-color:var(--ash)}
.uc b{font-weight:600;color:var(--bone);font-size:14px}.uc-st{margin-left:8px;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--dim)}
.uc-ok .uc-st{color:var(--aether)}.uc-todo .uc-st{color:var(--blood-l)}.uc-warn .uc-st{color:var(--brass)}
.uc p{margin:3px 0 0;font-size:13px;color:var(--ash);line-height:1.5}
.uc-src{display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:4px;font-size:12px}.uc-src a{color:var(--dim);text-decoration:underline;text-decoration-color:var(--line2);text-underline-offset:3px}.uc-src a:hover{color:var(--bone)}
.uc-src a.lnk{color:var(--brass)}
.na{list-style:none;counter-reset:na;margin:0;padding:0;display:grid;gap:12px}
.na li{counter-increment:na;position:relative;padding-left:34px}
.na li::before{content:counter(na);position:absolute;left:0;top:-2px;font:22px var(--fd);color:var(--brass-d)}
.na a b{color:var(--bone)}.na a:hover b{color:var(--brass)}.na .tag{margin-left:8px;color:var(--dim)}
.na p{margin:3px 0;font-size:13px;color:var(--ash)}.na small{color:var(--dim);font-size:12px}
.na details{margin-top:4px;font-size:12.5px}.na summary{cursor:pointer;color:var(--brass);font-size:12px}
svg.chart.pace text{font:12px var(--fb)}svg.chart.pace text.me{fill:var(--bone)}svg.chart.pace text.v{fill:var(--ash)}
svg.chart.pace rect{opacity:.55}svg.chart.pace rect.me{opacity:1}svg.chart.pace rect.dim{opacity:.35}
svg.chart.pace .avg{stroke:var(--bone);stroke-dasharray:3 4;opacity:.6}svg.chart.pace .avg-t{fill:var(--dim);font-size:11px}
.charts .ch-grid{margin:0 0 14px}.charts .ch-card{padding-bottom:10px}
@media (max-width:560px){.fp-bars li{grid-template-columns:84px 1fr 46px}.sr-it{grid-template-columns:auto 1fr}.sr-it .pp-own{grid-column:2}}
.badge.ok{color:var(--aether)}
.cols.adv{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr)}@media (max-width:980px){.cols.adv{grid-template-columns:1fr}}
.sr-dev li,.sr-sk li{display:grid!important;grid-template-columns:minmax(0,1fr) auto;gap:2px 12px;align-items:baseline}.sr-dev .r,.sr-sk .r{text-align:right;font-size:12.5px}
.cols.adv>.stack{display:grid;gap:30px;align-content:start}

/* ---------- guides: home buttons ---------- */
.guide-btns{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:16px;padding-top:14px;border-top:1px dashed var(--line)}
.gbtn{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 6px 10px;border:1px solid var(--line);background:linear-gradient(180deg,#1d1711,#120e0a);text-decoration:none;color:var(--ash);font:13.5px var(--fd);letter-spacing:.08em;transition:color .2s,border-color .2s,box-shadow .2s}
.gbtn svg{width:22px;height:22px;color:var(--brass-d);transition:color .2s}
.gbtn:hover,.gbtn:focus-visible{color:var(--bone);border-color:var(--brass-d);box-shadow:inset 0 0 18px -6px rgba(201,164,106,.35)}.gbtn:hover svg{color:var(--brass)}

/* ---------- affinity chips ---------- */
.aff{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--ac);border:1px solid color-mix(in srgb,var(--ac) 40%,transparent);background:color-mix(in srgb,var(--ac) 8%,transparent);padding:1px 7px;white-space:nowrap}
.aff i,.aff-b i{width:7px;height:7px;transform:rotate(45deg);background:var(--ac);box-shadow:0 0 6px var(--ac);display:inline-block}
.aff-b{display:inline-flex;align-items:center;gap:6px}.aff-b[aria-pressed=true]{color:var(--ac);border-color:var(--ac);background:color-mix(in srgb,var(--ac) 16%,#0d0b09)}

/* ---------- constellations ---------- */
.sky-wrap{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:24px;align-items:start}
.sky-box{border:1px solid var(--line);background:#0b090b;aspect-ratio:1/1;max-height:78vh;width:100%;overflow:hidden;position:relative}
#sky{width:100%;height:100%;display:block;touch-action:none;cursor:grab;user-select:none}#sky:active{cursor:grabbing}
.cst .ln line{stroke:var(--ac);stroke-opacity:.35;stroke-width:6}
.cst circle.st{fill:#1a1416;stroke:var(--ac);stroke-opacity:.7;stroke-width:5;transition:fill .2s}
.cst circle.st.pw{stroke-width:7;stroke-opacity:1}
.cst circle.st.on{fill:var(--ac);filter:drop-shadow(0 0 14px var(--ac))}
.cst text{font-family:var(--fd);font-size:var(--fs,64px);fill:var(--bone);opacity:0;pointer-events:none;letter-spacing:.04em;paint-order:stroke;stroke:#0b090b;stroke-width:calc(var(--fs,64px) / 4.5)}
#sky.zoomed .cst text{opacity:.55}
.cst.hov text,.cst.sel text{opacity:1}
.cst{cursor:pointer;transition:opacity .25s}.cst.dim{opacity:.16}
.cst.hov .ln line,.cst.sel .ln line{stroke-opacity:.95;stroke-width:9}
.cst.sel circle.st{stroke-width:9;stroke:#fff6e0}
.cst.done .ln line{stroke-opacity:.8}
.sky-ctl{position:absolute;right:10px;top:10px;display:flex;gap:4px}.sky-ctl .chip{background:#0d0b09cc;min-width:30px;font-size:14px}
.sky-who{position:absolute;left:10px;bottom:10px;display:flex;gap:4px;flex-wrap:wrap}.sky-who .chip{background:#0d0b09cc}.sky-who .chip[aria-pressed=true]{background:var(--brass)}
.cdet-wrap{position:sticky;top:16px;max-height:calc(100vh - 32px);overflow:auto}
.cdet-empty h3,.cdet h3{font:24px var(--fd);letter-spacing:.03em;margin:2px 0 8px}
.cdet-empty p{color:var(--ash);font-size:14px}
.legend{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.legend2{display:flex;gap:14px;margin-top:12px;font-size:12.5px;color:var(--dim)}.legend2 span{display:flex;align-items:center;gap:6px}
.lg{width:11px;height:11px;border-radius:50%;border:1.5px solid var(--brass);display:inline-block}.lg.on{background:var(--brass);box-shadow:0 0 6px var(--brass)}.lg.pw{width:14px;height:14px;border-width:2.5px}
.lg.sq{border-radius:2px}.lg.rd{border-radius:50%}.lg.dm{border-radius:1px;transform:rotate(45deg);width:9px;height:9px}
.cdet-top{display:flex;justify-content:space-between;align-items:center}
.cdet-tier{font:12px var(--fb);letter-spacing:.14em;text-transform:uppercase;color:var(--ac,var(--brass))}
.cdet .mini{width:100%;height:150px;margin:2px 0 10px;background:radial-gradient(closest-side,#20181f,transparent)}
.mini line{stroke:var(--ac);stroke-opacity:.5;stroke-width:5}
.mini circle{fill:#1a1416;stroke:var(--ac);stroke-width:4}.mini circle.pw{stroke-width:6}.mini circle.on{fill:var(--ac)}
.mini text{font:bold 20px var(--fb);fill:var(--bone);pointer-events:none}.mini circle.on+text{fill:#120e0a}
.cdet-aff{display:grid;grid-template-columns:auto 1fr;gap:6px 12px;align-items:center;font-size:13px;margin-bottom:10px}
.cdet-aff dt{color:var(--dim);font-size:12px;letter-spacing:.08em;text-transform:uppercase}.cdet-aff dd{display:flex;flex-wrap:wrap;gap:5px}
.ccs{display:flex;flex-wrap:wrap;gap:5px;margin:8px 0}
.cc.on{color:var(--bone);border-color:var(--brass-d)}
.cdet-lore{font:15px/1.5 var(--fi);font-style:italic;color:var(--ash);margin:10px 0}
.cstars{list-style:none;margin:10px 0;border-top:1px solid var(--line)}
.cstars li{display:grid;grid-template-columns:26px 1fr;gap:8px;padding:7px 0;border-bottom:1px dashed var(--line);font-size:13.5px;color:var(--ash)}
.cstars .n{font:12px var(--fb);color:var(--ac);border:1px solid color-mix(in srgb,var(--ac) 50%,transparent);border-radius:50%;width:22px;height:22px;display:grid;place-items:center}
.cstars li.pw b{color:var(--ac);font-weight:500}.cstars .who{font-size:11.5px;color:var(--brass-d);margin-top:2px}
.cp{border:1px solid color-mix(in srgb,var(--ac) 45%,var(--line));background:linear-gradient(180deg,color-mix(in srgb,var(--ac) 7%,#120e0a),#120e0a);padding:12px;margin-top:12px}
.cp-h{display:flex;gap:12px;align-items:center}
.cp-n{font:18px var(--fd);color:var(--ac)}.cp-t{font-size:12.5px;color:var(--ash)}
.cp-d{font-size:13.5px;color:var(--ash);margin:8px 0}
.cp-ico,.cp-glyph{width:var(--sz);height:var(--sz);flex:none;display:grid;place-items:center;border:1px solid var(--ac);background:#0b090b;box-shadow:0 0 12px -3px var(--ac)}
.cp-ico img{width:100%;height:100%;object-fit:cover}
.cp-glyph svg{width:60%;height:60%;fill:var(--ac);filter:drop-shadow(0 0 4px var(--ac))}
.cp-lv{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:8px}
.cp-lv h4{font:11.5px var(--fb);letter-spacing:.12em;text-transform:uppercase;color:var(--dim);margin-bottom:4px}
.cp-lv ul{list-style:none;font-size:13px;color:var(--bone);line-height:1.5}.cp-lv li:before{content:"·";color:var(--ac,var(--brass));margin-right:6px}
.cdet-src{margin-top:12px;display:flex;gap:6px;flex-wrap:wrap}
.cfilt{display:flex;flex-wrap:wrap;gap:12px 18px;align-items:center;margin:26px 0 8px;padding:12px 0;border-bottom:1px solid var(--line)}
.cfilt .ach-q{flex:1 1 320px;border:0;padding:0}.cfilt .ach-q input{font-size:17px}
.cgrid{list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px;margin-bottom:22px}
.ccard{width:100%;text-align:left;display:flex;flex-direction:column;gap:7px;padding:11px 12px;border:1px solid var(--line);border-left:3px solid var(--ac);background:var(--panel2);height:100%;transition:border-color .2s,background .2s}
.ccard:hover,.ccard[aria-current=true]{background:#1a1411;border-color:color-mix(in srgb,var(--ac) 60%,var(--line))}
.ccard-h{display:flex;justify-content:space-between;gap:8px}.ccard-h b{font:16px var(--fd);font-weight:400;color:var(--bone)}.ccard-h .num{font-size:12px;color:var(--dim)}
.ccard-a{display:flex;flex-wrap:wrap;gap:4px;align-items:center}.ccard-a .arr{color:var(--dim);font-size:12px;margin:0 2px}.ccard-a .muted{font-size:12px}
.ccard-p{display:flex;gap:8px;align-items:center;font-size:12.5px;color:var(--ash)}
.ccard-t{font-size:11.5px;color:var(--brass)}.ccard.got{background:linear-gradient(90deg,color-mix(in srgb,var(--ac) 8%,var(--panel2)),var(--panel2))}

/* ---------- skills ---------- */
.mtabs{display:flex;gap:6px;overflow-x:auto;padding-bottom:6px;margin-bottom:16px;scrollbar-width:thin}
.mtab{display:flex;align-items:center;gap:8px;padding:6px 12px 6px 6px;border:1px solid var(--line);background:var(--panel2);font:14px var(--fd);letter-spacing:.06em;color:var(--ash);white-space:nowrap;flex:none}
.mtab img{width:30px;height:30px}.mtab i{font:11px var(--fb);font-style:normal;color:var(--brass);border:1px solid var(--brass-d);width:17px;height:17px;display:grid;place-items:center;border-radius:50%}
.mtab[aria-pressed=true]{color:var(--bone);border-color:var(--brass);box-shadow:inset 0 -2px 0 var(--brass)}
.ms-h{display:flex;gap:18px;align-items:flex-start}.ms-ico{width:64px;height:64px;flex:none}
.ms-h h2{font:30px var(--fd);letter-spacing:.04em}.ms-d{font:15.5px/1.55 var(--fi);font-style:italic;color:var(--ash);max-width:900px;margin-top:4px}
.ms-bar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:18px 0;padding:14px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.ms-bar h4{font:11.5px var(--fb);letter-spacing:.12em;text-transform:uppercase;color:var(--dim);margin-bottom:6px}
.ms-grid{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:24px;align-items:start}
.tree-scroll{overflow-x:auto;border:1px solid var(--line);background:radial-gradient(900px 400px at 50% 30%,#1f1812,#0f0c09)}
.tree{position:relative;min-width:680px;aspect-ratio:740/560;margin:12px 14px 4px}
.tree-ln{position:absolute;inset:0;width:100%;height:100%}.tree-ln line{stroke:var(--brass-d);stroke-width:2.2;stroke-opacity:.55;vector-effect:non-scaling-stroke}
.tree .sk{position:absolute;width:6.2%;aspect-ratio:1;padding:0;transform:translate(0,0)}

.sk-ico{display:block;width:100%;height:100%;border:1px solid var(--line2);background:#0b090b;overflow:hidden}
.sk-ico img{width:100%;height:100%;display:block;filter:grayscale(.55) brightness(.75);transition:filter .2s}
.tree .sk.mod .sk-ico{border-radius:50%}
.tree .sk.tr .sk-ico{border-color:#8db7e0}
.tree .sk.on .sk-ico{border-color:var(--brass)}.tree .sk.on img,.tree .sk:hover img,.tree .sk.sel img{filter:none}
.tree .sk.sel .sk-ico{box-shadow:0 0 0 2px var(--bone),0 0 18px var(--brass)}
.sk-l{position:absolute;right:-6px;bottom:-6px;font:11px var(--fb);font-weight:700;background:var(--brass);color:#140e08;padding:0 4px;min-width:16px;text-align:center}
.tree-bar{position:absolute;left:0;right:0;bottom:0;height:5.4%;border-top:1px solid var(--line2);background:#0d0a08}
.tree-bar .fill{position:absolute;left:0;top:0;bottom:0;background:linear-gradient(90deg,#5a4630,#c9a46a);opacity:.55}
.tree-bar .tk{position:absolute;top:50%;transform:translate(-50%,-50%);font:12px var(--fb);color:var(--dim)}.tree-bar .tk.on{color:#140e08;font-weight:700}
.skd-h{display:flex;gap:12px;align-items:center}.skd-h .sk-ico{width:54px;height:54px;flex:none;border-color:var(--brass-d)}.skd-h h3{margin:0}
.sk-lv{grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}
.skd-rel{font-size:13.5px;color:var(--ash);margin-top:10px}
.lnk-b{color:var(--brass);border-bottom:1px solid var(--brass-d);font:inherit;padding:0}.lnk-b:hover{color:var(--bone)}
.ms-all{margin-top:18px}.ms-all summary{cursor:pointer;font:15px var(--fd);letter-spacing:.1em;color:var(--brass)}.ms-all summary small{font:12px var(--fb);color:var(--dim);margin-left:6px}
.ms-all table{margin-top:10px}
.tbl-scroll{overflow-x:auto;border:1px solid var(--line)}
.cls-m{border-collapse:collapse;font-size:12.5px;min-width:980px;width:100%}
.cls-m th,.cls-m td{border:1px solid var(--line);padding:6px 6px;text-align:center;color:var(--ash)}
.cls-m thead th{font:12px var(--fd);letter-spacing:.06em;background:var(--panel2)}.cls-m tbody th{text-align:left;background:var(--panel2);font:12.5px var(--fd);white-space:nowrap}
.cls-m td.self{background:repeating-linear-gradient(45deg,#15110d,#15110d 4px,#100c09 4px,#100c09 8px)}
.cls-m td.mine{color:var(--bone);background:#2a1f12;box-shadow:inset 0 0 0 1px var(--brass-d)}.cls-m td small{display:block;color:var(--brass);font-size:11px}

/* ---------- mechanics ---------- */
.mx-grid{display:grid;grid-template-columns:230px minmax(0,1fr);gap:30px;align-items:start}
.mx-toc{position:sticky;top:16px}.mx-toc ol{list-style:none;counter-reset:t;border-left:1px solid var(--line)}
.mx-toc li{counter-increment:t}.mx-toc li a{display:block;padding:5px 0 5px 14px;color:var(--ash);text-decoration:none;font-size:14px;border-left:2px solid transparent;margin-left:-1px}
.mx-toc li a:before{content:counter(t,upper-roman) ".";font:11px var(--fd);color:var(--dim);margin-right:8px}
.mx-toc a:hover{color:var(--bone)}.mx-toc a[aria-current]{color:var(--brass);border-left-color:var(--brass)}
.mx-body{display:flex;flex-direction:column;gap:22px}
.mx{scroll-margin-top:16px}.mx h2{display:flex;align-items:center;gap:10px}.mx-a{margin-left:auto;color:var(--dim);text-decoration:none;font-size:14px}
.mx p,.mx li{font-size:15px;color:var(--ash);line-height:1.6}.mx p+p{margin-top:8px}.mx b{color:var(--bone);font-weight:500}
.mx-l{margin:10px 0 0 18px}.mx-l li{margin:4px 0}.mx-l li::marker{color:var(--brass-d)}
.mx-o{margin:8px 0 10px 22px;columns:2;column-gap:28px}.mx-o li{font-size:14.5px}.mx-o li::marker{color:var(--brass);font-family:var(--fd)}
.mx-f{font:13px/1.5 ui-monospace,Menlo,monospace;color:var(--bone);background:#0d0a08;border:1px solid var(--line);padding:10px 12px;white-space:pre-wrap;margin:8px 0}
.mx-t{margin:10px 0}.mx-t td:first-child{color:var(--bone);white-space:nowrap}
.mx-band{display:grid;gap:6px;margin-top:12px}.mx-band p{font-size:14px;border-left:2px solid var(--line2);padding:4px 0 4px 10px}
.bd{font:11px var(--fb);letter-spacing:.12em;text-transform:uppercase;padding:1px 6px;margin-right:8px;border:1px solid}
.bd.lv{color:var(--aether);border-color:#2f5a49}.bd.ug{color:var(--blood-l);border-color:#5a2420}
.mx-src{margin-top:14px}.mx-src .chip{font-size:11.5px}
.mx-wc{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:20px;align-items:start}
.calc{border:1px solid var(--brass-d);background:#120e0a;padding:12px;display:grid;gap:8px;position:sticky;top:16px}
.calc h4{font:14px var(--fd);letter-spacing:.1em;color:var(--brass)}
.calc label{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:13px;color:var(--ash)}
.calc input{width:96px;background:#0b090b;border:1px solid var(--line2);color:var(--bone);padding:4px 6px;font:14px var(--fb);text-align:right}
.calc output{display:grid;gap:4px;border-top:1px dashed var(--line);padding-top:8px;font-size:13px;color:var(--ash)}.calc output b{font:22px var(--fd);color:var(--bone)}
.bar3{display:flex;height:6px;background:#0b090b;margin-top:4px}.bar3 i{display:block}.bar3 .m{background:#5a2420}.bar3 .h{background:#8a6c40}.bar3 .c{background:#e2c083}

@media (max-width:1060px){.sky-wrap,.ms-grid{grid-template-columns:minmax(0,1fr)}.cdet-wrap{position:static;max-height:none}.mx-grid{grid-template-columns:1fr}.mx-toc{position:static}.mx-toc ol{columns:2}}
@media (max-width:700px){.ms-bar{grid-template-columns:1fr}.mx-wc{grid-template-columns:1fr}.calc{position:static}.mx-o{columns:1}.mx-toc ol{columns:1}.cp-lv{grid-template-columns:1fr}
  .sky-box{aspect-ratio:4/5}.guide-btns{gap:6px}.gbtn{font-size:12.5px}.ms-h h2{font-size:24px}.ms-ico{width:48px;height:48px}}

/* ---------- region map ---------- */
.mfilt{margin:0 0 14px}.mfilt small{opacity:.7;margin-left:3px}
.rmap-box{aspect-ratio:29/26;background:#0c0a09}
#rmap{width:100%;height:100%;display:block;touch-action:none;cursor:grab;user-select:none}#rmap:active{cursor:grabbing}
#rmap .zc polygon{stroke:none}#rmap .zc.out{opacity:.45}
#rmap .zc.sel polygon{fill:#3a2c1c}
#rmap .zb line{stroke:#8a6c40;stroke-opacity:.5;stroke-width:calc(var(--u) * 1.4);stroke-dasharray:calc(var(--u) * 6) calc(var(--u) * 5)}
#rmap .zl{font-family:var(--fd);font-size:var(--fs);fill:#c9b48c;letter-spacing:.06em;paint-order:stroke;stroke:#120e0a;stroke-width:calc(var(--fs) / 3.2);pointer-events:none;opacity:.85}
#rmap .zl.big{font-size:var(--fsb);fill:var(--bone)}#rmap .zl.out{opacity:.4;font-style:italic}
#rmap .rose text{font:64px var(--fd);fill:#c9a46a}
.pin{cursor:pointer}
.pin *{vector-effect:non-scaling-stroke}
.pin.rift circle{fill:#0c0a09;stroke:#6fd2a8;stroke-width:1.8}.pin.rift .in{fill:none;stroke-width:1.4}.pin.rift.got circle{fill:#1d3b30}.pin.rift.got .in{fill:#6fd2a8}
.pin.shr path{fill:#0c0a09;stroke:#e2c083;stroke-width:1.8}.pin.shr.got path{fill:#e2c083}
.pin.lore path{fill:#0c0a09;stroke:#e6dccb;stroke-width:1.5}.pin.lore.got path{fill:#e6dccb}
.pin.foe path{stroke:#d2564c;stroke-width:2.4;fill:none}.pin.foe.hero path{stroke-width:3}.pin.foe.sup path{fill:#a3302a;stroke:#f08070;stroke-width:1.4}
.pin.chest rect{fill:#3a2e20;stroke:#8a6c40;stroke-width:1.2}.pin.chest.rare rect{fill:#c9a46a;stroke:#f0d8a6}
.pin.sec path{fill:#b38be0;stroke:#120e0a;stroke-width:1}
.pin.svc circle{fill:#a89a85;stroke:#120e0a;stroke-width:1}
.pin.gat circle{fill:#6b5c49}
.pin.sel *{stroke:#fff !important;stroke-width:2.6 !important}
.pin:hover{filter:drop-shadow(0 0 4px #fff6)}
.mz{margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}.mz h4{font:17px var(--fd);color:var(--brass);margin-bottom:6px}
.mz-h{font:12px var(--fb);letter-spacing:.12em;text-transform:uppercase;color:var(--dim);margin:14px 0 6px}
.mz-l{list-style:none;font-size:13.5px;color:var(--ash)}.mz-l li{display:flex;justify-content:space-between;padding:4px 0;border-bottom:1px dashed var(--line)}.mz-l b{font-weight:500;color:var(--bone)}
.mz-c{font-size:13px;color:var(--ash);margin:8px 0}.mz-c .ok{color:var(--aether)}
.mz .lnk{font-size:13px}
.legend3{display:grid;grid-template-columns:1fr 1fr;gap:6px 10px;margin-top:12px;font-size:12.5px;color:var(--ash)}.legend3 span{display:flex;align-items:center;gap:6px}.legend3 svg{width:18px;height:18px;overflow:visible}

/* ---------- world map ---------- */
.rnav{display:flex;gap:10px;align-items:center;justify-content:space-between;margin:0 0 12px;flex-wrap:wrap}
.rnav select{background:var(--bg2,#14100c);color:var(--bone);border:1px solid var(--line);padding:6px 10px;font:inherit;font-size:13.5px;max-width:100%}
.wmap-box{aspect-ratio:auto;max-height:none;background:#0c0a09;margin-bottom:22px}
#wmap{width:100%;height:min(86vh,1150px);display:block}
.wreg rect{fill:#c9a46a;fill-opacity:.05;stroke:var(--rc);stroke-width:40;stroke-dasharray:160 90;transition:fill-opacity .2s}
.wreg text{font:330px var(--fd);fill:#e6dccb;paint-order:stroke;stroke:#0c0a09;stroke-width:90;letter-spacing:.04em}
.wreg text.p{font-size:520px;fill:var(--rc)}
.wreg:hover rect,.wreg.hot rect,.wreg:focus rect{fill-opacity:.18;stroke-dasharray:none}
.wreg:focus{outline:none}
#wmap .rose text{font:420px var(--fd);fill:#c9a46a}
.c-base{--rc:#c9a46a}.c-aom{--rc:#6fd2a8}.c-fg{--rc:#e0874c}.c-foa{--rc:#8fb8e6}
.wlegend{display:flex;flex-wrap:wrap;gap:8px 18px;align-items:center;font-size:13px;color:var(--ash);margin:0 0 12px}
.wlegend i{display:inline-block;width:14px;height:10px;border:2px solid var(--rc);margin-right:6px;vertical-align:-1px}
.wcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px;margin-bottom:26px}
.wcard{display:block;padding:16px;border-top:2px solid var(--rc);text-decoration:none;color:inherit;transition:transform .15s}
.wcard:hover,.wcard.hot{transform:translateY(-2px)}
.wcard h3{font:18px var(--fd);color:var(--bone);margin-bottom:2px}.wcard p{font-size:12.5px;margin-bottom:8px}
.wcard .mz-l li{align-items:center;gap:10px}.wcard .mz-l b{flex:0 0 72px}
.wbar{flex:1;height:5px;background:#2a2118;position:relative}.wbar i{position:absolute;inset:0 auto 0 0;background:var(--rc)}
@media (max-width:700px){#wmap{height:auto}.rnav .chip{font-size:12.5px}.rnav select{flex:1 1 100%;order:-1}}

/* ---------- Steam panel ---------- */
.stm-who{display:flex;gap:12px;align-items:center;margin-bottom:10px}.stm-who img{border:1px solid var(--line)}.stm-who div{flex:1;display:flex;flex-direction:column;gap:2px}.stm-who small{font-size:12.5px}
.stm-link{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:10px}
.stm-form{display:flex;gap:8px;flex:1 1 260px}.stm-form input{flex:1;min-width:0;background:#0f0c09;border:1px solid var(--line);color:var(--bone);padding:8px 10px;font:inherit;font-size:13.5px}
.stm-form input:focus{outline:1px solid var(--brass);outline-offset:1px}
.stm-auto{font-size:13px;color:var(--ash);display:flex;align-items:center;gap:6px}
.stm-checks{margin-top:12px}.stm-checks li{align-items:center}.stm-checks span:first-child{display:flex;flex-direction:column;gap:2px}.stm-checks small{font-size:12px}
/* sound toggle */
.snd-btn{display:inline-grid;place-items:center;width:32px;height:28px;padding:0}.snd-btn svg{width:16px;height:16px}
.snd-btn[aria-pressed="false"] .w{display:none}.snd-btn[aria-pressed="true"] .x{display:none}
