:root{--bg:#f7f3ee;--surface:#fff;--surface-2:#efe8f5;--text:#2a2430;--muted:#6d6474;--line:#e2d9e8;--accent:#6b4f8a;--accent-2:#b47ab8;--good:#2f8a5b;--bad:#c2453d;--masc:#3f72af;--fem:#c0507a;--snd-l:.5;--snd-c:.17;--shadow:0 1px 2px #28143c14, 0 6px 20px #28143c14;--radius:14px;--font:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--serif:"Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#17141b;--surface:#211d27;--surface-2:#2b2433;--text:#efe9f3;--muted:#a79eaf;--line:#3a3242;--accent:#b99ad9;--accent-2:#e0a3d8;--good:#5fc28f;--bad:#ef7d74;--masc:#79a7e0;--fem:#ec8fb0;--shadow:0 1px 2px #0000004d, 0 6px 20px #00000040;--snd-l:.8;--snd-c:.13;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark],.night{--bg:#0f0e17;--surface:#1a1826;--surface-2:#242136;--text:#e8e4f4;--muted:#9e98b8;--line:#2f2b44;--accent:#a99be0;--accent-2:#d7b5f0;--good:#5fc28f;--bad:#ef7d74;--masc:#79a7e0;--fem:#ec8fb0;--shadow:0 1px 2px #0000004d, 0 6px 20px #00000040;--snd-l:.8;--snd-c:.13;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}:focus-visible{outline:3px solid var(--accent-2);outline-offset:2px}html,body{margin:0}body{background:var(--bg);color:var(--text);font:16px/1.55 var(--font);-webkit-font-smoothing:antialiased;min-height:100dvh}a{color:var(--accent)}button{font:inherit;color:inherit}h1,h2,h3{line-height:1.2;font-family:var(--serif)}h1{margin:.2em 0 .4em;font-size:clamp(1.7rem,5vw,2.4rem)}h2{margin:1.8em 0 .5em;font-size:1.35rem}h3{margin:1.4em 0 .4em;font-size:1.1rem}.topbar{z-index:20;padding:max(10px, env(safe-area-inset-top)) 16px 10px;background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);align-items:center;gap:12px;display:flex;position:sticky;top:0}.topbar .brand{font-family:var(--serif);color:var(--text);font-size:1.1rem;font-weight:700;text-decoration:none}.topbar .spacer{flex:1}.topbar nav{gap:4px;display:flex}.topbar nav a{color:var(--muted);border-radius:999px;padding:6px 10px;font-size:.92rem;text-decoration:none}.topbar nav a.on{background:var(--surface-2);color:var(--text)}main{max-width:860px;margin:0 auto;padding:16px 16px 96px}main.wide{max-width:none;padding:0}.muted{color:var(--muted)}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;display:grid}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}a.card{color:inherit;text-decoration:none;transition:transform .15s;display:block}a.card:hover{transform:translateY(-2px)}.card.locked{opacity:.55}.tag{letter-spacing:.04em;text-transform:uppercase;background:var(--surface-2);color:var(--accent);border-radius:999px;padding:2px 8px;font-size:.75rem;font-weight:600;display:inline-block}.btn{border:1px solid var(--line);background:var(--surface);cursor:pointer;color:var(--text);border-radius:999px;align-items:center;gap:6px;min-height:40px;padding:8px 14px;text-decoration:none;display:inline-flex}.btn:hover{border-color:var(--accent)}.btn.primary{background:var(--accent);color:#fff;border-color:#0000}.btn.big{padding:14px 22px;font-size:1.1rem}.icon-btn{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:50%;flex:none;place-items:center;width:36px;height:36px;display:inline-grid}.icon-btn.playing{background:var(--accent);color:#fff;border-color:#0000}.hub{background:linear-gradient(#cfe0f1,#f3e6ef);height:min(62vh,560px);min-height:320px;position:relative}.hub canvas{touch-action:pan-y;width:100%;height:100%;display:block}.hub .hub-title{pointer-events:none;color:#2a2430;text-shadow:0 1px 12px #fffc;position:absolute;bottom:14px;left:16px;right:16px}.hub .hub-title h1{margin:0}.home-body{max-width:980px;margin:0 auto;padding:16px 16px 96px}.doors{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin:8px 0 24px;display:grid}.door{align-items:center;gap:12px;display:flex}.door .emoji{font-size:1.8rem}.door strong{display:block}.stage-h{align-items:baseline;gap:10px;margin-top:28px;display:flex}.unit-card .num{font-family:var(--serif);color:var(--accent);font-size:1.6rem}.meter{background:var(--surface-2);border-radius:3px;height:6px;margin-top:10px;overflow:hidden}.meter>i{background:var(--accent);height:100%;display:block}.chapter{font-size:1.02rem}.chapter table{border-collapse:collapse;width:100%;margin:10px 0 18px;font-size:.95rem;display:block;overflow-x:auto}.chapter th,.chapter td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:6px 8px}.chapter blockquote{background:var(--surface-2);border-radius:10px;margin:12px 0;padding:10px 14px}.chapter .goals{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:4px 16px}.scene{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);margin:12px 0 22px;overflow:hidden}.scene header{background:var(--surface-2);flex-wrap:wrap;align-items:center;gap:10px;padding:12px 14px;display:flex}.scene header .setting{color:var(--muted);flex-basis:100%;font-size:.92rem;font-style:italic}.scene .line{border-top:1px solid var(--line);cursor:pointer;grid-template-columns:36px 1fr;gap:10px;padding:8px 14px;display:grid}.scene .line.active{background:color-mix(in srgb, var(--accent) 12%, transparent)}.scene .who{color:var(--accent);text-transform:uppercase;letter-spacing:.03em;font-size:.78rem;font-weight:700}.scene .fr{font-size:1.05rem}.scene .en{color:var(--muted);font-size:.92rem;font-style:italic}.scene.hide-en .en{visibility:hidden}.exercise{border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);margin:14px 0 22px;padding:14px}.exercise h4{margin:0 0 8px;font-size:1rem}.exercise ol{margin:0;padding-left:1.4em}.exercise li{margin:10px 0}.exercise .opts{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.exercise .opt{border:1px solid var(--line);background:var(--bg);cursor:pointer;border-radius:999px;padding:6px 12px}.exercise .opt.good,.exercise input.good{border-color:var(--good);background:color-mix(in srgb, var(--good) 15%, transparent)}.exercise .opt.bad,.exercise input.bad{border-color:var(--bad);background:color-mix(in srgb, var(--bad) 12%, transparent)}.exercise input[type=text]{font:inherit;border:1px solid var(--line);background:var(--bg);color:var(--text);border-radius:8px;min-width:min(100%,260px);padding:6px 10px}.exercise .fb{margin-left:6px;font-size:.9rem}.accents{flex-wrap:wrap;gap:4px;margin:8px 0;display:flex}.accents button{border:1px solid var(--line);background:var(--surface-2);cursor:pointer;border-radius:6px;padding:2px 8px}.qr-links a{margin-right:12px}.player{gap:14px;display:grid}.list-h{margin:24px 0 0;font-size:1.1rem}.player .controls{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.player input[type=range]{min-width:160px;accent-color:var(--accent);flex:1}.transcript{overscroll-behavior:contain;gap:4px;max-height:55vh;padding:4px;display:grid;position:relative;overflow-y:auto}.transcript .ev{cursor:pointer;color:var(--muted);border-radius:8px;padding:6px 10px 8px;position:relative}.transcript .ev.fr{color:var(--text);font-weight:500}.transcript .ev .who{letter-spacing:.07em;text-transform:uppercase;color:var(--accent);font-size:.7rem;font-weight:800;display:block}.transcript .ev.k-title .tx{font-weight:700}.transcript .ev.now{background:color-mix(in srgb, var(--accent) 16%, transparent);color:var(--text)}.transcript .ev.now:after{content:"";height:2px;width:calc((100% - 20px) * var(--p,0));background:var(--accent);opacity:.5;border-radius:2px;position:absolute;bottom:3px;left:10px}.exam-tr{margin-top:12px}.exam-tr-head{margin:4px 0}.exam-tr .transcript{border:1px solid var(--line);background:var(--bg);border-radius:12px;max-height:40vh}.exercise .said{font-family:var(--serif);align-items:center;gap:8px;margin-top:6px;font-size:1.05rem;display:flex}.exercise .said .icon-btn{font-size:.8rem}.ra-float{left:50%;bottom:max(14px, env(safe-area-inset-bottom));z-index:40;text-align:left;border:1px solid var(--line);background:color-mix(in srgb, var(--surface) 92%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);width:min(680px,100% - 24px);color:var(--text);font:inherit;cursor:pointer;border-radius:14px;gap:2px;padding:10px 16px;animation:.25s ra-in;display:grid;position:fixed;transform:translate(-50%);box-shadow:0 10px 30px #1e0a282e}.ra-float .who{letter-spacing:.07em;text-transform:uppercase;color:var(--accent);font-size:.7rem;font-weight:800}.ra-float .tx{color:var(--muted);-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:1.02rem;line-height:1.4;display:-webkit-box;overflow:hidden}.ra-float.fr .tx{color:var(--text);font-weight:600}.ra-float.big .tx{font-size:1.3rem}@keyframes ra-in{0%{opacity:0;transform:translate(-50%,8px)}}.car-mode .transcript .ev{font-size:1.25rem}.car-mode .btn.big{justify-content:center;min-width:120px;padding:18px 26px;font-size:1.3rem}.night{background:var(--bg);color:var(--text);min-height:100dvh}.night main{padding-top:24px}.night .transcript .ev{font-size:1.1rem;line-height:1.7}.game{background:linear-gradient(#2b2140,#6b4f8a);height:calc(100dvh - 58px);position:relative;overflow:hidden}.game canvas{touch-action:none;width:100%;height:100%;display:block}.hud{z-index:5;color:#fff;pointer-events:none;text-shadow:0 1px 4px #00000080;justify-content:space-between;align-items:center;padding:10px 14px;font-weight:600;display:flex;position:absolute;inset:0 0 auto}.hud .pill{background:#00000047;border-radius:999px;padding:4px 12px}.overlay{z-index:10;color:#fff;text-align:center;background:#0f0a198c;place-items:center;padding:16px;display:grid;position:absolute;inset:0}.overlay .panel{background:var(--surface);color:var(--text);width:100%;max-width:420px;box-shadow:var(--shadow);border-radius:18px;padding:22px}.overlay h2{margin-top:0}.game-controls{justify-content:center;gap:10px;padding:12px;display:flex;position:absolute;inset:auto 0 0}.game-controls .btn{border:0;justify-content:center;min-width:42%;font-size:1.3rem;font-weight:700}.btn.masc{background:var(--masc);color:#fff}.btn.fem{background:var(--fem);color:#fff}.choices{grid-template-columns:1fr 1fr;gap:10px;padding:12px;display:grid;position:absolute;inset:auto 0 0}.choices .btn{color:#2a2430;background:#ffffffeb;border:0;justify-content:center;min-height:64px;font-size:1.05rem}.choices .btn.good{color:#fff;background:#58c48d}.choices .btn.bad{color:#fff;background:#ef7d74}.forge-card{text-align:center;max-width:520px;margin:0 auto}.forge-card .verb{font-family:var(--serif);margin:0;font-size:2rem}.forge-card .prompt{margin:18px 0;font-size:1.5rem}.forge-card input{font:inherit;text-align:center;border:2px solid var(--line);background:var(--surface);width:100%;color:var(--text);border-radius:12px;padding:10px;font-size:1.4rem}.flash{font-family:var(--serif);margin:12px 0;font-size:clamp(2rem,8vw,3rem)}@media (max-width:560px){.topbar nav a span{display:none}.scene .line{grid-template-columns:32px 1fr;padding:8px 10px}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}[hidden]{display:none!important}.hub.is-night .hub-title{color:#f3eefa;text-shadow:0 1px 12px #000000b3}.hub.is-night{background:linear-gradient(#1d2240,#3a2e52)}.arcade{max-width:1080px}.arc-head{margin:8px 0 18px}.arc-kicker{letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin:0;font-size:.75rem;font-weight:800}.arc-head h1{font-family:"Fraunces", var(--serif);letter-spacing:-.01em;margin:.1em 0 .2em;font-size:clamp(2rem,6vw,3rem);font-weight:600}.arc-units{scrollbar-width:none;gap:6px;padding:10px 2px;display:flex;overflow-x:auto}.arc-units a{width:40px;height:40px;color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:50%;flex:none;place-items:center;font-weight:800;text-decoration:none;display:grid}.arc-units a.on{background:var(--accent);color:#fff;border-color:#0000;box-shadow:0 4px 14px #6b4f8a59}.arc-unit{color:var(--muted);margin:2px 0 0}.arc-unit b{color:var(--text)}.arc-levels{gap:2px;margin:8px 0 6px;display:grid}.arc-band{grid-template-columns:8.5rem 1fr;align-items:center;display:grid}.arc-stage{font-size:1rem;font-weight:800}.arc-stage small{color:var(--muted);letter-spacing:.04em;font-size:.72rem;font-weight:700;display:block}.arc-levels .arc-units{padding:6px 2px}.arc-units a{position:relative}.arc-units a.played:after{content:"";background:var(--accent);border-radius:50%;width:5px;height:5px;position:absolute;bottom:4px}.arc-units a.on.played:after{background:#fff}.arc-h{font-family:"Fraunces", var(--serif);margin:26px 0 10px;font-size:1.35rem;font-weight:600}.arc-h small{font-family:var(--font);color:var(--muted);margin-left:6px;font-size:.9rem;font-weight:400}.arc-body p.arc-what{color:var(--text);margin-top:4px;font-size:.85rem;font-weight:700}.arc-at{color:var(--text);background:#ffffffe0;border-radius:99px;padding:3px 10px;font-size:.74rem;font-weight:800;position:absolute;inset:10px auto auto 10px}.arc-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;display:grid}.arc-card{color:var(--text);background:var(--surface);box-shadow:var(--shadow);border:1px solid var(--line);border-radius:20px;flex-direction:column;text-decoration:none;transition:transform .18s,box-shadow .18s;display:flex;overflow:hidden}a.arc-card:hover{transform:translateY(-4px);box-shadow:0 12px 32px #28143c2e}a.arc-card:active{transform:scale(.98)}.arc-art{aspect-ratio:16/10;position:relative}.arc-art svg{width:100%;height:100%;display:block}.arc-body{gap:2px;padding:12px 16px 16px;display:grid}.arc-body strong{font-family:"Fraunces", var(--serif);font-size:1.35rem;font-weight:600}.arc-body p{color:var(--muted);margin:0;font-size:.92rem;line-height:1.4}.arc-skill{letter-spacing:.08em;text-transform:uppercase;color:var(--accent);font-size:.72rem;font-weight:800}.arc-best{background:var(--surface-2);border-radius:99px;justify-self:start;margin-top:6px;padding:2px 10px;font-size:.78rem;font-weight:800}.arc-card.locked{opacity:.72}.arc-card.locked .arc-art svg{filter:grayscale(.8)blur(1px);opacity:.6}.arc-lock{color:#fff;background:#2a2430cc;border-radius:99px;padding:4px 10px;font-size:.78rem;font-weight:800;position:absolute;inset:auto 10px 10px auto}.arc-more{gap:10px;margin-top:20px;display:grid}@media (max-width:560px){.arc-grid{grid-template-columns:1fr 1fr;gap:10px}.arc-body{padding:8px 10px 12px}.arc-body strong{font-size:1.05rem;line-height:1.15}.arc-body p{display:none}.arc-skill{font-size:.62rem}.arc-lock{text-align:center;font-size:.68rem;inset:auto 6px 6px}.arc-body p.arc-what{font-size:.72rem;line-height:1.3;display:block}.arc-band{grid-template-columns:1fr}.arc-stage small{margin-left:4px;display:inline}.arc-levels .arc-units{gap:4px;padding:4px 2px 8px}.arc-units a{width:35px;height:35px}.arc-h small{margin:2px 0 0;display:block}.arc-at{padding:2px 8px;font-size:.64rem;inset:6px auto auto 6px}}.mdj{max-width:560px}.mdj h1{font-family:"Fraunces", var(--serif);font-weight:600}.mdj-bar{background:var(--surface-2);border-radius:99px;height:8px;margin:16px 0;overflow:hidden}.mdj-bar i{background:linear-gradient(90deg,#8a6bb0,#f2c14e);height:100%;transition:width .3s;display:block}.mdj-stage{perspective:1200px;min-height:360px;display:grid}.mdj-card{min-height:340px;transform-style:preserve-3d;cursor:pointer;outline:none;transition:transform .5s cubic-bezier(.2,.8,.3,1.2);position:relative}.mdj-card.in{animation:.35s gk-rise}.mdj-card.flipped{transform:rotateY(180deg)}.mdj-card.out-right{opacity:0;transition:transform .3s,opacity .3s;transform:translate(120%)rotate(18deg)rotateY(180deg)}.mdj-card.out-left{opacity:0;transition:transform .3s,opacity .3s;transform:translate(-120%)rotate(-18deg)rotateY(180deg)}.mdj-card[data-lean=yes] .back{box-shadow:0 0 0 4px #3fae78, var(--shadow)}.mdj-card[data-lean=no] .back{box-shadow:0 0 0 4px #e0645a, var(--shadow)}.mdj-face{backface-visibility:hidden;background:var(--surface);box-shadow:var(--shadow);border:1px solid var(--line);text-align:center;border-radius:26px;align-content:center;justify-items:center;gap:6px;padding:24px;display:grid;position:absolute;inset:0}.mdj-face.back{background:linear-gradient(160deg, var(--surface), var(--surface-2));transform:rotateY(180deg)}.mdj-card.done .mdj-face{position:relative}.mdj-tag{letter-spacing:.1em;text-transform:uppercase;color:var(--accent);font-size:.75rem;font-weight:800}.mdj-word{font-family:"Fraunces", var(--serif);margin:0;font-size:clamp(2.2rem,9vw,3.2rem);font-weight:600;line-height:1.1}.mdj-word.small{color:var(--muted);font-size:1.4rem}.mdj-ipa{color:var(--muted);margin:0}.mdj-en{margin:6px 0 0;font-size:1.35rem}.mdj-note{color:var(--muted);margin:0;font-size:.92rem}.mdj-hint{color:var(--muted);margin:8px 0 0;font-size:.85rem}.mdj-play{background:var(--accent);color:#fff;cursor:pointer;border:0;border-radius:50%;width:56px;height:56px;margin-top:8px;font-size:1.2rem}.mdj-ex{text-align:left;background:var(--surface);cursor:pointer;color:var(--text);box-shadow:var(--shadow);border:0;border-radius:14px;align-items:center;gap:10px;margin-top:10px;padding:10px 14px;display:flex}.mdj-ex>span:first-child{background:var(--accent);color:#fff;border-radius:50%;flex:none;place-items:center;width:30px;height:30px;display:grid}.mdj-actions{justify-content:center;gap:10px;min-height:52px;margin:18px 0 6px;display:flex}.mdj .gk-btn{font-family:"Nunito", var(--font)}.mdj-keys{text-align:center;font-size:.82rem}@media (pointer:coarse){.mdj-keys{display:none}}.mdj{--gk-plum:#6b4f8a;--gk-plum-2:#8a6bb0;--gk-ink:var(--text);--gk-sans:"Nunito", var(--font);--gk-shadow:var(--shadow)}.unit-nav{grid-template-columns:1fr 1.4fr;gap:12px;margin:40px 0 24px;display:grid}.unit-nav a{color:var(--text);gap:2px;text-decoration:none;display:grid}.unit-nav a strong{font-family:var(--serif);font-size:1.2rem}.unit-nav .next{text-align:right;background:var(--surface-2);border-color:#0000}.unit-nav .next strong{color:var(--accent);font-size:1.4rem}@media (max-width:560px){.unit-nav{grid-template-columns:1fr}.unit-nav .next{order:-1}}.ex-saved{flex-wrap:wrap;align-items:center;gap:10px;margin-top:10px;font-size:.88rem;display:flex}.ex-saved .btn{padding:4px 12px;font-size:.85rem}.pron-block{gap:14px;margin:18px 0 28px;display:grid}.pron-intro{margin:0}.pron{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:18px;padding:16px 16px 14px}.pron-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.pron-head h4{font-family:"Fraunces", var(--serif);margin:2px 0 4px;font-size:1.3rem;font-weight:600}.pron-kicker{letter-spacing:.12em;text-transform:uppercase;color:var(--accent);font-size:.7rem;font-weight:800}.pron-tip{color:var(--muted);margin:0 0 8px;font-size:.95rem}.pron-count{color:var(--muted);background:var(--surface-2);border-radius:99px;flex:none;padding:2px 10px;font-size:.85rem;font-weight:800}.pron-count:empty{display:none}.pron-count.all{background:var(--good);color:#fff}.pron-steps{flex-wrap:wrap;gap:6px;margin:6px 0 12px;display:flex}.pron-steps button{border:1px solid var(--line);background:var(--bg);color:var(--text);cursor:pointer;border-radius:99px;padding:6px 14px;font-weight:700}.pron-steps button[aria-selected=true]{background:var(--accent);color:#fff;border-color:#0000}.pron-tiles{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;display:grid}.pron-tile{text-align:center;background:var(--surface-2);color:var(--text);font:inherit;border:2px solid #0000;border-radius:16px;justify-items:center;gap:4px;padding:14px 10px 12px;display:grid;position:relative}button.pron-tile{cursor:pointer;transition:transform .1s,border-color .15s}button.pron-tile:hover{border-color:var(--accent-2)}button.pron-tile:active{transform:scale(.97)}.pron-tile.good{border-color:var(--good);background:color-mix(in srgb, var(--good) 14%, var(--surface))}.pron-tile.bad{border-color:var(--bad);background:color-mix(in srgb, var(--bad) 12%, var(--surface));animation:.4s gk-shake}.pron-word{font-family:"Fraunces", var(--serif);font-size:1.7rem;font-weight:600;line-height:1.1}.pron-en{color:var(--muted);font-size:.9rem}.pron-sound{color:var(--accent);background:var(--surface);border:1px solid var(--line);border-radius:99px;justify-self:center;padding:1px 9px;font-size:.75rem;font-weight:800}.pron-play{justify-content:center;gap:6px;margin-top:4px;display:flex}.pron-how{color:var(--muted);margin:6px 0 0;font-size:.85rem;line-height:1.4}.pron-row{flex-wrap:wrap;align-items:center;gap:8px;margin:10px 0 0;display:flex}.pron-score{color:var(--muted);font-weight:800}.pron-feedback{min-height:1.6em;margin:10px 0 0}.pron-say{background:var(--surface-2);border-radius:16px;margin-top:10px;padding:14px}.pron-prompt{margin:0;font-size:1.1rem}.pron-prompt b{font-family:"Fraunces", var(--serif);margin:0 4px;font-size:1.6rem;font-weight:600}.pron-targets{flex-wrap:wrap;gap:6px;display:flex}.pron-chip{border:1px solid var(--line);background:var(--bg);color:var(--text);cursor:pointer;font-family:"Fraunces", var(--serif);border-radius:99px;padding:5px 12px;font-size:1.05rem}.pron-chip.on{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent) inset}.pron-chip.said{color:var(--good)}.pron-mic{--lvl:0;cursor:pointer;font:800 1rem var(--font);color:#fff;background:linear-gradient(135deg,#e0607a,#b23a52);border:0;border-radius:99px;align-items:center;gap:10px;padding:12px 22px 12px 16px;display:inline-flex;box-shadow:0 6px 18px #b23a524d}.pron-mic-dot{width:14px;height:14px;box-shadow:0 0 0 calc(var(--lvl) * 10px) #ffffff4d;background:#fff;border-radius:50%;transition:box-shadow 50ms}.pron-mic.on{animation:1.2s ease-in-out infinite gk-rec}.pron-mic.busy{box-shadow:none;background:#8a8098}.pron-mic[hidden]{display:none}.pron-result{gap:6px;min-height:1.4em;margin-top:10px;display:grid}.pron-result .good{color:var(--good);font-weight:700}.pron-result .bad{color:var(--bad);font-weight:700}.pron-fix{color:var(--text)}.pron-all{color:var(--good);font-weight:800}.pron-mode{margin:10px 0 0;font-size:.85rem}.linklike{color:var(--accent);cursor:pointer;font:inherit;background:0 0;border:0;padding:0;text-decoration:underline}.pron-phrases{gap:10px;margin-top:6px;display:grid}.pron-phrase{background:var(--surface-2);border:2px solid #0000;border-radius:14px;padding:12px 14px}.pron-phrase.said{border-color:color-mix(in srgb, var(--good) 45%, transparent)}.pron-phrase-text{gap:2px;display:grid}.pron-words{font-family:"Fraunces", var(--serif);font-size:1.3rem;font-weight:600;line-height:1.3}.pron-words .w.hit{color:var(--good)}.pron-words .w.miss{color:var(--bad);-webkit-text-decoration:underline wavy;text-decoration:underline wavy}.pron-arrow{text-align:center;width:1.4em;font-family:var(--font);border-radius:8px;display:inline-block}.pron-arrow.rise{color:#cf5277}.pron-arrow.fall{color:#3f78bd}.pron-curve-wrap{margin-top:10px;position:relative}.pron-curve{background:var(--surface);border-radius:12px;width:100%;height:110px;display:block}.pron-legend{color:var(--muted);align-items:center;gap:6px;font-size:.75rem;display:flex;position:absolute;top:6px;right:10px}.pron-legend i{border-radius:2px;width:14px;height:4px;display:inline-block}.pron-legend i.n{background:#9e98b0}.pron-legend i.m{background:#6b4f8a}.pron-unit{background:var(--surface);border:1px solid var(--line);border-radius:18px;margin-bottom:12px;padding:10px 14px}.pron-unit>summary{cursor:pointer;flex-wrap:wrap;align-items:center;gap:10px;padding:4px 0;display:flex}.pron-unit>summary strong{font-family:"Fraunces", var(--serif);font-weight:600}.pron-unit .pron{box-shadow:none;margin-top:10px}@keyframes gk-rec{50%{box-shadow:0 0 0 10px #c0282d2e,0 6px 18px #b23a524d}}@keyframes gk-shake{20%,60%{transform:translate(-5px)}40%,80%{transform:translate(5px)}}.pron-result>.btn,.pron-result>button{justify-self:start}.pron-curve{height:120px}.pron-words .lk{color:var(--accent-2)}.dict-pop{z-index:60;background:var(--surface);max-width:min(330px,100vw - 16px);color:var(--text);border:1px solid var(--line);border-radius:14px;gap:8px;padding:10px 12px;font-size:.92rem;line-height:1.35;animation:.14s ease-out dp-in;display:grid;position:fixed;box-shadow:0 12px 34px #1e0a2838}@keyframes dp-in{0%{opacity:0;transform:translateY(4px)scale(.98)}}.dict-pop .dp-e{grid-template-columns:auto 1fr auto;align-items:start;gap:10px;display:grid}.dict-pop .dp-e+.dp-e{border-top:1px solid var(--line);padding-top:8px}.dp-play{background:var(--accent);color:#fff;cursor:pointer;border:0;border-radius:50%;width:28px;height:28px;font-size:.7rem}.dp-word{font-family:var(--serif);font-size:1.12rem;font-weight:600}.dp-art.m{color:var(--masc)}.dp-art.f{color:var(--fem)}.dp-ipa{font-family:var(--font);color:var(--muted);font-size:.8rem;font-weight:400}.dp-form{color:var(--muted);font-size:.8rem}.dp-unit{letter-spacing:.05em;text-transform:uppercase;color:var(--muted);white-space:nowrap;margin-top:4px;font-size:.64rem;font-weight:800}.dp-unit.new{color:var(--accent)}::highlight(rdl-new){-webkit-text-decoration:underline dotted color-mix(in srgb, var(--accent) 55%, transparent);text-decoration:underline dotted color-mix(in srgb, var(--accent) 55%, transparent);text-decoration-thickness:1.5px}.read-page h1{font-family:"Fraunces", var(--serif);margin:.1em 0 0;font-size:clamp(2rem,6vw,2.8rem);font-weight:600}.read-sub{color:var(--muted);margin:0 0 12px;font-size:1.1rem}.read-intro{font-size:1.05rem;line-height:1.6}.read-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px;display:grid}.read-card{background:var(--surface);border:1px solid var(--line);color:var(--text);box-shadow:var(--shadow);border-radius:16px;grid-template-rows:auto auto;grid-template-columns:auto 1fr;align-items:center;column-gap:12px;padding:12px 14px;text-decoration:none;transition:transform .15s;display:grid}a.read-card:hover{transform:translateY(-2px)}.read-card.next{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 30%, transparent)}.read-n{background:var(--surface-2);width:38px;height:38px;font:600 1.1rem "Fraunces", var(--serif);color:var(--accent);border-radius:50%;grid-row:span 2;place-items:center;display:grid}.read-t{display:grid}.read-t strong{font:600 1.12rem "Fraunces", var(--serif)}.read-t span{color:var(--muted);font-size:.88rem}.read-meta{color:var(--muted);font-size:.76rem}.read-games{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px;display:grid}.rule-card{border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);margin:18px 0;padding:16px 18px}.rule-card h2{font:600 1.3rem "Fraunces", var(--serif);margin:0 0 6px}.rule-card>p{line-height:1.6}.rule-hook{background:color-mix(in srgb, var(--accent) 9%, transparent);border-radius:10px;padding:8px 12px}.rule-exc{border-top:1px dashed var(--line);margin-top:10px;padding-top:6px}.rule-exc p{margin:4px 0}.rw-tiles{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;margin:10px 0;display:grid}.rw-tile{text-align:left;border:1px solid var(--line);background:var(--bg);color:var(--text);cursor:pointer;font:inherit;border-radius:12px;gap:2px;padding:8px 12px;display:grid}.rw-tile:hover{border-color:var(--accent)}.rw-w{font:600 1.35rem "Fraunces", var(--serif);letter-spacing:.01em}.rw-en{color:var(--muted);font-size:.8rem}.rw-note{color:var(--muted);font-size:.76rem;font-style:italic}.rw-hl{color:var(--accent);background:color-mix(in srgb, var(--accent) 9%, transparent);border-radius:4px;padding:0 1px}.rw-hl[style],.rw-link[style],.snd-ipa[style]{color:oklch(var(--snd-l) var(--sc,var(--snd-c)) var(--sh))}.rw-hl[style]{background:color-mix(in srgb, currentColor 13%, transparent)}.ipa{font-family:var(--font);font-weight:600}.rw-mute{color:color-mix(in srgb, var(--muted) 55%, transparent);-webkit-text-decoration:line-through 1.5px color-mix(in srgb, var(--muted) 45%, transparent);text-decoration:line-through 1.5px color-mix(in srgb, var(--muted) 45%, transparent)}.rw-link{color:var(--accent);margin:0 -1px;font-weight:700}.rw-nolink{color:var(--bad);margin:0 4px;font-weight:700}.snd{white-space:nowrap}.snd-ipa{font-family:var(--font);font-weight:700}.snd-key{font-family:var(--serif);color:var(--muted)}.read-quiz .rq-q{font-weight:600}.read-quiz .rq-word{font:600 1.6rem "Fraunces", var(--serif);margin:4px 0}.read-quiz .rq-pair{font-size:1.4rem}.read-quiz .rq-play{margin:4px 0}.read-quiz .rq-why{color:var(--muted);min-height:1px;margin-top:4px;font-size:.92rem}.read-quiz .rq.right .rq-why{color:var(--good)}.read-quiz .rq.wrong .rq-why{color:var(--bad)}.rq-letter{font:600 1.6rem "Fraunces", var(--serif);border:1px solid var(--line);background:var(--bg);min-width:1.4em;color:var(--text);cursor:pointer;border-radius:8px;margin:0 1px;padding:2px 4px}.rq-letter.picked{background:color-mix(in srgb, var(--accent) 18%, transparent);border-color:var(--accent);text-decoration:line-through}.rq-letter.good{background:color-mix(in srgb, var(--good) 18%, transparent);border-color:var(--good)}.rq-letter.bad{background:color-mix(in srgb, var(--bad) 15%, transparent);border-color:var(--bad)}.rq-letter.missed{border:2px dashed var(--good)}.rq-gap{width:.6em;display:inline-block}.read-practice{flex-wrap:wrap;gap:10px;margin:6px 0 18px;display:flex}.read-link{color:var(--text);align-items:center;gap:10px;margin:0 0 12px;text-decoration:none;display:flex}.ui-lang{font:600 .8rem var(--font);color:var(--muted);border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:999px;padding:4px 6px}.mic-primer{border-radius:var(--radius);background:var(--surface-2);border:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:12px;margin:12px 0;padding:10px 14px;display:flex}.mic-primer p{flex:240px;margin:0}.mic-primer-icon{font-size:1.5rem}.mic-primer .good{color:var(--good)}
