:root { color-scheme:light; --ink:#17302f; --muted:#687c7a; --faint:#91a19f; --canvas:#edf3f1; --surface:#fff; --soft:#f5f9f7; --line:#d8e5e1; --deep:#102a2a; --accent:#087d68; --accent-dark:#056653; --accent-soft:#e1f3ed; --gold:#a66d1a; --gold-soft:#fff4df; --danger:#a33f38; --danger-soft:#fff0ee; font-family:Inter,"Microsoft YaHei","PingFang SC",system-ui,sans-serif; }
* { box-sizing:border-box; } [hidden] { display:none !important; }
html,body { min-width:320px; margin:0; background:var(--canvas); color:var(--ink); font-size:14px; line-height:1.5; }
button,a { -webkit-tap-highlight-color:transparent; } button { cursor:pointer; font:inherit; } a { color:inherit; } button:focus-visible,a:focus-visible { outline:3px solid rgba(22,127,203,.3); outline-offset:2px; }
.topbar { display:flex; align-items:center; gap:25px; min-height:70px; padding:11px max(20px,calc((100% - 1380px)/2)); color:#ecf7f4; background:var(--deep); border-bottom:3px solid var(--accent); }
.brand { display:inline-flex; align-items:center; gap:10px; min-width:210px; text-decoration:none; }.brand-mark { display:grid; grid-template-columns:1fr 1fr; width:38px; height:38px; overflow:hidden; border:1px solid #6ba99d; border-radius:7px; font-weight:800; line-height:1; }.brand-mark span { display:grid; place-items:center; }.brand-mark span+span { border-left:1px solid #6ba99d; color:#86d9be; }.brand-copy { display:grid; gap:0; }.brand-copy strong { font-size:14px; letter-spacing:.5px; }.brand-copy small { color:#a9c2bd; font-size:11px; }
.main-nav { display:flex; align-items:center; gap:4px; flex:1; }.main-nav a { padding:7px 10px; border-radius:4px; color:#b8ceca; font-size:13px; text-decoration:none; }.main-nav a:hover,.main-nav a.active { color:#f3fffb; background:#1d4542; }.version-badge { display:inline-flex; align-items:center; min-height:27px; padding:3px 9px; border:1px solid #426a65; border-radius:4px; color:#c8eee3; background:#17423f; font-size:11px; font-weight:800; white-space:nowrap; }
.page-shell { width:min(1380px,100%); margin:0 auto; padding:25px 20px 30px; }.rank-hero { display:flex; justify-content:space-between; align-items:end; gap:25px; padding:28px clamp(20px,4vw,45px); border:1px solid var(--line); background:var(--surface); box-shadow:0 12px 32px rgba(24,55,50,.07); }.eyebrow,.section-kicker { margin:0; color:var(--accent); font-size:10px; font-weight:850; letter-spacing:1.2px; } h1 { margin:5px 0 8px; color:var(--deep); font-size:clamp(26px,3vw,38px); line-height:1.2; } .lede { max-width:760px; margin:0; color:var(--muted); font-size:15px; }.hero-actions { display:flex; flex-wrap:wrap; gap:8px; align-items:center; justify-content:flex-end; }.outline-link,.refresh-button { min-height:38px; padding:7px 13px; border:1px solid #a9c8bf; border-radius:4px; color:var(--accent-dark); background:#fff; font-weight:750; text-decoration:none; }.outline-link:hover,.refresh-button:hover { background:var(--accent-soft); border-color:var(--accent); }.refresh-button { color:#fff; background:var(--accent); border-color:var(--accent); }.refresh-button:hover { color:#fff; background:var(--accent-dark); }
.notice { display:flex; gap:12px; align-items:flex-start; margin-top:15px; padding:12px 15px; border:1px solid var(--line); border-left:3px solid var(--accent); color:var(--muted); background:var(--surface); }.notice strong { display:block; color:var(--ink); }.notice p { margin:2px 0 0; font-size:12px; }.notice-mark { display:grid; place-items:center; flex:0 0 25px; width:25px; height:25px; border-radius:50%; color:var(--accent-dark); background:var(--accent-soft); font-weight:800; }.notice.error { border-left-color:var(--danger); background:var(--danger-soft); }.notice.error .notice-mark { color:var(--danger); background:#ffdcd8; }.notice.success .notice-mark { color:#fff; background:var(--accent); }
.metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1px; margin-top:15px; border:1px solid var(--line); background:var(--line); }.metric { min-width:0; padding:14px 16px; background:var(--surface); }.metric span,.metric small { display:block; color:var(--muted); font-size:11px; }.metric strong { display:block; margin:2px 0; overflow-wrap:anywhere; color:var(--deep); font-size:19px; font-variant-numeric:tabular-nums; }.metric small { color:var(--faint); }
.ranking-panel { margin-top:15px; padding:21px; border:1px solid var(--line); background:var(--surface); box-shadow:0 8px 22px rgba(24,55,50,.045); }.panel-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:12px; margin-bottom:14px; }.panel-heading h2 { margin:3px 0 0; color:var(--deep); font-size:19px; }.updated-label { color:var(--faint); font-size:11px; }.table-wrap { overflow-x:auto; border:1px solid var(--line); }.table-wrap table { width:100%; min-width:760px; border-collapse:collapse; font-size:12px; }.table-wrap th,.table-wrap td { padding:10px 11px; border-bottom:1px solid var(--line); text-align:left; vertical-align:middle; }.table-wrap th { color:var(--muted); background:var(--soft); font-weight:700; white-space:nowrap; }.table-wrap tr:last-child td { border-bottom:0; }.table-wrap tbody tr:hover { background:#fbfffd; }.rank-col { width:66px; text-align:center !important; }.rank-number { color:var(--accent-dark); font-size:15px; font-weight:850; font-variant-numeric:tabular-nums; }.character-cell strong { display:block; color:var(--deep); font-size:13px; }.character-cell small { color:var(--faint); }.score { color:var(--accent-dark); font-size:14px; font-weight:850; font-variant-numeric:tabular-nums; }.confidence { color:var(--muted); font-variant-numeric:tabular-nums; }.ranking-empty { display:grid; justify-items:center; padding:55px 20px; border:1px dashed var(--line); color:var(--muted); text-align:center; }.empty-icon { display:grid; place-items:center; width:46px; height:46px; margin-bottom:8px; border:1px solid #b8d9d0; border-radius:50%; color:var(--accent); background:var(--accent-soft); font-size:22px; }.ranking-empty h3 { margin:0 0 5px; color:var(--deep); font-size:17px; }.ranking-empty p { max-width:520px; margin:0; font-size:12px; }.footnote { margin:13px 0 0; color:var(--faint); font-size:11px; }.page-footer { display:flex; flex-wrap:wrap; gap:8px 20px; margin-top:20px; color:var(--faint); font-size:11px; }.page-footer a { margin-left:auto; color:var(--accent-dark); text-decoration:none; }.page-footer a:hover { text-decoration:underline; }.page-footer b { color:var(--muted); }
@media (max-width:900px) { .topbar { flex-wrap:wrap; gap:8px 15px; }.main-nav { order:3; flex-basis:100%; overflow:auto; }.rank-hero { align-items:flex-start; flex-direction:column; }.hero-actions { justify-content:flex-start; }.metrics { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:560px) { .page-shell { padding:14px 12px 24px; }.topbar { padding:10px 13px; }.brand { min-width:0; flex:1; }.version-badge { font-size:10px; }.rank-hero { padding:20px 16px; }.ranking-panel { padding:16px; }.main-nav a { padding-left:7px; padding-right:7px; }.page-footer a { margin-left:0; } }

/* Public ranking surface: classic game HUD styling, with no admin controls. */
body {
  --ink: #eff8ff;
  --muted: #93a9bf;
  --faint: #657d96;
  --canvas: #080e1b;
  --surface: #101d30;
  --soft: #14253b;
  --line: #294562;
  --deep: #eff8ff;
  --accent: #65f1cf;
  --accent-dark: #21b996;
  --accent-soft: #123d35;
  --gold: #ffc75d;
  --gold-soft: #3f3522;
  --danger: #ff8c83;
  --danger-soft: #3b2529;
  color: var(--ink);
  background: var(--canvas);
}
html { background: #080e1b; }
body::before { position: fixed; inset: 0; z-index: -1; opacity: .16; pointer-events: none; content: ""; background-size: 4px 4px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3E%3Cpath fill='%236a8aa7' fill-opacity='.22' d='M0 0h1v1H0zM2 2h1v1H2z'/%3E%3C/svg%3E"); }
.topbar { position: sticky; top: 0; z-index: 20; min-height: 74px; padding: 11px max(20px, calc((100% - 1240px) / 2)); border-bottom: 1px solid #294562; background: rgba(8,14,27,.96); box-shadow: 0 8px 30px rgba(0,0,0,.24); backdrop-filter: blur(14px); }
.brand { min-width: 230px; gap: 12px; }
.brand-mark { width: 44px; height: 44px; border: 2px solid #65f1cf; border-radius: 0; color: #65f1cf; background: #0e2430; clip-path: polygon(0 5px,5px 5px,5px 0,calc(100% - 5px) 0,calc(100% - 5px) 5px,100% 5px,100% calc(100% - 5px),calc(100% - 5px) calc(100% - 5px),calc(100% - 5px) 100%,5px 100%,5px calc(100% - 5px),0 calc(100% - 5px)); }
.brand-mark span+span { border-color: #3c6485; color: #ffc75d; }
.brand-copy strong { color: #eff8ff; font-size: 14px; letter-spacing: .14em; }
.brand-copy small { color: #93a9bf; }
.main-nav { gap: 4px; }
.main-nav a { position: relative; padding: 10px 13px; border: 1px solid transparent; border-radius: 0; color: #93a9bf; }
.main-nav a:hover, .main-nav a.active { border-color: #294562; color: #eff8ff; background: #12233a; }
.main-nav a.active::after { position: absolute; right: 12px; bottom: 4px; left: 12px; height: 2px; background: #65f1cf; content: ""; }
.version-badge { border-color: #37677a; border-radius: 0; color: #65f1cf; background: #102d39; }
.page-shell { width: min(1240px, calc(100% - 48px)); padding: 30px 0 42px; }
.rank-hero { padding: 34px 38px; border-color: #294562; background: #0e1b2c; box-shadow: 12px 14px 0 rgba(3,8,17,.3); }
.eyebrow, .section-kicker { color: #65f1cf; letter-spacing: .14em; }
h1 { color: #eff8ff; font-size: clamp(31px, 4vw, 52px); text-shadow: 4px 4px 0 #12243b; }
.lede { color: #93a9bf; line-height: 1.8; }
.outline-link, .refresh-button { border-color: #3c6485; border-radius: 0; color: #65f1cf; background: #12253b; }
.outline-link:hover, .refresh-button:hover { border-color: #65f1cf; color: #07131e; background: #65f1cf; }
.refresh-button { border-color: #65f1cf; color: #07131e; background: #65f1cf; }
.refresh-button:hover { border-color: #a2ffe8; background: #a2ffe8; }
.notice { border-color: #294562; border-left-color: #65f1cf; color: #93a9bf; background: #101d30; }
.notice strong { color: #eff8ff; }
.notice-mark { border-radius: 0; color: #07131e; background: #65f1cf; }
.notice.error { border-left-color: #ff8c83; background: #3b2529; }
.notice.error .notice-mark { color: #ff8c83; background: #542e35; }
.metrics { border-color: #294562; background: #294562; }
.metric { background: #101d30; }
.metric span, .metric small { color: #93a9bf; }
.metric strong { color: #ffc75d; }
.ranking-panel { border-color: #294562; background: #101d30; box-shadow: 8px 9px 0 rgba(3,8,17,.22); }
.panel-heading h2 { color: #eff8ff; }
.updated-label { color: #657d96; }
.table-wrap { border-color: #294562; }
.table-wrap th { color: #93a9bf; background: #14253b; }
.table-wrap td { border-color: #294562; color: #eff8ff; background: #101d30; }
.table-wrap tbody tr:hover td { background: #172d46; }
.rank-number, .score { color: #65f1cf; }
.character-cell strong { color: #eff8ff; }
.character-cell small, .confidence { color: #93a9bf; }
.ranking-empty { border-color: #3c6485; color: #93a9bf; background: #0e1b2c; }
.empty-icon { border-color: #3e806f; border-radius: 0; color: #65f1cf; background: #123d35; }
.ranking-empty h3 { color: #eff8ff; }
.footnote, .page-footer { color: #657d96; }
.page-footer a { color: #65f1cf; }

@media (max-width: 900px) {
  .page-shell { width: min(100% - 28px, 700px); }
  .rank-hero { padding: 25px 22px; }
}
@media (max-width: 560px) {
  .page-shell { width: calc(100% - 28px); padding-top: 18px; }
  .topbar { padding-inline: 14px; }
  .brand-copy strong { font-size: 12px; letter-spacing: .1em; }
  .brand-copy small { font-size: 10px; }
  .version-badge { display: none; }
  .main-nav a { padding-inline: 8px; }
  h1 { font-size: 33px; }
}

/* Shared cyber-cute identity; ranking data and interaction hooks stay unchanged. */
body.cyber-cute {
  color-scheme: dark;
  --ink: #f4f2fa;
  --muted: #c2bdcd;
  --faint: #92909f;
  --canvas: #121216;
  --surface: #1b1b23;
  --soft: #202029;
  --line: #35333e;
  --deep: #f4f2fa;
  --accent: #69ece5;
  --accent-dark: #69ece5;
  --accent-soft: #203335;
  --gold: #d8f58b;
  --gold-soft: #2b3124;
  --danger: #ff9fb4;
  --danger-soft: #2a2028;
  min-height: 100vh;
  color: var(--ink);
  background: var(--canvas);
  font-family: "Microsoft YaHei", "PingFang SC", system-ui, sans-serif;
  letter-spacing: 0;
}
body.cyber-cute::before { content: none; }
body.cyber-cute * { letter-spacing: 0; }
body.cyber-cute :is(button,a):focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; }
body.cyber-cute .topbar { gap: 26px; min-height: 76px; padding: 14px max(24px,calc((100% - 1220px)/2)); border-bottom: 1px solid var(--line); background: #101014; box-shadow: none; backdrop-filter: none; }
body.cyber-cute .brand { gap: 11px; min-width: 230px; }
body.cyber-cute .brand-mark { width: 36px; height: 38px; padding: 0 4px; border: 0; border-radius: 0; color: #35202d; background: #ff8ac5; clip-path: polygon(0 0,calc(100% - 7px) 0,100% 7px,100% 100%,7px 100%,0 calc(100% - 7px)); }
body.cyber-cute .brand-mark span+span { border: 0; color: inherit; }
body.cyber-cute .brand-copy { gap: 3px; }
body.cyber-cute .brand-copy strong { color: var(--ink); font-size: 14px; }
body.cyber-cute .brand-copy small { color: var(--faint); font-size: 10px; }
body.cyber-cute .main-nav { justify-content: center; gap: 4px; min-width: 0; }
body.cyber-cute .main-nav a { flex-shrink: 0; padding: 10px 11px; border: 0; color: var(--muted); background: transparent; font-size: 12px; }
body.cyber-cute .main-nav a:hover { color: var(--ink); background: var(--surface); }
body.cyber-cute .main-nav a.active { color: var(--accent); background: transparent; }
body.cyber-cute .main-nav a.active::after { right: 11px; bottom: -15px; left: 11px; height: 2px; background: var(--accent); }
body.cyber-cute .version-badge { gap: 6px; padding: 0; border: 0; color: var(--faint); background: transparent; font-size: 10px; }
body.cyber-cute .version-badge::before { width: 4px; height: 4px; background: var(--accent); content: ""; }
body.cyber-cute .page-shell { width: min(1220px,calc(100% - 48px)); padding: 44px 0 28px; }
body.cyber-cute .rank-hero { gap: 32px; padding: 0 0 28px; border: 0; border-bottom: 1px solid var(--line); background: transparent; box-shadow: none; }
body.cyber-cute .rank-hero > div:first-child { max-width: 720px; }
body.cyber-cute .eyebrow { display: flex; align-items: center; gap: 8px; color: var(--faint); font-size: 10px; }
body.cyber-cute .eyebrow::before { width: 6px; height: 6px; background: #ff8ac5; content: ""; }
body.cyber-cute h1 { margin: 12px 0; color: var(--ink); font-size: 34px; line-height: 1.35; text-shadow: none; }
body.cyber-cute .lede { max-width: 690px; color: var(--muted); font-size: 13px; line-height: 1.9; }
body.cyber-cute .hero-actions { flex: 0 0 auto; gap: 10px; }
body.cyber-cute :is(.outline-link,.refresh-button) { display: inline-flex; justify-content: center; align-items: center; min-height: 40px; padding: 9px 15px; border: 1px solid var(--line); border-radius: 4px; color: var(--muted); background: transparent; font-size: 12px; }
body.cyber-cute .outline-link:hover { color: var(--ink); border-color: #696473; background: var(--surface); }
body.cyber-cute .refresh-button { border-color: #a4f6f1; color: #122526; background: var(--accent); box-shadow: 0 2px 0 #377b78; }
body.cyber-cute .refresh-button:hover { border-color: #c4fff9; color: #122526; background: #a3f5ee; }
body.cyber-cute .notice { gap: 10px; margin-top: 20px; padding: 13px 15px; border-color: var(--line); border-left-color: var(--accent); border-radius: 0 4px 4px 0; color: var(--muted); background: var(--surface); }
body.cyber-cute .notice strong { color: var(--ink); font-size: 12px; }
body.cyber-cute .notice p { color: var(--muted); font-size: 12px; line-height: 1.8; }
body.cyber-cute .notice-mark { flex-basis: 24px; width: 24px; height: 24px; border-radius: 3px; color: var(--accent); background: var(--accent-soft); }
body.cyber-cute .notice.error { border-color: var(--line); border-left-color: var(--danger); background: #211c23; }
body.cyber-cute .notice.error .notice-mark { color: var(--danger); background: #3b2732; }
body.cyber-cute .notice.success .notice-mark { color: #122526; background: var(--accent); }
body.cyber-cute .metrics { gap: 0; margin-top: 22px; border: 0; border-block: 1px solid var(--line); background: transparent; }
body.cyber-cute .metric { position: relative; padding: 20px 24px; background: transparent; }
body.cyber-cute .metric:first-child { padding-left: 0; }
body.cyber-cute .metric + .metric { border-left: 1px solid var(--line); }
body.cyber-cute .metric span { color: var(--muted); font-size: 11px; }
body.cyber-cute .metric strong { margin: 6px 0 4px; color: var(--ink); font-size: 22px; }
body.cyber-cute .metric:nth-child(2) strong { color: #ff8ac5; }
body.cyber-cute .metric:nth-child(3) strong { color: var(--accent); }
body.cyber-cute .metric:nth-child(4) strong { color: #d8f58b; }
body.cyber-cute .metric small { color: var(--faint); }
body.cyber-cute .ranking-panel { margin-top: 28px; padding: 0; border: 0; background: transparent; box-shadow: none; }
body.cyber-cute .panel-heading { align-items: center; margin-bottom: 18px; }
body.cyber-cute .section-kicker { color: var(--accent); font-size: 10px; }
body.cyber-cute .panel-heading h2 { margin-top: 6px; color: var(--ink); font-size: 20px; }
body.cyber-cute .updated-label { color: var(--faint); text-align: right; }
body.cyber-cute .table-wrap { border-color: var(--line); border-radius: 4px; }
body.cyber-cute .table-wrap :is(th,td) { padding: 14px 16px; border-color: var(--line); }
body.cyber-cute .table-wrap th { color: var(--muted); background: #22212a; }
body.cyber-cute .table-wrap td { color: var(--ink); background: var(--surface); }
body.cyber-cute .table-wrap tbody tr:hover td { background: #25232e; }
body.cyber-cute :is(.rank-number,.score) { color: var(--accent); }
body.cyber-cute .table-wrap tbody tr:nth-child(-n+3) .rank-number { color: #ff8ac5; }
body.cyber-cute .character-cell strong { color: var(--ink); }
body.cyber-cute :is(.character-cell small,.confidence) { color: var(--muted); }
body.cyber-cute .ranking-empty { min-height: 250px; padding: 42px 20px; border: 1px solid var(--line); border-radius: 4px; color: var(--muted); background: var(--surface); }
body.cyber-cute .empty-icon { width: 42px; height: 42px; margin-bottom: 14px; border: 1px solid #665061; border-radius: 6px; color: #ff8ac5; background: #30232e; }
body.cyber-cute .ranking-empty h3 { margin-bottom: 9px; color: var(--ink); font-size: 16px; }
body.cyber-cute .ranking-empty p { max-width: 440px; line-height: 1.9; }
body.cyber-cute .footnote { margin-top: 14px; color: var(--faint); line-height: 1.8; }
body.cyber-cute .page-footer { justify-content: space-between; margin-top: 34px; padding-top: 18px; border-top: 1px solid var(--line); color: var(--faint); }
body.cyber-cute .page-footer a { color: var(--accent); }
@media (max-width: 1000px) {
  body.cyber-cute .topbar { flex-wrap: wrap; gap: 12px; }
  body.cyber-cute .brand { flex: 1; }
  body.cyber-cute .main-nav { order: 3; flex-basis: 100%; justify-content: flex-start; overflow-x: auto; }
  body.cyber-cute .main-nav a.active::after { bottom: 0; }
  body.cyber-cute .rank-hero { align-items: flex-start; flex-direction: column; gap: 20px; }
}
@media (max-width: 560px) {
  body.cyber-cute .topbar { min-height: 66px; padding: 12px 16px 7px; }
  body.cyber-cute .brand { min-width: 0; }
  body.cyber-cute .brand-copy strong { font-size: 13px; }
  body.cyber-cute .main-nav { gap: 0; }
  body.cyber-cute .main-nav a { padding: 10px 8px; font-size: 11px; }
  body.cyber-cute .page-shell { width: calc(100% - 32px); padding: 28px 0 24px; }
  body.cyber-cute h1 { font-size: 27px; }
  body.cyber-cute .rank-hero { padding-bottom: 24px; }
  body.cyber-cute .hero-actions { width: 100%; }
  body.cyber-cute .hero-actions > * { flex: 1; }
  body.cyber-cute .metrics { grid-template-columns: repeat(2,minmax(0,1fr)); }
  body.cyber-cute .metric { padding: 16px; }
  body.cyber-cute .metric:nth-child(odd) { padding-left: 0; border-left: 0; }
  body.cyber-cute .metric:nth-child(n+3) { border-top: 1px solid var(--line); }
  body.cyber-cute .metric strong { font-size: 20px; }
  body.cyber-cute .ranking-empty { min-height: 250px; padding: 34px 20px; }
  body.cyber-cute .panel-heading h2 { font-size: 18px; }
}

/* RELEASE BRAND IDENTITY */
body.cyber-cute .site-brand-mark,
body.cyber-cute .brand-mark,
.access-gate .brand-mark,
.ops-sidebar .brand-mark,
.brand .brand-mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 44px;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  clip-path: none;
  overflow: visible;
}
.site-brand-mark img,
.brand-mark img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}
body.cyber-cute .site-footer-brand .site-brand-mark.small {
  width: 38px;
  height: 38px;
  flex-basis: 38px;
}
@media (max-width: 600px) {
  body.cyber-cute .site-brand-mark,
  body.cyber-cute .brand-mark {
    width: 38px;
    height: 38px;
    flex-basis: 38px;
  }
}
