:root{--bg:#f5f5f7;--ink:#1d1d1f;--ink-soft:#6e6e73;--ink-faint:#86868b;--accent:#0071e3;--accent-hover:#0077ed;--hairline:#00000014;--glass:#fff9;--glass-strong:#ffffffb8;--glass-border:#ffffffa6;--glass-shadow:0 4px 24px #0000000f, 0 1px 2px #0000000a;--glass-shadow-lg:0 16px 50px #0000001a, 0 2px 6px #0000000d;--add:#1d8a4e;--add-bg:#34c75924;--del:#d22f2f;--del-bg:#ff3b301f;--radius:22px;--radius-sm:14px;--sf:-apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", "Helvetica Neue", Helvetica, Arial, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--sf);color:var(--ink);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;background:linear-gradient(#fbfbfd 0%,#f3f3f6 100%) fixed;margin:0}body:before,body:after{content:"";z-index:-1;pointer-events:none;will-change:transform;position:fixed;inset:-25%}body:before{background:radial-gradient(34rem 28rem at 15% 12%,#0a84ff2e,#0000 60%),radial-gradient(32rem 28rem at 88% 16%,#bf5af226,#0000 60%);animation:28s ease-in-out infinite alternate driftA}body:after{background:radial-gradient(40rem 32rem at 72% 102%,#ff9f0a1f,#0000 60%),radial-gradient(28rem 26rem at 4% 92%,#30d1581a,#0000 60%);animation:34s ease-in-out infinite alternate driftB}@keyframes driftA{0%{transform:translate(0,0)scale(1)}to{transform:translate(4%,3%)scale(1.12)}}@keyframes driftB{0%{transform:translate(0,0)scale(1.06)}to{transform:translate(-4%,-3%)scale(1)}}@media (prefers-reduced-motion:reduce){body:before,body:after{animation:none}}button{cursor:pointer;font-family:inherit}textarea{font-family:inherit}.app{flex-direction:column;max-width:720px;min-height:100vh;margin:0 auto;padding:30px 20px 28px;display:flex}.app>*{flex-shrink:0}.titlebar{display:none}@media (display-mode:window-controls-overlay){.titlebar{height:env(titlebar-area-height,40px);-webkit-app-region:drag;app-region:drag;z-index:50;display:block;position:fixed;top:0;left:0;right:0}.app{padding-top:calc(env(titlebar-area-height,40px) + 20px)}.landing{padding-top:env(titlebar-area-height,40px)}.signout,.tab,.cta,.ghost,.chip,button{-webkit-app-region:no-drag;app-region:no-drag}}.masthead{justify-content:space-between;align-items:center;gap:16px;margin-bottom:26px;display:flex}.brand{align-items:center;gap:11px;display:flex}.brand .dot{background:linear-gradient(160deg,#0a84ff,#5e5ce6);border-radius:50%;width:11px;height:11px;animation:.55s cubic-bezier(.22,1,.36,1) both dotIn;display:inline-block;box-shadow:0 1px 4px #0a84ff66}.brand-name{letter-spacing:-.022em;color:var(--ink);font-size:24px;font-weight:600;display:inline-flex}.brand-letter{white-space:pre;animation:.55s cubic-bezier(.22,1,.36,1) both letterIn;display:inline-block}@keyframes letterIn{0%{opacity:0;transform:translateY(.45em)}to{opacity:1;transform:none}}@keyframes dotIn{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}.tagline{color:var(--ink-faint);letter-spacing:-.01em;font-size:13px;font-weight:400}.signout{border:1px solid var(--hairline);color:var(--ink-soft);letter-spacing:-.01em;background:0 0;border-radius:999px;padding:7px 14px;font-size:13px;font-weight:500;transition:background .15s}.signout:hover{background:#0000000a}.masthead-actions{align-items:center;gap:9px;display:flex}.langswitch{position:relative}.lang-chip{-webkit-backdrop-filter:blur(16px)saturate(160%);border:1px solid var(--hairline);color:var(--ink-soft);letter-spacing:-.01em;background:#ffffff80;border-radius:999px;align-items:center;gap:6px;padding:6px 11px;font-size:13px;font-weight:600;transition:background .15s;display:inline-flex}.lang-chip:hover{background:#ffffffd9}.lang-chip .chev{color:var(--ink-faint);margin-left:-1px;font-size:11px}.lang-flag{font-size:14px;line-height:1}.lang-backdrop{z-index:20;position:fixed;inset:0}.lang-menu{z-index:21;background:var(--glass-strong);-webkit-backdrop-filter:blur(22px)saturate(170%);border:1px solid var(--glass-border);transform-origin:100% 0;border-radius:15px;min-width:208px;padding:6px;animation:.14s ease-out both langMenuIn;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 14px 38px #00000029}@keyframes langMenuIn{0%{opacity:0;transform:scale(.96)translateY(-3px)}to{opacity:1;transform:none}}.gear-ico{font-size:14px;line-height:1}.settings-pop{background:#fffffff5;min-width:312px;padding:14px}.settings-head{letter-spacing:-.01em;margin-bottom:10px;font-size:14px;font-weight:600}.settings-section-label{letter-spacing:-.01em;color:var(--ink-soft);margin-bottom:6px;font-size:13px;font-weight:600}.settings-langs{gap:2px;margin-bottom:2px;display:grid}.settings-divider{border-top:1px solid var(--hairline);margin:12px 0}.settings-signout{text-align:center;width:100%}.keysetup-card{max-width:430px}.keysetup-step{letter-spacing:-.01em;color:var(--ink-faint);margin-top:18px;font-size:12.5px;font-weight:500}.keysetup-title{letter-spacing:-.02em;margin:8px 0;font-size:21px;font-weight:650}.keysetup-langs{text-align:left;margin:18px 0 16px}.keysetup-form{text-align:left;margin:14px 0}.keysetup-card .landing-cta{width:100%}.keysetup-back{text-align:center;width:100%;margin-top:14px}.keysetup-card .settings-signout{margin-top:10px}.settings-field-label{letter-spacing:-.01em;color:var(--ink-soft);margin:2px 0 6px;font-size:12.5px;font-weight:600}.settings-help{color:var(--ink-soft);margin:0 0 6px;font-size:12.5px;line-height:1.45}.settings-help a{color:var(--accent);text-decoration:none}.settings-help a:hover{text-decoration:underline}.settings-status{color:var(--ink-faint);margin:4px 0 10px;font-size:12px}.settings-input{box-sizing:border-box;background:#ffffffb3;border:1px solid #00000029;border-radius:10px;outline:none;width:100%;padding:9px 12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13.5px;transition:border-color .15s}.settings-input:focus{border-color:var(--accent)}.keyfield{position:relative}.keyfield .settings-input{padding-right:42px}.keyfield-eye{cursor:pointer;opacity:.55;background:0 0;border:0;padding:6px 8px;font-size:15px;line-height:1;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.keyfield-eye:hover{opacity:1}.settings-actions{align-items:center;gap:8px;margin-top:10px;display:flex}.settings-save{padding:8px 16px;font-size:13.5px}.settings-msg{margin-top:9px;font-size:12.5px;line-height:1.4}.settings-msg.ok{color:#1d7a3c}.settings-msg.bad{color:#c0392b}.settings-tuts{border-bottom:1px solid var(--hairline);gap:4px;margin:4px 0 14px;padding-bottom:10px;display:grid}.settings-tut summary{cursor:pointer;color:var(--ink-soft);letter-spacing:-.01em;padding:4px 0;font-size:12.5px;font-weight:600;list-style-position:inside}.settings-tut summary:hover{color:var(--ink)}.settings-tut a{color:var(--accent);margin:2px 0 2px 18px;font-size:12.5px;text-decoration:none;display:inline-block}.settings-tut a:hover{text-decoration:underline}.settings-tut ol{color:var(--ink-soft);margin:2px 0 8px;padding-left:34px;font-size:12.5px;line-height:1.5}.settings-tut li{margin-bottom:2px}.lang-opt{appearance:none;letter-spacing:-.01em;white-space:nowrap;width:100%;color:var(--ink-soft);background:0 0;border:0;border-radius:10px;justify-content:space-between;align-items:center;gap:12px;padding:9px 11px;font-size:14px;font-weight:500;transition:background .12s;display:flex}.lang-opt>span:first-child{align-items:center;gap:9px;display:inline-flex}.lang-opt:hover{background:#0000000d}.lang-opt.active{color:var(--ink);font-weight:600}.lang-tick{color:var(--accent);font-size:13px;font-weight:700}.landing{justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.landing-card{background:var(--glass-strong);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(30px)saturate(180%);border-radius:var(--radius);width:100%;max-width:380px;box-shadow:var(--glass-shadow-lg);text-align:center;padding:38px 34px 34px}.landing-brand{justify-content:center}.landing-brand .brand-name{font-size:42px}.landing-brand .dot{width:13px;height:13px}.landing-tagline{color:var(--ink-faint);letter-spacing:-.01em;margin:10px 0 26px;font-size:14px}.landing-text{color:var(--ink-soft);letter-spacing:-.01em;margin:0 0 18px;font-size:15px;line-height:1.5}.landing-input{letter-spacing:-.01em;width:100%;color:var(--ink);background:#ffffffb3;border:1px solid #00000024;border-radius:12px;outline:none;margin-bottom:12px;padding:12px 15px;font-size:16px;transition:border-color .15s}.landing-input:focus{border-color:var(--accent)}.landing-cta{justify-content:center;align-items:center;width:100%;display:flex}.landing-back{color:var(--ink-faint);letter-spacing:-.01em;background:0 0;border:none;margin:14px auto 0;font-size:13px;display:block}.landing-back:hover{color:var(--ink-soft)}.landing .error-box{text-align:left;margin-top:14px}.gbtn{width:100%;color:var(--ink);letter-spacing:-.01em;background:#fff;border:1px solid #00000029;border-radius:999px;justify-content:center;align-items:center;gap:10px;padding:11px 18px;font-size:14.5px;font-weight:500;transition:background .15s,border-color .15s,box-shadow .15s;display:flex;box-shadow:0 1px 2px #0000000d}.gbtn:hover{background:#f5f5f7;border-color:#0000003d;box-shadow:0 2px 6px #00000014}.or{color:var(--ink-faint);align-items:center;gap:12px;margin:16px 0;font-size:12px;display:flex}.or:before,.or:after{content:"";background:var(--hairline);flex:1;height:1px}.mkt{max-width:900px;margin:0 auto;padding:0 24px 64px}.mkt-head{justify-content:space-between;align-items:center;padding:22px 0 0;display:flex}.mkt-tag{color:var(--ink-faint);letter-spacing:-.01em;font-size:13px}.mkt-hero{text-align:center;max-width:640px;margin:0 auto;padding:60px 0 8px}.mkt-eyebrow{letter-spacing:.01em;color:var(--accent);background:#0071e31a;border-radius:999px;padding:5px 13px;font-size:12.5px;font-weight:600;animation:.6s cubic-bezier(.22,1,.36,1) both heroIn;display:inline-block}.mkt-h1{letter-spacing:-.03em;color:var(--ink);margin:22px 0 0;font-size:clamp(33px,5.4vw,52px);font-weight:600;line-height:1.06;animation:.6s cubic-bezier(.22,1,.36,1) 60ms both heroIn}.mkt-sub{letter-spacing:-.01em;color:var(--ink-soft);max-width:558px;margin:20px auto 0;font-size:17.5px;line-height:1.5;animation:.6s cubic-bezier(.22,1,.36,1) .12s both heroIn}@keyframes heroIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.mkt-auth{background:var(--glass-strong);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(30px)saturate(180%);border-radius:var(--radius);width:100%;max-width:372px;box-shadow:var(--glass-shadow-lg);text-align:center;margin:32px auto 0;padding:24px 24px 22px;animation:.6s cubic-bezier(.22,1,.36,1) .18s both heroIn}.mkt-auth .or{margin:14px 0}.mkt-fine{color:var(--ink-faint);letter-spacing:-.01em;margin:13px 0 0;font-size:12.5px}.mkt .error-box{text-align:left;margin-top:14px}.mkt-features{grid-template-columns:repeat(2,1fr);gap:16px;max-width:760px;margin:52px auto 0;display:grid}.mkt-feat{text-align:left;-webkit-backdrop-filter:blur(16px)saturate(160%);border:1px solid var(--glass-border);border-radius:var(--radius-sm);background:#ffffff80;padding:20px 20px 18px}.mkt-feat h3{letter-spacing:-.02em;color:var(--ink);margin:0 0 7px;font-size:16px;font-weight:600}.mkt-feat p{letter-spacing:-.01em;color:var(--ink-soft);margin:0;font-size:14px;line-height:1.5}.mkt-foot{text-align:center;color:var(--ink-faint);letter-spacing:-.01em;margin-top:48px;font-size:13px}.mkt-foot a,.app-foot a{color:var(--ink-soft);border-bottom:1px solid var(--hairline);text-decoration:none;transition:color .15s,border-color .15s}.mkt-foot a:hover,.app-foot a:hover{color:var(--accent);border-color:#0071e366}.app-foot{text-align:center;color:var(--ink-faint);letter-spacing:-.01em;margin-top:auto;padding:56px 0 10px;font-size:12.5px}.mkt-legal{letter-spacing:-.005em;color:var(--ink-faint);max-width:560px;margin:0 auto 12px;font-size:12px;line-height:1.55}@media (width<=640px){.mkt-features{grid-template-columns:1fr}.mkt-hero{padding-top:44px}}.admin-row{border-bottom:1px solid var(--hairline);justify-content:space-between;align-items:center;gap:14px;padding:14px 4px;display:flex}.admin-email{letter-spacing:-.01em;color:var(--ink);font-size:15px}.admin-row .cta{padding:8px 16px}.hi-badge.ok{color:var(--add);background:var(--add-bg)}.tabs{background:var(--glass);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);-webkit-backdrop-filter:blur(20px)saturate(180%);border-radius:999px;gap:2px;margin-bottom:24px;padding:4px;display:inline-flex}.tab{color:var(--ink-soft);letter-spacing:-.01em;background:0 0;border:none;border-radius:999px;padding:7px 18px;font-size:14px;font-weight:500;transition:color .2s,background .2s}.tab.active{color:var(--ink);background:#fff;box-shadow:0 1px 3px #0000001f}.chip-group{margin-bottom:14px}.chip-label{letter-spacing:-.01em;color:var(--ink-soft);margin:0 0 7px 4px;font-size:13px;font-weight:600;display:block}.chips{flex-wrap:wrap;gap:7px;display:flex}.chip{border:1px solid var(--hairline);-webkit-backdrop-filter:blur(16px)saturate(160%);color:var(--ink-soft);letter-spacing:-.01em;background:#ffffff80;border-radius:999px;padding:6px 15px;font-size:13px;font-weight:500;transition:background .18s,color .18s,border-color .18s}.chip:hover{background:#ffffffd9}.chip.active{color:var(--accent);background:#0071e31f;border-color:#0071e359}.tone-summary{color:var(--ink-soft);letter-spacing:-.01em;background:0 0;border:none;border-radius:8px;align-items:center;gap:5px;padding:5px 8px;font-size:13px;font-weight:500;transition:background .15s,color .15s;display:inline-flex}.tone-summary:hover{color:var(--ink);background:#0000000a}.tone-summary .chev{opacity:.7;font-size:11px;transition:transform .2s}.tone-summary.open .chev{transform:rotate(180deg)}.tone-panel{margin:14px 2px 0;animation:.25s both rise}@media (width<=640px){.tabs{scrollbar-width:none;-webkit-overflow-scrolling:touch;width:100%;display:flex;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tab{white-space:nowrap;flex:none;padding:7px 14px;font-size:13px}}.composer,.polished,.change,.coach-note,.notice{background:var(--glass);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(30px)saturate(180%)}.composer{border-radius:var(--radius);box-shadow:var(--glass-shadow-lg);padding:8px 8px 12px}.composer textarea{resize:vertical;width:100%;min-height:130px;color:var(--ink);letter-spacing:-.01em;background:0 0;border:none;outline:none;padding:16px 16px 6px;font-size:17px;line-height:1.5}.composer textarea::placeholder{color:var(--ink-faint)}.composer-bar{justify-content:space-between;align-items:center;padding:4px 10px 2px;display:flex}.hint{color:var(--ink-faint);font-size:12.5px}.cta{background:var(--accent);color:#fff;letter-spacing:-.01em;border:none;border-radius:999px;padding:10px 20px;font-size:14.5px;font-weight:500;transition:background .18s,transform 60ms}.cta:hover{background:var(--accent-hover)}.cta:active{transform:scale(.98)}.cta:disabled{opacity:.45;cursor:default}.kbd{font:inherit;border:1px solid var(--hairline);color:var(--ink-soft);background:#0000000d;border-radius:6px;padding:1px 6px;font-size:11px}.result{margin-top:26px;animation:.4s cubic-bezier(.22,1,.36,1) both rise}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.section-label{letter-spacing:-.02em;color:var(--ink);margin:0 0 10px 4px;font-size:17px;font-weight:600}.polished{border-radius:var(--radius);letter-spacing:-.014em;color:var(--ink);box-shadow:var(--glass-shadow);white-space:pre-wrap;padding:20px 22px;font-size:18.5px;line-height:1.55}.polished-actions{gap:8px;margin-top:12px;display:flex}.ghost{border:1px solid var(--hairline);color:var(--accent);letter-spacing:-.01em;-webkit-backdrop-filter:blur(20px);background:#fff9;border-radius:999px;padding:7px 14px;font-size:13px;font-weight:500;transition:background .18s}.ghost:hover{background:#fff}.summary{color:var(--ink-soft);letter-spacing:-.01em;margin:24px 4px 14px;font-size:14.5px;line-height:1.5}.summary.clean{color:var(--add);font-weight:500}.changes{flex-direction:column;gap:12px;margin-top:6px;display:flex}.change{border-radius:var(--radius-sm);box-shadow:var(--glass-shadow);padding:15px 17px}.change-head{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:11px;display:flex}.tag{letter-spacing:-.01em;color:var(--ink-soft);background:#0000000f;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600}.sev{color:var(--ink-faint);letter-spacing:-.01em;font-size:11.5px;font-weight:600}.diff{letter-spacing:-.01em;margin-bottom:9px;font-size:15px;line-height:1.5}.del{background:var(--del-bg);color:var(--del);border-radius:6px;padding:1px 6px;text-decoration:line-through;text-decoration-thickness:1px}.arrow{color:var(--ink-faint);margin:0 7px}.add{background:var(--add-bg);color:var(--add);border-radius:6px;padding:1px 6px;font-weight:500}.explain{color:var(--ink-soft);letter-spacing:-.005em;font-size:13.5px;line-height:1.55}.coach-note{border-radius:var(--radius);letter-spacing:-.012em;color:var(--ink);box-shadow:var(--glass-shadow);margin-bottom:24px;padding:18px 20px;font-size:15.5px;line-height:1.55}.coach-note strong{font-weight:600}.patterns-note{letter-spacing:-.01em;color:var(--ink-faint);margin:-4px 0 10px;font-size:13px;line-height:1.45}.patterns{margin-bottom:12px}.prow{border-bottom:1px solid var(--hairline);justify-content:space-between;align-items:center;gap:16px;padding:11px 4px;display:flex}.prow:last-child{border-bottom:none}.prow-main{flex-direction:column;gap:2px;min-width:0;display:flex}.prow-name{letter-spacing:-.01em;color:var(--ink);font-size:15px}.prow-sub{letter-spacing:-.01em;color:var(--ink-faint);font-size:12px}.prow-review{color:var(--accent);font-weight:500}.prow-beaten{color:var(--add);font-weight:500}.prow-mastery{flex:none;align-items:center;gap:11px;display:flex}.mtrack{background:#00000012;border-radius:999px;width:84px;height:6px;overflow:hidden}.mfill{background:var(--ink-soft);border-radius:999px;height:6px;transition:width .6s cubic-bezier(.22,1,.36,1);display:block}.mfill.high{background:var(--add)}.mval{font-variant-numeric:tabular-nums;text-align:right;min-width:22px;color:var(--ink-soft);font-size:13px;font-weight:600}.mval.high{color:var(--add)}.prow.beaten{opacity:.5}.patterns-toggle{cursor:pointer;color:var(--accent);letter-spacing:-.01em;background:0 0;border:0;margin-bottom:16px;padding:6px 4px;font-size:13px;font-weight:500}.patterns-toggle:hover{text-decoration:underline}.score-bar{text-align:center;color:var(--ink-soft);letter-spacing:-.01em;margin:22px 0 4px;font-size:14.5px}.score-bar strong{color:var(--accent);font-size:16px}.recur{letter-spacing:-.01em;color:var(--del);background:var(--del-bg);border-radius:999px;padding:2px 8px;font-size:11.5px;font-weight:600}.beat{letter-spacing:-.01em;color:var(--add);background:var(--add-bg);border-radius:999px;padding:2px 8px;font-size:11.5px;font-weight:600}.celebrate{border-radius:var(--radius);box-shadow:var(--glass-shadow);background:linear-gradient(135deg,#34c7591a,#34c7590a);border:1px solid #34c75940;margin-bottom:16px;padding:18px 20px;animation:.5s cubic-bezier(.22,1,.36,1) both heroIn}.celebrate-title{letter-spacing:-.015em;color:var(--ink);margin-bottom:5px;font-size:15px;font-weight:600}.celebrate-text{letter-spacing:-.01em;color:var(--ink-soft);margin:0;font-size:14px;line-height:1.55}.celebrate-text strong{color:var(--add);font-weight:600}.celebrate.levelup{background:linear-gradient(135deg,#0071e31a,#0071e30a);border-color:#0071e340;position:relative}.levelup-x{color:var(--ink-faint);cursor:pointer;background:0 0;border:0;padding:4px 6px;font-size:17px;line-height:1;position:absolute;top:10px;right:12px}.levelup-x:hover{color:var(--ink)}.tr-example{border-left:2px solid var(--accent);margin-top:14px;padding-left:14px}.tr-example-label{letter-spacing:-.01em;color:var(--ink-faint);margin-bottom:3px;font-size:12.5px;font-weight:600;display:block}.tr-example-text{letter-spacing:-.01em;color:var(--ink);margin:0;font-size:15px;font-style:italic;line-height:1.5}.chat-thread{flex-direction:column;gap:10px;margin-bottom:16px;display:flex}.bubble-row{flex-direction:column;display:flex}.bubble-row.user{align-items:flex-end}.bubble-row.assistant{align-items:flex-start}.bubble{letter-spacing:-.01em;border-radius:18px;max-width:78%;padding:10px 15px;font-size:15px;line-height:1.5;animation:.22s both rise}.bubble.user{background:var(--accent);color:#fff;border-bottom-right-radius:6px}.bubble.assistant{background:var(--glass-strong);border:1px solid var(--glass-border);color:var(--ink);-webkit-backdrop-filter:blur(20px)saturate(170%);border-bottom-left-radius:6px}.bubble.typing{color:var(--ink-faint);letter-spacing:3px}.chat-fixes{max-width:78%;margin:5px 0 0 6px}.chat-fixes summary{color:var(--ink-faint);cursor:pointer;letter-spacing:-.01em;font-size:12px}.chat-fixes summary:hover{color:var(--ink-soft)}.chat-fix{margin-top:7px}.chat-fix .explain{color:var(--ink-soft);margin-top:2px;font-size:12.5px;line-height:1.45}.chat-bar{align-items:center;gap:8px;display:flex}.chat-input{border:1px solid var(--hairline);letter-spacing:-.01em;background:#ffffffc7;border-radius:999px;outline:none;flex:1;min-width:0;padding:11px 16px;font-size:15px;transition:border-color .15s}.chat-input:focus{border-color:var(--accent)}.chat-round{border:1px solid var(--hairline);background:#fff9;border-radius:999px;flex:none;width:40px;height:40px;font-size:15px;transition:background .15s,border-color .15s}.chat-round.mic.on{background:#ff3b301f;border-color:#ff3b3073}.chat-round.speakbtn.on{background:#0071e31a;border-color:#0071e359}.chat-rt{margin-top:20px}.chat-rt a{color:var(--accent);margin:2px 0 2px 18px;font-size:12.5px;text-decoration:none;display:inline-block}.chat-rt a:hover{text-decoration:underline}.milestones{flex-wrap:wrap;gap:8px;margin:14px 0 16px;display:flex}.milestone{letter-spacing:-.01em;color:var(--ink-soft);border:1px solid var(--hairline);background:#ffffff8c;border-radius:999px;padding:5px 12px;font-size:12px;font-weight:500}.clean-chip{letter-spacing:-.01em;color:var(--add);background:var(--add-bg);border:1px solid #34c75940;border-radius:999px;align-items:center;gap:6px;margin:12px 0 2px;padding:7px 14px;font-size:13.5px;font-weight:600;animation:.4s cubic-bezier(.22,1,.36,1) both heroIn;display:inline-flex}.progress-wrap{margin:28px 0 4px}.progress-bars{align-items:flex-end;gap:8px;height:72px;padding:0 2px;display:flex}.pcol{flex:1;align-items:flex-end;height:100%;display:flex}.ptrack{align-items:flex-end;width:100%;height:100%;display:flex}.pfill{background:#00000024;border-radius:6px 6px 3px 3px;width:100%;transition:height .6s cubic-bezier(.22,1,.36,1)}.pfill.now{background:var(--accent)}.progress-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:9px;display:flex}.progress-caption{color:var(--ink-faint);letter-spacing:-.005em;font-size:12px}.trend{letter-spacing:-.005em;color:var(--ink-soft);background:#0000000d;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600}.trend.good{color:var(--add);background:var(--add-bg)}.insight-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:4px;display:flex}.insight.sub-beaten{opacity:.6}.kpis{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:26px;display:grid}.kpi{-webkit-backdrop-filter:blur(16px)saturate(160%);border:1px solid var(--glass-border);border-radius:var(--radius-sm);text-align:center;background:#ffffff80;padding:16px 14px 13px}.kpi-num{letter-spacing:-.03em;color:var(--ink);font-variant-numeric:tabular-nums;font-size:26px;font-weight:600;line-height:1.1}.kpi-num.good{color:var(--add)}.kpi-label{letter-spacing:-.01em;color:var(--ink-faint);margin-top:4px;font-size:12.5px;font-weight:500}.kpi-num.accent{color:var(--accent)}.patterns-wrap{margin-bottom:4px}@media (width<=640px){.kpis{grid-template-columns:repeat(2,1fr)}}.polished-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.polished-head .section-label{margin:0}.score-chip{letter-spacing:-.005em;font-variant-numeric:tabular-nums;color:var(--ink-soft);background:#0000000d;border-radius:999px;padding:3px 11px;font-size:12px;font-weight:600}.score-chip.ok{color:var(--accent);background:#0071e31a}.score-chip.great{color:var(--add);background:var(--add-bg)}.practise-btn{margin-top:10px;padding:6px 13px;font-size:12.5px}.insights{margin:28px 0 4px}.insights-head{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.insight{border-radius:var(--radius-sm);box-shadow:var(--glass-shadow);margin-bottom:12px;padding:15px 17px}.insight-title{letter-spacing:-.014em;color:var(--ink);margin-bottom:8px;font-size:15.5px;font-weight:600}.insight-eg{color:var(--ink);letter-spacing:-.01em;background:#00000009;border-radius:9px;margin-top:10px;padding:9px 12px;font-size:14.5px}.insight-tip{color:var(--ink-soft);margin-top:10px;font-size:13.5px;line-height:1.5}.reading{margin:28px 0 4px}.reading-item{background:var(--glass);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(20px)saturate(160%);box-shadow:var(--glass-shadow);color:var(--ink);letter-spacing:-.01em;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;margin-bottom:9px;padding:13px 16px;font-size:14.5px;text-decoration:none;transition:background .15s;display:flex}.reading-item:hover{background:#fff}.reading-arrow{color:var(--accent);font-size:15px}.practice-controls{border-top:1px solid var(--hairline);flex-direction:column;align-items:flex-start;gap:16px;margin-top:8px;padding-top:24px;display:flex}.exercises{flex-direction:column;gap:12px;margin-top:22px;display:flex}.exercise{animation:.35s cubic-bezier(.22,1,.36,1) both rise}.ex-prompt{letter-spacing:-.012em;color:var(--ink);white-space:pre-wrap;margin-bottom:12px;font-size:16px;line-height:1.55}.ex-options{flex-direction:column;gap:8px;display:flex}.ex-option{text-align:left;border:1px solid var(--hairline);color:var(--ink);letter-spacing:-.01em;background:#fff9;border-radius:10px;padding:10px 14px;font-size:14.5px;transition:background .15s,border-color .15s}.ex-option:hover:not(:disabled){background:#fff}.ex-option:disabled{cursor:default}.ex-option.ok{background:var(--add-bg);color:var(--add);border-color:#34c75966;font-weight:500}.ex-option.bad{background:var(--del-bg);color:var(--del);border-color:#ff3b3066}.ex-answer-row{align-items:center;gap:8px;display:flex}.ex-input{border:1px solid var(--hairline);letter-spacing:-.01em;color:var(--ink);background:#ffffffb3;border-radius:10px;outline:none;flex:1;padding:9px 13px;font-size:14.5px}.ex-input:focus{border-color:var(--accent)}.ex-feedback{letter-spacing:-.005em;color:var(--ink-soft);background:#0000000a;border-radius:10px;margin-top:12px;padding:10px 13px;font-size:13.5px;line-height:1.55}.ex-feedback.ok{background:var(--add-bg);color:var(--add)}.ex-feedback.bad{background:var(--del-bg);color:var(--del)}.wotd-wrap{margin:26px 0 8px}.wotd-row{border-radius:var(--radius-sm);-webkit-backdrop-filter:blur(16px)saturate(160%);border:1px solid var(--glass-border);cursor:pointer;-webkit-app-region:no-drag;background:#ffffff80;align-items:center;gap:12px;margin:26px 0 8px;padding:12px 18px;transition:background .15s;display:flex}.wotd-row:hover{background:#ffffffc7}.wotd-row-label{letter-spacing:-.01em;color:var(--ink-faint);white-space:nowrap;font-size:12px;font-weight:600}.wotd-row-text{letter-spacing:-.01em;color:var(--ink-soft);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:13.5px;overflow:hidden}.wotd-row-text strong{color:var(--ink);font-weight:600}.wotd-row-text.faint{color:var(--ink-faint)}.wotd-row .chev{color:var(--ink-faint);font-size:12px}.wotd-collapse{cursor:pointer;background:0 0;border:0;align-items:center;gap:5px;padding:0;display:inline-flex}.wotd-collapse .chev{font-size:11px}.wotd{background:var(--glass);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(30px)saturate(180%);border-radius:var(--radius);box-shadow:var(--glass-shadow);padding:22px 24px;animation:.4s cubic-bezier(.22,1,.36,1) both rise;position:relative}.wotd-label{letter-spacing:-.01em;color:var(--ink-faint);margin:0 0 12px;font-size:12.5px;font-weight:600}.wotd-top{flex-wrap:wrap;align-items:baseline;gap:12px;display:flex}.wotd-word{letter-spacing:-.026em;color:var(--ink);font-size:34px;font-weight:600;line-height:1.1}.wotd-pos{color:var(--ink-faint);font-size:13px;font-style:italic}.wotd-pron{color:var(--accent);letter-spacing:-.01em;margin-top:4px;font-size:14px}.wotd-meaning{letter-spacing:-.014em;color:var(--ink);margin-top:16px;font-size:17px;line-height:1.5}.wotd-example{color:var(--ink-soft);border-left:3px solid var(--glass-border);margin-top:12px;padding-left:14px;font-size:15.5px;line-height:1.55}.wotd-es{color:var(--ink-faint);letter-spacing:.01em;margin-top:16px;font-size:13px}.wotd-nav{border-top:1px solid var(--hairline);justify-content:flex-end;align-items:center;gap:12px;margin-top:18px;padding-top:14px;display:flex}.wotd-count{color:var(--ink-faint);font-variant-numeric:tabular-nums;font-size:12px}.wotd-arrow{border:1px solid var(--hairline);width:34px;height:34px;color:var(--ink);background:#fff9;border-radius:50%;justify-content:center;align-items:center;font-size:19px;line-height:1;transition:background .15s;display:flex}.wotd-arrow:hover:not(:disabled){background:#fff}.wotd-arrow:disabled{opacity:.35;cursor:default}.history-item{border-bottom:1px solid var(--hairline);cursor:default;padding:16px 6px}.hi-corrected{letter-spacing:-.014em;color:var(--ink);font-size:16px;line-height:1.5}.hi-meta{flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;display:flex}.hi-date{color:var(--ink-faint);letter-spacing:-.005em;font-size:12px}.hi-badge{letter-spacing:.01em;color:var(--ink-soft);background:#0000000d;border-radius:999px;padding:2px 9px;font-size:11px;font-weight:600}.empty{text-align:center;color:var(--ink-soft);letter-spacing:-.01em;padding:48px 20px;font-size:15px;line-height:1.6}.notice{border-radius:var(--radius);color:var(--ink-soft);box-shadow:var(--glass-shadow);padding:24px 26px;font-size:14.5px;line-height:1.6}.notice code{background:#0000000d;border-radius:6px;padding:1px 6px;font-size:12.5px}.spinner{vertical-align:-3px;border:2px solid #ffffff73;border-top-color:#fff;border-radius:50%;width:15px;height:15px;margin-right:8px;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.error-box{background:var(--del-bg);color:var(--del);border-radius:var(--radius-sm);letter-spacing:-.01em;-webkit-backdrop-filter:blur(20px);border:1px solid #ff3b3033;margin-top:16px;padding:13px 16px;font-size:13.5px;line-height:1.5}.legal-body{max-width:620px;margin:40px auto 0;padding:0 20px}.legal-body h1{letter-spacing:-.03em;color:var(--ink);margin:0 0 4px;font-size:28px}.legal-updated{color:var(--ink-faint);margin:0 0 28px;font-size:13px}.legal-body h2{letter-spacing:-.02em;color:var(--ink);margin:24px 0 6px;font-size:16px;font-weight:600}.legal-body p{letter-spacing:-.01em;color:var(--ink-soft);margin:0;font-size:14.5px;line-height:1.6}
