@import "https://fonts.googleapis.com/css2?family=Nunito:wght@500;700;800;900&family=Atkinson+Hyperlegible:wght@400;700&display=swap";:root{--bg:#fff8ec;--bg2:#ffe9c7;--card:#fff;--ink:#2d2a4a;--muted:#7b7896;--primary:#ff7a59;--primary-dark:#e85d3c;--good:#22c55e;--good-bg:#dcfce7;--bad:#ef4444;--bad-bg:#fee2e2;--gold:#ffc233;--shadow:0 6px 0 #2d2a4a1f;--radius:24px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;--section:clamp(32px, 5vw, 56px);--gutter:clamp(16px, 2.4vw, 28px);--card-pad:clamp(20px, 2.8vw, 32px);--stack:clamp(14px, 1.8vw, 18px);color:var(--ink);font-family:Nunito,system-ui,sans-serif}[data-theme=ocean]{--bg:#e6f7ff;--bg2:#b8e4ff;--primary:#0ea5e9;--primary-dark:#0284c7}[data-theme=forest]{--bg:#effbea;--bg2:#cdeec0;--primary:#16a34a;--primary-dark:#15803d}[data-theme=candy]{--bg:#fff0f7;--bg2:#ffd1e8;--primary:#ec4899;--primary-dark:#db2777}[data-theme=space]{--bg:#1b1740;--bg2:#2d2670;--card:#2b2660;--ink:#f4f1ff;--muted:#b7b0e8;--primary:#8b5cf6;--primary-dark:#7c3aed;--good-bg:#134e2c;--bad-bg:#5b1d1d}[data-theme=lava]{--bg:#2a1210;--bg2:#4a1d15;--card:#3a1a16;--ink:#fff3ea;--muted:#e0b4a3;--primary:#f97316;--primary-dark:#ea580c;--good-bg:#134e2c;--bad-bg:#5b1d1d}*{box-sizing:border-box}html{background:var(--bg);-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}html,body{min-height:100%;margin:0}#root{min-height:100dvh}body{color:var(--ink);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;overflow-x:hidden}body:before{content:"";z-index:-1;background:radial-gradient(circle at 20% 0%, var(--bg2), var(--bg) 60%);pointer-events:none;position:fixed;inset:0}button{color:inherit;cursor:pointer;touch-action:manipulation;border:none;font-family:inherit}input{font-family:inherit}img,svg{max-width:100%}.app{flex-direction:column;min-height:100dvh;display:flex}.screen{width:100%;max-width:1180px;padding:16px max(28px, env(safe-area-inset-right)) calc(40px + env(safe-area-inset-bottom)) max(28px, env(safe-area-inset-left));flex:1;margin:0 auto}.screen.narrow{max-width:760px;padding-top:clamp(12px,5vh,40px)}.card.roomy{padding:clamp(20px,5vw,36px)}.hero-emoji{font-size:clamp(48px,12vw,72px);line-height:1.1}.lead{font-size:clamp(16px,4vw,20px);font-weight:700}.topbar{align-items:center;gap:var(--sp-4);padding:max(18px, env(safe-area-inset-top)) max(28px, env(safe-area-inset-right)) var(--sp-4) max(28px, env(safe-area-inset-left));width:100%;max-width:1180px;margin:0 auto;display:flex}.topbar .who{text-align:left;flex:0 auto;align-items:center;gap:12px;min-width:0;padding:0;display:flex}.topbar .who>div:last-child{min-width:0}.who-name{white-space:nowrap;text-overflow:ellipsis;font-size:20px;font-weight:900;overflow:hidden}.who-sub{white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:700;overflow:hidden}.topbar .pills{flex-shrink:0;gap:10px;display:flex}.avatar{background:var(--card);width:64px;height:64px;box-shadow:var(--shadow);border-radius:50%;place-items:center;font-size:42px;display:grid}.avatar.big{width:110px;height:110px;font-size:72px}.lvlbar{background:#00000014;border-radius:99px;width:180px;height:12px;margin-top:4px;overflow:hidden}.lvlbar>div{background:linear-gradient(90deg,#7c3aed,#ec4899);border-radius:99px;height:100%;transition:width .6s cubic-bezier(.2,1.4,.4,1)}.pill{background:var(--card);box-shadow:var(--shadow);border-radius:99px;align-items:center;gap:6px;padding:8px 16px;font-size:20px;font-weight:900;display:flex}.spacer{flex:1}.iconbtn{background:var(--card);width:52px;height:52px;box-shadow:var(--shadow);border-radius:16px;font-size:26px;transition:transform .1s}.iconbtn:active{box-shadow:none;transform:translateY(3px)}.btn{background:var(--primary);color:#fff;box-shadow:0 6px 0 var(--primary-dark);border-radius:18px;padding:14px 28px;font-size:22px;font-weight:900;transition:transform 80ms,box-shadow 80ms}@media (hover:hover){.btn:hover{filter:brightness(1.05)}}.btn:active{box-shadow:0 1px 0 var(--primary-dark);transform:translateY(5px)}.btn.secondary{background:var(--card);color:var(--ink);box-shadow:var(--shadow)}.btn.good{background:var(--good);box-shadow:0 6px #15803d}.btn.small{border-radius:12px;padding:8px 16px;font-size:16px}.btn:disabled{opacity:.45;cursor:not-allowed}.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:var(--card-pad)}.card>h2:first-child{margin:0 0 var(--sp-5)}.card.stack{gap:var(--stack);flex-direction:column;display:flex}.card.stack>h2:first-child{margin-bottom:var(--sp-2)}.card>h2:first-child{font-size:clamp(20px,2vw,26px)}.card.stack .btn:not(.small){padding-left:var(--sp-4);padding-right:var(--sp-4);font-size:clamp(17px,1.5vw,20px)}.card-footer{flex-wrap:nowrap}.card-footer .btn{white-space:nowrap;flex:1 1 0;min-width:0;padding:9px 6px;font-size:14px}.stat-cards{margin-bottom:var(--gutter)}.stat-cards h2{margin:var(--sp-2) 0 0}@media (width>=901px){.home-cards{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr) minmax(0,1fr)}}.card-note{margin-top:var(--sp-1);font-weight:700;line-height:1.5}.card-footer{gap:var(--sp-3);padding-top:var(--sp-4);flex-wrap:wrap;margin-top:auto;display:flex}.card-footer-btn{width:100%;margin-top:var(--sp-5)}.stacked{margin-bottom:var(--gutter)}.section{margin-bottom:var(--section)}.section-title{margin-top:var(--section);margin-bottom:var(--sp-5)}.page-head{margin-bottom:var(--sp-5);gap:var(--sp-4)}.page-head h1{margin:0}.page-head:has(.head-btn){margin-bottom:var(--sp-6);row-gap:var(--sp-5)}.head-btn{padding:var(--sp-3) var(--sp-5)}.mix-btn{width:100%;margin-bottom:var(--sp-6)}.field{margin-bottom:var(--sp-5)}.field-top{margin-top:var(--sp-6)}.form-label{margin-top:var(--sp-6);margin-bottom:var(--sp-3)}.form-actions{margin-top:var(--sp-6);justify-content:center}.result-pills{margin:var(--sp-5) 0 var(--sp-6);justify-content:center}.card p{line-height:1.5}h1{margin:var(--sp-2) 0 var(--sp-5);font-size:clamp(26px,6vw,40px);font-weight:900;line-height:1.15}h2{margin:var(--sp-2) 0 var(--sp-4);font-size:clamp(20px,4.8vw,28px);font-weight:900;line-height:1.2}h3{margin:4px 0;font-weight:800}.muted{color:var(--muted)}.row{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.grid{gap:var(--gutter);display:grid}.grid>*{min-width:0}.g2{grid-template-columns:repeat(2,1fr)}.g3{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:repeat(4,1fr)}@media (width<=900px){.g4,.g3{grid-template-columns:repeat(2,minmax(0,1fr))}}.hero{gap:var(--sp-5);margin:var(--sp-3) 0 var(--section);align-items:center;display:flex}.greet{margin:0 0 var(--sp-2)}.subjects{margin-bottom:var(--section)}.subject-count{opacity:.9;margin-top:var(--sp-1);font-weight:800}.gift-wrap{text-align:center;flex-shrink:0}.gift-label{margin-top:var(--sp-1);font-weight:900}.subject-card{color:#fff;text-align:left;border-radius:28px;min-height:180px;padding:clamp(20px,2.6vw,30px) clamp(18px,2.4vw,26px);transition:transform .12s;position:relative;overflow:hidden;box-shadow:0 8px #0000002e}@media (hover:hover){.subject-card:hover{transform:translateY(-4px)rotate(-1deg)}}.subject-card:active{transform:translateY(4px);box-shadow:0 2px #0000002e}.subject-card .big{opacity:.9;font-size:64px;position:absolute;bottom:6px;right:14px}.subject-card h2{color:#fff;margin:0;font-size:clamp(22px,5vw,32px)}.quest{gap:var(--sp-4);padding:var(--sp-4) 0;border-bottom:1px dashed #0000001a;align-items:center;display:flex}.quest:first-of-type{padding-top:0}.quest-emoji{text-align:center;flex-shrink:0;width:36px;font-size:28px}.quest-body{flex:1;min-width:0}.quest-text{margin-bottom:var(--sp-2);font-weight:800;line-height:1.3}.quest-meta{align-items:center;gap:var(--sp-3);display:flex}.quest-meta .muted{white-space:nowrap;font-size:14px;font-weight:800}.quest:last-child{border-bottom:none;padding-bottom:0}.quest:has(+.card-footer-btn){border-bottom:none;padding-bottom:0}.quest .bar{background:#00000014;border-radius:99px;flex:1;height:10px;overflow:hidden}.quest .bar div{background:var(--good);height:100%;transition:width .4s}.gift{background:0 0;font-size:54px;animation:1.6s infinite wiggle}.topic{background:var(--card);text-align:left;box-shadow:var(--shadow);gap:var(--sp-2);border-radius:22px;flex-direction:column;padding:clamp(16px,2.2vw,22px);transition:transform .1s;display:flex}@media (hover:hover){.topic:hover{transform:translateY(-3px)}}.topic .e{font-size:40px}.topic .stars{letter-spacing:2px;font-size:18px}.seg{scrollbar-width:none;background:var(--card);max-width:100%;box-shadow:var(--shadow);border-radius:16px;padding:4px;display:inline-flex;overflow-x:auto}.seg::-webkit-scrollbar{display:none}.seg button{white-space:nowrap;background:0 0;border-radius:12px;flex-shrink:0;padding:8px 16px;font-size:16px;font-weight:800}.seg.grades button{padding:10px 18px;font-size:22px}.profile-list{justify-content:center;gap:var(--gutter);margin-top:var(--sp-6);flex-wrap:wrap;display:flex}.profile-card{width:200px}.seg button.on{background:var(--primary);color:#fff}.playbar{align-items:center;gap:16px;margin-bottom:18px;display:flex}.play-label{white-space:nowrap;font-size:20px;font-weight:900}.screen.play{padding-bottom:calc(150px + env(safe-area-inset-bottom))}.progress{flex:1;gap:6px;min-width:0;display:flex}.progress span{background:#00000014;border-radius:99px;flex:1;height:14px;transition:background .3s}.progress span.ok{background:var(--good)}.progress span.no{background:var(--bad)}.progress span.now{background:var(--gold);animation:1s infinite pulse}.timer{text-align:center;min-width:90px;font-size:26px;font-weight:900}.timer.low{color:var(--bad);animation:.5s infinite pulse}.task{text-align:center;max-width:860px;margin:0 auto;position:relative}.task .emoji{margin-bottom:6px;font-size:clamp(52px,13vw,84px);line-height:1.1;animation:.35s pop}.task .prompt{white-space:pre-line;overflow-wrap:anywhere;margin:10px 0 22px;font-size:clamp(24px,6.4vw,38px);font-weight:900;line-height:1.2}.task .prompt.long{font-size:clamp(19px,4.8vw,26px)}.task .prompt.stroop{letter-spacing:4px;font-size:clamp(48px,16vw,72px)}.passage{text-align:left;white-space:pre-line;background:var(--card);box-shadow:var(--shadow);-webkit-user-select:text;user-select:text;border-radius:20px;margin-bottom:18px;padding:20px 26px;font-size:clamp(17px,4.3vw,22px);line-height:1.6}.passage.center{text-align:center;letter-spacing:clamp(1px,1vw,4px);font-size:clamp(26px,7.5vw,36px);line-height:1.4}.flash{letter-spacing:clamp(2px,1.6vw,10px);overflow-wrap:anywhere;background:var(--card);box-shadow:var(--shadow);white-space:pre-line;border-radius:24px;padding:clamp(16px,5vw,30px);font-size:clamp(30px,9vw,54px);line-height:1.4}.flash-bar{background:var(--gold);transform-origin:0;border-radius:99px;height:8px;margin-top:14px}.options{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(10px,2.5vw,16px);display:grid}.options.three{grid-template-columns:repeat(3,minmax(0,1fr))}.opt{background:var(--card);overflow-wrap:anywhere;border:3px solid #0000;border-radius:20px;min-height:clamp(62px,15vw,86px);padding:clamp(12px,3vw,22px) clamp(8px,2vw,16px);font-size:clamp(20px,5.4vw,30px);font-weight:800;transition:transform 80ms,border-color .15s;box-shadow:0 6px #2d2a4a26}.opt.small-text{font-size:clamp(16px,4.2vw,21px)}.opt.emoji-opt{padding:8px;font-size:clamp(40px,11vw,56px)}@media (hover:hover){.opt:hover{border-color:var(--primary);transform:translateY(-2px)}}.opt:active{transform:translateY(4px);box-shadow:0 2px #2d2a4a26}.opt.right{background:var(--good-bg);border-color:var(--good);animation:.3s pop}.opt.wrong{background:var(--bad-bg);border-color:var(--bad);animation:.4s shake}.opt.dim{opacity:.45}.opt .key{color:var(--muted);font-size:14px;font-weight:700;display:block}.answer-input{text-align:center;background:var(--card);width:min(460px,100%);min-width:0;color:var(--ink);border:3px solid #0000001f;border-radius:18px;outline:none;padding:12px 16px;font-size:clamp(22px,6.5vw,36px);font-weight:800}.answer-input:focus{border-color:var(--primary)}.answer-input.wrong{border-color:var(--bad);animation:.4s shake}.order-slots{border:3px dashed #00000026;border-radius:20px;flex-wrap:wrap;justify-content:center;gap:10px;min-height:84px;margin-bottom:16px;padding:14px;display:flex}.order-slots.wrong{border-color:var(--bad);animation:.4s shake}.chip{background:var(--card);border-radius:14px;padding:clamp(8px,2.4vw,12px) clamp(10px,3vw,18px);font-size:clamp(18px,5vw,26px);font-weight:800;box-shadow:0 4px #2d2a4a26}.chip.used{visibility:hidden}.chips{flex-wrap:wrap;justify-content:center;gap:10px;margin-bottom:20px;display:flex}.egrid{--cell:min(80px, calc((100vw - 56px) / var(--cols)));width:min(100%, calc(var(--cols) * 80px));grid-template-columns:repeat(var(--cols), minmax(0, 1fr));gap:clamp(4px,1.4vw,8px);margin:0 auto;display:grid}.egrid button{font-size:calc(var(--cell) * .55);aspect-ratio:1;background:var(--card);border-radius:clamp(8px,2vw,16px);width:100%;padding:0;box-shadow:0 4px #2d2a4a1f}.egrid button.right{background:var(--good-bg)}.egrid button.wrong{background:var(--bad-bg);animation:.4s shake}.feedback{left:50%;bottom:calc(24px + env(safe-area-inset-bottom));z-index:60;border-radius:22px;align-items:center;gap:16px;width:max-content;min-width:min(420px,100vw - 24px);max-width:min(760px,100vw - 24px);padding:18px 26px;font-size:24px;font-weight:800;animation:.25s slideup;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 10px 30px #0003}.fb-emoji{font-size:40px}.feedback.good{background:var(--good);color:#fff}.feedback.bad{color:#2d2a4a;border:4px solid var(--bad);background:#fff}.feedback .expl{opacity:.9;font-size:18px;font-weight:700}.floaty{pointer-events:none;color:var(--gold);text-shadow:0 2px #0003;z-index:30;font-size:30px;font-weight:900;animation:1s forwards floatup;position:fixed}.combo-banner{text-align:center;color:#fff;z-index:70;pointer-events:none;white-space:nowrap;background:linear-gradient(90deg,#f97316,#ec4899,#8b5cf6);border-radius:28px;max-width:calc(100vw - 24px);padding:14px clamp(18px,5vw,36px);font-size:clamp(26px,8vw,54px);font-weight:900;animation:1.4s forwards zoom;position:fixed;top:22%;left:50%;transform:translate(-50%);box-shadow:0 10px 40px #00000040}.combo-meter{min-width:80px;font-size:22px;font-weight:900}.combo-meter.hot{color:#f97316;animation:.8s infinite pulse}.speak{background:var(--card);width:52px;height:52px;box-shadow:var(--shadow);vertical-align:middle;border-radius:50%;margin-left:10px;font-size:24px}.result{text-align:center;max-width:720px;margin:0 auto}.bigstars{letter-spacing:clamp(4px,2vw,12px);font-size:clamp(56px,17vw,96px)}.bigstars span{animation:.5s both starin;display:inline-block}.bigstars span.off{filter:grayscale();opacity:.25}.chest{background:0 0;font-size:clamp(96px,28vw,140px);animation:1s infinite wiggle}.chest.open{animation:.4s pop}.sticker-reveal{font-size:clamp(84px,24vw,120px);animation:.8s reveal}.rarity{color:#fff;text-transform:uppercase;letter-spacing:1px;border-radius:99px;padding:4px 14px;font-weight:900;display:inline-block}.stickers{grid-template-columns:repeat(auto-fill,minmax(clamp(88px,24vw,110px),1fr));gap:clamp(8px,2.4vw,14px);display:grid}.sticker{background:var(--card);text-align:center;box-shadow:var(--shadow);border:3px solid #0000;border-radius:18px;padding:12px 6px;position:relative}.sticker .e{font-size:50px}.sticker.locked .e{filter:brightness(0)opacity(.2)}.sticker .n{font-size:13px;font-weight:800}.sticker .count{background:var(--primary);color:#fff;border-radius:99px;padding:1px 7px;font-size:12px;font-weight:900;position:absolute;top:6px;right:8px}.ring{aspect-ratio:1;width:min(300px,72vw);margin:0 auto;position:relative}.ring svg{transform:rotate(-90deg)}.ring .t{place-items:center;font-size:clamp(44px,14vw,64px);font-weight:900;display:grid;position:absolute;inset:0}.hw{align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);margin-bottom:var(--sp-3);background:#00000008;border-radius:14px;font-size:20px;font-weight:700;display:flex}.hw.done span{opacity:.55;text-decoration:line-through}.check{background:var(--card);width:40px;height:40px;box-shadow:var(--shadow);border-radius:12px;font-size:24px}.text-input{background:var(--card);min-width:0;color:var(--ink);border:3px solid #0000001a;border-radius:14px;outline:none;flex:1;padding:12px 16px;font-size:max(16px,min(20px,4.5vw))}.text-input:focus{border-color:var(--primary)}.table-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}table.stats{border-collapse:collapse;width:100%;font-size:17px}table.stats th,table.stats td{text-align:left;padding:var(--sp-3);border-bottom:1px solid #00000012}.meter{background:#00000014;border-radius:99px;width:140px;height:10px;overflow:hidden}.meter div{height:100%}.modal-bg{z-index:80;background:#14103280;place-items:center;padding:12px;animation:.2s fade;display:grid;position:fixed;inset:0}.modal{background:var(--card);text-align:center;border-radius:28px;width:100%;max-width:520px;max-height:calc(100dvh - 24px);padding:clamp(20px,5vw,32px);animation:.3s pop;overflow-y:auto}@keyframes pop{0%{opacity:0;transform:scale(.6)}70%{transform:scale(1.08)}to{opacity:1;transform:scale(1)}}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-10px)}40%{transform:translate(10px)}60%{transform:translate(-6px)}80%{transform:translate(6px)}}@keyframes pulse{50%{opacity:.8;transform:scale(1.06)}}@keyframes wiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-8deg)}75%{transform:rotate(8deg)}}@keyframes bump{50%{transform:scale(1.25)}}@keyframes slideup{0%{opacity:0;transform:translate(-50%,40px)}}@keyframes floatup{to{opacity:0;transform:translateY(-90px)}}@keyframes zoom{0%{opacity:0;transform:translate(-50%)scale(.3)}20%{opacity:1;transform:translate(-50%)scale(1.1)}35%{transform:translate(-50%)scale(1)}80%{opacity:1}to{opacity:0;transform:translate(-50%)scale(1)translateY(-40px)}}@keyframes starin{0%{transform:scale(0)rotate(-180deg)}70%{transform:scale(1.3)rotate(10deg)}to{transform:scale(1)}}@keyframes reveal{0%{filter:brightness(3);transform:scale(0)rotate(-30deg)}60%{transform:scale(1.3)rotate(10deg)}to{filter:none;transform:scale(1)}}@keyframes fade{0%{opacity:0}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.pet{--pet-size:96px;width:var(--pet-size);height:var(--pet-size);z-index:45;touch-action:none;cursor:grab;transition:transform 1.6s ease-in-out;position:fixed;top:0;left:0}.pet.dragging{cursor:grabbing;transition:none}.pet-body{width:var(--pet-size);height:var(--pet-size);transform:scaleX(var(--flip,1));transform-origin:50% 90%;place-items:center;animation:2.4s ease-in-out infinite petIdle;display:grid}.pet-emoji{font-size:calc(var(--pet-size) * .75);filter:drop-shadow(0 4px 2px #0000002e);line-height:1;animation:5s infinite petBlink;display:inline-block}.pet.dragging .pet-body{animation:.5s ease-in-out infinite petDangle}.pet-shadow{background:#00000026;border-radius:50%;width:54%;height:10px;animation:2.4s ease-in-out infinite petShadow;position:absolute;bottom:-2px;left:23%}.pet-body.move-fly{animation:2s ease-in-out infinite petFly}.pet-body.move-waddle{animation:1.4s ease-in-out infinite petWaddle}.pet-body.happy.move-hop,.pet-body.happy.move-bounce{animation:.45s ease-out 2 petHop}.pet-body.happy.move-fly{animation:.8s ease-in-out petLoop}.pet-body.happy.move-waddle{animation:.5s ease-out 2 petHop}.pet-body.sad{animation:1.2s ease-in-out petSad}.pet-body.spin{animation:.9s ease-in-out petSpin}.pet-body.talk{animation:.3s ease-in-out 4 petTalk}.pet-bubble{bottom:calc(var(--pet-size,96px) + 4px);color:#2d2a4a;pointer-events:none;background:#fff;border-radius:16px;width:max-content;max-width:min(260px,70vw);padding:10px 14px;font-size:17px;font-weight:800;animation:.25s pop;position:absolute;box-shadow:0 6px 20px #0000002e}.pet-bubble.right{left:10px}.pet-bubble.left{right:10px}.pet-bubble:after{content:"";border:8px solid #0000;border-top-color:#fff;border-bottom:0;position:absolute;bottom:-8px}.pet-bubble.right:after{left:24px}.pet-bubble.left:after{right:24px}.pet-heart{pointer-events:none;font-size:26px;animation:1s forwards floatup;position:absolute;top:-6px;left:36px}.pet-hint-tag{background:var(--gold);pointer-events:none;border-radius:50%;place-items:center;width:28px;height:28px;font-size:16px;animation:1.6s infinite pulse;display:grid;position:absolute;top:-4px;right:-4px;box-shadow:0 2px 6px #0003}.pet-pick{background:var(--card);width:76px;height:76px;box-shadow:var(--shadow);border-radius:20px;place-items:center;font-size:44px;display:grid}.pet-pick.on{outline:4px solid var(--primary);animation:.45s petHop}@keyframes petIdle{0%,to{transform:scaleX(var(--flip,1)) scale(1, 1)}50%{transform:scaleX(var(--flip,1)) scale(1.05, .95) translateY(2px)}}@keyframes petBlink{0%,94%,to{transform:scaleY(1)}97%{transform:scaleY(.85)}}@keyframes petShadow{50%{opacity:.8;transform:scaleX(1.12)}}@keyframes petFly{0%,to{transform:scaleX(var(--flip,1)) translateY(-6px) rotate(-4deg)}50%{transform:scaleX(var(--flip,1)) translateY(-18px) rotate(4deg)}}@keyframes petWaddle{0%,to{transform:scaleX(var(--flip,1)) rotate(-7deg)}50%{transform:scaleX(var(--flip,1)) rotate(7deg)}}@keyframes petHop{0%,to{transform:scaleX(var(--flip,1)) translateY(0) scale(1)}30%{transform:scaleX(var(--flip,1)) translateY(0) scale(1.15, .85)}60%{transform:scaleX(var(--flip,1)) translateY(-40px) scale(.9, 1.1)}}@keyframes petLoop{to{transform:scaleX(var(--flip,1)) rotate(360deg) translateY(-10px)}}@keyframes petSad{0%,to{transform:scaleX(var(--flip,1)) rotate(0)}25%{transform:scaleX(var(--flip,1)) rotate(-12deg) translateY(6px) scale(.95)}75%{transform:scaleX(var(--flip,1)) rotate(12deg) translateY(6px) scale(.95)}}@keyframes petSpin{0%{transform:scaleX(var(--flip,1)) rotate(0) scale(1)}50%{transform:scaleX(var(--flip,1)) rotate(180deg) scale(1.3)}to{transform:scaleX(var(--flip,1)) rotate(360deg) scale(1)}}@keyframes petTalk{50%{transform:scaleX(var(--flip,1)) scale(1.08) rotate(-3deg)}}@keyframes petDangle{0%,to{transform:rotate(-10deg)}50%{transform:rotate(10deg)}}@media (hover:none),(pointer:coarse){.opt .key{display:none}}@media (width<=900px){.g2,.g3{grid-template-columns:minmax(0,1fr)}.stat-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=640px){.screen{padding-left:max(14px, env(safe-area-inset-left));padding-right:max(14px, env(safe-area-inset-right));padding-top:8px}.screen.play{padding-top:max(10px, env(safe-area-inset-top))}.card{border-radius:20px}.btn{border-radius:16px;padding:12px 20px;font-size:18px}.btn.small{padding:8px 12px;font-size:15px}.row{gap:var(--sp-3)}.topbar{padding:max(10px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) 8px max(12px, env(safe-area-inset-left));gap:8px}.topbar .who{flex:auto;gap:8px}.topbar .spacer,.opt .key{display:none}.topbar .avatar{flex-shrink:0;width:44px;height:44px;font-size:28px}.who-name{font-size:16px}.who-name span{display:none}.who-sub{font-size:12px}.lvlbar{width:min(120px,30vw);height:8px}.topbar .pills{gap:6px}.pill{gap:4px;padding:6px 10px;font-size:15px}.iconbtn{border-radius:12px;flex-shrink:0;width:42px;height:42px;font-size:20px}.hero{gap:var(--sp-3);margin-top:var(--sp-2)}.gift{padding:0;font-size:42px}.hero .gift+div{font-size:12px}.subject-card{min-height:120px;padding:var(--sp-4);border-radius:22px}.subject-card .big{font-size:44px;bottom:4px;right:8px}.subject-card>div:not(.big){font-size:14px}.quest{gap:var(--sp-3)}.quest-emoji{width:28px;font-size:24px}.topic{border-radius:18px;gap:6px;padding:14px}.topic .e{font-size:30px}.topic h3{font-size:16px}.topic .muted{font-size:13px!important}.topic .stars{letter-spacing:0;font-size:14px}.seg{width:100%;display:flex}.seg button{flex:1 1 0;min-width:0;padding:8px 4px;font-size:15px}.seg.grades button{padding:9px 0;font-size:18px}.seg.durations button{padding:8px 2px;font-size:13px}.profile-list{margin-top:var(--sp-5)}.profile-card{width:calc(50% - 6px);max-width:200px;padding:14px 8px}.avatar.big{width:80px;height:80px;font-size:52px}.pet-pick{border-radius:16px;width:62px;height:62px;font-size:36px}.playbar{gap:8px;margin-bottom:12px}.play-label span{display:none}.play-label{font-size:22px}.progress{gap:3px}.progress span{height:10px}.combo-meter{min-width:0;font-size:16px}.timer{min-width:64px;font-size:20px}.task .prompt{margin:6px 0 16px}.speak{width:40px;height:40px;margin-left:6px;font-size:18px}.passage{border-radius:16px;margin-bottom:12px;padding:14px 16px;line-height:1.5}.options.three{grid-template-columns:repeat(3,minmax(0,1fr))}.options.long-opts{grid-template-columns:minmax(0,1fr)}.opt{border-radius:16px}.order-slots{gap:6px;min-height:64px;padding:10px}.chips{gap:8px}.order-answer{font-size:18px;font-weight:800}.task form.row{flex-direction:column;align-items:stretch}.task form.row .answer-input{width:100%}.feedback{left:8px;right:8px;bottom:calc(8px + env(safe-area-inset-bottom));border-radius:18px;flex-wrap:wrap;gap:10px;width:auto;min-width:0;max-width:none;padding:12px 14px;font-size:18px;animation:.25s slideupMobile;transform:none}.feedback .expl{font-size:15px}.fb-emoji{font-size:28px}.feedback .btn{flex:1 0 100%}.result .row{gap:8px}.result .pill{font-size:14px}.result .btn{flex:auto}.hw{padding:10px;font-size:17px}.check{flex-shrink:0;width:36px;height:36px}table.stats{font-size:15px}table.stats th,table.stats td{padding:6px}.meter{width:70px}table.stats .meter-cell{display:none}.page-title{font-size:24px}.screen{padding-bottom:calc(110px + env(safe-area-inset-bottom))}.pet{--pet-size:72px}.screen.play .playbar{padding-right:52px}.pet-bubble{padding:8px 12px;font-size:15px}.pet-hint-tag{width:24px;height:24px;font-size:14px}}.pet.docked{--pet-size:46px;left:auto;top:max(8px, env(safe-area-inset-top));right:max(8px, env(safe-area-inset-right));transform:translateX(var(--wander,0px));cursor:pointer;transition:transform .5s ease-out}.pet.docked .pet-shadow{display:none}.pet.docked .pet-hint-tag{width:18px;height:18px;font-size:10px;top:-2px;right:-4px}.pet-bubble.below{bottom:auto;top:calc(var(--pet-size) + 8px)}.pet-bubble.below:after{border-top:0;border-bottom:8px solid #fff;top:-8px;bottom:auto}@media (width<=360px){.who-sub{display:none}.pill{padding:5px 8px;font-size:14px}.subject-card{min-height:100px}.options.three{grid-template-columns:minmax(0,1fr)}}@media (height<=500px) and (orientation:landscape){.task .emoji{margin-bottom:0;font-size:40px}.task .prompt{margin:4px 0 10px;font-size:clamp(20px,4vw,28px)}.opt{min-height:52px;padding:8px}.bigstars{font-size:56px}.chest{font-size:80px}.pet{--pet-size:64px}.screen.play{padding-bottom:110px;padding-top:max(8px, env(safe-area-inset-top))}.screen.play .playbar{margin-bottom:8px;padding-right:52px}.topbar{padding-top:max(6px, env(safe-area-inset-top));padding-bottom:4px}.topbar .avatar{width:42px;height:42px;font-size:26px}.who-name{font-size:16px}.who-sub{font-size:12px}.pill{padding:5px 10px;font-size:15px}.iconbtn{width:42px;height:42px;font-size:20px}.opt .key{display:none}.feedback{bottom:calc(8px + env(safe-area-inset-bottom));padding:10px 16px;font-size:18px}.fb-emoji{font-size:28px}.subject-card{min-height:110px}.subject-card .big{font-size:44px}}@keyframes slideupMobile{0%{opacity:0;transform:translateY(40px)}}html.desktop{--titlebar-h:44px}html.desktop .app{padding-top:var(--titlebar-h)}.titlebar{height:var(--titlebar-h,44px);z-index:90;background:var(--bg);-webkit-app-region:drag;app-region:drag;-webkit-user-select:none;user-select:none;color:var(--ink);white-space:nowrap;border-bottom:1px solid #2d2a4a12;align-items:center;gap:10px;padding:0 16px;font-size:14px;display:flex;position:fixed;top:0;left:0;right:0}.titlebar.win{padding-right:150px}.titlebar.mac{padding-left:84px}.titlebar-logo{border-radius:7px;flex-shrink:0;width:22px;height:22px;box-shadow:0 1px 3px #00000026}.titlebar-name{letter-spacing:.2px;font-size:15px;font-weight:900}.titlebar-sep{color:var(--muted);font-weight:800}.titlebar-context{color:var(--muted);text-overflow:ellipsis;min-width:0;font-weight:700;overflow:hidden}html.desktop .pet.docked{top:calc(var(--titlebar-h) + 8px)}html.desktop .modal-bg{top:var(--titlebar-h)}html.desktop{scrollbar-width:thin;scrollbar-color:#2d2a4a40 transparent}html.desktop ::-webkit-scrollbar{width:12px;height:12px}html.desktop ::-webkit-scrollbar-track{background:0 0}html.desktop ::-webkit-scrollbar-thumb{background:#2d2a4a38 padding-box padding-box;border:3px solid #0000;border-radius:99px}html.desktop ::-webkit-scrollbar-thumb:hover{background-color:#2d2a4a61}html.desktop body{scroll-padding-top:var(--titlebar-h)}.auth-card{text-align:center;position:relative}.auth-close{top:var(--sp-4);right:var(--sp-4);width:40px;height:40px;font-size:18px;position:absolute}.auth-tabs{margin:var(--sp-5) auto var(--sp-2)}.auth-form{gap:var(--sp-4);text-align:left;max-width:420px;margin:var(--sp-5) auto 0;display:grid}.field-label{gap:var(--sp-2);font-size:15px;font-weight:800;display:grid}.field-label .text-input{width:100%}.auth-submit{width:100%;margin-top:var(--sp-2)}.auth-error{background:var(--bad-bg);color:#9f1d1d;padding:var(--sp-3) var(--sp-4);border-radius:12px;font-size:15px;font-weight:800}.auth-links{justify-content:space-between;gap:var(--sp-3);flex-wrap:wrap;display:flex}.auth-fine{margin:0;font-size:13px;font-weight:700;line-height:1.5}.link-btn{color:var(--primary-dark);text-underline-offset:3px;background:0 0;padding:0;font-size:15px;font-weight:800;text-decoration:underline}.account-hint{margin-top:var(--sp-6);color:var(--muted);text-align:center;font-weight:700}.spin-slow{animation:1.2s infinite wiggle}.auth-logo{border-radius:22px;width:76px;height:76px;box-shadow:0 6px #e85d3c26}.fly-coin{z-index:90;pointer-events:none;will-change:transform;filter:drop-shadow(0 3px 2px #0003);font-size:32px;position:fixed}.pill.coins.bump{animation:.35s bump}.play-coins{flex-shrink:0;padding:6px 12px;font-size:18px}.combo-meter.blazing{background:linear-gradient(90deg,#f97316,#ef4444,#f59e0b);color:#0000;-webkit-background-clip:text;background-clip:text;font-size:26px;animation:.5s infinite pulse}.screen.play.hurt{animation:.4s screenShake}.screen.play.hurt:after{content:"";pointer-events:none;animation:.4s reverse forwards fade;position:fixed;inset:0;box-shadow:inset 0 0 80px #ef444473}@keyframes screenShake{0%,to{transform:translate(0)}20%{transform:translate(-6px,2px)}40%{transform:translate(6px,-2px)}60%{transform:translate(-4px,1px)}80%{transform:translate(3px)}}.mode-tag{max-width:860px;margin:0 auto var(--sp-4);background:var(--card);padding:var(--sp-3) var(--sp-4);text-align:center;box-shadow:var(--shadow);border-radius:16px;font-weight:800;animation:.4s pop}.arena{max-width:860px;margin:0 auto var(--sp-5);justify-content:space-between;align-items:center;gap:var(--sp-4);padding:var(--sp-4) clamp(16px, 4vw, 32px);background:linear-gradient(135deg, var(--card), color-mix(in srgb, var(--boss) 22%, var(--card)));box-shadow:var(--shadow);border-radius:26px;display:flex;position:relative;overflow:hidden}.arena:before{content:"";background:radial-gradient(ellipse at center, color-mix(in srgb, var(--boss) 30%, transparent), transparent 70%);pointer-events:none;height:80%;position:absolute;inset:auto -10% -60%}.hero-side,.boss-side{align-items:center;gap:var(--sp-2);flex-direction:column;display:flex;position:relative}.boss-side{flex:1;max-width:320px}.arena-avatar{font-size:clamp(40px,9vw,60px);animation:2s ease-in-out infinite petIdle}.hearts{letter-spacing:2px;font-size:clamp(18px,4vw,24px)}.hearts .lost{filter:grayscale();opacity:.25;animation:.5s heartLost;display:inline-block}@keyframes heartLost{0%{filter:none;opacity:1;transform:scale(1.6)}}.vs{color:var(--boss);text-shadow:0 3px #0000001f;font-size:clamp(22px,5vw,34px);font-style:italic;font-weight:900}.hpbar{border:3px solid var(--card);background:#0000001f;border-radius:99px;width:100%;height:16px;overflow:hidden;box-shadow:0 2px #0000001a}.hpbar div{background:linear-gradient(90deg,#ef4444,#f97316);border-radius:99px;height:100%;transition:width .45s cubic-bezier(.3,1.4,.6,1)}.boss-emoji{filter:drop-shadow(0 8px 4px #0003);font-size:clamp(64px,15vw,104px);line-height:1;animation:2.2s ease-in-out infinite bossIdle}.boss-emoji.hit{animation:.5s bossHit}.boss-emoji.attack{animation:.6s bossAttack}.boss-emoji.dead{animation:1s forwards bossDead}.boss-name{color:var(--boss);font-size:clamp(15px,3.6vw,19px);font-weight:900}.boss-taunt{background:var(--card);box-shadow:var(--shadow);text-align:center;border-radius:12px;padding:6px 12px;font-size:14px;font-weight:800;line-height:1.3;animation:.4s .3s both pop}@keyframes bossIdle{0%,to{transform:translateY(0)rotate(-3deg)}50%{transform:translateY(-8px)rotate(3deg)}}@keyframes bossHit{0%{filter:brightness();transform:translate(0)}20%{filter:brightness(2.5)saturate(0);transform:translate(18px)rotate(12deg)scale(.9)}60%{transform:translate(-8px)rotate(-6deg)}to{transform:translate(0)}}@keyframes bossAttack{0%{transform:scale(1)}35%{transform:translate(-40px)scale(1.35)rotate(-12deg)}to{transform:scale(1)}}@keyframes bossDead{0%{transform:scale(1)}30%{filter:brightness(3);transform:scale(1.3)rotate(20deg)}to{opacity:0;transform:scale(0)rotate(540deg)}}.bigstars span{transition:filter .2s;display:inline-block}.bigstars span.off{filter:grayscale();opacity:.22;animation:none}.bigstars span.on{animation:.55s both starin}.result-title{animation:.5s both pop}.result-boss{margin-top:var(--sp-4);font-size:clamp(64px,16vw,96px);line-height:1}.result-boss.dead{animation:1.4s .2s forwards bossDead}.result-boss.alive{animation:1.6s ease-in-out infinite bossIdle}.mastered-tag{margin-top:var(--sp-3);background:var(--good-bg);color:#166534;padding:var(--sp-2) var(--sp-4);border-radius:99px;font-weight:900;animation:.4s .8s both pop;display:inline-block}.chest-card{position:relative;overflow:hidden}.chest.shake-1{animation:.25s infinite chestShake}.chest.shake-2{filter:drop-shadow(0 0 18px #ffd54a);animation:.12s infinite chestShake}@keyframes chestShake{0%,to{transform:rotate(0)scale(1.02)}25%{transform:rotate(-9deg)scale(1.06)}75%{transform:rotate(9deg)scale(1.06)}}.chest-dots{margin:var(--sp-2) 0;justify-content:center;gap:8px;display:flex}.chest-dots span{background:#0000001f;border-radius:50%;width:14px;height:14px;transition:background .2s,transform .2s}.chest-dots span.on{background:var(--gold);transform:scale(1.25)}.reveal-wrap{padding:var(--sp-4) 0;position:relative}.reveal-wrap>:not(.rays){position:relative}.rays{pointer-events:none;background:repeating-conic-gradient(from 0deg, color-mix(in srgb, var(--rc,var(--c,var(--gold))) 40%, transparent) 0deg 10deg, transparent 10deg 20deg);border-radius:50%;width:520px;height:520px;margin:-260px 0 0 -260px;animation:9s linear infinite spinRays;position:absolute;top:50%;left:50%;-webkit-mask:radial-gradient(circle,#000 20%,#0000 68%);mask:radial-gradient(circle,#000 20%,#0000 68%)}.reveal-wrap.rarity-legendarisk .sticker-reveal{filter:drop-shadow(0 0 22px #ffb300)}.reveal-wrap.rarity-episk .sticker-reveal{filter:drop-shadow(0 0 16px #ab47bc)}@keyframes spinRays{to{transform:rotate(360deg)}}.celebrate-bg{z-index:80;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#1410328c;place-items:center;padding:16px;animation:.25s fade;display:grid;position:fixed;inset:0}.celebrate{background:var(--card);text-align:center;width:100%;max-width:440px;box-shadow:0 10px 0 color-mix(in srgb, var(--c) 50%, transparent), 0 30px 60px #00000040;border-radius:32px;padding:clamp(28px,6vw,44px) clamp(20px,5vw,40px);animation:.6s cubic-bezier(.2,1.6,.4,1) both celebrateIn;position:relative;overflow:hidden}.celebrate>:not(.rays){position:relative}.celebrate h1{margin:var(--sp-2) 0;color:var(--c);font-size:clamp(28px,7vw,40px)}.celebrate .btn{margin-top:var(--sp-5);background:var(--c);box-shadow:0 6px 0 color-mix(in srgb, var(--c) 70%, #000)}.celebrate-emoji{font-size:clamp(80px,22vw,120px);line-height:1;animation:1.2s ease-in-out infinite celebrateEmoji}.celebrate-reward{margin-top:var(--sp-3);background:var(--gold);color:#5b3a00;border-radius:99px;padding:6px 20px;font-size:22px;font-weight:900;animation:.4s .5s both pop;display:inline-block}@keyframes celebrateIn{0%{opacity:0;transform:scale(.3)rotate(-8deg)}to{opacity:1;transform:scale(1)rotate(0)}}@keyframes celebrateEmoji{0%,to{transform:translateY(0)rotate(-6deg)scale(1)}50%{transform:translateY(-12px)rotate(6deg)scale(1.08)}}.map-progress{padding:var(--sp-4) var(--sp-5);margin-bottom:var(--sp-5)}.map-progress .bar{height:12px;margin-top:var(--sp-3);background:#00000014;border-radius:99px;overflow:hidden}.map-progress .bar div{border-radius:99px;height:100%;transition:width .6s}.pathmap{max-width:560px;margin:0 auto var(--section);background:radial-gradient(circle at 20% 10%, color-mix(in srgb, var(--subject) 14%, transparent), transparent 40%), radial-gradient(circle at 80% 60%, color-mix(in srgb, var(--subject) 12%, transparent), transparent 45%), color-mix(in srgb, var(--card) 70%, transparent);box-shadow:var(--shadow);border-radius:32px;position:relative;overflow:hidden}.path-svg{width:100%;height:100%;position:absolute;inset:0}.path-svg path{fill:none;vector-effect:non-scaling-stroke;stroke-linecap:round}.path-bg{stroke:#0000001a;stroke-width:18px;stroke-dasharray:2 26}.path-done{stroke:var(--subject);stroke-width:10px;opacity:.55}.map-deco span{opacity:.55;pointer-events:none;font-size:30px;position:absolute}.map-end{font-size:30px;position:absolute;left:50%;transform:translate(-50%)}.node-wrap{flex-direction:column;align-items:center;width:130px;display:flex;position:absolute;transform:translate(-50%,-50%)}.node{background:var(--card);border:5px solid var(--subject);width:76px;height:76px;box-shadow:0 7px 0 color-mix(in srgb, var(--subject) 70%, #000);border-radius:50%;place-items:center;transition:transform .15s;animation:.45s both pop;display:grid;position:relative}.node:active{box-shadow:0 2px 0 color-mix(in srgb, var(--subject) 70%, #000);transform:translateY(5px)}@media (hover:hover){.node:not(.locked):hover{transform:translateY(-3px)scale(1.05)}}.node-emoji{font-size:36px;line-height:1}.node.done{background:var(--subject)}.node.done:after{content:"✓";background:var(--good);color:#fff;border:3px solid var(--card);border-radius:50%;place-items:center;width:26px;height:26px;font-size:15px;font-weight:900;display:grid;position:absolute;bottom:-4px;right:-6px}.node.locked{background:color-mix(in srgb, var(--card) 80%, #999);cursor:not-allowed;border-color:#00000026;box-shadow:0 7px #00000026}.node.locked .node-emoji{opacity:.7;font-size:28px}.node.current{animation:.45s both pop,1.6s ease-in-out .5s infinite nodePulse}@keyframes nodePulse{0%,to{box-shadow:0 7px 0 color-mix(in srgb, var(--subject) 70%, #000), 0 0 0 0 color-mix(in srgb, var(--subject) 50%, transparent)}50%{box-shadow:0 7px 0 color-mix(in srgb, var(--subject) 70%, #000), 0 0 0 14px transparent}}.node.boss{background:linear-gradient(160deg,#3b2f7a,#1f1b3a);border-color:#1f1b3a;border-radius:28px;width:96px;height:96px;box-shadow:0 8px #0d0b1f}.node.boss .node-emoji{font-size:50px;animation:2.2s ease-in-out infinite bossIdle}.node.boss.done{background:linear-gradient(160deg,#ffd54a,#f59e0b);border-color:#b45309;box-shadow:0 8px #92400e}.node.boss.locked{background:color-mix(in srgb, var(--card) 80%, #999);border-color:#00000026;box-shadow:0 7px #00000026}.node.boss.locked .node-emoji{animation:none}.node-label{background:var(--card);text-align:center;border-radius:10px;max-width:130px;margin-top:12px;padding:3px 10px;font-size:13px;font-weight:900;line-height:1.3;box-shadow:0 2px #00000014}.node-stars{color:#f59e0b;letter-spacing:1px;font-size:13px;display:block}.node-stars i{opacity:.22;color:var(--ink);font-style:normal}.you-are-here{filter:drop-shadow(0 4px 2px #0003);z-index:2;font-size:40px;animation:1.2s ease-in-out infinite youHere;position:absolute;bottom:calc(100% - 8px)}.node-wrap:has(.you-are-here){margin-top:0}@keyframes youHere{0%,to{transform:translateY(-4px)}50%{transform:translateY(-16px)}}.sheet-bg{align-items:end}.sheet{text-align:center;width:100%;max-width:560px;margin-bottom:max(12px, env(safe-area-inset-bottom));animation:.35s cubic-bezier(.2,1.3,.4,1) both sheetUp;position:relative}@media (width>=641px){.sheet-bg{align-items:center}}@keyframes sheetUp{0%{opacity:0;transform:translateY(60px)}}.sheet h2{margin:var(--sp-2) 0}.sheet-close{top:var(--sp-4);right:var(--sp-4);width:40px;height:40px;font-size:18px;position:absolute}.sheet-emoji{font-size:72px;line-height:1.1;animation:.4s pop}.boss-float{animation:2s ease-in-out infinite bossIdle}.sheet-text{font-weight:700;line-height:1.55}.sheet-stats,.sheet-topics{justify-content:center;gap:var(--sp-2);margin:var(--sp-3) 0}.sheet-stats .pill{font-size:16px}.chip-tag{background:color-mix(in srgb, var(--subject) 14%, var(--card));border-radius:99px;padding:4px 12px;font-size:14px;font-weight:800}.sheet-go{width:100%;margin-top:var(--sp-5);box-shadow:0 6px #0003}.lk20{text-align:left;margin-top:var(--sp-4);background:color-mix(in srgb, var(--subject) 8%, var(--card));padding:var(--sp-3) var(--sp-4);border-radius:16px}.lk20 summary{cursor:pointer;font-weight:900}.lk20 ul{margin:var(--sp-3) 0 0;gap:var(--sp-2);padding-left:18px;font-size:15px;font-weight:600;line-height:1.45;display:grid}.lk20 b{color:var(--muted);margin-right:4px;font-size:12px}.pet-card-btn{align-items:center;gap:var(--sp-4);background:color-mix(in srgb, var(--primary) 8%, var(--card));padding:var(--sp-3) var(--sp-4);text-align:left;box-shadow:var(--shadow);border-radius:20px;transition:transform .15s;display:flex}@media (hover:hover){.pet-card-btn:hover{transform:translateY(-2px)}}.pet-card-emoji{font-size:58px;line-height:1;animation:2.4s ease-in-out infinite petIdle;position:relative}.pet-card-info{flex:1;gap:6px;min-width:0;font-size:16px;display:grid}.pet-card-info .meter{width:100%;display:block}.pet-card-info .meter span{background:var(--good);border-radius:99px;height:100%;display:block}.pet-home{gap:var(--gutter);grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:center;display:grid}@media (width<=760px){.pet-home{grid-template-columns:1fr}}.pet-stage{background:linear-gradient(#bfe6ff 0%,#e8f6ff 62%,#c9a47a 62%,#b88d5d 100%);border-radius:24px;place-items:center;height:clamp(240px,38vw,320px);display:grid;position:relative;overflow:hidden}.pet-stage.stage-3{background:linear-gradient(#d8c8ff 0%,#f1e9ff 62%,#a58bd8 62%,#8a6fc4 100%)}.pet-stage.stage-4{background:linear-gradient(#ffe7a3 0%,#fff6d8 62%,#e2b55a 62%,#c9982f 100%)}.pet-room{opacity:.85;justify-content:space-between;font-size:34px;display:flex;position:absolute;top:14px;left:18px;right:18px}.pet-floor{filter:blur(2px);background:#0000002e;border-radius:50%;width:46%;height:16px;position:absolute;bottom:14%;left:50%;transform:translate(-50%)}.pet-big{z-index:1;transform:scale(var(--s,1));background:0 0;margin-top:10%;animation:2.6s ease-in-out infinite petBigIdle;position:relative}.pet-big-emoji{filter:drop-shadow(0 8px 4px #0003);font-size:clamp(110px,20vw,150px);line-height:1;display:block}.pet-big.eat .pet-big-emoji{animation:.25s 3 petEat}.pet-big.love .pet-big-emoji{animation:.5s ease-out petHop}.pet-big.spin .pet-big-emoji{animation:.9s ease-in-out petSpin}@keyframes petBigIdle{0%,to{transform:scale(var(--s,1)) translateY(0)}50%{transform:scale(calc(var(--s,1) * 1.03), calc(var(--s,1) * .97)) translateY(3px)}}@keyframes petEat{50%{transform:scale(1.1,.88)translateY(6px)}}.crumb{z-index:2;pointer-events:none;font-size:44px;animation:.8s ease-in forwards crumbFly;position:absolute;top:30%;left:30%}@keyframes crumbFly{0%{transform:translate(-60px,-40px)scale(1.2)}70%{opacity:1;transform:translate(60px,60px)scale(.8)}to{opacity:0;transform:translate(70px,70px)scale(0)}}.pet-info{gap:var(--sp-2);display:grid}.pet-mood{align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-2);font-size:24px;font-weight:900;display:flex}.pet-mood span{font-size:36px}.meter-label{margin-top:var(--sp-2);font-weight:800}.meter.big{width:100%;height:16px}.meter.big div{border-radius:99px;transition:width .5s}.pet-tip{margin-top:var(--sp-3);font-weight:700;line-height:1.5}.treat{background:var(--card);padding:var(--sp-4);box-shadow:var(--shadow);text-align:center;border-radius:22px;flex-direction:column;align-items:center;gap:6px;transition:transform .15s;display:flex}@media (hover:hover){.treat:not(:disabled):hover{transform:translateY(-3px)}}.treat:active:not(:disabled){transform:translateY(4px)}.treat:disabled{opacity:.45;cursor:not-allowed}.treat.on{outline:4px solid var(--good)}.treat-emoji{font-size:48px;line-height:1.1}.treat .muted{font-size:13px;font-weight:800}.treat .price{background:var(--gold);color:#5b3a00;border-radius:99px;margin-top:4px;padding:2px 12px;font-weight:900}.stages{gap:var(--sp-3);margin-bottom:var(--section);grid-template-columns:repeat(5,minmax(0,1fr));display:grid}@media (width<=640px){.stages{grid-template-columns:repeat(3,minmax(0,1fr))}}.stage-card{background:var(--card);padding:var(--sp-3);text-align:center;box-shadow:var(--shadow);opacity:.55;border-radius:18px;flex-direction:column;align-items:center;gap:4px;display:flex}.stage-card.on{opacity:1;outline:3px solid var(--good)}.stage-card .small{font-size:12px;font-weight:700;line-height:1.3}.pet-body.pet-stage-0 .pet-emoji{font-size:calc(var(--pet-size) * .6)}.pet-body.pet-stage-1 .pet-emoji{font-size:calc(var(--pet-size) * .68)}.pet-body.pet-stage-3 .pet-emoji{filter:drop-shadow(0 0 8px #a78bfa)drop-shadow(0 4px 2px #0003)}.pet-body.pet-stage-4 .pet-emoji{filter:drop-shadow(0 0 10px #fbbf24)drop-shadow(0 0 20px #f59e0b)}.pet-card-emoji.pet-stage-3{filter:drop-shadow(0 0 8px #a78bfa)}.pet-card-emoji.pet-stage-4{filter:drop-shadow(0 0 10px #fbbf24)}html.a11y-readable,html.a11y-readable button,html.a11y-readable input{letter-spacing:.03em;word-spacing:.12em;font-family:Atkinson Hyperlegible,Nunito,system-ui,sans-serif!important}html.a11y-readable .passage{letter-spacing:.05em;line-height:1.9}html.a11y-big{font-size:118%}html.a11y-big .task .prompt{font-size:clamp(28px,7.4vw,44px)}html.a11y-big .opt{font-size:clamp(22px,6vw,34px)}html.a11y-big .passage{font-size:clamp(20px,5vw,26px)}html.a11y-contrast{--muted:#3f3c5c;--shadow:0 0 0 3px #2d2a4a}html.a11y-contrast .opt,html.a11y-contrast .card,html.a11y-contrast .btn.secondary,html.a11y-contrast .topic,html.a11y-contrast .node,html.a11y-contrast .pill{outline:3px solid var(--ink);outline-offset:-3px}html.a11y-contrast .muted{color:var(--ink)}html.a11y-contrast :focus-visible{outline-offset:3px;outline:4px solid #0050ff!important}html.a11y-calm *,html.a11y-calm :before,html.a11y-calm :after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}html.a11y-calm canvas{display:none!important}:focus-visible{outline:3px solid var(--primary);outline-offset:3px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.speak.soft{opacity:.75;width:44px;height:44px;font-size:20px}html.a11y-big .speak.soft,html.a11y-readable .speak.soft{opacity:1}.section-top{margin-top:var(--gutter)}.a11y-opt{gap:var(--sp-3);padding:var(--sp-3) 0;cursor:pointer;border-bottom:1px solid #0000000f;align-items:flex-start;display:flex}.a11y-opt:last-child{border-bottom:none}.a11y-opt input{width:22px;height:22px;accent-color:var(--primary);flex-shrink:0;margin-top:2px}.a11y-opt>span{gap:2px;display:grid}.a11y-opt .muted{font-size:14px;font-weight:700;line-height:1.4}.voice-grid{gap:var(--sp-3);margin-top:var(--sp-4);grid-template-columns:repeat(auto-fill,minmax(74px,1fr));display:grid}.voice-cell{background:color-mix(in srgb, var(--card) 85%, #f59e0b);padding:var(--sp-2);border-radius:16px;justify-items:center;gap:4px;display:grid}.voice-cell.has{background:var(--good-bg)}.voice-cell.rec{background:var(--bad-bg);animation:.8s infinite pulse}.voice-letter{background:var(--card);width:54px;height:54px;box-shadow:var(--shadow);border-radius:14px;font-size:28px;font-weight:900}.voice-actions{align-items:center;gap:4px;min-height:26px;font-size:12px;font-weight:800;display:flex}.voice-actions button{background:0 0;padding:2px;font-size:16px}.home-path{align-items:center;gap:var(--sp-4);color:#fff;width:100%;padding:var(--sp-4) var(--sp-5);margin-bottom:var(--section);text-align:left;background:linear-gradient(120deg,#f59e0b,#fb923c);border-radius:26px;transition:transform .15s;display:flex;box-shadow:0 6px #c2410c}@media (hover:hover){.home-path:hover{transform:translateY(-3px)}}.home-path:active{transform:translateY(4px);box-shadow:0 2px #c2410c}.home-path .hp-emoji{font-size:52px;animation:2.4s infinite wiggle}.home-path h2{color:#fff;margin:0}.home-path .hp-sub{opacity:.95;font-weight:800}.home-path .hp-go{margin-left:auto;font-size:30px}.lk20-list{margin-top:var(--sp-4);gap:2px;display:grid}.lk20-row{gap:var(--sp-3);padding:var(--sp-3) 0;border-bottom:1px solid #0000000f;grid-template-columns:28px minmax(0,1fr) 150px;align-items:center;display:grid}.lk20-row:last-child{border-bottom:none}.lk20-text{gap:2px;font-weight:700;line-height:1.4;display:grid}.lk20-text b{font-size:12px}.lk20-meta{gap:4px;font-size:12px;font-weight:800;display:grid}.lk20-meta .meter{width:100%}@media (width<=640px){.lk20-row{grid-template-columns:24px minmax(0,1fr)}.lk20-meta{grid-column:2}}.pet-art{vertical-align:middle;flex-shrink:0;width:1em;height:1em;line-height:1;display:inline-block;position:relative}.pet-art-body{-webkit-user-drag:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block}.pet-art-item{pointer-events:none;-webkit-user-drag:none;-webkit-user-select:none;user-select:none;filter:drop-shadow(0 1px 1px #0000002e);height:auto;position:absolute}.pet-art-item.item-halo{filter:drop-shadow(0 0 6px #fde047cc);animation:2.4s ease-in-out infinite haloFloat}@keyframes haloFloat{50%{translate:0 -4%}}.pet-tabs{gap:var(--sp-3);margin:0 -4px var(--sp-3);scrollbar-width:none;padding:6px 4px 12px;display:flex;overflow-x:auto}.pet-tabs::-webkit-scrollbar{display:none}.pet-tab{background:var(--card);min-width:88px;box-shadow:var(--shadow);border-radius:20px;flex-shrink:0;justify-items:center;gap:4px;padding:10px 14px 8px;transition:transform .15s;display:grid;position:relative}.pet-tab.on{outline:4px solid var(--primary)}@media (hover:hover){.pet-tab:hover{transform:translateY(-2px)}}.pet-tab-art{font-size:48px}.pet-tab-art.plus{background:color-mix(in srgb, var(--primary) 14%, var(--card));width:48px;height:48px;color:var(--primary);border-radius:50%;place-items:center;font-size:28px;font-weight:900;display:grid}.pet-tab-name{white-space:nowrap;font-size:13px;font-weight:800}.pet-tab-badge{filter:drop-shadow(0 2px 1px #0003);font-size:20px;position:absolute;top:-6px;right:-6px}.pet-tab.add{border:3px dashed color-mix(in srgb, var(--primary) 40%, transparent);box-shadow:none}.pet-big.resting{filter:saturate(.85)}.pet-big.resting .pet-big-emoji{animation:none}.zzz{font-size:36px;animation:2.4s ease-in-out infinite zzz;position:absolute;top:18%;right:22%}@keyframes zzz{0%{opacity:0;transform:translateY(10px)scale(.7)}30%{opacity:1}to{opacity:0;transform:translate(18px,-30px)scale(1.1)}}.active-badge{background:var(--gold);color:#5b3a00;white-space:nowrap;border-radius:99px;padding:4px 12px;font-size:14px;font-weight:900}.section-lead{margin:calc(var(--sp-4) * -1) 0 var(--sp-5);font-weight:700;line-height:1.5}.treat-img{object-fit:contain;width:56px;height:56px}.treat-pet{font-size:64px}.treat.adopt .treat-pet{animation:2.4s ease-in-out infinite petIdle}.price.owned{background:var(--good-bg);color:#166534}.pet-pick .pet-art{font-size:52px}.pet-big-emoji.pet-art{display:block}.shop-pets{align-items:center;gap:var(--sp-5);text-align:left;width:100%;margin-bottom:var(--section);transition:transform .15s;display:flex}@media (hover:hover){.shop-pets:hover{transform:translateY(-3px)}}.shop-pets .muted{font-weight:800}.shop-pets-art{font-size:72px;animation:2.4s ease-in-out infinite petIdle}.who{cursor:pointer;border-radius:18px;margin:-4px -8px -4px -4px;padding:4px 8px 4px 4px;transition:background .15s}@media (hover:hover){.who:hover{background:color-mix(in srgb, var(--card) 70%, transparent)!important}}.me-hero{align-items:center;gap:var(--gutter);margin-bottom:var(--gutter);display:flex}.me-hero h1{margin:0}.me-avatar{flex-shrink:0}.me-info{flex:1;gap:6px;min-width:0;display:grid}.me-sub,.me-xp{font-weight:800}.me-xp{font-size:14px}.me-lvl{width:100%;max-width:360px;height:14px}.me-pet{flex-shrink:0}.me-pet-art{font-size:clamp(72px,12vw,110px);animation:2.4s ease-in-out infinite petIdle}.me-stats{gap:var(--sp-3);margin-bottom:var(--gutter);grid-template-columns:repeat(6,minmax(0,1fr));display:grid}@media (width<=900px){.me-stats{grid-template-columns:repeat(3,minmax(0,1fr))}}.stat-tile{background:var(--card);padding:var(--sp-3) var(--sp-2);text-align:center;box-shadow:var(--shadow);border-radius:18px;gap:2px;display:grid}.stat-tile b{font-size:clamp(17px,2.2vw,22px);font-weight:900}.stat-tile span{color:var(--muted);font-size:12px;font-weight:800}.me-pets{gap:var(--sp-3);margin-top:var(--sp-4);grid-template-columns:repeat(auto-fill,minmax(104px,1fr));display:grid}.me-pet-card{background:color-mix(in srgb, var(--primary) 5%, var(--card));padding:var(--sp-3) var(--sp-2);box-shadow:var(--shadow);border-radius:20px;justify-items:center;gap:4px;transition:transform .15s;display:grid;position:relative}@media (hover:hover){.me-pet-card:hover{transform:translateY(-3px)}}.me-pet-card.active{outline:4px solid var(--gold);background:color-mix(in srgb, var(--gold) 16%, var(--card))}.me-pet-card .muted{font-size:13px;font-weight:800}.me-pet-card-art{font-size:60px}.me-pet-card.locked .me-pet-card-art{filter:brightness(0)opacity(.18)}.me-pet-star{font-size:22px;position:absolute;top:-8px;right:-6px}@media (width<=640px){.me-hero{flex-wrap:wrap}.me-pet{order:-1;margin-left:auto}.pet-mood{font-size:19px}.pet-mood span{font-size:28px}}.sticker .n{overflow-wrap:anywhere;-webkit-hyphens:auto;hyphens:auto}.resume-card{align-items:center;gap:var(--sp-4);background:var(--card);padding:var(--sp-4) var(--sp-5);box-shadow:var(--shadow), inset 0 0 0 4px color-mix(in srgb, var(--primary) 35%, transparent);margin-bottom:var(--sp-5);border-radius:26px;animation:.4s both pop;display:flex}.resume-emoji{flex-shrink:0;font-size:44px;animation:2.4s infinite wiggle}.resume-info{flex:1;gap:4px;min-width:0;display:grid}.resume-info b{font-size:20px;font-weight:900}.resume-info>span{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-weight:800;overflow:hidden}.resume-dots{gap:4px;margin-top:2px;display:flex}.resume-dots i{background:#0000001a;border-radius:99px;width:14px;height:8px}.resume-dots i.ok{background:var(--good)}.resume-dots i.no{background:var(--bad)}.resume-go{flex-shrink:0}.resume-x{flex-shrink:0;width:40px;height:40px;font-size:16px}@media (width<=640px){.resume-card{padding:var(--sp-4);gap:var(--sp-3);flex-wrap:wrap}.resume-info{flex:calc(100% - 70px)}.resume-go{flex:1;order:3}.resume-x{order:4;width:48px;height:48px}}body.no-scroll{overflow:hidden}.pw-bg{z-index:85;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#1410328c;place-items:center;padding:16px;animation:.2s fade;display:grid;position:fixed;inset:0}.pw{background:var(--card);width:100%;max-width:520px;max-height:calc(100dvh - 32px);color:var(--ink);text-align:center;border-radius:28px;padding:clamp(24px,4vw,36px);transition:transform .25s;animation:.35s cubic-bezier(.2,1.4,.4,1) both celebrateIn;position:relative;overflow-y:auto;box-shadow:0 30px 60px #00000040}.pw h2{margin:var(--sp-2) 0;font-size:clamp(22px,5vw,28px);line-height:1.2}.pw-handle{display:none}.pw-close{width:40px;height:40px;font-size:16px;position:absolute;top:14px;right:14px}.pw-badge{color:#fff;background:linear-gradient(90deg,#7c3aed,#ec4899);border-radius:99px;padding:6px 16px;font-size:15px;font-weight:900;display:inline-block;box-shadow:0 4px #7c3aed4d}.pw-lead{margin:0 0 var(--sp-4);font-weight:700;line-height:1.5}.pw-perks{margin:0 0 var(--sp-5);gap:var(--sp-3);text-align:left;padding:0;list-style:none;display:grid}.pw-perks li{gap:var(--sp-3);background:color-mix(in srgb, #7c3aed 6%, var(--card));padding:var(--sp-3);border-radius:16px;align-items:center;display:flex}.pw-perks li>span:last-child{gap:2px;display:grid}.pw-perks .muted{font-size:14px;font-weight:700}.pw-perk-emoji{text-align:center;flex-shrink:0;width:40px;font-size:30px}.pw-plans{gap:var(--sp-3);margin-bottom:var(--sp-4);grid-template-columns:1fr 1fr;display:grid}.pw-plan{padding:var(--sp-4) var(--sp-3) var(--sp-3);background:var(--bg);border:3px solid #0000;border-radius:18px;gap:2px;font-size:15px;display:grid;position:relative}.pw-plan b{font-size:17px}.pw-plan .muted{font-size:12px;font-weight:700}.pw-plan.on{background:color-mix(in srgb, #7c3aed 8%, var(--card));border-color:#7c3aed}.pw-save{background:var(--good);color:#fff;white-space:nowrap;border-radius:99px;padding:2px 10px;font-size:11px;font-weight:900;position:absolute;top:-11px;left:50%;transform:translate(-50%)}.pw-cta{background:linear-gradient(90deg,#7c3aed,#ec4899);width:100%;box-shadow:0 6px #6d28d9}.pw-cta:active{box-shadow:0 1px #6d28d9}.pw-fine{margin:var(--sp-3) 0 0;font-size:12px;font-weight:700;line-height:1.5}.pw-answer{text-align:center;width:140px;margin:0 auto var(--sp-4);font-size:28px;font-weight:900;display:block}.pw .link-btn{margin-top:var(--sp-3)}@media (width<=640px){.pw-bg{place-items:end stretch;padding:0}.pw{max-width:none;padding:8px 20px calc(24px + env(safe-area-inset-bottom));border-radius:28px 28px 0 0;max-height:92dvh;animation:.35s cubic-bezier(.2,1.1,.4,1) both sheetUp}.pw-handle{cursor:grab;touch-action:none;place-items:center;height:28px;margin:0 -20px 4px;display:grid}.pw-handle span{background:#0000002e;border-radius:99px;width:44px;height:5px}.pw-close{top:18px}}.plus-badge{color:#fff;white-space:nowrap;background:linear-gradient(90deg,#7c3aed,#ec4899);border-radius:99px;align-items:center;gap:2px;padding:3px 10px;font-size:13px;font-weight:900;display:inline-flex;box-shadow:0 2px #7c3aed40}.plus-badge.small{padding:2px 8px;font-size:11px}.locked-plus{position:relative}.locked-plus:after{content:"🔒";font-size:18px;position:absolute;top:10px;right:12px}.subject-plus{margin-top:6px;display:block}.plus-title{background:linear-gradient(90deg,#7c3aed,#ec4899);color:#0000;-webkit-background-clip:text;background-clip:text}.topic.plus-locked{background:color-mix(in srgb, #7c3aed 5%, var(--card))}.topic.plus-locked .e{filter:saturate(.6)}.role-pick{gap:var(--sp-3);grid-template-columns:1fr 1fr;display:grid}.role-pick button{padding:var(--sp-3);background:var(--bg);border:3px solid #0000;border-radius:16px;justify-items:center;gap:2px;font-size:26px;display:grid}.role-pick button b{font-size:16px}.role-pick button span{color:var(--muted);font-size:12px;font-weight:800}.role-pick button.on{border-color:var(--primary);background:color-mix(in srgb, var(--primary) 8%, var(--card))}.teacher-head{justify-content:space-between;align-items:center;gap:var(--sp-3) var(--sp-5);margin-bottom:var(--sp-5);flex-wrap:wrap;display:flex}.teacher-head h1{margin:0}.teacher-head-actions{align-items:center;gap:var(--sp-3);flex-wrap:wrap;min-width:0;display:flex}.teacher-who{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:260px;font-weight:800;overflow:hidden}.class-tabs{gap:var(--sp-3);margin:0 -4px var(--sp-3);scrollbar-width:none;padding:4px 4px 12px;display:flex;overflow-x:auto}.class-tabs::-webkit-scrollbar{display:none}.class-tab{text-align:left;background:var(--card);box-shadow:var(--shadow);border-radius:16px;flex-shrink:0;gap:2px;min-width:110px;padding:10px 18px;display:grid}.class-tab span{color:var(--muted);font-size:12px;font-weight:800}.class-tab.on{outline:4px solid var(--primary);outline-offset:-4px}.class-tab.add{box-shadow:none;border:3px dashed color-mix(in srgb, var(--primary) 40%, transparent)}.class-header{gap:var(--gutter);margin-bottom:var(--gutter);grid-template-columns:minmax(240px,300px) minmax(0,1fr);align-items:stretch;display:grid}@media (width<=900px){.class-header{grid-template-columns:1fr}}.join-card{text-align:center;background:linear-gradient(135deg, var(--card), color-mix(in srgb, var(--primary) 10%, var(--card)));align-content:center;gap:6px;display:grid}.join-code,.selectable,.pc-codes b{-webkit-user-select:all;user-select:all;-webkit-touch-callout:default}.copy-btn{justify-self:center;margin:2px 0 4px}.copy-btn.ok{color:#166534}.join-code{letter-spacing:6px;color:var(--primary-dark);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:clamp(34px,5vw,44px)}.teacher-kpis{grid-template-columns:repeat(3,minmax(0,1fr));margin:0}.teacher-kpis .stat-tile{padding:var(--sp-4) var(--sp-2);align-content:center}.teacher-tabs{background:var(--card);box-shadow:var(--shadow);margin-bottom:var(--gutter);border-radius:18px;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;max-width:720px;padding:4px;display:grid}.teacher-tabs button{white-space:nowrap;background:0 0;border-radius:14px;justify-content:center;align-items:center;gap:8px;min-width:0;padding:10px 8px;font-size:16px;font-weight:800;display:flex}.teacher-tabs button.on{background:var(--primary);color:#fff}.fchips{flex-wrap:wrap;gap:8px;display:flex}.fchip{background:var(--bg);white-space:nowrap;border:2px solid #0000;border-radius:99px;align-items:center;gap:6px;padding:6px 14px;font-size:14px;font-weight:800;display:inline-flex}.fchip b{background:#00000012;border-radius:99px;padding:0 8px;font-size:12px;line-height:20px}.fchip.on{background:color-mix(in srgb, var(--primary) 12%, var(--card));border-color:var(--primary);color:var(--primary-dark)}.fchip.on b{background:var(--primary);color:#fff}.teacher-toolbar{justify-content:space-between;align-items:center;gap:var(--sp-3);flex-wrap:wrap;display:flex}.teacher-toolbar h2{margin:0}.teacher-toolbar-actions{gap:var(--sp-3);flex-wrap:wrap;display:flex}.teacher .card.stacked{gap:var(--sp-4);flex-direction:column;display:flex}.teacher .card.stacked>h2,.teacher .card.stacked>.card-note{margin:0}.teacher-form{max-width:640px}.form-pair{gap:var(--sp-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.form-buttons{gap:var(--sp-3);margin-top:var(--sp-2)}.form-submit{align-self:flex-start}.grade-seg{justify-self:start}.assignments{align-items:start}.assignments .teacher-form{max-width:none}.assignment-head{justify-content:space-between;align-items:baseline;gap:var(--sp-3);display:flex}.student-list{margin:0;padding:0;list-style:none;display:none}.student-list li+li{border-top:1px solid #0000000f}.student-list button{align-items:center;gap:var(--sp-3);width:100%;padding:var(--sp-3) 2px;text-align:left;background:0 0;display:flex}.sl-main{flex:1;gap:2px;min-width:0;display:grid}.sl-main b{text-overflow:ellipsis;white-space:nowrap;font-size:17px;overflow:hidden}.sl-main .muted{font-size:13px;font-weight:700}@media (width<=640px){.teacher-head-actions{width:100%}.teacher-who{flex:100%;max-width:none;font-size:14px}.teacher-head-actions .btn{flex:1 1 0}.teacher-tabs button{flex-direction:column;gap:2px;padding:8px 2px;font-size:13px}.teacher-tabs button span{font-size:20px}.teacher-toolbar-actions{gap:var(--sp-2);grid-template-columns:1fr 1fr;width:100%;display:grid}.teacher-toolbar-actions .btn{white-space:nowrap;padding-left:6px;padding-right:6px;font-size:14px}.topic-picks{grid-template-columns:repeat(2,minmax(0,1fr))}.topic-pick{gap:6px;padding:8px;font-size:13px}.teacher-table-wrap{display:none}.student-list{display:block}.sl-flag-text{display:none}.teacher-kpis .stat-tile{padding:var(--sp-3) var(--sp-1)}.form-submit{align-self:stretch}.form-buttons .btn{flex:auto}.grade-seg{justify-self:stretch}.print-toolbar{padding:var(--sp-3) var(--sp-4);flex-wrap:wrap}.print-toolbar>b{flex:100%}.print-toolbar-actions .btn{flex:1 1 0}.print-toolbar-actions{width:100%}}.print-toolbar-actions{gap:var(--sp-3);margin-left:auto;display:flex}.small{font-size:13px;font-weight:700;line-height:1.5}.note-ok{background:var(--good-bg);color:#166534;padding:var(--sp-3) var(--sp-4);border-radius:12px;font-weight:800}.add-students{gap:var(--sp-3);background:var(--bg);padding:var(--sp-4);border-radius:16px;display:grid}.add-students textarea{resize:vertical;width:100%;font-family:inherit}.teacher-table td,.teacher-table th{white-space:nowrap}.teacher-table tr.clickable{cursor:pointer}@media (hover:hover){.teacher-table tr.clickable:hover td{background:color-mix(in srgb, var(--primary) 6%, transparent)}}.t-avatar{vertical-align:middle;font-size:22px}.flag{border-radius:99px;padding:3px 10px;font-size:13px;font-weight:800;display:inline-block}.flag-help{background:var(--bad-bg);color:#9f1d1d}.flag-ahead{color:#5b21b6;background:#ede9fe}.flag-ok{background:var(--good-bg);color:#166534}.flag-inactive{color:var(--muted);background:#0000000f}@media (width<=760px){.hide-sm{display:none}}.student-detail{text-align:center;max-height:90dvh;overflow-y:auto}.detail-subjects{gap:var(--sp-2);margin:var(--sp-4) 0;text-align:left;display:grid}.detail-subject{gap:var(--sp-3);grid-template-columns:120px 1fr 90px;align-items:center;font-size:14px;font-weight:800;display:grid}.detail-subject .meter{width:100%}.detail-h{text-align:left;margin:var(--sp-4) 0 var(--sp-2)}.detail-rounds{text-align:left;gap:6px;margin:0;padding:0;list-style:none;display:grid}.detail-rounds li{justify-content:space-between;gap:var(--sp-3);border-bottom:1px solid #0000000d;padding-bottom:6px;font-size:14px;font-weight:700;display:flex}.detail-code{justify-content:space-between;align-items:center;gap:var(--sp-3);background:var(--bg);padding:var(--sp-3) var(--sp-4);margin:var(--sp-4) 0 var(--sp-3);border-radius:14px;flex-wrap:wrap;font-weight:700;display:flex}.detail-code-actions{gap:var(--sp-2);flex-wrap:wrap;display:flex}.detail-code-actions .copy-btn{margin:0}.detail-code b{font-family:ui-monospace,Menlo,monospace;font-size:20px}.link-btn.danger,.danger-text{color:var(--bad)!important}.topic-picks{gap:var(--sp-2);grid-template-columns:repeat(auto-fill,minmax(170px,1fr));display:grid}.topic-pick{background:var(--bg);cursor:pointer;border:2px solid #0000;border-radius:12px;align-items:center;gap:8px;padding:8px 10px;font-size:14px;font-weight:800;display:flex}.topic-pick.on{border-color:var(--primary);background:color-mix(in srgb, var(--primary) 8%, var(--card))}.topic-pick input{accent-color:var(--primary)}.assignment{padding:var(--sp-3) 0;border-bottom:1px solid #0000000f;gap:6px;display:grid}.assignment:last-child{border-bottom:none}.stacked-meter{display:flex}.stacked-meter>div{height:100%}.print-cards-wrap{z-index:95;color:#2d2a4a;background:#fff;position:fixed;inset:0;overflow-y:auto}.print-toolbar{align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-5);z-index:1;background:#fff8ec;border-bottom:1px solid #00000014;display:flex;position:sticky;top:0}.print-cards{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px;padding:16px;display:grid}.print-card{break-inside:avoid;border:2px dashed #c9c3b5;border-radius:16px;gap:8px;padding:14px 16px;display:grid}.pc-top{align-items:center;gap:8px;font-size:15px;display:flex}.pc-top img{border-radius:7px;width:26px;height:26px}.pc-top span{color:#7b7896;margin-left:auto;font-weight:800}.pc-name{font-size:24px;font-weight:900}.pc-body{align-items:center;gap:14px;display:flex}.pc-qr{flex-shrink:0;width:110px;height:110px}.pc-qr svg{width:100%;height:100%}.pc-codes{gap:2px;font-weight:800;display:grid}.pc-codes span{color:#7b7896;font-size:12px}.pc-codes b{margin-bottom:4px;font-family:ui-monospace,Menlo,monospace;font-size:22px}.pc-help{color:#7b7896;font-size:11px;font-weight:700}@media print{body.printing-cards *{visibility:hidden}body.printing-cards .print-cards-wrap,body.printing-cards .print-cards-wrap *{visibility:visible}body.printing-cards .print-cards-wrap{position:absolute;inset:0;overflow:visible}body.printing-cards .no-print,body.printing-cards:before{display:none!important}.print-cards{grid-template-columns:1fr 1fr;padding:0}}.code-input{text-align:center;letter-spacing:4px;font-family:ui-monospace,Menlo,monospace;font-weight:900;font-size:30px!important}.roster{gap:var(--sp-3);margin:var(--sp-4) 0;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));display:grid}.roster-kid{background:var(--bg);padding:var(--sp-3);box-shadow:var(--shadow);border-radius:18px;justify-items:center;gap:4px;transition:transform .15s;display:grid}@media (hover:hover){.roster-kid:hover{transform:translateY(-3px)}}.roster-avatar{font-size:40px}.student-login .link-btn{margin:var(--sp-3) auto 0;display:block}.entry-row{justify-content:center;gap:var(--sp-3);margin-top:var(--sp-6);flex-wrap:wrap;display:flex}.entry-btn{background:var(--card);padding:var(--sp-3) var(--sp-5);box-shadow:var(--shadow);border-radius:18px;justify-items:center;gap:2px;min-width:150px;font-size:24px;transition:transform .15s;display:grid}@media (hover:hover){.entry-btn:hover{transform:translateY(-2px)}}.entry-btn b{font-size:16px}.entry-btn span{color:var(--muted);font-size:12px;font-weight:800}.entry-btn.teacher{outline:3px solid var(--primary)}.entry-status{text-align:center;color:var(--muted);flex-basis:100%;font-size:14px;font-weight:800}.sync-badge{background:var(--good-bg);color:#166534;margin-bottom:var(--sp-4);border-radius:99px;align-items:center;gap:6px;padding:5px 12px;font-size:13px;font-weight:800;display:inline-flex}.sync-badge.offline,.sync-badge.error{color:#7a5200;background:#fff4d6}.sync-badge.syncing{color:var(--muted);background:#0000000f}.plan-row{align-items:center;gap:var(--sp-3);flex-wrap:wrap;display:flex}.plan-up{width:auto}.my-classes{gap:var(--sp-2);margin:0;padding:0;list-style:none;display:grid}.my-classes li{justify-content:space-between;align-items:center;gap:var(--sp-3);background:var(--bg);padding:var(--sp-3) var(--sp-4);border-radius:14px;font-weight:700;display:flex}.join-row{gap:var(--sp-3);align-items:center;display:flex}.small-code{letter-spacing:3px;flex:1;min-width:0;font-size:20px!important}.assign-card{background:var(--card);padding:var(--sp-4) var(--sp-5);box-shadow:var(--shadow), inset 0 0 0 4px #0ea5e94d;margin-bottom:var(--sp-5);border-radius:26px}.assign-card h2{margin:0 0 var(--sp-3);font-size:20px}.assign-list{gap:var(--sp-3);display:grid}.assign-item{align-items:center;gap:var(--sp-4);background:var(--bg);padding:var(--sp-3) var(--sp-4);text-align:left;border-radius:18px;transition:transform .15s;display:flex}@media (hover:hover){.assign-item:hover{transform:translateY(-2px)}}.assign-item.done{opacity:.7}.assign-emoji{flex-shrink:0;font-size:34px}.assign-info{flex:1;gap:3px;min-width:0;display:grid}.assign-info .muted{font-size:13px;font-weight:800}.assign-note{font-size:14px;font-weight:700}.assign-dots{gap:4px;margin-top:2px;display:flex}.assign-dots i{background:#0000001a;border-radius:99px;width:16px;height:8px}.assign-dots i.on{background:var(--good)}.assign-go{flex-shrink:0;font-size:18px;font-weight:900}.save-banner{align-items:center;gap:var(--sp-3);background:color-mix(in srgb, #0ea5e9 10%, var(--card));padding:var(--sp-3) var(--sp-4);margin-bottom:var(--sp-5);box-shadow:var(--shadow);border-radius:20px;font-weight:800;display:flex}.save-banner span{flex:1}@media (width<=640px){.save-banner{flex-wrap:wrap}.save-banner span{flex-basis:calc(100% - 40px)}}@media (width<=900px){.subjects.g3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=901px){.subjects.g3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=640px){.entry-row{gap:var(--sp-2);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.entry-btn{min-width:0;padding:var(--sp-3) var(--sp-2);font-size:22px}.entry-btn b{font-size:14px}.entry-btn span{font-size:11px;line-height:1.25}.entry-status{grid-column:1/-1}}.claimed-tag{margin-top:var(--sp-3);color:var(--muted);padding:var(--sp-2) var(--sp-4);background:#0000000f;border-radius:99px;font-weight:800;display:inline-block}.node{padding:0}.node-emoji{text-align:center;place-items:center;width:100%;height:100%;line-height:1;display:grid}
