.game-root{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#06080f;color:#e9e7df;font-family:Inter,PingFang SC,Microsoft YaHei,system-ui,sans-serif;overflow:hidden}.game-root button{font-family:inherit}.game-root{--bg0: #06080f;--bg1: #0b0e1a;--panel: rgba(13, 17, 30, .88);--panel-border: rgba(255, 255, 255, .09);--text: #e9e7df;--muted: #98a0b3;--dim: #6b7288;--gold: #d8b36a;--gold-soft: rgba(216, 179, 106, .16);--teal: #57c8b4;--teal-soft: rgba(87, 200, 180, .14);--red: #e06a55;--red-soft: rgba(224, 106, 85, .14);--violet: #8d7ae0;--font-body: "Inter", "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;--font-display: "Cinzel", "Times New Roman", serif;--radius: 12px;--shadow: 0 18px 48px rgba(0, 0, 0, .5)}.game-root .app{position:fixed;top:0;right:0;bottom:0;left:0}.game-root .game-canvas{position:absolute;top:0;right:0;bottom:0;left:0}.game-root .game-canvas canvas{display:block}.game-root .vignette{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(ellipse at center,transparent 52%,rgba(4,6,12,.55) 100%);z-index:5}.game-root .overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;pointer-events:none;font-size:14px}.game-root .overlay>*{pointer-events:auto}.game-root .panel{background:var(--panel);border:1px solid var(--panel-border);border-radius:var(--radius);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.game-root .btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--panel-border);background:#ffffff0a;color:var(--text);font-family:var(--font-body);font-size:14px;padding:10px 18px;border-radius:9px;cursor:pointer;transition:border-color .15s,background .15s,transform .12s,color .15s;letter-spacing:.02em}.game-root .btn:hover:not(:disabled){border-color:#ffffff40;transform:translateY(-1px)}.game-root .btn:active:not(:disabled){transform:translateY(0)}.game-root .btn:disabled{opacity:.4;cursor:not-allowed}.game-root .btn-primary{border-color:#d8b36a8c;color:var(--gold);background:var(--gold-soft)}.game-root .btn-primary:hover:not(:disabled){background:#d8b36a42;border-color:var(--gold)}.game-root .btn-ghost{background:transparent;color:var(--muted)}.game-root .btn-ghost:hover:not(:disabled){color:var(--text)}.game-root .btn-lg{font-size:17px;padding:14px 44px;letter-spacing:.14em}.game-root .btn-sm{font-size:12.5px;padding:6px 12px}.game-root .btn-block{width:100%;margin-top:14px}.game-root .icon-btn{background:none;border:none;color:var(--muted);font-size:15px;cursor:pointer;padding:4px 8px;border-radius:6px}.game-root .icon-btn:hover{color:var(--text);background:#ffffff0f}.game-root .badge{display:inline-block;font-size:11px;letter-spacing:.18em;padding:3px 10px;border-radius:999px;border:1px solid}.game-root .badge-normal{color:var(--teal);border-color:#57c8b480;background:var(--teal-soft)}.game-root .badge-elite{color:var(--violet);border-color:#8d7ae080;background:#8d7ae024}.game-root .badge-boss{color:#ff9a85;border-color:#e06a5599;background:var(--red-soft)}.game-root .landing{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:radial-gradient(1200px 500px at 50% -10%,rgba(140,190,110,.1),transparent 60%),radial-gradient(900px 500px at 80% 110%,rgba(216,179,106,.07),transparent 60%),linear-gradient(180deg,#0a0f0a,#101a12 55%,#0a0d09);z-index:40;animation:landing-in .7s ease both}@keyframes landing-in{0%{opacity:0}to{opacity:1}}.game-root .landing-rune{position:absolute;width:560px;height:560px;border:1px solid rgba(216,179,106,.16);border-radius:50%;animation:rune-spin 46s linear infinite}.game-root .landing-rune:before{content:"";position:absolute;top:44px;right:44px;bottom:44px;left:44px;border:1px dashed rgba(216,179,106,.12);border-radius:50%}.game-root .landing-rune:after{content:"";position:absolute;top:120px;right:120px;bottom:120px;left:120px;border:1px solid rgba(87,200,180,.1);border-radius:50%}@keyframes rune-spin{to{transform:rotate(360deg)}}.game-root .landing-inner{position:relative;text-align:center;max-width:640px;padding:0 24px}.game-root .landing-overline{font-size:12px;letter-spacing:.5em;color:var(--dim);margin-bottom:26px}.game-root .landing-title{font-family:var(--font-display);font-weight:700;font-size:64px;margin:0 0 10px;color:var(--text);text-shadow:0 4px 40px rgba(216,179,106,.18);letter-spacing:.04em}.game-root .landing-sub{color:var(--gold);font-size:17px;margin:0 0 18px;letter-spacing:.35em}.game-root .landing-desc{color:var(--muted);font-size:14px;line-height:1.8;margin:0 auto 40px;max-width:480px}.game-root .landing-reset{display:block;margin:18px auto 0}.game-root .landing-foot{margin-top:56px;font-size:12px;color:var(--dim);letter-spacing:.08em}.game-root .hud{position:absolute;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;padding:14px 22px;pointer-events:none}.game-root .hud-left,.game-root .hud-right{display:flex;align-items:center;gap:10px;pointer-events:auto}.game-root .hud-glyph{width:10px;height:10px;background:var(--gold);transform:rotate(45deg);box-shadow:0 0 12px #d8b36ab3}.game-root .hud-world{font-family:var(--font-display);font-size:15px;letter-spacing:.12em;color:var(--text)}.game-root .hud-sub{font-size:12px;color:var(--dim);margin-left:2px}.game-root .hud-chip{font-size:12px;color:var(--muted);border:1px solid var(--panel-border);background:#0a0e1ab3;border-radius:999px;padding:4px 12px}.game-root .hud-xp{color:var(--gold);border-color:#d8b36a59}.game-root .xp-glyph{font-size:9px}.game-root .hud-btn{font-size:12px;color:var(--muted);background:#0a0e1ab3;border:1px solid var(--panel-border);border-radius:999px;padding:4px 12px;cursor:pointer}.game-root .hud-btn:hover{color:var(--text);border-color:#ffffff40}.game-root .level-panel{position:absolute;right:34px;top:50%;transform:translateY(-50%);width:340px;padding:20px 22px;animation:slide-in .25s ease both}@keyframes slide-in{0%{opacity:0;transform:translateY(-50%) translate(24px)}to{opacity:1;transform:translateY(-50%) translate(0)}}.game-root .panel-head{display:flex;align-items:center;gap:10px}.game-root .panel-head .icon-btn{margin-left:auto}.game-root .diff-pips{display:inline-flex;gap:4px}.game-root .pip{width:6px;height:6px;background:var(--gold);transform:rotate(45deg);opacity:.85}.game-root .level-name{font-family:var(--font-display);font-size:24px;margin:14px 0 6px;letter-spacing:.03em}.game-root .level-desc{color:var(--muted);font-size:13px;line-height:1.7;margin:0 0 16px}.game-root .level-enemy{display:flex;align-items:baseline;gap:8px;padding:10px 12px;background:#ffffff08;border:1px solid var(--panel-border);border-radius:8px;margin-bottom:14px}.game-root .enemy-label{font-size:11px;color:var(--dim);letter-spacing:.2em}.game-root .enemy-name{font-size:15px;font-weight:600}.game-root .enemy-title{font-size:12px;color:var(--muted)}.game-root .rule-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}.game-root .rule-item{display:flex;justify-content:space-between;align-items:baseline;font-size:12.5px;padding:7px 10px;background:#ffffff08;border-radius:7px}.game-root .rule-item em{font-style:normal;color:var(--dim)}.game-root .rule-item b{color:var(--text)}.game-root .mech-row{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.game-root .mech{font-size:11.5px;color:var(--teal);border:1px solid rgba(87,200,180,.3);background:var(--teal-soft);padding:3px 9px;border-radius:999px}.game-root .mech-boss{color:#ff9a85;border-color:#e06a5566;background:var(--red-soft)}.game-root .q-summary{display:flex;flex-wrap:wrap;gap:8px;font-size:12px;color:var(--muted);margin-bottom:4px}.game-root .q-bonus{color:var(--gold)}.game-root .battle-ui{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.game-root .battle-ui>*{pointer-events:auto}.game-root .battle-top{position:absolute;top:56px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:16px;pointer-events:none}.game-root .battle-level-name{font-family:var(--font-display);font-size:16px;letter-spacing:.14em;color:var(--muted)}.game-root .phase-badge{animation:phase-pulse 1.6s ease-in-out infinite}@keyframes phase-pulse{50%{box-shadow:0 0 18px #e06a5559}}.game-root .q-pips{display:flex;gap:6px}.game-root .pip-dot{width:7px;height:7px;border-radius:50%;background:#ffffff24;transition:background .3s}.game-root .pip-dot.done{background:#57c8b4b3}.game-root .pip-dot.cur{background:var(--gold);box-shadow:0 0 8px #d8b36acc}.game-root .combo-tag{font-size:13px;font-weight:700;letter-spacing:.12em;color:var(--gold)}.game-root .combo-tag.hot{color:#ffd27a;text-shadow:0 0 14px rgba(255,210,122,.55)}.game-root .question-panel{position:absolute;bottom:26px;left:50%;transform:translate(-50%);width:min(720px,92vw);padding:18px 22px 16px;animation:rise-in .28s ease both}@keyframes rise-in{0%{opacity:0;transform:translate(-50%) translateY(26px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.game-root .question-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}.game-root .question-count{font-size:15px;font-weight:700;color:var(--gold)}.game-root .question-count i{font-style:normal;color:var(--dim);font-weight:400}.game-root .q-type{font-size:11px;letter-spacing:.2em;color:var(--dim);border:1px solid var(--panel-border);border-radius:999px;padding:2px 9px}.game-root .penalty-tag{font-size:11.5px;color:var(--red)}.game-root .skill-tag{font-size:11.5px;color:var(--gold)}.game-root .head-spacer{flex:1}.game-root .question-prompt{font-size:16.5px;line-height:1.65;margin:4px 0 14px;color:var(--text)}.game-root .choice-list{display:grid;grid-template-columns:1fr 1fr;gap:9px}.game-root .choice-item{display:flex;align-items:center;gap:11px;text-align:left;background:#ffffff09;border:1px solid var(--panel-border);border-radius:9px;color:var(--text);font-family:var(--font-body);font-size:14px;padding:11px 13px;cursor:pointer;transition:border-color .14s,background .14s,transform .12s}.game-root .choice-item:hover:not(:disabled){border-color:#d8b36a8c;background:var(--gold-soft);transform:translateY(-1px)}.game-root .choice-item:disabled{opacity:.55;cursor:wait}.game-root .choice-key{flex:none;width:22px;height:22px;display:grid;place-items:center;font-size:11.5px;color:var(--muted);border:1px solid var(--panel-border);border-radius:6px}.game-root .choice-item:hover:not(:disabled) .choice-key{color:var(--gold);border-color:#d8b36a80}.game-root .ordering{display:flex;flex-direction:column;gap:10px}.game-root .order-slots{min-height:46px;display:flex;flex-wrap:wrap;gap:7px;align-items:center;padding:8px;border:1px dashed rgba(255,255,255,.16);border-radius:9px}.game-root .order-hint{font-size:12.5px;color:var(--dim);padding-left:4px}.game-root .order-chip{display:inline-flex;align-items:center;gap:8px;background:#ffffff0d;border:1px solid var(--panel-border);color:var(--text);font-family:var(--font-body);font-size:13px;border-radius:8px;padding:7px 12px;cursor:pointer;transition:border-color .14s,background .14s}.game-root .order-chip i{font-style:normal;font-size:11px;color:var(--gold);font-weight:700}.game-root .order-chip.placed{border-color:#57c8b473;background:var(--teal-soft)}.game-root .order-chip:hover:not(:disabled){border-color:#d8b36a99}.game-root .order-pool{display:flex;flex-wrap:wrap;gap:7px}.game-root .open-input{display:flex;gap:10px}.game-root .open-input input{flex:1;background:#ffffff0a;border:1px solid var(--panel-border);border-radius:9px;color:var(--text);font-family:var(--font-body);font-size:15px;padding:11px 14px;outline:none;transition:border-color .15s}.game-root .open-input input:focus{border-color:#d8b36a8c}.game-root .hint-box{margin-top:12px;font-size:13px;color:var(--teal);background:var(--teal-soft);border:1px solid rgba(87,200,180,.25);border-radius:8px;padding:9px 12px;line-height:1.6}.game-root .hint-box b{margin-right:6px;letter-spacing:.1em}.game-root .question-foot{display:flex;align-items:center;margin-top:14px;gap:12px}.game-root .skill-btn{display:inline-flex;align-items:center;gap:9px;font-size:13px;color:var(--dim)}.game-root .skill-btn.ready{color:var(--gold);border-color:#d8b36a99;background:var(--gold-soft);animation:skill-glow 1.4s ease-in-out infinite}.game-root .skill-btn.armed{color:#ffd27a;border-color:var(--gold)}@keyframes skill-glow{50%{box-shadow:0 0 16px #d8b36a59}}.game-root .skill-pips{display:inline-flex;gap:4px}.game-root .skill-pips i{width:7px;height:7px;border-radius:50%;background:#ffffff24}.game-root .skill-pips i.on{background:var(--gold);box-shadow:0 0 6px #d8b36acc}.game-root .foot-note{margin-left:auto;font-size:11.5px;color:var(--dim)}.game-root .explain-drawer{margin-top:14px;border-top:1px solid var(--panel-border);padding-top:13px;animation:rise-soft .25s ease both}@keyframes rise-soft{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.game-root .explain-title{font-size:12px;letter-spacing:.22em;color:var(--red);margin-bottom:8px}.game-root .explain-expected{font-size:13.5px;color:var(--gold);margin-bottom:8px}.game-root .explain-body{font-size:13.5px;line-height:1.75;color:var(--muted);margin:0 0 12px}.game-root .correct-flash{margin-top:12px;font-size:13px;color:var(--teal);animation:rise-soft .2s ease both}.game-root .result-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:#04060c8c;animation:landing-in .4s ease both}.game-root .result-panel{width:min(560px,92vw);padding:34px 38px 30px;text-align:center}.game-root .result-title{font-family:var(--font-display);font-size:46px;letter-spacing:.18em;margin:0 0 6px}.game-root .is-victory .result-title{color:var(--gold);text-shadow:0 4px 34px rgba(216,179,106,.35)}.game-root .is-defeat .result-title{color:var(--red);font-size:38px}.game-root .result-sub{color:var(--muted);font-size:13.5px;margin:0 0 24px;letter-spacing:.06em}.game-root .result-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:20px}.game-root .stat{background:#ffffff08;border:1px solid var(--panel-border);border-radius:9px;padding:12px 8px}.game-root .stat em{display:block;font-style:normal;font-size:11px;color:var(--dim);letter-spacing:.14em;margin-bottom:5px}.game-root .stat b{font-size:17px;color:var(--text)}.game-root .stat-xp{color:var(--gold)!important}.game-root .defeat-note{color:var(--muted);font-size:13px;margin:0 0 16px}.game-root .result-actions{display:flex;justify-content:center;gap:12px}.game-root .dev-fab{position:absolute;right:20px;bottom:20px;width:46px;height:46px;border-radius:50%;border:1px solid rgba(141,122,224,.5);background:#141028d9;color:var(--violet);font-size:12px;letter-spacing:.08em;cursor:pointer;z-index:60}.game-root .dev-fab:hover{border-color:var(--violet)}.game-root .dev-panel{position:absolute;right:20px;bottom:78px;width:264px;padding:16px;z-index:60;max-height:calc(100vh - 120px);overflow:auto}.game-root .dev-title{font-size:12px;letter-spacing:.4em;color:var(--violet);margin-bottom:12px}.game-root .dev-group{margin-bottom:13px}.game-root .dev-label{font-size:11px;color:var(--dim);letter-spacing:.2em;margin-bottom:6px}.game-root .dev-row{display:flex;gap:6px;margin-bottom:6px}.game-root .dev-btn{flex:1;font-size:12px;font-family:var(--font-body);color:var(--muted);background:#ffffff0a;border:1px solid var(--panel-border);border-radius:7px;padding:7px 8px;cursor:pointer;transition:all .14s}.game-root .dev-btn:hover:not(:disabled){color:var(--text);border-color:#ffffff4d}.game-root .dev-btn:disabled{opacity:.35;cursor:not-allowed}.game-root .dev-btn.on{color:var(--violet);border-color:#8d7ae099;background:#8d7ae01f}.game-root .dev-btn.danger-armed{color:var(--red);border-color:#e06a5599;background:var(--red-soft)}.game-root .modal-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#04060ca8;display:grid;place-items:center;z-index:70}.game-root .json-modal{width:min(760px,92vw);max-height:82vh;display:flex;flex-direction:column;padding:14px 16px}.game-root .json-modal .panel-head{margin-bottom:10px}.game-root .json-modal .panel-head div{margin-left:auto;display:flex;gap:8px;align-items:center}.game-root .json-body{margin:0;overflow:auto;font-size:12px;line-height:1.6;color:#b8c2d8;background:#0000004d;border-radius:8px;padding:14px;white-space:pre-wrap}.game-root .toast{position:absolute;bottom:88px;left:50%;transform:translate(-50%);background:#0a0e1aeb;border:1px solid var(--panel-border);color:var(--text);font-size:13px;border-radius:999px;padding:9px 20px;z-index:80;animation:toast-in .25s ease both}@keyframes toast-in{0%{opacity:0;transform:translate(-50%) translateY(10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.game-root .boot-error{height:100vh;display:grid;place-content:center;gap:14px;text-align:center}.game-root .boot-error pre{max-width:640px;white-space:pre-wrap;color:var(--red);font-size:13px;text-align:left}@media(max-width:900px){.game-root .landing-title{font-size:40px}.game-root .choice-list{grid-template-columns:1fr}.game-root .result-stats{grid-template-columns:repeat(2,1fr)}.game-root .level-panel{right:12px;left:12px;width:auto;top:auto;bottom:12px;transform:none}}:root{--bg: #0b0f16;--bg-panel: #121826;--bg-inset: #1a2232;--border: #263040;--border-soft: #1e2836;--text: #e8eef6;--text-dim: #8b98a9;--accent: #4f8ff7;--accent-2: #9b7bff;--accent-soft: rgba(79, 143, 247, .14);--green: #3fb950;--amber: #d29922;--red: #f85149;--purple: #bc8cff;--radius: 12px;--shadow: 0 10px 34px rgba(0, 0, 0, .28);font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Segoe UI,Microsoft YaHei,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{color:var(--text);font-size:14px;line-height:1.55;background:radial-gradient(1100px 700px at 88% -12%,rgba(79,143,247,.1),transparent 62%),radial-gradient(900px 650px at -8% 108%,rgba(155,123,255,.08),transparent 60%),radial-gradient(700px 500px at 50% 120%,rgba(63,185,80,.05),transparent 60%),var(--bg);background-attachment:fixed}.app{display:flex;flex-direction:column;height:100vh}.topbar{display:flex;align-items:center;gap:14px;padding:11px 20px;border-bottom:1px solid var(--border-soft);background:#0d1117b8;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);flex:0 0 auto}.topbar .logo{font-size:16.5px;font-weight:800;letter-spacing:.3px;background:linear-gradient(92deg,#e8eef6 30%,#7fb0ff 75%,#bc8cff);-webkit-background-clip:text;background-clip:text;color:transparent}.topbar .sub{color:var(--text-dim);font-size:12px}.topbar .spacer{flex:1}.badge{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--text-dim);border:1px solid var(--border);border-radius:99px;padding:4px 11px;background:#1a2232b3}.badge.learn-badge{color:var(--purple);border-color:#bc8cff66;background:#bc8cff14}.dot{width:7px;height:7px;border-radius:50%;background:var(--red)}.dot.ok{background:var(--green);box-shadow:0 0 6px #3fb950b3}.columns{display:grid;grid-template-columns:272px 400px minmax(0,1fr);gap:14px;padding:14px 20px;flex:1;min-height:0}.columns.sb-hidden{grid-template-columns:0 400px minmax(0,1fr);gap:14px 14px}.columns.sb-hidden .panel-side{display:none}.columns.learn-mode{grid-template-columns:minmax(0,1fr);padding:0;gap:0}.columns.learn-mode .panel-side,.columns.learn-mode .panel-center{display:none}.panel--result.learn-space{border:none;border-radius:0;background:transparent}.panel{background:linear-gradient(180deg,#ffffff06,#fff0 40%),var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);display:flex;flex-direction:column;min-height:0;overflow:hidden}.panel-head{padding:11px 15px;font-size:12px;font-weight:700;letter-spacing:.8px;color:var(--text-dim);text-transform:uppercase;border-bottom:1px solid var(--border-soft);flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;background:#ffffff04}.panel-body{flex:1;overflow-y:auto;padding:13px 15px;min-height:0}.section-title{font-size:11px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.8px;margin:14px 0 6px}.section-title:first-child{margin-top:0}.select,input[type=text]{width:100%;background:var(--bg-inset);color:var(--text);border:1px solid var(--border);border-radius:9px;padding:8px 10px;font-size:13px;outline:none;transition:border-color .15s,box-shadow .15s}.select:focus,input[type=text]:focus{border-color:var(--accent);box-shadow:0 0 0 3px #4f8ff726}.file-item,.run-item{padding:9px 11px;border:1px solid var(--border-soft);border-radius:9px;margin-bottom:6px;cursor:pointer;background:var(--bg-inset);transition:border-color .15s,transform .15s,background .15s}.file-item:hover,.run-item:hover{border-color:var(--accent);transform:translateY(-1px)}.run-item.active{border-color:var(--accent);background:var(--accent-soft)}.file-item .name,.run-item .name{font-size:13px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.meta{font-size:11px;color:var(--text-dim);margin-top:2px}.pill{display:inline-block;padding:1px 8px;border-radius:99px;font-size:10.5px;margin-left:6px;vertical-align:1px;font-weight:600}.pill.ok{background:#3fb95026;color:var(--green)}.pill.warn{background:#d2992226;color:var(--amber)}.pill.err{background:#f8514926;color:var(--red)}.pill.run{background:var(--accent-soft);color:var(--accent)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;background:var(--bg-inset);color:var(--text);border:1px solid var(--border);border-radius:9px;padding:8px 14px;font-size:13px;cursor:pointer;transition:all .15s}.btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent);transform:translateY(-1px)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{background:linear-gradient(135deg,var(--accent),var(--accent-2));border-color:transparent;color:#fff;font-weight:700;box-shadow:0 4px 16px #4f8ff759}.btn.primary:hover:not(:disabled){filter:brightness(1.08);color:#fff;transform:translateY(-1px)}.btn.danger:hover:not(:disabled){border-color:var(--red);color:var(--red)}.btn.small{padding:4px 11px;font-size:12px}.btn.block{width:100%}.sb-toggle.accent{color:var(--accent);border-color:#4f8ff780}.target-row{display:flex;gap:8px}.target-row input{flex:1}.hint{font-size:11.5px;color:var(--text-dim);margin-top:8px;line-height:1.6}.stepper{margin-top:16px}.phase{display:flex;align-items:flex-start;gap:10px;padding:7px 0;position:relative}.phase .marker{width:20px;height:20px;border-radius:50%;flex:0 0 auto;display:flex;align-items:center;justify-content:center;font-size:11px;margin-top:1px;border:1.5px solid var(--border);color:var(--text-dim);background:var(--bg-inset)}.phase.done .marker{border-color:var(--green);color:var(--green)}.phase.active .marker{border-color:var(--accent);color:var(--accent)}.phase.active .marker:after{content:"";width:8px;height:8px;border-radius:50%;background:var(--accent);animation:pulse 1.1s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.35}50%{opacity:1}}.phase .label{font-size:13px}.phase.done .label{color:var(--text-dim)}.phase.active .label{color:var(--accent);font-weight:600}.phase.error .marker{border-color:var(--red);color:var(--red)}.phase.error .label{color:var(--red)}.logconsole{margin-top:14px;background:#080c12;border:1px solid var(--border-soft);border-radius:10px;font-family:SF Mono,Menlo,Consolas,monospace;font-size:11.5px;line-height:1.7;padding:10px 12px;height:250px;overflow-y:auto}.log-line{display:flex;gap:8px}.log-time{color:#4d5866;flex:0 0 auto}.log-msg{word-break:break-all;white-space:pre-wrap}.log-line.info .log-msg{color:#aab6c4}.log-line.tool .log-msg{color:#7d8ea3}.log-line.success .log-msg{color:var(--green)}.log-line.warning .log-msg{color:var(--amber)}.log-line.error .log-msg{color:var(--red)}.log-empty{color:#4d5866}.error-banner{margin-top:12px;padding:10px 14px;border-radius:10px;background:#f851491a;border:1px solid rgba(248,81,73,.4);color:#ffb3ae;font-size:13px}.info-banner{margin-top:12px;padding:10px 14px;border-radius:10px;background:var(--accent-soft);border:1px solid rgba(79,143,247,.4);color:#a9c8fa;font-size:13px}.tabs{display:flex;gap:2px;padding:0 10px;border-bottom:1px solid var(--border-soft);flex:0 0 auto}.tab{padding:10px 14px;font-size:13px;color:var(--text-dim);cursor:pointer;border:none;background:none;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .15s}.tab:hover{color:var(--text)}.tab.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.result-body{flex:1;overflow-y:auto;padding:16px 20px;min-height:0}.card{border:1px solid var(--border-soft);border-radius:11px;padding:13px 15px;margin-bottom:12px;background:var(--bg-inset)}.card h4{margin:0 0 8px;font-size:13.5px}.card .dim{color:var(--text-dim);font-size:12.5px}.stage-num{display:inline-flex;width:22px;height:22px;margin-right:8px;align-items:center;justify-content:center;border-radius:7px;background:var(--accent-soft);color:var(--accent);font-size:12px;font-weight:700;vertical-align:-4px}ul.tight{margin:6px 0 0;padding-left:18px}ul.tight li{margin:3px 0;font-size:13px}.q-prompt{font-size:13.5px;margin:4px 0 8px;white-space:pre-wrap}.q-options{margin:0 0 8px;padding-left:4px;list-style:none}.q-options li{padding:3px 0;font-size:13px}.q-answer{margin-top:8px;padding:11px 13px;border-radius:10px;background:#3fb95012;border:1px dashed rgba(63,185,80,.35);font-size:13px}.q-answer .ans{font-weight:600;color:var(--green)}.q-answer .exp{margin-top:6px;color:var(--text-dim);white-space:pre-wrap}.q-answer .src{margin-top:6px;font-size:12px;color:#6e7a89}details summary{cursor:pointer;color:var(--accent);font-size:12.5px;margin-top:8px}.qa-row{display:flex;gap:10px;padding:11px 13px;border:1px solid var(--border-soft);border-radius:10px;margin-bottom:8px;background:var(--bg-inset)}.qa-row .icon{font-size:15px;flex:0 0 auto}.qa-row .title{font-weight:600;font-size:13px}.qa-row .detail{font-size:12.5px;color:var(--text-dim);margin-top:4px;white-space:pre-wrap}.pre-wrap{white-space:pre-wrap;font-size:13px;line-height:1.7}.md-content{font-size:13.5px;line-height:1.75}.md-content h1{font-size:18px;border-bottom:1px solid var(--border);padding-bottom:8px}.md-content h2{font-size:15px;margin-top:20px}.md-content h3{font-size:14px}.json-view{background:#080c12;border:1px solid var(--border-soft);border-radius:10px;padding:12px;font-family:SF Mono,Menlo,Consolas,monospace;font-size:11.5px;overflow:auto;max-height:60vh;white-space:pre}.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--text-dim);gap:10px;text-align:center;padding:30px}.empty .big{font-size:38px;opacity:.55;filter:drop-shadow(0 6px 18px rgba(79,143,247,.3))}.src-row{display:flex;gap:8px;align-items:baseline;padding:7px 10px;border-bottom:1px dashed var(--border);font-size:13px}.src-row:last-child{border-bottom:none}.src-file{color:var(--accent);font-family:Menlo,monospace;font-size:12px}.actions-row{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}.toolbar{display:flex;gap:8px;align-items:center}.learn{display:flex;flex-direction:column;height:100%;min-height:0}.learn-head{display:flex;align-items:center;gap:16px;padding:14px 24px;border-bottom:1px solid var(--border-soft);background:#0d1117a8;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);flex:0 0 auto}.learn-title{font-weight:800;font-size:15px;flex:0 0 auto}.learn-dots{display:flex;gap:9px;align-items:center;flex:1;justify-content:center}.sdot{width:11px;height:11px;border-radius:50%;background:#232c3b;border:1.5px solid var(--border);transition:all .25s}.sdot.done{background:var(--accent);border-color:var(--accent)}.sdot.active{background:var(--purple);border-color:var(--purple);box-shadow:0 0 0 5px #bc8cff29,0 0 14px #bc8cff8c;animation:pulse 1.6s ease-in-out infinite}.learn-progress{flex:0 0 200px;display:flex;align-items:center;gap:8px}.learn-bar{flex:1;height:8px;border-radius:99px;background:#1d2634;overflow:hidden;border:1px solid var(--border-soft)}.learn-bar>div{height:100%;border-radius:99px;background:linear-gradient(90deg,var(--accent),var(--accent-2),var(--purple));background-size:200% 100%;animation:shimmer 3s linear infinite;transition:width .35s ease}@keyframes shimmer{0%{background-position:0% 0}to{background-position:200% 0}}.learn-pct{font-size:12px;color:var(--text-dim);width:38px;text-align:right}.learn-subhead{text-align:center;padding:12px 20px 0;color:var(--text-dim);font-size:12.5px;letter-spacing:.5px}.learn-body{flex:1;overflow-y:auto;padding:18px 24px 26px;min-height:0}.learn-step-wrap{max-width:780px;margin:0 auto}.learn .card{padding:24px 26px;border-radius:16px;box-shadow:0 14px 40px #0000003d;animation:fadeUp .28s ease;border-color:var(--border)}@keyframes fadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.learn-center{text-align:center;padding:34px 30px}.learn-stage-tag{display:inline-block;padding:3px 14px;border-radius:99px;background:var(--accent-soft);color:var(--accent);font-size:12px;font-weight:700;letter-spacing:1px}.learn-goal{background:#3fb95014;border:1px dashed rgba(63,185,80,.4);border-radius:12px;padding:13px 16px;font-size:14px;text-align:left;line-height:1.8}.learn-note{margin:14px 0 0;padding:10px 14px;text-align:left;border-left:3px solid var(--purple);color:var(--text-dim);background:#bc8cff0f;border-radius:0 10px 10px 0;font-size:12.5px}.learn-btns{display:flex;gap:10px;justify-content:center;margin-top:20px;flex-wrap:wrap}.learn-content{font-size:16px;line-height:2.05;margin:14px 2px;color:#e3ebf5;text-align:justify}.learn-big{font-size:44px;margin-bottom:6px;color:var(--green)}.learn-stats{display:flex;justify-content:center;gap:14px;margin-top:18px;flex-wrap:wrap}.learn-stats>div{display:flex;flex-direction:column;align-items:center;background:var(--bg-inset);border:1px solid var(--border-soft);border-radius:14px;padding:14px 22px;min-width:96px}.learn-stats b{font-size:24px}.learn-stats span{font-size:11.5px;color:var(--text-dim);margin-top:2px}.learn-options{list-style:none;padding:0;margin:4px 0 12px}.learn-opt{width:100%;text-align:left;padding:12px 15px;margin:7px 0;background:#1a2232bf;color:var(--text);border:1.5px solid var(--border);border-radius:12px;font-size:14px;line-height:1.65;cursor:pointer;transition:all .15s}.learn-opt:hover:not(:disabled){border-color:var(--accent);transform:translateY(-1px);box-shadow:0 6px 18px #4f8ff726}.learn-opt:disabled{cursor:default;opacity:.9}.learn-opt.picked{border-color:var(--accent);background:var(--accent-soft)}.learn-opt.right{border-color:var(--green);background:#3fb9501f;box-shadow:0 0 12px #3fb95026}.learn-opt.right b{color:var(--green)}.learn-opt.wrong{border-color:var(--red);background:#f851491a;box-shadow:0 0 12px #f8514926}.learn-opt.wrong b{color:var(--red)}.q-answer-wrong{background:#f8514912;border-color:#f8514966}.learn-wrong{border:1px dashed var(--border);border-radius:12px;padding:12px 14px;margin:9px 0;font-size:13px;background:#0d111766}.learn-mastery label{display:flex;align-items:flex-start;gap:4px;cursor:pointer}.learn-mastery input{margin-top:4px;accent-color:var(--green)}.learn-cta{display:flex;align-items:center;justify-content:space-between;gap:12px;background:linear-gradient(100deg,var(--accent-soft),rgba(155,123,255,.12));border:1px solid rgba(79,143,247,.4);border-radius:14px;padding:14px 18px;margin-bottom:16px;font-size:13px;box-shadow:0 8px 26px #4f8ff71f}.learn-hintbar{flex:0 0 auto;text-align:center;padding:8px 16px;border-top:1px solid var(--border-soft);color:#5d6a7c;font-size:11.5px;background:#0d111799}.learn-hintbar kbd{display:inline-block;padding:1px 7px;margin:0 2px;border:1px solid var(--border);border-bottom-width:2px;border-radius:6px;background:var(--bg-inset);font-family:SF Mono,Menlo,monospace;font-size:10.5px;color:var(--text-dim)}.learn-restore{margin:12px 24px 0;display:flex;gap:10px;align-items:center}.learn-restore a{color:var(--accent)}::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-thumb{background:#263040;border-radius:5px}::-webkit-scrollbar-thumb:hover{background:#334052}::-webkit-scrollbar-track{background:transparent}@media(max-width:1280px){.columns{grid-template-columns:240px 340px minmax(0,1fr)}.columns.sb-hidden{grid-template-columns:0 340px minmax(0,1fr)}}@media(max-width:980px){.columns,.columns.sb-hidden{display:flex;flex-direction:column;padding:10px;gap:10px}.columns.learn-mode{padding:0;gap:0}.panel{min-height:300px}.learn-head{flex-wrap:wrap}.learn-progress{flex:1 1 100%;order:3}}.game-toggle.accent{border-color:var(--purple);color:var(--purple)}.game-toggle:disabled{opacity:.4}.game-loading{position:absolute;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;background:#06080f;color:#e9e7df;font-family:Inter,PingFang SC,Microsoft YaHei,system-ui,sans-serif;animation:game-fade .35s ease}.game-loading-inner{text-align:center;font-size:15px;letter-spacing:2px}.game-loading-inner .dim{color:#6b7288;font-size:12.5px;margin-top:10px;letter-spacing:.5px}.game-loading-rune{width:42px;height:42px;margin:0 auto 18px;border-radius:50%;border:2px solid rgba(216,179,106,.25);border-top-color:#d8b36a;animation:game-spin .9s linear infinite}@keyframes game-spin{to{transform:rotate(360deg)}}@keyframes game-fade{0%{opacity:0}to{opacity:1}}.game-level-chip{position:absolute;top:52px;right:14px;z-index:90;display:flex;align-items:center;gap:8px;background:#0d111ee0;border:1px solid rgba(216,179,106,.4);border-radius:99px;padding:5px 12px;font-family:Inter,PingFang SC,system-ui,sans-serif;font-size:12px;color:#e9e7df}.game-level-chip b{color:#d8b36a;font-size:13px}.game-level-chip>span{color:#98a0b3;min-width:86px;text-align:right}.game-level-bar{width:84px;height:6px;border-radius:99px;background:#232b38;overflow:hidden}.game-level-bar>div{height:100%;border-radius:99px;background:linear-gradient(90deg,#d8b36a,#8d7ae0);transition:width .4s ease}.game-back-btn{position:absolute;top:52px;left:14px;z-index:90;background:#0d111ee0;color:#e9e7df;border:1px solid rgba(255,255,255,.14);border-radius:99px;padding:6px 14px;font-size:12.5px;cursor:pointer;font-family:Inter,PingFang SC,system-ui,sans-serif;transition:border-color .15s}.game-back-btn:hover{border-color:#d8b36a;color:#d8b36a}.levelup-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:95;display:flex;align-items:center;justify-content:center;background:#06080f8c;animation:game-fade .3s ease;pointer-events:none}.levelup-card{text-align:center;padding:30px 54px;background:#0d111ef2;border:1px solid rgba(216,179,106,.6);border-radius:16px;box-shadow:0 18px 60px #0009;animation:levelup-pop .5s cubic-bezier(.2,1.6,.4,1)}.levelup-glyph{font-size:34px;color:#d8b36a;animation:game-spin 2.2s linear infinite}.levelup-title{font-size:30px;font-weight:800;letter-spacing:6px;color:#d8b36a;margin-top:6px;font-family:Cinzel,Times New Roman,serif}.levelup-sub{font-size:18px;margin-top:8px;color:#e9e7df}.levelup-note{font-size:12.5px;color:#98a0b3;margin-top:8px}@keyframes levelup-pop{0%{transform:scale(.6);opacity:0}to{transform:scale(1);opacity:1}}
