:root{--ink:#2b2a33;--paper:#f6f1e7;--paper2:#ece4d3;--gold:#c9a45c;--sky:#9fd8ff;--mana:#6aa8ff;--hp:#e8656a;--ok:#6dbb8a;--err:#d5605a;--font:"Noto Serif SC", "Source Han Serif SC", "Songti SC", "PingFang SC", "Microsoft YaHei", serif}*{box-sizing:border-box}html,body{height:100%;font-family:var(--font);color:var(--ink);background:#cfd9e6;margin:0;overflow:hidden}canvas#view{width:100vw;height:100vh;display:block;position:fixed;inset:0}.hidden{display:none!important}button{font-family:inherit}#hud{pointer-events:none;color:#fff;text-shadow:0 1px 3px #0009;position:fixed;inset:0}#crosshair{border:2px solid #ffffffd9;border-radius:50%;width:22px;height:22px;margin:-11px 0 0 -11px;position:absolute;top:50%;left:50%;box-shadow:0 0 6px #0006}#crosshair:after{content:"";background:#fff;border-radius:1px;width:2px;height:2px;position:absolute;top:8px;left:8px}#crosshair.hit{border-color:#ffd27f;transition:transform 50ms;transform:scale(1.25)}#castbar,#analysisbar{background:#00000059;border-radius:3px;width:200px;height:6px;margin-left:-100px;position:absolute;top:58%;left:50%;overflow:hidden}#castbar div,#analysisbar div{background:#ffe2a8;width:0;height:100%}#analysisbar{border-radius:9px;height:18px;top:62%}#analysisbar span{text-align:center;z-index:1;font-size:12px;line-height:18px;position:absolute;left:0;right:0}#analysisbar div{background:linear-gradient(90deg,#8a7cff,#c7bfff)}#topbar{align-items:flex-start;gap:18px;display:flex;position:absolute;top:12px;left:50%;transform:translate(-50%)}#topbar .side{width:260px}#topbar .side.op{text-align:right}#topbar .nm{letter-spacing:1px;font-size:15px}.hp{background:#0006;border-radius:7px;height:14px;margin-top:4px;position:relative;overflow:hidden}.hp div{background:linear-gradient(90deg,#e8656a,#ff9f8a);transition:width .12s;position:absolute;inset:0 auto 0 0}.hp b{text-align:center;font-size:11px;font-weight:400;line-height:14px;position:absolute;inset:0}.op .hp div{left:auto;right:0}.opmana{background:#0006;border-radius:3px;height:5px;margin-top:3px;overflow:hidden}.opmana div{background:var(--mana);height:100%;margin-left:auto}#topbar .center{text-align:center;min-width:140px}#topbar .score{letter-spacing:3px;font-size:22px}#topbar .timer{font-size:18px}#topbar .phase{opacity:.85;font-size:12px}#status{gap:8px;display:flex;position:absolute;bottom:150px;left:50%;transform:translate(-50%)}#status span{background:#00000073;border-radius:12px;padding:3px 10px;font-size:13px}#bottom{flex-direction:column;align-items:center;gap:10px;display:flex;position:absolute;bottom:22px;left:50%;transform:translate(-50%)}#manabar{background:#00000073;border-radius:8px;width:420px;height:16px;position:relative;overflow:hidden}#manabar .fill{background:linear-gradient(90deg,#4f7dff,#9fd8ff);transition:width 80ms;position:absolute;inset:0 auto 0 0}#manabar.exhausted .fill{background:#555c70}#manabar.exhausted{box-shadow:inset 0 0 0 2px #ff7a7a}#manabar .txt{text-align:center;font-size:11px;line-height:16px;position:absolute;inset:0}#slots{gap:10px;display:flex}.slot{background:#1416238c;border:2px solid #ffffff40;border-radius:12px;width:74px;height:74px;position:relative;overflow:hidden}.slot.active{border-color:#ffe08a;box-shadow:0 0 12px #ffe08a}.slot.nomana .nm{color:#ff9f9f}.slot .key{font-size:13px;font-weight:700;position:absolute;top:3px;left:6px}.slot .nm{text-align:center;white-space:nowrap;text-overflow:ellipsis;padding:0 3px;font-size:11px;position:absolute;bottom:18px;left:0;right:0;overflow:hidden}.slot .cost{text-align:center;color:#bcd6ff;font-size:10px;position:absolute;bottom:3px;left:0;right:0}.slot .cd{transform-origin:bottom;background:#0000008c;position:absolute;inset:0}.slot .cdt{justify-content:center;align-items:center;font-size:20px;display:flex;position:absolute;inset:0}.slot .glyph{border-radius:50%;width:14px;height:14px;position:absolute;top:4px;right:6px}.slot .chg{font-size:10px;position:absolute;top:22px;right:6px}#feed{flex-direction:column;align-items:flex-end;gap:4px;width:300px;font-size:13px;display:flex;position:absolute;top:90px;right:16px}#feed div{background:#0006;border-radius:8px;padding:2px 8px;animation:4s forwards fade}@keyframes fade{0%,75%{opacity:1}to{opacity:0}}#banner{text-align:center;letter-spacing:6px;text-shadow:0 2px 12px #0009;font-size:42px;position:absolute;top:28%;left:0;right:0}#banner small{letter-spacing:1px;margin-top:8px;font-size:16px;display:block}#blind{opacity:0;background:#fff;transition:opacity .15s;position:absolute;inset:0}#hint{opacity:.7;white-space:nowrap;font-size:11px;position:absolute;bottom:4px;left:50%;transform:translate(-50%)}#intel{background:#0f101cb8;border-radius:12px;width:320px;padding:10px 12px;font-size:13px;line-height:1.5;position:absolute;top:90px;left:16px}#intel h4{color:#d8cfff;margin:0 0 6px;font-weight:400}#intel .sp{border-top:1px solid #ffffff1f;padding:4px 0}#intel code{color:#c9d7ff;white-space:pre-wrap;max-height:90px;font-size:11px;display:block;overflow:hidden}.dmgnum{pointer-events:none;text-shadow:0 1px 3px #000;font-weight:700;animation:.8s forwards rise;position:fixed;transform:translate(-50%,-50%)}@keyframes rise{to{opacity:0;transform:translate(-50%,-150%)}}#ui{pointer-events:none;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}#ui>.panel{pointer-events:auto}.panel{background:#f6f1e7f0;border:1px solid #c9a45c99;border-radius:18px;width:min(940px,94vw);max-height:90vh;padding:26px 30px;overflow:auto;box-shadow:0 20px 60px #1e1e3c40}.panel h1{letter-spacing:6px;margin:0 0 4px;font-size:34px;font-weight:400}.panel h2{letter-spacing:2px;color:#6b5a33;margin:18px 0 8px;font-size:18px;font-weight:400}.panel p{margin:6px 0;line-height:1.6}.sub{color:#7a6f5a;font-size:14px}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.btn{pointer-events:auto;cursor:pointer;color:var(--ink);background:#fffaf0;border:1px solid #b89a5a;border-radius:22px;padding:9px 18px;font-size:15px;transition:background .15s,transform 50ms}.btn:hover{background:#fff2d6}.btn:active{transform:translateY(1px)}.btn.primary{color:#fff;background:#3b4a6b;border-color:#3b4a6b}.btn.primary:hover{background:#4a5c84}.btn.small{padding:5px 12px;font-size:13px}.btn:disabled{opacity:.5;cursor:default}input[type=text]{background:#fffdf7;border:1px solid #c9b88a;border-radius:10px;padding:8px 12px;font-family:inherit;font-size:15px}.cards{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;display:grid}.card{background:#fffdf8;border:1px solid #e3d6b5;border-radius:14px;padding:12px 14px}.card.active{border-color:#3b4a6b;box-shadow:0 0 0 2px #3b4a6b40}.card h3{justify-content:space-between;margin:0 0 4px;font-size:16px;font-weight:400;display:flex}.card .pts{color:#6b5a33}.card ul{margin:6px 0 8px;padding-left:18px;font-size:13px;line-height:1.6}.card .bad{color:var(--err);font-size:12px}pre.key{color:#e9e3ff;white-space:pre-wrap;word-break:break-all;-webkit-user-select:all;user-select:all;background:#2b2a33;border-radius:10px;padding:10px 12px;font-size:12px}.tabs{gap:6px;margin:12px 0 4px;display:flex}.tabs .btn.on{color:#fff;background:#3b4a6b}.credits{color:#8a7f6a;font-size:11px;line-height:1.5}.toast{color:#fff;z-index:10;pointer-events:none;background:#3b4a6b;border-radius:18px;padding:8px 18px;position:fixed;top:18px;left:50%;transform:translate(-50%)}.loading{letter-spacing:2px;font-size:18px;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}
