html,body{margin:0;height:100%;overflow:hidden}#game{display:block;width:100%;height:100%}#ui{position:absolute;inset:0;pointer-events:none;font-family:system-ui,-apple-system,sans-serif;color:#fff}.overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:2rem;background:#0a0c108c;font-size:2.5rem;font-weight:700;letter-spacing:.06em;text-align:center;text-transform:uppercase}.overlay[hidden]{display:none}.hud{position:absolute;top:0;left:0;right:0;display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:1rem 1.5rem}.hud-row{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;width:100%;font-size:1.25rem;font-weight:600}.hud-player{min-width:4rem;padding:.5rem 1rem;border-radius:.75rem;background:#14161cb3;text-align:center}.hud-player--p1{border-left:.35rem solid #e3261b}.hud-player--p2{border-left:.35rem solid #1f6fe5}.hud-timer{padding:.5rem 1.25rem;border-radius:.75rem;background:#14161cd9;font-size:1.5rem;text-align:center}@media (max-width: 1099px){.hud-row{font-size:1rem;gap:.6rem}.hud-player{min-width:2.5rem;padding:.4rem .55rem}.hud-timer{padding:.4rem .8rem;font-size:1.2rem}}@media (max-width: 899px){.hud{padding:.75rem 1rem}.hud-row{font-size:.85rem;gap:.4rem}.hud-player{min-width:2rem;padding:.3rem .4rem}.hud-timer{padding:.3rem .6rem;font-size:1.05rem}}@media (max-width: 699px){.hud{padding:.5rem .6rem}.hud-row{font-size:.7rem;gap:.25rem}.hud-player{min-width:1.5rem;padding:.2rem .3rem}.hud-timer{padding:.25rem .5rem;font-size:.85rem}}.hud-timer--warning{color:#e3261b}.hud-laser-banner{padding:.5rem 2rem;border:.15rem solid #e3261b;border-radius:.5rem;background:#7a1410;color:#fff;font-size:1.5rem;font-weight:800;letter-spacing:.08em;text-align:center;text-transform:uppercase}.hud-laser-banner[hidden],.hud[hidden]{display:none}.hud-min-size-note{position:absolute;inset:0;display:none;align-items:center;justify-content:center;padding:2rem;background:#0a0c10d9;color:#fff;font-size:clamp(1rem,9vmin,2rem);font-weight:800;letter-spacing:.06em;text-align:center;text-transform:uppercase;pointer-events:none}.hud-min-size-note[hidden]{display:none}@media (max-width: 639px),(max-height: 479px){.hud-min-size-note:not([hidden]){display:flex}.hud,.hud-powerup-tags{display:none!important}}.hud-powerup-tags{position:absolute;inset:0;pointer-events:none}.hud-powerup-tag{position:absolute;display:flex;align-items:center;gap:.4rem;padding:.35rem .65rem;border-radius:999px;background:#12141ae0;white-space:nowrap}.hud-powerup-tag-icon{font-size:1.05rem;line-height:1}.hud-powerup-tag-icon--speed{color:#f6c21b}.hud-powerup-tag-icon--slow{color:#bfe3fb}.hud-powerup-tag-text{display:flex;flex-direction:column;line-height:1.05}.hud-powerup-tag-label{font-size:.6rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:#4fd8ff}.hud-powerup-tag-seconds{font-size:1.05rem;font-weight:800;color:#fff}.menu-screen{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:2rem;background:#0a0c108c;pointer-events:auto;text-align:center}.menu-screen[hidden]{display:none}.menu-panel{display:flex;flex-direction:column;gap:.75rem;min-width:22rem;padding:1.75rem;border-radius:1rem;background:#14161ce6}.menu-title{font-size:1.75rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;margin-bottom:.25rem}.menu-description{margin:0 0 .5rem;font-size:.95rem;font-weight:500;line-height:1.4;color:#ffffffbf}.menu-line{font-size:1.15rem;font-weight:600}.menu-item{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:.75rem 1.25rem;border-radius:.75rem;background:#ffffff0f;font-size:1.1rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase;cursor:pointer}.menu-item--action{justify-content:center}.menu-item--primary{padding:1rem 1.5rem;font-size:1.25rem;background:#ffffff24}.menu-item--disabled{opacity:.45;cursor:default}.menu-item-group{display:flex;flex-direction:column;gap:.4rem}.menu-item-group--locked{margin-top:.5rem;padding-top:.75rem;border-top:1px solid rgba(255,255,255,.12)}.menu-item-group--locked .menu-item{padding:.5rem 1rem;font-size:.85rem}.menu-item--focused{outline:.2rem solid #ffffff;outline-offset:.15rem;background:#ffffff2e}.menu-item-value{font-weight:700}.menu-item-tag{font-size:.7rem;font-weight:700;letter-spacing:.08em;padding:.2rem .5rem;border-radius:.4rem;background:#0006}.colour-safety-note{padding:.6rem 1rem;border-radius:.6rem;border-left:.35rem solid #f6c21b;background:#f6c21b1f;font-size:.85rem;font-weight:600;line-height:1.4;text-align:left}.colour-safety-note[hidden]{display:none}.build-stamp{position:absolute;right:.75rem;bottom:.5rem;font-size:.7rem;font-weight:500;letter-spacing:.02em;color:#fff6;pointer-events:none}.controls-card{display:flex;flex-direction:column;gap:.5rem;margin-bottom:.5rem}.controls-card-row{padding:.5rem 1rem;border-radius:.5rem;border-left:.35rem solid transparent;background:#ffffff0f;font-size:1rem;font-weight:700;letter-spacing:.03em;text-align:left}.controls-card-row--red{border-left-color:#e3261b}.controls-card-row--blue{border-left-color:#1f6fe5}.controls-card-row--green{border-left-color:#2fb44b}.controls-card-row--yellow{border-left-color:#f6c21b}.controls-card-row--orange{border-left-color:#f27a1a}.controls-card-row--purple{border-left-color:#8a3fd1}.controls-card-row--teal{border-left-color:#12b5b0}.controls-card-row--gold{border-left-color:#e8b028}.how-to-play-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#0a0c108c}.how-to-play-overlay[hidden]{display:none}.how-to-play-panel{max-width:28rem;align-items:flex-start;text-align:left}.how-to-play-line{font-size:1.05rem;font-weight:500;line-height:1.4}.countdown-label{font-size:6rem;font-weight:800;letter-spacing:.05em}.tuning-overlay{position:absolute;top:.5rem;right:.5rem;width:20rem;max-height:calc(100% - 1rem);display:flex;flex-direction:column;gap:.5rem;padding:.75rem;border-radius:.75rem;background:#0a0c10d9;font-size:.75rem;pointer-events:auto;overflow:hidden}.tuning-overlay[hidden]{display:none}.tuning-overlay--collapsed{top:auto;bottom:.5rem;width:auto;max-height:none;padding:.4rem .75rem}.tuning-overlay--collapsed .tuning-overlay-body,.tuning-overlay--collapsed .tuning-overlay-footer{display:none}.tuning-overlay-header{font-size:.9rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;user-select:none}.tuning-overlay-body{display:flex;flex-direction:column;gap:.4rem;overflow-y:auto}.tuning-row{display:grid;grid-template-columns:7.5rem 1fr 3.5rem;align-items:center;gap:.4rem}.tuning-row-label{text-transform:uppercase;letter-spacing:.03em;opacity:.85}.tuning-row-value{text-align:right;font-weight:700}.tuning-presets{display:flex;flex-direction:column;gap:.3rem;padding-top:.3rem;border-top:.0625rem solid rgba(255,255,255,.15)}.tuning-preset-group{display:flex;align-items:center;gap:.3rem;flex-wrap:wrap}.tuning-preset-group-label{min-width:5.5rem;text-transform:uppercase;letter-spacing:.03em;opacity:.85}.tuning-preset-button{padding:.2rem .5rem;border:none;border-radius:.4rem;background:#ffffff24;color:#fff;font-size:.7rem;font-weight:700;cursor:pointer}.tuning-preset-button:hover{background:#ffffff42}.tuning-overlay-footer{display:flex;flex-direction:column;gap:.3rem;padding-top:.3rem;border-top:.0625rem solid rgba(255,255,255,.15)}.tuning-copy-button{padding:.35rem .5rem;border:none;border-radius:.4rem;background:#fff3;color:#fff;font-weight:700;cursor:pointer}.tuning-copy-status{opacity:.85;min-height:1em}.tuning-replay-json{width:100%;height:5rem;resize:vertical;box-sizing:border-box;background:#0006;color:#fff;border:.0625rem solid rgba(255,255,255,.2);border-radius:.4rem;font-family:monospace;font-size:.65rem}.playtest-prompt{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:2rem;background:#0a0c10b3;pointer-events:auto}.playtest-prompt[hidden]{display:none}.playtest-prompt-panel{display:flex;flex-direction:column;gap:1.25rem;min-width:24rem;max-width:32rem;padding:1.75rem;border-radius:1rem;background:#14161ceb}.playtest-prompt-question{display:flex;flex-direction:column;gap:.5rem}.playtest-prompt-question-text{font-size:1.15rem;font-weight:700}.playtest-prompt-field{display:flex;align-items:center;gap:1rem;padding:.5rem .75rem;border-radius:.6rem;background:#ffffff0f}.playtest-prompt-field--focused{outline:.2rem solid #ffffff;outline-offset:.15rem;background:#ffffff2e}.playtest-prompt-field--answered{opacity:.55}.playtest-prompt-field-player{min-width:2rem;font-weight:800;letter-spacing:.04em}.playtest-prompt-field-choices{display:flex;gap:.75rem}.playtest-prompt-choice{opacity:.5;text-transform:uppercase;font-size:.85rem;letter-spacing:.03em}.playtest-prompt-choice--selected{opacity:1;font-weight:800}.playtest-prompt-hint{margin-top:.25rem;opacity:.6;font-size:.8rem;letter-spacing:.04em}.replay-panel{min-width:26rem;max-width:32rem;align-items:stretch;text-align:left}.replay-load,.replay-player{display:flex;flex-direction:column;gap:.75rem}.replay-load[hidden],.replay-player[hidden]{display:none}.replay-paste-label{font-size:.85rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;opacity:.85}.replay-textarea{width:100%;height:8rem;resize:vertical;box-sizing:border-box;padding:.5rem;background:#0006;color:#fff;border:.0625rem solid rgba(255,255,255,.2);border-radius:.4rem;font-family:monospace;font-size:.8rem}.replay-error{display:flex;flex-direction:column;gap:.25rem;padding:.6rem .75rem;border-radius:.5rem;border-left:.35rem solid #e3261b;background:#e3261b1f}.replay-error[hidden]{display:none}.replay-error-heading{font-weight:800;letter-spacing:.03em;text-transform:uppercase}.replay-error-detail{font-size:.85rem;opacity:.85}.replay-readout{font-size:1.5rem;font-weight:800;text-align:center;letter-spacing:.03em}.replay-end{font-size:.9rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;text-align:center;opacity:.85}.replay-end--placeholder{visibility:hidden}.error-screen{z-index:1}.error-reload-button{width:100%;margin-top:.5rem;padding:1rem 1.5rem;border:none;border-radius:.75rem;background:#ffffff24;color:#fff;font:inherit;font-size:1.25rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;text-align:center;cursor:pointer}.error-reload-button:hover,.error-reload-button:focus-visible{background:#ffffff42;outline:.2rem solid #ffffff;outline-offset:.15rem}@media (prefers-reduced-motion: reduce){#ui *,#ui *:before,#ui *:after{transition-duration:.001ms!important;transition-delay:0s!important;animation-duration:.001ms!important;animation-delay:0s!important;animation-iteration-count:1!important}}
