:root{--mung-primary: #0057ff;--mung-primary-deep: #0040c4;--mung-secondary: #ff5a36;--mung-success: #0f9f6e;--mung-bg: #f3f7ff;--mung-bg-deep: #e8f0ff;--mung-surface: #ffffff;--mung-ink: #0c1222;--mung-muted: #5b657a;--mung-line: #d7e0f2;--mung-sun: #ffb020;--mung-sky: #7eb6ff;--mung-mint: #5eead4;--mung-radius: 24px;--mung-radius-sm: 16px;--mung-space-1: 8px;--mung-space-2: 16px;--mung-space-3: 24px;--mung-space-4: 40px;--mung-space-5: 64px;--mung-font-display: "Baloo 2", "Nunito", system-ui, sans-serif;--mung-font-body: "Nunito", system-ui, sans-serif;--mung-tap-min: 52px;--mung-shadow: 0 14px 0 rgba(12, 18, 34, .06);--mung-ease: cubic-bezier(.22, 1, .36, 1)}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:var(--mung-font-body);color:var(--mung-ink);background:var(--mung-bg);-webkit-font-smoothing:antialiased}body{background:radial-gradient(ellipse 80% 60% at 10% -10%,rgba(126,182,255,.55),transparent 55%),radial-gradient(ellipse 70% 50% at 95% 5%,rgba(255,176,32,.28),transparent 50%),radial-gradient(ellipse 60% 40% at 70% 100%,rgba(94,234,212,.2),transparent 45%),linear-gradient(180deg,#eef4ff 0%,var(--mung-bg) 40%,#f7f9ff 100%);background-attachment:fixed}a{color:inherit;text-decoration:none}.atmosphere{pointer-events:none;position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;z-index:0}.atmosphere span{position:absolute;border-radius:50%;filter:blur(2px);opacity:.45;animation:drift 18s var(--mung-ease) infinite alternate}.atmosphere span:nth-child(1){width:42vw;height:42vw;max-width:520px;max-height:520px;left:-8%;top:12%;background:radial-gradient(circle,rgba(0,87,255,.2),transparent 70%)}.atmosphere span:nth-child(2){width:30vw;height:30vw;max-width:360px;max-height:360px;right:-5%;top:30%;background:radial-gradient(circle,rgba(255,90,54,.16),transparent 70%);animation-delay:-6s}.atmosphere span:nth-child(3){width:24vw;height:24vw;max-width:280px;max-height:280px;left:40%;bottom:5%;background:radial-gradient(circle,rgba(255,176,32,.2),transparent 70%);animation-delay:-11s}@keyframes drift{0%{transform:translateZ(0) scale(1)}to{transform:translate3d(12px,-18px,0) scale(1.06)}}@keyframes rise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}#app{position:relative;z-index:1}.page{max-width:1080px;margin:0 auto;padding:calc(var(--mung-space-4) + 20px) var(--mung-space-2) var(--mung-space-5)}.brand{font-family:var(--mung-font-display);font-size:clamp(1.75rem,3vw,2.25rem);font-weight:700;letter-spacing:-.03em;color:var(--mung-primary);margin:0 0 var(--mung-space-2);animation:rise .7s var(--mung-ease) both}.hero h1,.page>h1,.landing-hero h1,.auth-panel h1{font-family:var(--mung-font-display);font-size:clamp(2.4rem,6vw,3.6rem);font-weight:700;letter-spacing:-.01em;line-height:1.1;margin:0 0 var(--mung-space-2);color:var(--mung-ink)}.lede{font-size:clamp(1.05rem,2vw,1.2rem);line-height:1.55;color:var(--mung-muted);max-width:34rem;margin:0}.eyebrow{display:inline-flex;align-items:center;gap:8px;text-transform:uppercase;letter-spacing:.12em;font-size:.72rem;font-weight:800;color:var(--mung-primary-deep);margin:0 0 var(--mung-space-2)}.eyebrow:before{content:"";width:18px;height:2px;background:var(--mung-secondary);border-radius:2px}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:var(--mung-tap-min);padding:0 22px;border-radius:999px;font-weight:800;font-family:var(--mung-font-body);font-size:.95rem;letter-spacing:.01em;border:none;cursor:pointer;transition:transform .16s var(--mung-ease),box-shadow .16s var(--mung-ease),background .16s ease}.btn:hover{transform:translateY(-2px)}.btn:active{transform:translateY(0)}.btn.primary{background:var(--mung-primary);color:#fff;box-shadow:0 12px 28px #0057ff47}.btn.primary:hover{background:var(--mung-primary-deep)}.btn.secondary{background:var(--mung-secondary);color:#fff;box-shadow:0 12px 28px #ff5a3638}.btn.ghost{background:#ffffffb8;border:1.5px solid var(--mung-line);color:var(--mung-ink);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.cta-row{display:flex;flex-wrap:wrap;gap:12px;margin:var(--mung-space-3) 0 0}.back{display:inline-block;margin-bottom:var(--mung-space-2);font-weight:700;color:var(--mung-primary)}.landing-page{max-width:1120px;padding-top:calc(var(--mung-space-3) + 12px)}.landing-stage{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(24px,5vw,56px);align-items:center;min-height:min(78vh,720px)}.landing-hero{animation:rise .75s var(--mung-ease) both}.landing-hero .brand{font-size:clamp(2.5rem,7vw,4.5rem);margin-bottom:12px}.landing-hero h1{max-width:11ch;animation:rise .85s var(--mung-ease) .08s both}.landing-hero .lede{animation:rise .85s var(--mung-ease) .16s both}.landing-hero .cta-row{animation:rise .85s var(--mung-ease) .24s both}.landing-visual{position:relative;animation:rise 1s var(--mung-ease) .12s both}.landing-visual img{display:block;width:100%;height:auto;border-radius:36px;box-shadow:var(--mung-shadow)}.landing-visual:after{content:"";position:absolute;top:12%;right:-6%;bottom:-8%;left:18%;background:radial-gradient(circle at 70% 40%,rgba(0,87,255,.18),transparent 60%);z-index:-1;filter:blur(20px)}.landing-points{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(20px,4vw,40px);margin-top:var(--mung-space-5);padding-top:var(--mung-space-4);border-top:1px solid color-mix(in srgb,var(--mung-line) 80%,transparent)}.landing-points article{animation:rise .8s var(--mung-ease) both}.landing-points article:nth-child(2){animation-delay:.06s}.landing-points article:nth-child(3){animation-delay:.12s}.landing-points .point-index{display:block;font-family:var(--mung-font-display);font-size:.95rem;color:var(--mung-secondary);margin-bottom:8px}.landing-points article strong{display:block;font-family:var(--mung-font-display);font-size:1.35rem;font-weight:650;letter-spacing:-.02em;margin-bottom:8px}.landing-points article p{margin:0;color:var(--mung-muted);font-size:1rem;line-height:1.5}.auth-page{display:flex;align-items:center;justify-content:center;min-height:calc(100vh - 48px)}.auth-panel{width:min(440px,100%);padding:clamp(24px,4vw,36px);border-radius:28px;background:#ffffffc7;border:1px solid rgba(255,255,255,.9);box-shadow:var(--mung-shadow);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);animation:rise .6s var(--mung-ease) both}.auth-form{display:grid;gap:14px;margin-top:var(--mung-space-2)}.auth-form label{display:grid;gap:6px;font-weight:700;text-align:left}.auth-form label span{font-size:.9rem;color:var(--mung-ink)}.auth-form input{min-height:var(--mung-tap-min);padding:0 16px;border-radius:14px;border:1.5px solid var(--mung-line);font-size:1.05rem;font-family:var(--mung-font-body);background:#fff;transition:border-color .14s ease,box-shadow .14s ease}.auth-form input:focus{outline:none;border-color:var(--mung-primary);box-shadow:0 0 0 4px #0057ff1f}.auth-error{margin:0;color:#b42318;font-weight:700}.auth-switch{margin-top:var(--mung-space-2);color:var(--mung-muted);font-weight:650;font-size:.95rem}button.linkish{border:none;background:none;padding:0;color:var(--mung-primary);font:inherit;font-weight:800;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.category-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-top:var(--mung-space-3)}.cat-card,.lesson-card{display:flex;flex-direction:column;gap:10px;min-height:var(--mung-tap-min);padding:18px;border-radius:28px;background:#fff;border:3px solid color-mix(in srgb,var(--accent, var(--mung-primary)) 45%,white);box-shadow:0 8px color-mix(in srgb,var(--accent, var(--mung-primary)) 22%,#dbe4f5);transition:transform .18s var(--mung-ease),box-shadow .18s var(--mung-ease);-webkit-backdrop-filter:none;backdrop-filter:none}.cat-card:hover,.lesson-card:hover{transform:translateY(-3px);box-shadow:0 11px color-mix(in srgb,var(--accent, var(--mung-primary)) 22%,#dbe4f5)}.cat-card .subject-num,.subject-tile .subject-num{align-self:flex-start;font-family:var(--mung-font-display);font-size:.95rem;font-weight:800;color:var(--accent, var(--mung-primary))}.cat-card .subject-art,.subject-tile .subject-art{width:72px;height:72px}.cat-card .subject-art svg,.subject-tile .subject-art svg,.sub-icon{width:72px;height:72px;display:block}.cat-card strong,.lesson-card strong{font-family:var(--mung-font-display);font-size:1.3rem;font-weight:700;letter-spacing:0}.cat-card span:last-child,.lesson-card span:last-child{color:var(--mung-muted);font-size:.95rem;line-height:1.4}.lesson-list{display:grid;gap:14px;margin-top:var(--mung-space-3)}.badge{align-self:flex-start;background:#0057ff14;color:var(--mung-primary-deep);font-weight:800;font-size:.75rem;letter-spacing:.04em;text-transform:uppercase;padding:6px 10px;border-radius:999px}.objectives ul{padding-left:1.2rem;font-size:1.05rem}.footnote,.empty{color:var(--mung-muted);margin-top:var(--mung-space-3)}.progress-table{width:100%;border-collapse:collapse;background:#ffffffe6;border-radius:var(--mung-radius);overflow:hidden;margin-top:var(--mung-space-2);box-shadow:var(--mung-shadow)}.progress-table th,.progress-table td{text-align:left;padding:14px 16px;border-bottom:1px solid var(--mung-line)}.progress-table th{background:#0057ff0f;font-family:var(--mung-font-display);font-weight:650}.coverage{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px;margin:var(--mung-space-2) 0 var(--mung-space-3)}.coverage article{background:#ffffffe0;border-radius:18px;padding:18px;border:1px solid var(--mung-line)}.coverage strong{display:block;font-size:1.7rem;font-family:var(--mung-font-display);color:var(--mung-primary)}.status-banner{padding:12px 16px;border-radius:12px;background:#fff7ed;border:1px solid #fed7aa;margin-bottom:var(--mung-space-2)}.site-footer{margin-top:var(--mung-space-5);padding-top:var(--mung-space-3);border-top:1px solid var(--mung-line);color:var(--mung-muted);font-size:.9rem;display:flex;flex-wrap:wrap;gap:12px 24px;align-items:baseline;justify-content:space-between}.site-footer p{margin:0}.site-footer a{color:var(--mung-primary);font-weight:800}.site-footer a:hover{text-decoration:underline;text-underline-offset:3px}.tuto-brand{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;padding:4px;text-decoration:none;line-height:0;background:transparent;box-shadow:none}.tuto-brand img{display:block;height:34px;width:auto;max-width:140px;object-fit:contain}.tuto-brand--page{position:fixed;top:16px;right:18px;z-index:50}body:has(.landing-page) .tuto-brand--page{display:none}.auth-logout{position:fixed;bottom:16px;right:16px;z-index:40;min-height:40px;padding:0 14px;border-radius:999px;border:1.5px solid var(--mung-line);background:#ffffffe0;font-family:var(--mung-font-body);font-weight:700;font-size:.85rem;color:var(--mung-muted);cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.auth-logout:hover{color:var(--mung-ink)}.lang-toggle{position:fixed;bottom:16px;left:16px;z-index:40;display:inline-flex;gap:4px;padding:4px;border-radius:999px;background:#ffffffe0;border:1.5px solid var(--mung-line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.lang-toggle button{min-height:34px;min-width:42px;padding:0 10px;border:none;border-radius:999px;background:transparent;font-family:var(--mung-font-body);font-weight:800;font-size:.8rem;color:var(--mung-muted);cursor:pointer}.lang-toggle button.is-active{background:var(--mung-primary);color:#fff}@media(max-width:860px){.landing-stage{grid-template-columns:1fr;min-height:auto;gap:28px}.landing-visual{order:-1;max-width:420px}.landing-points{grid-template-columns:1fr;gap:22px}.landing-hero h1{max-width:none}.subject-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.subject-grid{grid-template-columns:1fr}}.subject-showcase{margin-top:var(--mung-space-5)}.subject-showcase__head h2{font-family:var(--mung-font-display);font-size:clamp(1.6rem,3vw,2.2rem);margin:0 0 8px}.subject-showcase__head p{margin:0 0 var(--mung-space-3);color:var(--mung-muted);max-width:36rem}.subject-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.subject-tile{display:flex;flex-direction:column;gap:8px;padding:16px;border-radius:28px;background:#fff;border:3px solid color-mix(in srgb,var(--accent, var(--mung-primary)) 40%,white);box-shadow:0 8px color-mix(in srgb,var(--accent, var(--mung-primary)) 20%,#dbe4f5)}.subject-tile strong{font-family:var(--mung-font-display);font-size:1.2rem}.subject-tile p{margin:0;color:var(--mung-muted);font-size:.92rem;line-height:1.4}.landing-visual img{border:4px solid #fff;border-radius:40px;box-shadow:0 12px #0057ff1f}.btn{border-radius:999px;border:3px solid transparent}.btn.primary{box-shadow:0 6px 0 var(--mung-primary-deep)}.btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 0 var(--mung-primary-deep)}.btn.primary:active{transform:translateY(2px);box-shadow:0 3px 0 var(--mung-primary-deep)}.btn.ghost{border-color:#c9d7f5;box-shadow:0 5px #dbe4f5}@keyframes bob{0%{transform:translateY(0)}to{transform:translateY(-5px)}}@keyframes wobble{0%,to{transform:rotate(-4deg)}50%{transform:rotate(4deg)}}@keyframes pop{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}@keyframes spin-slow{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes float-y{0%{transform:translateY(0)}to{transform:translateY(-7px)}}@keyframes bubble{0%{transform:translateY(0);opacity:.9}to{transform:translateY(-10px);opacity:.4}}@keyframes sparkle{0%,to{opacity:.35;transform:scale(.85)}50%{opacity:1;transform:scale(1.15)}}.float-a{animation:bob 2.2s ease-in-out infinite alternate}.float-b{animation:bob 2.2s ease-in-out infinite alternate-reverse}.bounce-soft{animation:bob 2.8s ease-in-out infinite alternate;transform-origin:center}.pop-1{animation:pop 2.4s ease-in-out infinite;transform-origin:center}.pop-2{animation:pop 2.4s ease-in-out .2s infinite;transform-origin:center}.pop-3{animation:pop 2.4s ease-in-out .4s infinite;transform-origin:center}.wiggle{animation:wobble 2.6s ease-in-out infinite;transform-origin:center}.spark{animation:sparkle 1.8s ease-in-out infinite}.spark.delay{animation-delay:.4s}.orbit{animation:spin-slow 10s linear infinite;transform-origin:48px 48px}.ball{animation:float-y 1.6s ease-in-out infinite alternate}.leaf-l{animation:wobble 3s ease-in-out infinite;transform-origin:48px 50px}.leaf-r{animation:wobble 3s ease-in-out .3s infinite reverse;transform-origin:48px 50px}.grow{animation:bob 2.5s ease-in-out infinite alternate}.bub{animation:bubble 1.8s ease-in-out infinite alternate}.bub2{animation-delay:.25s}.bub3{animation-delay:.5s}.bubble-rise{animation:bob 2.2s ease-in-out infinite alternate}.entrance-band{margin:48px 0 8px;padding:28px;border-radius:28px;background:#0c1222;color:#e8eefc;display:grid;gap:10px;box-shadow:0 18px 40px #0c12222e}.entrance-band .eyebrow{color:#ffb020}.entrance-band .eyebrow:before{background:#ffb020}.entrance-band h2{font-family:var(--mung-font-display);font-size:clamp(1.6rem,3vw,2.1rem);margin:0;color:#fff}.entrance-band p{margin:0;max-width:40rem;color:#c5d0ea;line-height:1.5}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
