/* /abilities/ 能力星图 —— 照原型 v2。整页只做夜空一种主题；不用境外字体，系统字体兜底。 */
.gm-atlas{
  color-scheme:dark;
  --sky0:#060816; --sky1:#0d1433; --sky2:#1a2350;
  --star:#fff6e0; --gold:#e9c98a; --mist:#9fb0d8; --dim:#5d6a92; --rule:rgba(159,176,216,.16);
  --display:"Songti SC","STSong","Noto Serif CJK SC","Source Han Serif SC","SimSun",serif;
  --body:"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans CJK SC",system-ui,sans-serif;
  --mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;
  margin:0;background:var(--sky0);color:var(--star);font-family:var(--body);font-size:14px;line-height:1.65;-webkit-font-smoothing:antialiased;
  padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)
}
.gm-atlas *{box-sizing:border-box}
.gm-atlas a{color:inherit}
.gm-atlas .sky{position:relative;background:
  radial-gradient(ellipse 60% 35% at 55% 48%,rgba(120,110,200,.18),transparent 70%),
  radial-gradient(ellipse 120% 80% at 50% 0%,var(--sky2),var(--sky1) 45%,var(--sky0) 100%);overflow:hidden}
.gm-atlas .sky-inner{max-width:1400px;margin:0 auto;padding-block:22px 8px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.gm-atlas .back{display:inline-block;font-size:13px;color:var(--dim);text-decoration:none;margin-bottom:14px;letter-spacing:.05em}
.gm-atlas .back:hover{color:var(--gold)}
.gm-atlas header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:18px}
.gm-atlas .eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:.22em;color:var(--dim);text-transform:uppercase}
.gm-atlas h1{font-family:var(--display);font-weight:900;font-size:clamp(32px,5vw,58px);line-height:1.1;margin:6px 0 0;letter-spacing:.06em;color:var(--star);text-shadow:0 0 30px rgba(233,201,138,.25)}
.gm-atlas h1 small{font-weight:400;font-size:.42em;color:var(--gold);letter-spacing:.2em;margin-left:.4em}
.gm-atlas .sub{color:var(--mist);margin:8px 0 0;max-width:46ch;font-size:15px}
.gm-atlas .counts{display:flex;gap:28px;font-variant-numeric:tabular-nums}
.gm-atlas .counts div{display:grid}
.gm-atlas .counts b{font-family:var(--display);font-weight:600;font-size:30px;color:var(--gold);line-height:1.1}
.gm-atlas .counts span{font-size:12px;color:var(--dim);letter-spacing:.1em}
.gm-atlas .chart{position:relative;margin-top:8px}
.gm-atlas svg{display:block;width:100%;height:auto;max-width:100%}
.gm-atlas .grid line,.gm-atlas .grid circle{stroke:var(--rule);fill:none}
.gm-atlas .grid text{fill:var(--dim);font-family:var(--mono);font-size:11px}
.gm-atlas .con{cursor:pointer;transition:opacity .5s}
.gm-atlas .con.off{opacity:.38}
.gm-atlas .con .ln{stroke:var(--mist);stroke-width:1;opacity:.35;transition:opacity .4s,stroke .4s}
.gm-atlas .con.on .ln{stroke:var(--gold);opacity:.75}
.gm-atlas .con .nm{font-family:var(--display);font-size:26px;font-weight:600;fill:var(--mist);letter-spacing:.18em;transition:fill .4s}
.gm-atlas .con.on .nm,.gm-atlas .con:hover .nm{fill:var(--gold)}
.gm-atlas .con .lb{font-family:var(--body);font-size:15px;fill:var(--star);opacity:0;transition:opacity .4s;pointer-events:none}
.gm-atlas .con.on .lb{opacity:.92}
.gm-atlas .con:focus{outline:none}.gm-atlas .con:focus-visible .nm{text-decoration:underline}
.gm-atlas .s{fill:var(--star)}
.gm-atlas .tw{animation:gmtw var(--d,4s) ease-in-out infinite;animation-delay:var(--o,0s)}
@keyframes gmtw{0%,100%{opacity:1}50%{opacity:.45}}
.gm-atlas .halo{fill:url(#gmHalo)}
@media (max-width:700px){.gm-atlas .con .lb{display:none}.gm-atlas .con .nm{font-size:34px}}
.gm-atlas .nav{display:flex;flex-wrap:wrap;gap:6px 18px;justify-content:center;padding-block:4px 26px}
.gm-atlas .nav button{background:none;border:0;color:var(--dim);font:inherit;font-family:var(--display);font-size:15px;letter-spacing:.12em;cursor:pointer;padding:4px 2px;border-bottom:1px solid transparent}
.gm-atlas .nav button[aria-current="true"]{color:var(--gold);border-color:var(--gold)}
.gm-atlas .nav button:hover{color:var(--star)}
.gm-atlas .nav button:focus-visible{outline:1px solid var(--gold);outline-offset:3px}
.gm-atlas .cat{max-width:1100px;margin:0 auto;padding-block:36px 56px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));display:grid;gap:22px}
.gm-atlas .cat-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;border-bottom:1px solid var(--rule);padding-bottom:16px}
.gm-atlas .cat-head h2{font-family:var(--display);font-weight:900;font-size:clamp(26px,3.4vw,38px);margin:0;letter-spacing:.12em;color:var(--star)}
.gm-atlas .cat-head p{margin:2px 0 0;color:var(--mist)}
.gm-atlas .mags{display:flex;flex-wrap:wrap;gap:8px}
.gm-atlas .mag{background:none;border:1px solid var(--rule);color:var(--mist);border-radius:999px;padding:5px 13px;font:inherit;font-size:13px;cursor:pointer;display:inline-flex;align-items:center;gap:8px}
.gm-atlas .mag[aria-pressed="true"]{border-color:var(--gold);color:var(--star)}
.gm-atlas .mag:focus-visible{outline:1px solid var(--gold);outline-offset:2px}
.gm-atlas .mag i,.gm-atlas td.mg i{display:inline-block;border-radius:50%;background:var(--star)}
.gm-atlas .mag i.hollow,.gm-atlas td.mg i.hollow{background:none;box-shadow:inset 0 0 0 1px var(--mist)}
.gm-atlas .tbl{overflow-x:auto}
.gm-atlas table{width:100%;border-collapse:collapse;font-size:14px}
.gm-atlas th{font-family:var(--mono);font-weight:400;font-size:11px;letter-spacing:.16em;color:var(--dim);text-align:left;padding:0 12px 10px 0;text-transform:uppercase}
.gm-atlas td{padding:13px 12px 13px 0;border-top:1px solid var(--rule);vertical-align:top}
.gm-atlas td.no{font-family:var(--mono);color:var(--dim);font-size:12px;white-space:nowrap;padding-top:15px}
.gm-atlas td.nm{font-family:var(--display);font-weight:600;font-size:16px;white-space:nowrap}
.gm-atlas td.nm a{text-decoration:none;border-bottom:1px solid var(--rule)}
.gm-atlas td.nm a:hover{color:var(--gold);border-color:var(--gold)}
.gm-atlas td.mg{white-space:nowrap;color:var(--mist);font-size:13px}
.gm-atlas td.mg i{vertical-align:middle;margin-right:7px}
.gm-atlas td.ds{color:var(--mist);min-width:16em}
.gm-atlas td.ds code{font-family:var(--mono);font-size:12px;color:var(--gold)}
.gm-atlas .tag{font-size:11px;color:var(--dim);border:1px solid var(--rule);border-radius:4px;padding:0 5px;margin-left:6px;white-space:nowrap}
.gm-atlas tr.hl td{background:rgba(233,201,138,.06)}
.gm-atlas .foot{font-size:13px;color:var(--dim);border-top:1px dashed var(--rule);padding-top:16px;display:grid;gap:6px;max-width:80ch}
.gm-atlas .foot b{color:var(--mist);font-weight:500}
.gm-atlas .foot code{font-family:var(--mono);color:var(--gold)}
@media (prefers-reduced-motion:reduce){.gm-atlas *{animation:none!important;transition:none!important}}
