body:has(.skills-page){overflow:hidden;height:100dvh}.skills-page~.footer,body:has(.skills-page)>.ticker{display:none}body:has(.skills-page)>.topbar{position:relative;height:62px;min-height:62px}body:has(.skills-page) .topbar-inner{height:62px;max-width:none;padding:0 28px}.skills-page{position:relative;height:calc(100dvh - 62px);display:grid;grid-template-rows:80px minmax(0,1fr) 60px 28px;background:#091522;color:var(--paper);overflow:hidden}.game-hud{display:flex;align-items:center;justify-content:space-between;padding:0 30px;gap:20px;border-bottom:1px solid #ffffff0b;background:#0d1a28;z-index:3}.game-title .eyebrow{font:8px var(--mono);letter-spacing:.19em;color:#8599a7}.game-title h1{font-size:22px;letter-spacing:-.04em;margin:7px 0 0;font-weight:800}.game-title em{font-style:normal;color:var(--signal)}.hud-actions{display:flex;gap:10px;align-items:center}.hud-actions button,.map-dock button,.profile-tools button,.import-label{background:#132332;border:1px solid #ffffff17;color:var(--paper);font:10px var(--mono);padding:11px 14px;cursor:pointer}.hud-actions button:hover,.map-dock button:hover{border-color:#c8ff3d70}.hud-actions #openBelt{display:flex;gap:10px;align-items:center;background:transparent}#beltName{text-transform:uppercase;font-weight:600}#beltGlyph{border:1px solid #b4c3cf;padding:3px 7px}#rankProgress{font-size:9px;color:#8a9dad}.rank-divider{color:#42586a}.map-stage{position:relative;min-height:0;background:radial-gradient(ellipse at 30% 40%,#17384866,transparent 65%),radial-gradient(ellipse at 85% 80%,#263c2428,transparent 50%)}.tree-scroll{position:absolute;inset:0;overflow:hidden;cursor:grab;touch-action:none;outline:none;background-image:radial-gradient(#7696ad20 .7px,transparent .7px);background-size:24px 24px}.tree-scroll.dragging{cursor:grabbing}.tree-grid{position:absolute;left:0;top:0;width:1540px;height:600px;transform-origin:0 0;will-change:transform;user-select:none}.map-track{position:absolute;top:10px;width:220px;text-align:center;color:var(--path-color)}.track-number{font:8px var(--mono);opacity:.55;letter-spacing:.15em}.map-track h2{font:600 15px var(--font);text-transform:uppercase;letter-spacing:.14em;margin:7px 0}.map-track small{font:8px var(--mono);color:#7c90a0}.track-rule{width:30px;height:1px;background:var(--path-color);opacity:.35;margin:6px auto}.skill-node{position:absolute;width:100px;height:63px;display:flex;flex-direction:column;align-items:center;border:0;background:none;padding:0;cursor:pointer;color:#a9bac8;z-index:1;transition:opacity .2s}.node-orb{position:relative;display:grid;place-items:center;width:32px;height:32px;flex-shrink:0;background:#0c1b2a;border:1px solid #405466;border-radius:50%;transition:box-shadow .15s,background .15s}.node-orb svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}.node-orb.capstone{border-radius:11px;outline:1px solid #ffffff0b;outline-offset:4px}.node-state{position:absolute;bottom:-4px;right:-4px;border-radius:50%;background:#0b1724;font:9px var(--mono);padding:1px 2px}.skill-node strong{font:500 11px var(--font);max-width:98px;line-height:1.1;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-top:5px;text-align:center;text-shadow:0 1px 4px #091522,0 0 6px #091522}.node-status{display:none}.skill-node[data-status=available]{color:var(--path-color)}.skill-node[data-status=available] .node-orb{border-color:var(--path-color);box-shadow:0 0 16px color-mix(in srgb,var(--path-color) 13%,transparent)}.skill-node[data-status=earned]{color:var(--path-color)}.skill-node[data-status=earned] .node-orb{border-color:var(--path-color);background:color-mix(in srgb,var(--path-color) 20%,#0b1927)}.skill-node.selected .node-orb{outline:1.5px solid #f0f6fa;outline-offset:4px;box-shadow:0 0 24px color-mix(in srgb,var(--path-color) 25%,transparent)}.skill-node.selected strong,.skill-node:hover strong{color:#fff}.skill-node:hover .node-orb{border-color:#fff}.skill-node.is-goal strong:before{content:"◎ ";color:var(--signal)}.skill-node.dimmed{opacity:.12}.skill-node.focused-path .node-orb:before{content:"";position:absolute;top:-6px;width:3px;height:3px;background:var(--path-color);border-radius:50%}.skill-edges{position:absolute;inset:0;width:1540px;height:600px;pointer-events:none}.skill-edges path{fill:none;stroke-width:1;opacity:.22}.skill-edges .cross-edge{opacity:0}.skill-edges .alternative{stroke-dasharray:3 4}.skill-edges .route-edge{opacity:.85;stroke-width:1.5}.skill-edges .dim-edge{opacity:.025}.map-caption{position:absolute;bottom:18px;left:28px;pointer-events:none;display:flex;flex-direction:column;gap:6px;color:#567082;font:8px var(--mono);letter-spacing:.16em}.map-caption small{font-size:8px;letter-spacing:0;color:#40586a}.map-dock{display:flex;align-items:center;gap:12px;padding:0 24px;border-top:1px solid #ffffff12;background:#101e2b;z-index:3}.dock-search{display:flex;align-items:center;border:1px solid #ffffff17;background:#0a1724;padding-left:10px}.dock-search>span{color:#88a2b4;font-size:21px}.dock-search input,.dock-search select{background:transparent;border:0;color:#c6d2db;outline:none;font:11px var(--font);padding:10px;width:150px}.dock-search select{width:120px;border-left:1px solid #ffffff17;color-scheme:dark}.zoom-controls{display:flex;align-items:center;border:1px solid #ffffff17}.zoom-controls button{border:0;background:transparent;font-size:16px;padding:7px 12px}.zoom-controls #zoomFit{font:10px var(--mono);border-left:1px solid #ffffff17;padding:12px}.zoom-controls span{font:9px var(--mono);width:35px;text-align:center;color:#8ca0af}.map-dock #routeToggle[aria-pressed=true]{color:var(--signal);border-color:#c8ff3d70}.map-hint{margin-left:auto;font:9px var(--mono);color:#617b8d}.game-status{display:flex;justify-content:space-between;padding:6px 26px;gap:20px;background:#0a1622;color:#627d90;font:8px var(--mono);z-index:3}.game-status b{font-weight:400;color:#adc0ce;margin:0 10px}.game-status em{font-style:normal;color:var(--signal)}.profile-tools{position:absolute;right:26px;bottom:100px;display:flex;gap:5px;z-index:2}.profile-tools button,.import-label{font-size:8px;background:#0d1c29aa;padding:7px 10px;color:#819aab}.import-label{position:relative}.import-label input{position:absolute;inset:0;opacity:0;width:100%;cursor:pointer}.skill-detail,.build-panel,.belt-section{position:absolute;z-index:6;background:#102130f5;backdrop-filter:blur(20px);border:1px solid #4c657a65;box-shadow:0 20px 70px #0007;padding:26px;overflow:auto;scrollbar-width:thin;scrollbar-color:#385063 transparent}.skill-detail{top:12px;right:16px;width:300px;max-height:calc(100% - 24px);border-top:2px solid var(--signal)}.panel-close{position:absolute;right:10px;top:8px;width:28px;height:28px;background:transparent;border:0;color:#91a7b7;font-size:24px;cursor:pointer}.skill-detail .eyebrow{font-size:8px;color:#92acbd}.skill-detail h2{font-size:26px;line-height:1.05;margin:18px 0 12px;letter-spacing:-.03em}.detail-status{font:9px var(--mono);color:var(--signal)}.skill-detail p{font-size:12px;color:#a9bdcc;line-height:1.65}.skill-detail h3{font:9px var(--mono);text-transform:uppercase;color:#67859a;margin:22px 0 10px}.skill-detail a{color:var(--signal);font-size:11px}.prereq{display:block;background:transparent;color:#a9bdcc;border:0;border-bottom:1px solid #ffffff0a;text-align:left;padding:7px 0;font-size:11px;cursor:pointer}.secondary,.primary{display:block;width:100%;padding:11px;margin-top:16px;border:1px solid #ffffff20;color:#d2dfe8;background:transparent;cursor:pointer;font-size:11px}.primary{background:var(--signal);color:#0b1723;font-weight:700;border-color:var(--signal)}.primary:disabled{background:#203343;color:#6f879a;border-color:#2a4052;cursor:not-allowed}.skill-detail label{display:block;font-size:10px;color:#839caf;margin:14px 0 6px}.skill-detail input,.skill-detail textarea{width:100%;padding:8px;background:#0b1927;border:1px solid #ffffff16;color:#cbd8e2;color-scheme:dark;font:11px var(--font)}.skill-detail textarea{min-height:60px;resize:vertical}.skill-detail .detail-foot{font-size:9px;color:#668297}#prerequisites{font-size:11px;color:#91a9ba}#undoConfirm{border:1px solid #ff8f5f;padding:10px;margin-top:12px}.build-panel{top:72px;right:24px;width:460px;max-height:calc(100% - 100px)}.build-panel h3{font-size:23px;max-width:340px;line-height:1.1}.build-panel p{font-size:12px;color:#9cb3c3;line-height:1.6}.build-options{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.build-options button{background:#0a1926;border:1px solid #ffffff16;color:var(--paper);padding:14px 5px;cursor:pointer;font-size:11px}.build-options small{display:block;font:8px var(--mono);margin-top:8px;color:#688499}.build-options button[aria-pressed=true]{border-color:var(--path-color);box-shadow:inset 0 2px var(--path-color)}.build-options button[aria-pressed=true] small{color:var(--path-color)}.focus-next{display:flex;flex-wrap:wrap;gap:9px;margin:16px 0}.focus-next button{background:none;border:0;color:var(--signal);font-size:11px;cursor:pointer;padding:0}#buildSummary{font:10px var(--mono);line-height:1.6}.belt-section{top:72px;right:24px;width:510px;max-height:calc(100% - 100px)}.belt-section h2{font-size:28px;line-height:1.05}.belt-scale{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.belt-scale strong{font-size:12px}.belt-scale p,.storage-note{font-size:10px;color:#839eaf;line-height:1.6}.belt-swatch{height:3px;width:30px;display:block;margin-bottom:10px;background:#eee}.swatch-yellow{background:#ffdd59}.swatch-green{background:var(--signal)}.swatch-blue{background:#77c8ff}.swatch-brown{background:#c39570}.swatch-black{background:#02070a;outline:1px solid #718b9d}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}[hidden]{display:none!important}.skills-page button:focus-visible,.skills-page a:focus-visible,.skills-page input:focus-visible,.skills-page select:focus-visible,.tree-scroll:focus-visible{outline:2px solid var(--signal);outline-offset:3px}@media(max-width:900px){.map-hint{display:none}.game-title h1{font-size:18px}.hud-actions #rankProgress,.rank-divider{display:none}.game-hud{padding:0 18px}.map-dock{gap:8px;padding:0 12px}}@media(max-width:600px){body:has(.skills-page) .topbar-inner{padding:0 12px}body:has(.skills-page) .topnav{gap:10px;font-size:9px}.skills-page{grid-template-rows:76px minmax(0,1fr) 96px 30px}.game-hud{padding:10px 14px;gap:8px}.game-title h1{font-size:15px}.game-title .eyebrow{font-size:6px}.hud-actions{gap:5px;flex-direction:column;align-items:stretch}.hud-actions button{padding:6px 8px;font-size:8px}.hud-actions #openBelt{gap:5px}.hud-actions #beltGlyph{display:none}.map-dock{flex-wrap:wrap;justify-content:space-between;align-content:center;gap:8px}.dock-search{width:100%}.dock-search input{flex:1;width:80px}.dock-search select{width:130px}.map-dock>button{padding:8px 12px}.zoom-controls button{padding:4px 10px}.zoom-controls #zoomFit{padding:8px}.game-status{font-size:7px;padding:5px 12px}.game-status>span:last-child{display:none}.profile-tools{right:12px;bottom:138px}.map-caption{left:14px;font-size:7px;bottom:15px}.map-caption small{display:none}.skill-detail{top:8px;right:8px;width:min(300px,calc(100% - 16px));max-height:calc(100% - 16px);padding:23px}.build-panel,.belt-section{top:72px;right:8px;width:calc(100% - 16px);max-height:calc(100% - 90px)}.belt-scale{gap:12px}}@media(prefers-reduced-motion:reduce){.skill-node,.node-orb{transition:none}}body:has(.skills-page) astro-dev-toolbar{display:none}
