@font-face{font-family:"Baloo Chettan 2";src:url(/fonts/BalooChettan2-Medium.ttf) format("truetype");font-weight:500;font-display:swap}@font-face{font-family:"Baloo Chettan 2";src:url(/fonts/BalooChettan2-SemiBold.ttf) format("truetype");font-weight:600;font-display:swap}@font-face{font-family:"Baloo Chettan 2";src:url(/fonts/BalooChettan2-Bold.ttf) format("truetype");font-weight:700;font-display:swap}@font-face{font-family:"Baloo Chettan 2";src:url(/fonts/BalooChettan2-ExtraBold.ttf) format("truetype");font-weight:800;font-display:swap}@font-face{font-family:Quicksand;src:url(/fonts/Quicksand-Medium.ttf) format("truetype");font-weight:500;font-display:swap}@font-face{font-family:Quicksand;src:url(/fonts/Quicksand-SemiBold.ttf) format("truetype");font-weight:600;font-display:swap}@font-face{font-family:Quicksand;src:url(/fonts/Quicksand-Bold.ttf) format("truetype");font-weight:700;font-display:swap}:root{--ink: #1a1a1a;--ink-soft: #5a5a5a;--ink-faint: #999999;--paper: #ffffff;--paper-shade: #ececec;--line: #d6d6d6;--accent: #0cb23a;--backdrop: #e7e4dd;--correct: #1f8a4c;--slip: #b07c2e;--gap: #c0392b;--radius: 8px;--pad-h: 220px;--font-display: "Baloo Chettan 2", ui-rounded, "SF Pro Rounded", system-ui, sans-serif;--font-label: "Quicksand", "Segoe UI", system-ui, sans-serif;font-family:var(--font-display)}*{box-sizing:border-box}html,body,#root{margin:0;height:100%}body{background:var(--backdrop);color:var(--ink);-webkit-font-smoothing:antialiased}.msg{display:grid;place-items:center;height:100%;color:var(--ink-soft);font-size:1.1rem}.app{display:flex;flex-direction:column;height:100%;margin:0 auto}.app--mobile{max-width:960px}.workspace{flex:1;display:flex;min-height:0}.app--wide .workspace{flex-direction:row}.app--mobile .workspace{flex-direction:column}.sidepad{display:flex;flex-direction:column;justify-content:center;gap:6px}.app--wide .sidepad{width:320px;flex-shrink:0;border-left:1px solid var(--line);background:#faf8f3;overflow:hidden}.app--mobile .sidepad{border-top:1px solid var(--line);background:var(--backdrop)}.progress{padding:14px 18px 8px}.progress__meta{display:flex;justify-content:space-between;align-items:baseline;font-size:.85rem;color:var(--ink-soft);margin-bottom:6px}.progress__title{font-weight:600;color:var(--ink)}.progress__count{font-variant-numeric:tabular-nums}.progress__track{height:5px;background:var(--line);border-radius:99px;overflow:hidden}.progress__fill{height:100%;background:var(--accent);border-radius:99px;transition:width .25s ease}.stage{flex:1;overflow-y:auto;padding:12px 18px;scroll-padding:80px}.app--wide .stage{padding:0;overflow:hidden;position:relative}.app--wide .pad{border-top:none;background:transparent}.camera-viewport{position:relative;width:100%;height:100%;overflow:hidden}.camera-canvas{position:absolute;top:0;left:0;width:680px;transform-origin:0 0;transition:transform .5s cubic-bezier(.22,.61,.36,1);will-change:transform}.camera-canvas .sheet{width:100%;max-width:none;margin:0}.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.sheet{background:#fff;width:100%;max-width:720px;margin:0 auto;padding:30px 34px 22px;border:1px solid #e2ded5;border-radius:4px;box-shadow:0 6px 26px #0000001a}.sheet__kicker{font-family:var(--font-label);font-weight:700;font-size:.72rem;letter-spacing:.22em;color:var(--ink-soft);margin-bottom:8px}.nl{display:block;width:100%;height:auto;margin:2px 0 16px}.nl__num{font-family:var(--font-display);font-size:22px;fill:var(--ink)}.nl__med{font-family:var(--font-display);font-size:18px;font-weight:700;fill:#fff;dominant-baseline:central}.nl__hop{font-family:var(--font-display);font-size:17px;font-weight:700;fill:var(--ink)}.badge{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--ink);color:#fff;border-radius:var(--radius);padding:9px 16px;margin-bottom:16px}.badge__name{font-family:var(--font-display);font-weight:700;font-size:1.15rem}.badge__meta{font-family:var(--font-label);font-weight:700;font-size:.72rem;letter-spacing:.08em}.sheet-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(14,auto);grid-auto-flow:column;gap:7px}.scell{display:flex;align-items:center;gap:.35em;border:1px solid var(--line);background:#fff;border-radius:var(--radius);padding:9px 14px;font-family:var(--font-display);font-size:1.1rem;color:var(--ink);cursor:default;text-align:left;transition:border-color .12s,background .12s,box-shadow .12s}.scell__eq{font-variant-numeric:tabular-nums;white-space:nowrap}.scell__ans{min-width:1.1em;font-weight:700;font-variant-numeric:tabular-nums}.scell--active{border-color:var(--ink);border-width:1.5px;background:var(--paper-shade);box-shadow:0 0 0 2px #1a1a1a1f}.scell--pending{border-style:dashed;border-color:var(--ink-faint, #c9c4bd);background:var(--paper-shade);opacity:.85}.scell--pending .scell__ans{color:var(--ink-faint, #b4aeae);letter-spacing:.05em;animation:pending-pulse 1.1s ease-in-out infinite}@keyframes pending-pulse{0%,to{opacity:.45}50%{opacity:.9}}.scell--correct{border-color:var(--correct)}.scell--correct .scell__ans{color:var(--correct)}.scell--slip{border-color:var(--slip)}.scell--slip .scell__ans{color:var(--slip)}.scell--gap{border-color:var(--gap);background:#fbeceb}.scell--gap .scell__ans{color:var(--gap)}.scell--nudge{animation:shake .32s ease}.sheet__pageno{display:flex;justify-content:center;margin-top:18px}.sheet__pageno span{display:grid;place-items:center;width:36px;height:36px;border:1.5px solid var(--ink);border-radius:50%;font-family:var(--font-label);font-weight:600;font-size:.95rem}.cell{display:flex;align-items:center;justify-content:center;gap:8px;border:1.5px solid var(--line);background:#fff;border-radius:var(--radius);font:inherit;color:var(--ink);cursor:default;transition:border-color .15s,background .15s,transform .1s}.cell--grid{padding:12px 10px;font-size:1.15rem}.cell--mobile{flex-direction:row;padding:40px 24px;font-size:2.4rem;width:100%}.cell__eq{font-variant-numeric:tabular-nums}.cell__box{min-width:1.8em;text-align:center;border-bottom:2.5px solid var(--ink-faint);font-weight:700;font-variant-numeric:tabular-nums}.cell--active{border-color:var(--accent);background:#f0f7fb;box-shadow:0 0 0 3px #2f6f8f26}.cell--active .cell__box{border-color:var(--accent);color:var(--accent)}.cell--correct{border-color:var(--correct);background:#eef6f0}.cell--correct .cell__box{border-color:var(--correct);color:var(--correct)}.cell--slip{border-color:var(--slip);background:#f8f2e6}.cell--slip .cell__box{border-color:var(--slip);color:var(--slip)}.cell--gap{border-color:var(--gap);background:#f9ecea}.cell--gap .cell__box{border-color:var(--gap);color:var(--gap)}.cell--nudge{animation:shake .32s ease}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}.runner{display:grid;place-items:center;min-height:100%}.stream{display:flex;justify-content:center}.lane{display:flex;flex-direction:column;gap:8px;width:100%;max-width:420px;padding:8px 0 40px}.lane__item{transition:opacity .2s ease}.lane__item--active{margin:6px 0}.cell--peek{width:100%;padding:14px 18px;font-size:1.25rem}.pad{border-top:1px solid var(--line);padding:12px 18px 16px;background:var(--paper)}.pad__keys{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;max-width:360px;margin:0 auto}.key{padding:16px 0;font:inherit;font-size:1.4rem;font-weight:600;border:1.5px solid var(--line);background:#fff;border-radius:10px;color:var(--ink);cursor:pointer;transition:transform .06s,background .1s}.key:active{transform:scale(.96);background:#f3eee2}.key--enter{background:var(--accent);border-color:var(--accent);color:#fff}.key--fn{color:var(--ink-soft)}.mic{display:flex;align-items:center;justify-content:center;width:100%;height:48px;margin:10px auto 0;padding:0 18px;border:1.5px solid var(--line);background:#fff;border-radius:99px;color:var(--ink-soft);cursor:pointer}.mic__icon{width:24px;height:24px;display:block}.mic--on{border-color:var(--gap);color:var(--gap)}.mic__wave{display:flex;align-items:center;gap:3px;height:24px}.mic__bar{width:3px;height:100%;border-radius:99px;background:currentColor;transform:scaleY(.3);transform-origin:center;animation:mic-bar .9s ease-in-out infinite}@keyframes mic-bar{0%,to{transform:scaleY(.3)}50%{transform:scaleY(1)}}.mic--warming{border-color:var(--line);color:var(--ink-soft)}.mic--warming .mic__bar{animation:none;transform:scaleY(.3)}.pagenav{display:flex;align-items:center;justify-content:space-between;padding:8px 18px 14px;font-size:.85rem;color:var(--ink-soft)}.pagenav button{font:inherit;background:none;border:none;color:var(--accent);cursor:pointer;padding:4px 8px}.pagenav button:disabled{color:var(--ink-faint);cursor:default}.end{display:grid;place-items:center;gap:18px;text-align:center;padding:24px}.end__title{margin:0;font-size:1.6rem}.end__stats{display:flex;gap:28px}.stat{display:flex;flex-direction:column}.stat__num{font-size:2rem;font-weight:700;font-variant-numeric:tabular-nums}.stat__label{font-size:.8rem;color:var(--ink-soft)}.end__breakdown{display:flex;gap:16px;font-size:.9rem;color:var(--ink-soft)}.spark{display:grid;place-items:center;gap:4px}.spark__line{stroke:var(--accent);stroke-width:2}.spark__dot{fill:var(--ink-faint)}.spark__dot--last{fill:var(--accent)}.spark__caption{font-size:.8rem;color:var(--ink-soft)}.end__actions{display:flex;gap:12px}.btn{font:inherit;padding:12px 22px;border:1.5px solid var(--line);background:#fff;border-radius:99px;cursor:pointer;color:var(--ink)}.btn--primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.app--mobile .stage{padding:0;overflow:hidden;position:relative}@media (max-width: 720px){.grid{grid-template-columns:repeat(2,1fr)}}
