:root{font-family:PingFang SC,Microsoft YaHei,sans-serif;color:#d8e4f0;background:#080f1c;font-synthesis:none;color-scheme:dark}*{box-sizing:border-box}body{margin:0}[hidden]{display:none!important}button{font:inherit;cursor:pointer;touch-action:manipulation}button:disabled{opacity:.4;cursor:default}button:focus-visible{outline:2px solid #b8edff;outline-offset:2px}.shell{height:100vh;height:100dvh;width:100%;max-width:960px;margin:auto;padding:6px 12px 8px;display:flex;flex-direction:column}header{height:24px;flex:none;text-align:center}h1{margin:0;font-size:13px;font-weight:600;line-height:24px;letter-spacing:2px;color:#9aaabd}.stage-room{flex:1;min-height:0;display:flex;justify-content:center;align-items:flex-start}.game-panel{width:100%;min-width:0}.hud{height:52px;display:grid;grid-template-columns:1.3fr 1fr 1fr 1.1fr;align-items:center;gap:6px}.hud-item{min-width:0;display:flex;flex-direction:column;gap:4px;position:relative}.label{font-size:10px;color:#73859b;white-space:nowrap}.hud strong{font-size:14px;font-weight:500;font-variant-numeric:tabular-nums;white-space:nowrap}#hearts{display:flex;gap:3px;color:#fa987b;font-size:15px;line-height:17px}#hearts .lost{color:#314154}#score{color:#d7edf5}#remaining{color:#e9a383}#ball-badge{position:absolute;top:1px;right:3px;font-size:9px;color:#a7cbdc;white-space:nowrap}.canvas-wrap{position:relative;aspect-ratio:5/7}canvas{display:block;width:100%;height:100%;touch-action:none}.central-layer{position:absolute;inset:0;z-index:2;pointer-events:none}.central-start{position:absolute;left:var(--arena-x);top:var(--arena-y);transform:translate(-50%,-50%);pointer-events:auto;min-width:144px;min-height:48px;max-width:calc(100% - 16px);padding:10px 18px;border:1px solid #b8edff;border-radius:8px;background:#b7e4f5;color:#102c40;box-shadow:0 0 16px #8bdcff26;font-size:14px;font-weight:600;white-space:nowrap}.central-start:hover{background:#d2f1fc}.power-info{height:28px;display:flex;gap:7px;align-items:center;font-size:10px;color:#91cdbd;white-space:nowrap}.power-info #combo{color:#ffb27e;overflow:hidden;text-overflow:ellipsis}.power-info button{margin-left:auto;background:none;border:0;color:#8597ac;font-size:10px;padding:4px 8px;min-height:24px}.bottom-controls{height:48px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;align-items:start;padding-top:4px}.bottom-controls button{height:44px;border:1px solid #2b3b51;background:#121f30;color:#b5c3d5;border-radius:6px;font-size:12px;white-space:nowrap}.bottom-controls button:hover:enabled{background:#1a2d43}.settlement{position:absolute;left:50%;top:calc(var(--arena-y) - 34px);transform:translate(-50%,-100%);width:calc(100% - 32px);max-width:340px;background:#0b1525ed;border-radius:8px;padding:12px;text-align:center;pointer-events:none}.settlement h2{font-size:17px;margin:0 0 6px;color:#c8e7f5}.settlement p{font-size:10px;line-height:1.5;color:#99acc2;margin:5px 0}.result-total{display:flex;justify-content:center;align-items:center;gap:12px;font-size:11px;color:#9cafc2}.result-total strong{font-size:22px;color:#ffab7e;font-variant-numeric:tabular-nums}.debug{position:fixed;right:8px;bottom:8px;background:#142338;color:#a9c5dc;border:1px solid #34455b;border-radius:4px;font-size:10px;padding:8px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:600px){.shell{padding:4px 8px 8px}header{height:22px}h1{line-height:22px;font-size:12px}.hud{height:48px;gap:5px}.hud strong{font-size:13px}.label{font-size:9px}#hearts{font-size:14px;gap:2px}#ball-badge{font-size:8px;right:0}.power-info{font-size:9px}.settlement{padding:9px}.settlement h2{font-size:15px}}#hearts{font-size:13px;gap:1px}@media(max-width:600px){#hearts{font-size:11px;gap:1px}}header{position:relative;height:44px}header h1{line-height:44px}.trophy{position:absolute;right:0;top:0;width:44px;height:44px;border:0;background:none;font-size:18px;border-radius:6px}.ranking-dialog{width:min(560px,calc(100% - 24px));max-height:88dvh;margin:auto;padding:20px;background:#0d1828;color:#d8e4f0;border:1px solid #33465c;border-radius:12px;overflow:auto;overscroll-behavior:contain}.ranking-dialog::backdrop{background:#030915cf}.ranking-title{display:flex;align-items:center;justify-content:space-between;gap:12px}.ranking-dialog h2{font-size:18px;margin:0}.ranking-dialog h3{font-size:14px;margin:16px 0 8px}.ranking-dialog p{font-size:12px;line-height:1.6}.ranking-dialog button{min-height:40px;border:1px solid #355069;border-radius:6px;background:#14263a;color:#c8e8f4;padding:8px 12px;font-size:12px}.ranking-dialog button:disabled{opacity:.4}.ranking-dialog label{display:block;font-size:12px;color:#9fb2c6}.ranking-dialog input,.ranking-dialog select,.ranking-dialog textarea{display:block;width:100%;min-width:0;margin:6px 0 12px;border:1px solid #334960;border-radius:5px;background:#091321;color:#d8e4f0;padding:9px;font:inherit;font-size:13px}.ranking-dialog select{padding:4px}.ranking-dialog textarea{min-height:70px;resize:vertical}.ranking-dialog summary{cursor:pointer;font-size:12px;padding:10px 0;color:#abcddd}.ranking-actions{display:flex;justify-content:space-between;gap:8px;margin-top:12px}.ranking-actions button{flex:1;min-width:0}.region-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.region-column{min-width:0}.region-column small{display:block;font-size:10px;color:#8296ab;line-height:1.5}.identity-note,.region-note,.ranking-caption{color:#8296ab}.region-selection,#nickname-check{color:#9cd5c2}#online-message{color:#f0b58e;min-height:18px}.ranking-table-wrap{width:100%;overflow:auto}.ranking-dialog table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:12px}.ranking-dialog th,.ranking-dialog td{text-align:left;padding:10px 4px;border-bottom:1px solid #223248;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ranking-dialog th{font-size:10px;font-weight:400;color:#8296ab}.ranking-dialog th:nth-child(1){width:14%}.ranking-dialog th:nth-child(2){width:44%}.ranking-dialog th:nth-child(3){width:27%}.ranking-dialog th:nth-child(4){width:15%}#submit-score{width:100%;background:#a8dcee;color:#102b3c}.appeal{margin-top:8px}.ranking-dialog :focus-visible{outline:2px solid #a8dcee;outline-offset:2px}@media(max-width:600px){header{height:44px}.shell header h1{line-height:44px}.ranking-dialog{padding:14px}.ranking-dialog button{min-height:44px}.region-columns{grid-template-columns:minmax(0,1fr)}.ranking-actions{gap:6px}}.ranking-dialog #online-message{overflow-wrap:anywhere;-webkit-user-select:text;user-select:text}
