.talent-planner {
  --talent-gold: #d7b778;
  --talent-ink: #17130f;
  --talent-panel: #28211a;
  --talent-line: #766044;
  color: #eee1c7;
  margin: 1.5rem 0 2.5rem;
}
.talent-planner [hidden] { display:none !important; }
.talent-toolbar { display:flex; align-items:end; flex-wrap:wrap; gap:.65rem; padding:.8rem; border:1px solid #51412d; background:linear-gradient(135deg,#31271d,#1f1a15); }
.talent-toolbar label { display:grid; gap:.25rem; color:#bda77f; font-size:.75rem; text-transform:uppercase; letter-spacing:.08em; }
.talent-toolbar input { width:6rem; min-height:2.45rem; padding:.45rem .55rem; border:1px solid #6c593c; border-radius:2px; background:#17130f; color:#fff3d8; font:inherit; text-transform:none; letter-spacing:normal; }
.talent-toolbar .build-name-label input { width:10rem; }
.talent-toolbar output { margin:0 auto 0 .35rem; color:#f1d290; font-variant-numeric:tabular-nums; }
.talent-toolbar button,.talent-actions button,.talent-tab { min-height:2.45rem; padding:.45rem .8rem; border:1px solid #8a7049; border-radius:2px; background:linear-gradient(#51402a,#342719); color:#f3dfb7; font-family:inherit; font-size:.82rem; font-weight:600; line-height:1.2; cursor:pointer; }
.talent-toolbar button:hover,.talent-actions button:hover,.talent-tab:hover { border-color:#e4c688; background:linear-gradient(#665033,#42311e); }
.talent-toolbar button:focus-visible,.talent-actions button:focus-visible,.talent-tab:focus-visible,.talent-node:focus-visible,.class-switch a:focus-visible { outline:2px solid #fff0b8; outline-offset:2px; z-index:5; }
.talent-status { min-height:1.3em; margin:.35rem 0; color:#f3ce8b; font-size:.84rem; }
.talent-tabs { display:none; }
.talent-trees { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.8rem; }
.talent-planner .talent-tree { position:relative; z-index:0; display:block; min-width:0; overflow:visible; padding:0; gap:0; grid-template-columns:none; grid-template-rows:none; grid-auto-rows:auto; border:2px solid #6e583b; background:radial-gradient(ellipse at 50% 20%,rgba(136,103,59,.2),transparent 68%),repeating-linear-gradient(135deg,rgba(255,255,255,.012) 0 2px,transparent 2px 5px),linear-gradient(145deg,#30271d,#1d1915 70%); box-shadow:inset 0 0 0 2px #17120d,0 4px 14px #09080799; }
.talent-planner .talent-tree:hover,.talent-planner .talent-tree:focus-within { z-index:20; }
.tree-heading { min-height:2.8rem; display:flex; align-items:center; justify-content:space-between; padding:.35rem .7rem; border-bottom:1px solid #6e583b; background:linear-gradient(#4a3925,#302417); color:var(--talent-gold); }
.talent-planner .talent-tree .tree-heading h2 { grid-column:auto; grid-row:auto; margin:0; font:700 1rem/1.2 Georgia,serif; }
.tree-points { color:#c3ae87; font-size:.75rem; font-variant-numeric:tabular-nums; }
.talent-board { position:relative; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); grid-template-rows:repeat(7,minmax(4.35rem,1fr)); aspect-ratio:4 / 7; max-height:36rem; padding:.4rem .25rem; isolation:isolate; }
.talent-arrows { position:absolute; inset:.4rem .25rem; width:calc(100% - .5rem); height:calc(100% - .8rem); z-index:-1; overflow:visible; }
.talent-arrows marker path { fill:#9b845d; }
.prerequisite-arrow { fill:none; stroke:#b69a67; stroke-width:2.5; opacity:.8; }
.prerequisite-arrow.is-or { stroke:#d5b66d; stroke-dasharray:5 3; }
.talent-node { position:relative; place-self:center; width:min(3.4rem,76%); aspect-ratio:1; padding:3px; border:2px solid #9b8358; border-radius:3px; background:linear-gradient(145deg,#59482f,#211a13 70%); box-shadow:0 2px 7px #070605, inset 0 0 0 1px #120f0b; color:#fff0ca; cursor:pointer; }
.talent-node:hover,.talent-node:focus-visible { z-index:30; border-color:#ffe1a0; filter:brightness(1.18); }
.talent-node.has-ranks { border-color:#e0b34e; box-shadow:0 0 8px #e8ae3d77,inset 0 0 0 1px #fff0b4; }
.talent-node[data-locked="true"] .talent-icon,.talent-node[data-locked="true"] .talent-icon-fallback { filter:grayscale(.82) brightness(.65); }
.talent-icon,.talent-icon-fallback { display:grid; width:100%; height:100%; object-fit:cover; place-items:center; border:1px solid #120e0a; background:radial-gradient(circle,#776044,#342719 70%); color:#edce8d; font:bold 1rem Georgia,serif; }
.talent-rank { position:absolute; right:-.32rem; bottom:-.5rem; min-width:2rem; padding:.05rem .2rem; border:1px solid #816c45; border-radius:2px; background:#17130f; color:#ffdc8e; font:700 .65rem/1.2 Arial,sans-serif; text-shadow:0 1px #000; }
.talent-col-0 { grid-column:1; }.talent-col-1 { grid-column:2; }.talent-col-2 { grid-column:3; }.talent-col-3 { grid-column:4; }
.talent-row-0 { grid-row:1; }.talent-row-1 { grid-row:2; }.talent-row-2 { grid-row:3; }.talent-row-3 { grid-row:4; }.talent-row-4 { grid-row:5; }.talent-row-5 { grid-row:6; }.talent-row-6 { grid-row:7; }
.talent-tooltip { position:absolute; z-index:31; left:calc(100% + .45rem); top:50%; display:none; width:min(18rem,calc(100vw - 1rem)); max-height:min(55vh,24rem); overflow:auto; padding:.7rem; transform:translateY(-50%); border:1px solid #bda16c; background:linear-gradient(145deg,#292116,#110e0b); box-shadow:0 4px 16px #000d; color:#f4e3c0; text-align:left; font:normal .78rem/1.4 Arial,sans-serif; }
.talent-node[data-col="3"] .talent-tooltip,.talent-node[data-tooltip-side="left"] .talent-tooltip { left:auto; right:calc(100% + .45rem); }
.talent-node[data-col="1"] .talent-tooltip,.talent-node[data-col="2"] .talent-tooltip,.talent-node[data-tooltip-side="above"] .talent-tooltip,.talent-node[data-tooltip-side="below"] .talent-tooltip { left:50%; right:auto; top:auto; bottom:calc(100% + .45rem); transform:translateX(-50%); }
.talent-node[data-tooltip-side="below"] .talent-tooltip { top:calc(100% + .45rem); bottom:auto; }
.talent-node[data-tooltip-side="left"] .talent-tooltip { left:auto; right:calc(100% + .45rem); top:50%; bottom:auto; transform:translateY(-50%); }
.talent-node[data-tooltip-side="right"] .talent-tooltip { left:calc(100% + .45rem); right:auto; top:50%; bottom:auto; transform:translateY(-50%); }
.talent-node[data-tooltip-side="above"] .talent-tooltip { left:50%; right:auto; top:auto; bottom:calc(100% + .45rem); transform:translateX(-50%); }
.talent-node[data-tooltip-side="below"] .talent-tooltip { left:50%; right:auto; top:calc(100% + .45rem); bottom:auto; transform:translateX(-50%); }
.talent-node[data-tooltip-open="true"] .talent-tooltip { display:block; }
.talent-tooltip > * { display:block; margin:.15rem 0; }.talent-tooltip b { color:#ffd77f; font:700 .9rem Georgia,serif; }.tooltip-rank { color:#ffe9b5; }.tooltip-current { color:#d5c2a0; }.tooltip-next { color:#a9c9a0; }.tooltip-requirement { padding-top:.25rem; border-top:1px solid #57462e; color:#d7b778; }
.talent-inspector { display:flex; justify-content:space-between; align-items:center; gap:1rem; margin-top:.75rem; padding:.75rem 1rem; border:1px solid #685237; background:linear-gradient(110deg,#30271d,#1c1813); }
.talent-inspector h3 { margin:.15rem 0; color:#f0d392; font:700 1rem Georgia,serif; }.talent-inspector p { margin:.2rem 0; color:#cabc9f; font-size:.82rem; }.inspector-kicker { color:#a78b5e; font-size:.65rem; letter-spacing:.1em; text-transform:uppercase; }
.talent-actions { display:flex; gap:.45rem; }.talent-actions button { width:2.7rem; height:2.7rem; font-size:1.35rem; }.talent-actions button:disabled { opacity:.42; cursor:not-allowed; }
.class-switch { display:flex; flex-wrap:wrap; gap:.4rem .8rem; margin-top:.8rem; font-size:.82rem; }.class-switch a { color:#ddc38f; }
.talent-credit { margin-top:.9rem; color:#b9a98c; font-size:.78rem; }.talent-credit summary { cursor:pointer; color:#d3b878; }.talent-credit p { max-width:75ch; }
.talent-unavailable { padding:1rem; border:1px solid #5c4b34; background:#241e17; }
@media (max-width:760px) {
  .talent-toolbar { align-items:stretch; }.talent-toolbar output { flex-basis:100%; order:4; margin:.2rem 0 0; }.talent-toolbar .build-name-label { flex:1; }
  .talent-tabs { display:flex; gap:.35rem; margin:.55rem 0; overflow-x:auto; padding:.15rem; }.talent-tab { flex:1 0 auto; }
  .talent-trees { display:block; }.talent-planner .talent-tree { display:none; }.talent-planner .talent-tree.current-tree { display:block; }.talent-board { grid-template-rows:repeat(7,minmax(3.65rem,1fr)); max-height:none; }
  .talent-node { width:min(3.5rem,72%); }.talent-inspector { align-items:flex-start; }.talent-node[data-tooltip-open="true"] .talent-tooltip { display:none; }
}
@media (prefers-reduced-motion:no-preference) { .talent-node { transition:filter .12s ease,border-color .12s ease; } }

.page-talent main{padding-top:24px}.page-talent .page-top{margin-bottom:16px}.page-talent .page-top>nav{margin-bottom:12px}.page-talent .page-top h1{font:600 clamp(26px,3vw,34px)/1.2 var(--sans);letter-spacing:-.025em}.page-talent .talent-planner{margin-top:0}.talent-board{grid-template-rows:repeat(7,minmax(0,1fr));aspect-ratio:4/6;max-height:30rem}.talent-status:empty{display:none}.talent-status{margin:10px 0}.talent-trees{margin-top:14px}.talent-node[data-locked="false"]{border-color:#72a44f}.talent-node.has-ranks{border-color:#75b657;box-shadow:0 0 6px #75b65744,inset 0 0 0 1px #20331a}.talent-node.has-ranks .talent-rank{color:#9bdf79}.talent-node.maxed{border-color:#e0b34e;box-shadow:0 0 6px #e8ae3d55,inset 0 0 0 1px #fff0b4}.talent-node.maxed .talent-rank{color:#ffdc8e}.talent-node.has-ranks .talent-icon{filter:none}
@media(max-width:760px){.talent-board{grid-template-rows:repeat(7,minmax(3.6rem,1fr));max-height:none;aspect-ratio:4/6}.page-talent main{padding-top:20px}}
