:root{--bg:#0e1116;--surface:#161a21;--elevated:#1e232c;--border:#262c36;--border-strong:#2e3641;--border-subtle:#1c2129;--text:#e8eaed;--text-2:#a8aeba;--text-3:#8b93a1;--accent:#2ea88a;--accent-hover:#3dc4a2;--accent-subtle:#2ea88a1f;--accent-line:#2ea88a4d;--success:#4ade80;--warning:#f5b544;--danger:#f87171;--info:#60a5fa;--radius:20px;--radius-sm:12px;--card:var(--surface);--ink:var(--text);--muted:var(--text-3);--line:var(--border);--brand:var(--accent);--brand-soft:var(--accent-subtle);--brand-ink:#0e1116;--good:var(--success);--good-soft:#4ade801f;--bad:var(--danger);--bad-soft:#f871711f;--fire:var(--warning)}*{box-sizing:border-box}html,body{margin:0}html{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}body{background:var(--bg);color:var(--text);font-family:var(--font-inter), system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;-webkit-font-smoothing:antialiased;font-size:16px;line-height:1.55;overflow-x:hidden}::selection{background:#2ea88a47}a{color:var(--accent-hover);text-decoration:none}h1,h2,h3{letter-spacing:-.015em;margin:0 0 .5em;line-height:1.2}h1{letter-spacing:-.025em;font-size:2rem;font-weight:700}h2{font-size:1.25rem;font-weight:700}h3{font-size:1.02rem;font-weight:600}p{margin:0 0 1em}code{font-family:var(--font-mono), ui-monospace, monospace;background:var(--elevated);border-radius:6px;padding:1px 6px;font-size:.88em}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-thumb{background:var(--border);border-radius:999px}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.wrap{max-width:1160px;margin:0 auto;padding:0 32px 96px}.page-head{flex-direction:column;gap:8px;margin:40px 0 24px;display:flex}.page-head h1{margin:0}.eyebrow{font-family:var(--font-mono), ui-monospace, monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--text-3);font-size:11px}.topbar{z-index:50;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);background:#0e1116f2;position:sticky;top:0}.topbar-in{justify-content:space-between;align-items:center;gap:16px;max-width:1160px;height:56px;margin:0 auto;padding:0 32px;display:flex}.brand{white-space:nowrap;color:var(--text);letter-spacing:-.01em;align-items:center;gap:10px;font-size:17px;font-weight:700;display:flex}.brand b{color:var(--accent);font-weight:700}.brand-mark{background:var(--accent);border-radius:9px;justify-content:center;align-items:center;width:30px;height:30px;display:flex}.brand-tag{font-family:var(--font-mono), ui-monospace, monospace;color:var(--text-3);border:1px solid var(--border);border-radius:8px;padding:3px 8px;font-size:11px;font-weight:500}.pillnav{background:var(--surface);border:1px solid var(--border);border-radius:12px;align-items:center;gap:2px;padding:4px;display:flex}.pillnav a{color:var(--text-2);white-space:nowrap;border-radius:9px;padding:6px 14px;font-size:13px;font-weight:500}.pillnav a:hover{color:var(--text)}.pillnav a.active{background:var(--accent-subtle);color:var(--accent-hover)}.topbar-right{align-items:center;gap:8px;display:flex}.chip{white-space:nowrap;background:var(--surface);border:1px solid var(--border);color:var(--text-2);border-radius:9px;align-items:center;gap:6px;padding:5px 10px;font-size:12px;font-weight:500;display:inline-flex}.avatar{background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:9px;align-items:center;gap:8px;padding:3px 10px 3px 4px;font-size:12px;font-weight:500;display:inline-flex}.avatar i{background:var(--accent-subtle);width:24px;height:24px;color:var(--accent-hover);border-radius:7px;justify-content:center;align-items:center;font-style:normal;font-weight:600;display:flex}.link{color:var(--text-2);border-radius:10px;padding:8px 14px;font-size:13px;font-weight:500}.bottomnav{z-index:50;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--border);padding:6px 4px calc(6px + env(safe-area-inset-bottom));background:#12161cf5;grid-template-columns:repeat(5,1fr);display:none;position:fixed;bottom:0;left:0;right:0}.bottomnav a{min-height:56px;color:var(--text-3);flex-direction:column;justify-content:center;align-items:center;gap:4px;font-size:11px;font-weight:500;display:flex}.bottomnav a.active{color:var(--accent)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:16px;padding:24px}.card h2:first-child,.card h3:first-child{margin-top:0}.grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;display:grid}.tile{background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:16px;align-items:center;gap:16px;padding:20px 22px;transition:border-color .15s;display:flex}.tile:hover{border-color:var(--accent)}.tile-icon{border-radius:12px;flex:none;justify-content:center;align-items:center;width:46px;height:46px;display:flex}.tile-text{flex-direction:column;gap:3px;min-width:0;display:flex}.tile-text b{font-size:16px;font-weight:600}.tile-text span{color:var(--text-2);font-size:13px}.stats{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:24px;display:grid}.stat{background:var(--surface);border:1px solid var(--border);border-radius:16px;flex-direction:column;gap:6px;padding:20px;display:flex}.stat .l{font-family:var(--font-mono), ui-monospace, monospace;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);order:-1;font-size:11px}.stat .n{letter-spacing:-.02em;font-size:32px;font-weight:700;line-height:1.1}.meter{background:var(--bg);border:1px solid var(--border-subtle);border-radius:999px;height:8px;overflow:hidden}.meter>div{background:var(--accent);border-radius:999px;height:100%}.btn{background:var(--accent);min-height:48px;color:var(--brand-ink);font:600 15px/1 var(--font-inter), system-ui, sans-serif;cursor:pointer;border:0;border-radius:14px;justify-content:center;align-items:center;gap:8px;padding:0 24px;transition:background .15s,border-color .15s;display:inline-flex}.btn:hover{background:var(--accent-hover)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.ghost{color:var(--text);border:1px solid var(--border-strong);background:0 0;font-weight:500}.btn.ghost:hover{border-color:var(--accent);background:0 0}.btn.good{background:var(--success);color:var(--brand-ink)}.btn.bad{background:var(--danger);color:var(--brand-ink)}.btn.fire{background:var(--warning);color:var(--brand-ink)}.btn.sm{border-radius:10px;min-height:36px;padding:0 14px;font-size:13px}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.spread{justify-content:space-between}input,textarea,select{width:100%;font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);min-height:46px;padding:0 14px;font-size:15px}select{padding-right:10px}textarea{resize:vertical;min-height:180px;padding:12px 14px;line-height:1.6}input::placeholder,textarea::placeholder{color:var(--text-3)}input:focus,textarea:focus,select:focus{outline:2px solid var(--accent);outline-offset:-1px;border-color:#0000}input[type=checkbox]{width:18px;min-height:18px;accent-color:var(--accent)}label{color:var(--text-3);margin:0 0 6px;font-size:12px;font-weight:500;display:block}.field{margin-bottom:14px}.muted{color:var(--text-3)}.small{font-size:.85rem}.pill{background:var(--accent-subtle);color:var(--accent-hover);border-radius:999px;align-items:center;gap:6px;padding:4px 12px;font-size:12px;font-weight:600;display:inline-flex}.err{background:var(--bad-soft);color:var(--danger);border-radius:var(--radius-sm);border:1px solid #f8717140;margin-bottom:12px;padding:11px 14px;font-size:14px}.note{background:var(--accent-subtle);color:var(--accent-hover);border:1px solid var(--accent-line);border-radius:var(--radius-sm);margin-bottom:12px;padding:11px 14px;font-size:14px}.hero{text-align:left;flex-wrap:wrap;align-items:center;gap:56px;padding:72px 0 64px;display:flex}.hero-copy{flex-direction:column;flex:480px;gap:26px;min-width:0;display:flex}.hero h1{margin:0;font-size:56px;line-height:1.06}.hero h1 span{color:var(--accent)}.hero p{color:var(--text-2);max-width:520px;margin:0;font-size:18px;line-height:1.6}.hero-badge{border:1px solid var(--border);color:var(--text-2);border-radius:999px;align-self:flex-start;align-items:center;gap:10px;padding:8px 16px;font-size:13px;display:inline-flex}.hero-badge i{background:var(--accent);border-radius:50%;width:8px;height:8px}.checks{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.checks li{color:var(--text-2);align-items:center;gap:12px;font-size:14px;display:flex}.preview{background:var(--surface);border:1px solid var(--border);border-radius:28px;flex-direction:column;flex:420px;gap:14px;min-width:0;padding:24px;display:flex}.section-title{flex-direction:column;gap:10px;margin:8px 0 28px;display:flex}.section-title h2{letter-spacing:-.02em;margin:0;font-size:34px}.feature-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;margin-bottom:64px;display:grid}.feature{background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:20px;flex-direction:column;gap:12px;padding:28px;transition:border-color .15s;display:flex}.feature:hover{border-color:var(--accent)}.feature b{font-size:18px;font-weight:600}.feature span{color:var(--text-2);font-size:14px;line-height:1.6}.steps{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:32px;display:grid}.steps div{flex-direction:column;gap:8px;display:flex}.steps em{font-style:normal;font-family:var(--font-mono), ui-monospace, monospace;color:var(--accent);font-size:13px}.steps b{font-size:17px;font-weight:600}.steps span{color:var(--text-2);font-size:14px;line-height:1.6}.cta{border:1px solid var(--accent-line);background:#2ea88a14;border-radius:28px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px;margin-bottom:40px;padding:44px 40px;display:flex}.cta h2{margin:0 0 6px;font-size:28px}.site-foot{border-top:1px solid var(--border);color:var(--text-3);flex-wrap:wrap;justify-content:space-between;gap:12px;padding:24px 0;font-size:13px;display:flex}.auth-wrap{flex-wrap:wrap;justify-content:center;align-items:center;gap:48px;padding:56px 0 40px;display:flex}.auth-intro{flex-direction:column;flex:340px;gap:18px;max-width:440px;display:flex}.auth-intro h1{margin:0;font-size:40px;line-height:1.1}.auth-intro p{color:var(--text-2);margin:0;line-height:1.65}.auth{background:var(--surface);border:1px solid var(--border);border-radius:28px;flex:380px;max-width:440px;margin:0;padding:32px}.auth h2{margin-bottom:18px}.auth .btn{width:100%}.passage p{color:var(--text-2);font-size:16px;line-height:1.75}.q{border-top:1px solid var(--border-subtle);padding:16px 0}.opt{text-align:left;background:var(--bg);border:1px solid var(--border);width:100%;color:var(--text);border-radius:var(--radius-sm);font:inherit;cursor:pointer;margin:8px 0;padding:11px 14px;font-size:15px;transition:border-color .15s;display:block}.opt:hover:not(:disabled){border-color:var(--accent)}.opt.sel{border-color:var(--accent);background:var(--accent-subtle)}.opt.right{border-color:var(--success);background:var(--good-soft)}.opt.wrong{border-color:var(--danger);background:var(--bad-soft)}.flash{text-align:center;padding:44px 20px}.flash .word{letter-spacing:-.02em;font-size:2.4rem;font-weight:700}.flash .tr{color:var(--accent-hover);margin-top:10px;font-size:1.5rem}.flash .ex{color:var(--text-3);margin-top:6px;font-style:italic}.speak-grid{grid-template-columns:minmax(0,3fr) minmax(260px,1fr);align-items:start;gap:20px;display:grid}.speak-grid>.sg-wide{grid-column:1/-1}.speak-grid>.sg-chat{grid-area:2/1}.speak-grid>.sg-side{grid-area:2/2}.speak-grid .card{margin-bottom:0}.live-card{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.live-card.on{border-color:var(--accent-line);background:linear-gradient(0deg, #2ea88a0f, #2ea88a0f), var(--surface)}.side-fields .field{margin-bottom:14px}.chat{flex-direction:column;gap:12px;height:52vh;min-height:320px;padding:4px;display:flex;overflow-y:auto}.bubble{max-width:82%;padding:12px 16px;font-size:15px;line-height:1.55}.bubble.ai{background:var(--elevated);border:1px solid var(--border);border-radius:18px 18px 18px 6px;align-self:flex-start}.bubble.me{border:1px solid var(--accent-line);background:#2ea88a24;border-radius:18px 18px 6px;align-self:flex-end}.bubble .sub{color:var(--text-2);border-top:1px dashed var(--border-strong);margin-top:8px;padding-top:8px;font-size:.82rem}.fix{color:var(--text);background:#f5b54414;border:1px solid #f5b54440;border-radius:12px;margin-top:8px;padding:10px 12px;font-size:.9rem}.fix del{color:var(--danger)}.mic{cursor:pointer;background:var(--accent);width:56px;height:56px;color:var(--brand-ink);border:0;border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.mic:hover{background:var(--accent-hover)}.mic:disabled{opacity:.5;cursor:not-allowed}.mic.live{background:var(--danger);animation:1.1s infinite pulse}@keyframes pulse{0%{box-shadow:0 0 #f8717180}to{box-shadow:0 0 0 16px #f8717100}}.band{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin:14px 0;display:grid}.band div{background:var(--bg);border:1px solid var(--border);text-align:left;border-radius:14px;flex-direction:column;gap:2px;padding:14px;display:flex}.band b{color:var(--text);letter-spacing:-.02em;font-size:1.6rem;font-weight:700;display:block}.band span{color:var(--text-3);font-size:12px}.mistake{border-top:1px solid var(--border-subtle);padding:10px 0}.mistake del{color:var(--danger)}.mistake ins{color:var(--success);font-weight:600;text-decoration:none}.bigscore{letter-spacing:-.03em;color:var(--accent);font-size:3.2rem;font-weight:700;line-height:1}.roast-box{border-radius:var(--radius);background:#f5b54414;border:1px solid #f5b5444d;padding:20px;font-size:1.05rem;line-height:1.65}.roast-box .bigscore{color:var(--warning)}@media (max-width:1120px){.brand-tag,.avatar span{display:none}.pillnav a{padding:6px 10px}.topbar-in{gap:10px;padding:0 20px}}@media (max-width:860px){.pillnav,.brand-tag,.topbar .chip-xp{display:none}.bottomnav{display:grid}.wrap{padding:0 16px 104px}.topbar-in{padding:0 16px}.hero{gap:32px;padding:40px 0}.hero h1{font-size:38px}.section-title h2{font-size:26px}.cta{padding:28px 22px}.speak-grid{grid-template-columns:1fr}.speak-grid>.sg-chat,.speak-grid>.sg-side{grid-area:auto/1}.chat{height:46vh}.card{padding:20px}.auth-wrap{gap:28px;padding-top:32px}.auth-intro h1{font-size:30px}.avatar span,.hide-sm{display:none}}
@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/46a9e2f250689b4a-s.0-dom-5bn10r2.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/76b70a1dbe058eb5-s.1y4-pdgsjb-pw.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2fb76073e23fd9e4-s.3lvt2whj97whp.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/6131cbbf5549afa2-s.2uwcyprjm3xu3.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/45462fd7b7c12654-s.0k62hbripvv8p.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/ba63f6a0e436df8e-s.p.3-6t-g6q0vh0a.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/07c7676b89ed2778-s.p.2bn3s6zvc0dyp.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Fallback;src:local(Arial);ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.0%;size-adjust:107.12%}.BX6nKG_className{font-family:Inter,Inter Fallback;font-style:normal}.BX6nKG_variable{--font-inter:"Inter", "Inter Fallback"}
@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/926255cb50ed39aa-s.05w992gizc866.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/68bc2cfe875f85c2-s.1m9k836wuo8c7.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/a90e9b0b65f06599-s.2lz2vdkeqaz2g.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/756248487e4d6271-s.1ocfy-u58n01e.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/2a480d253aab94fc-s.3r4--ze9tqti8.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/39a5523f82c8e2e1-s.p.29e6ydd6osd72.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Fallback;src:local(Arial);ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.0%;size-adjust:134.59%}.gTDqXa_className{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal;font-weight:500}.gTDqXa_variable{--font-mono:"JetBrains Mono", "JetBrains Mono Fallback"}
