:root{--g9-bg:#0a101f;--g9-bg-deep:#070c16;--g9-panel:#101a2e;--g9-panel-2:#0d1526;--g9-line:rgba(148,163,184,0.16);--g9-line-strong:rgba(148,163,184,0.32);--g9-ink:#e7ecf5;--g9-muted:#9aa8bd;--g9-gold:#f2b84b;--g9-gold-dim:rgba(242,184,75,0.16);--g9-teal:#35d0ba;--g9-coral:#fb7185;--g9-indigo:#8b95f6;--g9-font-display:"Noto Serif SC","Source Han Serif SC","Songti SC","STSong","SimSun",serif;--g9-font-body:"Noto Sans SC","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif}.g9-root{min-height:100vh;background:radial-gradient(1200px 500px at 85% -10%,rgba(139,149,246,.12),transparent 60%),radial-gradient(900px 420px at -10% 110%,rgba(53,208,186,.08),transparent 55%),linear-gradient(180deg,var(--g9-bg),var(--g9-bg-deep));color:var(--g9-ink);font-family:var(--g9-font-body)}.g9-root a{color:inherit;text-decoration:none}.g9-display{font-family:var(--g9-font-display);letter-spacing:.04em}.g9-muted{color:var(--g9-muted)}.g9-panel{border:1px solid var(--g9-line);border-radius:14px;box-shadow:0 10px 32px rgba(2,6,16,.45)}.g9-card,.g9-panel{background:linear-gradient(180deg,var(--g9-panel),var(--g9-panel-2))}.g9-card{border:1px solid var(--g9-line);border-left:3px solid var(--g9-line-strong);border-radius:10px;padding:14px 16px;transition:border-color .16s ease,transform .16s ease}.g9-card:hover{border-color:var(--g9-line-strong);transform:translateY(-1px)}.g9-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;min-width:44px;padding:8px 16px;border-radius:10px;border:1px solid var(--g9-line-strong);background:rgba(148,163,184,.06);color:var(--g9-ink);font-size:15px;cursor:pointer;transition:background .14s ease,border-color .14s ease}.g9-btn:focus-visible,.g9-btn:hover{background:rgba(148,163,184,.14);border-color:var(--g9-gold);outline:2px solid rgba(242,184,75,.5);outline-offset:2px}.g9-btn-primary{background:linear-gradient(180deg,var(--g9-gold),#d99c2d);border-color:#f2b84b;color:#241503;font-weight:600}.g9-btn-primary:focus-visible,.g9-btn-primary:hover{background:linear-gradient(180deg,#ffc85e,#e6a935);border-color:#ffd98a;outline-color:rgba(242,184,75,.7)}.g9-btn[disabled]{opacity:.45;cursor:not-allowed;transform:none}.g9-badge{gap:4px;border-radius:999px;padding:2px 10px;font-size:12px;border:1px solid var(--g9-line);background:rgba(148,163,184,.08)}.g9-badge,.g9-hex{display:inline-flex;align-items:center}.g9-hex{justify-content:center;width:54px;height:60px;clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);background:linear-gradient(160deg,rgba(53,208,186,.22),rgba(139,149,246,.18));border:1px solid var(--g9-line-strong);font-size:24px}.g9-state-unassessed{color:var(--g9-muted)}.g9-state-developing{color:var(--g9-gold)}.g9-state-proficient{color:var(--g9-teal)}.g9-state-transfer{color:var(--g9-indigo)}.g9-map-link{display:flex;flex-direction:column;align-items:center;gap:6px;padding:8px;border-radius:12px;transition:transform .16s ease,box-shadow .16s ease}.g9-map-link:focus-visible,.g9-map-link:hover{transform:translateY(-3px);outline:2px solid rgba(242,184,75,.5);outline-offset:2px}.g9-progress-track{height:8px;border-radius:999px;background:rgba(148,163,184,.14);overflow:hidden}.g9-progress-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--g9-teal),var(--g9-gold));transition:width .3s ease}.g9-option{display:flex;align-items:flex-start;gap:10px;width:100%;min-height:48px;padding:10px 14px;text-align:left;border:1px solid var(--g9-line);border-radius:10px;background:rgba(148,163,184,.05);color:var(--g9-ink);cursor:pointer;transition:border-color .14s ease,background .14s ease}.g9-option:focus-visible,.g9-option:hover{border-color:var(--g9-gold);outline:2px solid rgba(242,184,75,.35);outline-offset:1px}.g9-option[aria-pressed=true]{border-color:var(--g9-teal);background:rgba(53,208,186,.1)}.g9-option-correct{border-color:var(--g9-teal)!important;background:rgba(53,208,186,.12)!important}.g9-option-wrong{border-color:var(--g9-coral)!important;background:rgba(251,113,133,.1)!important}.g9-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--g9-line);border-radius:8px;padding:8px 12px;background:rgba(148,163,184,.06);cursor:grab;-webkit-user-select:none;-moz-user-select:none;user-select:none}.g9-chip[aria-pressed=true]{border-color:var(--g9-teal);background:rgba(53,208,186,.12)}.g9-chip[aria-disabled=true]{opacity:.5;cursor:default}.g9-feedback{border-radius:10px;padding:12px 14px;border:1px solid var(--g9-line)}.g9-feedback-correct{border-color:rgba(53,208,186,.5);background:rgba(53,208,186,.08)}.g9-feedback-wrong{border-color:rgba(251,113,133,.5);background:rgba(251,113,133,.08)}.g9-rubric-row{border:1px solid var(--g9-line);border-radius:10px;padding:12px}.g9-rubric-level{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--g9-line);border-radius:999px;padding:4px 10px;font-size:13px;cursor:pointer;background:transparent;color:var(--g9-ink)}.g9-rubric-level[aria-pressed=true]{border-color:var(--g9-gold);background:var(--g9-gold-dim)}.g9-legend{display:flex;flex-wrap:wrap;gap:8px 16px;font-size:13px;color:var(--g9-muted)}.g9-table{width:100%;border-collapse:collapse;font-size:14px}.g9-table td,.g9-table th{text-align:left;padding:8px 10px;border-bottom:1px solid var(--g9-line);vertical-align:top}.g9-table th{color:var(--g9-muted);font-weight:500;white-space:nowrap}.g9-input,.g9-select{min-height:44px;border-radius:10px;border:1px solid var(--g9-line-strong);background:rgba(7,12,22,.6);color:var(--g9-ink);padding:8px 12px;font-size:15px;width:100%}.g9-input:focus-visible,.g9-select:focus-visible{outline:2px solid rgba(242,184,75,.5);outline-offset:1px;border-color:var(--g9-gold)}.g9-nav{position:sticky;top:0;z-index:40;backdrop-filter:blur(10px);background:rgba(7,12,22,.82);border-bottom:1px solid var(--g9-line)}.g9-nav a[aria-current=page]{color:var(--g9-gold)}.g9-timer{font-variant-numeric:tabular-nums;letter-spacing:.08em}.g9-visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}@media (prefers-reduced-motion:reduce){.g9-root *,.g9-root :after,.g9-root :before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@media (max-width:640px){.g9-table{font-size:13px}.g9-table td,.g9-table th{padding:6px 8px}}