@font-face{font-family:Open Sans;font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/OpenSans-400-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Open Sans;font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/OpenSans-400-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Open Sans;font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/OpenSans-600-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Open Sans;font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/OpenSans-600-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Open Sans;font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/OpenSans-700-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Open Sans;font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/OpenSans-700-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Ubuntu;font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/Ubuntu-500-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Ubuntu;font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/Ubuntu-500-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Ubuntu;font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/Ubuntu-700-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Ubuntu;font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/Ubuntu-700-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #ffffff;--surface: #f5f2ef;--surface-2: #ece7e2;--card: #ffffff;--ink: #161312;--muted: #6f6864;--line: #e9e3de;--accent: #c43434;--accent-ink: #ffffff;--accent-soft: #fff0ee;--accent-soft-ink: #a82b2b;--hero: #161312;--hero-ink: #ffffff;--hero-muted: #b9b1ac;--formal: #1f4fa3;--formal-bg: #e8eefa;--casual: #ad4318;--casual-bg: #fcebe2;--good: #2f7a4a;--good-bg: #e6f2ea;--bad: #b3261e;--bad-bg: #fbe9e7;--f-display: "Ubuntu", "Open Sans", system-ui, sans-serif;--f-body: "Open Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--r-sm: 10px;--r: 16px;--r-lg: 22px;--gap: 12px;--pad: 20px;--max: 520px;color-scheme:light}:root[data-theme=dark]{--bg: #1a1716;--surface: #262220;--surface-2: #312c2a;--card: #211d1c;--ink: #f3eeea;--muted: #a39b96;--line: #332e2c;--accent: #e8574a;--accent-ink: #ffffff;--accent-soft: #3a2220;--accent-soft-ink: #ff9c90;--hero: #f3eeea;--hero-ink: #1a1716;--hero-muted: #6f6864;--formal: #a7c0f4;--formal-bg: #1e2738;--casual: #f6ab88;--casual-bg: #3a2419;--good: #86cf9f;--good-bg: #1b2a20;--bad: #ff9c90;--bad-bg: #3a2220;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;height:100%}body{background:var(--bg);color:var(--ink);font-family:var(--f-body);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}#root{min-height:100%}button{font:inherit;color:inherit}h1,h2,h3{font-family:var(--f-display);font-weight:700;margin:0;text-wrap:balance;letter-spacing:-.01em}p{margin:0}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}}.screen{max-width:var(--max);margin:0 auto;min-height:100dvh;display:flex;flex-direction:column;gap:16px;padding:calc(env(safe-area-inset-top,0px) + 18px) max(var(--pad),env(safe-area-inset-right,0px)) calc(env(safe-area-inset-bottom,0px) + 18px) max(var(--pad),env(safe-area-inset-left,0px))}.screen.with-nav{padding-bottom:calc(env(safe-area-inset-bottom,0px) + 84px)}.row{display:flex;align-items:center;gap:10px}.between{justify-content:space-between}.stack{display:flex;flex-direction:column;gap:var(--gap)}.grow{flex:1}.muted{color:var(--muted)}.small{font-size:13px}.center{text-align:center}.topbar{display:flex;justify-content:space-between;align-items:center;min-height:32px;font-size:14px;color:var(--muted)}.pill{font-size:13px;font-weight:700;padding:4px 12px;border-radius:999px;background:var(--accent-soft);color:var(--accent-soft-ink);font-variant-numeric:tabular-nums}.iconbtn{width:40px;height:40px;border-radius:50%;border:0;background:transparent;display:grid;place-items:center;cursor:pointer;color:var(--muted);font-size:20px}.iconbtn:hover{background:var(--surface)}.eyebrow{font-size:12px;letter-spacing:.08em;text-transform:uppercase;font-weight:700;color:var(--muted)}.eyebrow.red{color:var(--accent)}.word{font-family:var(--f-display);font-weight:700;color:var(--accent);font-size:clamp(56px,19vw,96px);line-height:.92;letter-spacing:-.045em;overflow-wrap:anywhere;-webkit-hyphens:manual;hyphens:manual}.word.long{font-size:clamp(40px,13vw,68px)}.word.xlong{font-size:clamp(32px,10vw,52px)}.ipa{font-size:14px;color:var(--muted)}.gloss{font-size:17px}.wordbox{display:flex;flex-direction:column;gap:8px;padding:6px 0 4px}.speak{display:inline-flex;align-items:center;gap:8px;border:0;background:var(--surface);color:var(--ink);border-radius:999px;padding:6px 14px 6px 8px;font-size:13px;font-weight:600;cursor:pointer;width:max-content}.speak .dot{width:26px;height:26px;border-radius:50%;background:var(--accent);color:var(--accent-ink);display:grid;place-items:center;font-size:11px}.speak.playing .dot{animation:pulse 1s ease-in-out infinite}@keyframes pulse{50%{transform:scale(.85)}}.hero{background:var(--hero);color:var(--hero-ink);border-radius:var(--r-lg);padding:18px;display:flex;flex-direction:column;gap:4px}.hero .meta{font-size:12.5px;color:var(--hero-muted)}.hero .title{font-family:var(--f-display);font-size:21px;font-weight:700;line-height:1.2}.hero .sub{font-size:14px;color:var(--hero-muted)}.hero .btn{margin-top:12px}.btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:50px;border:0;border-radius:999px;cursor:pointer;background:var(--accent);color:var(--accent-ink);font-weight:700;font-size:16px;padding:12px 20px;text-decoration:none;transition:transform .08s ease}.btn:active{transform:scale(.98)}.btn.secondary{background:var(--surface);color:var(--ink)}.btn.ghost{background:transparent;color:var(--muted);min-height:40px}.btn[disabled]{opacity:.45;cursor:default}.btns{display:grid;grid-template-columns:1fr 1fr;gap:10px}.bottom{margin-top:auto;display:flex;flex-direction:column;gap:10px;padding-top:8px}.tiles{display:grid;grid-template-columns:1fr 1fr;gap:10px}.tile{background:var(--surface);border-radius:var(--r);padding:14px 16px;border:0;text-align:left;cursor:pointer;color:var(--ink);display:flex;flex-direction:column;gap:2px}.tile small{font-size:13px;color:var(--muted)}.tile b{font-family:var(--f-display);font-size:26px;font-variant-numeric:tabular-nums}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px}.note{background:var(--surface);border-radius:var(--r);padding:14px 16px;font-size:14.5px}.note em{font-style:normal;font-weight:700;color:var(--accent)}.nav{position:fixed;left:0;right:0;bottom:0;z-index:5;background:var(--bg);border-top:1px solid var(--line);padding:8px max(12px,env(safe-area-inset-right,0px)) calc(env(safe-area-inset-bottom,0px) + 8px) max(12px,env(safe-area-inset-left,0px))}.nav-in{max-width:var(--max);margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr)}.nav a{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:11.5px;color:var(--muted);text-decoration:none;padding:6px 0;border-radius:10px}.nav a .ic{font-family:var(--f-display);font-size:18px;font-weight:700;line-height:1}.nav a.on{color:var(--accent);font-weight:700}.progress{display:flex;align-items:center;gap:10px}.bar{flex:1;height:8px;border-radius:9px;background:var(--surface);overflow:hidden}.bar i{display:block;height:100%;background:var(--accent);border-radius:9px;transition:width .25s ease}.dialog{display:flex;flex-direction:column;gap:10px}.bubble{max-width:86%;padding:10px 13px;border-radius:18px;font-size:16px;line-height:1.4;border:0;text-align:left;cursor:pointer;color:inherit;font-family:inherit}.bubble small{display:block;font-size:12px;font-weight:700;opacity:.7;margin-bottom:2px}.bubble .tr{display:block;font-size:13.5px;opacity:.75;margin-top:4px}.bubble.them{background:var(--surface);border-bottom-left-radius:6px;align-self:flex-start}.bubble.me{background:var(--ink);color:var(--bg);border-bottom-right-radius:6px;align-self:flex-end}.bubble.playing{box-shadow:0 0 0 2px var(--accent)}.switch{display:inline-flex;background:var(--surface);border-radius:999px;padding:3px;gap:2px}.switch button{border:0;background:transparent;border-radius:999px;padding:6px 12px;font-size:13px;font-weight:600;cursor:pointer;color:var(--muted)}.switch button.on{background:var(--card);color:var(--ink);box-shadow:0 1px 2px #00000014}.tag{display:inline-block;font-size:11.5px;font-weight:700;padding:2px 9px;border-radius:999px}.tag.formal{background:var(--formal-bg);color:var(--formal)}.tag.informal{background:var(--casual-bg);color:var(--casual)}.tag.neutral{background:var(--surface);color:var(--muted)}.wl{display:flex;flex-direction:column}.wl-item{display:grid;grid-template-columns:1fr auto;gap:2px 10px;padding:12px 0;border-bottom:1px solid var(--line);align-items:center}.wl-item .ca{font-family:var(--f-display);font-weight:700;font-size:19px}.wl-item .tr{color:var(--muted);font-size:14px;grid-column:1}.wl-item .ex{grid-column:1 / -1;font-size:13.5px;color:var(--muted);font-style:italic}.choices{display:flex;flex-direction:column;gap:10px}.choice{border:1.5px solid var(--line);background:var(--card);border-radius:var(--r);padding:14px 16px;text-align:left;cursor:pointer;font-size:16px;color:var(--ink)}.choice:hover{border-color:var(--muted)}.choice.right{border-color:var(--good);background:var(--good-bg);color:var(--good);font-weight:700}.choice.wrong{border-color:var(--bad);background:var(--bad-bg);color:var(--bad)}.feedback{border-radius:var(--r);padding:12px 14px;font-size:14.5px}.feedback.ok{background:var(--good-bg);color:var(--good)}.feedback.ko{background:var(--bad-bg);color:var(--bad)}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{border:1.5px solid var(--line);background:var(--card);border-radius:12px;padding:8px 12px;font-size:16px;cursor:pointer;color:var(--ink);font-family:var(--f-display);font-weight:500}.chip.used{opacity:.25;cursor:default}.answer{min-height:56px;border-bottom:2px solid var(--line);padding:6px 0;display:flex;flex-wrap:wrap;gap:8px;align-items:center}.sentence-gap{font-family:var(--f-display);font-size:24px;line-height:1.35}.sentence-gap .gap{display:inline-block;min-width:80px;border-bottom:3px solid var(--accent);color:var(--accent);text-align:center}.opts{display:flex;flex-direction:column;gap:10px}.opt{display:flex;gap:12px;align-items:center;border:1.5px solid var(--line);background:var(--card);border-radius:var(--r);padding:14px 16px;cursor:pointer;text-align:left;color:var(--ink);width:100%}.opt .box{width:24px;height:24px;border-radius:8px;border:2px solid var(--line);flex:none;display:grid;place-items:center;font-size:14px;color:var(--accent-ink)}.opt.sel{border-color:var(--accent)}.opt.sel .box{background:var(--accent);border-color:var(--accent)}.opt b{display:block;font-size:16px}.opt span.d{display:block;font-size:13.5px;color:var(--muted)}.stack-words{display:flex;flex-direction:column;gap:0}.stack-words span{font-family:var(--f-display);font-weight:700;font-size:34px;line-height:1.02;letter-spacing:-.03em;color:var(--ink)}.stack-words span:first-child{color:var(--accent)}.big{font-family:var(--f-display);font-weight:700;font-size:64px;line-height:.95;letter-spacing:-.04em;color:var(--accent);font-variant-numeric:tabular-nums}.set{display:flex;flex-direction:column;gap:8px}.set h3{font-size:15px;color:var(--muted);font-family:var(--f-body);font-weight:700}.seg{display:flex;flex-wrap:wrap;gap:8px}.seg button{border:1.5px solid var(--line);background:var(--card);border-radius:999px;padding:8px 14px;cursor:pointer;font-size:14px;color:var(--ink)}.seg button.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-soft-ink);font-weight:700}textarea.export{width:100%;min-height:120px;border-radius:var(--r-sm);border:1px solid var(--line);background:var(--card);color:var(--ink);font:12px/1.4 ui-monospace,monospace;padding:10px}.prose{font-size:15.5px;display:flex;flex-direction:column;gap:12px}.prose h2{font-size:19px;margin-top:8px}.empty{padding:40px 0;text-align:center;color:var(--muted)}
