:root{--paper: #f8f6f1;--paper-2: #f1eee6;--paper-3: #e9e4d8;--surface: #ffffff;--surface-soft: #fcfbf7;--ink: #191813;--ink-2: #34322b;--muted: #787367;--line: #e3ded2;--line-soft: #ede9df;--accent: #e9582b;--accent-deep: #c8431a;--accent-tint: #fbe9e1;--gold: #d9a442;--en: #2f5be4;--ja: #dd4f2f;--ko: #0e9c86;--success: #2f7d5f;--danger: #c2452d;--dark: #121310;--radius-s: 10px;--radius-m: 16px;--radius-l: 24px;--radius-xl: 32px;--shadow-s: 0 8px 24px -18px rgba(25, 24, 19, .3);--shadow-l: 0 26px 60px -34px rgba(25, 24, 19, .4);--font-serif: "Fraunces", "Noto Serif SC", Georgia, "Times New Roman", serif;--font-sans: "Inter", "Noto Sans SC", "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;--font-ja: "Noto Sans JP", "Hiragino Sans", "Yu Gothic", sans-serif;--font-ko: "Noto Sans KR", "Apple SD Gothic Neo", "Malgun Gothic", sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-sans);font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3,h4,p,figure{margin:0}h1,h2,h3{font-weight:500}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer}ul,ol{margin:0;padding:0;list-style:none}img{max-width:100%;display:block}::selection{background:var(--accent-tint)}.display{font-family:var(--font-serif);font-weight:400;letter-spacing:-.02em;line-height:1.08}.serif{font-family:var(--font-serif)}.mono{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}.lang-ja{font-family:var(--font-ja)}.lang-ko{font-family:var(--font-ko)}.kicker{font-size:10px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}.muted{color:var(--muted)}.micro{font-size:12px;color:var(--muted)}.eyebrow-line{display:flex;align-items:center;gap:10px;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.eyebrow-line:after{content:"";flex:1;height:1px;background:var(--line)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:42px;padding:0 20px;border:1px solid transparent;border-radius:999px;background:var(--paper-2);color:var(--ink);font-size:14px;font-weight:500;letter-spacing:.01em;white-space:nowrap;transition:background .18s ease,color .18s ease,transform .18s ease,border-color .18s ease}.btn:hover{transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-deep)}.btn-dark{background:var(--ink);color:var(--paper)}.btn-dark:hover{background:#000}.btn-ghost{background:transparent;border-color:var(--line);color:var(--ink)}.btn-ghost:hover{border-color:var(--ink);background:transparent}.btn-soft{background:var(--paper-2)}.btn-soft:hover{background:var(--paper-3)}.btn-sm{height:34px;padding:0 14px;font-size:13px}.btn-lg{height:50px;padding:0 26px;font-size:15px}.btn-block{width:100%}.btn-text{display:inline-flex;align-items:center;gap:6px;padding:0;border:0;background:none;font-size:13px;font-weight:500;color:var(--ink)}.btn-text:hover{color:var(--accent)}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid var(--line);border-radius:50%;background:var(--surface);color:var(--ink);transition:background .18s ease,border-color .18s ease}.icon-btn:hover{background:var(--paper-2);border-color:var(--paper-3)}.chip{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 10px;border-radius:999px;background:var(--paper-2);color:var(--ink-2);font-size:11px;font-weight:500;letter-spacing:.02em;white-space:nowrap}.chip-accent{background:var(--accent-tint);color:var(--accent-deep)}.chip-line{background:transparent;border:1px solid var(--line)}.chip-dark{background:#ffffff1a;color:#ffffffc7}.field{display:flex;flex-direction:column;gap:7px}.field>label{font-size:12px;font-weight:500;color:var(--ink-2);letter-spacing:.02em}.input,.textarea,.select{width:100%;min-height:46px;padding:11px 14px;border:1px solid var(--line);border-radius:var(--radius-s);background:var(--surface);color:var(--ink);font-size:14px;outline:none;transition:border-color .16s ease,box-shadow .16s ease}.input::placeholder,.textarea::placeholder{color:#a8a294}.input:focus,.textarea:focus,.select:focus{border-color:var(--ink);box-shadow:0 0 0 3px #1918130f}.textarea{min-height:96px;resize:vertical;line-height:1.65}.select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23787367' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:36px}.form-error{display:flex;align-items:center;gap:7px;padding:10px 12px;border-radius:var(--radius-s);background:#fbebe6;color:#a33b22;font-size:12.5px}.avatar{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;font-size:12px;font-weight:600;color:#fff;flex:none;letter-spacing:.02em}.avatar-lg{width:52px;height:52px;font-size:16px}.avatar-sm{width:28px;height:28px;font-size:10px}.avatar.coral{background:#db6a4a}.avatar.jade{background:#0e9c86}.avatar.gold{background:#c49334}.avatar.ink{background:#3a382f}.avatar.violet{background:#7a5cd6}.tag-dot{width:6px;height:6px;border-radius:50%;background:var(--accent);display:inline-block}.divider{height:1px;background:var(--line);border:0;margin:0}.dashed-rule{height:1px;background-image:linear-gradient(to right,var(--line) 50%,transparent 0%);background-size:8px 1px;background-repeat:repeat-x}.progress-track{height:4px;border-radius:99px;background:var(--paper-3);overflow:hidden}.progress-track>span{display:block;height:100%;border-radius:99px;background:var(--accent);transition:width .4s ease}.toast-layer{position:fixed;right:22px;bottom:22px;z-index:80;display:flex;flex-direction:column;gap:10px;max-width:min(360px,calc(100vw - 32px))}.toast{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border-radius:var(--radius-m);background:var(--ink);color:var(--paper);box-shadow:var(--shadow-l);animation:toast-in .34s cubic-bezier(.2,.9,.3,1)}.toast .t-icon{width:34px;height:34px;border-radius:50%;background:#ffffff1f;display:flex;align-items:center;justify-content:center;flex:none;color:var(--gold)}.toast-title{font-size:13.5px;font-weight:600}.toast-body{font-size:12px;color:#f8f6f1a8;margin-top:2px}@keyframes toast-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-up{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.fade-up{animation:fade-up .4s ease both}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media (max-width: 640px){body{font-size:14.5px}.toast-layer{left:16px;right:16px;bottom:84px}}.app-shell{display:flex;min-height:100vh;background:var(--paper)}.sidebar{position:sticky;top:0;align-self:flex-start;width:252px;height:100vh;flex:none;display:flex;flex-direction:column;padding:26px 20px 20px;background:var(--surface-soft);border-right:1px solid var(--line);z-index:30}.side-brand{display:flex;align-items:baseline;justify-content:space-between;padding:0 6px 18px}.wordmark{font-family:var(--font-serif);font-size:29px;letter-spacing:-.03em;line-height:1;color:var(--ink)}.wordmark span{color:var(--accent)}.side-brand .version{font-size:10px;letter-spacing:.12em;color:var(--muted)}.side-langs{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;padding:4px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.side-lang{border:0;background:transparent;border-radius:8px;padding:7px 2px 6px;font-size:11.5px;font-weight:500;color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:2px;transition:background .16s ease,color .16s ease}.side-lang b{font-family:var(--font-sans);font-size:10px;letter-spacing:.04em;font-weight:500;color:var(--muted)}.side-lang:hover{background:var(--paper-2)}.side-lang.active{color:var(--ink);background:var(--paper-2)}.side-lang.active b{color:var(--ink)}.side-nav{margin-top:22px;flex:1;overflow-y:auto;scrollbar-width:none}.side-nav::-webkit-scrollbar{width:0;height:0}.side-nav a{display:flex;align-items:center;gap:12px;height:47px;padding:0 6px;border-bottom:1px dashed var(--line);color:var(--muted);font-size:13.5px;font-weight:500;transition:color .16s ease,padding .16s ease}.side-nav a:hover{color:var(--ink);padding-left:10px}.side-nav a.active{color:var(--ink);font-weight:600}.side-nav a.active .nav-marker{width:12px;height:3px;border-radius:2px;background:var(--accent);margin-left:auto}.side-nav a .nav-marker{width:12px;height:3px;margin-left:auto;background:transparent}.side-nav a svg{width:17px;height:17px;flex:none;opacity:.72}.side-nav a.active svg{opacity:1}.side-goal{margin-top:18px;padding:13px 12px;border:1px solid var(--line);border-radius:var(--radius-m);background:var(--surface)}.side-goal .row{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:8px}.side-goal .row b{font-family:var(--font-serif);font-size:20px;font-weight:500}.side-goal .row span{font-size:10.5px;color:var(--muted)}.side-user{margin-top:14px;padding-top:14px;border-top:1px solid var(--line);display:flex;align-items:center;gap:10px}.side-user .who{min-width:0;flex:1}.side-user .who b{display:block;font-size:12.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.side-user .who span{display:block;font-size:10.5px;color:var(--muted)}.side-user .logout{border:0;background:none;color:var(--muted);display:flex;padding:6px;border-radius:8px}.side-user .logout:hover{color:var(--ink);background:var(--paper-2)}.app-main{flex:1;min-width:0;display:flex;flex-direction:column}.app-topbar{display:none}.page{width:100%;max-width:1240px;margin:0 auto;padding:38px 44px 80px}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:30px}.page-head h1{font-family:var(--font-serif);font-size:clamp(30px,3.4vw,44px);font-weight:400;letter-spacing:-.025em;line-height:1.05;margin-top:6px}.page-head .sub{margin-top:10px;font-size:13.5px;color:var(--muted);max-width:560px}.page-head .head-actions{display:flex;align-items:center;gap:10px;padding-bottom:4px}.mobile-nav{display:none}@media (max-width: 1080px){.page{padding:30px 28px 70px}.sidebar{width:224px}}@media (max-width: 900px){.app-shell{display:block}.sidebar{position:fixed;left:0;top:0;bottom:0;width:260px;transform:translate(-102%);transition:transform .28s cubic-bezier(.3,.8,.3,1);box-shadow:30px 0 60px -40px #0006}.sidebar.open{transform:translate(0)}.app-topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;height:60px;padding:0 18px;background:#f8f6f1eb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.app-topbar .wordmark{font-size:24px}.app-topbar .topbar-actions{display:flex;gap:8px;align-items:center}.page{padding:24px 18px 96px}.page-head{flex-direction:column;align-items:flex-start;margin-bottom:22px}.mobile-nav{position:fixed;left:0;right:0;bottom:0;z-index:25;display:grid;grid-template-columns:repeat(5,1fr);background:#fcfbf7f0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--line);padding:6px 8px calc(6px + env(safe-area-inset-bottom))}.mobile-nav a{display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 0;font-size:10.5px;color:var(--muted);border-radius:10px}.mobile-nav a.active{color:var(--ink);font-weight:600}.mobile-nav a svg{width:18px;height:18px}}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:29;background:#1213105c;opacity:0;pointer-events:none;transition:opacity .25s ease}.scrim.show{opacity:1;pointer-events:auto}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-m)}.section-label{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:14px}.section-label .left{display:flex;align-items:baseline;gap:10px}.section-label .num{font-family:var(--font-serif);font-size:12px;color:var(--muted);letter-spacing:.04em}.section-label h2{font-family:var(--font-serif);font-size:22px;font-weight:500;letter-spacing:-.01em}.ring-wrap{position:relative;display:block}.ring-center{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.mkt{min-height:100vh;background:var(--paper)}.mkt-header{position:sticky;top:0;z-index:40;display:flex;align-items:center;justify-content:space-between;gap:28px;max-width:1320px;margin:0 auto;padding:22px 44px;background:#f8f6f1db;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.mkt-brand{font-family:var(--font-serif);font-size:30px;letter-spacing:-.03em;line-height:1}.mkt-brand span{color:var(--accent)}.mkt-nav{display:flex;gap:30px;font-size:13px;color:var(--ink-2)}.mkt-nav a{position:relative;padding:6px 0}.mkt-nav a:hover{color:var(--ink)}.mkt-nav a:after{content:"";position:absolute;left:0;right:100%;bottom:0;height:1px;background:var(--accent);transition:right .22s ease}.mkt-nav a:hover:after{right:0}.mkt-actions{display:flex;align-items:center;gap:10px}.hero{display:grid;grid-template-columns:1.06fr .94fr;gap:60px;align-items:center;max-width:1320px;margin:0 auto;padding:64px 44px 96px}.hero h1{font-family:var(--font-serif);font-size:clamp(46px,5.2vw,76px);font-weight:400;line-height:1.02;letter-spacing:-.035em}.hero h1 em{font-style:italic;color:var(--accent)}.hero .lede{margin-top:24px;max-width:460px;font-size:15.5px;line-height:1.8;color:var(--ink-2)}.hero .cta-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:32px}.hero .cta-note{display:flex;align-items:center;gap:14px;margin-top:22px;font-size:12px;color:var(--muted)}.hero .cta-note .lang-quick{display:flex;align-items:center;gap:6px}.hero .cta-note .lang-quick i{width:7px;height:7px;border-radius:50%;display:block}.hero-visual{position:relative;height:480px;display:flex;align-items:center;justify-content:center}.glyph-card{position:absolute;width:228px;height:300px;border:1px solid var(--line);border-radius:22px;padding:22px;display:flex;flex-direction:column;justify-content:space-between;box-shadow:var(--shadow-s);transition:transform .4s cubic-bezier(.2,.8,.3,1)}.glyph-card .glyph{font-family:var(--font-serif);font-size:108px;line-height:1;letter-spacing:-.02em;align-self:flex-end;opacity:.92}.glyph-card .meta .name{font-size:13px;font-weight:600;letter-spacing:.04em}.glyph-card .meta .native{font-size:11px;color:var(--muted);margin-top:1px}.glyph-card .meta .levels{margin-top:10px;font-family:var(--serif);font-size:10.5px;letter-spacing:.12em;color:var(--ink-2);text-transform:uppercase}.glyph-card.en{background:#fff;transform:rotate(-9deg) translate(-132px,12px);color:var(--en)}.glyph-card.ja{background:#fbeee9;transform:rotate(2deg) translateY(-22px);color:var(--ja);z-index:2}.glyph-card.ja .glyph{font-family:var(--font-ja);font-size:92px}.glyph-card.ko{background:#e9f6f2;transform:rotate(9deg) translate(132px,26px);color:var(--ko)}.glyph-card.ko .glyph{font-family:var(--font-ko);font-size:98px}.hero-visual:hover .glyph-card.en{transform:rotate(-11deg) translate(-140px,6px)}.hero-visual:hover .glyph-card.ja{transform:rotate(0) translateY(-30px)}.hero-visual:hover .glyph-card.ko{transform:rotate(11deg) translate(140px,30px)}.hero-lesson{position:absolute;z-index:4;left:50%;bottom:-26px;transform:translate(-50%);width:268px;padding:14px 16px;border-radius:14px;background:var(--dark);color:var(--paper);box-shadow:var(--shadow-l)}.hero-lesson .row{display:flex;align-items:center;justify-content:space-between;gap:10px}.hero-lesson .t{font-size:11px;color:#f8f6f199}.hero-lesson .title{font-size:13px;font-weight:600;margin-top:3px}.hero-lesson .pill{font-size:11px;color:#f7b59c}.hero-lesson .track{margin-top:10px;height:3px;background:#ffffff29;border-radius:99px;overflow:hidden}.hero-lesson .track span{display:block;width:46%;height:100%;background:var(--accent)}.mkt-section{max-width:1320px;margin:0 auto;padding:70px 44px}.mkt-section.tight{padding-top:20px}.sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-bottom:34px}.sec-head h2{font-family:var(--font-serif);font-size:clamp(30px,3.4vw,44px);font-weight:400;letter-spacing:-.025em;line-height:1.1}.sec-head p{margin-top:10px;max-width:520px;color:var(--muted);font-size:13.5px}.lang-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.lang-card{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-l);background:var(--surface);padding:26px 26px 22px;min-height:268px;display:flex;flex-direction:column;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}.lang-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-s);border-color:var(--line-soft)}.lang-card .watermark{position:absolute;right:10px;top:-18px;font-family:var(--font-serif);font-size:128px;line-height:1;opacity:.1;pointer-events:none}.lang-card .head{display:flex;align-items:center;justify-content:space-between;position:relative;z-index:1}.lang-card .name{font-family:var(--font-serif);font-size:24px;letter-spacing:-.01em}.lang-card .native{font-size:11px;color:var(--muted);margin-top:1px}.lang-card .code{font-family:var(--mono, var(--font-sans));font-size:10px;letter-spacing:.12em;color:var(--muted);border-bottom:2px solid;padding-bottom:4px}.lang-card .desc{margin-top:18px;font-size:12.8px;line-height:1.75;color:var(--ink-2);position:relative;z-index:1;flex:1}.lang-card .foot{display:flex;align-items:center;justify-content:space-between;margin-top:20px;padding-top:14px;border-top:1px solid var(--line-soft);position:relative;z-index:1}.lang-card .foot .arw{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:600}.curriculum-band{background:var(--dark);color:var(--paper);padding:76px 0}.curriculum-inner{max-width:1320px;margin:0 auto;padding:0 44px}.curriculum-band .sec-head h2{color:var(--paper)}.curriculum-band .sec-head p{color:#f8f6f18f}.curriculum-band .btn-ghost{border-color:#f8f6f138;color:var(--paper)}.curriculum-band .btn-ghost:hover{border-color:#f8f6f199}.ladder{display:grid;grid-template-columns:130px repeat(3,1fr);border-top:1px solid rgba(255,255,255,.14)}.ladder-row{display:contents}.ladder .cell{padding:20px 18px;border-bottom:1px solid rgba(255,255,255,.1)}.ladder .lang-cell{display:flex;flex-direction:column;justify-content:center;border-right:1px solid rgba(255,255,255,.1)}.ladder .lang-cell .n{font-family:var(--font-serif);font-size:18px}.ladder .lang-cell .nat{font-size:10.5px;color:#f8f6f173}.ladder .stage{position:relative}.ladder .stage .code{display:inline-flex;align-items:center;gap:8px;font-size:10.5px;letter-spacing:.1em;color:#f8f6f18c}.ladder .stage .code i{width:6px;height:6px;border-radius:50%;display:block}.ladder .stage .t{margin-top:10px;font-size:13.5px;font-weight:600;color:var(--paper)}.ladder .stage .s{margin-top:6px;font-size:11.5px;line-height:1.7;color:#f8f6f180}.ladder .stage .lesson{margin-top:12px;font-size:11px;color:#f8f6f161;display:flex;align-items:center;gap:6px}.module-section{display:grid;grid-template-columns:.82fr 1.18fr;gap:64px;align-items:start}.module-intro{position:sticky;top:100px}.module-intro h2{font-family:var(--font-serif);font-size:clamp(30px,3.4vw,44px);font-weight:400;letter-spacing:-.025em;line-height:1.1}.module-intro p{margin-top:16px;color:var(--muted);font-size:13.5px;max-width:360px}.module-list{border-top:1px solid var(--line)}.module-row{display:grid;grid-template-columns:54px 1fr 190px;gap:20px;align-items:center;padding:24px 4px;border-bottom:1px solid var(--line);transition:padding .2s ease}.module-row:hover{padding-left:10px}.module-row .idx{font-family:var(--font-serif);font-size:13px;color:var(--muted)}.module-row .body h3{font-size:16px;font-weight:600}.module-row .body p{margin-top:5px;font-size:12.5px;color:var(--muted);line-height:1.65;max-width:380px}.module-row .preview{display:flex;align-items:center;gap:10px;justify-content:flex-end}.mini-flash{border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:8px 12px;font-size:11px;color:var(--muted);display:flex;align-items:center;gap:8px}.mini-flash b{font-family:var(--font-ja);font-size:16px;color:var(--ink)}.wave{display:flex;align-items:center;gap:3px}.wave i{display:block;width:2px;border-radius:2px;background:var(--accent);opacity:.7}.mic-dot{width:34px;height:34px;border-radius:50%;background:var(--accent-tint);color:var(--accent-deep);display:flex;align-items:center;justify-content:center;flex:none}.progress-band{background:var(--paper-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:76px 0}.progress-inner{max-width:1320px;margin:0 auto;padding:0 44px;display:grid;grid-template-columns:.9fr 1.1fr;gap:60px;align-items:center}.progress-copy h2{font-family:var(--font-serif);font-size:clamp(30px,3.4vw,44px);font-weight:400;letter-spacing:-.025em;line-height:1.1}.progress-copy p{margin-top:16px;color:var(--muted);font-size:13.5px;max-width:400px}.progress-demo{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-l);padding:24px;display:grid;grid-template-columns:1.15fr .85fr;gap:18px}.progress-demo .mini-chart{grid-column:1 / -1;display:flex;align-items:flex-end;gap:14px;height:86px;padding-top:12px;border-bottom:1px solid var(--line-soft)}.progress-demo .bar{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;justify-content:flex-end;height:100%}.progress-demo .bar i{width:100%;max-width:24px;border-radius:3px;background:var(--ink)}.progress-demo .bar.today i{background:var(--accent)}.progress-demo .bar span{font-size:9.5px;color:var(--muted)}.rec-mini{grid-column:1 / -1;display:flex;flex-direction:column;gap:8px}.rec-mini .r{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px dashed var(--line);font-size:11.5px;color:var(--ink-2)}.rec-mini .r:last-child{border-bottom:0}.rec-mini .r i{width:6px;height:6px;border-radius:50%;flex:none}.rec-mini .r b{font-weight:600}.rec-mini .r .to{margin-left:auto;color:var(--muted);font-size:10px}.progress-demo .ring-cell{display:flex;align-items:center;justify-content:center;border-left:1px solid var(--line-soft);padding-left:18px}.progress-demo .metric-cell{display:flex;flex-direction:column;gap:10px;justify-content:center}.progress-demo .metric-cell .m{display:flex;align-items:baseline;gap:8px}.progress-demo .metric-cell .m b{font-family:var(--font-serif);font-size:26px;font-weight:500}.progress-demo .metric-cell .m span{font-size:10px;color:var(--muted)}.community-band{display:grid;grid-template-columns:1fr 1fr;gap:20px;max-width:1320px;margin:0 auto;padding:0 44px}.community-card{border:1px solid var(--line);border-radius:var(--radius-l);background:var(--surface);padding:28px;display:flex;flex-direction:column}.community-card.dark{background:var(--dark);color:var(--paper);border-color:var(--dark)}.community-card h3{font-family:var(--font-serif);font-size:26px;font-weight:400;letter-spacing:-.02em}.community-card .desc{margin-top:10px;font-size:12.5px;color:var(--muted);line-height:1.7}.community-card.dark .desc{color:#f8f6f18c}.post-preview{margin-top:22px;padding-top:18px;border-top:1px solid var(--line-soft);display:flex;gap:12px}.community-card.dark .post-preview{border-top-color:#ffffff1f}.post-preview .body{font-size:12.5px;line-height:1.75;color:var(--ink-2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.community-card.dark .post-preview .body{color:#f8f6f1cc}.badge-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}.badge-pill{display:inline-flex;align-items:center;gap:8px;padding:8px 12px 8px 8px;border-radius:999px;border:1px solid rgba(255,255,255,.14);background:#ffffff0a;font-size:11.5px}.badge-pill .b{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#d9a44229;color:var(--gold)}.final-cta{max-width:1320px;margin:76px auto 0;padding:0 44px}.final-cta-inner{position:relative;overflow:hidden;border-radius:var(--radius-xl);background:var(--dark);color:var(--paper);padding:64px 56px;display:flex;align-items:flex-end;justify-content:space-between;gap:40px}.final-cta-inner h2{font-family:var(--font-serif);font-size:clamp(34px,4vw,56px);font-weight:400;line-height:1.06;letter-spacing:-.03em;max-width:620px}.final-cta-inner h2 em{font-style:italic;color:#f7b59c}.final-cta-inner .side{text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:14px;flex:none}.final-cta-inner .side p{font-size:12px;color:#f8f6f18c}.final-cta-inner .glyph-bg{position:absolute;right:270px;bottom:-70px;font-family:var(--font-serif);font-size:220px;color:#ffffff0a;pointer-events:none;line-height:1}.mkt-footer{max-width:1320px;margin:64px auto 0;padding:56px 44px 40px;display:flex;align-items:center;justify-content:space-between;gap:24px;border-top:1px solid var(--line)}.mkt-footer .left{display:flex;align-items:center;gap:14px}.mkt-footer .wordmark{font-size:22px}.mkt-footer p{font-size:11.5px;color:var(--muted)}.mkt-footer .links{display:flex;gap:22px;font-size:11.5px;color:var(--muted)}.auth-page{display:grid;grid-template-columns:.95fr 1.05fr;min-height:100vh;background:var(--paper)}.auth-side{position:relative;overflow:hidden;background:var(--dark);color:var(--paper);padding:46px 52px;display:flex;flex-direction:column;justify-content:space-between}.auth-side .mkt-brand{color:var(--paper)}.auth-side .mkt-brand span{color:#f7b59c}.auth-side .quote{margin:auto 0;max-width:430px}.auth-side .quote .q{font-family:var(--font-serif);font-size:clamp(30px,3.2vw,42px);line-height:1.2;letter-spacing:-.02em}.auth-side .quote .q em{font-style:italic;color:#f7b59c}.auth-side .quote .trans{margin-top:18px;font-size:12.5px;color:#f8f6f18c;line-height:1.8}.auth-side .glyphs{display:flex;gap:28px;align-items:flex-end;opacity:.85}.auth-side .glyphs span{font-family:var(--font-serif);font-size:46px;line-height:1;color:#f8f6f173}.auth-side .glyphs span:nth-child(2){font-family:var(--font-ja);font-size:40px;color:#f7b59cb3}.auth-side .glyphs span:nth-child(3){font-family:var(--font-ko);font-size:42px;color:#0e9c8699}.auth-side .foot{font-size:10.5px;color:#f8f6f166}.auth-main{display:flex;align-items:center;justify-content:center;padding:48px 24px}.auth-card{width:100%;max-width:424px;animation:fade-up .42s ease both}.auth-card .back{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);margin-bottom:28px}.auth-card .back:hover{color:var(--ink)}.auth-card h1{font-family:var(--font-serif);font-size:36px;font-weight:400;letter-spacing:-.02em;line-height:1.1}.auth-card .sub{margin-top:10px;font-size:13px;color:var(--muted)}.auth-tabs{display:flex;gap:26px;margin:26px 0 22px;border-bottom:1px solid var(--line)}.auth-tabs button{position:relative;border:0;background:none;padding:0 0 11px;font-size:13.5px;font-weight:500;color:var(--muted)}.auth-tabs button.on{color:var(--ink);font-weight:600}.auth-tabs button.on:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--accent)}.auth-form{display:flex;flex-direction:column;gap:16px}.auth-form .btn{margin-top:6px}.auth-divider{display:flex;align-items:center;gap:14px;margin:18px 0;font-size:10.5px;letter-spacing:.1em;color:var(--muted);text-transform:uppercase}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--line)}.auth-foot{margin-top:26px;font-size:11.5px;color:var(--muted);line-height:1.7}.auth-foot b{color:var(--ink);font-weight:600}.onboard{min-height:100vh;background:var(--paper);padding:34px 22px 70px}.onboard-inner{max-width:900px;margin:0 auto}.onboard-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:44px}.onboard-head .wordmark{font-size:26px}.onboard-steps{display:flex;align-items:center;gap:10px;font-size:11px;color:var(--muted)}.onboard-steps .dot{width:26px;height:26px;border-radius:50%;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-family:var(--font-serif);font-size:12px;background:var(--surface)}.onboard-steps .dot.on{background:var(--ink);color:var(--paper);border-color:var(--ink)}.onboard-steps .line{width:26px;height:1px;background:var(--line)}.onboard h1{font-family:var(--font-serif);font-size:clamp(34px,4.4vw,52px);font-weight:400;letter-spacing:-.03em;line-height:1.06;max-width:660px}.onboard .sub{margin-top:14px;max-width:560px;color:var(--muted);font-size:13.5px;line-height:1.8}.choice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:34px}.choice-lang{position:relative;overflow:hidden;text-align:left;border:1px solid var(--line);border-radius:var(--radius-l);background:var(--surface);padding:24px;min-height:180px;display:flex;flex-direction:column;justify-content:space-between;transition:border-color .18s ease,transform .18s ease,box-shadow .18s ease}.choice-lang:hover{transform:translateY(-3px);box-shadow:var(--shadow-s)}.choice-lang.on{border-color:var(--ink);box-shadow:0 0 0 1px var(--ink)}.choice-lang .watermark{position:absolute;right:12px;top:4px;font-family:var(--font-serif);font-size:84px;opacity:.12;line-height:1}.choice-lang .nm{font-family:var(--font-serif);font-size:22px}.choice-lang .nat{font-size:11px;color:var(--muted);margin-top:2px}.choice-lang .cd{font-size:10px;letter-spacing:.1em;color:var(--muted);margin-top:16px}.choice-lang .check{position:absolute;right:16px;bottom:16px;width:22px;height:22px;border-radius:50%;border:1px solid var(--line);display:flex;align-items:center;justify-content:center}.choice-lang.on .check{background:var(--ink);border-color:var(--ink);color:var(--paper)}.level-list{display:flex;flex-direction:column;gap:10px;margin-top:30px}.level-opt{display:flex;align-items:center;gap:22px;width:100%;text-align:left;padding:20px 24px;border:1px solid var(--line);border-radius:var(--radius-m);background:var(--surface);transition:border-color .18s ease,background .18s ease}.level-opt:hover{border-color:var(--line-strong, #cfc8b8)}.level-opt.on{border-color:var(--ink);background:var(--surface);box-shadow:0 0 0 1px var(--ink)}.level-opt .code{font-family:var(--font-serif);font-size:28px;width:82px;flex:none;letter-spacing:-.02em}.level-opt .body{flex:1}.level-opt .body b{font-size:13.5px;font-weight:600}.level-opt .body p{font-size:11.5px;color:var(--muted);margin-top:3px;line-height:1.6}.level-opt .radio{width:18px;height:18px;border-radius:50%;border:1px solid var(--line);flex:none}.level-opt.on .radio{background:var(--accent);border-color:var(--accent)}.goal-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:30px}.goal-opt{display:flex;align-items:center;gap:12px;padding:16px 18px;border:1px solid var(--line);border-radius:var(--radius-m);background:var(--surface);text-align:left;font-size:13px;transition:border-color .18s ease}.goal-opt.on{border-color:var(--ink);box-shadow:0 0 0 1px var(--ink)}.goal-opt .ic{width:34px;height:34px;border-radius:50%;background:var(--paper-2);display:flex;align-items:center;justify-content:center;flex:none}.minutes-row{display:flex;align-items:center;gap:18px;margin-top:26px;padding:22px;border:1px solid var(--line);border-radius:var(--radius-m);background:var(--surface)}.minutes-row input[type=range]{flex:1;accent-color:var(--accent)}.minutes-row .val{font-family:var(--font-serif);font-size:26px;width:90px;text-align:right}.onboard-footer{display:flex;align-items:center;justify-content:space-between;margin-top:38px;padding-top:22px;border-top:1px solid var(--line)}.onboard-footer .hint{font-size:11.5px;color:var(--muted);max-width:420px}@media (max-width: 1080px){.mkt-header,.hero,.mkt-section,.curriculum-inner,.progress-inner,.community-band,.final-cta,.mkt-footer{padding-left:28px;padding-right:28px}.hero{gap:34px}.hero-visual{height:430px}.glyph-card{width:190px;height:250px}.glyph-card .glyph{font-size:88px}.glyph-card.en{transform:rotate(-9deg) translate(-102px,12px)}.glyph-card.ko{transform:rotate(9deg) translate(102px,26px)}}@media (max-width: 900px){.mkt-nav{display:none}.hero{grid-template-columns:1fr;padding-top:40px;gap:24px}.hero-visual{height:400px;margin-top:18px}.lang-grid{grid-template-columns:1fr}.lang-card{min-height:0}.ladder{display:block;border-top:0}.ladder .cell{border-bottom:0}.ladder .lang-cell{border-right:0;border-top:1px solid rgba(255,255,255,.14);padding-top:26px}.ladder .stage{border-top:1px solid rgba(255,255,255,.08)}.module-section,.progress-inner,.community-band{grid-template-columns:1fr;gap:30px}.module-intro{position:static}.module-row{grid-template-columns:40px 1fr}.module-row .preview{grid-column:2;justify-content:flex-start}.final-cta-inner{flex-direction:column;align-items:flex-start;padding:42px 30px}.final-cta-inner .side{align-items:flex-start;text-align:left}.auth-page{grid-template-columns:1fr}.auth-side{display:none}.choice-grid,.goal-grid{grid-template-columns:1fr}.mkt-footer{flex-direction:column;align-items:flex-start}.mkt-footer .links{flex-wrap:wrap}}@media (max-width: 600px){.mkt-header{padding:16px 18px}.mkt-actions .btn-ghost{display:none}.hero{padding:30px 18px 70px}.hero-visual{height:330px;transform:scale(.92)}.glyph-card{width:150px;height:210px;padding:16px}.glyph-card .glyph{font-size:66px}.glyph-card .meta .native{display:none}.glyph-card.en{transform:rotate(-9deg) translate(-78px,12px)}.glyph-card.ko{transform:rotate(9deg) translate(78px,26px)}.hero-lesson{width:236px;bottom:-30px}.mkt-section,.curriculum-inner,.progress-inner,.community-band,.final-cta,.mkt-footer{padding-left:18px;padding-right:18px}.progress-demo{grid-template-columns:1fr}.progress-demo .ring-cell{border-left:0;border-top:1px solid var(--line-soft);padding:18px 0 0}.final-cta-inner .glyph-bg{display:none}.onboard{padding:22px 16px 60px}.onboard-steps{gap:6px}.onboard-steps .line{width:14px}.minutes-row{flex-wrap:wrap}.minutes-row .val{width:auto}}.dash-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:30px}.dash-date{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.dash-greet h1{font-family:var(--font-serif);font-size:clamp(34px,4.2vw,50px);font-weight:400;letter-spacing:-.03em;line-height:1.08;margin-top:8px}.dash-greet h1.lang-ja{font-family:var(--font-ja);font-size:clamp(30px,3.6vw,42px)}.dash-greet h1.lang-ko{font-family:var(--font-ko);font-size:clamp(32px,3.8vw,45px)}.dash-greet p{margin-top:8px;font-size:12.5px;color:var(--muted)}.dash-head-right{display:flex;align-items:center;gap:10px;flex:none}.streak-badge{display:flex;align-items:center;gap:8px;padding:9px 14px;border:1px solid var(--line);border-radius:999px;background:var(--surface)}.streak-badge svg{width:16px;height:16px;color:var(--accent)}.streak-badge b{font-family:var(--font-serif);font-size:17px;font-weight:500}.streak-badge span{font-size:10.5px;color:var(--muted)}.dash-top{display:grid;grid-template-columns:1.42fr 1fr;gap:26px;align-items:stretch}.continue-card{position:relative;overflow:hidden;border-radius:var(--radius-l);background:var(--dark);color:var(--paper);padding:26px 28px 24px;display:flex;flex-direction:column;min-height:214px}.continue-card .cw{position:absolute;right:16px;top:2px;font-family:var(--font-serif);font-size:150px;line-height:1;color:#ffffff0b;pointer-events:none}.continue-card .top{display:flex;align-items:center;justify-content:space-between;gap:12px;position:relative}.continue-card .top .k{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:#f8f6f180}.continue-card .top .chip-dark{font-size:10.5px}.continue-card h2{margin-top:14px;font-family:var(--font-serif);font-size:clamp(23px,2.4vw,30px);font-weight:400;letter-spacing:-.02em;line-height:1.12;position:relative}.continue-card .sub{margin-top:7px;font-size:12px;color:#f8f6f18c}.continue-card .bar-area{margin-top:auto;padding-top:22px}.continue-card .bar-row{display:flex;align-items:center;justify-content:space-between;font-size:10.5px;color:#f8f6f18c;margin-bottom:8px}.continue-card .track{height:4px;border-radius:99px;background:#ffffff24;overflow:hidden}.continue-card .track span{display:block;height:100%;background:var(--accent);border-radius:99px}.continue-card .cta-row{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:16px}.continue-card .cta-row .lesson-meta-mini{display:flex;align-items:center;gap:14px;font-size:11px;color:#f8f6f180}.continue-card .cta-row .lesson-meta-mini span{display:flex;align-items:center;gap:5px}.stat-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;align-items:end;border-top:1px solid var(--line);padding-top:18px}.stat-item{min-width:0}.stat-item b{display:block;font-family:var(--font-serif);font-size:clamp(30px,3.4vw,48px);font-weight:400;letter-spacing:-.03em;line-height:1;font-variant-numeric:tabular-nums}.stat-item span{display:block;margin-top:8px;font-size:10.5px;color:var(--muted);letter-spacing:.02em}.stat-item .delta{display:inline-flex;align-items:center;gap:3px;color:var(--success);font-size:10px;margin-top:5px}.dash-cols{display:grid;grid-template-columns:1.15fr .85fr;gap:26px;margin-top:26px;align-items:start}.plan-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-l);padding:24px 26px 10px}.plan-panel .head{display:flex;align-items:center;justify-content:space-between;padding-bottom:14px;border-bottom:1px solid var(--line)}.plan-panel .head h2{font-family:var(--font-serif);font-size:22px;font-weight:500;letter-spacing:-.01em}.plan-panel .head .badge{font-size:10.5px;color:var(--muted)}.plan-list{display:flex;flex-direction:column}.plan-item{display:grid;grid-template-columns:34px 1fr auto;gap:14px;align-items:center;padding:17px 0;border-bottom:1px dashed var(--line);transition:padding .18s ease}.plan-item:last-child{border-bottom:0}.plan-item:hover{padding-left:5px}.plan-item .idx{font-family:var(--font-serif);font-size:12px;color:var(--muted);align-self:start;padding-top:2px}.plan-item .body b{display:block;font-size:13.5px;font-weight:600;letter-spacing:.01em}.plan-item .body p{font-size:11.5px;color:var(--muted);margin-top:3px;line-height:1.6;max-width:340px}.plan-item .end{display:flex;align-items:center;gap:12px;color:var(--muted)}.plan-item .dur{font-size:10.5px;display:flex;align-items:center;gap:4px;white-space:nowrap}.plan-item .go{width:30px;height:30px;border-radius:50%;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;color:var(--ink);transition:background .16s ease,color .16s ease}.plan-item:hover .go{background:var(--ink);color:var(--paper)}.plan-item .dot{width:7px;height:7px;border-radius:50%;flex:none;margin-top:7px}.dash-side{display:flex;flex-direction:column;gap:18px}.chart-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-l);padding:22px 24px 18px}.chart-panel .top{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.chart-panel .top h3{font-family:var(--font-serif);font-size:18px;font-weight:500}.chart-panel .top span{font-size:10.5px;color:var(--muted)}.week-chart{display:flex;align-items:flex-end;gap:10px;height:112px;margin-top:16px;padding-top:10px;background:repeating-linear-gradient(to bottom,var(--line-soft) 0,var(--line-soft) 1px,transparent 1px,transparent 36px)}.week-chart .col{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:7px;height:100%}.week-chart .col .bar{width:100%;max-width:22px;border-radius:3px;background:var(--ink);min-height:2px;transition:height .5s cubic-bezier(.2,.8,.3,1)}.week-chart .col.today .bar{background:var(--accent)}.week-chart .col .lbl{font-size:9.5px;color:var(--muted);padding-bottom:2px}.week-chart .col.today .lbl{color:var(--ink);font-weight:600}.goal-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-l);padding:20px 24px;display:flex;align-items:center;gap:20px}.goal-panel .ring-wrap{width:108px;flex:none}.goal-panel .ring-center b{font-family:var(--font-serif);font-size:26px;font-weight:500;line-height:1}.goal-panel .ring-center span{font-size:9.5px;color:var(--muted);margin-top:3px}.goal-panel .body b{font-size:12.5px;font-weight:600;display:block}.goal-panel .body p{font-size:11px;color:var(--muted);margin-top:4px;line-height:1.6}.goal-panel .body a{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;margin-top:9px;color:var(--accent-deep)}.ach-strip{margin-top:26px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-l);padding:20px 24px;display:flex;align-items:center;gap:26px;flex-wrap:wrap}.ach-strip .lead{display:flex;align-items:center;gap:12px;padding-right:24px;border-right:1px solid var(--line);min-width:190px}.ach-strip .lead .t b{display:block;font-family:var(--font-serif);font-size:17px;font-weight:500}.ach-strip .lead .t span{font-size:10.5px;color:var(--muted)}.ach-strip .badges{display:flex;gap:22px;flex:1;flex-wrap:wrap}.ach-strip .badge{display:flex;align-items:center;gap:9px}.ach-strip .badge .ic{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--paper-2);color:var(--ink-2);flex:none}.ach-strip .badge.gold .ic{background:#f7edd6;color:#a97c21}.ach-strip .badge .txt b{display:block;font-size:11.5px;font-weight:600}.ach-strip .badge .txt span{font-size:9.5px;color:var(--muted)}.ach-strip .more{margin-left:auto;font-size:11.5px;display:flex;align-items:center;gap:5px;color:var(--muted);white-space:nowrap}.lang-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:36px}.lang-tab{position:relative;overflow:hidden;text-align:left;padding:18px 20px;border:1px solid var(--line);border-radius:var(--radius-m);background:var(--surface);transition:border-color .18s ease,transform .18s ease,box-shadow .18s ease}.lang-tab:hover{transform:translateY(-2px);box-shadow:var(--shadow-s)}.lang-tab.on{border-color:var(--ink);box-shadow:0 0 0 1px var(--ink)}.lang-tab .wm{position:absolute;right:8px;top:-8px;font-family:var(--font-serif);font-size:64px;line-height:1;opacity:.1}.lang-tab .nm{font-family:var(--font-serif);font-size:20px;display:flex;align-items:baseline;gap:7px}.lang-tab .nm span{font-family:var(--font-sans);font-size:10px;letter-spacing:.08em;color:var(--muted)}.lang-tab .meta{margin-top:7px;font-size:10.5px;color:var(--muted);display:flex;align-items:center;gap:8px}.lang-tab .bar{margin-top:12px;height:3px;background:var(--paper-2);border-radius:99px;overflow:hidden}.lang-tab .bar i{display:block;height:100%;border-radius:99px}.lang-tab .pct{position:absolute;right:18px;bottom:14px;font-size:10px;color:var(--muted)}.course-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:24px}.course-head h2{font-family:var(--font-serif);font-size:30px;font-weight:400;letter-spacing:-.02em}.course-head p{font-size:12px;color:var(--muted);margin-top:6px;max-width:520px}.course-head .stat{text-align:right;flex:none}.course-head .stat b{font-family:var(--font-serif);font-size:30px;font-weight:400;display:block;line-height:1}.course-head .stat span{font-size:10.5px;color:var(--muted)}.level-block{border-top:1px solid var(--line);padding:24px 0 10px}.level-block:last-child{border-bottom:1px solid var(--line)}.level-head{display:flex;align-items:center;gap:18px;margin-bottom:12px}.level-head .code{font-family:var(--font-serif);font-size:22px;letter-spacing:-.01em;width:78px;flex:none}.level-head .body{flex:1;min-width:0}.level-head .body b{font-size:13.5px;font-weight:600}.level-head .body p{font-size:11.5px;color:var(--muted);margin-top:2px}.level-head .prog{display:flex;align-items:center;gap:10px;flex:none;font-size:10.5px;color:var(--muted)}.level-head .prog .track{width:86px;height:3px;border-radius:99px;background:var(--paper-2);overflow:hidden}.level-head .prog .track i{display:block;height:100%;background:var(--ink)}.lesson-list{display:flex;flex-direction:column}.lesson-row{display:grid;grid-template-columns:44px 1fr auto 104px;gap:16px;align-items:center;padding:14px 10px;border-radius:12px;transition:background .16s ease}.lesson-row:hover{background:var(--surface)}.lesson-row.locked{opacity:.52}.lesson-row .idx{font-family:var(--font-serif);font-size:12px;color:var(--muted)}.lesson-row .body h3{font-size:13.5px;font-weight:600;display:flex;align-items:center;gap:8px}.lesson-row .body .sub{font-size:10.5px;color:var(--muted);margin-top:2px;letter-spacing:.02em}.lesson-row .skills{display:flex;gap:5px;margin-top:6px}.lesson-row .skills span{font-size:9.5px;color:var(--muted);border:1px solid var(--line);border-radius:99px;padding:1px 7px;white-space:nowrap}.lesson-row .meta{display:flex;align-items:center;gap:14px;font-size:10.5px;color:var(--muted);white-space:nowrap}.lesson-row .state{display:flex;justify-content:flex-end}.lesson-row .state .done{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--success)}.lesson-row .state .start{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:600}.lesson-row .state .start .arrow{width:26px;height:26px;border-radius:50%;border:1px solid var(--line);display:inline-flex;align-items:center;justify-content:center}.lesson-row .state .lock{display:inline-flex;color:var(--muted)}.lesson-row .state .doing{font-size:10px;color:var(--accent-deep);display:inline-flex;align-items:center;gap:5px}.course-note{margin-top:28px;display:flex;align-items:center;gap:10px;font-size:11.5px;color:var(--muted)}.tab-bar{display:flex;gap:6px;padding:5px;border:1px solid var(--line);border-radius:999px;background:var(--surface);width:fit-content;margin-bottom:26px;max-width:100%;overflow-x:auto}.tab-bar button{display:flex;align-items:center;gap:7px;height:34px;padding:0 16px;border:0;border-radius:999px;background:transparent;font-size:12.5px;color:var(--muted);white-space:nowrap;transition:background .16s ease,color .16s ease}.tab-bar button.on{background:var(--ink);color:var(--paper);font-weight:500}.practice-grid{display:grid;grid-template-columns:1.55fr .85fr;gap:26px;align-items:start}.ex-surface{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-l);padding:28px 30px;min-height:430px;display:flex;flex-direction:column;animation:fade-up .35s ease both}.ex-top{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.ex-top .tag{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);display:flex;align-items:center;gap:7px}.ex-top .count{font-size:10.5px;color:var(--muted);font-variant-numeric:tabular-nums}.ex-progress{height:3px;border-radius:99px;background:var(--paper-2);overflow:hidden;margin-bottom:30px}.ex-progress i{display:block;height:100%;background:var(--accent);border-radius:99px;transition:width .35s ease}.ex-question{font-family:var(--font-serif);font-size:clamp(21px,2.4vw,27px);font-weight:400;letter-spacing:-.015em;line-height:1.4;max-width:640px}.ex-question .blank{color:var(--accent)}.ex-sub{margin-top:8px;font-size:12px;color:var(--muted)}.opt-list{display:flex;flex-direction:column;gap:9px;margin-top:24px}.opt{display:flex;align-items:center;gap:14px;width:100%;text-align:left;padding:13px 16px;border:1px solid var(--line);border-radius:13px;background:var(--surface);font-size:13.5px;transition:border-color .14s ease,background .14s ease}.opt:hover:not(.dim){border-color:var(--ink)}.opt .k{width:25px;height:25px;border-radius:50%;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:10.5px;color:var(--muted);flex:none}.opt.correct{border-color:var(--success);background:#f0f7f3}.opt.correct .k{border-color:var(--success);background:var(--success);color:#fff}.opt.wrong{border-color:var(--danger);background:#fbefeb}.opt.wrong .k{border-color:var(--danger);background:var(--danger);color:#fff}.opt.dim{opacity:.45}.explain{margin-top:18px;padding:14px 16px;border-radius:12px;background:var(--paper-2);font-size:12.5px;line-height:1.7;color:var(--ink-2);animation:fade-up .25s ease both}.explain b{display:block;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:5px}.ex-footer{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:auto;padding-top:26px}.ex-footer .hint{font-size:10.5px;color:var(--muted)}.ex-footer .actions{display:flex;gap:9px}.fill-box{margin-top:26px;padding:22px;border:1px solid var(--line);border-radius:14px;background:var(--paper);display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-family:var(--font-serif);font-size:clamp(19px,2.2vw,25px);line-height:1.7}.fill-box input{width:150px;border:0;border-bottom:2px solid var(--ink);background:transparent;font-family:inherit;font-size:inherit;padding:0 4px 2px;outline:none;text-align:center}.fill-box input:focus{border-color:var(--accent)}.fill-hint{margin-top:12px;font-size:11.5px;color:var(--muted)}.vocab-stage{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:8px 0 12px}.vocab-card{width:100%;max-width:480px;border:1px solid var(--line);border-radius:20px;background:var(--surface);padding:30px 30px 26px;text-align:center;position:relative;min-height:250px;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:var(--shadow-s);animation:fade-up .3s ease both}.vocab-card.flip{animation:none;background:var(--paper-2)}.vocab-card .speaker{position:absolute;right:16px;top:16px}.vocab-card .reading{font-size:12px;color:var(--muted);letter-spacing:.06em}.vocab-card .word{font-family:var(--font-serif);font-size:clamp(34px,4.4vw,46px);font-weight:400;letter-spacing:-.02em;line-height:1.2;margin-top:8px}.vocab-card .word.lang-ja{font-family:var(--font-ja);font-size:clamp(32px,4vw,44px)}.vocab-card .word.lang-ko{font-family:var(--font-ko);font-size:clamp(32px,4vw,44px)}.vocab-card .phon{margin-top:7px;font-size:12px;color:var(--muted)}.vocab-card .meaning{margin-top:16px;font-size:15px;color:var(--ink-2)}.vocab-card .example{margin-top:18px;padding-top:16px;border-top:1px dashed var(--line);width:100%;font-size:12.5px;color:var(--muted);line-height:1.7}.vocab-card .example b{display:block;color:var(--ink);font-weight:500}.vocab-actions{display:flex;gap:10px;margin-top:22px;width:100%;max-width:480px}.vocab-actions .btn{flex:1}.vocab-reveal{font-size:10.5px;color:var(--muted);margin-top:12px}.audio-panel{margin-top:22px;padding:20px;border-radius:14px;background:var(--paper);border:1px solid var(--line);display:flex;align-items:center;gap:16px}.audio-panel .play{width:48px;height:48px;border-radius:50%;border:0;background:var(--ink);color:var(--paper);display:flex;align-items:center;justify-content:center;flex:none}.audio-panel .play:hover{background:var(--accent)}.audio-panel .wave-lg{display:flex;align-items:center;gap:4px;flex:1;height:34px}.audio-panel .wave-lg i{display:block;width:3px;border-radius:3px;background:var(--ink-2);opacity:.5}.audio-panel .txt{font-size:10.5px;color:var(--muted)}.speak-stage{margin-top:18px;padding:26px;border:1px solid var(--line);border-radius:16px;background:var(--paper);text-align:center}.speak-stage .target{font-family:var(--font-serif);font-size:clamp(20px,2.4vw,27px);line-height:1.5;letter-spacing:-.01em}.speak-stage .target.lang-ja{font-family:var(--font-ja);font-size:clamp(19px,2.2vw,25px)}.speak-stage .target.lang-ko{font-family:var(--font-ko);font-size:clamp(19px,2.2vw,25px)}.speak-stage .trans{margin-top:9px;font-size:12px;color:var(--muted)}.speak-stage .tip{margin-top:14px;padding-top:13px;border-top:1px dashed var(--line);font-size:11.5px;color:var(--muted);line-height:1.65}.record-row{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:26px}.record-btn{width:60px;height:60px;border-radius:50%;border:0;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 26px -12px #e9582bb3}.record-btn.recording{background:var(--danger);animation:pulse 1.3s infinite}.record-btn:disabled{opacity:.6}@keyframes pulse{0%{box-shadow:0 0 #c2452d66}70%{box-shadow:0 0 0 18px #c2452d00}to{box-shadow:0 0 #c2452d00}}.record-row .side{font-size:11px;color:var(--muted);width:110px;line-height:1.5}.record-row .side.right{text-align:left}.record-row .side.left{text-align:right}.score-result{margin-top:18px;text-align:center;animation:fade-up .3s ease both}.score-result .score{font-family:var(--font-serif);font-size:46px;font-weight:400;line-height:1}.score-result .score small{font-size:15px;color:var(--muted)}.score-result .transcript{margin-top:8px;font-size:12px;color:var(--muted)}.score-result .verdict{margin-top:10px;display:inline-flex;align-items:center;gap:6px;font-size:11.5px}.practice-aside{display:flex;flex-direction:column;gap:16px}.aside-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-m);padding:20px 22px}.aside-panel .head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.aside-panel .head h3{font-family:var(--font-serif);font-size:17px;font-weight:500}.aside-panel .head span{font-size:10px;color:var(--muted)}.aside-stat{display:flex;align-items:baseline;justify-content:space-between;padding:9px 0;border-bottom:1px dashed var(--line);font-size:12px;color:var(--muted)}.aside-stat:last-child{border-bottom:0;padding-bottom:0}.aside-stat b{font-family:var(--font-serif);font-size:19px;font-weight:500;color:var(--ink)}.aside-tip{font-size:11.5px;color:var(--muted);line-height:1.75;padding:14px 16px;border-radius:12px;background:var(--paper-2)}.aside-tip b{display:block;color:var(--ink);font-size:12px;margin-bottom:4px}.practice-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:10px;padding:30px 0}.practice-empty .ic{width:56px;height:56px;border-radius:50%;background:var(--paper-2);display:flex;align-items:center;justify-content:center;color:var(--muted)}.practice-empty h3{font-family:var(--font-serif);font-size:22px;font-weight:500}.practice-empty p{font-size:12px;color:var(--muted);max-width:320px}@media (max-width: 1080px){.dash-cols{grid-template-columns:1fr}.dash-side{display:grid;grid-template-columns:1fr 1fr}.practice-grid{grid-template-columns:1fr}.practice-aside{display:grid;grid-template-columns:1fr 1fr}}@media (max-width: 900px){.dash-head{flex-direction:column;align-items:flex-start;gap:14px}.dash-top{grid-template-columns:1fr}.continue-card{min-height:196px}.stat-strip{padding-top:16px}.dash-side,.practice-aside{grid-template-columns:1fr}.course-head{flex-direction:column;align-items:flex-start}.course-head .stat{text-align:left}.lesson-row{grid-template-columns:34px 1fr auto}.lesson-row .meta{display:none}.lang-tabs{grid-template-columns:1fr}.lang-tab{display:flex;align-items:center;gap:14px;padding:14px 18px}.lang-tab .meta{margin-top:0}.lang-tab .bar{display:none}.lang-tab .pct{position:static;margin-left:auto}}@media (max-width: 600px){.stat-item b{font-size:30px}.ach-strip{gap:16px}.ach-strip .lead{border-right:0;border-bottom:1px solid var(--line);padding:0 0 12px;width:100%;min-width:0}.ach-strip .more{margin-left:0}.ex-surface{padding:20px 18px}.vocab-card{padding:24px 18px}.ex-footer{flex-direction:column;align-items:stretch}.ex-footer .actions .btn{flex:1}.lesson-row{grid-template-columns:28px 1fr}.lesson-row .state{grid-column:2;justify-content:flex-start;margin-top:4px}.level-head{flex-wrap:wrap;gap:8px 14px}.level-head .prog{width:100%}.audio-panel{padding:16px}.plan-panel .head{flex-direction:column;align-items:flex-start;gap:6px}.plan-panel .head h2{font-size:20px}.record-row .side{display:none}}.lesson-page{width:100%;max-width:1240px;margin:0 auto;padding:26px 44px 90px}.lesson-top{display:flex;align-items:center;gap:18px;padding-bottom:14px}.lesson-top .back{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--muted)}.lesson-top .back:hover{color:var(--ink)}.lesson-top-meta{display:flex;align-items:center;gap:12px;margin-left:auto}.lesson-prog-label{font-family:var(--font-serif);font-size:13px;color:var(--ink-2);min-width:54px;text-align:right}.lesson-progress{height:3px;background:var(--line-soft);border-radius:99px;overflow:hidden}.lesson-progress i{display:block;height:100%;background:var(--accent);border-radius:99px;transition:width .32s cubic-bezier(.3,.8,.3,1)}.lesson-layout{display:grid;grid-template-columns:minmax(0,1fr) 296px;gap:30px;align-items:start;margin-top:28px}.lesson-main{min-width:0}.intro-card{position:relative;overflow:hidden;background:var(--dark);color:var(--paper);border-radius:var(--radius-l);padding:42px 44px 32px;min-height:380px;display:flex;flex-direction:column}.intro-watermark{position:absolute;right:18px;top:-6px;font-family:var(--font-serif);font-size:208px;line-height:1;opacity:.075;pointer-events:none;letter-spacing:-.03em}.intro-card h1{font-family:var(--font-serif);font-size:clamp(38px,4.4vw,60px);font-weight:400;letter-spacing:-.035em;line-height:1.04;margin-top:16px;position:relative}.intro-card .objective{margin-top:16px;max-width:520px;font-size:13.5px;line-height:1.8;color:#f8f6f1ad;position:relative}.intro-vocab{display:grid;grid-template-columns:1fr 1fr;gap:0 30px;margin-top:30px;position:relative}.intro-vocab .iv{display:flex;align-items:baseline;gap:10px;padding:11px 0;border-top:1px solid rgba(255,255,255,.12);font-size:11.5px}.intro-vocab .iv b{font-size:16px;font-weight:500;color:var(--paper);min-width:84px}.intro-vocab .iv span:nth-child(2){color:#f8f6f173}.intro-vocab .iv span:last-child{margin-left:auto;color:#f8f6f1b3;text-align:right}.intro-foot{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:auto;padding-top:26px}.mini-stats{display:flex;gap:18px;font-size:10.5px;letter-spacing:.04em;color:#f8f6f173}.step-kicker{margin-bottom:12px}.lesson-ex{animation:fade-up .32s ease both}.lesson-rail{position:sticky;top:24px;display:flex;flex-direction:column;gap:14px}.rail-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-l);padding:22px}.rail-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:12px}.rail-head>span:last-child{font-family:var(--font-serif);font-size:12px;color:var(--muted)}.radial-track{height:2px;background:var(--line-soft);border-radius:99px;overflow:hidden;margin-bottom:18px}.radial-track i{display:block;height:100%;background:var(--accent);transition:width .3s ease}.rail-outline{display:flex;flex-direction:column;gap:2px}.rail-step{display:flex;align-items:center;gap:10px;padding:6px 8px;border-radius:8px;font-size:11.5px;color:var(--muted)}.rail-step .dot{width:19px;height:19px;border-radius:50%;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:9px;flex:none;color:var(--muted)}.rail-step.done{color:var(--ink-2)}.rail-step.done .dot{border-color:var(--success);color:var(--success)}.rail-step.current{color:var(--ink);font-weight:600;background:var(--accent-tint)}.rail-step.current .dot{border-color:var(--accent);background:var(--accent);color:#fff}.rail-step .pulse{width:5px;height:5px;border-radius:50%;background:#fff;animation:rail-pulse 1.4s ease infinite}@keyframes rail-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.7)}}.rail-note p{font-size:11.5px;line-height:1.8;color:var(--ink-2)}.rail-meta{display:flex;justify-content:space-between;margin-top:14px;padding-top:12px;border-top:1px solid var(--line-soft);font-size:10.5px;color:var(--muted)}.summary-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-l);padding:40px 42px;animation:fade-up .4s ease both}.summary-card h1{font-family:var(--font-serif);font-size:clamp(34px,4vw,48px);font-weight:400;letter-spacing:-.03em;line-height:1.05;margin-top:10px}.summary-card .mark{color:var(--accent)}.summary-card .sub{margin-top:12px;font-size:13px;color:var(--muted)}.summary-card .sub b{color:var(--ink);font-weight:600}.summary-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;margin-top:28px;background:var(--line-soft);border:1px solid var(--line-soft);border-radius:var(--radius-m);overflow:hidden}.summary-stats>div{background:var(--surface);padding:18px 20px;display:flex;flex-direction:column;gap:3px}.summary-stats b{font-family:var(--font-serif);font-size:30px;font-weight:500;line-height:1}.summary-stats span{font-size:10.5px;color:var(--muted)}.summary-vocab{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:26px}.summary-vocab .sv{display:flex;align-items:center;gap:10px;padding:10px 14px;border:1px solid var(--line-soft);border-radius:var(--radius-s);background:var(--surface-soft);font-size:11.5px}.summary-vocab .sv b{font-size:14px;font-weight:500}.summary-vocab .sv span{color:var(--muted);margin-right:auto}.summary-vocab .sv .icon-btn{color:var(--muted)}.summary-ach{margin-top:26px;padding-top:22px;border-top:1px solid var(--line-soft);display:flex;flex-wrap:wrap;align-items:center;gap:10px}.summary-ach>.kicker{width:100%}.summary-ach .sa{display:flex;align-items:center;gap:8px;padding:8px 12px 8px 8px;border:1px solid var(--line);border-radius:999px;font-size:11.5px}.summary-ach .sa .ic{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--paper-2);color:var(--ink-2)}.summary-ach .sa .ic.silver{background:#eef0f4;color:#5c6677}.summary-ach .sa .ic.gold{background:#fbf0d7;color:var(--gold)}.summary-ach .sa b{font-weight:600}.summary-ach .sa span:last-child{color:var(--accent-deep);font-size:10.5px}.summary-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:30px;padding-top:24px;border-top:1px solid var(--line-soft)}@media (max-width: 1080px){.lesson-page{padding:22px 28px 84px}.lesson-layout{grid-template-columns:1fr}.lesson-rail{position:static}}@media (max-width: 900px){.lesson-page{padding:18px 18px 100px}.intro-card{padding:30px 24px 24px;min-height:320px}.intro-watermark{font-size:140px}.intro-vocab{grid-template-columns:1fr}.summary-card{padding:28px 22px}.summary-stats{grid-template-columns:1fr 1fr}.summary-vocab{grid-template-columns:1fr}.lesson-top{flex-wrap:wrap;gap:10px}.lesson-top-meta{margin-left:0;width:100%;order:3}.lesson-prog-label{margin-left:auto}}@media (max-width: 600px){.intro-foot{flex-direction:column;align-items:flex-start}.intro-foot .btn{width:100%}.summary-actions .btn{width:100%;justify-content:center}}.panel-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-l);padding:24px 26px 26px;min-width:0}.p-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:20px}.p-head h3{font-family:var(--font-serif);font-size:21px;font-weight:500;letter-spacing:-.015em;line-height:1.2}.p-head p{margin-top:5px;font-size:11.5px;color:var(--muted);line-height:1.6}.p-tag{flex:none;display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border:1px solid var(--line);border-radius:999px;font-size:10.5px;color:var(--muted);white-space:nowrap;background:var(--surface-soft)}.p-tag.link{color:var(--ink);background:transparent;border-color:var(--line);transition:border-color .16s ease,color .16s ease}.p-tag.link:hover{border-color:var(--ink);color:var(--accent-deep)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{background:#a63a24}.dash-statbox{display:flex;flex-direction:column;justify-content:space-between;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-l);padding:22px 24px 20px;min-width:0}.dash-statbox .section-label{margin-bottom:18px}.dash-statbox .section-label h2{font-size:19px}.dash-statbox .stat-strip{padding-top:14px;gap:12px}.dash-mini-note{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:18px;padding-top:14px;border-top:1px dashed var(--line);font-size:11px;color:var(--muted)}.dash-mini-note span b{font-family:var(--font-serif);font-size:14px;font-weight:500;color:var(--ink);margin-right:2px}.badge-ic{flex:none;width:46px;height:46px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--accent-tint);color:var(--accent-deep);border:1px solid rgba(233,88,43,.18)}.join-panel{display:grid;grid-template-columns:.85fr 1.15fr;gap:30px;align-items:start;padding:30px 32px;margin-bottom:30px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-l);box-shadow:var(--shadow-s)}.join-panel h2{font-family:var(--font-serif);font-size:clamp(22px,2.4vw,30px);font-weight:400;letter-spacing:-.02em;line-height:1.16;margin-top:8px}.join-panel .micro{margin-top:10px;line-height:1.7;max-width:320px}.join-levels{display:flex;flex-direction:column;gap:9px}.join-levels .level-opt{padding:14px 18px;gap:16px}.join-levels .level-opt .code{font-size:22px;width:60px}.join-levels .level-opt .body b{font-size:12.5px}.join-levels .level-opt .body p{font-size:11px;margin-top:2px}.join-panel>.btn{grid-column:2;justify-self:start}.progress-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:22px}.kpi{position:relative;display:flex;flex-direction:column;align-items:flex-start;padding:20px 22px 18px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-m);min-width:0}.kpi-ic{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--accent-deep);background:var(--accent-tint);margin-bottom:12px}.kpi b{font-family:var(--font-serif);font-size:clamp(28px,3vw,38px);font-weight:400;letter-spacing:-.03em;line-height:1;font-variant-numeric:tabular-nums}.kpi span:not(.kpi-ic){margin-top:7px;font-size:10.5px;color:var(--muted);letter-spacing:.01em}.progress-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.heatmap{display:grid;grid-template-columns:repeat(15,minmax(0,1fr));gap:6px}.hm-cell{aspect-ratio:1 / 1;border-radius:4px;background:var(--paper-2)}.hm-cell.lv-0{background:var(--paper-2)}.hm-cell.lv-1{background:#fbdccf}.hm-cell.lv-2{background:#f3a488}.hm-cell.lv-3{background:var(--accent)}.heat-legend{display:flex;align-items:center;gap:6px;margin-top:16px;font-size:10px;color:var(--muted)}.heat-legend i{width:10px;height:10px;border-radius:3px;display:block}.heat-legend i.lv-0{background:var(--paper-2)}.heat-legend i.lv-1{background:#fbdccf}.heat-legend i.lv-2{background:#f3a488}.heat-legend i.lv-3{background:var(--accent)}.week-bars-lg{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;align-items:end;min-height:158px}.wb-col{display:flex;flex-direction:column;align-items:center;gap:8px;min-width:0}.wb-val{font-size:10px;color:var(--muted);font-variant-numeric:tabular-nums}.wb-track{width:100%;max-width:34px;height:104px;border-radius:6px;background:var(--paper-2);display:flex;align-items:flex-end;overflow:hidden}.wb-track i{display:block;width:100%;border-radius:6px;background:var(--ink);opacity:.82;transition:height .4s ease}.wb-col.today .wb-track i{background:var(--accent);opacity:1}.wb-col.today .wb-val{color:var(--ink);font-weight:600}.wb-lbl{font-size:10px;color:var(--muted);letter-spacing:.04em}.skill-rows{display:flex;flex-direction:column;gap:15px}.skill-row{display:grid;grid-template-columns:52px minmax(0,1fr) 52px;align-items:center;gap:12px}.sk-name{font-size:11.5px;color:var(--ink-2)}.skill-row.weak .sk-name{color:var(--accent-deep);font-weight:600}.sk-track{height:7px;border-radius:99px;background:var(--paper-2);overflow:hidden}.sk-track i{display:block;height:100%;border-radius:99px;background:var(--ink);opacity:.78}.skill-row.weak .sk-track i{background:var(--accent);opacity:1}.sk-val{font-size:10.5px;color:var(--muted);text-align:right;font-variant-numeric:tabular-nums}.lang-progress{display:flex;flex-direction:column;gap:12px}.lp-row{display:flex;align-items:center;gap:14px;padding:12px 14px;border:1px solid var(--line-soft);border-radius:var(--radius-s);background:var(--surface-soft)}.lp-row.on{border-color:var(--line);background:var(--paper-2)}.lp-glyph{font-family:var(--font-serif);font-size:25px;line-height:1;flex:none;width:34px;text-align:center}.lp-body{flex:1;min-width:0}.lp-body b{display:block;font-size:12px;font-weight:600;margin-bottom:7px}.lp-track{height:5px;border-radius:99px;background:#19181317;overflow:hidden}.lp-track i{display:block;height:100%;border-radius:99px}.lp-val{font-size:10.5px;color:var(--muted);font-variant-numeric:tabular-nums;flex:none}.progress-lower{display:grid;grid-template-columns:1.55fr .85fr;gap:22px;margin-top:22px;align-items:start}.recent-list{display:flex;flex-direction:column}.recent-row{display:flex;align-items:center;gap:14px;padding:13px 2px;border-bottom:1px dashed var(--line);transition:padding .18s ease}.recent-row:last-child{border-bottom:0}.recent-row:hover{padding-left:8px}.recent-glyph{flex:none;width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-family:var(--font-serif);font-size:19px;background:var(--paper-2);color:var(--ink)}.recent-body{flex:1;min-width:0}.recent-body b{display:block;font-size:12.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recent-body span{display:block;font-size:10.5px;color:var(--muted);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recent-score{font-family:var(--font-serif);font-size:15px;color:var(--ink-2);font-variant-numeric:tabular-nums;flex:none}.recent-go{flex:none;color:var(--muted);display:flex}.empty-line{display:flex;flex-direction:column;align-items:flex-start;gap:14px;padding:24px 0 8px;font-size:12px;color:var(--muted);line-height:1.7}.goal-card{display:flex;flex-direction:column}.goal-ring-row{display:flex;align-items:center;gap:20px;margin:6px 0 22px}.goal-ring-row .ring-center b{font-family:var(--font-serif);font-size:25px;font-weight:400;letter-spacing:-.03em}.goal-ring-row .ring-center span{font-size:9.5px;color:var(--muted);margin-top:2px}.goal-lines{flex:1;display:grid;grid-template-columns:repeat(2,1fr);gap:10px 16px}.goal-lines>div{padding-bottom:8px;border-bottom:1px dashed var(--line)}.goal-lines span{display:block;font-size:10px;color:var(--muted)}.goal-lines b{display:block;font-family:var(--font-serif);font-size:17px;font-weight:500;margin-top:1px}.community-layout{display:grid;grid-template-columns:1.62fr .88fr;gap:26px;align-items:start}.community-main{min-width:0}.compose-card{padding:18px 20px 16px;margin-bottom:18px}.compose-head{display:flex;align-items:center;gap:10px}.compose-head b{display:block;font-size:12.5px;font-weight:600}.compose-head span{display:block;font-size:10.5px;color:var(--muted);margin-top:1px}.compose-card .textarea{margin-top:12px;min-height:78px;resize:vertical}.compose-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px}.feed{display:flex;flex-direction:column;gap:14px}.post-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-l);padding:20px 22px 16px}.post-head{display:flex;align-items:center;gap:10px}.post-head .who{min-width:0;flex:1}.post-head .who b{display:flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600}.post-head .who span{display:block;font-size:10.5px;color:var(--muted);margin-top:1px}.mine-tag{font-size:9px;font-weight:600;color:var(--accent-deep);background:var(--accent-tint);border-radius:4px;padding:1px 5px;letter-spacing:.04em}.post-lang{flex:none;font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:2px 9px}.post-text{margin-top:12px;font-size:13.5px;line-height:1.85;color:var(--ink-2);white-space:pre-wrap;word-break:break-word}.post-actions{display:flex;align-items:center;gap:6px;margin-top:14px;padding-top:12px;border-top:1px dashed var(--line)}.pa-btn{display:inline-flex;align-items:center;gap:6px;border:0;background:transparent;padding:5px 9px;border-radius:8px;font-size:11.5px;color:var(--muted);transition:background .16s ease,color .16s ease}.pa-btn:hover{background:var(--paper-2);color:var(--ink)}.pa-btn.on{color:var(--accent-deep)}.comment-box{margin-top:12px;padding:14px 14px 12px;background:var(--surface-soft);border:1px solid var(--line-soft);border-radius:var(--radius-s)}.comment{display:flex;gap:9px;padding-bottom:11px;margin-bottom:11px;border-bottom:1px dashed var(--line-soft)}.comment b{display:block;font-size:11px;font-weight:600}.comment p{font-size:12px;line-height:1.65;color:var(--ink-2);margin-top:2px}.comment span{display:block;font-size:9.5px;color:var(--muted);margin-top:3px}.comment-write{display:flex;gap:8px;align-items:center}.comment-write .input{flex:1;height:34px;font-size:12px;background:var(--surface)}.side-stack{display:flex;flex-direction:column;gap:18px;min-width:0}.side-stack .panel-card{padding:20px 20px 18px}.side-stack .p-head{margin-bottom:14px}.side-stack .p-head h3{font-size:18px}.leader-list{display:flex;flex-direction:column}.leader-row{display:flex;align-items:center;gap:9px;padding:8px 0;border-bottom:1px dashed var(--line-soft)}.leader-row:last-child{border-bottom:0}.leader-row.me{margin-top:4px;padding:9px 8px;border:1px solid var(--line);border-radius:var(--radius-s);background:var(--paper-2)}.rank{flex:none;width:18px;text-align:center;font-family:var(--font-serif);font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}.rank.r1{color:var(--gold);font-weight:600}.rank.r2{color:var(--ink-2)}.rank.r3{color:#a8754c}.leader-row .lb{flex:1;min-width:0}.leader-row .lb b{display:block;font-size:11.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.leader-row .lb span{display:block;font-size:9.5px;color:var(--muted)}.leader-row .xp{flex:none;font-size:10px;color:var(--muted);font-variant-numeric:tabular-nums}.challenge-list,.group-list{display:flex;flex-direction:column;gap:12px}.challenge-row{padding:12px 13px;border:1px solid var(--line-soft);border-radius:var(--radius-s);background:var(--surface-soft)}.ch-top{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.ch-top b{font-size:12px;font-weight:600}.ch-top span{flex:none;font-size:9.5px;color:var(--muted)}.challenge-row>p{font-size:10.5px;color:var(--muted);line-height:1.6;margin-top:4px}.ch-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:10px}.ch-foot .btn{height:27px;padding:0 11px;font-size:10.5px}.group-row{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px dashed var(--line-soft)}.group-row:last-child{border-bottom:0}.g-dot{width:8px;height:8px;border-radius:50%;background:var(--ko);flex:none;box-shadow:0 0 0 4px #0e9c861f}.g-body{flex:1;min-width:0}.g-body b{display:block;font-size:11.5px;font-weight:600}.g-body span{display:block;font-size:9.5px;color:var(--muted);margin-top:1px}.group-row .btn{height:26px;padding:0 10px;font-size:10px;flex:none}.ach-hero{display:grid;grid-template-columns:190px minmax(0,1fr);gap:32px;align-items:center;padding:28px 34px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-l);box-shadow:var(--shadow-s);margin-bottom:24px}.ach-hero-ring{display:flex;justify-content:center}.ach-hero-ring .ring-center b{font-family:var(--font-serif);font-size:38px;font-weight:400;letter-spacing:-.04em;line-height:1}.ach-hero-ring .ring-center span{font-size:10px;color:var(--muted);margin-top:3px}.ach-hero-body h2{font-family:var(--font-serif);font-size:clamp(24px,2.6vw,33px);font-weight:400;letter-spacing:-.02em;line-height:1.15}.ach-hero-body h2 .mark{color:var(--accent)}.ach-hero-body>p{margin-top:10px;font-size:12.5px;color:var(--muted);line-height:1.7;max-width:520px}.tier-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.tier-chip{display:inline-flex;align-items:center;gap:6px;font-size:10.5px;color:var(--ink-2);border:1px solid var(--line);border-radius:999px;padding:4px 11px;background:var(--surface-soft)}.tier-chip i{width:7px;height:7px;border-radius:50%;display:block;background:#bf8b5f}.tier-chip.silver i{background:#a7a7a2}.tier-chip.gold i{background:var(--gold)}.next-ach{display:flex;align-items:center;gap:12px;margin-top:18px;padding:12px 14px;border:1px dashed var(--line);border-radius:var(--radius-s);background:var(--surface-soft)}.na-ic{flex:none;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--paper-2);color:var(--ink-2)}.next-ach>div{flex:1;min-width:0}.next-ach b{display:block;font-size:11.5px;font-weight:600}.na-track{height:4px;border-radius:99px;background:var(--paper-3);overflow:hidden;margin-top:7px}.na-track i{display:block;height:100%;border-radius:99px;background:var(--gold)}.na-val{flex:none;font-size:10.5px;color:var(--muted);font-variant-numeric:tabular-nums}.na-xp{flex:none;font-size:10.5px;font-weight:600;color:var(--accent-deep)}.ach-grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.ach-card{display:flex;align-items:flex-start;gap:13px;padding:17px 18px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-m);transition:border-color .18s ease,box-shadow .18s ease}.ach-card:hover{border-color:var(--line-strong, #cfc8b8);box-shadow:var(--shadow-s)}.ach-card.on{border-color:#e9582b4d;background:linear-gradient(180deg,#fffdfb,#fff 60%)}.ach-badge{flex:none;width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--paper-2);color:var(--muted);border:1px solid var(--line)}.ach-card.on .ach-badge{background:var(--accent-tint);color:var(--accent-deep);border-color:#e9582b33}.ach-card.tier-silver.on .ach-badge{background:#f1f1ee;color:#77756c}.ach-card.tier-gold.on .ach-badge{background:#fbf1da;color:#a97b24}.ach-info{flex:1;min-width:0}.ach-title-row{display:flex;align-items:center;gap:8px}.ach-title-row b{font-size:12.5px;font-weight:600}.tier-tag{flex:none;font-size:8.5px;letter-spacing:.08em;padding:1px 6px;border-radius:4px;color:#96643c;background:#f7ece2}.tier-tag.silver{color:#706e64;background:#efefec}.tier-tag.gold{color:#8c651b;background:#faf0d8}.ach-info>p{font-size:10.5px;color:var(--muted);line-height:1.65;margin-top:3px}.ach-progress{display:flex;align-items:center;gap:8px;margin-top:9px}.ach-progress .progress-track{flex:1}.ach-progress .micro{font-size:9.5px;flex:none;font-variant-numeric:tabular-nums}.ach-xp{flex:none;font-family:var(--font-serif);font-size:12px;color:var(--accent-deep);font-variant-numeric:tabular-nums;padding-top:2px}.ach-card.locked{background:var(--surface-soft)}.ach-card.locked .ach-title-row b{color:var(--ink-2)}.ach-card.locked .ach-xp{color:var(--muted)}.ach-footer{display:flex;align-items:center;gap:9px;margin-top:22px;padding:14px 16px;border-top:1px dashed var(--line);font-size:11.5px;color:var(--muted)}.profile-hero{display:flex;align-items:center;gap:22px;padding:26px 30px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-l);box-shadow:var(--shadow-s);margin-bottom:24px}.ph-body{flex:1;min-width:0}.ph-body h2{display:flex;align-items:center;gap:10px;font-family:var(--font-serif);font-size:27px;font-weight:400;letter-spacing:-.02em}.ph-tag{display:inline-flex;align-items:center;gap:4px;font-family:var(--font-sans);font-size:9.5px;font-weight:500;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:2px 8px;letter-spacing:.02em}.ph-body>p{font-size:11.5px;color:var(--muted);margin-top:4px}.ph-meta{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:10px;font-size:10.5px;color:var(--muted)}.ph-meta span{display:inline-flex;align-items:center;gap:5px}.ph-stats{flex:none;display:grid;grid-template-columns:repeat(3,auto);gap:0}.ph-stats>div{padding:0 22px;text-align:center;border-left:1px dashed var(--line)}.ph-stats>div:last-child{padding-right:0}.ph-stats b{display:block;font-family:var(--font-serif);font-size:28px;font-weight:400;letter-spacing:-.03em;line-height:1;font-variant-numeric:tabular-nums}.ph-stats span{display:block;font-size:9.5px;color:var(--muted);margin-top:6px}.profile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;align-items:start}.profile-grid>section:nth-child(3){grid-column:span 2}.pref-options{display:flex;flex-wrap:wrap;gap:8px}.pref-chip{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:6px 14px;font-size:11.5px;color:var(--ink-2);transition:border-color .16s ease,background .16s ease,color .16s ease}.pref-chip:hover{border-color:var(--ink)}.pref-chip.on{background:var(--ink);border-color:var(--ink);color:var(--paper)}.pref-options.compact .pref-chip{padding:5px 12px;font-size:11px}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:20px;padding-top:18px;border-top:1px dashed var(--line)}.setting-row>div>b{font-size:12.5px;font-weight:600}.setting-row>div>p{margin-top:2px}.setting-row .pref-options{justify-content:flex-end}.profile-langs{display:flex;flex-direction:column;gap:9px}.pl-row{display:flex;align-items:center;gap:13px;padding:11px 13px;border:1px solid var(--line-soft);border-radius:var(--radius-s);background:var(--surface-soft)}.pl-row.on{border-color:var(--line);background:var(--paper-2)}.pl-glyph{flex:none;width:30px;text-align:center;font-family:var(--font-serif);font-size:23px;line-height:1}.pl-row>div{flex:1;min-width:0}.pl-row>div b{display:block;font-size:12px;font-weight:600}.pl-row>div span{display:block;font-size:10.5px;color:var(--muted);margin-top:1px}.active-tag{flex:none;display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:600;color:var(--success)}.profile-langs .btn-block{margin-top:4px;height:38px}.account-rows{display:flex;flex-direction:column}.account-row{display:flex;align-items:baseline;justify-content:space-between;gap:20px;padding:10px 0;border-bottom:1px dashed var(--line)}.account-row:last-child{border-bottom:0}.account-row span{font-size:11.5px;color:var(--muted);flex:none}.account-row b{font-size:12px;font-weight:500;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.danger-zone{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:16px;padding:14px 16px;border:1px dashed rgba(194,69,45,.35);border-radius:var(--radius-s);background:#fcf3f0}.danger-zone b{font-size:12px;font-weight:600;color:var(--danger)}.danger-zone p{margin-top:2px;max-width:380px}.confirm-row{display:flex;align-items:center;gap:8px;flex:none}@media (max-width: 1080px){.progress-lower{grid-template-columns:1.4fr .9fr}.ach-hero{grid-template-columns:160px minmax(0,1fr);gap:24px;padding:24px 26px}.profile-grid>section:nth-child(3){grid-column:span 2}}@media (max-width: 900px){.progress-kpis{grid-template-columns:repeat(2,1fr)}.progress-grid,.progress-lower,.community-layout,.ach-grid2,.profile-grid{grid-template-columns:1fr}.profile-grid>section:nth-child(3){grid-column:auto}.ach-hero{grid-template-columns:1fr;gap:20px}.ach-hero-ring{justify-content:flex-start}.join-panel{grid-template-columns:1fr;gap:18px}.join-panel>.btn{grid-column:auto}.profile-hero{flex-wrap:wrap}.ph-stats{width:100%;padding-top:16px;border-top:1px dashed var(--line)}.ph-stats>div{flex:1;border-left:0;padding:0}.setting-row{flex-direction:column;align-items:flex-start;gap:14px}.setting-row .pref-options{justify-content:flex-start}.danger-zone{flex-direction:column;align-items:flex-start;gap:12px}}@media (max-width: 600px){.panel-card{padding:18px 16px}.progress-kpis{gap:10px}.kpi{padding:15px 14px 14px}.kpi-ic{width:26px;height:26px;margin-bottom:9px}.heatmap{grid-template-columns:repeat(10,minmax(0,1fr));gap:5px}.week-bars-lg{min-height:132px}.wb-track{height:86px}.goal-ring-row{align-items:flex-start;gap:14px}.community-layout{gap:18px}.post-card{padding:16px 15px 13px}.ach-card{padding:14px}.ach-xp{font-size:11px}.ach-footer{flex-wrap:wrap}.ach-footer .btn-text{margin-left:0!important}.profile-hero{padding:20px;gap:16px}.ph-body h2{font-size:23px}.ph-stats b{font-size:24px}.pref-chip{padding:6px 12px;font-size:11px}.account-row{flex-direction:column;align-items:flex-start;gap:2px}.account-row b{text-align:left}}
