@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-cyrillic-ext-wght-normal-D4X5GqEv.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-cyrillic-wght-normal-CY6AOgYE.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-vietnamese-wght-normal-U01xdrZh.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-latin-ext-wght-normal-CXYtwYOx.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-latin-wght-normal-BzFMHfZw.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root,.surface-light{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--brand:#2ec27e;--brand-deep:#1fa463;--brand-tint:var(--lightningcss-light,#e3f8ee)var(--lightningcss-dark,#123327);--brand-tint-edge:var(--lightningcss-light,#b5e6cd)var(--lightningcss-dark,#1d4b39);--brand-ink:var(--lightningcss-light,#127a47)var(--lightningcss-dark,#4fd394);--brand-strong:#14864e;--brand-strong-edge:#0c6139;--violet:#7c5cff;--violet-deep:#5f3fe6;--violet-ink:var(--lightningcss-light,#5a3fd6)var(--lightningcss-dark,#b3a1ff);--violet-tint:var(--lightningcss-light,#efebff)var(--lightningcss-dark,#241d47);--violet-line:var(--lightningcss-light,#cfc4ff)var(--lightningcss-dark,#4b3c99);--gold:#ffc233;--gold-deep:#e5a400;--gold-tint:var(--lightningcss-light,#fff5d9)var(--lightningcss-dark,#33290f);--gold-ink:var(--lightningcss-light,#8a5a00)var(--lightningcss-dark,#f5c451);--gold-tint-ink:var(--lightningcss-light,#7a5600)var(--lightningcss-dark,#ffd36b);--gold-mark:var(--lightningcss-light,#8a5a00)var(--lightningcss-dark,#e5a400);--gold-strong:#8a5a00;--coral:#ff5a5f;--coral-deep:#e23d43;--coral-tint:var(--lightningcss-light,#ffe9ea)var(--lightningcss-dark,#3d1b20);--coral-ink:var(--lightningcss-light,#b8262c)var(--lightningcss-dark,#ff8f93);--coral-strong:#b8262c;--coral-mark:var(--lightningcss-light,#b8262c)var(--lightningcss-dark,#ff7a7f);--sky:#2fa8ff;--sky-tint:var(--lightningcss-light,#e4f3ff)var(--lightningcss-dark,#0f2d45);--sky-tint-edge:var(--lightningcss-light,#b9dcf3)var(--lightningcss-dark,#1c4a6c);--sky-deep:var(--lightningcss-light,#0868b0)var(--lightningcss-dark,#7cc4ff);--sky-strong:#0868b0;--ink:var(--lightningcss-light,#1f2a37)var(--lightningcss-dark,#e8edf3);--ink-soft:var(--lightningcss-light,#5b6676)var(--lightningcss-dark,#9eaabb);--line:var(--lightningcss-light,#e6e9ee)var(--lightningcss-dark,#2b3644);--line-edge:var(--lightningcss-light,#cbd2db)var(--lightningcss-dark,#3c4858);--bg:var(--lightningcss-light,#f7f8fa)var(--lightningcss-dark,#0f151c);--card:var(--lightningcss-light,#fff)var(--lightningcss-dark,#18212b);--shimmer:var(--lightningcss-light,#f1f3f6)var(--lightningcss-dark,#232d3a);--shade:var(--lightningcss-light,#1f2a370f)var(--lightningcss-dark,#00000059);--shade-pop:var(--lightningcss-light,#1f2a3724)var(--lightningcss-dark,#00000080)}@media (prefers-color-scheme:dark){:root,.surface-light{--lightningcss-light: ;--lightningcss-dark:initial}}:root{--locked-fill:var(--lightningcss-light,#5b6676)var(--lightningcss-dark,#334050);--locked-edge:var(--lightningcss-light,#434c58)var(--lightningcss-dark,#222b36);--font:"Nunito Variable", "Nunito", system-ui, -apple-system, "Segoe UI", sans-serif;--radius-s:12px;--radius-m:16px;--radius-l:20px;--radius-pill:999px;--shadow-card:0 1px 2px var(--shade), 0 4px 16px var(--shade);--shadow-pop:0 8px 30px var(--shade-pop);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--ease-out:cubic-bezier(.22, 1, .36, 1);--dur-fast:.12s;--dur:.22s;--gutter:16px;--tabbar-h:68px;--sidebar-w:240px}.surface-light,:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (prefers-reduced-motion:reduce){:root{--dur-fast:0s;--dur:0s}}:root[data-motion=reduce]{--dur-fast:0s;--dur:0s}:root[data-motion=reduce] *,:root[data-motion=reduce] :before,:root[data-motion=reduce] :after{scroll-behavior:auto!important;transition:none!important;animation:none!important}:root[data-motion=reduce] .confetti{display:none}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}body{font-family:var(--font);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;font-weight:600;line-height:1.5}h1,h2,h3{letter-spacing:-.01em;margin:0;font-weight:800;line-height:1.2}h1{font-size:28px}h2{font-size:22px}h3{font-size:18px}p{margin:0}:focus-visible{outline:3px solid var(--violet);outline-offset:2px;border-radius:6px}h1[tabindex="-1"]:focus{outline:none}.num{font-variant-numeric:tabular-nums}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.shell{min-height:100dvh}.shell-main{max-width:560px;padding:calc(var(--gutter) + env(safe-area-inset-top)) var(--gutter) calc(var(--tabbar-h) + 24px + env(safe-area-inset-bottom));margin:0 auto}.nav{z-index:10;background:var(--card);position:fixed}.nav-list{margin:0;padding:0;list-style:none;display:flex}.nav-link{color:var(--ink-soft);border-radius:var(--radius-s);transition:color var(--dur) var(--ease-out), background var(--dur) var(--ease-out);align-items:center;gap:4px;font-weight:800;text-decoration:none;display:flex}.nav-link svg{transition:transform var(--dur) var(--ease-spring)}.nav-link[aria-current=page]{color:var(--brand-ink)}.nav-link[aria-current=page] svg{transform:scale(1.12)}.nav-brand{display:none}@media (width<=959px){.nav{padding-bottom:env(safe-area-inset-bottom);border-top:2px solid var(--line);bottom:0;left:0;right:0}.nav-list{height:var(--tabbar-h);justify-content:space-around}.nav-list li{flex:1}.nav-link{flex-direction:column;justify-content:center;height:100%;font-size:12px}.nav-link[aria-current=page] .nav-icon{background:var(--brand-tint)}.nav-icon{border-radius:var(--radius-pill);width:52px;height:32px;transition:background var(--dur) var(--ease-out);place-items:center;display:grid}}@media (width>=960px){.nav{width:var(--sidebar-w);border-right:2px solid var(--line);padding:24px 16px;top:0;bottom:0;left:0}.nav-brand{color:var(--brand-ink);align-items:center;gap:10px;padding:0 12px 28px;font-size:22px;font-weight:900;display:flex}.nav-list{flex-direction:column;gap:6px}.nav-link{border:2px solid #0000;gap:14px;padding:10px 12px;font-size:16px}.nav-link:hover{background:var(--bg)}.nav-link[aria-current=page]{background:var(--brand-tint);border-color:color-mix(in srgb, var(--brand) 45%, transparent)}.shell-main{margin-left:calc(var(--sidebar-w) + max(0px, (100vw - var(--sidebar-w) - 640px) / 2));max-width:640px;padding:40px 32px 48px}}.stack{flex-direction:column;gap:16px;display:flex}.later:not([data-later]):empty{display:none}.later--shown{content-visibility:auto;overflow-clip-margin:24px}.card{background:var(--card);border:2px solid var(--line);border-radius:var(--radius-l);padding:20px}.eyebrow{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);font-size:13px;font-weight:800}.muted{color:var(--ink-soft)}.btn{--btn-bg:var(--brand-strong);--btn-edge:var(--brand-strong-edge);--btn-fg:#fff;min-height:52px;font:inherit;letter-spacing:.04em;text-transform:uppercase;color:var(--btn-fg);background:var(--btn-bg);border-radius:var(--radius-m);box-shadow:0 4px 0 var(--btn-edge);cursor:pointer;transition:transform var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out), filter var(--dur-fast);border:0;justify-content:center;align-items:center;gap:8px;padding:0 24px;font-size:16px;font-weight:900;text-decoration:none;display:inline-flex}.btn:hover{filter:brightness(1.04)}.btn:active{box-shadow:0 0 0 var(--btn-edge);transform:translateY(4px)}.btn-block{width:100%}.btn-small{min-height:36px;box-shadow:0 3px 0 var(--btn-edge);padding:0 14px;font-size:13px}.btn-violet{--btn-bg:var(--violet-deep);--btn-edge:#4529c2}.btn-ghost{--btn-bg:var(--card);--btn-edge:var(--line);--btn-fg:var(--ink-soft);border:2px solid var(--line)}.chip{border-radius:var(--radius-pill);background:var(--card);border:2px solid var(--line);align-items:center;gap:6px;padding:6px 12px;font-size:15px;font-weight:800;display:inline-flex}.progress{border-radius:var(--radius-pill);background:var(--line);height:16px;position:relative;overflow:hidden}.progress-fill{border-radius:inherit;background:var(--fill,var(--brand));transition:width .6s var(--ease-out);position:absolute;inset:0 auto 0 0}.progress-fill:after{content:"";border-radius:var(--radius-pill);background:#ffffff59;height:4px;position:absolute;top:4px;left:8px;right:8px}.pip{display:block;overflow:visible}.pip-eye{transform-box:fill-box;transform-origin:50%;animation:5s infinite pip-blink}.pip--happy{animation:pip-bounce .9s var(--ease-spring) infinite alternate}.pip-thought circle{animation:pip-thought 1.2s var(--ease-out) infinite}.pip-thought circle:nth-child(2){animation-delay:.2s}.pip-thought circle:nth-child(3){animation-delay:.4s}@keyframes pip-thought{0%,to{opacity:.25}40%{opacity:1}}@keyframes pip-blink{0%,94%,to{transform:scaleY(1)}97%{transform:scaleY(.1)}}@keyframes pip-bounce{0%{transform:translateY(0)}to{transform:translateY(-6px)}}.pip--oops{transform-origin:50% 94%;animation:pip-wobble .3s var(--ease-out)}.pip--proud,.pip--cheering{animation:pip-hop .4s var(--ease-spring)}.pip-burst path{transform-box:fill-box;transform-origin:50%;animation:pip-burst .5s var(--ease-spring) both}.pip-burst path:nth-child(2n){animation-delay:80ms}@keyframes pip-wobble{0%,to{transform:rotate(0)}30%{transform:rotate(-6deg)}70%{transform:rotate(4deg)}}@keyframes pip-hop{0%,to{transform:translateY(0)}45%{transform:translateY(-12px)}}@keyframes pip-burst{0%{opacity:0;transform:scale(0)rotate(-45deg)}to{opacity:1;transform:scale(1)rotate(0)}}@media (prefers-reduced-motion:reduce){.pip-eye,.pip--happy,.pip-thought circle,.pip--oops,.pip--proud,.pip--cheering,.pip-burst path{animation:none}}.home-top{justify-content:space-between;align-items:center;gap:12px;display:flex}.home-stats{gap:8px;display:flex}.hero{background:linear-gradient(135deg, var(--brand-strong) 0%, #127f5c 60%, #0f7768 100%);color:#fff;border-radius:var(--radius-l);box-shadow:0 6px 0 var(--brand-strong-edge);border:0;grid-template-columns:1fr auto;align-items:center;gap:12px;padding:24px 20px 20px;display:grid}.hero .eyebrow,.hero p{color:#fff}.hero .btn{--btn-bg:#fff;--btn-edge:#d8efe3;--btn-fg:var(--brand-ink);grid-column:1/-1;margin-top:8px}.hero-aside{color:#fff;text-underline-offset:3px;align-items:center;gap:6px;min-height:44px;margin-top:8px;font-size:.9375rem;text-decoration:underline;display:inline-flex}.hero--rest{box-shadow:0 6px 0 var(--violet-deep);background:linear-gradient(135deg,#6b4ef0 0%,#5a4fe0 55%,#4a4fd6 100%)}.hero--rest .btn{--btn-bg:#ffffff1f;--btn-edge:#0000002e;--btn-fg:#fff;border:2px solid #fff9}.hero-pip{background:radial-gradient(circle,#fffffff2 0 55%,#fff0 72%);border-radius:50%;place-items:center;width:112px;height:112px;display:grid}.rank-row{justify-content:space-between;align-items:baseline;margin-bottom:10px;display:flex}.rank-card h2{font-size:18px}.rank-card--loading{background:linear-gradient(90deg, var(--card) 0%, var(--line) 50%, var(--card) 100%);background-size:200% 100%;min-height:132px;animation:1.2s ease-in-out infinite shimmer}@keyframes shimmer{to{background-position:-200% 0}}.screen-loading-block{border-radius:var(--radius-l);background:linear-gradient(100deg, var(--line) 40%, var(--shimmer) 50%, var(--line) 60%) 0 0 / 300% 100%;min-height:180px;animation:1.4s linear infinite shimmer}.screen-loading-block--banner{min-height:150px}.screen-loading-block--short{min-height:110px}.screen-loading .board-skeleton{aspect-ratio:1;width:100%;max-width:560px}@media (prefers-reduced-motion:reduce){.rank-card--loading,.screen-loading-block{animation:none}}.tag{background:var(--violet-tint);color:var(--violet-ink);letter-spacing:.04em;text-transform:uppercase;vertical-align:middle;border-radius:999px;margin-left:8px;padding:2px 8px;font-size:12px;font-weight:800;display:inline-block}.rating-figure{text-align:right}.rating-number{color:var(--violet);margin:0;font-size:22px;font-weight:800;line-height:1.1}.small{font-size:14px}.rating-figure .small{margin:2px 0 0}.rating-caption{margin:10px 0 0}.tag--settling{background:var(--gold-tint);color:var(--gold-tint-ink)}.rating-caption--unsure{color:var(--gold-ink);font-weight:700}.rank-forecast{border-radius:var(--radius-s);color:var(--violet-ink);background:var(--violet-tint);transition:background var(--dur-fast);align-items:center;gap:10px;margin-top:14px;padding:10px 12px;font-weight:700;text-decoration:none;display:flex}.rank-forecast span{flex:1}.rank-forecast:hover{background:color-mix(in srgb, var(--violet-tint), var(--violet) 10%)}.rank-road{color:var(--violet-ink);justify-content:space-between;align-items:center;gap:8px;margin-top:12px;font-weight:700;text-decoration:none;display:flex}.rank-road:hover span{text-decoration:underline}.empty{text-align:center;flex-direction:column;align-items:center;gap:12px;padding:32px 20px;display:flex}.empty p{max-width:34ch}.sandbox-actions{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.sandbox-actions p{align-self:center;margin:0}.trainer-panel .sandbox-actions{justify-content:flex-start}.sandbox-actions .btn{min-height:44px;padding:0 16px;font-size:14px}.btn-icon{padding:0 10px}.btn:disabled{opacity:.5;cursor:default;filter:none;transform:none}.daily{text-align:left;align-items:center;gap:16px;width:100%;display:flex}.daily-text{flex:1;gap:8px;min-width:0;display:grid}.daily-text p{margin:0}.daily-streak{align-items:flex-start;gap:8px;font-weight:700;line-height:1.35;display:flex}.daily-streak svg{flex:none;margin-top:1px}.daily-freeze{align-items:center;gap:6px;display:flex}.daily-level p{margin:0 0 6px}.goal-ring{flex:none;position:relative}.goal-ring svg{display:block}.goal-ring-track{fill:none;stroke:var(--gold-tint)}.goal-ring-fill{fill:none;stroke:var(--gold);stroke-linecap:round;transition:stroke-dashoffset .7s var(--ease-out)}.goal-ring--done .goal-ring-fill{stroke:var(--brand)}.goal-ring-label{text-align:center;place-content:center;line-height:1.1;display:grid;position:absolute;inset:0}.goal-ring-figure{justify-items:center;font-size:26px;font-weight:800;display:grid}.goal-ring--done .goal-ring-figure{color:var(--brand-ink)}.goal-ring-unit{color:var(--ink-soft);font-size:12px;font-weight:700}@media (prefers-reduced-motion:reduce){.goal-ring-fill{transition:none}}.net-status:empty{display:none}.net-banner{margin:0 0 var(--gutter);border-radius:var(--radius-m);background:var(--sky-tint);color:var(--ink);animation:net-in var(--dur) var(--ease-out);align-items:center;gap:10px;padding:10px 14px;font-size:.9375rem;font-weight:700;line-height:1.35;display:flex}.net-banner svg{color:var(--sky-deep);flex:none}.net-banner span{flex:1}.net-banner--update{background:var(--violet-tint)}.net-banner--update svg{color:var(--violet-ink)}.net-banner .btn{flex:none}@keyframes net-in{0%{opacity:0;transform:translateY(-6px)}}:root[data-vt] .nav{view-transition-name:nav}::view-transition-group(root){animation:none}::view-transition-group(nav){animation:none}::view-transition-old(nav){display:none}::view-transition-new(nav){animation:none}:root[data-vt=forward]::view-transition-old(root){animation:90ms cubic-bezier(.4,0,1,1) both vt-leave-left}:root[data-vt=forward]::view-transition-new(root){animation:.18s cubic-bezier(.22,1,.36,1) 40ms both vt-arrive-right}:root[data-vt=back]::view-transition-old(root){animation:90ms cubic-bezier(.4,0,1,1) both vt-leave-right}:root[data-vt=back]::view-transition-new(root){animation:.18s cubic-bezier(.22,1,.36,1) 40ms both vt-arrive-left}@keyframes vt-leave-left{to{opacity:0;transform:translate(-24px)}}@keyframes vt-leave-right{to{opacity:0;transform:translate(24px)}}@keyframes vt-arrive-right{0%{opacity:0;transform:translate(24px)}}@keyframes vt-arrive-left{0%{opacity:0;transform:translate(-24px)}}::view-transition-group(grow){transform-origin:0 0;animation:none}::view-transition-old(grow){animation:50ms ease-in both vt-fade-out}::view-transition-new(grow){animation:.17s ease-out 40ms both vt-fade-in}:root[data-vt=grow]::view-transition-old(root){animation:70ms ease-in both vt-fade-out}:root[data-vt=grow]::view-transition-new(root){animation:.2s ease-out 50ms both vt-fade-in}@keyframes vt-fade-out{to{opacity:0}}@keyframes vt-fade-in{0%{opacity:0}}@media (prefers-reduced-motion:reduce){::view-transition-group(*){animation:none!important}::view-transition-old(*){animation:none!important}::view-transition-new(*){animation:none!important}}.shell--focus .nav{display:none}.shell--focus .shell-main{padding-bottom:calc(24px + env(safe-area-inset-bottom))}@media (width>=960px){.shell--focus .shell-main{max-width:1080px;margin:0 auto}}.card--link{padding:0;overflow:hidden}.row-link{color:var(--ink);transition:background var(--dur-fast);align-items:center;gap:14px;padding:16px 16px 16px 20px;text-decoration:none;display:flex}.row-link:hover{background:var(--bg)}.row-link-icon{border-radius:var(--radius-s);width:44px;height:44px;color:var(--violet-ink);background:var(--violet-tint);flex:none;place-items:center;display:grid}.row-link-icon--coral{color:var(--coral-ink);background:var(--coral-tint)}.row-link-icon--sky{color:var(--sky-deep);background:var(--sky-tint)}.row-link-icon--gold{color:var(--gold-deep);background:var(--gold-tint)}.row-link-icon--brand{color:var(--brand-ink);background:var(--brand-tint)}.card--rows .row-link+.row-link{border-top:2px solid var(--line)}.daily-run{flex:none}.count-badge{border-radius:var(--radius-pill);text-align:center;color:#fff;background:var(--coral-strong);flex:none;min-width:28px;padding:2px 8px;font-weight:900}.row-link-text{flex:1;gap:2px;display:grid}.row-link-text strong{font-size:17px;font-weight:800}.row-link-chevron{color:var(--ink-soft);flex:none}.btn-danger{--btn-fg:var(--coral-ink);border-color:var(--coral)}.session-strip{flex-wrap:wrap;grid-column:1/-1;gap:8px;margin:0;padding:0;list-style:none;display:flex}.session-chip{color:var(--ink);border-radius:var(--radius-pill);background:#fffffff0;align-items:center;gap:6px;padding:6px 12px;font-size:13px;font-weight:800;text-decoration:none;display:inline-flex}.session-chip svg{color:var(--brand-ink)}
