:root{--ink:#13233f;--muted:#56657c;--page:#e8edf0;--paper:#fff;--rule:#c9d2da;--court:#2b5c9c;--kitchen:#3b73b8;--apron:#3f7a58;--ball:#dcea3a;--line:#fff;--gold:#e3b53a;--silver:#b9c3cc;--bronze:#c07a45;--display:"Barlow Condensed", "Arial Narrow", sans-serif;color:var(--ink);background:var(--page);font:17px/1.5 Barlow,system-ui,sans-serif}*{box-sizing:border-box}:root{background-color:#0000;background-image:radial-gradient(60% 45% at 100% 0,#dcea3a47,#0000 70%),radial-gradient(50% 40% at 0 100%,#3b73b82e,#0000 70%),repeating-linear-gradient(-55deg,#13233f08 0 1px,#0000 1px 9px),linear-gradient(170deg,#eef3f6,#d6e1ea);background-position:0 0,0 0,0 0,0 0;background-repeat:repeat,repeat,repeat,repeat;background-size:auto,auto,auto,auto;background-attachment:fixed;background-origin:padding-box,padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box,border-box}body{min-height:100vh;margin:0}body:before{content:"";z-index:-1;aspect-ratio:44/20;pointer-events:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 440 200' fill='none' stroke='white' stroke-opacity='.75' stroke-width='1.4'%3E%3Crect x='1' y='1' width='438' height='198'/%3E%3Cpath d='M150 1v198M290 1v198M1 100h149M290 100h149'/%3E%3Cpath d='M220 -4v208' stroke='%2313233f' stroke-opacity='.08' stroke-width='3'/%3E%3C/svg%3E") 50%/contain no-repeat;width:150vmax;position:fixed;top:50%;left:50%;translate:-50% -50%;rotate:-14deg}h1,h2,h3{font-family:var(--display);letter-spacing:-.01em;margin:0;font-style:italic;font-weight:800;line-height:1}a{color:inherit}:focus-visible{outline:3px solid var(--ink);outline-offset:2px;box-shadow:0 0 0 7px var(--ball)}small{color:var(--muted);font-size:.9rem;font-weight:400;display:block}.muted,.note{color:var(--muted)}.note{margin:10px 0 0}button{min-height:44px;font:inherit;color:var(--ink);background:var(--paper);box-shadow:inset 0 0 0 2px var(--ink);cursor:pointer;white-space:nowrap;border:0;border-radius:6px;justify-content:center;align-items:center;gap:8px;padding:.5em 1.1em;font-weight:600;transition:transform .1s,background-color .15s,color .15s;display:inline-flex}button:hover:not(:disabled){background-color:#f2f7c9}button:active:not(:disabled){transform:scale(.96)}button:disabled{opacity:.45;cursor:not-allowed}.primary{isolation:isolate;font-family:var(--display);box-shadow:none;background:0 0;padding-inline:1.4em;font-size:1.15rem;font-style:italic;font-weight:800;position:relative}.primary:before{content:"";z-index:-1;background:var(--ball);box-shadow:inset 0 0 0 2px var(--ink), 3px 3px 0 var(--ink);border-radius:4px;transition:transform .12s,box-shadow .12s;position:absolute;inset:0;transform:skew(-12deg)}.primary:hover:not(:disabled){background:0 0}.primary:hover:not(:disabled):before{box-shadow:inset 0 0 0 2px var(--ink), 5px 5px 0 var(--ink);transform:skew(-12deg)translate(-2px,-2px)}.primary:active:not(:disabled):before{box-shadow:inset 0 0 0 2px var(--ink), 1px 1px 0 var(--ink);transform:skew(-12deg)translate(2px,2px)}.icon{flex:none;width:1.15em;height:1.15em}.half .icon{width:44px;height:44px}.landing{max-width:1040px;margin:0 auto;padding:24px 16px 48px}.masthead h1{font-size:clamp(3rem,12vw,6rem)}.masthead h1:after{content:"";background:var(--ball);width:2.2em;height:.14em;box-shadow:.12em .12em 0 var(--ink);margin:.12em 0 .2em;display:block;transform:skew(-12deg)}.half .icon{transition:transform .2s}.half:hover .icon{transform:rotate(-14deg)scale(1.1)}.masthead p{max-width:34ch;color:var(--muted);margin:8px 0 28px;font-size:1.15rem}.apron{background:var(--apron);padding:18px}.pick{border:3px solid var(--line);background:var(--court);flex-direction:column;display:flex}.half{min-height:260px;color:var(--line);flex-direction:column;flex:1;gap:6px;padding:28px 24px;text-decoration:none;transition:background-color .15s;display:flex;position:relative}.half:hover{background:#33689f}.half>*{position:relative}.half:before{content:"";background:var(--kitchen);border-top:3px solid var(--line);height:32%;position:absolute;inset:auto 0 0}.half:last-child{justify-content:flex-end}.half:last-child:before{border-top:0;border-bottom:3px solid var(--line);inset:0 0 auto}.half strong{font-family:var(--display);font-size:clamp(2.4rem,8vw,3.6rem);font-style:italic;font-weight:800;line-height:1}.half span{max-width:30ch;font-size:1.05rem}.net{background:var(--ink);flex:none;height:6px;margin:0 -21px}@media (width>=760px){.pick{aspect-ratio:44/20;flex-direction:row}.net{width:6px;height:auto;margin:-21px 0}.half{justify-content:center;min-width:0}.half strong,.half span{max-width:60%}.half:last-child{text-align:right;justify-content:center;align-items:flex-end}.half:before{border-top:0;border-left:3px solid var(--line);width:32%;height:auto;inset:0 0 0 auto}.half:last-child:before{border-bottom:0;border-left:0;border-right:3px solid var(--line);inset:0 auto 0 0}}.recent{margin-top:40px}.recent h2{margin-bottom:8px;font-size:1.8rem}.recent ul{margin:0;padding:0;list-style:none}.recent li{border-bottom:1px solid var(--rule);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 16px;padding:12px 8px;transition:background-color .15s;display:flex;position:relative}.recent li:hover{background:var(--paper)}.recent a{font-family:var(--display);font-size:1.35rem;font-style:italic;font-weight:700;text-decoration:none}.recent a:hover{text-decoration:underline;-webkit-text-decoration-color:var(--ball);text-decoration-color:var(--ball);text-decoration-thickness:3px}.recent span{color:var(--muted);flex:1}.recent .status{border-radius:4px;flex:none;align-self:center;align-items:center;gap:6px;padding:0 8px;font-size:.85rem;font-weight:600;display:inline-flex}.status.ongoing{color:var(--ink);background:var(--ball)}.status.ongoing:before{content:"";background:var(--ink);border-radius:50%;width:7px;height:7px}.status.mine{color:#fff;background:var(--ink)}.status.completed{color:var(--muted);box-shadow:inset 0 0 0 1px var(--rule);background:0 0}.danger{color:var(--line);background:#b3261e;box-shadow:inset 0 0 0 2px #7a1a14}.danger:hover:not(:disabled){background-color:#9a1f19}.recent .delete{color:#b3261e;width:44px;padding:0}.page{max-width:640px;margin:0 auto;padding:20px 16px 48px}.back{font-family:var(--display);align-items:center;gap:6px;font-size:1.25rem;font-weight:700;text-decoration:none;display:inline-flex}.page .back{margin-bottom:16px}.page h1{margin-bottom:20px;font-size:clamp(2.2rem,8vw,3.2rem)}form{gap:18px;display:grid}label{gap:6px;font-weight:600;display:grid}input,textarea{border:2px solid var(--ink);min-height:44px;font:inherit;color:var(--ink);background:var(--paper);border-radius:6px;padding:10px 12px}input[type=number]{max-width:8ch}fieldset{border:0;gap:12px;margin:0;padding:0;display:grid}legend{margin-bottom:8px;padding:0;font-weight:600}.choice{grid-template-columns:auto 1fr;align-items:start;gap:10px}.choice input,.toggle input{width:22px;height:22px;min-height:0;accent-color:var(--court);margin:1px 0 0}.error{color:#7a1a14;background:#fbe9e7;border-left:4px solid #b3261e;margin:0;padding:10px 12px}.board{gap:28px;max-width:1400px;margin:0 auto;padding:16px 16px 48px;display:grid}.bar{color:var(--line);background:var(--ink);border-bottom:5px solid var(--ball);flex-wrap:wrap;align-items:center;gap:8px 20px;margin:-16px -16px 0;padding:14px 16px 18px;display:flex}.bar h1{flex:auto;font-size:clamp(2rem,6vw,3rem)}.bar nav{flex-wrap:wrap;gap:8px 18px;font-weight:600;display:flex}.bar .navlink{color:var(--line);box-shadow:none;background:0 0;text-decoration:none}.bar .navlink:hover{color:var(--ball);background:0 0}.bar .back{color:#b9c6d8;width:100%;font-size:1.05rem;text-decoration:none}.bar .back:hover{color:var(--line)}.in-play{color:#b9c6d8;font-weight:500}.in-play b{font-family:var(--display);color:var(--ball);font-size:1.6rem;font-style:italic}.navlink{align-items:center;gap:6px;display:inline-flex}.badge{vertical-align:middle;color:var(--line);background:var(--lvl,var(--apron));border-radius:999px;margin-left:12px;padding:2px 10px;font-family:Barlow,sans-serif;font-size:.95rem;font-weight:600;display:inline-block}.badge .level{vertical-align:-2px;width:1em;height:1em;margin-right:2px}.court.live .side span{animation:.4s ease-out both arrive}.court.live .side.b span{animation-delay:80ms}@keyframes arrive{0%{opacity:0;transform:translateY(8px)}}.board h2{margin-bottom:10px;font-size:1.7rem}.courts{grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));gap:20px;display:grid}.court-head{justify-content:space-between;align-items:flex-end;gap:12px;min-height:44px;display:flex}.court h3{color:var(--line);background:var(--ink);clip-path:polygon(0 0,100% 0,calc(100% - 14px) 100%,0 100%);align-items:center;gap:10px;padding:8px 26px 6px 14px;font-size:1.6rem;display:flex}.court.live h3:before{content:"";background:var(--ball);border-radius:50%;width:12px;height:12px}.court.idle h3{background:var(--muted)}.court .apron{position:relative}.court-tools{z-index:3;gap:16px;display:flex;position:absolute;top:18px;left:50%;translate:-50%}.court-tools button{background:var(--paper);width:38px;min-height:38px;box-shadow:0 0 0 2px var(--ink), 0 2px 6px #13233f59;border-radius:50%;padding:0}.court-tools button:hover:not(:disabled){background:var(--ball);transform:scale(1.08)}.court-tools .icon{width:18px;height:18px}.court .apron{border-radius:0 6px 6px;padding:10px}.surface{aspect-ratio:44/20;border:2px solid var(--line);background:linear-gradient(var(--line), var(--line)) left 50% / 34.1% 2px no-repeat, linear-gradient(var(--line), var(--line)) right 50% / 34.1% 2px no-repeat, linear-gradient(90deg, transparent 34.1%, var(--line) 34.1% calc(34.1% + 2px), var(--kitchen) calc(34.1% + 2px) calc(65.9% - 2px), var(--line) calc(65.9% - 2px) 65.9%, transparent 65.9%), var(--court);position:relative;container-type:inline-size}.surface:after{content:"";background:linear-gradient(90deg, var(--ink) 30%, var(--line) 30% 70%, var(--ink) 70%);width:6px;position:absolute;top:-12px;bottom:-12px;left:calc(50% - 3px)}.surface:before{content:"";background:radial-gradient(circle, var(--ink) 4px, transparent 4.5px) top / 10px 10px no-repeat, radial-gradient(circle, var(--ink) 4px, transparent 4.5px) bottom / 10px 10px no-repeat;width:10px;position:absolute;top:-17px;bottom:-17px;left:calc(50% - 5px)}.court.idle .surface{opacity:.55;filter:saturate(.4)}.vacant{z-index:1;background:var(--ink);font-family:var(--display);color:var(--line);border-radius:4px;padding:2px 12px;font-size:1.5rem;font-weight:700;position:absolute;top:50%;left:50%;translate:-50% -50%}.side{z-index:2;grid-template-rows:1fr 1fr;width:34.1%;display:grid;position:absolute;top:0;bottom:0}.side.a{left:0}.side.b{right:0}.side span{font-family:var(--display);text-align:center;text-overflow:ellipsis;white-space:nowrap;color:var(--line);text-shadow:0 1px 2px #13233f99;align-self:center;padding:0 6px;font-size:clamp(1.05rem,2.2vw,1.4rem);font-weight:600;overflow:hidden}.fill{margin-top:20px}.rally{z-index:1;pointer-events:none;--t:2.4s;position:absolute;inset:0}.track{width:3.4cqw;height:3.4cqw;animation:rally var(--t) linear var(--delay) infinite;margin:-1.7cqw;position:absolute;top:0;left:0;transform:translate(37cqw,18.2cqw)}.track i{border-radius:50%;position:absolute;inset:0}.shadow{filter:blur(1px);background:#13233f73}.ball{background:radial-gradient(circle at 35% 35%, #f1f78a, var(--ball) 60%, #b9c721);animation:loft var(--t) var(--delay) infinite;box-shadow:0 0 0 1px #13233f80}@keyframes rally{0%,to{transform:translate(37cqw,18.2cqw)}50%{transform:translate(63cqw,27.3cqw)}}@keyframes loft{0%,50%,to{animation-timing-function:ease-out;transform:translate(-.6cqw,-.6cqw)scale(1.15)}22%,72%{animation-timing-function:ease-in;transform:translate(-3cqw,-3cqw)scale(1.55)}38%,88%{animation-timing-function:ease-out;transform:none}}.paddle{transform-origin:50% 100%;width:7cqw;height:11.67cqw;animation:swing var(--t) ease-in-out var(--delay) infinite;position:absolute;overflow:visible}.paddle rect{fill:var(--ink);stroke:var(--line);stroke-width:1.5px}.paddle .grip{fill:var(--line);stroke:var(--ink)}.paddle.a{--dir:1;top:6.53cqw;left:22.8cqw;rotate:90deg}.paddle.b{--dir:-1;animation-delay:calc(var(--delay) - var(--t) / 2);top:15.63cqw;left:70.2cqw;rotate:-90deg}@keyframes swing{0%,35%,to{transform:none}12%{transform:rotate(calc(var(--dir) * 24deg))}88%{transform:rotate(calc(var(--dir) * -18deg))}}.side-col{align-content:start;gap:28px;display:grid}.queue{counter-reset:q;margin:0;padding:0;list-style:none}.queue li{border-bottom:1px solid var(--rule);counter-increment:q;gap:12px;padding:8px 0;display:flex}.queue li:before{content:counter(q);min-width:2ch;font-family:var(--display);color:var(--muted);font-weight:700}.ranks table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}.ranks th,.ranks td{border-bottom:1px solid var(--rule);text-align:right;white-space:nowrap;padding:8px 6px}.ranks th{color:var(--muted);font-size:.85rem;font-weight:600}.ranks th:nth-child(-n+2),.ranks td:nth-child(-n+2){text-align:left}.ranks td:nth-child(2){white-space:normal;width:100%;font-weight:600}.ranks td:first-child{font-family:var(--display);text-align:center;font-size:1.2rem;font-weight:700}.place{min-width:28px;display:inline-block}.medal{width:32px;height:38px;margin:0 auto;display:block;overflow:visible}.medal .ribbon-l{fill:var(--court)}.medal .ribbon-r{fill:var(--kitchen)}.medal circle{fill:var(--m);stroke:var(--ink);stroke-width:1.5px}.medal .shine{fill:none;stroke:#ffffff8c;stroke-width:1.5px}.medal text{font-family:var(--display);fill:var(--ink);font-size:15px;font-weight:700}.medal.gold{--m:var(--gold)}.medal.silver{--m:var(--silver)}.medal.bronze{--m:var(--bronze)}.podium td{font-size:1.05em}.podium{background:linear-gradient(90deg,#dcea3a38,#0000 70%)}.ranks td.pct{background:linear-gradient(90deg, transparent calc(100% - var(--p)), #3f7a5824 0)}.ranks tbody tr{transition:background-color .15s}.ranks tbody tr:not(.detail):hover{background-color:var(--paper)}.row-toggle{text-align:left;white-space:normal;width:100%;min-height:36px;box-shadow:none;background:0 0;justify-content:space-between;padding:0;font-weight:600}.row-toggle .icon{color:var(--muted);transition:transform .15s}.row-toggle[aria-expanded=true] .icon{transform:rotate(180deg)}.live-tag{color:var(--ink);background:var(--ball);border-radius:4px;margin-left:8px;padding:0 6px;font-size:.8rem;font-weight:600;display:inline-block}.ranks .detail td{text-align:left;white-space:normal;background:var(--paper);padding:4px 6px 12px;font-family:inherit;font-size:.95rem;font-weight:400}.games{gap:4px;margin:0;padding:0;font-size:.95rem;list-style:none;display:grid}.games li{align-items:baseline;gap:10px;display:flex}.games b{width:1.4em;font-family:var(--display);text-align:center;border-radius:3px}.games .won b{background:var(--ball)}.games .lost b{color:var(--line);background:var(--muted)}.games .sc{min-width:3.5em;font-weight:600}@media (width>=1000px){.board{grid-template-columns:minmax(0,2fr) minmax(320px,1fr);align-items:start}.bar{grid-column:1/-1}}.display{max-width:none;font-size:1.2rem}.display .courts{grid-template-columns:repeat(auto-fill,minmax(min(100%,420px),1fr))}dialog{width:min(92vw,420px);color:var(--ink);border:0;border-radius:8px;padding:24px}dialog::backdrop{background:#13233f99}dialog h2{font-size:1.8rem}.score-row{grid-template-columns:1fr auto;align-items:center;gap:12px;display:grid}.stepper{align-items:center;gap:6px;display:flex}.stepper button{width:44px;padding:0}.score input{max-width:3.2ch;font-family:var(--display);text-align:center;-moz-appearance:textfield;padding:4px;font-size:2rem}dialog.score{color:var(--line);background:var(--ink);border-top:5px solid var(--ball)}.score .note{color:#b9c6d8}.score-row{background:#ffffff0f;border-radius:4px;padding:8px 10px;transition:background-color .15s}.score-row label{font-family:var(--display);font-size:1.3rem;font-style:italic}.score input{font-variant-numeric:tabular-nums;width:2.4ch;max-width:none;color:var(--line);background:#0a1a33;border-color:#3a5170;font-size:2.6rem;font-weight:700;transition:color .15s}.score-row.lead{background:#dcea3a24}.score-row.lead label,.score-row.lead input{color:var(--ball)}.score .verdict{color:var(--line);border-color:#3a5170}.score .verdict.good,.score .verdict.bad,.score .error{color:var(--ink)}.score :focus-visible,.bar :focus-visible{outline-color:var(--ball)}.score input::-webkit-inner-spin-button{-webkit-appearance:none}.verdict{border-left:4px solid var(--rule);min-height:3em;margin:0;padding:8px 12px}.verdict.good{border-color:var(--apron);background:#e4f1e8}.verdict.bad{background:#fbe9e7;border-color:#b3261e}.actions{justify-content:flex-end;gap:12px;display:flex}.add{grid-template-columns:1fr auto;align-items:end;margin:20px 0}.add .error{grid-column:1/-1}.segmented{border:2px solid var(--ink);border-radius:6px;grid-template-columns:repeat(3,1fr);max-width:460px;display:grid;overflow:hidden}.seg{display:block}.seg input{opacity:0;position:absolute}.seg span{cursor:pointer;align-items:center;min-height:44px;padding:0 16px;transition:background-color .15s;display:flex}.seg+.seg span{border-left:2px solid var(--ink)}.seg span{justify-content:center;gap:6px;padding:0 8px}.seg .level{color:var(--lvl)}.seg input:checked+span{color:var(--line);background:var(--lvl)}.seg input:checked+span .level{color:var(--line)}.beginner{--lvl:#2f7a4a}.novice{--lvl:#2b5c9c}.intermediate{--lvl:#b4541a}.level{fill:currentColor}.seg input:focus-visible+span{outline:3px solid var(--ink);outline-offset:-5px}.search{align-items:center;display:flex;position:relative}.search .icon{color:var(--muted);position:absolute;left:12px}.search input{width:100%;padding-left:40px}.roster{margin:16px 0 0;padding:0;list-style:none}.roster li{border-bottom:1px solid var(--rule);align-items:center;gap:16px;padding:8px 0;display:flex}.who{flex:1;font-weight:600}.away .who{color:var(--muted)}.toggle{align-items:center;gap:6px;min-height:44px;font-weight:500;display:flex}.roster li{flex-wrap:wrap}.roster .replace{flex-basis:100%;gap:8px;display:flex}.roster .replace input{flex:1;min-width:0}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.banner{z-index:1;text-align:center;border-left:0;position:sticky;top:0}.toast{z-index:2;max-width:min(92vw,520px);color:var(--line);background:var(--ink);visibility:hidden;border-radius:8px;align-items:center;gap:8px;margin:0;padding:12px 18px;font-weight:600;transition:transform .2s,visibility .2s;display:flex;position:fixed;bottom:20px;left:50%;transform:translate(-50%,calc(100% + 24px))}.toast.show{visibility:visible;transform:translate(-50%)}.toast .icon{color:var(--ball)}.qr{border:2px solid var(--ink);border-radius:6px;width:min(100%,320px);margin:10px 0 0;display:block}.receipt{border:2px dashed var(--ink);background:var(--paper);grid-template-columns:auto 1fr;gap:8px 16px;margin:20px 0;padding:16px;display:grid}.receipt dt{color:var(--muted)}.receipt dd{overflow-wrap:anywhere;margin:0;font-weight:600}.roster-input>small{margin-top:-6px}.add-name{grid-template-columns:1fr auto;gap:10px;display:grid}.name-grid{grid-template-columns:repeat(var(--cols), minmax(0, 1fr));counter-reset:n;gap:8px;margin:0;padding:0;list-style:none;display:grid}.name-grid li{counter-increment:n;display:flex;position:relative}.name-grid li:before{content:counter(n);color:var(--muted);font-size:.7rem;position:absolute;top:2px;left:6px}.name-grid input{flex:1;min-width:0;padding:14px 30px 6px 8px;font-size:.95rem;font-weight:600}.name-grid button{width:32px;height:100%;min-height:0;box-shadow:none;color:var(--muted);background:0 0;padding:0;position:absolute;top:0;right:0}.name-grid button:hover{color:#b3261e}.event-name::placeholder{color:var(--ink);opacity:.1}.queue .next-game{font-family:var(--display);border:0;grid-template-columns:auto 1fr auto 1fr;align-items:stretch;gap:0;margin-bottom:8px;padding:0;font-size:1.3rem;font-weight:600;line-height:1.2;display:grid}.queue .next-game:before{align-self:center;padding-right:10px}.next-game .team{border:2px solid var(--line);text-align:center;color:var(--line);justify-content:center;align-items:center;padding:10px 8px;display:flex}.next-game .team.a{background:var(--court)}.next-game .team.b{background:var(--apron)}.next-game .vs{color:var(--muted);align-self:center;padding:0 8px;font-size:1rem}.choice.off{opacity:.5;cursor:not-allowed}.queue .next-game{grid-template-columns:auto 1fr auto 1fr auto}.edit-next{align-self:center;width:44px;margin-left:8px;padding:0}.lineup fieldset{border:2px solid var(--rule);border-radius:6px;gap:8px;margin:0;padding:12px;display:grid}.lineup legend{padding:0 4px;font-weight:600}.combo{position:relative}.combo input{width:100%}.combo-list{z-index:1;border:2px solid var(--rule);background:#fff;border-radius:6px;max-height:220px;margin:2px 0 0;padding:4px 0;list-style:none;position:absolute;left:0;right:0;overflow-y:auto;box-shadow:0 6px 16px #13233f2e}.combo-list li{cursor:pointer;align-items:center;min-height:44px;padding:0 12px;display:flex}.combo-list li:hover,.combo-list li[aria-selected=true]{background:#e4f1e8}.combo-list li.muted{cursor:default;background:0 0}a.primary{min-height:44px;color:var(--ink);align-items:center;gap:8px;padding-block:.5em;text-decoration:none;display:inline-flex}.landing .play-link{margin-top:24px}.brand{align-items:center;gap:clamp(10px,2vw,20px);display:flex}.masthead .brand h1{min-width:0;font-size:clamp(2rem,8vw,6rem)}.brand img{width:clamp(72px,16vw,140px);height:auto}.masthead .account{text-align:right;max-width:none;margin:0;font-size:clamp(.8rem,3.2vw,1rem);line-height:1.3}.masthead .account button{min-height:32px;font-size:inherit;vertical-align:middle;margin-inline:2px;padding:0 10px}.levels{flex-wrap:wrap;gap:16px;display:flex}.levels .note{flex-basis:100%;margin:0 0 4px}.play .court{width:min(100%,45.4545dvh - 86.3636px);margin:0 auto;position:relative;container-type:inline-size}.play canvas{border:6px solid var(--apron);touch-action:none;cursor:none;width:100%;display:block}.game-score{text-align:center;font-family:var(--display);margin:0 0 10px;font-size:1.4rem;font-style:italic;font-weight:700}.game-score strong{font-size:2rem}.game-score small{color:var(--muted);font-size:.95rem;font-style:normal;font-weight:600;display:block}.game-over{width:84cqw;color:var(--ink);pointer-events:auto;background:#fffffff2;border-radius:12px;flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;padding:20px 12px;display:flex;box-shadow:0 8px 24px #13233f66}.game-over h2{text-align:center;flex-basis:100%;margin:0;font-size:clamp(1.6rem,12cqw,2.6rem)}.game-over p{text-align:center;font-family:var(--display);flex-basis:100%;margin:0;font-size:1.6rem;font-weight:700}.levels .levels{flex-basis:100%;gap:8px}.levels [aria-pressed=true]{border-color:var(--ink);background:var(--ink);color:var(--line)}.play .levels+.levels{margin-top:28px}.levels h2{flex-basis:100%;font-size:1.8rem}.invite{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:16px;display:flex}.invite .note{flex-basis:100%;margin:0}.calls{pointer-events:none;place-items:center;display:grid;position:absolute;inset:0}.call{flex-direction:column;align-items:center;width:92cqw;padding-top:5cqw;animation:1.8s ease-out both whistle;display:flex}.call img{filter:drop-shadow(0 0 1.5cqw #13233f99);width:80cqw;display:block}.call p{text-align:center;color:var(--line);text-shadow:0 0 4px var(--ink), 0 2px 0 var(--ink);gap:1cqw;margin:0 0 3cqw;font-size:clamp(.95rem,5cqw,1.3rem);font-weight:700;line-height:1.2;display:grid}.call strong{font-family:var(--display);color:#e53935;text-transform:uppercase;-webkit-text-stroke:.08em var(--line);paint-order:stroke fill;text-shadow:.06em .06em 0 var(--ink);font-size:18cqw;font-style:italic;font-weight:800;line-height:.9}.call.pickle strong,.call.point strong,.call.side-out strong,.call.second strong{color:var(--ball);-webkit-text-stroke-color:var(--ink)}.call.second strong{font-size:13cqw}@keyframes whistle{0%{opacity:0;transform:scale(.6)rotate(-6deg)}12%{opacity:1;transform:scale(1.06)rotate(1deg)}20%,85%{opacity:1;transform:none}to{opacity:0;transform:translateY(-10px)}}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.paddles{border:0;flex-wrap:wrap;gap:8px;margin:16px 0;padding:0;display:flex}.paddles legend{margin-bottom:8px;font-weight:600}.paddles label{border:2px solid var(--rule);text-align:center;cursor:pointer;border-radius:8px;flex-direction:column;align-items:center;width:108px;padding:8px 4px;font-size:.8rem;display:flex}.paddles label:has(:checked){border-color:var(--ink);background:#dcea3a40}.paddles label:has(:focus-visible){outline:3px solid var(--court);outline-offset:2px}.paddles input{opacity:0;position:absolute}.paddles canvas{width:66px;height:83px}.lobby{margin-top:28px}.lobby h2{margin-bottom:8px;font-size:1.8rem}.lobby table{border-collapse:collapse;width:100%}.lobby th,.lobby td{border-bottom:1px solid var(--rule);text-align:left;padding:8px 6px}.lobby th{color:var(--muted);font-size:.85rem;font-weight:600}.lobby td:first-child{overflow-wrap:anywhere;width:100%;font-weight:600}.lobby td:last-child{text-align:right}.save{background:var(--ball)}.save:hover:not(:disabled){background:var(--ball);filter:brightness(.95)}.receipt-link{align-items:center;gap:6px;display:inline-flex}
