.piece-app{--p-bg:#f5f3ed;--p-surface:#fffcf6;--p-ink:#24372f;--p-muted:#66766d;--p-line:#dcded4;--p-accent:#345c45;--p-soft:#e7ebdc;--p-warm:#a55232;--p-warm-soft:#f4e1d2;--p-new:#e0e3d9;background:var(--p-bg);height:100dvh;color:var(--p-ink);font-family:var(--font-sans), system-ui, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;flex-direction:column;display:flex}[data-theme=dark] .piece-app{--p-bg:#17251f;--p-surface:#1e2f26;--p-ink:#e8eddd;--p-muted:#a1b3a6;--p-line:#3a4c3e;--p-accent:#bdd295;--p-soft:#314633;--p-warm:#efb690;--p-warm-soft:#4d3528;--p-new:#304237;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.piece-app button,.piece-app a,.piece-app input,.piece-app select{touch-action:manipulation}.piece-app button{cursor:pointer;color:inherit;font:inherit}.piece-app button:disabled{opacity:.45;cursor:default}.piece-app :focus-visible{outline:2px solid var(--p-accent);outline-offset:4px}.piece-app a{color:inherit;text-decoration:none}.piece-header{border-bottom:1px solid var(--p-line);flex-shrink:0;align-items:center;gap:32px;min-height:88px;padding:16px max(28px,50vw - 580px);display:flex}.piece-brand{letter-spacing:-1.8px;background:0 0;border:0;align-items:center;padding:0;font-weight:750;display:flex;font-size:30px!important}.piece-brand-dot{color:var(--p-warm)}.piece-mark{grid-template-columns:repeat(2,9px);gap:3px;margin-right:12px;display:grid;transform:rotate(-8deg)}.piece-mark i{background:var(--p-accent);border-radius:2px;height:9px}.piece-mark i:last-child{background:var(--p-warm);transform:translate(2px,2px)}.piece-nav{gap:6px;margin:auto;display:flex}.piece-nav button{color:var(--p-muted);background:0 0;border:0;border-radius:30px;padding:10px 20px;font-size:14px}.piece-nav button[aria-current]{background:var(--p-soft);color:var(--p-ink);font-weight:650}.piece-header-end{color:var(--p-muted);flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:16px;font-size:12px;display:flex}.piece-exit{border:1px solid var(--p-line);border-radius:10px;align-items:center;min-height:36px;padding:8px 14px;font-size:13px;font-weight:600;display:inline-flex}.piece-exit:hover{border-color:var(--p-accent)}.piece-theme{border:1px solid var(--p-line);background:0 0;border-radius:50%;width:36px;height:36px;font-size:20px!important}.piece-main{overscroll-behavior:contain;flex:1;min-height:0;padding:48px max(28px,50vw - 550px) 24px;overflow:auto}.piece-kicker{letter-spacing:.13em;color:var(--p-muted);font-size:10px;font-weight:700;line-height:1.6}.piece-app h1{font-family:var(--font-serif), Georgia, serif;letter-spacing:-.05em;margin:18px 0;font-size:clamp(36px,5.4vw,66px);font-weight:450;line-height:1.06}.piece-app h1 em{color:var(--p-accent);font-weight:450}.piece-app p{line-height:1.65}.piece-home{max-width:900px;margin:0 auto}.piece-intro{color:var(--p-muted);margin:22px 0 30px;font-size:15px}.piece-modes{grid-template-columns:1fr 1fr 1fr;gap:20px;display:grid}.piece-mode{text-align:left;border:1px solid var(--p-line);background:var(--p-surface);border-radius:20px;flex-direction:column;align-items:flex-start;padding:25px 28px;transition:transform .2s,border-color .2s;display:flex;overflow:hidden}.piece-mode:hover{border-color:var(--p-accent);transform:translateY(-4px)}.piece-mode.personal{background:var(--p-soft)}.piece-mode strong{letter-spacing:-.045em;justify-content:space-between;align-items:center;gap:12px;width:100%;margin:8px 0 12px;font-size:29px;font-weight:550;display:flex}.piece-mode strong .enter-arrow{flex-shrink:0}.piece-mode>span:not(.piece-kicker):not(.piece-mode-art){color:var(--p-muted);max-width:300px;font-size:14px;line-height:1.6}.piece-mode small{color:var(--p-muted);margin-top:22px;font-size:11px}.piece-mode-art{justify-content:center;align-items:center;width:100%;height:83px;margin:0 0 20px;display:flex}.piece-mode-art.random i{border:1px solid var(--p-line);background:var(--p-bg);border-radius:7px;padding:13px 15px;font-size:12px;font-style:normal;transition:transform .4s;transform:rotate(-12deg);box-shadow:0 3px 6px #24372f05}.piece-mode-art.random i:nth-child(2){z-index:1;background:var(--p-soft);margin:0 -10px;transform:rotate(7deg)translateY(-9px)}.piece-mode-art.random i:last-child{transform:rotate(-4deg)translateY(6px)}.piece-mode:hover .piece-mode-art.random i:first-child{transform:rotate(-18deg)translate(-6px)}.piece-mode:hover .piece-mode-art.random i:last-child{transform:rotate(8deg)translate(6px)}.piece-mode-art.personal{align-items:flex-end;gap:9px;padding:5px 0 12px}.piece-mode-art.personal i{background:var(--p-accent);opacity:.3;border-radius:5px;width:28px;height:22px;transition:transform .3s}.piece-mode-art.personal i:nth-child(2){opacity:.45;height:34px}.piece-mode-art.personal i:nth-child(3){opacity:.6;height:45px}.piece-mode-art.personal i:nth-child(4){opacity:.8;height:54px}.piece-mode-art.personal i:nth-child(5){opacity:1;height:64px}.piece-mode:hover .piece-mode-art.personal i{transform:translateY(-4px)}.piece-mode-art.snap{gap:7px}.piece-mode-art.snap i{background:var(--p-line);border-radius:50%;width:9px;height:9px}.piece-mode.snap:hover .piece-mode-art.snap i{background:var(--p-accent);animation:.45s both piece-snap-pop}.piece-mode.snap:hover .piece-mode-art.snap i:nth-child(2){animation-delay:50ms}.piece-mode.snap:hover .piece-mode-art.snap i:nth-child(3){animation-delay:.1s}.piece-mode.snap:hover .piece-mode-art.snap i:nth-child(4){animation-delay:.15s}.piece-mode.snap:hover .piece-mode-art.snap i:nth-child(5){animation-delay:.2s}@keyframes piece-snap-pop{0%{transform:scale(1)}40%{transform:scale(1.4)}to{transform:scale(1)}}.piece-footnote{color:var(--p-muted);margin:15px 0;font-size:11px;line-height:1.6}.piece-footnote.centered{text-align:center}.piece-home-bottom{border-top:1px solid var(--p-line);color:var(--p-muted);flex-wrap:wrap;align-items:center;gap:24px;margin:28px 0;padding-top:22px;font-size:12px;display:flex}.piece-home-bottom b{color:var(--p-ink);font-size:16px}.piece-home-bottom button{background:0 0;border:0;margin-left:auto;font-size:12px}.piece-button{border:1px solid var(--p-accent);background:var(--p-accent);border-radius:10px;min-height:46px;padding:12px 19px;transition:opacity .15s;color:var(--p-surface)!important;font-size:13px!important;font-weight:600!important}.piece-button:hover{opacity:.85}.piece-button.secondary{border-color:var(--p-line);background:0 0;color:var(--p-ink)!important}.piece-text-button{text-align:left;background:0 0;border:0;padding:8px 0;color:var(--p-accent)!important;font-size:12px!important}.piece-resume{border:1px solid var(--p-line);background:var(--p-surface);border-radius:14px;justify-content:space-between;align-items:center;gap:12px;margin:0 0 20px;padding:18px 20px;display:flex}.piece-resume b{font-size:14px}.piece-resume p{color:var(--p-muted);margin:5px 0 0;font-size:12px}.piece-practice{max-width:700px;margin:0 auto}.piece-practice-top{color:var(--p-muted);justify-content:space-between;align-items:center;gap:16px;font-size:12px;display:flex}.piece-steps{color:var(--p-muted);gap:20px;margin:20px 0 8px;font-size:11px;display:flex}.piece-steps .active{color:var(--p-accent);font-weight:700}.piece-practice progress{appearance:none;background:var(--p-line);width:100%;height:3px;accent-color:var(--p-accent);border:0;display:block}.piece-practice progress::-webkit-progress-bar{background:var(--p-line)}.piece-practice progress::-webkit-progress-value{background:var(--p-accent)}.piece-word-card{touch-action:pan-y;border:1px solid var(--p-line);background:var(--p-surface);text-align:center;overflow-wrap:anywhere;border-radius:20px;flex-direction:column;justify-content:center;align-items:center;min-height:340px;margin:24px 0 18px;padding:35px 30px;display:flex}.piece-word-card.piece-word-flow{text-align:left;justify-content:flex-start;align-items:stretch}.piece-bottow-line{min-height:80px;max-height:min(42vh,280px);font-family:var(--font-serif), Georgia, serif;flex:0 auto;width:100%;font-size:clamp(22px,3.2vw,34px);line-height:1.55;position:relative;overflow:auto}.piece-bottow-line p{white-space:pre-wrap;width:100%;margin:0}.piece-bottow-sizer{visibility:hidden}.piece-bottow-live{position:absolute;inset:0;overflow:hidden}.piece-bottow-line mark{color:inherit;text-decoration:underline;-webkit-text-decoration-color:var(--p-warm);text-decoration-color:var(--p-warm);text-underline-offset:.16em;box-shadow:none;background:0 0;font-weight:650;text-decoration-thickness:.12em}.piece-bottow-caret{background:var(--p-accent);vertical-align:-.1em;width:2px;height:1em;margin-left:2px;animation:1s step-end infinite piece-bottow-blink;display:inline-block}.piece-target-word{font-family:var(--font-serif), Georgia, serif;letter-spacing:-.03em;margin:22px 0 0;font-size:clamp(26px,3.6vw,38px);font-weight:550;animation:.28s piece-appear}.piece-meaning{color:var(--p-muted);text-align:left;margin:8px 0 0;font-size:18px;animation:.28s piece-appear}.piece-modal-backdrop{z-index:80;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);font-family:var(--font-sans), system-ui, sans-serif;background:#0d111766;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.piece-modal{border:1px solid var(--line,var(--p-line,#dcded4));background:var(--panel,var(--p-surface,#fffcf6));width:min(460px,100%);color:var(--ink,var(--p-ink,#24372f));border-radius:16px;padding:28px 24px;box-shadow:0 18px 50px #0002}.piece-modal h2{font-family:var(--font-serif), Georgia, serif;letter-spacing:-.04em;margin:0 0 12px;font-size:28px;font-weight:500}.piece-modal p{color:var(--p-muted);margin:0 0 22px;font-size:14px;line-height:1.65}.piece-word-card h1{max-width:100%;margin:12px 0 24px;font-size:clamp(30px,5vw,49px)}.piece-word-card .piece-japanese{letter-spacing:-.025em;font-family:inherit;font-size:clamp(23px,3vw,32px);line-height:1.5}.piece-prompt{color:var(--p-muted);margin:15px 0 5px;font-size:12px}.piece-reveal{max-width:520px;animation:.2s piece-appear}.piece-reveal>p:first-child{font-size:17px}.piece-example{color:var(--p-muted);margin:0;font-size:13px;line-height:1.8}.piece-example mark{color:var(--p-ink);text-decoration:underline;-webkit-text-decoration-color:var(--p-line);text-decoration-color:var(--p-line);text-underline-offset:3px;background:0 0;font-weight:600}.piece-answer-actions{justify-content:center;gap:12px;width:100%;display:flex}.piece-answer-actions>*{flex:1}.piece-cloze{max-width:520px;color:var(--p-muted);margin:0 0 25px;font-size:17px;line-height:1.8!important}.piece-word-card form{width:100%;max-width:490px}.piece-input-label{text-align:left;color:var(--p-muted);margin-bottom:8px;font-size:11px;display:block}.piece-app input,.piece-app select{border:1px solid var(--p-line);background:var(--p-surface);color:var(--p-ink);outline-offset:2px;border-radius:8px;max-width:100%;min-height:45px;padding:10px 12px}.piece-word-card input{width:100%;margin-bottom:16px;font-size:18px}.piece-word-card input::placeholder{color:var(--p-muted);opacity:.7}.piece-feedback{background:var(--p-soft);text-align:left;border-radius:12px;width:100%;padding:20px;animation:.2s piece-appear}.piece-feedback.practice{background:var(--p-warm-soft)}.piece-feedback>span{color:var(--p-muted);font-size:12px}.piece-feedback>strong{letter-spacing:-.03em;margin:7px 0 12px;font-size:24px;display:block}.piece-feedback .piece-button{width:100%;margin-top:20px;display:block}.piece-result{max-width:750px;margin:0 auto}.piece-result h1{font-size:clamp(35px,5vw,52px)}.piece-result-score{align-items:center;gap:20px;margin:30px 0 15px;display:flex}.piece-result-score>b{letter-spacing:-.05em;font-size:64px;font-weight:500}.piece-result-score small{color:var(--p-muted);font-size:25px}.piece-result-score>span,.piece-result>p{color:var(--p-muted);font-size:14px}.piece-result-words{margin-top:30px}.piece-result-words details{border-bottom:1px solid var(--p-line);padding:14px 0}.piece-result-words summary{cursor:pointer;justify-content:space-between;gap:12px;font-size:14px;display:flex}.piece-result-words summary span:last-child{white-space:nowrap;font-size:11px}.piece-result-words details>p{font-size:13px}.piece-good{color:var(--p-accent)}.piece-warm{color:var(--p-warm)}.piece-section-title{justify-content:space-between;align-items:center;gap:18px;margin-bottom:30px;display:flex}.piece-section-title h1{margin:10px 0;font-size:clamp(30px,4vw,43px)}.piece-section-title>span{color:var(--p-muted);white-space:nowrap;font-size:12px}.piece-filters{grid-template-columns:2fr 1fr 1fr;gap:14px;margin-bottom:20px;display:grid}.piece-filters label{color:var(--p-muted);font-size:11px;font-weight:600}.piece-filters input,.piece-filters select{width:100%;margin-top:7px;font-size:13px;display:block}.piece-library-count{color:var(--p-muted);justify-content:space-between;align-items:center;min-height:35px;font-size:12px;display:flex}.piece-library-labels,.piece-library-row{grid-template-columns:1.05fr 1fr 1.65fr;gap:24px;display:grid}.piece-library-labels{text-transform:uppercase;letter-spacing:.12em;color:var(--p-muted);border-bottom:1px solid var(--p-line);padding:14px 0;font-size:10px}.piece-library-row{border-bottom:1px solid var(--p-line);align-items:start;padding:22px 0}.piece-library-row h2{letter-spacing:-.02em;overflow-wrap:anywhere;margin:0 0 8px;font-size:16px;font-weight:600}.piece-library-row>p{margin:0;font-size:13px}.piece-library-row>div>small{color:var(--p-muted);margin-top:7px;font-size:10px;line-height:1.6;display:block}.piece-status{background:var(--p-soft);color:var(--p-muted);border-radius:20px;padding:3px 7px;font-size:9px}.piece-status.weak{background:var(--p-warm-soft);color:var(--p-warm)}.piece-status.mastered{background:var(--p-accent);color:var(--p-surface)}.piece-pagination{color:var(--p-muted);justify-content:space-between;align-items:center;margin-top:24px;font-size:12px;display:flex}.piece-stats{border-top:1px solid var(--p-line);border-bottom:1px solid var(--p-line);grid-template-columns:repeat(4,1fr);gap:20px;margin-bottom:30px;padding:25px 0;display:grid}.piece-stat{flex-direction:column;gap:10px;display:flex}.piece-stat>span{color:var(--p-muted);font-size:12px}.piece-stat>b{letter-spacing:-.05em;font-size:42px;font-weight:450;line-height:1}.piece-stat>small{color:var(--p-muted);font-size:10px}.piece-analytics-grid{grid-template-columns:1.25fr 1fr;gap:20px;display:grid}.piece-panel{background:var(--p-surface);border:1px solid var(--p-line);border-radius:16px;min-width:0;padding:24px}.piece-panel-heading{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.piece-panel-heading h2{letter-spacing:-.025em;margin:0;font-size:16px;font-weight:600}.piece-panel-heading>span{color:var(--p-muted);white-space:nowrap;font-size:10px}.piece-panel>p{color:var(--p-muted);font-size:12px}.piece-map{grid-template-columns:repeat(40,1fr);gap:3px;margin:20px 0;display:grid}.piece-map i{aspect-ratio:1;background:var(--p-new);border-radius:1px}.piece-map i.learning,.piece-legend i.learning{background:#9caf76}.piece-map i.weak,.piece-legend i.weak{background:#c78a63}.piece-map i.mastered,.piece-legend i.mastered{background:var(--p-accent)}.piece-legend{flex-wrap:wrap;gap:8px 16px;display:flex}.piece-legend button{background:0 0;border:0;align-items:center;gap:6px;padding:5px 0;font-size:10px;display:flex}.piece-legend i{background:var(--p-new);border-radius:1px;width:7px;height:7px}.piece-legend b{color:var(--p-muted);font-weight:550}.piece-explainer{color:var(--p-muted);margin-top:15px;font-size:10px}.piece-explainer summary{cursor:pointer}.piece-explainer p{margin-bottom:0}.piece-activity{grid-template-columns:repeat(14,1fr);gap:5px;margin-top:25px;display:grid}.piece-activity>div{aspect-ratio:1;background:var(--p-new);border-radius:3px}.piece-activity .some{background:#9caf76}.piece-activity .full{background:var(--p-accent)}.piece-activity-label{color:var(--p-muted);justify-content:space-between;margin-top:8px;font-size:9px;display:flex}.piece-familiarity{border-top:1px solid var(--p-line);grid-template-columns:1fr auto;gap:7px;margin-top:22px;padding-top:16px;font-size:12px;display:grid}.piece-familiarity small{color:var(--p-muted);grid-column:1/-1;margin-bottom:8px;font-size:10px}.piece-chart{align-items:stretch;gap:8px;height:180px;margin:28px 0 10px;display:flex}.piece-chart-column{text-align:center;max-width:55px;color:var(--p-muted);flex-direction:column;flex:1;gap:8px;font-size:10px;display:flex}.piece-chart-column>div{background:var(--p-soft);border-radius:4px;flex:1;position:relative;overflow:hidden}.piece-chart-column i{background:var(--p-accent);border-radius:4px;min-height:2px;position:absolute;bottom:0;left:0;right:0}.piece-chart-column small{font-size:9px}.piece-empty{color:var(--p-muted);padding:30px 0;font-size:13px;line-height:1.7}.piece-empty button{margin-top:12px;display:block}.piece-weak-list{display:grid}.piece-weak-list button{text-align:left;border:0;border-bottom:1px solid var(--p-line);background:0 0;justify-content:space-between;gap:12px;padding:12px 0;font-size:12px;display:flex}.piece-weak-list button:last-child{border:0}.piece-weak-list b{font-weight:550}.piece-weak-list small{color:var(--p-muted);margin-top:4px;font-size:10px;display:block}.piece-weak-list button>span:last-child{text-align:right;white-space:nowrap}.piece-topic-panel{margin-top:20px}.piece-topics{grid-template-columns:repeat(3,1fr);gap:22px 30px;margin-top:22px;display:grid}.piece-topics button{text-align:left;background:0 0;border:0;padding:0}.piece-topics button>span{justify-content:space-between;gap:8px;font-size:12px;display:flex}.piece-topics b{color:var(--p-muted);font-weight:500}.piece-topics i{background:var(--p-soft);border-radius:2px;height:4px;margin:10px 0;display:block}.piece-topics em{background:var(--p-accent);border-radius:2px;height:100%;display:block}.piece-topics small{color:var(--p-muted);font-size:9px}.piece-footer{border-top:1px solid var(--p-line);color:var(--p-muted);justify-content:space-between;gap:16px;margin-top:55px;padding:18px 0 0;font-size:10px;line-height:1.6;display:flex}.piece-notice{border:1px solid var(--p-warm);background:var(--p-warm-soft);border-radius:12px;margin-bottom:24px;padding:16px;font-size:13px;line-height:1.6}.piece-notice>button:not(.piece-button){background:0 0;border:0;text-decoration:underline}.piece-notice p{margin:0 0 12px}@keyframes piece-appear{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes piece-bottow-blink{50%{opacity:0}}@media (max-width:760px){.piece-header{flex-wrap:wrap;gap:16px;min-height:76px;padding:14px 20px}.piece-brand{font-size:26px!important}.piece-header-end{margin-left:auto}.piece-nav{order:3;justify-content:center;width:100%}.piece-nav button{flex:1;padding:9px 15px}.piece-main{padding:30px 20px 20px}.piece-modes{grid-template-columns:1fr 1fr;gap:12px}.piece-mode.snap{grid-column:1/-1}.piece-mode{padding:20px}.piece-mode strong{font-size:25px}.piece-mode-art{transform:scale(.9)}.piece-section-title{flex-direction:column;align-items:flex-start;gap:8px}.piece-analytics-grid{grid-template-columns:1fr}.piece-topics{grid-template-columns:1fr 1fr}.piece-stats{grid-template-columns:1fr 1fr;gap:24px}.piece-filters{grid-template-columns:1fr 1fr}.piece-filters label:first-child{grid-column:1/-1}.piece-library-labels{display:none}.piece-library-row{grid-template-columns:1fr 1fr;gap:12px}.piece-library-row>.piece-example{grid-column:1/-1}.piece-library-row>p[lang]{text-align:right}.piece-footer{flex-direction:column;gap:5px}.piece-word-card{padding:28px 20px}.piece-home-bottom button{margin-left:0}.piece-result-score>b{font-size:53px}}@media (max-width:480px){.piece-modes{grid-template-columns:1fr}.piece-mode{min-height:200px;padding:22px;position:relative}.piece-mode-art{transform-origin:100% 0;width:140px;margin:0;position:absolute;top:14px;right:8px;transform:scale(.65)}.piece-mode strong{margin:12px 0}.piece-mode>span:not(.piece-kicker):not(.piece-mode-art){max-width:90%;font-size:13px}.piece-mode small{margin-top:16px;font-size:10px}.piece-intro{font-size:13px}.piece-main{padding:28px 16px 20px}.piece-header{gap:10px;padding:12px 16px}.piece-resume{flex-wrap:wrap;padding:15px}.piece-word-card{min-height:310px;padding:28px 16px}.piece-answer-actions{gap:8px}.piece-button{padding:11px 12px;font-size:12px!important}.piece-cloze{font-size:15px}.piece-panel{padding:18px}.piece-topics{gap:22px 18px}.piece-map{grid-template-columns:repeat(25,1fr);gap:3px}.piece-home-bottom{gap:16px}.piece-panel-heading{flex-wrap:wrap}.piece-stats{gap:25px 12px}.piece-stat>b{font-size:36px}.piece-section-title h1{font-size:34px}.piece-result .piece-answer-actions{flex-direction:column}.piece-feedback{padding:16px}}@media (prefers-reduced-motion:reduce){.piece-app *,.piece-app :before,.piece-app :after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.piece-csv-tools{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:20px;display:flex}.piece-csv-tools details{color:var(--p-muted);max-width:600px;font-size:12px}.piece-csv-tools summary{cursor:pointer}.piece-csv-tools input[hidden]{display:none}.piece-keyboard{position:fixed;bottom:auto;left:0;right:0}.piece-keyboard .piece-header,.piece-keyboard .piece-footer,.piece-keyboard .piece-steps{display:none}.piece-keyboard .piece-main{scroll-behavior:auto;padding:6px 12px}.piece-keyboard .piece-practice-top{min-height:24px;font-size:10px}.piece-keyboard .piece-practice-top button{padding:4px 0}.piece-keyboard .piece-word-card.recall{justify-content:flex-start;min-height:0;margin:6px 0;padding:12px}.piece-keyboard .piece-word-card .piece-kicker,.piece-keyboard .piece-prompt{display:none}.piece-keyboard .piece-word-card .piece-japanese{margin:0 0 8px;font-size:18px;line-height:1.35}.piece-keyboard .piece-cloze{margin:0 0 10px;font-size:13px;line-height:1.45!important}.piece-keyboard .piece-input-label{margin-bottom:4px;font-size:10px}.piece-keyboard .piece-word-card input{min-height:38px;margin-bottom:8px;padding:7px 10px;font-size:16px}.piece-keyboard .piece-answer-actions .piece-button{min-height:36px;padding:7px 10px}.piece-traffic{flex:none;align-items:center;gap:2px;display:none}.piece-traffic button{cursor:pointer;background:0 0;border:0;border-radius:999px;place-items:center;width:28px;height:28px;padding:0;display:grid}.piece-traffic button>span{border-radius:50%;width:12px;height:12px;position:relative;box-shadow:inset 0 0 0 .5px #0003}.piece-traffic-close>span{background:#ff5f57}.piece-traffic-minimize>span{background:#febc2e}.piece-traffic-zoom>span{background:#28c840}.piece-dock-title{color:var(--p-ink);font:inherit;cursor:pointer;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:0;min-width:0;padding:6px 4px;font-size:12px;display:none;overflow:hidden}html.piece-desk,html.piece-desk body{background:#e4e2da;min-height:100dvh;overflow:hidden}html.piece-desk[data-theme=dark],html.piece-desk[data-theme=dark] body{background:#121c18}@media (hover:hover) and (pointer:fine){.piece-traffic:hover .piece-traffic-close>span:after,.piece-traffic:focus-within .piece-traffic-close>span:after{content:"×";color:#4d0000;place-items:center;font:700 9px/1 system-ui,sans-serif;display:grid;position:absolute;inset:0}.piece-traffic:hover .piece-traffic-minimize>span:after,.piece-traffic:focus-within .piece-traffic-minimize>span:after{content:"";background:#985700;border-radius:1px;height:1.5px;position:absolute;top:5px;left:2px;right:2px}.piece-traffic:hover .piece-traffic-zoom>span:after,.piece-traffic:focus-within .piece-traffic-zoom>span:after{content:"";border:1.4px solid #0b5f1c;border-radius:1px;position:absolute;inset:2.5px}}@media (min-width:900px) and (pointer:fine){.piece-running .piece-traffic{display:flex}.piece-running .piece-practice-exit{display:none}.piece-app.piece-windowed{z-index:40;border:1px solid var(--p-line);border-radius:16px;width:min(400px,100vw - 36px);height:min(620px,100dvh - 36px);position:fixed;inset:auto 24px 24px auto;overflow:hidden;box-shadow:0 18px 50px #0002}.piece-app.piece-windowed.is-resizing{-webkit-user-select:none;user-select:none}.piece-app.piece-windowed .piece-header{display:none}.piece-app.piece-windowed .piece-practice-top{cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none}.piece-app.piece-windowed .piece-practice-top:active{cursor:grabbing}.piece-app.piece-windowed .piece-main{flex:1;min-height:0;padding:10px 14px 22px}.piece-app.piece-windowed .piece-footer,.piece-app.piece-windowed .piece-steps{display:none}.piece-app.piece-windowed .piece-practice{max-width:none}.piece-app.piece-windowed .piece-practice-top{gap:8px}.piece-app.piece-windowed .piece-word-card{border-radius:12px;flex:1;justify-content:flex-start;min-height:0;margin:10px 0 8px;padding:14px 12px}.piece-app.piece-windowed .piece-bottow-line{min-height:48px;max-height:160px;font-size:18px}.piece-app.piece-windowed .piece-target-word{margin:10px 0 0;font-size:22px}.piece-app.piece-windowed .piece-meaning{font-size:14px}.piece-app.piece-windowed .piece-word-card .piece-japanese{margin:4px 0 10px;font-size:20px}.piece-app.piece-windowed .piece-cloze{margin:0 0 10px;font-size:14px;line-height:1.5!important}.piece-app.piece-windowed .piece-word-card input{min-height:38px;margin-bottom:8px;font-size:16px}.piece-app.piece-windowed .piece-button{min-height:38px;padding:8px 10px;font-size:12px!important}.piece-app.piece-windowed .piece-feedback{padding:12px}.piece-app.piece-windowed .piece-feedback>strong{font-size:18px}.piece-app.piece-windowed .piece-practice{flex-direction:column;height:100%;display:flex}.piece-app.piece-windowed .piece-main{flex-direction:column;display:flex}.piece-app.piece-windowed .piece-practice progress{flex-shrink:0}.piece-app.piece-docked{z-index:40;border:1px solid var(--p-line);border-radius:12px;width:max-content;max-width:min(360px,100vw - 36px);height:auto;position:fixed;inset:auto 24px 24px auto;box-shadow:0 10px 28px #0000001f}.piece-app.piece-docked .piece-header,.piece-app.piece-docked .piece-footer,.piece-app.piece-docked .piece-steps,.piece-app.piece-docked .piece-practice progress,.piece-app.piece-docked .piece-word-card,.piece-app.piece-docked .piece-answer-actions{display:none}.piece-app.piece-docked .piece-main{padding:6px 10px;overflow:hidden}.piece-app.piece-docked .piece-practice-top{gap:8px}.piece-app.piece-docked .piece-dock-title{flex:1;display:block}.piece-app.piece-docked .piece-practice-top>span{display:none}}.piece-app.piece-overlay{z-index:1100;border:1px solid var(--p-line);border-radius:16px;width:min(400px,100vw - 36px);height:min(620px,100dvh - 36px);position:fixed;inset:auto 24px 24px auto;overflow:hidden;box-shadow:0 18px 50px #0002}.piece-app.piece-overlay.is-resizing{-webkit-user-select:none;user-select:none}.piece-app.piece-overlay .piece-header{display:none}.piece-app.piece-overlay .piece-traffic{display:flex}.piece-app.piece-overlay .piece-practice-exit{display:none}.piece-app.piece-overlay .piece-practice-top{cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;gap:8px}.piece-app.piece-overlay .piece-practice-top:active{cursor:grabbing}.piece-app.piece-overlay .piece-main{flex-direction:column;flex:1;min-height:0;padding:10px 14px 22px;display:flex}.piece-app.piece-overlay .piece-footer,.piece-app.piece-overlay .piece-steps{display:none}.piece-app.piece-overlay .piece-practice{flex-direction:column;max-width:none;height:100%;display:flex}.piece-app.piece-overlay .piece-word-card{border-radius:12px;flex:1;justify-content:flex-start;min-height:0;margin:10px 0 8px;padding:14px 12px}.piece-app.piece-overlay .piece-bottow-line{min-height:48px;max-height:160px;font-size:18px}.piece-app.piece-overlay .piece-target-word{margin:10px 0 0;font-size:22px}.piece-app.piece-overlay .piece-meaning{font-size:14px}.piece-app.piece-overlay .piece-word-card .piece-japanese{margin:4px 0 10px;font-size:20px}.piece-app.piece-overlay .piece-cloze{margin:0 0 10px;font-size:14px;line-height:1.5!important}.piece-app.piece-overlay .piece-word-card input{min-height:38px;margin-bottom:8px;font-size:16px}.piece-app.piece-overlay .piece-button{min-height:38px;padding:8px 10px;font-size:12px!important}.piece-app.piece-overlay .piece-feedback{padding:12px}.piece-app.piece-overlay .piece-feedback>strong{font-size:18px}.piece-app.piece-overlay .piece-practice progress{flex-shrink:0}.piece-app.piece-overlay .piece-result{min-height:0;overflow:auto}.piece-app.piece-overlay .piece-result h1{font-size:28px}.piece-app.piece-overlay.piece-docked{z-index:1100;border-radius:12px;width:max-content;max-width:min(360px,100vw - 36px);height:auto;box-shadow:0 10px 28px #0000001f}.piece-app.piece-overlay.piece-docked .piece-header,.piece-app.piece-overlay.piece-docked .piece-footer,.piece-app.piece-overlay.piece-docked .piece-steps,.piece-app.piece-overlay.piece-docked .piece-practice progress,.piece-app.piece-overlay.piece-docked .piece-word-card,.piece-app.piece-overlay.piece-docked .piece-answer-actions{display:none}.piece-app.piece-overlay.piece-docked .piece-main{padding:6px 10px;overflow:hidden}.piece-app.piece-overlay.piece-docked .piece-dock-title{flex:1;display:block}.piece-app.piece-overlay.piece-docked .piece-practice-top>span{display:none}.piece-header-end{margin-left:auto}.piece-app>.piece-bottom-nav{order:initial;width:calc(100% - 28px);max-width:460px;margin:6px 14px calc(10px + env(safe-area-inset-bottom));border:1px solid var(--p-line);background:var(--p-surface);z-index:5;border-radius:16px;flex:none;justify-content:center;align-self:center;gap:4px;padding:5px;display:flex;box-shadow:0 2px 8px #00000008}.piece-app>.piece-bottom-nav button{border-radius:11px;flex:1;min-height:40px;padding:8px 12px;font-size:12px;font-weight:500}.piece-app>.piece-bottom-nav button[aria-current]{font-weight:600}.piece-app.piece-overlay>.piece-bottom-nav,.piece-app.piece-windowed>.piece-bottom-nav,.piece-app.piece-docked>.piece-bottom-nav,.piece-app.piece-keyboard>.piece-bottom-nav{display:none}@media (max-width:760px){.piece-header{flex-wrap:nowrap;min-height:62px}.piece-app>.piece-bottom-nav button{min-height:40px;font-size:11px}}.piece-app.flow-running>.piece-bottom-nav{flex:none;order:initial;width:calc(100% - 28px);margin:6px 14px calc(10px + env(safe-area-inset-bottom))}
html[data-theme=dark] .piece-app{--p-bg:var(--bg);--p-surface:var(--surface);--p-ink:var(--ink);--p-muted:var(--muted);--p-line:var(--line);--p-accent:var(--accent);--p-soft:var(--raised);--p-warm:var(--warm);--p-warm-soft:var(--warmSoft);--p-new:var(--line)}html[data-theme=dark] .explore-lab{--el-bg:var(--bg);--el-panel:var(--surface);--el-ink:var(--ink);--el-muted:var(--muted);--el-line:var(--line);--el-accent:var(--accent)}html[data-theme=dark]:has(.explore-lab){background:var(--bg)}html[data-theme=dark] .el-variant-0 .el-topic{background:radial-gradient(circle at 30% 20%, var(--raised), var(--surface));border-color:var(--line)}html[data-theme=dark] .el-variant-0 .el-topic[aria-pressed=true]{background:var(--accent);color:var(--bg);border-color:var(--accent)}html[data-theme=dark] .el-variant-0 .el-field{background:0 0}.piece-cloze{white-space:pre-wrap}.piece-initial-hint{color:var(--p-muted);flex-wrap:wrap;align-items:center;gap:14px;font-size:12px;display:flex}.piece-initial-hint span{color:var(--p-ink);letter-spacing:.06em;white-space:pre-wrap;overflow-wrap:anywhere;font-family:monospace}.piece-keyboard .piece-initial-hint{margin:4px 0;font-size:11px}
