*{box-sizing:border-box} :root{font-family:"Microsoft YaHei","PingFang SC",sans-serif;color:#e5f5ff;background:#092b46;font-synthesis:none}body{margin:0;min-height:100vh;background:radial-gradient(ellipse at 50% 20%,#17628c 0,#0b3655 48%,#08283f 100%)}button,input{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,canvas:focus-visible{outline:3px solid #ffe785;outline-offset:3px}button:disabled{opacity:.6;cursor:wait}[hidden]{display:none!important}.app{width:min(1120px,calc(100% - 48px));margin:24px auto 16px}.topbar{display:flex;align-items:center;justify-content:space-between;min-height:54px;margin-bottom:12px}.brand{display:flex;gap:19px;align-items:center}.brand-mark{font-family:Arial,"Microsoft YaHei",sans-serif;font-size:29px;font-weight:1000;font-style:italic;letter-spacing:-2px;color:#fff;text-shadow:0 3px #124b80}.brand-mark>span{color:#ffdf67;margin-left:2px}.edition{font-size:12px;letter-spacing:1px;color:#b3d7eb;display:flex;align-items:center;gap:9px}.edition i{width:3px;height:3px;background:#77b3d4;border-radius:50%}.connection{display:flex;align-items:center;gap:7px;font-size:11px;color:#b0d3e7}.connection>span:first-child{width:6px;height:6px;border-radius:50%;background:#e7b355}.connection>span:first-child.online{background:#8febc1;box-shadow:0 0 8px #69d7b255}#latency{padding-left:9px;color:#79a9c8;font-variant-numeric:tabular-nums}.game-frame{padding:5px;background:linear-gradient(#71c5e6,#105d91 24%,#0b4f7d);border:1px solid #a7e1f47a;box-shadow:0 16px 60px #00101f60,0 1px 0 #c7ebfa66 inset;border-radius:5px}.game-stage{position:relative;width:100%;aspect-ratio:4/3;isolation:isolate;overflow:hidden;background:#168ac2}canvas{display:block;width:100%;height:100%;outline:none!important;image-rendering:auto}.loading{position:absolute;inset:0;background:#096699;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:20px;font-size:20px}.loading span{font-size:12px;color:#b8e2f9}.overlay{position:absolute;left:calc(50% - 12%);top:49%;transform:translate(-50%,-50%);width:340px;border:2px solid #166b9c;border-radius:8px;background:#d2f0ff;box-shadow:0 0 0 2px #99ddf3,0 10px 40px #05283e80;color:#16446a;overflow:hidden}.window-title{min-height:34px;display:flex;align-items:center;justify-content:space-between;background:linear-gradient(#62c7e8,#218ebc 55%,#0876a6);color:#fff;text-shadow:0 1px #096194;padding:7px 12px;font-size:13px;font-weight:700;border-bottom:2px solid #1278a5;box-shadow:0 1px 0 #d0f5ff inset}.window-star{color:#d5f6ff;font-size:18px}.window-content{padding:22px;background:linear-gradient(#ecf9ff,#d3effb)}.hero-title{font-size:26px;line-height:1.4;font-weight:800;letter-spacing:1px;color:#155386}.intro{font-size:12px;color:#5484a3;margin:10px 0 22px}.field{font-size:12px;color:#426a86;display:block;margin-bottom:15px}.field input{display:block;width:100%;margin-top:7px}input{border:1px solid #80bbd8;background:#fff;padding:9px 10px;border-radius:3px;color:#1c4662;min-width:0;box-shadow:inset 0 1px 3px #14486213}input::placeholder{color:#8ca5b4;font-size:12px}.gold-button,.blue-button{border-radius:4px;font-weight:700;text-shadow:0 1px #fff8;box-shadow:0 1px 0 #fff9 inset,0 2px 0 #aa6905;min-height:38px;padding:7px 15px;border:1px solid #c49219;background:linear-gradient(#fff2a2,#ffda5c 48%,#f9bd37 51%,#fbc74c);color:#694b08;transition:filter .12s,transform .12s}.gold-button:hover,.blue-button:hover{filter:brightness(1.06)}.gold-button:active,.blue-button:active{transform:translateY(1px)}#create-room{display:flex;justify-content:space-between;width:100%}.blue-button{background:linear-gradient(#f0fdff,#a2e4ff 48%,#6bc5ef 51%,#9dd9f1);border-color:#4c9bc6;color:#1a5c89;box-shadow:0 1px 0 #fff inset,0 2px 0 #377d9e}.join-row{display:flex;gap:8px;margin-top:12px}.join-row input{flex:1}.join-row button{width:66px}.divider{display:flex;align-items:center;gap:9px;color:#80a0b4;font-size:11px;margin:20px 0 13px}.divider:before,.divider:after{content:"";height:1px;flex:1;background:#b9dbe9}.practice-button{width:100%;padding:9px;background:#e8f8ff;border:1px solid #92c6df;border-radius:4px;color:#297497;font-size:13px}.practice-button:hover{background:#fff}.small-note{font-size:10px;text-align:center;color:#7b9caf;margin:14px 0 0}.room-panel{width:400px}.room-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px}.eyebrow{font-size:11px;color:#7495a9;display:block}.room-heading strong{font:700 28px/1.4 Consolas,monospace;letter-spacing:4px;color:#1d648c}.small{font-size:11px;min-height:30px;padding:5px 8px}.teams{display:grid;grid-template-columns:1fr 1fr;gap:12px}.teams h3{font-size:12px;margin:0 0 8px;padding:5px 7px;border-radius:3px}.red-heading{background:#fbdcdf;color:#b64148}.blue-heading{background:#c8e7fb;color:#286eab}.roster-row{height:40px;display:flex;align-items:center;gap:4px;border-bottom:1px solid #b8dbe977;font-size:12px}.roster-row img{width:36px;height:36px;object-fit:cover}.roster-row .name{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;flex:1}.roster-row em{font-size:10px;font-style:normal;color:#37965f}.roster-empty{color:#8cacbc;padding-left:8px}.room-hint{font-size:11px;text-align:center;color:#6e94aa;margin:17px 0}.room-actions{display:flex;gap:10px}.room-actions button{flex:1}.close-button{background:linear-gradient(#e8faff,#89d1ee);color:#27627e;border:1px solid #0e6c9b;border-radius:3px;width:24px;height:22px;font-size:19px;line-height:15px;font-weight:500;box-shadow:0 1px #fff inset}.game-toolbar{display:flex;justify-content:space-between;align-items:center;padding:14px 1px;gap:12px}.key-help{display:flex;gap:8px;align-items:center;font-size:11px;color:#b0d0e2}kbd{font:11px "Microsoft YaHei",sans-serif;color:#d5eaf5;background:#153f5b;border:1px solid #42677e;border-bottom-width:2px;padding:3px 7px;border-radius:3px;white-space:nowrap}.wasd{color:#6a9bb8;margin-left:8px;font-size:10px}.toolbar-actions{display:flex;gap:5px}.toolbar-actions button,.practice-tools button{border:1px solid transparent;background:none;color:#bbddec;font-size:11px;padding:6px 10px;border-radius:4px}.toolbar-actions button:hover,.practice-tools button:hover{background:#ffffff0d;border-color:#78b5d233}.canvas-leave{position:absolute;right:2%;bottom:4.4%;width:18.5%;height:6.4%;border:1px solid #987219;border-radius:6px;font-weight:800;letter-spacing:3px;font-size:clamp(12px,1.4vw,21px);background:linear-gradient(#fffbcd,#ffe672 45%,#eebc3f 55%,#ffdc65);box-shadow:0 1px #fff inset,0 3px #9a7a0a;color:#846219;text-shadow:0 1px #fff}.toast{position:absolute;bottom:13%;left:38%;transform:translateX(-50%);background:#072e47ec;color:#fff0b5;border:1px solid #8acbe678;border-radius:5px;padding:12px 20px;font-size:13px;box-shadow:0 4px 18px #0004;max-width:65%;z-index:10;text-align:center}.practice-tools{background:#0a2d4780;border:1px solid #39708b70;border-radius:5px;padding:15px 18px;font-size:12px}.practice-tools>div:first-child{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.practice-label{color:#f5d56d;letter-spacing:1px;margin-right:12px;font-weight:700}.practice-tools button.selected{color:#fff1aa;background:#6991aa20;border-color:#82aac740}.drill-guide{margin:14px 0 12px;color:#abd3e6;line-height:1.7}.phase-meter{display:flex;gap:15px;align-items:center;color:#8fbdd4;font-size:11px}.meter-track{position:relative;max-width:260px;height:7px;background:#061b2b;border-radius:4px;flex:1;overflow:hidden}.meter-window{position:absolute;left:55%;width:10%;height:100%;background:#4bca96}#meter-cursor{position:absolute;width:3px;height:100%;background:#fff4b3;left:0}.debug-toggle{display:flex;align-items:center;gap:7px;margin-top:12px;color:#6e9bb5;font-size:11px}.debug-toggle input{margin:0}.result-panel{text-align:center;width:360px}.result-title{color:#d5880d;font-weight:900;font-size:32px;margin:10px 0}.result-panel p{font-size:12px;color:#6590a9}.result-panel .gold-button{width:100%;margin-top:20px}.result-stat{padding:8px 0;border-bottom:1px solid #b6dbe9;display:flex;justify-content:space-between;font-size:12px}footer{font-size:10px;color:#5989a4;display:flex;justify-content:space-between;gap:10px;margin-top:10px;line-height:1.7}dialog{padding:0;width:min(520px,90vw);max-height:85vh;border:2px solid #116c9b;border-radius:6px;color:#24506c;background:#ddf5ff;box-shadow:0 0 0 2px #8ad3e9}dialog::backdrop{background:#021c32aa;backdrop-filter:blur(3px)}dialog h2{font-size:19px;margin:0 0 12px}dialog h3{font-size:14px;margin:20px 0 8px}dialog p{font-size:12px;line-height:1.9;margin:8px 0}.help-note{background:#d4eaf5;border-left:3px solid #70b7d7;padding:8px 12px;color:#5e8198}#lan-addresses{font-size:12px;line-height:1.8;word-break:break-all;color:#287bab}.game-frame:fullscreen{display:grid;place-items:center;background:#062139;width:100vw;height:100vh;padding:0;border:0}.game-frame:fullscreen .game-stage{width:min(100vw,133.333vh);height:min(75vw,100vh)}@media(min-width:1300px){.app{width:min(1120px,calc((100vh - 160px)*1.3333));min-width:760px}.app:has(.practice-tools:not([hidden])){width:min(1000px,calc(100% - 48px))}}@media(max-width:760px){.app{width:calc(100% - 16px);margin-top:8px}.brand{gap:10px}.edition{font-size:10px;letter-spacing:0}.brand-mark{font-size:24px}.connection{font-size:10px}#latency{display:none}.game-toolbar{flex-wrap:wrap;padding:10px 0}.wasd{display:none}.overlay{transform:translate(-50%,-50%) scale(.78);transform-origin:center;width:340px}.room-panel{width:400px}.toolbar-actions button{padding:5px 8px}footer{flex-wrap:wrap}.practice-tools{padding:12px}.toast{font-size:11px;padding:8px 12px}}@media(max-width:480px){.overlay{transform:translate(-50%,-50%) scale(.58)}.connection #connection-label{max-width:80px;overflow:hidden;white-space:nowrap}.edition{display:none}}
#bubble-skin{background:#143e59;color:#d8edf8;border:1px solid #49738b;border-radius:4px;padding:4px 7px;font-size:11px;max-width:120px}#bubble-skin:focus-visible{outline:2px solid #ffe785}
#home-panel{width:410px}.lobby-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:17px}.lobby-title strong{font-size:22px;color:#175581}.lobby-title span{font-size:11px;color:#6089a1}.public-rooms{height:142px;overflow-y:auto;margin:15px 0 8px;background:#effaff;border:1px solid #a3cfe3;border-radius:4px}.empty-lobby{padding:43px 16px;text-align:center;font-size:12px;color:#759aaf;margin:0}.public-room{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px;border-bottom:1px solid #c4e2f0}.public-room:last-child{border:0}.public-room strong{display:block;color:#295875;font-size:12px;margin-bottom:5px}.public-room span{font-size:10px;color:#7393a7}.public-room button{white-space:nowrap}.public-room button:disabled{cursor:default}.public-room>div{min-width:0}.public-room strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.public-rooms::-webkit-scrollbar{width:5px}.public-rooms::-webkit-scrollbar-thumb{background:#a4d1e6;border-radius:4px}#home-panel .divider{margin:13px 0 9px}#home-panel .window-content{padding:18px 22px}#home-panel .field{margin-bottom:10px}#home-panel .small-note{margin-top:10px}@media(max-width:760px){#home-panel{width:390px}}
#home-panel{max-height:94%;display:flex;flex-direction:column}#home-panel .window-content{overflow-y:auto;min-height:0}#home-panel .window-title{flex-shrink:0}
#death-screen{position:absolute;left:1%;top:0;width:75%;height:90.3%;background:#020509;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:18px;pointer-events:none;color:#9aaabd;z-index:2}#death-screen span{font-size:20px;letter-spacing:4px}#death-screen strong{font:bold 90px/1 Consolas,monospace;color:#ffdf71;text-shadow:0 0 25px #d0891830}#death-screen small{font-size:14px;letter-spacing:3px}#training-dialog{width:350px}.training-options{display:grid;grid-template-columns:1fr 1fr;gap:18px 10px;padding:16px 0 25px}.training-options label{display:flex;align-items:center;gap:9px;font-size:14px}.training-options input{accent-color:#078ccc;width:16px;height:16px}#training-win{width:100%}
#death-screen{background:transparent;color:#eff8ff;text-shadow:0 2px 6px #001a2e}#death-screen strong{font-size:64px;text-shadow:0 3px 3px #5a3b00,0 0 12px #152a42}#death-screen small{padding:5px 12px;border-radius:4px;background:#0b385b75}
