@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-cyrillic-ext-wght-normal-D4X5GqEv.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-cyrillic-wght-normal-CY6AOgYE.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-vietnamese-wght-normal-U01xdrZh.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-latin-ext-wght-normal-CXYtwYOx.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-latin-wght-normal-BzFMHfZw.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--font-kids:"Nunito Variable", "Nunito", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-adults:"Inter Variable", "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--bg:#fff9f1;--surface:#fff;--surface-2:#f6f7fb;--surface-3:#eef0f6;--line:#e7e9f2;--line-strong:#d0d5e2;--text:#171a2e;--muted:#5d6479;--on-color:#fff;--primary:#4f46e5;--primary-strong:#4338ca;--primary-soft:#eef0ff;--primary-text:#fff;--primary-gradient:linear-gradient(135deg, #5b5cf0, #7c3aed);--accent:#f59e0b;--accent-strong:#b45309;--accent-soft:#fff4d6;--star-empty:#7c8499;--accent-gradient:linear-gradient(90deg, #fbbf24, #f59e0b);--correct:#15803d;--correct-soft:#dcfce7;--wrong:#c62828;--wrong-soft:#fdecec;--wrong-line:#f1b5b5;--try-again:#92400e;--try-again-soft:#fff4d6;--try-again-line:#f5c26b;--notice-text:#78350f;--notice-line:#f5d98b;--blob-1:#ffe3b3;--blob-2:#d7ecff;--blob-3:#e8e0ff;--blob-4:#d6f5e8;--grade-2:#ea580c;--grade-3:#16a34a;--grade-4:#0284c7;--grade-5:#9333ea;--subject-math:#4f46e5;--subject-math-gradient:linear-gradient(135deg, #5b5cf0 0%, #7c3aed 100%);--subject-english:#db2777;--subject-english-gradient:linear-gradient(135deg, #db2777 0%, #e2531c 100%);--clock-face:#fff;--clock-hour:#171a2e;--clock-minute:#4f46e5;--fraction-fill:#22c55e;--block-fill:#93c5fd;--block-line:#1d4ed8;--group-ring:#c4b5fd;--group-dot:#db2777;--coin-copper:#c2703d;--coin-copper-text:#fff;--coin-gold:#e9b949;--coin-gold-text:#4a3500;--coin-euro-ring:#e9b949;--coin-euro-core:#cfd3dc;--note:#9fd8b5;--note-text:#10442a;--heat-0:#f6f7fb;--heat-1:#9fa8f7;--heat-2:#5b5bd6;--heat-3:#312e81;--cell-empty:#fff7ed;--row-hover:#fafbff;--radius:1rem;--radius-sm:.65rem;--radius-lg:1.5rem;--shadow:0 1px 2px #171a2e0a, 0 2px 10px #171a2e0d;--shadow-md:0 2px 4px #171a2e0a, 0 10px 28px #171a2e14;--shadow-lg:0 16px 48px #171a2e33;--shadow-primary:0 6px 18px #4f46e54d;--ring:0 0 0 4px #4f46e533;font-family:var(--font-kids);color:var(--text);background:var(--bg);-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;line-height:1.5}*{box-sizing:border-box}body{background:var(--bg);min-height:100dvh;margin:0}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--primary-strong);text-underline-offset:.2em;font-weight:700}button{cursor:pointer;border-radius:var(--radius);touch-action:manipulation;border:1px solid #0000;min-height:3rem;padding:.75rem 1.5rem;font-weight:800;transition:background-color .15s,border-color .15s,box-shadow .15s,transform .12s}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline:3px solid var(--primary);outline-offset:3px}button:disabled{opacity:.55;cursor:not-allowed}h1{letter-spacing:-.02em;margin:.5rem 0;font-size:clamp(1.75rem,6vw,2.75rem);line-height:1.2}h2{letter-spacing:-.01em;font-size:clamp(1.35rem,4vw,1.85rem);font-weight:800;line-height:1.25}.primary{background:var(--primary-gradient);color:var(--primary-text);box-shadow:var(--shadow-primary)}.primary:hover:not(:disabled){background:var(--primary-strong);transform:translateY(-1px)}.primary:active:not(:disabled){transform:translateY(1px)}.secondary{background:var(--surface);border-color:var(--line-strong);color:var(--text)}.secondary:hover:not(:disabled){background:var(--primary-soft);border-color:var(--primary);color:var(--primary-strong)}.danger{background:var(--surface);border-color:var(--wrong-line);color:var(--wrong)}.danger:hover:not(:disabled){background:var(--wrong-soft);border-color:var(--wrong)}button.small{border-radius:999px;min-height:2.25rem;padding:.3rem .9rem}.muted{color:var(--muted)}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.brand{font-family:var(--font-kids);letter-spacing:-.01em;color:var(--text);white-space:nowrap;align-items:center;gap:.55rem;margin:0;font-size:1.25rem;font-weight:900;text-decoration:none;display:inline-flex}.brand-mark{background:linear-gradient(135deg, var(--primary), var(--subject-english));width:2.1rem;height:2.1rem;color:var(--on-color);border-radius:.7rem;flex:none;place-items:center;font-size:1.15rem;display:inline-grid;transform:rotate(-6deg);box-shadow:0 4px 12px #7c3aed4d}.toolbar,.user-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.toolbar-actions{flex-wrap:wrap;gap:.5rem;display:flex}.user-bar button{align-items:center;gap:.4rem;display:inline-flex}.user-bar .who{align-items:center;gap:.55rem;display:inline-flex}.user-bar .avatar{background:var(--primary-soft);width:2.25rem;height:2.25rem;color:var(--primary-strong);border-radius:999px;flex:none;place-items:center;font-weight:800;display:inline-grid}.user-bar .avatar.picture-avatar{background:var(--accent-soft);font-size:1.35rem}.meter{background:var(--surface-3);border-radius:999px;height:.55rem;display:block;overflow:hidden}.meter>span{border-radius:inherit;background:var(--accent-gradient);min-width:0;height:100%;transition:width .4s ease-out;display:block}.badge{background:var(--surface-3);color:var(--muted);white-space:nowrap;border-radius:999px;padding:.1rem .6rem;font-size:.8rem;font-weight:700;display:inline-block}.badge-open{background:var(--correct-soft);color:var(--correct)}.error-page{place-items:center;min-height:100dvh;padding:1rem;display:grid}.error-page .card{text-align:center;max-width:28rem}.error-face{margin:0;font-size:3rem}.error-actions{flex-wrap:wrap;justify-content:center;gap:.75rem;display:flex}.login-screen{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);min-height:100dvh;display:grid}.login-hero{background:var(--primary-gradient);color:var(--on-color);flex-direction:column;justify-content:center;gap:1rem;padding:3rem clamp(2rem,6vw,5rem);display:flex;position:relative;overflow:hidden}.login-hero:before,.login-hero:after{content:"";background:#ffffff1a;border-radius:999px;position:absolute}.login-hero:before{width:26rem;height:26rem;top:-8rem;right:-8rem}.login-hero:after{width:18rem;height:18rem;bottom:-6rem;left:-5rem}.login-hero .brand{color:var(--on-color);font-size:clamp(2rem,4.5vw,3rem);position:relative}.login-hero .brand-mark{background:var(--surface);width:3.25rem;height:3.25rem;color:var(--primary);border-radius:1rem;font-size:1.8rem}.login-tagline{opacity:.95;max-width:26rem;margin:0;font-size:clamp(1.1rem,2vw,1.4rem);font-weight:700;position:relative}.login-tiles{grid-template-columns:repeat(3,4.5rem);gap:.9rem;margin:1rem 0 0;padding:0;list-style:none;display:grid;position:relative}.login-tiles li{background:#ffffff29;border:1px solid #ffffff47;border-radius:1.25rem;place-items:center;height:4.5rem;font-size:1.5rem;font-weight:900;animation:6s ease-in-out infinite float;display:grid}.login-tiles li:nth-child(2n){animation-delay:-3s;transform:rotate(4deg)}.login-tiles li:nth-child(3n){background:var(--surface);color:var(--accent-strong)}.login-side{place-items:center;padding:2rem 1.25rem;display:grid;position:relative}.login{border-radius:var(--radius-lg);width:min(100%,25rem);box-shadow:var(--shadow-md);padding:2rem}.login h2{margin:0 0 .25rem}.login .notice,.notice-box{border:1px solid var(--notice-line);border-radius:var(--radius-sm);background:var(--accent-soft);color:var(--notice-text);margin:0;padding:.6rem .8rem;font-weight:600}@media (width<=52rem){.login-screen{grid-template-rows:auto 1fr;grid-template-columns:1fr}.login-hero{text-align:center;align-items:center;gap:.5rem;padding:2rem 1.25rem 3.5rem}.login-tiles{display:none}.login-side{place-items:start center;margin-top:-2.25rem;padding-top:0}}@keyframes float{50%{translate:0 -6px}}.kids{background:radial-gradient(circle at 8% 12%, var(--blob-1) 0 9rem, transparent 9rem), radial-gradient(circle at 96% 30%, var(--blob-2) 0 12rem, transparent 12rem), radial-gradient(circle at 12% 88%, var(--blob-3) 0 11rem, transparent 11rem), radial-gradient(circle at 88% 96%, var(--blob-4) 0 8rem, transparent 8rem), var(--bg);background-attachment:fixed;min-height:100dvh}.kids-top{z-index:10;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--line);width:calc(100% - 1.5rem);max-width:60rem;box-shadow:var(--shadow);background:#ffffffe0;border-radius:999px;justify-content:space-between;align-items:center;gap:.75rem;margin:.75rem auto 0;padding:.6rem .75rem .6rem 1rem;display:flex;position:sticky;top:.75rem}.kids-top .user-bar{flex-wrap:nowrap}.app{max-width:60rem;margin:0 auto;padding:1.5rem 1rem 3rem}.kids-hello{flex-wrap:wrap;align-items:baseline;gap:.25rem 1rem;display:flex}.kids-hello .hello{letter-spacing:-.02em;margin:0;font-size:clamp(1.75rem,6vw,2.5rem);font-weight:900}.daily-goal{flex-wrap:wrap;align-items:center;gap:.75rem 1rem;margin:1rem 0 1.5rem;padding:1rem 1.25rem;display:flex}.goal-ring{flex:none;width:4rem;height:4rem}.goal-ring circle{fill:none;stroke-width:8px}.goal-ring-track{stroke:var(--surface-3)}.goal-ring-fill{stroke:var(--accent);stroke-linecap:round;transform-origin:50%;transition:stroke-dashoffset .4s ease-out;transform:rotate(-90deg)}.goal-ring text{fill:var(--text);font-size:1rem;font-weight:900}.daily-goal-text{flex:12rem}.daily-goal-text p{margin:0}.daily-goal-title{font-size:1.15rem;font-weight:800}.streak{background:var(--accent-soft);color:var(--accent-strong);white-space:nowrap;border-radius:999px;margin:0;padding:.35rem .9rem;font-weight:900}.streak.none{background:var(--surface-2);color:var(--muted);font-weight:700}.review-card{flex-wrap:wrap;align-items:center;gap:.75rem 1rem;margin:0 0 1.5rem;padding:1rem 1.25rem;display:flex}.review-sign{background:var(--primary-soft);border-radius:1rem;flex:none;place-items:center;width:3.25rem;height:3.25rem;font-size:1.6rem;display:grid}.review-text{flex:12rem}.review-text h2{margin:0;font-size:1.25rem}.review-text p{margin:.15rem 0 0}.album-card{flex-wrap:wrap;align-items:center;gap:.75rem 1rem;margin:1.5rem 0 0;padding:1rem 1.25rem;display:flex}.album-sign{background:var(--accent-soft);border-radius:1rem;flex:none;place-items:center;width:3.25rem;height:3.25rem;font-size:1.6rem;display:grid}.album-text{flex:12rem}.album-text h2{margin:0;font-size:1.25rem}.album-text p{margin:.15rem 0 0}.sticker-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,9.5rem),1fr));gap:.75rem;margin:1rem 0;padding:0;list-style:none;display:grid}.sticker{border:2px dashed var(--line-strong);background:var(--surface-2);text-align:center;border-radius:1.25rem;flex-direction:column;align-items:center;gap:.3rem;padding:1rem .75rem;display:flex}.sticker-sign{filter:grayscale();opacity:.35;font-size:2.75rem;line-height:1.1}.sticker-title{color:var(--muted);font-weight:800;line-height:1.25}.sticker-note{color:var(--muted);font-size:.85rem;font-weight:600}.sticker.earned{border:2px solid var(--notice-line);background:var(--surface);box-shadow:var(--shadow)}.sticker.earned .sticker-sign{filter:drop-shadow(0 3px 4px #171a2e33);opacity:1;transform:rotate(-4deg)}.sticker.earned .sticker-title{color:var(--text)}.sticker-toast{border:2px solid var(--notice-line);background:var(--accent-soft);color:var(--notice-text);box-shadow:var(--shadow-lg);pointer-events:auto;border-radius:1.1rem;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.6rem;padding:.55rem .6rem .55rem .9rem;animation:.25s ease-out pop-in;display:flex}.sticker-toast-sign{flex:none;font-size:2rem}.sticker-toast-text{flex:11rem;font-weight:700;line-height:1.3}.sticker-toast .toast-close{width:2.25rem;min-height:2.25rem;color:var(--notice-text);background:0 0;border-radius:999px;flex:none;padding:0;font-size:1.3rem}.test-card{flex-wrap:wrap;align-items:center;gap:.75rem 1rem;margin-top:1.5rem;padding:1rem 1.25rem;display:flex}.test-card .medal{background:var(--accent-soft);border-radius:1rem;flex:none;place-items:center;width:3.25rem;height:3.25rem;font-size:1.6rem;display:grid}.test-text{flex:12rem}.test-text h3{margin:0}.test-text p{margin:.15rem 0 0}.medal.missing{filter:grayscale();opacity:.45}.medal.big{font-size:3.5rem;line-height:1.2;display:block}.homework-cards{margin:0 0 1.5rem}.homework-cards h2{margin:0 0 .75rem}.homework-cards ul{gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.homework-card{border-left:6px solid var(--primary);flex-wrap:wrap;align-items:center;gap:.75rem 1rem;padding:1rem 1.25rem;display:flex}.homework-card.finished{border-left-color:var(--correct)}.homework-sign{background:var(--primary-soft);border-radius:1rem;flex:none;place-items:center;width:3.25rem;height:3.25rem;font-size:1.6rem;display:grid}.homework-card.finished .homework-sign{background:var(--correct-soft);color:var(--correct);font-weight:900}.homework-text{flex:12rem}.homework-text h3{margin:0;font-size:1.15rem}.homework-text p{margin:.15rem 0 .4rem}.grade-label{background:var(--accent-soft);color:var(--notice-text);border-radius:999px;margin:0;padding:.15rem .75rem;font-weight:800;display:inline-block}.back-bar{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.subject-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr));gap:1.25rem;margin:0;padding:0;list-style:none;display:grid}.subject-card{width:100%;min-height:12rem;color:var(--on-color);text-align:left;box-shadow:inset 0 -6px 0 #00000024, var(--shadow-md);border-radius:1.75rem;flex-direction:column;justify-content:flex-end;align-items:flex-start;gap:.2rem;padding:1.5rem;display:flex;position:relative;overflow:hidden}.subject-card:after{content:"";background:#ffffff21;border-radius:999px;width:11rem;height:11rem;position:absolute;top:-3.5rem;right:-3rem}.subject-card:hover:not(:disabled){transform:translateY(-3px)rotate(-.5deg)}.subject-card:active:not(:disabled){transform:translateY(1px)}.subject-math{background:var(--subject-math-gradient)}.subject-english{background:var(--subject-english-gradient)}.subject-sign{background:#ffffff38;border:1px solid #ffffff59;border-radius:1.25rem;place-items:center;min-width:4rem;height:4rem;padding:0 .75rem;font-size:1.6rem;font-weight:900;display:grid;position:absolute;top:1.25rem;left:1.5rem}.subject-title{font-size:clamp(1.75rem,5vw,2.2rem);font-weight:900;line-height:1.15}.subject-meta{opacity:.92;font-size:1rem;font-weight:700}.grade-2{--chapter-colour:var(--grade-2)}.grade-3{--chapter-colour:var(--grade-3)}.grade-4{--chapter-colour:var(--grade-4)}.grade-5{--chapter-colour:var(--grade-5)}.chapters-head{margin-bottom:.75rem}.chapters-head h2{margin:0}.chapter-map{--row:10rem;margin:0 0 1rem;position:relative}.chapter-map-path{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.chapter-map-path path{fill:none;stroke-width:16px;stroke-linecap:round}.chapter-map-path .road{stroke:var(--surface-3)}.chapter-map-path .road-walked{stroke:var(--chapter-colour,var(--primary));opacity:.35}.stations{margin:0;padding:0;list-style:none;position:relative}.station{height:var(--row);position:relative}.station-stop{width:100%;min-height:0;box-shadow:none;color:var(--text);pointer-events:none;background:0 0;border:0;padding:0;position:absolute;inset:0}.station-stop:disabled{opacity:1}.station-stop:focus-visible{outline:none}.station-stop>*{pointer-events:auto}.station-stop:hover{background:0 0;transform:none}.station-circle{top:.6rem;left:var(--x);border:4px solid var(--surface);background:var(--chapter-colour,var(--primary));width:4.5rem;height:4.5rem;color:var(--on-color);box-shadow:inset 0 -4px 0 #00000026, var(--shadow-md);cursor:pointer;border-radius:50%;place-items:center;font-size:1.6rem;font-weight:900;transition:transform .15s;display:grid;position:absolute;transform:translate(-50%)}.station:not(.locked,.finish) .station-circle:before{content:"";z-index:-1;background:conic-gradient(var(--accent) calc(var(--done,0) * 1turn), var(--surface-3) 0);border-radius:50%;position:absolute;inset:-11px;-webkit-mask:radial-gradient(farthest-side,#0000 calc(100% - 6px),#000 calc(100% - 5px));mask:radial-gradient(farthest-side,#0000 calc(100% - 6px),#000 calc(100% - 5px))}.station-stop:hover:not(:disabled) .station-circle{transform:translate(-50%)scale(1.07)}.station-stop:focus-visible .station-circle{outline:3px solid var(--primary);outline-offset:3px}.station.current .station-circle{box-shadow:0 0 0 7px var(--accent-soft), inset 0 -4px 0 #00000026, var(--shadow-md)}.station.mastered .station-circle{border-color:var(--accent)}.station-medal{font-size:1.5rem;position:absolute;top:-.6rem;right:-.7rem}.station-me{top:0;left:calc(var(--x) + 2.2rem);font-size:2rem;animation:1.6s ease-in-out infinite hop;position:absolute}@keyframes hop{50%{translate:0 -6px}}.station-label{top:5.5rem;left:var(--x);width:max-content;max-width:min(14rem,62%);transform:translateX(calc(var(--x) * -1));background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);text-align:center;cursor:pointer;border-radius:.9rem;flex-direction:column;align-items:center;padding:.35rem .8rem;display:flex;position:absolute}.station-title{font-size:.98rem;font-weight:800;line-height:1.25}.station-stars{color:var(--accent-strong);font-size:.9rem;font-weight:800}.station-soon{color:var(--muted);font-size:.85rem;font-weight:700}.station.locked .station-circle,.station.finish .station-circle{background:var(--surface-2);border:3px dashed var(--line-strong);box-shadow:none;cursor:not-allowed}.station.locked .station-label{background:var(--surface-2);color:var(--muted);box-shadow:none;cursor:not-allowed}.station.finish .station-circle{cursor:default;filter:grayscale();opacity:.6;font-size:2rem}.station.finish .station-label{cursor:default}.station.finish.reached .station-circle{background:var(--accent-soft);border:4px solid var(--accent);filter:none;opacity:1}.next-card{border:3px solid var(--primary);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1rem;margin:0 0 1.5rem;padding:1.1rem 1.25rem;display:flex}.next-text{flex:14rem;min-width:0}.next-text h2{margin:.1rem 0 .2rem;font-size:1.35rem}.next-text p{margin:0}.next-label{color:var(--primary-strong);letter-spacing:.04em;text-transform:uppercase;font-size:.85rem;font-weight:800}.next-card .primary{min-width:9rem;font-size:1.2rem}.first-avatar{margin:0 0 1.5rem;padding:1rem 1.25rem}.lessons h3{margin:0 0 .75rem;font-size:1.25rem}.lesson-list{gap:.6rem;margin:0;padding:0;list-style:none;display:grid}.lesson-item{background:var(--surface);border:2px solid var(--line);border-radius:var(--radius);width:100%;min-height:3.75rem;color:var(--text);text-align:left;align-items:center;gap:.75rem;padding:.6rem .9rem .6rem .6rem;font-weight:800;display:flex}.lesson-item:hover{border-color:var(--primary)}.lesson-icon{background:var(--blob-2);border-radius:.8rem;flex:none;place-items:center;width:2.5rem;height:2.5rem;font-size:1.3rem;display:grid}.lesson-item-text{flex:1;min-width:0;line-height:1.25}.lesson-item-text .muted{font-size:.85rem;font-weight:700;display:block}.lesson-go{background:var(--primary-soft);color:var(--primary-strong);border-radius:999px;flex:none;padding:.35rem .9rem;font-weight:900}.lesson-group{margin-top:1rem}.lesson-group-head{align-items:center;gap:.75rem;margin-bottom:.75rem;display:flex}.lesson-group-head h4{margin:0;font-size:1.15rem}button.lesson-go{cursor:pointer;border:0;min-height:2.75rem}button.lesson-go:hover{background:var(--primary);color:var(--primary-text)}.lesson-group.mastered .lesson-icon{background:var(--correct);color:var(--on-color);font-weight:900}.heat-lesson{margin:.5rem 0 0}.lesson-player.inline{border:2px dashed var(--line-strong);border-radius:var(--radius-lg);margin-bottom:1rem;padding:1rem}.lesson-player>.toolbar{flex-wrap:nowrap;align-items:flex-start}.lesson-player h2,.lesson-player h3{flex:1;min-width:0;margin:0}.lesson-kicker{background:var(--accent-soft);width:fit-content;color:var(--accent-strong);border-radius:999px;margin-bottom:.3rem;padding:.1rem .6rem;font-size:.8em;display:block}.lesson-dots{gap:.4rem;margin:.75rem 0 1rem;padding:0;list-style:none;display:flex}.lesson-dots li{background:var(--surface-3);border-radius:999px;flex:1;max-width:3rem;height:.6rem}.lesson-dots li.seen{background:var(--primary-soft)}.lesson-dots li.current{background:var(--primary)}.lesson-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);min-height:14rem;box-shadow:var(--shadow-md);padding:clamp(1.25rem,4vw,2rem);animation:.25s ease-out pop-in}.lesson-card.idea{text-align:center;flex-direction:column;justify-content:center;display:flex}.lesson-card.remember{background:var(--accent-soft);border:2px solid var(--notice-line);color:var(--notice-text);text-align:center;flex-direction:column;justify-content:center;display:flex}.lesson-card.try .exercise{box-shadow:none;border:0;padding:0}.lesson-label{color:var(--primary-strong);letter-spacing:.04em;text-transform:uppercase;margin:0 0 .75rem;font-size:.95rem;font-weight:900}.lesson-card.remember .lesson-label{color:var(--accent-strong)}.lesson-text{white-space:pre-line;margin:0;font-size:clamp(1.25rem,4.5vw,1.6rem);font-weight:700;line-height:1.45}.lesson-question{margin:0 0 .75rem;font-size:clamp(1.25rem,4.5vw,1.6rem);font-weight:800}.lesson-steps{font-variant-numeric:tabular-nums;margin:0;padding-left:1.6rem;font-size:clamp(1.15rem,4vw,1.4rem);line-height:1.6}.lesson-steps li{animation:.25s ease-out pop-in}.lesson-nav{justify-content:space-between;gap:1rem;margin-top:1rem;display:flex}.lesson-nav button{min-width:8rem;min-height:3.25rem;font-size:1.15rem}@media (prefers-reduced-motion:reduce){.lesson-card,.lesson-steps li{animation:none}}.exercises-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-top:1.5rem;display:flex}.exercises-head>div{flex-direction:column;flex:14rem;gap:.4rem;display:flex}.exercises-head h3{margin:0;font-size:1.35rem}.exercises-head p{margin:0}.exercises-head .primary{min-height:3.5rem;padding-inline:2rem;font-size:1.15rem}@media (width<=40rem){.exercises-head .primary{flex:100%}}.exercise-list{grid-template-columns:repeat(auto-fill,minmax(min(100%,17rem),1fr));gap:.6rem;margin:1rem 0 0;padding:0;list-style:none;display:grid}.exercise-item{background:var(--surface);border:2px solid var(--line);border-radius:var(--radius);width:100%;min-height:3.75rem;color:var(--text);text-align:left;align-items:center;gap:.75rem;padding:.6rem .9rem .6rem .6rem;font-weight:800;display:flex}.exercise-item:hover{border-color:var(--primary)}.exercise-num{background:var(--primary-soft);width:2.5rem;height:2.5rem;color:var(--primary-strong);border-radius:.8rem;flex:none;place-items:center;font-weight:900;display:grid}.exercise-item.done{border-color:var(--correct-soft)}.exercise-item.done .exercise-num{background:var(--correct);color:var(--on-color)}.exercise-text{flex:1;min-width:0;line-height:1.25}.exercise-text .muted{font-size:.85rem;font-weight:700;display:block}.exercise-question{-webkit-line-clamp:2;line-clamp:2;overflow-wrap:anywhere;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.play-meter{height:.75rem;margin:.25rem 0 1.25rem}.play-meter>span{background:var(--primary-gradient)}.exercise{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:clamp(1.25rem,4vw,2rem)}.exercise form{flex-wrap:wrap;align-items:center;gap:1rem;display:flex}.exercise .problem{font-size:clamp(2rem,9vw,3.5rem);font-weight:900}.exercise input{border:3px solid var(--line-strong);border-radius:var(--radius);background:var(--surface-2);text-align:center;width:8ch;padding:.25rem .5rem;font-size:clamp(2rem,9vw,3.5rem);font-weight:800}.exercise input:focus{border-color:var(--primary);background:var(--surface);box-shadow:var(--ring);outline:none}.question{margin-top:0;font-size:clamp(1.25rem,5vw,1.75rem);font-weight:800}.picture{margin:0 0 1rem;font-size:clamp(1.75rem,8vw,3.5rem)}.picture-word{margin:0 .15em;display:inline-block}.picture-group{white-space:nowrap;display:inline-block}.picture-group+.picture-group{margin-left:.2em}.picture-word.pattern .picture-group{white-space:normal}.nudge{border:1px solid var(--notice-line);border-radius:var(--radius);background:var(--accent-soft);color:var(--notice-text);flex-wrap:wrap;justify-content:center;align-items:center;gap:.75rem;margin:0 0 1rem;padding:.9rem 1.1rem;font-weight:600;display:flex}.nudge p{margin:0}.student-note{max-width:28rem;color:var(--muted);white-space:pre-line;margin-top:.15rem;font-size:.85rem;display:block}.feedback{min-height:2rem;font-size:1.5rem;font-weight:800}.feedback.correct{color:var(--correct)}.feedback.wrong{color:var(--try-again)}.options,.tile-pool{flex-wrap:wrap;gap:.75rem;display:flex}.option,.tile{background:var(--surface);min-width:4.75rem;min-height:4.25rem;color:var(--text);border:3px solid var(--line-strong);border-radius:1.1rem;font-size:clamp(1.5rem,6vw,2rem);box-shadow:inset 0 -5px #0000000f}.option:hover:not(:disabled){border-color:var(--primary);background:var(--primary-soft);transform:translateY(-2px)}.option.wrong{border-color:var(--try-again-line);background:var(--try-again-soft);color:var(--try-again);cursor:not-allowed;text-decoration:line-through}.option.reveal{border-color:var(--correct);background:var(--correct-soft);color:var(--correct);animation:.35s ease-out pop-in}.help{border:2px solid var(--notice-line);border-radius:var(--radius);background:var(--accent-soft);color:var(--notice-text);text-align:left;margin-top:.5rem;padding:1rem 1.25rem;font-size:1.15rem}.help p{margin:0}.help-hint{font-weight:700}.help-title{font-weight:800}.help .help-hint+.help-title{border-top:1px dashed var(--notice-line);margin-top:.75rem;padding-top:.75rem}.help>button{margin-top:.75rem}.help-steps{font-variant-numeric:tabular-nums;margin:.4rem 0 0;padding-left:1.5rem;font-size:1.25rem;line-height:1.6}.tile{cursor:grab;border-color:var(--primary)}.tile.selected{background:var(--primary);color:var(--primary-text)}.tile-pool{border-radius:var(--radius);background:var(--surface-2);align-items:center;min-height:4.75rem;margin-bottom:1rem;padding:.5rem}.drop-slots,.drop-groups{gap:.75rem;margin-bottom:1rem;display:grid}.drop-slots{grid-template-columns:repeat(auto-fill,minmax(5rem,1fr))}.drop-groups{grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr))}.exercise.letters .tile{min-width:2.6rem;min-height:3.25rem;padding:0 .5rem}.exercise.letters .tile-pool{gap:.5rem}.exercise.letters .drop-slots{grid-template-columns:repeat(auto-fill,minmax(3.25rem,1fr));gap:.4rem}.exercise.letters .drop-target{min-height:3.75rem;padding:.2rem}.drop-target{border:3px dashed var(--line-strong);border-radius:var(--radius);background:var(--surface);flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem;min-height:5rem;padding:.5rem;display:flex}.drop-target h3{text-align:center;width:100%;margin:0}.slot-number{color:var(--muted);font-size:1.5rem;font-weight:800}.stars{color:var(--accent);-webkit-text-stroke:.05em var(--accent-strong);letter-spacing:.1em;white-space:nowrap;font-size:1.25rem}.stars.big{-webkit-text-stroke-width:.03em;filter:drop-shadow(0 4px 8px #f59e0b59);font-size:clamp(3rem,14vw,4.5rem);display:inline-block}.star-pop{animation:.45s cubic-bezier(.34,1.56,.64,1) both star-pop;display:inline-block}@keyframes star-pop{0%{opacity:0;transform:scale(.2)rotate(-30deg)}}.celebrate-banner{background:var(--accent-soft);width:fit-content;color:var(--notice-text);border-radius:999px;margin:0 auto .75rem;padding:.5rem 1rem;font-size:1.1rem;font-weight:800;animation:.4s ease-out .6s both pop-in}.confetti{z-index:70;pointer-events:none;position:fixed;inset:0;overflow:hidden}.confetti span{top:-1rem;left:var(--x);background:var(--colour);width:.55rem;height:.9rem;animation:confetti-fall 1.9s ease-in var(--delay) both;border-radius:2px;position:absolute}.confetti span.round{border-radius:50%;width:.6rem;height:.6rem}@keyframes confetti-fall{0%{opacity:1;transform:translate(0)rotate(0)}80%{opacity:1}to{opacity:0;transform:translate(var(--drift), 100dvh) rotate(var(--spin))}}.medal.win{animation:.8s cubic-bezier(.34,1.56,.64,1) both medal-win}@keyframes medal-win{0%{opacity:0;transform:scale(.3)rotate(-25deg)}60%{transform:scale(1.2)rotate(8deg)}}.stars-empty{color:var(--star-empty);-webkit-text-stroke:0}.result{text-align:center;border-radius:var(--radius-lg);margin-top:1rem;padding:2rem 1.25rem}.result .toolbar{justify-content:center}.exercise-title .muted{font-size:.95rem;font-weight:700;display:block}.preview-help{justify-items:start;gap:.75rem;margin-top:1rem;display:grid}.preview-help .card{width:100%}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.25rem}.card>h2:first-child{margin-top:0}.stack{flex-direction:column;gap:.9rem;display:flex}.stack>p,.stack>h2{margin:0}.stack-lg{flex-direction:column;gap:1.5rem;display:flex}.stack fieldset{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2);margin:0;padding:.75rem 1rem 1rem}.stack legend{padding:0 .35rem;font-weight:800}.stack label{flex-direction:column;gap:.35rem;font-size:.95rem;font-weight:700;display:flex}.stack input,.stack select,.stack textarea{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface-2);min-height:3rem;padding:.5rem .85rem;font-size:1rem;font-weight:500;transition:border-color .15s,background-color .15s,box-shadow .15s}.stack textarea{resize:vertical}.stack input:focus,.stack select:focus,.stack textarea:focus,.filters input:focus,.filters select:focus,.admin td select:focus,.grid-table select:focus{border-color:var(--primary);background:var(--surface);box-shadow:var(--ring);outline:none}.stack label.check{flex-direction:row;align-items:center;gap:.6rem;font-weight:500}.stack label.check input{width:1.3rem;height:1.3rem;min-height:auto;accent-color:var(--primary)}label.check{align-items:center;gap:.5rem;display:flex}.stack label.inline-field{flex-flow:wrap;justify-content:space-between;align-items:center;gap:.5rem 1rem}.form-error,.form-success{min-height:1.5rem;margin:0;font-weight:700}.form-error:empty,.form-success:empty{min-height:0}.form-error{color:var(--wrong)}.form-success{color:var(--correct)}.form-actions{flex-wrap:wrap;justify-content:flex-end;gap:.75rem;display:flex}@media (width<=40rem){.form-actions>button{flex:100%}}.danger-zone{border-top:1px solid var(--line);align-items:flex-start;padding-top:1rem}.table-wrap{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow-x:auto}table{border-collapse:collapse;background:var(--surface);width:100%}th,td{text-align:left;border-bottom:1px solid var(--line);padding:.75rem 1rem}td.row-end{text-align:right;white-space:nowrap}td.row-end .row-actions{flex-wrap:nowrap}thead th{background:var(--surface-2);color:var(--muted);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;font-size:.75rem;font-weight:700}tbody tr:last-child>*{border-bottom:none}@media (width<=40rem){table.cards-on-phone thead{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}table.cards-on-phone,table.cards-on-phone tbody,table.cards-on-phone tr{display:block}table.cards-on-phone tr{border-bottom:1px solid var(--line);padding:.75rem 1rem}table.cards-on-phone tbody tr:last-child{border-bottom:0}table.cards-on-phone td{text-align:right;border:0;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.25rem 1rem;padding:.2rem 0;display:flex}table.cards-on-phone td[data-label]:before{content:attr(data-label);color:var(--muted);text-align:left;font-size:.85rem;font-weight:600}table.cards-on-phone td:first-child{text-align:left;padding-bottom:.35rem;font-weight:800;display:block}table.cards-on-phone td:first-child:before{content:none}table.cards-on-phone td:not([data-label]){justify-content:flex-end}}tbody tr:hover>*{background:var(--row-hover)}.admin{--bg:#f5f6fa;background:var(--bg);min-height:100dvh;font-family:var(--font-adults);font-size:.95rem}.admin button{border-radius:var(--radius-sm);min-height:2.5rem;padding:.5rem 1rem;font-weight:600}.admin .primary{background:var(--primary);box-shadow:0 1px 2px #4f46e540}.admin .primary:hover:not(:disabled){background:var(--primary-strong);transform:none}.admin button.small{min-height:2.15rem;padding:.25rem .8rem}.admin a{font-weight:600}.admin a.brand{font-weight:900}.admin-top{z-index:20;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);background:#ffffffe6;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 1rem;min-height:3.75rem;padding:.5rem 1.25rem;display:flex;position:sticky;top:0}.admin-title{align-items:center;gap:.75rem;min-width:0;display:flex}.admin-top .context{background:var(--surface-3);color:var(--muted);text-overflow:ellipsis;white-space:nowrap;border-radius:999px;padding:.2rem .75rem;font-size:.85rem;font-weight:600;overflow:hidden}.admin-top .who-text{font-size:.9rem}.banner{margin:0;padding:.5rem 1.25rem}.banner-admin{background:var(--accent-soft);color:var(--notice-text);border-bottom:1px solid var(--notice-line);font-weight:600}.admin-body{grid-template-columns:15rem 1fr;align-items:start;max-width:84rem;margin:0 auto;display:grid}.admin-nav ul{flex-direction:column;gap:.2rem;margin:0;padding:1.5rem .75rem;list-style:none;display:flex;position:sticky;top:3.75rem}.admin-nav a{border-radius:var(--radius-sm);color:var(--muted);white-space:nowrap;align-items:center;gap:.7rem;padding:.6rem .85rem;font-weight:600;text-decoration:none;transition:background-color .15s,color .15s;display:flex}.admin-nav .icon{opacity:.85;flex:none}.admin-nav a:hover{background:var(--surface-3);color:var(--text)}.admin-nav a.active{background:var(--surface);color:var(--primary-strong);box-shadow:var(--shadow)}.admin-nav a.active .icon{opacity:1}.admin-main{min-width:0;padding:2rem 1.75rem 4rem}.admin h1{margin:0;font-size:1.65rem;font-weight:700}.admin h2{letter-spacing:-.01em;margin:0;font-size:1.1rem;font-weight:700}.page-header,.section-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:.75rem 1rem;display:flex}.section-header{align-items:center}.page-header p{max-width:48rem;margin:.3rem 0 0}@media (width<=48rem){.admin-body{grid-template-columns:1fr}.admin-top{flex-wrap:nowrap;padding:.5rem 1rem}.admin-top .user-bar{flex-wrap:nowrap;flex:none}.admin-top .who-text{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.admin-nav{z-index:15;border-bottom:1px solid var(--line);scrollbar-width:none;background:#fffffff2;position:sticky;top:3.75rem;overflow-x:auto}.admin-nav[data-more=right]{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 2.5rem),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 2.5rem),#0000)}.admin-nav[data-more=left]{-webkit-mask-image:linear-gradient(270deg,#000 calc(100% - 2.5rem),#0000);mask-image:linear-gradient(270deg,#000 calc(100% - 2.5rem),#0000)}.admin-nav[data-more=both]{-webkit-mask-image:linear-gradient(90deg,#0000,#000 2.5rem calc(100% - 2.5rem),#0000);mask-image:linear-gradient(90deg,#0000,#000 2.5rem calc(100% - 2.5rem),#0000)}.admin-nav ul{flex-direction:row;padding:.5rem;position:static}.admin-nav a{border-radius:999px;gap:.45rem;padding:.45rem .8rem}.admin-nav a.active{background:var(--primary-soft);box-shadow:none}.admin-main{padding:1.25rem 1rem 3rem}}@media (width<=30rem){.kids-top .who-text{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.admin-top .context,.wide-only{display:none}}.add-button{align-items:center;gap:.45rem;display:inline-flex}.admin .add-button{box-shadow:var(--shadow-primary)}.add-button .plus{background:#ffffff38;border-radius:999px;place-items:center;width:1.35rem;height:1.35rem;font-size:1.15rem;line-height:1;display:inline-grid}.dialog-backdrop{z-index:50;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#171a2e73;place-items:center;padding:1rem;animation:.15s ease-out fade-in;display:grid;position:fixed;inset:0}.dialog{font-family:var(--font-adults);background:var(--surface);border-radius:var(--radius-lg);width:min(100%,32rem);min-width:0;max-height:calc(100dvh - 2rem);box-shadow:var(--shadow-lg);flex-direction:column;animation:.18s ease-out pop-in;display:flex}.dialog:focus{outline:none}.dialog select{max-width:100%}.dialog-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:1rem;padding:1.1rem 1rem .9rem 1.5rem;display:flex}.dialog-header h2{margin:0;font-size:1.15rem}.dialog-body{padding:1.25rem 1.5rem 1.5rem;overflow-y:auto}.dialog button{border-radius:var(--radius-sm);min-height:2.75rem;padding:.5rem 1.25rem;font-weight:600}.dialog .primary{background:var(--primary);box-shadow:none}.dialog .icon-button,.icon-button{width:2.5rem;min-height:2.5rem;color:var(--muted);background:0 0;border-radius:999px;padding:0;font-size:1.5rem;line-height:1}.icon-button:hover{background:var(--surface-2);color:var(--text)}@media (width<=40rem){.dialog-backdrop{place-items:end stretch;padding:0}.dialog{border-radius:var(--radius-lg) var(--radius-lg) 0 0;width:100%;max-height:92dvh;animation-name:slide-up}.dialog-body{padding:1rem 1rem calc(1.25rem + env(safe-area-inset-bottom))}}@keyframes fade-in{0%{opacity:0}}@keyframes pop-in{0%{opacity:0;transform:translateY(8px)scale(.97)}}@keyframes slide-up{0%{transform:translateY(100%)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}.confetti{display:none}}.snackbar-region{left:50%;bottom:calc(1rem + env(safe-area-inset-bottom));z-index:60;pointer-events:none;width:min(100% - 2rem,34rem);position:fixed;transform:translate(-50%)}.snackbar,.toast{font-family:var(--font-adults);background:var(--text);color:var(--on-color);border-radius:.9rem;align-items:center;gap:.75rem;font-weight:600;display:flex}.snackbar{box-shadow:var(--shadow-lg);pointer-events:auto;justify-content:space-between;padding:.6rem .6rem .6rem 1.1rem;animation:.18s ease-out pop-in}.snackbar button{width:2.25rem;min-height:2.25rem;color:var(--on-color);background:0 0;border-radius:999px;flex:none;padding:0;font-size:1.3rem}.snackbar button:hover{background:#ffffff26}.toast{flex-wrap:wrap;gap:.5rem 1rem;margin:0;padding:.6rem 1rem}.stat-grid,.card-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,9rem),1fr));gap:1rem;margin:0;padding:0;list-style:none;display:grid}.card-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,16rem),1fr))}.stat{--stat-colour:var(--primary);color:var(--text);flex-direction:column;gap:.15rem;padding:1.1rem 1.25rem 1.25rem;text-decoration:none;display:flex;position:relative;overflow:hidden}.stat:before{content:"";background:var(--stat-colour);border-radius:999px;width:2rem;height:.35rem;margin-bottom:.6rem}.stat-grid>:nth-child(4n+2){--stat-colour:var(--grade-3)}.stat-grid>:nth-child(4n+3){--stat-colour:var(--accent)}.stat-grid>:nth-child(4n+4){--stat-colour:var(--subject-english)}a.stat{transition:box-shadow .15s,transform .15s,border-color .15s}a.stat:hover{border-color:var(--line-strong);box-shadow:var(--shadow-md);transform:translateY(-2px)}.stat-value{letter-spacing:-.02em;font-size:2.1rem;font-weight:700;line-height:1.1}.stat-label{color:var(--muted);font-weight:600}.fold>summary{cursor:pointer;color:var(--primary);font-weight:700}.fold[open]>summary{margin-bottom:.75rem}.new-year-rules{gap:.3rem;margin:0;padding-left:1.2rem;display:grid}.new-year-warn{color:var(--notice-text);font-weight:600}.checklist{flex-direction:column;gap:.65rem;margin:0;padding:0;list-style:none;display:flex}.checklist li{align-items:baseline;gap:.65rem;display:flex}.checklist li>span:first-child{border:2px solid var(--line-strong);width:1.5rem;height:1.5rem;color:var(--muted);border-radius:999px;flex:none;place-items:center;font-size:.8rem;line-height:1;display:inline-grid}.checklist li:not(.done)>span:first-child{color:#0000;border-color:var(--primary)}.checklist li.done a{color:var(--muted);font-weight:500;text-decoration:line-through}.checklist li.done>span:first-child{background:var(--correct);border-color:var(--correct);color:var(--on-color);font-weight:800}.filters{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);flex-wrap:wrap;gap:.75rem;padding:.9rem 1rem;display:flex}.filters label{flex-direction:column;flex:12rem;gap:.25rem;font-size:.85rem;font-weight:600;display:flex}.filters input,.filters select,.grid-table select,.admin td select{border:1px solid var(--line-strong);background:var(--surface);border-radius:.5rem;min-height:2.5rem;padding:.25rem .6rem;font-weight:400}.tabs{background:var(--surface-3);border-radius:999px;flex-wrap:wrap;align-self:flex-start;gap:.25rem;padding:.25rem;display:inline-flex}@media (width<=40rem){.tabs{border-radius:var(--radius);display:flex}}.admin .tab{min-height:2.25rem;color:var(--muted);background:0 0;border-color:#0000;border-radius:999px;padding:.3rem 1rem}.admin .tab:hover{color:var(--text)}.admin .tab.active{background:var(--surface);color:var(--primary-strong);box-shadow:var(--shadow)}.chapter-path{counter-reset:step;flex-direction:column;gap:.6rem;margin:0;padding:0 0 0 2.75rem;list-style:none;display:flex;position:relative}.chapter-path:before{content:"";background:var(--line-strong);width:2px;position:absolute;top:1.5rem;bottom:1.5rem;left:.95rem}.chapter-path li{counter-increment:step;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.4rem 1rem;padding:.85rem 1.1rem;font-weight:600;display:flex;position:relative}.chapter-path li:before{content:counter(step);background:var(--surface);border:2px solid var(--line-strong);width:2rem;height:2rem;color:var(--muted);border-radius:999px;place-items:center;font-size:.85rem;font-weight:700;display:grid;position:absolute;top:50%;left:-2.75rem;translate:0 -50%}.chapter-path li.open:before{background:var(--correct);border-color:var(--correct);color:var(--on-color)}.chapter-path li .muted{font-weight:400}.chapter-name{flex-wrap:wrap;align-items:center;gap:.25rem .6rem;display:inline-flex}.quiet-link{color:var(--muted);font-size:.9rem;font-weight:600}.row-actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:inline-flex}.next-chapter{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1rem;padding:1rem 1.1rem;display:flex}.next-chapter p{margin:0}.next-chapter .muted{font-size:.9rem;display:block}.preview{background:var(--bg);font-family:var(--font-kids);border:2px dashed var(--line-strong);border-radius:var(--radius-lg);padding:1.25rem;font-size:1rem}.preview button{border-radius:var(--radius);min-height:3rem;padding:.75rem 1.5rem;font-weight:800}.preview.board{z-index:60;zoom:1.5;border:0;border-radius:0;padding:1rem 2rem 2rem;position:fixed;inset:0;overflow:auto}.board-bar{justify-content:flex-end;align-items:center;margin-bottom:1rem;display:flex}.preview .board-bar button{min-height:2.25rem;padding:.35rem .9rem}@media (width<=40rem){.preview.board{zoom:1;padding:1rem}}.preview .primary{background:var(--primary-gradient);box-shadow:var(--shadow-primary)}.grid-table th[scope=row]{white-space:nowrap;background:var(--surface);position:sticky;left:0}.grid-table td{vertical-align:top;min-width:9rem}.grid-table td.cell-empty,tbody tr:hover>td.cell-empty{background:var(--cell-empty)}.chips{flex-wrap:wrap;gap:.25rem;margin:0 0 .4rem;padding:0;list-style:none;display:flex}.chip{background:var(--primary-soft);color:var(--primary-strong);border-radius:999px;align-items:center;gap:.25rem;padding:.1rem .25rem .1rem .7rem;font-size:.85rem;font-weight:600;display:inline-flex}.admin .chip button{min-height:1.75rem;color:inherit;background:0 0;border-radius:999px;padding:0 .5rem}.admin .chip button:hover{background:#4f46e51f}.login-cards{grid-template-columns:repeat(auto-fill,minmax(min(100%,15rem),1fr));gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.login-card{border:2px dashed var(--line-strong);background:var(--surface);break-inside:avoid;border-radius:.75rem;flex-direction:column;gap:.2rem;padding:.75rem 1rem;display:flex}.login-card strong{font-size:1.15rem}.login-card code{font-size:1.15rem;font-weight:800}@media print{body,.admin{background:#fff}body *{visibility:hidden}.print-area,.print-area *{visibility:visible}.print-area{grid-template-columns:repeat(3,1fr);width:100%;position:absolute;inset:0 auto auto 0}}.today-list{gap:.5rem;margin:0;padding-left:1.2rem;display:grid}.worksheet-tools{flex-wrap:wrap;align-items:flex-end;gap:.75rem 1.5rem;display:flex}.worksheet-tools .row-actions{margin-left:auto}.worksheet{border:1px solid var(--line);border-radius:var(--radius);color:#000;font-family:var(--font-kids);background:#fff;padding:2rem}.worksheet-head h1{margin:.25rem 0 .75rem;font-size:1.5rem}.worksheet-head p{margin:0}.worksheet-name{border-bottom:2px solid #000;flex-wrap:wrap;gap:.5rem 2rem;padding-bottom:.75rem;display:flex}.worksheet-tasks{gap:1.25rem;margin:1.25rem 0 0;padding-left:1.75rem;display:grid}.worksheet-task{break-inside:avoid;font-size:1.05rem}.worksheet-task::marker{font-weight:800}.worksheet-question{margin:0 0 .5rem;font-weight:700}.worksheet .visual{justify-content:flex-start;margin:.25rem 0 .5rem}.worksheet .picture{text-align:left;margin:.25rem 0;font-size:1.75rem}.worksheet-options{flex-wrap:wrap;gap:.4rem 1.75rem;margin:0;padding:0;list-style:none;display:flex}.worksheet-box{vertical-align:-.1rem;border:1.5px solid #000;border-radius:50%;width:.9rem;height:.9rem;margin-right:.2rem;display:inline-block}.worksheet-line{border-bottom:1.5px solid #000;max-width:22rem;height:1.75rem;margin:.25rem 0 0}.worksheet-clock .clock{width:8rem;height:8rem}.worksheet .fraction-bar{max-width:22rem}.worksheet-tiles{flex-wrap:wrap;gap:.5rem;margin:0;display:flex}.worksheet-tiles span{border:1.5px solid #000;border-radius:.4rem;padding:.2rem .6rem}.worksheet-groups{grid-template-columns:repeat(auto-fit,minmax(8rem,1fr));gap:.75rem;margin-top:.6rem;display:grid}.worksheet-groups>div{border:1.5px solid #000;border-radius:.4rem;min-height:5rem;padding:.4rem .6rem}.worksheet-answers{break-before:page;border-top:2px dashed #000;margin-top:2rem;padding-top:1rem}.worksheet-answers h2{margin:0 0 .5rem;font-size:1.15rem}.worksheet-answers ol{columns:2 16rem;column-gap:3rem;margin:0;padding-left:1.75rem}.worksheet-answers li{break-inside:avoid}@media print{.print-area.worksheet{border:0;padding:0;display:block}.worksheet .fraction-part.shaded,.worksheet .fraction-part{-webkit-print-color-adjust:exact;print-color-adjust:exact}@page{margin:1.5cm}}.heat{font-variant-numeric:tabular-nums;white-space:nowrap;min-width:3.75rem;min-height:2.25rem;color:var(--text);border:0;border-radius:.4rem;padding:.2rem .45rem;font-weight:600;display:inline-block}.heat-0{background:var(--heat-0);box-shadow:inset 0 0 0 1px var(--line-strong);color:var(--muted)}.heat-1{background:var(--heat-1)}.heat-2{background:var(--heat-2);color:var(--on-color)}.heat-3{background:var(--heat-3);color:var(--on-color)}.heat[aria-pressed=true]{outline:3px solid var(--accent);outline-offset:2px}.heat-key{gap:.25rem;display:grid}.heat-key p{margin:0}.heat-legend{flex-wrap:wrap;gap:.5rem 1rem;margin:0;padding:0;list-style:none;display:flex}.heat-legend .heat{vertical-align:middle;min-width:1.25rem;min-height:1.25rem;padding:0}.heatmap th,.heatmap td{text-align:center;padding:.35rem .3rem}.heatmap thead th{vertical-align:bottom;white-space:normal;min-width:4.5rem;max-width:8rem;line-height:1.25}.heatmap tbody th,.heatmap thead th:first-child{z-index:1;background:var(--surface);text-align:left;white-space:nowrap;padding-left:.75rem;font-weight:600;position:sticky;left:0}.homework-list{gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.homework-head{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.homework-head h3{margin:0}.homework-head p{margin:.2rem 0 0}.homework-summary{flex-wrap:wrap;align-items:center;gap:.5rem .75rem;margin:.75rem 0 .5rem;font-weight:700;display:flex}.homework-summary .meter{flex:0 12rem}.homework-item summary{cursor:pointer;color:var(--primary);font-weight:700}.homework-students{gap:.25rem;margin:.5rem 0 0;padding:0;list-style:none;display:grid}.homework-students li{border-radius:var(--radius-sm);background:var(--surface-2);justify-content:space-between;gap:1rem;padding:.35rem .5rem;display:flex}.homework-students li.done{background:var(--correct-soft);color:var(--correct);font-weight:700}.homework-exercises{gap:.4rem;max-height:16rem;margin-top:.5rem;display:grid;overflow-y:auto}.insight-list{gap:.6rem;margin:0;padding:0;list-style:none;display:grid}.insight-item{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 1.5rem;padding:.9rem 1.1rem;display:flex}.insight-text{flex:18rem}.insight-text p{margin:0}.insight-chapter{font-size:.875rem}.insight-exercise{font-weight:700}.insight-share{flex-direction:column;flex:0 22rem;gap:.3rem;font-size:.9rem;display:flex}.insight-wrong{color:var(--wrong);flex-basis:100%;margin:0;font-size:.9rem}.insight-actions{flex-wrap:wrap;flex-basis:100%;gap:.5rem;display:flex}.meter.meter-wrong>span{background:var(--wrong)}.week-switcher{align-items:center;gap:.75rem;display:flex}.week-switcher button{min-width:2.75rem;font-size:1.25rem}.week-switcher strong{flex-direction:column;flex:auto;align-items:center;display:flex}.week-dates{font-size:.85rem;font-weight:600}.stat-grid.week-stats{grid-template-columns:repeat(3,minmax(0,1fr));max-width:40rem}@media (width<=40rem){.week-stats .stat{padding:.8rem .75rem .9rem}.week-stats .stat-value{font-size:1.6rem}.week-stats .stat-label{font-size:.85rem}}.stat-value small{color:var(--muted);font-size:1rem;font-weight:600}.small-text{font-size:.85rem}.week-list{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.week-list li{border-radius:var(--radius-sm);background:var(--surface-2);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.4rem 1.5rem;padding:.7rem .9rem;display:flex}.week-list li>div{flex-direction:column;flex:16rem;gap:.15rem;display:flex}.week-share{flex-direction:column;flex:0 18rem;gap:.3rem;font-size:.9rem;display:flex}.chip.chip-plain{padding:.2rem .75rem}details.card>summary{cursor:pointer;color:var(--primary);font-weight:700}details.card[open]>summary{margin-bottom:.75rem}.week-change{font-variant-numeric:tabular-nums}.count-bar{align-items:center;gap:.6rem;width:13rem;max-width:100%;display:inline-flex}.count-bar-value{font-variant-numeric:tabular-nums;flex:none;min-width:5rem}.count-bar .meter{flex:auto}.meter.meter-count>span{background:var(--primary)}@media print{.meter,.meter>span{-webkit-print-color-adjust:exact;print-color-adjust:exact}}@media (width<=40rem){.count-bar{width:10rem}}.visual{justify-content:center;margin:0 0 1rem;display:flex}.clock{width:min(14rem,70vw);height:auto}.clock-face{fill:var(--clock-face);stroke:var(--text);stroke-width:4px}.clock-tick{stroke:var(--muted);stroke-width:1.5px}.clock-tick.big{stroke:var(--text);stroke-width:3px}.clock-number{fill:var(--text);text-anchor:middle;font-size:1.15rem;font-weight:800}.clock-hand{stroke-linecap:round;transition:transform .25s ease-out}.clock-hand.hour{stroke:var(--clock-hour);stroke-width:9px}.clock-hand.minute{stroke:var(--clock-minute);stroke-width:5px}.clock-center{fill:var(--clock-hour)}.clock-controls{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;max-width:24rem;margin:0 auto 1rem;display:grid}.fraction-bar{border:3px solid var(--text);border-radius:.75rem;width:min(100%,28rem);height:4rem;display:flex;overflow:hidden}.fraction-part{border:0;border-right:3px solid var(--text);background:var(--surface);border-radius:0;flex:1;min-width:0;padding:0}.fraction-part:last-child{border-right:0}.fraction-part.shaded{background:var(--fraction-fill)}.fraction-bar.interactive .fraction-part{cursor:pointer}.fraction-bar.interactive .fraction-part:hover:not(.shaded){background:var(--correct-soft)}.number-line{width:min(100%,36rem);height:auto}.number-line-axis,.number-line-tick{stroke:var(--text);stroke-width:3px;stroke-linecap:round}.number-line-label{fill:var(--text);text-anchor:middle;font-size:.95rem;font-weight:700}.number-line-marked{fill:var(--accent)}.number-line-question{fill:var(--on-color);text-anchor:middle;font-size:1.2rem;font-weight:900}.blocks{width:min(100%,30rem);max-height:8rem}.block-cell{fill:var(--block-fill);stroke:var(--block-line);stroke-width:1px}.groups{width:min(100%,32rem);max-height:6rem}.group-ring{fill:var(--surface);stroke:var(--group-ring);stroke-width:3px}.group-dot{fill:var(--group-dot)}.venn{width:min(100%,26rem)}.venn-set{stroke-width:3px;fill-opacity:.18}.venn-set.left{fill:var(--subject-math);stroke:var(--subject-math)}.venn-set.right{fill:var(--subject-english);stroke:var(--subject-english)}.venn-label{fill:var(--text);font-size:15px;font-weight:800}.venn-item{fill:var(--text);font-size:20px;font-weight:700}.grid{width:min(100%,16rem);max-height:12rem}.grid-cell{fill:var(--surface);stroke:var(--group-ring);stroke-width:1.5px}.grid-cell.shaded{fill:var(--block-fill)}.money{flex-wrap:wrap;justify-content:center;align-items:center;gap:.6rem;display:flex}.money-item{place-items:center;font-weight:900;display:inline-grid;box-shadow:inset 0 -4px #00000026}.money-item.coin{border-radius:50%;width:3.75rem;height:3.75rem;font-size:.95rem}.money-item.copper{background:var(--coin-copper);color:var(--coin-copper-text)}.money-item.gold{background:var(--coin-gold);color:var(--coin-gold-text)}.money-item.euro{border:.6rem solid var(--coin-euro-ring);background:var(--coin-euro-core);width:4.25rem;height:4.25rem;color:var(--text)}.money-item.note{background:var(--note);width:6.5rem;height:3.5rem;color:var(--note-text);border-radius:.4rem;font-size:1.15rem}.speak{border:2px solid var(--subject-english);background:var(--surface);vertical-align:middle;cursor:pointer;border-radius:999px;place-items:center;width:2.75rem;height:2.75rem;margin-left:.5rem;padding:0;font-size:1.35rem;display:inline-grid}.option-say{align-items:center;display:inline-flex}.lesson-words{gap:.5rem;margin:0;padding:0;font-size:clamp(1.25rem,4.5vw,1.6rem);font-weight:700;line-height:1.45;list-style:none;display:grid}.speak.big{width:4.5rem;height:4.5rem;margin:.75rem auto 0;font-size:2.25rem;display:grid}.speak:active{transform:scale(.94)}.listen{justify-content:center;align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.listen .speak.big{margin:0}.listen-word{margin:0 0 1rem;font-size:clamp(1.5rem,6vw,2.25rem);font-weight:800}a.button{border-radius:var(--radius);border:1px solid #0000;justify-content:center;align-items:center;min-height:3rem;padding:.75rem 1.5rem;font-weight:800;text-decoration:none;display:inline-flex}a.button.secondary{border-color:var(--line-strong)}a.button.small{border-radius:999px;min-height:2.25rem;padding:.3rem .9rem}.form-row{grid-template-columns:repeat(auto-fit,minmax(min(100%,12rem),1fr));gap:.9rem;display:grid}.stack label .optional{color:var(--muted);font-size:.85rem;font-weight:500}.steps{gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.steps li{background:var(--surface-2);color:var(--muted);text-align:center;border-radius:999px;flex:1;padding:.4rem .75rem;font-size:.9rem;font-weight:700}.steps li[aria-current=step]{background:var(--primary-soft);color:var(--primary-strong)}.detail-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,22rem),1fr));align-items:start;gap:1.25rem;display:grid}.details{gap:.6rem;margin:0;display:grid}.details>div{border-bottom:1px solid var(--line);grid-template-columns:minmax(7rem,35%) 1fr;gap:.75rem;padding-bottom:.6rem;display:grid}.details>div:last-child{border-bottom:0;padding-bottom:0}.details dt{color:var(--muted);font-weight:600}.details dd{overflow-wrap:anywhere;white-space:pre-line;margin:0;font-weight:600}.person-list{gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.person{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:.85rem 1rem;display:flex}.person-text{flex-direction:column;gap:.15rem;min-width:0;display:flex}.person-contact{overflow-wrap:anywhere;flex-wrap:wrap;gap:.25rem 1rem;display:flex}.announcements{gap:.6rem;margin:0;padding:0;list-style:none;display:grid}.announcement{border-left:4px solid var(--primary);border-radius:var(--radius);background:var(--primary-soft);justify-content:space-between;align-items:flex-start;gap:.75rem;padding:.7rem .9rem;display:flex}.announcement p{white-space:pre-line;margin:0 0 .2rem}.announcement .muted{font-size:.85rem}.avatar-grid{grid-template-columns:repeat(auto-fill,minmax(4.5rem,1fr));gap:.6rem;margin:.75rem 0 1.5rem;padding:0;list-style:none;display:grid}.avatar-choice{aspect-ratio:1;border:2px solid var(--line);background:var(--surface);border-radius:1.25rem;place-items:center;width:100%;padding:0;display:grid;position:relative}.avatar-choice-sign{font-size:2.4rem;line-height:1}.avatar-choice:disabled{background:var(--surface-2);border-style:dashed}.avatar-choice:disabled .avatar-choice-sign{filter:grayscale();opacity:.35}.avatar-choice-lock{color:var(--muted);font-size:.75rem;font-weight:800;position:absolute;bottom:.2rem;right:.3rem}.avatar-choice.chosen{border-color:var(--primary);background:var(--primary-soft);box-shadow:0 0 0 3px var(--primary-soft)}.report-head{display:none}@media print{.print-area.report{box-shadow:none;border:0;overflow:visible}.report .report-head{margin-bottom:1rem;display:block}.report a{color:inherit;text-decoration:none}}.closed-notice{border:1px solid var(--notice-line);background:var(--accent-soft);color:var(--notice-text)}.closed-notice p{margin:0}.homework-group{color:var(--primary-strong);margin:.2rem 0 0;font-size:.9rem;font-weight:600}
