html{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}img,svg{-webkit-user-drag:none}input,textarea,[contenteditable]:not([contenteditable=false]),.selectable{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}html,body,#root{background:var(--ku-background);height:100%;color:var(--ku-text);font:16px / 1.4 var(--ku-font);margin:0}.game{height:100%;position:relative;overflow:hidden}.stage{touch-action:none;-webkit-user-select:none;user-select:none;position:absolute;inset:0}.hud{pointer-events:none;flex-direction:column;justify-content:space-between;padding:16px;display:flex;position:absolute;inset:0}.hud>*{pointer-events:auto}.hud.playing>*{pointer-events:none}.hud-top{grid-template-columns:1fr auto 1fr;align-items:start;gap:16px;display:grid}.score.right{text-align:right;grid-column:3}.status{text-align:center;grid-area:1/2}.player-0{color:var(--ku-player-0)}.player-1{color:var(--ku-player-1)}.score .label{color:inherit}.big{font-variant-numeric:tabular-nums;font-size:3rem;font-weight:700;line-height:1.1}.label{color:var(--ku-muted);font-size:.85rem}.turn{font-weight:700}.signal{align-items:flex-end;gap:4px;font-size:.85rem;display:inline-flex}.signal .bars{align-items:flex-end;gap:2px;display:inline-flex}.signal .bars i{background:var(--ku-muted);opacity:.35;width:4px}.signal .bars i:first-child{height:6px}.signal .bars i:nth-child(2){height:10px}.signal .bars i:nth-child(3){height:14px}.signal.good .bars i{background:var(--ku-good);opacity:1}.signal.fair .bars i:nth-child(-n+2){background:var(--ku-fair);opacity:1}.signal.slow{color:var(--ku-slow)}.signal.slow .bars i:first-child{background:var(--ku-slow);opacity:1}.panel{box-sizing:border-box;background:var(--ku-panel);border-radius:20px;width:100%;max-width:420px;margin:auto;padding:20px}.panel h1,.panel h2{font-family:var(--ku-sticker-font);margin:0 0 12px}.panel p{margin:0 0 12px}.actions{flex-wrap:wrap;gap:10px;display:flex}.join{margin-bottom:4px}.join .label{margin-bottom:6px;display:block}.qr{width:min(56vw,200px);box-shadow:none;border-radius:8px;margin:8px 0 4px;overflow:hidden}.qr:active:not(:disabled){box-shadow:none;transform:none}.code{letter-spacing:.2em;margin:4px 0 12px;font:700 3rem/1.2 ui-monospace,monospace}.link{color:var(--ku-muted);overflow-wrap:anywhere;-webkit-user-select:all;user-select:all;margin:0 0 12px;font:.85rem ui-monospace,monospace}.code-input{letter-spacing:.2em;border:var(--ku-outline) solid var(--ku-muted);width:7ch;color:var(--ku-text);text-transform:uppercase;background:0 0;border-radius:14px;padding:8px 12px;font:700 1.4rem ui-monospace,monospace}.code-input:focus-visible{border-color:var(--ku-secondary);outline:none}button{--ku-face:var(--ku-secondary);--ku-drop:color-mix(in srgb, var(--ku-face) var(--ku-shade), black);font:1.15rem / 1.2 var(--ku-sticker-font);border:var(--ku-outline) solid var(--ku-ink);background:var(--ku-face);color:var(--ku-ink);box-shadow:0 var(--ku-depth) 0 var(--ku-drop);cursor:pointer;border-radius:16px;padding:12px 22px;font-weight:800;transition:transform 60ms,box-shadow 60ms}button.primary{--ku-face:var(--ku-primary)}button:active:not(:disabled){transform:translateY(calc(var(--ku-depth) - 1px));box-shadow:0 1px 0 var(--ku-drop)}button:focus-visible{outline:3px solid var(--ku-text);outline-offset:3px}button:disabled{opacity:.55;cursor:default}.error{color:var(--ku-text);border-left:3px solid var(--ku-primary);padding-left:8px}.back-button{bottom:max(16px, env(safe-area-inset-bottom));left:max(16px, env(safe-area-inset-left));z-index:2;position:absolute}.settings-button{bottom:max(16px, env(safe-area-inset-bottom));right:max(16px, env(safe-area-inset-right));z-index:2;border-radius:50%;place-items:center;width:48px;height:48px;padding:0;display:grid;position:absolute}.settings-button svg{width:26px;height:26px}.settings-backdrop{z-index:3;background:#00000080;place-items:center;padding:16px;display:grid;position:absolute;inset:0}.settings-menu{box-sizing:border-box;background:var(--ku-panel);border-radius:20px;flex-direction:column;gap:14px;width:min(100%,300px);padding:20px 24px 26px;display:flex;position:relative}.settings-title{text-align:center;font:1.5rem var(--ku-sticker-font);margin:0}.settings-message{text-align:center;margin:0}.settings-version{opacity:.7;text-align:center;margin:4px 0 0;font-size:.75rem}.settings-toggles{grid-template-rows:1fr auto auto 1fr;grid-auto-columns:84px;grid-auto-flow:column;justify-content:center;column-gap:12px;height:84px;display:grid}.settings-toggle{grid-row:span 4;grid-template-rows:subgrid;justify-items:center;row-gap:4px;padding:0 4px 2px;font-size:.8rem;line-height:1.2;display:grid}.settings-toggle svg{grid-row:2;width:28px;height:28px}.settings-toggle-label{grid-row:3}button.settings-confirm{--ku-face:var(--ku-primary)}.settings-close{width:36px;height:36px;box-shadow:none;color:var(--ku-text);background:0 0;border:0;padding:0;font-size:1.1rem;position:absolute;top:10px;right:10px}.title{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:20px;min-height:0;padding-bottom:64px;display:flex}.logo{--size:min(80vw, 44vh, 400px);width:var(--size);height:auto}.title .actions{flex-direction:column;align-items:stretch;gap:14px;width:min(100%,280px)}.title-status{text-align:center;max-width:320px;font-size:.9rem}.title-status p{margin:0}.title .copyright{text-align:center;color:var(--ku-text);margin:0;font-size:.75rem}@media (aspect-ratio>=5/4){.title{flex:0 auto;grid-template:"logo."1fr"logo actions""logo status""logo."1fr"copyright copyright"/minmax(0,1fr) minmax(0,1fr);place-items:center;gap:14px clamp(16px,5vw,64px);width:100%;max-width:960px;margin:auto;padding-bottom:0;display:grid}.logo{--size:min(42vw, 85vh, 480px);grid-area:logo}.title .actions{grid-area:actions}.title-status{grid-area:status}.title .copyright{grid-area:copyright;margin-top:clamp(4px,3vh,24px)}}.backdrop{background:var(--ku-backdrop);transition:opacity var(--ku-fade-ms) ease;position:absolute;inset:0}.backdrop.gone{opacity:0;pointer-events:none}.hud.leaving-slide,.hud.leaving-slide>*{pointer-events:none}.hud.leaving-slide .actions>button{animation:.3s ease-in both ku-off-left}.hud.leaving-slide .actions>button:nth-child(2){animation-name:ku-off-right;animation-delay:70ms}.hud.leaving-slide .actions>button:nth-child(3){animation-delay:.14s}.hud.leaving-slide .title>:not(.actions),.hud.leaving-slide .panel>:not(.actions){animation:.25s ease-in both ku-fade-out}.hud.leaving-slide .panel{animation:.25s ease-in .25s both ku-fade-out}@keyframes ku-off-left{to{transform:translate(-100vw)}}@keyframes ku-off-right{to{transform:translate(100vw)}}@keyframes ku-fade-out{to{opacity:0}}
