:root{color-scheme:dark;font-family:Segoe UI,Arial,sans-serif;color:#f5efff;background:#0c0813;font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 75% 0%,#281235 0%,#0c0813 58%);min-height:100vh}main{max-width:1440px;margin:auto;padding:24px 40px 32px}header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #ffffff10;padding-bottom:20px}.brand{display:flex;align-items:center;gap:14px;color:inherit;text-decoration:none}.brand>span{font-size:38px;font-weight:950;font-style:italic;letter-spacing:-4px;border:2px solid #a95fed;padding:0 10px 4px 6px;transform:skew(-7deg);line-height:1.15}.brand b{font-size:15px;letter-spacing:2px}.brand small{display:block;font-size:10px;color:#b6a8c8;letter-spacing:2px;margin-top:5px}.badge{font-size:12px;letter-spacing:1.5px;border:1px solid #8260a04d;padding:9px 13px;border-radius:20px;color:#cdb7e5}.intro{display:flex;align-items:flex-end;justify-content:space-between;margin:28px 0 22px}.eyebrow{font-size:11px;letter-spacing:3px;color:#bc81ec;margin:0 0 5px;font-weight:700}h1{font-size:44px;letter-spacing:-2px;margin:0;line-height:1.12}.subtitle{font-size:15px;color:#b0a0c2;margin:9px 0 0}button{font:inherit;cursor:pointer;transition:background .16s,box-shadow .16s}button:disabled{opacity:.6;cursor:wait}.quiet{border:1px solid #5e426d;background:#1d1329;color:#e8d9f9;border-radius:8px;padding:11px 18px;font-size:14px}.quiet:hover{background:#342047}.primary{display:flex;gap:38px;align-items:center;justify-content:center;padding:15px 30px;border:1px solid #c98cf0;border-radius:8px;background:linear-gradient(115deg,#aa59d2,#7743c3);color:#fff;font-weight:700;font-size:17px;box-shadow:0 8px 40px #792bbf40}.primary:hover{box-shadow:0 8px 45px #a552db70}.game-shell{position:relative;border:1px solid #543566;border-radius:14px;overflow:hidden;background:#09060e;aspect-ratio:16/9;box-shadow:0 20px 80px #0006}canvas{display:block;width:100%;height:100%;outline:none;background:#09060e}.start-panel{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(ellipse at 50% 50%,#281635 0%,#0c0914 80%)}.crosshair{font-size:78px;color:#bb83e0;font-weight:200;line-height:.9;text-shadow:0 0 50px #a64fea}.start-panel h2{font-size:30px;letter-spacing:-.5px;margin:20px 0 0}.start-panel p{font-size:14px;color:#c5b4d8;text-align:center;margin:13px 20px 24px;max-width:600px}progress{width:min(460px,70%);height:5px;margin:0 0 24px;accent-color:#b271e2;border:0;border-radius:5px}progress::-webkit-progress-bar{background:#352242;border-radius:5px}progress::-webkit-progress-value{background:#b271e2;border-radius:5px}.game-label{position:absolute;top:16px;left:18px;letter-spacing:2px;font-size:10px;color:#e4c7f4;background:#140b1ebf;border:1px solid #9f71c533;border-radius:5px;padding:7px 10px;pointer-events:none}.under-game{display:flex;align-items:center;justify-content:space-between;gap:18px;color:#c3b3d4;font-size:13px;margin:13px 0 18px}.under-game p{margin:0;display:flex;align-items:center;gap:9px;flex-wrap:wrap}kbd{font-family:inherit;color:#e1d2ef;font-size:11px;background:#24182f;border:1px solid #523965;border-radius:4px;padding:4px 7px}#runtime-status{white-space:nowrap;color:#bda1d3}.notice{display:flex;gap:10px;align-items:center;color:#b2a0c3;font-size:13px}.notice p{margin:0}.dot{width:6px;height:6px;flex:none;border-radius:100%;background:#ad73d3}details{margin-top:22px;color:#a892be;font-size:12px}summary{cursor:pointer}pre{white-space:pre-wrap;word-break:break-word;padding:15px;border:1px solid #503565;background:#100b18;border-radius:8px;max-height:260px;overflow:auto;font-size:12px;color:#cfbfdc}.resume-panel{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#10081966}.game-shell:fullscreen{border:0;border-radius:0;aspect-ratio:auto;background:#000}.game-shell:fullscreen canvas{width:100%;height:100%;object-fit:contain}[hidden]{display:none!important}@media(max-width:700px){main{padding:18px 16px}.intro{margin:24px 0 18px}h1{font-size:34px}.badge{font-size:10px}.brand b{font-size:12px}.brand small{font-size:8px}.under-game{align-items:flex-start;flex-direction:column}.start-panel h2{font-size:22px}.crosshair{display:none}.start-panel p{margin:9px 14px 15px}.primary{font-size:15px;padding:11px 20px}.quiet{padding:9px 12px}.game-shell{min-height:300px}}
.chat-panel{position:absolute;z-index:8;left:1%;top:14%;width:90%;display:flex;align-items:baseline;gap:6px;padding:0;background:transparent;border:0;font:700 clamp(16px,1.3vw,26px) Consolas,monospace;color:#ffb820;text-shadow:1px 2px 1px #000;pointer-events:auto}.chat-panel label{color:inherit;font:inherit}.chat-panel input{min-width:0;flex:1;border:0;border-radius:0;padding:0;background:transparent;outline:0;color:inherit;font:inherit;text-shadow:inherit;caret-color:#ffb820}.chat-panel span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.nickname-label{font-size:14px;font-weight:600;margin:4px 0 8px}.nickname-input{width:min(340px,85%);padding:12px 16px;border:1px solid #80559c;border-radius:8px;background:#1d1329;color:#fff;font:inherit}.nickname-input:focus{outline:2px solid #b77ce6;outline-offset:2px}#preset-status{font-size:13px;margin:10px 16px 18px}#save-status{font-size:13px;color:#baa7ce}.start-panel{overflow:auto;padding:24px 0}.start-panel .crosshair{font-size:40px}.start-panel h2{margin-top:10px}@media(max-height:650px){.start-panel .crosshair{display:none}}
.connection-panel{position:absolute;inset:0;z-index:10;display:flex;align-items:center;justify-content:center;background:#0b0713f5;padding:24px}.connection-card{width:min(560px,100%);padding:30px;background:#20132d;border:1px solid #80539d;border-radius:12px;box-shadow:0 16px 70px #0009}.connection-card h2{font-size:24px;margin:14px 0}.connection-card p{line-height:1.5;font-size:14px;color:#d2c2e0}.connection-card .eyebrow{font-size:11px;color:#bf86ec}.connection-meter{display:flex;align-items:center;gap:14px;margin:22px 0 12px}.connection-meter progress{flex:1;width:100%;height:14px;margin:0;accent-color:#b271e2}.connection-meter span{font-size:14px;font-variant-numeric:tabular-nums}#connection-file{overflow-wrap:anywhere;font-family:Consolas,monospace}#connection-message{color:#efbf85}.connection-card button{margin-top:10px}@media(max-width:600px){.connection-card{padding:18px}.connection-card h2{font-size:20px}.connection-panel{padding:12px}}
.resolution-status{font-size:14px;color:#c8b8d8;margin:12px 0}
.options-panel{position:absolute;inset:0;z-index:20;background:#08060bd9;display:flex;align-items:center;justify-content:center;padding:16px}
.options-card{display:flex;flex-direction:column;width:min(720px,100%);max-height:100%;background:#21192b;border:1px solid #79618d;border-radius:10px;box-shadow:0 16px 70px #000a;font-size:15px}
.options-card header{padding:12px 20px}.options-card h2{margin:0;font-size:24px}.options-card nav{display:flex;gap:6px;padding:12px 20px 0;flex-wrap:wrap}.options-card nav [aria-pressed=true]{background:#70449b;border-color:#c490ef}
.options-content{padding:0 20px;overflow:auto;min-height:0;flex:1}.options-content p{color:#c9bad7;line-height:1.5}.option-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid #ffffff12;min-height:48px}.option-row input[type=number]{width:100px}.option-row input[type=checkbox]{width:19px;height:19px;accent-color:#b27be0}.option-row select,.option-row input[type=number]{background:#140e1c;color:#fff;border:1px solid #795d8e;border-radius:5px;font:inherit;padding:9px}.option-row>span:has(input){display:flex;align-items:center;gap:12px}.option-row output{width:45px;text-align:right}.option-row input[type=range]{accent-color:#b27be0;width:180px}.binding-list .quiet{min-width:140px;padding:7px 12px}.options-message{padding:8px 20px;margin:0;color:#d5c2e7;font-size:14px;min-height:35px}.options-card footer{display:flex;align-items:center;gap:8px;padding:12px 20px;border-top:1px solid #ffffff20;flex-wrap:wrap}.options-card footer>span{flex:1}.options-card footer .primary{font-size:14px;padding:11px 15px;box-shadow:none}.options-card button:focus-visible{outline:2px solid #d2a3f4;outline-offset:2px}
@media(max-width:650px){.options-panel{padding:6px}.options-card footer,.options-card header,.options-card nav{padding:8px}.options-content{padding:0 12px}.option-row select{max-width:58%}.option-row input[type=range]{width:110px}.options-card footer .quiet,.options-card footer .primary{padding:8px;font-size:12px}}
.binding-buttons{display:flex;gap:6px}.binding-list .binding-clear{min-width:0;color:#c9b9d7;font-size:12px}
