:root{color-scheme:dark;--bg:#10181b;--panel:#182327;--border:#334146;--ink:#ecf0e8;--muted:#a0b0b2;--yellow:#f3d567;--blue:#76cddb;--red:#f58d7c;--green:#b4dc96}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.45 system-ui,-apple-system,Segoe UI,sans-serif}button,input,select{font:inherit}button{color:var(--ink);background:#253237;border:1px solid #47565a;border-radius:5px;padding:8px 12px;cursor:pointer;touch-action:manipulation}button:hover{background:#34464b;border-color:var(--muted)}button:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid var(--yellow);outline-offset:3px}button:disabled{opacity:.38;cursor:not-allowed}button.active{background:var(--yellow);color:#151c1e}kbd{font:11px ui-monospace,monospace;background:#0c1518;border:1px solid #536168;border-bottom-width:2px;border-radius:3px;padding:2px 5px;color:#dde8e6}header{max-width:1440px;margin:auto;padding:22px 28px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{color:var(--ink);font-weight:900;font-size:29px;letter-spacing:-1.5px;text-decoration:none;line-height:1}.brand span{color:var(--yellow)}.brand small{display:block;font:9px/1.8 ui-monospace,monospace;letter-spacing:2px;color:var(--muted);margin-top:6px}nav{display:flex;gap:8px}main{max-width:1440px;margin:auto;padding:0 28px 20px}.mainline{border:1px solid #536044;background:#202b26;border-radius:8px;overflow:hidden}.line-heading{display:flex;align-items:center;justify-content:space-between;padding:12px 18px 0;font:11px ui-monospace,monospace;letter-spacing:1px}.line-heading b{color:var(--green);margin-left:12px}#timer{font-size:25px;letter-spacing:-1px}.live-dot{display:inline-block;width:6px;height:6px;background:var(--green);border-radius:50%;margin-right:7px}.pressure-row{display:flex;gap:24px;align-items:center;padding:4px 18px 22px}#psi{font:48px ui-monospace,monospace;min-width:150px;color:var(--yellow);line-height:1.1}#psi small{font-size:16px}.pressure-track{height:20px;background:#101916;position:relative;flex:1;border-radius:3px}#pressure-fill{height:100%;background:var(--yellow);border-radius:3px;transition:width .06s linear}.ticks{position:absolute;inset:0}.ticks span{position:absolute;border-left:1px solid #63745d;padding-left:4px;padding-top:25px;font:9px ui-monospace,monospace}.line-status{max-width:240px;color:#c1c9b9;font:11px/1.5 ui-monospace,monospace}.pipe{height:28px;background:#0e1715;display:flex;align-items:center;justify-content:space-between;padding:0 16px;color:var(--muted);font:10px ui-monospace,monospace;position:relative}.pipe:after{content:'';position:absolute;height:2px;background:#4d6255;left:45px;right:45px;top:13px}#projectiles{position:absolute;inset:0 48px;z-index:1}.projectile{position:absolute;top:2px;padding:2px 7px;border-radius:3px;background:var(--red);color:#171c1c;transform:translateX(-50%);font-weight:bold;white-space:nowrap}.projectile.backflow{background:var(--blue)}.arena{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}.station{background:var(--panel);border:1px solid var(--border);border-radius:8px;overflow:hidden;--accent:var(--blue)}.p2{--accent:var(--yellow)}.readout{padding:17px 18px 12px}.station-title{display:flex;align-items:center;justify-content:space-between;gap:12px}.player-tag{font:10px ui-monospace,monospace;letter-spacing:2px;color:var(--accent)}h2,h3,p{margin:0}h3{font-size:20px;margin:2px 0 4px}.score{font:32px ui-monospace,monospace;color:var(--accent)}.score small{font-size:13px;color:var(--muted)}.wins{color:var(--accent);font-size:12px}.state{height:24px;font:11px ui-monospace,monospace;letter-spacing:.5px;color:var(--muted);display:flex;justify-content:space-between;align-items:center}.state b{color:var(--yellow)}.bowl{border:1px solid #435157;border-radius:5px;margin:8px 0;padding:12px;background:#111b1e;min-height:92px}.load-title{display:flex;justify-content:space-between;gap:6px;align-items:center}.load-title b{font-size:18px}.load-title span{font:12px ui-monospace,monospace;color:var(--muted)}.hp-track{height:14px;background:#28363b;margin-top:12px;position:relative;overflow:visible;border-radius:2px}.hp-fill{height:100%;background:var(--accent);border-radius:2px}.damage-tick{position:absolute;top:-4px;height:22px;border-left:3px solid var(--green);transition:left .04s}.damage-tick.fail{border-color:var(--red)}.prediction{font:10px ui-monospace,monospace;color:var(--muted);margin-top:6px}.queue{display:flex;gap:6px;align-items:center;margin:10px 0;font-size:11px;color:var(--muted)}.queue>span{font:9px ui-monospace,monospace;letter-spacing:1px}.queue b{font-weight:500;color:#d8dfdf;background:#28363b;padding:4px 9px;border-radius:3px}.gauges{display:grid;grid-template-columns:1fr 1fr;gap:9px 16px}.gauge-top{display:flex;justify-content:space-between;font:10px ui-monospace,monospace;margin-bottom:5px;color:var(--muted)}.gauge-top b{font-weight:normal;color:var(--ink)}.gauge-track{height:6px;background:#0e171a;border-radius:2px;overflow:hidden}.gauge-track i{display:block;height:100%;background:var(--accent);transition:width .06s}.gauge-track .meter{background:var(--green)}.gauge-track .heat{background:var(--red)}.backlog{font:11px ui-monospace,monospace;display:flex;justify-content:space-between;margin-top:13px;color:var(--muted)}.backlog b{color:var(--yellow)}.feedback{height:29px;margin-top:10px;padding:6px 8px;background:#26362f;color:#c1e8a6;border-radius:3px;font:11px ui-monospace,monospace;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.feedback.bad{background:#402e2b;color:#ffad9e}.actions{padding:0 18px 17px;display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.actions button{padding:7px 3px;min-height:43px;font-size:11px;text-align:center;user-select:none;-webkit-user-select:none;touch-action:none}.actions button span{display:block;font:9px ui-monospace,monospace;color:var(--muted);margin-top:3px}.actions button:first-child{border-color:var(--accent);color:var(--accent)}.actions kbd{font-size:9px;padding:0 3px;margin-right:2px}.rhythm{margin-top:16px;border:1px solid var(--border);border-radius:6px;padding:12px 18px;display:flex;align-items:center;gap:24px}.rhythm b{font:10px ui-monospace,monospace;letter-spacing:1px}.rhythm span{display:block;font-size:10px;color:var(--muted)}.beat-track{flex:1;height:6px;background:#2b393e;position:relative}.beat-target{position:absolute;left:0;top:-5px;width:17%;height:16px;background:#577a5c;border-radius:3px}#beat-dot{position:absolute;top:-4px;width:14px;height:14px;border:3px solid var(--bg);background:var(--green);border-radius:50%;transform:translateX(-50%)}#beat-word{min-width:80px;color:var(--green)}footer{display:flex;justify-content:space-between;align-items:center;gap:15px;font:10px ui-monospace,monospace;color:var(--muted);padding-top:17px}footer button{font-size:10px}#practice{padding:12px;margin-top:12px;background:#29362d;border:1px dashed #789366;display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:10px}#practice[hidden]{display:none}#practice button{font-size:11px}dialog{background:#172226;color:var(--ink);border:1px solid #526268;border-radius:12px;width:min(730px,calc(100% - 24px));padding:28px;max-height:92vh;box-shadow:0 30px 120px #0009}dialog::backdrop{background:#071013c9;backdrop-filter:blur(4px)}.dialog-top{display:flex;justify-content:space-between;align-items:center;gap:12px}.dialog-top button{padding:1px 9px;font-size:23px}.eyebrow{font:10px ui-monospace,monospace;letter-spacing:2px;color:var(--yellow)}h1{font-size:36px;letter-spacing:-1px;line-height:1.15;margin:16px 0 10px}dialog h2{font-size:28px;margin:12px 0}dialog p{color:var(--muted);font-size:13px;line-height:1.6;margin:9px 0 17px}.setup-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:22px}label{display:flex;flex-direction:column;gap:6px;color:var(--muted);font-size:11px}select,input{background:#0d171b;color:var(--ink);border:1px solid #46565c;border-radius:4px;padding:9px;min-width:0;max-width:100%}.kit-desc{font-size:11px;color:var(--muted);min-height:34px}.quickstart{margin:20px 0;background:#25342d;border-left:3px solid var(--green);padding:13px 16px}.quickstart p{font-size:12px;margin:6px 0}.primary{display:flex;width:100%;justify-content:space-between;background:var(--yellow);color:#1b221b;border:0;font-weight:800;font-size:15px;padding:13px 16px}.primary:hover{background:#ffe99b}.scope{display:block;color:var(--muted);font-size:10px;text-align:center;margin-top:12px}.rules-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.rules-grid p{margin:0}.rules-grid b{color:var(--ink)}table{border-collapse:collapse;width:100%;font-size:12px;margin:15px 0}td,th{text-align:left;padding:7px 8px;border-bottom:1px solid var(--border)}th{color:var(--muted);font-weight:500}.volume{flex-direction:row;align-items:center;gap:10px;margin:18px 0}input[type=range]{width:100px;padding:0}#result-score{font-size:16px}#result-menu{width:100%;margin-top:10px}#pause-banner{position:fixed;inset:45% auto auto 50%;transform:translate(-50%,-50%);background:#101b1ff2;border:1px solid var(--yellow);padding:25px 70px;text-align:center;box-shadow:0 0 0 100vmax #0006;font-size:28px;letter-spacing:3px;pointer-events:none}#pause-banner small{display:block;font-size:11px;color:var(--muted);letter-spacing:0}[hidden]{display:none!important}@media(min-width:1500px){header{padding-top:32px}main{padding-top:10px}.readout{padding:22px}.bowl{padding:20px 14px}.actions{padding:0 22px 22px}.actions button{min-height:50px}.rhythm{margin-top:22px}}@media(max-width:850px){header{padding:15px;align-items:flex-start}.brand{font-size:24px}nav{flex-wrap:wrap;justify-content:flex-end;max-width:240px}nav button{font-size:10px;padding:6px 8px}main{padding:0 12px 15px}.pressure-row{gap:12px}#psi{font-size:36px;min-width:110px}.line-status{display:none}.readout{padding:12px}.actions{padding:0 12px 12px;grid-template-columns:repeat(3,1fr)}.arena{gap:10px}h3{font-size:16px}.score{font-size:27px}.rhythm{gap:12px}.rhythm span{max-width:160px}.queue b{padding:3px;font-size:10px}footer{flex-wrap:wrap;gap:8px}.line-heading{font-size:9px}.line-heading b{margin-left:5px}}@media(max-width:560px){header{gap:8px}.brand small{font-size:7px;letter-spacing:1px}nav{max-width:185px;gap:4px}.arena{grid-template-columns:1fr}.p2 .readout{padding-bottom:10px}.p2 .actions{grid-template-columns:repeat(4,1fr)}.line-heading{padding:10px 12px 0}#round{font-size:8px}#timer{font-size:20px}.pressure-row{padding:8px 12px 22px}#psi{font-size:30px;min-width:100px}.rhythm{position:sticky;bottom:6px;background:#172326;z-index:2}.rhythm span{display:none}.rhythm>div:first-child{max-width:80px}.setup-grid{gap:11px}.rules-grid{grid-template-columns:1fr}dialog{padding:20px}h1{font-size:28px}.volume{flex-wrap:wrap}}

@media(min-width:851px) and (max-height:850px){header{padding:12px 28px}.brand{font-size:25px}.brand small{margin-top:3px}.line-heading{padding-top:8px}#timer{font-size:22px}.pressure-row{padding:3px 18px 19px}#psi{font-size:36px;min-width:130px}.pipe{height:24px}.arena{margin-top:10px;gap:12px}.readout{padding:10px 16px 8px}h3{font-size:18px}.score{font-size:27px}.state{height:20px}.bowl{min-height:74px;margin:5px 0;padding:8px 10px}.hp-track{height:11px;margin-top:7px}.prediction{margin-top:5px}.queue{margin:6px 0}.queue b{padding:2px 7px}.gauges{gap:7px 16px}.gauge-top{margin-bottom:3px}.backlog{margin-top:8px}.feedback{height:24px;padding:5px 8px;margin-top:7px}.actions{padding:0 16px 10px;gap:5px}.actions button{min-height:34px;padding:4px 3px}.actions button span{font-size:8px;margin-top:1px}.rhythm{margin-top:10px;padding:8px 16px}footer{padding-top:9px}#practice{margin-top:8px;padding:8px}}
