/* WKOS Guides kit styles (used with kit/guide.js). Colours fall back to theme tokens via ../theme/guide-theme.css. */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --navy:#0a0e1a;--surface:#0f1729;--surface-2:#131d33;--border:#1e2a42;
  --text:#e2e8f0;--text-bright:#f1f5f9;--muted:#8595b8;--light:#64748b;
  --purple:#7c3aed;--purple-light:#a855f7;--cyan:#0ea5e9;--cyan-light:#38bdf8;
  --amber:#fbbf24;--green:#4ade80;--red:#f87171;--red-deep:#dc2626;
  --plat:#c4d4f0;--gold:#fbbf24;--silver:#cbd5e1;--bronze:#d6955b;
  --font:system-ui,-apple-system,'Segoe UI','Helvetica Neue',Arial,sans-serif;
  --mono:ui-monospace,SFMono-Regular,Menlo,monospace;
}
html{font-family:var(--font);color:var(--text);font-size:15px}
body{min-height:100vh;display:flex;flex-direction:column;
  background:
    radial-gradient(900px 500px at 12% -8%,color-mix(in srgb,var(--g-red,#dc2626) 10%,transparent),transparent 60%),
    radial-gradient(900px 500px at 100% 0%,color-mix(in srgb,var(--accent,#7c3aed) 9%,transparent),transparent 55%),
    var(--navy);
}
nav{background:color-mix(in srgb,var(--surface,#0f1729) 92%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);
  padding:.7rem 1.25rem;display:flex;align-items:center;gap:1rem;position:sticky;top:0;z-index:100;flex-wrap:wrap}
.nav-brand{font-family:var(--mono);font-weight:700;font-size:.92rem;letter-spacing:.02em;white-space:nowrap}
.nav-brand a{color:inherit;text-decoration:none}
.nav-brand .hub{background:linear-gradient(135deg,var(--purple-light),var(--cyan));-webkit-background-clip:text;
  background-clip:text;-webkit-text-fill-color:transparent}
.nav-brand .sep{color:var(--light);font-weight:400}
.nav-links{display:flex;gap:.35rem;margin-left:.5rem;flex-wrap:wrap}
.nav-link{font-family:var(--mono);font-size:.68rem;padding:.3rem .6rem;border-radius:6px;color:var(--light);
  text-decoration:none;border:1px solid transparent;transition:all .15s;white-space:nowrap}
.nav-link:hover{color:var(--text);border-color:var(--border)}
.nav-link.active{color:var(--red);border-color:color-mix(in srgb,var(--g-red,#f87171) 35%,transparent);background:color-mix(in srgb,var(--g-red,#f87171) 8%,transparent)}
.nav-stat{font-family:var(--mono);font-size:.72rem;color:var(--light);margin-left:auto;white-space:nowrap}
.nav-stat strong{color:var(--text-bright)}

main{flex:1;max-width:1100px;margin:0 auto;width:100%;padding:1.4rem 1.15rem 3rem}
h1{font-size:1.5rem;font-weight:700;letter-spacing:-.01em;color:var(--text-bright)}
.sub{color:var(--muted);font-size:.85rem;margin-top:.35rem;line-height:1.55;max-width:78ch}

.intro{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:.7rem;margin-top:1.1rem}
.notice{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--amber);
  border-radius:8px;padding:.85rem 1rem;font-size:.8rem;color:var(--muted);line-height:1.6}
.notice.warn{border-left-color:var(--red)}
.notice.info{border-left-color:var(--cyan)}
.notice h3{font-size:.72rem;font-family:var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--amber);margin-bottom:.35rem}
.notice.warn h3{color:var(--red)}
.notice.info h3{color:var(--cyan-light)}
.notice ul{padding-left:1.1rem}
.notice li{margin:.15rem 0}
.notice b{color:var(--text)}

.controls{display:flex;gap:.6rem;margin-top:1.3rem;flex-wrap:wrap;align-items:center}
.search-wrap{flex:1;min-width:220px;position:relative}
#search{width:100%;padding:.6rem .9rem .6rem 2.1rem;border-radius:8px;border:1px solid var(--border);
  background:var(--surface);color:var(--text);font-size:.88rem;outline:none;transition:border-color .15s}
#search:focus{border-color:var(--red)}
.search-wrap::before{content:'⌕';position:absolute;left:.75rem;top:50%;transform:translateY(-50%);
  color:var(--light);font-size:1rem;pointer-events:none}
.toggle{font-family:var(--mono);font-size:.7rem;color:var(--muted);display:flex;align-items:center;gap:.35rem;cursor:pointer;user-select:none}
.toggle input{accent-color:var(--red)}
.result-count{font-family:var(--mono);font-size:.72rem;color:var(--light);white-space:nowrap}
.chips{display:flex;gap:.35rem;flex-wrap:wrap;margin-top:.7rem}
.chip{font-family:var(--mono);font-size:.68rem;padding:.3rem .65rem;border-radius:999px;border:1px solid var(--border);
  background:var(--surface);color:var(--muted);cursor:pointer;transition:all .15s}
.chip:hover{color:var(--text)}
.chip.on{color:var(--red);border-color:color-mix(in srgb,var(--g-red,#f87171) 45%,transparent);background:color-mix(in srgb,var(--g-red,#f87171) 8%,transparent)}

.progress{height:4px;background:var(--border);border-radius:2px;margin-top:1rem;overflow:hidden}
.progress span{display:block;height:100%;background:linear-gradient(90deg,var(--red-deep),var(--purple-light));transition:width .3s}

.section{margin-top:1.6rem}
.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:.6rem;margin-bottom:.6rem;flex-wrap:wrap}
.section-title{font-family:var(--mono);font-size:.76rem;text-transform:uppercase;letter-spacing:.1em;font-weight:700;color:var(--purple-light)}
.section-count{font-family:var(--mono);font-size:.68rem;color:var(--light)}
.section-blurb{font-size:.8rem;color:var(--muted);line-height:1.55;margin:-.2rem 0 .7rem;max-width:90ch}
.items{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(var(--min,340px),100%),1fr));align-items:start;gap:.6rem}   /* default: pack short cards (dead-space rule) */
.items.wide{display:flex;flex-direction:column}   /* section wide:true — long step-by-step cards */
.items.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(var(--min),100%),1fr));align-items:start}
.items.dense{gap:.45rem}
.items.dense .card{padding:.55rem .7rem;border-radius:9px;gap:.1rem .55rem}
.items.dense .card .chk{width:15px;height:15px;margin-top:.1rem}
.items.dense .card-title{font-size:.84rem}
.items.dense .card-desc{font-style:normal;font-size:.76rem;line-height:1.45;margin-top:.15rem}
.items.dense .card-meta{font-family:var(--mono);font-size:.66rem;color:var(--light);margin-top:.3rem}
.items.dense .card-meta b{color:var(--light);font-weight:400}

.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:.85rem 1.05rem;
  display:grid;grid-template-columns:auto 1fr;gap:.2rem .8rem;transition:opacity .2s,border-color .15s}
.card.nocheck{grid-template-columns:1fr}
.card.done{opacity:.5}
.card.done .card-title{text-decoration:line-through;text-decoration-color:var(--light)}
.card .chk{grid-row:1;margin-top:.15rem;width:18px;height:18px;accent-color:var(--red);cursor:pointer}
.card-head{display:flex;align-items:baseline;justify-content:space-between;gap:.6rem;flex-wrap:wrap}
.card-title{font-size:.95rem;font-weight:700;color:var(--text-bright)}
.card-desc{font-size:.8rem;color:var(--muted);font-style:italic;margin-top:.1rem}
.badges{display:flex;gap:.3rem;flex-wrap:wrap}
.badge{font-family:var(--mono);font-size:.62rem;text-transform:uppercase;letter-spacing:.06em;padding:.15rem .45rem;
  border-radius:4px;border:1px solid var(--border);color:var(--muted)}
.badge.platinum{color:var(--plat);border-color:rgba(196,212,240,.4)}
.badge.gold{color:var(--gold);border-color:color-mix(in srgb,var(--g-accent3-soft,#fbbf24) 40%,transparent)}
.badge.silver{color:var(--silver);border-color:rgba(203,213,225,.35)}
.badge.bronze{color:var(--bronze);border-color:rgba(214,149,91,.4)}
.badge.missable,.badge.required{color:var(--red);border-color:color-mix(in srgb,var(--g-red,#f87171) 40%,transparent)}
.badge.optional{color:var(--cyan-light);border-color:color-mix(in srgb,var(--g-accent2-soft,#38bdf8) 35%,transparent)}
.badge.pending{color:var(--amber);border-color:color-mix(in srgb,var(--g-accent3-soft,#fbbf24) 35%,transparent)}
.card-meta{font-size:.78rem;color:var(--muted);margin-top:.35rem;line-height:1.55}
.card-meta b{color:var(--text)}
.card ol,.card ul{font-size:.8rem;color:var(--text);line-height:1.55;margin-top:.45rem;padding-left:1.2rem}
.card li{margin:.12rem 0}
.card-notes{font-size:.78rem;color:var(--muted);margin-top:.45rem;line-height:1.55;border-top:1px dashed var(--border);padding-top:.45rem}
.card-notes p+p{margin-top:.3rem}
.sublabel{font-family:var(--mono);font-size:.64rem;text-transform:uppercase;letter-spacing:.08em;color:var(--cyan-light);margin-top:.55rem}

.spoiler .spoil{filter:blur(6px);cursor:pointer;transition:filter .2s}
.spoiler.revealed .spoil,body.show-spoilers .spoil{filter:none}
.spoiler-tag{font-family:var(--mono);font-size:.62rem;color:var(--red);margin-top:.3rem}
.spoiler.revealed .spoiler-tag,body.show-spoilers .spoiler-tag{display:none}

.no-results{text-align:center;padding:3rem 1rem;color:var(--light);font-size:.9rem}
footer{color:var(--light);font-family:var(--mono);font-size:.66rem;text-align:center;margin-top:2.4rem;line-height:1.6}
@media (max-width:640px){nav{padding:.6rem .9rem;position:static}.nav-stat{margin-left:0}.card{padding:.75rem .85rem}}

/* layout: table */
.tbl-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:10px;background:var(--surface)}
.tbl{width:100%;border-collapse:collapse;font-size:.8rem}
.tbl th{position:sticky;top:0;background:var(--surface-2);text-align:left;font-family:var(--mono);font-size:.64rem;text-transform:uppercase;
  letter-spacing:.06em;color:var(--light);padding:.45rem .6rem;border-bottom:1px solid var(--border);cursor:pointer;white-space:nowrap;user-select:none}
.tbl th:hover{color:var(--text)}
.tbl td{padding:.4rem .6rem;border-bottom:1px solid var(--border);color:var(--muted);vertical-align:top;line-height:1.45}
.tbl td b{color:var(--text-bright);margin-right:.4rem}
.tbl .wide{min-width:16rem}
.tbl .c{width:1.8rem;padding-right:0}
.tbl .chk{width:15px;height:15px;accent-color:var(--red);cursor:pointer}
.tbl tr:last-child td{border-bottom:0}
.tbl tr.done td{opacity:.5}
.tbl tr.done b{text-decoration:line-through}
.tbl .badges{display:inline-flex;vertical-align:1px}

/* layout: milestones */
.milestones{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:10px;background:var(--surface);overflow:hidden}
.ms{display:flex;align-items:baseline;gap:.6rem;padding:.45rem .7rem;border-bottom:1px solid var(--border);font-size:.82rem;cursor:pointer}
.ms:last-child{border-bottom:0}
.ms .chk{width:15px;height:15px;accent-color:var(--red);flex:none;align-self:center}
.ms-tag{font-family:var(--mono);font-size:.66rem;font-weight:700;color:var(--cyan-light);border:1px solid var(--border);
  border-radius:4px;padding:.1rem .4rem;min-width:4.6rem;text-align:center;flex:none}
.ms-body b{color:var(--text-bright);margin-right:.35rem}
.ms-desc{color:var(--muted)}
.ms.done{opacity:.5}
.ms.done b{text-decoration:line-through}

/* section chips: live progress */
.chip .chip-n{opacity:.7;font-weight:400}
.chip.complete{border-color:color-mix(in srgb,var(--green,#4ade80) 55%,var(--border));color:var(--green,#4ade80)}

/* highlight rules (DATA.highlight): Health / Power Upgrades etc. */
.hl{font-weight:700;border-radius:4px;padding:0 .25em;white-space:nowrap}
.hl.health{color:var(--hl-health,#4ade80);background:color-mix(in srgb,var(--hl-health,#4ade80) 14%,transparent)}
.hl.power{color:var(--hl-power,#c084fc);background:color-mix(in srgb,var(--hl-power,#c084fc) 16%,transparent)}
.badge.health-upgrade{color:var(--hl-health,#4ade80);border-color:currentColor;background:color-mix(in srgb,var(--hl-health,#4ade80) 12%,transparent)}
.badge.power-upgrade{color:var(--hl-power,#c084fc);border-color:currentColor;background:color-mix(in srgb,var(--hl-power,#c084fc) 14%,transparent)}
.card-meta.reward b{color:var(--amber,#fbbf24)}
:root[data-theme="light"]{--hl-health:#15803d;--hl-power:#7e22ce}

/* requirements + suggested order */
.card-meta.needs b{color:var(--red,#f87171)}
.need{display:inline-block;font-family:var(--mono);font-size:.64rem;font-weight:700;padding:.05rem .4rem;border-radius:4px;border:1px solid color-mix(in srgb,var(--red,#f87171) 45%,var(--border));color:var(--text-bright);margin:0 .2rem .15rem 0}

/* ---- QoL: progress step, counters, trophy progress, links, collapse, compact, backup ---- */
.kit-btn{font-family:var(--mono);font-size:.7rem;padding:.3rem .65rem;border-radius:7px;border:1px solid var(--border);background:var(--surface);color:var(--muted);cursor:pointer}
.kit-btn:hover{color:var(--text-bright);border-color:var(--cyan-light,#38bdf8)}
.step-pick select{font-family:var(--mono);font-size:.7rem;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:.15rem .3rem}
.counters{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.8rem}
.counter{flex:1 1 200px;background:var(--surface);border:1px solid var(--border);border-radius:9px;padding:.45rem .65rem;font-size:.74rem;color:var(--muted);display:flex;flex-wrap:wrap;align-items:baseline;gap:.2rem .45rem}
.counter b{color:var(--text-bright);font-size:.74rem}
.counter-n{font-family:var(--mono);font-weight:700;color:var(--text-bright)}
.counter-sub{font-family:var(--mono);font-size:.64rem;color:var(--light)}
.counter-bar{flex-basis:100%;height:4px;background:var(--border);border-radius:2px;overflow:hidden}
.counter-bar i{display:block;height:100%;background:var(--muted)}
.counter.health{border-color:color-mix(in srgb,var(--hl-health,#4ade80) 40%,var(--border))}
.counter.health .counter-n{color:var(--hl-health,#4ade80)}.counter.health .counter-bar i{background:var(--hl-health,#4ade80)}
.counter.power{border-color:color-mix(in srgb,var(--hl-power,#c084fc) 40%,var(--border))}
.counter.power .counter-n{color:var(--hl-power,#c084fc)}.counter.power .counter-bar i{background:var(--hl-power,#c084fc)}
.counter.step .counter-n{color:var(--cyan-light,#38bdf8)}
.card-progress{display:flex;align-items:center;gap:.5rem;margin-top:.35rem}
.cp-bar{flex:1;max-width:220px;height:5px;background:var(--border);border-radius:3px;overflow:hidden}
.cp-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--red-deep,#dc2626),var(--purple-light,#a855f7))}
.cp-n{font-family:var(--mono);font-size:.68rem;color:var(--muted)}
.card-progress.full .cp-n{color:var(--green,#4ade80);font-weight:700}
.card.later{opacity:.55}
.badge[class*="later-step"]{color:var(--light);border-style:dashed}
a.need{text-decoration:none}
a.need:hover{border-color:var(--cyan-light,#38bdf8)}
a.need.met{border-color:color-mix(in srgb,var(--green,#4ade80) 55%,var(--border));color:var(--green,#4ade80)}
.card-title a{color:inherit;text-decoration:none;border-bottom:1px dotted var(--light)}
.card-title a:hover{color:var(--cyan-light,#38bdf8)}
.card.flash{outline:2px solid var(--cyan-light,#38bdf8);outline-offset:3px;transition:outline-color 1s}
.section-head[data-sec]{cursor:pointer;user-select:none}
.section-head .caret{display:inline-block;width:.9em;color:var(--light)}
.section.shut{margin-top:.9rem}
.other-pages .other-list{display:flex;flex-direction:column;gap:.25rem}
.other-list a{font-size:.82rem;color:var(--text);text-decoration:none;padding:.35rem .6rem;border:1px solid var(--border);border-radius:8px;background:var(--surface)}
.other-list a:hover{border-color:var(--cyan-light,#38bdf8)}
.op-page{font-family:var(--mono);font-size:.62rem;text-transform:uppercase;letter-spacing:.06em;color:var(--cyan-light,#38bdf8);margin-right:.35rem}
.backup{margin-top:.8rem}
.backup textarea{width:100%;min-height:3.2rem;margin-top:.45rem;font-family:var(--mono);font-size:.66rem;background:var(--navy);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:.4rem}
.backup .row{display:flex;gap:.5rem;align-items:center;margin-top:.35rem;font-size:.72rem}
body.compact .card .spoil,body.compact .card .card-desc,body.compact .card .spoiler-tag{display:none}
body.compact .card{padding:.45rem .7rem}
body.compact .items{gap:.35rem}
/* wallet: cost chips on cards (kit/guide.js) + the wallet page (kit/wallet.js) */
.card-meta.cost .ok,.wl-res.ok .wl-name,.section-blurb.ok{color:var(--green,#4ade80)}
.card-meta.cost .short,.wl-row .short{color:var(--amber,#fbbf24)}
.kit-btn.want{margin-left:.35rem;padding:.15rem .5rem}
.kit-btn.want.on{color:var(--amber,#fbbf24);border-color:var(--amber,#fbbf24)}
.kit-btn[disabled]{opacity:.45;cursor:not-allowed}
.wl-short{display:grid;gap:.3rem;margin:.4rem 0 .2rem}
.wl-row{display:flex;justify-content:space-between;gap:.8rem;flex-wrap:wrap;font-size:.85rem;padding:.35rem .6rem;border:1px solid var(--border);border-radius:8px;background:var(--surface)}
.wl-row span{font-family:var(--mono);font-size:.74rem;color:var(--muted)}
.wl-actions{margin-top:.5rem}
.wl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:.4rem;margin:.35rem 0 .6rem}
.wl-res{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.35rem .5rem;border:1px solid var(--border);border-radius:8px;background:var(--surface)}
.wl-res.short{border-color:color-mix(in srgb,var(--amber,#fbbf24) 55%,var(--border))}
.wl-name{font-size:.84rem;min-width:0;overflow-wrap:anywhere}
.wl-name small{display:block;font-family:var(--mono);font-size:.64rem;color:var(--muted)}
.wl-ctl{display:flex;align-items:center;gap:.25rem;flex:none}
.wl-ctl .kit-btn{width:1.9rem;padding:.25rem 0;font-size:.85rem}
.wl-ctl input{width:4.6rem;font:inherit;font-family:var(--mono);font-size:.8rem;text-align:right;padding:.25rem .35rem;border:1px solid var(--border);border-radius:7px;background:var(--surface);color:var(--text-bright)}
.wl-add{display:flex;gap:.4rem;margin-top:.4rem}
.wl-add input{flex:1;min-width:0;font:inherit;font-size:.84rem;padding:.35rem .55rem;border:1px solid var(--border);border-radius:7px;background:var(--surface);color:var(--text)}
.wl-cat{border-top:1px solid var(--border);padding:.2rem 0}
.wl-cat summary{cursor:pointer;padding:.35rem 0}
.wl-item{display:flex;align-items:flex-start;justify-content:space-between;gap:.6rem;padding:.4rem .1rem;border-bottom:1px dashed var(--border)}
.wl-item:last-child{border-bottom:0}
.wl-item-main{min-width:0;font-size:.86rem}
.wl-item .card-meta{margin-top:.15rem}
.wl-note{font-size:.74rem;color:var(--muted)}
.wl-item .kit-btn.want{flex:none;margin-left:0}
/* baseline header: version stamp on every kit page; facts + useful links on guide home pages (kit/facts.js) */
.stamp{font-family:var(--mono);font-size:.68rem;color:var(--muted);margin:.35rem 0 .2rem}
.stamp b{color:var(--text);font-weight:600}
/* skill tree layout (section layout:'tree') — game coordinates in an SVG, scrolls sideways on phones */
.tree-wrap{margin:.4rem 0 .8rem;border:1px solid var(--border);border-radius:12px;background:var(--surface);padding:.55rem .6rem .4rem;position:relative}
.tree-head{display:flex;justify-content:space-between;align-items:center;gap:.6rem;flex-wrap:wrap;font-family:var(--mono);font-size:.7rem;color:var(--muted)}
.tree-head .over{color:var(--red,#f87171);font-weight:700}
.tree-legend{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap}
.tree-legend .lg{display:inline-block;width:.8rem;height:.8rem;border-radius:50%;border:2px solid var(--border);margin-left:.45rem}
.tree-legend .lg.done{background:var(--cyan,#0ea5e9);border-color:var(--cyan,#0ea5e9)}
.tree-legend .lg.avail{border-color:var(--cyan-light,#38bdf8)}
.tree-legend .lg.locked{opacity:.45}
.tree-legend .lg.grp{border-style:dashed;border-color:var(--amber,#fbbf24)}
.tree-note{min-height:0;font-size:.74rem;color:var(--amber,#fbbf24);opacity:0;transition:opacity .2s;height:0;overflow:hidden}
.tree-note.show{opacity:1;height:auto;margin-top:.25rem}
.tree-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
svg.tree{display:block;width:100%;min-width:560px;height:auto;margin-top:.3rem}
svg.tree .te{stroke:var(--border);stroke-width:calc(46 * var(--k,1));fill:none}
svg.tree .te.lit{stroke:var(--cyan,#0ea5e9)}
svg.tree .troot{fill:var(--muted);opacity:.7}
svg.tree .tg{fill:var(--border)}
svg.tree .tlv{fill:var(--muted);font:600 calc(120px * var(--k,1))/1 var(--mono,monospace);text-anchor:middle;letter-spacing:.04em}
svg.tree .tn{cursor:pointer;outline:none}
svg.tree .tn .nd{fill:var(--surface);stroke:var(--border);stroke-width:calc(46 * var(--k,1))}
svg.tree .tn text{fill:var(--muted);font:600 calc(130px * var(--k,1))/1 var(--font,system-ui,sans-serif);text-anchor:middle}
svg.tree .tn.avail .nd{stroke:var(--cyan-light,#38bdf8)}
svg.tree .tn.avail text{fill:var(--text)}
svg.tree .tn.done .nd{fill:var(--cyan,#0ea5e9);stroke:var(--cyan,#0ea5e9)}
svg.tree .tn.done text{fill:var(--text-bright,var(--text))}
svg.tree .tn text.rk{fill:var(--surface);font-weight:800;font-size:inherit}
svg.tree .tn .tick{fill:none;stroke:var(--surface);stroke-width:calc(55 * var(--k,1));stroke-linecap:round;stroke-linejoin:round}
svg.tree .tn.locked{opacity:.6}
svg.tree .tn.blocked{opacity:.3}
svg.tree .tn.grp .nd{stroke-dasharray:calc(70 * var(--k,1)) calc(45 * var(--k,1))}
svg.tree .tn.grp.avail .nd{stroke:var(--amber,#fbbf24)}
svg.tree .tn.hit .nd{stroke:var(--amber,#fbbf24);stroke-width:calc(80 * var(--k,1));stroke-dasharray:none}
svg.tree .tn:hover .nd,svg.tree .tn:focus-visible .nd{stroke:var(--text-bright,var(--text));stroke-width:calc(60 * var(--k,1))}
.rank-step{display:inline-flex;align-items:center;gap:.3rem;font-family:var(--mono);font-size:.75rem}
.rank-step .kit-btn{padding:.05rem .45rem;min-width:1.7rem}
.rank-step .kit-btn[disabled]{opacity:.35;cursor:default}
/* wallet tabs + Barbarian Arsenal + skill-tree summaries */
.wl-tabs{display:flex;gap:.3rem;flex-wrap:wrap;margin:.2rem 0 .8rem}
.wl-tab{font-family:var(--mono);font-size:.72rem;padding:.35rem .7rem;border-radius:999px;border:1px solid var(--border);background:transparent;color:var(--muted);cursor:pointer}
.wl-tab.on{background:color-mix(in srgb,var(--cyan,#0ea5e9) 18%,transparent);color:var(--text-bright,var(--text));border-color:var(--cyan,#0ea5e9)}
.wl-tab small{font-size:.6rem;opacity:.7}
.wl-res select{font:inherit;font-size:.8rem;max-width:12.5rem;padding:.25rem .35rem;border:1px solid var(--border);border-radius:7px;background:var(--surface);color:var(--text)}
.wl-bar .wl-ctl{flex-wrap:wrap;justify-content:flex-end}
.wl-wide{max-width:560px}
.wl-pad{padding:.3rem .1rem}
.wl-rank{font-family:var(--mono);min-width:1.6rem;text-align:center}
.wl-tree{padding:.5rem .6rem;border:1px solid var(--border);border-radius:8px;background:var(--surface);display:grid;gap:.3rem}
.wl-tree-h{display:flex;justify-content:space-between;font-size:.84rem}
.wl-tree-h span{font-family:var(--mono);color:var(--muted)}
.wl-tree.full .wl-tree-h span{color:var(--green,#4ade80)}
.wl-tree.over .wl-tree-h span{color:var(--red,#f87171)}
.wl-res.wl-bar{flex-direction:column;align-items:stretch;gap:.3rem}
.wl-bar .wl-ctl{justify-content:stretch;gap:.3rem}
.wl-bar select{flex:1 1 0;min-width:0;max-width:none}
.wl-res select{min-width:0}
/* tree node popup */
.tree-tip{position:absolute;z-index:50;max-width:min(340px,calc(100vw - 16px));background:var(--surface);color:var(--text);border:1px solid var(--cyan-light,#38bdf8);border-radius:10px;padding:.6rem .7rem;box-shadow:0 12px 30px -12px rgba(0,0,0,.6);font-size:.82rem;line-height:1.45;pointer-events:none}
.tree-tip[hidden]{display:none}
.tree-tip p{margin:.35rem 0}
.tree-tip .badges{margin-top:.3rem}
.tt-head{display:flex;justify-content:space-between;align-items:baseline;gap:.6rem}
.tt-head b{font-size:.92rem;color:var(--text-bright,var(--text))}
.tt-state{font-family:var(--mono);font-size:.64rem;color:var(--muted);text-align:right}
.tt-state.done{color:var(--cyan,#0ea5e9)}.tt-state.avail{color:var(--green,#4ade80)}.tt-state.blocked{color:var(--amber,#fbbf24)}
.tt-alt b{color:var(--amber,#fbbf24)}
/* ?embed=1 — kit page shown inside a wallet tab */
html.embed body{background:transparent}
html.embed nav,html.embed main>h1,html.embed main>.sub,html.embed main>footer,html.embed #intro{display:none!important}
html.embed main{padding-top:0;margin-top:0}
.wl-embed{width:100%;border:0;min-height:300px;display:block;margin-top:.5rem;background:transparent}
/* counters that act as tabs (counter.section) */
button.counter.tab{font:inherit;text-align:left;cursor:pointer;color:inherit}
button.counter.tab:hover{border-color:var(--cyan-light,#38bdf8)}
button.counter.tab.on{border-color:var(--cyan,#0ea5e9);box-shadow:inset 0 0 0 1px var(--cyan,#0ea5e9);background:color-mix(in srgb,var(--cyan,#0ea5e9) 12%,var(--surface))}
.wl-find{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;margin:.4rem 0 .6rem}
.wl-find input[type=search]{flex:1;min-width:12rem;font:inherit;font-size:.85rem;padding:.4rem .65rem;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text)}
#wallet .pt-hide{display:none!important}
.wl-tree .ok{color:var(--green,#4ade80)}.wl-tree .short{color:var(--amber,#fbbf24)}
.wl-acts{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}
.counter.tab{flex-basis:140px}
svg.tree .tn.lvl{opacity:.35}
.tree-lvl{display:inline-flex;align-items:center;gap:.35rem;font-family:var(--mono);font-size:.72rem;color:var(--muted)}
.tree-lvl input{width:4.2rem;font:inherit;font-size:.8rem;padding:.2rem .4rem;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text)}
.tree-lvl-pts{font-family:var(--mono);font-size:.7rem;color:var(--muted)}
.tree-lvl-pts.over{color:var(--amber,#fbbf24)}
.tree-legend .lg.lvl{opacity:.3}
details.wl-emb>summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:.6rem}
details.wl-emb>summary::-webkit-details-marker{display:none}
details.wl-emb>summary .section-title::before{content:'▸ ';color:var(--muted)}
details.wl-emb[open]>summary .section-title::before{content:'▾ '}
.wl-sub{display:flex;gap:.3rem;flex-wrap:wrap;margin:.2rem 0 .8rem;padding:.25rem;border:1px solid var(--border);border-radius:10px;background:var(--surface);width:fit-content;max-width:100%}
.wl-subtab{font:600 .74rem/1 var(--mono);padding:.5rem .8rem;border-radius:7px;border:1px solid transparent;background:none;color:var(--muted);cursor:pointer}
.wl-subtab:hover{color:var(--text)}
.wl-subtab.on{color:var(--text-bright,var(--text));background:color-mix(in srgb,var(--cyan-light,#38bdf8) 14%,transparent);border-color:color-mix(in srgb,var(--cyan-light,#38bdf8) 40%,transparent)}
/* objective checklists (stepTicks) + "also in this area" lists (alsoHere) */
.step-list{list-style:none;padding-left:0!important;margin:.3rem 0 0}
.step-list li{margin:.18rem 0}
.step-list label{display:flex;gap:.5rem;align-items:flex-start;cursor:pointer;font-size:.8rem;line-height:1.45;color:var(--text)}
.step-list input{margin-top:.18rem;accent-color:var(--red);flex:none}
.step-list input:checked+span{color:var(--muted);text-decoration:line-through;text-decoration-color:var(--light)}
.steps-n,.also-n{font-family:var(--mono);font-size:.66rem;color:var(--muted);margin-left:.35rem;letter-spacing:0;text-transform:none}
.steps-n.full{color:var(--green,#4ade80)}
.also{margin-top:.9rem;padding-top:.7rem;border-top:1px dashed var(--border)}
.also>.sublabel{margin-bottom:.45rem}
