:root{--sky:#eaf2fa;--card:#fff;--ink:#1d2a44;--muted:#5c6a85;--saffron:#f2a93b;--saffron-deep:#c97f12;--teal:#2e9c8f;--teal-deep:#1f7066;--coral:#d9573f;--good-bg:#ddf3ef;--bad-bg:#fce3de;--sel-bg:#e2f3f0;--locked:#cbd5e3;--locked-deep:#a7b4c7;--skin:#f6c9a0;--beard:#fff;--beard-shade:#dde4ee;--cheek:#f39a8b;--ruby:#e0465b;--ruby-deep:#a82a3d;--scrim:#111a2c8c;--on-teal:#fff;--on-saffron:#2a1b04;--shammai:#7e57c2;--line:#d9e3ef;--display:"Fredoka", "Baloo 2", "Arial Rounded MT Bold", system-ui, sans-serif;--body:"Nunito", "Segoe UI", system-ui, sans-serif}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--sky:#111a2c;--card:#1b2740;--ink:#eef3fa;--muted:#a3b1c8;--saffron:#f5b652;--saffron-deep:#b9760f;--teal:#3bb3a4;--teal-deep:#217a6f;--coral:#f07a69;--good-bg:#173b3a;--bad-bg:#44241f;--sel-bg:#1d3b42;--locked:#2d3b57;--locked-deep:#22304a;--beard:#f4f7fb;--beard-shade:#c9d3e2;--line:#2a3854;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--sky:#111a2c;--card:#1b2740;--ink:#eef3fa;--muted:#a3b1c8;--saffron:#f5b652;--saffron-deep:#b9760f;--teal:#3bb3a4;--teal-deep:#217a6f;--coral:#f07a69;--good-bg:#173b3a;--bad-bg:#44241f;--sel-bg:#1d3b42;--locked:#2d3b57;--locked-deep:#22304a;--beard:#f4f7fb;--beard-shade:#c9d3e2;--line:#2a3854;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html,body{height:100%}body{background:var(--sky);color:var(--ink);font-family:var(--body);font-size:16px;line-height:1.5}button{font:inherit;color:inherit}.sr{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.app{max-width:460px;min-height:100%;padding-left:max(16px, env(safe-area-inset-left,0px));padding-right:max(16px, env(safe-area-inset-right,0px));flex-direction:column;gap:20px;margin:0 auto;padding-block:16px 20px;display:flex}.topbar{justify-content:space-between;align-items:center;gap:12px;display:flex}.brand{font-family:var(--display);font-size:1.35rem;font-weight:700}.brand span{color:var(--teal)}.brandBtn{cursor:pointer;text-align:left;background:0 0;border:0;padding:0}.topbar .ghost{align-self:center;font-size:.85rem}.stats{gap:8px;display:flex}.chip{background:var(--card);border:2px solid var(--line);font-variant-numeric:tabular-nums;white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:3px 11px;font-size:.88rem;font-weight:800;display:inline-flex}.chip svg{width:16px;height:16px}.back{background:var(--card);border:2px solid var(--line);cursor:pointer;border-radius:12px;flex:none;place-items:center;width:40px;height:40px;display:grid}.back svg{width:20px;height:20px}:focus-visible{outline:3px solid var(--teal);outline-offset:3px}.greet{align-items:flex-end;gap:8px;display:flex}.hero{transform-origin:50% 100%;flex:none;width:120px;animation:3.2s ease-in-out infinite bob}.mini{flex:none;width:46px}.big{width:150px}.bubble{background:var(--card);border:2px solid var(--line);border-radius:18px;min-width:0;margin-bottom:56px;padding:12px 14px;font-weight:700;position:relative}.bubble:before{content:"";background:var(--card);border-left:2px solid var(--line);border-bottom:2px solid var(--line);width:14px;height:14px;position:absolute;bottom:18px;left:-9px;transform:rotate(45deg)}.bubble small{color:var(--muted);margin-top:4px;font-size:.85rem;font-weight:600;display:block}.welcome{flex-direction:column;flex:1;gap:16px;display:flex}.wHero{flex-direction:column;align-items:center;gap:12px;padding-top:8px;display:flex}.bubble.down{font-family:var(--display);text-align:center;margin:0;font-size:1.35rem;font-weight:600}.bubble.down:before{margin-left:-7px;bottom:-9px;left:50%;transform:rotate(-45deg)}.chapter{background:var(--card);border:2px solid var(--line);border-radius:18px;overflow:hidden}.wScene{background:var(--sel-bg);width:100%;height:auto;display:block}.sLbl{font:700 9px var(--body);fill:var(--muted)}.ct{padding:12px 14px 14px}.ct h3{font-family:var(--display);margin:0 0 4px;font-size:1.18rem;font-weight:600}.ct p{margin:0;font-weight:600}.s1-star,.s2-left,.s2-right,.s2-heart,.s2-spark,.s3-b1,.s3-b2,.s3-cloud,.s3-bulb,.s3-rays,.s4-leaf,.s4-sun,.s4-friends{transform-box:fill-box;transform-origin:50%}.s1-walker{transform-box:view-box;transform-origin:0 0;transform:translate(110px)}.play .s1-walker{animation:2.6s ease-in-out both walk}.play .s1-star{animation:.5s cubic-bezier(.3,1.6,.6,1) 2.5s both popIn}.play .s2-left{animation:.9s both fromLeft}.play .s2-right{animation:.9s both fromRight}.play .s2-heart{animation:.6s cubic-bezier(.3,1.6,.6,1) .9s both popIn,1.4s ease-in-out 1.6s 2 beat}.play .s2-spark{animation:.4s 1.4s both fadeIn}.play .s3-b1{animation:.3s .2s both popIn}.play .s3-b2{animation:.3s .4s both popIn}.play .s3-cloud{animation:.45s cubic-bezier(.3,1.6,.6,1) .6s both popIn}.s3-tangle{stroke-dasharray:260;opacity:0}.play .s3-tangle{animation:1s 1s both draw,.35s 2.2s both fadeOut}.play .s3-bulb{animation:.5s cubic-bezier(.3,1.6,.6,1) 2.4s both popIn}.play .s3-rays{animation:.4s 2.9s both fadeIn}.s4-trunk{stroke-dasharray:120}.play .s4-trunk{animation:.9s both draw4}.play .s4-leaf{animation:popIn .45s cubic-bezier(.3,1.6,.6,1) var(--d) both}.play .s4-sun{animation:1.2s both rise}.play .s4-friends{animation:.7s cubic-bezier(.3,1.4,.6,1) 2.1s both rise}@keyframes walk{0%{transform:translate(0)}12%{transform:translate(15px,-12px)}25%{transform:translate(30px,-22px)}37%{transform:translate(45px,-30px)}50%{transform:translate(60px,-32px)}62%{transform:translate(74px,-30px)}75%{transform:translate(88px,-22px)}88%{transform:translate(97px,-12px)}to{transform:translate(110px)}}@keyframes popIn{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}@keyframes beat{50%{transform:scale(1.15)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fromLeft{0%{opacity:0;transform:translate(-24px)}to{opacity:1;transform:none}}@keyframes fromRight{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:none}}@keyframes draw{0%{stroke-dashoffset:260px;opacity:1}to{stroke-dashoffset:0;opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes dim{0%{opacity:1}to{opacity:.35}}@keyframes draw4{0%{stroke-dashoffset:120px}to{stroke-dashoffset:0}}@keyframes lightUp{0%{fill:var(--locked)}to{fill:var(--saffron)}}@keyframes rise{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.play .wScene *{animation:none!important}}.sectionLabel{text-transform:uppercase;letter-spacing:.09em;color:var(--muted);margin:0 0 -8px;font-size:.75rem;font-weight:800}.skills{flex-direction:column;gap:12px;display:flex}.skill{text-align:left;background:var(--card);border:2px solid var(--line);width:100%;box-shadow:0 4px 0 var(--line);cursor:pointer;border-radius:18px;align-items:center;gap:14px;padding:14px;display:flex}.skill.open{border-color:var(--teal);box-shadow:0 4px 0 var(--teal-deep)}.skill.open:active{box-shadow:0 1px 0 var(--teal-deep);transform:translateY(3px)}.skill.soon{cursor:default}.skill.soon .txt{opacity:.65}.emblem{background:var(--teal);border-radius:16px;flex:none;place-items:center;width:54px;height:54px;display:grid}.skill.soon .emblem{background:var(--locked)}.emblem svg{width:28px;height:28px}.txt{flex-direction:column;gap:1px;min-width:0;display:flex}.txt b{font-family:var(--display);font-size:1.08rem;font-weight:600;line-height:1.2}.txt i{color:var(--muted);font-size:.85rem}.txt span{color:var(--muted);font-size:.85rem;font-weight:700}.mbar{background:var(--line);border-radius:99px;height:8px;margin-top:6px;overflow:hidden}.mbar i{background:var(--saffron);border-radius:99px;height:100%;display:block}.demoBtn{border:2px dashed var(--line);color:var(--muted);cursor:pointer;background:0 0;border-radius:999px;align-self:center;padding:6px 14px;font-size:.85rem;font-weight:800}.about{background:var(--card);border:2px solid var(--line);border-radius:16px;flex-direction:column;gap:10px;padding:16px;display:flex}.about h3{font-family:var(--display);margin:0;font-size:1.15rem;font-weight:600}.about h4{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:4px 0 0;font-size:.75rem}.about p,.about ul{margin:0}.about ul{flex-direction:column;gap:3px;padding-left:20px;display:flex}.ghost{background:var(--sky);border:2px solid var(--line);cursor:pointer;border-radius:10px;align-self:flex-start;padding:6px 12px;font-weight:800}.jhead{align-items:center;gap:12px;display:flex}.jhead .brand{flex:1}.unit{background:var(--teal);color:var(--on-teal);box-shadow:0 4px 0 var(--teal-deep);border-radius:16px;padding:14px 16px}.unit .eyebrow{color:var(--on-teal);opacity:.85}.unit h2{font-family:var(--display);text-wrap:balance;margin:2px 0;font-size:1.3rem;font-weight:600;line-height:1.2}.unit p{opacity:.92;margin:0;font-size:.92rem;font-weight:700}.path{flex-direction:column;align-items:center;gap:24px;padding-block:6px;display:flex}.stop{flex-direction:column;align-items:center;gap:8px;display:flex}.node{cursor:pointer;background:var(--saffron);width:76px;height:70px;box-shadow:0 7px 0 var(--saffron-deep);border:0;border-radius:50%;place-items:center;transition:transform .12s,box-shadow .12s;display:grid}.node svg{width:32px;height:32px}.node:active{box-shadow:0 2px 0 var(--saffron-deep);transform:translateY(5px)}.node.done{background:var(--teal);box-shadow:0 7px 0 var(--teal-deep)}.node.done:active{box-shadow:0 2px 0 var(--teal-deep)}.node.locked,.node.soon{background:var(--locked);box-shadow:0 7px 0 var(--locked-deep)}.node.locked:active,.node.soon:active{box-shadow:0 7px 0 var(--locked-deep);transform:none}.node.soon{opacity:.6}.node.current{animation:2s ease-in-out infinite pulse}.label{text-align:center;max-width:190px}.label b{font-family:var(--display);font-size:1rem;font-weight:600;line-height:1.2;display:block}.label span{color:var(--muted);font-size:.83rem;font-weight:700}.stop.soonStop .label{opacity:.6}.divider{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;align-items:center;gap:10px;width:100%;font-size:.75rem;font-weight:800;display:flex}.divider:before,.divider:after{content:"";background:var(--line);flex:1;height:2px}.toast{text-align:center;color:var(--muted);min-height:1.4em;margin:0;font-size:.9rem;font-weight:700}.cta{cursor:pointer;width:100%;font-family:var(--display);letter-spacing:.04em;text-transform:uppercase;background:var(--saffron);color:var(--on-saffron);box-shadow:0 5px 0 var(--saffron-deep);border:0;border-radius:16px;padding:15px;font-size:1.12rem;font-weight:600}.cta:active{box-shadow:0 1px 0 var(--saffron-deep);transform:translateY(4px)}.cta:disabled{background:var(--locked);color:var(--muted);box-shadow:0 5px 0 var(--locked-deep);cursor:default;transform:none}.stickyCta{bottom:calc(12px + env(safe-area-inset-bottom,0px));margin-top:auto;position:sticky}.lesson{flex-direction:column;flex:1;gap:8px;display:flex}.lessonTop{align-items:center;gap:12px;display:flex}.x{cursor:pointer;width:36px;height:36px;color:var(--muted);background:0 0;border:0;place-items:center;display:grid}.x svg{width:22px;height:22px}.x:disabled{opacity:.3;cursor:default}.bar{background:var(--line);border-radius:99px;flex:1;height:14px;overflow:hidden}.bar i{background:var(--teal);border-radius:99px;width:0;height:100%;transition:width .35s;display:block}.stepTag{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.78rem;font-weight:800}.stepBody{flex:1;padding-block:8px 12px;animation:.25s slide}.eyebrow{text-transform:uppercase;letter-spacing:.09em;color:var(--teal);font-size:.75rem;font-weight:800}.q h2,.teach h2{font-family:var(--display);text-wrap:balance;margin:6px 0 14px;font-size:1.38rem;font-weight:600;line-height:1.25}.teach p{max-width:65ch;margin:0 0 14px}.teachHead{align-items:center;gap:10px;display:flex}.toolBadge{background:var(--saffron);color:var(--on-saffron);letter-spacing:.04em;border-radius:8px;padding:2px 8px;font-size:.78rem;font-weight:800}.quote{font-family:var(--display);background:var(--card);border:2px solid var(--line);border-radius:16px;margin:0 0 14px;padding:14px 16px;font-size:1.15rem;font-weight:500;line-height:1.35}.quote cite{font-family:var(--body);color:var(--muted);margin-top:6px;font-size:.82rem;font-style:normal;font-weight:800;display:block}.compare{gap:8px;display:grid}.cmp{border:2px solid var(--line);background:var(--card);border-radius:12px;padding:10px 12px;font-weight:700}.cmp span{text-transform:uppercase;letter-spacing:.08em;font-size:.72rem;display:block}.cmp.o{border-color:var(--teal)}.cmp.o span{color:var(--teal)}.cmp.j span{color:var(--coral)}.scene{background:var(--sel-bg);border-radius:14px;margin:8px 0 0;padding:12px 14px;font-weight:700}.opts{flex-direction:column;gap:10px;display:flex}.opt{text-align:left;background:var(--card);border:2px solid var(--line);box-shadow:0 3px 0 var(--line);cursor:pointer;border-radius:14px;width:100%;padding:12px 14px;font-weight:700}.opt.sel{border-color:var(--teal);background:var(--sel-bg);box-shadow:0 3px 0 var(--teal)}.opt.right{border-color:var(--teal);background:var(--good-bg);box-shadow:0 3px 0 var(--teal)}.opt.wrong{border-color:var(--coral);background:var(--bad-bg);box-shadow:0 3px 0 var(--coral)}.opt:disabled{cursor:default}.scale{grid-template-columns:repeat(5,1fr);gap:8px;display:grid}.scale .opt{text-align:center;font-family:var(--display);padding:10px 0;font-size:1.25rem}.scaleLbl{color:var(--muted);justify-content:space-between;margin-top:6px;font-size:.82rem;font-weight:700;display:flex}.yn{grid-template-columns:1fr 1fr;gap:10px;display:grid}.yn3{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.yn .opt,.yn3 .opt{text-align:center}.rank{flex-direction:column;gap:8px;display:flex}.rankItem{text-align:left;background:var(--card);border:2px solid var(--line);width:100%;box-shadow:0 3px 0 var(--line);cursor:pointer;border-radius:14px;align-items:center;gap:12px;padding:8px 12px;display:flex}.rankItem.on{border-color:var(--teal);background:var(--sel-bg);box-shadow:0 3px 0 var(--teal)}.rankNum{border:2px dashed var(--line);width:28px;height:28px;font-family:var(--display);border-radius:50%;flex:none;place-items:center;font-weight:600;display:grid}.rankItem.on .rankNum{background:var(--teal);border:2px solid var(--teal);color:var(--on-teal)}.emblem.sm{background:var(--locked);border-radius:10px;width:36px;height:36px}.emblem.sm svg{width:20px;height:20px}.rankItem .txt b{font-size:.98rem}.share{flex-direction:column;gap:4px;display:flex}.shareRow{gap:8px;display:flex}.shareRow input{min-width:0;font:inherit;color:var(--ink);background:var(--card);border:2px solid var(--line);border-radius:12px;flex:1;padding:9px 12px}.shareRow input:focus{border-color:var(--teal);outline:none}.shareRow .ghost{flex:none}.form{flex-direction:column;gap:6px;display:flex}.form input{font:inherit;color:var(--ink);background:var(--card);border:2px solid var(--line);border-radius:12px;padding:11px 12px}.form input:focus{border-color:var(--teal);outline:none}.form .qlabel{margin:10px 0 0}.formNote{color:var(--muted);margin:6px 0 0;font-size:.88rem;font-weight:600}.err{color:var(--coral);margin:0;font-weight:700}.err:empty{display:none}.form .cta{margin-top:12px}.share .hint{margin:2px 0 0;font-size:.88rem}.share .hint:empty{display:none}.yn .opt{text-align:center}.qlabel{margin:18px 0 8px;font-weight:800;display:block}.sorts{flex-direction:column;gap:10px;display:flex}.sortRow{background:var(--card);border:2px solid var(--line);border-radius:14px;flex-direction:column;gap:10px;padding:12px;display:flex}.sortRow p{margin:0;font-weight:700}.seg{grid-template-columns:1fr 1fr;gap:8px;display:grid}.segBtn{border:2px solid var(--line);background:var(--sky);cursor:pointer;border-radius:10px;padding:7px;font-size:.86rem;font-weight:800}.segBtn.sel{border-color:var(--teal);background:var(--sel-bg)}.segBtn:disabled{cursor:default}.sortRow.right{border-color:var(--teal)}.cGroup{flex-direction:column;gap:8px;margin-top:14px;display:flex}.cq{font-family:var(--display);margin:0;font-size:1.12rem;font-weight:600;line-height:1.3}.sortRow p.sortNote{color:var(--ink);background:var(--bad-bg);border-radius:10px;padding:8px 10px;font-size:.92rem;font-weight:600}.sortRow.wrong{border-color:var(--coral)}.sortRow.wrong .segBtn.sel{border-color:var(--coral);background:var(--bad-bg)}.sortRow.wrong .segBtn.ans{border-color:var(--teal);background:var(--good-bg)}.line{border-bottom:2px solid var(--line);flex-wrap:wrap;align-content:flex-start;gap:8px;min-height:104px;padding-block:10px;display:flex}.line.right{border-color:var(--teal)}.line.wrong{border-color:var(--coral)}.bank{flex-wrap:wrap;gap:8px;margin-top:18px;display:flex}.chunk{background:var(--card);border:2px solid var(--line);box-shadow:0 3px 0 var(--line);cursor:pointer;text-align:left;border-radius:12px;padding:7px 12px;font-weight:700}.chunk.used{background:var(--line);color:#0000;box-shadow:none;cursor:default}.hint{color:var(--muted);font-weight:700}.slot{border:2px dashed var(--line);color:var(--muted);border-radius:12px;padding:7px 12px;font-size:.9rem;font-weight:700}.slot.next{border-color:var(--teal);color:var(--teal)}.chat{flex-direction:column;gap:10px;margin-block:14px;display:flex}.msg{align-items:flex-end;gap:8px;animation:.25s slide;display:flex}.msg.me{justify-content:flex-end}.av{flex:none;width:40px}.say{background:var(--card);border:2px solid var(--line);border-radius:16px;min-width:0;max-width:82%;padding:9px 12px;font-weight:600}.say b{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:.72rem;display:block}.msg.me .say{background:var(--teal);border-color:var(--teal);color:var(--on-teal)}textarea{box-sizing:border-box;width:100%;font:inherit;color:var(--ink);background:var(--card);border:2px solid var(--line);resize:vertical;border-radius:14px;padding:12px}textarea:focus{border-color:var(--teal);outline:none}.sheet{padding-block:14px calc(14px + env(safe-area-inset-bottom,0px));background:var(--sky);border-top:2px solid var(--line);box-shadow:0 0 0 100vmax var(--sky);clip-path:inset(0 -100vmax);flex-direction:column;gap:10px;display:flex;position:sticky;bottom:0}.sheet.good{background:var(--good-bg);box-shadow:0 0 0 100vmax var(--good-bg);border-color:var(--teal)}.sheet.bad{background:var(--bad-bg);box-shadow:0 0 0 100vmax var(--bad-bg);border-color:var(--coral)}.fb{margin:0;font-weight:700}.fb:empty{display:none}.fb b{font-family:var(--display);font-size:1.15rem;font-weight:600;display:block}.sheet.good .fb b{color:var(--teal)}.sheet.bad .fb b{color:var(--coral)}.debate{background:var(--card);border:2px solid var(--line);border-radius:18px;grid-template-columns:1fr 1fr;gap:10px;margin:0 0 14px;padding:14px 12px 12px;display:grid;position:relative;overflow:hidden}.dCol{flex-direction:column;align-items:center;gap:6px;min-width:0;display:flex}.dBub{background:var(--sky);border:2px solid var(--line);text-align:center;opacity:0;border-radius:14px;min-height:4.2em;padding:8px 10px;font-size:.86rem;font-weight:700;line-height:1.3;animation:.45s forwards bubIn;position:relative;transform:translateY(6px)scale(.95)}.sh .dBub{border-color:var(--shammai);animation-delay:.4s}.hi .dBub{border-color:var(--teal);animation-delay:2s}.dFig{width:96px;display:block}.dCol .dBub{flex:1;place-items:center;display:grid}.dSvg{width:100%;display:block}.sh .dFig{transform:scaleX(-1)}.sh .dSvg{transform-origin:50% 100%;animation:.5s ease-in-out .4s 3 alternate talk}.hi .dSvg{transform-origin:50% 100%;animation:.5s ease-in-out 2s 3 alternate talk}.dName{font-family:var(--display);font-size:.95rem;font-weight:600}.dVoice{text-align:center;font-family:var(--display);color:var(--saffron-deep);background:var(--sel-bg);opacity:0;border-radius:12px;grid-column:1/-1;padding:8px;font-weight:600;animation:.6s 3.6s forwards bubIn}.hearts{pointer-events:none;width:0;height:0;position:absolute;top:52%;left:50%}.hearts span{opacity:0;width:20px;height:20px;animation:3.2s ease-out infinite floatUp;animation-delay:calc(3.6s + var(--d));margin-left:-10px;position:absolute}.hearts svg{width:100%;height:100%;display:block}.tear{transform-box:fill-box;animation:2.6s ease-in 1.2s infinite tear}@keyframes tear{0%{opacity:0;transform:translateY(-2px)}20%{opacity:1}80%{opacity:1;transform:translateY(10px)}to{opacity:0;transform:translateY(12px)}}@keyframes bubIn{to{opacity:1;transform:none}}@keyframes talk{0%{transform:rotate(0)}to{transform:rotate(-5deg)translateY(-3px)}}@keyframes floatUp{0%{opacity:0;transform:translate(0)scale(.6)}20%{opacity:1}to{opacity:0;transform:translate(var(--x), -90px) scale(1.1)}}@media (prefers-reduced-motion:reduce){.tear{animation:none}.dBub,.dVoice{opacity:1;animation:none;transform:none}.dSvg,.hearts span{animation:none}}.rubyIco{vertical-align:-3px;width:16px;height:16px;display:inline-block}.rubyChip{font:inherit;color:var(--ink);cursor:pointer;gap:4px;font-size:.88rem;font-weight:800}.bigRuby .rubyIco{width:56px;height:56px}.mCount{color:var(--muted);margin:0;font-weight:700}.rubyChip.bump{animation:.45s bump}.topRight{align-items:center;gap:8px;display:flex}.lessonTop .rubyChip{padding:2px 9px}.gain{color:var(--ruby-deep);align-items:center;gap:3px;margin-left:6px;font-size:.95rem;animation:.45s pop;display:inline-flex}.tileRuby{align-items:center;gap:4px;display:inline-flex}.tileRuby .rubyIco{width:20px;height:20px}.rubyNote{color:var(--muted);max-width:34ch;margin:-6px 0 0;font-size:.85rem;font-weight:700}.modalBack{z-index:50;background:var(--scrim);padding:16px max(16px, env(safe-area-inset-right,0px)) 16px max(16px, env(safe-area-inset-left,0px));place-items:center;animation:.2s fadeIn;display:grid;position:fixed;inset:0}.modalCard{background:var(--card);color:var(--ink);text-align:center;border-radius:22px;flex-direction:column;align-items:center;gap:10px;width:min(340px,100%);padding:22px 20px;animation:.4s pop;display:flex}.modalCard h2{font-family:var(--display);text-wrap:balance;margin:0;font-size:1.4rem;font-weight:600}.modalCard .eyebrow{color:var(--ruby-deep);margin:0}.mHow{margin:0;font-weight:700}.mStory{color:var(--muted);margin:0;font-style:italic;font-weight:600}.modalCard .cta{margin-top:8px}@keyframes bump{50%{transform:scale(1.15)}}@media (prefers-reduced-motion:reduce){.rubyChip.bump,.gain,.modalCard{animation:none}}.done{text-align:center;flex-direction:column;flex:1;align-items:center;gap:14px;padding-block:28px 8px;display:flex}.done h1{font-family:var(--display);text-wrap:balance;margin:0;font-size:2rem;font-weight:700;line-height:1.15}.lead{color:var(--muted);max-width:34ch;margin:0;font-weight:700}.pop{animation:.6s pop}.tiles{grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:10px;width:100%;margin-block:8px;display:grid}.tile{border:2px solid var(--line);background:var(--card);border-radius:14px;padding:10px}.tile span{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-size:.7rem;font-weight:800;display:block}.tile b{font-family:var(--display);color:var(--saffron-deep);font-variant-numeric:tabular-nums;font-size:1.45rem;font-weight:600}.done .cta{margin-top:auto}.demoLine{color:var(--muted);margin:0;font-size:.82rem}.draft{color:var(--muted);text-align:center;margin:0;font-size:.78rem}@keyframes bob{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(-5px)rotate(-1.5deg)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}@keyframes blink{0%,92%,to{transform:scaleY(1)}95%{transform:scaleY(.1)}}@keyframes slide{0%{opacity:.4;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes pop{0%{transform:scale(.6)}70%{transform:scale(1.08)}to{transform:scale(1)}}.eye{transform-box:fill-box;transform-origin:50%;animation:4.5s infinite blink}@media (prefers-reduced-motion:reduce){.hero,.node.current,.eye,.stepBody,.msg,.pop{animation:none}.bar i{transition:none}}@media (width<=899px){.hero,.node.current,.eye,.tear,.hearts span{animation-iteration-count:3}}:root{--bg:var(--sky);--surface:var(--card);--field:var(--card);--field-line:var(--muted);--ink-2:var(--muted);--ink-strong:#34446a;--accent:var(--teal-deep);--accent-strong:var(--teal-deep);--accent-soft:var(--sel-bg);--on-accent:var(--on-teal);--sand:var(--saffron);--verdict-best:var(--teal-deep);--verdict-ok:var(--saffron-deep);--verdict-miss:var(--coral);--error:#b42318;--ink-hover:color-mix(in srgb, var(--ink) 6%, transparent);--error-hover:color-mix(in srgb, var(--error) 8%, transparent);--radius:10px;--radius-field:10px;--radius-pill:999px;--shadow:0 20px 40px -20px color-mix(in srgb, var(--ink) 25%, transparent);--ease:cubic-bezier(.2, .7, .2, 1);--pop:cubic-bezier(.3, 1.45, .5, 1);--dur:.18s;--dur-press:90ms;--dur-step:.6s;--dur-feedback:.6s}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--ink-strong:#c9d3e2;--error:#f07a69}}:root[data-theme=dark]{--ink-strong:#c9d3e2;--error:#f07a69}*{box-sizing:border-box}body{margin:0}h1,h2,h3{font-family:var(--display);margin:0}[tabindex="-1"]:focus{outline:none}main:has(>.app){max-width:none;height:100%;padding:0}.top,main{max-width:1120px;margin:0 auto;padding-inline:20px}.top{justify-content:space-between;align-items:center;gap:12px;padding-block:24px;display:flex}a.brand{color:var(--ink);text-decoration:none}main{padding-bottom:72px}.box{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.field{margin-bottom:16px;display:block}.field span{margin-bottom:6px;font-size:.9375rem;font-weight:600;display:block}.field input,.field select{width:100%;min-height:50px;font:inherit;color:var(--ink);background:var(--field);border:1px solid var(--field-line);border-radius:var(--radius-field);padding:0 14px}button:where(:not(.app *)){border-radius:var(--radius-field);cursor:pointer;min-height:56px;font:inherit;font-family:var(--display);color:var(--on-accent);background:var(--accent);transition:transform var(--dur-press) var(--ease);border:0;padding:0 24px;font-size:1.0625rem;font-weight:700}button:where(:not(.app *)):hover,button:where(:not(.app *)):active{background:var(--accent-strong)}button:where(:not(.app *)):active{transform:scale(.98)}button:where(:not(.app *)):disabled{cursor:default;opacity:.7;transform:none}button[aria-busy=true]:disabled,[aria-busy=true] button:disabled{cursor:progress}button.link{min-height:44px;color:var(--ink);text-underline-offset:4px;background:0 0;padding:0;font-size:1rem;font-weight:600;text-decoration:underline;text-decoration-thickness:1.5px}button.link:hover,button.link:active{background:0 0;text-decoration-thickness:2.5px}button.link:disabled:hover{text-decoration-thickness:1.5px}.error{color:var(--error);margin:14px 0 0;font-size:.9375rem}.solo{--heading:clamp(2rem, 1.4rem + 2.4vw, 2.75rem);max-width:560px;box-shadow:var(--shadow);margin:40px auto 0;padding:32px}.solo h1{font-size:var(--heading);margin-bottom:16px;line-height:1.05}.solo p{color:var(--ink-2);margin:0 0 16px}.solo .error{color:var(--error);margin:14px 0 0}.solo>:last-child{margin-bottom:0}.team-note{border-radius:var(--radius-field);background:var(--surface);max-width:560px;box-shadow:inset 0 0 0 1px var(--line), inset 4px 0 0 var(--accent);margin:24px auto 0;padding:10px 16px 10px 20px;font-size:.9375rem;line-height:1.4}.team-note+.solo{margin-top:16px}.skeleton{background:var(--line);border-radius:8px;display:block}.skeleton.title{width:75%;height:calc(1.05 * var(--heading));margin-bottom:16px}.skeleton.line{border:0;width:90%;height:1lh;min-height:0;padding:0;display:block}.metrics h1,.panel h1{margin-bottom:20px;font-size:clamp(1.625rem,1.25rem + 1.6vw,2.125rem)}.panel h2,.metrics h2{margin-bottom:12px;font-size:1.1875rem}.panel .note,.metrics section>.note{margin-bottom:12px}.metrics h2{margin-top:32px}.loading-head{flex-wrap:wrap;align-items:baseline;column-gap:16px;margin-bottom:20px;display:flex}.loading-head h1{margin-bottom:0}.tabs{box-shadow:inset 0 -1px var(--line);gap:4px;margin-bottom:24px;display:flex;overflow-x:auto}.tabs a{min-height:44px;color:var(--ink-2);border-bottom:3px solid #0000;flex:none;align-items:center;padding:0 14px;font-weight:600;text-decoration:none;display:inline-flex}.tabs a:focus-visible{outline-offset:-2px}.tabs a:hover,.tabs a[aria-current]{color:var(--ink)}.tabs a[aria-current]{border-bottom-color:var(--ink)}.metric-cards{gap:8px;margin:0 0 16px;padding:0;list-style:none;display:grid}.metric-cards li{flex-direction:column;gap:4px;padding:16px;display:flex}.metric-cards h2{margin:0;font-size:.9375rem}.metric-cards p{color:var(--ink-2);margin:0;font-size:.875rem}.metric-cards .metric-rate{color:var(--ink);font-size:2.25rem;font-weight:800;line-height:1.1}.metric-cards .note{margin-top:auto;padding-top:8px;font-size:.8125rem}.metric-cards .skeleton:first-child{width:6rem;height:1.2rem}.metric-cards .skeleton:last-child{width:4rem;height:2.5rem}.metrics>.eyebrow{margin-bottom:4px}.metrics>.note{margin:0 0 16px}@media (width>=480px){.metric-cards{grid-template-columns:repeat(2,1fr)}}@media (width>=960px){.metric-cards{grid-template-columns:repeat(4,1fr)}}.metrics .stats{gap:8px;margin:0;padding:0;list-style:none;display:grid}.metrics .stats li{color:var(--ink-2);align-items:baseline;gap:12px;padding:12px 16px;font-size:.875rem;line-height:1.35;display:flex}.metrics .stats b{min-width:2.5ch;color:var(--ink);flex:none;font-size:2rem;font-weight:800;line-height:1.1}.metrics .stats .skeleton:first-child{width:3rem;height:2.2rem}.metrics .stats .skeleton:last-child{width:8rem;height:1.2rem}:is(.panel,.team) button:not(.link,.expand){background:var(--ink);min-height:36px;color:var(--surface);padding:0 16px;font-size:.875rem;font-weight:500}:is(.panel,.team) button:not(.link,.expand):hover,:is(.panel,.team) button:not(.link,.expand):active{background:var(--ink-strong)}@media (pointer:coarse){:is(.panel,.team) button:not(.link,.expand){min-height:44px}}.panel button.quiet{color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--ink);background:0 0}.panel button.quiet:hover,.panel button.quiet:active{background:var(--ink-hover)}.panel button.danger{color:var(--error);box-shadow:inset 0 0 0 1.5px var(--error);background:0 0}.panel button.danger:hover,.panel button.danger:active{background:var(--error-hover)}.panel a.quiet{border-radius:var(--radius-pill);min-height:36px;box-shadow:inset 0 0 0 1.5px var(--ink);color:var(--ink);transition:background-color var(--dur) var(--ease);justify-content:center;align-items:center;padding:0 16px;font-size:.875rem;font-weight:500;text-decoration:none;display:inline-flex}.panel a.quiet:hover{background:var(--ink-hover)}@media (pointer:coarse){.panel a.quiet{min-height:44px}}.panel .ask{min-height:44px;margin:0 0 12px}.panel .actions{flex-wrap:wrap;align-items:center;gap:8px 16px;display:flex}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.scroll{position:relative;overflow-x:auto;container-type:inline-size}.scroll table{border-collapse:collapse;width:100%;font-size:.9375rem}.scroll th,.scroll td{text-align:left;vertical-align:top;padding:10px 12px}.scroll td{white-space:nowrap}.scroll thead th{background:var(--ink);color:var(--surface);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;font-size:.75rem;font-weight:700}.scroll tbody th{font-weight:600}.scroll .long{overflow-wrap:anywhere;min-width:16ch}.scroll th.long small{color:var(--ink-2);white-space:nowrap;font-size:.8125rem;font-weight:400;display:block}.scroll .numeric{text-align:right;font-variant-numeric:tabular-nums}.scroll table:not(.by-tester) tbody tr:nth-child(2n),.by-tester tbody:nth-of-type(2n){background:var(--bg)}.team-nav{margin:-10px -12px -10px auto;display:flex}.team-nav a{min-height:44px;color:var(--ink-2);align-items:center;padding:0 8px;font-weight:600;text-decoration:none;display:inline-flex}.team-nav a:hover,.team-nav a[aria-current]{color:var(--ink)}.team-nav a[aria-current]{text-underline-offset:6px;text-decoration:underline;text-decoration-thickness:2px}@media (width>=480px){.metrics .stats{grid-template-columns:repeat(3,1fr)}.metrics .stats li{flex-direction:column;align-items:start;gap:4px}}.texts h3{margin:28px 0 10px;font-size:1.0625rem}.texts-bar{z-index:2;background:var(--bg);border-bottom:1px solid var(--line);margin:0 -20px;padding:8px 20px 10px;position:sticky;top:0}.texts-sections{flex-wrap:wrap;gap:6px;display:flex}.texts-sections .count{opacity:.75;margin-left:6px;font-size:.8125rem}@media (width<=639px){.texts-sections{scrollbar-width:none;flex-wrap:nowrap;overflow-x:auto}.texts-sections button{flex:none}}.texts-filter{max-width:28rem;margin-bottom:8px}.texts-filter input{min-height:36px;padding:0 10px}.texts-legend{margin:4px 0 8px}.texts-legend summary{cursor:pointer;width:fit-content;color:var(--ink);text-underline-offset:4px;padding-block:11px;font-weight:600;text-decoration:underline;text-decoration-thickness:1.5px}.texts-legend summary:hover{text-decoration-thickness:2.5px}.texts-legend-body{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);gap:20px;padding:16px 20px;display:grid}.texts-legend-block .title{margin:0 0 2px;font-size:1rem;font-weight:700}.texts-legend-block .note{margin:0 0 10px}.texts-legend ul{margin:0;padding:0;list-style:none}.texts-legend li{border-top:1px solid var(--line);grid-template-columns:8rem 1fr auto;align-items:baseline;gap:4px 16px;padding:9px 0;font-size:.9375rem;display:grid}.texts-legend code{background:var(--bg);box-shadow:inset 0 0 0 1px var(--field-line);color:var(--ink);border-radius:6px;justify-self:start;padding:2px 8px;font:600 .875rem/1.5 ui-monospace,SF Mono,Menlo,monospace}.texts-legend .meaning{color:var(--ink)}.texts-legend .sample{background:var(--bg);border-radius:var(--radius);gap:6px;margin:6px 0 0;padding:10px 12px;font-size:.9375rem;display:grid}.texts-legend .sample div{grid-template-columns:9rem 1fr;gap:12px;display:grid}.texts-legend .sample dt{color:var(--ink-2);padding-top:2px;font-size:.8125rem;font-weight:600}.texts-legend .sample dd{color:var(--ink);overflow-wrap:anywhere;margin:0}.texts-legend .uses{color:var(--ink-2);white-space:nowrap;grid-column:-2/-1;font-size:.8125rem}@media (width<=600px){.texts-legend li{grid-template-columns:1fr auto}.texts-legend .meaning{grid-area:2/1/auto/-1}.texts-legend .sample div{grid-template-columns:1fr;gap:2px}}.text-row{margin-bottom:14px}.text-row .field{margin-bottom:4px}.text-row .field>.key{color:var(--ink-2);margin-bottom:4px;font-size:.8125rem;font-weight:600}.text-row .field textarea{box-sizing:border-box;width:100%;min-height:0;font:inherit;color:var(--ink);background:var(--field);border:1px solid var(--field-line);border-radius:var(--radius-field);resize:vertical;field-sizing:content;padding:8px 10px;font-size:.9375rem;display:block}.text-row .field [aria-invalid=true]{border-color:var(--error);box-shadow:inset 0 0 0 1px var(--error)}.text-row .keep{color:var(--ink-2);margin:0 0 6px;font-size:.8125rem}.text-row .error{margin:6px 0 0;font-size:.875rem}.text-history summary{cursor:pointer;text-underline-offset:4px;width:fit-content;padding-block:8px;font-size:.875rem;font-weight:600;text-decoration:underline;text-decoration-thickness:1.5px}.text-history ol{margin:0;padding:0;font-size:.875rem;list-style:none}.text-history li{flex-wrap:wrap;align-items:center;gap:4px 12px;padding:6px 0;display:flex}.text-history time{color:var(--ink-2)}.text-history li span{white-space:pre-wrap;flex:16rem}.text-under{flex-wrap:wrap;justify-content:space-between;gap:0 12px;display:flex}.text-under .keep{margin:0 0 6px}.text-under .chars{color:var(--ink-2);margin:0 0 6px auto;font-size:.8125rem}.text-setting{align-items:center;gap:8px;margin:0 0 6px;font-size:.875rem;display:flex}.text-setting.field span{margin:0;font-size:.875rem}.text-setting.field select{width:auto;min-height:36px;padding:0 10px;font-size:.875rem}.text-setting input[type=checkbox]{width:20px;height:20px;accent-color:var(--accent);margin:0}@media (pointer:coarse){.text-setting.field select{min-height:44px}.text-setting input[type=checkbox]{width:24px;height:24px}}.texts-files{flex-wrap:wrap;gap:8px;margin:4px 0 10px;display:flex}.texts-lesson{margin:16px 0 0}.texts-warning{border-radius:var(--radius-field);background:color-mix(in srgb, var(--sand) 25%, transparent);box-shadow:inset 3px 0 0 var(--verdict-ok);margin:0 0 10px;padding:10px 14px;font-size:.9375rem}.texts-import{border-radius:var(--radius-field);background:color-mix(in srgb, var(--ink) 6%, transparent);margin:12px 0 0;padding:12px 14px;font-size:.9375rem}.texts-import p{margin:0 0 6px}.texts-import ul{margin:0 0 8px;padding:0;list-style:none}.texts-import li{border-top:1px solid var(--line);padding:6px 0}.texts-import li:first-child{border-top:0}.texts-import .key{color:var(--ink-2);font-size:.8125rem;font-weight:600;display:block}.texts-import del{color:var(--ink-2);white-space:pre-wrap;display:block}.texts-import ins{white-space:pre-wrap;text-decoration:none;display:block}.texts-save{border-radius:var(--radius-field);box-shadow:inset 0 0 0 1.5px var(--ink);background:color-mix(in srgb, var(--ink) 10%, transparent);flex-wrap:wrap;align-items:center;gap:8px 14px;margin-top:10px;padding:10px 14px;font-size:1rem;display:flex}body[data-page=tester]>.top{display:none}.eyebrow.muted{color:var(--ink-2)}.note{color:var(--ink-2);margin:0;font-size:.9375rem}@media (prefers-reduced-motion:no-preference){@view-transition{navigation:auto}}::view-transition-old(root){animation-duration:.38s;animation-timing-function:var(--ease)}::view-transition-new(root){animation-duration:.38s;animation-timing-function:var(--ease)}@media (prefers-reduced-motion:reduce){::view-transition-group(*){animation:none!important}::view-transition-old(*){animation:none!important}::view-transition-new(*){animation:none!important}}.testers>.actions{justify-content:space-between;margin-bottom:8px}.testers>.actions h2{margin:0}.testers tbody th small{color:var(--ink-2);font-size:.8125rem;font-weight:400;display:block}.testers td .actions{flex-wrap:nowrap;gap:8px}.testers .answers{white-space:normal;min-width:48ch;margin:8px 0 0;padding-left:2.5ch;line-height:1.4}.emails h2{margin-top:28px}.emails h2:first-child{margin-top:0}.emails-schedule{color:var(--ink-2);margin:0;padding-left:20px;font-size:.9375rem}.emails-schedule li{margin-bottom:4px}.emails-schedule b{color:var(--ink)}.emails-test{max-width:28rem}.emails-test .note{margin-top:8px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation:none!important}button:active,a.button:active{transform:none}}
