:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f5f7f4;--panel:#fff;--panel-soft:#edf4ef;--panel-glass:#ffffffd6;--panel-solid:#fff;--control-bg:#ffffffc7;--ink:#17201b;--muted:#65716b;--line:#dce5df;--brand:#146c43;--brand-strong:#0b4d2d;--accent:#2f6f9f;--danger:#b33b34;--warning:#a16109;--success-soft:#dff0e6;--danger-soft:#fff7f6;--danger-line:#f0cfcb;--accent-soft:#e5f0f8;--accent-soft-hover:#d7e9f5;--loss-soft:#f9e2df;--brand-glow:#146c431f;--accent-glow:#2f6f9f1f;--shadow:0 20px 50px #17201b14;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}html[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0d1511;--panel:#17211b;--panel-soft:#203027;--panel-glass:#17211be6;--panel-solid:#18251e;--control-bg:#18251deb;--ink:#edf7f0;--muted:#a1b0a6;--line:#304238;--brand:#58c888;--brand-strong:#7be0a4;--accent:#75b6e7;--danger:#ff9288;--warning:#f0ba5f;--success-soft:#1f4731;--danger-soft:#422522;--danger-line:#77433d;--accent-soft:#1d384b;--accent-soft-hover:#264b63;--loss-soft:#422522;--brand-glow:#58c8881f;--accent-glow:#75b6e71f;--shadow:0 20px 50px #0000003d}*{box-sizing:border-box}body{background:linear-gradient(140deg, var(--brand-glow), transparent 34%), linear-gradient(320deg, var(--accent-glow), transparent 28%), var(--bg);color:var(--ink);margin:0;transition:background-color .18s,color .18s}button,input,select,textarea{font:inherit}.app-shell{width:min(1180px,100% - 32px);margin:0 auto;padding:28px 0 40px}.topbar{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:22px;display:flex}.topbar h1,.section-heading h2{letter-spacing:0;margin:0}.topbar h1{font-size:clamp(2rem,5vw,4rem);line-height:.96}.section-heading h2{font-size:1.35rem}.eyebrow{color:var(--brand);letter-spacing:.08em;text-transform:uppercase;margin:0 0 8px;font-size:.75rem;font-weight:800}.backup-actions,.form-actions,.filters,.match-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.save-status{border:1px solid var(--line);min-height:42px;color:var(--muted);background:var(--control-bg);border-radius:8px;align-items:center;padding:0 12px;font-size:.82rem;font-weight:750;display:inline-flex}.account-email{max-width:240px;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.85rem;font-weight:750;overflow:hidden}.auth-panel{border:1px solid var(--line);background:var(--panel-glass);max-width:900px;box-shadow:var(--shadow);border-radius:12px;grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr);align-items:center;gap:30px;margin:48px auto;padding:clamp(22px,5vw,46px);display:grid}.auth-copy h2{margin:0;font-size:clamp(1.75rem,4vw,2.6rem);line-height:1.05}.auth-copy>p:not(.eyebrow){color:var(--muted);margin:18px 0 0;line-height:1.65}.auth-form{gap:16px;display:grid}.auth-form label{gap:7px;font-weight:750;display:grid}.auth-actions{flex-wrap:wrap;gap:10px;display:flex}.oauth-actions{gap:10px;display:grid}.oauth-actions .button{gap:10px}.button.apple{color:#fff;background:#000}html[data-theme=dark] .button.apple{color:#000;background:#fff}.oauth-divider{color:var(--muted);text-align:center;margin:4px 0 0;font-size:.9rem}.button:disabled,input:disabled{cursor:wait;opacity:.58;transform:none}.stats-tabs{border:1px solid var(--line);background:var(--control-bg);border-radius:8px;gap:6px;margin:0 0 14px;padding:4px;display:inline-flex;box-shadow:0 10px 30px #17201b0f}.tab-button{min-height:36px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:6px;padding:0 14px;font-weight:850}.tab-button.active{color:#fff;background:var(--brand)}.button{cursor:pointer;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;min-height:42px;padding:0 16px;font-weight:750;transition:transform .16s,box-shadow .16s,border-color .16s,background .16s;display:inline-flex}.button:hover{transform:translateY(-1px)}.button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:2px;outline:3px solid #2f6f9f47}.button.primary{color:#fff;background:var(--brand);box-shadow:0 10px 24px #146c4338}.button.primary:hover{background:var(--brand-strong)}.button.secondary,.button.ghost{color:var(--ink);background:var(--control-bg);border-color:var(--line)}.button.danger{color:var(--danger);background:var(--danger-soft);border-color:var(--danger-line)}.theme-toggle{gap:9px;min-width:164px}.theme-toggle-icon{width:19px;color:var(--warning);place-items:center;font-size:1.1rem;line-height:1;display:inline-grid}.theme-switch-track{background:var(--line);border-radius:999px;width:35px;height:20px;margin-left:auto;transition:background .16s;position:relative}.theme-switch-thumb{background:var(--panel-solid);border-radius:50%;width:14px;height:14px;transition:transform .16s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0003}html[data-theme=dark] .theme-switch-track{background:var(--brand)}html[data-theme=dark] .theme-switch-thumb{transform:translate(15px)}.stats-dashboard{grid-template-columns:minmax(280px,1.05fr) minmax(280px,1fr) minmax(260px,.9fr);gap:14px;margin-bottom:18px;display:grid}.stats-dashboard.overview-mode{grid-template-columns:minmax(240px,.72fr) minmax(360px,1fr)}.stats-dashboard.detail-mode{grid-template-columns:minmax(280px,1fr) minmax(280px,1fr) minmax(260px,.9fr)}.stats-panel{border:1px solid var(--line);background:var(--panel-glass);box-shadow:var(--shadow);border-radius:8px;padding:20px}.stats-panel.result-panel{grid-row:span 2}.stats-dashboard.overview-mode .stats-panel.result-panel{grid-row:auto}.stats-panel.breakdown-panel,.stats-panel.opponent-panel{grid-column:span 2}.section-heading.compact{align-items:center;margin-bottom:16px}.stat-pill{min-height:30px;color:var(--brand-strong);background:var(--success-soft);white-space:nowrap;border-radius:999px;align-items:center;padding:0 11px;font-size:.78rem;font-weight:850;display:inline-flex}.result-chart-wrap{place-items:center;gap:18px;min-height:270px;display:grid}.stats-dashboard.overview-mode .result-chart-wrap{grid-template-columns:auto 1fr;place-items:center start;min-height:auto}.result-chart{--win-angle:0deg;aspect-ratio:1;background:conic-gradient(var(--brand) 0deg var(--win-angle), var(--danger) var(--win-angle) 360deg);border-radius:50%;place-items:center;width:min(230px,100%);display:grid;box-shadow:inset 0 0 0 1px #17201b14,0 18px 40px #17201b1a}.stats-dashboard.overview-mode .result-chart{width:132px}.result-chart-center{aspect-ratio:1;background:var(--panel-solid);text-align:center;border-radius:50%;place-items:center;width:62%;display:grid}.result-chart-center strong{color:var(--ink);font-size:clamp(2rem,5vw,3rem);line-height:1}.stats-dashboard.overview-mode .result-chart-center strong{font-size:1.65rem}.result-chart-center span,.mini-stat span,.metric-item span{color:var(--muted);font-size:.86rem;font-weight:700}.result-legend{color:var(--muted);flex-wrap:wrap;justify-content:center;gap:14px;font-size:.92rem;display:flex}.result-legend span{align-items:center;gap:7px;display:inline-flex}.legend-dot{border-radius:50%;width:10px;height:10px}.win-dot{background:var(--brand)}.loss-dot{background:var(--danger)}.recent-list,.breakdown-list{gap:10px;display:grid}.recent-item{border:1px solid var(--line);background:var(--panel-solid);border-radius:8px;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:11px;display:grid}.recent-index{color:#fff;background:var(--brand);border-radius:50%;place-items:center;width:34px;height:34px;font-weight:850;display:grid}.recent-index.loss{background:var(--danger)}.recent-title{margin:0;font-size:.92rem;font-weight:850;line-height:1.25}.recent-meta{color:var(--muted);margin:3px 0 0;font-size:.82rem;line-height:1.35}.recent-score{color:var(--ink);white-space:nowrap;font-size:.86rem;font-weight:850}.insight-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.mini-stat{border:1px solid var(--line);background:var(--panel-solid);border-radius:8px;min-height:132px;padding:15px}.mini-stat strong{margin-top:10px;font-size:1.25rem;line-height:1.18;display:block}.mini-stat small{color:var(--muted);margin-top:8px;font-size:.84rem;line-height:1.35;display:block}.breakdown-row{color:var(--muted);grid-template-columns:118px 1fr auto;align-items:center;gap:12px;font-size:.88rem;font-weight:750;display:grid}.breakdown-row strong{color:var(--ink);font-size:.92rem}.breakdown-track{background:var(--panel-soft);border-radius:999px;height:12px;position:relative;overflow:hidden}.breakdown-fill{border-radius:inherit;background:var(--accent);height:100%;transition:width .18s;display:block}.breakdown-fill.win{background:var(--brand)}.breakdown-fill.loss{background:var(--danger)}.secondary-breakdown{border-top:1px solid var(--line);margin-top:14px;padding-top:14px}.competition-split,.season-summary,.opponent-detail{gap:10px;display:grid}.split-card,.season-card,.opponent-card{border:1px solid var(--line);background:var(--panel-solid);border-radius:8px;padding:13px}.split-card{gap:10px;display:grid}.split-card-header,.season-card-header{justify-content:space-between;align-items:center;gap:10px;display:flex}.split-card h3,.season-card h3,.opponent-card h3{margin:0;font-size:.98rem}.metric-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.metric-item{background:var(--panel-soft);border-radius:8px;padding:10px}.metric-item strong{margin-top:5px;font-size:1.05rem;display:block}.opponent-panel label{margin-bottom:12px}.opponent-type-switch{border:1px solid var(--line);background:var(--panel-soft);border-radius:8px;gap:4px;padding:4px;display:inline-flex}.opponent-type-button{min-height:32px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:6px;padding:0 13px;font-size:.82rem;font-weight:850}.opponent-type-button:hover{color:var(--ink)}.opponent-type-button.active{color:#fff;background:var(--brand)}.opponent-type-button:focus-visible{outline-offset:2px;outline:3px solid #2f6f9f47}.opponent-card .match-detail{margin-top:10px}.opponent-match-list{gap:8px;margin-top:12px;display:grid}.opponent-match-list-title{color:var(--muted);margin:2px 0 4px;font-size:.86rem;font-weight:850}.opponent-match-row{background:var(--panel-soft);color:var(--muted);border-radius:8px;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:9px 10px;font-size:.84rem;font-weight:720;display:grid}.analysis-textarea{margin-top:14px}.performance-tags{margin-top:12px}.opponent-button{min-height:28px;color:var(--accent);background:var(--accent-soft);cursor:pointer;border:0;border-radius:999px;padding:0 10px;font-size:.8rem;font-weight:850}.opponent-button:hover{background:var(--accent-soft-hover)}.workspace{grid-template-columns:minmax(0,1fr) minmax(360px,.92fr);align-items:start;gap:18px;display:grid}.match-form,.history-panel{border:1px solid var(--line);background:var(--panel-glass);box-shadow:var(--shadow);border-radius:8px;padding:22px}.section-heading,.score-heading{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px;display:flex}.score-heading{margin-bottom:12px}.score-heading h3,.field-group h3{margin:0;font-size:1rem}.score-heading p{color:var(--muted);margin:0;font-size:.9rem}.form-grid,.score-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.score-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.field-group{border-top:1px solid var(--line);margin-top:20px;padding-top:20px}label{color:var(--muted);gap:7px;font-size:.86rem;font-weight:760;display:grid}input,select,textarea{border:1px solid var(--line);width:100%;color:var(--ink);background:var(--panel-solid);border-radius:8px}input,select{min-height:44px;padding:0 12px}textarea{resize:vertical;min-height:88px;padding:12px}.match-form>label{margin-top:18px}.form-message{min-height:22px;color:var(--muted);margin:12px 0 0;font-size:.9rem}.form-message.error{color:var(--danger);font-weight:750}.form-message.success{color:var(--brand);font-weight:750}.filters{margin-bottom:16px}.filters label{min-width:180px}.filter-reset{align-self:flex-end;min-height:44px}.match-list{gap:12px;display:grid}.match-card{border:1px solid var(--line);background:var(--panel-solid);border-radius:8px;padding:16px}.match-card-header{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.match-title{margin:0;font-size:1rem;line-height:1.35}.match-meta,.match-detail{color:var(--muted);margin:8px 0 0;font-size:.9rem;line-height:1.45}.match-badges{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.badge{min-height:28px;color:var(--muted);background:var(--panel-soft);border-radius:999px;align-items:center;padding:0 10px;font-size:.8rem;font-weight:800;display:inline-flex}.badge.win{color:var(--brand-strong);background:var(--success-soft)}.badge.loss{color:var(--danger);background:var(--loss-soft)}.match-actions{margin-top:14px}.empty-state{border:1px dashed var(--line);color:var(--muted);background:var(--panel-soft);text-align:center;border-radius:8px;margin:22px 0 0;padding:18px}.hidden{display:none!important}@media (width<=960px){.topbar,.workspace{grid-template-columns:1fr}.topbar{display:grid}.stats-dashboard,.stats-dashboard.overview-mode,.stats-dashboard.detail-mode{grid-template-columns:repeat(2,minmax(0,1fr))}.stats-dashboard.overview-mode .stats-panel.result-panel,.stats-dashboard.detail-mode .stats-panel{grid-area:auto}.stats-dashboard.detail-mode .season-panel,.stats-dashboard.detail-mode .opponent-panel{grid-column:span 2}.button,.tab-button,.opponent-type-button,.opponent-button{min-height:44px}input,select,textarea{font-size:16px}}@media (width<=640px){.app-shell{width:min(100% - 22px,1180px);padding-top:18px}.stats-dashboard,.stats-dashboard.overview-mode,.stats-dashboard.detail-mode,.form-grid,.score-grid{grid-template-columns:1fr}.match-form,.history-panel,.stats-panel{padding:16px}.section-heading,.score-heading,.match-card-header{display:grid}.button,.backup-actions,.form-actions,.auth-actions,.filters,.filters label{width:100%}.auth-panel{grid-template-columns:1fr;margin:24px auto}.stats-panel.result-panel,.stats-panel.breakdown-panel,.stats-panel.opponent-panel,.stats-dashboard.detail-mode .season-panel,.stats-dashboard.detail-mode .opponent-panel{grid-column:auto}.result-chart-wrap,.stats-dashboard.overview-mode .result-chart-wrap{grid-template-columns:1fr;place-items:center;min-height:auto}.stats-tabs{width:100%;display:flex}.tab-button{flex:auto;min-width:0;padding:0 6px;font-size:.9rem}.insight-grid,.metric-grid,.recent-item{grid-template-columns:1fr}.recent-index{width:30px;height:30px}.breakdown-row{grid-template-columns:1fr;gap:7px}.split-card-header,.season-card-header,.opponent-match-row{grid-template-columns:1fr;display:grid}.opponent-type-switch{width:100%}.opponent-type-button{flex:1}}html[data-theme=dark] .button.primary,html[data-theme=dark] .tab-button.active{color:#102319}.tab-button:focus-visible,.opponent-button:focus-visible{outline:3px solid var(--accent);outline-offset:3px}button:disabled{opacity:.6;cursor:wait;transform:none}.authenticated-content>.filters{border:1px solid var(--line);background:var(--panel);border-radius:8px;flex-wrap:wrap;gap:12px;margin-bottom:20px;padding:16px;display:flex}.result-chart.empty{background:var(--line)}#dataWarning,#appMessage{overflow-wrap:anywhere}#loadMoreButton{margin-top:16px}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important}}.topbar{flex-wrap:wrap}.topbar>div:first-child{flex:1 0 100%}html[data-theme=dark] .recent-index{color:#102319}#appMessage:empty,#dataWarning:empty{display:none}.legal-footer{text-align:center;margin-top:32px;padding:16px 0;font-size:.9rem}.legal-footer a{color:var(--muted)}:root{--ball:#d9f24a;--ball-deep:#a9c41f;--clay:#cc6a3f;--clay-deep:#a9502b;--scoreboard:#0f2a1d;--highlight-mark:#d9f24ab8;--card-radius:20px}html[data-theme=dark]{--clay:#b95c35;--clay-deep:#8f4424;--scoreboard:#0a1a12;--highlight-mark:#d9f24a3d}@property --donut{syntax:"<angle>";inherits:false;initial-value:0deg}html{scroll-behavior:smooth}a.button{text-decoration:none}.button.large{border-radius:12px;min-height:52px;padding:0 24px;font-size:1.02rem}.brand-mark{vertical-align:-.06em;background:radial-gradient(circle at 34% 30%, #f3ff9c, var(--ball) 52%, var(--ball-deep));border-radius:50%;flex:none;width:.78em;height:.78em;margin-right:.22em;display:inline-block;position:relative;overflow:hidden;box-shadow:inset -2px -3px 5px #00000024}.brand-mark:before,.brand-mark:after{content:"";border:max(2px,.06em) solid #ffffffe6;border-radius:50%;width:88%;height:88%;position:absolute;top:6%}.brand-mark:before{left:-58%}.brand-mark:after{right:-58%}body:not(.guest) .guest-only,html[data-session=restoring] .landing,html[data-session=restoring] .guest-only{display:none}.guest .topbar{z-index:20;border-image:linear-gradient(var(--header-bg), var(--header-bg)) fill 0 / / 0 100vmax;flex-wrap:nowrap;align-items:center;margin:-28px 0 0;padding:14px 0;display:flex;position:sticky;top:0}:root{--header-bg:#f5f7f4e6}html[data-theme=dark]{--header-bg:#0d1511e6}.guest .topbar>div:first-child{flex:auto}.guest .topbar .eyebrow,.guest #storageStatus{display:none}.guest .topbar h1{letter-spacing:-.02em;align-items:center;font-size:1.45rem;line-height:1;display:flex}.guest .theme-toggle{min-width:0}.guest .backup-actions{flex-wrap:nowrap}.landing{grid-template-columns:minmax(0,1fr);gap:clamp(72px,10vw,128px);padding-bottom:24px;display:grid}#features,#start{scroll-margin-top:96px}.hero{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);align-items:center;gap:clamp(28px,5vw,64px);padding-top:clamp(20px,5vw,64px);display:grid}.hero-copy>*{animation:.8s cubic-bezier(.2,.7,.2,1) both rise-in}.hero-copy>:nth-child(2){animation-delay:90ms}.hero-copy>:nth-child(3){animation-delay:.18s}.hero-copy>:nth-child(4){animation-delay:.27s}.hero-copy>:nth-child(5){animation-delay:.36s}.hero-kicker{border:1px solid var(--line);color:var(--ink);background:var(--panel-glass);border-radius:999px;align-items:center;gap:10px;margin:0;padding:7px 14px 7px 12px;font-size:.86rem;font-weight:750;display:inline-flex}.pulse-dot{background:var(--brand);border-radius:50%;width:9px;height:9px;position:relative}.pulse-dot:after{content:"";background:var(--brand);border-radius:50%;animation:2s ease-out infinite pulse;position:absolute;inset:0}.hero h2{letter-spacing:-.035em;text-wrap:balance;margin:20px 0 0;font-size:clamp(2.6rem,6.4vw,5.1rem);font-weight:850;line-height:.98}.highlight{color:var(--brand);background:linear-gradient(var(--highlight-mark), var(--highlight-mark)) no-repeat 0 88% / 100% .3em;animation:.9s cubic-bezier(.2,.7,.2,1) .7s both mark-in}.hero-lead{max-width:34em;color:var(--muted);margin:22px 0 0;font-size:clamp(1.05rem,1.6vw,1.2rem);line-height:1.6}.hero-actions{flex-wrap:wrap;gap:12px;margin-top:30px;display:flex}.store-badge{border-radius:10px;margin-top:22px;line-height:0;display:inline-block}.store-badge img{width:auto;height:48px}.hero-points,.auth-benefits{color:var(--muted);flex-wrap:wrap;gap:10px 22px;margin:26px 0 0;padding:0;font-size:.92rem;font-weight:700;list-style:none;display:flex}.hero-points li,.auth-benefits li{align-items:center;gap:8px;display:inline-flex}.hero-points li:before,.auth-benefits li:before{content:"✓";width:20px;height:20px;color:var(--brand-strong);background:var(--success-soft);border-radius:50%;place-items:center;font-size:.72rem;font-weight:900;display:inline-grid}.hero-visual{min-height:560px;animation:1s cubic-bezier(.2,.7,.2,1) .2s both rise-in;position:relative}.court{aspect-ratio:300/420;background:radial-gradient(#ffffff14 1px, transparent 1.6px) 0 0 / 7px 7px, linear-gradient(165deg, var(--clay), var(--clay-deep));border-radius:22px;width:56%;animation:9s ease-in-out infinite float;position:absolute;top:3%;left:3%;rotate:-7deg;box-shadow:0 30px 60px #78321447,inset 0 0 0 1px #ffffff1f;container-type:inline-size}.court-lines{fill:none;stroke:#ffffffe6;stroke-width:2.5px;width:100%;height:100%;position:absolute;inset:0}.court-lines *{vector-effect:non-scaling-stroke}.court-lines .net{stroke:#fffffff2;stroke-width:4px;filter:drop-shadow(0 3px 2px #00000059)}.ball-track{width:0;height:0;animation:3.4s cubic-bezier(.45,.05,.55,.95) infinite rally;position:absolute;top:118cqw;left:36cqw}.ball,.ball-shadow{border-radius:50%;width:5.2cqw;height:5.2cqw;position:absolute;top:-2.6cqw;left:-2.6cqw}.ball{background:radial-gradient(circle at 34% 30%, #f6ffb0, var(--ball) 50%, var(--ball-deep));animation:3.4s linear infinite ball-height;box-shadow:inset -1px -2px 3px #0000002e}.ball-shadow{filter:blur(1.5px);background:#280c0073;animation:3.4s linear infinite ball-shadow}.mock-card{border:1px solid var(--line);background:var(--panel-solid);border-radius:20px;width:min(350px,68%);padding:18px;animation:7s ease-in-out .4s infinite reverse float;position:absolute;bottom:4%;right:0;box-shadow:0 30px 70px #17201b2e}html[data-theme=dark] .mock-card{box-shadow:0 30px 70px #00000073}.mock-head{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.mock-head .eyebrow{margin-bottom:4px}.mock-head strong{font-size:1.15rem}.mock-donut-row{align-items:center;gap:18px;margin:16px 0;display:flex}.mock-donut,.mini-donut{--donut:259deg;background:radial-gradient(closest-side, var(--panel-solid) 68%, transparent 69%), conic-gradient(var(--brand) 0 var(--donut), var(--danger) var(--donut) 360deg);border-radius:50%;flex:none;place-items:center;display:grid}.mock-donut{width:108px;height:108px;animation:1.6s cubic-bezier(.2,.7,.2,1) .5s both donut-fill}.mock-donut-center{text-align:center;display:grid}.mock-donut-center strong{font-variant-numeric:tabular-nums;font-size:1.55rem;line-height:1}.mock-donut-center span{color:var(--muted);font-size:.75rem;font-weight:700}.mock-legend{color:var(--muted);gap:7px;font-size:.86rem;display:grid}.mock-legend>span{align-items:center;gap:7px;display:inline-flex}.mock-legend strong{color:var(--ink)}.mock-streak,.form-dots{gap:5px;display:flex}.streak-dot,.form-dots i{background:var(--brand);border-radius:50%;width:12px;height:12px}.streak-dot.loss,.form-dots i.loss{background:var(--danger)}.mock-matches{gap:8px;margin:0;padding:0;list-style:none;display:grid}.mock-matches li{background:var(--panel-soft);border-radius:12px;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:8px 10px;animation:.6s cubic-bezier(.2,.7,.2,1) both rise-in;display:grid}.mock-matches li:first-child{animation-delay:.9s}.mock-matches li:nth-child(2){animation-delay:1.05s}.mock-matches li:nth-child(3){animation-delay:1.2s}.mock-matches b,.mock-matches small{display:block}.mock-matches b{font-size:.85rem}.mock-matches small{color:var(--muted);font-size:.74rem;font-weight:650}.mock-matches em{font-variant-numeric:tabular-nums;font-size:.8rem;font-style:normal;font-weight:850}.result-mark{color:#fff;background:var(--brand);border-radius:50%;place-items:center;width:26px;height:26px;font-size:.72rem;font-style:normal;font-weight:900;display:grid}.result-mark.loss{background:var(--danger)}html[data-theme=dark] .result-mark{color:#102319}.float-chip{border:1px solid var(--line);background:var(--panel-solid);white-space:nowrap;border-radius:14px;align-items:center;gap:10px;padding:10px 14px 10px 10px;font-size:.9rem;font-weight:850;animation:.7s cubic-bezier(.3,1.5,.5,1) both pop-in,6s ease-in-out infinite float;display:flex;position:absolute;box-shadow:0 18px 40px #17201b24}.float-chip small{color:var(--muted);font-size:.7rem;font-weight:750;display:block}.chip-streak{animation-delay:1.3s,1.3s;top:7%;right:2%}.chip-surface{animation-delay:1.6s,2.4s;bottom:16%;left:0}.chip-icon{background:var(--panel-soft);border-radius:10px;place-items:center;width:34px;height:34px;font-size:1.1rem;display:grid}.chip-icon.ball-icon{background:var(--clay)}.chip-icon.ball-icon:before{content:"";background:radial-gradient(circle at 34% 30%, #f6ffb0, var(--ball) 50%, var(--ball-deep));border-radius:50%;width:14px;height:14px}.ticker{margin-top:calc(clamp(72px,10vw,128px)/-1.81818);display:flex;overflow:clip;-webkit-mask-image:linear-gradient(90deg,#0000,#000 10% 90%,#0000);mask-image:linear-gradient(90deg,#0000,#000 10% 90%,#0000)}.ticker-track{flex:none;gap:12px;margin:0;padding:4px 12px 4px 0;list-style:none;animation:45s linear infinite marquee;display:flex}.ticker:hover .ticker-track{animation-play-state:paused}.ticker-track li{border:1px solid var(--line);color:var(--ink);background:var(--panel-glass);white-space:nowrap;border-radius:999px;align-items:center;gap:9px;padding:9px 16px;font-size:.92rem;font-weight:750;display:inline-flex}.ticker-track li:before{content:"";background:var(--ball-deep);border-radius:50%;width:9px;height:9px}.landing-heading{text-align:center;max-width:740px;margin:0 auto}.landing-heading h2{letter-spacing:-.028em;text-wrap:balance;margin:0;font-size:clamp(2rem,4.4vw,3.2rem);line-height:1.06}.landing-heading>p:last-child:not(.eyebrow){max-width:38em;color:var(--muted);margin:18px auto 0;font-size:1.08rem;line-height:1.65}.film-frame{border:1px solid var(--line);max-width:980px;box-shadow:var(--shadow);background:#0d1511;border-radius:20px;margin:40px auto 0;overflow:clip}.film-frame video{aspect-ratio:16/9;width:100%;height:auto;display:block}.bento{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:48px;display:grid}.feature-card{border:1px solid var(--line);border-radius:var(--card-radius);background:var(--panel-glass);box-shadow:var(--shadow);padding:26px;transition:transform .26s,border-color .26s,box-shadow .26s;position:relative;overflow:clip}.feature-card:hover{border-color:color-mix(in srgb, var(--brand) 45%, var(--line));transform:translateY(-4px);box-shadow:0 28px 60px #146c4324}.feature-card.wide{grid-column:span 2;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);align-items:center;gap:28px;display:grid}.feature-tag,.step-badge{min-height:26px;color:var(--brand-strong);background:var(--success-soft);letter-spacing:.06em;text-transform:uppercase;border-radius:999px;align-items:center;padding:0 11px;font-size:.72rem;font-weight:850;display:inline-flex}.feature-card h3,.step h3{letter-spacing:-.012em;margin:14px 0 8px;font-size:1.32rem;line-height:1.2}.feature-card p,.step p{color:var(--muted);margin:0;line-height:1.6}.feature-visual{background:var(--panel-soft);border-radius:16px;place-items:center;height:150px;margin-bottom:20px;display:grid}.scoreboard{color:#fff;background:radial-gradient(circle at 100% 0, #d9f24a24, transparent 45%), var(--scoreboard);border-radius:18px;gap:8px;padding:18px;display:grid;box-shadow:0 24px 50px #0f2a1d47}.scoreboard-row{grid-template-columns:minmax(0,1fr) repeat(3,44px);align-items:center;gap:6px;display:grid}.player{flex-wrap:wrap;align-items:center;gap:2px 8px;min-width:0;font-weight:800;line-height:1.2;display:flex}.player b{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.player small{color:#ffffffa8;flex-basis:100%;font-size:.74rem;font-weight:700}.serve-dot{background:var(--ball);border-radius:50%;width:10px;height:10px}.set{color:#ffffffc7;font-variant-numeric:tabular-nums;height:46px;transition:opacity .4s,transform .55s cubic-bezier(.3,1.6,.5,1);transition-delay:calc(var(--i) * .32s + .25s);background:#ffffff14;border-radius:10px;place-items:center;font-size:1.35rem;font-weight:850;display:grid}.set.won{color:#102319;background:var(--ball)}.set.tb{font-size:1.1rem}.scoreboard-foot{color:#ffffffb8;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-top:6px;font-size:.78rem;font-weight:700;display:flex}.win-badge{color:#102319;background:var(--ball);border-radius:999px;padding:5px 11px;font-weight:850;transition:opacity .4s 1.3s,transform .6s cubic-bezier(.3,1.6,.5,1) 1.3s}.donut-visual{justify-content:center;align-items:center;gap:22px;display:flex}.mini-donut{background:radial-gradient(closest-side, var(--panel-soft) 68%, transparent 69%), conic-gradient(var(--brand) 0 var(--donut), var(--danger) var(--donut) 360deg);width:104px;height:104px;transition:--donut 1.5s cubic-bezier(.2,.7,.2,1) .2s}.mini-donut strong{font-variant-numeric:tabular-nums;font-size:1.45rem}.form-dots{gap:7px;display:grid}.form-dots i{transition:transform .45s cubic-bezier(.3,1.6,.5,1)}.form-dots i:nth-child(2){transition-delay:.12s}.form-dots i:nth-child(3){transition-delay:.24s}.form-dots i:nth-child(4){transition-delay:.36s}.form-dots i:nth-child(5){transition-delay:.48s}.h2h-visual{grid-template-columns:auto auto auto;align-content:center;gap:14px 18px}.avatar{color:#fff;border-radius:50%;place-items:center;width:52px;height:52px;font-weight:850;display:grid}.avatar.you{background:var(--brand)}.avatar.them{background:var(--accent)}html[data-theme=dark] .avatar{color:#102319}.h2h-score{font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-size:2.3rem;font-weight:900}.h2h-bar{background:var(--accent);border-radius:999px;grid-column:1/-1;width:210px;height:10px;overflow:hidden}.h2h-bar i{border-radius:inherit;background:var(--brand);width:75%;height:100%;transition:width 1.2s cubic-bezier(.2,.7,.2,1) .2s;display:block}.surface-visual{align-content:center;gap:14px;padding:0 22px}.surface-row{grid-template-columns:76px minmax(90px,1fr) 44px;align-items:center;gap:10px;width:100%;font-size:.84rem;font-weight:750;display:grid}.surface-row b{text-align:right;font-variant-numeric:tabular-nums}.surface-track{background:var(--panel-solid);border-radius:999px;height:10px;overflow:hidden}.surface-track i{width:var(--w);border-radius:inherit;height:100%;transition:width 1.2s cubic-bezier(.2,.7,.2,1);display:block}.surface-row:nth-child(2) i{transition-delay:.15s}.surface-row:nth-child(3) i{transition-delay:.3s}.surface-track .clay{background:var(--clay)}.surface-track .granulat{background:#8f5b3e}.surface-track .hard{background:var(--accent)}.analysis-visual{flex-wrap:wrap;place-content:center;gap:8px;padding:12px;display:flex}.analysis-chip{border:1px solid var(--line);background:var(--panel-solid);border-radius:10px;padding:6px 10px;font-size:.8rem;font-weight:800;transition:opacity .4s,transform .5s cubic-bezier(.3,1.6,.5,1)}.analysis-chip:nth-child(2){transition-delay:.12s}.analysis-chip:nth-child(3){transition-delay:.24s}.analysis-chip:nth-child(4){transition-delay:.36s}.analysis-chip small{color:var(--muted);letter-spacing:.05em;text-transform:uppercase;font-size:.66rem;display:block}.analysis-chip.note{border-style:dashed}.fitness{gap:4px;padding:4px 0 2px;display:flex}.fitness i{background:var(--brand);border-radius:50%;width:9px;height:9px}.fitness i.off{background:var(--line)}.season-chart{background:var(--panel-soft);border-radius:18px;padding:20px 20px 16px}.season-bars{grid-template-columns:repeat(7,minmax(0,1fr));align-items:end;gap:10px;height:150px;display:grid}.season-bars span{flex-direction:column;justify-content:flex-end;gap:3px;height:100%;display:flex}.season-bars i{transform-origin:bottom;border-radius:6px;transition:transform .7s cubic-bezier(.2,.7,.2,1);display:block}.season-bars .w{height:calc(var(--win) * 24px);background:var(--brand);order:2}.season-bars .l{height:calc(var(--loss) * 24px);background:var(--danger);order:1}.season-bars b{color:var(--muted);text-align:center;order:3;margin-top:6px;font-size:.72rem}.season-bars span:nth-child(2) i{transition-delay:80ms}.season-bars span:nth-child(3) i{transition-delay:.16s}.season-bars span:nth-child(4) i{transition-delay:.24s}.season-bars span:nth-child(5) i{transition-delay:.32s}.season-bars span:nth-child(6) i{transition-delay:.4s}.season-bars span:nth-child(7) i{transition-delay:.48s}.season-totals{gap:10px;margin-top:14px;display:flex}.season-totals span{background:var(--panel-solid);border-radius:12px;flex:1;padding:9px 12px}.season-totals small{color:var(--muted);font-size:.72rem;font-weight:750;display:block}.season-totals strong{font-variant-numeric:tabular-nums;font-size:1.1rem}.devices-visual{position:relative;overflow:clip}.device{border:3px solid var(--ink);background:var(--panel-solid);z-index:1;position:absolute}.device i{background:linear-gradient(160deg, var(--brand), var(--accent));border-radius:4px;position:absolute;inset:5px;overflow:hidden}.device i:after{content:"";background:linear-gradient(90deg,#0000,#ffffff8c,#0000);width:60%;animation:3.2s ease-in-out infinite shimmer;position:absolute;inset:0 auto 0 0;translate:-100%}.device.laptop{border-radius:9px;width:118px;height:76px;top:34px;left:calc(50% - 76px)}.device.laptop:after{content:"";background:var(--ink);border-radius:0 0 8px 8px;width:144px;height:7px;position:absolute;bottom:-12px;left:-16px}.device.phone{border-radius:10px;width:40px;height:72px;top:50px;left:calc(50% + 34px)}.device.phone i{inset:4px}.device.phone i:after{animation-delay:1.6s}.sync-ring{border:2px dashed color-mix(in srgb, var(--brand) 45%, transparent);border-radius:50%;width:190px;height:190px;animation:22s linear infinite spin;position:absolute}.step-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:44px 0 0;padding:0;list-style:none;display:grid}.step{border:1px solid var(--line);border-radius:var(--card-radius);background:var(--panel-glass);box-shadow:var(--shadow);padding:26px;position:relative}.step:not(:last-child):after{content:"";border-top:2px dashed var(--line);width:20px;position:absolute;top:38px;right:-19px}.step-badge.final{color:#102319;background:var(--ball)}.start-section .auth-panel{background:radial-gradient(circle at 0 0, var(--brand-glow), transparent 45%), var(--panel-solid);border-radius:24px;max-width:1040px;margin:0 auto;position:relative;overflow:clip}.start-section .auth-panel:before{content:"";background:radial-gradient(circle at -42% 50%, transparent 57%, #ffffffd9 57.5% 60%, transparent 60.5%), radial-gradient(circle at 142% 50%, transparent 57%, #ffffffd9 57.5% 60%, transparent 60.5%), radial-gradient(circle at 34% 30%, #f6ffb0, var(--ball) 50%, var(--ball-deep));opacity:.2;pointer-events:none;border-radius:50%;width:240px;height:240px;position:absolute;bottom:-90px;right:-90px;rotate:-30deg}.start-section .auth-copy h2{letter-spacing:-.025em}.auth-benefits{color:var(--ink);gap:10px;margin-top:22px;display:grid}.start-section .auth-form{position:relative}.reveal-ready .reveal{transition:opacity .7s,transform .7s cubic-bezier(.2,.7,.2,1)}.reveal-ready .reveal:not(.is-visible){opacity:0;transform:translateY(28px)}.reveal-ready .bento .reveal:nth-child(3n+2),.reveal-ready .step-list .reveal:nth-child(2){transition-delay:.1s}.reveal-ready .bento .reveal:nth-child(3n),.reveal-ready .step-list .reveal:nth-child(3){transition-delay:.2s}.reveal-ready .reveal.is-visible:hover{transition-delay:0s}.reveal-ready .reveal:not(.is-visible) .set,.reveal-ready .reveal:not(.is-visible) .win-badge,.reveal-ready .reveal:not(.is-visible) .analysis-chip{opacity:0;transform:scale(.6)}.reveal-ready .reveal:not(.is-visible) .form-dots i{transform:scale(0)}.reveal-ready .reveal:not(.is-visible) .mini-donut{--donut:0deg}.reveal-ready .reveal:not(.is-visible) .h2h-bar i,.reveal-ready .reveal:not(.is-visible) .surface-track i{width:0}.reveal-ready .reveal:not(.is-visible) .season-bars i{transform:scaleY(0)}@keyframes rise-in{0%{opacity:0;translate:0 24px}to{opacity:1;translate:0}}@keyframes pop-in{0%{opacity:0;scale:.6}to{opacity:1;scale:1}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-12px)}}@keyframes pulse{0%{opacity:.6;transform:scale(1)}to{opacity:0;transform:scale(3)}}@keyframes mark-in{0%{background-size:0 .3em}to{background-size:100% .3em}}@keyframes donut-fill{0%{--donut:0deg}}@keyframes rally{0%,to{transform:translate(0)}50%{transform:translate(28cqw,-100cqw)}}@keyframes ball-height{0%,50%,to{scale:1.15}15%,65%{scale:1.6}36%,86%{scale:.9}}@keyframes ball-shadow{0%,50%,to{opacity:.4;transform:translate(.8cqw,1.2cqw)}15%,65%{opacity:.22;transform:translate(2.6cqw,3.4cqw)}36%,86%{opacity:.55;transform:translate(0)}}@keyframes marquee{to{transform:translate(-100%)}}@keyframes shimmer{0%,30%{translate:-100%}70%,to{translate:167%}}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=960px){.hero{grid-template-columns:1fr}.hero-visual{width:min(100%,560px);margin:0 auto}.bento{grid-template-columns:repeat(2,minmax(0,1fr))}.step-list{grid-template-columns:1fr}.step:not(:last-child):after{border-top:0;border-left:2px dashed var(--line);width:0;height:20px;inset:auto auto -19px 44px}.guest .topbar{display:flex}}@media (width<=640px){.guest .topbar{gap:10px;margin-top:-18px;padding:10px 0}.guest .topbar>div:first-child{min-width:0}.guest .topbar h1{font-size:1.3rem}.guest .backup-actions{gap:8px;width:auto}.guest .backup-actions .button{width:auto;padding:0 12px}.guest .theme-toggle{gap:6px;padding:0 10px}.guest [data-theme-label]{display:none}.hero-actions .button{width:100%}.hero-visual{min-height:520px}.court{width:60%}.mock-card{width:80%;padding:14px}.mock-donut{width:88px;height:88px}.float-chip{padding:8px 12px 8px 8px;font-size:.8rem}.chip-icon{width:28px;height:28px}.chip-surface{display:none}.bento{grid-template-columns:1fr}.feature-card.wide{grid-column:auto;grid-template-columns:1fr}.feature-card,.step{padding:20px}.scoreboard-row{grid-template-columns:minmax(0,1fr) repeat(3,40px)}.start-section .auth-panel{margin:0}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.landing *,.landing :before,.landing :after{animation:none!important}.ticker{-webkit-mask-image:none;mask-image:none}.ticker-track{flex-wrap:wrap;flex:1;justify-content:center;padding:0}.ticker-track[aria-hidden=true]{display:none}}.level-panel{border:1px solid var(--line);background:var(--panel-glass);box-shadow:var(--shadow);border-radius:8px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:20px;margin-bottom:16px;padding:18px 20px;display:grid}.level-panel h2{margin:0 0 10px;font-size:1.35rem}.level-meta,.celebration-level-meta{color:var(--muted);font-variant-numeric:tabular-nums;justify-content:space-between;gap:12px;margin:8px 0 0;font-size:.88rem;display:flex}.level-hint,.level-totals{color:var(--muted);margin:6px 0 0;font-size:.88rem}.level-side{text-align:right;justify-items:end;gap:10px;display:grid}.level-totals{margin:0;font-weight:700}.level-badge{color:#fff;background:var(--rank);width:72px;height:72px;box-shadow:0 8px 24px color-mix(in srgb, var(--rank) 40%, transparent);text-align:center;border:4px solid #ffffff73;border-radius:50%;place-content:center;line-height:1;display:grid}.level-badge span{letter-spacing:.1em;text-transform:uppercase;font-size:.62rem;font-weight:900}.level-badge strong{font-size:1.75rem;font-weight:900}.level-badge.large{border-width:7px;width:132px;height:132px;animation:.7s cubic-bezier(.2,1.5,.4,1) .15s both badge-pop;position:relative}.level-badge.large span{font-size:.85rem}.level-badge.large strong{font-size:3.2rem}.xp-bar{background:var(--panel-soft);border-radius:999px;height:10px;overflow:hidden}.xp-bar.large{height:12px}.xp-bar span{border-radius:inherit;background:var(--rank,var(--brand));width:0;height:100%;transition:width .85s cubic-bezier(.65,0,.35,1),background-color .3s;display:block}.achievements-view{grid-template-columns:minmax(0,1.6fr) minmax(280px,1fr);gap:14px;margin-bottom:18px;display:grid}.achievements-panel{grid-row:span 2}.badge-grid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px;display:grid}.badge-tile{border:1px solid var(--line);background:var(--panel-soft);border-radius:8px;align-content:start;gap:6px;padding:12px;display:grid}.badge-tile.unlocked{border-color:var(--brand);background:var(--success-soft);animation:.42s both rise-in}.badge-tile h3{margin:0;font-size:.95rem}.badge-tile p{color:var(--muted);margin:0;font-size:.8rem;line-height:1.35}.badge-tile .badge-status{font-weight:800}.badge-tile.unlocked .badge-status{color:var(--brand-strong)}.badge-tile.unlocked p{color:var(--ink)}.badge-icon{background:var(--line);border-radius:50%;place-items:center;width:40px;height:40px;font-size:1.25rem;display:grid}.badge-tile.unlocked .badge-icon,.celebration-badges .badge-icon{background:#e0a91b}.mini-bar{background:var(--line);border-radius:999px;height:4px;overflow:hidden}.mini-bar span{background:var(--brand);height:100%;display:block}.rule-list,.rank-list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.rule-list li{justify-content:space-between;gap:12px;display:flex}.rule-list strong{color:var(--brand)}.rule-subtitle{margin:16px 0 8px;font-size:.95rem}.muted-text{color:var(--muted);margin:14px 0 0;font-size:.88rem;line-height:1.45}.rank-list li{color:var(--muted);border-radius:8px;grid-template-columns:14px minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:6px 8px;display:grid}.rank-list li.reached{color:var(--ink);font-weight:650}.rank-list li.current{background:var(--panel-soft);font-weight:850}.rank-list small{color:var(--muted);font-weight:600}.rank-dot{background:var(--line);border-radius:50%;width:14px;height:14px}.rank-list li.reached .rank-dot{background:var(--rank)}.rank-you,.level-up-pill{color:#fff;background:var(--rank);letter-spacing:.06em;text-transform:uppercase;border-radius:999px;padding:3px 9px;font-size:.72rem;font-weight:900}.xp-preview{border:1px solid var(--line);background:var(--panel-soft);border-radius:8px;margin-top:18px;padding:14px}.xp-preview-head{flex-wrap:wrap;align-items:baseline;gap:6px 14px;display:flex}.xp-preview-label{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;flex-basis:100%;font-size:.8rem;font-weight:800}.xp-preview-total{color:var(--brand);font-variant-numeric:tabular-nums;font-size:1.8rem;font-weight:900;display:inline-block}.xp-preview-total.pulse{animation:.42s xp-pulse}.xp-preview-open{color:var(--muted);font-size:.9rem}.xp-preview .match-badges{margin-top:10px}.celebration{width:100%;max-width:none;height:100%;max-height:none;color:var(--ink);background:0 0;border:0;margin:0;padding:16px;position:fixed;inset:0;overflow:hidden}.celebration[open]{place-items:center;display:grid}.celebration::backdrop{background:#050c089e;animation:.25s both fade-in}.celebration-card{z-index:1;background:var(--panel-solid);text-align:center;border-radius:20px;gap:12px;width:min(440px,100%);max-height:calc(100dvh - 32px);padding:26px 24px;animation:.48s cubic-bezier(.2,1.3,.4,1) both celebration-pop;display:grid;position:relative;overflow:auto;box-shadow:0 30px 80px #00000059}.celebration-card h2{margin:0;font-size:1.7rem;font-weight:900}.celebration-hero{background:var(--hero);width:88px;height:88px;box-shadow:0 10px 30px color-mix(in srgb, var(--hero) 45%, transparent);border-radius:50%;justify-self:center;place-items:center;font-size:2.6rem;animation:.7s cubic-bezier(.2,1.6,.4,1) .15s both hero-in;display:grid}.celebration-text,.celebration-tip{color:var(--muted);margin:0;line-height:1.45}.celebration-kicker,.celebration-section{color:var(--muted);letter-spacing:.12em;text-transform:uppercase;margin:0;font-size:.75rem;font-weight:900}.celebration-section{text-align:left}.celebration-xp{color:var(--brand);font-variant-numeric:tabular-nums;margin:0;font-size:2.6rem;font-weight:900}.celebration-items,.celebration-badges{text-align:left;gap:8px;margin:0;padding:0;list-style:none;display:grid}.celebration-items li{animation:.32s both slide-in;animation-delay:calc(.5s + var(--i) * 90ms);justify-content:space-between;gap:12px;font-weight:650;display:flex}.celebration-items strong,.celebration-badges b{color:var(--brand)}.celebration-badges li{background:var(--panel-soft);animation:.52s cubic-bezier(.2,1.5,.4,1) both badge-pop;animation-delay:calc(.8s + var(--i) * .18s);border-radius:12px;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px;display:grid}.celebration-badges small{color:var(--muted);display:block}.celebration-level{text-align:left;gap:8px;margin-top:4px;display:grid}.celebration-level-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.celebration-level .level-up-pill{opacity:0;transform:scale(.4)}.level-up-pill.visible{opacity:1;animation:.5s cubic-bezier(.2,1.8,.4,1) badge-pop;transform:none}.level-up-pill.large{justify-self:center;padding:6px 14px;font-size:.85rem}.celebration-card .button{margin-top:6px}.level-burst{place-items:center;height:230px;display:grid;position:relative}.level-rays{background:repeating-conic-gradient(from 0deg, color-mix(in srgb, var(--rank) 28%, transparent) 0deg 8deg, transparent 8deg 24deg);border-radius:50%;width:230px;height:230px;animation:.6s both fade-in,14s linear infinite spin;position:absolute;-webkit-mask-image:radial-gradient(circle,#000 35%,#0000 70%);mask-image:radial-gradient(circle,#000 35%,#0000 70%)}.confetti{z-index:2;pointer-events:none;position:absolute;inset:0;overflow:hidden}.confetti i{animation-name:confetti-fall;animation-timing-function:cubic-bezier(.4,0,.9,.6);animation-fill-mode:both;position:absolute;top:-24px}@keyframes confetti-fall{0%{opacity:1;transform:translate(0,0)rotate(0)}50%{transform:translate3d(var(--drift), 55vh, 0) rotate(calc(var(--spin) / 2))}85%{opacity:1}to{opacity:0;transform:translate3d(calc(var(--drift) * .4), 110vh, 0) rotate(var(--spin))}}@keyframes celebration-pop{0%{opacity:0;transform:scale(.85)translateY(12px)}to{opacity:1;transform:none}}@keyframes hero-in{0%{opacity:0;transform:scale(.2)rotate(-25deg)}to{opacity:1;transform:none}}@keyframes badge-pop{0%{opacity:0;transform:scale(.3)rotate(-20deg)}to{opacity:1;transform:none}}@keyframes slide-in{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes xp-pulse{40%{transform:scale(1.25)}to{transform:scale(1)}}@media (width<=960px){.achievements-view{grid-template-columns:1fr}.achievements-panel{grid-row:auto}}@media (width<=640px){.level-panel{grid-template-columns:auto minmax(0,1fr);gap:14px;padding:16px}.level-side{text-align:left;grid-column:1/-1;grid-template-columns:minmax(0,1fr) auto;place-items:center start}.level-badge{width:60px;height:60px}.badge-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (prefers-reduced-motion:reduce){.celebration *,.celebration::backdrop,.badge-tile,.xp-preview-total{animation:none!important}.celebration-level .level-up-pill:not(.visible){opacity:0}.celebration-level .level-up-pill.visible{opacity:1;transform:none}}
