:root{--font-display:"Fredoka", "Nunito", system-ui, sans-serif;--font-body:"Nunito", system-ui, sans-serif;--radius-btn:18px;--touch-min:56px;--shadow-soft:0 10px 30px #0000001f;--text-xs:.75rem;--text-sm:.875rem;--text-md:1rem;--text-lg:clamp(1.05rem, .95rem + .4vw, 1.25rem);--text-xl:clamp(1.25rem, 1.05rem + .8vw, 1.6rem);--text-title:clamp(1.15rem, 1rem + 1vw, 1.7rem);--text-display:clamp(2rem, 1.4rem + 3vw, 3.75rem);--text-problem:clamp(1.75rem, 1.4rem + 2vw, 2.6rem);--text-answer:clamp(1.75rem, 1.5rem + 1.5vw, 2.2rem);--text-pad:clamp(1.2rem, 1.05rem + .6vw, 1.45rem);--spring-snappy:cubic-bezier(.34, 1.56, .64, 1);--spring-soft:cubic-bezier(.22, 1.2, .36, 1);--spring-snappy-time:.42s;--spring-soft-time:.56s}@supports (transition-timing-function:linear(0, 1)){:root{--spring-snappy:linear(0, .006, .025 2.8%, .101 6.1%, .539 18.9%, .721 25.3%, .849 31.5%, .937 38.1%, .979 45%, .998 53.1%, 1);--spring-soft:linear(0, .004, .016, .035, .063, .098, .141, .191, .249, .313, .383, .457, .535, .615, .697, .778, .857, .932, 1)}}*,:before,:after{box-sizing:border-box}html,body,#root{min-height:100%}body{font-family:var(--font-body);font-size:var(--text-md);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0}button,input,select,textarea{font:inherit;font-size:1rem}a{color:inherit;text-decoration:none}@media (width<=550px){.streak-label,.cta-kicker,.typing-stat span,.care-label,.race-lap,.pet-chip{font-size:var(--text-sm)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}body{background:#0f1c18}.char-sprite{object-fit:contain;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;filter:drop-shadow(0 6px 10px #0000002e);will-change:transform;display:block}.char-motion-bob{animation:2.4s ease-in-out infinite charBob}.char-motion-drive{transform-origin:50% 85%;animation:.55s ease-in-out infinite charDrive}.char-motion-sway{transform-origin:50% 90%;animation:2.8s ease-in-out infinite charSway}.char-motion-hop{animation:charHop 1.8s var(--spring-soft,ease-in-out) infinite}.char-sprite.is-celebrate{animation:charCelebrate var(--spring-snappy-time,.42s) var(--spring-snappy,ease-out)}@keyframes charBob{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes charDrive{0%,to{transform:translateY(0)rotate(-2deg)}50%{transform:translateY(-3px)rotate(2deg)}}@keyframes charSway{0%,to{transform:rotate(-4deg)translateY(0)}50%{transform:rotate(5deg)translateY(-4px)}}@keyframes charHop{0%,to{transform:translateY(0)scale(1)}40%{transform:translateY(-10px)scale(1.04)}60%{transform:translateY(-2px)scale(.98)}}@keyframes charCelebrate{0%{transform:scale(.9)translateY(4px)rotate(-4deg)}45%{transform:scale(1.14)translateY(-12px)rotate(4deg)}to{transform:scale(1)translateY(0)rotate(0)}}@media (prefers-reduced-motion:reduce){.char-motion-bob,.char-motion-drive,.char-motion-sway,.char-motion-hop,.char-sprite.is-celebrate{animation:none}}.home-shell{color:#1f2a24;background:linear-gradient(135deg,#1a3a4a 0%,#2d6a4f 42%,#d4a373 100%);place-items:center;min-height:100dvh;padding:1.5rem;display:grid;position:relative;overflow:hidden}.home-glow{pointer-events:none;background:radial-gradient(circle at 30% 40%,#ffd67859,#0000 40%),radial-gradient(circle at 75% 30%,#ff8cb447,#0000 35%);animation:7s ease-in-out infinite alternate homePulse;position:absolute;inset:-20%}.home-composition{z-index:1;text-align:center;width:min(100%,720px);animation:homeEnter .7s var(--spring-soft,ease-out) both;position:relative}.home-brand{font-family:var(--font-display);font-size:var(--text-display);letter-spacing:-.02em;color:#fff8e7;text-shadow:0 4px 24px #00000040;margin:0 0 .35rem;font-weight:700}.home-headline{font-family:var(--font-display);font-size:var(--text-title);color:#f0fff4;margin:0;font-weight:600}.home-sub{color:#ffffffe0;max-width:34ch;font-size:var(--text-md);margin:.65rem auto 1.75rem;line-height:1.45}.home-fox-banner{color:#fff8e7;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#ffffff2e;border-radius:999px;align-items:center;gap:.65rem;margin:0 auto 1.35rem;padding:.35rem .85rem .35rem .35rem;font-size:.9rem;font-weight:700;display:inline-flex}.home-actions{gap:1rem;display:grid}@media (width>=720px){.home-actions{grid-template-columns:1fr 1fr}.typing-cta{grid-column:1/-1}}.home-cta{text-align:left;min-height:180px;transition:transform var(--spring-snappy-time) var(--spring-snappy), box-shadow .2s ease;box-shadow:var(--shadow-soft);border-radius:24px;flex-direction:column;align-items:flex-start;gap:.35rem;padding:1.15rem 1.2rem;display:flex}.cta-art{align-self:center;margin-bottom:.25rem}.cta-art-pets{align-items:flex-end;gap:.15rem;display:flex}.cta-art-keyboard{place-items:center;display:grid}.home-keyboard{filter:drop-shadow(0 6px #0000001f);animation:2.4s ease-in-out infinite keyboardBounce;display:block}.home-key{transform-box:fill-box;transform-origin:50%}.typing-cta:hover .home-keyboard,.typing-cta:focus-visible .home-keyboard{animation:keyboardPop .42s var(--spring-snappy,ease-out)}@keyframes keyboardBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes keyboardPop{0%{transform:scale(.94)rotate(-2deg)}50%{transform:scale(1.06)rotate(2deg)}to{transform:scale(1)rotate(0)}}@media (prefers-reduced-motion:reduce){.home-keyboard{animation:none}}.home-cta:hover,.home-cta:focus-visible{outline:none;transform:translateY(-4px)scale(1.02)}.race-cta{color:#1b2430;background:linear-gradient(160deg,#ffb347 0%,#ff7a18 100%)}.academy-cta{color:#3d2548;background:linear-gradient(160deg,#ffb6d9 0%,#c9a0ff 100%)}.typing-cta{color:#e8f4ff;background:linear-gradient(160deg,#1e3a5f 0%,#0f2744 55%,#16324f 100%);border:1px solid #8cd2ff47;min-height:140px}.cta-kicker{font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;opacity:.75;font-weight:700}.cta-title{font-family:var(--font-display);font-size:var(--text-xl);font-weight:700;line-height:1.2}.cta-copy{font-size:var(--text-sm);opacity:.9}@keyframes homeEnter{0%{opacity:0;transform:translateY(18px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes homePulse{0%{transform:scale(1)}to{transform:scale(1.06)}}@media (prefers-reduced-motion:reduce){.home-glow,.home-composition{animation:none}}.music-toggle{font-weight:700;font-size:var(--text-sm);cursor:pointer;white-space:nowrap;background:#ffffffbf;border:none;border-radius:999px;padding:.45rem .85rem}.music-toggle[aria-pressed=false]{opacity:.72}.game-header{z-index:1;justify-content:space-between;align-items:center;gap:.75rem;width:min(100%,720px);display:flex}.game-header-title{font-family:var(--font-display);font-size:var(--text-title);text-align:center;margin:0}.game-header-back,.game-header-reset{font-weight:700;font-size:var(--text-sm);cursor:pointer;background:#ffffffbf;border:none;border-radius:999px;padding:.45rem .85rem}.game-header-actions{flex-shrink:0;align-items:center;gap:.45rem;display:flex}.burst-layer{z-index:1;position:absolute;inset:0;overflow:visible;pointer-events:none!important}.burst-layer *{pointer-events:none!important}.burst-particle{width:var(--size);height:var(--size);margin-left:calc(var(--size) / -2);margin-top:calc(var(--size) / -2);background:hsl(var(--hue) 90% 62%);box-shadow:0 0 12px hsl(var(--hue) 90% 70% / .7);opacity:1;animation-name:flingAway;animation-timing-function:var(--spring-soft,ease-out);border-radius:40% 60% 55% 45%;animation-fill-mode:forwards;position:absolute;top:45%;left:50%}@keyframes flingAway{to{transform:translate(calc(cos(var(--angle)) * var(--distance)), calc(sin(var(--angle)) * var(--distance)));opacity:0}}.score-pop{font-family:var(--font-display);font-size:var(--text-xl);color:var(--accent,#f5c542);text-shadow:0 2px #0003;animation:scorePop var(--spring-soft-time,.56s) var(--spring-snappy,ease-out) forwards;pointer-events:none;z-index:6;font-weight:700;position:absolute;top:18%;left:50%;transform:translate(-50%)}@keyframes scorePop{0%{opacity:0;transform:translate(-50%,12px)scale(.6)}40%{opacity:1;transform:translate(-50%,-4px)scale(1.15)}to{opacity:0;transform:translate(-50%,-36px)scale(1)}}.number-pad{z-index:10;touch-action:manipulation;grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem;width:min(100%,320px);display:grid;position:relative}.pad-key{z-index:10;min-height:var(--touch-min);border-radius:var(--radius-btn);background:color-mix(in srgb, var(--panel,#fff) 92%, #000 8%);color:var(--ink,#1a1a1a);font-family:var(--font-display);font-size:var(--text-pad);cursor:pointer;box-shadow:0 4px 0 color-mix(in srgb, var(--ink,#1a1a1a) 18%, transparent);transition:transform var(--spring-snappy-time) var(--spring-snappy), box-shadow .16s ease;-webkit-tap-highlight-color:transparent;touch-action:manipulation;-webkit-user-select:none;user-select:none;border:none;font-weight:700;position:relative}.pad-key:active:not(:disabled){box-shadow:0 1px 0 color-mix(in srgb, var(--ink,#1a1a1a) 18%, transparent);transform:translateY(3px)scale(.97)}.pad-go{background:var(--accent,#2ecc71);color:#fff}.pad-clear{font-size:var(--text-lg)}.pad-key:disabled{opacity:.55;cursor:not-allowed}.problem-panel{z-index:2;text-align:center;width:min(100%,420px);padding:1.25rem 1rem 1rem;position:relative}.problem-prompt{font-family:var(--font-display);font-size:var(--text-problem);margin:0 0 .75rem;font-weight:700;line-height:1.15}.problem-prompt-visual{flex-wrap:wrap;justify-content:center;align-items:center;gap:.45rem .55rem;min-height:2.6rem;display:flex}.problem-prompt-vertical{font-variant-numeric:tabular-nums;letter-spacing:.04em;justify-items:end;gap:.1rem;width:fit-content;margin-inline:auto;display:grid}.vert-row{text-align:right;min-width:3.2ch;line-height:1.05;display:block}.vert-times{grid-template-columns:1fr auto;align-items:baseline;column-gap:.45rem;min-width:3.2ch;display:grid}.vert-op{justify-self:start}.vert-rule{opacity:.55;background:currentColor;border-radius:999px;width:100%;height:3px;margin-top:.15rem;display:block}.prompt-icons{flex-wrap:wrap;justify-content:center;align-items:center;gap:.12rem;max-width:11rem;display:inline-flex}.prompt-icon{object-fit:contain;filter:drop-shadow(0 2px 3px #0000001f);-webkit-user-select:none;user-select:none;-webkit-user-drag:none;width:28px;height:28px;animation:iconPop .42s var(--spring-snappy,ease-out) both}.prompt-icon:nth-child(2){animation-delay:40ms}.prompt-icon:nth-child(3){animation-delay:80ms}.prompt-icon:nth-child(4){animation-delay:.12s}.prompt-icon:nth-child(5){animation-delay:.16s}.prompt-icon:nth-child(6){animation-delay:.2s}.prompt-icon:nth-child(7){animation-delay:.24s}.prompt-op{padding:0 .1rem;font-size:clamp(1.6rem,5vw,2.2rem);font-weight:700;line-height:1}@keyframes iconPop{0%{opacity:0;transform:scale(.6)translateY(4px)}to{opacity:1;transform:scale(1)translateY(0)}}@media (prefers-reduced-motion:reduce){.prompt-icon{animation:none}}.problem-answer-label{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.problem-answer{text-align:center;width:100%;min-height:3.2rem;font-family:var(--font-display);font-size:var(--text-answer);letter-spacing:.04em;background:color-mix(in srgb, var(--panel,#fff) 85%, transparent);border:3px solid color-mix(in srgb, var(--accent,#888) 55%, transparent);color:inherit;transition:transform var(--spring-snappy-time) var(--spring-snappy), border-color .2s ease, background .2s ease;border-radius:16px;outline:none;place-items:center;font-weight:700;display:grid}.problem-answer:focus-visible{border-color:var(--accent,#888);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent,#888) 35%, transparent)}.problem-answer:disabled{opacity:.85}.feedback-correct .problem-answer{background:color-mix(in srgb, #2ecc71 20%, var(--panel,#fff));animation:answerPop var(--spring-snappy-time) var(--spring-snappy);border-color:#2ecc71}.feedback-wrong .problem-answer{border-color:#e67e22;animation:.42s answerShake}.problem-hint{font-size:var(--text-md);opacity:.9;margin:.85rem 0 0}@keyframes answerPop{0%{transform:scale(.92)}50%{transform:scale(1.06)}to{transform:scale(1)}}@keyframes answerShake{0%,to{transform:translate(0)}25%{transform:translate(-6px)}75%{transform:translate(6px)}}.scratch-pad{flex-direction:column;gap:.4rem;width:100%;display:flex}.scratch-pad-top{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.scratch-pad-label{font-size:var(--text-sm);opacity:.75;font-weight:700}.scratch-pad-clear{font-weight:700;font-size:var(--text-sm);cursor:pointer;background:#ffffffb3;border:none;border-radius:999px;padding:.3rem .7rem}.scratch-pad-clear:disabled{opacity:.55;cursor:default}.scratch-pad-canvas{touch-action:none;border:2px dashed color-mix(in srgb, var(--accent,#f39c12) 55%, transparent);cursor:crosshair;background:linear-gradient(#fffdf7 0%,#fff4df 100%);border-radius:16px;width:100%;display:block;box-shadow:inset 0 1px #ffffffb3}.scratch-pad.is-disabled .scratch-pad-canvas{opacity:.7;cursor:default}.streak-bar{grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem;width:min(100%,520px);display:grid}.streak-stat{background:color-mix(in srgb, var(--panel,#fff) 88%, transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:14px;flex-direction:column;align-items:center;gap:.15rem;padding:.55rem .35rem;display:flex}.streak-label{font-size:var(--text-xs);letter-spacing:.04em;text-transform:uppercase;opacity:.7}.streak-stat strong{font-family:var(--font-display);font-size:var(--text-lg)}@media (width<=480px){.streak-bar{grid-template-columns:repeat(2,minmax(0,1fr))}}.race-shell{--ink:#1b2430;--panel:#fff7e8;--accent:#f39c12;min-height:100dvh;color:var(--ink);background:radial-gradient(80% 50% at 50% -10%,#ffd27a 0%,#0000 55%),linear-gradient(#4aa3df 0%,#7ec8f0 35%,#8fd68b 70%,#5f9e4e 100%);flex-direction:column;align-items:center;gap:1rem;padding:1rem 1rem 2rem;display:flex;position:relative;overflow:hidden}.race-sky{pointer-events:none;background-image:repeating-linear-gradient(-12deg,#0000,#0000 18px,#ffffff0d 18px 20px);position:absolute;inset:0}.race-top{z-index:1;justify-content:space-between;align-items:center;gap:.75rem;width:min(100%,720px);display:flex}.race-title{font-family:var(--font-display);text-align:center;margin:0;font-size:clamp(1.2rem,4vw,1.7rem)}.race-back,.race-reset{cursor:pointer;background:#ffffffbf;border:none;border-radius:999px;padding:.45rem .85rem;font-weight:700}.race-actions{flex-shrink:0;align-items:center;gap:.45rem;display:flex}.race-stage{z-index:1;grid-template-columns:auto 1fr auto;align-items:end;gap:.65rem;width:min(100%,640px);display:grid}.race-buddy-cheer{flex-direction:column;align-items:center;gap:.15rem;margin-bottom:.4rem;display:flex}.race-buddy-label{opacity:.75;font-size:.7rem;font-weight:700}.race-track{min-width:0}.race-road{background:repeating-linear-gradient(90deg,#2c3e50 0 18px,#34495e 18px 36px);border:3px solid #f5f5f5;border-radius:999px;height:78px;position:relative;overflow:hidden;box-shadow:inset 0 -8px #00000026}.race-road.is-boost{box-shadow:inset 0 -8px #00000026,0 0 0 3px #ffd65a8c}.race-dash{opacity:.85;background:repeating-linear-gradient(90deg,#f1c40f 0 18px,#0000 18px 34px);height:4px;margin-top:-2px;animation:.7s linear infinite dashScroll;position:absolute;inset:50% 0 auto}.race-car{transition:left var(--spring-soft-time) var(--spring-soft);z-index:2;position:absolute;top:50%;transform:translate(-50%,-55%)}.race-car-art{width:88px!important;height:88px!important}.race-nitro{filter:blur(1px);pointer-events:none;background:linear-gradient(90deg,#0000,#ff9f1a,#ffe66d);border-radius:999px;width:28px;height:12px;animation:.45s ease-out infinite nitroPulse;position:absolute;top:55%;left:-10px}.race-lap{text-align:center;opacity:.85;margin:.35rem 0 0;font-size:.85rem}.race-badges{flex-direction:column;gap:.35rem;margin-bottom:.5rem;display:flex}.race-badge{opacity:.28;filter:grayscale(.6);transition:opacity .28s ease, filter .28s ease, transform var(--spring-snappy-time) var(--spring-snappy)}.race-badge.is-earned{opacity:1;filter:none;animation:badgePop var(--spring-snappy-time) var(--spring-snappy)}.race-play{z-index:1;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);width:min(100%,420px);box-shadow:var(--shadow-soft);background:#fff7e8b8;border-radius:28px;flex-direction:column;align-items:center;gap:1rem;padding:1rem;display:flex;position:relative}.race-banner{text-align:center;color:#1b5e20;margin:0;font-weight:700}@keyframes dashScroll{to{background-position:34px 0}}@keyframes nitroPulse{0%{opacity:.3;transform:translateY(-50%)scaleX(.6)}to{opacity:1;transform:translateY(-50%)scaleX(1.2)}}@keyframes badgePop{0%{transform:scale(.7)}55%{transform:scale(1.18)}to{transform:scale(1)}}@media (width<=560px){.race-stage{grid-template-columns:1fr;justify-items:center}.race-buddy-cheer{flex-direction:row;gap:.5rem;margin-bottom:0}.race-track{width:100%}.race-badges{flex-direction:row}.race-car-art{width:72px!important;height:72px!important}}@media (prefers-reduced-motion:reduce){.race-dash,.race-nitro,.race-badge.is-earned{animation:none}}.academy-shell{--ink:#4a3040;--panel:#fff5fa;--accent:#ff6fab;min-height:100dvh;color:var(--ink);background:radial-gradient(circle at 15% 20%,#ffd6ef 0%,#0000 40%),radial-gradient(circle at 85% 10%,#d6f3ff 0%,#0000 35%),linear-gradient(165deg,#ffe9f5 0%,#f3e8ff 45%,#e8f7ff 100%);flex-direction:column;align-items:center;gap:1rem;padding:1rem 1rem 2rem;display:flex;position:relative;overflow:hidden}.academy-sparkles{pointer-events:none;opacity:.7;background-image:radial-gradient(circle at 20% 30%,#fff 0 2px,#0000 3px),radial-gradient(circle at 70% 20%,#fff 0 2px,#0000 3px),radial-gradient(circle at 40% 70%,#fff8 0 2px,#0000 3px),radial-gradient(circle at 80% 60%,#fff 0 1.5px,#0000 2.5px);animation:8s linear infinite sparkleDrift;position:absolute;inset:0}.academy-top{z-index:1;justify-content:space-between;align-items:center;gap:.75rem;width:min(100%,720px);display:flex}.academy-title{font-family:var(--font-display);text-align:center;margin:0;font-size:clamp(1.05rem,3.6vw,1.55rem)}.academy-back,.academy-reset{cursor:pointer;background:#fffc;border:none;border-radius:999px;padding:.45rem .85rem;font-weight:700}.academy-actions{flex-shrink:0;align-items:center;gap:.45rem;display:flex}.academy-care{z-index:1;flex-direction:column;align-items:center;gap:.55rem;width:min(100%,420px);display:flex}.academy-friends{justify-content:center;align-items:flex-end;gap:.75rem;width:100%;display:flex}.academy-fox-side{flex-direction:column;align-items:center;gap:.2rem;margin-bottom:.5rem;display:flex}.academy-hero-pet{flex-direction:column;align-items:center;gap:.25rem;display:flex;position:relative}.academy-hero-pet.is-happy:after{content:"";pointer-events:none;background:radial-gradient(circle,#ffd67873,#0000 70%);border-radius:50%;height:40%;animation:.9s ease-out heartGlow;position:absolute;inset:8% 10% auto}.academy-hero-art{width:140px!important;height:140px!important}.pet-chip{opacity:.78;font-size:.72rem;font-weight:700}.pet-chip-hero{color:#9b2d5b;font-size:.85rem}.academy-pet-row{justify-content:center;gap:.55rem;width:100%;display:flex}.academy-pet-slot{opacity:.4;filter:grayscale(.5);transition:opacity .24s ease, filter .24s ease, transform var(--spring-snappy-time) var(--spring-snappy), background .24s ease;background:#ffffff73;border-radius:18px;flex-direction:column;flex:1;align-items:center;gap:.2rem;padding:.4rem .35rem;font-size:.72rem;font-weight:700;display:flex}.academy-pet-slot.is-unlocked{opacity:.85;filter:none}.academy-pet-slot.is-active{opacity:1;background:#ffffffd9;transform:translateY(-3px)scale(1.04);box-shadow:0 8px 18px #ff6fab38}.care-meter{background:#ffffffa6;border:2px solid #ffb3d4;border-radius:999px;width:min(240px,70vw);height:14px;overflow:hidden}.care-fill{height:100%;transition:width var(--spring-soft-time) var(--spring-soft);background:linear-gradient(90deg,#ff8ec8,#ffd36e)}.care-label{opacity:.8;margin:0;font-size:.85rem}.academy-play{z-index:1;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);width:min(100%,420px);box-shadow:var(--shadow-soft);background:#fff5fac7;border-radius:28px;flex-direction:column;align-items:center;gap:1rem;padding:1rem;display:flex;position:relative}.academy-banner{text-align:center;color:#9b2d5b;margin:0;font-weight:700}@keyframes sparkleDrift{0%{transform:translateY(0)}to{transform:translateY(-24px)}}@keyframes heartGlow{0%{opacity:0;transform:scale(.6)}40%{opacity:1}to{opacity:0;transform:scale(1.35)}}@media (prefers-reduced-motion:reduce){.academy-sparkles,.academy-hero-pet.is-happy:after{animation:none}}.typing-keyboard{z-index:2;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0f1724b8;border:2px solid #ffffff38;border-radius:14px;flex-direction:column;flex-shrink:0;gap:.25rem;width:100%;padding:.3rem .4rem .35rem;display:flex;box-shadow:0 6px #0000002e}.tk-board{flex-direction:column;align-items:center;gap:.18rem;display:flex}.tk-row{width:100%;padding-left:var(--tk-offset,0);justify-content:center;gap:.18rem;display:flex}.tk-row-space{display:none}.tk-key{--tk-color:#64748b;aspect-ratio:1;background:var(--tk-color);color:#fff;max-width:2.35rem;min-height:0;font-family:var(--font-display);cursor:default;-webkit-tap-highlight-color:transparent;touch-action:manipulation;-webkit-user-select:none;user-select:none;border:2px solid #00000059;border-radius:7px;flex:1 1 0;padding:0;font-size:clamp(.65rem,1.9vw,.82rem);font-weight:700;line-height:1;transition:transform .1s,box-shadow .1s,filter .12s;position:relative;box-shadow:0 2px #00000047}.tk-key:not(:disabled){cursor:pointer}.tk-key:not(:disabled):active,.tk-key.is-pressed{transform:translateY(2px);box-shadow:0 1px #00000047}.tk-key.is-home{outline-offset:-3px;outline:1.5px dashed #ffffff59}.tk-key.is-hot{filter:brightness(1.18);z-index:1;transform:translateY(-2px)scale(1.08);box-shadow:0 0 0 2px #fff,0 4px #00000047}.tk-key.has-bump .tk-bump{background:#ffffffd9;border-radius:999px;width:28%;height:2px;position:absolute;bottom:18%;left:50%;transform:translate(-50%)}.tk-label{text-shadow:0 1px 1px #00000059;display:block}.tk-space{aspect-ratio:6;letter-spacing:.08em;text-transform:uppercase;opacity:.95;border-radius:8px;flex:0 auto;width:min(55%,14rem);max-width:none;min-height:1.1rem;font-size:clamp(.6rem,1.6vw,.72rem)}.tk-guide{grid-template-columns:auto 1fr auto;align-items:center;gap:.35rem;padding:.05rem .1rem 0;display:grid}.tk-hand{flex-direction:column;align-items:center;gap:.12rem;min-width:2.6rem;display:flex}.tk-fingers{align-items:flex-end;gap:.14rem;height:1.2rem;display:flex}.tk-finger{opacity:.55;border-radius:999px 999px 4px 4px;width:.45rem;transition:opacity .16s,transform .16s,height .16s}.tk-hand-left .tk-finger:first-child,.tk-hand-right .tk-finger:nth-child(4){height:.65rem}.tk-hand-left .tk-finger:nth-child(2),.tk-hand-right .tk-finger:nth-child(3){height:.9rem}.tk-hand-left .tk-finger:nth-child(3),.tk-hand-right .tk-finger:nth-child(2){height:1.05rem}.tk-hand-left .tk-finger:nth-child(4),.tk-hand-right .tk-finger:first-child{height:.95rem}.tk-finger.is-active{opacity:1;transform:translateY(-2px);box-shadow:0 0 0 2px #fff}.tk-thumb{opacity:.55;border-radius:999px;align-self:center;width:.9rem;height:.35rem;margin-top:-.05rem}.tk-hand-left .tk-thumb{align-self:flex-end;margin-right:.1rem}.tk-hand-right .tk-thumb{align-self:flex-start;margin-left:.1rem}.tk-thumb.is-active{opacity:1;box-shadow:0 0 0 2px #fff}.tk-hand-label{font-family:var(--font-display);color:#ffffffb3;letter-spacing:.06em;font-size:.58rem;font-weight:700}.tk-coach{text-align:center;color:#f4fff8;margin:0;font-size:clamp(.65rem,1.8vw,.78rem);font-weight:600;line-height:1.25}.tk-coach strong{font-weight:800}.tk-coach-key{color:#fff;min-width:1.1em;font-family:var(--font-display);text-shadow:0 1px 1px #0000004d;border-radius:5px;margin:0 .08em;padding:.05em .3em;font-weight:800;display:inline-block;box-shadow:0 2px #0003}@media (width<=520px){.typing-keyboard{gap:.2rem;padding:.25rem .28rem .3rem}.tk-row{gap:.12rem}.tk-key{border-width:1.5px;border-radius:5px;max-width:1.95rem}.tk-guide{gap:.22rem}.tk-hand{min-width:2.2rem}.tk-coach{font-size:.65rem}}@media (height<=900px){.typing-keyboard{gap:.18rem;padding:.22rem .32rem .25rem}.tk-board,.tk-row{gap:.12rem}.tk-key{border-width:1.5px;max-width:2rem}.tk-guide{gap:.25rem;padding-top:0}.tk-hand{gap:.08rem;min-width:2.1rem}.tk-fingers{gap:.1rem;height:.95rem}.tk-hand-left .tk-finger:first-child,.tk-hand-right .tk-finger:nth-child(4){height:.5rem}.tk-hand-left .tk-finger:nth-child(2),.tk-hand-right .tk-finger:nth-child(3){height:.7rem}.tk-hand-left .tk-finger:nth-child(3),.tk-hand-right .tk-finger:nth-child(2){height:.85rem}.tk-hand-left .tk-finger:nth-child(4),.tk-hand-right .tk-finger:first-child{height:.75rem}.tk-finger{width:.38rem}.tk-thumb{width:.75rem;height:.28rem}.tk-hand-label{font-size:.52rem}.tk-coach{font-size:clamp(.62rem,1.6vw,.74rem)}}@media (height<=640px){.typing-keyboard{padding:.15rem .25rem .18rem}.tk-key{max-width:1.7rem}.tk-coach{font-size:.6rem}}@media (prefers-reduced-motion:reduce){.tk-key.is-hot,.tk-finger.is-active{transform:none}}.typing-shell{--ink:#e8f0ff;--ink-deep:#0b1228;height:100dvh;min-height:100dvh;color:var(--ink);background:radial-gradient(55% 35% at 18% 12%,#3878b459 0%,#0000 60%),radial-gradient(45% 30% at 82% 18%,#ff8c502e 0%,#0000 55%),radial-gradient(70% 50% at 50% 100%,#1e465a73 0%,#0000 50%),linear-gradient(#070b18 0%,#121c36 48%,#1a3050 100%);flex-direction:column;align-items:center;gap:.35rem;padding:.4rem .75rem;display:flex;position:relative;overflow:hidden}.typing-sky{pointer-events:none;opacity:.85;background-image:radial-gradient(circle at 12% 16%,#fff 0 1.2px,#0000 2.2px),radial-gradient(circle at 28% 8%,#ffe8a3 0 1px,#0000 2px),radial-gradient(circle at 44% 22%,#fff 0 1.4px,#0000 2.4px),radial-gradient(circle at 61% 11%,#fff 0 1px,#0000 2px),radial-gradient(circle at 78% 19%,#c8e8ff 0 1.3px,#0000 2.3px),radial-gradient(circle at 88% 7%,#fff 0 1px,#0000 2px),radial-gradient(circle at 8% 42%,#fff 0 1px,#0000 2px),radial-gradient(circle at 35% 38%,#ffe8a3 0 .9px,#0000 1.9px),radial-gradient(circle at 55% 48%,#fff 0 1.1px,#0000 2.1px),radial-gradient(circle at 72% 36%,#fff 0 1px,#0000 2px),radial-gradient(circle at 92% 44%,#c8e8ff 0 1.2px,#0000 2.2px),radial-gradient(circle at 18% 68%,#fff 0 1px,#0000 2px),radial-gradient(circle at 48% 72%,#ffe8a3 0 1.1px,#0000 2.1px),radial-gradient(circle at 66% 62%,#fff 0 .9px,#0000 1.9px),radial-gradient(circle at 84% 78%,#fff 0 1.2px,#0000 2.2px);animation:6s ease-in-out infinite alternate typing-twinkle;position:absolute;inset:0}.typing-sky:before,.typing-sky:after{content:"";pointer-events:none;border-radius:50%;position:absolute}.typing-sky:before{opacity:.9;background:radial-gradient(circle at 35% 35%,#fff6d5 0 18%,#f0d78c 32%,#d4a84b 70%,#b8862e 100%);width:min(18vw,7.5rem);height:min(18vw,7.5rem);top:8%;right:8%;box-shadow:0 0 40px #ffdc8c59}.typing-sky:after{opacity:.75;background:radial-gradient(circle at 40% 40%,#7dd3fc 0%,#3b82a8 55%,#1e4a66 100%);width:min(9vw,3.5rem);height:min(9vw,3.5rem);bottom:22%;left:6%;box-shadow:0 0 24px #50b4dc4d}@keyframes typing-twinkle{0%{opacity:.7}to{opacity:1}}.typing-top{z-index:2;flex-shrink:0;grid-template-columns:auto 1fr auto;align-items:center;gap:.55rem;width:min(100%,1100px);display:grid}.typing-brand{flex-direction:column;align-items:center;gap:.25rem;min-width:0;display:flex}.typing-title{font-family:var(--font-display);text-align:center;color:#f4fbff;text-shadow:0 2px 12px #50c8ff59;margin:0;font-size:clamp(1rem,3.2vw,1.4rem);line-height:1.1}.typing-back,.typing-reset{color:#f4fbff;cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#ffffff29;border:none;border-radius:999px;padding:.35rem .7rem;font-size:.85rem;font-weight:700}.typing-actions{flex-shrink:0;align-items:center;gap:.35rem;display:flex}.typing-hud{z-index:2;flex-wrap:wrap;justify-content:center;gap:.3rem;width:100%;max-width:28rem;display:flex}.typing-stat{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#e8f0ff;background:#0c1428a6;border:1px solid #ffffff24;border-radius:999px;align-items:baseline;gap:.28rem;min-width:0;padding:.2rem .55rem;display:flex}.typing-stat span{letter-spacing:.04em;text-transform:uppercase;opacity:.7;font-size:.58rem;font-weight:700}.typing-stat strong{font-family:var(--font-display);font-size:.95rem;line-height:1}.typing-orbit-stat strong{align-items:center;gap:.35rem;display:inline-flex}.typing-orbit-stars{letter-spacing:.04em;color:#fbbf24;font-size:.72rem}.typing-orbit-progress{flex-direction:column;gap:.2rem;width:min(100%,18rem);display:flex}.typing-orbit-progress-label{color:#c8dcffe6;text-align:center;font-size:.65rem;font-weight:700}.typing-orbit-track{background:#0810248c;border:1px solid #ffffff24;border-radius:999px;height:.45rem;overflow:hidden}.typing-orbit-fill{border-radius:inherit;background:linear-gradient(90deg,#5eead4,#fbbf24);height:100%;transition:width .28s}.typing-lives strong{letter-spacing:.06em;color:#ff6b7a}.typing-arena{z-index:2;background:radial-gradient(40% 30% at 70% 20%,#5a8cdc33 0%,#0000 70%),radial-gradient(50% 40% at 20% 60%,#28507840 0%,#0000 65%),linear-gradient(#0a1228 0%,#152240 55%,#1c3558 100%);border:3px solid #8cd2ff47;border-radius:24px;flex:auto;width:min(100%,1100px);height:auto;min-height:0;position:relative;overflow:hidden;box-shadow:0 0 0 1px #78c8ff2e,0 16px 40px #00000059}.typing-buddy{z-index:4;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);pointer-events:none;background:#0810248c;border:1px solid #ffffff29;border-radius:999px;align-items:center;gap:.45rem;max-width:min(42%,16rem);padding:.2rem .55rem .2rem .2rem;display:flex;position:absolute;top:.55rem;left:.55rem}.typing-astro-fox{isolation:isolate;flex-shrink:0;place-items:center;display:grid;position:relative}.typing-astro-fox .char-sprite{z-index:1;position:relative}.typing-astro-helmet{z-index:2;pointer-events:none;background:linear-gradient(135deg,#ffffff73 0%,#b4e6ff1f 28%,#0000 48%,#78c8ff1a 100%);border:2.5px solid #dcebffd9;border-radius:50% 50% 46% 46%;width:92%;height:78%;position:absolute;top:4%;left:50%;transform:translate(-50%);box-shadow:inset 0 0 0 1.5px #508cb459,inset -6px -10px 14px #285a8c2e,0 0 10px #8cd2ff59}.typing-astro-helmet:before{content:"";background:linear-gradient(160deg,#ffffffbf 0%,#ffffff0d 100%);border-radius:50%;width:28%;height:22%;position:absolute;top:16%;left:14%}.typing-astro-helmet:after{content:"";background:linear-gradient(#dbe7f5 0%,#8fa3b8 55%,#5b6f86 100%);border:2px solid #ffffff8c;border-radius:40%/50%;width:78%;height:22%;position:absolute;bottom:-10%;left:50%;transform:translate(-50%);box-shadow:0 2px #00000040}.typing-astro-fox-sm{width:48px;height:48px}.typing-astro-fox-md{width:72px;height:72px}.typing-astro-fox.is-celebrate{animation:charCelebrate var(--spring-snappy-time,.42s) var(--spring-snappy,ease-out)}@media (prefers-reduced-motion:reduce){.typing-astro-fox.char-motion-sway,.typing-astro-fox.char-motion-hop,.typing-astro-fox.is-celebrate{animation:none}}.typing-buddy-note{color:#d7e8ff;margin:0;font-size:.68rem;font-weight:700;line-height:1.25}.typing-ground{pointer-events:none;background:radial-gradient(18% 40% at 22% 55%,#3c465ae6 0 40%,#0000 42%),radial-gradient(12% 30% at 68% 60%,#323c50d9 0 40%,#0000 42%),radial-gradient(10% 28% at 48% 70%,#465064b3 0 40%,#0000 42%),linear-gradient(#0000 0%,#5a6e5a59 35%,#4a5c48 100%);height:14%;position:absolute;bottom:0;left:0;right:0}.typing-ground:before{content:"";background:linear-gradient(#6b7f5e 0%,#3f4f3a 100%);border-radius:50% 50% 0 0;height:55%;position:absolute;bottom:0;left:-5%;right:-5%;box-shadow:0 -8px 30px #64b47826}.falling-word{--rocket:#5eead4;--rocket-deep:#0f766e;box-shadow:none;white-space:nowrap;z-index:2;background:0 0;border:none;flex-direction:column;align-items:center;gap:0;padding:0;transition:transform .12s;animation:2.8s ease-in-out infinite rocket-drift;display:flex;position:absolute;transform:translate(-50%,-50%)}.falling-word.rocket-sky{--rocket:#7dd3fc;--rocket-deep:#0369a1;animation-duration:3.2s}.falling-word.rocket-ember{--rocket:#fdba74;--rocket-deep:#c2410c;animation-duration:2.5s}.falling-word.rocket-mint{--rocket:#5eead4;--rocket-deep:#0f766e;animation-duration:2.8s}.falling-word.is-active{z-index:3;animation:none;transform:translate(-50%,-50%)scale(1.08)}.rocket-nose{background:linear-gradient(200deg, var(--rocket) 0%, var(--rocket-deep) 55%, #0b1228 100%);clip-path:polygon(0% 0%,100% 0%,50% 100%);filter:drop-shadow(0 2px 2px #00000040);width:1.15rem;height:1.15rem;margin-top:-.12rem}.rocket-cabin{z-index:1;text-align:center;border:3px solid var(--rocket);min-width:3.2rem;box-shadow:0 4px 0 var(--rocket-deep), inset 0 1px 0 #ffffffe6;font-family:var(--font-display);letter-spacing:.04em;color:var(--ink-deep);background:linear-gradient(#fffef8 0%,#f3f7ff 100%);border-radius:10px 10px 12px 12px;margin-top:-.12rem;padding:.4rem .85rem .45rem;font-size:clamp(1.2rem,3.6vw,1.7rem);font-weight:700;position:relative}.falling-word.is-active .rocket-cabin{border-color:#fbbf24;box-shadow:0 4px #b45309,0 0 18px #fbbf2473,inset 0 1px #ffffffe6}.rocket-fins{pointer-events:none;justify-content:space-between;width:calc(100% + .7rem);margin-bottom:-.2rem;display:flex}.rocket-fin{background:linear-gradient(0deg, var(--rocket) 0%, var(--rocket-deep) 100%);clip-path:polygon(0% 0%,100% 0%,50% 100%);width:.7rem;height:.85rem}.rocket-fin-l{transform:translate(-.1rem)rotate(18deg)}.rocket-fin-r{transform:translate(.1rem)rotate(-18deg)}.rocket-flame{pointer-events:none;justify-content:center;align-items:flex-end;gap:.12rem;height:1.35rem;margin-bottom:-.1rem;display:flex}.rocket-flame span{transform-origin:bottom;background:linear-gradient(#ef4444 0%,#ff9f43 55%,#fff7c2 100%);border-radius:60% 60% 999px 999px;width:.42rem;animation:.28s ease-in-out infinite alternate flame-flicker;display:block}.rocket-flame span:first-child{height:.85rem;animation-delay:0s}.rocket-flame span:nth-child(2){width:.5rem;height:1.2rem;animation-delay:80ms}.rocket-flame span:nth-child(3){height:.75rem;animation-delay:.14s}.falling-word.is-active .rocket-flame span{background:linear-gradient(#f97316 0%,#fde047 60%,#fff 100%)}@keyframes rocket-drift{0%,to{transform:translate(-50%,-50%)rotate(-2deg)}50%{transform:translate(-48%,-50%)rotate(2deg)}}@keyframes flame-flicker{0%{opacity:.85;transform:scaleY(.85)scaleX(.95)}to{opacity:1;transform:scaleY(1.1)scaleX(1.05)}}.fw-matched{color:#059669}.fw-rest{color:var(--ink-deep)}.typing-start{text-align:center;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);color:#e8f0ff;background:#080e20b8;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;padding:1.5rem;display:flex;position:absolute;inset:0}.typing-start h2{font-family:var(--font-display);color:#f4fbff;margin:0;font-size:1.8rem}.typing-start p{color:#c5d8f0;max-width:36ch;margin:0;line-height:1.45}.typing-start-btn{font-family:var(--font-display);color:#1c1008;cursor:pointer;transition:transform var(--spring-snappy-time) var(--spring-snappy);background:linear-gradient(160deg,#fdba74,#f97316);border:none;border-radius:999px;margin-top:.5rem;padding:.85rem 1.6rem;font-size:1.2rem;font-weight:700;box-shadow:0 6px #00000047}.typing-start-btn:active{transform:translateY(3px)}.typing-banner{z-index:5;text-align:center;color:#f4fbff;text-shadow:0 1px 2px #00000059;pointer-events:none;background:#081024d1;border:1px solid #8cd2ff40;border-radius:999px;max-width:min(92%,36rem);margin:0;padding:.35rem .85rem;font-size:clamp(.75rem,2vw,.9rem);font-weight:700;position:absolute;bottom:.65rem;left:50%;transform:translate(-50%)}.typing-reward{z-index:8;text-align:center;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:typing-reward-in .42s var(--spring-snappy,ease-out);background:radial-gradient(circle at 50% 40%,#fbbf2447 0%,#0000 45%),#060c1cd1;flex-direction:column;justify-content:center;align-items:center;gap:.45rem;padding:1.25rem;display:flex;position:absolute;inset:0}.typing-reward h2{font-family:var(--font-display);color:#fff8e7;margin:0;font-size:clamp(1.5rem,4vw,2rem)}.typing-reward-name{font-family:var(--font-display);color:#fbbf24;margin:0;font-size:1.15rem;font-weight:700}.typing-reward-bonus{color:#5eead4;margin:0;font-size:1.05rem;font-weight:800}.typing-reward-badge{background:radial-gradient(circle at 35% 30%,#fff7c2 0%,#fbbf24 45%,#d97706 100%);border-radius:50%;place-items:center;width:4.2rem;height:4.2rem;animation:2.4s ease-in-out infinite typing-badge-spin;display:grid;box-shadow:0 0 0 4px #fff3,0 10px 28px #fbbf2473}.typing-reward-star{color:#7c2d12;font-size:2rem;line-height:1}@keyframes typing-reward-in{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@keyframes typing-badge-spin{0%,to{transform:rotate(-6deg)scale(1)}50%{transform:rotate(6deg)scale(1.06)}}.typing-controls{z-index:2;flex-direction:column;flex-shrink:0;gap:.2rem;width:min(100%,680px);display:flex}.typing-tip{color:#c8dcffe0;text-align:center;margin:0;font-size:.72rem;line-height:1.2}.typing-shell.is-playing{gap:.3rem;padding:.3rem .65rem}.typing-shell.is-playing .typing-title{font-size:clamp(.9rem,2.6vw,1.15rem)}@media (height<=780px){.typing-buddy-note{display:none}.typing-buddy{border-radius:50%;padding:.15rem}.typing-tip,.typing-orbit-stars{display:none}.typing-sky:before{width:3.5rem;height:3.5rem}.typing-sky:after{display:none}}@media (width<=640px){.typing-top{grid-template-columns:auto 1fr;grid-template-areas:"back actions""brand brand"}.typing-back{grid-area:back}.typing-actions{grid-area:actions;justify-self:end}.typing-brand{grid-area:brand}.typing-hud{max-width:none}}@media (width<=420px){.typing-stat{padding:.15rem .4rem}.typing-stat strong{font-size:.85rem}}@media (prefers-reduced-motion:reduce){.typing-sky,.falling-word,.rocket-flame span,.typing-reward,.typing-reward-badge{animation:none}.falling-word.is-active{transform:translate(-50%,-50%)}}
