:root{--bg: #f6f2ff;--surface: rgba(255, 255, 255, .88);--text: #2e1840;--purple: #7b1fa2;--pink: #c2185b;--accent: #ff5f6d;--ok: #0f7a47;--danger: #b71c1c;--radius-sm: 10px;--radius-md: 14px;--radius-lg: 20px;--shadow-sm: 0 8px 16px rgba(79, 18, 104, .1);--shadow-md: 0 14px 30px rgba(79, 18, 104, .14);--shadow-lg: 0 18px 50px rgba(79, 18, 104, .17);--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-7: 2rem;--space-8: 2.5rem;--max-content: 1000px;--focus-outline: 3px solid color-mix(in oklab, var(--pink) 70%, white)}*{box-sizing:border-box}html,body{margin:0;padding:0}html:focus-within{scroll-behavior:smooth}body{font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--text);background:radial-gradient(circle at 8% 10%,rgba(194,24,91,.2),transparent 33%),radial-gradient(circle at 90% 0%,rgba(123,31,162,.2),transparent 30%),linear-gradient(180deg,#fff8fc 0%,var(--bg) 50%,#f5f0ff 100%);min-height:100vh;padding:clamp(.8rem,2vw,1.4rem);line-height:1.5}a{color:var(--purple)}:where(a,button,input):focus-visible{outline:var(--focus-outline);outline-offset:2px;border-radius:var(--radius-sm)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:absolute;left:var(--space-3);top:-100px;background:#fff;border:2px solid var(--purple);color:var(--text);padding:.6rem .8rem;border-radius:var(--radius-md);z-index:9999}.skip-link:focus{top:var(--space-3)}@media(prefers-reduced-motion:reduce){html:focus-within{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.card{backdrop-filter:blur(8px);background:var(--surface);border:1px solid rgba(255,255,255,.8);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:clamp(1.1rem,3vw,1.8rem)}.hub-shell,.stats-app{width:min(100%,var(--max-content));margin-inline:auto;display:grid;gap:clamp(var(--space-4),4vw,var(--space-8))}.hero{text-align:left;position:relative;overflow:hidden}.hero:after{content:"";position:absolute;inset:auto -50px -80px auto;width:180px;height:180px;border-radius:50%;background:radial-gradient(circle,rgba(123,31,162,.35),transparent 68%)}.section{scroll-margin-top:120px;opacity:0;transform:translateY(12px);animation:slideIn .5s ease forwards}@keyframes slideIn{to{opacity:1;transform:translateY(0)}}@media(max-width:700px){body{padding:.6rem}}.eyebrow{color:var(--purple);font-weight:700;letter-spacing:.02em}.hero-copy{max-width:64ch;color:#4a3561}.topic-card{text-decoration:none;color:inherit;border-radius:18px;padding:var(--space-5);background:linear-gradient(145deg,#fff,#f9ebff);border:1px solid #f1ddff;box-shadow:var(--shadow-sm);transition:transform .22s ease,box-shadow .22s ease}.topic-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-md)}.topic-card.stats{background:linear-gradient(130deg,#fff,#ffe8f3 45%,#f3e7ff)}.topic-card.soon{opacity:.88}.pill{display:inline-block;border-radius:999px;background:linear-gradient(120deg,var(--pink),var(--purple));color:#fff;font-weight:700;padding:.35rem .8rem}.pill.soft{background:#ecd8f8;color:#6b3c91}.back-link{text-decoration:none;color:var(--purple);font-weight:700}.mini{margin:0;font-size:.9rem;color:#64487f}.progress-head{display:flex;justify-content:space-between;align-items:center;gap:var(--space-4)}.xp-shell{width:100%;height:14px;border-radius:999px;background:#eadcf4;overflow:hidden;margin:var(--space-3) 0}#xpFill{width:0;height:100%;background:linear-gradient(90deg,var(--pink),var(--purple),#5f00ff);transition:width .45s cubic-bezier(.2,.7,.2,1)}.tag-wrap{display:flex;flex-wrap:wrap;gap:.45rem}.tag{border-radius:999px;font-size:.84rem;color:#6b2e84;background:#f1e3fa;padding:.25rem .68rem}.split{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:.8rem}.worked,.practice,.pictogram-grid{margin-top:.85rem;border:1px solid #eedaf9;border-radius:var(--radius-md);background:#fcf8ff;padding:.9rem}.key{background:#fff1f8}.button-row{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:.6rem}.btn{border:none;border-radius:12px;padding:.65rem 1rem;font-weight:700;color:#fff;background:linear-gradient(120deg,var(--pink),var(--purple));cursor:pointer;transition:transform .12s ease,filter .18s ease}.btn:hover{filter:brightness(1.05)}.btn:active{transform:scale(.97)}.btn.secondary{background:#ead6f8;color:#4f2171}.answer-input{margin-top:.5rem;width:min(240px,100%);padding:.68rem .74rem;border-radius:var(--radius-sm);border:1px solid #c18fdf;font-size:1rem}.feedback{min-height:1.4rem;font-weight:700}.feedback.ok{color:var(--ok)}.feedback.no{color:var(--danger)}.tip{color:#662f8f;font-weight:700}canvas{width:100%!important;max-height:340px;margin-top:.7rem}@media(max-width:700px){.btn{width:100%}.progress-head{flex-direction:column;align-items:flex-start}}.topic-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--space-4);list-style:none;margin:0;padding:0}.top-panel p{color:#5b496f}.stats-nav{position:sticky;top:.35rem;z-index:5;display:flex;gap:.5rem;overflow-x:auto;padding-bottom:.2rem}.stats-nav a{white-space:nowrap;text-decoration:none;border-radius:999px;background:#f3e2fd;color:#5d2a84;padding:.4rem .7rem;font-weight:700;border:1px solid #e0c3f3}.section:target{border-color:#d399ef;box-shadow:0 0 0 3px #be64e840,var(--shadow-lg)}.app-shell{padding-bottom:5.5rem}.app-hero{display:grid;grid-template-columns:1fr auto;gap:var(--space-5);align-items:center}.hero-stats{min-width:150px;display:grid;grid-template-columns:auto 1fr;gap:.2rem .55rem;align-items:baseline;border-radius:var(--radius-lg);background:#fff4fb;padding:1rem}.hero-stats strong{color:var(--pink);font-size:clamp(1.5rem,5vw,2.2rem)}.section-heading{margin-bottom:var(--space-4)}.section-heading h2{margin:0}.section-grid,.curriculum-grid{list-style:none;padding:0;margin:0;display:grid;gap:var(--space-4)}.section-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.curriculum-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.section-card,.curriculum-card{display:block;height:100%;border-top:5px solid var(--card-colour, var(--purple))}.section-icon{font-size:2rem;display:inline-grid;place-items:center;width:3rem;height:3rem;border-radius:16px;background:#fff;box-shadow:var(--shadow-sm)}.difficulty,.topic-meta span{display:inline-flex;border-radius:999px;background:#f3e7ff;color:#5d247d;font-weight:800;font-size:.8rem;padding:.25rem .6rem}.section-top,.topic-hero{border-top:6px solid var(--card-colour, var(--purple))}.topic-shell{width:min(100%,var(--max-content));margin-inline:auto;display:grid;gap:clamp(var(--space-4),4vw,var(--space-8))}.topic-meta{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem}.lesson-panel{animation-delay:.05s}.diagram-card{border-radius:var(--radius-lg);background:linear-gradient(135deg,#fff,#f1e3fa);border:1px dashed #c18fdf;padding:clamp(1rem,5vw,2rem);font-size:clamp(1.1rem,3vw,1.35rem);font-weight:800;color:#4f2171}.answer-line{border-left:5px solid var(--ok);padding-left:.75rem}.flashcard-head{display:flex;gap:1rem;justify-content:space-between;align-items:flex-start}.flashcard-deck{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--space-4);margin-top:var(--space-4)}.flashcard{perspective:1000px;display:grid;gap:.75rem}.flashcard-inner{min-height:190px;position:relative;transform-style:preserve-3d;transition:transform .5s ease}.flashcard.flipped .flashcard-inner{transform:rotateY(180deg)}.flashcard-face{position:absolute;inset:0;display:grid;align-content:center;gap:.8rem;border-radius:var(--radius-lg);padding:1.2rem;backface-visibility:hidden;box-shadow:var(--shadow-sm);border:1px solid #eedaf9}.flashcard-face span{color:#6b3c91;font-weight:800;text-transform:uppercase;letter-spacing:.06em;font-size:.75rem}.flashcard-front{background:linear-gradient(145deg,#fff,#fff0f7)}.flashcard-back{background:linear-gradient(145deg,#f3e7ff,#fff);transform:rotateY(180deg)}.flashcard.mastered .flashcard-front{border-color:#74c69d}.flashcard-progress{font-weight:800;color:var(--ok)}.level-up-badge{position:fixed;z-index:9999;left:50%;top:16%;transform:translate(-50%);border-radius:999px;background:linear-gradient(120deg,var(--pink),var(--purple));color:#fff;padding:.85rem 1.2rem;font-weight:900;box-shadow:var(--shadow-lg);animation:levelPop 2.2s ease forwards}@keyframes levelPop{0%{opacity:0;transform:translate(-50%,20px) scale(.9)}20%,80%{opacity:1;transform:translate(-50%) scale(1)}to{opacity:0;transform:translate(-50%,-20px) scale(.96)}}.bottom-nav{position:fixed;left:50%;bottom:.8rem;transform:translate(-50%);width:min(94vw,720px);display:grid;grid-template-columns:repeat(4,1fr);gap:.35rem;border-radius:22px;background:#fffffff0;border:1px solid #ead6f8;box-shadow:var(--shadow-lg);padding:.45rem;z-index:100}.bottom-nav a{text-decoration:none;color:#4f2171;display:grid;justify-items:center;gap:.1rem;padding:.45rem .2rem;border-radius:16px;font-weight:800;font-size:.95rem}.bottom-nav a[aria-current=page],.bottom-nav a:hover{background:#f3e7ff}.bottom-nav span{font-size:.75rem}@media(max-width:700px){.app-hero{grid-template-columns:1fr}.flashcard-head{display:grid}.flash-actions .btn{width:100%}}.search-panel{border:1px solid #ead6f8}.search-box{display:block}.search-box input{width:100%;border:2px solid #e4c7f5;border-radius:18px;background:#fff;color:var(--text);font-size:clamp(1rem,3vw,1.15rem);padding:.9rem 1rem;box-shadow:inset 0 1px #ffffffb3,var(--shadow-sm)}.search-box input:focus{border-color:var(--purple)}.search-count{margin-top:.65rem}.search-results{list-style:none;padding:0;margin:var(--space-4) 0 0;display:grid;gap:.7rem}.search-result{display:grid;gap:.25rem;text-decoration:none;color:inherit;padding:.9rem;border-radius:var(--radius-md);background:linear-gradient(135deg,#fff,#fbf4ff);border:1px solid #eedaf9;transition:transform .18s ease,box-shadow .18s ease}.search-result:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm)}.search-result small{color:#6b3c91;font-weight:800}.search-empty{color:#64487f;background:#fcf8ff;border:1px dashed #d9b9ee;border-radius:var(--radius-md);padding:.9rem}.topic-group-stack{display:grid;gap:var(--space-7)}.topic-group{display:grid;gap:var(--space-3)}.group-title-row{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3)}.group-title-row h3{margin:0}.curriculum-card h4{margin:.7rem 0 .35rem;font-size:1.1rem}
