:root{--sat:var(--safe-area-inset-top,env(safe-area-inset-top,0px));--sab:var(--safe-area-inset-bottom,env(safe-area-inset-bottom,0px));--sal:var(--safe-area-inset-left,env(safe-area-inset-left,0px));--sar:var(--safe-area-inset-right,env(safe-area-inset-right,0px));--bg:#fff;--surface:#fff;--surface-2:#f3f5f4;--text:#2b3439;--text-2:#5b6770;--text-3:#5b6770;--line:#e3e7e5;--line-strong:#8a959c;--track:#e5e9e7;--green:#3d9d12;--green-edge:#2c7a0a;--green-hi:#58c21e;--on-green:#fff;--green-soft:#e3f7d3;--green-ink:#256108;--red:#d23a30;--red-edge:#a42a21;--on-red:#fff;--red-soft:#fde4e2;--red-ink:#a11d1d;--blue:#1873b0;--blue-edge:#125a8a;--on-blue:#fff;--blue-soft:#e3f3fc;--blue-ink:#14699f;--blue-line:#6db6e3;--amber-soft:#fff1c7;--amber-ink:#7a4e00;--amber-edge:#d39b10;--disabled-bg:#e6e8ea;--disabled-ink:#6f7a80;--focus:#1873b0;--fs-xs:13px;--fs-sm:14px;--fs-md:16px;--fs-lg:18px;--fs-xl:20px;--fs-2xl:22px;--fs-3xl:24px;--fs-4xl:32px;--fs-5xl:36px;--fs-6xl:40px;--r-xs:4px;--r-sm:8px;--r-md:12px;--r-lg:16px;--r-xl:24px;--r-pill:999px;--radius:var(--r-lg);--g-new:#e9a21c;--g-firm:#2f86cf;--g-good:#159c8f;--g-done:#3d9d12;--g-redo:#d23a30;--font:ui-rounded, "SF Pro Rounded", system-ui, -apple-system, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--fw-heavy:800;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#121a1e;--surface:#1a252a;--surface-2:#223037;--text:#d5dde1;--fw-heavy:700;--text-2:#a3b3bb;--text-3:#8a9aa2;--line:#2f3e45;--line-strong:#738389;--track:#2a383f;--green:#6ccf33;--green-edge:#4a9a1e;--green-hi:#6ccf33;--on-green:#0d1a10;--green-soft:#173020;--green-ink:#a6e57a;--red:#ff7b73;--red-edge:#c9554e;--on-red:#2a0d0d;--red-soft:#3b1c1f;--red-ink:#ffa19b;--blue:#4fbdf5;--blue-edge:#2e8fc2;--on-blue:#04131c;--blue-soft:#12304a;--blue-ink:#8ccff5;--blue-line:#4c93c4;--amber-soft:#3a2e10;--amber-ink:#f2c14e;--amber-edge:#8a6a12;--disabled-bg:#26323a;--disabled-ink:#7d8a92;--focus:#8ccff5;--g-new:#f2c14e;--g-firm:#4fb3ef;--g-good:#3fcfbb;--g-done:#6ccf33;--g-redo:#ff7b73}}*{box-sizing:border-box}[hidden]{display:none!important}html,body{background:var(--bg);color:var(--text);margin:0}body{font-family:var(--font);font-size:var(--fs-md);-webkit-text-size-adjust:100%;line-height:1.6}#app{max-width:560px;min-height:100dvh;padding:calc(16px + var(--sat)) calc(16px + var(--sar)) calc(104px + var(--sab)) calc(16px + var(--sal));margin:0 auto}body.focus #app{max-width:none;padding:0}body.focus #tabbar,body.focus .sim-banner{display:none}h1{font-size:var(--fs-3xl);font-weight:var(--fw-heavy);margin:0}h2{font-size:var(--fs-xl);font-weight:var(--fw-heavy);margin:0 0 8px}p{margin:0}.muted{color:var(--text-2)}.small{font-size:var(--fs-md)}.tiny{font-size:var(--fs-md);color:var(--text-3)}.stack{flex-direction:column;gap:12px;display:flex}.row{align-items:center;gap:8px;display:flex}.between{justify-content:space-between}.wrap{flex-wrap:wrap}.grow{flex:1}.center{text-align:center}.card{background:var(--surface);border:2px solid var(--line);border-radius:var(--radius);padding:16px}.bar{background:var(--track);border-radius:var(--r-sm);height:16px;overflow:hidden}.bar>div,.bar>i{background:var(--green-hi);border-radius:var(--r-sm);background-image:linear-gradient(#0000 3px,#ffffff4d 3px 6px,#0000 6px);height:100%;transition:width .4s cubic-bezier(.3,.9,.4,1);display:block}button,.btn{font:inherit;border-radius:var(--radius);border:2px solid var(--line);background:var(--surface);min-height:44px;color:var(--text);cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;justify-content:center;align-items:center;gap:6px;padding:8px 16px;text-decoration:none;display:inline-flex}button:not(.btn3d):not(.opt):not(.tile):hover,.btn:not(.btn3d):hover{background:var(--surface-2)}button:disabled{cursor:default}button:focus-visible,.btn:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.btn3d{--face:var(--surface);--ink:var(--text-2);--edge:var(--line);border:2px solid var(--edge);border-radius:var(--radius);background:var(--face);min-height:52px;color:var(--ink);font-weight:var(--fw-heavy);font-size:var(--fs-lg);letter-spacing:.02em;box-shadow:0 4px 0 var(--edge);margin-bottom:4px;padding:10px 20px;transition:transform 60ms ease-out,box-shadow 60ms ease-out,filter .12s}.btn3d:active:not(:disabled){box-shadow:0 0 0 var(--edge);transform:translateY(4px)}@media (hover:hover){.btn3d:hover:not(:disabled){filter:brightness(1.05)}}.btn3d.green{--face:var(--green);--ink:var(--on-green);--edge:var(--green-edge)}.btn3d.red{--face:var(--red);--ink:var(--on-red);--edge:var(--red-edge)}.btn3d.blue{--face:var(--blue);--ink:var(--on-blue);--edge:var(--blue-edge)}.btn3d.outline-green{--ink:var(--green-ink);--edge:var(--green)}.btn3d.outline-red{--ink:var(--red-ink);--edge:var(--red)}.btn3d:disabled{--face:var(--disabled-bg);--ink:var(--disabled-ink);--edge:var(--disabled-bg);box-shadow:none;margin-bottom:4px;transform:none}.ghost{color:var(--text-2);background:0 0;border-color:#0000}.block{width:100%}.big{min-height:56px}.grid2{grid-template-columns:1fr 1fr;gap:10px;display:grid}.grid3{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}@media (width<=479px){.grid3{grid-template-columns:1fr}}.keycap{font-size:var(--fs-md);border-radius:var(--r-sm);background:var(--surface);min-width:22px;color:var(--text);padding:0 6px;font-weight:700;line-height:22px;display:none}@media (hover:hover) and (pointer:fine){.keycap{display:inline-block}}input[type=text],input[type=search],input[type=number],input[type=time],select,textarea{font:inherit;font-size:var(--fs-md);border:2px solid var(--line);border-radius:var(--r-md);background:var(--surface-2);width:100%;min-height:48px;color:var(--text);padding:8px 14px}textarea{resize:vertical;min-height:80px}label{font-size:var(--fs-md);color:var(--text-2);margin-bottom:4px;display:block}.check{font-size:var(--fs-md);color:var(--text);align-items:center;gap:8px;min-height:44px;display:flex}.check input{width:22px;height:22px;accent-color:var(--green);flex:none}.pill{font-size:var(--fs-md);border-radius:var(--r-pill);white-space:nowrap;padding:1px 10px;font-weight:700;display:inline-block}.tone-neutral{--tone-bg:var(--surface-2);--tone-ink:var(--text-2)}.tone-accent{--tone-bg:var(--blue-soft);--tone-ink:var(--blue-ink)}.tone-success{--tone-bg:var(--green-soft);--tone-ink:var(--green-ink)}.tone-danger{--tone-bg:var(--red-soft);--tone-ink:var(--red-ink)}.tone-warning{--tone-bg:var(--amber-soft);--tone-ink:var(--amber-ink)}.tone-neutral,.tone-accent,.tone-success,.tone-danger,.tone-warning{background:var(--tone-bg);color:var(--tone-ink)}.topbar{justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px;display:flex}.icon-btn{min-width:44px;color:var(--text-2);background:0 0;border-color:#0000;padding:8px}.word-head{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.word-head .headword{font-size:var(--fs-4xl)}.headword{font-size:var(--fs-5xl);font-weight:var(--fw-heavy);word-break:break-word;line-height:1.2}.ipa{color:var(--text-2);font-size:var(--fs-lg)}.example,.hint-box,.word-info,.usage-panel,.ai-explanation{border-radius:var(--r-md);padding:10px 14px}.example{background:var(--surface-2);line-height:1.7}.example .en{font-size:var(--fs-lg)}mark{color:inherit;font-weight:var(--fw-heavy);border-bottom:3px solid var(--green-hi);background:0 0}.ok{color:var(--green-ink)}.bad{color:var(--red-ink)}.list{background:var(--surface);border:2px solid var(--line);border-radius:var(--radius);overflow:hidden}.list-row{border-top:2px solid var(--line);color:inherit;align-items:center;gap:10px;min-height:56px;padding:12px 14px;text-decoration:none;display:flex}.list-row:first-child{border-top:none}.list-row:hover{background:var(--surface-2)}.list-row .w{font-weight:var(--fw-heavy);font-size:var(--fs-lg)}.stage-row{font-size:var(--fs-md);grid-template-columns:96px 1fr 40px;align-items:center;gap:8px;display:grid}table.days{border-collapse:collapse;width:100%;font-size:var(--fs-md)}table.days th,table.days td{text-align:right;border-top:2px solid var(--line);padding:6px 4px}table.days th:first-child,table.days td:first-child{text-align:left}table.days th{color:var(--text-2);border-top:none;font-weight:700}#tabbar{background:var(--surface);border-top:2px solid var(--line);padding:0 var(--sar) var(--sab) var(--sal);position:fixed;bottom:0;left:0;right:0}#tabbar .inner{grid-template-columns:repeat(5,1fr);max-width:560px;margin:0 auto;display:grid}#tabbar a{min-height:60px;font-size:var(--fs-md);color:var(--text-3);flex-direction:column;align-items:center;gap:2px;padding:8px 0;font-weight:700;text-decoration:none;display:flex}#tabbar a.active{color:var(--green-ink)}.toast{background:var(--text);color:var(--bg);border-radius:var(--r-md);font-size:var(--fs-md);z-index:10;width:max-content;max-width:calc(100% - 32px);padding:10px 16px;position:fixed;bottom:96px;left:50%;transform:translate(-50%)}.toast-danger{background:var(--red);color:var(--on-red)}body.focus .toast{bottom:auto;top:calc(72px + var(--sat))}.sim-banner{background:var(--amber-soft);color:var(--amber-ink);font-size:var(--fs-md);border-radius:var(--r-sm);margin-bottom:8px;padding:4px 12px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.empty-state{border-radius:var(--radius);background:var(--surface-2);color:var(--text-2);text-align:center;padding:16px}.list>.empty-state{border-radius:0}.confirm-dialog{width:100%;max-width:none;max-height:none;padding:0 0 var(--sab);color:var(--text);border:none;margin:0;position:fixed;inset:auto 0 0}.confirm-dialog>.lesson-inner{padding-top:18px;padding-bottom:18px;animation:.22s cubic-bezier(.2,.8,.2,1) sheet-in}.confirm-dialog::backdrop{background:#00000073}.lesson{height:var(--app-h,100dvh);grid-template-rows:auto 1fr auto;display:grid}.lesson-inner{width:100%;max-width:600px;margin:0 auto;padding:0 16px}.lesson-inner.page{padding-top:calc(32px + var(--sat));padding-bottom:calc(32px + var(--sab))}.lesson-head{padding-top:var(--sat)}.lesson-head .lesson-inner{align-items:center;gap:12px;min-height:64px;display:flex}.lesson-head .bar{flex:1}.lesson-pill{font-size:var(--fs-md);font-weight:var(--fw-heavy);color:var(--text-3);white-space:nowrap;font-variant-numeric:tabular-nums}.lesson-mode{font-size:var(--fs-md);color:var(--text-3);margin-bottom:-8px;font-weight:700}.lesson-title:focus{outline:none}.lesson-main{-webkit-overflow-scrolling:touch;overflow-y:auto}.lesson-main>.lesson-inner{flex-direction:column;gap:16px;min-height:100%;padding-top:8px;padding-bottom:24px;display:flex}.lesson-title{font-size:var(--fs-2xl);font-weight:var(--fw-heavy);line-height:1.35}.lesson-foot{border-top:2px solid var(--line);background:var(--bg);padding-bottom:var(--sab)}.lesson-foot>.lesson-inner{padding-top:14px;padding-bottom:14px}.foot-row{grid-template-columns:1fr 2fr;align-items:stretch;gap:12px;display:grid}.foot-row .btn3d{white-space:nowrap}.foot-row.single{grid-template-columns:1fr}.foot-note{font-size:var(--fs-md);color:var(--text-2);text-align:center;padding:14px 0}.sheet{border-top:none}.sheet>.lesson-inner{flex-direction:column;gap:10px;max-height:60dvh;display:flex}.sheet .sheet-body{flex:auto;min-height:0;overflow-y:auto}.sheet .sheet-head,.sheet .sheet-buttons{flex:none}.sheet-title:focus{outline:none}.sheet.enter>.lesson-inner{animation:.22s cubic-bezier(.2,.8,.2,1) sheet-in}.sheet-correct{background:var(--green-soft)}.sheet-wrong{background:var(--red-soft)}.sheet-confirm{background:var(--blue-soft)}.sheet-hinted{background:var(--amber-soft)}.sheet-neutral{background:var(--surface-2)}.sheet-head{align-items:center;gap:10px;display:flex}.sheet-icon{background:var(--surface);border-radius:50%;flex:none;justify-content:center;align-items:center;width:36px;height:36px;animation:.26s ease-out pop;display:inline-flex}.sheet-title{font-size:var(--fs-2xl);font-weight:var(--fw-heavy);line-height:1.3}.sheet-correct .sheet-title,.sheet-correct .sheet-icon{color:var(--green-ink)}.sheet-wrong .sheet-title,.sheet-wrong .sheet-icon{color:var(--red-ink)}.sheet-confirm .sheet-title,.sheet-confirm .sheet-icon{color:var(--blue-ink)}.sheet-hinted .sheet-title,.sheet-hinted .sheet-icon{color:var(--amber-ink)}.sheet-body{font-size:var(--fs-md);line-height:1.6}.sheet-body .icon-btn{vertical-align:middle;min-width:0;min-height:0;color:inherit;margin:-4px 0;padding:2px 6px}.sheet-correct .sheet-body{color:var(--green-ink)}.sheet-wrong .sheet-body{color:var(--red-ink)}.sheet-confirm .sheet-body{color:var(--blue-ink)}.sheet-hinted .sheet-body{color:var(--amber-ink)}.sheet-buttons{grid-template-columns:1fr;gap:10px;display:grid}.sheet-buttons.two{grid-template-columns:1fr 1fr}.sheet-buttons .full{grid-column:1/-1}.sheet-caption{font-size:var(--fs-sm);color:var(--text-2);grid-column:1/-1;margin-bottom:-4px}.prompt-card{border:2px solid var(--line);border-radius:var(--radius);flex-direction:column;gap:8px;padding:18px 16px;display:flex;position:relative}.prompt-big{font-size:var(--fs-4xl);font-weight:var(--fw-heavy);line-height:1.3}.prompt-word{font-size:clamp(var(--fs-4xl), 10vw, var(--fs-6xl));font-weight:var(--fw-heavy);overflow-wrap:anywhere;line-height:1.2}.prompt-sub{font-size:var(--fs-md);color:var(--text-2)}.hint-btn{align-self:flex-end;margin:-8px -8px 0 0}.hint-btn.arming{color:var(--amber-ink);background:var(--amber-soft);border-color:var(--amber-edge)}.diff-extra{color:var(--red-ink);font-weight:var(--fw-heavy);-webkit-text-decoration:underline wavy;text-decoration:underline wavy}.diff-missing{color:var(--green-ink);font-weight:var(--fw-heavy);text-decoration:underline}.hint-box{background:var(--tone-bg,var(--amber-soft));color:var(--tone-ink,var(--amber-ink));font-size:var(--fs-md)}.hint-box p{margin:6px 0 0}.hint-box ul.tight{margin:4px 0 0;padding-left:20px}.hint-box .ai-tips{margin-top:6px}.try-sentence .row{align-items:stretch;gap:8px}.try-sentence .answer-input{min-width:0;font-size:var(--fs-lg)}.try-sentence .btn3d{flex:none}.answer-input{font-size:var(--fs-xl)!important;border-color:var(--line-strong)!important;min-height:56px!important}.answer-input[readonly]{background:var(--surface)!important}.answer-input.is-right{border-color:var(--green)!important}.answer-input.is-wrong{border-color:var(--red)!important}.opts{grid-template-columns:1fr;gap:10px;display:grid}.opts.two-col{grid-template-columns:1fr 1fr}.opt{border:2px solid var(--line);border-radius:var(--radius);min-height:56px;box-shadow:0 3px 0 var(--line);background:var(--surface);color:var(--text);font-size:var(--fs-lg);text-align:left;justify-content:flex-start;gap:12px;margin-bottom:3px;padding:10px 14px;font-weight:700;transition:transform 60ms,background .12s,border-color .12s}.opt .num{border:2px solid var(--line);border-radius:var(--r-sm);width:30px;height:30px;font-size:var(--fs-md);color:var(--text-3);flex:none;justify-content:center;align-items:center;display:inline-flex}.opt:active:not(:disabled){box-shadow:none;transform:translateY(3px)}.opt[aria-checked=true],.opt.picked{border-color:var(--blue-line);background:var(--blue-soft);color:var(--blue-ink);box-shadow:0 3px 0 var(--blue-line)}.opt.right{border-color:var(--green);background:var(--green-soft);color:var(--green-ink);box-shadow:0 3px 0 var(--green)}.opt.wrong{border-color:var(--red);background:var(--red-soft);color:var(--red-ink);box-shadow:0 3px 0 var(--red)}.opt.done{opacity:.45;box-shadow:none;border-color:var(--line)}.opts .opt.right:after,.opts .opt.wrong:after{font-weight:var(--fw-heavy);margin-left:auto}.opts .opt.right:after{content:"✓"}.opts .opt.wrong:after{content:"×"}@media (width>=480px){.opts.two-col{grid-template-columns:repeat(2,minmax(0,1fr))}}.opt>span:last-child{overflow-wrap:anywhere;min-width:0}.opt:disabled{cursor:default}.pairs{grid-template-columns:1fr 1fr;gap:10px;display:grid}.pairs .col{flex-direction:column;gap:10px;display:flex}.pairs .opt{text-align:center;font-size:var(--fs-lg);justify-content:center}.tile-answer{border-bottom:2px solid var(--line-strong);flex-wrap:wrap;align-items:flex-end;gap:8px;min-height:64px;padding:6px 0;display:flex}.tile-pool{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.word-info{background:var(--surface-2);font-size:var(--fs-lg);flex-wrap:wrap;align-items:center;gap:8px;display:flex}.word-info .ipa{font-size:var(--fs-md)}.tile.info-only{cursor:help;opacity:.9}.tile{border:2px solid var(--line);border-radius:var(--r-md);min-width:48px;min-height:48px;box-shadow:0 3px 0 var(--line);background:var(--surface);color:var(--text);font-size:var(--fs-2xl);font-weight:var(--fw-heavy);margin-bottom:3px;padding:4px 12px;animation:.12s ease-out tile-in}.tile:active:not(:disabled){box-shadow:none;transform:translateY(3px)}.tile.ghost-slot{visibility:hidden;animation:none}.tile-slot-hint{color:var(--text-3);font-size:var(--fs-md);align-self:center}.tile-answer.is-right .tile{border-color:var(--green);color:var(--green-ink)}.tile-answer.is-wrong .tile{border-color:var(--red);color:var(--red-ink)}.gap-sentence{font-size:var(--fs-xl);line-height:2.1}.gap-slot{vertical-align:middle;border:2px dashed var(--line-strong);border-radius:var(--r-sm);text-align:center;min-width:5ch;min-height:44px;line-height:40px;font-weight:var(--fw-heavy);color:var(--blue-ink);background:var(--surface-2);padding:0 10px;display:inline-block}.gap-slot.filled{border-style:solid;border-color:var(--blue-line);background:var(--blue-soft)}.gap-slot.right{border-color:var(--green);background:var(--green-soft);color:var(--green-ink)}.gap-slot.wrong{border-color:var(--red);background:var(--red-soft);color:var(--red-ink)}.story-text{font-size:var(--fs-xl);line-height:2.2}.story-text .gap-slot.active{border-color:var(--blue-line);box-shadow:0 0 0 3px var(--blue-soft)}.story-gloss{font:inherit;color:inherit;text-underline-offset:4px;cursor:pointer;background:0 0;border:0;padding:0;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.speaker-big{border-radius:var(--r-xl);--face:var(--blue);--ink:var(--on-blue);--edge:var(--blue-edge);align-self:center;width:104px;height:104px}.listen-card{align-items:center;gap:6px;padding:22px 16px 16px}.listen-card .speaker-big{width:96px;height:96px}.listen-hint{margin:2px 0 6px}.listen-actions{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.listen-act{min-height:36px;font-size:var(--fs-sm);color:var(--text-2);border-radius:999px;padding:4px 14px}.speak-round{border-radius:var(--r-md);--face:var(--blue);--ink:var(--on-blue);--edge:var(--blue-edge);width:48px;height:48px;min-height:48px;padding:0}.intro-tag{align-self:flex-start}.word-meaning{font-size:var(--fs-2xl);font-weight:var(--fw-heavy)}.other-senses{margin-top:-6px}.end{text-align:center;flex-direction:column;align-items:center;gap:18px;padding:32px 0 8px;display:flex}.end-badge{background:var(--green-hi);width:88px;height:88px;color:var(--on-green);border-radius:50%;justify-content:center;align-items:center;animation:.36s ease-out pop;display:flex}.end-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;width:100%;display:grid}.end-stat{border:2px solid var(--line);border-radius:var(--radius);color:inherit;background:0 0;overflow:hidden}.end-stat .label{font-size:var(--fs-md);font-weight:var(--fw-heavy);background:var(--tone-bg);color:var(--tone-ink);padding:4px 6px}.end-stat b{font-size:var(--fs-3xl);font-weight:var(--fw-heavy);padding:10px 4px;display:block}.chips{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.chip{border:2px solid var(--line);border-radius:var(--r-md);color:inherit;padding:4px 10px;font-weight:700;text-decoration:none}@keyframes sheet-in{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:none}}@keyframes pop{0%{transform:scale(.5)}70%{transform:scale(1.12)}to{transform:scale(1)}}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-8px)}40%{transform:translate(8px)}60%{transform:translate(-5px)}80%{transform:translate(5px)}}@keyframes tile-in{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:none}}@keyframes card-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.shake{animation:.32s ease-in-out shake}.card-in{animation:.2s ease-out card-in}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.usage{margin-top:6px}.link-btn{border-radius:var(--r-sm);min-height:44px;color:inherit;font:inherit;font-weight:var(--fw-heavy);text-underline-offset:4px;cursor:pointer;background:0 0;border:none;padding:6px 4px;text-decoration:underline}.usage-panel{background:var(--surface);color:var(--text);flex-direction:column;gap:10px;margin-top:4px;display:flex}.usage-panel .example{background:var(--surface-2)}.ai-explain{flex-direction:column;gap:10px;margin-top:4px;display:flex}.ai-btn{min-height:46px;font-size:var(--fs-lg)}.ai-explanation{border:2px solid var(--line);background:var(--surface);color:var(--text);flex-direction:column;gap:10px;display:flex}.learn-start{flex-direction:column;gap:28px;display:flex}.learn-head{flex-direction:column;gap:8px;display:flex}.learn-head h1,.learn-head p{margin:0}.word-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.word-tile{border:2px solid var(--line);border-radius:var(--r-lg);background:var(--surface);flex-direction:column;gap:6px;padding:16px 18px;display:flex}.word-tile-word{font-size:var(--fs-2xl);font-weight:var(--fw-heavy);overflow-wrap:break-word}.word-tile-meta{color:var(--text-2);font-size:var(--fs-md);align-items:center;gap:8px;display:flex}.learn-actions{flex-direction:column;gap:14px;display:flex}@media (width<=479px){.word-grid{grid-template-columns:1fr;gap:10px}.word-tile{flex-direction:row;justify-content:space-between;align-items:center;padding:12px 16px}.word-tile-word{font-size:var(--fs-xl)}}.say{cursor:pointer;border-radius:var(--r-sm)}@media (hover:hover){.say:hover{background:var(--surface-2)}}.say:active{background:var(--surface-2)}.scene-en{color:var(--text);font-size:var(--fs-lg);flex-wrap:wrap;align-items:center;gap:6px;margin-top:4px;display:flex}.section-title{font-size:var(--fs-lg);font-weight:var(--fw-heavy);margin:8px 0 0}details.history{border-top:2px solid var(--line);padding-top:12px}details.history summary{cursor:pointer;font-weight:var(--fw-heavy);padding:6px 0}details.more summary{cursor:pointer;font-size:var(--fs-md);color:var(--text-2);width:fit-content}details.more[open] summary{margin-bottom:4px}@media (width<=479px){.practice-buttons{grid-template-columns:1fr}}.next-step{border-radius:var(--radius);background:var(--surface);border:2px solid var(--line);border-left:6px solid var(--blue);color:var(--text);font-size:var(--fs-md);align-items:center;gap:10px;padding:12px 16px;line-height:1.5;text-decoration:none;display:flex}.next-step svg,.next-step .next-go{color:var(--blue-ink)}.next-step svg{flex:none}a.next-step{cursor:pointer}@media (hover:hover){a.next-step:hover{filter:brightness(1.08)}}.next-go{font-size:var(--fs-3xl);font-weight:700;line-height:1}.card-title{font-size:var(--fs-xl);font-weight:var(--fw-heavy);margin:0}.progress-head{align-items:baseline;gap:8px;display:flex}.progress-head .pill{align-self:center;margin-left:auto}.big-num{font-size:var(--fs-6xl);font-weight:var(--fw-heavy);letter-spacing:-.02em;line-height:1}.bar.thin{height:10px}.proficiency{flex-wrap:wrap;align-items:center;gap:24px;padding:6px 0 2px;display:flex}.donut{flex:none;width:160px;height:160px;margin:0 auto;position:relative}.donut svg{width:100%;height:100%;display:block}.donut circle{fill:none;stroke-width:18px}.donut-track{stroke:var(--track)}.donut-seg{animation:.5s ease-out both donut-in}@keyframes donut-in{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.donut-seg{animation:none}}.donut-center{pointer-events:none;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.donut-center b{font-size:var(--fs-4xl);font-weight:var(--fw-heavy);line-height:1.1}.donut-center span{font-size:var(--fs-sm);color:var(--text-2)}.g-new{stroke:var(--g-new)}.g-firm{stroke:var(--g-firm)}.g-good{stroke:var(--g-good)}.g-done{stroke:var(--g-done)}.g-redo{stroke:var(--g-redo)}.legend{flex-direction:column;flex:230px;gap:12px;margin:0;padding:0;list-style:none;display:flex}.legend li{grid-template-columns:14px minmax(0,1fr) auto;align-items:center;gap:12px;display:grid}.legend li.empty{opacity:.45}.legend .dot{border-radius:50%;width:12px;height:12px}.dot.g-new{background:var(--g-new)}.dot.g-firm{background:var(--g-firm)}.dot.g-good{background:var(--g-good)}.dot.g-done{background:var(--g-done)}.dot.g-redo{background:var(--g-redo)}.legend-name,.legend-num{flex-direction:column;line-height:1.35;display:flex}.legend-num{align-items:flex-end}.legend .tiny{font-size:var(--fs-sm)}.acc-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.acc{background:var(--surface-2);border-radius:var(--r-md);flex-direction:column;gap:8px;padding:14px 16px;display:flex}.acc-label{color:var(--text-2);font-size:var(--fs-md);font-weight:700}.acc-num{font-size:var(--fs-4xl);font-weight:var(--fw-heavy);line-height:1.05}.acc.ok .acc-num{color:var(--green-ink)}.acc.warn .acc-num{color:var(--amber-ink)}.acc.low .acc-num{color:var(--red-ink)}.acc-bar{background:var(--track);border-radius:var(--r-xs);height:8px;margin:2px 0;position:relative}.acc-bar i{border-radius:var(--r-xs);background:var(--text-3);position:absolute;top:0;bottom:0;left:0}.acc.ok .acc-bar i{background:var(--g-done)}.acc.warn .acc-bar i{background:var(--g-new)}.acc.low .acc-bar i{background:var(--g-redo)}.acc-target{border-radius:var(--r-xs);background:var(--text);width:3px;margin-left:-1.5px;position:absolute;top:-5px;bottom:-5px}.acc .tiny{font-size:var(--fs-sm)}@media (width<=360px){.acc-grid{grid-template-columns:1fr}}table.week tr.today td{font-weight:var(--fw-heavy)}table.week tr.idle td{color:var(--text-3)}.seg{background:var(--surface-2);border-radius:var(--r-md);grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;padding:4px;display:grid}.seg-btn{border-radius:var(--r-sm);min-height:44px;color:var(--text-2);font:inherit;font-weight:700;font-size:var(--fs-md);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;gap:6px;display:flex}.seg-btn.on{background:var(--surface);color:var(--text);box-shadow:0 1px 0 var(--line), 0 0 0 2px var(--line)}.seg-n{font-size:var(--fs-xs);color:var(--text-3);font-weight:700}.seg-btn.on .seg-n{color:var(--text-2)}.seg-btn{white-space:nowrap;min-width:0;padding:0 4px}@media (width<=479px){.seg{gap:2px;padding:3px}.seg-btn{font-size:var(--fs-sm);gap:3px}.seg-n{font-size:var(--fs-xs)}}.list-row .pill.weak{font-size:var(--fs-xs);padding:0 8px}.row-side{text-align:right;flex-direction:column;flex:none;align-items:flex-end;gap:4px;display:flex}.prof{font-size:var(--fs-md);white-space:nowrap;align-items:center;gap:6px;font-weight:700;display:inline-flex}.prof .dot{border-radius:50%;width:10px;height:10px;display:inline-block}.history-row{flex-wrap:wrap;gap:8px 14px;display:flex}.history-day{align-items:center;gap:4px;display:inline-flex}.history-day .tiny{margin-right:2px}.mark{border-radius:var(--r-sm);min-width:24px;height:24px;font-size:var(--fs-sm);font-weight:var(--fw-heavy);justify-content:center;align-items:center;padding:0 4px;display:inline-flex}.voice-row{align-items:flex-end;gap:10px;display:flex}.voice-row button{flex:none;min-height:48px}.ai-usage{flex-direction:column;gap:6px;margin-top:10px;display:flex}details.advanced summary{width:auto;font-size:var(--fs-lg);color:var(--text);align-items:baseline;gap:10px;display:flex}details.advanced summary .tiny{font-size:var(--fs-sm)}details.advanced summary{list-style:none}details.advanced summary::-webkit-details-marker{display:none}details.advanced summary:before{content:"▸";color:var(--text-2);transition:transform .15s;display:inline-block}details.advanced[open] summary:before{transform:rotate(90deg)}.home-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;display:flex}.home-head h1{margin:0}.time-row{align-items:center;gap:10px;display:flex}.time-row .tiny{white-space:nowrap}.review-meta{font-size:var(--fs-md);color:var(--text-2)}.say-active{background:var(--surface-2)}.word-pop{z-index:20;background:var(--surface);width:max-content;max-width:min(340px,100vw - 32px);color:var(--text);border:1px solid var(--line-strong);border-radius:var(--r-md);font-size:var(--fs-md);flex-direction:column;gap:2px;padding:10px 14px;line-height:1.6;display:flex;position:absolute;box-shadow:0 6px 24px #00000040}.word-pop-head{font-size:var(--fs-lg);flex-wrap:wrap;align-items:center;gap:8px;display:flex}.word-pop-head .ipa{font-size:var(--fs-md)}.word-pop-own{border-top:1px solid var(--line);margin-top:4px;padding-top:4px}.items-center{align-items:center}.stack.tight{gap:6px}.chips.start{justify-content:flex-start}.ellipsis{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.list-row .grow{min-width:0}.meta-row{margin-top:4px}label.btn{margin:0}.btn[aria-disabled=true]{opacity:.6;cursor:default}details.history>.list{margin-top:10px}details.more>.grid3,details.more>.stage-list,details.more>table{margin-top:8px}details.advanced>.stack{margin-top:12px}.stage-list{gap:8px}.stage-row>:last-child{text-align:right}.end>:not(.end-badge){width:100%}.lesson-inner.end-page{padding-top:var(--sat);padding-bottom:calc(32px + var(--sab))}.fixes-intro{padding-top:24px}.tile.word{font-size:var(--fs-xl)}.prompt-big.sentence{font-size:var(--fs-3xl)}.sheet-body .fb-line{margin-top:8px}.intro-card{flex-direction:column;gap:10px;display:flex}.intro-tags{font-size:var(--fs-sm);color:var(--text-2);align-self:flex-end;margin-bottom:-8px}.intro-tags .weak{color:var(--amber-ink)}.intro-card .word-head{flex-wrap:nowrap;align-items:center;margin-top:-6px}.intro-card .word-head .headword{overflow-wrap:anywhere;min-width:0}.intro-card .word-head .speak-round{flex:none}.intro-ipa{flex-wrap:wrap;align-items:center;gap:4px 10px;margin-top:-4px;display:flex}.intro-ipa .ipa{font-size:var(--fs-lg)}.follow-say{margin:-6px 0 0}.syllables{font-size:var(--fs-lg);letter-spacing:.02em;font-weight:500}.syllables b{font-weight:var(--fw-heavy)}.syllables .syl-dot{color:var(--text-2);margin:0 1px;font-weight:400}.sheet-body .syllables{font-size:inherit}.intro-card>.syllables{margin-top:-4px}.spell-slip{color:var(--amber-ink)}.spell-slip-word{font-weight:var(--fw-heavy);letter-spacing:.03em}.spell-slip mark{background:var(--amber-soft,#f0b43c40);color:inherit;text-underline-offset:3px;border-radius:3px;padding:0 1px;text-decoration:underline}.sheet-body .spell-slip{margin-top:2px}.word-head-main{flex-wrap:wrap;flex:1;align-items:center;gap:4px 10px;min-width:0;display:flex}.intro-usage{border-top:1px solid var(--line);padding-top:10px}.intro-tools{flex-wrap:wrap;gap:4px 20px;margin-top:-8px;display:flex}.intro-tools .link-btn{color:var(--text-2);font-weight:400}.intro-tools .link-btn[aria-expanded=true]{color:var(--text)}.intro-panel{margin-top:-8px}.stack-tight{flex-direction:column;gap:4px;display:flex}.login-card{max-width:420px;margin:48px auto 0}.login-card h1{text-align:center;letter-spacing:.06em}
