.deuce{--deuce-accent:#ffd60a;--deuce-team0:#5aa9ff;--deuce-team1:#b98bff;--deuce-red:#ff5c5c}.deuce-muted{color:#8e8e93}.deuce-faint{color:#6e6e73}.deuce-error{color:#ff8080}.deuce .is-accent{color:var(--deuce-accent)}.deuce-team0,.deuce-text0{color:var(--deuce-team0)}.deuce-team1,.deuce-text1{color:var(--deuce-team1)}.deuce-bg0{background:var(--deuce-team0)}.deuce-bg1{background:var(--deuce-team1)}.deuce-board{background:#ffffff0a;border:1px solid #ffffff14;border-radius:.75rem;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:.75rem;padding:.875rem 1rem;display:grid}.deuce-board-side{flex-direction:column;min-width:0;display:flex}.deuce-board-center{align-items:center;gap:.75rem;display:flex}.deuce-dot{border-radius:9999px;flex:none;width:.75rem;height:.75rem}.deuce-games{justify-content:center;gap:.4rem;font-size:2.25rem;font-weight:700;line-height:1;display:flex}.deuce-dash{color:#5c5c62;font-weight:400}.deuce-caption{margin-top:.25rem;font-size:.75rem}.deuce-divider{background:#ffffff1f;width:1px;height:3rem}.deuce-call{color:#f2f2f4;white-space:nowrap;font-size:2.25rem;font-weight:700;line-height:1}.deuce-call.is-long{font-size:1.35rem;line-height:2.25rem}.deuce-lang{border:1px solid #ffffff26;border-radius:.5rem;display:inline-flex;overflow:hidden}.deuce-lang button{color:#a1a1aa;cursor:pointer;padding:.2rem .55rem;font-size:.75rem;font-weight:600}.deuce-lang button+button{border-left:1px solid #ffffff26}.deuce-lang button.is-active{background:var(--color-brand-500);color:#fff}@media (width<=639px){.deuce-board{grid-template-columns:minmax(0,1fr) minmax(0,1fr);padding:.75rem}.deuce-board-center{grid-area:1/1/auto/-1;justify-content:center}.deuce-games,.deuce-call{font-size:1.85rem}.deuce-call.is-long{font-size:1.1rem;line-height:1.85rem}}.deuce-court{aspect-ratio:90/48;-webkit-user-select:none;user-select:none;border-radius:.75rem;margin-top:1rem;position:relative;overflow:hidden;container-type:inline-size}.deuce-court-svg{width:100%;height:100%;position:absolute;inset:0}.deuce-hint{color:#f4efe8;opacity:.55;pointer-events:none;font-size:clamp(10px,1.6cqw,14px);font-weight:700;position:absolute;transform:translate(-50%,-50%)}.deuce-zone{color:#fff;z-index:1;background:#ffffff0a;border:1px solid #ffffff40;flex-direction:column;justify-content:center;align-items:center;gap:.25rem;width:50%;height:50%;transition:background-color .12s;display:flex;position:absolute}.deuce-zone:not(:disabled){cursor:pointer}.deuce-zone:not(:disabled):hover{background:#ffd60a2e}.deuce-zone.is-revealed{border:3px solid var(--deuce-accent);background:#ffd60a47}.deuce-zone.is-wrong{border:3px solid var(--deuce-red);background:#ff5c5c40}.deuce-zone-title{font-size:clamp(13px,2.2cqw,20px);font-weight:700}.deuce-zone-sub{color:#f4efe8;opacity:.8;font-size:12px}.deuce-zone-sub:empty{display:none}.deuce-player{--size:clamp(24px, 4.6cqw, 44px);width:var(--size);height:var(--size);z-index:2;border-radius:9999px;position:absolute;transform:translate(-50%,-50%)}.deuce.is-ready .deuce-player{transition:left .7s cubic-bezier(.65,0,.35,1),top .7s cubic-bezier(.65,0,.35,1)}@media (prefers-reduced-motion:reduce){.deuce.is-ready .deuce-player{transition:none}}.deuce-player.is-selectable{cursor:pointer}.deuce-player:disabled{pointer-events:none}.deuce-body{font-weight:700;font-size:calc(var(--size) * .45);color:#101014;border:2px solid #ffffff59;border-radius:9999px;justify-content:center;align-items:center;transition:transform .12s;display:flex;position:absolute;inset:0}.deuce-team0 .deuce-body{background:var(--deuce-team0)}.deuce-team1 .deuce-body{background:var(--deuce-team1)}.deuce-player.is-selectable:hover .deuce-body{transform:scale(1.1)}.deuce-player:focus-visible{outline-offset:4px;outline:2px solid #fff}.deuce-ring{border:3px solid var(--deuce-accent);border-radius:9999px;display:none;position:absolute;inset:-6px}.deuce-player.is-serving .deuce-ring,.deuce-player.is-revealed .deuce-ring,.deuce-player.is-wrong .deuce-ring,.deuce-player.is-erring .deuce-ring{display:block}.deuce-player.is-wrong .deuce-ring,.deuce-player.is-erring .deuce-ring{border-color:var(--deuce-red)}.deuce-player.is-revealed .deuce-ring{animation:1.04s ease-in-out infinite deuce-pulse}@keyframes deuce-pulse{50%{transform:scale(1.18)}}.deuce-key{color:#f2f2f4;background:#0e0e10;border:1px solid #5c5c62;border-radius:4px;width:18px;height:18px;font-size:11px;font-weight:700;line-height:16px;display:none;position:absolute;top:-9px;right:-9px}.deuce-player.is-selectable .deuce-key{display:block}.deuce-name{color:#f2f2f4;white-space:nowrap;text-shadow:0 1px 2px #0009;font-size:clamp(10px,1.7cqw,14px);position:absolute;top:calc(100% + 4px);left:50%;transform:translate(-50%)}.deuce-player.is-serving .deuce-name,.deuce-player.is-revealed .deuce-name{font-weight:700}.deuce-player.is-wrong .deuce-name,.deuce-player.is-erring .deuce-name{color:#ff8080}.deuce-ball{z-index:3;pointer-events:none;position:absolute}.deuce-ball-shadow,.deuce-ball-body{border-radius:9999px;position:absolute}.deuce-ball-shadow{background:#0000004d;width:clamp(8px,1.2cqw,12px);height:clamp(4px,.6cqw,6px);transform:translate(-50%,-50%)}.deuce-ball-body{background:#e4f53b;border:1px solid #b7c51f;width:clamp(8px,1.1cqw,11px);height:clamp(8px,1.1cqw,11px)}.deuce-ball-label{color:#ff6b6b;white-space:nowrap;text-shadow:0 1px 2px #000000b3;font-size:15px;font-weight:700;position:absolute;top:-14px;transform:translate(-50%,-100%)}.deuce-ball-label.is-fault{color:#ffd27a}.deuce-toast{z-index:4;border:1px solid var(--deuce-accent);color:#f2f2f4;white-space:nowrap;opacity:0;pointer-events:none;background:#2a2a33;border-radius:9999px;padding:.45rem 1rem;font-weight:700;transition:opacity .18s;position:absolute;top:.75rem;left:50%;transform:translate(-50%)}.deuce-toast.is-good{color:#7cf0ad;background:#1f3a2b;border-color:#4cd98a}.deuce-toast.is-visible{opacity:1}.deuce-panel{background:#ffffff0a;border:1px solid #ffffff14;border-radius:.75rem;min-height:12rem;margin-top:1rem;padding:1.25rem}.deuce-prompt{color:#f2f2f4;margin-top:.35rem;font-size:1.4rem}.deuce-prompt.is-final{font-size:1.75rem;font-weight:700}.deuce-row{flex-wrap:wrap;align-items:center;gap:.6rem;margin-top:.75rem;display:flex}.deuce-input{color:#f2f2f4;background:#0e0e10;border:1px solid #ffffff2e;border-radius:.5rem;max-width:100%;padding:.5rem .75rem;font-size:1.05rem}.deuce-input:focus{border-color:var(--color-brand-400);box-shadow:0 0 0 1px var(--color-brand-400);outline:none}.deuce-primary{background:var(--color-brand-600);color:#fff;cursor:pointer;border-radius:.5rem;padding:.5rem 1.1rem;font-weight:600;transition:background-color .12s}.deuce-primary:hover{background:var(--color-brand-500)}.deuce-grid{grid-template-columns:auto repeat(5,auto);gap:.375rem;display:grid}.deuce-chip{color:#e6e6ea;cursor:pointer;background:#24242a;border-radius:.5rem;min-width:3.25rem;padding:.45rem .75rem;font-size:.875rem;transition:background-color .12s}.deuce-chip:hover{background:#2e2e36}@media (width<=639px){.deuce-grid{grid-template-columns:repeat(5,minmax(0,1fr));width:100%}.deuce-grid>span{grid-column:1/-1;padding-top:.25rem}.deuce-chip{min-width:0;padding:.55rem .25rem}}.deuce-chip.is-picked{background:var(--color-brand-500);color:#fff}.deuce-link{color:var(--color-brand-400);cursor:pointer;font-size:.875rem}.deuce-link:hover{color:var(--color-brand-300)}.deuce-help{color:#e5e5e5;background:#1c1c21;border:1px solid #2c2c32;border-radius:1rem;max-width:min(54rem,100vw - 2rem);margin:auto;padding:1.75rem}.deuce-help::backdrop{background:#000000b3}.deuce-kbd{text-align:center;background:#0e0e10;border:1px solid #3a3a40;border-radius:4px;flex:none;min-width:3.75rem;padding:.15rem .4rem;font-family:inherit;font-size:.8rem;font-weight:700}@media (pointer:coarse){.deuce-keys-only,.deuce-player .deuce-key{display:none!important}.deuce-help .grid{grid-template-columns:1fr}}
