:root{--bg:#FFFAF0;--surface:#fff;--ink:#2A2017;--mute:#8A7B68;--line:#EADFC9;--shadow:rgba(42,32,23,.1);--green:#34B36C;--green-d:#218950;--green-l:#DDF5E6;--gold:#F6B820;--gold-d:#C48A00;--gold-l:#FFF1C7;--red:#E4473F;--red-d:#AE2E27;--red-l:#FFE1DE;--blue:#1E8DB8;--blue-d:#146A8C;--blue-l:#D8F0FA;--purple:#8B5CF6;--purple-d:#6A3FD1;--purple-l:#ECE4FF;--teal:#14A39A;--teal-d:#0E7B74;--teal-l:#D4F3F0;--ta:"Baloo Thambi 2","Noto Sans Tamil",system-ui,sans-serif;--ui:"Nunito","Noto Sans Tamil",system-ui,sans-serif;--safe-b:env(safe-area-inset-bottom);--safe-t:env(safe-area-inset-top)}:root:not([data-theme=light]){color-scheme:light dark}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#17110C;--surface:#241B14;--ink:#FBF3E6;--mute:#B7A58E;--line:#3A2E22;--shadow:rgba(0,0,0,.4);--green-l:#173A27;--gold-l:#3F3210;--red-l:#43201D;--blue-l:#12313E;--purple-l:#2E2350;--teal-l:#0F3532}}.c-green{--c:var(--green);--cd:var(--green-d);--cl:var(--green-l)}.c-gold{--c:var(--gold);--cd:var(--gold-d);--cl:var(--gold-l)}.c-red{--c:var(--red);--cd:var(--red-d);--cl:var(--red-l)}.c-blue{--c:var(--blue);--cd:var(--blue-d);--cl:var(--blue-l)}.c-purple{--c:var(--purple);--cd:var(--purple-d);--cl:var(--purple-l)}.c-teal{--c:var(--teal);--cd:var(--teal-d);--cl:var(--teal-l)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;height:100%;background:var(--bg);color:var(--ink);font-family:var(--ui);font-weight:700;overscroll-behavior:none}button{font:inherit;color:inherit;border:0;background:none;padding:0;cursor:pointer;touch-action:manipulation}input,textarea{font:inherit;color:inherit}.ta{font-family:var(--ta);font-weight:700}:focus-visible{outline:3px solid var(--blue);outline-offset:3px;border-radius:12px}#root{height:100%}.app{height:100%;display:flex;flex-direction:column;max-width:560px;margin:0 auto;background:var(--bg);position:relative;overflow:hidden}@media (min-width:600px){.app{box-shadow:0 0 0 2px var(--line);border-radius:0}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 24px;border-radius:16px;font-weight:800;font-size:16px;letter-spacing:.04em;text-transform:uppercase;color:#fff;background:var(--c,var(--green));box-shadow:0 5px 0 var(--cd,var(--green-d));transition:transform .08s,box-shadow .08s}.btn:active{transform:translateY(5px);box-shadow:0 0 0 var(--cd,var(--green-d))}.btn.ghost{background:var(--surface);color:var(--c,var(--green));box-shadow:0 5px 0 var(--line);border:2px solid var(--line)}.btn.ghost:active{box-shadow:0 0 0 var(--line)}.btn.block{width:100%}.btn[disabled]{background:var(--line);color:var(--mute);box-shadow:0 5px 0 var(--line);cursor:default;transform:none;opacity:.9}.top{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;padding:calc(10px + var(--safe-t)) 18px 10px;gap:10px;background:var(--bg);z-index:5}.chip{display:flex;align-items:center;gap:7px;font-size:17px;font-weight:800;min-height:44px;padding:0 6px}.chip svg{width:26px;height:26px;flex:none}.chip.fire{color:#f2682b}.chip.xp{color:var(--gold-d)}.chip.heart{color:var(--red)}.brand{display:flex;align-items:center;gap:8px;font-family:var(--ta);font-size:21px;color:var(--green-d)}@media (prefers-color-scheme:dark){.brand{color:var(--green)}}.screen{flex:1;min-height:0;overflow:auto;-webkit-overflow-scrolling:touch;padding:0 18px calc(110px + var(--safe-b))}.h1{font-family:var(--ta);font-size:28px;margin:10px 0 4px;font-weight:800}.sub{color:var(--mute);font-size:15px;margin:0 0 18px;font-weight:700}.nav{position:absolute;left:0;right:0;bottom:0;z-index:10;display:flex;justify-content:space-around;padding:8px 8px calc(8px + var(--safe-b));background:var(--surface);border-top:2px solid var(--line)}.nav button{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;min-height:56px;border-radius:14px;color:var(--mute);font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;border:2px solid transparent}.nav button svg{width:28px;height:28px}.nav button.on{color:var(--green-d);background:var(--green-l);border-color:var(--green)}@media (prefers-color-scheme:dark){.nav button.on{color:var(--green)}}.unit{border-radius:20px;padding:16px 18px;margin:6px 0 10px;display:flex;align-items:center;gap:14px;background:var(--c);color:#fff;box-shadow:0 5px 0 var(--cd)}.unit .pic{font-size:34px;line-height:1}.unit h2{margin:0;font-family:var(--ta);font-size:22px;line-height:1.1}.unit p{margin:2px 0 0;font-size:13px;opacity:.92}.unit .uta{margin-left:auto;font-family:var(--ta);font-size:20px;opacity:.9}.trail{display:flex;flex-direction:column;align-items:center;gap:20px;padding:56px 0 26px}.node{position:relative;width:78px;height:72px;border-radius:50%;display:grid;place-items:center;font-size:30px;color:#fff;background:var(--c);box-shadow:0 7px 0 var(--cd);transition:transform .08s,box-shadow .08s}.node:active{transform:translateY(6px);box-shadow:0 1px 0 var(--cd)}.node.locked{background:var(--line);box-shadow:0 7px color-mix(in srgb,var(--line) 70%,#000);color:var(--mute)}.node.done:after{content:"";position:absolute;top:-8px;right:-8px;bottom:-8px;left:-8px;border-radius:50%;border:5px solid var(--gold);opacity:.95}.node .stars{position:absolute;bottom:-18px;display:flex;gap:2px;font-size:13px;color:var(--gold-d)}.node.cur{animation:bob 1.8s ease-in-out infinite}.start{position:absolute;top:-46px;left:50%;transform:translate(-50%);background:var(--surface);color:var(--c);border:2px solid var(--line);border-radius:14px;padding:6px 12px;font-size:14px;font-weight:800;letter-spacing:.06em;white-space:nowrap;box-shadow:0 3px 0 var(--line);animation:bob 1.8s ease-in-out infinite}.start:after{content:"";position:absolute;bottom:-9px;left:50%;margin-left:-8px;width:12px;height:12px;background:var(--surface);border-right:2px solid var(--line);border-bottom:2px solid var(--line);transform:rotate(45deg)}.lbl{position:absolute;left:calc(100% + 12px);top:50%;transform:translateY(-50%);font-size:13px;color:var(--mute);white-space:nowrap;font-weight:800;max-width:120px;overflow:hidden;text-overflow:ellipsis}@keyframes bob{50%{transform:translateY(-5px)}}.node.cur{animation:none}.node.cur .face{animation:bob 1.8s ease-in-out infinite}.hero{display:flex;align-items:center;gap:12px;background:var(--surface);border:2px solid var(--line);border-radius:22px;padding:10px 16px 10px 8px;margin:4px 0 14px}.hero .say{font-size:16px;line-height:1.35}.hero .say b{font-family:var(--ta);font-size:22px;display:block;color:var(--green-d)}.goal{height:14px;border-radius:9px;background:var(--line);overflow:hidden;margin-top:8px}.goal i{display:block;height:100%;background:var(--gold);border-radius:9px;transition:width .6s cubic-bezier(.2,.8,.2,1)}.kili{display:block;overflow:visible}.empty .kili{margin:0 auto 6px}.k-breath{transform-origin:100px 200px;animation:breathe 3.4s ease-in-out infinite}.k-head{transform-origin:100px 130px;animation:tilt 6s ease-in-out infinite}.k-eyes{transform-box:fill-box;transform-origin:center;animation:blink 5s infinite}.k-pupils{transition:transform .4s}.k-wing-l{transform-origin:62px 124px;animation:flap 4.2s ease-in-out infinite}.k-wing-r{transform-origin:138px 124px;animation:flap 4.2s ease-in-out -2s infinite reverse}.k-crest{transform-origin:100px 50px;animation:crest 4.4s ease-in-out infinite}.kili-happy .k-wing-r,.kili-cheer .k-wing-r,.kili-talk .k-wing-r{animation:wave .9s ease-in-out infinite}.kili-cheer{animation:hop .8s ease-in-out infinite}.kili-talk .k-mouth{transform-box:fill-box;transform-origin:center;animation:talk .38s ease-in-out infinite}.kili-sad .k-head{animation:none;transform:rotate(-5deg) translateY(3px)}.kili-sad .k-breath{animation-duration:5s}.kili-sleep .k-head{animation:none;transform:rotate(6deg) translateY(6px)}.k-tear{animation:tear 2.4s ease-in infinite}.k-zzz{animation:zzz 3s ease-in-out infinite}.k-spark{animation:spark 1.2s ease-in-out infinite;transform-origin:100px 100px}@keyframes breathe{50%{transform:scale(1.012,1.026)}}@keyframes tilt{0%,to{transform:rotate(-2.5deg)}50%{transform:rotate(2.5deg)}}@keyframes blink{0%,92%,to{transform:scaleY(1)}95%{transform:scaleY(.08)}}@keyframes flap{0%,to{transform:rotate(0)}50%{transform:rotate(-3deg)}}@keyframes crest{0%,to{transform:rotate(0)}50%{transform:rotate(-4deg)}}@keyframes wave{0%,to{transform:rotate(0)}50%{transform:rotate(-24deg)}}@keyframes hop{0%,to{transform:translateY(0)}45%{transform:translateY(-12px)}}@keyframes talk{50%{transform:scaleY(.4)}}@keyframes tear{0%{opacity:0;transform:translateY(-4px)}30%{opacity:1}to{opacity:0;transform:translateY(16px)}}@keyframes zzz{50%{transform:translateY(-6px);opacity:.6}}@keyframes spark{50%{transform:scale(1.12) rotate(6deg);opacity:.8}}@media (prefers-reduced-motion:reduce){.kili *,.kili,.node,.node .face,.start,.pop,.sheet,.fade{animation:none!important;transition:none!important}}.lesson{position:absolute;top:0;right:0;bottom:0;left:0;z-index:30;background:var(--bg);display:flex;flex-direction:column;animation:rise .28s cubic-bezier(.2,.8,.2,1)}@keyframes rise{0%{transform:translateY(24px);opacity:0}}.lbar{flex:0 0 auto;display:flex;align-items:center;gap:14px;padding:calc(14px + var(--safe-t)) 16px 8px}.x{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;color:var(--mute);font-size:28px;line-height:1}.prog{flex:1;height:18px;border-radius:10px;background:var(--line);overflow:hidden}.prog i{display:block;height:100%;border-radius:10px;background:var(--green);transition:width .45s cubic-bezier(.2,.8,.2,1);position:relative}.prog i:after{content:"";position:absolute;left:8px;right:8px;top:4px;height:5px;border-radius:4px;background:#ffffff59}.lbody{flex:1;min-height:0;overflow:auto;padding:8px 20px 12px;display:flex;flex-direction:column}.lbody>.btn.block{position:sticky;bottom:8px;flex:none;margin-top:18px;z-index:2}.q{font-family:var(--ta);font-size:24px;margin:6px 0 14px;font-weight:800;line-height:1.25}.say-row{display:flex;align-items:center;gap:12px;margin-bottom:12px}.bubble{position:relative;background:var(--surface);border:2px solid var(--line);border-radius:18px;padding:12px 16px;font-size:20px;flex:1}.bubble.big{font-size:34px;font-family:var(--ta);text-align:center;padding:22px 16px}.play{width:56px;height:56px;border-radius:16px;background:var(--blue);color:#fff;display:grid;place-items:center;box-shadow:0 5px 0 var(--blue-d);flex:none}.play:active{transform:translateY(5px);box-shadow:none}.play svg{width:28px;height:28px}.picbig{font-size:84px;text-align:center;line-height:1.1;margin:6px 0 12px}.opts{display:grid;gap:12px;margin-top:6px}.opt{display:flex;align-items:center;gap:14px;min-height:60px;padding:12px 16px;border-radius:16px;background:var(--surface);border:2px solid var(--line);box-shadow:0 4px 0 var(--line);font-size:19px;text-align:left;font-weight:800}.opt.ta{font-family:var(--ta);font-size:23px}.opt .k{width:30px;height:30px;border-radius:9px;border:2px solid var(--line);display:grid;place-items:center;font-size:14px;color:var(--mute);flex:none}.opt:active{transform:translateY(4px);box-shadow:none}.opt.sel{border-color:var(--blue);background:var(--blue-l);box-shadow:0 4px 0 var(--blue)}.opt.sel .k{border-color:var(--blue);color:var(--blue)}.opt.ok{border-color:var(--green);background:var(--green-l);box-shadow:0 4px 0 var(--green)}.opt.bad{border-color:var(--red);background:var(--red-l);box-shadow:0 4px 0 var(--red)}.opt[disabled]{cursor:default}.mgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:6px}.tile{min-height:60px;padding:10px 12px;border-radius:16px;background:var(--surface);border:2px solid var(--line);box-shadow:0 4px 0 var(--line);font-size:18px;font-weight:800;display:flex;align-items:center;justify-content:center;text-align:center;line-height:1.2}.tile.ta{font-family:var(--ta);font-size:22px}.tile:active{transform:translateY(4px);box-shadow:none}.tile.sel{border-color:var(--blue);background:var(--blue-l);box-shadow:0 4px 0 var(--blue)}.tile.ok{border-color:var(--green);background:var(--green-l);box-shadow:0 4px 0 var(--green);opacity:.55}.tile.bad{border-color:var(--red);background:var(--red-l);box-shadow:0 4px 0 var(--red);animation:shake .35s}@keyframes shake{25%{transform:translate(-6px)}75%{transform:translate(6px)}}.slot{min-height:64px;border-bottom:2px solid var(--line);display:flex;flex-wrap:wrap;gap:8px;padding:8px 0;margin:6px 0 18px;align-content:flex-start}.slotline{border-top:2px solid var(--line);margin-top:-8px;margin-bottom:0}.bank{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}.chipw{padding:10px 14px;border-radius:14px;background:var(--surface);border:2px solid var(--line);box-shadow:0 4px 0 var(--line);font-family:var(--ta);font-size:22px}.chipw.used{background:var(--line);color:transparent;box-shadow:none;border-color:var(--line)}.intro{display:grid;gap:10px}.icard{display:flex;align-items:center;gap:14px;padding:12px 14px;background:var(--surface);border:2px solid var(--line);border-radius:18px;box-shadow:0 4px 0 var(--line);text-align:left;width:100%}.icard .e{font-size:38px;width:54px;text-align:center;flex:none}.icard .t{font-family:var(--ta);font-size:26px;line-height:1.1}.icard .r{font-size:14px;color:var(--mute)}.icard .n{font-size:17px}.icard .sp{margin-left:auto;color:var(--blue);width:30px;height:30px;flex:none}.lfoot{flex:0 0 auto;padding:12px 18px calc(16px + var(--safe-b));border-top:2px solid var(--line);background:var(--bg)}.sheet{padding:16px 18px calc(18px + var(--safe-b));animation:up .22s cubic-bezier(.2,.8,.2,1)}@keyframes up{0%{transform:translateY(100%)}}.sheet.ok{background:var(--green-l)}.sheet.bad{background:var(--red-l)}.sheet h3{margin:0 0 4px;font-family:var(--ta);font-size:23px;display:flex;align-items:center;gap:10px}.sheet.ok h3{color:var(--green-d)}.sheet.bad h3{color:var(--red-d)}.sheet p{margin:0 0 14px;font-size:16px}.sheet .ta{font-size:20px}.sheet .btn{width:100%}.sheet.bad .btn{--c:var(--red);--cd:var(--red-d)}@media (prefers-color-scheme:dark){.sheet.ok h3{color:var(--green)}.sheet.bad h3{color:#ff8a82}}.fin{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:6px;padding:20px}.fin h2{font-family:var(--ta);font-size:34px;margin:6px 0 0}.fin .sub{margin:0 0 10px}.stat3{display:flex;gap:12px;margin:14px 0 10px}.stat{min-width:104px;border-radius:16px;border:2px solid var(--c);overflow:hidden;background:var(--surface)}.stat b{display:block;background:var(--c);color:#fff;font-size:12px;letter-spacing:.08em;text-transform:uppercase;padding:4px}.stat span{display:block;padding:12px 6px;font-size:24px;font-weight:800;color:var(--c)}.starsbig{font-size:46px;letter-spacing:6px;color:var(--gold);margin:4px 0}.pop{animation:pop .5s cubic-bezier(.2,1.4,.4,1) both}@keyframes pop{0%{transform:scale(.6);opacity:0}}.fade{animation:fadein .3s both}@keyframes fadein{0%{opacity:0;transform:translateY(8px)}}.scen{display:grid;gap:12px}.scard{display:flex;align-items:center;gap:14px;padding:14px;border-radius:18px;background:var(--surface);border:2px solid var(--line);box-shadow:0 4px 0 var(--line);text-align:left;width:100%}.scard .e{font-size:36px}.scard b{display:block;font-size:18px}.scard span{font-size:14px;color:var(--mute)}.chat{display:flex;flex-direction:column;height:100%}.chead{display:flex;align-items:center;gap:10px;padding:calc(10px + var(--safe-t)) 14px 8px;border-bottom:2px solid var(--line)}.msgs{flex:1;min-height:0;overflow:auto;padding:14px 16px;display:flex;flex-direction:column;gap:12px}.msg{max-width:86%;padding:12px 14px;border-radius:18px;font-size:17px;line-height:1.35}.msg.me{align-self:flex-end;background:var(--blue);color:#fff;border-bottom-right-radius:6px}.msg.kili{align-self:flex-start;background:var(--surface);border:2px solid var(--line);border-bottom-left-radius:6px}.msg .ta{font-size:23px;display:block}.msg .rom{color:var(--mute);font-size:14px;display:block}.msg .en{font-size:15px;display:block;margin-top:4px}.msg .fix{display:block;margin-top:8px;padding:8px 10px;border-radius:12px;background:var(--gold-l);color:var(--ink);font-size:14px}.say-btn{display:inline-flex;align-items:center;gap:6px;color:var(--blue);margin-top:6px;font-size:13px;letter-spacing:.05em;text-transform:uppercase;min-height:36px}.compose{display:flex;gap:10px;padding:10px 14px calc(12px + var(--safe-b));border-top:2px solid var(--line);align-items:flex-end}.compose textarea,.field{flex:1;min-height:52px;max-height:120px;border-radius:16px;border:2px solid var(--line);background:var(--surface);padding:13px 14px;resize:none;font-size:17px;font-weight:700;line-height:1.3}.compose textarea:focus,.field:focus{border-color:var(--blue);outline:none}.suggest{display:flex;gap:8px;overflow:auto;padding:0 16px 8px}.suggest button{flex:none;padding:9px 13px;border-radius:14px;border:2px solid var(--line);background:var(--surface);font-size:15px}.dots{display:flex;gap:5px;padding:6px 2px}.dots i{width:8px;height:8px;border-radius:50%;background:var(--mute);animation:dot 1s infinite}.dots i:nth-child(2){animation-delay:.15s}.dots i:nth-child(3){animation-delay:.3s}@keyframes dot{50%{transform:translateY(-5px);opacity:.5}}.card{background:var(--surface);border:2px solid var(--line);border-radius:20px;padding:16px;margin:12px 0}.card .ta.big{font-size:30px;display:block;line-height:1.2}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.pill{display:inline-flex;flex-direction:column;padding:8px 12px;border-radius:14px;background:var(--bg);border:2px solid var(--line);font-size:13px}.pill .ta{font-size:20px}.note{background:var(--gold-l);border-radius:14px;padding:10px 12px;font-size:14px;margin-top:12px}.empty{text-align:center;color:var(--mute);padding:24px 10px}.pgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:12px 0}.pstat{border:2px solid var(--line);border-radius:18px;padding:12px 14px;background:var(--surface);display:flex;gap:10px;align-items:center}.pstat b{display:block;font-size:22px}.pstat span{font-size:12px;color:var(--mute);letter-spacing:.05em;text-transform:uppercase}.set{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 4px;border-bottom:2px solid var(--line);font-size:17px}.sw{width:56px;height:32px;border-radius:16px;background:var(--line);position:relative;transition:background .2s;flex:none}.sw:after{content:"";position:absolute;top:4px;left:4px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 2px #00000026;transition:transform .2s}.sw.on{background:var(--green)}.sw.on:after{transform:translate(24px)}.link{color:var(--red);font-size:15px;padding:14px 0}.veil{position:absolute;top:0;right:0;bottom:0;left:0;z-index:60;background:#1e140a8c;display:grid;place-items:center;padding:22px}.dlg{background:var(--surface);border-radius:26px;padding:22px 20px 20px;text-align:center;max-width:380px;width:100%;animation:pop .4s cubic-bezier(.2,1.3,.4,1)}.dlg h2{font-family:var(--ta);font-size:30px;margin:6px 0 4px}.dlg p{margin:0 0 18px;color:var(--mute);font-size:16px;line-height:1.4}.toast{position:absolute;left:50%;top:calc(14px + var(--safe-t));transform:translate(-50%);z-index:80;background:var(--ink);color:var(--bg);padding:10px 16px;border-radius:14px;font-size:15px;max-width:90%;text-align:center}.mic{width:112px;height:112px;border-radius:50%;display:grid;place-items:center;color:#fff;background:var(--c,var(--green));box-shadow:0 7px 0 var(--cd,var(--green-d)),0 0 0 calc(var(--lvl,0) * 26px) color-mix(in srgb,var(--c,var(--green)) 25%,transparent);transition:box-shadow .08s}.mic:active{transform:translateY(5px)}.mic.rec{background:var(--red);box-shadow:0 7px 0 var(--red-d),0 0 0 calc(var(--lvl,0) * 26px) color-mix(in srgb,var(--red) 25%,transparent)}.mic[disabled]{opacity:.8}.mic .dots i{background:#fff}.lbody{animation:slidein .32s cubic-bezier(.2,.8,.2,1)}@keyframes slidein{0%{transform:translate(34px);opacity:0}}.opt,.mini,.stat-in,.nodewrap{animation:popin .42s cubic-bezier(.2,1.3,.4,1) both}.nodewrap{animation-delay:calc(var(--i) * 70ms)}@keyframes popin{0%{transform:translateY(14px) scale(.9);opacity:0}}.opt.ok{animation:okbounce .5s cubic-bezier(.2,1.4,.4,1)}@keyframes okbounce{40%{transform:scale(1.04)}}.opt.bad{animation:shake .4s}.unit{animation:slidein .45s cubic-bezier(.2,.8,.2,1) both}.play.speaking,.spot-word.speaking{position:relative}.play.speaking:after{content:"";position:absolute;top:-6px;right:-6px;bottom:-6px;left:-6px;border-radius:20px;border:3px solid var(--blue);animation:ring 1s ease-out infinite}@keyframes ring{0%{transform:scale(.9);opacity:.9}to{transform:scale(1.35);opacity:0}}.chip.heart.lose{animation:heartlose .7s}@keyframes heartlose{0%{transform:scale(1)}20%{transform:scale(1.5) rotate(-12deg);color:#b3221b}45%{transform:scale(.8) rotate(10deg)}to{transform:scale(1)}}.prog i.bump{animation:bump .5s}@keyframes bump{40%{filter:brightness(1.25) saturate(1.2);transform:scaleY(1.25)}}.dots-row{display:flex;gap:8px;justify-content:center;margin:2px 0 6px}.dots-row i{width:10px;height:10px;border-radius:50%;background:var(--line);transition:.25s}.dots-row i.on{background:var(--green);transform:scale(1.35)}.dots-row i.past{background:var(--green-d)}.spot{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;background:var(--surface);border:2px solid var(--line);border-radius:26px;padding:18px 14px 20px;margin:6px 0 14px;box-shadow:0 5px 0 var(--line);animation:popin .45s cubic-bezier(.2,1.3,.4,1)}.spot-kili{position:absolute;left:8px;top:8px}.spot-pic{font-size:92px;line-height:1.1;animation:boing 2.4s ease-in-out infinite;transform-origin:50% 90%}@keyframes boing{0%,to{transform:translateY(0) scale(1) rotate(0)}18%{transform:translateY(-14px) scale(.96,1.06) rotate(-4deg)}34%{transform:translateY(0) scale(1.08,.92)}48%{transform:translateY(-6px) rotate(3deg)}62%{transform:translateY(0) scale(1)}}.spot-word{position:relative;display:grid;place-items:center;padding:10px 26px;margin-top:6px;border-radius:20px}.spot-ta{font-size:54px;line-height:1.2;animation:wipe .75s cubic-bezier(.3,.7,.2,1) .15s both}@keyframes wipe{0%{clip-path:inset(0 100% 0 0);transform:translate(-10px)}to{clip-path:inset(0 0 0 0)}}.rings i{position:absolute;left:50%;top:50%;width:70%;height:70%;border-radius:50%;border:3px solid var(--blue);transform:translate(-50%,-50%) scale(.6);opacity:0}.spot-word.speaking .rings i{animation:ringwave 1.2s ease-out infinite}.spot-word.speaking .rings i:nth-child(2){animation-delay:.3s}.spot-word.speaking .rings i:nth-child(3){animation-delay:.6s}@keyframes ringwave{0%{transform:translate(-50%,-50%) scale(.6);opacity:.8}to{transform:translate(-50%,-50%) scale(1.7);opacity:0}}.spot-rom{font-size:22px;color:var(--blue);margin-top:2px;animation:fadein .4s .5s both}.spot-en{font-size:20px;margin-top:2px;animation:fadein .4s .65s both}.chips-row{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.mini{padding:8px 14px;border-radius:14px;background:var(--surface);border:2px solid var(--line);box-shadow:0 3px 0 var(--line);font-size:19px}.mini.on{border-color:var(--green);background:var(--green-l);box-shadow:0 3px 0 var(--green)}.mini:active{transform:translateY(3px)}.sheet{position:relative;overflow:visible}.sheet-kili{position:absolute;right:14px;top:-40px;pointer-events:none;animation:popin .45s cubic-bezier(.2,1.5,.4,1) both}.sheet.bad{animation:up .22s cubic-bezier(.2,.8,.2,1),shake .4s .15s}.confetti{position:absolute;left:50%;top:0;width:0;height:0;pointer-events:none;z-index:40}.confetti i{position:absolute;width:9px;height:14px;background:var(--c);border-radius:2px;opacity:0;animation:burst .95s cubic-bezier(.15,.7,.3,1) forwards}@keyframes burst{0%{transform:translate(0) scale(.3) rotate(0);opacity:1}70%{opacity:1}to{transform:translate(var(--tx),calc(var(--ty) + 60px)) scale(1) rotate(var(--r));opacity:0}}.confetti.rain{position:fixed;left:0;top:0;width:100%;height:100%;overflow:hidden}.confetti.rain i{left:var(--x);top:-20px;animation:fall 2.6s linear 2 forwards}@keyframes fall{0%{transform:translateY(0) rotate(0);opacity:1}to{transform:translateY(105vh) rotate(calc(var(--r) * 3));opacity:1}}.starsbig{display:flex;gap:10px;justify-content:center;margin:6px 0}.star{font-size:58px;color:var(--line);line-height:1}.star.on{color:var(--gold);animation:starpop .6s cubic-bezier(.2,1.6,.4,1) both;text-shadow:0 4px 0 var(--gold-d)}@keyframes starpop{0%{transform:scale(0) rotate(-40deg);opacity:0}60%{transform:scale(1.4) rotate(8deg);opacity:1}to{transform:scale(1) rotate(0)}}.stat-in{animation-fill-mode:both}@media (prefers-reduced-motion:reduce){.lbody,.opt,.mini,.nodewrap,.spot,.spot *,.confetti i,.star,.stat-in,.unit,.sheet-kili{animation:none!important;opacity:1!important}.confetti{display:none}}.spin{width:22px;height:22px;border-radius:50%;border:3px solid rgba(255,255,255,.4);border-top-color:#fff;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.card.think{display:flex;gap:14px;align-items:center}.card.think b{font-family:var(--ta);font-size:19px}.skel{height:14px;border-radius:7px;margin:9px 0 0;background:linear-gradient(90deg,var(--line),var(--bg),var(--line));background-size:200% 100%;animation:shimmer 1.2s linear infinite}@keyframes shimmer{to{background-position:-200% 0}}.mute-s{margin-top:10px;font-size:13px;color:var(--mute)}.ell:after{content:"...";display:inline-block;width:1.2em;text-align:left;animation:ell 1.2s steps(4) infinite;overflow:hidden;vertical-align:bottom}@keyframes ell{0%{width:0}to{width:1.2em}}.seg{display:flex;gap:8px}.seg button{flex:1;min-height:48px;border-radius:14px;border:2px solid var(--line);background:var(--surface);font-weight:800;box-shadow:0 4px 0 var(--line)}.seg button.on{border-color:var(--green);background:var(--green-l);box-shadow:0 4px 0 var(--green)}
