.legal-page{max-width:900px;margin:0 auto;padding:8rem 2rem 3rem}.legal-header{text-align:center;margin-bottom:3rem;padding-bottom:2rem;border-bottom:2px solid var(--taupe-line, #e5e7eb)}.legal-header h1{font-size:2.5rem;font-weight:800;margin-bottom:.5rem;color:var(--ink, #1a1a2e);letter-spacing:-.02em}.legal-header .last-updated{font-size:.9rem;color:var(--ink-muted, #6b7280)}.legal-section{margin-bottom:2.5rem}.legal-section h2{font-size:1.5rem;font-weight:700;margin-bottom:1rem;color:var(--color-primary, #6366f1);padding-bottom:.5rem;border-bottom:1px solid var(--taupe-line, #e5e7eb)}.legal-section p{font-size:1rem;line-height:1.8;color:var(--ink-muted, #374151);margin-bottom:1rem}.legal-section ul{margin-left:1.5rem;margin-bottom:1rem}.legal-section li{font-size:1rem;line-height:1.8;color:var(--ink-muted, #374151);margin-bottom:.5rem}.legal-highlight{background:var(--primary-glow, rgba(99, 102, 241, .08));border-left:4px solid var(--color-primary, #6366f1);padding:1rem 1.5rem;border-radius:0 8px 8px 0;margin:1.5rem 0}.legal-highlight p{margin:0;font-weight:500}.legal-footer{margin-top:4rem;padding-top:2rem;border-top:2px solid var(--taupe-line, #e5e7eb);text-align:center;color:var(--ink-muted, #6b7280);font-size:.9rem}.contact-page-wrapper{position:relative;background:var(--bg-base, var(--paper));overflow:hidden;min-height:80vh;padding-top:6rem}.bg-accent-blob{position:absolute;width:400px;height:400px;border-radius:50%;filter:blur(100px);opacity:.15;z-index:1;pointer-events:none}.blob-1{top:-10%;left:-10%;background:var(--color-secondary, var(--amber))}.blob-2{bottom:-10%;right:-10%;background:#ec4899}.contact-container{max-width:1200px;margin:0 auto;padding:4rem 2rem;position:relative;z-index:2}.contact-header{text-align:center;margin-bottom:4rem}.contact-title{font-size:3.5rem;font-weight:900;margin-bottom:1.5rem;letter-spacing:-.02em;color:var(--ink)}.contact-subtitle{font-size:1.25rem;max-width:600px;margin:0 auto;opacity:.8;color:var(--ink-muted)}.text-gradient{background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-secondary, var(--amber)) 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:2rem;max-width:900px;margin:0 auto}.contact-card{background:var(--paper);border:1px solid var(--taupe-line);border-radius:32px;transition:all .4s cubic-bezier(.2,.8,.2,1);box-shadow:var(--shadow-soft, 0 4px 12px rgba(0, 0, 0, .05));text-decoration:none;color:inherit;overflow:hidden}.contact-card:hover{transform:translateY(-8px) scale(1.02);border-color:var(--color-secondary, var(--amber));box-shadow:0 20px 40px #0000001a}.card-inner{padding:40px;display:flex;flex-direction:column;align-items:center;text-align:center;position:relative;z-index:2}.icon-box{width:72px;height:72px;border-radius:20px;display:flex;align-items:center;justify-content:center;margin-bottom:24px;transition:transform .3s ease}.contact-card:hover .icon-box{transform:scale(1.1) rotate(5deg)}.bg-pink{background:#ec48991a;color:#ec4899}.bg-purple{background:#a855f71a;color:#a855f7}.bg-blue{background:#3b82f61a;color:#3b82f6}.bg-green{background:#22c55e1a;color:#22c55e}.text-pink{color:#ec4899}.text-purple{color:#a855f7}.text-blue{color:#3b82f6}.community-page-wrapper{position:relative;background:var(--bg-base, var(--paper));overflow:hidden;min-height:80vh;padding-top:6rem}.community-container{max-width:1200px;margin:0 auto;padding:4rem 2rem;position:relative;z-index:2}.community-header{text-align:center;margin-bottom:4rem}.community-title{font-size:3.5rem;font-weight:900;margin-bottom:1.5rem;letter-spacing:-.02em;color:var(--ink)}.community-subtitle{font-size:1.25rem;max-width:600px;margin:0 auto;opacity:.8;color:var(--ink-muted)}.community-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:2rem;max-width:900px;margin:0 auto 3rem}.community-card{background:var(--paper);border:1px solid var(--taupe-line);border-radius:32px;transition:all .4s cubic-bezier(.2,.8,.2,1);box-shadow:var(--shadow-soft, 0 4px 12px rgba(0, 0, 0, .05));text-decoration:none;color:inherit;overflow:hidden}.community-card:hover{transform:translateY(-8px) scale(1.02);border-color:var(--color-secondary, var(--amber));box-shadow:0 20px 40px #0000001a}.community-card:hover .icon-box{transform:scale(1.1) rotate(5deg)}.community-cta{margin-top:2rem}.btn-primary{display:inline-block;padding:1rem 2.5rem;background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-secondary, var(--amber)) 100%);color:#fff;border-radius:16px;font-weight:600;font-size:1.1rem;text-decoration:none;transition:all .3s ease;box-shadow:0 4px 12px #00000026}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 24px #0003}.learning-hub-page{max-width:1200px;margin:0 auto;padding:8rem 2rem 3rem}.learning-header{text-align:center;margin-bottom:3rem}.learning-title{font-size:2.5rem;margin-bottom:1rem;background:linear-gradient(135deg,#0a84ff,#5e5ce6);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.learning-subtitle{color:var(--ink-muted);font-size:1.2rem;max-width:600px;margin:0 auto}.learning-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2rem}.skill-card{border-top:4px solid;padding:1.5rem}.glass-panel{background:#ffffff0d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--taupe-line);border-radius:16px}.listening-card{border-color:#ffd60a}.reading-card{border-color:#30d158}.writing-card{border-color:#0a84ff}.speaking-card{border-color:#5e5ce6}.daily-tests-card{border-color:#ff9f0a}.skill-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem}.skill-icon{padding:10px;border-radius:12px}.listening-icon{background:#ffd60a1a;color:#ffd60a}.reading-icon{background:#30d1581a;color:#30d158}.writing-icon{background:#0a84ff1a;color:#0a84ff}.speaking-icon{background:#5e5ce61a;color:#5e5ce6}.daily-icon{background:#ff9f0a1a;color:#ff9f0a}.skill-header h2{margin:0;font-size:1.25rem;color:var(--ink)}.tips-list h4{margin-bottom:.5rem;color:var(--ink)}.tips-list ul{list-style:none;padding:0;color:var(--ink-muted)}.tips-list li{margin-bottom:.5rem}.listening-btn{border-color:#ffd60a;color:#ffd60a}.reading-btn{border-color:#30d158;color:#30d158}.writing-btn{border-color:#0a84ff;color:#0a84ff}.speaking-btn{border-color:#5e5ce6;color:#5e5ce6}.daily-btn{border-color:#ff9f0a;color:#ff9f0a}.scoring-info{margin-top:4rem;padding:2rem;background:var(--paper-warm, rgba(255, 255, 255, .05));border-radius:16px;border:1px solid var(--taupe-line)}.scoring-info h3{margin-bottom:1rem;color:var(--ink)}.scoring-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.scoring-item p{font-size:.9rem;color:var(--ink-muted);margin:.5rem 0 0}.c1-color{color:#30d158}.b2-color{color:#0a84ff}.b1-color{color:#ffd60a}.costs-page{padding-top:6rem}.costs-hero{padding:4rem 0 3rem;background:linear-gradient(135deg,var(--paper-warm, #f9fafb) 0%,var(--paper) 100%)}.costs-hero h1{font-size:2.5rem;font-weight:800;color:var(--ink);margin-bottom:1rem;line-height:1.2}.costs-hero p{font-size:1.125rem;color:var(--ink-muted);max-width:680px}.costs-section{padding:4rem 0}.costs-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;margin-top:2rem}.cost-card{background:var(--paper);border:1px solid var(--taupe-line);border-radius:16px;padding:1.5rem;transition:box-shadow .2s ease,transform .2s ease}.cost-card:hover{box-shadow:var(--shadow-md, 0 4px 12px rgba(0, 0, 0, .1));transform:translateY(-2px)}.cost-card-icon{width:48px;height:48px;background:var(--accent-light, rgba(99, 102, 241, .1));border-radius:12px;display:flex;align-items:center;justify-content:center;margin-bottom:1rem}.cost-card-icon svg{width:24px;height:24px;color:var(--color-primary, #6366f1)}.cost-card-title{font-size:1.125rem;font-weight:600;color:var(--ink);margin-bottom:.5rem}.cost-card-amount{font-size:1.875rem;font-weight:800;color:var(--color-primary, #6366f1);margin-bottom:.25rem}.cost-card-period{font-size:.875rem;color:var(--ink-muted);margin-bottom:1rem}.cost-card-desc{font-size:.9rem;color:var(--ink-muted);line-height:1.6}.total-box{background:linear-gradient(135deg,var(--color-primary) 0%,var(--terracotta-dim, #4f46e5) 100%);border-radius:24px;padding:2.5rem;color:#fff;margin-top:2.5rem;text-align:center}.total-box h2{font-size:1.25rem;font-weight:600;margin-bottom:1rem;opacity:.95}.total-amount{font-size:3.75rem;font-weight:800;line-height:1;margin-bottom:.5rem}.total-period{font-size:1.125rem;opacity:.9;margin-bottom:1.5rem}.total-breakdown{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem;max-width:800px;margin:0 auto;padding-top:1.5rem;border-top:1px solid rgba(255,255,255,.2)}.total-breakdown-item{text-align:center}.total-breakdown-label{font-size:.875rem;opacity:.85;margin-bottom:.25rem}.total-breakdown-value{font-size:1.25rem;font-weight:600}.info-box{background:var(--paper-warm, #f9fafb);border:1px solid var(--taupe-line);border-radius:16px;padding:1.5rem;margin-top:2rem}.info-box h3{font-size:1.125rem;font-weight:600;color:var(--ink);margin-bottom:.75rem}.info-box ul{list-style:none;padding-left:0}.info-box li{padding:.5rem 0 .5rem 1.5rem;position:relative;color:var(--ink-muted)}.info-box li:before{content:"✓";position:absolute;left:0;color:var(--color-primary, #6366f1);font-weight:700}.comparison-table{width:100%;border-collapse:collapse;margin-top:1rem;background:var(--paper);border-radius:12px;overflow:hidden;border:1px solid var(--taupe-line)}.comparison-table th,.comparison-table td{padding:1rem;text-align:left;border-bottom:1px solid var(--taupe-line)}.comparison-table th{background:var(--paper-warm, #f9fafb);font-weight:600;color:var(--ink)}.comparison-table td{color:var(--ink-muted)}.comparison-table tr:last-child td{border-bottom:none}.comparison-table tr:hover td{background:var(--paper-warm, #f9fafb)}.highlight-green{color:#059669;font-weight:600}.section-label{font-size:.875rem;font-weight:600;color:var(--color-primary, #6366f1);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.75rem}.cta-section{padding-bottom:5rem}.cta-title{font-size:1.875rem;font-weight:700;color:var(--ink);margin-bottom:1rem}.cta-desc{font-size:1.125rem;color:var(--ink-muted);margin:0 auto 1.5rem;max-width:600px}.text-center{text-align:center}.container{max-width:1200px;margin:0 auto;padding:0 2rem}@media(max-width:768px){.legal-page{padding:6rem 1rem 2rem}.legal-header h1{font-size:2rem}.legal-section h2{font-size:1.3rem}.contact-title{font-size:2.5rem}.card-inner{padding:2rem}.learning-hub-page{padding:6rem 1rem 2rem}.learning-title,.costs-hero h1{font-size:2rem}.total-amount{font-size:3rem}.total-breakdown{grid-template-columns:repeat(2,1fr)}.comparison-table{font-size:.875rem}.comparison-table th,.comparison-table td{padding:.75rem}.costs-grid{grid-template-columns:1fr}}:root{--terracotta: oklch(55% .15 255);--amber: oklch(70% .14 55);--ink: oklch(18% .01 260);--paper: oklch(99% .003 80);--taupe-line: oklch(88% .008 70);--terracotta-dim: oklch(48% .14 255);--ink-muted: oklch(48% .015 260);--ink-subtle: oklch(65% .01 260);--paper-warm: oklch(97% .006 80);--ink-surface: oklch(16% .012 260);--color-parchment: oklch(99% .003 80);--color-parchment-warm: oklch(97% .006 80);--color-parchment-deep: oklch(93% .01 80);--color-terracotta: oklch(55% .15 255);--color-terracotta-dark: oklch(48% .14 255);--color-terracotta-light:oklch(62% .12 255);--color-terracotta-ghost:oklch(96% .02 255);--color-terracotta-subtle:oklch(93% .035 255);--color-forest: oklch(18% .01 260);--color-forest-light: oklch(24% .012 260);--color-forest-muted: oklch(36% .015 260);--color-taupe-100: oklch(95% .006 70);--color-taupe-200: oklch(90% .007 70);--color-taupe-300: oklch(84% .008 70);--color-taupe-400: oklch(76% .008 68);--color-taupe-500: oklch(68% .01 65);--color-taupe-600: oklch(50% .015 60);--color-taupe-700: oklch(38% .015 60);--color-sage: oklch(58% .13 150);--color-sage-light: oklch(92% .06 150);--color-sage-ghost: oklch(58% .13 150 / .08);--color-warm-amber: oklch(70% .14 55);--color-warm-amber-light:oklch(95% .04 55);--color-warm-amber-ghost:oklch(70% .14 55 / .08);--color-soft-coral: oklch(65% .12 20);--color-primary: var(--color-terracotta);--color-primary-dark: var(--color-terracotta-dark);--color-primary-light: var(--color-terracotta-light);--color-primary-glow: var(--color-terracotta-subtle);--color-accent: var(--color-sage);--color-accent-dark: var(--color-forest-muted);--color-accent-light: var(--color-sage);--color-accent-glow: oklch(92% .06 150);--color-warm: var(--color-warm-amber);--color-warm-light: var(--color-warm-amber-light);--color-success: var(--color-sage);--color-warning: var(--color-warm-amber);--color-error: var(--color-soft-coral);--gradient-primary: linear-gradient(135deg, oklch(55% .15 255) 0%, oklch(48% .18 280) 100%);--gradient-hero: radial-gradient(ellipse at 50% 30%, oklch(55% .15 255 / .06) 0%, transparent 60%);--gradient-dark: linear-gradient(180deg, var(--color-parchment) 0%, var(--color-parchment-warm) 100%);--gradient-card: linear-gradient(135deg, oklch(100% 0 0 / .95) 0%, oklch(99% .003 80 / .98) 100%);--r-xs: 8px;--r-sm: 14px;--r-md: 22px;--r-lg: 32px;--r-xl: 48px;--r-pill: 9999px;--radius-sm: 14px;--radius-md: 22px;--radius-lg: 22px;--radius-xl: 32px;--radius-2xl: 32px;--radius-full: 9999px;--text-xs: .8125rem;--text-sm: .9375rem;--text-base: 1.0625rem;--text-lg: 1.25rem;--text-xl: 1.5rem;--text-2xl: 2rem;--text-3xl: 2.75rem;--text-4xl: 2.25rem;--text-5xl: 2.75rem;--text-6xl: 3.5rem;--text-hero: 6rem;--spring-snap: cubic-bezier(.34, 1.56, .64, 1);--spring-smooth: cubic-bezier(.16, 1, .3, 1);--spring-gentle: cubic-bezier(.22, 1, .36, 1);--t-snap: .2s var(--spring-snap);--t-smooth: .38s var(--spring-smooth);--t-gentle: .6s var(--spring-gentle);--transition-fast: .15s var(--spring-snap);--transition-base: .25s var(--spring-smooth);--transition-slow: .4s var(--spring-smooth);--shadow-sm: 0 1px 3px rgb(0 0 0 / .05);--shadow-md: 0 2px 10px rgb(0 0 0 / .07);--shadow-lg: 0 4px 20px rgb(0 0 0 / .08);--shadow-xl: 0 8px 32px rgb(0 0 0 / .09);--shadow-2xl: 0 12px 48px rgb(0 0 0 / .1);--shadow-glow: 0 4px 16px oklch(55% .15 255 / .22);--shadow-glass: inset 0 1px 0 rgba(255,255,255,.6), 0 2px 8px rgb(0 0 0 / .06);--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-7: 1.75rem;--space-8: 2rem;--space-9: 2.25rem;--space-10: 2.5rem;--space-11: 2.75rem;--space-12: 3rem;--space-16: 4rem;--space-20: 5rem;--space-24: 6rem;--space-32: 8rem;--max-width: 1280px;--nav-height: 64px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;-webkit-text-size-adjust:100%;background-color:var(--paper);overflow-x:hidden}html:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:9999;opacity:.015;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");background-size:256px 256px}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Helvetica Neue,sans-serif;font-size:var(--text-base);line-height:1.7;color:var(--ink-muted);background-color:var(--paper);overflow-x:hidden;font-weight:400;font-variation-settings:"opsz" auto}#root{min-height:100vh;background:var(--paper)}.app{width:100%;min-height:100vh}main{display:block;position:relative;z-index:1}img{max-width:100%;height:auto;display:block}img.emoji-img{display:inline-block!important;height:auto;max-width:none;vertical-align:middle}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer;border:none;background:none}ul,ol{list-style:none}.container{width:100%;max-width:var(--max-width);margin:0 auto;padding:0 var(--space-6)}.section{padding:var(--space-24) 0;position:relative;z-index:1;min-height:100px}.section-bg-default{background:var(--paper)}.section-bg-light{background:var(--paper-warm)}.section-bg-dark{background:var(--paper-warm);color:var(--ink)}.section-bg-gradient{background:var(--paper)}.section-bg-ink{background:var(--ink-surface);color:var(--paper)}.section-title{font-size:var(--text-4xl);font-weight:500;text-align:center;margin-bottom:var(--space-4);line-height:1.15;letter-spacing:-.025em;color:var(--ink)}.section-subtitle{font-size:var(--text-lg);text-align:center;color:var(--ink-muted);max-width:640px;margin:0 auto var(--space-16);line-height:1.6}.section-bg-ink .section-title{color:var(--paper)}.section-bg-ink .section-subtitle{color:#b2ada7}.glass{background:#ffffffa6;background:color-mix(in oklch,white 65%,transparent);backdrop-filter:blur(40px) saturate(180%);-webkit-backdrop-filter:blur(40px) saturate(180%);border:1px solid rgba(255,255,255,.8);border:1px solid color-mix(in oklch,white 80%,transparent);box-shadow:inset 0 1px #fff9,var(--shadow-md)}@supports not (backdrop-filter: blur(1px)){.glass{background:#faf8f5f7;border:1px solid var(--taupe-line)}}.glass-tinted{background:#c2704ee0;background:color-mix(in oklch,var(--terracotta) 88%,transparent);backdrop-filter:blur(20px) saturate(150%);-webkit-backdrop-filter:blur(20px) saturate(150%);border:1px solid rgba(255,255,255,.2);box-shadow:inset 0 1px #ffffff40,0 4px 16px #c26b4c47}.glass-dark{background:#221811bf;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border:1px solid rgba(255,255,255,.1);box-shadow:var(--shadow-glass)}.glass-subtle{background:#ffffff80;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.18)}.text-gradient{background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.rounded-liquid{border-radius:var(--r-md);transition:all var(--t-smooth)}.rounded-liquid:hover{border-radius:var(--r-lg);box-shadow:var(--shadow-lg);transform:translateY(-2px)}.card-liquid{background:linear-gradient(135deg,#ffffffe6,#faf8f5f2);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.5);box-shadow:0 4px 16px #0000000f,inset 0 1px #fffc;border-radius:var(--r-md);transition:all var(--t-smooth)}.card-liquid:hover{box-shadow:0 8px 32px #00000017,inset 0 1px #fff;transform:translateY(-4px)}.reveal{opacity:1;transform:translateY(0);transition:opacity .6s var(--spring-smooth),transform .6s var(--spring-smooth)}.reveal.active{opacity:1;transform:translateY(0)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-32px)}to{opacity:1;transform:translate(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(32px)}to{opacity:1;transform:translate(0)}}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.animate-fade-in-up{animation:fadeInUp .6s var(--spring-smooth) forwards}.animate-fade-in{animation:fadeIn .6s var(--spring-smooth) forwards}.animate-slide-in-left{animation:slideInLeft .6s var(--spring-smooth) forwards}.animate-slide-in-right{animation:slideInRight .6s var(--spring-smooth) forwards}:focus-visible{outline:2px solid var(--terracotta);outline-offset:2px;border-radius:var(--r-xs)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}html:after{display:none}}@media(max-width:768px){.container{padding:0 var(--space-4)}.section{padding:var(--space-16) 0}.section-title{font-size:var(--text-3xl)}.section-subtitle{font-size:var(--text-base);margin-bottom:var(--space-10)}}html,body,#root{transition:background-color .28s var(--spring-smooth),color .28s var(--spring-smooth)}[data-theme=dark]{--paper: oklch(13% .01 260);--paper-warm: oklch(16% .012 260);--ink: oklch(94% .004 260);--ink-muted: oklch(70% .008 260);--ink-subtle: oklch(48% .01 260);--taupe-line: oklch(26% .01 260);--ink-surface: oklch(9% .008 260);--color-parchment: oklch(94% .004 260);--color-parchment-warm: oklch(16% .012 260);--color-parchment-deep: oklch(19% .012 260);--color-forest: oklch(94% .004 260);--color-forest-light: oklch(85% .006 260);--color-forest-muted: oklch(70% .008 260);--color-taupe-100: oklch(19% .012 260);--color-taupe-200: oklch(26% .01 260);--color-taupe-300: oklch(34% .01 260);--color-taupe-400: oklch(46% .011 260);--color-taupe-500: oklch(60% .01 260);--color-taupe-600: oklch(73% .008 260);--color-taupe-700: oklch(84% .006 260);--color-terracotta-ghost:oklch(55% .15 255 / .18);--color-terracotta-subtle:oklch(55% .15 255 / .25);--color-sage-ghost: oklch(58% .13 150 / .15);--color-warm-amber-ghost:oklch(70% .14 55 / .15);--shadow-sm: 0 1px 3px rgb(0 0 0 / .3);--shadow-md: 0 2px 10px rgb(0 0 0 / .4);--shadow-lg: 0 4px 20px rgb(0 0 0 / .5);--shadow-xl: 0 8px 32px rgb(0 0 0 / .55)}[data-theme=dark] .glass{background:#ffffff0f;background:color-mix(in oklch,white 6%,transparent);border:1px solid oklch(100% 0 0 / .1);box-shadow:inset 0 1px #ffffff14,var(--shadow-md)}@supports not (backdrop-filter: blur(1px)){[data-theme=dark] .glass{background:#16100cf2;border:1px solid var(--taupe-line)}}[data-theme=dark] .pricing-card,[data-theme=dark] .feature-card,[data-theme=dark] .faq-item,[data-theme=dark] .contact-card,[data-theme=dark] .pillar-card{background:#ffffff0a;background:color-mix(in oklch,white 4%,transparent);border-color:#ffffff1a;box-shadow:inset 0 1px #ffffff0f,var(--shadow-sm)}[data-theme=dark] .pricing-card:hover,[data-theme=dark] .feature-card:hover,[data-theme=dark] .contact-card:hover{box-shadow:inset 0 1px #ffffff1a,var(--shadow-md)}[data-theme=dark] .pricing-card--recommended{border-color:var(--terracotta)}[data-theme=dark] .pricing-badge{background:var(--paper)}[data-theme=dark] .feature-demo{background:#ffffff08;border-color:#ffffff14}[data-theme=dark] .schools-card,[data-theme=dark] .billing-toggle{background:#ffffff0a;border-color:#ffffff1a}[data-theme=dark] .billing-opt--active{background:#ffffff1a}[data-theme=dark] .ladder-card{background:#ffffff0a;border-color:#ffffff1a}[data-theme=dark] .grammar-tooltip,[data-theme=dark] .def-word:after{background:#edebe7;color:#0d0805}[data-theme=dark] .footer{background:var(--paper);border-top-color:var(--taupe-line)}[data-theme=dark] .lang-toggle{background:#ffffff0f;border-color:#ffffff1a}[data-theme=dark] .lang-opt--active{background:#ffffff1f;color:var(--ink)}[data-theme=dark] .pricing-cta--secondary{background:#ffffff0a}[data-theme=dark] html:after{opacity:.025;mix-blend-mode:screen}[data-theme=dark] .settings-page,[data-theme=dark] .profile-page,[data-theme=dark] .estimate-page,[data-theme=dark] .enterprise-plan-page,[data-theme=dark] .writing-hub,[data-theme=dark] .speaking-hub,[data-theme=dark] .reading-hub,[data-theme=dark] .listening-hub,[data-theme=dark] .writing-test-page,[data-theme=dark] .speaking-test-page,[data-theme=dark] .reading-test-page,[data-theme=dark] .listening-test-page,[data-theme=dark] .writing-result-page,[data-theme=dark] .speaking-result-page,[data-theme=dark] .reading-result-page,[data-theme=dark] .listening-result-page,[data-theme=dark] .full-test-page,[data-theme=dark] .full-test-warning,[data-theme=dark] .full-test-break,[data-theme=dark] .full-test-banned,[data-theme=dark] .full-test-result{background:var(--paper);color:var(--ink)}[data-theme=dark] .settings-header,[data-theme=dark] .profile-header,[data-theme=dark] .hub-header,[data-theme=dark] .test-header{background:var(--paper);border-color:var(--taupe-line)}[data-theme=dark] .settings-card,[data-theme=dark] .profile-section,[data-theme=dark] .profile-card,[data-theme=dark] .hub-card,[data-theme=dark] .test-card,[data-theme=dark] .result-card,[data-theme=dark] .info-card,[data-theme=dark] .stat-card,[data-theme=dark] .skill-card,[data-theme=dark] .question-card,[data-theme=dark] .answer-card,[data-theme=dark] .summary-card{background:#1b1510;border-color:#ffffff1f;box-shadow:0 4px 16px #0000004d;color:var(--ink)}[data-theme=dark] [style*="background: white"],[data-theme=dark] [style*="background:#fff"],[data-theme=dark] [style*="background: #fff"]{background:#1b1510!important}[data-theme=dark] input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]),[data-theme=dark] textarea,[data-theme=dark] select{background:#16100c;color:var(--ink);border-color:var(--taupe-line)}[data-theme=dark] input::placeholder,[data-theme=dark] textarea::placeholder{color:var(--ink-subtle)}[data-theme=dark] input:focus,[data-theme=dark] textarea:focus,[data-theme=dark] select:focus{border-color:var(--terracotta);box-shadow:0 0 0 3px #2971c633}[data-theme=dark] .modal,[data-theme=dark] .modal-content,[data-theme=dark] .dialog{background:#16100c;color:var(--ink);border-color:var(--taupe-line)}[data-theme=dark] .toast,[data-theme=dark] .notification{background:#1b1510;color:var(--ink);border-color:var(--taupe-line)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:600;border-radius:var(--radius-md, 12px);transition:all .2s ease;cursor:pointer;border:none}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent, #0a0a0a);color:var(--white, #ffffff)}.btn-primary:hover:not(:disabled){background:var(--gray-800, #262626)}.btn-lg{padding:14px 24px;font-size:var(--text-lg, 18px)}.btn-block{width:100%;display:flex}.loader{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-12, 48px)}.spinner{width:48px;height:48px;border:4px solid var(--gray-100, #f5f5f5);border-top-color:var(--accent, #0a0a0a);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:var(--space-6, 24px)}.auth-error{background:#dc26260d;border:1px solid rgba(220,38,38,.2);color:#b91c1c;border-radius:var(--radius-md, 12px);padding:12px 16px;font-size:14px;text-align:center}.test-page,.writing-test-page,.reading-test-page,.listening-test-page,.speaking-test-page,.result-page,.speaking-result-page,.reading-result-page,.listening-result-page{min-height:100vh;background:var(--paper);color:var(--ink-muted);font-family:Inter,-apple-system,BlinkMacSystemFont,Helvetica Neue,sans-serif;font-size:var(--text-base);line-height:1.7}.test-loading,.loading-state,.speaking-test-loading,.result-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:var(--space-4);color:var(--ink-muted)}.test-error,.error-state,.speaking-test-error,.result-error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:var(--space-6);text-align:center;padding:var(--space-8)}.error-icon{font-size:2.5rem;opacity:.7}.spinner{width:32px;height:32px;border:3px solid var(--taupe-line);border-top-color:var(--terracotta);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.btn,.btn-start,.btn-start-test,.btn-submit,.btn-back,.btn-retry,.btn-secondary,.btn-primary,.btn-outline{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:12px 24px;border-radius:var(--r-md);font-size:var(--text-base);font-weight:500;font-family:inherit;cursor:pointer;border:none;transition:all var(--t-snap);text-decoration:none;white-space:nowrap}.btn-primary,.btn-start,.btn-start-test,.btn-submit{background:var(--terracotta);color:#fff}.btn-primary:hover,.btn-start:hover,.btn-start-test:hover,.btn-submit:hover{background:var(--terracotta-dim);transform:translateY(-1px)}.btn-primary:active,.btn-start:active,.btn-start-test:active,.btn-submit:active{transform:translateY(0) scale(.97)}.btn-primary:disabled,.btn-start:disabled,.btn-start-test:disabled,.btn-submit:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-outline,.btn-back,.btn-retry,.btn-secondary{background:transparent;color:var(--ink-muted);border:1px solid var(--taupe-line)}.btn-outline:hover,.btn-back:hover,.btn-retry:hover,.btn-secondary:hover{border-color:var(--ink-subtle);color:var(--ink)}.btn-lg{padding:14px 28px;font-size:var(--text-lg)}.btn-sm{padding:8px 16px;font-size:var(--text-sm)}.start-overlay{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:80vh;gap:var(--space-6);text-align:center;padding:var(--space-8)}.start-icon{font-size:3.5rem;margin-bottom:var(--space-2)}.start-overlay h1{font-size:var(--text-3xl);font-weight:600;color:var(--ink);letter-spacing:-.025em;line-height:1.2}.start-subtitle{font-size:var(--text-lg);color:var(--ink-muted);max-width:480px;line-height:1.6}.draft-notice{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-6);background:var(--color-terracotta-ghost);border:1px solid var(--color-terracotta-subtle);border-radius:var(--r-md);font-size:var(--text-sm);color:var(--terracotta-dim)}.draft-icon{font-size:1.25rem}.test-timer,.timer-box{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.timer-label{font-size:var(--text-xs);color:var(--ink-subtle);text-transform:uppercase;letter-spacing:.04em}.timer-display{font-size:var(--text-2xl);font-weight:600;font-variant-numeric:tabular-nums;color:var(--ink);letter-spacing:-.02em}.timer-display.warning,.timer-display.timer-warning{color:var(--color-warm-amber);animation:pulse-timer 1.5s ease-in-out infinite}@keyframes pulse-timer{0%,to{opacity:1}50%{opacity:.6}}.test-header,.reading-test-header,.listening-test-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-6);padding:var(--space-6) 0;border-bottom:1px solid var(--taupe-line);margin-bottom:var(--space-8);flex-wrap:wrap}.test-title h1,.header-left h1{font-size:var(--text-2xl);font-weight:600;color:var(--ink);letter-spacing:-.02em;margin:0}.test-subtitle,.header-meta{font-size:var(--text-sm);color:var(--ink-subtle)}.question-card,.card-liquid{background:linear-gradient(135deg,#ffffffe6,#faf8f5f2);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.5);box-shadow:0 4px 16px #0000000f,inset 0 1px #fffc;border-radius:var(--r-md);padding:var(--space-8);transition:all var(--t-smooth)}.question-card:hover{box-shadow:0 8px 32px #00000017,inset 0 1px #fff}.topic-box{padding:var(--space-6);background:var(--paper-warm);border:1px solid var(--taupe-line);border-radius:var(--r-sm);margin-bottom:var(--space-5);font-size:var(--text-base);line-height:1.7;color:var(--ink-muted)}.topic-informal{border-left:3px solid var(--color-warm-amber)}.topic-formal{border-left:3px solid var(--color-sage)}.topic-essay{border-left:3px solid var(--terracotta)}textarea,.text-input,input[type=text]{width:100%;padding:var(--space-4);border:1px solid var(--taupe-line);border-radius:var(--r-sm);background:var(--paper);color:var(--ink);font-family:inherit;font-size:var(--text-base);line-height:1.7;resize:vertical;transition:border-color var(--t-snap),box-shadow var(--t-snap)}textarea:focus,.text-input:focus,input[type=text]:focus{outline:none;border-color:var(--terracotta);box-shadow:0 0 0 3px #c26b4c26}textarea::placeholder,.text-input::placeholder{color:var(--ink-subtle)}.label-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-3);flex-wrap:wrap;gap:var(--space-3)}.label-row label{font-size:var(--text-sm);font-weight:500;color:var(--ink)}.word-hint{font-size:var(--text-xs);color:var(--ink-subtle);font-weight:400}.btn-ocr{display:inline-flex;align-items:center;gap:var(--space-2);padding:6px 14px;border:1px solid var(--taupe-line);border-radius:var(--r-sm);background:var(--paper);color:var(--ink-muted);font-size:var(--text-sm);font-weight:500;cursor:pointer;transition:all var(--t-snap)}.btn-ocr:hover{border-color:var(--ink-subtle);color:var(--ink)}.btn-ocr:disabled{opacity:.5;cursor:not-allowed}.btn-ocr.loading .spinner-small{display:inline-block}.spinner-small{display:none;width:14px;height:14px;border:2px solid var(--taupe-line);border-top-color:var(--terracotta);border-radius:50%;animation:spin .6s linear infinite}.ocr-error-banner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-3) var(--space-5);background:#ce6f7014;border:1px solid oklch(65% .12 20 / .2);border-radius:var(--r-sm);color:var(--color-soft-coral);font-size:var(--text-sm);margin-bottom:var(--space-5)}.banner-dismiss{background:none;border:none;color:inherit;font-size:1.25rem;cursor:pointer;padding:0 var(--space-2);opacity:.6;transition:opacity var(--t-snap)}.banner-dismiss:hover{opacity:1}.submit-section{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);padding:var(--space-8) 0}.submit-hint{font-size:var(--text-sm);color:var(--ink-subtle)}.submit-bar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-6);padding:var(--space-5) var(--space-6);background:var(--paper-warm);border:1px solid var(--taupe-line);border-radius:var(--r-md);margin-top:var(--space-8);flex-wrap:wrap}.answered-indicator{font-size:var(--text-sm);color:var(--ink-muted)}.answered-count{font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}.answered-total{color:var(--ink-subtle)}.result-container,.reading-result-container,.listening-result-container{max-width:720px;margin:0 auto;padding:var(--space-12) var(--space-6)}.result-header{text-align:center;margin-bottom:var(--space-10)}.result-header h1{font-size:var(--text-3xl);font-weight:600;color:var(--ink);letter-spacing:-.025em;margin:0 0 var(--space-3)}.result-header p{font-size:var(--text-lg);color:var(--ink-muted)}.result-icon,.result-icon-large{display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;background:var(--color-terracotta-ghost);border-radius:var(--r-md);margin-bottom:var(--space-5)}.result-icon-large{width:80px;height:80px}.score-card{background:linear-gradient(135deg,#ffffffe6,#faf8f5f2);border:1px solid rgba(255,255,255,.5);box-shadow:0 4px 16px #0000000f,inset 0 1px #fffc;border-radius:var(--r-md);padding:var(--space-8);text-align:center;margin-bottom:var(--space-8)}.score-display{font-size:var(--text-4xl);font-weight:700;letter-spacing:-.03em;margin:var(--space-3) 0}.score-label{font-size:var(--text-sm);color:var(--ink-subtle);text-transform:uppercase;letter-spacing:.04em}.cefr-badge{display:inline-flex;align-items:center;gap:var(--space-2);padding:6px 16px;background:var(--terracotta);color:#fff;border-radius:var(--r-pill);font-size:var(--text-sm);font-weight:600;margin-top:var(--space-3)}.result-actions{display:flex;gap:var(--space-4);justify-content:center;flex-wrap:wrap;margin-top:var(--space-10)}.back-link{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--ink-muted);text-decoration:none;transition:color var(--t-snap)}.back-link:hover{color:var(--ink)}.feedback-sections{display:flex;flex-direction:column;gap:var(--space-6);margin-top:var(--space-8)}.feedback-card{background:var(--paper-warm);border:1px solid var(--taupe-line);border-radius:var(--r-md);padding:var(--space-6)}.feedback-title{font-size:var(--text-lg);font-weight:600;color:var(--ink);margin:0 0 var(--space-4);letter-spacing:-.01em}.feedback-content{font-size:var(--text-base);line-height:1.7;color:var(--ink-muted)}.feedback-paragraph{margin:0 0 var(--space-3)}.feedback-list-item{padding-left:var(--space-4);margin-bottom:var(--space-2);position:relative}.feedback-list-item:before{content:"·";position:absolute;left:0;color:var(--terracotta);font-weight:700}.bonus-banner{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-5) var(--space-6);background:#64946b14;border:1px solid oklch(62% .08 148 / .2);border-radius:var(--r-md);margin-bottom:var(--space-8)}.bonus-icon{font-size:1.5rem}.bonus-title{font-size:var(--text-sm);font-weight:600;color:var(--color-sage)}.bonus-message{font-size:var(--text-sm);color:var(--ink-muted)}.bonus-points{margin-left:auto;font-size:var(--text-xl);font-weight:700;color:var(--color-sage)}.score-circle{position:relative;width:120px;height:120px;margin:0 auto var(--space-6)}.score-ring{width:100%;height:100%;transform:rotate(-90deg)}.score-ring-bg{fill:none;stroke:var(--taupe-line);stroke-width:6}.score-ring-progress{fill:none;stroke-width:6;stroke-linecap:round;transition:stroke-dasharray .8s var(--spring-smooth)}.score-text{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.score-number{font-size:var(--text-2xl);font-weight:700;color:var(--ink);letter-spacing:-.02em}.score-percent{font-size:var(--text-sm);color:var(--ink-subtle)}.score-message{text-align:center;font-size:var(--text-xl);font-weight:600;margin-bottom:var(--space-6)}.tips-card,.tips-section{background:var(--paper-warm);border:1px solid var(--taupe-line);border-radius:var(--r-md);padding:var(--space-6);margin-top:var(--space-8)}.tips-card h3,.tips-section h3{font-size:var(--text-lg);font-weight:600;color:var(--ink);margin:0 0 var(--space-4)}.tips-card ul,.tips-section ul{list-style:none;padding:0;margin:0}.tips-card li,.tips-section li{padding:var(--space-2) 0 var(--space-2) var(--space-5);position:relative;font-size:var(--text-sm);color:var(--ink-muted);line-height:1.6}.tips-card li:before,.tips-section li:before{content:"→";position:absolute;left:0;color:var(--terracotta)}.part-badge{display:inline-flex;align-items:center;padding:4px 12px;background:var(--color-terracotta-ghost);color:var(--terracotta);border-radius:var(--r-pill);font-size:var(--text-xs);font-weight:600;letter-spacing:.04em;text-transform:uppercase;margin-bottom:var(--space-4)}.part-title{font-size:var(--text-xl);font-weight:600;color:var(--ink);letter-spacing:-.015em;margin:0 0 var(--space-5)}.part-description{font-size:var(--text-sm);color:var(--ink-subtle);margin-bottom:var(--space-6);line-height:1.6}.question-block{padding:var(--space-5);background:var(--paper-warm);border:1px solid var(--taupe-line);border-radius:var(--r-sm);margin-bottom:var(--space-4);transition:border-color var(--t-snap)}.question-block:hover{border-color:var(--ink-subtle)}.question-block.answered{border-color:var(--color-sage);background:#64946b0d}.question-header{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-4)}.question-number{font-size:var(--text-xs);font-weight:600;color:var(--terracotta);text-transform:uppercase;letter-spacing:.04em}.question-prompt{font-size:var(--text-base);color:var(--ink);line-height:1.6;margin:0}.options-grid{display:flex;flex-wrap:wrap;gap:var(--space-2)}.option-btn{padding:8px 16px;border:1px solid var(--taupe-line);border-radius:var(--r-sm);background:var(--paper);color:var(--ink-muted);font-size:var(--text-sm);font-weight:500;cursor:pointer;transition:all var(--t-snap)}.option-btn:hover{border-color:var(--ink-subtle);color:var(--ink)}.option-btn.selected{background:var(--terracotta);border-color:var(--terracotta);color:#fff}.radio-options{display:flex;flex-direction:column;gap:var(--space-3)}.radio-label{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:1px solid var(--taupe-line);border-radius:var(--r-sm);cursor:pointer;transition:all var(--t-snap);font-size:var(--text-sm);color:var(--ink-muted)}.radio-label:hover{border-color:var(--ink-subtle);background:var(--paper-warm)}.radio-label input[type=radio]{margin-top:2px;accent-color:var(--terracotta)}.radio-label:has(input:checked){border-color:var(--terracotta);background:var(--color-terracotta-ghost);color:var(--ink)}.choice-key{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;background:var(--paper-warm);border:1px solid var(--taupe-line);border-radius:var(--r-xs);font-size:var(--text-xs);font-weight:600;color:var(--ink-muted);flex-shrink:0}.answered-pill{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;background:var(--color-sage);color:#fff;border-radius:50%;flex-shrink:0}.input-hint{font-size:var(--text-xs);color:var(--ink-subtle);margin-top:var(--space-2)}.confirm-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--space-6);animation:fadeIn .2s var(--spring-smooth)}.confirm-modal{background:var(--paper);border:1px solid var(--taupe-line);border-radius:var(--r-lg);padding:var(--space-8);max-width:420px;width:100%;box-shadow:var(--shadow-xl);animation:fadeInUp .25s var(--spring-smooth)}.confirm-modal h3{font-size:var(--text-xl);font-weight:600;color:var(--ink);margin:0 0 var(--space-3)}.confirm-modal p{font-size:var(--text-base);color:var(--ink-muted);margin:0 0 var(--space-6);line-height:1.6}.confirm-actions{display:flex;gap:var(--space-3);justify-content:flex-end}.fs-hint{padding:var(--space-3) var(--space-5);background:var(--paper-warm);border:1px solid var(--taupe-line);border-radius:var(--r-sm);font-size:var(--text-sm);color:var(--ink-muted);margin-bottom:var(--space-6);text-align:center}.link-button{background:none;border:none;color:var(--terracotta);font-weight:500;cursor:pointer;text-decoration:underline;font-family:inherit;font-size:inherit}.submit-error-banner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-3) var(--space-5);background:#ce6f7014;border:1px solid oklch(65% .12 20 / .2);border-radius:var(--r-sm);color:var(--color-soft-coral);font-size:var(--text-sm);margin-bottom:var(--space-5)}.resume-card{background:var(--paper-warm);border:1px solid var(--taupe-line);border-radius:var(--r-md);padding:var(--space-6);margin-top:var(--space-6);text-align:center}.resume-card p{font-size:var(--text-base);color:var(--ink-muted);margin:0 0 var(--space-5)}.resume-actions{display:flex;gap:var(--space-3);justify-content:center;flex-wrap:wrap}[data-theme=dark] .question-card,[data-theme=dark] .score-card,[data-theme=dark] .feedback-card,[data-theme=dark] .tips-card,[data-theme=dark] .tips-section,[data-theme=dark] .question-block,[data-theme=dark] .resume-card,[data-theme=dark] .confirm-modal{background:#ffffff0a;background:color-mix(in oklch,white 4%,transparent);border-color:#ffffff1a;box-shadow:inset 0 1px #ffffff0f,var(--shadow-sm)}[data-theme=dark] .topic-box{background:#ffffff08;border-color:#ffffff14}[data-theme=dark] textarea,[data-theme=dark] .text-input,[data-theme=dark] input[type=text],[data-theme=dark] .option-btn,[data-theme=dark] .radio-label{background:#16100c;border-color:var(--taupe-line);color:var(--ink)}[data-theme=dark] .radio-label:has(input:checked){background:#c26b4c26;border-color:var(--terracotta)}[data-theme=dark] .option-btn.selected{background:var(--terracotta);border-color:var(--terracotta)}[data-theme=dark] .submit-bar,[data-theme=dark] .fs-hint{background:#ffffff08;border-color:#ffffff14}[data-theme=dark] .draft-notice{background:#c26b4c1f;border-color:#c26b4c33}[data-theme=dark] .ocr-error-banner,[data-theme=dark] .submit-error-banner{background:#ce6f701f;border-color:#ce6f7040}[data-theme=dark] .bonus-banner{background:#64946b1f;border-color:#64946b40}[data-theme=dark] .confirm-modal-backdrop{background:#0009}.test-session{display:flex;flex-direction:column;flex:1;min-height:0;height:100%;max-height:100%;overflow:hidden;background:var(--paper)}.test-session-toolbar{flex-shrink:0;z-index:30;background:var(--paper-warm);border-bottom:1px solid var(--taupe-line);box-shadow:var(--shadow-sm)}.test-session-toolbar-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-3) var(--space-5);flex-wrap:wrap}.test-session-toolbar-title h1{font-size:var(--text-lg);font-weight:600;color:var(--ink);margin:0;letter-spacing:-.02em}.test-session-toolbar-meta{font-size:var(--text-xs);color:var(--ink-subtle);font-weight:500}.test-session-timer{text-align:center;padding:var(--space-2) var(--space-4);border-radius:var(--r-sm);border:1px solid var(--taupe-line);background:var(--paper);min-width:110px}.test-session-timer .timer-label{font-size:.65rem;margin-bottom:2px}.test-session-timer .timer-display{font-size:var(--text-xl)}.test-session-progress-row{display:flex;align-items:center;gap:var(--space-4);padding:0 var(--space-5) var(--space-3)}.test-session-progress-bar{flex:1;height:6px;background:var(--taupe-line);border-radius:var(--r-pill);overflow:hidden}.test-session-progress-fill{height:100%;border-radius:var(--r-pill);transition:width .35s var(--spring-smooth)}.reading-test-page .test-session-progress-fill{background:linear-gradient(90deg,var(--color-sage),oklch(72% .1 148))}.listening-test-page .test-session-progress-fill{background:linear-gradient(90deg,var(--color-warm-amber),var(--terracotta))}.test-session-progress-text{font-size:var(--text-xs);color:var(--ink-muted);font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.test-session-part-nav{display:flex;gap:var(--space-2);padding:0 var(--space-5) var(--space-3);overflow-x:auto;scrollbar-width:none}.test-session-part-nav::-webkit-scrollbar{display:none}.part-nav-btn{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border:1px solid var(--taupe-line);border-radius:var(--r-pill);background:var(--paper);color:var(--ink-muted);font-size:var(--text-sm);font-weight:600;cursor:pointer;transition:all var(--t-snap);white-space:nowrap;flex-shrink:0}.part-nav-btn:hover{border-color:var(--ink-subtle);color:var(--ink)}.part-nav-btn.active{color:#fff;border-color:transparent;box-shadow:var(--shadow-sm)}.reading-test-page .part-nav-btn.active{background:var(--color-sage)}.listening-test-page .part-nav-btn.active{background:var(--color-warm-amber);color:var(--ink)}.part-nav-btn.complete:not(.active){border-color:#64946b59;background:#64946b14}.part-nav-count{font-size:var(--text-xs);font-weight:500;opacity:.85;font-variant-numeric:tabular-nums}.part-nav-btn.playing .part-nav-count:after{content:" ♪"}.test-session-alerts{flex-shrink:0;padding:0 var(--space-5)}.test-session-alerts .submit-error-banner,.test-session-alerts .fs-hint{margin-bottom:var(--space-3)}.test-session-body{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column}.test-session-question-nav{flex-shrink:0;display:flex;gap:var(--space-1);padding:var(--space-2) var(--space-5);overflow-x:auto;border-bottom:1px solid var(--taupe-line);background:var(--paper);scrollbar-width:thin}.question-jump-btn{width:32px;height:32px;border-radius:var(--r-sm);border:1px solid var(--taupe-line);background:var(--paper-warm);color:var(--ink-muted);font-size:var(--text-xs);font-weight:600;cursor:pointer;transition:all var(--t-snap);flex-shrink:0}.question-jump-btn:hover{border-color:var(--ink-subtle);color:var(--ink)}.question-jump-btn.answered{border-color:#64946b66;background:#64946b1a;color:var(--color-sage)}.question-jump-btn.current{box-shadow:inset 0 0 0 2px currentColor}.reading-test-page .question-jump-btn.current{color:var(--color-sage)}.listening-test-page .question-jump-btn.current{color:var(--color-warm-amber)}.test-session-footer{flex-shrink:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-3) var(--space-5);background:var(--paper-warm);border-top:1px solid var(--taupe-line);box-shadow:0 -4px 24px #0000000f}.test-session-footer .answered-indicator{font-size:var(--text-sm)}.test-session-footer .btn-submit{padding:12px 32px;font-size:var(--text-base)}.test-session-audio-dock{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-5) var(--space-3);border-bottom:1px solid var(--taupe-line);background:var(--paper)}.test-session-audio-dock-label{font-size:var(--text-xs);font-weight:600;color:var(--ink-subtle);text-transform:uppercase;letter-spacing:.06em}[data-theme=dark] .test-session-toolbar,[data-theme=dark] .test-session-footer{background:#ffffff08;border-color:#ffffff14}[data-theme=dark] .test-session-timer,[data-theme=dark] .part-nav-btn,[data-theme=dark] .question-jump-btn{background:#16100c;border-color:var(--taupe-line)}@media(max-width:768px){.test-header,.reading-test-header,.listening-test-header{flex-direction:column;gap:var(--space-4)}.timer-box{align-items:flex-start}.result-actions{flex-direction:column}.result-actions .btn,.result-actions a.btn{width:100%}.submit-bar{flex-direction:column;align-items:stretch}.submit-bar .btn-submit{width:100%}.confirm-actions{flex-direction:column}.confirm-actions .btn{width:100%}.resume-actions{flex-direction:column}.resume-actions .btn{width:100%}.test-session-toolbar-row{padding:var(--space-3) var(--space-4)}.test-session-progress-row,.test-session-part-nav,.test-session-question-nav,.test-session-audio-dock{padding-left:var(--space-4);padding-right:var(--space-4)}.test-session-footer{flex-direction:column;align-items:stretch;padding:var(--space-4)}.test-session-footer .btn-submit{width:100%}}
