@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/a342834df7752944-s.3hd2l7bm32o7k.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/d3fe2f289711ac3f-s.1l2zhvq5eocqf.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/58c4895d0a0ef7cc-s.2vhvl9vrvk-va.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/bfc7db5c00d21bc5-s.173xwsdme27n8.woff2)format("woff2");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:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/6ab0db14f70d8ed6-s.13hnt-xgp82zk.woff2)format("woff2");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:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/a343f882a40d2cc9-s.p.1sj6eobyi31rd.woff2)format("woff2");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:Manrope Fallback;src:local(Arial);ascent-override:103.31%;descent-override:29.07%;line-gap-override:0.0%;size-adjust:103.19%}.manrope_9b24f49e-module__hJlnFq__className{font-family:Manrope,Manrope Fallback;font-style:normal}.manrope_9b24f49e-module__hJlnFq__variable{--font-manrope:"Manrope", "Manrope Fallback"}
@font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/1e219c03c996efbd-s.2qo5md4hn_gum.woff2)format("woff2");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:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/b35b0dbffda7f2c4-s.1d9rlgtqyj_-l.woff2)format("woff2");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:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/03bda585a99c6450-s.p.32sris142tqlb.woff2)format("woff2");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:Fraunces Fallback;src:local(Times New Roman);ascent-override:84.71%;descent-override:22.09%;line-gap-override:0.0%;size-adjust:115.45%}.fraunces_d361c29d-module__5PBLiG__className{font-family:Fraunces,Fraunces Fallback;font-style:normal}.fraunces_d361c29d-module__5PBLiG__variable{--font-fraunces:"Fraunces", "Fraunces Fallback"}
:root{--font-sans:var(--font-manrope), -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-display:var(--font-fraunces), Georgia, serif;--font-size-2xs:.75rem;--font-size-xs:.8125rem;--font-size-sm:.875rem;--font-size-md:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:1.875rem;--font-size-4xl:2.25rem;--font-size-page:clamp(2rem, 4vw, 2.625rem);--font-size-hero:clamp(2.25rem, 5vw, 3.25rem);--font-size-decorative:9.375rem;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--weight-heavy:800;--color-white:#fff;--color-ink-900:#24333b;--color-ink-700:#52636b;--color-ink-500:#75868d;--color-ink-300:#a8b5ba;--color-brand-700:#086887;--color-brand-600:#087da8;--color-brand-500:#009fe3;--color-brand-200:#bde8f1;--color-brand-100:#e7f7fb;--color-brand-50:#f3fbfe;--color-teal-700:#08775f;--color-teal-600:#0b8a70;--color-teal-500:#20a17e;--color-teal-100:#eaf9f3;--color-teal-50:#f2fbf7;--color-gold-700:#8d6711;--color-gold-500:#f3b43c;--color-gold-400:#ffd500;--color-gold-100:#fff2c5;--color-gold-50:#fffaf0;--color-coral-700:#a34848;--color-coral-500:#e87070;--color-coral-100:#ffe0d9;--color-coral-50:#fff4f0;--color-violet-700:#5f55ad;--color-violet-500:#705eca;--color-violet-100:#eeeafb;--color-violet-50:#f7f5fc;--surface-canvas:#f6fafb;--surface-card:var(--color-white);--surface-subtle:#eef4f5;--surface-wash:#fbfdfd;--surface-learning:#f7f0df;--surface-learning-complete:#edf7e9;--surface-info:var(--color-brand-50);--surface-success:var(--color-teal-50);--surface-warning:var(--color-gold-50);--surface-danger:var(--color-coral-50);--surface-violet:var(--color-violet-50);--text-primary:var(--color-ink-900);--text-secondary:var(--color-ink-700);--text-muted:var(--color-ink-500);--text-on-color:var(--color-white);--border-subtle:#dfe8eb;--border-default:#cfdee3;--border-strong:#a8c4cd;--focus-ring:#009fe33d;--bg-primary:var(--surface-canvas);--bg-secondary:var(--surface-card);--bg-tertiary:var(--surface-subtle);--bg-glass:#ffffffeb;--bg-wash:var(--surface-wash);--border-color:var(--border-subtle);--border-color-active:var(--border-strong);--primary:var(--color-brand-500);--primary-hover:var(--color-brand-700);--primary-glow:#009fe326;--secondary:#e30613;--secondary-glow:#e306131a;--accent:var(--color-gold-400);--accent-glow:#ffd5002e;--casa-green:var(--color-teal-500);--casa-sun:var(--color-gold-400);--success:var(--color-teal-600);--success-bg:var(--color-teal-100);--warning:var(--color-gold-700);--warning-bg:var(--color-gold-100);--danger:var(--color-coral-700);--danger-bg:var(--color-coral-100);--error:var(--danger);--info:var(--color-brand-600);--info-bg:var(--color-brand-100);--skill-reading:#e30613;--skill-listening:var(--color-brand-500);--skill-speaking:var(--color-gold-500);--skill-writing:var(--color-teal-500);--skill-grammar:var(--color-violet-500);--skill-vocabulary:#d96c2c;--skill-exam:var(--color-teal-700);--gradient-reading:linear-gradient(135deg, #ff5962 0%, #e30613 100%);--gradient-listening:linear-gradient(135deg, #39bdf4 0%, var(--color-brand-500) 100%);--gradient-speaking:linear-gradient(135deg, #ffe47a 0%, var(--color-gold-500) 100%);--gradient-writing:linear-gradient(135deg, #43bd8b 0%, var(--color-teal-700) 100%);--gradient-grammar:linear-gradient(135deg, #9b73ce 0%, var(--color-violet-700) 100%);--gradient-vocabulary:linear-gradient(135deg, #f08b4a 0%, #d96c2c 100%);--gradient-exam:linear-gradient(135deg, #39bdf4 0%, var(--color-brand-700) 100%);--gradient-brand:linear-gradient(135deg, #086887 0%, #079fc0 58%, #20a17e 100%);--gradient-brand-deep:linear-gradient(135deg, #21364d 0%, #185f78 58%, #1d9d9b 100%);--gradient-warm:linear-gradient(135deg, var(--color-gold-500), var(--color-coral-500));--gradient-violet:linear-gradient(135deg, #675dc7, #25b7bc);--radius-xs:6px;--radius-sm:10px;--radius-md:14px;--radius-lg:20px;--radius-xl:28px;--radius-full:9999px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--control-height:44px;--control-height-lg:56px;--shadow-sm:0 2px 8px #24333b0f;--shadow-md:0 10px 28px #24333b17;--shadow-lg:0 22px 54px #24333b21;--shadow-primary:0 12px 28px #009fe333;--shadow-accent:0 12px 28px #087da824;--transition-fast:.16s cubic-bezier(.16, 1, .3, 1);--transition-normal:.3s cubic-bezier(.16, 1, .3, 1)}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--bg-primary);width:100%;height:100%;color:var(--text-primary);font-family:var(--font-sans);font-size:var(--font-size-md);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;letter-spacing:0;line-height:1.5;overflow-x:hidden}body{flex-direction:column;display:flex}a{color:inherit;text-decoration:none}button,input,select,textarea{font-family:inherit}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:var(--weight-bold);letter-spacing:0;text-wrap:balance;line-height:1.12}p{text-wrap:pretty}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,[role=button]{min-height:var(--control-height)}button:disabled,[aria-disabled=true]{cursor:not-allowed;opacity:.62}:where(a,button,input,select,textarea,[tabindex]):focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{border-radius:var(--radius-full);background:#2a251f2e}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes pulse-glow{0%,to{box-shadow:0 0 15px #009fe31a}50%{box-shadow:0 0 25px #009fe338}}@keyframes slide-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes scale-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.glass-panel{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.gradient-text{background:linear-gradient(135deg, var(--text-primary) 30%, var(--primary) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text}.glow-btn{background:var(--primary);color:var(--text-on-color);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--weight-bold);cursor:pointer;box-shadow:var(--shadow-primary);transition:background var(--transition-fast), transform var(--transition-fast), box-shadow var(--transition-fast);border:none;padding:11px 18px;line-height:1}.glow-btn:hover{background:var(--primary-hover);color:#fff;transform:translateY(-2px);box-shadow:0 14px 28px #009fe338}.glow-btn:active{transform:translateY(0)}.icon-btn{width:var(--control-height);height:var(--control-height);border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-secondary);color:var(--text-secondary);cursor:pointer;transition:color var(--transition-fast), border-color var(--transition-fast), background var(--transition-fast);justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover{color:var(--text-primary);border-color:var(--border-color-active);background:var(--bg-wash)}
