.playful-game.kungfu-kickball-app{--play-ink:#3a2414;--play-paper:#fff4dc;--play-accent:#c4441c;--play-soft:#ffe3ad;--play-shadow:#a8652c;--wood:#8d5326;--wood-dark:#4f2a10;--sun:#ffcf3f;--red:#e2412f;--blue:#2f86e0;--safe-t:env(safe-area-inset-top,0px);--safe-b:env(safe-area-inset-bottom,0px);--safe-l:env(safe-area-inset-left,0px);--safe-r:env(safe-area-inset-right,0px);background:#7fc6e8;overflow:hidden;overflow:clip;height:100dvh;touch-action:none;-moz-user-select:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}.kungfu-kickball-app .kk-scene{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none;outline:none}.kungfu-kickball-app .kk-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.kungfu-kickball-app .kk-hud{position:absolute;z-index:4;top:calc(var(--safe-t) + 8px);left:calc(var(--safe-l) + 8px);right:calc(var(--safe-r) + 8px);display:flex;align-items:flex-start;justify-content:space-between;gap:8px;pointer-events:none}.kungfu-kickball-app .kk-icon-btn{pointer-events:auto;width:44px;height:44px;display:grid;place-items:center;border:3px solid var(--wood-dark);border-radius:14px;background:var(--play-paper);color:var(--wood-dark);cursor:pointer;box-shadow:0 3px 0 #0003;touch-action:manipulation}.kungfu-kickball-app .kk-icon-btn .off,.kungfu-kickball-app .kk-icon-btn[aria-pressed=true] .on{display:none}.kungfu-kickball-app .kk-icon-btn[aria-pressed=true] .off{display:inline}.kungfu-kickball-app .kk-mini{display:none;align-items:center;gap:8px;padding:2px 12px;border:3px solid var(--wood-dark);border-radius:14px;background:linear-gradient(#b67a3e,var(--wood));color:#fff4d6;font-weight:800;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;box-shadow:0 3px 0 #0003}.kungfu-kickball-app .kk-mini b{min-width:26px;padding:0 6px;border-radius:8px;font-size:22px;line-height:30px;text-align:center;color:#fff}.kungfu-kickball-app .kk-mini-red{background:var(--red)}.kungfu-kickball-app .kk-mini-blue{background:var(--blue)}.kungfu-kickball-app .kk-mini-time{min-width:56px;text-align:center;font-size:18px}.kungfu-kickball-app[data-orient=portrait] .kk-mini{display:flex}.kungfu-kickball-app:not([data-phase=match]):not([data-phase=paused]) :is(.kk-hud,.kk-keys,.kk-touch,.kk-tags){visibility:hidden}.kungfu-kickball-app .kk-tags{position:absolute;inset:0;z-index:3;pointer-events:none;overflow:hidden}.kungfu-kickball-app .kk-tag{position:absolute;left:0;top:0;padding:1px 7px;border:2px solid #fff;border-radius:9px;color:#fff;font-size:12px;font-weight:800;letter-spacing:.04em;white-space:nowrap;opacity:0;transition:opacity .2s;box-shadow:0 2px 0 #0004;will-change:transform}.kungfu-kickball-app .kk-tag.show{opacity:.92}.kungfu-kickball-app .kk-tag-0{background:var(--red)}.kungfu-kickball-app .kk-tag-1{background:var(--blue)}.kungfu-kickball-app .kk-scorer{position:absolute;z-index:6;left:50%;top:60%;translate:-50% 0;padding:4px 16px;border:3px solid #fff;border-radius:14px;background:var(--red);color:#fff;font-size:clamp(18px,3.4vmin,30px);font-weight:800;letter-spacing:.04em;white-space:nowrap;box-shadow:0 4px 0 #0005;opacity:0;pointer-events:none}.kungfu-kickball-app .kk-scorer[data-team="1"]{background:var(--blue)}.kungfu-kickball-app .kk-scorer.show{animation:kk-banner 2.4s ease-out forwards}@keyframes kk-banner{0%{opacity:0;scale:.4}12%{opacity:1;scale:1.08}20%,85%{opacity:1;scale:1}to{opacity:0;scale:1}}.kungfu-kickball-app .kk-call{position:absolute;z-index:6;left:50%;top:40%;translate:-50% -50%;font-size:clamp(64px,14vmin,150px);font-weight:800;line-height:1;color:#fff;-webkit-text-stroke:4px var(--wood-dark);paint-order:stroke fill;text-shadow:0 7px 0 var(--wood-dark);white-space:nowrap;pointer-events:none}.kungfu-kickball-app .kk-call[data-tone=gold]{color:var(--sun);font-size:clamp(44px,9vmin,110px)}.kungfu-kickball-app .kk-call[data-tone=go]{color:var(--sun)}.kungfu-kickball-app .kk-call.kk-pop{animation:kk-pop .45s cubic-bezier(.2,1.6,.4,1)}@keyframes kk-pop{0%{scale:.3;opacity:0}to{scale:1;opacity:1}}.kungfu-kickball-app .kk-toast{position:absolute;z-index:11;left:50%;top:calc(var(--safe-t) + 62px);translate:-50% 0;max-width:calc(100% - 24px);padding:6px 16px;border-radius:14px;background:#3a2414e6;color:#fff;font-weight:700;text-align:center;opacity:0;transition:opacity .2s;pointer-events:none}.kungfu-kickball-app .kk-toast.show{opacity:1}.kungfu-kickball-app .kk-keys{position:absolute;z-index:4;left:50%;translate:-50% 0;bottom:calc(var(--safe-b) + 8px);width:max-content;max-width:calc(100% - 24px);margin:0;padding:4px 12px;border-radius:10px;background:#3a241499;color:#fff;font-size:13px;font-weight:700;text-align:center;pointer-events:none;display:grid;grid-gap:2px;gap:2px}.kungfu-kickball-app[data-phase=match] .kk-keys{animation:kk-fade 10s ease-out forwards}@keyframes kk-fade{0%,75%{opacity:1}to{opacity:0}}.kungfu-kickball-app .kk-keys-2,.kungfu-kickball-app[data-mode=local] .kk-keys-solo{display:none}.kungfu-kickball-app[data-mode=local] .kk-keys-2{display:inline}.kungfu-kickball-app:is([data-input=touch]) .kk-keys{display:none}@media (hover:none),(pointer:coarse){.kungfu-kickball-app .kk-keys{display:none}}.kungfu-kickball-app .kk-touch{position:absolute;inset:0;z-index:5;display:none;pointer-events:none;touch-action:none}.kungfu-kickball-app[data-input=touch]:is([data-phase=match],[data-phase=paused]) .kk-touch{display:block}.kungfu-kickball-app .kk-pad{position:absolute;inset:0;pointer-events:none;display:none}.kungfu-kickball-app .kk-pad.kk-pad-on{display:block}.kungfu-kickball-app .kk-zone{position:absolute;left:var(--safe-l);bottom:0;width:45%;height:70%;pointer-events:auto;touch-action:none}.kungfu-kickball-app .kk-zone-hint{position:absolute;left:calc(18px + var(--safe-l));bottom:calc(var(--safe-b) + 22px);padding:6px 12px;border:2px dashed #fff8;border-radius:30px;color:#fffc;font-size:18px;letter-spacing:.3em;pointer-events:none}.kungfu-kickball-app .kk-stick{position:absolute;left:0;top:0;width:104px;height:104px;margin:-52px 0 0 -52px;border:3px solid #fffa;border-radius:50%;background:radial-gradient(#ffffff33,#3a241444);opacity:0;pointer-events:none}.kungfu-kickball-app .kk-stick.on{opacity:1}.kungfu-kickball-app .kk-stick.on+.kk-zone-hint{opacity:0}.kungfu-kickball-app .kk-knob{position:absolute;left:50%;top:50%;width:48px;height:48px;margin:-24px 0 0 -24px;border:3px solid var(--wood-dark);border-radius:50%;background:var(--play-paper);box-shadow:0 3px 0 #0004}.kungfu-kickball-app .kk-btns{position:absolute;right:calc(var(--safe-r) + 14px);bottom:calc(var(--safe-b) + 14px);display:flex;align-items:flex-end;gap:14px;pointer-events:none}.kungfu-kickball-app .kk-btn{position:relative;pointer-events:auto;touch-action:none;width:76px;height:76px;display:grid;place-items:center;border:4px solid var(--wood-dark);border-radius:50%;color:var(--wood-dark);font-size:32px;font-weight:800;box-shadow:0 5px 0 #0005;opacity:.9}.kungfu-kickball-app .kk-btn span{grid-area:1/1;line-height:1}.kungfu-kickball-app .kk-btn-jump{background:#9fe36a;margin-bottom:46px}.kungfu-kickball-app .kk-btn-punch{width:88px;height:88px;background:var(--sun);font-size:36px}.kungfu-kickball-app .kk-btn.on{translate:0 4px;box-shadow:0 1px 0 #0005;filter:brightness(1.1)}.kungfu-kickball-app .kk-ring{grid-area:1/1;position:absolute;inset:-9px;width:calc(100% + 18px);height:calc(100% + 18px);rotate:-90deg;pointer-events:none}.kungfu-kickball-app .kk-ring circle{fill:none;stroke:#ff7a1a;stroke-width:8;stroke-linecap:round;stroke-dasharray:calc(var(--charge, 0) * 100) 100;filter:drop-shadow(0 0 4px #ffb347)}.kungfu-kickball-app[data-orient=portrait] .kk-touch{top:auto;height:max(200px,30dvh);background:linear-gradient(#4f2a10cc,#2c170acc);border-top:4px solid var(--wood-dark)}.kungfu-kickball-app[data-orient=portrait] .kk-zone{width:55%;height:100%}.kungfu-kickball-app[data-orient=portrait] .kk-btns{bottom:calc(var(--safe-b) + 22px)}.kungfu-kickball-app:is([data-touch=duo],[data-touch=quad]) .kk-zone{width:22%;height:62%}.kungfu-kickball-app:is([data-touch=duo],[data-touch=quad]) .kk-btns{right:auto;left:calc(22% + 6px);gap:10px}.kungfu-kickball-app:is([data-touch=duo],[data-touch=quad]) :is(.kk-pad-1,.kk-pad-3) .kk-zone{left:auto;right:var(--safe-r)}.kungfu-kickball-app:is([data-touch=duo],[data-touch=quad]) :is(.kk-pad-1,.kk-pad-3) .kk-zone-hint{left:auto;right:calc(18px + var(--safe-r))}.kungfu-kickball-app:is([data-touch=duo],[data-touch=quad]) :is(.kk-pad-1,.kk-pad-3) .kk-btns{left:auto;right:calc(22% + 6px);flex-direction:row-reverse}.kungfu-kickball-app:is([data-touch=duo],[data-touch=quad]) .kk-btn{width:64px;height:64px;font-size:26px}.kungfu-kickball-app:is([data-touch=duo],[data-touch=quad]) .kk-btn-punch{width:74px;height:74px}.kungfu-kickball-app:is([data-touch=duo],[data-touch=quad]) .kk-btn-jump{margin-bottom:36px}.kungfu-kickball-app:is([data-touch=duo],[data-touch=quad]) .kk-pad[data-team="0"] .kk-btn{border-color:var(--red)}.kungfu-kickball-app:is([data-touch=duo],[data-touch=quad]) .kk-pad[data-team="1"] .kk-btn{border-color:var(--blue)}.kungfu-kickball-app:is([data-touch=duo],[data-touch=quad]) .kk-btn:not(.on){opacity:.72}.kungfu-kickball-app[data-touch=quad] .kk-zone{width:24%;height:44%}.kungfu-kickball-app[data-touch=quad] .kk-btns{left:calc(24% + 6px)}.kungfu-kickball-app[data-touch=quad] :is(.kk-pad-1,.kk-pad-3) .kk-btns{right:calc(24% + 6px)}.kungfu-kickball-app[data-touch=quad] :is(.kk-pad-2,.kk-pad-3) .kk-zone{top:calc(var(--safe-t) + 64px);bottom:auto;height:38%}.kungfu-kickball-app[data-touch=quad] :is(.kk-pad-2,.kk-pad-3) .kk-zone-hint{top:18px;bottom:auto}.kungfu-kickball-app[data-touch=quad] :is(.kk-pad-2,.kk-pad-3) .kk-btns{top:calc(var(--safe-t) + 70px);bottom:auto;align-items:flex-start}.kungfu-kickball-app[data-touch=quad] :is(.kk-pad-2,.kk-pad-3) .kk-btn-jump{margin:36px 0 0}.kungfu-kickball-app .kk-rotate{position:absolute;inset:0;z-index:8;display:none;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:24px;background:#3a2414ee;color:#fff;text-align:center;font-size:20px;font-weight:800}.kungfu-kickball-app .kk-rotate p{margin:0;max-width:320px}.kungfu-kickball-app .kk-rotate-icon{font-size:56px;animation:kk-tilt 1.6s ease-in-out infinite}@keyframes kk-tilt{0%,30%{rotate:0deg}60%,to{rotate:-90deg}}.kungfu-kickball-app[data-input=touch]:is([data-touch=duo],[data-touch=quad])[data-orient=portrait]:is([data-phase=match],[data-phase=paused]) .kk-rotate{display:flex}.kungfu-kickball-app[data-input=touch]:is([data-touch=duo],[data-touch=quad])[data-orient=portrait] .kk-touch{display:none}.playful-game.kungfu-kickball-app .overlay{background:linear-gradient(90deg,transparent 40%,#3a241466);-webkit-backdrop-filter:none;backdrop-filter:none}.playful-game.kungfu-kickball-app .kk-loading{background:#7fc6e8ee}.kungfu-kickball-app .play-panel{box-shadow:0 8px 0 var(--play-shadow),0 18px 40px #3a241455}.kungfu-kickball-app .kk-kicker{display:inline-block;padding:2px 12px;border-radius:10px;background:var(--play-soft);color:var(--play-accent);font-size:13px;font-weight:800;letter-spacing:.08em}.kungfu-kickball-app .kk-title{margin:0;font-size:30px;line-height:1.1;color:var(--play-accent)}.kungfu-kickball-app .kk-menu{align-items:flex-end;padding:18px max(24px,4vw)}.kungfu-kickball-app .kk-topline{position:absolute;top:calc(var(--safe-t) + 4px);left:0}.kungfu-kickball-app .kk-panel{width:min(420px,100%);padding:16px 20px 14px;display:grid;grid-gap:10px;gap:10px;text-align:center}.kungfu-kickball-app .kk-logo{margin:0;line-height:0}.kungfu-kickball-app .kk-logo img{width:min(100%,340px);height:auto;aspect-ratio:2/1;object-fit:contain;filter:drop-shadow(0 4px 0 #4f2a1055)}.kungfu-kickball-app .kk-sub{margin:0;font-size:15px;line-height:1.3}.kungfu-kickball-app .kk-field{display:grid;grid-template-columns:64px 1fr;align-items:center;grid-gap:8px;gap:8px;text-align:left}.kungfu-kickball-app .kk-field-label{font-size:14px;font-weight:800;color:var(--play-accent)}.kungfu-kickball-app .kk-seg{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;grid-gap:4px;gap:4px;padding:4px;border-radius:14px;background:var(--play-soft)}.kungfu-kickball-app .kk-seg-btn{min-height:44px;padding:0 6px;border:2px solid transparent;border-radius:10px;background:transparent;color:var(--play-ink);font-size:16px;font-weight:800;cursor:pointer;touch-action:manipulation}.kungfu-kickball-app .kk-seg-btn[aria-checked=true]{background:#fff;border-color:var(--play-accent);color:var(--play-accent);box-shadow:0 2px 0 var(--play-shadow)}.kungfu-kickball-app .kk-seg-btn:disabled{cursor:default;opacity:.7}.kungfu-kickball-app .kk-play{min-height:56px;margin-top:2px}.kungfu-kickball-app :is(.kk-local-note,.kk-cpu-note){display:none;margin:0;font-size:13px;opacity:.8}.kungfu-kickball-app[data-mode=cpu] .kk-cpu-note,.kungfu-kickball-app[data-mode=local] .kk-local-note{display:block}.kungfu-kickball-app .kk-cpu-only{display:none}.kungfu-kickball-app:is([data-mode=cpu],[data-mode=local]) .kk-cpu-only{display:block}.kungfu-kickball-app .kk-offline-only{display:grid;grid-gap:10px;gap:10px}.kungfu-kickball-app .kk-online-only,.kungfu-kickball-app[data-mode=online] .kk-offline-only{display:none}.kungfu-kickball-app[data-mode=online] .kk-online-only{display:grid}.kungfu-kickball-app .kk-online{gap:8px;padding:10px 12px 12px;border-radius:18px;background:var(--play-soft)}.kungfu-kickball-app .kk-online h2{margin:0;font-size:20px;color:var(--play-accent)}.kungfu-kickball-app .kk-online p{margin:0;font-size:14px;line-height:1.3}.kungfu-kickball-app .kk-join{display:grid;grid-template-columns:1fr auto;grid-gap:8px;gap:8px}.kungfu-kickball-app .kk-join .a-secondary{margin:0}.kungfu-kickball-app .kk-join input{min-height:44px;min-width:0;padding:0 12px;border:2px solid #d8a86a;border-radius:12px;background:#fff;font-size:17px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;text-align:center;-moz-user-select:text;user-select:text;-webkit-user-select:text;touch-action:manipulation}.kungfu-kickball-app .kk-join input::placeholder{letter-spacing:0;text-transform:none;font-weight:600}.kungfu-kickball-app .kk-help{font-size:14px;text-align:left}.kungfu-kickball-app .kk-help summary{min-height:36px;line-height:36px;cursor:pointer;font-weight:800;color:var(--play-accent);text-align:center}.kungfu-kickball-app .kk-help p{margin:4px 0;line-height:1.35}.kungfu-kickball-app .kk-help-touch,.kungfu-kickball-app[data-input=touch] .kk-help-keys{display:none}.kungfu-kickball-app[data-input=touch] .kk-help-touch{display:block}.kungfu-kickball-app .kk-settings{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;font-size:14px}.kungfu-kickball-app .kk-setting{min-height:44px;padding:0 12px;border:2px solid #e2b67a;border-radius:12px;background:#fff;cursor:pointer;font-weight:700;touch-action:manipulation}.kungfu-kickball-app .kk-best-line b{color:var(--play-accent)}.kungfu-kickball-app .kk-select{align-items:center;padding:max(12px,var(--safe-t)) 24px max(12px,var(--safe-b));background:#3a241477}.kungfu-kickball-app .kk-sel-panel{width:min(980px,100%);max-height:calc(100dvh - 24px);overflow-y:auto;display:grid;grid-gap:10px;gap:10px;padding:16px 18px;text-align:center}.kungfu-kickball-app .kk-sel-head{display:grid;justify-items:center;grid-gap:4px;gap:4px}.kungfu-kickball-app .kk-chars{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:10px;gap:10px}@media (min-width:901px){.kungfu-kickball-app .kk-sel-panel .kk-chars{grid-template-columns:repeat(8,1fr);gap:8px}}.kungfu-kickball-app .kk-card{position:relative;display:grid;grid-template-rows:auto auto auto auto;grid-gap:2px;gap:2px;padding:6px 6px 8px;border:3px solid #e7c58f;border-radius:16px;background:#fff;color:var(--play-ink);cursor:pointer;text-align:center;box-shadow:0 3px 0 #d8a86a;touch-action:manipulation;transition:transform .12s,border-color .12s}.kungfu-kickball-app .kk-card img{width:100%;aspect-ratio:1;max-height:19dvh;object-fit:cover;object-position:50% 35%;border-radius:11px;background:color-mix(in srgb,var(--c) 30%,#fff4dc)}.kungfu-kickball-app .kk-card b{font-size:17px;line-height:1.1}.kungfu-kickball-app .kk-card small{font-size:12px;line-height:1.2;opacity:.75}.kungfu-kickball-app .kk-card[aria-checked=true]{border-color:var(--c);box-shadow:0 0 0 3px var(--c),0 4px 0 #0003;transform:translateY(-3px)}.kungfu-kickball-app .kk-marks{position:absolute;top:-9px;left:-6px;right:-6px;z-index:1;display:flex;flex-wrap:wrap;justify-content:space-between;gap:2px;pointer-events:none}.kungfu-kickball-app .kk-mark{padding:1px 6px;border:2px solid #fff;border-radius:9px;background:var(--red);color:#fff;font-size:11px;font-style:normal;font-weight:800;letter-spacing:.04em;box-shadow:0 2px 0 #0004}.kungfu-kickball-app .kk-mark-1{background:var(--blue)}.kungfu-kickball-app .kk-chars.kk-locked .kk-card{cursor:default;opacity:.75}.kungfu-kickball-app .kk-card:disabled{color:var(--play-ink)}.kungfu-kickball-app .kk-teams{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px;text-align:left}.kungfu-kickball-app .kk-team{display:grid;grid-gap:6px;gap:6px;align-content:start;padding:6px;border-radius:16px;background:#ffe1d6}.kungfu-kickball-app .kk-team-1.kk-team{background:#d9e9ff}.kungfu-kickball-app .kk-team h3{margin:0 4px;font-size:13px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--red)}.kungfu-kickball-app .kk-team-1 h3{color:var(--blue)}.kungfu-kickball-app .kk-team-slots{display:grid;grid-template-columns:1fr 1fr;grid-gap:6px;gap:6px}.kungfu-kickball-app .kk-slot{display:grid;grid-template-columns:52px 1fr;grid-gap:4px 8px;gap:4px 8px;align-items:center;min-width:0;padding:6px;border:3px solid #fff;border-radius:14px;background:#fff;box-shadow:0 2px 0 #0002}.kungfu-kickball-app .kk-slot-active{border-color:var(--sun);box-shadow:0 0 0 2px var(--sun),0 3px 0 #0002}.kungfu-kickball-app .kk-slot.kk-me{border-color:var(--sun)}.kungfu-kickball-app .kk-slot-empty{border-style:dashed;border-color:#d9b98c;background:#fffaf0;box-shadow:none}.kungfu-kickball-app .kk-slot-face{width:52px;height:52px;display:grid;place-items:center;padding:0;border:3px solid var(--red);border-radius:12px;background:color-mix(in srgb,var(--c,#fff4dc) 35%,#fff4dc);color:var(--wood-dark);font-size:24px;font-weight:800;overflow:hidden;cursor:pointer;touch-action:manipulation}.kungfu-kickball-app .kk-team-1 .kk-slot-face{border-color:var(--blue)}.kungfu-kickball-app .kk-slot-face:disabled{cursor:default;opacity:1}.kungfu-kickball-app .kk-slot-face img{width:100%;height:100%;object-fit:cover;object-position:50% 30%}.kungfu-kickball-app .kk-slot-info{display:grid;grid-gap:2px;gap:2px;min-width:0}.kungfu-kickball-app .kk-slot-top{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 6px;min-width:0}.kungfu-kickball-app .kk-slot-top>*{max-width:100%}.kungfu-kickball-app .kk-slot-label{overflow:hidden;font-size:15px;color:var(--red);white-space:nowrap;text-overflow:ellipsis}.kungfu-kickball-app .kk-team-1 .kk-slot-label{color:var(--blue)}.kungfu-kickball-app .kk-slot-char{font-size:13px;font-weight:700;opacity:.75;white-space:nowrap}.kungfu-kickball-app .kk-slot-meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px;font-size:12px;font-weight:700}.kungfu-kickball-app .kk-badge{display:inline-flex;gap:3px;padding:1px 7px;border-radius:8px;background:var(--play-soft);white-space:nowrap}.kungfu-kickball-app .kk-badge.kk-warn{background:#ffd4c4;color:#a3341c}.kungfu-kickball-app .kk-slot-state{padding:1px 7px;border:0;border-radius:8px;background:#eee3d0;color:#7a5a3a;font:inherit;white-space:nowrap}.kungfu-kickball-app button.kk-slot-state{min-height:44px;padding:0 10px;cursor:pointer;touch-action:manipulation}.kungfu-kickball-app .kk-slot-state.kk-ok{background:#c9f0a8;color:#2f6a1a}.kungfu-kickball-app .kk-slot-btns{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:4px}.kungfu-kickball-app .kk-slot-btn,.kungfu-kickball-app .kk-slot-kind{min-width:44px;min-height:44px;padding:0 8px;border:2px solid #e2b67a;border-radius:10px;background:#fff;color:var(--play-ink);font-size:16px;font-weight:800;cursor:pointer;touch-action:manipulation}.kungfu-kickball-app .kk-slot-kind{flex:1 1 76px;display:inline-flex;align-items:center;justify-content:center;gap:4px;min-width:76px;font-size:14px;white-space:nowrap}.kungfu-kickball-app :is(.kk-slot-btn,.kk-slot-kind):disabled{cursor:default;opacity:.55}.kungfu-kickball-app .kk-caret{font-size:11px;opacity:.7}.kungfu-kickball-app .kk-mini-bars{display:grid;grid-gap:2px;gap:2px;padding:2px 4px 0}.kungfu-kickball-app .kk-mini-bars i{height:4px;border-radius:2px;background:linear-gradient(90deg,var(--c) calc(var(--v) * 20%),#eadcc4 0)}.kungfu-kickball-app .kk-detail{display:grid;grid-template-columns:1fr minmax(160px,220px);grid-gap:6px 16px;gap:6px 16px;align-items:center;padding:8px 12px;border-radius:16px;background:var(--play-soft);text-align:left}.kungfu-kickball-app .kk-detail-text{display:grid;grid-gap:2px;gap:2px}.kungfu-kickball-app .kk-detail-text b{font-size:22px;color:var(--play-accent)}.kungfu-kickball-app .kk-detail-text span{font-size:14px;line-height:1.3}.kungfu-kickball-app .kk-d-alt{font-weight:700}.kungfu-kickball-app .kk-d-alt i{display:inline-block;width:14px;height:14px;margin-left:4px;vertical-align:-2px;border:2px solid #fff;border-radius:50%;box-shadow:0 0 0 1px #0003}.kungfu-kickball-app .kk-bars{display:grid;grid-template-columns:auto 1fr;grid-gap:3px 8px;gap:3px 8px;margin:0;font-size:13px;font-weight:800}.kungfu-kickball-app .kk-bars dt{color:var(--play-accent)}.kungfu-kickball-app .kk-bars dd{margin:0;align-self:center;height:10px;border-radius:5px;background:#fff;overflow:hidden}.kungfu-kickball-app .kk-bars dd i{display:block;height:100%;width:calc(var(--v, 0) * 20%);border-radius:5px;background:var(--c,var(--play-accent));transition:width .2s}.kungfu-kickball-app .kk-sel-row{display:grid;grid-template-columns:1fr 2fr;grid-gap:10px;gap:10px;align-items:center}.kungfu-kickball-app .kk-sel-row .a-secondary{margin:0;min-height:52px}.kungfu-kickball-app .kk-sel-row .big{min-height:56px}.kungfu-kickball-app #kk-sel-go[aria-pressed=true]{background:#9fe36a;border-color:#4f8a2a;box-shadow:inset 0 3px 0 #dfffc4,0 5px 0 #4f8a2a;color:#24420f}.kungfu-kickball-app .kk-sel-keys{display:none;margin:0;font-size:12px;opacity:.7}.kungfu-kickball-app[data-mode=cpu] .kk-sel-keys-cpu,.kungfu-kickball-app[data-mode=local] .kk-sel-keys-local{display:block}.kungfu-kickball-app[data-input=touch] .kk-sel-keys{display:none}.kungfu-kickball-app .kk-lobby-status{margin:0;min-height:20px;font-size:15px;font-weight:700}.kungfu-kickball-app .kk-lobby,.kungfu-kickball-app .kk-lobby-length,.kungfu-kickball-app .kk-lobby-status:empty{display:none}.kungfu-kickball-app[data-phase=lobby] .kk-lobby{display:grid;grid-template-columns:auto auto 1fr;align-items:center;grid-gap:8px 12px;gap:8px 12px;padding:8px 10px;border-radius:16px;background:var(--play-soft);text-align:left}.kungfu-kickball-app[data-phase=lobby] .kk-lobby-length{display:block}.kungfu-kickball-app[data-phase=lobby] .kk-sel-keys{display:none}.kungfu-kickball-app .kk-room-line{margin:0;font-size:14px;font-weight:700}.kungfu-kickball-app .kk-room-line b{display:inline-block;margin-left:4px;padding:0 10px;border-radius:8px;background:#fff;font-size:22px;letter-spacing:.16em;color:var(--play-accent);-moz-user-select:text;user-select:text;-webkit-user-select:text}.kungfu-kickball-app .kk-room-btns{display:flex;gap:6px}.kungfu-kickball-app .kk-room-btns .a-secondary{margin:0;min-height:44px;padding:6px 12px;font-size:15px;white-space:nowrap}.kungfu-kickball-app .kk-sel-panel .kk-card img{max-height:12dvh}.kungfu-kickball-app .kk-room-btns [hidden],.kungfu-kickball-app .kk-sel-panel .kk-card small{display:none}.kungfu-kickball-app :is(.kk-paused,.kk-results,.kk-netbox){align-items:center;background:#3a241466}.kungfu-kickball-app .kk-card-panel{width:min(440px,100%);text-align:center;display:grid;grid-gap:10px;gap:10px;padding:18px 22px}.kungfu-kickball-app .kk-card-panel .kk-kicker{justify-self:center}.kungfu-kickball-app .kk-card-panel .a-secondary{margin:0}.kungfu-kickball-app .kk-card-panel [hidden]{display:none}.kungfu-kickball-app .kk-net-text{margin:0;font-size:15px;line-height:1.35}.kungfu-kickball-app #kk-r-title[data-tone=lose]{color:#6a5240}.kungfu-kickball-app #kk-r-title[data-tone=team1]{color:var(--blue)}.kungfu-kickball-app #kk-r-title[data-tone=team0]{color:var(--red)}.kungfu-kickball-app .kk-r-final{display:flex;align-items:center;justify-content:center;gap:12px;margin:0;font-size:40px;font-weight:800;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.kungfu-kickball-app .kk-r-final b{min-width:64px;padding:2px 10px;border-radius:14px;color:#fff;box-shadow:0 4px 0 #0003}.kungfu-kickball-app .kk-r-points{display:grid;justify-items:center;grid-gap:0;gap:0;padding:6px;border-radius:16px;background:var(--play-soft)}.kungfu-kickball-app .kk-r-points[hidden]{display:none}.kungfu-kickball-app .kk-r-points>span{font-size:13px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--play-accent)}.kungfu-kickball-app .kk-r-score{margin:0;font-size:48px;font-weight:800;line-height:1;color:var(--play-accent);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.kungfu-kickball-app .kk-r-best{margin:0;font-size:14px}.kungfu-kickball-app .kk-r-best.kk-new{color:#2f8a2f;font-weight:800}.playful-game.kungfu-kickball-app table.stat-grid{display:table;width:100%;max-width:none;margin:0;padding:6px 10px;border-collapse:separate;border-spacing:0 2px;font-size:16px;box-shadow:0 4px 0 var(--play-shadow)}.kungfu-kickball-app .kk-r-stats td,.kungfu-kickball-app .kk-r-stats th{padding:2px 6px;text-align:center;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.kungfu-kickball-app .kk-r-stats tbody th{max-width:9em;overflow:hidden;text-align:left;font-weight:800;color:var(--red);white-space:nowrap;text-overflow:ellipsis}.kungfu-kickball-app .kk-r-stats tr.kk-team-1 th{color:var(--blue)}.kungfu-kickball-app .kk-r-stats tr.kk-me :is(th,td){background:#fff3c4}.kungfu-kickball-app .kk-r-stats thead th{font-size:13px;color:#6a5240}.kungfu-kickball-app .kk-r-stats td{font-weight:800;color:var(--play-ink)}.kungfu-kickball-app .kk-r-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px}.kungfu-kickball-app .kk-results .share-btn{margin:0;justify-self:center}.kungfu-kickball-app #kk-rematch[aria-pressed=true]{background:#9fe36a;border-color:#4f8a2a;box-shadow:inset 0 3px 0 #dfffc4,0 5px 0 #4f8a2a;color:#24420f}@media (max-aspect-ratio:4/5),(max-width:700px){.playful-game.kungfu-kickball-app .overlay{background:linear-gradient(180deg,transparent 20%,#3a241477 60%)}.kungfu-kickball-app .kk-menu,.kungfu-kickball-app :is(.kk-select,.kk-paused,.kk-results,.kk-netbox){align-items:center;justify-content:flex-end;padding:0 8px calc(var(--safe-b) + 8px)}.kungfu-kickball-app :is(.kk-panel,.kk-card-panel,.kk-sel-panel){width:100%;max-height:78dvh;overflow-y:auto;border-radius:24px;padding:12px 12px 10px;gap:8px}.kungfu-kickball-app .kk-sel-panel{max-height:90dvh}.kungfu-kickball-app .kk-logo img{width:min(70%,260px)}.kungfu-kickball-app .kk-sub{font-size:14px}.kungfu-kickball-app .kk-chars{gap:6px}.kungfu-kickball-app .kk-card{padding:4px 4px 6px;border-radius:12px}.kungfu-kickball-app .kk-card b{font-size:14px}.kungfu-kickball-app .kk-card small{display:none}.kungfu-kickball-app .kk-detail{grid-template-columns:1fr;padding:6px 10px}.kungfu-kickball-app .kk-detail-text b{font-size:18px}.kungfu-kickball-app[data-phase=lobby] .kk-lobby{grid-template-columns:1fr auto}.kungfu-kickball-app .kk-team-slots{grid-template-columns:1fr}.kungfu-kickball-app .kk-title{font-size:26px}.kungfu-kickball-app .kk-r-final{font-size:32px}.kungfu-kickball-app .kk-r-score{font-size:40px}}@media (max-height:520px){.kungfu-kickball-app .kk-menu,.kungfu-kickball-app :is(.kk-select,.kk-paused,.kk-results,.kk-netbox){padding-top:6px;padding-bottom:calc(var(--safe-b) + 6px);justify-content:center}.kungfu-kickball-app .kk-menu{align-items:flex-end}.kungfu-kickball-app :is(.kk-panel,.kk-card-panel,.kk-sel-panel){max-height:calc(100dvh - 12px);overflow-y:auto;padding:10px 14px;gap:6px}.kungfu-kickball-app .kk-logo img{width:200px}.kungfu-kickball-app .kk-sub{display:none}.kungfu-kickball-app .kk-chars{grid-template-columns:repeat(8,1fr);gap:6px}.kungfu-kickball-app .kk-card{padding:3px 3px 5px}.kungfu-kickball-app .kk-card b{font-size:13px}.kungfu-kickball-app .kk-card small{display:none}.kungfu-kickball-app .kk-detail{grid-template-columns:1fr 180px;padding:4px 10px}.kungfu-kickball-app .kk-detail-text b{font-size:17px}.kungfu-kickball-app .kk-sel-head{grid-auto-flow:column;justify-content:center;align-items:center;gap:10px}.kungfu-kickball-app .kk-team{padding:4px;gap:4px}.kungfu-kickball-app .kk-team h3{display:none}.kungfu-kickball-app .kk-slot{grid-template-columns:44px 1fr;padding:4px}.kungfu-kickball-app .kk-slot-face{width:44px;height:44px}.kungfu-kickball-app .kk-title{font-size:22px}.kungfu-kickball-app .kk-call{top:36%}.kungfu-kickball-app .kk-btn{width:64px;height:64px;font-size:26px}.kungfu-kickball-app .kk-btn-punch{width:74px;height:74px}.kungfu-kickball-app .kk-btn-jump{margin-bottom:34px}.kungfu-kickball-app .kk-results-panel{width:min(720px,100%);grid-template-columns:1fr 1fr;grid-auto-flow:row dense;align-items:start;gap:6px 14px}.kungfu-kickball-app .kk-results-panel>:is(.kk-kicker,#kk-r-title,#kk-r-note,#kungfu-kickball-leaderboard,#kk-r-status){grid-column:1/-1}.kungfu-kickball-app .kk-results-panel>.kk-r-final{grid-column:1}.kungfu-kickball-app .kk-results-panel>.kk-r-stats{grid-column:1;grid-row:span 3}.kungfu-kickball-app .kk-results-panel>:is(#kk-r-points,#kk-rematch,.kk-r-row,#kk-share){grid-column:2}.kungfu-kickball-app .kk-results-panel #kungfu-kickball-leaderboard{order:1}.kungfu-kickball-app .kk-r-final{font-size:28px}.kungfu-kickball-app .kk-r-score{font-size:32px}.kungfu-kickball-app .kk-results-panel .big{min-height:48px;padding:6px 12px;font-size:19px}}@media (prefers-reduced-motion:reduce){.kungfu-kickball-app *,.kungfu-kickball-app :before{animation:none!important;transition:none!important}}