@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;600;700;800&family=Fredoka:wght@600;700&display=swap";:root{font-family:DM Sans,sans-serif;color:#2a2250;background:#fbfaff;font-synthesis:none;--purple:#6c56df;--ink:#28214e}*{box-sizing:border-box}body{margin:0}button,a{font:inherit}button{cursor:pointer}.shell{min-height:100vh;background:radial-gradient(circle at 88% 5%,#eee8ff 0,transparent 24%),#fbfaff}.topbar{height:82px;display:flex;align-items:center;max-width:1180px;margin:auto;padding:0 28px;gap:24px}.brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--ink);font:700 25px Fredoka}.brand-mark{display:grid;place-items:center;width:40px;height:40px;border-radius:14px;background:var(--purple);color:#fff;transform:rotate(-5deg)}.streak{margin-left:auto;display:flex;gap:7px;align-items:center;background:#fff4e7;padding:9px 14px;border-radius:99px;color:#8a551a;font-size:13px}.avatar{border:3px solid #fff;background:#58baa9;color:#fff;width:42px;height:42px;border-radius:50%;font-weight:800;box-shadow:0 2px 12px #c8c2df}.hero{max-width:1180px;margin:14px auto 0;padding:64px 70px;border-radius:34px;min-height:420px;display:grid;grid-template-columns:1.15fr .85fr;align-items:center;background:linear-gradient(122deg,#e8e1ff,#f7edff 58%,#dff8f3);overflow:hidden;position:relative}.eyebrow{font-size:11px!important;letter-spacing:2.1px;font-weight:800;color:#7466bb;margin:0 0 12px}.hero h1{font:700 clamp(42px,5vw,66px)/.98 Fredoka;margin:0;color:#2f285d}.hero h1 em{font-style:normal;color:var(--purple)}.hero>div>p:not(.eyebrow){font-size:17px;max-width:470px;line-height:1.6;color:#675f82}.primary{border:0;border-radius:16px;padding:15px 19px;background:var(--purple);color:#fff;font-weight:800;display:inline-flex;align-items:center;gap:10px;box-shadow:0 8px 22px #6c56df40}.hero-art{height:300px;position:relative;display:grid;place-items:center}.letter-card{width:218px;height:260px;border-radius:38px;background:#fff;display:grid;place-items:center;font:700 184px/.8 Fredoka;color:var(--purple);transform:rotate(5deg);box-shadow:0 28px 60px #6c56df2e;position:relative}.trace-dot{position:absolute;width:15px;height:15px;border-radius:50%;background:#ffd65c;border:4px solid #fff;box-shadow:0 3px 9px #a17800}.d1{left:65px;top:52px}.d2{right:51px;top:135px}.d3{left:93px;bottom:37px}.orbit{position:absolute;font-size:26px;color:#e56f9e}.o1{top:6px;left:38px}.o2{right:18px;top:45px;color:#58baa9}.o3{left:6px;bottom:26px;color:#ffd65c}.stats{max-width:1000px;margin:-28px auto 0;position:relative;background:#fff;box-shadow:0 14px 35px #554c7f17;border-radius:22px;display:grid;grid-template-columns:repeat(3,1fr);padding:24px 30px}.stats>div{display:flex;align-items:center;justify-content:center;gap:15px;border-right:1px solid #eeeaf8}.stats>div:last-child{border:0}.stat-icon{width:49px;height:49px;border-radius:15px;display:grid;place-items:center;font:700 17px Fredoka}.purple{background:#eeeaff;color:#6c56df}.pink{background:#ffebf3;color:#d85c8d}.green{background:#e2f8f3;color:#228d7b}.stats p{margin:0}.stats b{font:700 24px Fredoka;display:block}.stats small{color:#847d9c}.content{max-width:1080px;margin:72px auto;padding:0 28px 80px}.section-head{display:flex;align-items:end;justify-content:space-between;margin-bottom:22px}.section-head h2{font:700 31px Fredoka;margin:0}.tiny-note{font-size:12px;color:#8e87a4}.level-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.level-card{text-align:left;border:1px solid #ece8f8;background:#fff;padding:25px;border-radius:24px;position:relative;transition:.2s;box-shadow:0 4px 10px #4d416908}.level-card:hover{transform:translateY(-5px);box-shadow:0 16px 32px #4d41691a;border-color:var(--accent)}.level-number{position:absolute;top:16px;left:17px;width:30px;height:30px;border-radius:10px;background:var(--accent);color:#fff;display:grid;place-items:center;font-weight:800}.level-visual{height:126px;background:color-mix(in srgb,var(--accent) 11%,white);border-radius:18px;display:grid;place-items:center;font:700 70px Fredoka;color:var(--accent);letter-spacing:3px}.level-card h3{font:700 20px Fredoka;margin:19px 0 7px;color:var(--ink)}.level-card>p{color:#7b7590;font-size:13px;line-height:1.45;height:38px}.card-link{display:flex;align-items:center;gap:3px;color:var(--accent);font-weight:800;font-size:13px}.alphabet-head{margin-top:64px}.symbol-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:10px}.symbol-grid button{aspect-ratio:1;border:1px solid #ebe7f6;background:#fff;border-radius:14px;color:#544d6c;font:700 19px Fredoka;position:relative}.symbol-grid button:hover,.symbol-grid button.selected{background:#6c56df;color:#fff;border-color:#6c56df;transform:translateY(-2px)}.symbol-grid span{position:absolute;color:#ffd75d;font-size:10px;right:4px;top:2px}footer{text-align:center;padding:28px;color:#918aa6;border-top:1px solid #eeeaf7;font-size:12px}footer span{color:#e56f9e}.practice-shell{min-height:100vh;background:#f8f7fc}.practice-nav{height:76px;background:#fff;border-bottom:1px solid #ebe8f3;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 28px}.practice-nav button{border:0;background:transparent;display:flex;align-items:center;gap:8px;color:#645d7c;font-weight:700}.practice-nav button:last-child{justify-self:end}.practice-title{text-align:center}.practice-title span{display:block;color:#6c56df;font-size:10px;font-weight:800;letter-spacing:1.5px;text-transform:uppercase}.practice-title b{font:700 18px Fredoka}.practice-layout{display:grid;grid-template-columns:290px 1fr;max-width:1320px;margin:auto;padding:26px;gap:25px}.practice-layout aside{background:#fff;border:1px solid #ece9f4;border-radius:24px;padding:24px;align-self:start}.quest-visuals{display:flex;align-items:center;justify-content:center;gap:14px;margin-bottom:22px}.big-symbol,.finger-cue{width:104px;height:116px;border-radius:24px;display:grid;place-items:center}.big-symbol{background:#eeeaff;color:#6c56df;font:700 78px Fredoka}.finger-cue{background:#e3f8f3;border:2px solid #c9efe6;font-size:58px;line-height:1;filter:saturate(.92)}.step-list{display:grid;gap:12px}.stroke-step{display:flex;gap:12px;align-items:center;min-height:76px;padding:6px 10px;border:2px solid #ebe8f4;border-radius:17px;background:#faf9fd;opacity:.66;overflow:hidden;transition:.5s}.stroke-step>span{width:34px;height:34px;flex:0 0 auto;display:grid;place-items:center;border-radius:11px;background:#e9e6f1;color:#736c87;font-size:16px;font-weight:800}.stroke-step.active,.stroke-step.done,.stroke-step.up-next{opacity:1}.stroke-step.active,.stroke-step.up-next{border-color:#8b7ce8;background:#f3f0ff}.stroke-step.active{box-shadow:0 5px 15px #6c56df17}.stroke-step.active>span{background:#6c56df;color:#fff}.stroke-step.done{border-color:#caeee5;background:#f0faf7}.stroke-step.done>span{background:#30a992;color:#fff}.stroke-preview{display:block;flex:1;min-width:0;max-width:132px;height:64px;overflow:hidden}.stroke-preview-path{fill:none;stroke:#8b83a5;stroke-width:5;stroke-linecap:round;stroke-linejoin:round}.stroke-preview-arrow{fill:#8b83a5;stroke:#fff;stroke-width:1.6;stroke-linejoin:round;paint-order:stroke}.stroke-preview-start{fill:#fff;stroke:#8b83a5;stroke-width:2.5}.stroke-step.active .stroke-preview-path,.stroke-step.active .stroke-preview-start,.stroke-step.up-next .stroke-preview-path,.stroke-step.up-next .stroke-preview-start{stroke:#6c56df}.stroke-step.active .stroke-preview-arrow,.stroke-step.up-next .stroke-preview-arrow{fill:#6c56df}.stroke-step.done .stroke-preview-path,.stroke-step.done .stroke-preview-start{stroke:#30a992}.stroke-step.done .stroke-preview-arrow{fill:#30a992}.studio{background:#fff;border:1px solid #ece9f4;border-radius:24px;padding:18px;min-width:0}.studio-head,.studio-actions{display:flex;align-items:center;justify-content:space-between;padding:2px 6px 15px}.studio-head p{font-weight:700;margin:0;display:flex;align-items:center;gap:9px}.pulse{width:9px;height:9px;border-radius:50%;background:#e56f9e;box-shadow:0 0 0 6px #e56f9e1d}.mode{font-size:11px;color:#817a96;display:flex;align-items:center;gap:5px}.camera-stage{height:min(68vh,680px);min-height:480px;border-radius:20px;overflow:hidden;position:relative;background:#eeeaff}.camera-stage video{display:none}.camera-stage canvas{width:100%;height:100%;display:block;touch-action:none}.studio-actions{padding:15px 5px 0}.camera-button{border:0;border-radius:13px;background:#2e2856;color:#fff;padding:12px 16px;font-weight:800;display:flex;align-items:center;gap:8px}.camera-button:disabled{opacity:.6}.studio-actions p{font-size:11px;color:#8a849a;display:flex;gap:6px;align-items:center}.celebrate{position:absolute;top:0;right:0;bottom:0;left:0;background:#2b2457eb;display:grid;place-content:center;text-align:center;color:#fff;padding:20px}.celebrate>span{color:#ffd65c;font-size:60px}.celebrate h2{font:700 38px Fredoka;margin:8px}.celebrate p{color:#d7d0f1}.celebrate .primary{margin:auto}@media(max-width:850px){.hero{margin:8px 14px;padding:40px;grid-template-columns:1fr}.hero-art{display:none}.stats{margin:18px 14px}.level-grid{grid-template-columns:1fr}.symbol-grid{grid-template-columns:repeat(6,1fr)}.practice-layout{grid-template-columns:1fr}.practice-layout aside{display:flex;align-items:center;gap:18px;padding:16px;overflow-x:auto}.quest-visuals{flex:0 0 auto;margin:0}.big-symbol,.finger-cue{width:74px;height:82px;font-size:50px;border-radius:18px}.step-list{display:flex;gap:10px}.stroke-step{flex:0 0 168px;min-height:72px}.camera-stage{min-height:450px}.practice-nav{padding:0 12px}.practice-nav button{font-size:0}.practice-nav button svg{width:22px}.studio-actions{align-items:flex-start;gap:10px}}@media(max-width:560px){.topbar{padding:0 16px}.streak b{display:none}.hero{padding:34px 26px;min-height:360px}.hero h1{font-size:42px}.stats{grid-template-columns:1fr;padding:13px 20px}.stats>div{border-right:0;border-bottom:1px solid #eeeaf8;justify-content:flex-start;padding:10px}.symbol-grid{grid-template-columns:repeat(5,1fr)}.content{padding-inline:16px}.practice-layout{padding:10px}.practice-layout aside{gap:10px}.quest-visuals{gap:8px}.big-symbol,.finger-cue{width:62px;height:70px;font-size:43px}.finger-cue{font-size:39px}.stroke-step{flex-basis:156px;padding-inline:8px}.studio{padding:10px}.camera-stage{min-height:400px;height:68vh}.studio-actions p{display:none}}.profile-button{margin-left:auto;border:0;background:transparent;display:flex;align-items:center;gap:10px;padding:5px 8px 5px 5px;border-radius:16px;color:var(--ink);text-align:left}.profile-button:hover{background:#f1eefb}.profile-button .avatar{display:grid;place-items:center;border:3px solid #fff;background:#6c56df;color:#fff;width:42px;height:42px;border-radius:50%;font-weight:800;box-shadow:0 2px 12px #c8c2df}.profile-button .avatar.empty{background:#eeeaff;color:#6c56df}.profile-button>span:last-child{display:grid;gap:1px}.profile-button b{font-size:13px}.profile-button small{font-size:10px;color:#837c98}.hero .profile-note{margin:16px 0 0!important;font-size:12px!important;line-height:1.4!important;color:#756d91!important;font-weight:700}.mastery-roadmap{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.roadmap-step{display:flex;align-items:center;gap:13px;border:1px solid #ebe7f6;background:#fff;border-radius:18px;padding:17px}.roadmap-step>span{width:36px;height:36px;display:grid;place-items:center;flex:0 0 auto;border-radius:12px;background:var(--accent);color:#fff;font-weight:800}.roadmap-step div{display:grid;gap:4px}.roadmap-step b{font:700 15px Fredoka;color:var(--ink)}.roadmap-step small{color:#817a96;font-size:11px;line-height:1.35}.practice-heading{margin-top:58px}.progress-legend{display:flex;gap:14px;color:#7c7592;font-size:11px}.progress-legend>span{display:flex;align-items:center;gap:4px}.progress-grid{align-items:stretch}.symbol-progress{aspect-ratio:1;border:1px solid #ebe7f6;background:#f8f7fb;border-radius:14px;color:#aaa4b8;display:grid;place-items:center;align-content:center;gap:3px;position:relative}.symbol-progress b{font:700 19px Fredoka}.symbol-progress.introduced{background:#fff;color:#544d6c;border-color:#dcd6f1}.symbol-progress.mastered{background:#e8f8f4;color:#218b79;border-color:#bce7dc}.symbol-progress.mastered svg{color:#d69f20;fill:#ffe088}.skill-stars{position:static!important;display:flex;color:#d5d0e1!important;font-size:8px!important;line-height:1}.skill-stars span{position:static!important;color:inherit!important;font-size:inherit!important}.skill-stars .filled{color:#f1b82f!important}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#272044a8;display:grid;place-items:center;padding:20px}.profile-dialog{width:min(440px,100%);position:relative;background:#fff;border-radius:28px;padding:34px;box-shadow:0 30px 80px #1e18365c}.dialog-close{position:absolute;top:16px;right:16px;width:38px;height:38px;display:grid;place-items:center;border:0;border-radius:12px;background:#f4f1fb;color:#736c87}.dialog-icon{width:54px;height:54px;display:grid;place-items:center;border-radius:18px;background:#eeeaff;color:#6c56df;margin-bottom:18px}.profile-dialog h2{font:700 28px Fredoka;margin:0 0 8px;color:var(--ink)}.profile-dialog>p:not(.eyebrow):not(.device-note){margin:0 0 20px;color:#756e88;font-size:14px;line-height:1.5}.profile-dialog form{display:grid;gap:9px}.profile-dialog label{font-size:11px;font-weight:800;color:#625b78}.profile-dialog input{width:100%;border:2px solid #dfdaef;border-radius:14px;padding:13px 14px;font:600 16px DM Sans;outline:none}.profile-dialog input:focus{border-color:#6c56df;box-shadow:0 0 0 4px #6c56df16}.profile-dialog .primary{margin-top:5px;justify-content:center}.profile-dialog .primary:disabled{opacity:.45;cursor:not-allowed}.device-note{margin:17px 0 0!important;display:flex;align-items:center;gap:6px;color:#8a839a;font-size:10px!important}.profile-summary{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:18px}.profile-summary span{background:#f6f3fd;border-radius:13px;padding:11px;color:#746d87;font-size:11px}.profile-summary b{display:block;font:700 19px Fredoka;color:#5f4fd0}.session-badge{display:flex;align-items:center;justify-content:center;gap:6px;margin:-6px 0 15px;padding:7px 10px;border-radius:99px;background:#f1edff;color:#6555ca;font-size:11px;font-weight:800}.celebrate .primary b{font:700 18px Fredoka;margin-left:2px}.celebrate .primary:disabled{opacity:.55}.strong-result{border-color:#bce7dc!important;background:#effaf7!important}@media(max-width:850px){.mastery-roadmap{grid-template-columns:1fr}.practice-layout aside .session-badge{flex:0 0 auto;margin:0}.progress-grid{grid-template-columns:repeat(8,1fr)}}.level-grid{grid-template-columns:repeat(4,1fr)}.freewrite-layout aside{text-align:center}.freewrite-label{margin:26px 0 10px;color:#9a6b42;font-size:11px;font-weight:800;letter-spacing:1.7px}.freewrite-target{min-height:250px;border-radius:28px;background:#fff4e8;color:#ee8a3a;display:grid;place-items:center;font:700 190px/.9 Fredoka;box-shadow:inset 0 0 0 2px #f7dcc4}.freewrite-copy{color:#736c87;font-size:13px;line-height:1.55;margin:18px 4px}.freewrite-next{width:100%;justify-content:center;background:#ee8a3a;box-shadow:0 8px 22px #ee8a3a3d}@media(max-width:1050px){.level-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:850px){.level-grid{grid-template-columns:1fr}.freewrite-layout aside{display:block}.freewrite-target{min-height:150px;font-size:110px}.freewrite-copy{max-width:420px;margin:16px auto}.freewrite-next{max-width:260px}}@media(max-width:560px){.profile-button>span:last-child{display:none}.profile-button{padding:4px}.mastery-roadmap{gap:9px}.roadmap-step{padding:13px}.progress-legend{display:none}.progress-grid{grid-template-columns:repeat(5,1fr)}.profile-dialog{padding:28px 22px}.session-badge{font-size:0;padding:8px}.session-badge svg{width:18px;height:18px}}.stroke-preview-arrow{stroke-width:1.2}.mastery-roadmap{grid-template-columns:repeat(4,1fr)}.guidance-step{opacity:1}@media(max-width:850px){.mastery-roadmap{grid-template-columns:1fr}}.celebrate{margin-top:14px;padding:16px 18px;position:static;inset:auto;display:flex;place-content:normal;align-items:center;gap:16px;border:1px solid #ded6ff;border-radius:18px;background:#f1edff;color:#2b2457;text-align:left}.celebrate>span{color:#e9ad24;font-size:34px}.celebrate h2{margin:0 0 2px;font:700 21px Fredoka,sans-serif}.celebrate p{margin:0;color:#716987;font-size:12px}.celebrate .primary{margin:0 0 0 auto;white-space:nowrap}.celebrate.strong-result>span{color:#258b78}@media(max-width:620px){.celebrate{align-items:flex-start;flex-wrap:wrap}.celebrate .primary{width:100%;margin-left:0;justify-content:center}}
