:root{--font-display:"Baloo 2", "Nunito", system-ui, sans-serif;--font-body:"Nunito", system-ui, sans-serif;--cream:#f4efe4;--lavender:#ded3ec;--dusty-blue:#c9d3e0;--grey-green:#d3ddd2;--ink:#3a2e4d;--ink-soft:#6b5f80;--coral:#ff8fab;--sunshine:#ffd166;--mint:#8fe0c4;--sky:#8fc4ea;--violet:#b79aef;--surface:#ffffff9e;--surface-strong:#ffffffdb;--shadow-soft:0 10px 30px #503c6e29;--radius-lg:28px;--radius-md:18px;--radius-sm:12px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font-body);color:var(--ink);background:linear-gradient(160deg, var(--cream), var(--lavender));-webkit-tap-highlight-color:transparent;overscroll-behavior:none;margin:0;overflow:hidden}button{font-family:inherit}:focus-visible{outline:3px solid var(--violet);outline-offset:3px;border-radius:8px}.app-root{width:100%;height:100dvh;position:fixed;inset:0}::selection{background:var(--violet);color:#fff}.start-screen{--spot-x:50%;--spot-y:38%;background:radial-gradient(120% 100% at 20% 10%,#f6f0e6 0%,#ded3ec 55%,#c9d3e0 100%);justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:relative;overflow:hidden}.start-screen__spotlight{pointer-events:none;background:radial-gradient(480px at var(--spot-x) var(--spot-y), #fff6, transparent 62%);mix-blend-mode:soft-light;transition:background-position 50ms linear;position:absolute;inset:0}.start-screen__grain{pointer-events:none;opacity:.05;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:absolute;inset:0}.start-screen__blob{will-change:transform;transition:transform .25s cubic-bezier(.16,1,.3,1);position:absolute}.start-screen__blob-float{filter:blur(2px);border-radius:50%;width:100%;height:100%}.start-screen__blob--1{width:220px;height:220px;top:8%;left:8%}.start-screen__blob--1 .start-screen__blob-float{background:var(--coral);opacity:.25;animation:9s ease-in-out infinite float-slow}.start-screen__blob--2{width:160px;height:160px;bottom:10%;right:10%}.start-screen__blob--2 .start-screen__blob-float{background:var(--sky);opacity:.3;animation:11s ease-in-out infinite reverse float-slow}.start-screen__blob--3{width:120px;height:120px;bottom:22%;left:14%}.start-screen__blob--3 .start-screen__blob-float{background:var(--mint);opacity:.28;animation:7.5s ease-in-out infinite float-slow}@keyframes float-slow{0%,to{transform:translateY(0)scale(1)}50%{transform:translateY(-18px)scale(1.05)}}.sound-pill{top:max(18px, env(safe-area-inset-top));right:max(18px, env(safe-area-inset-right));background:var(--surface-strong);width:44px;height:44px;box-shadow:var(--shadow-soft);cursor:pointer;border:none;border-radius:50%;font-size:1.2rem;transition:transform .15s;position:absolute}.sound-pill:hover{transform:scale(1.08)}.sound-pill:active{transform:scale(.95)}.start-screen__content{z-index:1;text-align:center;flex-direction:column;align-items:center;width:100%;max-width:440px;padding:24px;display:flex;position:relative}.start-spark-wrap{width:120px;height:120px;margin-bottom:8px}.start-spark{width:100%;height:100%;transition:transform .12s ease-out;animation:3.4s ease-in-out infinite breathe;position:relative}@keyframes breathe{0%,to{transform:scale(1)translateY(0)}50%{transform:scale(1.04)translateY(-4px)}}.start-spark__glow{background:radial-gradient(circle,#ffd1668c 0%,#ffd16600 70%);border-radius:50%;position:absolute;inset:-30px}.start-spark__body{background:radial-gradient(circle at 35% 30%,#fff1c9,#ffd166 55%,#f4a640 100%);border-radius:50%;position:absolute;inset:20px;box-shadow:0 8px 24px #f4a64059}.start-spark__eye{background:var(--ink);border-radius:50%;width:8px;height:10px;position:absolute;top:42%}.start-spark__eye:first-of-type{left:34%}.start-spark__eye:last-of-type{right:34%}.start-spark__mouth{border:3px solid var(--ink);border-top:none;border-radius:0 0 16px 16px;width:18px;height:9px;position:absolute;bottom:28%;left:50%;transform:translate(-50%)}.start-title{font-family:var(--font-display);background:linear-gradient(120deg, var(--coral), var(--sunshine), var(--violet));color:#0000;letter-spacing:-.01em;-webkit-background-clip:text;background-clip:text;margin:4px 0 2px;font-size:clamp(2.2rem,8vw,3.2rem);font-weight:800}.start-tagline{color:var(--ink-soft);margin:0 0 26px;font-size:1.05rem}.cta-primary{font-family:var(--font-display);color:#fff;background:linear-gradient(135deg, var(--coral), #ff6f91);cursor:pointer;border:none;border-radius:999px;padding:16px 46px;font-size:1.15rem;font-weight:700;transition:transform .16s,box-shadow .16s;box-shadow:0 12px 28px #ff6f9166}.cta-primary:hover{transform:translateY(-2px)scale(1.02);box-shadow:0 16px 34px #ff6f917a}.cta-primary:active{transform:translateY(0)scale(.98)}.start-meta{color:var(--ink-soft);opacity:.85;margin:14px 0 6px;font-size:.82rem}.link-button{color:var(--ink-soft);cursor:pointer;background:0 0;border:none;padding:8px;font-size:.88rem;text-decoration:underline}.how-card{background:var(--surface-strong);border-radius:var(--radius-md);box-shadow:var(--shadow-soft);color:var(--ink-soft);text-align:left;margin-top:10px;padding:16px 18px;font-size:.9rem}.how-card p{margin:6px 0}.how-card strong{color:var(--ink)}.start-stats{background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--shadow-soft);gap:20px;margin-top:24px;padding:14px 20px;display:flex}.start-stats>div{flex-direction:column;align-items:center;gap:2px;display:flex}.start-stats strong{font-family:var(--font-display);color:var(--ink);font-size:1.15rem}.start-stats span{color:var(--ink-soft);text-transform:uppercase;letter-spacing:.04em;font-size:.72rem}.start-badges{gap:8px;margin-top:14px;display:flex}.start-badge{background:var(--surface-strong);width:40px;height:40px;box-shadow:var(--shadow-soft);border-radius:50%;justify-content:center;align-items:center;font-size:1.4rem;display:flex}@media (prefers-reduced-motion:reduce){.start-spark,.start-screen__blob-float{animation:none}.start-screen__spotlight{display:none}}@media (width<=380px){.start-title{font-size:2.1rem}.cta-primary{padding:14px 36px;font-size:1.05rem}}.game-screen{touch-action:none;background:#ded3ec;width:100%;height:100%;position:relative;overflow:hidden}.game-canvas{touch-action:none;display:block;position:absolute;inset:0}.hud{pointer-events:none;padding:max(16px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) 16px max(16px, env(safe-area-inset-left));grid-template-columns:1fr auto 1fr;align-items:start;display:grid;position:absolute;inset:0}.hud__top-left,.hud__top-right{pointer-events:auto;align-items:center;gap:10px;display:flex}.hud__top-right{justify-self:end}.hud__label{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);font-size:.62rem;font-weight:700;display:block}.hud__top-left{flex-direction:column;align-items:flex-start;gap:8px}.score-card{background:var(--surface);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:var(--radius-sm);box-shadow:var(--shadow-soft);flex-direction:column;align-items:flex-start;padding:8px 16px;display:flex}.hud__score{font-family:var(--font-display);color:var(--ink);font-size:1.5rem;font-weight:700;line-height:1.1}.challenges{position:relative}.challenge-chip{background:var(--surface);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);font-family:var(--font-display);color:var(--ink);box-shadow:var(--shadow-soft);cursor:pointer;border:none;border-radius:999px;align-items:center;gap:6px;padding:6px 14px 6px 10px;font-size:.85rem;font-weight:700;transition:transform .15s;animation:1.4s ease-in-out 2 chip-hint;display:flex}.challenge-chip:hover{transform:scale(1.05)}.challenge-chip:active{transform:scale(.96)}@keyframes chip-hint{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}.challenge-popover{background:var(--surface-strong);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:var(--radius-md);width:230px;box-shadow:var(--shadow-soft);flex-direction:column;gap:10px;padding:12px;animation:.18s popover-in;display:flex;position:absolute;top:calc(100% + 8px);left:0}@keyframes popover-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.challenge-row{color:var(--ink-soft);opacity:.75;grid-template-columns:20px 1fr auto;align-items:center;gap:8px;font-size:.78rem;transition:opacity .2s;display:grid}.challenge-row.is-complete{opacity:1;color:var(--ink)}.challenge-row__emoji{text-align:center;font-size:.95rem}.challenge-row__label{font-weight:600}.challenge-row__progress{font-family:var(--font-display);color:var(--ink-soft);white-space:nowrap;font-size:.72rem;font-weight:700}.challenge-row.is-complete .challenge-row__progress{color:var(--mint)}.hud__top-center{justify-content:center;display:flex}.combo-badge{opacity:0;background:linear-gradient(135deg, var(--sunshine), var(--coral));color:#fff;font-family:var(--font-display);border-radius:999px;padding:8px 20px;font-size:1.1rem;font-weight:700;transition:opacity .2s,transform .2s;transform:translateY(-6px)scale(.9);box-shadow:0 8px 20px #ff8fab66}.combo-badge.is-active{opacity:1;animation:.5s combo-pulse;transform:translateY(0)scale(1)}@keyframes combo-pulse{0%{transform:scale(1.25)}60%{transform:scale(.96)}to{transform:scale(1)}}.hud-btn{background:var(--surface-strong);width:42px;height:42px;box-shadow:var(--shadow-soft);cursor:pointer;border:none;border-radius:50%;font-size:1.1rem;transition:transform .15s}.hud-btn:hover{transform:scale(1.08)}.hud-btn:active{transform:scale(.94)}.joy-track{background:#fff6;border-radius:999px;grid-column:1/-1;justify-self:center;width:min(360px,70vw);height:8px;margin-top:10px;overflow:hidden;box-shadow:inset 0 1px 3px #0000001a}.joy-fill{background:linear-gradient(90deg, var(--mint), var(--sunshine), var(--coral));border-radius:999px;width:0%;height:100%;transition:width .2s ease-out;position:relative;overflow:hidden}.joy-fill:after{content:"";background:linear-gradient(100deg,#0000 20%,#ffffff8c 45%,#0000 70%) 0 0/200% 100%;animation:2.6s ease-in-out infinite joy-shimmer;position:absolute;inset:0}@keyframes joy-shimmer{0%{background-position:140% 0}to{background-position:-60% 0}}.message-toast{font-family:var(--font-display);color:var(--ink);text-shadow:0 2px 8px #ffffffb3;opacity:0;grid-column:1/-1;justify-self:center;min-height:1.4em;margin-top:18px;font-size:1.15rem;font-weight:700}.message-toast.toast-pop{animation:2.2s forwards toast-pop}@keyframes toast-pop{0%{opacity:0;transform:translateY(6px)scale(.9)}12%{opacity:1;transform:translateY(0)scale(1.06)}20%{transform:translateY(0)scale(1)}78%{opacity:1}to{opacity:0;transform:translateY(-8px)scale(.98)}}.instructions{text-align:center;background:var(--surface-strong);border-radius:var(--radius-md);box-shadow:var(--shadow-soft);grid-column:1/-1;place-self:end center;margin-bottom:6vh;padding:14px 26px;animation:.4s instructions-fade-in}@keyframes instructions-fade-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.instructions__main{font-family:var(--font-display);color:var(--ink);margin:0 0 4px;font-size:1.1rem;font-weight:700}.instructions__sub{color:var(--ink-soft);margin:0;font-size:.82rem}.pause-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#3c2e5059;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.pause-card{background:var(--surface-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);text-align:center;padding:32px 40px}.pause-card h2{font-family:var(--font-display);margin:0 0 6px}.pause-card p{color:var(--ink-soft);margin:0 0 18px}@media (width<=480px){.hud__score{font-size:1.2rem}.score-card{padding:6px 12px}.hud-btn{width:38px;height:38px;font-size:1rem}.instructions{margin-bottom:10vh;padding:10px 18px}.challenge-chip{padding:5px 12px 5px 9px;font-size:.78rem}.challenge-popover{width:min(210px,62vw)}}@media (prefers-reduced-motion:reduce){.joy-fill:after,.combo-badge.is-active,.challenge-chip,.challenge-popover{animation:none}}.results-screen{background:linear-gradient(160deg,#ffe3b0,#ffc2d6 50%,#c6b2ea);justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:relative;overflow:hidden}.results-backdrop{filter:blur(18px)saturate(1.15)brightness(1.05);background-position:50%;background-size:cover;position:absolute;inset:0;transform:scale(1.12)}.results-scrim{background:radial-gradient(120% 100% at 50% 20%,#ffffff26,#3c285059);position:absolute;inset:0}.results-card{z-index:1;background:var(--surface-strong);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:var(--radius-lg);text-align:center;width:calc(100% - 40px);max-width:420px;padding:36px 32px;animation:.5s cubic-bezier(.2,.8,.3,1) results-rise;position:relative;box-shadow:0 24px 60px #3c285059}@keyframes results-rise{0%{opacity:0;transform:translateY(24px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}.results-headline{font-family:var(--font-display);color:var(--ink);margin:0 0 6px;font-size:1.15rem;font-weight:700}.results-score{font-family:var(--font-display);background:linear-gradient(120deg, var(--coral), var(--sunshine));color:#0000;-webkit-background-clip:text;background-clip:text;margin-bottom:4px;font-size:clamp(2.6rem,12vw,3.6rem);font-weight:800;line-height:1}.results-best{color:var(--ink-soft);margin:0 0 18px;font-size:.9rem;font-weight:700}.results-stats{border-radius:var(--radius-md);background:#ffffff80;flex-wrap:wrap;justify-content:center;gap:16px 20px;margin:18px 0;padding:14px 10px;display:flex}.results-stats>div{flex-direction:column;gap:2px;display:flex}.results-stats strong{font-family:var(--font-display);color:var(--ink);font-size:1.2rem}.results-stats span{text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);font-size:.68rem}.results-stats__item{opacity:0;animation:.5s cubic-bezier(.16,1,.3,1) forwards stat-pop}@keyframes stat-pop{0%{opacity:0;transform:translateY(10px)scale(.9)}to{opacity:1;transform:translateY(0)scale(1)}}.results-achievement{background:linear-gradient(135deg, var(--mint), var(--sky));color:var(--ink);opacity:0;border-radius:999px;align-items:center;gap:8px;margin-bottom:22px;padding:10px 18px;font-size:.95rem;font-weight:700;animation:.55s cubic-bezier(.34,1.56,.64,1) forwards achievement-pop;display:inline-flex}@keyframes achievement-pop{0%{opacity:0;transform:scale(.7)}60%{transform:scale(1.06)}to{opacity:1;transform:scale(1)}}.results-achievement__emoji{font-size:1.2rem}.results-actions{flex-direction:column;align-items:center;gap:10px;display:flex}.share-button{color:var(--ink-soft);cursor:pointer;background:0 0;border:1.5px solid #3a2e4d40;border-radius:999px;padding:8px 18px;font-size:.82rem;transition:background .15s}@media (prefers-reduced-motion:reduce){.results-card,.results-stats__item,.results-achievement{opacity:1;animation:none}}.share-button:hover{background:#ffffff80}.calm-screen{text-align:center;background:radial-gradient(120% 100% at 50% 30%,#fff6e6,#f0e6f7 60%,#dfe9ee);flex-direction:column;justify-content:center;align-items:center;gap:10px;width:100%;height:100%;padding:24px;display:flex}.calm-spark{width:90px;height:90px;margin-bottom:18px;animation:3.6s ease-in-out infinite calm-float;position:relative}@keyframes calm-float{0%{transform:translateY(0)}50%{opacity:.15;transform:translateY(-70vh)}to{opacity:1;transform:translateY(0)}}.calm-spark__glow{background:radial-gradient(circle,#ffd16680,#ffd16600);border-radius:50%;position:absolute;inset:-24px}.calm-spark__body{background:radial-gradient(circle at 35% 30%,#fff1c9,#ffd166 55%,#f4a640 100%);border-radius:50%;position:absolute;inset:14px;box-shadow:0 8px 24px #f4a6404d}.calm-line{font-family:var(--font-display);color:var(--ink);margin:0;font-size:1.4rem;font-weight:700}.calm-sub{color:var(--ink-soft);max-width:320px;margin:0 0 22px}@media (prefers-reduced-motion:reduce){.calm-spark{animation:none}}
