:root{--ul-blue:#5b23ff;--ul-blue-dark:#362f4f;--ul-green:#008bff;--ul-yellow:#e4ff30;--ul-pink:#5b23ff;--ul-ink:#362f4f;--ul-muted:#625c78;--ul-line:#e7e3f2;--ul-surface:#f8f7fc;--ul-card:#fff;--ul-chart-bar:#5b23ff;--ion-color-primary:#5b23ff;--ion-color-primary-rgb:91, 35, 255;--ion-font-family:"Avenir Next", "Nunito Sans", Inter, system-ui, sans-serif;color:var(--ul-ink)}:root.ion-palette-dark{--ul-blue:#b19eff;--ul-blue-dark:#5b23ff;--ul-green:#4db4ff;--ul-yellow:#e4ff30;--ul-pink:#9b82ff;--ul-ink:#f8f7ff;--ul-muted:#bdb6d2;--ul-line:#4b4265;--ul-surface:#181424;--ul-card:#27203a;--ul-chart-bar:#8a6bff;--ion-background-color:var(--ul-surface);--ion-text-color:var(--ul-ink);--ion-toolbar-background:#211a31;--ion-tab-bar-background:#211a31;color:var(--ul-ink)}*{box-sizing:border-box}body{background:var(--ul-surface);color:var(--ul-ink)}button,input,select{font:inherit}button{-webkit-tap-highlight-color:transparent}ion-content{--background:var(--ul-surface)}.ul-header ion-toolbar{--background:#fffffff0;--border-color:var(--ul-line);--color:var(--ul-ink);--min-height:60px;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.ul-header ion-title{font-size:1.05rem;font-weight:850}.page-shell{width:min(100%,780px);padding:20px 18px calc(104px + env(safe-area-inset-bottom));margin:0 auto}.eyebrow{color:var(--ul-blue);letter-spacing:.12em;margin:0 0 7px;font-size:.7rem;font-weight:900}.ul-pressable{transition:transform .16s,box-shadow .16s}.ul-pressable:active:not(:disabled){transform:scale(.975)}.ul-button{cursor:pointer;border:0;border-radius:17px;justify-content:center;align-items:center;gap:9px;width:100%;min-height:52px;padding:0 22px;font-size:.98rem;font-weight:850;display:inline-flex}.ul-button--primary{color:#fff;background:linear-gradient(135deg,#5b23ff,#362f4f);box-shadow:0 12px 28px #5b23ff4d}.ul-button--primary:disabled{color:#465166;box-shadow:none;background:#d8dde6}.ul-button--ghost{color:var(--ul-muted);background:0 0;margin-top:8px}.header-brand{color:var(--ul-ink);letter-spacing:-.035em;align-items:center;gap:8px;font-size:.94rem;font-weight:950;display:inline-flex}.header-brand img{object-fit:cover;border-radius:8px;width:30px;height:30px;box-shadow:0 4px 12px #362f4f33}.header-avatar{color:#4815c5;background:#eeeaff;border:2px solid #fff;border-radius:50%;place-items:center;width:36px;height:36px;font-size:.85rem;font-weight:900;display:grid;box-shadow:0 0 0 2px #c5b8ff}.ul-tabs{--background:#fffffff0;--border:0;width:calc(100% - 38px);max-width:606px;height:calc(76px + env(safe-area-inset-bottom));min-height:76px;margin:0 auto max(10px, calc(env(safe-area-inset-bottom) - 8px));padding:7px 6px env(safe-area-inset-bottom);contain:none;border:1px solid var(--ul-line);background:var(--background);-webkit-backdrop-filter:saturate(160%)blur(22px);backdrop-filter:saturate(160%)blur(22px);border-radius:31px;align-self:center;overflow:visible;box-shadow:0 18px 38px #362f4f29,0 5px 14px #362f4f1a}.ul-tabs ion-tab-button{--background:transparent;--background-focused:transparent;--background-hover:transparent;--color:#362f4f9e;--color-selected:#4815c5;--color-focused:#362f4f9e;--ripple-color:transparent;z-index:1;min-width:0;font-size:.67rem;font-weight:800;position:relative;overflow:visible}.ul-tabs ion-tab-button::part(native){background:0 0;border:1px solid #0000;border-radius:24px;margin:0 2px;padding:7px 3px;transition:transform .22s,background .22s,box-shadow .22s,border-color .22s;overflow:visible}.ul-tabs ion-icon{font-size:1.45rem;transition:transform .22s,color .22s}.ul-tabs ion-label{white-space:nowrap;margin-top:3px;font-size:.64rem;line-height:1}.ul-tabs ion-tab-button.tab-selected::part(native){background:linear-gradient(145deg,#5b23ff,#362f4f);border-color:#008bffb8;transform:translateY(-11px);box-shadow:0 14px 28px #008bff4d,0 8px 18px #5b23ff6b,inset 0 1px #ffffff4d}.ul-tabs .tab-selected ion-icon{filter:drop-shadow(0 4px 8px #362f4f57);transform:scale(1.12)}.ul-tabs ion-tab-button.tab-selected ion-icon,.ul-tabs ion-tab-button.tab-selected ion-label{color:#e4ff30}.ul-tabs ion-tab-button:active::part(native){transform:scale(.95)}.ul-tabs ion-tab-button.tab-selected:active::part(native){transform:translateY(-9px)scale(.96)}.tab-dot{z-index:2;color:#362f4f;background:#e4ff30;border:2px solid #fff;border-radius:10px;place-items:center;min-width:18px;height:18px;padding:0 5px;font-size:.62rem;font-weight:900;display:grid;position:absolute;top:-2px;left:calc(50% + 7px)}@media (prefers-reduced-motion:reduce){.ul-tabs ion-tab-button::part(native),.ul-tabs ion-icon{transition:none}}.onboarding-page ion-content{--background:radial-gradient(circle at 12% 8%, #e4ff3047, transparent 27%), radial-gradient(circle at 88% 18%, #008bff29, transparent 26%), #faf9ff}.onboarding-shell{width:min(100%,520px);min-height:100%;padding:max(28px, env(safe-area-inset-top)) 24px 36px;flex-direction:column;margin:auto;display:flex}.onboarding-brand{color:var(--ul-ink);letter-spacing:-.03em;align-items:center;gap:10px;font-size:.9rem;font-weight:950;display:flex}.brand-mark{object-fit:cover;border-radius:11px;width:42px;height:42px;box-shadow:0 8px 22px #362f4f3d}.onboarding-progress{gap:7px;margin:25px 0 12px;display:flex}.onboarding-progress i{background:#e7e3f2;border-radius:4px;width:26px;height:5px;transition:background .22s,width .22s}.onboarding-progress i.active{background:var(--ul-blue);width:40px}.onboarding-panel{flex-direction:column;flex:1;justify-content:center;animation:.32s both slide-in;display:flex}@keyframes slide-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.onboarding-panel h1{letter-spacing:-.055em;max-width:460px;margin:0;font-size:clamp(2.3rem,10vw,4rem);font-weight:950;line-height:.98}.onboarding-panel .lead{max-width:450px;color:var(--ul-muted);margin:18px 0 30px;font-size:1.04rem;line-height:1.55}.welcome-visual{color:#fff;background:linear-gradient(145deg,#5b23ff,#362f4f);border-radius:48% 52% 44% 56%/52% 38% 62% 48%;justify-content:center;align-items:center;gap:6px;width:210px;height:150px;margin:5px 0 35px;display:flex;transform:rotate(-4deg);box-shadow:0 24px 60px #5b23ff47}.welcome-visual strong{letter-spacing:-.06em;font-size:2.25rem;font-weight:950}.welcome-visual span{color:var(--ul-yellow);font-size:2.5rem;font-weight:950}.text-back{color:var(--ul-muted);background:0 0;border:0;align-self:flex-start;align-items:center;gap:6px;margin:0 0 26px;font-weight:800;display:flex}.language-card{border:2px solid var(--ul-line);text-align:left;width:100%;min-height:85px;color:var(--ul-ink);background:#fff;border-radius:20px;align-items:center;gap:14px;margin-bottom:12px;padding:14px 16px;display:flex}.language-card.is-selected{border-color:var(--ul-blue);box-shadow:0 8px 22px #5b23ff1f}.language-card.is-disabled{opacity:.48;margin-bottom:28px}.language-card .flag{background:var(--ul-surface);border-radius:15px;place-items:center;width:52px;height:52px;font-size:1.8rem;display:grid}.language-card>span:nth-child(2){flex:1;gap:3px;display:grid}.language-card strong{font-size:1rem}.language-card small{color:var(--ul-muted)}.language-card ion-icon{color:var(--ul-blue);font-size:1.6rem}.name-field{color:var(--ul-ink);gap:8px;margin-bottom:22px;font-size:.78rem;font-weight:850;display:grid}.name-field input,.edit-profile input,.edit-profile select{border:2px solid var(--ul-line);width:100%;min-height:52px;color:var(--ul-ink);background:#fff;border-radius:15px;outline:none;padding:0 16px}.name-field input:focus,.edit-profile input:focus,.edit-profile select:focus{border-color:var(--ul-blue)}.goal-grid{grid-template-columns:repeat(2,1fr);gap:11px;margin-bottom:28px;display:grid}.goal-grid button{border:2px solid var(--ul-line);min-height:100px;color:var(--ul-ink);background:#fff;border-radius:18px;align-content:center;justify-items:center;gap:2px;display:grid}.goal-grid button.selected{border-color:var(--ul-blue);background:#f1f7ff;box-shadow:0 8px 22px #5b23ff1f}.goal-grid span{font-size:1.45rem}.goal-grid strong{font-size:1rem}.goal-grid small{color:var(--ul-muted)}.top-stats{grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:22px;display:grid}.home-status-row{position:relative}.home-status-row .top-stats{margin-bottom:28px}.sync-status{color:var(--ul-muted);align-items:center;gap:4px;font-size:.6rem;font-weight:750;display:flex;position:absolute;bottom:-17px;right:2px}.sync-status i{background:#aeb5c2;border-radius:50%;width:6px;height:6px}.sync-status.online i{background:var(--ul-green);box-shadow:0 0 0 3px #00c99021}.top-stat{border:1px solid var(--ul-line);background:#fff;border-radius:15px;justify-content:center;align-items:center;gap:5px;min-height:45px;display:flex;box-shadow:0 3px 12px #18203309}.top-stat ion-icon{font-size:1.15rem}.top-stat strong{font-size:.9rem}.top-stat span{color:var(--ul-muted);font-size:.67rem;font-weight:750}.top-stat--streak ion-icon{color:#c45100}.top-stat--xp ion-icon{color:var(--ul-blue)}.top-stat--accuracy ion-icon{color:var(--ul-green)}.home-greeting{justify-content:space-between;align-items:center;gap:20px;margin:12px 2px 22px;display:flex}.home-greeting h1{letter-spacing:-.05em;margin:0 0 4px;font-size:clamp(2rem,8vw,3rem);font-weight:950}.home-greeting>div>p:last-child{color:var(--ul-muted);margin:0}.greeting-bubble{background:var(--ul-yellow);color:#574f00;border-radius:50% 45% 48% 52%;flex:none;padding:19px 13px;font-weight:950;transform:rotate(5deg)}.continue-card{background:radial-gradient(circle at 96% 5%, color-mix(in srgb, var(--unit-color) 15%, transparent), transparent 35%), white;border:1px solid color-mix(in srgb, var(--unit-color) 25%, var(--ul-line));border-radius:27px;padding:20px;position:relative;overflow:hidden;box-shadow:0 16px 35px #18203317}.continue-top,.continue-progress{justify-content:space-between;align-items:center;display:flex}.continue-top>span:last-child{color:var(--ul-muted);font-size:.75rem;font-weight:800}.unit-pill{background:color-mix(in srgb, var(--unit-color) 12%, white);color:color-mix(in srgb, var(--unit-color) 65%, #001c3d);letter-spacing:.08em;border-radius:8px;padding:6px 9px;font-size:.65rem;font-weight:950}.continue-body{align-items:center;gap:14px;margin:20px 0;display:flex}.continue-emoji{background:color-mix(in srgb, var(--unit-color) 10%, white);border-radius:22px;flex:0 0 70px;place-items:center;width:70px;height:70px;font-size:2rem;display:grid}.continue-body small{color:var(--ul-muted);letter-spacing:.08em;font-size:.64rem;font-weight:850}.continue-body h2{letter-spacing:-.03em;margin:3px 0 4px;font-size:1.22rem}.continue-body p{color:var(--ul-muted);margin:0;font-size:.78rem}.continue-progress{gap:10px;margin-bottom:16px}.continue-progress>span{background:#edf0f5;border-radius:8px;flex:1;height:8px;overflow:hidden}.continue-progress i{border-radius:inherit;background:var(--unit-color);height:100%;display:block}.continue-progress em{color:var(--ul-muted);font-size:.72rem;font-style:normal;font-weight:800}.continue-button{background:color-mix(in srgb, var(--unit-color) 72%, #07111f);color:#fff;width:100%;min-height:50px;box-shadow:0 10px 22px color-mix(in srgb, var(--unit-color) 25%, transparent);border:0;border-radius:16px;justify-content:center;align-items:center;gap:8px;font-weight:900;display:flex}.home-section{margin-top:32px}.section-heading{justify-content:space-between;align-items:end;gap:12px;margin-bottom:13px;display:flex}.section-heading h2{letter-spacing:-.035em;margin:0;font-size:1.3rem}.section-heading>strong{color:var(--ul-blue);font-size:.8rem}.section-heading>button{color:var(--ul-blue);background:0 0;border:0;font-size:.78rem;font-weight:850}.daily-goal-card{border:1px solid var(--ul-line);background:#fff;border-radius:22px;align-items:center;gap:17px;padding:17px;display:flex}.goal-ring{background:conic-gradient(var(--ul-green) var(--goal), #e9edf2 0);border-radius:50%;flex:0 0 90px;place-items:center;width:90px;height:90px;display:grid;position:relative}.goal-ring:after{content:"";background:#fff;border-radius:50%;position:absolute;inset:8px}.goal-ring span{z-index:1;text-align:center;display:grid}.goal-ring strong{font-size:1rem}.goal-ring small{color:var(--ul-muted);font-size:.58rem}.daily-goal-card h3{margin:0 0 4px;font-size:1rem}.daily-goal-card p{color:var(--ul-muted);margin:0 0 9px;font-size:.76rem;line-height:1.4}.daily-goal-card button{color:var(--ul-pink);background:0 0;border:0;align-items:center;gap:5px;padding:0;font-size:.73rem;font-weight:850;display:flex}.unit-preview-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.unit-preview-row button{border:1px solid var(--ul-line);text-align:left;min-width:0;color:var(--ul-ink);background:#fff;border-radius:18px;justify-items:start;padding:12px;display:grid}.unit-preview-row button:disabled{opacity:.48}.unit-preview-row span{border-radius:13px;place-items:center;width:42px;height:42px;margin-bottom:10px;font-size:1.35rem;display:grid}.unit-preview-row strong{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:.76rem;overflow:hidden}.unit-preview-row small{color:var(--ul-muted);margin-top:3px;font-size:.62rem}.learn-intro{color:#fff;background:linear-gradient(135deg,#5b23ff,#362f4f);border-radius:24px;justify-content:space-between;align-items:center;gap:18px;padding:22px;display:flex;box-shadow:0 16px 30px #5b23ff3d}.learn-intro .eyebrow{color:#cfe5ff}.learn-intro h1{letter-spacing:-.05em;margin:0 0 5px;font-size:2rem}.learn-intro p:last-child{color:#e0edff;max-width:430px;margin:0;font-size:.82rem;line-height:1.45}.level-ring{border:8px solid #fff3;border-top-color:var(--ul-yellow);border-radius:50%;flex:0 0 82px;align-content:center;place-items:center;width:82px;height:82px;display:grid;transform:rotate(10deg)}.level-ring>*{transform:rotate(-10deg)}.level-ring strong{font-size:1rem}.level-ring small{color:#dbeaff;font-size:.6rem}.path-list{gap:13px;margin-top:22px;display:grid;position:relative}.path-list:before{content:"";background:#e2e7ef;width:3px;position:absolute;top:20px;bottom:20px;left:34px}.unit-card{z-index:1;border:1px solid var(--ul-line);width:100%;min-height:122px;color:var(--ul-ink);text-align:left;background:#fff;border-radius:22px;grid-template-columns:40px 1fr 58px;align-items:center;gap:13px;padding:15px;display:grid;position:relative;box-shadow:0 5px 16px #1820330b}.unit-card.is-locked{opacity:.72;filter:grayscale(.25)}.unit-card.is-complete{border-color:#a8ead8}.unit-rail{align-self:stretch;place-items:center;display:grid}.unit-number{background:color-mix(in srgb, var(--unit-color) 72%, #07111f);color:#fff;width:40px;height:40px;box-shadow:0 0 0 2px color-mix(in srgb, var(--unit-color) 22%, white);border:4px solid #fff;border-radius:50%;place-items:center;font-size:.8rem;font-weight:950;display:grid}.unit-copy{min-width:0;display:grid}.unit-copy>small{color:var(--ul-muted);letter-spacing:.08em;font-size:.6rem;font-weight:900}.unit-copy>strong{margin:3px 0;font-size:.97rem}.unit-copy>span:not(.unit-progress-row){color:var(--ul-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.71rem;overflow:hidden}.unit-progress-row{align-items:center;gap:8px;margin-top:10px;display:flex}.unit-progress-track{background:#edf0f4;border-radius:6px;flex:1;height:6px;overflow:hidden}.unit-progress-track i{border-radius:inherit;height:100%;display:block}.unit-progress-row em{color:var(--ul-muted);font-size:.62rem;font-style:normal;font-weight:850}.unit-emoji{border-radius:18px;place-items:center;width:55px;height:55px;font-size:1.6rem;display:grid}.unit-emoji ion-icon{color:#8991a3;font-size:1.25rem}.unit-shell{padding-top:16px}.unit-hero{background:radial-gradient(circle at 90% 15%, color-mix(in srgb, var(--unit-color) 25%, transparent), transparent 36%), white;border:1px solid color-mix(in srgb, var(--unit-color) 28%, var(--ul-line));border-radius:28px;padding:26px 22px 22px;position:relative;overflow:hidden}.unit-hero-emoji{background:color-mix(in srgb, var(--unit-color) 12%, white);border-radius:25px;place-items:center;width:82px;height:82px;margin-bottom:22px;font-size:2.55rem;display:grid;transform:rotate(-4deg)}.unit-hero .eyebrow{color:color-mix(in srgb, var(--unit-color) 65%, #001c3d)}.unit-hero h1{letter-spacing:-.055em;margin:0 0 8px;font-size:clamp(2rem,9vw,3rem);line-height:1}.unit-hero>p:not(.eyebrow){color:var(--ul-muted);margin:0;line-height:1.5}.unit-meta{flex-wrap:wrap;gap:9px;margin-top:22px;display:flex}.unit-meta span{background:var(--ul-surface);color:var(--ul-muted);border-radius:10px;align-items:center;gap:5px;padding:7px 10px;font-size:.7rem;font-weight:800;display:flex}.lesson-list{margin-top:27px}.lesson-row{border:1px solid var(--ul-line);width:100%;min-height:88px;color:var(--ul-ink);text-align:left;background:#fff;border-radius:19px;grid-template-columns:45px 1fr auto;align-items:center;gap:12px;margin-bottom:10px;padding:13px;display:grid}.lesson-row.is-current{border-color:var(--ul-blue);box-shadow:0 7px 18px #5b23ff1a}.lesson-row.is-locked{opacity:.72}.lesson-index{width:43px;height:43px;color:var(--ul-blue);background:#edf3fb;border-radius:50%;place-items:center;font-size:.78rem;font-weight:950;display:grid}.lesson-row.is-complete .lesson-index{color:#008d64;background:#def8ef}.lesson-row small{color:var(--ul-muted);letter-spacing:.06em;font-size:.58rem;font-weight:850}.lesson-row strong,.lesson-row em{display:block}.lesson-row strong{margin:3px 0 1px;font-size:.9rem}.lesson-row em{color:var(--ul-muted);font-size:.7rem;font-style:normal}.lesson-row>ion-icon{color:#a4abb9}.lesson-header ion-toolbar{--background:white;--border-color:var(--ul-line);--min-height:61px}.lesson-header ion-button{--color:var(--ul-muted)}.lesson-header ion-button ion-icon{font-size:1.5rem}.lesson-progress{align-items:center;gap:10px;height:100%;padding:0 12px;display:flex}.lesson-progress>span{background:#e8ecf2;border-radius:10px;flex:1;height:9px;overflow:hidden}.lesson-progress i{border-radius:inherit;background:linear-gradient(90deg, var(--ul-green), #39dbae);height:100%;transition:width .26s;display:block}.lesson-progress strong{color:var(--ul-muted);font-size:.7rem}.lesson-xp{color:var(--ul-blue);align-items:center;gap:3px;margin-right:12px;font-size:.75rem;font-weight:900;display:flex}.lesson-shell{flex-direction:column;width:min(100%,680px);min-height:calc(100% - 1px);margin:0 auto;padding:18px 18px 150px;display:flex}.lesson-context{align-items:center;gap:9px;margin-bottom:22px;display:flex}.lesson-context>span{border-radius:13px;place-items:center;width:42px;height:42px;font-size:1.25rem;display:grid}.lesson-context div{display:grid}.lesson-context small{color:var(--ul-muted);font-size:.65rem}.lesson-context strong{font-size:.85rem}.exercise-card{border:1px solid var(--ul-line);background:#fff;border-radius:25px;flex:1;padding:clamp(20px,5vw,34px);box-shadow:0 10px 30px #1820330f}.exercise-instruction{color:var(--ul-blue);letter-spacing:.09em;text-transform:uppercase;margin:0;font-size:.7rem;font-weight:900}.exercise-prompt{letter-spacing:-.045em;margin:14px 0 28px;font-size:clamp(1.65rem,7vw,2.5rem);font-weight:900;line-height:1.13}.answer-list{gap:10px;display:grid}.answer-option{border:2px solid var(--ul-line);width:100%;min-height:61px;color:var(--ul-ink);text-align:left;background:#fff;border-radius:17px;align-items:center;gap:12px;padding:9px 14px;display:flex}.answer-option.is-selected{border-color:var(--ul-blue);background:#f0f7ff;box-shadow:0 5px 16px #5b23ff1a}.answer-option>span{width:32px;height:32px;color:var(--ul-muted);background:#f0f2f6;border-radius:10px;flex:0 0 32px;place-items:center;font-size:.7rem;font-weight:900;display:grid}.answer-option.is-selected>span{background:var(--ul-blue);color:#fff}.answer-option strong{font-size:.88rem}.exercise-check{margin-top:24px}.sentence-builder{border-bottom:2px solid var(--ul-line);flex-wrap:wrap;align-content:flex-start;gap:8px;min-height:95px;padding:10px 2px 16px;display:flex}.sentence-builder.is-empty{color:var(--ul-muted);font-size:.8rem}.sentence-builder button,.word-chip{min-height:42px;color:var(--ul-ink);background:#fff;border:1px solid #ced5e1;border-bottom-width:3px;border-radius:12px;padding:7px 12px;font-weight:800}.word-bank{flex-wrap:wrap;place-content:flex-start center;gap:9px;min-height:120px;padding-top:22px;display:flex}.match-help{color:var(--ul-muted);margin:-17px 0 13px;font-size:.75rem}.match-grid{grid-template-columns:repeat(2,1fr);gap:9px;display:grid}.match-grid>div{gap:9px;display:grid}.match-option{border:2px solid var(--ul-line);min-height:65px;color:var(--ul-ink);background:#fff;border-radius:15px;padding:9px;font-size:.75rem;font-weight:800}.match-option.is-selected{border-color:var(--ul-blue);background:#f1edff}.match-option.is-matched{color:#005ea8;background:#e9f5ff;border-color:#7cc7ff}.match-message{color:var(--ul-muted);text-align:center;font-size:.74rem}.audio-orb{background:var(--ul-blue);color:#fff;border:0;border-radius:50%;align-content:center;place-items:center;gap:3px;width:90px;height:90px;margin:13px 0 10px;display:grid;box-shadow:0 13px 28px #5b23ff42}.audio-orb ion-icon{font-size:2rem}.audio-orb span{font-size:.62rem;font-weight:850}.feedback-footer{border:0;box-shadow:0 -5px 25px #1820331c}.feedback-footer>div{grid-template-columns:48px 1fr minmax(150px,200px);align-items:center;gap:13px;min-height:116px;padding:17px max(18px,50% - 340px);display:grid}.feedback-footer.is-correct>div{color:#006e4f;background:#e6faf3}.feedback-footer.is-wrong>div{color:#b01845;background:#fff0f3}.feedback-icon{background:currentColor;border-radius:50%;place-items:center;width:45px;height:45px;display:grid}.feedback-icon ion-icon{color:#fff;font-size:1.4rem}.feedback-footer strong{font-size:1.03rem}.feedback-footer p{margin:3px 0 0;font-size:.76rem;line-height:1.35}.feedback-footer .ul-button{color:#fff;background:currentColor}.result-shell{width:min(100%,580px);min-height:100%;padding:max(55px, env(safe-area-inset-top)) 22px 34px;text-align:center;flex-direction:column;align-items:center;margin:auto;display:flex;position:relative;overflow:hidden}.result-medal{background:linear-gradient(145deg,#5b23ff,#362f4f);border:12px solid #eeeaff;border-radius:50%;place-items:center;width:128px;height:128px;margin-bottom:25px;display:grid;box-shadow:0 18px 40px #5b23ff47}.result-medal span{color:var(--ul-yellow);filter:drop-shadow(0 4px 3px #00000021);font-size:4.2rem}.result-shell h1{letter-spacing:-.065em;margin:0;font-size:clamp(2.7rem,12vw,4.5rem);font-weight:950}.result-shell>p:not(.eyebrow){max-width:430px;color:var(--ul-muted);margin:11px 0 27px;line-height:1.5}.result-stats{grid-template-columns:repeat(3,1fr);gap:9px;width:100%;margin-bottom:21px;display:grid}.result-stats div{border:1px solid var(--ul-line);background:#fff;border-radius:18px;align-content:center;place-items:center;min-height:105px;padding:12px 6px;display:grid}.result-stats ion-icon{color:var(--ul-blue);font-size:1.35rem}.result-stats strong{margin:5px 0 2px;font-size:1.15rem}.result-stats small{color:var(--ul-muted);font-size:.55rem;font-weight:850}.result-tip{text-align:left;background:#fffce1;border-radius:17px;align-items:center;gap:12px;width:100%;margin-bottom:23px;padding:14px;display:flex}.result-tip>span{font-size:1.5rem}.result-tip p{color:#6c6216;margin:0;font-size:.75rem}.result-tip strong{color:#514800;display:block}.confetti i{--x:calc((var(--i) * 47) % 100);top:calc((var(--i) * 29) % 48 * 1%);left:calc(var(--x) * 1%);background:hsl(calc(var(--i) * 43), 85%, 58%);width:8px;height:14px;transform:rotate(calc(var(--i) * 23deg));opacity:.65;border-radius:2px;position:absolute}.review-hero{color:#fff;background:linear-gradient(135deg,#172c50,#234d81);border-radius:24px;align-items:center;gap:16px;padding:20px;display:flex}.review-hero-icon{background:#ffffff21;border-radius:21px;flex:0 0 66px;place-items:center;width:66px;height:66px;display:grid}.review-hero-icon ion-icon{font-size:2rem}.review-hero .eyebrow{color:#91c8ff}.review-hero h1{letter-spacing:-.04em;margin:0 0 4px;font-size:1.35rem}.review-hero p:last-child{color:#c6d8ef;margin:0;font-size:.76rem}.review-status{align-items:center;gap:10px;margin:20px 0 10px;display:flex}.review-status span{background:#e4e9f0;border-radius:8px;flex:1;height:8px;overflow:hidden}.review-status i{background:var(--ul-green);height:100%;display:block}.review-status strong{color:var(--ul-muted);font-size:.7rem}.mastery-card{border:1px solid var(--ul-line);background:#fff;border-radius:13px;align-items:center;gap:10px;margin-bottom:12px;padding:10px 13px;display:flex}.mastery-card>span{color:var(--ul-muted);letter-spacing:.08em;font-size:.6rem;font-weight:900}.mastery-card>div{gap:4px;display:flex}.mastery-card i{background:#e4e8ef;border-radius:5px;width:17px;height:7px}.mastery-card i.active{background:var(--ul-green)}.mastery-card small{color:var(--ul-muted);margin-left:auto;font-size:.65rem}.review-feedback{border-radius:18px;margin-top:12px;padding:16px}.review-feedback.good{color:#007653;background:#e6faf3}.review-feedback.bad{color:#ac1742;background:#fff0f3}.review-feedback p{margin:5px 0 13px;font-size:.76rem}.empty-review{text-align:center;align-content:center;justify-items:center;min-height:390px;display:grid}.empty-review>span{font-size:4.5rem}.empty-review h2{margin:13px 0 6px;font-size:1.8rem}.empty-review p{max-width:390px;color:var(--ul-muted);margin:0 0 22px;line-height:1.5}.empty-review .ul-button{max-width:320px}.league-hero{background:linear-gradient(135deg,#fff4e6,#fffaf4);border:1px solid #f2d8b7;border-radius:24px;grid-template-columns:58px 1fr auto;align-items:center;gap:13px;padding:19px;display:grid}.league-shield{clip-path:polygon(50% 0,92% 18%,82% 76%,50% 100%,18% 76%,8% 18%);background:#b87436;place-items:center;width:56px;height:62px;font-size:1.7rem;display:grid}.league-hero .eyebrow{color:#a55c21}.league-hero h1{margin:0 0 2px;font-size:1.25rem}.league-hero p:last-child{color:#8a6a52;margin:0;font-size:.7rem}.league-time{color:#93613b;align-items:center;gap:3px;font-size:.65rem;font-weight:850;display:flex}.podium{justify-content:center;align-items:end;min-height:215px;margin:28px 0 15px;display:flex}.podium-place{justify-items:center;width:31%;max-width:145px;display:grid;position:relative}.podium-place>span{color:#5d667a;background:#e9edf5;border:4px solid #fff;border-radius:50%;place-items:center;width:53px;height:53px;margin-bottom:8px;font-size:.75rem;font-weight:900;display:grid;box-shadow:0 0 0 2px #d7dde8}.podium-place.first>span{color:#4815c5;background:#eeeaff;width:64px;height:64px;box-shadow:0 0 0 3px #b7a7ff}.podium-place>i{font-size:1.6rem;font-style:normal;position:absolute;top:-25px}.podium-place>strong{color:#172033;background:#aeb8c8;place-items:center;width:100%;height:56px;font-size:1.4rem;display:grid}.podium-place.first>strong{color:#fff;background:#5b23ff;height:88px}.podium-place.third>strong{color:#fff;background:#8b532c;height:44px}.podium-place b{margin-top:7px;font-size:.76rem}.podium-place small{color:var(--ul-muted);font-size:.62rem}.ranking-list{border:1px solid var(--ul-line);background:#fff;border-radius:21px;overflow:hidden}.ranking-row{border-bottom:1px solid var(--ul-line);grid-template-columns:25px 40px 1fr auto;align-items:center;gap:9px;min-height:70px;padding:10px 14px;display:grid}.ranking-row:last-child{border-bottom:0}.ranking-row.me{background:#f1edff}.ranking-row>strong{color:var(--ul-muted);text-align:center}.ranking-row>span{color:#626b7f;background:#eef1f6;border-radius:50%;place-items:center;width:38px;height:38px;font-size:.65rem;font-weight:900;display:grid}.ranking-row.me>span{background:var(--ul-blue);color:#fff}.ranking-row div{display:grid}.ranking-row b{font-size:.82rem}.ranking-row small{color:var(--ul-muted);font-size:.62rem}.ranking-row em{color:var(--ul-blue);font-size:.72rem;font-style:normal;font-weight:900}.ranking-note{color:var(--ul-muted);text-align:center;margin:18px;font-size:.72rem}.profile-card{border:1px solid var(--ul-line);background:#fff;border-radius:24px;grid-template-columns:70px 1fr auto;align-items:center;gap:14px;padding:20px;display:grid}.profile-avatar{color:#fff;background:linear-gradient(145deg,#5b23ff,#362f4f);border-radius:21px;place-items:center;width:68px;height:68px;font-size:1.3rem;font-weight:950;display:grid}.profile-card h1{letter-spacing:-.04em;margin:0 0 3px;font-size:1.35rem}.profile-card>div:nth-child(2)>span{color:var(--ul-muted);font-size:.72rem}.profile-card>button{width:38px;height:38px;color:var(--ul-blue);background:#edf4fd;border:0;border-radius:12px;place-items:center;display:grid}.profile-numbers{grid-template-columns:repeat(3,1fr);gap:9px;margin:13px 0;display:grid}.profile-numbers div{border:1px solid var(--ul-line);background:#fff;border-radius:18px;align-content:center;place-items:center;min-height:105px;display:grid}.profile-numbers ion-icon{color:var(--ul-blue);font-size:1.35rem}.profile-numbers strong{margin:5px 0 1px;font-size:1.1rem}.profile-numbers small{color:var(--ul-muted);font-size:.61rem}.settings-card{border:1px solid var(--ul-line);background:#fff;border-radius:20px;margin-top:13px;padding:17px}.course-setting{align-items:center;gap:12px;display:flex}.course-setting>span{background:var(--ul-surface);border-radius:14px;place-items:center;width:48px;height:48px;font-size:1.6rem;display:grid}.course-setting div{display:grid}.course-setting strong{font-size:.86rem}.course-setting small{color:var(--ul-muted);font-size:.66rem}.profile-progress{background:#e8ecf2;border-radius:7px;height:7px;margin-top:13px;overflow:hidden}.profile-progress i{border-radius:inherit;background:var(--ul-blue);height:100%;display:block}.setting-row{border-bottom:1px solid var(--ul-line);align-items:center;gap:12px;min-height:61px;display:flex}.setting-row:last-child{border-bottom:0}.setting-row>ion-icon{color:var(--ul-blue);font-size:1.25rem}.setting-row>span{flex:1;display:grid}.setting-row strong{font-size:.8rem}.setting-row small{color:var(--ul-muted);font-size:.64rem}.edit-profile{gap:13px;display:grid}.edit-profile label{gap:6px;font-size:.72rem;font-weight:850;display:grid}.danger-link{color:#b21f49;background:0 0;border:0;width:100%;margin-top:24px;font-size:.76rem;font-weight:850}.app-version{color:var(--ul-muted);text-align:center;font-size:.65rem}@media (width<=540px){.feedback-footer>div{grid-template-columns:45px 1fr}.feedback-footer .ul-button{grid-column:1/-1;min-height:48px}.league-hero{grid-template-columns:52px 1fr}.league-time{grid-column:2}}@media (width>=760px){.home-shell,.learn-shell,.review-shell,.ranking-shell,.profile-shell{padding-top:30px}.continue-card{padding:27px}.onboarding-panel .ul-button{max-width:360px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}.ion-palette-dark body{background:var(--ul-surface)}.ion-palette-dark .ul-header ion-toolbar,.ion-palette-dark .lesson-header ion-toolbar{--background:#111a28f5;--border-color:var(--ul-line);--color:var(--ul-ink)}.ion-palette-dark .ul-tabs{--background:linear-gradient(135deg, #362f4ffa, #181424fa);border-color:#b19eff3d;box-shadow:0 18px 42px #00000080,0 5px 16px #0000005c}.ion-palette-dark .ul-tabs ion-tab-button{--color:#f8f7ffad;--color-selected:#e4ff30;--color-focused:#f8f7ffad}.ion-palette-dark .tab-dot{border-color:#362f4f}.ion-palette-dark .header-avatar{color:#e2dcff;background:#3a2c67;border-color:#211a31;box-shadow:0 0 0 2px #6d55ae}.ion-palette-dark .ul-button--primary:disabled{color:#b2bdcf;background:#4b4265}.ion-palette-dark .top-stat,.ion-palette-dark .continue-card,.ion-palette-dark .daily-goal-card,.ion-palette-dark .unit-preview-row button,.ion-palette-dark .unit-card,.ion-palette-dark .unit-hero,.ion-palette-dark .lesson-row,.ion-palette-dark .exercise-card,.ion-palette-dark .answer-option,.ion-palette-dark .sentence-builder button,.ion-palette-dark .word-chip,.ion-palette-dark .match-option,.ion-palette-dark .result-stats div,.ion-palette-dark .mastery-card,.ion-palette-dark .ranking-list,.ion-palette-dark .profile-card,.ion-palette-dark .profile-numbers div,.ion-palette-dark .settings-card,.ion-palette-dark .language-card,.ion-palette-dark .goal-grid button{background:var(--ul-card);color:var(--ul-ink);border-color:var(--ul-line)}.ion-palette-dark .continue-card{background:radial-gradient(circle at 96% 5%, color-mix(in srgb, var(--unit-color) 20%, transparent), transparent 35%), var(--ul-card)}.ion-palette-dark .unit-hero{background:radial-gradient(circle at 90% 15%, color-mix(in srgb, var(--unit-color) 24%, transparent), transparent 36%), var(--ul-card)}.ion-palette-dark .unit-pill,.ion-palette-dark .continue-emoji,.ion-palette-dark .unit-hero-emoji,.ion-palette-dark .unit-emoji{background:color-mix(in srgb, var(--unit-color) 18%, var(--ul-card))}.ion-palette-dark .unit-pill,.ion-palette-dark .unit-hero .eyebrow{color:color-mix(in srgb, var(--unit-color) 42%, white)}.ion-palette-dark .continue-progress>span,.ion-palette-dark .lesson-progress>span,.ion-palette-dark .unit-progress-track,.ion-palette-dark .profile-progress,.ion-palette-dark .review-status span,.ion-palette-dark .path-list:before{background:#4b4265}.ion-palette-dark .onboarding-page ion-content{--background:radial-gradient(circle at 12% 8%, #e4ff3014, transparent 27%), radial-gradient(circle at 88% 18%, #008bff1f, transparent 26%), var(--ul-surface)}.ion-palette-dark .language-card .flag,.ion-palette-dark .course-setting>span,.ion-palette-dark .answer-option>span,.ion-palette-dark .lesson-index,.ion-palette-dark .ranking-row>span{color:var(--ul-muted);background:#332a49}.ion-palette-dark .language-card.is-selected,.ion-palette-dark .goal-grid button.selected,.ion-palette-dark .answer-option.is-selected,.ion-palette-dark .match-option.is-selected,.ion-palette-dark .ranking-row.me{border-color:var(--ul-blue);background:#382875}.ion-palette-dark .answer-option.is-selected>span,.ion-palette-dark .ranking-row.me>span{background:var(--ul-blue);color:#07111f}.ion-palette-dark .match-option.is-matched,.ion-palette-dark .lesson-row.is-complete .lesson-index{color:#8ed0ff;background:#183d5c;border-color:#287cc1}.ion-palette-dark .goal-ring:after{background:var(--ul-card)}.ion-palette-dark .name-field input,.ion-palette-dark .edit-profile input,.ion-palette-dark .edit-profile select{background:var(--ul-card);color:var(--ul-ink);border-color:var(--ul-line)}.ion-palette-dark .league-hero{background:linear-gradient(135deg,#392817,#241d17);border-color:#61452b}.ion-palette-dark .league-hero .eyebrow{color:#f4bd83}.ion-palette-dark .league-hero p:last-child{color:#e2c5aa}.ion-palette-dark .league-time{color:#f1c38f}.ion-palette-dark .danger-link{color:#ff83a8}.ion-palette-dark .review-feedback.good,.ion-palette-dark .feedback-footer.is-correct>div{color:#74ebc7;background:#12382f}.ion-palette-dark .review-feedback.bad,.ion-palette-dark .feedback-footer.is-wrong>div{color:#ff8caf;background:#3d1927}.ion-palette-dark .result-tip{background:#353018}.ion-palette-dark .result-tip p,.ion-palette-dark .result-tip strong{color:#f5e98f}.course-option{border:1.5px solid var(--ul-line);text-align:left;background:#fff;border-radius:16px;align-items:center;gap:12px;width:100%;margin-bottom:9px;padding:11px;display:flex}.course-option>span{background:var(--ul-surface);border-radius:14px;place-items:center;width:48px;height:48px;font-size:1.6rem;display:grid}.course-option div{flex:1;display:grid}.course-option strong{font-size:.86rem}.course-option small{color:var(--ul-muted);font-size:.66rem}.course-option>ion-icon{color:var(--ul-blue);font-size:1.3rem}.course-option.is-active{border-color:var(--ul-blue);background:color-mix(in srgb, var(--ul-blue) 7%, white)}.setting-row--sub{padding-left:33px}.setting-row--sub select{border:1.5px solid var(--ul-line);font:inherit;color:var(--ul-ink);background:#fff;border-radius:12px;padding:8px 12px;font-size:.78rem;font-weight:800}.upcoming-review{border:1px dashed var(--ul-line);text-align:left;border-radius:16px;max-width:330px;margin:4px auto 14px;padding:13px 15px}.upcoming-review strong{letter-spacing:.04em;text-transform:uppercase;color:var(--ul-blue);margin-bottom:4px;font-size:.72rem;display:block}.upcoming-review p{color:var(--ul-muted);margin:0;font-size:.78rem}.podium-place.me b{color:var(--ul-blue)}.podium-place.me>span{outline:2.5px solid var(--ul-blue);outline-offset:2px}.ion-palette-dark .course-option{background:var(--ul-card);color:var(--ul-ink);border-color:var(--ul-line)}.ion-palette-dark .course-option>span{background:#332a49}.ion-palette-dark .course-option.is-active{border-color:var(--ul-blue);background:#382875}.ion-palette-dark .setting-row--sub select{background:var(--ul-card);color:var(--ul-ink);border-color:var(--ul-line)}.week-chart-head{justify-content:space-between;align-items:baseline;margin-bottom:12px;display:flex}.week-chart-head strong{font-size:.92rem}.week-chart-plot{border-bottom:1px solid var(--ul-line);align-items:flex-end;gap:8px;height:118px;padding-bottom:0;display:flex;position:relative}.week-goal-line{border-top:2px dashed color-mix(in srgb, var(--ul-muted) 55%, transparent);pointer-events:none;position:absolute;left:0;right:0}.week-col{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;height:100%;display:flex;position:relative}.week-col span{background:var(--ul-chart-bar);border-radius:4px 4px 0 0;width:min(100%,20px)}.week-col span.is-empty{background:var(--ul-line);border-radius:2px;height:3px}.week-col em{color:var(--ul-ink);margin-bottom:3px;font-size:.62rem;font-style:normal;font-weight:850}.week-col small{color:var(--ul-muted);font-size:.62rem;font-weight:800;position:absolute;bottom:-20px}.week-col.is-today small{color:var(--ul-ink);text-underline-offset:3px;text-decoration:underline}.week-chart-note{color:var(--ul-muted);margin:26px 0 0;font-size:.64rem}.warmup-card{border:1px solid var(--ul-line);text-align:center;background:#fff;border-radius:22px;padding:21px}.warmup-card h1{margin:4px 0 6px;font-size:1.3rem}.warmup-lead{color:var(--ul-muted);margin:0 0 15px;font-size:.8rem}.warmup-list{gap:9px;margin-bottom:17px;display:grid}.warmup-row{border:1.5px solid var(--ul-line);background:var(--ul-surface);text-align:left;border-radius:16px;align-items:center;gap:12px;padding:12px 14px;display:flex}.warmup-row>ion-icon{color:var(--ul-blue);flex-shrink:0;font-size:1.25rem}.warmup-row span{display:grid}.warmup-row strong{font-size:.88rem}.warmup-row small{color:var(--ul-muted);font-size:.7rem}.warmup-start{width:100%}.ion-palette-dark .warmup-card{background:var(--ul-card);border-color:var(--ul-line)}.ion-palette-dark .warmup-row{border-color:var(--ul-line);background:#332a49}.result-goal{color:#362f4f;background:#e4ff30;border-radius:999px;width:fit-content;margin:14px auto 0;padding:9px 16px;font-size:.8rem;font-weight:900}.ion-palette-dark .result-goal{color:#f5e98f;background:#353018}
