body{color:#f4f4f4;background:#0e1116;margin:0;font-family:system-ui,sans-serif}.playing .landing,#root{display:none}.playing #root{display:block}#root>.loading{cursor:progress;place-items:center;font-size:2rem;display:grid;position:fixed;inset:0}#root>.loading p{justify-items:center;gap:1rem;display:grid}#root>.loading progress{accent-color:#2f80ed;width:16rem}.landing{--blue:#2f80ed;--green:#22c55e;--red:#e5383b;--muted:#a7adb8;--card:#ffffff0f;line-height:1.5}.landing a{color:#7fb3f5}.landing img,.landing video{max-width:100%;display:block}.defs{position:absolute}.landing .play{cursor:pointer;background:var(--blue);color:#fff;letter-spacing:.15em;text-transform:uppercase;border:0;border-radius:999px;padding:1rem 4rem;font-family:inherit;font-size:2rem;font-weight:800;transition:transform .15s,background .15s;position:relative;overflow:hidden;box-shadow:0 .5rem 2rem #2f80ed73}.landing .play:hover,.landing .play:focus-visible{background:#1f6fdc;transform:scale(1.05)}.landing .play:after{content:"";pointer-events:none;background:linear-gradient(100deg,#0000,#ffffff8c,#0000);width:35%;position:absolute;top:-50%;bottom:-50%;left:0;transform:translate(-180%)skew(-20deg)}.landing .serve{--land:13.25rem;padding-left:5.25rem;display:inline-block;position:relative}.landing .racket{pointer-events:none;transform-origin:56% 86%;width:3.6rem;height:auto;position:absolute;top:-1.1rem;left:0;overflow:visible;-webkit-mask-image:linear-gradient(#000 68%,#0000 88%);mask-image:linear-gradient(#000 68%,#0000 88%)}.landing .serve .halo{opacity:0;pointer-events:none;border-radius:999px;position:absolute;inset:0 0 0 5.25rem;box-shadow:0 0 0 .6rem #2f80ed80}.landing .serve .ball{pointer-events:none;width:1.1rem;height:1.1rem;display:none;position:absolute;top:-.55rem;left:-.55rem}.landing .serve .ball span{background:radial-gradient(circle at 35% 35%,#fff,#ffd9a8 55%,#f39c3d);border-radius:50%;width:100%;height:100%;display:block;box-shadow:0 .2rem .6rem #00000080}@media (width<=26rem){.landing .serve{--land:11.2rem;padding-left:4.4rem}.landing .serve .halo{left:4.4rem}.landing .serve .racket{width:3.1rem}.landing .serve .play{padding:1rem 3rem}}.landing .bar{z-index:10;background:#0e1116f0;border-bottom:1px solid #ffffff14;justify-content:space-between;align-items:center;gap:1rem;padding:.6rem 1.25rem;transition:transform .3s;display:flex;position:fixed;top:0;left:0;right:0;transform:translateY(-110%)}.landing .bar.shown{transform:none}.landing .bar img{width:7.5rem;height:auto}.landing .bar .play{box-shadow:none;padding:.55rem 1.6rem;font-size:1rem}@media (width<=40rem){.landing .bar{padding-bottom:max(.6rem, env(safe-area-inset-bottom));border-top:1px solid #ffffff14;border-bottom:0;top:auto;bottom:0;transform:translateY(110%)}.landing .bar .play{flex:1;max-width:14rem}}.landing .hero{box-sizing:border-box;align-content:center;gap:2.5rem;max-width:90rem;min-height:100svh;margin:0 auto;padding:3rem 1.5rem 2rem;display:grid;overflow-x:clip}.landing .pitch{text-align:center}.landing .hero h1{margin:0}.landing .hero h1 img{width:min(24rem,80%);height:auto;margin:0 auto}.landing .lead{letter-spacing:-.02em;margin:1.5rem 0 .75rem;font-size:clamp(1.9rem,5vw,3.2rem);font-weight:800;line-height:1.1}.landing .lead em{color:var(--blue);font-style:normal}.landing .anywhere{text-wrap:balance;margin:0 0 .75rem;font-size:clamp(1.2rem,2.6vw,1.5rem);font-weight:800}.landing .anywhere span{-webkit-box-decoration-break:clone;box-decoration-break:clone;background:linear-gradient(#0000 62%,#2f80ed73 62% 92%,#0000 92%)}.landing .tagline{color:#d6dae1;max-width:34rem;margin:0 auto 3rem;font-size:1.15rem}.landing .actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:1.75rem 1.25rem;display:flex}.landing .watch{background:var(--card);color:#fff;cursor:pointer;font:inherit;border:2px solid #ffffff40;border-radius:999px;align-items:center;gap:.6rem;padding:.75rem 1.4rem .75rem .8rem;font-size:1.1rem;font-weight:700;transition:border-color .15s,background .15s;display:inline-flex}.landing .watch:hover,.landing .watch:focus-visible{background:#ffffff1f;border-color:#fff}.landing .watch .triangle{box-sizing:border-box;color:#0e1116;background:#fff;border-radius:50%;place-items:center;width:2.1rem;height:2.1rem;padding-left:.15rem;font-size:.85rem;display:grid}.landing .watch small{color:var(--muted);font-weight:500}.landing .perks{flex-wrap:wrap;justify-content:center;gap:.6rem;margin:2rem 0 0;padding:0;list-style:none;display:flex}.landing .perks li{color:#b8f5cc;background:#22c55e1f;border:1px solid #22c55e59;border-radius:999px;padding:.45rem .95rem;font-size:1.05rem;font-weight:700}.landing .perks li:before{content:"✓ ";color:var(--green)}.landing .stage{perspective:1200px}.landing .stage .frame{transform-origin:50% 0}@media (width>=60rem){.landing .hero{grid-template-columns:.85fr 1.7fr;align-items:center;gap:3.5rem}.landing .pitch{text-align:left}.landing .hero .actions,.landing .hero .perks{justify-content:flex-start}.landing .hero h1 img,.landing .tagline{margin-left:0}.landing .hero .serve{margin-left:1.75rem}}.landing .frame{aspect-ratio:16/9;background:#000;border-radius:1rem;position:relative;overflow:hidden;box-shadow:0 1.5rem 4rem #0000008c,0 0 0 1px #ffffff14}.landing .frame video{object-fit:cover;width:100%;height:100%}.landing section{max-width:72rem;margin:0 auto;padding:5rem 1.5rem}.landing section>h2{letter-spacing:-.01em;margin:0 0 .5rem;font-size:clamp(1.7rem,4vw,2.6rem);line-height:1.15}.landing .sub{max-width:40rem;color:var(--muted);margin:0 0 2.5rem;font-size:1.1rem}.landing .how{gap:2rem;display:grid}@media (width>=60rem){.landing .how{grid-template-columns:1.2fr 1fr;align-items:start}.landing .how .frame{position:sticky;top:6rem}}.landing .steps{counter-reset:step;gap:1rem;margin:0;padding:0;list-style:none;display:grid}.landing .steps li{background:var(--card);border-radius:.75rem;padding:1.25rem 1.25rem 1.25rem 4rem;position:relative}.landing .steps li:before{color:var(--blue);counter-increment:step;content:counter(step);font-size:1.8rem;font-weight:800;position:absolute;top:1.05rem;left:1.2rem}.landing .steps strong{font-size:1.1rem;display:block}.landing .steps span{color:#c9ced6}.landing .steps .swing{min-height:9rem;padding-right:9.5rem}.landing .steps .swing .racket{width:3rem;top:1.4rem;left:auto;right:3.4rem}.landing .steps .swing .arc{fill:none;stroke:#ffffff40;stroke-width:2px;stroke-dasharray:4 5;width:8rem;position:absolute;top:2rem;right:.7rem}@media (width<=40rem){.landing .steps .swing{padding-bottom:8.5rem;padding-right:1.25rem}.landing .steps .swing .racket{top:auto;bottom:.4rem;right:calc(50% - 2.3rem)}.landing .steps .swing .arc{top:auto;bottom:1.6rem;right:calc(50% - 5rem)}}.landing .modes{grid-template-columns:repeat(3,1fr);gap:1.25rem;margin:0;padding:0;list-style:none;display:grid}.landing .modes li{background:var(--card);border-radius:1rem;overflow:hidden}.landing .modes .frame{box-shadow:none;border-radius:0}.landing .modes h3{margin:1rem 1.25rem .25rem;font-size:1.2rem}.landing .modes h3:before{content:"";vertical-align:.1rem;border-radius:50%;width:.7rem;height:.7rem;margin-right:.5rem;display:inline-block}.landing .modes .challenge:before{background:var(--blue)}.landing .modes .match:before{background:var(--green)}.landing .modes .versus:before{background:var(--red)}.landing .modes p{color:#c9ced6;margin:0 1.25rem 1.25rem}@media (width<=60rem){.landing .modes{scroll-snap-type:x mandatory;scrollbar-width:none;grid-template-columns:none;grid-auto-columns:82%;grid-auto-flow:column;margin:0 -1.5rem;padding:0 1.5rem 1rem;scroll-padding:0 1.5rem;overflow-x:auto}.landing .modes li{scroll-snap-align:start}}.landing .again{text-align:center;padding:4rem 1.5rem 5rem;overflow-x:clip}.landing .again h2{margin:0 0 4.75rem;font-size:clamp(1.7rem,4vw,2.6rem)}.landing footer{max-width:72rem;color:var(--muted);text-align:center;border-top:1px solid #ffffff14;margin:0 auto;padding:2rem 1.5rem 6rem}@media (prefers-reduced-motion:no-preference){.landing .serve .ball{animation:2.8s linear infinite ball-x;display:block}.landing .serve .ball span{animation:2.8s infinite ball-y}.landing .serve .racket{animation:2.8s infinite forehand}.landing .serve .play{animation:2.8s infinite struck}.landing .serve .halo{animation:2.8s infinite halo}.landing .serve .play:after,.landing .bar .play:after{animation:2.8s infinite shine}.landing .bar .play{animation:2.8s infinite hop}@supports (animation-timeline:view()){.landing .stage .frame{animation:linear both recede;animation-timeline:view();animation-range:exit exit 80%}.landing .reveal{animation:linear both rise;animation-timeline:view();animation-range:entry 5% cover 35%}.landing .steps li{animation:linear both light;animation-timeline:view();animation-range:cover 20% cover 80%}.landing .steps .swing .racket{animation:ease-in-out both sweep;animation-timeline:view();animation-range:cover 15% cover 85%}}}@keyframes forehand{0%{animation-timing-function:ease-in-out;transform:rotate(-6deg)}11%{animation-timing-function:cubic-bezier(.6,0,1,1);transform:rotate(-40deg)}20%{animation-timing-function:cubic-bezier(0,0,.4,1);transform:rotate(2deg)}29%,46%{animation-timing-function:ease-in-out;transform:rotate(24deg)}72%,to{transform:rotate(-6deg)}}@keyframes ball-x{0%{opacity:0;transform:translate(3.6rem)}4%{opacity:1}20%{transform:translate(3.7rem)}40%{transform:translateX(var(--land));opacity:1}56%,to{transform:translateX(calc(var(--land) + 6.75rem));opacity:0}}@keyframes ball-y{0%{animation-timing-function:cubic-bezier(.5,0,1,1);transform:translateY(-3.6rem)}20%{animation-timing-function:cubic-bezier(0,0,.5,1);transform:translateY(.9rem)}30%{animation-timing-function:cubic-bezier(.5,0,1,1);transform:translateY(-2.6rem)}40%{animation-timing-function:cubic-bezier(0,0,.5,1);transform:translateY(-.55rem)scale(1.15,.85)}56%,to{transform:translateY(-3rem)}}@keyframes struck{0%,39%{transform:none}42%{transform:translateY(.35rem)scale(1.1,.9)}48%{transform:translateY(-.2rem)scale(.97,1.05)}54%{transform:scale(1.03)}60%,to{transform:none}}@keyframes halo{0%,40%{opacity:0;transform:none}42%{opacity:1;transform:none}75%,to{opacity:0;transform:scale(1.15,1.6)}}@keyframes shine{0%,38%{transform:translate(-180%)skew(-20deg)}56%,to{transform:translate(380%)skew(-20deg)}}@keyframes hop{0%,22%{transform:none}26%{transform:translateY(.15rem)scale(1.08,.92)}32%{transform:translateY(-.15rem)}38%,to{transform:none}}@keyframes recede{to{opacity:.35;transform:rotateX(18deg)scale(.86)}}@keyframes rise{0%{opacity:0;transform:translateY(2.5rem)scale(.97)}}@keyframes light{0%{background:var(--card);opacity:.35;transform:translate(1.5rem)}30%,70%{opacity:1;background:#2f80ed2e;transform:none}to{background:var(--card);opacity:.55;transform:none}}@keyframes sweep{0%,to{transform:rotate(-38deg)}50%{transform:rotate(38deg)}}.film{background:#000;border:0;border-radius:1rem;width:min(64rem,100% - 2rem,177.778dvh - 5.33333rem);padding:0}.film::backdrop{background:#05070af0}.film video{width:100%;height:auto;display:block}.film form{z-index:1;position:absolute;top:.25rem;right:.25rem}.film .close{color:#fff;cursor:pointer;background:#0009;border:0;border-radius:999px;width:2.4rem;height:2.4rem;font-size:1.4rem}body:has(.film[open]) .landing video{visibility:hidden}.on-phone{box-sizing:border-box;max-width:min(26rem,100% - 2rem);color:inherit;text-align:center;background:#1a1f27;border:0;border-radius:1rem;padding:1.5rem;line-height:1.5}.on-phone::backdrop{background:#000000b3}.on-phone h2{margin:0 0 1rem;font-size:1.5rem}.on-phone p{margin:0 0 1rem}.on-phone .sent{color:#a7adb8;overflow-wrap:anywhere;min-height:1.5em}.on-phone .send,.on-phone .continue{cursor:pointer;font:inherit;color:#fff;border:0;border-radius:999px;padding:.75rem 1.5rem;font-weight:700}.on-phone .send{background:#2f80ed}.on-phone .continue{background:#ffffff1f}.on-phone form{position:absolute;top:.5rem;right:.5rem}.on-phone .close{color:#a7adb8;cursor:pointer;background:0 0;border:0;padding:.5rem;font-size:1.75rem;line-height:1}
