:root{--bg:#f3ecff;--bg2:#ffe4f1;--card:#fff;--ink:#2a1a4a;--muted:#7b6a99;--primary:#7c3aed;--primary-ink:#fff;--pink:#ff3d7f;--gold:#f5b301;--gold-ink:#4a3300;--ok:#22b573;--ok-bg:#dcf7e9;--bad:#ff4d6d;--bad-bg:#ffe1e8;--blue:#3b82f6;--line:#1f1235;--display:"Grandstander", "Nunito", "Avenir Next", system-ui, sans-serif;--radius:24px;--shadow:0 6px 0 #5428a024;--font:"Nunito", "Avenir Next", "Segoe UI", system-ui, sans-serif}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#1b1433;--bg2:#2a1a4a;--card:#2b2147;--ink:#f6f1ff;--muted:#b9acd6;--ok-bg:#163b2c;--bad-bg:#4a1d2c;--shadow:0 6px 0 #00000059;--line:#0a0616;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#1b1433;--bg2:#2a1a4a;--card:#2b2147;--ink:#f6f1ff;--muted:#b9acd6;--ok-bg:#163b2c;--bad-bg:#4a1d2c;--shadow:0 6px 0 #00000059;--line:#0a0616;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{font-family:var(--font);color:var(--ink);background:var(--bg);background-image:radial-gradient(circle at 10% 0%, var(--bg2) 0, transparent 45%), radial-gradient(circle at 100% 100%, var(--bg2) 0, transparent 40%);-webkit-tap-highlight-color:transparent;font-size:17px;line-height:1.35}.app{max-width:560px;padding:calc(14px + env(safe-area-inset-top)) 16px calc(24px + env(safe-area-inset-bottom));flex-direction:column;gap:14px;min-height:100vh;margin:0 auto;display:flex}h1,h2,h3{margin:0;line-height:1.15}h1{font-size:30px}h2{font-size:20px}p{margin:0}.muted{color:var(--muted)}.small{font-size:14px}.tiny{font-size:12px}.row{align-items:center;gap:10px;display:flex}.between{justify-content:space-between}.grow{flex:1}.wrap{flex-wrap:wrap}.center{text-align:center}.stack{flex-direction:column;gap:10px;display:flex}.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);border:2px solid #7c3aed14;padding:16px}button,.btn{font:inherit;color:var(--ink);background:var(--card);cursor:pointer;min-height:52px;box-shadow:var(--shadow);-webkit-user-select:none;user-select:none;border:2px solid #7c3aed1f;border-radius:18px;padding:12px 16px;font-weight:700;transition:transform 80ms,box-shadow 80ms,background .15s}button:active{transform:translateY(4px);box-shadow:0 2px #5428a024}button:disabled{opacity:.5;cursor:default}button:focus-visible{outline:3px solid var(--blue);outline-offset:2px}.btn-primary{background:linear-gradient(180deg, #9d5cff, var(--primary));color:var(--primary-ink);border-color:#0000;min-height:62px;font-size:21px;box-shadow:0 6px #4c1d95}.btn-primary:active{box-shadow:0 2px #4c1d95}.btn-gold{background:linear-gradient(180deg, #ffd34d, var(--gold));color:var(--gold-ink);border-color:#0000;box-shadow:0 6px #b07f00}.btn-ghost{box-shadow:none;color:var(--muted);background:0 0;border-color:#0000;min-height:40px;padding:6px 10px}.btn-icon{border-radius:50%;justify-content:center;align-items:center;width:46px;min-height:46px;padding:0;font-size:20px;display:inline-flex}.btn-danger{color:var(--bad)}.btn-ok{background:var(--ok);color:#fff;border-color:#0000;box-shadow:0 6px #157a4c}.btn-bad{background:var(--bad);color:#fff;border-color:#0000;box-shadow:0 6px #b3123a}.btn-block{width:100%}.hero{grid-template-columns:120px 1fr;align-items:center;gap:12px;display:grid}.hero .mascot{width:120px;height:120px}.bubble{background:var(--card);box-shadow:var(--shadow);border-radius:18px;padding:10px 14px;font-size:15px;font-weight:700;position:relative}.bubble:before{content:"";border:8px solid #0000;border-right-color:var(--card);position:absolute;top:50%;left:-10px;transform:translateY(-50%)}.stats{flex-wrap:wrap;gap:8px;display:flex}.pill{background:var(--card);box-shadow:var(--shadow);border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-size:14px;font-weight:800;display:inline-flex}.pill.gold{color:var(--gold-ink);background:linear-gradient(#ffe08a,#ffd34d)}.xpbar{background:#7c3aed26;border-radius:6px;height:12px;overflow:hidden}.xpbar>i{background:linear-gradient(90deg, #a855f7, var(--pink));height:100%;transition:width .4s;display:block}.mascot svg{width:100%;height:100%;display:block}.mascot.happy .mascot-body{animation:.6s bounce}.mascot.party .mascot-body{transform-origin:100px 170px;animation:1s infinite wiggle}.mascot.sad .mascot-body{animation:.6s droop}.mascot .tail{transform-origin:150px 160px;animation:1.2s ease-in-out infinite wag}.mascot.sad .tail{animation:none}@keyframes bounce{0%,to{transform:translateY(0)}40%{transform:translateY(-14px)scale(1.03)}70%{transform:translateY(0)scale(.98)}}@keyframes wiggle{0%,to{transform:rotate(-4deg)}50%{transform:rotate(4deg)}}@keyframes droop{0%,to{transform:translateY(0)}50%{transform:translateY(5px)}}@keyframes wag{0%,to{transform:rotate(-12deg)}50%{transform:rotate(12deg)}}.lists{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.list-chip{text-align:left;align-items:center;gap:10px;min-height:64px;padding:12px;display:flex}.list-chip .emoji{font-size:26px}.list-chip .name{font-size:14px;font-weight:700}.list-chip .meta{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.list-chip .grow{min-width:0}.list-chip .bar{background:#7c3aed1f;border-radius:3px;height:6px;margin-top:6px;overflow:hidden}.list-chip .bar>i{background:var(--ok);height:100%;display:block}.list-chip .check{border:2px solid #7c3aed33;border-radius:50%;flex:none;place-items:center;width:24px;height:24px;margin-left:auto;font-size:14px;display:grid}.list-chip.on .check{background:var(--primary);border-color:var(--primary);color:#fff}.modes{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.mode{text-align:left;flex-direction:column;align-items:flex-start;gap:2px;padding:12px 14px;display:flex}.mode .emoji{font-size:26px}.mode .label{font-size:15px}.mode.on{border-color:var(--pink);background:color-mix(in srgb, var(--pink) 12%, var(--card))}.seg{background:#7c3aed1a;border-radius:14px;gap:4px;padding:4px;display:inline-flex}.seg button{min-height:38px;box-shadow:none;background:0 0;border:none;border-radius:10px;padding:6px 14px}.seg button.on{background:var(--card);box-shadow:0 2px #5428a024}.progress{background:#7c3aed1f;border-radius:5px;height:10px;overflow:hidden}.progress>i{background:linear-gradient(90deg, #a855f7, var(--pink));height:100%;transition:width .3s;display:block}.counter{color:var(--muted);font-variant-numeric:tabular-nums;font-weight:800}.playhead{grid-template-columns:1fr 64px;align-items:center;gap:10px;display:grid}.playhead .mascot{width:64px;height:64px}.prompt{text-align:center;padding:26px 18px;position:relative}.prompt .word{letter-spacing:.5px;word-break:break-word;font-size:40px;font-weight:800}.prompt .form{color:var(--muted);margin-top:6px;font-style:italic}.prompt .speak{position:absolute;top:10px;right:10px}.prompt .label{color:var(--pink);text-transform:uppercase;letter-spacing:.5px;font-size:12px;font-weight:800;position:absolute;top:12px;left:14px}.options{gap:10px;display:grid}.opt{text-align:center;min-height:60px;font-size:19px}.opt.correct{background:var(--ok);color:#fff;border-color:#0000;animation:.3s pop}.opt.wrong{background:var(--bad);color:#fff;border-color:#0000;animation:.35s shake}.opt.dim{opacity:.5}.genders{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.gender{flex-direction:column;justify-content:center;align-items:center;gap:2px;min-height:86px;font-size:30px;display:flex}.classes{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.gender.cls{min-height:54px;font-size:17px}.gender small{color:var(--muted);font-size:13px;font-weight:700}.gender.correct{background:var(--ok);color:#fff;border-color:#0000}.gender.correct small{color:#fff}.gender.wrong{background:var(--bad);color:#fff;border-color:#0000;animation:.35s shake}.gender.wrong small{color:#fff}.gender.sel{border-color:var(--primary);background:color-mix(in srgb, var(--primary) 14%, var(--card))}input[type=text],textarea{font:inherit;background:var(--card);width:100%;color:var(--ink);border:2px solid #7c3aed2e;border-radius:18px;padding:14px 16px;font-size:20px}textarea{min-height:160px;font-family:ui-monospace,Menlo,monospace;font-size:15px}input:focus,textarea:focus{outline:3px solid var(--blue);outline-offset:1px}input.ok{border-color:var(--ok);background:var(--ok-bg)}input.ko{border-color:var(--bad);background:var(--bad-bg)}.field label{color:var(--muted);text-transform:uppercase;letter-spacing:.5px;margin:0 0 4px 6px;font-size:13px;font-weight:800;display:block}.field .answer-line{margin:4px 6px 0;font-size:15px;font-weight:700}.field .answer-line.ok{color:var(--ok)}.field .answer-line.ko{color:var(--bad)}.feedback{border-radius:18px;flex-wrap:wrap;align-items:center;gap:10px;padding:14px 16px;font-weight:700;display:flex}.feedback.ok{background:var(--ok-bg);color:var(--ok)}.feedback.bad{background:var(--bad-bg);color:var(--bad)}.feedback .answer{color:var(--ink);font-weight:800}.xp-pop{color:var(--gold);text-shadow:0 2px #4a3300;pointer-events:none;z-index:20;font-size:34px;font-weight:900;animation:1s ease-out forwards rise;position:fixed;top:40%;left:50%;transform:translate(-50%)}@keyframes rise{0%{opacity:0;transform:translate(-50%,20px)scale(.6)}30%{opacity:1;transform:translate(-50%)scale(1.1)}to{opacity:0;transform:translate(-50%,-60px)scale(1)}}.flash{perspective:1200px;cursor:pointer}.flash .inner{transform-style:preserve-3d;min-height:250px;transition:transform .45s;position:relative}.flash.flipped .inner{transform:rotateY(180deg)}.flash .face{backface-visibility:hidden;flex-direction:column;justify-content:center;align-items:center;gap:6px;display:flex;position:absolute;inset:0}.flash .back{background:color-mix(in srgb, var(--primary) 10%, var(--card));transform:rotateY(180deg)}.flash .hint{color:var(--muted);font-size:13px;position:absolute;bottom:12px}.kv{flex-wrap:wrap;justify-content:center;align-items:baseline;gap:8px;display:flex}.kv b{color:var(--pink);text-transform:uppercase;letter-spacing:.5px;font-size:12px}.match{grid-template-columns:1fr 1fr;gap:10px;display:grid}.match .col{flex-direction:column;gap:10px;display:flex}.tile{min-height:64px;padding:10px;font-size:16px}.tile.sel{border-color:var(--primary);background:color-mix(in srgb, var(--primary) 14%, var(--card))}.tile.done{background:var(--ok);color:#fff;pointer-events:none;border-color:#0000}.tile.wrong{border-color:var(--bad);animation:.35s shake}.stars{letter-spacing:6px;font-size:48px}.big{font-size:40px;font-weight:800}.earned{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.mistakes ul{margin:0;padding:0;list-style:none}.mistakes li{border-bottom:1px dashed #7c3aed26;grid-template-columns:1fr auto;gap:4px 10px;padding:8px 0;font-size:15px;display:grid}.levelup{color:#3a1a4a;border-radius:var(--radius);text-align:center;background:linear-gradient(135deg,#ffd34d,#ff7eb3);padding:16px;font-size:20px;font-weight:900;animation:.5s pop}.badge-grid{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.badge{text-align:center;color:var(--muted);background:#7c3aed0f;border-radius:16px;flex-direction:column;align-items:center;gap:4px;padding:10px 4px;font-size:11px;font-weight:700;display:flex}.badge .e{filter:grayscale();opacity:.35;font-size:28px}.badge.won .e{filter:none;opacity:1}.shop{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.item{text-align:center;flex-direction:column;align-items:center;gap:6px;padding:12px 8px;display:flex}.item .e{font-size:28px}.item .thumb{flex:none;width:64px;height:56px}.item .grow{flex:none;width:100%;min-width:0}.item .n{-webkit-hyphens:auto;hyphens:auto}.item .thumb svg{width:100%;height:100%;display:block}.item .n{font-size:13px;font-weight:800}.item .c{color:var(--muted);font-size:12px}.item.owned{border-color:var(--ok)}.item.equipped{background:color-mix(in srgb, var(--ok) 14%, var(--card));border-color:var(--ok)}.item.locked{opacity:.75}.wardrobe-hero{grid-template-columns:1fr;place-items:center;display:grid}.wardrobe-hero .mascot{width:220px;height:220px}.custom-item{border-bottom:1px dashed #7c3aed26;align-items:center;gap:10px;padding:10px 0;display:flex}.footer{text-align:center;color:var(--muted);margin-top:auto;font-size:13px}.toast{background:var(--ink);color:#fff;opacity:0;pointer-events:none;z-index:10;text-align:center;border-radius:14px;max-width:90vw;padding:12px 18px;font-weight:700;transition:opacity .2s;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.toast.show{opacity:1}@keyframes pop{50%{transform:scale(1.04)}}@keyframes shake{20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}@keyframes confetti{to{opacity:0;transform:translateY(110vh)rotate(720deg)}}.confetti{pointer-events:none;z-index:5;border-radius:3px;width:12px;height:12px;animation:2.2s linear forwards confetti;position:fixed;top:-20px}body.has-nav .app{padding-bottom:calc(96px + env(safe-area-inset-bottom,0px))}.nav{z-index:8;padding:8px 10px calc(8px + env(safe-area-inset-bottom,0px));background:var(--card);border-top:2px solid #7c3aed1f;grid-template-columns:repeat(4,1fr);gap:4px;display:grid;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -4px 16px #5428a014}.nav .tab{min-height:54px;box-shadow:none;color:var(--muted);background:0 0;border:2px solid #0000;border-radius:16px;flex-direction:column;align-items:center;gap:2px;padding:6px 4px;display:flex}.nav .tab .ti{font-size:22px;line-height:1}.nav .tab .tl{font-size:12px;font-weight:800}.nav .tab.on{background:color-mix(in srgb, var(--primary) 14%, var(--card));border-color:color-mix(in srgb, var(--primary) 40%, transparent);color:var(--primary)}@media (width>=620px){.nav{border:2px solid #7c3aed1f;border-bottom:0;border-radius:24px 24px 0 0;width:560px;left:50%;right:auto;transform:translate(-50%)}}.topbar{top:env(safe-area-inset-top,0px);z-index:6;background:linear-gradient(var(--bg) 70%, transparent);align-items:center;gap:8px;padding:8px 0;display:flex;position:sticky}.topbar .grow-pill{margin-left:auto}.pill.fire{color:#5a2d00;background:linear-gradient(#ffe7c2,#ffc978)}.daily .hero{grid-template-columns:96px 1fr}.daily .hero .mascot{width:96px;height:96px}.week{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;display:grid}.day{flex-direction:column;align-items:center;gap:2px;display:flex}.day .dot{aspect-ratio:1;background:#7c3aed1a;border:2px solid #0000;border-radius:50%;place-items:center;width:100%;max-width:30px;height:auto;font-size:15px;display:grid}.day.done .dot{background:linear-gradient(#ffe7c2,#ffc978)}.day.today .dot{border-color:var(--primary)}.day .dl{color:var(--muted);font-size:11px;font-weight:800}.day.today .dl{color:var(--primary)}.unit{flex-direction:column;gap:18px;scroll-margin-top:64px;display:flex}.unit-banner{color:#fff;border-radius:20px;justify-content:space-between;align-items:center;gap:10px;padding:14px 16px;display:flex;box-shadow:0 6px #0000002e}.unit-banner .ut{font-size:19px;font-weight:900}.unit-banner .um{opacity:.9;font-size:13px;font-weight:700}.unit-banner .uc{white-space:nowrap;background:#ffffff38;border-radius:999px;padding:6px 10px;font-size:13px;font-weight:800}.path{flex-direction:column;align-items:center;gap:42px;padding:14px 0 26px;display:flex}.node-row{justify-content:center;align-items:center;display:flex;position:relative}.node{background:var(--c);width:76px;height:70px;min-height:0;box-shadow:0 8px 0 color-mix(in srgb, var(--c) 60%, #000);border:0;border-radius:50%;place-items:center;padding:0;display:grid;position:relative}.node:active{box-shadow:0 3px 0 color-mix(in srgb, var(--c) 60%, #000);transform:translateY(5px)}.node .ni{font-size:30px;line-height:1}.node .ns{white-space:nowrap;background:var(--card);border-radius:999px;padding:1px 6px;font-size:11px;position:absolute;bottom:-16px;left:50%;transform:translate(-50%);box-shadow:0 2px #5428a024}.node.done{background:var(--gold);box-shadow:0 8px #b07f00}.node.locked{background:color-mix(in srgb, var(--muted) 35%, var(--card));box-shadow:0 8px 0 color-mix(in srgb, var(--muted) 55%, var(--card))}.node.locked .ni{opacity:.7;font-size:22px}.node.current{outline:5px solid color-mix(in srgb, var(--c) 35%, transparent);outline-offset:5px;animation:1.6s ease-in-out infinite pulse}@keyframes pulse{0%,to{outline-offset:5px}50%{outline-offset:10px}}.start-tag{background:var(--card);color:var(--primary);letter-spacing:.5px;pointer-events:none;border-radius:10px;padding:4px 10px;font-size:12px;font-weight:900;animation:1.2s ease-in-out infinite bob;position:absolute;top:-26px;left:50%;transform:translate(-50%);box-shadow:0 3px #5428a02e}@keyframes bob{0%,to{transform:translate(-50%)}50%{transform:translate(-50%,-4px)}}.sheet-backdrop{z-index:30;background:#140a2880;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--card);width:100%;max-width:560px;padding:22px 20px calc(24px + env(safe-area-inset-bottom,0px));border-radius:28px 28px 0 0;animation:.22s ease-out sheetup}.sheet-icon{text-align:center;font-size:54px;line-height:1}@keyframes sheetup{0%{transform:translateY(40px)}}.dots{align-items:center;gap:8px;display:flex}.dots i{background:#7c3aed33;border-radius:50%;width:10px;height:10px}.dots i.past{background:var(--primary);opacity:.5}.dots i.on{background:var(--primary);border-radius:6px;width:26px}.wiz-title{text-wrap:balance;font-size:26px}.choice-row{grid-auto-columns:1fr;grid-auto-flow:column;gap:10px;display:grid}.choice{min-height:60px;font-size:18px}.choice.on{border-color:var(--primary);background:color-mix(in srgb, var(--primary) 14%, var(--card))}.streakup{color:#4a2500;border-radius:var(--radius);text-align:center;background:linear-gradient(135deg,#ffe7c2,#ffb347);padding:14px 16px;font-weight:900;animation:.5s pop}@media (prefers-reduced-motion:reduce){.node.current,.start-tag,.mascot .tail,.mascot.party .mascot-body{animation:none}}.hero>*{min-width:0}.bubble{overflow-wrap:anywhere}.welcome{align-items:stretch;padding-top:6vh}.welcome .mascot{align-self:center;width:200px;height:200px}.welcome input{text-align:center;font-size:24px;font-weight:800}.admin-part{padding:12px 14px}.admin-part summary{cursor:pointer;padding:4px 0;line-height:1.5}.table-wrap{margin-top:8px;overflow-x:auto}.admin-table{border-collapse:collapse;width:100%;font-size:14px}.admin-table th{text-align:left;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);white-space:nowrap;border-bottom:2px solid #7c3aed2e;padding:6px 8px;font-size:11px}.admin-table td{vertical-align:top;border-bottom:1px solid #7c3aed1a;padding:6px 8px}.admin-table td:nth-child(2),.admin-table td:nth-child(3){white-space:nowrap}.admin-table .num{text-align:right;font-variant-numeric:tabular-nums;color:var(--muted)}body:has(.admin-part) .app{max-width:900px}body{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140' viewBox='0 0 140 140'%3E%3Cg fill='%237c3aed' fill-opacity='.07'%3E%3Cellipse cx='30' cy='36' rx='7' ry='5.5'/%3E%3Ccircle cx='21' cy='28' r='3'/%3E%3Ccircle cx='27' cy='23' r='3'/%3E%3Ccircle cx='34' cy='23' r='3'/%3E%3Ccircle cx='40' cy='28' r='3'/%3E%3Cg transform='translate(70 66) rotate(24 30 30)'%3E%3Cellipse cx='30' cy='36' rx='7' ry='5.5'/%3E%3Ccircle cx='21' cy='28' r='3'/%3E%3Ccircle cx='27' cy='23' r='3'/%3E%3Ccircle cx='34' cy='23' r='3'/%3E%3Ccircle cx='40' cy='28' r='3'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E"), radial-gradient(circle at 10% 0%, var(--bg2) 0, transparent 45%), radial-gradient(circle at 100% 100%, var(--bg2) 0, transparent 40%)}h1,h2,h3,button,.pill,.bubble,.big,.counter,.unit-banner,.start-tag,.levelup,.streakup,.nav .tl,.feedback,.field label,.prompt .label{font-family:var(--display)}.opt,.tile,.gender,input,textarea,.prompt .word,.prompt .form{font-family:var(--font)}h1{letter-spacing:-.3px;font-weight:900}h2{font-weight:800}.ic{vertical-align:-.22em;flex:none;line-height:0;display:inline-block}.ic svg{width:100%;height:100%;display:block}.card{border:2.5px solid var(--line);box-shadow:0 6px 0 var(--line)}button,.btn{border:2.5px solid var(--line);box-shadow:0 5px 0 var(--line)}button:active{box-shadow:0 1px 0 var(--line);transform:translateY(4px)}.btn-primary,.btn-gold,.btn-ok,.btn-bad{border-color:var(--line);box-shadow:0 6px 0 var(--line)}.btn-primary:active,.btn-gold:active,.btn-ok:active,.btn-bad:active{box-shadow:0 1px 0 var(--line)}.btn-ghost,.btn-ghost:active{box-shadow:none;border-color:#0000}.seg{border:2.5px solid var(--line);background:var(--card)}.seg button,.seg button:active{box-shadow:none;border:0;transform:none}.seg button.on{background:var(--primary);color:#fff;box-shadow:none}.pill{border:2.5px solid var(--line);box-shadow:0 3px 0 var(--line);padding:5px 12px}.bubble{border:2.5px solid var(--line);box-shadow:0 4px 0 var(--line)}.bubble:before{border-right-color:var(--line);left:-17px}input[type=text],textarea{border:2.5px solid var(--line)}.xpbar,.progress{border:2.5px solid var(--line);background:var(--card);border-radius:9px;height:16px}.list-chip.on{border-color:var(--line);background:color-mix(in srgb, var(--primary) 22%, var(--card))}.list-chip .check,.list-chip.on .check,.mode.on,.choice.on,.gender.sel,.tile.sel{border-color:var(--line)}.mode .emoji,.card>.emoji{line-height:0}.card>.emoji{justify-content:center;display:flex}.opt.correct,.opt.wrong,.gender.correct,.gender.wrong,.tile.done,.item.owned,.item.equipped{border-color:var(--line)}.feedback,.levelup,.streakup{border:2.5px solid var(--line);box-shadow:0 4px 0 var(--line)}.toast{color:#fff;font-family:var(--display);z-index:40;background:#1f1235;border:2.5px solid #ffd34d;box-shadow:0 4px #00000059}.nav{border-top:2.5px solid var(--line);box-shadow:none}.nav .tab,.nav .tab:active{box-shadow:none;border:2.5px solid #0000;transform:none}.nav .tab .ti{line-height:0}.nav .tab .tl{font-size:12.5px}.nav .tab.on{border-color:var(--line);color:#1f1235;box-shadow:0 3px 0 var(--line);background:#ffd34d}@media (width>=620px){.nav{border:2.5px solid var(--line);border-bottom:0}}.unit-banner{border:2.5px solid var(--line);box-shadow:0 6px 0 var(--line);position:relative;overflow:hidden}.unit-banner>div{position:relative}.unit-banner{justify-content:flex-start}.unit-banner .unum{color:#1f1235;border:2.5px solid var(--line);background:#ffd34d;border-radius:23px;flex:none;place-items:center;min-width:46px;height:46px;padding:3px 8px 0;font-size:17px;font-weight:900;line-height:1;display:grid}.unit-banner .uc{border:2px solid #ffffff8c}.node{border:3px solid var(--line);box-shadow:0 7px 0 var(--line)}.node:active{box-shadow:0 2px 0 var(--line)}.node .ni{line-height:0}.node.done{box-shadow:0 7px 0 var(--line);background:#ffd34d}.node.locked{background:var(--card);box-shadow:0 7px 0 var(--line);opacity:.7}.node .ns{border:2px solid var(--line);box-shadow:none;gap:1px;padding:2px 6px;display:flex;bottom:-18px}.start-tag{color:#1f1235;border:2.5px solid var(--line);box-shadow:0 3px 0 var(--line);background:#ffd34d;top:-30px}.sheet{border:2.5px solid var(--line);border-bottom:0}.sheet-icon{justify-content:center;line-height:0;display:flex}.day .dot{border:2px dashed color-mix(in srgb, var(--line) 35%, transparent);background:0 0;line-height:0}.day.done .dot{border:2px solid var(--line);background:#ffd34d}.day.today .dot{outline:3px solid var(--pink);outline-offset:2px;border-style:solid}.stars{letter-spacing:0;justify-content:center;gap:6px;font-size:0;display:flex}.st{width:46px;height:46px}.st svg{width:100%;height:100%;display:block}.st.off{filter:grayscale();opacity:.28}.badge{background:0 0}.badge .e{border:2.5px dashed color-mix(in srgb, var(--line) 35%, transparent);border-radius:50%;place-items:center;width:52px;height:52px;font-size:24px;display:grid}.badge.won{color:var(--ink);background:0 0}.badge.won .e{border:2.5px solid var(--line);box-shadow:0 4px 0 var(--line);background:#ffd34d}.badge.new{outline:0}.badge.new .e{outline:3px solid var(--pink);outline-offset:3px}.item .c{justify-content:center;align-items:center;gap:2px;display:flex}.xp-pop{font-family:var(--display);-webkit-text-stroke:1.5px var(--line);text-shadow:0 3px 0 var(--line)}.mascot{cursor:pointer;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;touch-action:manipulation;position:relative}.mascot:focus-visible{outline:3px solid var(--blue);outline-offset:4px;border-radius:20px}.mascot .mascot-body{transform-box:view-box;transform-origin:100px 120px}.mascot.tap-jump .mascot-body{animation:.7s tapjump}.mascot.tap-spin .mascot-body{animation:.75s ease-in-out tapspin}.mascot.tap-tilt .mascot-body{transform-origin:100px 190px;animation:.8s ease-in-out taptilt}.mascot.tap-wag .mascot-body{transform-origin:100px 200px;animation:.6s tapsquish}.mascot.tap-wag .tail,.mascot.tap-jump .tail{animation:.18s ease-in-out infinite wag}.mascot.tap-dizzy .mascot-body{transform-origin:100px 190px;animation:1.3s ease-in-out tapdizzy}@keyframes tapjump{0%,to{transform:translateY(0)scale(1)}20%{transform:translateY(6px)scale(1.06,.92)}50%{transform:translateY(-26px)scale(.96,1.06)}80%{transform:translateY(3px)scale(1.04,.96)}}@keyframes tapspin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes taptilt{0%,to{transform:rotate(0)}25%{transform:rotate(-12deg)}60%{transform:rotate(10deg)}}@keyframes tapsquish{0%,to{transform:scale(1)}35%{transform:scale(1.1,.88)}70%{transform:scale(.95,1.07)}}@keyframes tapdizzy{0%,to{transform:rotate(0)}15%{transform:rotate(-14deg)}30%{transform:rotate(13deg)}45%{transform:rotate(-11deg)}60%{transform:rotate(9deg)}75%{transform:rotate(-6deg)}90%{transform:rotate(3deg)}}.emote{font-family:var(--display);color:var(--pink);white-space:nowrap;pointer-events:none;-webkit-text-stroke:.6px var(--line);text-shadow:0 2px 0 var(--card);z-index:3;font-size:17px;font-weight:900;line-height:1;animation:.9s ease-out forwards emote;position:absolute;top:4%;left:50%;transform:translate(-50%)}.playhead .emote{font-size:12px;top:-6px}@keyframes emote{0%{opacity:0;transform:translate(-50%,6px)scale(.6)}25%{opacity:1;transform:translate(-50%,-6px)scale(1.15)}to{opacity:0;transform:translate(-50%,-34px)scale(1)}}@media (prefers-reduced-motion:reduce){.mascot[class*=tap-] .mascot-body{animation:none}}.topbar button.pill{cursor:pointer;min-height:0;color:var(--ink);border-radius:999px;padding:5px 12px;font-size:14px;font-weight:800}.topbar button.pill.gold{color:var(--gold-ink)}.topbar button.pill.fire{color:#5a2d00}.topbar button.pill:active{box-shadow:0 1px 0 var(--line);transform:translateY(2px)}#ranks{scroll-margin-top:12px}.ranks{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.rank{opacity:.6;border:2px solid #0000;border-radius:14px;align-items:center;gap:10px;padding:8px 10px;display:flex}.rank .re{text-align:center;width:30px;font-size:24px}.rank .rs{color:var(--ok);text-align:center;width:18px;font-weight:900}.rank.reached{opacity:1}.rank.current{opacity:1;border-color:var(--line);color:#1f1235;box-shadow:0 3px 0 var(--line);background:#ffd34d}.rank.current .muted{color:#5a4300}.rank.current .rs{color:var(--pink)}.xp-pop{align-items:center;gap:4px;display:flex}.xp-pop .ic{filter:drop-shadow(0 3px 0 var(--line))}.topbar .grow-pill{gap:6px;min-width:0;max-width:58%}.rank-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.app>*{animation:.28s both screenin}.app>:nth-child(2){animation-delay:30ms}.app>:nth-child(3){animation-delay:60ms}.app>:nth-child(n+4){animation-delay:90ms}@keyframes screenin{0%{transform:translateY(10px)}}.app>.topbar{animation:none}.topbar{background:var(--bg);border-bottom:2.5px solid color-mix(in srgb, var(--line) 12%, transparent);margin:-14px -16px 0;padding:10px 16px}.path{gap:46px;padding:18px 0 30px;position:relative}.trail{pointer-events:none;width:0;height:0;position:absolute;top:0;left:50%}.trail polyline{fill:none;stroke-width:9px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:.1 19}.trail .t-all{stroke:color-mix(in srgb, var(--line) 16%, transparent)}.trail .t-done{opacity:.75}.node-row{z-index:1}.start-tag{animation:1.1s ease-in-out infinite nudge;top:50%}.start-tag.right{left:calc(100% + 16px);transform:translateY(-58%)}.start-tag.left{left:auto;right:calc(100% + 16px);transform:translateY(-58%)}.start-tag:after{content:"";border:2.5px solid var(--line);background:#ffd34d;width:10px;height:10px;position:absolute;top:50%;transform:translateY(-50%)rotate(45deg)}.start-tag.right:after{border-top:0;border-right:0;left:-7px}.start-tag.left:after{border-bottom:0;border-left:0;right:-7px}@keyframes nudge{0%,to{margin-inline:0}50%{margin-inline:4px}}button.unit-banner{text-align:left;width:100%;font:inherit;cursor:pointer;min-height:0}button.unit-banner .ut,button.unit-banner .um,button.unit-banner .uc{color:#fff}button.unit-banner .uc{align-items:center;gap:2px;display:inline-flex}.unit.collapsed .path{display:none}.unit.collapsed{gap:0}button.unit-banner:after{content:"▾";color:#fff;margin-left:4px;font-size:18px;transition:transform .2s}.unit:not(.collapsed)>button.unit-banner:after{transform:rotate(180deg)}.rankline{text-align:left;background:color-mix(in srgb, var(--primary) 8%, var(--card));border-radius:16px;flex-direction:column;gap:6px;width:100%;min-height:0;padding:10px 12px;display:flex}.rankline .rl-now{white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:14px;font-weight:800;overflow:hidden}.rankline .row{gap:8px}.rankline .tiny{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.rankline .xpbar{height:12px}.prompt{padding:30px 54px 26px}.prompt .word{overflow-wrap:anywhere;font-size:clamp(26px,8.6vw,40px);line-height:1.1}.flash .face.prompt{padding:24px 20px}.flash .back .word{font-size:clamp(22px,6.4vw,30px)}.sheet-backdrop{z-index:60;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.sheet{box-shadow:0 -6px 0 var(--line)}.nav .tab.on .ti{animation:.35s hop}@keyframes hop{40%{transform:translateY(-6px)scale(1.08)}}html{overscroll-behavior-y:none}body{-webkit-touch-callout:none}button,.pill,.node,.tab,.unit-banner,.mascot,.badge,.bubble{-webkit-user-select:none;user-select:none}@media (prefers-reduced-motion:reduce){.app>*,.start-tag,.nav .tab.on .ti{animation:none}}.rankline .rl-stars{white-space:nowrap;flex:none;font-size:14px;font-weight:800}.prompt{padding-inline:64px}.prompt .word{font-size:clamp(24px,8vw,40px)}.install{color:#1f1235;background:#ffd34d;align-items:flex-start;gap:12px;display:flex;position:relative}.install .muted{color:#5a4300}.install-icon{flex:none;width:54px;height:54px}.install-icon svg{width:100%;height:100%;display:block}.install .btn-gold{background:var(--card);color:var(--ink)}.install-x{color:#5a4300;min-height:36px;padding:4px 10px;position:absolute;top:2px;right:4px}@media (display-mode:fullscreen),(display-mode:standalone){.app{padding-top:calc(18px + env(safe-area-inset-top,0px))}.topbar{margin-top:calc(-18px - env(safe-area-inset-top,0px));padding-top:calc(12px + env(safe-area-inset-top,0px))}}.group-head{font-family:var(--display);letter-spacing:.6px;text-transform:uppercase;color:var(--muted);text-align:center;margin:6px 0 -4px;font-size:15px;font-weight:900}.lists .group-head{text-align:left;grid-column:1/-1;margin:6px 0 -2px 4px}.update-bar{left:50%;bottom:calc(92px + env(safe-area-inset-bottom,0px));z-index:45;background:var(--card);width:min(560px,100% - 24px);color:var(--ink);border:2.5px solid var(--line);box-shadow:0 5px 0 var(--line);border-radius:18px;align-items:center;gap:10px;padding:10px 12px 10px 16px;font-size:14px;font-weight:700;animation:.3s both screenin;display:flex;position:fixed;transform:translate(-50%)}.update-bar .btn-gold{white-space:nowrap;min-height:42px;padding:8px 14px}body:not(.has-nav) .update-bar{bottom:calc(16px + env(safe-area-inset-bottom,0px))}.nav .tab .tl{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}
