@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/fonts/nunito-variable.woff2) format("woff2-variations");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Fredoka Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/fonts/fredoka-variable.woff2) format("woff2-variations");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}:root{--brand-50:#f4f0ff;--brand-100:#e9e1ff;--brand-200:#d4c4ff;--brand-400:#a78bfa;--brand:#7c3aed;--brand-600:#6d28d9;--brand-700:#5b21b6;--brand-glow:rgba(124,58,237,0.42);--hot:#ff5c7a;--hot-soft:#ffe8ed;--scool-math:#7c3aed;--scool-math-from:#a78bfa;--scool-math-to:#6d28d9;--scool-math-soft:#f1ebff;--scool-french:#2b7fff;--scool-french-from:#7ab6ff;--scool-french-to:#1657d6;--scool-french-soft:#e7f1ff;--scool-science:#10b981;--scool-science-from:#6ee7b7;--scool-science-to:#047857;--scool-science-soft:#e3f9f0;--scool-world:#f59e0b;--scool-world-from:#fcd34d;--scool-world-to:#d97706;--scool-world-soft:#fff4e0;--scool-dutch:#f97316;--scool-dutch-from:#fdba74;--scool-dutch-to:#ea580c;--scool-dutch-soft:#fff0e6;--success:#10b981;--success-soft:#e3f9f0;--success-ink:#047857;--almost:#f59e0b;--almost-soft:#fff4e0;--almost-ink:#b45309;--info:#2b7fff;--info-soft:#e7f1ff;--xp:#7c3aed;--coin:#f5b301;--coin-ink:#a67300;--coin-soft:#fff6de;--streak:#ff6b35;--streak-soft:#ffeee6;--bg:#f6f4ff;--surface:#ffffff;--surface-2:#faf8ff;--sunken:#f1eefb;--line:rgba(88,60,160,0.09);--line-strong:rgba(88,60,160,0.18);--ink:#1c1533;--ink-2:#4b4270;--ink-soft:#6f679a;--ink-faint:#9b95bd;--on-brand:#ffffff;--r-xs:12px;--r-sm:18px;--r:24px;--r-lg:32px;--r-xl:38px;--pill:999px;--sh-1:0 1px 2px rgba(60,30,120,0.04),0 4px 12px -6px rgba(60,30,120,0.14);--sh-2:0 2px 4px rgba(60,30,120,0.05),0 12px 28px -12px rgba(60,30,120,0.22);--sh-3:0 4px 8px rgba(60,30,120,0.06),0 24px 48px -20px rgba(60,30,120,0.34);--sh-brand:0 10px 24px -10px var(--brand-glow);--ease:cubic-bezier(0.22,1,0.36,1);--bounce:cubic-bezier(0.34,1.56,0.64,1);--t-micro:140ms;--t-move:320ms;--t-party:800ms;--font-ui:"Nunito Variable","Nunito",ui-rounded,-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,sans-serif;--font-title:"Fredoka Variable","Fredoka","Nunito Variable",ui-rounded,system-ui,sans-serif}*{box-sizing:border-box}body,html{margin:0;padding:0;font-family:var(--font-ui);font-weight:600;color:var(--ink);background:var(--bg);min-height:100%;-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased}body:before{content:"";position:fixed;inset:0;z-index:-2;background:radial-gradient(820px 520px at 6% -8%,#e5dcff 0,transparent 58%),radial-gradient(700px 480px at 98% 2%,#ffe3ec 0,transparent 54%),radial-gradient(760px 620px at 50% 108%,#dff3ff 0,transparent 60%),linear-gradient(180deg,#f7f4ff,#f6f2fb 52%,#fdf6ff)}.display,h1,h2,h3,h4{font-family:var(--font-title);font-weight:600;letter-spacing:-.015em;line-height:1.14;margin:0}button{font-family:inherit;cursor:pointer}a{color:inherit;text-decoration:none}:focus-visible{outline:3px solid var(--brand);outline-offset:3px;border-radius:10px}@keyframes rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes pop{0%{transform:scale(.82);opacity:0}60%{transform:scale(1.05)}to{transform:scale(1);opacity:1}}@keyframes floaty{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes shimmer{0%{background-position:-220% 0}to{background-position:220% 0}}@keyframes fillbar{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes ringpulse{0%{box-shadow:0 0 0 0 var(--brand-glow)}70%{box-shadow:0 0 0 14px rgba(124,58,237,0)}to{box-shadow:0 0 0 0 rgba(124,58,237,0)}}@keyframes shine{0%,74%{transform:translateX(-150%) rotate(18deg)}88%,to{transform:translateX(260%) rotate(18deg)}}@keyframes flyup{0%{opacity:0;transform:translateY(6px) scale(.8)}22%{opacity:1;transform:translateY(-4px) scale(1.08)}55%{opacity:1;transform:translateY(-26px) scale(1)}to{opacity:0;transform:translateY(-58px) scale(.94)}}@keyframes confettifall{0%{opacity:0;transform:translate3d(0,-30px,0) rotate(0deg)}12%{opacity:1}to{opacity:0;transform:translate3d(var(--dx,0),240px,0) rotate(var(--dr,420deg))}}@keyframes bumpin{0%{transform:scale(.4);opacity:0}55%{transform:scale(1.14);opacity:1}75%{transform:scale(.96)}to{transform:scale(1);opacity:1}}@keyframes softglow{0%,to{filter:drop-shadow(0 0 0 rgba(255,255,255,0))}50%{filter:drop-shadow(0 0 14px rgba(255,255,255,.8))}}.shell>*{animation:rise var(--t-move) var(--ease) both}.shell>:first-child{animation-delay:0s}.shell>:nth-child(2){animation-delay:45ms}.shell>:nth-child(3){animation-delay:90ms}.shell>:nth-child(4){animation-delay:.13s}.shell>:nth-child(5){animation-delay:165ms}.shell>:nth-child(n+6){animation-delay:195ms}.shell{max-width:460px;margin:0 auto;padding:max(16px,env(safe-area-inset-top)) 18px 40px}.withnav{padding-bottom:calc(100px + env(safe-area-inset-bottom))}.stack{display:grid;grid-gap:12px;gap:12px}.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.spacer{height:18px}.muted{color:var(--ink-soft);font-weight:600}.section-title{margin:30px 0 14px;font-family:var(--font-title);font-size:25px;font-weight:600;letter-spacing:-.02em;color:var(--ink)}.sectionhead{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:30px 0 14px}.sectionhead h2{font-family:var(--font-title);font-size:25px;font-weight:600}.sectionhead a,.seeall{flex:0 0 auto;padding:9px 15px;border-radius:var(--pill);background:var(--surface);box-shadow:var(--sh-1);font-size:13.5px;font-weight:800;color:var(--brand);transition:transform var(--t-micro) var(--ease)}.sectionhead a:active,.seeall:active{transform:scale(.94)}.lede{color:var(--ink-soft);font-weight:600;line-height:1.55;margin:0}.card{background:var(--surface);border-radius:var(--r);box-shadow:var(--sh-1);padding:18px}.card-lift{box-shadow:var(--sh-2);transition:transform var(--t-move) var(--ease),box-shadow var(--t-move) var(--ease)}.card-lift:hover{transform:translateY(-4px);box-shadow:var(--sh-3)}.card-lift:active{transform:translateY(-1px) scale(.995)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:54px;padding:15px 26px;border:none;border-radius:var(--pill);background:var(--surface);color:var(--ink);box-shadow:var(--sh-1);font-family:var(--font-title);font-weight:600;font-size:18px;transition:transform var(--t-micro) var(--ease),box-shadow var(--t-micro) var(--ease),filter var(--t-micro) var(--ease)}.btn:hover{transform:translateY(-2px);box-shadow:var(--sh-2)}.btn:active{transform:translateY(0) scale(.965);box-shadow:var(--sh-1)}.btn.primary{background:linear-gradient(135deg,var(--brand-400) 0,var(--brand) 46%,var(--brand-600) 100%);color:var(--on-brand);box-shadow:var(--sh-brand)}.btn.primary:hover{box-shadow:0 16px 30px -12px var(--brand-glow)}.btn.hot{background:linear-gradient(135deg,#ff8aa3 0,var(--hot) 55%,#e8395a 100%);color:#fff;box-shadow:0 10px 24px -10px rgba(255,92,122,.6)}.btn.ghost{background:rgba(255,255,255,.9);box-shadow:inset 0 0 0 2px var(--line-strong);color:var(--ink-2);font-size:17px}.btn.dark{background:var(--ink);color:#fff;box-shadow:var(--sh-2)}.btn.wide{width:100%}.btn.lg{min-height:62px;font-size:20px;padding:18px 30px}.btn:disabled{opacity:.42;transform:none;box-shadow:var(--sh-1);cursor:not-allowed}.btn.pulse{animation:ringpulse 2.6s var(--ease) infinite}.linkbtn{background:none;border:none;font:inherit;font-weight:800;color:var(--brand);padding:8px 2px}.backlink{gap:6px;min-height:44px;font-weight:800;font-size:15px;color:var(--ink-soft);margin-bottom:6px}.backlink,.danger{display:inline-flex;align-items:center}.danger{justify-content:center;min-height:48px;padding:12px 16px;border:none;border-radius:var(--r-sm);background:transparent;box-shadow:inset 0 0 0 2px rgba(255,92,122,.35);color:var(--hot);font-family:var(--font-title);font-weight:600;font-size:16px;cursor:pointer;transition:background var(--t-micro) var(--ease),box-shadow var(--t-micro) var(--ease)}.danger:hover{background:var(--hot-soft);box-shadow:inset 0 0 0 2px var(--hot)}.danger:active{transform:scale(.97)}.danger:disabled{opacity:.5;cursor:default}.chip{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:var(--pill);background:var(--surface);box-shadow:var(--sh-1);font-weight:800;font-size:14px;white-space:nowrap}.chip.on{background:var(--brand);color:#fff;box-shadow:var(--sh-brand)}.chips{display:flex;flex-wrap:wrap;gap:8px}.tag{display:inline-block;padding:4px 11px;border-radius:var(--pill);font-size:11.5px;font-weight:800;margin-right:6px}.tag.official{background:var(--success-soft);color:var(--success-ink)}.tag.own{background:var(--sunken);color:var(--ink-soft)}.statbar{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:9px;gap:9px;margin-bottom:18px}.stat{display:grid;justify-items:center;grid-gap:3px;gap:3px;padding:11px 6px 10px;border-radius:var(--r-sm);background:var(--surface);box-shadow:var(--sh-1);transition:transform var(--t-micro) var(--ease)}.stat:active{transform:scale(.95)}.stat .ico{font-size:21px;line-height:1}.stat .val{font-family:var(--font-title);font-size:19px;font-weight:600;line-height:1}.stat .lbl{font-size:10.5px;font-weight:800;color:var(--ink-faint)}.stat.streak{background:var(--streak-soft)}.stat.streak .val{color:var(--streak)}.stat.level{background:var(--brand-50)}.stat.level .val{color:var(--brand)}.stat.coins{background:var(--coin-soft)}.stat.coins .val{color:var(--coin-ink)}.stat.league{background:var(--info-soft)}.stat.league .val{color:#1657d6;font-size:15px}.xpburst{position:absolute;left:50%;translate:-50% 0;pointer-events:none;font-family:var(--font-title);font-size:26px;font-weight:600;color:var(--xp);text-shadow:0 2px 0 #fff,0 6px 18px var(--brand-glow);animation:flyup 1.4s var(--ease) forwards;z-index:40}.xpburst.coin{color:var(--coin-ink);text-shadow:0 2px 0 #fff,0 6px 18px rgba(245,179,1,.5)}.confetti{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:30;border-radius:inherit}.confetti i{position:absolute;top:0;width:9px;height:14px;border-radius:2px;animation:confettifall 1.7s var(--ease) forwards}.levelup{position:relative;overflow:hidden;border-radius:var(--r-lg);padding:26px 22px;text-align:center;color:#fff;background:linear-gradient(140deg,#a78bfa 0,var(--brand) 45%,#ec4899 120%);box-shadow:var(--sh-3);animation:bumpin .62s var(--bounce) both}.levelup .kicker{font-size:12px;font-weight:900;letter-spacing:.12em;text-transform:uppercase;opacity:.9}.levelup .num{font-family:var(--font-title);font-size:58px;font-weight:600;line-height:1;animation:softglow 2.2s var(--ease) infinite}.levelup p{margin:6px 0 0;font-weight:700;opacity:.95}.bar,.bosshp,.herobar,.tilebar,.track{display:block;position:relative;height:12px;border-radius:var(--pill);background:var(--sunken);overflow:hidden}.bar i,.bosshp i,.tilebar i,.track i{display:block;height:100%;border-radius:var(--pill);background:linear-gradient(90deg,var(--brand-400),var(--brand));transform-origin:left center;animation:fillbar .9s var(--ease) both;transition:width .7s var(--ease)}.bar:after,.herobar:after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 30%,rgba(255,255,255,.55) 50%,transparent 70%);background-size:220% 100%;animation:shimmer 3.4s linear infinite;pointer-events:none}.bar.sm,.track.sm{height:8px}.childnav{position:fixed;left:0;right:0;bottom:0;z-index:30;display:grid;grid-template-columns:repeat(6,1fr) .62fr;align-items:end;padding:8px 8px calc(8px + env(safe-area-inset-bottom));background:rgba(255,255,255,.93);box-shadow:0 -8px 30px -18px rgba(60,30,120,.4);backdrop-filter:saturate(1.6) blur(18px);-webkit-backdrop-filter:saturate(1.6) blur(18px)}.childnav a{display:grid;justify-items:center;grid-gap:3px;gap:3px;min-height:52px;padding:7px 0 5px;border-radius:var(--r-sm);font-weight:800;font-size:11px;color:var(--ink-faint);transition:color var(--t-micro) var(--ease)}.childnav a span{font-size:23px;line-height:1.05;transition:transform var(--t-micro) var(--bounce)}.childnav a.on{color:var(--brand)}.childnav a.on span{transform:translateY(-3px) scale(1.12)}.childnav a:active span{transform:scale(.9)}.childnav a.center-cta{position:relative;align-self:center;margin-top:-26px;min-height:0;gap:5px;color:var(--brand)}.childnav a.center-cta span{display:grid;place-items:center;width:58px;height:58px;border-radius:50%;background:linear-gradient(135deg,var(--brand-400),var(--brand-600));color:#fff;font-size:26px;box-shadow:var(--sh-brand)}.childnav a.center-cta:active span{transform:scale(.92)}.childnav .navparent{display:grid;justify-items:center;grid-gap:3px;gap:3px;min-height:52px;padding:7px 0 5px;border-radius:var(--r-sm);font-weight:800;font-size:9.5px;color:var(--ink-faint);opacity:.72;border-left:1px solid var(--line)}.childnav .navparent span{font-size:17px;line-height:1.05}.childnav .navparent:active{opacity:1}.parentbar{display:flex;align-items:center;gap:10px;margin-bottom:18px;flex-wrap:wrap}.sidecol{display:grid;grid-gap:13px;gap:13px;align-content:start}.sidecol .section-title{margin:16px 0 2px;font-size:21px}.friendcard .challengetop a{font-size:13px;font-weight:800;color:var(--brand-700,#5b21b6)}.friendmini{list-style:none;margin:8px 0 0;padding:0;display:grid;grid-gap:6px;gap:6px}.friendmini li{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:7px 10px;border-radius:var(--r-sm);background:var(--sunken)}.friendmini .friendname{font-weight:800;font-size:14px}.friendmini .friendlevel{font-size:12px;font-weight:700;color:var(--ink-soft);white-space:nowrap}.friendcard small{display:block;margin-top:8px}.hellorow{display:flex;align-items:center;gap:14px;margin-bottom:16px}.hellorow .who{flex:1 1;min-width:0}.hellorow .who h1{font-family:var(--font-title);font-size:28px;font-weight:600;line-height:1.1}.hellorow .who p{margin:5px 0 0;font-size:14px;font-weight:700;color:var(--ink-soft);line-height:1.35}.hellorow .avatarwrap{flex:0 0 auto;display:grid;place-items:center;width:76px;height:76px;border-radius:50%;background:linear-gradient(150deg,var(--brand-100),#ffe3ec);box-shadow:var(--sh-1)}.hello{font-family:var(--font-title);font-size:28px;font-weight:600;letter-spacing:-.02em;line-height:1.12;margin-bottom:14px}.hello small{display:block;margin-top:6px;font-family:var(--font-ui);font-size:14px;font-weight:700;color:var(--ink-soft);letter-spacing:0;line-height:1.4}.hero{position:relative;overflow:hidden;border-radius:var(--r-lg);padding:22px 22px 24px;color:#fff;background:linear-gradient(140deg,#8b5cf6 0,var(--brand-600) 42%,#db2777 128%);box-shadow:0 20px 44px -20px rgba(109,40,217,.75)}.hero.math{background:linear-gradient(140deg,var(--scool-math-from) 0,var(--scool-math-to) 78%,#db2777 150%)}.hero.french{background:linear-gradient(140deg,var(--scool-french-from) 0,var(--scool-french-to) 78%,#7c3aed 150%)}.hero.science{background:linear-gradient(140deg,var(--scool-science-from) 0,var(--scool-science-to) 78%,#0e7490 150%)}.hero.world{background:linear-gradient(140deg,var(--scool-world-from) 0,var(--scool-world-to) 78%,#db2777 150%)}.hero .orb{position:absolute;border-radius:50%;background:rgba(255,255,255,.16);pointer-events:none}.hero .orb.a{width:190px;height:190px;right:-62px;top:-74px;animation:floaty 9s var(--ease) infinite}.hero .orb.b{width:108px;height:108px;left:-40px;bottom:-46px;animation:floaty 11s var(--ease) -3s infinite}.hero .orb.c{width:44px;height:44px;right:34%;bottom:14px;background:rgba(255,255,255,.22);animation:floaty 7s var(--ease) -1.5s infinite}.hero .sparkle{position:absolute;pointer-events:none;opacity:.9;font-size:15px;animation:floaty 6s var(--ease) infinite}.hero .kicker{display:inline-flex;align-items:center;gap:6px;padding:6px 13px;border-radius:var(--pill);background:rgba(255,255,255,.22);font-size:11.5px;font-weight:900;letter-spacing:.09em;text-transform:uppercase;position:relative}.hero h2{margin:12px 0 6px;font-size:27px;line-height:1.14;max-width:17ch;text-wrap:balance}.hero h2,.hero p{position:relative}.hero p{margin:0;font-weight:600;opacity:.95;line-height:1.45;max-width:24ch}.hero .heroavatar{position:absolute;right:2px;bottom:0;pointer-events:none;filter:drop-shadow(0 12px 20px rgba(0,0,0,.22))}.herobar{position:relative;height:13px;background:rgba(255,255,255,.26);margin:16px 0 8px;max-width:60%}.herobar i{background:#fff}.heroprogress{position:relative;font-weight:800;font-size:13.5px;opacity:.95}.rewards{position:relative;display:flex;gap:8px;margin-top:14px}.reward{padding:7px 13px;border-radius:var(--pill);background:rgba(255,255,255,.24);font-weight:800;font-size:13px}.hero .btn{position:relative;margin-top:18px;background:#fff;color:var(--brand-700);box-shadow:0 12px 24px -12px rgba(0,0,0,.55)}.hero{margin-bottom:14px}.hero.compact{padding:20px}.hero.compact h2{font-size:23px;margin-top:10px}.subjects{display:grid;grid-gap:13px;gap:13px}.subjectcard{position:relative;overflow:hidden;display:grid;grid-gap:11px;gap:11px;padding:18px 19px 19px;border-radius:var(--r-lg);color:#fff;box-shadow:var(--sh-2);transition:transform var(--t-move) var(--ease),box-shadow var(--t-move) var(--ease)}.subjectcard:hover{transform:translateY(-5px);box-shadow:var(--sh-3)}.subjectcard:active{transform:translateY(-1px) scale(.99)}.subjectcard:after{content:"";position:absolute;right:-46px;top:-56px;width:168px;height:168px;border-radius:50%;background:rgba(255,255,255,.14);pointer-events:none}.subjectcard.math{background:linear-gradient(135deg,var(--scool-math-from),var(--scool-math-to))}.subjectcard.french{background:linear-gradient(135deg,var(--scool-french-from),var(--scool-french-to))}.subjectcard.science{background:linear-gradient(135deg,var(--scool-science-from),var(--scool-science-to))}.subjectcard.world{background:linear-gradient(135deg,var(--scool-world-from),var(--scool-world-to))}.subjectcard.dutch{background:linear-gradient(135deg,var(--scool-dutch-from),var(--scool-dutch-to))}.subjecttop{position:relative;display:flex;align-items:center;gap:13px}.subjecticon{flex:0 0 auto;display:grid;place-items:center;width:52px;height:52px;border-radius:17px;background:rgba(255,255,255,.24);font-size:27px}.subjectname{flex:1 1;min-width:0}.subjectname strong{display:block;font-family:var(--font-title);font-weight:600;font-size:21px}.subjectname small{font-size:12.5px;font-weight:700;opacity:.9}.subjectpct{font-family:var(--font-title);font-size:27px;font-weight:600}.subjectcard .track{position:relative;background:rgba(255,255,255,.26);height:11px}.subjectcard .track i{background:#fff}.subjectnext{position:relative;display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13.5px;font-weight:700;opacity:.96}.subjectgo{flex:0 0 auto;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.26);font-size:15px}.tiles{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}.tile{display:grid;grid-gap:8px;gap:8px;align-content:start;padding:16px;border-radius:var(--r);background:var(--surface);box-shadow:var(--sh-1);transition:transform var(--t-move) var(--ease),box-shadow var(--t-move) var(--ease)}.tile:hover{transform:translateY(-4px);box-shadow:var(--sh-2)}.tile:active{transform:scale(.98)}.tileicon{width:46px;height:46px;display:grid;place-items:center;font-size:25px;border-radius:15px;background:var(--sunken)}.tile.math .tileicon{background:var(--scool-math-soft)}.tile.french .tileicon{background:var(--scool-french-soft)}.tile.science .tileicon{background:var(--scool-science-soft)}.tile.world .tileicon{background:var(--scool-world-soft)}.tilename{font-family:var(--font-title);font-size:18px;font-weight:600;line-height:1.2}.tilemeta{font-size:12.5px;font-weight:700;color:var(--ink-soft)}.challenges{display:grid;grid-gap:11px;gap:11px}.challenge{display:grid;grid-gap:9px;gap:9px;padding:16px 17px;border-radius:var(--r)}.challengetop{display:flex;justify-content:space-between;align-items:center;gap:10px}.challengetop strong{font-size:16px;font-weight:800}.challengetop span{font-family:var(--font-title);font-weight:600;font-size:16px;color:var(--brand)}.challenge small{font-size:13px;color:var(--ink-soft);font-weight:600;line-height:1.4}.challenge.done{background:var(--success-soft)}.challenge.done .challengetop span{color:var(--success-ink)}.challenge.done .track i{background:linear-gradient(90deg,#6ee7b7,var(--success))}.mission{display:grid;grid-gap:11px;gap:11px}.objectives{list-style:none;margin:0;padding:0;display:grid;grid-gap:8px;gap:8px}.objectives li{display:flex;justify-content:space-between;gap:10px;padding:11px 13px;border-radius:var(--r-xs);background:var(--sunken);font-size:14px;font-weight:700}.objectives li.done{background:var(--success-soft);color:var(--success-ink)}.streakcard{display:grid;grid-gap:8px;gap:8px}.streakcard strong{font-family:var(--font-title);font-size:18px;font-weight:600}.levelcard{display:grid;grid-gap:10px;gap:10px}.levelrow{display:flex;justify-content:space-between;align-items:baseline;gap:10px}.levelrow strong{font-family:var(--font-title);font-size:20px;font-weight:600}.levelrow span{font-weight:800;font-size:14px;color:var(--ink-soft)}.levellink{display:inline-block;font-size:13.5px;font-weight:800;color:var(--brand)}.session{max-width:460px;margin:0 auto;padding:max(14px,env(safe-area-inset-top)) 18px calc(20px + env(safe-area-inset-bottom));min-height:100dvh;display:flex;flex-direction:column}.session-top{display:flex;align-items:center;gap:12px;margin-bottom:20px}.quit{flex:0 0 auto;width:44px;height:44px;display:grid;place-items:center;border-radius:50%;background:var(--surface);box-shadow:var(--sh-1);color:var(--ink-soft);font-size:17px;font-weight:800;transition:transform var(--t-micro) var(--ease)}.quit:active{transform:scale(.9)}.quit{border:0;cursor:pointer}.leaveveil{position:fixed;inset:0;z-index:60;display:flex;align-items:flex-end;justify-content:center;background:rgba(26,18,48,.5);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:veilin var(--t-move) var(--ease) both;padding:16px}.leavesheet{width:min(440px,100%);background:var(--surface);border-radius:26px;padding:24px 20px calc(20px + env(safe-area-inset-bottom));box-shadow:var(--sh-3);display:grid;grid-gap:12px;gap:12px;animation:sheetup var(--t-move) var(--ease) both;max-height:min(86vh,720px);overflow-y:auto;-webkit-overflow-scrolling:touch}.leaveveil{overflow:hidden}.leavetitle{font-family:var(--font-title);font-size:22px;font-weight:600;color:var(--ink);margin:0}.leavebody{margin:0 0 6px;color:var(--ink-soft);font-size:15px;line-height:1.5}.leavebody strong{color:var(--brand)}@keyframes veilin{0%{opacity:0}to{opacity:1}}@keyframes sheetup{0%{transform:translateY(22px);opacity:0}to{transform:translateY(0);opacity:1}}@media (prefers-reduced-motion:reduce){.leavesheet,.leaveveil{animation:none}}.dots{flex:1 1;display:flex;gap:4px;align-items:center}.dot{flex:1 1;height:9px;border-radius:var(--pill);background:rgba(88,60,160,.14);transition:background var(--t-move) var(--ease),transform var(--t-move) var(--bounce)}.dot.done{background:linear-gradient(90deg,#6ee7b7,var(--success))}.dot.wrong{background:linear-gradient(90deg,#fcd34d,var(--almost))}.dot.current{background:var(--brand);transform:scaleY(1.5)}.skilltag{display:inline-flex;align-self:flex-start;align-items:center;gap:6px;padding:7px 15px;border-radius:var(--pill);background:var(--brand-50);color:var(--brand-700);font-weight:800;font-size:13px;margin:0 0 14px}.promptrow{display:flex;align-items:flex-start;gap:12px;margin-bottom:22px}.prompt{flex:1 1;margin:0;font-family:var(--font-ui);font-size:27px;font-weight:800;letter-spacing:-.015em;line-height:1.3}.instructions{margin:0 0 12px;font-size:15px;font-weight:700;color:var(--ink-soft)}.speak{flex:0 0 auto;width:48px;height:48px;border:none;border-radius:50%;background:var(--surface);box-shadow:var(--sh-1);font-size:20px;transition:transform var(--t-micro) var(--ease)}.speak:active{transform:scale(.9)}.answer{width:100%;padding:20px;font-family:var(--font-title);font-size:30px;font-weight:600;text-align:center;letter-spacing:.02em;border:none;box-shadow:inset 0 0 0 2px var(--line-strong);border-radius:var(--r);background:var(--surface);color:var(--ink);outline:none}.answer:focus{box-shadow:inset 0 0 0 3px var(--brand)}.pad{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:10px;gap:10px;margin-top:14px}.key{min-height:64px;border:none;border-radius:var(--r-sm);background:var(--surface);box-shadow:var(--sh-1);font-family:var(--font-title);font-size:25px;font-weight:600;color:var(--ink);transition:transform var(--t-micro) var(--ease),background var(--t-micro) var(--ease)}.key:hover{transform:translateY(-2px)}.key:active{transform:scale(.92);background:var(--brand-50)}.key.ok{background:linear-gradient(140deg,var(--success),var(--success-ink));color:#fff;font-size:18px;box-shadow:0 10px 22px -12px rgba(16,185,129,.75)}.key.ok:active{background:var(--success)}.key.ok:disabled{opacity:.45;box-shadow:none}.key.ok.next{background:linear-gradient(140deg,var(--brand-400),var(--brand-600));box-shadow:var(--sh-brand);font-size:15px;letter-spacing:-.01em;animation:keynext .26s var(--bounce)}.key.ok.next:active{background:var(--brand)}@keyframes keynext{0%{transform:scale(.88)}to{transform:none}}.choices{display:grid;grid-gap:11px;gap:11px}.choice{position:relative;min-height:68px;padding:18px 20px;text-align:left;border:none;border-radius:var(--r);background:var(--surface);box-shadow:var(--sh-1);font-family:var(--font-ui);font-size:19px;font-weight:800;color:var(--ink);transition:transform var(--t-micro) var(--ease),box-shadow var(--t-move) var(--ease),background var(--t-move) var(--ease)}.choice:hover{transform:translateY(-3px);box-shadow:var(--sh-2)}.choice:active{transform:scale(.98)}.choice.selected{background:var(--brand-50);box-shadow:var(--sh-2),inset 0 0 0 3px var(--brand)}.choice.good{background:var(--success-soft);box-shadow:var(--sh-2),inset 0 0 0 3px var(--success)}.choice.bad{background:var(--almost-soft);box-shadow:var(--sh-1),inset 0 0 0 3px var(--almost)}.choice.bad:after,.choice.good:after{position:absolute;right:18px;top:50%;translate:0 -50%;font-size:21px}.choice.good:after{content:"✓";color:var(--success-ink)}.choice.bad:after{content:"✕";color:var(--almost-ink)}.truefalse{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}.tfbtn{min-height:92px;border:none;border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--sh-1);font-family:var(--font-title);font-size:21px;font-weight:600;color:var(--ink);transition:transform var(--t-micro) var(--ease),box-shadow var(--t-move) var(--ease)}.tfbtn:hover{transform:translateY(-3px);box-shadow:var(--sh-2)}.tfbtn:active{transform:scale(.97)}.tfbtn.selected{background:var(--brand-50);box-shadow:var(--sh-2),inset 0 0 0 3px var(--brand)}.blanksline{font-size:21px;font-weight:700;line-height:2.2}.blank{display:inline-block;min-width:92px;margin:0 4px;padding:8px 12px;border:none;border-radius:var(--r-xs);background:var(--surface);box-shadow:inset 0 0 0 2px var(--line-strong);font:inherit;font-size:19px;text-align:center}.blank:focus{box-shadow:inset 0 0 0 3px var(--brand);outline:none}.matchprogress{margin:0 0 10px;font-size:14px;font-weight:800;color:var(--ink-soft)}.matchprogress strong{color:var(--brand)}.matching{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px;align-items:start}.matchbtn{display:flex;flex-direction:column;align-items:stretch;gap:6px;width:100%;min-height:60px;padding:12px 12px 12px 11px;border:none;border-radius:var(--r-sm);background:var(--surface);box-shadow:var(--sh-1);font:inherit;font-weight:800;font-size:15.5px;color:var(--ink);text-align:left;overflow-wrap:anywhere;transition:transform var(--t-micro) var(--ease),background var(--t-micro) var(--ease)}.matchbtn:active{transform:scale(.96)}.matchbtn:disabled{opacity:.92}.matchrow{display:flex;align-items:center;gap:9px}.matchlabel{flex:1 1 auto;line-height:1.25}.matchnum{flex:0 0 auto;display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:var(--pair-bg,var(--sunken));color:var(--pair-ink,var(--ink-faint));font-family:var(--font-title);font-size:14px;font-weight:600}.matcharrow{flex:0 0 auto;color:var(--brand);font-size:17px}.matchbtn.on{background:var(--brand-50);box-shadow:inset 0 0 0 3px var(--brand)}.matchbtn.on .matchnum{background:var(--brand);color:#fff}.matchbtn.paired{background:var(--pair-bg);box-shadow:inset 0 0 0 2px var(--pair-ink)}.matchbtn.paired .matchnum{background:var(--pair-ink);color:#fff}.matchbtn.paired .matchlabel,.matchecho{color:var(--pair-ink)}.matchecho{display:flex;align-items:center;gap:6px;margin-left:34px;font-size:13.5px;font-weight:800}.matchecho b{margin-left:auto;opacity:.55;font-size:12px}.matchbtn.pickable{box-shadow:inset 0 0 0 2px var(--brand-200)}.sequence,.tokens{display:flex;flex-wrap:wrap;gap:9px}.tokens{margin-top:12px}.token{min-height:50px;padding:13px 17px;border:none;border-radius:var(--pill);background:var(--surface);box-shadow:var(--sh-1);font:inherit;font-weight:800;font-size:16px;transition:transform var(--t-micro) var(--ease)}.token:active{transform:scale(.94)}.token.placed{background:var(--brand);color:#fff;box-shadow:var(--sh-brand)}.hintline{margin:14px 0 0;font-size:15px;font-weight:700;color:var(--ink-soft)}.hintbtn{background:none;border:none;font:inherit;font-weight:800;color:var(--brand)}.tip{margin:14px 0 0;padding:15px 16px;border-radius:var(--r-sm);background:rgba(255,255,255,.75);font-size:15.5px;font-weight:700;line-height:1.5;max-height:10.5em;overflow-y:auto;-webkit-overflow-scrolling:touch}.actionbar{position:fixed;left:0;right:0;bottom:0;z-index:40;display:flex;justify-content:center;padding:10px 18px calc(10px + env(safe-area-inset-bottom));background:rgba(246,244,255,.94);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 -10px 30px -18px rgba(60,30,120,.55);animation:barup var(--t-move) var(--ease) both}.actionbar .btn{width:100%;max-width:424px;min-height:56px;margin:0}@keyframes barup{0%{transform:translateY(100%)}to{transform:none}}.session.hasbar{padding-bottom:calc(88px + env(safe-area-inset-bottom))}.figure{display:flex;justify-content:center;margin:14px 0}.feedbackfigure{background:#fff;border-radius:var(--r-sm);padding:10px}.error{color:var(--almost-ink);font-weight:700}.feedback{position:relative;margin-top:20px;padding:20px;border-radius:var(--r-lg);animation:bumpin .46s var(--bounce) both}.feedback.ok{background:linear-gradient(150deg,#e3f9f0,#d3f4e6)}.feedback.almost{background:linear-gradient(150deg,#fff4e0,#ffeacc)}.feedback h3{font-family:var(--font-title);font-size:24px;font-weight:600;margin:0 0 4px}.feedback.ok h3{color:var(--success-ink)}.feedback.almost h3{color:var(--almost-ink)}.feedback p{margin:0;font-weight:700;line-height:1.5}.feedbackavatar{display:flex;justify-content:center;margin-bottom:6px}.feedbackhead{display:flex;align-items:center;gap:12px;text-align:left}.feedbackhead .feedbackavatar{flex:0 0 auto;margin:0;width:68px;height:48px;overflow:hidden}.feedbackhead .feedbackavatar>*{transform:scale(.7);transform-origin:top left}.feedbacksay{flex:1 1 auto;min-width:0}.feedbacksay h3{margin-bottom:2px}.why{margin-top:12px}.why summary{display:inline-block;padding:9px 15px;border-radius:var(--pill);background:rgba(255,255,255,.8);font-size:14.5px;font-weight:800;color:var(--success-ink);cursor:pointer;list-style:none}.why summary::-webkit-details-marker{display:none}.why summary:after{content:" ▾"}.why[open] summary:after{content:" ▴"}.why p{margin-top:10px;padding:14px 15px;border-radius:var(--r-sm);background:rgba(255,255,255,.75);font-size:15px;line-height:1.5}.feedbackxp{display:inline-flex;align-items:center;gap:6px;margin-top:8px;padding:7px 15px;border-radius:var(--pill);background:rgba(255,255,255,.82);font-family:var(--font-title);font-weight:600;font-size:17px;color:var(--xp)}.celebration{position:relative;text-align:center;margin:auto 0;padding:12px 0}.celebration .big{font-size:66px;line-height:1;animation:bumpin .7s var(--bounce) both}.celebration h1{font-family:var(--font-title);font-size:34px;font-weight:600;margin:12px 0 8px}.celebration>p{color:var(--ink-soft);font-weight:700}.eventlist{display:grid;grid-gap:9px;gap:9px;margin:18px 0}.event{padding:14px 16px;border-radius:var(--r-sm);background:var(--surface);box-shadow:var(--sh-1);font-weight:800;font-size:15px;animation:pop .46s var(--bounce) both}.event:nth-child(2){animation-delay:.11s}.event:nth-child(3){animation-delay:.22s}.event:nth-child(n+4){animation-delay:.33s}.stagebanner{margin:14px 0}.stars{letter-spacing:4px;color:var(--coin)}.timing{margin:6px 0 16px;padding:20px 16px;background:var(--surface);border-radius:var(--r);box-shadow:var(--sh-1);text-align:center}.timingmain{display:grid;grid-gap:3px;gap:3px}.timingvalue{font-family:var(--font-title);font-size:36px;font-weight:600;color:var(--brand);line-height:1}.timinglabel{font-size:13px;font-weight:800;color:var(--ink-soft)}.timingdelta{margin:10px 0 0;font-size:14.5px;font-weight:800}.timingrange{margin:5px 0 0;font-size:12.5px;color:var(--ink-faint);font-weight:700}.skillrecap{display:grid;grid-gap:7px;gap:7px;margin-bottom:16px;text-align:left}.skillrecaprow{display:grid;grid-template-columns:1fr auto auto;grid-gap:11px;gap:11px;align-items:center;padding:12px 15px;background:var(--surface);border-radius:var(--r-sm);box-shadow:var(--sh-1);font-size:14.5px}.skillrecapname{font-weight:800}.skillrecapscore{font-family:var(--font-title);font-weight:600;color:var(--brand)}.skillrecaptime{font-size:12.5px;color:var(--ink-faint);font-weight:700;min-width:46px;text-align:right}.avatarfig{display:block;overflow:hidden}@keyframes av-breathe{0%,to{transform:translateY(0) scale(1)}45%{transform:translateY(-2.6px) scale(.995,1.014)}}@keyframes av-shift{0%,to{transform:translateX(-1.6px) rotate(-.5deg)}50%{transform:translateX(1.6px) rotate(.5deg)}}@keyframes av-head{0%,to{transform:translateY(0) rotate(-1.4deg)}30%{transform:translateY(-2.4px) rotate(.6deg)}62%{transform:translateY(-1px) rotate(1.6deg)}}@keyframes av-hair{0%,to{transform:rotate(-1.8deg) translateY(0)}50%{transform:rotate(1.8deg) translateY(1.2px)}}@keyframes av-armL{0%,to{transform:rotate(-3.4deg)}50%{transform:rotate(2.6deg)}}@keyframes av-armR{0%,to{transform:rotate(3.4deg)}50%{transform:rotate(-2.6deg)}}@keyframes av-legs{0%,to{transform:translateY(0)}45%{transform:translateY(1.4px)}}@keyframes av-blink{0%,88%,to{transform:scaleY(1)}91%,96%{transform:scaleY(1)}93.5%{transform:scaleY(.05)}}@keyframes av-pet{0%,to{transform:translateY(0) rotate(0deg)}25%{transform:translateY(-4px) rotate(-3deg)}55%{transform:translateY(0) rotate(2deg)}}@keyframes av-wave{0%,to{transform:rotate(0deg)}15%{transform:rotate(-58deg)}30%{transform:rotate(-34deg)}45%{transform:rotate(-62deg)}60%{transform:rotate(-34deg)}75%{transform:rotate(-58deg)}90%{transform:rotate(-6deg)}}@keyframes av-jump{0%,to{transform:translateY(0) scaleY(1)}12%{transform:translateY(2px) scaleY(.92)}38%{transform:translateY(-22px) scaleY(1.05)}62%{transform:translateY(0) scaleY(.95)}76%{transform:translateY(-7px) scaleY(1.02)}}@keyframes av-thumbL{0%,to{transform:rotate(0deg) translateY(0)}25%,75%{transform:rotate(-42deg) translateY(-6px)}}@keyframes av-dance{0%,to{transform:translateX(0) rotate(0deg)}20%{transform:translateX(-7px) rotate(-6deg)}45%{transform:translateX(7px) rotate(6deg)}70%{transform:translateX(-5px) rotate(-4deg)}}@keyframes av-danceHead{0%,to{transform:rotate(0deg) translateY(0)}25%{transform:rotate(8deg) translateY(-3px)}60%{transform:rotate(-8deg) translateY(-3px)}}@keyframes av-dabL{0%{transform:rotate(0deg)}22%,82%{transform:rotate(-72deg) translate(6px,-10px)}to{transform:rotate(0deg)}}@keyframes av-dabR{0%{transform:rotate(0deg)}22%,82%{transform:rotate(-46deg) translate(-4px,-22px)}to{transform:rotate(0deg)}}@keyframes av-dabHead{0%{transform:rotate(0deg)}22%,82%{transform:rotate(-22deg) translate(-8px,6px)}to{transform:rotate(0deg)}}@keyframes av-clapL{0%,to{transform:rotate(-38deg) translateX(0)}50%{transform:rotate(-38deg) translateX(15px)}}@keyframes av-clapR{0%,to{transform:rotate(38deg) translateX(0)}50%{transform:rotate(38deg) translateX(-15px)}}@keyframes av-thinkHead{0%,to{transform:rotate(0deg)}40%,70%{transform:rotate(-9deg) translateY(-2px)}}@keyframes av-thinkArm{0%,to{transform:rotate(0deg)}40%,70%{transform:rotate(-78deg) translate(10px,-6px)}}@keyframes av-cheer{0%,to{transform:translateY(0)}20%{transform:translateY(-18px)}40%{transform:translateY(0)}60%{transform:translateY(-12px)}80%{transform:translateY(0)}}@keyframes av-cheerL{0%,to{transform:rotate(-8deg)}20%,60%{transform:rotate(-142deg) translate(14px,8px)}}@keyframes av-cheerR{0%,to{transform:rotate(8deg)}20%,60%{transform:rotate(142deg) translate(-14px,8px)}}@keyframes av-sleep{0%,to{transform:rotate(9deg) translateY(2px)}50%{transform:rotate(11deg) translateY(4px)}}@keyframes av-look{0%,to{transform:rotate(0deg)}20%{transform:rotate(-11deg)}45%{transform:rotate(-11deg)}65%{transform:rotate(11deg)}85%{transform:rotate(11deg)}}@keyframes av-sad{0%,to{transform:translateY(2px) rotate(-3deg)}50%{transform:translateY(4px) rotate(-3deg)}}@keyframes av-walk{0%,to{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-3px) rotate(1deg)}}.avatarfig.is-animated .avatar-arm,.avatarfig.is-animated .avatar-body,.avatarfig.is-animated .avatar-eyes,.avatarfig.is-animated .avatar-hair-back,.avatarfig.is-animated .avatar-head,.avatarfig.is-animated .avatar-legs,.avatarfig.is-animated .avatar-pet{transform-box:fill-box}.avatarfig.is-animated .avatar-body{transform-origin:50% 100%;animation:av-breathe 3.6s var(--ease) infinite,av-shift 9s var(--ease) infinite}.avatarfig.is-animated .avatar-legs{transform-origin:50% 100%;animation:av-legs 3.6s var(--ease) infinite}.avatarfig.is-animated .avatar-head{transform-origin:50% 92%;animation:av-head 5.4s var(--ease) infinite}.avatarfig.is-animated .avatar-hair-back{transform-origin:50% 8%;animation:av-hair 5.4s var(--ease) -.35s infinite}.avatarfig.is-animated .avatar-arm.left{transform-origin:90% 6%;animation:av-armL 4.6s var(--ease) infinite}.avatarfig.is-animated .avatar-arm.right{transform-origin:10% 6%;animation:av-armR 4.6s var(--ease) -.2s infinite}.avatarfig.is-animated .avatar-eyes{transform-origin:50% 50%;animation:av-blink 4.2s step-end infinite}.avatarfig.is-animated .avatar-pet{transform-origin:50% 100%;animation:av-pet 2.4s var(--ease) infinite}.avatarfig.is-animated:nth-of-type(2n) .avatar-eyes{animation-delay:-1.4s}.avatarfig.is-animated:nth-of-type(3n) .avatar-eyes{animation-delay:-2.9s}.avatarfig.is-animated:nth-of-type(2n) .avatar-body{animation-delay:-1.1s,-3s}.avatarfig.is-animated:nth-of-type(3n) .avatar-body{animation-delay:-2.2s,-6s}.avatarfig.act-wave .avatar-arm.right{animation:av-wave 1.5s var(--ease) 1}.avatarfig.act-jump .avatar-body{animation:av-jump .9s var(--bounce) 1}.avatarfig.act-thumbsup .avatar-arm.right{animation:av-thumbL .9s var(--bounce) 1}.avatarfig.act-dance .avatar-body{animation:av-dance 1.2s var(--ease) 2}.avatarfig.act-dance .avatar-head{animation:av-danceHead .6s var(--ease) 4}.avatarfig.act-dab .avatar-arm.left{animation:av-dabL 1.3s var(--bounce) 1}.avatarfig.act-dab .avatar-arm.right{animation:av-dabR 1.3s var(--bounce) 1}.avatarfig.act-dab .avatar-head{animation:av-dabHead 1.3s var(--bounce) 1}.avatarfig.act-clap .avatar-arm.left{animation:av-clapL .34s var(--ease) 4}.avatarfig.act-clap .avatar-arm.right{animation:av-clapR .34s var(--ease) 4}.avatarfig.act-think .avatar-head{animation:av-thinkHead 2.2s var(--ease) infinite}.avatarfig.act-think .avatar-arm.right{animation:av-thinkArm 2.2s var(--ease) infinite}.avatarfig.act-celebrate .avatar-body{animation:av-cheer 1.3s var(--bounce) 1}.avatarfig.act-celebrate .avatar-arm.left{animation:av-cheerL 1.3s var(--bounce) 1}.avatarfig.act-celebrate .avatar-arm.right{animation:av-cheerR 1.3s var(--bounce) 1}.avatarfig.act-sleep .avatar-head{animation:av-sleep 3.6s var(--ease) infinite}.avatarfig.act-sleep .avatar-body{animation:av-breathe 5.4s var(--ease) infinite}.avatarfig.act-look .avatar-head{animation:av-look 4.2s var(--ease) infinite}.avatarfig.act-sad .avatar-body{animation:av-sad 2.6s var(--ease) infinite}.avatarfig.act-sad .avatar-head{animation:av-sad 2.6s var(--ease) -.3s infinite}.avatarfig.act-walk .avatar-body{animation:av-walk .7s var(--ease) infinite}.avatarfig.act-walk .avatar-arm.left{animation:av-armL .7s var(--ease) infinite}.avatarfig.act-walk .avatar-arm.right{animation:av-armR .7s var(--ease) infinite}.avatarzzz{position:absolute;top:4%;right:6%;font-size:18px;font-weight:800;color:var(--ink-faint);animation:floaty 2.6s var(--ease) infinite;pointer-events:none}.session .avatarfig *{animation:none!important}.feedback .avatarfig *{animation-play-state:running!important}.feedback .avatarfig.is-animated .avatar-body{animation:av-breathe 3.6s var(--ease) infinite!important}.feedback .avatarfig.act-jump .avatar-body{animation:av-jump .9s var(--bounce) 1!important}.feedback .avatarfig.act-celebrate .avatar-body{animation:av-cheer 1.3s var(--bounce) 1!important}.feedback .avatarfig.act-celebrate .avatar-arm.left{animation:av-cheerL 1.3s var(--bounce) 1!important}.feedback .avatarfig.act-celebrate .avatar-arm.right{animation:av-cheerR 1.3s var(--bounce) 1!important}.feedback .avatarfig.act-thumbsup .avatar-arm.right{animation:av-thumbL .9s var(--bounce) 1!important}.feedback .avatarfig.act-think .avatar-head{animation:av-thinkHead 2.2s var(--ease) infinite!important}.creator,.creatorstage{position:relative}.creatorstage{overflow:hidden;display:grid;justify-items:center;max-width:420px;margin-inline:auto;padding:20px 18px 14px;border-radius:var(--r-lg);background:linear-gradient(160deg,#ede7ff,#f7edff 45%,#ffe9f2);box-shadow:var(--sh-1);margin-bottom:14px}.creatorstage .orb{position:absolute;border-radius:50%;background:rgba(255,255,255,.55);pointer-events:none}.creatorstage .orb.a{width:140px;height:140px;left:-40px;top:-46px;animation:floaty 10s var(--ease) infinite}.creatorstage .orb.b{width:96px;height:96px;right:-30px;bottom:-34px;animation:floaty 8s var(--ease) -2s infinite}.creatorstage .stagefloor{position:absolute;bottom:46px;width:172px;height:22px;border-radius:50%;background:rgba(124,58,237,.1);filter:blur(2px)}.creatoractions,.creatorfig{position:relative}.creatoractions{display:flex;gap:8px;margin-top:6px;flex-wrap:wrap;justify-content:center}.creatoractions button{min-height:40px;padding:9px 15px;border:none;border-radius:var(--pill);background:rgba(255,255,255,.86);box-shadow:var(--sh-1);font:inherit;font-weight:800;font-size:13.5px;color:var(--brand-700);transition:transform var(--t-micro) var(--ease)}.creatoractions button:active{transform:scale(.93)}.slotbar{display:flex;gap:8px;overflow-x:auto;padding:3px 2px 14px;margin-bottom:4px;scrollbar-width:none}.slotbar::-webkit-scrollbar{display:none}.slotbar button{flex:0 0 auto;display:inline-flex;align-items:center;gap:7px;min-height:46px;border:none;background:var(--surface);border-radius:var(--pill);padding:11px 17px;box-shadow:var(--sh-1);font:inherit;font-weight:800;font-size:14px;color:var(--ink-soft);transition:transform var(--t-micro) var(--ease),background var(--t-move) var(--ease)}.slotbar button:active{transform:scale(.95)}.slotbar button.on{color:#fff;background:linear-gradient(135deg,var(--brand-400),var(--brand-600));box-shadow:var(--sh-brand)}.shop{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));grid-gap:11px;gap:11px}.shopitem{position:relative;overflow:hidden;display:grid;grid-gap:7px;gap:7px;justify-items:center;text-align:center;background:var(--surface);border:none;border-radius:var(--r);padding:12px 9px 11px;box-shadow:var(--sh-1);font:inherit;transition:transform var(--t-move) var(--ease),box-shadow var(--t-move) var(--ease)}.shopitem:hover{transform:translateY(-4px);box-shadow:var(--sh-2)}.shopitem:active{transform:scale(.96)}.shopitem strong{font-size:12.5px;font-weight:800;line-height:1.25}.shopitem .price{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:800;color:var(--coin-ink)}.shopitem.worn{box-shadow:var(--sh-2),inset 0 0 0 3px var(--brand)}.shopitem.worn:before{content:"PORTÉ";position:absolute;top:7px;left:7px;padding:3px 7px;border-radius:var(--pill);background:var(--brand);color:#fff;font-size:8.5px;font-weight:900;letter-spacing:.05em}.shopitem.locked{opacity:.72}.rarity{font-size:9.5px;font-weight:900;letter-spacing:.06em;text-transform:uppercase}.shopitem.r-common .rarity{color:var(--ink-faint)}.shopitem.r-rare{box-shadow:var(--sh-1),inset 0 0 0 2px #60a5fa}.shopitem.r-rare .rarity{color:#2563eb}.shopitem.r-epic{box-shadow:var(--sh-1),inset 0 0 0 2px #c084fc}.shopitem.r-epic .rarity{color:#9333ea}.shopitem.r-legendary{box-shadow:var(--sh-2),inset 0 0 0 2px var(--coin);background:linear-gradient(165deg,#fffdf5,#fff6de)}.shopitem.r-legendary .rarity{color:var(--coin-ink)}.shopitem.r-legendary:after{content:"";position:absolute;top:-60%;left:0;width:40%;height:220%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.85),transparent);animation:shine 6s var(--ease) infinite;pointer-events:none}.wallet{display:inline-flex;align-items:center;gap:7px;padding:9px 17px;border-radius:var(--pill);background:var(--coin-soft);box-shadow:var(--sh-1);font-family:var(--font-title);font-weight:600;font-size:18px;color:var(--coin-ink)}.world{margin-bottom:26px}.worldhead{display:flex;align-items:center;gap:12px;margin-bottom:12px}.worldicon{display:grid;place-items:center;width:50px;height:50px;border-radius:17px;background:var(--surface);box-shadow:var(--sh-1);font-size:25px}.worldhead strong{flex:1 1;font-size:19px}.worldhead strong,.worldpct{font-family:var(--font-title);font-weight:600}.worldpct{color:var(--brand)}.path{display:grid;grid-gap:10px;gap:10px}.stage{display:flex;align-items:center;gap:13px;padding:13px 15px;border-radius:var(--r);background:var(--surface);box-shadow:var(--sh-1);transition:transform var(--t-micro) var(--ease)}.stage:active{transform:scale(.985)}.stage .node{flex:0 0 auto;width:48px;height:48px;border-radius:50%;display:grid;place-items:center;font-family:var(--font-title);font-weight:600;font-size:17px;background:var(--sunken);color:var(--ink-faint)}.stage.available .node{background:linear-gradient(135deg,var(--brand-400),var(--brand-600));color:#fff;box-shadow:var(--sh-brand)}.stage.done .node{background:linear-gradient(135deg,#6ee7b7,var(--success));color:#fff}.stage.locked{opacity:.6}.stagetitle{flex:1 1;min-width:0;display:grid;grid-gap:2px;gap:2px}.stagetitle strong{font-size:15.5px;font-weight:800}.stagetitle small{font-size:12.5px;color:var(--ink-soft);font-weight:600}.bossbar{display:grid;grid-gap:7px;gap:7px;margin-top:10px}.bossdown{color:var(--success-ink);font-weight:800}.badges{display:grid;grid-template-columns:repeat(auto-fill,minmax(108px,1fr));grid-gap:12px;gap:12px}.badge{position:relative;overflow:hidden;display:grid;grid-gap:6px;gap:6px;justify-items:center;text-align:center;padding:16px 10px;border-radius:var(--r);background:var(--surface);box-shadow:var(--sh-1)}.badge.locked{opacity:.5;filter:grayscale(1)}.badge strong{font-size:12.5px;font-weight:800;line-height:1.25}.badge small{font-size:11px;color:var(--ink-soft);line-height:1.3;font-weight:600}.badgeicon{font-size:36px;line-height:1}.badge:not(.locked):after{content:"";position:absolute;top:-60%;left:0;width:36%;height:220%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.8),transparent);animation:shine 7s var(--ease) infinite;pointer-events:none}.kpis{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));grid-gap:11px;gap:11px}.kpi,.kpis{display:grid}.kpi{grid-gap:3px;gap:3px;padding:17px}.kpi strong{font-family:var(--font-title);font-size:27px;font-weight:600;line-height:1.1}.kpi span{font-size:13px;font-weight:700;color:var(--ink-soft)}.daygrid{display:grid;grid-template-columns:repeat(14,1fr);grid-gap:5px;gap:5px}.daycell{aspect-ratio:1;border-radius:5px;background:var(--brand)}.gaprow{display:grid;grid-template-columns:1fr auto;grid-gap:12px;gap:12px;align-items:center;padding:14px 16px}.gapbody{display:grid;grid-gap:3px;gap:3px}.gapbody strong{font-size:15.5px;font-weight:800}.gapbody small{font-size:12.5px;line-height:1.35}.gapmastery{font-family:var(--font-title);font-weight:600;font-size:17px;color:var(--hot)}.bars{display:flex;align-items:flex-end;gap:5px;height:120px}.barcol{flex:1 1;display:grid;align-content:end;grid-gap:5px;gap:5px;justify-items:center}.barcol i{display:block;width:100%;border-radius:7px 7px 3px 3px;background:linear-gradient(180deg,var(--brand-400),var(--brand))}.barcol small{font-size:10px;font-weight:800;color:var(--ink-faint)}.planrow{gap:12px;padding:14px 16px}.planplay,.planrow{display:flex;align-items:center}.planplay{gap:13px;flex:1 1;min-width:0}.planplay>span:last-child{display:grid;grid-gap:2px;gap:2px;min-width:0}.planplay strong{font-size:16px;font-weight:800}.planplay small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12.5px}.planrow .node{flex:0 0 auto;width:46px;height:46px;border-radius:50%;display:grid;place-items:center;font-size:17px;color:#fff;background:linear-gradient(135deg,var(--brand-400),var(--brand-600));box-shadow:var(--sh-brand)}.planedit{flex:0 0 auto;font-size:13.5px}.skillpicker{display:grid;grid-gap:8px;gap:8px;max-height:46vh;overflow-y:auto;padding:3px 4px 3px 3px}.pickrow{display:flex;align-items:center;gap:12px;text-align:left;width:100%;min-height:58px;padding:13px 15px;border:none;border-radius:var(--r-sm);background:var(--surface);box-shadow:var(--sh-1);font:inherit;transition:transform var(--t-micro) var(--ease)}.pickrow:active{transform:scale(.98)}.pickrow.on{background:var(--brand-50);box-shadow:inset 0 0 0 3px var(--brand)}.pickrow .body{flex:1 1;min-width:0;display:grid;grid-gap:2px;gap:2px}.pickrow strong{font-size:15px;font-weight:800}.pickrow small{font-size:12px;color:var(--ink-soft);font-weight:600}.suggestion,.suggestions{display:grid;grid-gap:11px;gap:11px}.suggestion{padding:17px}.suggestionhead{display:grid;grid-gap:4px;gap:4px}.suggestionhead strong{font-family:var(--font-title);font-size:18px;font-weight:600}.suggestionhead small{font-size:12.5px;color:var(--ink-soft);line-height:1.4;font-weight:600}.suggestionskills{display:flex;flex-wrap:wrap;gap:6px}.suggestionskills .chip{font-size:12px;padding:6px 11px;background:var(--sunken);box-shadow:none}.suggestiondone{margin:0;font-weight:800;color:var(--success-ink);font-size:14.5px}.skillrow{display:flex;align-items:center;gap:13px;padding:15px 16px;margin-bottom:10px}.skillrow .body{flex:1 1;min-width:0;display:grid;grid-gap:3px;gap:3px}.skillrow .name{font-size:16px;font-weight:800}.skillrow small{color:var(--ink-soft);font-size:12.5px;font-weight:600}.skillrow .go{color:var(--brand);font-weight:800;font-size:18px}.skillline{display:grid;grid-gap:6px;gap:6px}.subjectline{display:flex;align-items:center;gap:12px;margin-bottom:16px}.domainorigin{margin:0 0 10px;font-size:12.5px;color:var(--ink-soft);font-weight:600}.profiles{display:grid;grid-gap:12px;gap:12px}.playbtn,.profile{display:flex;align-items:center;gap:14px;width:100%;text-align:left;padding:15px 17px;background:var(--surface);border:none;border-radius:var(--r);box-shadow:var(--sh-1);color:inherit;font:inherit;transition:transform var(--t-move) var(--ease),box-shadow var(--t-move) var(--ease)}.playbtn:hover,.profile:hover{transform:translateY(-3px);box-shadow:var(--sh-2)}.playbtn:active,.profile:active{transform:scale(.985)}.profilecard{background:var(--surface);border-radius:var(--r);box-shadow:var(--sh-1);overflow:hidden;transition:transform var(--t-move) var(--ease),box-shadow var(--t-move) var(--ease)}.profilecard:hover{transform:translateY(-3px);box-shadow:var(--sh-2)}.profilecard .playbtn{background:transparent;box-shadow:none;border-radius:0}.profilecard .playbtn:hover{transform:none;box-shadow:none}.profilecard .playbtn:active{transform:scale(.99)}.playbtn.training{padding:10px 17px 12px;gap:10px;border-top:1px solid var(--line,rgba(0,0,0,.08));color:var(--ink-soft);font-size:14px}.playbtn.training .trainingicon{width:26px;text-align:center;font-size:15px;opacity:.85}.playbtn.training:hover{background:var(--sunken)}.playbtn.training strong{font-weight:700}.playbtn.training .muted{font-weight:600}.trainingbar{position:-webkit-sticky;position:sticky;top:0;z-index:40;padding:8px 16px;text-align:center;font-size:14px;background:#fff4d6;color:#6a4a00;border-bottom:1px solid #f0dca6}.avatar{flex:0 0 auto;width:56px;height:56px;display:grid;place-items:center;font-size:27px;border-radius:50%;background:linear-gradient(150deg,var(--brand-100),#ffe3ec)}.empty{display:grid;justify-items:center;grid-gap:10px;gap:10px;text-align:center;padding:30px 22px;border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--sh-1)}.empty .art{position:relative;display:grid;place-items:center;width:128px;height:128px;border-radius:50%;background:linear-gradient(150deg,var(--brand-50),#ffeef5)}.empty h3{font-family:var(--font-title);font-size:20px;font-weight:600}.empty p{margin:0;color:var(--ink-soft);font-weight:600;font-size:14.5px;line-height:1.5;max-width:30ch}.skel{border-radius:var(--r-xs);background:linear-gradient(100deg,var(--sunken) 30%,#ffffff 50%,var(--sunken) 70%);background-size:220% 100%;animation:shimmer 1.5s linear infinite}.skel-line{height:14px;margin-bottom:9px}.skel-title{height:26px;width:62%;margin-bottom:14px;border-radius:var(--r-xs)}.skel-card{height:116px;margin-bottom:13px}.skel-card,.skel-tile{border-radius:var(--r)}.skel-tile{height:132px}.auth{max-width:430px;margin:0 auto}.auth h1{font-family:var(--font-title);font-size:30px;font-weight:600;margin:0 0 8px}.auth .lede{margin:0 0 26px}.auth .btn{width:100%}.auth .alt{text-align:center;margin-top:22px;font-weight:700;color:var(--ink-soft)}.auth .alt a{color:var(--brand);font-weight:800}.brandmark{display:grid;justify-items:center;grid-gap:10px;gap:10px;margin-bottom:22px;text-align:center}.brandmark .logo{display:grid;place-items:center;width:74px;height:74px;border-radius:26px;background:linear-gradient(140deg,var(--brand-400),var(--brand-600));box-shadow:var(--sh-brand);font-family:var(--font-title);font-weight:600;font-size:32px;color:#fff;animation:floaty 5s var(--ease) infinite}.brandmark .logofull{display:block;width:min(300px,82%);height:auto}.brandmark .name{font-family:var(--font-title);font-size:26px;font-weight:600}.brandmark .tag{font-size:13.5px;font-weight:700;color:var(--ink-soft)}.brandmark.signature{gap:14px;margin-bottom:28px}.brandmark.signature .logofull{width:min(380px,92%)}.brandmark.signature .logo{width:86px;height:86px;font-size:38px;border-radius:30px}.brandmark.signature .name{font-size:36px;letter-spacing:.5px}.brandmark.signature .tag{margin:0;font-family:var(--font-title);font-size:21px;font-weight:500;line-height:1.3;color:var(--ink-soft)}.brandmark.signature .tag strong{font-weight:600;background:linear-gradient(100deg,var(--brand-400),var(--hot));-webkit-background-clip:text;background-clip:text;color:transparent;font-size:26px}@media (min-width:700px){.brandmark.signature .name{font-size:44px}.brandmark.signature .tag{font-size:24px}.brandmark.signature .tag strong{font-size:30px}}.field{margin-bottom:16px}.field label{display:block;font-weight:800;font-size:14.5px;margin-bottom:8px}.field .help{display:block;font-weight:600;font-size:13px;color:var(--ink-soft);margin-top:8px;line-height:1.45}.field input[type=email],.field input[type=number],.field input[type=password],.field input[type=tel],.field input[type=text],.field select,input[type=email],input[type=password],input[type=text],select{width:100%;min-height:54px;padding:15px 17px;border:none;border-radius:var(--r-sm);background:var(--surface);box-shadow:inset 0 0 0 2px var(--line-strong);font:inherit;font-weight:700;font-size:16px;color:var(--ink);outline:none}input:focus,select:focus{box-shadow:inset 0 0 0 3px var(--brand)}.formerror{margin:0 0 16px;padding:13px 15px;border-radius:var(--r-sm);background:var(--almost-soft);color:var(--almost-ink);font-weight:800;font-size:14.5px}.errorlist{margin:0;padding-left:18px;font-weight:700}.consent{display:flex;gap:11px;align-items:flex-start;padding:15px;border-radius:var(--r-sm);background:var(--sunken);font-size:13.5px;font-weight:600;line-height:1.5}.consent input{width:24px;height:24px;flex:0 0 auto;margin-top:1px}.toggle{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:15px 16px}.toggle input{width:26px;height:26px}.gamecard{display:grid;grid-template-columns:auto 1fr auto;align-items:center;grid-gap:14px;gap:14px;padding:16px 18px;border-radius:var(--r);background:var(--surface);box-shadow:var(--sh-1);color:inherit;transition:transform var(--t-move) var(--ease),box-shadow var(--t-move) var(--ease)}.gamecard:hover{transform:translateY(-3px);box-shadow:var(--sh-2)}.gameart{font-size:34px;line-height:1}.gamebody{display:grid;grid-gap:3px;gap:3px}.gamebody strong{font-family:var(--font-title);font-weight:600;font-size:18px}.gamebody small{font-weight:600;font-size:13px;color:var(--ink-soft);line-height:1.4}.gamego{font-size:22px;opacity:.5}.gamekind{font-style:normal;font-weight:800;font-size:11px;letter-spacing:.3px;text-transform:uppercase;color:var(--ink-faint)}.gamecard.course{background:linear-gradient(140deg,#fdf0dc,#f7dcbb)}.gamecard.gardien{background:linear-gradient(140deg,#e6f8ea,#c7edd2)}.gamehud{display:flex;align-items:center;gap:12px;margin:6px 2px 10px;font-weight:800}.gamelives{font-size:17px;letter-spacing:2px}.gamepoints{margin-left:auto;font-family:var(--font-title);font-weight:600;font-size:20px}.gamestreak{font-size:14px;color:#d1503c}.gamelevels{display:flex;gap:8px;margin:0 0 10px}.gamelevels button{flex:1 1;min-height:38px;border:0;border-radius:var(--r-sm);background:var(--sunken);font:inherit;font-weight:800;font-size:13px;color:var(--ink-soft);cursor:pointer}.gamelevels button.on{background:var(--brand);color:#ffffff}.gameover{display:grid;justify-items:center;grid-gap:6px;gap:6px;text-align:center;padding:26px 12px}.gameoverart{font-size:60px;margin:0}.gameover h2{margin:0;font-family:var(--font-title);font-weight:600}.gameover .muted{max-width:34ch;margin:4px 0 12px;font-size:13px}.gamecard.chantier{background:linear-gradient(140deg,#fdf1dc,#f8dfb6)}.gamecard.aliens{background:linear-gradient(140deg,#e7e2fb,#cfc6f6)}.gamecard.peche{background:linear-gradient(140deg,#ddf1fb,#bfe3f6)}.site{position:relative;height:260px;overflow:hidden;border-radius:var(--r);background:linear-gradient(180deg,#cfe8ff,#eaf6ff 70%,#d9e6c8)}.tower{position:absolute;left:50%;bottom:14px;width:96px;margin-left:-48px;flex-direction:column-reverse;transition:transform .42s var(--ease)}.floor,.tower{display:flex;align-items:center}.floor{width:90px;height:24px;margin-top:2px;border-radius:4px;justify-content:center;gap:10px;box-shadow:inset 0 -3px 0 rgba(0,0,0,.16);animation:floordrop .34s var(--bounce) both}.floor i{width:14px;height:10px;border-radius:2px;background:rgba(255,255,255,.75)}@keyframes floordrop{0%{transform:translateY(-30px);opacity:0}to{transform:none;opacity:1}}.tower .ground{width:130px;height:8px;border-radius:3px;background:#9aa877}.tower .crane{position:absolute;top:-34px;font-size:26px}.record{position:absolute;left:12px;right:12px;padding-top:2px;border-top:2px dashed #d1503c;text-align:right;font-weight:800;font-size:10.5px;color:#d1503c;pointer-events:none}.pond{position:relative;height:min(46vh,360px);min-height:260px;overflow:hidden;border-radius:var(--r);background:linear-gradient(180deg,#a9d9f2,#4f9fd0 40%,#23608f)}.boat{top:4px;left:50%;transform:translateX(-50%);font-size:30px}.boat,.fishline{position:absolute}.fishline{left:106%;padding:0;border:0;background:none;cursor:pointer;transform:translate(-50%,-50%);animation-name:fishswim;animation-timing-function:linear;animation-iteration-count:infinite}@keyframes fishswim{0%{left:106%}to{left:-8%}}.fish{display:grid;justify-items:center;grid-gap:2px;gap:2px}.fish.hooked svg{animation:zombieboom .7s var(--ease) forwards}.fish.gone{opacity:.35}.fishlabel{padding:3px 10px;border-radius:999px;background:#ffffff;box-shadow:0 4px 10px -4px rgba(0,0,0,.5);font-family:var(--font-title);font-weight:600;font-size:16px;color:#17364a;white-space:nowrap}.space{position:relative;height:min(52vh,460px);min-height:300px;overflow:hidden;border-radius:var(--r);background:radial-gradient(circle at 70% 18%,#3b3570 0,#1a1b3a 60%,#0f1024 100%)}.space:after{content:"";position:absolute;z-index:0;inset:auto 0 0;height:34px;background:#241f3d;border-top:3px solid #8ef0d8}.alienhit{position:absolute;z-index:2;top:0;transform:translateX(-50%);padding:0;border:0;background:none;cursor:pointer;animation-name:alienfall;animation-timing-function:linear;animation-fill-mode:forwards}@keyframes alienfall{0%{top:-16%}to{top:110%}}.alien{display:grid;justify-items:center;grid-gap:2px;gap:2px}.alien svg{animation:alienhover .9s ease-in-out infinite alternate}@keyframes alienhover{0%{transform:translateX(-5px) rotate(-3deg)}to{transform:translateX(5px) rotate(3deg)}}.alien.hit svg,.alien.miss svg{animation:none}.alien.hit svg{animation:zombieboom .62s var(--ease) forwards}.alien.miss svg{animation:zombiedust .82s var(--ease) forwards}.alienlabel{padding:4px 11px;border-radius:999px;background:#ffffff;box-shadow:0 4px 10px -4px rgba(0,0,0,.6);font-family:var(--font-title);font-weight:600;font-size:17px;color:#1c1738;white-space:nowrap}.alien.hit .alienlabel{background:#10b981;color:#fff}.alien.miss .alienlabel{background:#ff5c7a;color:#fff}@keyframes zombieboom{0%{transform:scale(1)}35%{transform:scale(1.35) rotate(8deg)}to{transform:scale(0) rotate(40deg);opacity:0}}@keyframes zombiedust{0%{opacity:1;filter:grayscale(0)}to{opacity:0;transform:translateY(14px);filter:grayscale(1)}}.zombiehelp{margin-top:10px;text-align:center;font-size:13px}.racetrack{position:relative;display:grid;grid-gap:4px;gap:4px;padding:10px 8px;border-radius:var(--r);background:linear-gradient(180deg,#cfe8b8,#a9d18a);box-shadow:inset 0 -20px 30px -24px rgba(0,0,0,.5);overflow:hidden}.racefinish{position:absolute;top:0;bottom:0;left:calc(88% + 38px);width:12px;background:repeating-linear-gradient(180deg,#ffffff 0 8px,#22201c 8px 16px);opacity:.85}.racelane{position:relative;height:64px;border-bottom:2px dashed rgba(255,255,255,.5)}.racelane.mine{background:rgba(255,255,255,.22);border-radius:var(--r-sm)}.racehorse{position:absolute;bottom:2px;display:grid;justify-items:center;transition:left .42s var(--ease)}.racename{font-weight:800;font-size:10.5px;color:#2f3a22}.horse.run .leg.a,.horse.run .leg.d{animation:gallop .3s ease-in-out infinite alternate}.horse.run .leg.b,.horse.run .leg.c{animation:gallop .3s ease-in-out infinite alternate-reverse}.horse.run .tail{animation:tailwave .6s ease-in-out infinite alternate}@keyframes gallop{0%{transform:rotate(-16deg)}to{transform:rotate(16deg)}}@keyframes tailwave{0%{transform:rotate(-6deg)}to{transform:rotate(8deg)}}.horse .leg{transform-box:fill-box;transform-origin:top center}.horse .tail{transform-box:fill-box;transform-origin:right center}.racequestion{margin-top:12px}.raceprompt{margin:0 0 10px;padding:14px 16px;border-radius:var(--r-sm);background:var(--surface);box-shadow:var(--sh-1);font-family:var(--font-title);font-weight:600;font-size:20px;line-height:1.25;text-wrap:balance}.racequestion.good .raceprompt{box-shadow:0 0 0 3px #10b981}.racequestion.bad .raceprompt{box-shadow:0 0 0 3px #ff5c7a}.racechoices{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));grid-gap:10px;gap:10px}.racechoice{min-height:58px;border:0;background:var(--surface);box-shadow:var(--sh-1);font:inherit;font-size:19px;cursor:pointer}.racechoice,.racetyped{border-radius:var(--r-sm);font-family:var(--font-title);font-weight:600}.racetyped{margin:0 0 8px;padding:10px;background:var(--sunken);text-align:center;font-size:28px;letter-spacing:3px}.racepad{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:8px;gap:8px}.racepad button{min-height:54px;border:0;border-radius:var(--r-sm);background:var(--surface);box-shadow:var(--sh-1);font:inherit;font-family:var(--font-title);font-weight:600;font-size:22px;cursor:pointer}.racepad button.go{grid-column:span 2;background:var(--brand);color:#fff;font-size:18px}.goal{position:relative;height:210px;border-radius:var(--r);background:linear-gradient(180deg,#bfe6c8,#86c99a);overflow:hidden}.goal.good{box-shadow:inset 0 0 0 3px #10b981}.goal.bad{box-shadow:inset 0 0 0 3px #ff5c7a}.net{position:absolute;inset:10px 12px auto;height:108px;border:5px solid #ffffff;border-bottom:0;border-radius:10px 10px 0 0;background-image:repeating-linear-gradient(90deg,rgba(255,255,255,.55) 0 1px,transparent 1px 14px),repeating-linear-gradient(0deg,rgba(255,255,255,.55) 0 1px,transparent 1px 14px)}.gamefigure{display:flex;justify-content:center;margin:10px 0}.gamefigure svg{max-width:100%;height:auto;background:#fff;border-radius:var(--r-sm);padding:8px}.keeper{position:absolute;left:50%;bottom:30px;transform:translateX(-50%);transition:left .32s var(--bounce),transform .32s var(--bounce)}.keeper.left{left:26%;transform:translateX(-50%) rotate(-24deg)}.keeper.right{left:74%;transform:translateX(-50%) rotate(24deg)}.ball{position:absolute;transform:translateX(-50%)}.ball,.ball.rest{left:50%;bottom:6px}.ball.save-left{animation:ballsaveleft .9s cubic-bezier(.25,0,.35,1) forwards}.ball.save-right{animation:ballsaveright .9s cubic-bezier(.25,0,.35,1) forwards}.ball.goal-left{animation:ballgoalleft .7s cubic-bezier(.3,0,.5,1) forwards}.ball.goal-right{animation:ballgoalright .7s cubic-bezier(.3,0,.5,1) forwards}@keyframes ballsaveleft{0%{left:50%;bottom:6px;transform:translateX(-50%) rotate(0deg)}42%{left:20%;bottom:60px;transform:translateX(-50%) rotate(-240deg)}52%{left:22%;bottom:56px;transform:translateX(-50%) rotate(-250deg) scale(.84,1.16)}to{left:80%;bottom:-22px;transform:translateX(-50%) rotate(80deg)}}@keyframes ballsaveright{0%{left:50%;bottom:6px;transform:translateX(-50%) rotate(0deg)}42%{left:80%;bottom:60px;transform:translateX(-50%) rotate(240deg)}52%{left:78%;bottom:56px;transform:translateX(-50%) rotate(250deg) scale(.84,1.16)}to{left:20%;bottom:-22px;transform:translateX(-50%) rotate(-80deg)}}@keyframes ballgoalleft{0%{left:50%;bottom:6px;transform:translateX(-50%) rotate(0deg)}to{left:22%;bottom:128px;transform:translateX(-50%) rotate(-380deg)}}@keyframes ballgoalright{0%{left:50%;bottom:6px;transform:translateX(-50%) rotate(0deg)}to{left:78%;bottom:128px;transform:translateX(-50%) rotate(380deg)}}.striker{position:absolute;left:50%;bottom:2px;font-size:24px;transform:translateX(-50%);opacity:.6}.dives{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px;margin-top:12px}.dive{min-height:66px;border:0;border-radius:var(--r-sm);background:var(--surface);box-shadow:var(--sh-1);font:inherit;font-family:var(--font-title);font-weight:600;font-size:19px;cursor:pointer}.dive.left{color:#0f766e}.dive.right{color:#b91c1c}.worldpicker{display:flex;gap:10px;overflow-x:auto;padding:4px 2px 10px;margin:0 -2px;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;scrollbar-width:none}.worldpicker::-webkit-scrollbar{display:none}.worldchip{flex:0 0 auto;width:118px;display:grid;justify-items:center;grid-gap:5px;gap:5px;padding:11px 9px 10px;border:0;border-radius:var(--r-sm);background:var(--surface);box-shadow:var(--sh-1);font:inherit;font-weight:800;font-size:12.5px;color:var(--ink);cursor:pointer;scroll-snap-align:center;transition:transform var(--t-micro) var(--ease),box-shadow var(--t-micro) var(--ease)}.worldchip .chipicon{font-size:24px;line-height:1.05}.worldchip .chipname{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-align:center;line-height:1.2;min-height:2.4em}.worldchip .chipbar{width:100%;height:6px;border-radius:999px;background:var(--sunken);overflow:hidden}.worldchip .chipbar i{display:block;height:100%;border-radius:999px;background:var(--chip,var(--brand))}.worldchip.on{box-shadow:0 0 0 3px var(--chip,var(--brand)),var(--sh-2);transform:translateY(-2px)}.worldchip.done .chipbar i{background:#10b981}.boardtitle{display:grid;grid-gap:1px;gap:1px;margin:4px 2px 0}.boardtitle strong{font-family:var(--font-title);font-weight:600;font-size:20px}.boardtitle small{font-weight:700;font-size:12.5px;color:var(--ink-soft)}.board{margin:10px 0 22px}.boardsvg{display:block;width:100%;max-width:460px;height:auto;margin:0 auto;border-radius:var(--r);background:linear-gradient(180deg,#eef2ff,#e6f7ee);box-shadow:var(--sh-1)}.creatureprize{display:grid;justify-items:center;grid-gap:2px;gap:2px;margin-top:14px;padding:14px 12px 16px;border-radius:var(--r);background:linear-gradient(160deg,#fff7dd,#ffe9f2);box-shadow:inset 0 0 0 2px #f4d98a}.creaturetitle{margin:4px 0 0;font-family:var(--font-title);font-weight:600;font-size:19px}.creaturename{margin:0;font-weight:800;font-size:15px;color:var(--brand-700,#5b21b6)}.creatureprize .muted{margin:4px 0 0;font-size:12.5px;text-align:center;max-width:30ch}.boardnode{cursor:pointer}.boardnode:active{opacity:.85}.boardhere{animation:floaty 2.4s var(--ease) infinite;transform-box:fill-box;transform-origin:center}@media (prefers-reduced-motion:reduce){.boardhere{animation:none}}.field.code input{text-align:center;font-family:var(--font-title);font-size:26px;font-weight:600;letter-spacing:8px;min-height:64px}.field.code .help{text-align:center}.pin{display:flex;gap:10px;justify-content:center}.pin input{width:58px;height:68px;text-align:center;font-family:var(--font-title);font-size:28px;font-weight:600;border-radius:var(--r-sm)}.yearpicker{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:10px;gap:10px}.yearrow{min-height:62px;border:none;border-radius:var(--r-sm);background:var(--surface);box-shadow:var(--sh-1);font-family:var(--font-title);font-weight:600;font-size:19px;transition:transform var(--t-micro) var(--ease)}.yearrow:active{transform:scale(.95)}.yearrow.on{background:linear-gradient(135deg,var(--brand-400),var(--brand-600));color:#fff;box-shadow:var(--sh-brand)}.difficulty{display:grid;grid-gap:6px;gap:6px}.difficulty>.slotbar{flex-wrap:wrap;overflow:visible;padding-bottom:4px}.difficulty>.slotbar button{flex:1 1 auto;justify-content:center}.difficulty small{line-height:1.45}.firstrun{text-align:center;padding-top:8px}.firstrun .btn{width:100%}.firstcard{padding:30px 24px;border-radius:var(--r-xl)}.firstcard h1{font-family:var(--font-title);font-size:27px;margin:14px 0 8px}.firstcard p{color:var(--ink-soft);font-weight:600;margin:0;line-height:1.55}.firsticon{font-size:50px;line-height:1;animation:floaty 3.4s var(--ease) infinite}.steps{display:flex;justify-content:center;gap:8px;margin:22px 0}.steps span{width:9px;height:9px;border-radius:var(--pill);background:var(--line-strong);transition:width var(--t-move) var(--ease)}.steps span.on{background:var(--brand);width:28px}.a11y-dyslexie{font-family:"Atkinson Hyperlegible","Verdana",var(--font-ui);letter-spacing:.02em;word-spacing:.08em}.a11y-dyslexie .blanksline,.a11y-dyslexie .prompt{line-height:2}.a11y-anim *,.a11y-anim :after,.a11y-anim :before{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}.a11y-contraste{--ink:#000000;--ink-2:#1a1a1a;--ink-soft:#333333;--ink-faint:#555555;--line-strong:rgba(0,0,0,0.4)}.a11y-contraste .card,.a11y-contraste .chip,.a11y-contraste .choice,.a11y-contraste .stage{box-shadow:var(--sh-1),inset 0 0 0 2px rgba(0,0,0,.35)}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}.cycle-CYCLE_1{font-size:18px}.cycle-CYCLE_1 .hello,.cycle-CYCLE_1 .who h1{font-size:30px}.cycle-CYCLE_1 .section-title{font-size:23px}.cycle-CYCLE_1 .prompt{font-size:31px}.cycle-CYCLE_1 .choice{min-height:78px;font-size:22px}.cycle-CYCLE_1 .btn{min-height:62px;font-size:20px}.cycle-CYCLE_1 .tilename{font-size:18px}.cycle-CYCLE_1 .childnav a{font-size:12.5px}.cycle-CYCLE_1 .childnav a span{font-size:26px}.cycle-CYCLE_1 .card,.cycle-CYCLE_1 .tile{padding:20px 18px}.cycle-CYCLE_2{font-size:16px}.cycle-CYCLE_3{font-size:15px}.cycle-CYCLE_3 .hello,.cycle-CYCLE_3 .who h1{font-size:24px}.cycle-CYCLE_3 .section-title{font-size:18px}.cycle-CYCLE_3 .prompt{font-size:24px}.cycle-CYCLE_3 .choice{min-height:60px;font-size:17px}.cycle-CYCLE_3 .btn{min-height:50px;font-size:16px}.cycle-CYCLE_3 .tilename{font-size:15px}.cycle-CYCLE_3 .childnav a{font-size:10.5px}.cycle-CYCLE_3 .childnav a span{font-size:21px}.cycle-CYCLE_3 .card,.cycle-CYCLE_3 .tile{padding:13px 14px}.cycle-CYCLE_3 .btn,.cycle-CYCLE_3 .choice,.cycle-CYCLE_3 .key{min-height:48px}@media (min-width:720px){.shell{max-width:620px;padding-top:26px}.tiles{grid-template-columns:repeat(3,1fr)}.subjects{grid-template-columns:1fr 1fr}.hero h2{font-size:30px}.childnav{left:50%;right:auto;translate:-50% 0;bottom:16px;width:min(560px,calc(100% - 32px));border-radius:var(--pill);padding:8px 10px calc(8px + env(safe-area-inset-bottom));box-shadow:var(--sh-3)}.withnav{padding-bottom:116px}}@media (min-width:1000px){.shell{max-width:1080px;display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,1fr);grid-auto-flow:dense;grid-gap:16px 30px;gap:16px 30px;align-items:start;padding-top:34px}.shell>*{grid-column:1}.shell>[data-side]{grid-column:2;grid-row:1/span 40;align-self:start}.shell>[data-side=sticky]{position:-webkit-sticky;position:sticky;top:34px}.sidecol>.section-title:first-child{margin-top:0}.subjects{grid-template-columns:1fr 1fr}.tiles{grid-template-columns:repeat(2,1fr)}.stat{padding:14px 8px}.hero{padding:28px}.hero h2{font-size:34px;max-width:18ch}.session{max-width:720px;padding-top:34px}.prompt{font-size:32px}.choices{grid-template-columns:1fr 1fr}.choice{min-height:76px}.celebration{max-width:520px;margin:auto}.creator{display:grid;grid-template-columns:minmax(280px,360px) minmax(0,1fr);grid-gap:12px 30px;gap:12px 30px;align-items:start}.creator>.hellorow{grid-column:1/-1}.creator>.creatorstage{grid-column:1;grid-row:2/span 20;position:-webkit-sticky;position:sticky;top:34px;max-width:none;padding:30px 22px 20px}.creator>:not(.hellorow):not(.creatorstage){grid-column:2}.creator>.slotbar{margin-top:0;flex-wrap:wrap;overflow:visible}}@media (min-width:1280px){.shell{max-width:1200px;grid-template-columns:minmax(0,1.7fr) minmax(340px,1fr)}}.topbar{display:flex;align-items:center;gap:14px;margin-bottom:18px}.topbar .hello{flex:1 1;min-width:0;margin-bottom:0}.stats{display:flex;flex-wrap:wrap;gap:7px}.avatarstage{display:flex;justify-content:center;padding:20px;border-radius:var(--r-lg);background:linear-gradient(160deg,#ede7ff,#ffe9f2);box-shadow:var(--sh-1)}.sessioncount{font-family:var(--font-title);font-weight:600;font-size:15px;color:var(--ink-soft)}.bosshead{display:flex;align-items:center;gap:9px;font-weight:800;font-size:15px}.bossbar{padding:14px 16px;border-radius:var(--r);background:var(--surface);box-shadow:var(--sh-1);margin-bottom:16px}.bosshp i{background:linear-gradient(90deg,#fca5a5,var(--hot))}.stagebody{flex:1 1;min-width:0;display:grid;grid-gap:3px;gap:3px}.stagebody strong{font-size:15.5px;font-weight:800}.stagebody small{font-size:12.5px;color:var(--ink-soft);font-weight:600}.column{display:grid;grid-gap:9px;gap:9px}.check{flex:0 0 auto;width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:var(--sunken);color:var(--brand);font-weight:900}.pickrow.on .check{background:var(--brand);color:#fff}.barfill{display:block;width:100%;border-radius:7px 7px 3px 3px;background:linear-gradient(180deg,var(--brand-400),var(--brand))}.btn.primary .price{color:#fff}.colorstrip{padding:13px 14px;margin-bottom:14px;border-radius:var(--r);background:var(--surface);box-shadow:var(--sh-1)}.colorstriphead{margin:0 0 10px;font-size:13px;font-weight:800;color:var(--ink-soft);display:flex;align-items:baseline;gap:7px}.colorstriphead em{font-style:normal;color:var(--brand);font-weight:800}.swatches{display:grid;grid-template-columns:repeat(auto-fit,minmax(48px,1fr));grid-gap:9px;gap:9px;padding:3px 2px 4px}.swatch{width:100%;aspect-ratio:1;min-height:48px;border:none;border-radius:14px;box-shadow:inset 0 0 0 1px rgba(26,18,48,.12);display:grid;place-items:center;color:#fff;font-size:19px;font-weight:900;text-shadow:0 1px 2px rgba(0,0,0,.4);transition:transform var(--t-micro) var(--bounce),box-shadow var(--t-micro) var(--ease)}.swatch:hover{transform:translateY(-3px) scale(1.04)}.swatch:active{transform:scale(.92)}.swatch.on{box-shadow:inset 0 0 0 1px rgba(26,18,48,.12),0 0 0 3px var(--surface),0 0 0 6px var(--brand)}.swatch.none{background:var(--sunken);color:var(--ink-soft);text-shadow:none;font-size:18px}.motifs{display:grid;grid-template-columns:repeat(auto-fit,minmax(48px,1fr));grid-gap:9px;gap:9px;padding:3px 2px 4px}.motif{width:100%;aspect-ratio:1;min-height:48px;border:none;padding:0;border-radius:14px;overflow:hidden;background:var(--sunken);box-shadow:inset 0 0 0 1px rgba(26,18,48,.12);display:grid;place-items:center;color:var(--ink-soft);font-size:18px;font-weight:900;transition:transform var(--t-micro) var(--bounce),box-shadow var(--t-micro) var(--ease)}.motif svg{width:100%;height:100%;display:block}.motif:hover{transform:translateY(-3px) scale(1.04)}.motif:active{transform:scale(.92)}.motif.on{box-shadow:inset 0 0 0 1px rgba(26,18,48,.12),0 0 0 3px var(--surface),0 0 0 6px var(--brand)}.tryingbar{position:relative;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:9px;margin-top:10px;padding:11px 14px;border-radius:var(--pill);background:rgba(255,255,255,.9);box-shadow:var(--sh-1)}.tryingtext{font-size:14px;font-weight:700;color:var(--ink-soft)}.tryingtext strong{color:var(--ink);font-weight:800}.tryinglock{font-size:13.5px;font-weight:800;color:var(--ink-soft)}.tryingoff{min-height:40px;padding:9px 14px;border:none;border-radius:var(--pill);background:var(--sunken);font:inherit;font-weight:800;font-size:13.5px;color:var(--ink-soft)}.tryingoff:active{transform:scale(.94)}.shopitem.trying{box-shadow:var(--sh-2),inset 0 0 0 3px var(--scool-world)}.shopitem.trying:before{content:"ESSAI";position:absolute;top:7px;left:7px;padding:3px 7px;border-radius:var(--pill);background:var(--scool-world);color:#fff;font-size:8.5px;font-weight:900;letter-spacing:.05em}.quest{display:flex;align-items:center;gap:13px;padding:15px 17px;border-radius:var(--r);background:var(--surface);box-shadow:var(--sh-1);margin-bottom:14px}.quest.done{background:linear-gradient(135deg,#fff6de,#ffeab8)}.questicon{font-size:30px;line-height:1}.questbody{flex:1 1;min-width:0;display:grid;grid-gap:2px;gap:2px}.questbody strong{font-family:var(--font-title);font-size:17px;font-weight:600}.questbody small{font-size:12.5px;color:var(--ink-soft);font-weight:600;line-height:1.35}.questdots{display:grid;grid-template-columns:repeat(4,auto);grid-gap:5px;gap:5px;align-content:center}.questdots i{display:block;width:9px;height:9px;border-radius:50%;background:var(--sunken)}.questdots i.on{background:var(--coin);box-shadow:0 0 0 2px var(--coin-soft)}.questpct{flex:0 0 auto;font-family:var(--font-title);font-size:20px;font-weight:600;color:var(--brand)}.globewrap{display:flex;align-items:center;gap:4px;justify-content:center}.globe{flex:1 1 auto;max-width:320px;height:auto;touch-action:none;cursor:-webkit-grab;cursor:grab;-moz-user-select:none;user-select:none;-webkit-user-select:none;filter:drop-shadow(0 22px 34px rgba(29,95,168,.32))}.globe.grabbing{cursor:-webkit-grabbing;cursor:grabbing}.kingdompin{cursor:pointer}.globespin{flex:0 0 auto;width:46px;height:46px;border:none;border-radius:50%;background:var(--surface);box-shadow:var(--sh-1);font-size:24px;font-weight:800;color:var(--brand);transition:transform var(--t-micro) var(--ease)}.globespin:active{transform:scale(.9)}.globehint{margin:6px 0 18px;text-align:center;font-size:13px;font-weight:700;color:var(--ink-faint)}.kingdomcard{display:grid;grid-gap:10px;gap:10px;padding:17px;border-radius:var(--r);background:var(--surface);box-shadow:var(--sh-1)}.kingdomhead{display:flex;align-items:center;gap:13px}.kingdomicon{display:grid;place-items:center;width:50px;height:50px;border-radius:17px;background:var(--sunken);font-size:26px}.kingdomtitle{flex:1 1;min-width:0;display:grid;grid-gap:2px;gap:2px}.kingdomtitle strong{font-family:var(--font-title);font-size:19px;font-weight:600}.kingdomtitle small{font-size:12.5px;color:var(--ink-soft);font-weight:600;line-height:1.35}.kingdompct{font-family:var(--font-title);font-size:22px;font-weight:600;color:var(--brand)}.questpath{position:relative;list-style:none;margin:22px 0 0;padding:0;display:grid;grid-gap:14px;gap:14px}.questpath:before{content:"";position:absolute;left:50%;top:10px;bottom:10px;width:6px;translate:-50% 0;border-radius:999px;background:repeating-linear-gradient(180deg,var(--line-strong) 0 12px,transparent 12px 24px)}.queststep{position:relative;display:flex}.queststep.left{justify-content:flex-start}.queststep.right{justify-content:flex-end}.questlink{position:relative;display:flex;align-items:center;gap:12px;width:min(100%,290px);padding:12px 15px;border-radius:var(--r);background:var(--surface);box-shadow:var(--sh-1);transition:transform var(--t-move) var(--ease),box-shadow var(--t-move) var(--ease)}.questlink:hover{transform:translateY(-3px);box-shadow:var(--sh-2)}.queststep.right .questlink{flex-direction:row-reverse;text-align:right}.questnode{flex:0 0 auto;display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:var(--sunken);color:var(--ink-faint);font-family:var(--font-title);font-size:19px;font-weight:600}.questlabel{flex:1 1;min-width:0;display:grid;grid-gap:2px;gap:2px}.questlabel strong{font-size:15px;font-weight:800;line-height:1.25}.questlabel small{font-size:12px;color:var(--ink-soft);font-weight:600;line-height:1.35}.queststep.available .questnode{background:linear-gradient(135deg,var(--brand-400),var(--brand-600));color:#fff;box-shadow:var(--sh-brand)}.queststep.available .questlink{box-shadow:var(--sh-2),inset 0 0 0 2px var(--brand-200)}.queststep.completed .questnode{background:linear-gradient(135deg,#6ee7b7,var(--success));color:#fff}.queststep.locked{opacity:.55}.queststep.boss .questnode{width:56px;height:56px;font-size:26px;background:linear-gradient(135deg,#fca5a5,var(--hot));color:#fff}.queststep.boss .questlink{box-shadow:var(--sh-2)}.queststep.boss.locked .questnode{background:var(--sunken)}@media (min-width:720px){.globe{max-width:380px}.questlink{width:min(100%,330px)}}.kmap{overflow-x:auto;overflow-y:hidden;touch-action:pan-x;border-radius:var(--r);box-shadow:var(--sh-2);scrollbar-width:none;-webkit-overflow-scrolling:touch;margin-bottom:10px}.kmap::-webkit-scrollbar{display:none}.kmapsvg{display:block}.kmapnode{cursor:pointer}.kmapnode:focus-visible{outline:3px solid var(--brand);outline-offset:4px}@keyframes kmap-here{0%,to{transform:translateY(0)}50%{transform:translateY(-7px)}}.kmaphere{animation:kmap-here 1.6s var(--ease) infinite}.kingdombanner{display:grid;grid-template-columns:auto 1fr;align-items:center;grid-gap:10px 13px;gap:10px 13px;padding:15px 17px;margin-bottom:14px;border-radius:var(--r);background:var(--surface);box-shadow:var(--sh-1)}.kingdombanner.forest{background:linear-gradient(135deg,#e6faee,#d0f3de)}.kingdombanner.castle{background:linear-gradient(135deg,#eaf2ff,#d6e6ff)}.kingdombanner.space{background:linear-gradient(135deg,#efe9ff,#ded2ff)}.kingdombanner.explorer{background:linear-gradient(135deg,#fff5e2,#ffe8c2)}.kingdomcard.enter{display:grid;grid-gap:10px;gap:10px;width:100%;text-align:left;border:none;font:inherit;color:inherit;transition:transform var(--t-move) var(--ease),box-shadow var(--t-move) var(--ease)}.kingdomcard.enter:hover{transform:translateY(-4px);box-shadow:var(--sh-2)}.kingdomcard.enter:active{transform:scale(.99)}.kingdomenter{font-size:13.5px;font-weight:800;color:var(--brand)}.mycode{display:grid;grid-template-columns:1fr auto;align-items:center;grid-gap:10px 14px;gap:10px 14px;padding:18px 18px 16px;margin-bottom:16px;border-radius:var(--r);background:linear-gradient(135deg,var(--brand-50),var(--surface));box-shadow:var(--sh-1)}.mycodelabel{grid-column:1/-1;font-size:12.5px;font-weight:800;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.06em}.mycodevalue{font-family:var(--font-title);font-size:30px;font-weight:600;color:var(--brand);-webkit-user-select:all;-moz-user-select:all;user-select:all;word-break:break-all;line-height:1.1}.mycodehelp{grid-column:1/-1;font-size:13px;color:var(--ink-soft);font-weight:600;line-height:1.45}.addfriend{margin-bottom:14px}.addfriend label{display:block;font-weight:800;font-size:14.5px;margin-bottom:8px}.addfriendrow{display:flex;gap:9px;align-items:stretch}.addfriendrow input{flex:1 1 auto;min-width:0}.addfriendrow .btn{flex:0 0 auto}.friendlist{display:grid;grid-gap:9px;gap:9px;margin-bottom:6px}.friendrow{display:flex;align-items:center;gap:12px;padding:11px 13px;border-radius:var(--r-sm);background:var(--surface);box-shadow:var(--sh-1)}.friendrow.muted-row{opacity:.72}.friendname{flex:1 1;min-width:0;display:grid;grid-gap:1px;gap:1px}.friendname strong{font-size:16px;font-weight:800}.friendname small{font-size:12.5px;color:var(--ink-soft);font-weight:600}.friendactions{display:flex;gap:7px;flex:0 0 auto}.btn.small{min-height:40px;padding:9px 15px;font-size:14px}.friendrule{margin:18px 0 0;background:var(--sunken);font-size:13px;font-weight:600;color:var(--ink-soft);line-height:1.5}.friendrule,.notice{padding:13px 15px;border-radius:var(--r-sm)}.notice{font-weight:700;font-size:14.5px;line-height:1.45;margin-bottom:14px}.notice.good{background:var(--success-soft);color:var(--success-ink)}.notice.bad{background:var(--almost-soft);color:var(--almost-ink)}.childgate{display:grid;justify-items:center;grid-gap:4px;gap:4px;margin-bottom:20px;text-align:center}.childgate strong{font-family:var(--font-title);font-size:24px;font-weight:600}.childgate small{font-size:14px;color:var(--ink-soft);font-weight:700}.switchrow{display:grid;grid-template-columns:1fr auto;align-items:start;grid-gap:8px 14px;gap:8px 14px;padding:14px 0;border-bottom:1px solid var(--line);cursor:pointer}.switchrow:last-of-type{border-bottom:0}.switchrow.off{opacity:.48;cursor:not-allowed}.switchtext{display:grid;grid-gap:3px;gap:3px;min-width:0}.switchtext strong{font-size:15.5px;font-weight:800}.switchtext small{font-size:13px;color:var(--ink-soft);font-weight:600;line-height:1.45}.switchrow input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.switchtrack{grid-column:2;grid-row:1;position:relative;width:54px;height:32px;flex:0 0 auto;border-radius:999px;background:var(--sunken);box-shadow:inset 0 0 0 1px var(--line-strong);transition:background var(--t-move) var(--ease)}.switchtrack:after{content:"";position:absolute;top:3px;left:3px;width:26px;height:26px;border-radius:50%;background:#fff;box-shadow:var(--sh-1);transition:transform var(--t-move) var(--bounce)}.switchrow input:checked~.switchtrack{background:linear-gradient(135deg,var(--brand-400),var(--brand-600));box-shadow:none}.switchrow input:checked~.switchtrack:after{transform:translateX(22px)}.switchrow input:focus-visible~.switchtrack{outline:3px solid var(--brand);outline-offset:3px}@media (prefers-reduced-motion:reduce){.switchtrack,.switchtrack:after{transition:none}}.avatarwrap.switchable{position:relative;border:0;padding:0;background:none;cursor:pointer;border-radius:50%;transition:transform var(--t-micro) var(--bounce)}.avatarwrap.switchable:active{transform:scale(.94)}.switchhint{position:absolute;right:-2px;bottom:-2px;width:24px;height:24px;display:grid;place-items:center;border-radius:50%;background:var(--brand);color:#fff;font-size:13px;font-weight:900;box-shadow:0 0 0 3px var(--surface)}.switchgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));grid-gap:12px;gap:12px;margin-bottom:6px}.switchcard{display:grid;justify-items:center;grid-gap:6px;gap:6px;padding:13px 8px;border:0;border-radius:var(--r-sm);background:var(--sunken);font:inherit;font-weight:800;font-size:14px;color:var(--ink);cursor:pointer;transition:transform var(--t-micro) var(--bounce),background var(--t-move) var(--ease)}.switchcard:hover{transform:translateY(-3px);background:var(--brand-50)}.switchcard:active{transform:scale(.96)}.switchcard.training{background:transparent;box-shadow:inset 0 0 0 2px var(--line-strong)}.switchcard.training:hover{background:var(--sunken)}.switchcard .switchtag{font-size:11px;font-weight:700;color:var(--ink-soft);line-height:1.2;white-space:nowrap}.switchcard{align-content:start}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.soonrow{display:grid;grid-gap:3px;gap:3px;margin:14px 0 0;padding:12px 14px;border-radius:var(--r-sm);background:var(--sunken)}.soonrow strong{font-size:11.5px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--brand)}.soonrow span{font-size:13px;font-weight:600;color:var(--ink-soft);line-height:1.45}.bulletinrow{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end}.bulletinrow .field{flex:1 1 160px}.bulletinrow .field.small{flex:0 1 96px}.field{display:grid;grid-gap:5px;gap:5px;margin-bottom:12px}.field>span{font-size:13.5px;font-weight:800;color:var(--ink-soft)}.field input,.field select{width:100%;min-height:46px;padding:10px 13px;border:none;border-radius:var(--r-sm);background:var(--surface);box-shadow:inset 0 0 0 2px var(--line-strong);font:inherit;font-weight:700;color:var(--ink)}.field input:focus,.field select:focus{outline:none;box-shadow:inset 0 0 0 3px var(--brand)}.gradesubject{display:grid;grid-gap:7px;gap:7px;margin-bottom:12px}.graderow{display:flex;align-items:center;gap:12px;padding:13px 15px}.graderow .linkbtn{min-height:44px;padding:8px 6px}.gradebody{flex:1 1 auto;display:grid;grid-gap:2px;gap:2px;min-width:0}.gradebody strong{font-family:var(--font-title);font-weight:600;font-size:19px}.gradebody small{overflow-wrap:anywhere}.gradepct{flex:0 0 auto;font-weight:800;color:var(--ink-soft)}.gradepct.warn{color:var(--almost-ink)}.bulletintable{width:100%;border-collapse:collapse;font-size:14.5px}.bulletintable td,.bulletintable th{padding:9px 10px;text-align:right;white-space:nowrap}.bulletintable thead th{font-size:12.5px;font-weight:800;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.3px}.bulletintable th[scope=row],.bulletintable thead th:first-child{text-align:left;font-weight:800}.bulletintable tbody tr{border-top:2px solid var(--line)}.bulletintable td{font-family:var(--font-title);font-weight:600}.bulletintable td.novalue{color:var(--ink-faint);font-family:inherit;font-weight:700}.bulletintable td.warn{color:var(--almost-ink)}.bulletintable tfoot tr{border-top:2px solid var(--line-strong)}.bulletintable tfoot td,.bulletintable tfoot th{color:var(--brand)}@media (max-width:430px){.bulletintable{font-size:13.5px}.bulletintable td,.bulletintable th{padding:8px 7px}}