*{box-sizing:border-box}body{margin:0;background:#0d1b20;color:#fff8d9;font-family:system-ui,"Microsoft YaHei",sans-serif;display:flex;align-items:center;justify-content:center;gap:80px;min-height:100dvh;background-image:radial-gradient(ellipse at 65% 40%,#35575a80,transparent 65%)}aside{width:280px}.eyebrow{font-size:10px;letter-spacing:2px;color:#dec78c}aside h1{font-size:46px;letter-spacing:3px;margin:25px 0}aside p{color:#a5b8b8;font-size:14px}.guide{border-top:1px solid #3d5558;margin-top:35px;padding:25px 0;font-size:12px;line-height:3;color:#99aeb0}.guide span{color:#e4dec4;margin-right:12px}aside>small{font-size:10px;line-height:2;color:#6f8e92}main{position:relative;width:min(480px,46.875dvh);box-shadow:0 0 0 1px #68888b50,0 30px 100px #0008;overflow:hidden}#field{position:relative;isolation:isolate;overflow:hidden;background:#557c85}canvas{display:block;width:100%;touch-action:none}.vignette{position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 60px #083e2c88;z-index:1}button{font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}button:focus-visible{outline:3px solid #fff6b5;outline-offset:2px}.topbar{position:absolute;top:1.2%;left:3%;right:3%;display:flex;gap:10px;align-items:center;z-index:2;text-shadow:1px 2px 2px #171912,-1px -1px #292f28}.topbar button{font-weight:900;background:#2a453889;border:0;border-radius:5px;width:27px;height:28px;font-size:22px;padding:0}.topbar #timer{font-size:13px;font-weight:900;white-space:nowrap}.topbar h2{font-size:clamp(15px,2.2dvh,23px);margin:0;white-space:nowrap;font-weight:950;letter-spacing:0;color:#fff3ba}.topbar #sound{margin-left:auto;font-size:17px}.experience{position:absolute;top:5.5%;left:4%;right:4%;height:9px;background:#132c2d9e;border:1px solid #78a5b3;box-shadow:0 1px 2px #152a33;z-index:2}.experience i{display:block;height:100%;width:0;background:linear-gradient(#22d4fa,#008de6)}.experience b{position:absolute;right:42%;top:-4px;font-size:11px;text-shadow:1px 1px #000}.energy{position:absolute;top:7.5%;left:5%;right:5%;display:flex;align-items:center;gap:6px;z-index:2;text-shadow:1px 2px #162e26}.energy>span{font-size:28px;font-weight:900;color:#00cfff;line-height:1}.energy strong{font-size:13px;background:#007e99;padding:2px 7px;border-radius:2px;border:1px solid #a3e7d8}.wave{margin-left:auto;font-size:11px;background:#18382b99;padding:3px 7px}.lefttools{position:absolute;top:12%;left:5%;z-index:2;display:flex;align-items:center;flex-direction:column;gap:8px}.lefttools button{border:0;background:#1c3f3970;font-size:17px;font-weight:900;padding:0 3px;text-shadow:1px 2px #192d24}.ammo{border:2px solid #f0c02c;border-radius:50%;width:34px;height:34px;color:#ffe46d;background:#283830c9;display:grid;place-items:center;font-size:26px}.lefttools>span{font-size:16px;font-weight:900;color:#ffe66b;text-shadow:1px 1px #000}.lefttools small{font-size:8px;color:#e0e6b8;margin-top:-8px}.skills{position:absolute;right:3.5%;top:15%;display:flex;flex-direction:column;gap:16px;z-index:3}.skills button{position:relative;border:2px solid #c39122;border-radius:50%;width:39px;height:39px;padding:0;background:radial-gradient(circle at 35% 30%,#ffed56,#f74b00 50%,#351d13 70%);box-shadow:0 2px 4px #09241f}.skills button:nth-child(2){border-color:#79bedb;background:radial-gradient(circle at 35% 30%,#baf7ff,#0798bd 50%,#15324c 70%)}.skills button:nth-child(3){border-color:#bd9cef;background:radial-gradient(circle at 35% 30%,#e5d3ff,#845ce0 50%,#221c3e 70%)}.skills i{font-style:normal;font-size:25px;line-height:34px;color:#fff4a5;text-shadow:1px 2px #3e2600}.skills small{position:absolute;top:100%;left:-8px;right:-8px;text-align:center;font-size:8px;text-shadow:1px 1px 2px #000}.cool:not(:empty){position:absolute;inset:-2px;background:#061322aa;border-radius:50%;display:grid;place-items:center;font-size:18px;font-weight:900;text-shadow:1px 1px #000}.stagebadge{position:absolute;top:10.5%;right:4%;border:2px solid #ec9d38;display:flex;align-items:center;gap:5px;background:linear-gradient(110deg,#a32b0b,#fa5d26);padding:2px 6px;font-size:9px;z-index:2}.stagebadge span{font-size:22px;line-height:1}.stagebadge small{font-size:8px}#announcement{position:absolute;top:26%;left:5%;right:5%;text-align:center;color:#ffec93;font-size:16px;font-weight:950;text-shadow:0 2px 3px #17281d;pointer-events:none;z-index:2}.base{position:absolute;bottom:9.6%;left:17%;right:17%;display:flex;gap:3px;align-items:center;z-index:2;font-size:9px;text-shadow:1px 1px #000}.base>span{color:#fff394}.base>div{height:10px;background:#272e1ee0;flex:1;border:1px solid #c1b565}.base i{display:block;height:100%;width:100%;background:linear-gradient(#8ee622,#2ba600)}.base strong{font-size:8px}.bottomskills{position:absolute;bottom:17%;left:5%;right:5%;display:flex;justify-content:space-between;z-index:2}.bottomskills>span{border:2px solid #c6b554;border-radius:50%;width:39px;height:39px;display:grid;place-items:center;background:radial-gradient(#28eeff,#0063e8 65%,#123351);color:#b5ffff;font-size:29px;line-height:1;text-shadow:1px 2px #002f4a;position:relative}.bottomskills>span:nth-child(2){background:radial-gradient(#ffe663,#ec5900 65%,#342a13);color:#fff06a}.bottomskills small{position:absolute;top:100%;font-size:8px;white-space:nowrap;line-height:2;color:#fff8cc}.bottomstats{position:absolute;bottom:1.5%;left:15%;right:15%;display:flex;justify-content:space-between;font-size:11px;color:#ffeab7;text-shadow:1px 1px #152f28;z-index:2}.bottomstats b{font-size:10px}#overlay{position:absolute;inset:0;z-index:4;display:flex;align-items:flex-end;justify-content:center;background:linear-gradient(transparent 18%,#052b3520 40%,#0b2438d9 70%,#0d1d25f5);padding:0 7% 15%}.intro{width:100%;text-align:center}.intro h1{font-size:40px;line-height:1.15;margin:16px 0;color:#fff4c4;font-weight:950;text-shadow:0 3px #324235}.intro em{font-style:normal;color:#ffd266;font-size:44px}.intro p{font-size:12px;color:#d3dcd0}.intro button{width:100%;border:1px solid #ffe291;background:linear-gradient(#ffdc7f,#da963e);padding:13px 20px;color:#432e13;font-weight:950;font-size:17px;border-radius:5px;box-shadow:0 4px #795127,0 6px 18px #0005;margin:10px 0 16px}.intro button:disabled{filter:grayscale(.6);cursor:wait}.intro button span{float:right}.intro>small{display:block;font-size:9px;color:#adbbb7}.modal{position:absolute;inset:0;z-index:8;display:flex;align-items:center;justify-content:center;padding:7%;background:#0e2331d9;backdrop-filter:blur(3px)}.modal[hidden]{display:none}.modal>div{width:100%;padding:20px;border:1px solid #c3b272;background:linear-gradient(#254651,#102c39);box-shadow:0 10px 50px #0008;border-radius:8px}.modal small{font-size:9px;letter-spacing:2px;color:#e6cf8f}.modal h2{font-size:27px;margin:10px 0;color:#ffe3a0}.modal p{font-size:11px;color:#bdcfd0}.modal button{display:block;width:100%;text-align:left;background:linear-gradient(#426675,#2e4b57);border:1px solid #86a4a3;border-radius:5px;padding:14px;margin-top:10px;font-size:14px;font-weight:800}.modal button small{display:block;font-size:10px;letter-spacing:0;color:#ccd9d3;margin-top:6px}@media(max-width:850px){aside{display:none}body{gap:0;background:#0d2026}main{width:min(100vw,46.875dvh);border:0}}

.wavebrief{position:absolute;left:17%;right:18%;top:10%;padding:5px 7px;background:#102a35d9;border:1px solid #e6ce8466;border-radius:4px;z-index:2;text-shadow:1px 1px #000;pointer-events:none}.wavebrief b{font-size:11px;color:#ffe4a5}.wavebrief span{float:right;font-size:8px;color:#d8e8e2;line-height:17px}.wavebrief small{display:block;font-size:8px;color:#c2d6d5;line-height:1.6}.stagebadge{top:7.6%;transform:scale(.8);transform-origin:top right}.wavebrief~#announcement{top:30%}

#selectStage.secondary{background:#203e4c;border:1px solid #809b9b;color:#f6e0a9;font-size:13px;padding:9px;margin:0 0 9px;box-shadow:none}#stageSummary{font-size:10px;line-height:1.8;color:#f4dca0;margin-bottom:7px}.stagepanel{max-height:88dvh;overflow:auto}.stagepanel #closeStages{float:right;width:auto;margin:0;padding:5px 10px}.stagepanel h2{font-size:23px}#stageGrid{display:grid;grid-template-columns:repeat(5,1fr);gap:5px;max-height:52dvh;overflow:auto}#stageGrid button{padding:8px 2px;text-align:center;font-size:12px;margin:0}#stageGrid button small{font-size:7px;margin:2px 0;letter-spacing:0}#stageGrid button.bosslevel{border-color:#edb653}#stageGrid button:disabled{opacity:.35;cursor:default}#stageGrid button.current{background:#88703b}.intro h1{font-size:31px}.intro em{font-size:35px}.intro button{margin-top:8px}.skills small{font-size:8px}
