:root{--leaf-100:#8fdc6a;--leaf-200:#5cc97c;--leaf-300:#3fb865;--leaf-400:#2f9e57;--leaf-500:#237a44;--leaf-600:#1d6b3a;--leaf-700:#1b5e34;--jungle-800:#123d27;--jungle-850:#0f3020;--jungle-900:#0b1d17;--jungle-950:#06120d;--banana:#ffd93d;--banana-hi:#fff1a8;--banana-lo:#e0a800;--gold:#fbbf24;--orange:#fb923c;--orange-lo:#d9661a;--coral:#ff6b6b;--coral-lo:#d94343;--pink:#f472b6;--lilac:#c084fc;--lilac-lo:#9453d6;--sky:#60a5fa;--sky-lo:#2f74d0;--water:#38b6f2;--mint:#5eead4;--sand:#e8d6a6;--trunk:#8a5a34;--white:#fff;--bg:var(--jungle-900);--text:#f6fff8;--text-2:#f6fff8cc;--text-3:#f6fff899;--ink:#16301f;--ink-2:#3b5445;--accent:var(--banana);--good:var(--leaf-200);--good-lo:var(--leaf-400);--bad:var(--coral);--panel:#081e16b8;--glass-bg:linear-gradient(160deg, #22603e9e 0%, #0a241acc 55%, #081c14db 100%);--glass-solid:linear-gradient(160deg, #1e5638e6 0%, #0b261bf0 60%, #081c14f5 100%);--glass-border:#ffffff29;--glass-blur:18px;--well:#00000038;--well-border:#ffffff14;--chip-bg:#ffffff1a;--chip-border:#ffffff24;--hairline:#ffffff1a;--finger-pinky:#f472b6;--finger-ring:#fb923c;--finger-middle:#ffd93d;--finger-index-l:#5cc97c;--finger-index-r:#60a5fa;--finger-thumb:#c084fc;--mastery-low:#ff6b6b;--mastery-mid:#ffd93d;--mastery-high:#5cc97c;--radius-xs:10px;--radius-sm:16px;--radius-md:24px;--radius-lg:32px;--radius-pill:999px;--shadow-sm:0 4px 10px -4px #00000080;--shadow-md:0 14px 32px -12px #0009;--shadow-lg:0 32px 70px -24px #000000b3, 0 10px 24px -12px #00000073;--inner-glow:inset 0 1px 0 #ffffff29, inset 0 0 0 1px #ffffff08, inset 0 -40px 60px -40px #8fdc6a29;--text-shadow:0 2px 0 #00000040;--font-display:"Fredoka", ui-rounded, "SF Pro Rounded", "Nunito", system-ui, sans-serif;--font-body:"Nunito", ui-rounded, "SF Pro Rounded", system-ui, -apple-system, "Segoe UI", sans-serif;--fs-caption:16px;--fs-small:18px;--fs-body:20px;--fs-lead:24px;--fs-h3:28px;--fs-h2:clamp(30px, 3.2vw, 38px);--fs-h1:clamp(40px, 4.6vw, 56px);--fs-hero:clamp(64px, 9vw, 120px);--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;--sp-7:48px;--sp-8:64px;--gutter:clamp(16px, 3vw, 40px);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--ease-pop:cubic-bezier(.2, 1.7, .45, 1);--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-in:cubic-bezier(.55, 0, 1, .45);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--dur-1:.18s;--dur-2:.24s;--dur-3:.32s;--focus:var(--banana);--z-screen:1;--z-overlay:50;--z-modal:60}*,:before,:after{box-sizing:border-box}[hidden]{display:none!important}html,body{background:radial-gradient(120% 90% at 50% 0%, #174a31 0%, var(--jungle-900) 62%, var(--jungle-950) 100%) fixed, var(--jungle-900);width:100%;height:100%;color:var(--text);font-family:var(--font-body);font-size:var(--fs-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;margin:0;font-weight:700;line-height:1.35;overflow:hidden}#three-canvas{z-index:0;outline:none;width:100vw;height:100vh;display:block;position:fixed;inset:0}#hud-root,#ui-root,#fx-root{position:fixed;inset:0}#hud-root{z-index:10;pointer-events:none}#hud-root .interactive,#fx-root .interactive{pointer-events:auto}.game-hud{pointer-events:none;position:absolute;inset:0}#ui-root{z-index:20;pointer-events:none}#ui-root>*{pointer-events:auto}#ui-root>.passthrough,.passthrough{pointer-events:none}.passthrough .interactive{pointer-events:auto}#fx-root{z-index:30;pointer-events:none;overflow:hidden}h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:.005em;margin:0;font-weight:700;line-height:1.1}p{margin:0}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}input,textarea{-webkit-user-select:text;user-select:text}kbd{font-family:var(--font-display)}.emoji{font-family:"Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", var(--font-body);font-weight:400;line-height:1}.sr-only{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}:focus{outline:none}:focus-visible{outline:4px solid var(--focus);outline-offset:4px}.scroll-y{scrollbar-width:thin;scrollbar-color:#ffffff40 transparent;overflow:hidden auto}.scroll-y::-webkit-scrollbar{width:10px}.scroll-y::-webkit-scrollbar-thumb{background:#ffffff38 padding-box padding-box;border:3px solid #0000;border-radius:10px}@keyframes tj-rise-in{0%{opacity:0;transform:translateY(26px)scale(.98)}to{opacity:1;transform:none}}@keyframes tj-fade-in{0%{opacity:0}to{opacity:1}}@keyframes tj-fade-out{to{opacity:0}}@keyframes tj-pop-in{0%{opacity:0;transform:scale(.3)rotate(-8deg)}60%{opacity:1;transform:scale(1.12)rotate(2deg)}to{opacity:1;transform:scale(1)rotate(0)}}@keyframes tj-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes tj-wiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-7deg)}75%{transform:rotate(7deg)}}@keyframes tj-shake{0%,to{transform:translate(0)}20%{transform:translate(-9px)}40%{transform:translate(8px)}60%{transform:translate(-6px)}80%{transform:translate(4px)}}@keyframes tj-pulse-ring{0%{opacity:.85;transform:scale(.85)}to{opacity:0;transform:scale(1.6)}}@keyframes tj-spin{to{transform:rotate(360deg)}}@keyframes tj-shine{0%{transform:translate(-120%)skew(-20deg)}60%,to{transform:translate(260%)skew(-20deg)}}.screen{isolation:isolate;position:absolute;inset:0;overflow:hidden}.screen__content{z-index:var(--z-screen);height:100%;position:relative}.enter-rise{animation:tj-rise-in var(--dur-3) var(--ease-out) both}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}}.btn{--btn-top:#fff1a0;--btn-bg:var(--banana);--btn-lip:#d39a00;--btn-fg:#3b2500;--btn-lip-h:6px;border-radius:var(--radius-pill);min-height:56px;font:600 22px/1 var(--font-display);letter-spacing:.01em;color:var(--btn-fg);white-space:nowrap;background:linear-gradient(180deg, var(--btn-top), var(--btn-bg));box-shadow:0 var(--btn-lip-h) 0 var(--btn-lip), 0 calc(var(--btn-lip-h) + 10px) 20px -8px #0000008c, inset 0 2px 0 #ffffff8c, inset 0 -3px 0 #00000014;transition:transform var(--dur-1) var(--ease-spring), box-shadow var(--dur-1) var(--ease-out), filter var(--dur-1) var(--ease-out);isolation:isolate;cursor:pointer;border:0;justify-content:center;align-items:center;gap:10px;padding:0 28px 2px;display:inline-flex;position:relative;overflow:hidden;transform:translateY(0)}.btn:after{content:"";pointer-events:none;z-index:-1;background:linear-gradient(90deg,#0000,#ffffff73,#0000);width:40%;position:absolute;top:0;bottom:0;left:0;transform:translate(-120%)skew(-20deg)}.btn:hover:not(:disabled):after{animation:tj-shine .9s var(--ease-out)}.btn:hover:not(:disabled){filter:brightness(1.05)saturate(1.06);box-shadow:0 calc(var(--btn-lip-h) + 3px) 0 var(--btn-lip), 0 calc(var(--btn-lip-h) + 18px) 26px -10px #0009, inset 0 2px 0 #fff9, inset 0 -3px 0 #00000014;transform:translateY(-3px)}.btn:active:not(:disabled){transform:translateY(calc(var(--btn-lip-h) - 1px));box-shadow:0 1px 0 var(--btn-lip), 0 4px 10px -4px #00000080, inset 0 2px 0 #fff6, inset 0 -2px 0 #00000014;transition-duration:60ms}.btn:disabled{cursor:not-allowed;filter:grayscale(.7)brightness(.75);opacity:.55}.btn:focus-visible{outline:4px solid var(--focus);outline-offset:5px}.btn__icon{filter:drop-shadow(0 2px #00000026);font-size:1.2em;line-height:1}.btn__label{padding-top:1px}.btn__kbd{font:600 14px/1 var(--font-display);letter-spacing:.02em;color:inherit;opacity:.85;background:#00000021;border-radius:9px;margin-left:4px;padding:5px 8px 6px;box-shadow:inset 0 -2px #00000029}.btn--go{--btn-top:#8ee89c;--btn-bg:#3fb865;--btn-lip:#1f7a3c;--btn-fg:#fff;text-shadow:0 2px #0a461e59}.btn--sky{--btn-top:#a3cdff;--btn-bg:#60a5fa;--btn-lip:#2f6fc4;--btn-fg:#fff;text-shadow:0 2px #143c8259}.btn--danger{--btn-top:#ff9d9d;--btn-bg:#ff6b6b;--btn-lip:#c23b3b;--btn-fg:#fff;text-shadow:0 2px #7814144d}.btn--glass{--btn-top:#2e704cd1;--btn-bg:#0c2c1ddb;--btn-lip:#020e088c;--btn-fg:var(--text);-webkit-backdrop-filter:blur(10px)saturate(1.3);box-shadow:0 var(--btn-lip-h) 0 var(--btn-lip), 0 calc(var(--btn-lip-h) + 10px) 20px -8px #00000080, inset 0 0 0 1px #ffffff29, inset 0 2px 0 #ffffff2e}.btn--glass:hover:not(:disabled){--btn-top:#3e8a5ee0;--btn-bg:#123a26e6;box-shadow:0 calc(var(--btn-lip-h) + 3px) 0 var(--btn-lip), 0 calc(var(--btn-lip-h) + 18px) 26px -10px #0000008c, inset 0 0 0 1px #ffffff38, inset 0 2px 0 #ffffff38}.btn--glass .btn__kbd,.btn--go .btn__kbd,.btn--danger .btn__kbd,.btn--sky .btn__kbd{background:#0003}.btn--ghost{--btn-lip-h:0px;--btn-fg:var(--text-2);box-shadow:none;background:0 0;font-weight:500}.btn--ghost:hover:not(:disabled){color:var(--text);box-shadow:none;background:#ffffff1a;transform:translateY(-1px)}.btn--ghost:active:not(:disabled){box-shadow:none;transform:translateY(1px)}.btn--sm{--btn-lip-h:4px;gap:8px;min-height:46px;padding:0 18px 1px;font-size:19px}.btn--lg{--btn-lip-h:7px;gap:12px;min-height:68px;padding:0 34px 2px;font-size:26px}.btn--icon-only{width:56px;padding:0}.btn--icon-only.btn--sm{width:46px}.glass{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg), var(--inner-glow);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(1.4)}.avatar-badge{--size:64px;--c:var(--leaf-200);width:var(--size);height:var(--size);background:radial-gradient(circle at 34% 28%, color-mix(in srgb, var(--c) 45%, white) 0%, var(--c) 50%, color-mix(in srgb, var(--c) 72%, black) 100%);box-shadow:inset 0 calc(var(--size) * -.06) 0 #00000029, inset 0 calc(var(--size) * .04) 0 #ffffff59, 0 0 0 calc(var(--size) * .05) #ffffffeb, 0 calc(var(--size) * .1) calc(var(--size) * .22) calc(var(--size) * -.04) #0000008c;border-radius:50%;flex:none;place-items:center;display:inline-grid;position:relative}.avatar-badge__emoji{font-size:calc(var(--size) * .58);filter:drop-shadow(0 calc(var(--size) * .03) calc(var(--size) * .02) #00000047);transform:translateY(3%)}.rank-badge{min-width:34px;height:34px;font:700 19px/1 var(--font-display);color:#4a2a00;background:linear-gradient(#fff0a0 0%,#fbbf24 58%,#f59e0b 100%);border-radius:12px;flex:none;place-items:center;padding:0 8px;display:inline-grid;box-shadow:0 3px #b36a00,inset 0 1px #ffffffbf,0 6px 12px -4px #00000080}.rank-badge--lg{border-radius:19px;min-width:58px;height:58px;font-size:30px;box-shadow:0 5px #b36a00,inset 0 2px #ffffffbf,0 10px 20px -6px #0000008c}.rank-badge.is-rankup{animation:rank-pop .76s var(--ease-pop)}@keyframes rank-pop{0%{transform:scale(1)}30%{transform:scale(1.5)rotate(-10deg);box-shadow:0 0 0 10px #ffd93d59,0 0 40px #ffd93de6}60%{transform:scale(.92)rotate(4deg)}to{transform:scale(1)rotate(0)}}.xpbar{border-radius:var(--radius-pill);background:#00000061;height:14px;display:block;position:relative;overflow:hidden;box-shadow:inset 0 2px 4px #00000073,0 1px #ffffff14}.xpbar__fill{width:calc(var(--p,0) * 100%);border-radius:inherit;min-width:0;transition:width .9s var(--ease-out);background:repeating-linear-gradient(-45deg,#ffffff38 0 7px,#0000 7px 14px) 0 0/20px 20px,linear-gradient(#fff1a0 0%,#ffd93d 45%,#f2b705 100%) 0 0/100% 100%;animation:1.2s linear infinite xp-stripes;position:absolute;top:0;bottom:0;left:0;box-shadow:inset 0 2px #ffffff8c,0 0 12px #ffd93d73}@keyframes xp-stripes{to{background-position:20px 0,0 0}}.xpbar__text{font:800 12px/1 var(--font-body);color:#fff;text-shadow:0 1px 2px #000c;place-items:center;display:grid;position:absolute;inset:0}.xpbar--big{height:22px}.bigtext{--fill:linear-gradient(180deg, #fff6c2 0%, #ffd93d 45%, #fb923c 100%);--outline:#0d3a23;--stroke:.17em;--extrude:#052616;font-family:var(--font-display);white-space:nowrap;font-weight:700;line-height:1;display:inline-block;position:relative}.bigtext__layer{display:inline-block}.bigtext__layer--stroke{color:var(--outline);-webkit-text-stroke:var(--stroke) var(--outline);filter:drop-shadow(0 .07em 0 var(--extrude)) drop-shadow(0 .14em .12em #00000059)}.bigtext__layer--fill{position:absolute;top:0;left:0}.bigtext__g{display:inline-block}.bigtext__layer--fill .bigtext__g{background:var(--fill);color:#0000;-webkit-background-clip:text;background-clip:text}.toast-stack{z-index:5;flex-direction:column;align-items:center;gap:10px;width:min(560px,100vw - 32px);display:flex;position:absolute;top:92px;left:50%;transform:translate(-50%)}.toast{border-radius:var(--radius-pill);background:var(--glass-solid);border:1px solid var(--glass-border);max-width:100%;box-shadow:var(--shadow-md), var(--inner-glow);font:700 20px/1.2 var(--font-body);color:var(--text);animation:toast-in .46s var(--ease-spring) both;align-items:center;gap:14px;padding:9px 24px 9px 9px;display:flex}.toast__emoji{background:linear-gradient(#a3cdff,#60a5fa);border-radius:50%;flex:none;place-items:center;width:46px;height:46px;font-size:25px;display:grid;box-shadow:inset 0 -3px #00000026,inset 0 2px #fff6}.toast--good .toast__emoji{background:linear-gradient(#8ee89c,#3fb865)}.toast--bad .toast__emoji{background:linear-gradient(#ffa8a8,#ff6b6b)}.toast.is-leaving{animation:toast-out .24s var(--ease-in) both}@keyframes toast-in{0%{opacity:0;transform:translateY(-26px)scale(.88)}to{opacity:1;transform:none}}@keyframes toast-out{to{opacity:0;transform:translateY(-14px)scale(.9)}}.countdown{z-index:var(--z-overlay);background:radial-gradient(circle,#04120c6b 0%,#04120c1f 45%,#0000 70%);place-items:center;animation:.2s both tj-fade-in;display:grid;position:absolute;inset:0}.countdown__item{animation:count-pop .65s var(--ease-out) both;grid-area:1/1;place-items:center;display:grid;position:relative}.countdown__item--go{animation-name:count-go}.countdown__text{--stroke:.13em;grid-area:1/1;font-size:clamp(170px,30vh,280px)}.countdown__item--three .bigtext{--fill:linear-gradient(180deg, #ffd9d9 0%, #ff6b6b 55%, #e23d57 100%)}.countdown__item--two .bigtext{--fill:linear-gradient(180deg, #ffe6cc 0%, #fb923c 55%, #e0620e 100%)}.countdown__item--one .bigtext{--fill:linear-gradient(180deg, #fff8d1 0%, #ffd93d 55%, #f2a900 100%)}.countdown__item--go .bigtext{--fill:linear-gradient(180deg, #eaffdf 0%, #8fdc6a 50%, #2f9e57 100%)}.countdown__ring{aspect-ratio:1;width:clamp(220px,36vh,340px);animation:ring-out .65s var(--ease-out) both;border:12px solid #ffffff8c;border-radius:50%;grid-area:1/1}.countdown__burst{aspect-ratio:1;width:clamp(420px,70vh,720px);animation:burst-spin .65s var(--ease-out) both;background:repeating-conic-gradient(#fff4be57 0deg 9deg,#0000 9deg 22deg);border-radius:50%;grid-area:1/1;-webkit-mask-image:radial-gradient(circle,#000 22%,#0000 68%);mask-image:radial-gradient(circle,#000 22%,#0000 68%)}@keyframes count-pop{0%{opacity:0;transform:scale(.3)rotate(-14deg)}32%{opacity:1;transform:scale(1.14)rotate(3deg)}52%{transform:scale(1)rotate(0)}82%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.3)}}@keyframes count-go{0%{opacity:0;transform:scale(.2)rotate(-8deg)}30%{opacity:1;transform:scale(1.22)rotate(2deg)}50%{transform:scale(1)}75%{opacity:1;transform:scale(1.04)}to{opacity:0;transform:scale(1.6)}}@keyframes ring-out{0%{opacity:0;transform:scale(.4)}30%{opacity:1}to{opacity:0;transform:scale(1.5)}}@keyframes burst-spin{0%{opacity:0;transform:scale(.3)rotate(0)}35%{opacity:1}to{opacity:0;transform:scale(1.2)rotate(60deg)}}.pause{z-index:var(--z-modal);-webkit-backdrop-filter:blur(7px)saturate(.8);animation:tj-fade-in .2s var(--ease-out) both;background:#030e0994;place-items:center;padding:16px;display:grid;position:absolute;inset:0}.pause.is-leaving{animation:tj-fade-out .2s var(--ease-in) both}.pause__card{text-align:center;width:min(500px,100%);animation:tj-pop-in .46s var(--ease-spring) both;justify-items:center;gap:8px;padding:30px 36px 34px;display:grid}.pause__mascot{transform-origin:50% 90%;font-size:92px;animation:3s ease-in-out infinite pause-snooze}@keyframes pause-snooze{0%,to{transform:rotate(-6deg)translateY(0)}50%{transform:rotate(6deg)translateY(-6px)}}.pause__title{font-size:58px}.pause__sub{color:var(--text-2);margin-bottom:18px;font-size:22px}.pause__actions{gap:18px;width:100%;display:grid}.pause__actions .btn{width:100%}.topbar{pointer-events:none;animation:topbar-in .46s var(--ease-spring) both;justify-content:space-between;align-items:flex-start;gap:12px;display:flex;position:absolute;top:16px;left:16px;right:16px}.topbar[hidden]{display:none}@keyframes topbar-in{0%{opacity:0;transform:translateY(-24px)}to{opacity:1;transform:none}}.topbar__player,.stat-pill{background:var(--glass-bg);border:1px solid var(--glass-border);box-shadow:var(--shadow-md), var(--inner-glow);-webkit-backdrop-filter:blur(14px)saturate(1.3)}.topbar__player{border-radius:var(--radius-pill);align-items:center;gap:14px;padding:7px 22px 7px 7px;display:flex}.topbar__avatar{--size:58px}.topbar__who{gap:7px;min-width:210px;display:grid}.topbar__line{align-items:center;gap:12px;display:flex}.topbar__name{font:700 25px/1 var(--font-display);text-overflow:ellipsis;white-space:nowrap;max-width:220px;overflow:hidden}.topbar__rank{font:800 17px/1 var(--font-body);color:var(--banana);white-space:nowrap;align-items:center;gap:7px;display:inline-flex}.topbar__rank .rank-badge{border-radius:9px;min-width:27px;height:27px;padding:0 6px;font-size:16px;box-shadow:0 2px #b36a00,inset 0 1px #ffffffbf}.topbar .xpbar{height:12px;transition:height var(--dur-2) var(--ease-spring)}.topbar .xpbar__text{opacity:0;transition:opacity var(--dur-1)}.topbar__player:hover .xpbar{height:18px}.topbar__player:hover .xpbar__text{opacity:1}.topbar__right{align-items:center;gap:10px;display:flex}.stat-pill{border-radius:var(--radius-pill);height:54px;font:700 25px/1 var(--font-display);align-items:center;gap:8px;padding:0 20px 0 12px;display:inline-flex}.stat-pill__icon{filter:drop-shadow(0 2px 2px #0000004d);font-size:29px}.stat-pill.is-bumped{animation:pill-bump .52s var(--ease-pop)}.stat-pill--streak.is-cold .stat-pill__icon{filter:grayscale()opacity(.55)}.stat-pill--streak.is-cold .stat-pill__value{color:var(--text-3)}@keyframes pill-bump{0%{transform:scale(1)}35%{transform:scale(1.18)rotate(-3deg)}to{transform:scale(1)}}.topbar__icon-btn,.topbar__switch{min-height:54px}.topbar__icon-btn{width:54px}.topbar__icon-btn .btn__icon{font-size:26px}@media (max-width:900px){.topbar__title,.topbar__switch .btn__label{display:none}.topbar__who{min-width:150px}}[data-finger=lp],[data-finger=rp]{--f:var(--finger-pinky)}[data-finger=lr],[data-finger=rr]{--f:var(--finger-ring)}[data-finger=lm],[data-finger=rm]{--f:var(--finger-middle)}[data-finger=li]{--f:var(--finger-index-l)}[data-finger=ri]{--f:var(--finger-index-r)}[data-finger=th]{--f:var(--finger-thumb)}.kb{--kb-u:50px;--kb-gap:6px;--kb-radius:12px;box-shadow:var(--shadow-md), inset 0 1px 0 #ffffff14;background:linear-gradient(#04160e9e,#04120cb8);border:1px solid #ffffff1a;border-radius:28px;justify-items:center;gap:12px;padding:16px;display:inline-grid}.kb--compact{--kb-u:38px;--kb-gap:5px;--kb-radius:10px;border-radius:20px;padding:10px}.kb-board{gap:var(--kb-gap);display:grid}.kb-row{gap:var(--kb-gap);display:flex}.kb:not(.kb--numbers) .kb-row--numbers{display:none}.kb-key,.kb-gap{width:calc(var(--w,1) * var(--kb-u) + (var(--w,1) - 1) * var(--kb-gap));height:var(--kb-u);flex:none}.kb-key{position:relative}.kb-key__cap{border-radius:var(--kb-radius);font:600 calc(var(--kb-u) * .42) / 1 var(--font-display);color:var(--text);transition:background var(--dur-1), color var(--dur-1), opacity var(--dur-2), filter var(--dur-2), box-shadow var(--dur-1);background:linear-gradient(#2d4b3b,#203a2d);place-items:center;display:grid;position:absolute;inset:0;box-shadow:inset 0 -4px #0000005c,inset 0 1px #ffffff1f,0 2px #00000059}.kb--fingers .kb-key__cap{background:linear-gradient(180deg, color-mix(in srgb, var(--f) 30%, #24422f), color-mix(in srgb, var(--f) 16%, #183324));box-shadow:inset 0 -4px 0 color-mix(in srgb, var(--f) 62%, #081a10), inset 0 1px 0 #ffffff29, 0 2px 0 #00000059}.kb-key--mod .kb-key__cap{font-size:calc(var(--kb-u) * .38);color:var(--text-3)}.kb--fingers .kb-key--mod:not([data-key^=shift]) .kb-key__cap{background:linear-gradient(#2a4637,#1f372a);box-shadow:inset 0 -4px #00000059,inset 0 1px #ffffff1a}.kb-key__sub{opacity:.6;font-size:.6em;position:absolute;top:9%;left:14%}.kb-key__sub+.kb-key__label{transform:translateY(14%)}.kb-key__bump{opacity:.65;background:currentColor;border-radius:3px;width:28%;height:3px;position:absolute;bottom:15%;left:50%;transform:translate(-50%)}.kb-key--space .kb-key__label{font-size:calc(var(--kb-u) * .28);letter-spacing:.18em;text-transform:uppercase;opacity:.75}.kb-key.is-dim .kb-key__cap{opacity:.26;filter:saturate(.25)}.kb--plain .kb-key{--f:var(--banana)}.kb-key.is-next{z-index:2;animation:kb-bounce .9s var(--ease-in-out) infinite}.kb-key.is-next .kb-key__cap{opacity:1;filter:none;color:#10281b;background:linear-gradient(180deg, color-mix(in srgb, var(--f) 55%, white), var(--f));box-shadow:inset 0 -4px 0 color-mix(in srgb, var(--f) 60%, black), inset 0 2px 0 #fff9, 0 0 0 3px #fffffff2, 0 0 28px 6px color-mix(in srgb, var(--f) 75%, transparent)}.kb-key.is-next:after{content:"";border-radius:calc(var(--kb-radius) + 7px);border:3px solid var(--f);pointer-events:none;animation:1.1s ease-out infinite tj-pulse-ring;position:absolute;inset:-7px}.kb-key.is-next.is-error .kb-key__cap{box-shadow:inset 0 -4px 0 color-mix(in srgb, var(--f) 60%, black), inset 0 2px 0 #fff9, 0 0 0 4px var(--coral), 0 0 30px 8px #ff6b6bbf}.kb-key.is-next.is-error:after{border-color:var(--coral)}@keyframes kb-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.kb-hands{justify-content:center;gap:calc(var(--kb-u) * 2.6);margin-top:-4px;display:flex}.kb-hand{width:108px;height:103px;overflow:visible}.kb-hand__palm{fill:#1f4d35;stroke:#ffffff3d;stroke-width:2px}.kb-hand__finger{fill:color-mix(in srgb, var(--f) 62%, #1f4d35);stroke:#ffffff38;stroke-width:2px;transform-box:fill-box;transform-origin:50% 100%;transition:fill var(--dur-1), transform var(--dur-2) var(--ease-spring)}.kb-hand__finger.is-active{fill:var(--f);stroke:#fff;stroke-width:3px;transform:translateY(-5px)scale(1.08)}.kb--heatmap .kb-key__cap{color:var(--text-3);background:#ffffff0f;box-shadow:inset 0 -3px #0000004d,inset 0 0 0 1px #ffffff0d}.kb--heatmap .kb-key.is-locked .kb-key__cap{opacity:.45}.kb--heatmap .kb-key.has-data{cursor:help;transition:transform var(--dur-2) var(--ease-spring)}.kb--heatmap .kb-key.has-data .kb-key__cap{color:#10281b;background:linear-gradient(180deg, color-mix(in srgb, var(--m) 70%, white), var(--m));box-shadow:inset 0 -4px 0 color-mix(in srgb, var(--m) 62%, black), inset 0 1px 0 #ffffff8c}.kb--heatmap .kb-key.has-data:hover,.kb--heatmap .kb-key.has-data:focus-visible{z-index:5;transform:translateY(-4px)scale(1.08)}.kb--heatmap .kb-key.has-data:focus-visible{outline-offset:3px}.kb-tip{min-width:176px;color:var(--ink);font:700 16px/1.2 var(--font-body);white-space:nowrap;box-shadow:var(--shadow-md);opacity:0;pointer-events:none;transition:opacity var(--dur-1), transform var(--dur-2) var(--ease-spring);z-index:10;background:#fffdf5;border-radius:18px;gap:5px;padding:10px 16px 12px;display:grid;position:absolute;bottom:calc(100% + 12px);left:50%;transform:translate(-50%,8px)scale(.96)}.kb-tip:after{content:"";background:inherit;border-radius:3px;width:16px;height:16px;margin:-9px 0 0 -8px;position:absolute;top:100%;left:50%;transform:rotate(45deg)}.kb-tip__key{font:700 24px/1 var(--font-display)}.kb-tip__row{align-items:center;gap:4px;display:flex}.kb-key:hover .kb-tip,.kb-key:focus-visible .kb-tip{opacity:1;transform:translate(-50%)scale(1)}.kb-legend{font:700 17px/1 var(--font-body);color:var(--text-2);flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;display:flex}.kb-legend__ramp{border-radius:var(--radius-pill);background:linear-gradient(90deg, var(--mastery-low), var(--mastery-mid), var(--mastery-high));width:150px;height:14px;box-shadow:inset 0 1px #ffffff59}.kb-legend__swatch--new{background:#ffffff0f;border:1px solid #ffffff29;border-radius:7px;width:22px;height:22px;margin-left:14px}.keycap{min-width:86px;height:86px;font:700 46px/1 var(--font-display);color:#3b2500;animation:keycap-pop .56s var(--ease-pop) both;animation-delay:calc(var(--i,0) * .15s + .2s);background:linear-gradient(#fff6c2,#ffd93d);border-radius:22px;place-items:center;padding:0 18px 4px;display:inline-grid;box-shadow:inset 0 -7px #d39a00,inset 0 2px #ffffffd9,0 12px 24px -8px #0000008c,0 0 34px #ffd93d80}@keyframes keycap-pop{0%{opacity:0;transform:translateY(30px)scale(.3)rotate(-20deg)}60%{opacity:1;transform:translateY(-8px)scale(1.15)rotate(4deg)}to{opacity:1;transform:none}}.stars{justify-content:center;align-items:flex-end;gap:2px;height:118px;display:flex}.star{width:86px;height:86px;position:relative}.star--1{transform:rotate(-14deg)translateY(2px)}.star--2{width:112px;height:112px;transform:translateY(-10px)}.star--3{transform:rotate(14deg)translateY(2px)}.star svg{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.star__shell-shape{fill:#0000004d;stroke:#fff3;stroke-width:5px;stroke-linejoin:round}.star__outline{fill:#e89400;stroke:#7a4300;stroke-width:7px;stroke-linejoin:round}.star__fill{filter:drop-shadow(0 5px #00000038)drop-shadow(0 0 16px #ffd93d8c)}.stars--animate .star__fill{animation:star-pop .56s var(--ease-pop) both;animation-delay:var(--d)}@keyframes star-pop{0%{opacity:0;transform:scale(0)rotate(-45deg)}55%{opacity:1;transform:scale(1.32)rotate(8deg)}to{opacity:1;transform:scale(1)rotate(0)}}.star__sparks i{opacity:0;width:9px;height:9px;animation:star-spark .65s var(--ease-out) both;animation-delay:calc(var(--d) + .14s);background:#fff6c2;border-radius:50%;margin:-4.5px;position:absolute;top:52%;left:50%;box-shadow:0 0 10px 2px #ffd93de6}@keyframes star-spark{0%{opacity:1;transform:rotate(var(--a)) translateY(-14px) scale(1)}to{opacity:0;transform:rotate(var(--a)) translateY(-78px) scale(.3)}}.speech{--tone:var(--banana);max-width:100%;animation:speech-in .52s var(--ease-spring) both;align-items:flex-end;gap:14px;display:flex}.speech--calm{--tone:var(--mint)}.speech--hype{--tone:var(--orange)}.speech--gentle{--tone:var(--lilac)}.speech--proud{--tone:var(--gold)}.speech--funny{--tone:var(--sky)}@keyframes speech-in{0%{opacity:0;transform:translateY(20px)scale(.9)}to{opacity:1;transform:none}}.speech__guide{background:radial-gradient(circle at 34% 28%, #fff 0%, color-mix(in srgb, var(--tone) 70%, white) 40%, var(--tone) 100%);border-radius:50%;flex:none;place-items:center;width:76px;height:76px;font-size:46px;animation:2.6s ease-in-out infinite tj-bob;display:grid;box-shadow:0 0 0 4px #fffdf5,0 12px 22px -8px #0000008c}.speech__bubble{max-width:460px;color:var(--ink);box-shadow:0 5px 0 color-mix(in srgb, var(--tone) 80%, black 10%), 0 18px 30px -12px #0000008c;background:#fffdf5;border-radius:28px 28px 28px 10px;margin-bottom:18px;padding:16px 24px 18px;position:relative}.speech__bubble:before{content:"";background:inherit;border-radius:4px;width:22px;height:22px;position:absolute;bottom:10px;left:-10px;transform:rotate(45deg)skew(10deg,10deg)}.speech__text{font:500 24px/1.28 var(--font-display);position:relative}.speech__rest{color:#0000}.chart{border-radius:18px;position:relative}.chart:focus-visible{outline-offset:6px}.chart__svg{width:100%;height:auto;font-family:var(--font-body);display:block;overflow:visible}.chart__tick line{stroke:#ffffff1a;stroke-width:1px}.chart__tick text,.chart__xcap{fill:var(--text-3);font-variant-numeric:tabular-nums;font-size:17px;font-weight:700}.chart__line{fill:none;stroke-width:3.5px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1px;animation:chart-draw 1.1s var(--ease-out) .15s forwards}@keyframes chart-draw{to{stroke-dashoffset:0}}.chart__area{opacity:0;animation:.7s .6s forwards tj-fade-in}.chart__dot{stroke:#0f2c1e;stroke-width:2px;opacity:0;animation:.3s forwards tj-fade-in;animation-delay:calc(.3s + var(--i,0) * 25ms)}.chart__dot--end{stroke-width:3px;animation-delay:1.1s}.chart__endlabel{fill:var(--text);opacity:0;font-size:20px;font-weight:800;animation:.3s 1.1s forwards tj-fade-in}.chart__cross{stroke:#fff6;stroke-width:1px;opacity:0}.chart__focus{stroke:#fff;stroke-width:3px;opacity:0;pointer-events:none}.chart.is-inspecting .chart__cross,.chart.is-inspecting .chart__focus{opacity:1}.chart__tip{color:var(--ink);white-space:nowrap;box-shadow:var(--shadow-md);opacity:0;pointer-events:none;background:#fffdf5;border-radius:14px;justify-items:center;gap:2px;padding:8px 14px 9px;transition:opacity .12s;display:grid;position:absolute;top:0;left:0;transform:translate(-50%,calc(-100% - 18px))}.chart.is-inspecting .chart__tip{opacity:1}.chart__tip-value{font:700 22px/1 var(--font-display)}.chart__tip-label{font:700 15px/1.1 var(--font-body);color:var(--ink-2)}.chart--empty{text-align:center;min-height:200px;color:var(--text-2);place-content:center;justify-items:center;gap:10px;padding:24px;font-size:20px;display:grid}.chart--empty .emoji{font-size:48px;animation:2.8s ease-in-out infinite tj-bob}.confetti-canvas{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.switch{border-radius:var(--radius-pill);width:88px;height:50px;transition:background var(--dur-2);background:#ffffff29;border:0;flex:none;padding:0;position:relative;box-shadow:inset 0 3px 6px #0006}.switch:after{content:"";width:40px;height:40px;transition:transform var(--dur-3) var(--ease-spring);background:#fff;border-radius:50%;position:absolute;top:5px;left:5px;box-shadow:0 3px 8px #00000059,inset 0 -3px #0000001a}.switch[aria-checked=true]{background:linear-gradient(#8ee89c,#3fb865)}.switch[aria-checked=true]:after{transform:translate(38px)}.slider{--v:.8;appearance:none;border-radius:var(--radius-pill);background:linear-gradient(90deg, var(--banana) calc(var(--v) * 100%), #ffffff29 0);cursor:pointer;width:100%;height:16px;box-shadow:inset 0 2px 4px #00000059}.slider::-webkit-slider-thumb{-webkit-appearance:none;width:36px;height:36px;transition:transform var(--dur-1) var(--ease-spring);background:#fff;border-radius:50%;box-shadow:0 3px 8px #00000073,inset 0 -3px #0000001f}.slider::-moz-range-thumb{background:#fff;border:0;border-radius:50%;width:36px;height:36px;box-shadow:0 3px 8px #00000073}.slider:active::-webkit-slider-thumb{transform:scale(1.12)}.jungle-bg{z-index:0;pointer-events:none;background:radial-gradient(95% 75% at 50% 16%,#2f9453 0%,#1c6b3b 28%,#11452b 56%,#0b2c1d 80%,#07190f 100%);position:absolute;inset:0;overflow:hidden}.jb-glow{background:radial-gradient(42% 36% at 24% 2%,#ffec9652,#0000 70%),radial-gradient(30% 28% at 78% 8%,#8fdc6a2e,#0000 70%),radial-gradient(60% 30% at 50% 100%,#5eead414,#0000 70%);position:absolute;inset:0}.jb-rays{transform-origin:32% 0;background:repeating-conic-gradient(from 100deg at 32% 0,#fff6cd1a 0deg 4deg,#0000 4deg 11deg);width:130%;height:150%;animation:18s ease-in-out infinite alternate rays-sway;position:absolute;top:-45%;left:-30%;-webkit-mask-image:radial-gradient(65% 55% at 32% 0,#000 0%,#0000 78%);mask-image:radial-gradient(65% 55% at 32% 0,#000 0%,#0000 78%)}@keyframes rays-sway{0%{transform:rotate(-3deg)}to{transform:rotate(3deg)}}.jb-bushes{width:100%;height:15vh;position:absolute;bottom:0;left:0;right:0}.jb-motes{position:absolute;inset:0}.jb-mote{width:var(--size);height:var(--size);animation:mote-rise var(--dur) linear infinite;animation-delay:var(--delay);position:absolute;bottom:-20px}.jb-mote i{width:100%;height:100%;animation:mote-drift calc(var(--dur) / 4) ease-in-out infinite alternate;background:#fff4b8;border-radius:50%;display:block;box-shadow:0 0 10px 3px #ffd93d8c}.jb-mote--mint i{background:#d2fff4;box-shadow:0 0 10px 3px #5eead480}@keyframes mote-rise{0%{opacity:0;transform:translateY(0)}10%{opacity:.85}85%{opacity:.6}to{opacity:0;transform:translateY(-110vh)}}@keyframes mote-drift{0%{transform:translateX(calc(var(--drift) * -1))}to{transform:translateX(var(--drift))}}.jb-vine{width:calc(var(--len) * 40 / 220);height:var(--len);transform-origin:50% 0;animation:7s ease-in-out infinite alternate vine-sway;animation-delay:var(--delay);position:absolute;top:-10px}.jb-vine__svg{width:100%;height:100%;display:block;overflow:visible}@keyframes vine-sway{0%{transform:rotate(-4deg)}to{transform:rotate(4deg)}}.jb-leaf{width:var(--len);height:calc(var(--len) / 3 * var(--w));margin-top:calc(var(--len) / -6 * var(--w));transform-origin:0;transform:rotate(var(--rot)) scaleY(var(--flip));position:absolute}.jb-leaf__sway{transform-origin:0;filter:drop-shadow(0 12px 16px #00000052);width:100%;height:100%;animation:leaf-sway var(--dur) ease-in-out infinite alternate;animation-delay:var(--delay)}.jb-leaf__svg{width:100%;height:100%;display:block}@keyframes leaf-sway{0%{transform:rotate(-3.5deg)}to{transform:rotate(3.5deg)}}.jb-vignette{background:radial-gradient(125% 95% at 50% 42%,#0000 52%,#00000080 100%);position:absolute;inset:0}.ghud{pointer-events:none;font-family:var(--font-body,Nunito, sans-serif);color:var(--text);position:absolute;inset:0}.ghud .is-hidden{display:none!important}.ghud__top{grid-template-columns:1fr auto 1fr;align-items:start;gap:16px;display:grid;position:absolute;top:16px;left:20px;right:20px}.ghud__title{background:var(--panel);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));font-family:var(--font-display,Fredoka, sans-serif);border-radius:999px;justify-self:start;align-items:center;gap:8px;padding:8px 16px;font-size:20px;font-weight:600;display:inline-flex}.ghud__timer{border:1px solid var(--glass-border);background:#00000059;border-radius:999px;width:min(360px,40vw);height:22px;position:relative;overflow:hidden;box-shadow:inset 0 2px 6px #00000059}.ghud__timer-fill{transform-origin:0;background:linear-gradient(90deg, var(--mint), var(--leaf-200));transition:transform .25s linear,background .4s;position:absolute;inset:0}.ghud__timer.is-low .ghud__timer-fill{background:linear-gradient(90deg, var(--orange), var(--banana))}.ghud__timer.is-critical .ghud__timer-fill{background:linear-gradient(90deg, var(--coral), var(--orange));animation:.5s ease-in-out infinite alternate ghud-pulse}.ghud__timer-num{font-family:var(--font-display,Fredoka, sans-serif);color:var(--ink);text-shadow:0 1px #fff6;place-items:center;font-size:15px;font-weight:700;display:grid;position:absolute;inset:0}.ghud__right{flex-direction:column;justify-self:end;align-items:flex-end;gap:6px;display:flex}.ghud__score{background:var(--panel);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));font-family:var(--font-display,Fredoka, sans-serif);color:var(--banana);border-radius:999px;align-items:center;gap:8px;padding:6px 16px;font-size:26px;font-weight:700;display:inline-flex}.ghud__score.is-bump{animation:.3s ease-out ghud-bump}.ghud__score-icon{font-size:22px}.ghud__combo{color:var(--mint);letter-spacing:.02em;background:#5eead42e;border:1px solid #5eead480;border-radius:999px;padding:4px 14px;font-size:16px;font-weight:800}.ghud__combo.is-hot{border-color:var(--orange);color:var(--banana);background:#fb923c38;box-shadow:0 0 18px #fb923c8c}.ghud__combo.is-bump{animation:.25s ease-out ghud-bump}.ghud__bottom{grid-template-columns:1fr auto 1fr;align-items:end;gap:16px;display:grid;position:absolute;bottom:18px;left:20px;right:20px}.ghud__bottom-left{flex-direction:column;gap:6px;display:flex}.ghud__lives{filter:drop-shadow(0 2px 4px #0006);gap:4px;font-size:26px;display:flex}.ghud__life{transition:transform .3s,opacity .3s,filter .3s}.ghud__life.is-lost{opacity:.25;filter:grayscale();transform:scale(.8)}.ghud__life.is-breaking{animation:.6s ease-out ghud-break}.ghud__goal{color:var(--text-2);text-shadow:0 2px 6px #00000080;font-size:18px;font-weight:800}.ghud__say{opacity:0;grid-column:2;max-width:min(520px,60vw);transition:opacity .25s,transform .3s cubic-bezier(.2,1.2,.4,1);transform:translateY(12px)}.ghud__say.is-visible{opacity:1;transform:translateY(0)}.ghud__flash{opacity:0;font-family:var(--font-display,Fredoka, sans-serif);letter-spacing:.02em;text-shadow:0 4px #00000040,0 10px 30px #0006;white-space:nowrap;font-size:clamp(40px,7vw,84px);font-weight:700;transition:opacity .2s,transform .25s cubic-bezier(.2,1.4,.4,1);position:absolute;top:38%;left:50%;transform:translate(-50%,-50%)scale(.6)}.ghud__flash.is-visible{opacity:1;transform:translate(-50%,-50%)scale(1)}.ghud__flash--good{color:var(--banana)}.ghud__flash--bad{color:var(--coral)}.ghud__flash--info{color:var(--mint)}@keyframes ghud-bump{0%{transform:scale(1)}40%{transform:scale(1.18)}to{transform:scale(1)}}@keyframes ghud-pulse{0%{filter:brightness()}to{filter:brightness(1.4)}}@keyframes ghud-break{0%{transform:scale(1)rotate(0)}30%{transform:scale(1.4)rotate(-12deg)}to{opacity:.25;transform:scale(.8)rotate(0)}}@media (max-width:900px){.ghud__title span:last-child{display:none}.ghud__score{font-size:22px}}.profiles{padding:clamp(20px, 5vh, 60px) var(--gutter) 84px;flex-direction:column;align-items:center;gap:clamp(18px,3.6vh,40px);min-height:100%;display:flex}.profiles__header{text-align:center;justify-items:center;gap:clamp(8px,1.6vh,16px);display:grid}.logo{animation:tj-pop-in .7s var(--ease-spring) both;justify-items:center;margin:0;line-height:.9;display:grid}.logo__small{--fill:linear-gradient(180deg, #fff 0%, #eaffdf 60%, #b9f0a0 100%);--stroke:.19em;z-index:1;font-size:clamp(40px,min(5vw,7.4vh),82px);transform:rotate(-5deg)translate(-30%,.2em)}.logo__big{--fill:linear-gradient(180deg, #fff8cf 0%, #ffd93d 40%, #ffb13d 70%, #fb923c 100%);letter-spacing:-.01em;font-size:clamp(88px,min(11.5vw,17vh),190px)}.logo .bigtext__g{animation:3.4s ease-in-out infinite logo-bob;animation-delay:calc(var(--i) * -.22s)}@keyframes logo-bob{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(-5%)rotate(-2.5deg)}}.profiles__tagline{border-radius:var(--radius-pill);border:1px solid var(--glass-border);box-shadow:var(--shadow-sm), inset 0 1px 0 #ffffff1f;-webkit-backdrop-filter:blur(10px)saturate(1.3);font:500 clamp(16px, min(1.5vw, 2.5vh), 21px) / 1.1 var(--font-display);letter-spacing:.02em;color:#eaffdf;text-shadow:0 1px 2px #0006;animation:tj-rise-in .5s var(--ease-out) .12s both;background:#061a126b;margin-top:-4px;padding:6px 18px 7px}.profiles__prompt{font:600 clamp(26px, 2.6vw, 34px) / 1.2 var(--font-display);text-shadow:0 3px 12px #00000073;animation:tj-rise-in .5s var(--ease-out) .2s both}.wave{transform-origin:70% 80%;animation:1.6s ease-in-out infinite tj-wiggle;display:inline-block}.profiles__grid{flex-wrap:wrap;justify-content:center;gap:clamp(16px,2vw,32px);max-width:1560px;margin:0;padding:0;list-style:none;display:flex}.pcard-slot{animation:tj-rise-in .56s var(--ease-spring) both;animation-delay:calc(var(--i) * 70ms + .16s);display:flex}.pcard{--c:var(--leaf-200);border-radius:var(--radius-lg);width:clamp(170px,min(16.5vw,24vh),272px);min-height:clamp(282px,34vh,340px);color:var(--text);background:radial-gradient(120% 60% at 50% 0%, color-mix(in srgb, var(--c) 34%, transparent) 0%, transparent 70%), linear-gradient(175deg, #1a4830eb 0%, #092016f0 70%);box-shadow:var(--shadow-lg), inset 0 1px 0 #ffffff2e, inset 0 0 0 1px #ffffff12, inset 0 -6px 0 #00000047;transition:transform var(--dur-3) var(--ease-spring), box-shadow var(--dur-3) var(--ease-out);border:0;align-content:start;justify-items:center;gap:9px;padding:24px 16px 20px;display:grid;position:relative}.pcard:hover,.pcard:focus-visible{box-shadow:0 34px 50px -20px #000000bf, 0 0 0 4px color-mix(in srgb, var(--c) 85%, white), 0 0 46px color-mix(in srgb, var(--c) 50%, transparent), inset 0 1px 0 #fff3, inset 0 -6px 0 #00000047;transform:translateY(-10px)rotate(-1.2deg)scale(1.035)}.pcard:focus-visible{outline-offset:8px}.pcard:active{transition-duration:90ms;transform:translateY(-3px)scale(.98)}.pcard__avatar{margin-bottom:8px;position:relative}.pcard .avatar-badge{--size:clamp(104px, min(8vw, 12vh), 136px);transition:transform .42s var(--ease-spring)}.pcard:hover .avatar-badge,.pcard:focus-visible .avatar-badge{transform:rotate(-7deg)scale(1.07)}.pcard:hover .avatar-badge__emoji,.pcard:focus-visible .avatar-badge__emoji{animation:.7s ease-in-out tj-wiggle}.pcard__rank{min-width:38px;height:38px;font-size:21px;position:absolute;bottom:2px;right:-8px}.pcard__name{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font:700 30px/1.08 var(--font-display);overflow:hidden}.pcard__title{font:800 18px/1.1 var(--font-body);color:var(--banana);text-align:center;text-wrap:balance;background:#00000047;border-radius:1em;padding:6px 13px 7px}.pcard:not(.pcard--new){grid-template-rows:auto auto auto 1fr}.pcard__meta{font:700 18px/1 var(--font-body);color:var(--text-2);align-self:end;align-items:center;gap:12px;margin-top:2px;display:flex}.pcard__streak{color:#ffc08a}.pcard__new{border-radius:var(--radius-pill);background:var(--mint);color:#0d3a2f;padding:5px 11px;font-weight:900}.pcard--new .pcard__name{white-space:normal;text-align:center;font-size:28px}.pcard--new{background:#ffffff0a;border:0;align-content:center;box-shadow:inset 0 0 0 3px #ffffff38}.pcard--new:before{content:"";border-radius:inherit;pointer-events:none;border:3px dashed #ffffff4d;position:absolute;inset:0}.pcard--new:hover,.pcard--new:focus-visible{background:#ffffff17;box-shadow:0 30px 46px -22px #0009,0 0 44px #ffd93d40}.pcard--new:hover:before,.pcard--new:focus-visible:before{border-color:var(--banana)}.pcard__plus{width:108px;height:108px;font:600 76px/1 var(--font-display);color:#3b2500;transition:transform .42s var(--ease-spring);background:linear-gradient(#fff1a0,#ffd93d);border-radius:50%;place-items:center;margin-bottom:10px;display:grid;box-shadow:0 7px #d39a00,0 18px 26px -8px #0000008c,inset 0 2px #ffffffb3}.pcard--new:hover .pcard__plus,.pcard--new:focus-visible .pcard__plus{transform:rotate(90deg)scale(1.08)}.profiles__grownups{z-index:2;position:absolute;bottom:16px;right:18px}.profiles-empty{text-align:center;width:min(560px,100%);animation:tj-rise-in .6s var(--ease-spring) .2s both;justify-items:center;gap:12px;padding:30px 36px 36px;display:grid}.profiles-empty__art{width:200px;height:130px;position:relative}.profiles-empty__monkey{transform-origin:50% 90%;font-size:104px;animation:1.8s ease-in-out infinite empty-wave;position:absolute;bottom:0;left:30px}.profiles-empty__palm{opacity:.9;font-size:74px;position:absolute;bottom:6px;right:12px}@keyframes empty-wave{0%,to{transform:rotate(-8deg)translateY(0)}50%{transform:rotate(8deg)translateY(-10px)}}.profiles-empty__title{font-size:var(--fs-h2)}.profiles-empty__text{font-size:var(--fs-lead);color:var(--text-2);margin-bottom:14px}@media (max-height:800px){.profiles-empty{padding-top:24px}.profiles-empty__art{width:164px;height:106px}.profiles-empty__monkey{font-size:85px;left:25px}.profiles-empty__palm{font-size:61px;bottom:5px;right:10px}}.newhome{border-radius:var(--radius-md);text-align:left;max-width:min(960px,100%);animation:tj-rise-in .56s var(--ease-spring) .3s both;align-items:center;gap:14px;padding:9px 12px 9px 16px;display:flex}.newhome__art{transform-origin:50% 90%;font-size:40px;animation:2.8s ease-in-out infinite tj-wiggle}.newhome__text{min-width:0;font:700 16px/1.3 var(--font-body);color:var(--text-2);flex:auto}.newhome__title{font:600 20px/1.15 var(--font-display);color:var(--text);display:block}.newhome__highlight{color:var(--banana)}.newhome__btn{flex:none}@media (max-height:700px){.newhome~.profiles__prompt{display:none}}.create{padding:18px var(--gutter) 26px;grid-template-rows:auto minmax(0,1fr);gap:12px;display:grid}.create__top{animation:tj-fade-in .4s var(--ease-out) both;grid-template-columns:56px 1fr 56px;align-items:center;gap:16px;display:grid}.steps{justify-content:center;gap:10px;margin:0;padding:0;list-style:none;display:flex}.step-pill{border-radius:var(--radius-pill);-webkit-backdrop-filter:blur(10px);height:52px;color:var(--text-2);font:600 21px/1 var(--font-display);transition:transform var(--dur-2) var(--ease-spring), background var(--dur-2), color var(--dur-2), box-shadow var(--dur-2);background:#061a12a8;border:1px solid #ffffff29;align-items:center;gap:8px;padding:0 22px 0 14px;display:inline-flex}.step-pill__icon{font-size:24px}.step-pill:hover{color:var(--text);transform:translateY(-2px)}.step-pill.is-active{color:#3b2500;background:linear-gradient(#fff1a0,#ffd93d);border-color:#0000;transform:translateY(-3px);box-shadow:0 5px #d39a00,0 12px 20px -8px #00000080}.step-pill.is-done{color:var(--text);background:#2f9e578c}.step-pill.is-done .step-pill__label:after{content:" ✓";color:var(--leaf-100)}.create__body{grid-template-columns:minmax(0,1fr) minmax(460px,clamp(560px,32vw,680px));align-items:center;gap:clamp(16px,3vw,56px);min-height:0;display:grid}.create__preview{grid-template-rows:minmax(0,1fr) auto;justify-items:center;gap:10px;height:100%;min-height:0;display:grid}.create__stage{place-items:center;width:100%;height:100%;min-height:240px;display:grid}.create__fallback{place-items:center;display:none}.avatar-fallback .create__fallback{display:grid}.create__fallback:before{content:"";background:radial-gradient(circle, color-mix(in srgb, var(--c,#ffd93d) 45%, transparent) 0%, transparent 65%);border-radius:50%;grid-area:1/1;width:340px;height:340px;animation:3s ease-in-out infinite glow-breathe}.create__fallback .avatar-badge{grid-area:1/1;animation:2.6s ease-in-out infinite tj-bob}.create__fallback.is-popping .avatar-badge{animation:tj-pop-in .56s var(--ease-spring) both, tj-bob 2.6s ease-in-out .56s infinite}@keyframes glow-breathe{0%,to{opacity:.8;transform:scale(.94)}50%{opacity:1;transform:scale(1.06)}}.nameplate{--c:var(--banana);border-radius:var(--radius-pill);background:linear-gradient(180deg, color-mix(in srgb, var(--c) 55%, white), var(--c));color:#10281b;max-width:100%;min-height:66px;box-shadow:0 6px 0 color-mix(in srgb, var(--c) 58%, black), 0 20px 30px -12px #0000008c, inset 0 2px 0 #ffffff8c;font:700 34px/1 var(--font-display);transition:background var(--dur-3), box-shadow var(--dur-3);animation:tj-rise-in .5s var(--ease-spring) .25s both;align-items:center;gap:12px;padding:8px 30px 8px 9px;display:inline-flex}.nameplate__emoji{background:#fff9;border-radius:50%;place-items:center;width:50px;height:50px;font-size:31px;display:grid}.nameplate__name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.nameplate.is-empty .nameplate__name{opacity:.45}.create__panel{height:min(580px,100%);min-height:460px;animation:tj-rise-in .52s var(--ease-spring) .1s both;display:grid;position:relative;overflow:hidden}.create__viewport{border-radius:inherit;overflow:hidden}.create__track{height:100%;transform:translateX(calc(var(--step,0) * -100%));transition:transform .56s var(--ease-spring);display:flex}.create__pane{opacity:.25;min-width:0;transition:opacity var(--dur-3) var(--ease-out);flex-direction:column;flex:0 0 100%;gap:20px;padding:34px 36px 32px;display:flex}.create__pane.is-active{opacity:1}.pane__title{font-size:var(--fs-h2);align-items:center;gap:14px;display:flex}.pane__icon{background:#ffffff1a;border-radius:20px;flex:none;place-items:center;width:62px;height:62px;font-size:34px;display:grid;box-shadow:inset 0 -3px #0003,inset 0 1px #ffffff26}.pane__actions{justify-content:flex-end;margin-top:auto;display:flex}.pane__blurb{text-align:center;min-height:1.3em;font:500 23px/1.25 var(--font-display);color:var(--text-2)}.name-field{gap:16px;margin-top:8px;display:grid}.name-input{color:#fff;width:100%;height:100px;font:700 50px/1 var(--font-display);text-align:center;caret-color:var(--banana);transition:border-color var(--dur-2), box-shadow var(--dur-2);background:#0000004d;border:3px solid #ffffff2e;border-radius:28px;padding:0 24px;box-shadow:inset 0 4px 14px #0006}.name-input::placeholder{color:#ffffff47}.name-input:focus,.name-input:focus-visible{border-color:var(--banana);outline:none;box-shadow:inset 0 4px 14px #0006,0 0 0 7px #ffd93d38}.name-dots{justify-content:center;gap:7px;display:flex}.name-dots i{width:11px;height:11px;transition:background var(--dur-1), transform var(--dur-2) var(--ease-pop);background:#ffffff2e;border-radius:50%}.name-dots i.is-on{background:var(--banana);transform:scale(1.25)}.name-field.is-shaking{animation:.44s both tj-shake}.animal-grid{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}.animal-card{--c:var(--leaf-200);color:var(--text);background:linear-gradient(180deg, color-mix(in srgb, var(--c) 32%, #1d4b33), color-mix(in srgb, var(--c) 12%, #102e20));transition:transform var(--dur-2) var(--ease-spring), box-shadow var(--dur-2), background var(--dur-2);border:0;border-radius:24px;justify-items:center;gap:6px;padding:14px 8px 13px;display:grid;box-shadow:inset 0 -5px #0000004d,inset 0 1px #ffffff29,0 8px 16px -8px #0000008c}.animal-card__emoji{filter:drop-shadow(0 4px 3px #0000004d);transition:transform var(--dur-3) var(--ease-spring);font-size:58px}.animal-card__name{font:600 21px/1 var(--font-display)}.animal-card:hover{transform:translateY(-4px)}.animal-card:hover .animal-card__emoji{transform:scale(1.12)rotate(-7deg)}.animal-card.is-selected{color:#10281b;background:linear-gradient(180deg, color-mix(in srgb, var(--c) 58%, white), var(--c));box-shadow:inset 0 -5px 0 color-mix(in srgb, var(--c) 58%, black), 0 0 0 4px #fff, 0 14px 26px -8px #0009;transform:translateY(-4px)scale(1.05)}.animal-card.is-selected .animal-card__emoji{animation:1.4s ease-in-out infinite tj-bob}.swatches{grid-template-columns:repeat(4,1fr);justify-items:center;gap:20px 16px;margin-top:8px;display:grid}.swatch{background:radial-gradient(circle at 34% 28%, color-mix(in srgb, var(--c) 48%, white), var(--c) 58%, color-mix(in srgb, var(--c) 72%, black));width:86px;height:86px;transition:transform var(--dur-2) var(--ease-spring), box-shadow var(--dur-2);border:0;border-radius:50%;padding:0;position:relative;box-shadow:inset 0 -5px #0003,0 8px 16px -6px #0000008c}.swatch:hover{transform:scale(1.08)}.swatch.is-selected{box-shadow:0 0 0 5px #fff, 0 0 0 10px color-mix(in srgb, var(--c) 55%, transparent), 0 14px 26px -8px #0009;transform:scale(1.14)}.swatch__check{font:700 42px/1 var(--font-display);color:#10281b;opacity:0;transition:opacity var(--dur-1), transform var(--dur-3) var(--ease-pop);place-items:center;display:grid;position:absolute;inset:0;transform:scale(.4)}.swatch.is-selected .swatch__check{opacity:.8;transform:scale(1)}@media (max-width:980px){.create__body{grid-template-rows:minmax(180px,1fr) auto;grid-template-columns:1fr;justify-items:center}.create__panel{width:min(560px,100%);min-height:420px}.step-pill__label{display:none}}.create__pane[data-step="0"] .name-field,.create__pane[data-step="2"] .swatches{margin:auto 0}.results{padding:16px var(--gutter);grid-template-columns:minmax(0,1fr) minmax(520px,clamp(620px,36vw,760px));align-items:center;gap:clamp(12px,2.5vw,40px);display:grid}.results__hero{grid-template-rows:minmax(0,1fr) auto;justify-items:center;height:100%;min-height:0;display:grid;position:relative}.results__stage{place-items:center;width:100%;height:100%;min-height:240px;display:grid}.results__fallback{place-items:center;display:grid;position:relative}.results__rays{background:repeating-conic-gradient(#ffec9633 0deg 9deg,#0000 9deg 20deg);border-radius:50%;width:460px;height:460px;animation:30s linear infinite tj-spin;position:absolute;-webkit-mask-image:radial-gradient(circle,#000 25%,#0000 70%);mask-image:radial-gradient(circle,#000 25%,#0000 70%)}.results__badge{animation:cheer-hop 1.3s var(--ease-in-out) infinite}@keyframes cheer-hop{0%,50%,to{transform:translateY(0)rotate(0)}25%{transform:translateY(-22px)rotate(-7deg)}75%{transform:translateY(-22px)rotate(7deg)}}.results__speech{justify-content:center;align-items:flex-end;width:100%;min-height:118px;padding-bottom:6px;display:flex}.banana-rain{pointer-events:none;position:absolute;inset:0;overflow:hidden}.banana-rain span{opacity:0;font-size:40px;position:absolute;top:-60px}.banana-rain.is-raining span{animation:banana-fall 1.7s var(--ease-in) both;animation-delay:var(--d)}@keyframes banana-fall{0%{opacity:0;transform:translateY(0) rotate(var(--r))}12%{opacity:1}80%{opacity:1}to{opacity:0;transform:translateY(78vh) rotate(calc(var(--r) * -4))}}.results__card{scrollbar-width:none;max-height:calc(100vh - 32px);animation:results-card-in .62s var(--ease-spring) both;flex-direction:column;gap:clamp(6px,1.15vh,14px);padding:clamp(12px,2vh,26px) clamp(20px,2.2vw,30px) clamp(14px,2.2vh,28px);display:flex;overflow:hidden auto}@keyframes results-card-in{0%{opacity:0;transform:translate(60px)scale(.94)}to{opacity:1;transform:none}}.results__head{justify-items:center;gap:8px;display:grid}.results__game{border-radius:var(--radius-pill);font:600 19px/1 var(--font-display);color:var(--text-2);background:#00000042;align-items:center;gap:6px;padding:7px 16px 8px 12px;display:inline-flex}.results__title{animation:tj-pop-in .62s var(--ease-pop) .15s both;font-size:clamp(46px,6.6vh,74px);line-height:1.05}.results__stars{place-items:center;min-height:clamp(84px,13.5vh,118px);display:grid}.results__stars .stars{height:clamp(84px,13.5vh,118px)}.results__stars .star{width:clamp(68px,10vh,86px);height:clamp(68px,10vh,86px)}.results__stars .star--2{width:clamp(88px,13vh,112px);height:clamp(88px,13vh,112px)}.seq{opacity:0;transition:opacity var(--dur-3) var(--ease-out), transform .46s var(--ease-spring);transform:translateY(12px)scale(.96)}.seq.is-in{opacity:1;transform:none}.results__tiles{grid-template-columns:1.3fr 1fr 1fr 1fr;gap:10px;display:grid}.rtile{opacity:0;min-width:0;transition:opacity var(--dur-2) var(--ease-out), transform .48s var(--ease-pop);background:#0000003d;border-radius:20px;align-content:center;justify-items:center;gap:5px;padding:12px 6px 11px;display:grid;position:relative;transform:translateY(14px)scale(.9);box-shadow:inset 0 1px #ffffff0f,inset 0 0 0 1px #ffffff0f}.rtile.is-in{opacity:1;transform:none}.rtile__main{white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.rtile__icon{font-size:24px}.rtile__value{font:700 clamp(26px, 4vh, 34px) / 1 var(--font-display)}.rtile__value small{color:var(--text-2);font-size:16px;font-weight:500}.rtile__count{font-variant-numeric:tabular-nums}.rtile--score{background:linear-gradient(#ffd93d33,#ffd93d0f);box-shadow:inset 0 0 0 1px #ffd93d59}.rtile--score .rtile__value{color:#fff3b0}.rtile__label{font:800 14px/1 var(--font-body);letter-spacing:.1em;text-transform:uppercase;color:var(--text-3)}.rtile__best{border-radius:var(--radius-pill);color:#fff;font:600 14px/1 var(--font-display);white-space:nowrap;text-shadow:0 1px #78144659;transition:transform .46s var(--ease-pop) .26s;background:linear-gradient(#ffa6d3,#f472b6);padding:6px 10px 7px;position:absolute;top:-13px;right:-6px;transform:rotate(8deg)scale(0);box-shadow:0 3px #bf3f7e,0 8px 14px -6px #00000080}.rtile.is-in .rtile__best{transform:rotate(8deg)scale(1)}.results__xp{background:#0000003d;border-radius:24px;align-items:center;gap:14px;padding:12px 18px 14px 14px;display:flex;box-shadow:inset 0 0 0 1px #ffffff0f}.results__xp-main{flex:1;gap:9px;min-width:0;display:grid}.results__xp-top{align-items:center;gap:10px;display:flex}.results__rank-title{font:600 23px/1 var(--font-display);white-space:nowrap}.results__xp-gain{font:700 21px/1 var(--font-display);color:var(--banana);white-space:nowrap;margin-left:auto}.results__rankup{border-radius:var(--radius-pill);color:#3b2500;font:700 15px/1 var(--font-display);text-transform:uppercase;letter-spacing:.06em;opacity:0;background:linear-gradient(#fff1a0,#ffd93d);padding:6px 11px 7px;transform:scale(0);box-shadow:0 3px #d39a00}.results__xp.is-rankup .results__rankup{animation:tj-pop-in .52s var(--ease-pop) forwards}.results__xp.is-rankup .results__rank{animation:rank-pop .76s var(--ease-pop)}.results__xp.is-rankup{animation:xp-glow 1.2s var(--ease-out)}@keyframes xp-glow{0%{box-shadow:inset 0 0 0 1px #ffffff0f}25%{box-shadow:inset 0 0 0 2px #ffd93de6,0 0 40px #ffd93d73}to{box-shadow:inset 0 0 0 1px #ffffff0f}}.results__rewards{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.results__rewards:empty{display:none}.reward{border-radius:var(--radius-pill);font:600 21px/1 var(--font-display);animation:tj-pop-in .5s var(--ease-pop) both;background:#ffffff1a;align-items:center;gap:9px;padding:6px 18px 6px 6px;display:inline-flex;box-shadow:inset 0 0 0 1px #ffffff24}.reward__icon{background:#00000040;border-radius:50%;place-items:center;width:42px;height:42px;font-size:25px;display:grid}.reward--banana{background:linear-gradient(#ffd93d52,#ffd93d1f);box-shadow:inset 0 0 0 1px #ffd93d8c}.reward--keys{background:linear-gradient(#5eead44d,#5eead41a);box-shadow:inset 0 0 0 1px #5eead48c}.reward--keys strong{letter-spacing:.08em}.reward--badge{background:linear-gradient(#c084fc57,#c084fc1f);box-shadow:inset 0 0 0 1px #c084fc99}.results__actions{opacity:0;transition:opacity var(--dur-3) var(--ease-out), transform .46s var(--ease-spring);flex-wrap:wrap;justify-content:center;gap:12px 14px;padding-top:4px;display:flex;transform:translateY(18px)}.results__actions.is-in{opacity:1;transform:none}.results__actions .btn--glass{gap:8px;padding:0 18px 2px;font-size:20px}.unlock{z-index:var(--z-modal);-webkit-backdrop-filter:blur(7px);animation:tj-fade-in .24s var(--ease-out) both;background:#030e099e;place-items:center;padding:16px;display:grid;position:absolute;inset:0}.unlock.is-leaving{animation:tj-fade-out .22s var(--ease-in) both}.unlock__card{text-align:center;width:min(780px,100%);animation:tj-pop-in .56s var(--ease-spring) both;justify-items:center;gap:18px;padding:28px 32px 32px;display:grid}.unlock__icon{font-size:76px;animation:1.4s ease-in-out infinite unlock-jiggle}@keyframes unlock-jiggle{0%,60%,to{transform:rotate(0)scale(1)}70%{transform:rotate(-12deg)scale(1.1)}80%{transform:rotate(10deg)scale(1.1)}90%{transform:rotate(-6deg)scale(1.05)}}.unlock__title{font-size:var(--fs-h1)}.unlock__keys{flex-wrap:wrap;justify-content:center;gap:14px;display:flex}.unlock__kb .kb{--kb-u:34px}@media (max-height:700px){.results__game{display:none}.results__actions .btn--lg{min-height:60px;font-size:24px}.reward{padding:4px 16px 4px 4px;font-size:19px}.reward__icon{width:36px;height:36px;font-size:21px}.results__xp{padding:9px 16px 11px 12px}}@media (max-width:1080px){.results{grid-template-columns:minmax(0,.8fr) minmax(480px,1fr)}}@media (max-width:860px){.results{grid-template-rows:minmax(140px,26vh) auto;grid-template-columns:1fr;overflow-y:auto}.results__speech{display:none}}.stats{padding:22px var(--gutter) 48px;align-content:start;gap:22px;display:grid}.stats__head{align-items:center;gap:20px;width:100%;max-width:1240px;margin:0 auto;display:flex}.stats__who{gap:10px;min-width:0;display:grid}.stats__name{font-size:var(--fs-h1);text-shadow:0 3px 12px #0006}.stats__rank{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.stats__rank-title{font:600 24px/1 var(--font-display);color:var(--banana)}.stats__xp{width:min(280px,40vw);height:16px}.stats__xp-text{font:700 18px/1 var(--font-body);color:var(--text-2)}.stats__tiles{grid-template-columns:repeat(6,minmax(0,1fr));gap:14px;width:100%;max-width:1240px;margin:0 auto;display:grid}.stat-tile{border-radius:var(--radius-md);background:var(--glass-solid);border:1px solid var(--glass-border);min-height:128px;box-shadow:var(--shadow-md), var(--inner-glow);text-align:center;animation:tj-rise-in .52s var(--ease-spring) both;animation-delay:calc(var(--i) * 60ms + .12s);align-content:center;justify-items:center;gap:6px;padding:14px 10px;display:grid}.stat-tile__icon{font-size:34px}.stat-tile__value{font:700 30px/1 var(--font-display);white-space:nowrap}.stat-tile__label{font:800 16px/1.1 var(--font-body);color:var(--text-2)}.stats__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;width:100%;max-width:1240px;margin:0 auto;display:grid}.stats-card{border-radius:var(--radius-lg);background:var(--glass-solid);border:1px solid var(--glass-border);min-width:0;box-shadow:var(--shadow-lg), var(--inner-glow);animation:tj-rise-in .56s var(--ease-spring) .24s both;align-content:start;gap:16px;padding:22px 26px 26px;display:grid}.stats-card--keys,.stats-card--badges{grid-column:1/-1}.stats-card--keys{justify-items:center}.stats-card--keys .stats-card__head{justify-self:stretch}.stats-card__head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 16px;display:flex}.stats-card__title{font-size:30px}.stats-card__note{font:700 18px/1.2 var(--font-body);color:var(--text-2)}.stats-card .kb{--kb-u:clamp(34px, 3.3vw, 50px);background:#0000002e;box-shadow:inset 0 1px #ffffff0d}.badge-grid{grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:14px;margin:0;padding:0;list-style:none;display:grid}.badge-tile{text-align:center;transition:transform var(--dur-2) var(--ease-spring);border-radius:22px;align-content:start;justify-items:center;gap:8px;padding:16px 8px 14px;display:grid;position:relative}.badge-tile__emoji{border-radius:50%;place-items:center;width:72px;height:72px;font-size:38px;display:grid}.badge-tile__title{font:600 18px/1.1 var(--font-display)}.badge-tile__desc{display:none}.badge-tile.is-earned{background:linear-gradient(#ffd93d2e,#ffd93d0d);box-shadow:inset 0 0 0 1px #ffd93d59}.badge-tile.is-earned .badge-tile__emoji{background:radial-gradient(circle at 35% 30%,#fff8d0,#ffd93d 55%,#f2a900);box-shadow:0 5px #b87800,0 12px 20px -8px #0000008c,0 0 26px #ffd93d66}.badge-tile.is-earned:hover,.badge-tile.is-earned:focus-visible{transform:translateY(-4px)rotate(-2deg)}.badge-tile.is-locked{background:#ffffff08;box-shadow:inset 0 0 0 1px #ffffff0f}.badge-tile.is-locked .badge-tile__emoji{filter:grayscale()brightness(.8);opacity:.45;background:#ffffff0f}.badge-tile.is-locked .badge-tile__title{color:var(--text-3)}.badge-tile:hover .badge-tile__desc,.badge-tile:focus-visible .badge-tile__desc{z-index:5;width:max-content;max-width:220px;color:var(--ink);font:700 16px/1.25 var(--font-body);box-shadow:var(--shadow-md);background:#fffdf5;border-radius:14px;padding:9px 14px 10px;display:block;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)}@media (max-width:1100px){.stats__tiles{grid-template-columns:repeat(3,minmax(0,1fr))}.stats__grid{grid-template-columns:1fr}}.settings-wrap{padding:clamp(20px, 5vh, 56px) var(--gutter) 40px;place-items:start center;display:grid}.settings{gap:8px;width:min(760px,100%);padding:22px 30px 30px;display:grid}.settings__header{align-items:center;gap:18px;margin-bottom:6px;display:flex}.settings__title{font-size:var(--fs-h1)}.settings__section{border-top:1px solid var(--hairline);gap:10px;padding:16px 0 6px;display:grid}.settings__heading{font:900 15px/1 var(--font-body);letter-spacing:.16em;text-transform:uppercase;color:var(--text-3)}.settings__row{min-height:72px;transition:opacity var(--dur-2);background:#0003;border-radius:22px;justify-content:space-between;align-items:center;gap:18px;padding:10px 14px 10px 12px;display:flex;box-shadow:inset 0 0 0 1px #ffffff0d}.settings__row.is-disabled{opacity:.45;pointer-events:none}.settings__label{align-items:center;gap:14px;min-width:0;display:flex}.settings__label h3{font-size:24px}.settings__label p{font:700 18px/1.25 var(--font-body);color:var(--text-2);margin-top:3px}.settings__icon{background:#ffffff14;border-radius:18px;flex:none;place-items:center;width:54px;height:54px;font-size:30px;display:grid}.settings__control--slider{flex:1;align-items:center;gap:14px;max-width:420px;font-size:24px;display:flex}.settings__value{text-align:right;min-width:56px;font:700 20px/1 var(--font-display);font-variant-numeric:tabular-nums}.status-pill{border-radius:var(--radius-pill);font:800 18px/1 var(--font-body);color:var(--text-2);background:#ffffff14;flex:none;align-items:center;gap:10px;padding:11px 18px 12px 14px;display:inline-flex;box-shadow:inset 0 0 0 1px #ffffff24}.status-pill__dot{background:#8a9a90;border-radius:50%;width:13px;height:13px}.status-pill.is-live{color:#dbffe4;background:#5cc97c2e;box-shadow:inset 0 0 0 1px #5cc97c80}.status-pill.is-live .status-pill__dot{background:#5cc97c;animation:1.8s ease-out infinite live-pulse}@keyframes live-pulse{0%{box-shadow:0 0 #5cc97cb3}to{box-shadow:0 0 0 12px #5cc97c00}}.settings__danger{justify-items:start;gap:12px;padding-top:4px;display:grid}.settings__delete{--btn-fg:#ffb3b3}.settings__delete:hover:not(:disabled){color:#ffd0d0;background:#ff6b6b24}.confirm{width:100%;animation:tj-rise-in var(--dur-3) var(--ease-spring) both;background:#ff6b6b1a;border-radius:22px;gap:14px;padding:18px;display:grid;box-shadow:inset 0 0 0 2px #ff6b6b73}.confirm[hidden]{display:none}.confirm__text{color:var(--text);font-size:20px}.confirm__text kbd{letter-spacing:.08em;background:#0000004d;border-radius:8px;padding:2px 8px 3px;font-weight:700}.confirm__row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.confirm__input{min-width:180px;height:56px;font:700 24px/1 var(--font-display);letter-spacing:.12em;color:#fff;background:#0000004d;border:2px solid #fff3;border-radius:18px;flex:1;padding:0 18px}.confirm__input:focus-visible{border-color:var(--coral);outline:none;box-shadow:0 0 0 5px #ff6b6b40}.undo-wrap{justify-items:start;gap:12px;width:100%;display:grid}.undo{width:100%;animation:tj-rise-in var(--dur-3) var(--ease-spring) both;background:#ffc43d1a;border-radius:22px;gap:14px;padding:18px;display:grid;box-shadow:inset 0 0 0 2px #ffc43d73}.undo[hidden],.undo__picker[hidden],.undo__done[hidden]{display:none}.undo__picker,.undo__done{gap:14px;display:grid}.undo__list{gap:6px;max-height:280px;margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.undo__row{width:100%;color:var(--text);font:700 17px/1.2 var(--font-body,inherit);text-align:left;cursor:pointer;transition:background var(--dur-2,.15s), transform var(--dur-2,.15s);background:#00000038;border:0;border-radius:14px;grid-template-columns:28px minmax(120px,.9fr) minmax(140px,1fr) minmax(200px,1.4fr);align-items:center;gap:10px;padding:10px 14px;display:grid}.undo__row:hover{background:#ffffff1f;transform:translate(2px)}.undo__row:focus-visible{outline:3px solid var(--banana);outline-offset:2px}.undo__row.is-selected{background:#ffc43d47;box-shadow:inset 0 0 0 2px #ffc43db3}.undo__mark{text-align:center;opacity:.9}.undo__when{opacity:.85}.undo__meta{opacity:.8;font-weight:600}.undo__check{gap:8px;font-size:17px;line-height:1.35;display:grid}.undo__select{color:#fff;width:100%;max-width:520px;height:48px;font:700 17px/1 var(--font-body,inherit);cursor:pointer;background:#0000004d;border:2px solid #fff3;border-radius:14px;padding:0 14px}.undo__select:focus-visible{border-color:var(--banana);outline:none;box-shadow:0 0 0 5px #ffc43d40}.undo__select option{color:#111}.undo__preview{background:#00000040;border-radius:14px;padding:12px 14px;font-size:17px;line-height:1.4}@media (max-width:720px){.undo__row{grid-template-columns:24px 1fr}.undo__game,.undo__meta{grid-column:2}}.tj-modal{z-index:var(--z-modal);-webkit-backdrop-filter:blur(7px)saturate(.8);animation:tj-fade-in .2s var(--ease-out) both;background:#030e0994;place-items:center;padding:16px;display:grid;position:absolute;inset:0}.tj-modal.is-leaving{animation:tj-fade-out .2s var(--ease-in) both}.tj-modal__card{text-align:center;width:min(480px,100%);animation:tj-pop-in .46s var(--ease-spring) both;justify-items:center;gap:8px;padding:30px 36px;display:grid}.tj-modal__emoji{font-size:84px;line-height:1.1;animation:2.8s ease-in-out infinite tj-modal-bob}@keyframes tj-modal-bob{0%,to{transform:translateY(0)rotate(-4deg)}50%{transform:translateY(-8px)rotate(4deg)}}.tj-modal__title{font-size:40px;line-height:1.1}.tj-modal__text{color:var(--text-2);max-width:34ch;margin:4px 0 18px;font-size:20px;line-height:1.45}.tj-modal__actions{gap:12px;width:100%;display:grid}.tj-modal__actions .btn--go,.tj-modal__actions .btn--primary{width:100%}.tj-modal__actions .btn--ghost{justify-self:center}@media (prefers-reduced-motion:reduce){.tj-modal__emoji{animation:none}}.save-nudge{animation:tj-pop-in .42s var(--ease-spring) both;background:#ffffff14;border:1px solid #ffffff24;border-radius:18px;align-items:center;gap:14px;padding:12px 14px 12px 16px;display:flex}.save-nudge[hidden]{display:none}.save-nudge__icon{font-size:34px}.save-nudge__text{flex:1;gap:2px;min-width:0;display:grid}.save-nudge__title{font-family:var(--font-display);font-size:20px}.tj-input{color:#fff;width:100%;height:72px;font:700 26px/1 var(--font-display);text-align:center;caret-color:var(--banana);transition:border-color var(--dur-2), box-shadow var(--dur-2);background:#0000004d;border:3px solid #ffffff2e;border-radius:24px;padding:0 22px;box-shadow:inset 0 4px 14px #0006}.tj-input::placeholder{color:#ffffff47}.tj-input:focus,.tj-input:focus-visible{border-color:var(--banana);outline:none;box-shadow:inset 0 4px 14px #0006,0 0 0 7px #ffd93d38}.tj-input--code{letter-spacing:.3em;height:92px;padding-left:calc(22px + .3em);font-size:46px}.tj-input.is-wrong{border-color:var(--coral);animation:tj-shake .42s var(--ease-out)}.gate{gap:12px;width:100%;margin-bottom:18px;display:grid}.gate__q{font:700 30px/1.1 var(--font-display)}.gate__input{justify-self:center;width:160px}.signin-wrap{padding:clamp(20px, 5vh, 56px) var(--gutter) 40px;place-items:center;display:grid}.signin{text-align:center;justify-items:center;gap:10px;width:min(540px,100%);padding:34px 40px 30px;display:grid;position:relative}.signin[hidden]{display:none}.signin__back{position:absolute;top:18px;left:18px}.signin__emoji{font-size:76px;line-height:1.1;animation:2.8s ease-in-out infinite tj-modal-bob}.signin__title{font-size:clamp(30px,3.4vw,40px);line-height:1.1}.signin__text{color:var(--text-2);max-width:36ch;margin-bottom:10px;font-size:19px;line-height:1.45}.signin__text strong{color:#fff;overflow-wrap:anywhere}.signin__form{gap:12px;width:100%;display:grid}.signin__form .btn--go{width:100%}.signin__form .btn.is-busy{opacity:.7;cursor:progress}.signin__error{min-height:1.4em;color:var(--coral);font-size:17px;font-weight:700}.signin__error:empty{min-height:0}.signin__small{color:var(--text-3);margin-top:4px;font-size:15px}.signin__links{flex-wrap:wrap;justify-content:center;gap:4px 12px;display:flex}@media (prefers-reduced-motion:reduce){.signin__emoji{animation:none}}.family-row__email{overflow-wrap:anywhere}.profiles-signin{color:var(--text-3);flex-wrap:wrap;justify-content:center;align-items:center;gap:2px 6px;margin-top:6px;font-size:16px;display:flex}
