:root{--bg:#f8f7f4;--surface:#fff;--surface2:#f0eeea;--border:#00000014;--review-border:#00000038;--accent:#c17f3b;--accent2:#5b4fd4;--text:#1a1a1a;--text-muted:#707070;--text-soft:#4d4d4d;--red:#d94f6a;--green:#2ea87a;--gold:#c79a2e;--on-accent:#1c1813;--content-max:1040px;--content-narrow:800px}*{box-sizing:border-box;margin:0;padding:0}.splash{z-index:9999;opacity:1;background:radial-gradient(#1b1610 0%,#0c0a08 68%,#080706 100%);justify-content:center;align-items:center;transition:opacity .5s;display:flex;position:fixed;inset:0}.splash-out{opacity:0;pointer-events:none}.splash-inner{flex-direction:column;align-items:center;gap:18px;display:flex}.splash-logo{border-radius:22px;width:112px;height:112px;animation:.9s cubic-bezier(.16,1,.3,1) both splashLogoIn;box-shadow:0 0 60px #c88c3c47,0 12px 34px #0000008c}.splash-wordmark{letter-spacing:.5px;color:#d8a24a;font-family:Playfair Display,serif;font-size:30px;animation:.8s .35s both splashWordIn}.splash-wordmark span{color:#f4efe7}@keyframes splashLogoIn{0%{opacity:0;transform:scale(.86)}to{opacity:1;transform:scale(1)}}@keyframes splashWordIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.splash-logo,.splash-wordmark{animation:none}}body{background:var(--bg);color:var(--text);min-height:100vh;font-family:DM Sans,sans-serif;font-weight:300}header{background:var(--surface);border-bottom:1px solid var(--border);z-index:90;justify-content:space-between;align-items:center;padding:16px 40px;display:flex;position:sticky;top:0}.logo{color:var(--accent);font-family:Playfair Display,serif;font-size:20px}.logo span{color:var(--text)}.logo-mark{vertical-align:middle;border-radius:6px;width:26px;height:26px;margin-right:8px;display:inline-block}.logo .beta-tag{letter-spacing:.5px;color:var(--accent);border:1px solid var(--accent);vertical-align:middle;opacity:.85;border-radius:999px;margin-left:8px;padding:0 7px;font-family:system-ui,-apple-system,sans-serif;font-size:10px;font-weight:700;line-height:16px;display:inline-block}.header-right{align-items:center;gap:16px;display:flex}.level-badge{color:var(--text-muted);align-items:center;gap:8px;font-size:13px;display:flex}.level-select{background:var(--surface2);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:6px;outline:none;padding:5px 10px;font-size:13px}.api-wrap{align-items:center;gap:8px;display:flex}.api-input{background:var(--surface2);border:1px solid var(--border);width:200px;color:var(--text);border-radius:6px;outline:none;padding:5px 12px;font-size:13px}.api-input::placeholder{color:var(--text-muted)}.btn-save{background:var(--accent2);color:#fff;cursor:pointer;white-space:nowrap;border:none;border-radius:6px;padding:5px 14px;font-size:13px}.btn-save:hover{opacity:.85}.step-indicator{background:var(--surface);border-bottom:1px solid var(--border);justify-content:center;align-items:center;gap:0;padding:20px 40px;display:flex}.step-dot{cursor:default;flex-direction:column;align-items:center;gap:6px;display:flex}.dot{background:var(--surface2);border:2px solid var(--border);width:28px;height:28px;color:var(--text-muted);border-radius:50%;justify-content:center;align-items:center;font-size:11px;transition:all .3s;display:flex}.step-dot.active .dot{background:var(--accent);border-color:var(--accent);color:#fff}.step-dot.done .dot{background:var(--green);border-color:var(--green);color:#fff}.step-label{color:var(--text-muted);white-space:nowrap;font-size:11px}.step-dot.active .step-label{color:var(--accent);font-weight:500}.step-dot.done .step-label{color:var(--green)}.step-line{background:var(--border);width:60px;height:2px;margin-bottom:18px;transition:background .3s}.step-line.done{background:var(--green)}#mainContent{min-height:calc(100vh - 120px)}.screen{display:none}.screen.active{display:block}.screen-inner{max-width:var(--content-narrow);flex-direction:column;gap:24px;margin:0 auto;padding:48px 24px;display:flex}.screen-inner.center{text-align:center;align-items:center;padding-top:100px}#screen-0 .screen-inner.center{justify-content:center;min-height:calc(100vh - 64px);padding-top:24px;padding-bottom:48px}#screen-0 .welcome-sub{margin-top:-8px}.welcome-title{color:var(--text);font-family:Playfair Display,serif;font-size:36px;font-weight:400;line-height:1.3}.welcome-sub{color:var(--text-muted);max-width:400px;font-size:16px;line-height:1.7}.btn-large{border-radius:10px;width:auto;padding:16px 48px;font-size:16px}.screen-header{border-bottom:1px solid var(--border);align-items:flex-start;gap:14px;padding-bottom:8px;display:flex}.screen-num{background:var(--accent);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:14px;font-weight:500;display:flex}.screen-title{font-family:Playfair Display,serif;font-size:22px;font-weight:400}.screen-desc{color:var(--text-muted);margin-top:4px;font-size:13px;line-height:1.6}.service-grid{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.viewing-service-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:16px;margin-top:8px;display:grid}.viewing-service-card{background:var(--surface);border:2px solid var(--border);cursor:pointer;text-align:center;border-radius:14px;padding:24px 16px;transition:all .2s}.viewing-service-card:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:0 4px 16px #c17f3b26}.viewing-service-card .vs-icon{margin-bottom:10px;font-size:28px}.viewing-service-card .vs-mark{color:#fff;border-radius:11px;justify-content:center;align-items:center;width:40px;height:40px;margin:0 auto 10px;font-size:20px;font-weight:700;line-height:1;display:flex}.viewing-service-card .vs-name{color:var(--text);font-size:15px;font-weight:600}.service-card{background:var(--surface);border:2px solid var(--border);cursor:pointer;text-align:center;border-radius:10px;padding:20px 16px;transition:all .2s;position:relative}.service-card:hover{border-color:var(--accent)}.service-card.selected{border-color:var(--accent);background:#c17f3b0d}.service-name{color:var(--text);font-size:14px;font-weight:500}.service-check{color:var(--accent);opacity:0;font-size:14px;transition:opacity .2s;position:absolute;top:8px;right:10px}.service-card.selected .service-check{opacity:1}.genre-tags{flex-wrap:wrap;gap:8px;display:flex}.tag{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;background:var(--surface);border-radius:20px;padding:7px 16px;font-size:13px;transition:all .2s}.tag:hover{border-color:var(--accent);color:var(--accent)}.tag.active{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:500}.btn-primary{background:linear-gradient(135deg, color-mix(in srgb, var(--accent) 84%, white), var(--accent));color:#fff;cursor:pointer;width:100%;box-shadow:0 2px 10px color-mix(in srgb, var(--accent) 32%, transparent);border:none;border-radius:10px;padding:13px 20px;font-family:DM Sans,sans-serif;font-size:14px;font-weight:600;transition:transform .15s,box-shadow .15s,filter .15s}.btn-primary:hover:not(:disabled){box-shadow:0 5px 16px color-mix(in srgb, var(--accent) 42%, transparent);filter:brightness(1.03);transform:translateY(-1px)}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-primary:disabled{opacity:.35;cursor:not-allowed;box-shadow:none}.btn-secondary{color:var(--text-muted);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:8px;width:100%;padding:10px 20px;font-family:DM Sans,sans-serif;font-size:13px;transition:all .2s}.btn-secondary:hover{border-color:var(--text-muted);color:var(--text)}.drama-list{flex-direction:column;gap:10px;display:flex}.drama-card{background:var(--surface);border:2px solid var(--border);cursor:pointer;border-radius:10px;padding:16px;transition:all .2s}.drama-card:hover{border-color:#00000026}.drama-card.selected{border-color:var(--accent);background:#c17f3b0a}.drama-title{margin-bottom:4px;font-size:15px;font-weight:500}.drama-meta{color:var(--text-muted);flex-wrap:wrap;gap:10px;margin-bottom:8px;font-size:12px;display:flex}.drama-reason{color:var(--text-muted);font-size:13px;line-height:1.6}.level-pill{border-radius:4px;padding:2px 8px;font-size:11px;font-weight:500;display:inline-block}.level-A2{color:var(--green);background:#2ea87a1a}.level-B1{color:var(--accent);background:#c17f3b1a}.level-B2{color:var(--accent2);background:#5b4fd41a}.level-C1{color:var(--red);background:#d94f6a1a}.vocab-list{flex-direction:column;gap:8px;display:flex}.vocab-item{background:var(--surface);border:1px solid var(--border);border-radius:8px;align-items:flex-start;gap:12px;padding:14px 16px;display:flex}.vocab-word{min-width:120px;color:var(--accent);font-size:15px;font-weight:500}.vocab-def{color:var(--text-soft);flex:1;font-size:13px;line-height:1.5}.vocab-pos{color:var(--accent2);background:#5b4fd40d;border:1px solid #5b4fd433;border-radius:3px;flex-shrink:0;margin-top:2px;padding:2px 7px;font-size:10px}.quiz-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:24px}.quiz-q{margin-bottom:20px;font-size:16px;line-height:1.7}.quiz-blank{border-bottom:2px solid var(--accent);color:var(--accent);background:#c17f3b14;border-radius:3px;padding:2px 24px;font-weight:500;display:inline-block}.quiz-choices{flex-direction:column;gap:8px;display:flex}.choice-btn{background:var(--surface2);border:1px solid var(--border);color:var(--text);cursor:pointer;text-align:left;border-radius:8px;justify-content:space-between;align-items:baseline;gap:12px;padding:12px 16px;font-family:DM Sans,sans-serif;font-size:14px;transition:all .15s;display:flex}.choice-btn:hover:not(:disabled){border-color:var(--accent2);background:#5b4fd40a}.choice-btn.correct{border-color:var(--green);color:var(--green);background:#2ea87a14}.choice-btn.wrong{border-color:var(--red);color:var(--red);background:#d94f6a14}.quiz-nav{justify-content:space-between;align-items:center;margin-top:16px;display:flex}.quiz-progress{color:var(--text-muted);font-size:13px}.btn-next{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:8px 20px;font-family:DM Sans,sans-serif;font-size:13px;transition:opacity .2s}.btn-next:hover{opacity:.85}.explanation-box{color:var(--text-muted);background:var(--surface2);border-radius:8px;margin-top:14px;padding:12px 14px;font-size:13px;line-height:1.6;display:none}.score-display{text-align:center;padding:32px 24px}.score-num{color:var(--accent);font-family:Playfair Display,serif;font-size:64px;line-height:1;display:block}.score-comment{color:var(--text-muted);margin-top:12px;font-size:15px;line-height:1.6}.loading{color:var(--text-muted);align-items:center;gap:10px;padding:20px 0;font-size:13px;display:flex}.spinner{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;flex-shrink:0;width:16px;height:16px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{color:var(--text-muted);text-align:center;border:1px dashed var(--border);background:var(--surface);border-radius:10px;padding:40px 20px;font-size:13px;line-height:1.8}.status-msg{white-space:nowrap;border-radius:6px;padding:4px 10px;font-size:12px;display:none}.status-msg.success{color:var(--green);background:#2ea87a1a;display:block}.status-msg.error{color:var(--red);background:#d94f6a1a;display:block}.btn-history-open{background:var(--surface2);border:1px solid var(--border);color:var(--text);cursor:pointer;white-space:nowrap;border-radius:6px;align-items:center;gap:6px;padding:6px 14px;font-family:DM Sans,sans-serif;font-size:13px;transition:all .2s;display:flex}.btn-history-open:hover{border-color:var(--accent);color:var(--accent)}.history-badge{background:var(--accent);color:#fff;text-align:center;border-radius:10px;min-width:18px;padding:1px 6px;font-size:10px;font-weight:500}.modal-overlay{z-index:1000;background:#00000073;justify-content:center;align-items:flex-start;padding:72px 24px 24px;display:flex;position:fixed;inset:0}.modal-panel{background:var(--surface);border-radius:12px;flex-direction:column;width:100%;max-width:460px;max-height:calc(100vh - 110px);display:flex;overflow:hidden;box-shadow:0 8px 40px #0003}.modal-header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.modal-title{font-family:Playfair Display,serif;font-size:18px}.modal-close{cursor:pointer;color:var(--text-muted);background:0 0;border:none;border-radius:4px;padding:4px 8px;font-size:16px;line-height:1}.modal-close:hover{background:var(--surface2);color:var(--text)}.modal-body{flex:1;overflow-y:auto}.history-card{border-bottom:1px solid var(--border);padding:14px 20px}.history-card:hover{background:var(--surface2)}.history-card-top{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:6px;display:flex}.history-card-info{flex:1;min-width:0}.history-drama{white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:500;overflow:hidden}.history-ep{color:var(--text-muted);margin-top:2px;font-size:12px}.history-meta{color:var(--text-muted);flex-wrap:wrap;gap:10px;margin-bottom:10px;font-size:11px;display:flex}.history-score{white-space:nowrap;border-radius:12px;flex-shrink:0;padding:3px 10px;font-size:12px;font-weight:500}.score-high{color:var(--green);background:#2ea87a1a}.score-mid{color:var(--accent);background:#c17f3b1a}.score-low{color:var(--red);background:#d94f6a1a}.score-none{background:var(--surface2);color:var(--text-muted)}.history-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.btn-history-action{background:var(--surface2);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:6px;padding:5px 12px;font-family:DM Sans,sans-serif;font-size:12px;transition:all .15s}.btn-history-action:hover{border-color:var(--accent);color:var(--accent)}.btn-history-quiz{color:var(--accent2);border-color:#5b4fd44d}.btn-history-quiz:hover{border-color:var(--accent2);background:#5b4fd40f}.btn-history-delete{color:var(--text-muted);cursor:pointer;background:0 0;border:none;margin-left:auto;padding:5px 6px;font-family:DM Sans,sans-serif;font-size:11px;transition:color .15s}.btn-history-delete:hover{color:var(--red)}.history-quiz-pending{color:var(--text-muted);font-size:11px;font-style:italic}.btn-modal-back{color:var(--accent);cursor:pointer;text-align:left;background:0 0;border:none;width:100%;padding:12px 16px;font-family:DM Sans,sans-serif;font-size:13px;transition:background .15s;display:block}.btn-modal-back:hover{background:var(--surface2)}@media (max-width:768px){header{flex-wrap:nowrap;gap:8px;padding:12px 16px}.header-right{flex-wrap:nowrap;flex-shrink:0;gap:4px}.logo{white-space:nowrap;min-width:0}.api-input{width:140px}.step-indicator{gap:0;padding:16px 20px}.step-line{width:30px}.step-label{font-size:10px}.screen-inner{padding:32px 16px}.modal-overlay{justify-content:center;padding:60px 12px 12px}.modal-panel{max-height:calc(100vh - 80px)}.welcome-title{font-size:26px}.service-grid{grid-template-columns:repeat(2,1fr)}.btn-large{padding:14px 32px}}.toeic-wrap{flex-direction:column;gap:16px;display:flex}.toeic-input-row{align-items:center;gap:10px;display:flex}.toeic-input{border:2px solid var(--border);width:160px;color:var(--text);background:var(--surface);border-radius:8px;outline:none;padding:12px 16px;font-family:Playfair Display,serif;font-size:24px;transition:border-color .2s}.toeic-input:focus{border-color:var(--accent)}.toeic-unit{color:var(--text-muted);font-size:16px}.toeic-hint{color:var(--text-muted);font-size:12px}.toeic-levels{flex-direction:column;gap:8px;display:flex}.toeic-level-row{background:var(--surface);border:1px solid var(--border);cursor:pointer;border-radius:8px;justify-content:space-between;align-items:center;padding:12px 16px;transition:all .2s;display:flex}.toeic-level-row:hover{border-color:var(--accent);background:#c17f3b08}.toeic-level-row.selected{border-color:var(--accent);background:#c17f3b14}.toeic-range{color:var(--text-muted);min-width:100px;font-size:13px}.toeic-level-info{align-items:center;gap:10px;display:flex}.toeic-level-desc{color:var(--text-muted);font-size:12px}.level-result{background:#c17f3b0f;border:1px solid #c17f3b33;border-radius:8px;align-items:center;gap:10px;padding:14px 16px;display:flex}.level-result-label{color:var(--text-muted);font-size:13px}.level-result-value{font-size:14px}.episode-selector{background:var(--surface);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:12px;padding:16px;display:flex}.episode-label{color:var(--text);font-size:13px;font-weight:500}.episode-row{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.episode-field{flex-direction:column;gap:4px;display:flex}.episode-field-label{color:var(--text-muted);font-size:11px}.episode-select{background:var(--surface2);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:6px;outline:none;padding:8px 12px;font-size:13px}.btn-episode{background:var(--accent2);color:#fff;cursor:pointer;white-space:nowrap;border:none;border-radius:6px;padding:8px 20px;font-family:DM Sans,sans-serif;font-size:13px;font-weight:500;transition:opacity .2s}.btn-episode:hover:not(:disabled){opacity:.85}.btn-episode:disabled{opacity:.4;cursor:not-allowed}.btn-episode-danger{color:var(--text-muted);border:1px solid var(--border);background:0 0;font-weight:400}.bulkdel-link{color:var(--text-muted);cursor:pointer;background:0 0;border:none;margin:12px auto 0;padding:6px 8px;font-family:inherit;font-size:12px;text-decoration:underline;display:block}.bulkdel-link:hover{color:var(--red)}.bulkdel-panel{max-width:420px}.bulkdel-body{padding:22px 22px 8px;overflow-y:auto}.bulkdel-icon{text-align:center;margin-bottom:6px;font-size:30px}.bulkdel-title{text-align:center;margin:0 0 12px;font-size:17px;font-weight:700}.bulkdel-lead{margin:0 0 12px;font-size:14px;line-height:1.7}.bulkdel-list{flex-direction:column;gap:6px;margin:0 0 12px;padding:0;list-style:none;display:flex}.bulkdel-list li{background:var(--surface2);border-radius:8px;padding:8px 10px;font-size:13px;line-height:1.6}.bulkdel-list li.is-gone{color:var(--red);background:#d94f6a12}.bulkdel-list li.is-warn{color:#a3620c;background:#d983241a}.bulkdel-note{color:var(--text-muted);margin:0;font-size:12px;line-height:1.6}.bulkdel-actions{gap:8px;padding:14px 22px 20px;display:flex}.bulkdel-cancel,.bulkdel-confirm{cursor:pointer;border-radius:10px;flex:1;padding:11px 12px;font-family:inherit;font-size:14px;font-weight:600}.bulkdel-cancel{background:var(--surface);border:1px solid var(--border);color:var(--text)}.bulkdel-confirm{background:var(--red);border:1px solid var(--red);color:#fff}.bulkdel-confirm:active,.bulkdel-cancel:active{transform:scale(.99)}.btn-episode-danger:hover:not(:disabled){opacity:1;border-color:var(--red);color:var(--red);background:#d94f6a0f}.episode-selected{color:var(--accent);font-size:12px;font-weight:500}.wordbook-info{color:var(--text-muted);border-bottom:1px solid var(--border);background:#5b4fd40a;padding:10px 20px;font-size:12px;line-height:1.6}.wordbook-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:10px 20px;display:flex}.btn-clear-all{color:var(--red);cursor:pointer;background:0 0;border:none;padding:2px 0;font-family:DM Sans,sans-serif;font-size:12px}.btn-clear-all:hover{text-decoration:underline}.wordbook-item{padding-right:28px;position:relative}.wordbook-sentence{color:var(--text-soft);margin-top:3px;font-size:11px;font-style:italic;line-height:1.5}.wordbook-meta{color:var(--text-muted);opacity:.7;gap:8px;margin-top:4px;font-size:10px;display:flex}.btn-word-delete{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:2px 4px;font-size:15px;line-height:1;transition:color .15s,background .15s;position:absolute;top:10px;right:8px}.btn-word-delete:hover{color:var(--red);background:#d94f6a14}.target-wrap{background:#5b4fd40a;border:1px solid #5b4fd426;border-radius:8px;flex-direction:column;gap:10px;padding:16px;display:flex}.target-label{color:var(--text);font-size:13px;font-weight:500}.target-optional{color:var(--text-muted);font-size:11px;font-weight:300}.vocab-count-hint{color:var(--accent2);font-size:12px;line-height:1.5}.source-label{color:var(--text-muted);background:var(--surface2);border-radius:6px;margin-bottom:4px;padding:6px 10px;font-size:12px;display:inline-block}.tier-pill{letter-spacing:.02em;border-radius:4px;flex-shrink:0;padding:1px 7px;font-size:10px;font-weight:600;line-height:1.7;display:inline-block}.tier-core{color:var(--green);background:#2ea87a1f;border:1px solid #2ea87a40}.tier-advanced{color:var(--accent2);background:#5b4fd41f;border:1px solid #5b4fd440}.tier-context{color:var(--accent);background:#c17f3b1a;border:1px solid #c17f3b40}.vocab-no-test{opacity:.55}.vocab-no-test .vocab-word{color:var(--text-muted)}.tier-toggle-list{flex-direction:column;gap:8px;display:flex}.tier-toggle-row{background:var(--surface2);border:1px solid var(--border);cursor:pointer;border-radius:10px;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;transition:border-color .15s;display:flex}.tier-toggle-row:hover{border-color:#0000002e}.tier-toggle-left{flex:1;align-items:center;gap:10px;min-width:0;display:flex}.tier-toggle-name{color:var(--text);margin-bottom:1px;font-size:13px;font-weight:500}.tier-toggle-desc{color:var(--text-muted);font-size:11px;line-height:1.5}.tier-checkbox{width:18px;height:18px;accent-color:var(--accent);cursor:pointer;flex-shrink:0}.badge-ext{color:var(--accent2);background:#5b4fd41a;border:1px solid #5b4fd433;border-radius:4px;flex-shrink:0;padding:1px 7px;font-size:10px;line-height:1.7}.profile-grid{flex-wrap:wrap;justify-content:center;gap:20px;max-width:640px;margin:36px 0 16px;display:flex}.profile-card-wrap{width:110px;position:relative}.profile-card{cursor:pointer;width:110px;font:inherit;color:inherit;appearance:none;-webkit-tap-highlight-color:transparent;background:0 0;border:none;flex-direction:column;align-items:center;gap:10px;margin:0;padding:0;display:flex;position:relative}.profile-avatar{color:#fff;-webkit-user-select:none;user-select:none;border-radius:12px;justify-content:center;align-items:center;width:90px;height:90px;font-size:38px;font-weight:700;transition:box-shadow .15s,transform .12s;display:flex}.profile-card:hover .profile-avatar{box-shadow:0 0 0 3px var(--accent);transform:scale(1.05)}.profile-name{color:var(--text-muted);text-align:center;text-overflow:ellipsis;white-space:nowrap;max-width:100px;font-size:13px;transition:color .15s;overflow:hidden}.profile-card:hover .profile-name{color:var(--text)}.profile-avatar-add{color:var(--text-muted);border:2px dashed var(--border);font-size:32px;font-weight:300;background:var(--surface2)!important}.profile-add-card:hover .profile-avatar-add{border-color:var(--accent);color:var(--accent);transform:scale(1.05)}.profile-delete-btn{background:var(--text);color:#fff;cursor:pointer;opacity:0;border:none;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-size:11px;line-height:1;transition:opacity .15s;display:flex;position:absolute;top:-6px;right:4px}.profile-card-wrap:hover .profile-delete-btn{opacity:1}@media (hover:none){.profile-delete-btn{opacity:.9}}.btn-profile-switch{border:1.5px solid var(--border);cursor:pointer;color:var(--text);background:0 0;border-radius:20px;align-items:center;gap:6px;padding:4px 10px 4px 5px;font-size:13px;transition:border-color .15s;display:none}.btn-profile-switch:hover{border-color:var(--accent)}.mini-avatar{color:#fff;border-radius:5px;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;font-size:12px;font-weight:700;display:flex}.btn-header-icon{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;padding:6px 8px;font-size:20px;line-height:1;transition:background .15s,color .15s;display:inline-flex;position:relative}.btn-header-icon:hover{background:var(--surface2);color:var(--text)}.btn-header-add{color:var(--accent);border:1px solid color-mix(in srgb, var(--accent) 42%, var(--border));background:color-mix(in srgb, var(--accent) 8%, transparent)}.btn-header-add:hover{color:var(--accent);background:color-mix(in srgb, var(--accent) 16%, transparent);border-color:var(--accent)}.header-badge{background:var(--accent);color:#fff;border-radius:10px;justify-content:center;align-items:center;min-width:16px;height:16px;padding:0 3px;font-size:10px;font-weight:600;line-height:1;display:flex;position:absolute;top:2px;right:2px}#screen-main{padding:0}.main-toolbar{padding:20px max(40px, calc((100% - var(--content-max)) / 2)) 16px;background:var(--surface);border-bottom:1px solid var(--border);top:var(--header-h,0px);z-index:10;align-items:center;gap:12px;display:flex;position:sticky}.toolbar-search-wrap{flex:1;min-width:0;max-width:480px;position:relative}.toolbar-search{background:var(--surface2);border:1px solid var(--border);border-radius:10px;flex:1;align-items:center;min-width:0;max-width:480px;transition:border-color .15s;display:flex;overflow:hidden}.toolbar-search:focus-within{border-color:var(--accent)}.search-suggest{background:var(--surface);border:1px solid var(--border);z-index:50;border-radius:12px;max-height:360px;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow:hidden auto;box-shadow:0 8px 28px #0000001f}.search-suggest-msg{color:var(--text-muted);padding:14px 16px;font-size:13px}.search-suggest-aihint{color:var(--accent2);border-bottom:1px solid var(--border);background:#5b4fd40f;padding:8px 14px;font-size:11px;font-weight:600}.search-suggest-item{border:none;border-bottom:1px solid var(--border);cursor:pointer;text-align:left;background:0 0;align-items:center;gap:12px;width:100%;padding:8px 14px;font-family:DM Sans,sans-serif;transition:background .12s;display:flex}.search-suggest-item:last-child{border-bottom:none}.search-suggest-item:hover{background:var(--surface2)}.search-suggest-thumb{object-fit:cover;background:var(--surface2);border-radius:5px;flex-shrink:0;width:36px;height:52px}.search-suggest-thumb-empty{justify-content:center;align-items:center;font-size:18px;display:flex}.search-suggest-text{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.search-suggest-title{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:14px;overflow:hidden}.search-suggest-sub{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.search-suggest-type{border-radius:999px;flex-shrink:0;padding:2px 7px;font-size:10px;font-weight:600;line-height:1.6}.search-suggest-type.is-movie{color:var(--accent2);background:#5b4fd41f}.search-suggest-type.is-tv{color:var(--accent);background:#c17f3b1f}.search-suggest-year{color:var(--text-muted);flex-shrink:0;font-size:12px}.toolbar-search input{color:var(--text);background:0 0;border:none;outline:none;flex:1;padding:10px 14px;font-family:DM Sans,sans-serif;font-size:14px}.toolbar-search input::placeholder{color:var(--text-muted)}.btn-icon-search{cursor:pointer;color:var(--text-muted);background:0 0;border:none;padding:8px 12px;font-size:16px}.btn-icon-search:hover{color:var(--accent)}.btn-add-drama{white-space:nowrap;flex-shrink:0;width:auto;padding:9px 18px;font-size:14px}.toolbar-btn{white-space:nowrap;cursor:pointer;border-radius:8px;flex-shrink:0;padding:9px 16px;font-family:DM Sans,sans-serif;font-size:14px;font-weight:500;transition:all .15s}.toolbar-btn-genre{background:var(--surface);border:1px solid var(--border);color:var(--text)}.toolbar-btn-genre:hover{border-color:var(--accent);color:var(--accent)}.toolbar-btn-reco{background:var(--accent);border:1px solid var(--accent);color:#fff}.toolbar-btn-reco:hover{opacity:.9}@media (min-width:769px){.btn-add-drama{display:none}}@media (max-width:768px){.toolbar-pc-entry{display:none}}.drama-library{padding:28px max(40px, calc((100% - var(--content-max)) / 2));grid-template-columns:repeat(auto-fill,minmax(165px,1fr));align-content:start;gap:16px;min-height:300px;display:grid}.library-empty{text-align:center;color:var(--text-muted);grid-column:1/-1;padding:60px 20px;font-size:15px}.library-card{cursor:pointer;background:0 0;border:none;flex-direction:column;transition:transform .18s;display:flex}.library-card:hover{z-index:2;transform:scale(1.06)}.library-card-banner{aspect-ratio:2/3;color:#ffffffe6;letter-spacing:-1px;background-position:50%;background-size:cover;border-radius:10px;justify-content:center;align-items:center;font-size:40px;font-weight:700;transition:box-shadow .18s;display:flex;position:relative;overflow:hidden;box-shadow:0 2px 8px #00000024}.library-card:hover .library-card-banner{box-shadow:0 12px 30px #00000047}.library-card-poster{object-fit:cover;width:100%;height:100%;display:block}.library-card-caption{white-space:nowrap;flex-direction:column;gap:1px;margin-top:6px;font-size:11px;line-height:1.3;display:flex}.library-card-caption .lc-stat{font-variant-numeric:tabular-nums;font-weight:500}.library-card-caption .lc-learned{color:var(--green)}.library-card-caption .lc-mastered{color:var(--gold)}.library-card-delete{color:#ffffffd9;cursor:pointer;opacity:0;background:#00000059;border:none;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;font-size:12px;line-height:1;transition:opacity .2s,background .2s;display:flex;position:absolute;top:8px;right:8px}.library-card:hover .library-card-delete{opacity:1}.library-card-delete:hover{color:#fff;background:#c83c3ccc!important}.library-card-body{flex-direction:column;flex:1;gap:5px;padding:10px 12px;display:flex}.library-card-title{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;overflow:hidden}.library-card-meta{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.library-card-episodes{color:var(--text-muted);font-size:12px}.library-card-footer{border-top:1px solid var(--border);background:var(--surface2);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 8px;padding:8px 12px;display:flex}.library-card-date{color:var(--text-muted);font-size:11px}.library-card-action{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0;font-size:13px;font-weight:500}.library-sections{padding:20px max(40px, calc((100% - var(--content-max)) / 2));min-height:300px}.library-section+.library-section{margin-top:26px}.library-section-title{color:var(--text);margin:0 0 12px;font-size:15px;font-weight:700}.library-row{scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;grid-auto-columns:108px;grid-auto-flow:column;gap:14px;padding:8px 4px 16px;display:grid;overflow:auto hidden}.library-row .library-card{scroll-snap-align:start}.library-row::-webkit-scrollbar{height:8px}.library-row::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.library-grid{grid-template-columns:repeat(auto-fill,minmax(108px,1fr));align-content:start;gap:16px;padding:6px 2px;display:grid}.library-card-mini .library-card-letter{font-size:26px}.library-card-mini .library-card-delete{width:20px;height:20px;font-size:10px;top:5px;right:5px}@media (hover:none){.library-card-mini .library-card-delete{opacity:1}}.library-card-progress{background:#00000073;height:5px;position:absolute;bottom:0;left:0;right:0}.library-card-progress-bar{background:var(--accent);border-radius:0 2px 2px 0;height:100%;transition:width .3s;display:block}.btn-back{color:var(--text-muted);cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;margin-bottom:8px;padding:4px 0;font-family:DM Sans,sans-serif;font-size:13px;transition:color .15s;display:inline-flex}.btn-back:hover{color:var(--accent)}.svc-change-btn{font:inherit;color:var(--accent);cursor:pointer;background:0 0;border:none;margin:0;padding:0;text-decoration:underline}.svc-change-btn:hover{opacity:.8}.screen-header{margin-bottom:24px}.modal-panel-wide{width:90%;max-width:560px}.modal-panel-wide .modal-body{padding:4px 24px 24px}.settings-section{border-bottom:1px solid var(--border);margin-bottom:28px;padding-bottom:24px}.settings-section:last-of-type{border-bottom:none;margin-bottom:0}.settings-section-title{color:var(--text);align-items:center;gap:6px;margin-bottom:14px;font-size:14px;font-weight:500;display:flex}.settings-required{color:var(--red);font-size:11px;font-weight:400}.api-row{align-items:center;gap:8px;display:flex}.api-input-wide{flex:1!important;width:auto!important}.modal-tabs{border-bottom:2px solid var(--border);gap:4px;margin-bottom:16px;padding-bottom:0;display:flex}.modal-tab{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-2px;padding:8px 16px;font-family:DM Sans,sans-serif;font-size:14px;transition:color .15s,border-color .15s}.modal-tab.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:500}.modal-tab:hover{color:var(--text)}.tab-pane{display:none}.tab-pane.active{display:block}.screen-num{display:none}.auth-modal-panel{width:92%;max-width:380px}.auth-body{flex-direction:column;gap:12px;padding:8px 24px 28px;display:flex}.auth-lead{color:var(--text-muted);text-align:center;margin-bottom:4px;font-size:13px;line-height:1.6}.auth-tabs{background:var(--surface2);border-radius:8px;gap:2px;padding:3px;display:flex}.auth-tab{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;flex:1;padding:8px;font-family:DM Sans,sans-serif;font-size:13px;transition:all .15s}.auth-tab.active{background:var(--surface);color:var(--text);font-weight:500;box-shadow:0 1px 4px #00000014}.auth-input{border:1px solid var(--border);width:100%;color:var(--text);background:var(--surface);border-radius:8px;outline:none;padding:12px 14px;font-family:DM Sans,sans-serif;font-size:14px;transition:border-color .15s}.auth-input:focus{border-color:var(--accent)}.auth-error{color:var(--red);background:#d94f6a0f;border-radius:6px;padding:8px 12px;font-size:12px;line-height:1.5}.auth-divider{text-align:center;color:var(--text-muted);font-size:12px;position:relative}.auth-divider:before,.auth-divider:after{content:"";background:var(--border);width:42%;height:1px;position:absolute;top:50%}.auth-divider:before{left:0}.auth-divider:after{right:0}.srs-progress-wrap{background:var(--surface);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:8px;padding:14px 16px;display:flex}.srs-progress-header{justify-content:space-between;align-items:center;display:flex}.srs-ep-label{color:var(--text);font-size:13px;font-weight:500}.srs-pct{font-size:13px;font-weight:600;transition:color .3s}.srs-bar{background:var(--surface2);border-radius:99px;height:8px;overflow:hidden}.srs-bar-fill{border-radius:99px;min-width:4px;height:100%;transition:width .6s,background .6s}.srs-stats{color:var(--text-muted);font-size:11px;line-height:1.5}.srs-complete{color:#f5c518;text-align:center;letter-spacing:.02em;padding:4px 0 2px;font-size:13px;font-weight:600}.srs-badge{flex-shrink:0;font-size:13px;line-height:1}.badge-mastered{filter:drop-shadow(0 0 3px #f5c51880)}.badge-due{filter:drop-shadow(0 0 3px #d94f6a66)}.badge-reviewed{color:var(--green);opacity:.85;font-size:11px;font-weight:600}.badge-q-easy{color:var(--green);opacity:1;background:#34c75921;border-radius:10px;padding:2px 6px}.badge-q-hard{color:var(--accent);opacity:1;background:#ff950021;border-radius:10px;padding:2px 6px}.badge-q-fail{color:var(--red);opacity:1;background:#ff3b3021;border-radius:10px;padding:2px 6px}.review-count-label{color:var(--text-muted);white-space:nowrap;background:#7878801f;border-radius:10px;padding:2px 7px;font-size:10px}.srs-next-review{color:var(--text-muted);background:var(--surface2);border:1px solid var(--border);white-space:nowrap;border-radius:4px;flex-shrink:0;padding:1px 6px;font-size:10px}.vocab-mastered{background:#f5c5180a!important;border-left:3px solid #f5c518!important}.vocab-mastered .vocab-word{color:#b8921a}.vocab-skipped{opacity:.45}.vocab-skipped .vocab-word{color:var(--text-muted);text-decoration:line-through}.vocab-card-actions{flex-shrink:0;align-items:center;gap:6px;display:flex}.btn-speak{border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:6px;flex-shrink:0;padding:3px 7px;font-size:14px;line-height:1;transition:all .15s}.btn-speak:hover{border-color:var(--text-muted);background:#7878801a}.btn-speak:active{transform:scale(.92)}.word-timestamp{color:var(--accent);cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;background:#c17f3b1a;border-radius:10px;padding:2px 7px;font-size:11px;transition:all .15s}.word-timestamp:hover{background:#c17f3b33}.btn-srs-skip{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;white-space:nowrap;background:0 0;border-radius:6px;flex-shrink:0;align-self:center;padding:3px 10px;font-family:DM Sans,sans-serif;font-size:11px;transition:all .15s}.btn-srs-skip:hover{border-color:var(--text-muted);color:var(--text)}.btn-srs-resume{color:var(--accent);border-color:#c17f3b66}.btn-srs-resume:hover{background:#c17f3b0f}.btn-review-start{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:8px;width:100%;margin-top:16px;padding:13px 20px;font-family:DM Sans,sans-serif;font-size:14px;font-weight:500;transition:opacity .2s;display:block}.btn-review-start:hover{opacity:.88}.review-modal-panel{width:92%;max-width:420px}.review-panel{width:100%;max-width:420px;margin:0 auto}.review-content{flex-direction:column;align-items:center;min-height:340px;padding:24px 20px 28px;display:flex}.review-card{flex-direction:column;align-items:center;gap:12px;width:100%;display:flex}.review-counter{color:var(--text-muted);align-self:flex-end;font-size:12px}.review-word-big{color:var(--accent);text-align:center;margin:8px 0 4px;font-family:Playfair Display,serif;font-size:40px;font-weight:700;line-height:1.1}.review-speak{cursor:pointer;vertical-align:middle;opacity:.7;background:0 0;border:none;margin-left:8px;padding:2px 4px;font-size:20px;line-height:1;transition:opacity .15s,transform 50ms}.review-speak:hover{opacity:1}.review-speak:active{transform:scale(.9)}.review-speak-sm{margin-left:6px;font-size:14px}.review-pos-tag{color:var(--accent2);border:1px solid #5b4fd44d;border-radius:4px;padding:2px 8px;font-size:11px}.pos-surface{color:var(--text-muted);border-left:1px solid #5b4fd440;margin-left:6px;padding-left:6px;font-weight:500}.review-flip{background:var(--surface2);border:1px solid var(--review-border);color:var(--text-muted);cursor:pointer;text-align:center;border-radius:10px;width:100%;margin-top:20px;padding:12px 28px;font-family:DM Sans,sans-serif;font-size:14px;transition:all .15s}.review-flip:hover{border-color:var(--accent);color:var(--accent);background:#c17f3b0a}.review-answer{flex-direction:column;gap:10px;width:100%;animation:.2s fadeIn;display:flex}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.review-def-text{color:var(--text);text-align:center;padding:12px 0 4px;font-size:18px;font-weight:500;line-height:1.5}.review-example-text{color:var(--text-soft);text-align:center;border-bottom:1px solid var(--review-border);padding:0 8px 8px;font-size:13px;font-style:italic;line-height:1.6}.review-example-ja{color:var(--text-soft);opacity:.9;margin-top:2px;font-size:12px;font-style:normal}.word-example-wrap{flex-direction:column;gap:1px;margin-top:3px;display:flex}.word-example-en{color:var(--text-soft);font-size:12px;line-height:1.5}.word-ex-speak{cursor:pointer;vertical-align:middle;opacity:.65;background:0 0;border:none;margin-left:5px;padding:1px 3px;font-size:12px;line-height:1;transition:opacity .15s}.word-ex-speak:hover{opacity:1}.word-ex-speak:active{transform:scale(.9)}.word-example-ja{color:var(--text-soft);opacity:.9;font-size:11px;line-height:1.4}.word-example-source{color:var(--text-muted);opacity:.6;margin-top:2px;font-size:10px;line-height:1.4}.review-example-source{color:var(--text-muted);opacity:.6;margin-top:4px;font-size:10px;font-style:normal}.review-rate-btns{gap:8px;margin-top:8px;display:flex}.btn-rate{border:1px solid var(--review-border);cursor:pointer;text-align:center;background:var(--surface2);min-width:0;color:var(--text);border-radius:12px;flex-direction:column;flex:1 1 0;align-items:center;gap:4px;padding:14px 6px;font-family:DM Sans,sans-serif;transition:all .15s;display:flex}.btn-rate-emoji{font-size:22px;line-height:1}.btn-rate-label{border-bottom:2px solid var(--review-border);white-space:nowrap;padding-bottom:5px;font-size:14px;font-weight:700}.btn-rate-sub{color:var(--text-muted);white-space:nowrap;font-size:11px}.btn-rate-fail .btn-rate-label{border-bottom-color:var(--red)}.btn-rate-hard .btn-rate-label{border-bottom-color:var(--gold,#d99a00)}.btn-rate-easy .btn-rate-label{border-bottom-color:var(--green)}.btn-rate:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.btn-rate-fail:hover{border-color:var(--red);color:var(--red);background:#d94f6a0f}.btn-rate-hard:hover{border-color:var(--accent);color:var(--accent);background:#c17f3b0f}.btn-rate-easy:hover{border-color:var(--green);color:var(--green);background:#2ea87a0f}.review-done{text-align:center;flex-direction:column;align-items:stretch;gap:8px;width:100%;padding:8px 0 4px;display:flex}.review-all-perfect{color:var(--green);padding:8px 0 16px;font-size:14px;font-weight:500}.review-summary{text-align:left;flex-direction:column;gap:12px;max-height:280px;margin-bottom:8px;display:flex;overflow-y:auto}.review-summary-group{flex-direction:column;gap:4px;display:flex}.review-summary-label{border-bottom:1px solid var(--border);margin-bottom:4px;padding:4px 0 2px;font-size:12px;font-weight:600}.label-fail{color:var(--red)}.label-hard{color:var(--accent)}.label-easy{color:var(--green)}.review-summary-item{background:var(--surface2);border-radius:6px;align-items:baseline;gap:8px;padding:4px 6px;display:flex}.review-summary-word{color:var(--text);flex-shrink:0;min-width:90px;font-size:14px;font-weight:500}.review-summary-def{color:var(--text-muted);font-size:12px;line-height:1.4}.badge-easy,.badge-hard,.badge-fail{border-radius:20px;padding:4px 10px;font-size:12px;font-weight:600;display:inline-block}.badge-easy{color:var(--green);background:#34c75926}.badge-hard{color:var(--accent);background:#ff950026}.badge-fail{color:var(--red);background:#ff3b3026}.review-done-count{opacity:.8;font-size:12px;font-weight:400}.review-completed-today{color:var(--green);text-align:center;background:#34c7591f;border-radius:10px;margin-top:8px;padding:10px 14px;font-size:13px;font-weight:600}.review-history-details summary::-webkit-details-marker{display:none}.review-history-details summary:before{content:"▶ ";font-size:10px}.review-history-details[open] summary:before{content:"▼ "}.onboarding-steps{justify-content:center;gap:8px;margin-bottom:32px;display:flex}.onboarding-step{background:var(--border);border-radius:2px;width:32px;height:4px;transition:background .3s}.onboarding-step.active{background:var(--accent)}.onboarding-title{color:var(--text);margin-bottom:8px;font-family:Playfair Display,serif;font-size:22px;font-weight:700;line-height:1.4}.onboarding-desc{color:var(--text-muted);margin-bottom:24px;font-size:14px}.btn-text-link{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:8px;font-family:inherit;font-size:13px}.btn-text-link:hover{color:var(--text)}.tutorial-overlay{align-items:center;padding:24px}.tutorial-panel{max-width:430px;position:relative}.tutorial-skip-x{z-index:2;font-size:15px;position:absolute;top:10px;right:12px}.tutorial-body{text-align:center;padding:40px 28px 4px}.tutorial-body .onboarding-steps{margin-bottom:26px}.tutorial-slide{animation:.28s fadeIn}.tutorial-badge{width:92px;height:92px;color:var(--accent);background:linear-gradient(135deg,#c17f3b29,#5b4fd424);border-radius:50%;justify-content:center;align-items:center;margin:2px auto 22px;display:flex}.tutorial-desc{color:var(--text-muted);max-width:330px;margin:0 auto;font-size:14.5px;line-height:1.75}.tutorial-footer{padding:16px 28px 22px}.tutorial-subnav{justify-content:center;gap:22px;min-height:34px;margin-top:6px;display:flex}.tutorial-cta{border:1px solid var(--accent);color:var(--accent);cursor:pointer;background:0 0;border-radius:8px;align-items:center;gap:6px;margin:16px auto 0;padding:8px 16px;font-family:inherit;font-size:13px;font-weight:600;transition:background .15s,color .15s;display:inline-flex}.tutorial-cta:hover{background:var(--accent);color:#fff}.ext-guide-panel{max-width:480px}.ext-guide-body{padding:20px}.ext-guide-lead{color:var(--text-muted);margin:0 0 20px;font-size:13.5px;line-height:1.7}.ext-guide-steps{flex-direction:column;gap:18px;margin:0;padding:0;list-style:none;display:flex}.ext-guide-step{align-items:flex-start;gap:12px;display:flex}.ext-guide-num{background:var(--accent);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;font-size:13px;font-weight:700;display:flex}.ext-guide-step-text{flex:1;min-width:0}.ext-guide-step-title{color:var(--text);margin-bottom:3px;font-size:14.5px;font-weight:700}.ext-guide-step-text p{color:var(--text-muted);margin:0;font-size:13px;line-height:1.65}.ext-guide-dl{margin-top:10px;padding:8px 16px;font-size:13px;text-decoration:none;display:inline-block}.ext-guide-code{background:var(--surface2);border:1px solid var(--border);cursor:pointer;border-radius:6px;align-items:center;gap:10px;margin-top:8px;padding:6px 10px;font-family:inherit;display:inline-flex}.ext-guide-code code{color:var(--text);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px}.ext-guide-copy{color:var(--accent);white-space:nowrap;font-size:11px;font-weight:600}.ext-guide-note{color:var(--text-muted);border-top:1px solid var(--border);margin:20px 0 0;padding-top:14px;font-size:11.5px;line-height:1.6}.ext-guide-footer{border-top:1px solid var(--border);flex-shrink:0;padding:14px 20px}.ext-banner{background:var(--surface2);border:1px solid var(--border);border-radius:9px;align-items:center;gap:8px;margin:0 0 12px;padding:7px 12px;display:flex}.ext-banner-icon{opacity:.75;flex-shrink:0;font-size:14px}.ext-banner-text{min-width:0;color:var(--text-muted);flex:1;font-size:12px;line-height:1.4}.ext-banner-btn{color:var(--accent);cursor:pointer;white-space:nowrap;text-underline-offset:2px;background:0 0;border:none;border-radius:6px;flex-shrink:0;padding:4px 8px;font-family:inherit;font-size:12px;font-weight:600;text-decoration:underline}.ext-banner-btn:hover{opacity:.75}.ext-banner-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;padding:4px 6px;font-size:13px;line-height:1}.ext-banner-close:hover{color:var(--text);background:#0000000f}.ext-banner-info{padding-right:36px;position:relative}.ext-banner-info .ext-banner-close{position:absolute;top:6px;right:6px}@media (max-width:560px){.ext-banner{flex-wrap:wrap}.ext-banner-text{flex:100%;order:-1}}.today-panel{padding:12px max(40px, calc((100% - var(--content-max)) / 2)) 0;flex-direction:column;gap:10px;margin:0 0 14px;display:flex}.today-panel:empty{display:none}.today-streak{color:var(--text);align-items:center;gap:6px;font-size:15px;font-weight:700;display:flex}.today-streak b{color:var(--accent);font-size:20px}.today-streak-zero{color:var(--text-muted);font-size:13px;font-weight:500}.today-review-card{border-radius:16px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;max-width:620px;padding:18px;display:flex}.today-review-card.done-review{flex-direction:column;align-items:flex-start;gap:4px}.today-review-card.has-review{background:linear-gradient(135deg,#c17f3b1f,#5b4fd41a);border:1px solid #c17f3b40}.today-review-card.done-review{background:var(--surface);border:1px solid var(--border)}.today-review-title{color:var(--text);font-size:16px;font-weight:700}.today-review-title b{color:var(--accent);font-size:20px}.today-review-sub{color:var(--text-muted);margin-top:2px;font-size:12px}.btn-today-review{background:linear-gradient(135deg, color-mix(in srgb, var(--accent) 84%, white), var(--accent));color:#fff;cursor:pointer;white-space:nowrap;box-shadow:0 3px 12px color-mix(in srgb, var(--accent) 36%, transparent);border:none;border-radius:12px;padding:12px 22px;font-size:14px;font-weight:700;transition:transform .12s,box-shadow .15s,filter .12s}.btn-today-review:hover{box-shadow:0 6px 18px color-mix(in srgb, var(--accent) 46%, transparent);filter:brightness(1.04);transform:translateY(-1px)}.btn-today-review:active{transform:translateY(0)scale(.98)}.today-stats{color:var(--text-muted);padding-left:2px;font-size:12px}.today-stats b{color:var(--text);font-weight:700}.srs-badge.badge-mastered,.srs-badge.badge-learned,.srs-badge.badge-learning,.srs-badge.badge-new{white-space:nowrap;border-radius:999px;padding:3px 7px;font-size:10px;font-weight:700;line-height:1}.badge-mastered{color:#4a3500;filter:drop-shadow(0 0 3px #f5c51873);background:linear-gradient(135deg,#f5c518,#e0a000)}.badge-learned{color:var(--green);background:#2ea87a26;border:1px solid #2ea87a59}.badge-learning{color:var(--accent2);background:#5b4fd41a;border:1px solid #5b4fd440}.badge-new{color:var(--text-muted);border:1px solid var(--border);background:#0000000a}.srs-counts{flex-wrap:wrap;gap:14px;margin:6px 0 2px;font-size:12px;display:flex}.srs-count-learned{color:var(--green)}.srs-count-mastered{color:#b8921a}.srs-counts b{font-weight:700}.vocab-learned .vocab-word{color:var(--green)}.review-promotions{flex-direction:column;gap:6px;margin:4px 0 14px;display:flex}.review-promo{border-radius:12px;padding:8px 12px;font-size:14px;font-weight:700}.review-promo.learned{color:var(--green);background:#2ea87a1f}.review-promo.mastered{color:#8a6a00;background:linear-gradient(135deg,#f5c51838,#e0a0002e);border:1px solid #f5c51880}.review-done-gold{position:relative}.review-done-gold:before{content:"";pointer-events:none;background:radial-gradient(circle at 50% 30%,#f5c5184d,#0000 60%);animation:1.6s ease-out goldGlow;position:absolute;inset:-20px}.review-done-gold .review-hero-emoji{filter:drop-shadow(0 0 10px #f5c518b3);animation:.7s cubic-bezier(.2,1.4,.4,1) masterPop}@keyframes goldGlow{0%{opacity:0;transform:scale(.8)}40%{opacity:1}to{opacity:0;transform:scale(1.15)}}@keyframes masterPop{0%{opacity:0;transform:scale(.3)rotate(-15deg)}60%{opacity:1;transform:scale(1.25)rotate(8deg)}to{transform:scale(1)rotate(0)}}.media-type-choice{padding:20px 4px}.media-type-title{color:var(--text);margin-bottom:14px;font-size:14px;font-weight:600}.media-type-options{grid-template-columns:1fr 1fr;gap:12px;display:grid}.media-type-btn{background:var(--surface);border:2px solid var(--border);cursor:pointer;border-radius:14px;flex-direction:column;align-items:center;gap:6px;padding:18px 12px;font-family:inherit;transition:border-color .15s,transform .1s;display:flex}.media-type-btn:hover{border-color:var(--accent);transform:translateY(-2px)}.media-type-icon{font-size:28px}.media-type-label{color:var(--text);font-size:14px;font-weight:700}.media-type-name{color:var(--text-muted);text-align:center;font-size:11px;line-height:1.4}.gen-loading{flex-direction:column;gap:16px;padding:8px 0 16px;display:flex}.gen-synopsis{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:16px 18px;animation:.4s synopsisIn}@keyframes synopsisIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.gen-synopsis-title{color:var(--text);margin-bottom:8px;font-size:13px;font-weight:700}.gen-synopsis-text{color:var(--text-muted);font-size:13px;line-height:1.8}.gen-tip{color:var(--text-muted);text-align:center;opacity:0;min-height:1.6em;font-size:12px}.gen-tip-show{animation:4s forwards tipFade}@keyframes tipFade{0%{opacity:0;transform:translateY(4px)}10%{opacity:1;transform:none}85%{opacity:1}to{opacity:0}}.gen-progress{background:var(--surface2);border-radius:999px;height:6px;overflow:hidden}.gen-progress-fill{background:linear-gradient(90deg, var(--accent), var(--accent2));border-radius:999px;width:0%;height:100%;transition:width .3s}.gen-tip-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:14px 18px}.gen-tip-title{color:var(--text);margin-bottom:6px;font-size:12px;font-weight:700}.gen-tip-card .gen-tip{text-align:left;font-size:13px;line-height:1.6}@media (max-width:768px){.screen-inner{gap:14px;padding:16px 16px 56px}.screen-header{gap:10px;padding-bottom:8px}.screen-title{font-size:19px}.screen-desc{margin-top:2px;font-size:12px;line-height:1.5}.btn-back{margin-bottom:2px;font-size:12px}.episode-selector{gap:10px;padding:14px}.loading{padding:8px 0}.gen-loading{gap:12px;padding:0 0 10px}.gen-synopsis{padding:13px 15px}.gen-tip-card{padding:12px 15px}.today-panel{padding:12px 16px 0}.main-toolbar{padding:10px 16px}.drama-library{grid-template-columns:repeat(2,1fr);gap:12px;padding:20px 16px}.library-sections{padding:16px}.library-grid{grid-template-columns:repeat(3,1fr);gap:10px}.library-row{grid-auto-columns:28vw;gap:10px}.library-card-caption{margin-top:4px;font-size:9px}.main-toolbar{flex-direction:column;align-items:stretch;gap:10px}.main-toolbar .toolbar-search{max-width:none}.main-toolbar .btn-add-drama{background:var(--surface);width:100%;color:var(--accent);border:1px solid color-mix(in srgb, var(--accent) 38%, var(--border));box-shadow:none;font-weight:600}.main-toolbar .btn-add-drama:hover{border-color:var(--accent);background:var(--surface2)}}.search-page-box{align-items:stretch;gap:8px;display:flex}.search-page-input{background:var(--surface2);border:1px solid var(--border);min-width:0;color:var(--text);border-radius:10px;outline:none;flex:1;padding:11px 14px;font-family:DM Sans,sans-serif;font-size:15px}.search-page-input:focus{border-color:var(--accent)}.search-page-input::placeholder{color:var(--text-muted)}.search-page-btn{white-space:nowrap;flex-shrink:0;width:auto;padding:11px 22px}.search-results{border:1px solid var(--border);border-radius:12px;flex-direction:column;display:flex;overflow:hidden}.search-ai-btn{margin-top:4px}.discover{padding-bottom:24px}.discover-head{align-items:center;gap:8px;margin-bottom:14px;display:flex}.discover-back{background:var(--surface2);border:1px solid var(--border);width:38px;height:38px;color:var(--text);cursor:pointer;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;font-size:18px;display:flex}.discover-back:hover{border-color:var(--accent);color:var(--accent)}.discover-title{text-align:center;color:var(--text);flex:1;font-size:17px;font-weight:700}.discover-head-spacer{flex-shrink:0;width:38px}.discover-search{background:var(--surface2);border:1px solid var(--border);top:calc(var(--header-h,0px) + 8px);z-index:5;border-radius:12px;align-items:center;gap:8px;margin-bottom:18px;padding:0 12px;display:flex;position:sticky}.discover-search:focus-within{border-color:var(--accent)}.discover-search-icon{opacity:.7;flex-shrink:0;font-size:15px}.discover-search-input{min-width:0;color:var(--text);background:0 0;border:none;outline:none;flex:1;padding:13px 0;font-family:DM Sans,sans-serif;font-size:15px}.discover-search-input::placeholder{color:var(--text-muted)}.discover-search-clear{color:var(--text-muted);cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:6px;font-size:14px}.discover-search-clear:hover{color:var(--text)}.discover-sec{margin-bottom:22px}.discover-sec-title{color:var(--text);margin:0 0 10px;font-size:14px;font-weight:700}.discover-sec-head{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:10px;display:flex}.discover-sec-head .discover-sec-title{margin:0}.discover-clear-link{color:var(--text-muted);cursor:pointer;background:0 0;border:none;flex-shrink:0;font-family:DM Sans,sans-serif;font-size:12px;font-weight:600}.discover-clear-link:hover{color:var(--accent)}.discover-chips{flex-wrap:wrap;gap:8px;display:flex}.discover-chip{background:var(--surface2);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:999px;padding:7px 14px;font-family:DM Sans,sans-serif;font-size:13px}.discover-chip:hover{border-color:var(--accent);color:var(--accent)}.discover-genre-grid{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.discover-genre{background:var(--surface);border:1px solid var(--border);cursor:pointer;text-align:left;border-radius:12px;align-items:center;gap:10px;padding:13px 14px;transition:border-color .15s,background .15s;display:flex}.discover-genre:hover{border-color:var(--accent)}.discover-genre.is-active{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 10%, var(--surface))}.discover-genre-icon{flex-shrink:0;font-size:20px;line-height:1}.discover-genre-label{color:var(--text);flex:1;font-size:14px;font-weight:600}.discover-genre.is-active .discover-genre-label{color:var(--accent)}.discover-genre-chev{color:var(--text-muted);flex-shrink:0;font-size:18px}.discover-ai-banner{background:linear-gradient(135deg, color-mix(in srgb, var(--accent) 12%, var(--surface)), var(--surface));border:1px solid color-mix(in srgb, var(--accent) 28%, var(--border));cursor:pointer;text-align:left;border-radius:14px;align-items:center;gap:12px;width:100%;padding:14px 16px;transition:box-shadow .15s,border-color .15s;display:flex}.discover-ai-banner:hover{border-color:var(--accent);box-shadow:0 6px 20px #00000012}.discover-ai-icon{background:color-mix(in srgb, var(--accent) 16%, var(--surface));border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;font-size:19px;display:flex}.discover-ai-body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.discover-ai-title{color:var(--text);font-size:14px;font-weight:700}.discover-ai-sub{color:var(--text-muted);font-size:12px}.discover-ai-chev{color:var(--accent);flex-shrink:0;font-size:18px}.discover-pop-grid{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.disc-card{cursor:pointer;text-align:left;background:0 0;border:none;min-width:0;padding:0}.disc-card-poster{aspect-ratio:2/3;background:var(--surface2);border-radius:10px;justify-content:center;align-items:center;width:100%;display:flex;position:relative;overflow:hidden;box-shadow:0 2px 10px #00000014}.disc-card-poster img{object-fit:cover;width:100%;height:100%;transition:opacity .2s}.disc-card-letter{color:var(--text-muted);font-size:26px;font-weight:700}.disc-card:hover .disc-card-poster{box-shadow:0 6px 18px #00000024}.disc-card-title{color:var(--text);text-overflow:ellipsis;white-space:nowrap;margin-top:6px;font-size:12px;font-weight:600;overflow:hidden}.disc-card-genre{color:var(--text-muted);font-size:11px}.discover-results{margin-top:4px}@media (max-width:380px){.discover-pop-grid{grid-template-columns:repeat(2,1fr)}}.gen-strip{background:var(--surface);border:1px solid var(--border);border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 14px;padding:10px 14px;display:flex}.gen-strip-status{color:var(--text);align-items:center;gap:10px;font-size:14px;font-weight:500;display:flex}.gen-steps{color:var(--text-muted);white-space:nowrap;align-items:center;gap:12px;font-size:12px;display:flex}.gen-step-done{color:var(--green)}.gen-step-active{color:var(--accent);font-weight:600}.gen-reveal-btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:12px;width:100%;padding:13px 12px;font-family:inherit;font-size:15px;font-weight:600;animation:.45s cubic-bezier(.18,.9,.3,1.25) both prepTicketEarn}.gen-reveal-btn:active{transform:scale(.99)}@media (prefers-reduced-motion:reduce){.gen-reveal-btn{animation:none}}.gen-synopsis-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;animation:.4s synopsisIn}.gen-synopsis-row{align-items:center;gap:14px;padding:14px 16px;display:flex}.gen-cover-thumb{aspect-ratio:16/9;object-fit:cover;background:#26222e;border-radius:10px;flex-shrink:0;width:200px;height:auto}.gen-synopsis-inner{flex:1;min-width:0}.gen-synopsis-heading{color:var(--text);margin-bottom:7px;font-size:14px;font-weight:600}.gen-synopsis-body{color:var(--text);opacity:.85;font-size:14px;line-height:1.85}.gen-skeleton{flex-direction:column;gap:9px;padding-top:4px;display:flex}.gen-skeleton span{background:var(--surface2);border-radius:6px;height:11px;animation:1.2s ease-in-out infinite clPulse}.gen-skeleton span:nth-child(2){width:92%;animation-delay:.15s}.gen-skeleton span:nth-child(3){width:60%;animation-delay:.3s}@keyframes clPulse{0%,to{opacity:1}50%{opacity:.45}}.gen-tipbar{background:var(--surface2);border-radius:10px;justify-content:space-between;align-items:center;gap:10px;padding:13px 16px;display:flex}.gen-tipbar-main{flex:1;min-width:0}.gen-tipbar-label{letter-spacing:.06em;color:var(--accent);margin-bottom:5px;font-size:11px;font-weight:700}.gen-tipbar-text{color:var(--text);opacity:0;font-size:14px;line-height:1.85}.gen-tip-dots{flex-shrink:0;gap:5px;display:flex}.gen-tip-dots span{background:#0000001f;border-radius:50%;width:5px;height:5px}.gen-tip-dots span.on{background:var(--accent)}@media (max-width:560px){.gen-synopsis-row{flex-direction:row;align-items:flex-start;gap:12px;padding:12px 14px}.gen-cover-thumb{width:110px}.gen-synopsis-body{font-size:13px;line-height:1.7}}.recommend-empty-wrap{padding:24px 0 40px}.recommend-heading{color:var(--text);margin-bottom:4px;font-size:18px;font-weight:700}.recommend-subheading{color:var(--text-muted);margin-bottom:20px;font-size:13px}.recommend-grid{text-align:left;grid-template-columns:repeat(3,1fr);gap:14px;max-width:720px;margin:0 auto;display:grid}.recommend-card{background:var(--surface);border:1px solid var(--border);cursor:pointer;border-radius:12px;flex-direction:column;min-width:0;transition:transform .15s,box-shadow .15s;display:flex;overflow:hidden}.recommend-card:hover{transform:translateY(-3px);box-shadow:0 8px 24px #0000001a}.recommend-card.is-selected{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent), 0 8px 24px color-mix(in srgb, var(--accent) 22%, transparent)}.recommend-poster{aspect-ratio:2/3;background:var(--bg-alt,#0000000a);justify-content:center;align-items:center;width:100%;display:flex;position:relative}.recommend-poster img{object-fit:cover;width:100%;height:100%;display:block}.recommend-poster-fallback{color:var(--text-muted);font-size:40px;font-weight:700}.recommend-info{flex-direction:column;gap:5px;padding:8px 10px 10px;display:flex}.recommend-title-row{justify-content:space-between;align-items:center;gap:6px;display:flex}.recommend-title{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.recommend-title-row .level-pill{flex-shrink:0}.recommend-reason{color:var(--text-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:11px;line-height:1.5;display:-webkit-box;overflow:hidden}.recommend-empty{text-align:center;color:var(--text-muted);grid-column:1/-1;padding:40px 20px;font-size:14px;line-height:1.7}.recommend-grid.recommend-row{text-align:left;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;grid-template-columns:none;grid-auto-columns:150px;grid-auto-flow:column;max-width:100%;padding-bottom:10px;overflow:auto hidden}.recommend-grid.recommend-row .recommend-card{scroll-snap-align:start}.recommend-grid.recommend-row::-webkit-scrollbar{height:8px}.recommend-grid.recommend-row::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.recommend-grid.recommend-mini{text-align:left;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;grid-template-columns:none;grid-auto-columns:108px;grid-auto-flow:column;gap:14px;max-width:100%;padding:8px 4px 16px;overflow:auto hidden}.recommend-grid.recommend-mini .recommend-card{scroll-snap-align:start;background:0 0;border:none;border-radius:10px;box-shadow:0 2px 8px #00000024}.recommend-grid.recommend-mini .recommend-card:hover{z-index:2;transform:scale(1.06);box-shadow:0 12px 30px #00000047}.recommend-grid.recommend-mini::-webkit-scrollbar{height:8px}.recommend-grid.recommend-mini::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}@media (max-width:768px){.recommend-grid.recommend-mini{grid-auto-columns:28vw;gap:10px}}.btn-recommend-entry{width:100%;color:var(--accent);cursor:pointer;text-align:left;background:#c17f3b14;border:1px solid #c17f3b4d;border-radius:10px;flex-direction:column;align-items:flex-start;gap:2px;margin-bottom:14px;padding:12px 14px;font-size:15px;font-weight:600;display:flex}.btn-recommend-entry:hover{background:#c17f3b24}.btn-recommend-entry-sub{color:var(--text-muted);font-size:11px;font-weight:400}@media (max-width:560px){.recommend-grid{grid-template-columns:repeat(2,1fr);gap:10px}.recommend-title{font-size:12px}.recommend-reason{font-size:10px}}.header-only-desktop{display:none!important}.bottom-nav{z-index:900;background:var(--surface);border-top:1px solid var(--border);padding:0 max(0px, calc((100% - 640px) / 2)) env(safe-area-inset-bottom);display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -2px 12px #0000000d}.bottom-nav-spacer{height:calc(56px + env(safe-area-inset-bottom));display:block}.bottom-nav-tab{cursor:pointer;min-height:56px;color:var(--text-muted);-webkit-tap-highlight-color:transparent;background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;padding:8px 0 7px;font-family:DM Sans,sans-serif;transition:color .15s,transform .1s;display:flex}.bottom-nav-tab.is-active{color:var(--accent)}.bottom-nav-tab:hover{color:var(--text)}.bottom-nav-tab.is-active:hover{color:var(--accent)}.bottom-nav-tab:active{transform:scale(.94)}.bottom-nav-icon{line-height:0;position:relative}.bottom-nav-label{font-size:10px;font-weight:500}.bottom-nav-badge{background:var(--red);color:#fff;text-align:center;box-sizing:border-box;border-radius:8px;min-width:16px;height:16px;padding:0 4px;font-size:10px;font-weight:700;line-height:16px;position:absolute;top:-5px;right:-9px}.bottom-nav-badge.is-count{background:var(--surface2);color:var(--text-muted);border:1px solid var(--border);line-height:14px}.today-hero{color:#f3ece0;background:radial-gradient(135% 150% at 86% 10%,#e8b76647,#0000 56%),linear-gradient(135deg,#241d15 0%,#16110b 100%);border:1px solid #e8b7662e;border-radius:18px;align-items:center;gap:16px;max-width:640px;padding:18px 20px;display:flex;overflow:hidden;box-shadow:0 10px 30px #00000038}.today-hero .today-ring-track{stroke:#ffffff29}.today-hero .today-hero-count-num{color:#f0c264}.today-hero .today-hero-count-unit{color:#f3ece099}.today-hero .today-hero-title{color:#fdf8ef}.today-hero .today-hero-sub{color:#f3ece0b8}.today-hero .today-hero-week{color:#f3ece0a8}.today-hero .today-hero-week b{color:#fdf8ef}.today-hero .today-streak-chip{color:#f0c264;background:#e8b76629}.today-hero .today-streak-chip.is-zero{color:#f3ece099;background:#ffffff14}.today-hero .today-hero-check{background:#2ea87a38}html[data-theme=light] .today-hero,html[data-theme=light] .rh-hero:not(.is-done){background:radial-gradient(135% 150% at 86% 10%, color-mix(in srgb, var(--gold) 26%, transparent), transparent 58%), linear-gradient(135deg, color-mix(in srgb, var(--accent) 14%, #fff) 0%, color-mix(in srgb, var(--accent) 6%, #fff) 100%);border-color:color-mix(in srgb, var(--accent) 30%, transparent);box-shadow:0 6px 20px color-mix(in srgb, var(--accent) 16%, transparent);color:var(--text)}html[data-theme=light] .today-hero .today-ring-track{stroke:#0000001a}html[data-theme=light] .today-hero .today-hero-count-num{color:var(--accent)}html[data-theme=light] .today-hero .today-hero-count-unit{color:var(--text-muted)}html[data-theme=light] .today-hero .today-hero-title{color:var(--text)}html[data-theme=light] .today-hero .today-hero-sub,html[data-theme=light] .today-hero .today-hero-week{color:var(--text-muted)}html[data-theme=light] .today-hero .today-hero-week b{color:var(--text)}html[data-theme=light] .today-hero .today-streak-chip{color:var(--accent);background:#ffffffb8}html[data-theme=light] .today-hero .today-streak-chip.is-zero{color:var(--text-muted);background:#ffffffb8}html[data-theme=light] .today-hero .today-hero-check{background:#2ea87a29}html[data-theme=light] .today-hero .today-week-chip,html[data-theme=light] .rh-hero:not(.is-done) .rh-hero-sub{color:var(--text-muted)}.today-hero-count{flex-shrink:0;justify-content:center;align-items:center;width:72px;height:72px;line-height:1;display:flex;position:relative}.today-ring{width:100%;height:100%;position:absolute;inset:0}.today-ring-track{fill:none;stroke:var(--border);stroke-width:4px}.today-hero-count-inner{flex-direction:column;align-items:center;display:flex;position:relative}.today-hero-count-num{color:var(--accent);font-family:Playfair Display,serif;font-size:26px;font-weight:700}.today-hero-count-unit{color:var(--text-muted);margin-top:1px;font-size:10px}.today-hero-check{width:48px;height:48px;color:var(--green);background:#2ea87a24;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:24px;font-weight:700;display:flex}.today-hero-main{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.today-hero-title{color:var(--text);font-size:17px;font-weight:700}.today-hero-sub{color:var(--text-muted);font-size:13px;line-height:1.5}.today-hero-meta{flex-wrap:wrap;align-items:center;gap:8px 12px;display:flex}.today-streak-chip{color:var(--accent);background:#c17f3b1a;border-radius:999px;align-items:center;gap:4px;padding:3px 10px;font-size:12px;font-weight:700;display:inline-flex}.today-streak-chip.is-zero{color:var(--text-muted);background:var(--surface2);font-weight:500}.today-week-chip{color:#f3ece0b3;align-items:center;margin-left:8px;font-size:12px;display:inline-flex}.today-hero-week{color:var(--text-muted);font-size:12px}.today-hero-week b{color:var(--text);font-weight:700}@media (max-width:768px){.today-hero{flex-wrap:wrap;gap:12px 14px;padding:16px}.today-hero .btn-today-review{order:3;width:100%}.today-hero-count{width:56px;height:56px}.today-hero-count-num{font-size:23px}.today-hero-title{font-size:16px}}.vocab-item{padding:0;display:block;overflow:hidden}.vocab-row{text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;align-items:center;gap:10px;width:100%;min-height:48px;padding:12px 14px;font-family:DM Sans,sans-serif;display:flex}.vocab-dot{border:2px solid var(--text-muted);opacity:.6;background:0 0;border-radius:50%;flex-shrink:0;width:9px;height:9px}.vocab-row .vocab-word{min-width:0;color:var(--accent);flex-shrink:0;font-size:15px;font-weight:500}.vocab-word-speak{opacity:.6;cursor:pointer;-webkit-user-select:none;user-select:none;flex-shrink:0;margin:-6px -4px -6px -8px;padding:6px;font-size:13px;line-height:1;transition:opacity .15s,transform .15s}.vocab-word-speak:hover{opacity:1}.vocab-word-speak:active{transform:scale(.9)}.vocab-cefr-chip{color:var(--text-muted);letter-spacing:.02em;white-space:nowrap;border:1px solid #78788059;border-radius:4px;flex-shrink:0;padding:1px 6px;font-size:10px;font-weight:600;line-height:1.7;display:inline-block}.vocab-cefr-chip.is-ai{opacity:.55;border-style:dashed}.cefr-note{color:var(--text-muted);margin:2px 2px 8px;font-size:11px;line-height:1.5}.cefr-note a{color:inherit;text-underline-offset:2px;text-decoration:underline}.cefr-note .cefr-note-short{display:none}@media (max-width:768px){.cefr-note .cefr-note-long{display:none}.cefr-note .cefr-note-short{display:inline}}.spell-sheet{background:var(--card-bg,#fff);border:1px solid var(--border);border-radius:14px;margin-top:8px;padding:12px;box-shadow:0 4px 16px #0000000f}.spell-lead{color:var(--text-muted);margin:0 0 8px;font-size:13px;line-height:1.5}.spell-lead b{color:var(--text)}.spell-cand{border:1px solid var(--border);border-radius:12px;margin-bottom:8px;padding:10px 12px}.spell-top{align-items:center;gap:8px;display:flex}.spell-word{color:var(--accent);font-size:17px;font-weight:700}.spell-ts{color:var(--accent);white-space:nowrap;background:#b9803f1f;border-radius:999px;margin-left:auto;padding:1px 8px;font-size:12px}.spell-hint{color:var(--text-muted);margin-left:auto;font-size:11px}.spell-ex{margin:6px 0 2px;font-size:13px;line-height:1.5}.spell-ex mark{color:var(--accent);background:0 0;font-weight:700}.spell-src{color:var(--text-muted);font-size:11px}.spell-pick{background:var(--accent);color:#fff;cursor:pointer;border:0;border-radius:10px;width:100%;margin-top:8px;padding:9px;font-family:inherit;font-size:14px;font-weight:700}.spell-pick.is-sub{border:1px solid var(--accent);color:var(--accent);background:0 0}.spell-none{border:1px dashed var(--border);width:100%;color:var(--text-muted);cursor:pointer;background:0 0;border-radius:10px;padding:9px;font-family:inherit;font-size:13px}.spell-pick:disabled,.spell-none:disabled{opacity:.5;cursor:default}.spell-pick+.spell-none{margin-top:8px}.vocab-added-chip{color:var(--text-muted);white-space:nowrap;background:#7878801f;border-radius:10px;flex-shrink:0;padding:3px 6px;font-size:10px;line-height:1}.vocab-meaning{min-width:0;color:var(--text-soft);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:13px;line-height:1.4;overflow:hidden}.vocab-item.is-expanded .vocab-meaning{white-space:normal;overflow:visible}.vocab-chevron{color:var(--text-muted);flex-shrink:0;line-height:0;transition:transform .2s}.vocab-item.is-expanded .vocab-chevron{transform:rotate(180deg)}.vocab-detail{flex-direction:column;gap:10px;padding:2px 14px 14px;display:none}.vocab-item.is-expanded .vocab-detail{display:flex}.vocab-detail-tags{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.vocab-detail-tags .vocab-pos{margin-top:0}.vocab-detail-actions{gap:8px;display:flex}.vocab-detail-actions .btn-speak{padding:6px 12px;font-size:12px}.vocab-detail-actions .btn-srs-skip{padding:6px 14px}@media (min-width:769px){.vocab-detail{display:flex}.vocab-chevron{display:none}.vocab-row{cursor:default}.vocab-meaning{white-space:normal;overflow:visible}}.review-progress{background:var(--surface2);flex-shrink:0;height:4px}.review-progress-fill{background:var(--accent);border-radius:0 2px 2px 0;height:100%;transition:width .3s;display:block}.review-swipe-hint{text-align:center;color:var(--text-muted);margin-top:10px;font-size:11px;display:none}@media (max-width:768px){.review-overlay{align-items:stretch;padding:0}.review-overlay .review-modal-panel{border-radius:0;width:100%;max-width:100%;height:100dvh;max-height:none}.review-overlay .review-content{padding:24px 20px calc(24px + env(safe-area-inset-bottom));flex:1;justify-content:center;overflow-y:auto}.review-word-big{font-size:46px}.review-rate-btns{gap:10px;margin-top:12px}.btn-rate{padding:18px 6px}.btn-rate-emoji{font-size:24px}.btn-rate-label{font-size:15px}.review-flip{padding:20px 28px;font-size:16px}.review-swipe-hint{display:block}.screen.review-screen{flex-direction:column;min-height:calc(100dvh - 116px);display:flex}.review-screen .review-panel{flex-direction:column;flex:1;min-height:0;display:flex}.review-screen .review-content{min-height:0;padding-bottom:calc(20px + env(safe-area-inset-bottom));flex:1;overflow-y:auto}.review-screen .review-card{flex-direction:column;flex:1;width:100%;display:flex}.review-screen .review-card-body{flex-direction:column;flex:1;justify-content:center;align-items:center;display:flex}.review-screen .review-done{margin-top:auto;margin-bottom:auto}html.cl-review-lock,html.cl-review-lock body{overscroll-behavior:none;overflow:hidden}html.cl-review-lock .app-tmdb-footer{display:none}.review-screen .review-content{overscroll-behavior:contain}}.episode-picker{align-items:flex-end;gap:12px;display:flex}.episode-field-grow{flex:1;min-width:0}.episode-chips{scrollbar-width:none;gap:6px;padding-bottom:2px;display:flex;overflow-x:auto}.episode-chips::-webkit-scrollbar{display:none}.episode-chip{border:1px solid var(--border);background:var(--surface2);min-width:36px;height:36px;color:var(--text);cursor:pointer;border-radius:8px;flex:none;padding:0 10px;font-family:DM Sans,sans-serif;font-size:13px;transition:border-color .15s,background .15s,color .15s}.episode-chip:hover{border-color:var(--accent)}.episode-chip.is-active{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:700}@media (max-width:768px){.episode-picker{flex-direction:column;align-items:stretch;gap:10px}.vocab-cta-sticky{bottom:calc(56px + env(safe-area-inset-bottom) + 10px);z-index:50;position:sticky;box-shadow:0 6px 20px #00000024}.word-example-en{font-size:13px;line-height:1.6}.word-example-ja{font-size:12px;line-height:1.5}header{padding-left:max(16px, env(safe-area-inset-left));padding-right:max(16px, env(safe-area-inset-right))}}.profile-login-link{color:var(--text-muted);text-underline-offset:3px;cursor:pointer;background:0 0;border:none;margin-top:28px;font-family:DM Sans,sans-serif;font-size:13px;text-decoration:underline}.profile-login-link:hover{color:var(--accent)}@keyframes imgShimmer{0%{background-position:150% 0}to{background-position:-150% 0}}.img-skeleton{border-radius:inherit;background:linear-gradient(100deg, var(--surface2) 30%, var(--border) 50%, var(--surface2) 70%);background-size:200% 100%;animation:1.2s ease-in-out infinite imgShimmer;position:absolute;inset:0}@media (prefers-reduced-motion:reduce){.img-skeleton{animation:none}}.select-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:16px;margin-top:8px;display:grid}.select-card{cursor:pointer;text-align:left;min-width:0;font:inherit;background:0 0;border:none;flex-direction:column;padding:0;transition:transform .18s;display:flex}.select-card:hover{z-index:2;transform:scale(1.05)}.select-poster{aspect-ratio:2/3;background:var(--surface2);border-radius:10px;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden;box-shadow:0 2px 8px #00000029}.select-poster img{object-fit:cover;width:100%;height:100%;transition:opacity .3s;display:block}.select-poster-fallback{font-size:30px}.select-type-badge{color:#fff;background:#0009;border-radius:6px;padding:1px 6px;font-size:10px;position:absolute;top:6px;left:6px}.select-type-badge.is-movie{background:#5b4fd4e0}.select-type-badge.is-tv{background:#c17f3beb}.select-caption{padding:6px 2px 0}.select-title{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:600;display:block;overflow:hidden}.select-en{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:10px;display:block;overflow:hidden}.select-year{color:var(--text-muted);font-size:11px}.modal-body .drama-list{grid-template-columns:repeat(2,1fr);gap:14px;display:grid}.modal-body .drama-card{cursor:pointer;background:0 0;border:none;flex-direction:column;padding:0;transition:transform .18s;display:flex}.modal-body .drama-card:hover{background:0 0;border:none;transform:scale(1.04)}.modal-body .drama-card.selected{background:0 0}.drama-card-poster{aspect-ratio:2/3;background:var(--surface2);border-radius:10px;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden;box-shadow:0 2px 8px #00000029}.drama-card-poster img{object-fit:cover;width:100%;height:100%;transition:opacity .3s;display:block}.drama-card-fallback{color:var(--text-muted);font-size:32px;font-weight:700}.drama-card-level{position:absolute;top:6px;right:6px}.drama-card-info{padding:6px 2px 0}.drama-card-title{color:var(--text);white-space:nowrap;text-overflow:ellipsis;margin-bottom:2px;font-size:13px;font-weight:600;overflow:hidden}.modal-body .drama-card .drama-reason{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:11px;line-height:1.45;display:-webkit-box;overflow:hidden}@media (max-width:768px){.select-grid{grid-template-columns:repeat(3,1fr);gap:12px}.modal-body .drama-list{gap:10px}}html[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}html[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#14110d;--surface:#201b15;--surface2:#2b2419;--border:#ffffff1f;--review-border:#ffffff47;--accent:#d8a24a;--accent2:#8b80ff;--text:#f3efe8;--text-muted:#a89e8d;--text-soft:#d2c8b8;--red:#e4708a;--green:#4cc79b;--gold:#e0b450}html[data-theme=dark] body{background:var(--bg);color:var(--text)}html[data-theme=dark] header,html[data-theme=dark] .bottom-nav{background:var(--surface)}.theme-seg{gap:8px;display:flex}.theme-seg-btn{border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;border-radius:10px;flex:1;padding:10px 8px;font-size:13px;transition:border-color .15s,background .15s}.theme-seg-btn.active{border-color:var(--accent);color:var(--accent);background:#c17f3b1a;font-weight:600}.btn-primary,.btn-today-review,.toolbar-btn-reco,.btn-next,.btn-review-start,.tag.active,.screen-num,.history-badge,.header-badge,.ext-guide-num,.tutorial-cta:hover{color:var(--on-accent)}.ep-collapse-head{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);font:inherit;cursor:pointer;border-radius:12px;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;transition:border-color .15s,background .15s;display:flex}.ep-collapse-head:hover{border-color:color-mix(in srgb, var(--accent) 35%, var(--border))}.ep-collapse-current{align-items:center;gap:10px;min-width:0;display:flex}.ep-collapse-badge{background:linear-gradient(135deg, color-mix(in srgb, var(--accent) 65%, #000), color-mix(in srgb, var(--accent) 55%, #000));color:#fff;letter-spacing:.4px;font-variant-numeric:tabular-nums;border-radius:8px;flex-shrink:0;padding:4px 10px;font-family:DM Sans,sans-serif;font-size:13px;font-weight:700}.ep-collapse-title{white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;overflow:hidden}.ep-collapse-chev{color:var(--accent);flex-shrink:0;font-size:12px;font-weight:700}.ep-collapse-head+.ep-picker{margin-top:12px}.ep-picker{flex-direction:column;gap:14px;display:flex}.ep-seasons{flex-wrap:wrap;gap:8px;display:flex}.ep-season-chip{border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;border-radius:999px;padding:8px 16px;font-size:13px;font-weight:600;transition:transform .12s,box-shadow .15s,border-color .15s}.ep-season-chip:hover{border-color:color-mix(in srgb, var(--accent) 40%, var(--border))}.ep-season-chip.is-active{background:linear-gradient(135deg, color-mix(in srgb, var(--accent) 84%, white), var(--accent));color:var(--on-accent);box-shadow:0 3px 10px color-mix(in srgb, var(--accent) 32%, transparent);border-color:#0000}.ep-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;display:grid}.ep-card{text-align:left;border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;border-radius:14px;align-items:center;gap:12px;padding:11px 13px;transition:transform .12s,box-shadow .15s,border-color .15s;display:flex;box-shadow:0 1px 4px #0000000d}.ep-card:hover{transform:translateY(-1px);box-shadow:0 5px 16px #00000017}.ep-card-num{background:var(--surface2);width:36px;height:36px;color:var(--text-muted);font-variant-numeric:tabular-nums;border-radius:11px;flex-shrink:0;justify-content:center;align-items:center;font-family:DM Sans,sans-serif;font-size:16px;font-weight:700;display:flex}.ep-card-body{flex-direction:column;gap:2px;min-width:0;display:flex}.ep-card-title{font-size:13px;font-weight:600}.ep-card-state{color:var(--text-muted);font-size:11px}.ep-card.is-active{border-color:var(--accent);background:linear-gradient(135deg, color-mix(in srgb, var(--accent) 9%, var(--surface)), var(--surface));box-shadow:0 0 0 1px var(--accent), 0 8px 20px color-mix(in srgb, var(--accent) 22%, transparent)}.ep-card.is-active .ep-card-num{background:linear-gradient(135deg, color-mix(in srgb, var(--accent) 84%, white), var(--accent));color:var(--on-accent)}.ep-card.is-active .ep-card-state{color:var(--accent);letter-spacing:.05em;font-weight:700}.ep-card.is-done .ep-card-num{background:color-mix(in srgb, var(--green) 18%, var(--surface));color:var(--green)}.ep-card.is-done .ep-card-state{color:var(--green)}@media (max-width:768px){.ep-grid{grid-template-columns:repeat(2,1fr);gap:8px}.ep-card{gap:10px;padding:10px 11px}}.prep-choicebar{background:var(--surface);flex-direction:column;gap:8px;padding:4px 0 0;display:flex}.prep-choice-main{width:100%}.prep-choice-subrow{align-items:center;gap:8px;display:flex}.prep-choice-sub{flex:1;width:auto}.prep-choice-watch{color:var(--text-muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;flex-shrink:0;padding:10px 6px;font-family:DM Sans,sans-serif;font-size:13px}.prep-choice-watch:hover{color:var(--text)}.prep-modes-list{flex-direction:column;gap:12px;margin-top:12px;display:flex}.prep-mode{border:1.5px solid var(--border);background:var(--surface);cursor:pointer;text-align:left;border-radius:14px;flex-direction:column;justify-content:center;align-items:flex-start;gap:4px;width:100%;min-height:78px;padding:16px 18px;transition:transform 80ms,border-color .15s;display:flex}.prep-mode:hover{border-color:var(--text-muted)}.prep-mode:active{transform:scale(.99)}.prep-mode-name{color:var(--text);font-size:16px;font-weight:600}.prep-mode-desc{color:var(--text-muted);font-size:13px}.prep-mode-quiz{border-color:var(--accent);background:#c17f3b1a}.prep-mode-quiz .prep-mode-name{color:var(--accent)}.prep-mode-quiz:hover{border-color:var(--accent)}.prep-mode-cards{border-color:var(--accent2);background:#5b4fd414}.prep-mode-cards .prep-mode-name{color:var(--accent2)}.prep-mode-cards:hover{border-color:var(--accent2)}.prep-mode-watch{border-color:var(--border);background:0 0}.prep-panel{max-width:420px}.prep-content{padding:18px 20px 22px;overflow-y:auto}.prep-empty{color:var(--text-muted);margin-bottom:14px;font-size:14px}.prep-progress{background:var(--surface2);flex-shrink:0;height:4px}.prep-progress-fill{background:linear-gradient(90deg, var(--accent), color-mix(in srgb, var(--accent) 70%, white));height:100%;transition:width .25s;display:block}.prep-counter{color:var(--text-muted);margin-bottom:6px;font-size:12px}.prep-q-lead{margin-bottom:12px;font-size:14px;font-weight:600}.prep-quote{background:var(--surface2);border-radius:10px;margin-bottom:16px;padding:12px 14px;font-size:16px;line-height:1.7}.prep-blank{color:var(--text-muted);letter-spacing:.04em;font-weight:700}.prep-blank.is-revealed{color:var(--accent)}.prep-choices{flex-direction:column;gap:8px;display:flex}.prep-choice{text-align:center;border:1.5px solid var(--border);background:var(--surface);width:100%;color:var(--text);cursor:pointer;border-radius:10px;padding:12px 14px;font-family:DM Sans,sans-serif;font-size:15px;font-weight:600;transition:border-color .15s,background .15s}.prep-choice:hover:not(:disabled){border-color:var(--accent)}.prep-choice:disabled{cursor:default}.prep-choice.is-correct{border-color:var(--green);background:color-mix(in srgb, var(--green) 14%, var(--surface));color:var(--green)}.prep-choice.is-wrong{border-color:var(--red);background:color-mix(in srgb, var(--red) 12%, var(--surface));color:var(--red)}.prep-feedback{margin-top:14px}.prep-verdict{color:var(--text-muted);margin-bottom:6px;font-size:14px;font-weight:600}.prep-verdict.is-correct{color:var(--green)}.prep-answer-def{margin-bottom:2px;font-size:14px}.prep-answer-ja{color:var(--text-muted);margin-bottom:12px;font-size:13px}.prep-next{margin-top:4px}.prep-launch-content{text-align:left}.prep-launch-lead{margin-bottom:6px;font-size:16px;font-weight:700}.prep-launch-sub{color:var(--text-muted);margin-bottom:14px;font-size:13px}.prep-listen-lines{flex-direction:column;gap:8px;margin-bottom:14px;display:flex}.prep-listen-line{background:var(--surface2);border-left:3px solid var(--accent);border-radius:8px;padding:10px 12px;font-size:14px;line-height:1.6}.prep-listen-hl{color:var(--accent);font-weight:700}.prep-integrity{color:var(--text-muted);background:var(--surface2);border-radius:8px;flex-wrap:wrap;gap:6px 14px;margin-bottom:12px;padding:10px 12px;font-size:12px;display:flex}.prep-integrity b{color:var(--text);font-size:14px}.prep-tomorrow{color:var(--text-muted);margin-bottom:14px;font-size:13px}.prep-cta-wrap{margin-top:4px}.prep-cta{width:100%}.prep-cta-note{text-align:center;color:var(--text-muted);margin-top:6px;font-size:11px}.prep-cinema-overlay{z-index:1200;background:#1f1810;justify-content:center;align-items:stretch;animation:.45s prepCinemaFade;display:flex;position:fixed;inset:0}@keyframes prepCinemaFade{0%{opacity:0}to{opacity:1}}.prep-cinema-panel{color:#ece2cf;background:#1f1810;flex-direction:column;width:100%;max-width:460px;height:100%;display:flex}.prep-cinema-body{flex-direction:column;flex:1;justify-content:center;padding:12px 20px;display:flex;overflow-y:auto}.prep-cinema-foot{padding:14px 20px calc(16px + env(safe-area-inset-bottom,0px));border-top:1px solid #c9a24e29}.prep-cinema-head{padding:calc(18px + env(safe-area-inset-top,0px)) 20px 4px;justify-content:space-between;align-items:center;display:flex}.prep-cinema-title{color:#e8b766;font-size:16px;font-weight:600}.prep-cinema-close{color:#9a8f7e;cursor:pointer;background:0 0;border:none;font-size:18px;line-height:1}.prep-cinema-earned{color:#e8b766;text-align:center;margin-bottom:12px;font-size:13px;animation:.4s .85s both prepCinemaFadeUp}@keyframes prepCinemaFadeUp{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.prep-cinema-lead{color:#e7dcc4;margin-bottom:12px;font-size:15px}.prep-cinema-sub{color:#a89878;margin-bottom:14px;font-size:13px}.prep-ticket{background:#f1e8d6;border-radius:12px;margin-bottom:14px;animation:.7s cubic-bezier(.18,.9,.3,1.25) .2s both prepTicketEarn;display:flex;overflow:hidden}@keyframes prepTicketEarn{0%{opacity:0;transform:translateY(48px)scale(.9)}to{opacity:1;transform:translateY(0)scale(1)}}.prep-ticket-main{flex:1;min-width:0;padding:13px 14px}.prep-ticket-brand{color:#9c7c33;letter-spacing:.1em;margin-bottom:6px;font-size:10px}.prep-ticket-title{color:#2a2114;font-size:17px;font-weight:600;line-height:1.2}.prep-ticket-ep{color:#6a5c43;margin:2px 0 10px;font-size:12px}.prep-ticket-cue-label{color:#8a7553;font-size:10px}.prep-ticket-cue{color:#3a2f1d;font-size:13px;font-weight:600}.prep-ticket-stub{background:#e9deca;border-left:2px dashed #cabd9f;flex-direction:column;flex-shrink:0;justify-content:space-between;align-items:center;width:58px;padding:12px 6px;display:flex}.prep-ticket-seat{color:#9c7c33;writing-mode:vertical-rl;letter-spacing:.1em;font-size:10px}.prep-ticket-date{color:#6a5c43;font-size:10px}.prep-cinema-lines{border-left:2px solid #c9a24e80;margin-bottom:14px;padding-left:12px}.prep-cinema-line{color:#d9cdb8;font-family:Georgia,Times New Roman,serif;font-size:14px;line-height:1.9}.prep-cinema-hl{color:#e9c877;font-weight:600}.prep-cinema-tomorrow{color:#9a8f7e;margin-bottom:16px;font-size:12px}.prep-cinema-cta{color:#2a2014;cursor:pointer;background:#d8a94e;border:none;border-radius:12px;width:100%;padding:14px;font-size:16px;font-weight:600}.prep-cinema-cta-note{text-align:center;color:#8c7c5e;margin-top:9px;font-size:11px}@media (prefers-reduced-motion:reduce){.prep-cinema-overlay,.prep-cinema-panel,.prep-cinema-earned,.prep-ticket{animation:none}}.pw-overlay{z-index:1200;background:#1f1810;justify-content:center;align-items:stretch;animation:.35s prepCinemaFade;display:flex;position:fixed;inset:0}.pw-panel{color:#ece2cf;background:#1f1810;flex-direction:column;width:100%;max-width:460px;height:100%;display:flex}.pw-head{padding:calc(18px + env(safe-area-inset-top,0px)) 20px 8px;justify-content:space-between;align-items:center;display:flex}.pw-title{color:#e8b766;font-size:16px;font-weight:600}.pw-close{color:#9a8f7e;cursor:pointer;background:0 0;border:none;font-size:18px;line-height:1}.pw-progress{background:#c9a24e26;border-radius:2px;flex-shrink:0;height:4px;margin:0 20px;overflow:hidden}.pw-progress-fill{background:linear-gradient(90deg,#d8a94e,#f0cd80);height:100%;transition:width .25s;display:block}.pw-body{flex-direction:column;flex:1;justify-content:center;align-items:center;padding:16px 20px;display:flex;overflow-y:auto}.pw-counter{color:#a89878;letter-spacing:.06em;margin-bottom:4px;font-size:12px}.pw-momentum{color:#e8b766;margin-left:8px;font-weight:700}.pw-note{color:#8c7c5e;margin-bottom:12px;font-size:11px}.pw-card{color:#2a2114;background:#f1e8d6;border-radius:16px;width:100%;padding:22px 20px;animation:.4s cubic-bezier(.18,.9,.3,1.25) both prepTicketEarn;box-shadow:0 10px 32px #0000004d}.pw-card-top{align-items:center;gap:10px;display:flex}.pw-word{color:#2a2114;word-break:break-word;flex:1;min-width:0;font-size:30px;font-weight:700;line-height:1.1}.pw-speak{color:#6a5c43;cursor:pointer;background:#e4d7bb;border:none;border-radius:10px;flex-shrink:0;width:40px;height:40px;font-size:18px}.pw-speak:hover{background:#dcceac}.pw-pos{color:#9c7c33;margin-top:8px;font-size:12px;font-weight:600;display:inline-block}.pw-def{color:#3a2f1d;margin-top:10px;font-size:16px;line-height:1.5}.pw-ex{border-left:3px solid #d8a94e;margin-top:14px;padding-left:12px}.pw-ex-en{color:#4a3d27;font-family:Georgia,Times New Roman,serif;font-size:15px;line-height:1.7}.pw-hl{color:#b5852c;font-weight:700}.pw-ex-ja{color:#6a5c43;margin-top:6px;font-size:13px}.pw-ex-src{color:#9a8a6a;margin-top:8px;font-size:10px}.pw-ts{color:#8a7553;margin-top:14px;font-size:12px}.pw-foot{padding:12px 20px calc(16px + env(safe-area-inset-bottom,0px));border-top:1px solid #c9a24e29}.pw-foot-row{gap:10px;display:flex}.pw-prev{color:#d9cdb8;cursor:pointer;background:0 0;border:1px solid #c9a24e4d;border-radius:12px;flex-shrink:0;padding:14px 16px;font-family:DM Sans,sans-serif;font-size:15px}.pw-prev:disabled{opacity:.35;cursor:default}.pw-next{color:#2a2014;cursor:pointer;background:#d8a94e;border:none;border-radius:12px;flex:1;padding:14px;font-size:16px;font-weight:600}.pw-skip{color:#8c7c5e;cursor:pointer;background:0 0;border:none;width:100%;margin-top:10px;font-family:DM Sans,sans-serif;font-size:12px;display:block}.pw-skip:hover{color:#b3a587}.pw-more{color:#d8a94e;cursor:pointer;background:0 0;border:none;width:100%;margin-top:10px;font-family:DM Sans,sans-serif;font-size:13px;font-weight:600;display:block}.pw-more:hover{color:#ecc16a}@media (prefers-reduced-motion:reduce){.pw-overlay,.pw-card{animation:none}}.prepped-chip{color:var(--green);background:color-mix(in srgb, var(--green) 14%, transparent);vertical-align:middle;border-radius:999px;margin-left:8px;padding:1px 8px;font-size:11px;font-weight:600;display:inline-block}.vocab-cta-alt{width:100%;color:var(--text-muted);text-underline-offset:3px;cursor:pointer;background:0 0;border:none;margin-top:10px;font-family:DM Sans,sans-serif;font-size:13px;text-decoration:underline;display:block}.vocab-cta-alt:hover{color:var(--text)}.vocab-action-bar{bottom:calc(56px + env(safe-area-inset-bottom) + 10px);z-index:50;background:var(--surface);border:1px solid var(--border);border-radius:14px;gap:8px;margin-top:16px;padding:8px;display:flex;position:sticky;box-shadow:0 6px 20px #00000024}.vab-btn{border:1px solid var(--border);background:var(--surface);min-width:0;color:var(--text);cursor:pointer;border-radius:10px;flex-direction:column;flex:1 1 0;align-items:center;gap:2px;padding:9px 4px;font-family:inherit;transition:border-color .15s,background .15s,color .15s,opacity .15s;display:flex}.vab-btn:hover{border-color:var(--accent)}.vab-btn:disabled{opacity:.5;cursor:default}.vab-btn:disabled:hover{border-color:var(--border)}.vab-btn.is-primary{background:linear-gradient(135deg, color-mix(in srgb, var(--accent) 84%, white), var(--accent));border-color:var(--accent);color:#fff}.vab-main{white-space:nowrap;font-size:13px;font-weight:700}.vab-sub{color:var(--text-muted);white-space:nowrap;font-size:11px;font-weight:500}.vab-btn.is-primary .vab-sub{color:#ffffffd9}.pf-ticket-card{aspect-ratio:1250/640;perspective:1400px;cursor:pointer;width:100%;max-width:440px;margin:4px auto 0;animation:.7s cubic-bezier(.18,.9,.3,1.25) .2s both prepTicketEarn;container-type:inline-size}.pf-ticket-inner{width:100%;height:100%;transform-style:preserve-3d;transition:transform .6s cubic-bezier(.4,.1,.2,1);position:relative}.pf-ticket-card.is-flipped .pf-ticket-inner{transform:rotateY(180deg)}.pf-face{backface-visibility:hidden;position:absolute;inset:0}.pf-front{background:url(/premiere-pass.webp) 50%/contain no-repeat}.pf-back{background:#241c14;border:1px solid #6e5a2f;border-radius:10px;flex-direction:column;justify-content:center;padding:6cqw 7cqw;display:flex;transform:rotateY(180deg)}.pf-ov{text-align:center;white-space:nowrap;position:absolute;transform:translate(-50%,-50%)}.pf-ov-title{color:#2a2114;letter-spacing:.04em;white-space:normal;max-width:54cqw;font-family:Bebas Neue,DM Sans,system-ui,sans-serif;font-size:7cqw;font-weight:400;line-height:1.02}.pf-ov-se{color:#6a5c43;letter-spacing:.12em;font-family:Montserrat,sans-serif;font-size:3cqw;font-weight:500}.pf-ov-result{color:#8b2e2e;letter-spacing:.08em;font-family:Montserrat,sans-serif;font-size:4.2cqw;font-weight:700}.pf-ov-seat{color:#8b2e2e;letter-spacing:.02em;font-family:Montserrat,sans-serif;font-size:4.2cqw;font-weight:700}.pf-ov-date{color:#6a5c43;letter-spacing:.04em;font-family:Montserrat,sans-serif;font-size:2.8cqw;font-weight:600}.pf-back-head{color:#e8b766;margin-bottom:3cqw;font-size:3.4cqw}.pf-back-lines{border-left:2px solid #c9a24e80;padding-left:3cqw}.pf-back-line{color:#dccfb6;font-family:Georgia,Times New Roman,serif;font-size:3.6cqw;line-height:2}.pf-back-hl{color:#e9c877;font-weight:600}.pf-hint{text-align:center;color:#8c7c5e;margin-top:10px;font-size:11px}@media (prefers-reduced-motion:reduce){.pf-ticket-card{animation:none}}.screen.ob-screen{background:var(--bg);flex-direction:column;max-width:480px;height:100dvh;margin:0 auto;display:flex}.ob-bar{flex-shrink:0;align-items:center;gap:14px;padding:14px 16px 8px;display:flex}.ob-back{color:var(--text-muted);cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:2px 6px;font-size:24px;line-height:1}.ob-back:disabled{opacity:.3;cursor:default}.ob-progress{background:var(--surface2);border-radius:999px;flex:1;height:14px;overflow:hidden}.ob-progress-fill{background:linear-gradient(90deg, color-mix(in srgb, var(--accent) 80%, white), var(--accent));border-radius:999px;height:100%;transition:width .35s;display:block}.ob-content{-webkit-overflow-scrolling:touch;flex:1;padding:12px 20px 20px;overflow-y:auto}.ob-footer{padding:14px 20px max(28px, calc(env(safe-area-inset-bottom) + 16px));border-top:1px solid var(--border);background:var(--bg);flex-direction:column;flex-shrink:0;align-items:center;gap:8px;display:flex}.ob-skip{cursor:pointer;font:inherit;color:var(--text-muted);background:0 0;border:none;padding:4px;font-size:13px}.ob-skip:hover{color:var(--accent)}.ob-rows{flex-direction:column;gap:10px;margin-top:16px;display:flex}.ob-row{text-align:left;border:1.5px solid var(--border);background:var(--surface);width:100%;color:var(--text);font:inherit;cursor:pointer;border-radius:14px;align-items:center;gap:12px;padding:15px 16px;transition:border-color .15s,background .15s;display:flex}.ob-row:hover{border-color:color-mix(in srgb, var(--accent) 40%, var(--border))}.ob-row.selected{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 8%, var(--surface))}.ob-row-icon{flex-shrink:0;font-size:22px}.ob-row-label{flex:1;font-size:15px;font-weight:600}.ob-row-check{border:2px solid var(--border);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;transition:background .15s,border-color .15s;display:flex}.ob-row.selected .ob-row-check{background:var(--accent);border-color:var(--accent)}.ob-row.selected .ob-row-check:after{content:"✓";color:var(--on-accent);font-size:13px;font-weight:700;line-height:1}.onboarding-step.done{background:color-mix(in srgb, var(--accent) 55%, var(--border))}.ob-opts{flex-direction:column;gap:10px;margin-top:18px;display:flex}.ob-opt{text-align:left;border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);font:inherit;cursor:pointer;border-radius:12px;padding:14px 16px;font-size:14px;transition:border-color .15s,background .15s,box-shadow .15s}.ob-opt:hover{border-color:color-mix(in srgb, var(--accent) 40%, var(--border))}.ob-opt.selected{border-color:var(--accent);background:linear-gradient(135deg, color-mix(in srgb, var(--accent) 10%, var(--surface)), var(--surface));box-shadow:0 0 0 1px var(--accent), 0 6px 16px color-mix(in srgb, var(--accent) 20%, transparent);font-weight:600}.ob-style-grid{grid-template-columns:1fr 1fr;gap:12px;margin-top:18px;display:grid}.ob-style-card{border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;border-radius:14px;flex-direction:column;align-items:center;gap:6px;padding:20px 12px;transition:transform .12s,border-color .15s,box-shadow .15s;display:flex}.ob-style-card:hover{transform:translateY(-1px)}.ob-style-card.selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent), 0 8px 20px color-mix(in srgb, var(--accent) 20%, transparent)}.ob-style-icon{font-size:28px}.ob-style-label{font-size:14px;font-weight:700}.ob-style-desc{color:var(--text-muted);text-align:center;font-size:11px;line-height:1.4}.ob-text-input{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);font:inherit;border-radius:12px;margin-top:18px;padding:14px 16px;font-size:15px}.ob-text-input:focus{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent);outline:none}.ob-text-input::placeholder{color:var(--text-muted)}.ob-nav-row{justify-content:space-between;align-items:center;min-height:24px;margin-top:12px;display:flex}.ob-note{color:var(--text-muted);text-align:center;margin-top:22px;font-size:11px;line-height:1.6}.ob-note a{color:var(--accent);text-decoration:underline}.ob-building{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:10px;padding:24px;display:flex}.ob-building-title{margin-top:8px;font-size:17px;font-weight:700}.ob-building-line{color:var(--text-muted);font-size:13px}.ob-plan{padding:12px 0}.ob-plan-badge{color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, transparent);border-radius:999px;padding:5px 12px;font-size:12px;font-weight:700;display:inline-block}.ob-plan-title{margin:14px 0 16px;font-size:22px;font-weight:700;line-height:1.35}.ob-plan-rows{border:1px solid var(--border);background:var(--surface);border-radius:14px;overflow:hidden;box-shadow:0 4px 16px #0000000d}.ob-plan-row{justify-content:space-between;gap:12px;padding:12px 16px;display:flex}.ob-plan-row+.ob-plan-row{border-top:1px solid var(--border)}.ob-plan-k{color:var(--text-muted);font-size:13px}.ob-plan-v{text-align:right;font-size:14px;font-weight:600}.ob-plan-lead{color:var(--text-soft);margin:16px 0 4px;font-size:13px;line-height:1.7}.ob-picker{margin-top:16px}.ob-picker .recommend-grid{max-width:100%}.stub-row{padding:0 max(40px, calc((100% - var(--content-max)) / 2));margin:0 0 10px}.stub-card{text-align:left;cursor:pointer;background:var(--surface);border:1px solid var(--border);width:100%;max-width:640px;box-shadow:none;appearance:none;font:inherit;color:var(--text);border-radius:14px;align-items:center;gap:14px;padding:12px 14px;transition:box-shadow .15s,border-color .15s,transform 50ms;display:flex}.stub-card:hover{border-color:color-mix(in srgb, var(--accent) 30%, var(--border));box-shadow:0 4px 16px #0000000f}.stub-card:active{transform:scale(.995)}.stub-card-stub{background:color-mix(in srgb, var(--accent) 18%, var(--surface));border-right:2px dashed color-mix(in srgb, var(--accent) 35%, var(--border));border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:22px;display:flex}.stub-card-body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.stub-card-eyebrow{letter-spacing:.04em;color:var(--accent);text-transform:uppercase;font-size:11px;font-weight:700}.stub-card-title{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:700;overflow:hidden}.stub-card-sub{color:var(--text-muted);font-size:12px}.stub-card-cta{color:var(--accent);white-space:nowrap;flex-shrink:0;font-size:13px;font-weight:700}@media (max-width:560px){.stub-card-cta{font-size:0}.stub-card-cta:before{content:"🃏";font-size:18px}}.stub-card-poster{aspect-ratio:2/3;object-fit:cover;border-radius:8px;flex-shrink:0;width:44px;box-shadow:0 2px 8px #0000002e}.home-section-title{padding:0 max(40px, calc((100% - var(--content-max)) / 2));color:var(--text);margin:2px 0 10px;font-size:15px;font-weight:700}.library-section-head{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:10px;display:flex}.library-section-head .library-section-title{margin:0}.section-see-all{color:var(--text-muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;flex-shrink:0;font-family:DM Sans,sans-serif;font-size:13px;font-weight:600}.section-see-all:hover{color:var(--accent)}.continue-list{flex-direction:column;gap:10px;display:flex}.continue-card{background:var(--surface);border:1px solid var(--border);cursor:pointer;border-radius:14px;align-items:stretch;gap:14px;padding:12px;transition:box-shadow .15s,border-color .15s,transform 50ms;display:flex;position:relative}.continue-card:hover{border-color:color-mix(in srgb, var(--accent) 28%, var(--border));box-shadow:0 6px 20px #00000014}.continue-card:active{transform:scale(.997)}.continue-card-poster-wrap{aspect-ratio:2/3;border-radius:10px;flex-shrink:0;justify-content:center;align-self:center;align-items:center;width:86px;display:flex;position:relative;overflow:hidden}.continue-card-poster{object-fit:cover;width:100%;height:100%;transition:opacity .2s}.continue-card-letter{color:#fff;opacity:.85;font-size:26px;font-weight:700}.continue-card-archive{z-index:2;color:#ffffffe6;cursor:pointer;background:#00000073;border:none;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;font-size:12px;line-height:1;transition:background .2s;display:flex;position:absolute;top:6px;right:6px}.continue-card-archive:hover{color:#fff;background:#c83c3cd9}@media (max-width:768px){input,textarea,select{font-size:16px!important}}.continue-card-body{flex-direction:column;flex:1;justify-content:center;gap:6px;min-width:0;display:flex}.continue-card-title{color:var(--text);text-overflow:ellipsis;white-space:nowrap;padding-right:24px;font-size:16px;font-weight:700;overflow:hidden}.continue-card-ep{color:var(--text-muted);margin-top:-2px;font-size:12px}.continue-card-progress{align-items:center;gap:8px;display:flex}.continue-card-bar{background:var(--surface2);border-radius:999px;flex:1;height:6px;overflow:hidden}.continue-card-bar-fill{background:linear-gradient(90deg,#16a06a,#3ccb8d);border-radius:999px;height:100%;display:block}.continue-card-pct{color:var(--text-muted);flex-shrink:0;font-size:12px;font-weight:700}.continue-card-stats{flex-wrap:wrap;gap:4px 12px;display:flex}.cc-stat{font-size:11px;font-weight:700}.cc-learned{color:var(--green)}.cc-mastered{color:var(--gold,#d99a00)}.continue-card-btn{background:color-mix(in srgb, var(--accent) 12%, var(--surface));color:var(--accent);border:1px solid color-mix(in srgb, var(--accent) 32%, var(--border));cursor:pointer;border-radius:10px;align-self:flex-start;margin-top:2px;padding:8px 16px;font-family:DM Sans,sans-serif;font-size:13px;font-weight:700}.continue-card-btn:hover{background:color-mix(in srgb, var(--accent) 18%, var(--surface));border-color:var(--accent)}@media (max-width:768px){.continue-card-btn{text-align:center;align-self:stretch;width:100%}}.tc-screen{max-width:680px;margin:0 auto;padding:16px 16px 24px}@media (max-width:768px){.tc-screen{padding-left:12px;padding-right:12px}}.tc-head{margin-bottom:14px}.tc-h1{margin:4px 0;font-size:22px;font-weight:800}.tc-sub{color:var(--text-muted);font-size:13px}.tc-stats{background:var(--border);border:1px solid var(--border);border-radius:14px;grid-template-columns:repeat(3,1fr);gap:1px;margin-bottom:16px;display:grid;overflow:hidden}.tc-stat{background:var(--surface);text-align:center;padding:14px 6px}.tc-stat-label{color:var(--text-muted);margin-bottom:4px;font-size:11px}.tc-stat-num{color:var(--accent);font-size:24px;font-weight:800;line-height:1.1}.tc-stat-unit{color:var(--text-muted);margin-top:2px;font-size:11px}.tc-tabs{border-bottom:1px solid var(--border);gap:2px;margin-bottom:10px;display:flex}.tc-tab{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;margin-bottom:-1px;padding:10px 4px;font-size:13px;font-weight:600}.tc-tab.is-active{color:var(--accent);border-bottom-color:var(--accent)}.tc-sortrow{justify-content:flex-end;margin-bottom:12px;display:flex}.tc-sort{color:var(--text-muted);align-items:center;gap:4px;font-size:12px;display:inline-flex}.tc-sort select{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:4px 8px;font-size:12px}.tc-list{flex-direction:column;align-items:center;gap:12px;display:flex}.tcimg-card{aspect-ratio:1300/556;cursor:pointer;background:url(/collection-ticket.webp) 50%/100% 100% no-repeat;width:100%;max-width:420px;transition:transform 50ms,filter .15s;position:relative;container-type:inline-size}.tcimg-card:hover{filter:drop-shadow(0 4px 10px #0000001f)}.tcimg-card:active{transform:scale(.995)}.tcimg-poster{border-radius:1.6cqw;width:23.5%;height:81%;position:absolute;top:10.5%;left:3.3%;overflow:hidden}.tcimg-poster-fallback{color:#fff;justify-content:center;align-items:center;font-size:9cqw;font-weight:800;display:flex;position:absolute;inset:0}.tcimg-poster-img{object-fit:cover;width:100%;height:100%;transition:opacity .2s;position:absolute;inset:0}.tcimg-body{flex-direction:column;gap:.5cqw;width:42%;display:flex;position:absolute;top:30%;left:30.5%}.tcimg-title{color:#2c241e;text-overflow:ellipsis;white-space:nowrap;font-size:5.2cqw;font-weight:800;line-height:1.1;overflow:hidden}.tcimg-ja{color:#6f6052;text-overflow:ellipsis;white-space:nowrap;font-size:3.3cqw;overflow:hidden}.tcimg-range{color:#8a7a6a;margin-top:.8cqw;font-size:3.1cqw}.tcimg-date{color:#a3917f;margin-top:.3cqw;font-size:2.8cqw}.tcimg-eps{text-align:center;color:#2c241e;width:19%;font-size:6.4cqw;font-weight:800;line-height:1;position:absolute;top:45%;left:77.8%}.tcimg-prog{text-align:center;width:19%;color:var(--accent);font-size:4.2cqw;font-weight:800;line-height:1;position:absolute;top:76%;left:77.1%}.tcimg-prog.is-partial{color:#d98324}.tcimg-fav{color:#f5b301;cursor:pointer;appearance:none;background:0 0;border:none;justify-content:center;align-items:center;width:9%;height:13%;font-size:5.2cqw;line-height:1;display:flex;position:absolute;top:12%;left:89%}.tcimg-fav:not(.is-on){color:#b9a48f;background:radial-gradient(circle,#f3e8da 52%,#0000 56%)}.tc-sortrow{justify-content:space-between;align-items:center;gap:8px}.tc-view{background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:2px;display:inline-flex}.tc-view-btn{font:inherit;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:999px;padding:5px 12px;font-size:12px;font-weight:600}.tc-view-btn.is-active{background:var(--accent);color:#fff}.tc-frame-legend{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:4px 10px;margin:-2px 0 2px;font-size:11px;display:flex}.tc-frame-legend-label{color:var(--text);font-weight:700}.tc-frame-chip{white-space:nowrap;align-items:center;gap:4px;display:inline-flex}.tc-frame-chip:before{content:"";border-radius:2px;width:10px;height:10px;display:inline-block}.tc-frame-chip.frame-black:before{background:#141414}.tc-frame-chip.frame-silver:before{background:linear-gradient(135deg,#f4f4f4,#9a9a9a 45%,#e2e2e2 60%,#8a8a8a)}.tc-frame-chip.frame-gold:before{background:linear-gradient(135deg,#fff1b8,#c9962b 45%,#f3d374 60%,#a8741a)}.tc-frame-note{color:var(--text-muted);margin:0 0 14px;font-size:11px}.tcimg-ring{border-radius:2.4cqw;width:calc(23.5% + 2.2cqw);height:calc(81% + 2.2cqw);display:none;position:absolute;top:calc(10.5% - 1.1cqw);left:calc(3.3% - 1.1cqw)}.tcimg-card.frame-black .tcimg-ring{background:#141414;display:block}.tcimg-card.frame-silver .tcimg-ring{background:linear-gradient(135deg,#f7f7f7,#a3a3a3 30%,#ececec 50%,#8a8a8a 75%,#d9d9d9);display:block}.tcimg-card.frame-gold .tcimg-ring{background:linear-gradient(135deg,#fff3c4,#c9962b 30%,#f5d77a 50%,#a8741a 75%,#ecc96a);display:block}.tcimg-card.frame-gold{filter:drop-shadow(0 3px 10px #c9962b59)}.tcp-wall{grid-template-columns:repeat(3,1fr);gap:16px 12px;display:grid}@media (min-width:640px){.tcp-wall{grid-template-columns:repeat(4,1fr);gap:20px 16px}}.tcp-item{cursor:pointer;appearance:none;background:0 0;border:none;width:100%;padding:0;transition:transform .12s;display:block;position:relative}.tcp-item:active{transform:scale(.98)}.tcp-frame{border-radius:3px;display:block;box-shadow:0 2px 6px #0000002e}.tcp-mat{display:block}.tcp-poster{aspect-ratio:2/3;width:100%;display:block;position:relative;overflow:hidden;container-type:inline-size}.tcp-poster .tcimg-poster-fallback{flex-direction:column;gap:4px;font-size:30cqw}.tcimg-poster-fallback-title{text-align:center;-webkit-line-clamp:3;-webkit-box-orient:vertical;padding:0 8%;font-size:9cqw;font-weight:700;line-height:1.25;display:-webkit-box;overflow:hidden}.tcp-item.frame-plain .tcp-frame{background:#fbf7f0;border:1px solid #e3d8c8;padding:3px}.tcp-item.frame-black .tcp-frame{background:#141414;padding:5px}.tcp-item.frame-black .tcp-mat{background:#f7f2ea;padding:3px}.tcp-item.frame-silver .tcp-frame{background:linear-gradient(135deg,#f7f7f7,#a3a3a3 30%,#ececec 50%,#8a8a8a 75%,#d9d9d9);padding:5px}.tcp-item.frame-silver .tcp-mat{background:#f7f2ea;padding:3px}.tcp-item.frame-gold .tcp-frame{background:linear-gradient(135deg,#fff3c4,#c9962b 30%,#f5d77a 50%,#a8741a 75%,#ecc96a);padding:6px;box-shadow:0 3px 12px #c9962b73}.tcp-item.frame-gold .tcp-mat{background:#fffaf0;padding:3px}.tcp-fav{color:#f5b301;background:var(--surface);border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-size:13px;display:flex;position:absolute;top:-6px;right:-6px;box-shadow:0 1px 3px #00000040}.tc-empty{text-align:center;color:var(--text-muted);padding:48px 20px}.tc-empty-icon{margin-bottom:12px;font-size:40px}.tc-empty-title{color:var(--text);margin-bottom:6px;font-size:16px;font-weight:700}.tc-empty-sub{max-width:300px;margin:0 auto;font-size:13px;line-height:1.7}.td-screen{max-width:680px;margin:0 auto;padding:8px 16px 28px}.td-header{justify-content:space-between;align-items:center;padding:6px 0 12px;display:flex}.td-back{color:var(--text);cursor:pointer;text-align:left;background:0 0;border:none;width:32px;font-size:26px;line-height:1}.td-htitle{font-size:16px;font-weight:700}.td-hspacer{width:32px}.td-hero{max-width:100%;margin:0 0 16px}.td-actions{gap:10px;margin-bottom:22px;display:flex}.td-action{color:var(--text);background:var(--surface);border:1px solid var(--border);cursor:pointer;border-radius:12px;flex:1;justify-content:center;align-items:center;gap:6px;padding:11px 8px;font-size:13px;font-weight:600;text-decoration:none;display:inline-flex}.td-action.is-on{color:#c98a00;border-color:color-mix(in srgb, #f5b301 40%, var(--border))}.td-sec{margin-bottom:22px}.td-sec-title{margin-bottom:12px;font-size:15px;font-weight:700}.td-stats{background:var(--border);border:1px solid var(--border);border-radius:14px;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1px;margin-bottom:12px;display:grid;overflow:hidden}.td-stat{background:var(--surface);text-align:center;padding:14px 6px}.td-stat-label{color:var(--text-muted);margin-bottom:4px;font-size:11px}.td-stat-num{color:var(--text);font-size:20px;font-weight:800;line-height:1.1}.td-stat-sub{color:var(--text-muted);font-size:12px;font-weight:600}.td-progress-row{align-items:center;gap:10px;display:flex}.td-progress-bar{background:color-mix(in srgb, var(--accent) 14%, var(--surface));border-radius:999px;flex:1;height:8px;overflow:hidden}.td-progress-bar>span{background:var(--accent);border-radius:999px;height:100%;display:block}.td-progress-pct{color:var(--text-muted);white-space:nowrap;font-size:12px}.td-done-badge{color:var(--green);background:color-mix(in srgb, var(--green) 14%, var(--surface));border-radius:999px;padding:2px 8px;font-size:11px;font-weight:700}.td-seasons{flex-direction:column;gap:12px;display:flex}.td-season{grid-template-columns:78px 54px 1fr;align-items:center;gap:10px;display:grid}.td-season-name{color:var(--text);font-size:13px}.td-season-count{color:var(--text-muted);text-align:right;font-size:12px}.td-season-bar{background:color-mix(in srgb, var(--accent) 12%, var(--surface));border-radius:999px;height:6px;overflow:hidden}.td-season-bar>span{background:var(--accent);border-radius:999px;height:100%;display:block}.td-eps{flex-direction:column;gap:8px;display:flex}.td-ep{background:var(--surface);border:1px solid var(--border);border-radius:12px;align-items:center;gap:12px;padding:10px 14px;display:flex}.td-ep-se{color:var(--accent);flex-shrink:0;font-size:13px;font-weight:800}.td-ep-date{color:var(--text-muted);text-align:left;flex:1;font-size:12px}.td-ep-score{color:var(--text);font-size:12px;font-weight:700}.td-ep-link{cursor:pointer;text-align:left;width:100%;transition:background .12s,transform 50ms}.td-ep-link:hover{background:var(--surface2);border-color:var(--border-strong,var(--border))}.td-ep-link:active{transform:scale(.995)}.td-ep-go{color:var(--accent);flex-shrink:0;font-size:12px;font-weight:700}.td-words{flex-wrap:wrap;gap:8px;display:flex}.td-word{color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:5px 12px;font-size:13px}.td-word-more{color:var(--text-muted)}.td-cta{width:100%;color:var(--on-accent,#fff);background:var(--accent);cursor:pointer;border:none;border-radius:14px;margin-top:4px;padding:15px;font-size:15px;font-weight:700}.td-cta:active{transform:scale(.99)}.settings-screen{max-width:680px;margin:0 auto;padding:16px 16px 24px}.settings-head{margin-bottom:14px}.settings-h1{margin:4px 0;font-size:22px;font-weight:800}.wb-screen{max-width:680px;margin:0 auto;padding:16px 16px 24px}.wb-head{margin-bottom:14px}.wb-h1{margin:4px 0;font-size:22px;font-weight:800}.wb-sub{color:var(--text-muted);font-size:13px;line-height:1.6}.wb-stats{background:var(--border);border:1px solid var(--border);border-radius:14px;grid-template-columns:repeat(4,1fr);gap:1px;margin-bottom:12px;display:grid;overflow:hidden}.wb-stat{background:var(--surface);text-align:center;cursor:pointer;border:none;width:100%;padding:12px 6px;font-family:inherit;transition:background .12s;position:relative}.wb-stat:hover{background:color-mix(in srgb, var(--accent) 7%, var(--surface))}.wb-stat.is-active{background:color-mix(in srgb, var(--accent) 14%, var(--surface));box-shadow:inset 0 -3px 0 var(--accent)}.wb-stat-num{font-family:Playfair Display,serif;font-size:22px;font-weight:800;line-height:1.1;display:block}.wb-stat-label{color:var(--text-muted);margin-top:3px;font-size:11px;display:block}.wb-stat-learned .wb-stat-num{color:var(--green)}.wb-stat-mastered .wb-stat-num{color:var(--gold,#d99a00)}.wb-toolbar{justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;display:flex}.wb-count{color:var(--text-muted);font-size:13px}.wb-actions{align-items:center;gap:8px;display:inline-flex}.wb-sync{padding:4px 10px;font-size:12px}.btn-wordbook-star.is-on{background:#f5c5181a;color:#b8860b!important;border-color:#f5c5188c!important}.btn-wordbook-star.is-on:hover{background:#f5c5182e}.btn-word-del{color:var(--red)!important;border-color:color-mix(in srgb, var(--red) 35%, var(--border))!important}.prep-ex-src{color:var(--text-muted);text-align:center;margin-top:6px;font-size:10px}.pf-back-src{color:#9a8a6a;text-align:center;margin-top:10px;font-size:10px}.tier-excluded-note{color:var(--text-muted);white-space:nowrap;font-size:10px}.tc-substats{color:var(--text-muted);margin:4px 0 0;font-size:12px}@media (min-width:769px){.pw-panel{max-width:720px}.pw-card{border-radius:20px;max-width:640px;margin:0 auto;padding:32px 40px}.pw-word{font-size:42px}.pw-pos{margin-top:10px;font-size:14px}.pw-def{margin-top:14px;font-size:20px;line-height:1.55}.pw-ex{border-left-width:4px;margin-top:20px;padding-left:16px}.pw-ex-en{font-size:20px;line-height:1.7}.pw-ex-ja{margin-top:8px;font-size:15px}.pw-ex-src{margin-top:10px;font-size:12px}.pw-counter{font-size:13px}.pw-ts{font-size:14px}.review-panel{max-width:600px}.review-content{min-height:420px;padding:32px 28px 36px}.review-word-big{margin:12px 0 6px;font-size:52px}.review-pos-tag{font-size:14px}.review-def-text{padding:16px 0 6px;font-size:22px}.review-example-text{font-size:16px}.review-example-ja{font-size:14px}.review-example-source{font-size:12px}.review-card-actions{gap:14px}.btn-rate{border-radius:16px;gap:8px;padding:24px 12px}.btn-rate-emoji{font-size:36px}.btn-rate-label{padding-bottom:8px;font-size:19px}.btn-rate-sub{font-size:13px}}.reunion-card{background:color-mix(in srgb, var(--accent) 8%, var(--surface));border:1px solid color-mix(in srgb, var(--accent) 30%, var(--border));margin:0 max(40px, calc((100% - var(--content-max)) / 2)) 14px;border-radius:16px;padding:16px 16px 14px}@media (max-width:768px){.reunion-card{margin:0 16px 14px}}.reunion-head{color:var(--accent);letter-spacing:.04em;margin-bottom:6px;font-size:13px;font-weight:700}.reunion-lead{color:var(--text);margin-bottom:10px;font-size:14px;line-height:1.7}.reunion-words{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.reunion-chip{background:var(--surface);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:1px;padding:6px 10px;display:inline-flex}.reunion-word{color:var(--text);font-size:14px;font-weight:700}.reunion-src{color:var(--text-muted);font-size:11px}.reunion-review-btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:12px;width:100%;padding:11px 12px;font-family:inherit;font-size:14px;font-weight:600}.reunion-review-btn:active{transform:scale(.99)}.recap-ask-chip{color:var(--text-muted);background:var(--surface);border:1px solid var(--border);border-radius:999px;align-items:center;gap:5px;margin-bottom:12px;padding:3px 10px;font-size:12px;display:inline-flex}.recap-ask-actions{gap:8px;display:flex}.recap-ask-actions .reunion-review-btn{flex:1;width:auto}.recap-btn-later{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:12px;flex:1;padding:11px 12px;font-family:inherit;font-size:14px}.recap-btn-later:active{transform:scale(.99)}.recap-celebrate{animation:.5s cubic-bezier(.18,.9,.3,1.25) both prepTicketEarn}@media (prefers-reduced-motion:reduce){.recap-celebrate{animation:none}}.recap-more-link{color:var(--accent);cursor:pointer;text-align:left;background:0 0;border:none;margin-top:10px;padding:0;font-family:inherit;font-size:13px;display:block}.recap-cardrow{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.recap-cardrow.recap-scroll{scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;flex-wrap:nowrap;padding-bottom:4px;overflow-x:auto}.recap-wordcard{background:var(--surface);border:1px solid var(--border);scroll-snap-align:start;border-radius:12px;flex-direction:column;flex:none;gap:2px;min-width:118px;max-width:170px;padding:9px 12px;display:flex}.recap-wordcard-reunion{border-color:color-mix(in srgb, var(--accent) 45%, var(--border));background:color-mix(in srgb, var(--accent) 6%, var(--surface))}.recap-badge{letter-spacing:.06em;color:#fff;background:var(--accent);border-radius:999px;align-self:flex-start;margin-bottom:2px;padding:1px 8px;font-size:10px;font-weight:700}.recap-wordline{align-items:center;gap:4px;display:inline-flex}.recap-word{color:var(--text);font-size:15px;font-weight:700}.recap-speak{cursor:pointer;background:0 0;border:none;padding:0 2px;font-size:13px;line-height:1}.recap-speak:active{transform:scale(.92)}.recap-ja{color:var(--text-muted);font-size:12px}.recap-src{color:var(--accent);font-size:11px}.recap-stats{color:var(--text-muted);gap:14px;margin-bottom:12px;font-size:12px;display:flex}.recap-stat strong{color:var(--text);font-size:14px;font-weight:700}.soon-panel{text-align:center;background:var(--surface);border:1px solid var(--border);border-radius:16px;margin:16px 0;padding:36px 20px 28px}.soon-emoji{margin-bottom:10px;font-size:40px}.soon-title{color:var(--text);margin-bottom:6px;font-size:17px;font-weight:700}.soon-sub{color:var(--text-muted);margin-bottom:16px;font-size:13px;line-height:1.7}.soon-planned{color:var(--accent);background:color-mix(in srgb, var(--accent) 10%, var(--surface));border:1px solid color-mix(in srgb, var(--accent) 30%, var(--border));border-radius:999px;margin-bottom:14px;padding:6px 14px;font-size:13px;display:inline-block}.soon-request-btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:12px;width:100%;max-width:360px;margin:0 auto 10px;padding:13px 16px;font-family:inherit;font-size:15px;font-weight:600;display:block}.soon-request-btn:disabled{background:color-mix(in srgb, var(--accent) 45%, var(--surface));cursor:default}.soon-votes{color:var(--text-muted);margin-bottom:14px;font-size:12px}.soon-note{color:var(--text);background:color-mix(in srgb, var(--accent) 6%, var(--surface));border-radius:10px;margin-top:6px;padding:10px 12px;font-size:13px;display:inline-block}.soon-browse-link{color:var(--accent);cursor:pointer;background:0 0;border:none;margin:16px auto 0;font-family:inherit;font-size:14px;font-weight:600;text-decoration:underline;display:block}.rh-screen{max-width:680px;margin:0 auto;padding:16px 16px 24px}.rh-head{margin-bottom:14px}.rh-h1{margin:4px 0;font-size:22px;font-weight:800}.rh-sub{color:var(--text-muted);font-size:13px;line-height:1.6}.rh-hero{color:#f3ece0;background:radial-gradient(135% 150% at 86% 10%,#e8b76647,#0000 56%),linear-gradient(135deg,#241d15 0%,#16110b 100%);border:1px solid #e8b7662e;border-radius:18px;align-items:center;gap:14px;margin-bottom:12px;padding:16px 18px;display:flex;box-shadow:0 10px 30px #00000038}.rh-hero.is-done{background:color-mix(in srgb, var(--green) 8%, var(--surface));border-color:color-mix(in srgb, var(--green) 28%, var(--review-border));box-shadow:none;color:var(--text)}.rh-hero-main{flex:1;min-width:0}.rh-hero-title{font-size:16px;font-weight:800}.rh-hero-sub{color:#f3ece0b8;margin-top:3px;font-size:12px}.rh-hero.is-done .rh-hero-sub{color:var(--text-muted)}.rh-hero-btn{cursor:pointer;background:linear-gradient(135deg, color-mix(in srgb, var(--accent) 84%, white), var(--accent));color:#fff;white-space:nowrap;box-shadow:0 3px 12px color-mix(in srgb, var(--accent) 36%, transparent);border:none;border-radius:12px;flex-shrink:0;padding:11px 18px;font-family:inherit;font-size:14px;font-weight:700;transition:transform .12s,filter .12s}.rh-hero-btn:hover{filter:brightness(1.04);transform:translateY(-1px)}.rh-hero-btn:active{transform:translateY(0)scale(.98)}.rh-near{--rh-near-glow:color-mix(in srgb, var(--gold) 22%, transparent);isolation:isolate;background:radial-gradient(120% 140% at 92% 0%, color-mix(in srgb, var(--gold) 18%, transparent), transparent 60%), radial-gradient(60% 120% at 4% 100%, color-mix(in srgb, var(--gold) 10%, transparent), transparent 70%), color-mix(in srgb, var(--gold) 6%, var(--surface));border:1px solid color-mix(in srgb, var(--gold) 42%, var(--review-border));color:var(--text);box-shadow:0 0 0 1px color-mix(in srgb, var(--gold) 10%, transparent), 0 4px 16px var(--rh-near-glow);border-radius:16px;align-items:center;gap:12px;margin-bottom:12px;padding:12px 16px;animation:4.8s ease-in-out infinite alternate rhNearGlow;display:flex;position:relative;overflow:hidden}.rh-near:after{content:"";z-index:-1;pointer-events:none;opacity:.7;background:linear-gradient(105deg,#0000 38%,#ffe6a88c 50%,#0000 62%) 130% 0/260% 100%;animation:6.5s ease-in-out infinite rhNearSheen;position:absolute;inset:0}@keyframes rhNearGlow{0%{box-shadow:0 0 0 1px color-mix(in srgb, var(--gold) 10%, transparent), 0 4px 14px var(--rh-near-glow)}to{box-shadow:0 0 0 1px color-mix(in srgb, var(--gold) 34%, transparent), 0 6px 24px color-mix(in srgb, var(--gold) 34%, transparent)}}@keyframes rhNearSheen{0%,55%{background-position:130% 0}to{background-position:-30% 0}}.rh-near-icon{background:radial-gradient(circle at 35% 30%, color-mix(in srgb, var(--gold) 30%, white), color-mix(in srgb, var(--gold) 42%, transparent) 75%);width:34px;height:34px;box-shadow:0 0 14px color-mix(in srgb, var(--gold) 45%, transparent), inset 0 0 0 1px color-mix(in srgb, var(--gold) 35%, transparent);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:17px;display:inline-flex;position:relative}.rh-near-twinkle{pointer-events:none;background:radial-gradient(circle, #fff6dc 0 18%, transparent 20%), conic-gradient(from 45deg, transparent 0 20%, #ffd77a 22% 28%, transparent 30% 45%, #ffd77a 47% 53%, transparent 55% 70%, #ffd77a 72% 78%, transparent 80% 95%, #ffd77a 97%);clip-path:polygon(50% 0,60% 40%,100% 50%,60% 60%,50% 100%,40% 60%,0 50%,40% 40%);opacity:0;width:7px;height:7px;animation:3.2s ease-in-out infinite rhNearTwinkle;position:absolute;transform:scale(.4)}.rh-near-twinkle:first-child{top:-3px;right:-2px}.rh-near-twinkle:nth-child(2){width:5px;height:5px;animation-delay:1.1s;bottom:0;left:-4px}.rh-near-twinkle:nth-child(3){width:5px;height:5px;animation-delay:2.2s;top:40%;right:-7px}@keyframes rhNearTwinkle{0%,to{opacity:0;transform:scale(.4)rotate(0)}40%{opacity:1;transform:scale(1.15)rotate(25deg)}70%{opacity:.2;transform:scale(.7)rotate(40deg)}}.rh-near-main{flex:1;min-width:0}.rh-near-title{font-size:14px;font-weight:800}.rh-near-count{color:var(--gold);background:linear-gradient(100deg, color-mix(in srgb, var(--gold) 80%, black), var(--gold) 45%, color-mix(in srgb, var(--gold) 55%, white));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-left:8px}.rh-near-sub{color:var(--text-muted);margin-top:2px;font-size:12px}.rh-near-btn{cursor:pointer;background:linear-gradient(135deg, color-mix(in srgb, var(--gold) 82%, white), var(--gold));color:#fff;white-space:nowrap;text-shadow:0 1px 1px color-mix(in srgb, var(--gold) 60%, black);box-shadow:0 3px 12px color-mix(in srgb, var(--gold) 38%, transparent), inset 0 1px 0 #ffffff59;border:none;border-radius:11px;flex-shrink:0;padding:9px 16px;font-family:inherit;font-size:13px;font-weight:700;transition:transform .12s,filter .12s;position:relative;overflow:hidden}.rh-near-btn:hover{filter:brightness(1.05);transform:translateY(-1px)}.rh-near-btn:active{transform:translateY(0)scale(.98)}html[data-theme=dark] .rh-near{background:radial-gradient(120% 140% at 92% 0%, color-mix(in srgb, var(--gold) 16%, transparent), transparent 60%), radial-gradient(60% 120% at 4% 100%, color-mix(in srgb, var(--gold) 8%, transparent), transparent 70%), linear-gradient(120deg, #241e16, #1b1712);border-color:color-mix(in srgb, var(--gold) 34%, transparent)}html[data-theme=dark] .rh-near:after{opacity:.28}html[data-theme=dark] .rh-near-icon{background:radial-gradient(circle at 35% 30%, color-mix(in srgb, var(--gold) 38%, transparent), color-mix(in srgb, var(--gold) 12%, transparent) 70%)}html[data-theme=dark] .rh-near-count{background:linear-gradient(100deg, var(--gold), color-mix(in srgb, var(--gold) 55%, white));-webkit-background-clip:text;background-clip:text}@media (prefers-reduced-motion:reduce){.rh-near,.rh-near:after,.rh-near-twinkle{animation:none}.rh-near:after,html[data-theme=dark] .rh-near:after{opacity:0}.rh-near-twinkle:first-child{opacity:.9;transform:scale(1)}.rh-near-twinkle:nth-child(2),.rh-near-twinkle:nth-child(3){opacity:.5;transform:scale(.8)}}.rh-section-label{color:var(--text-muted);letter-spacing:.04em;margin:20px 0 8px;font-size:12px;font-weight:700}.rh-groups{flex-direction:column;gap:14px;display:flex}.rh-group{border:1px solid var(--review-border);background:var(--surface);border-radius:14px;overflow:hidden}.rh-group-head{background:var(--surface2,var(--surface));border-bottom:1px solid var(--review-border);justify-content:space-between;align-items:center;gap:10px;padding:10px 14px;display:flex}.rh-group-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:14px;font-weight:700;overflow:hidden}.rh-group-meta{color:var(--text-muted);flex-shrink:0;align-items:center;gap:6px;font-size:12px;display:inline-flex}.rh-ep-row{border-top:1px solid var(--review-border);align-items:stretch;display:flex}.rh-ep-row:first-of-type{border-top:none}.rh-ep-main{cursor:pointer;min-width:0;color:inherit;text-align:left;background:0 0;border:none;flex:1;justify-content:space-between;align-items:center;gap:10px;padding:13px 14px;font-family:inherit;transition:background .12s;display:flex;overflow:hidden}.rh-ep-main:hover{background:color-mix(in srgb, var(--accent) 6%, var(--surface))}.rh-ep-label{font-size:14px;font-weight:700}.rh-ep-meta{color:var(--text-muted);flex-shrink:0;align-items:center;gap:8px;margin-left:auto;font-size:12px;display:inline-flex}.rh-ep-done{color:var(--green)}.rh-gauge{flex:0 auto;align-items:center;gap:8px;min-width:0;display:inline-flex}.rh-gauge-pcts{align-items:center;gap:8px;min-width:0;display:inline-flex}@media (max-width:600px){.rh-gauge-pcts{flex-direction:column;align-items:flex-start;gap:0;line-height:1.25}.rh-gauge-pct,.rh-gauge-mpct{font-size:11px}}.rh-gauge-bar{background:color-mix(in srgb, var(--review-border) 60%, transparent);border-radius:3px;flex-shrink:0;width:88px;height:12px;position:relative;overflow:hidden}.rh-gauge-learned,.rh-gauge-mastered{border-radius:0;height:100%;transition:width .4s;position:absolute;top:0;left:0}.rh-gauge-learned{background:color-mix(in srgb, var(--green) 70%, var(--surface))}.rh-gauge-mastered{background:color-mix(in srgb, var(--gold,#d99a00) 78%, var(--surface))}.rh-gauge-pct{color:var(--green);white-space:nowrap;font-size:12px;font-weight:700}.rh-gauge-mpct{color:var(--gold,#d99a00);white-space:nowrap;font-size:12px;font-weight:700}@media (max-width:600px){.rh-gauge{flex:auto;gap:6px;min-width:0}.rh-gauge-bar{flex:0 56px;width:56px;min-width:28px}.rh-gauge-pcts{flex-shrink:0}.rh-ep-main{gap:6px;padding-left:12px;padding-right:8px}.rh-ep-meta{gap:5px;font-size:11px}}.rh-due-badge{color:#fff;background:var(--accent);border-radius:999px;padding:2px 8px;font-size:11px;font-weight:700;display:inline-block}button.rh-due-badge-btn{cursor:pointer;font-family:inherit;line-height:inherit;border:none;transition:filter .12s,transform .12s}button.rh-due-badge-btn:hover{filter:brightness(1.08);transform:translateY(-1px)}button.rh-due-badge-btn:active{transform:none}.rh-ep-main:disabled{cursor:default}.rh-ep-main:disabled:hover{background:0 0}.rh-plus-line{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:6px;margin:-2px 2px 10px;font-size:12px;line-height:1.7;display:flex}.rc-options{flex-wrap:wrap;gap:8px;display:flex}.rc-option{cursor:pointer;min-width:56px;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:10px;flex:1 1 0;padding:9px 0;font-family:inherit;font-size:13px;font-weight:700}.rc-option.is-on{color:#fff;background:var(--accent);border-color:var(--accent)}.rh-ep-quiz{border:1px solid var(--review-border);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:10px;flex-shrink:0;align-self:center;margin:8px 10px 8px 0;padding:7px 12px;font-family:inherit;font-size:12px;font-weight:700;transition:color .12s,border-color .12s}.rh-ep-quiz:hover{color:var(--accent);border-color:color-mix(in srgb, var(--accent) 45%, var(--review-border))}.rh-ep-acts{flex-shrink:0;align-items:center;gap:6px;margin:8px 10px 8px 0;display:flex}.rh-ep-acts .rh-ep-quiz{margin:0}@media (max-width:600px){.rh-screen{padding:12px 12px 24px}.rh-hero{gap:10px;padding:14px 15px}.rh-hero-btn{padding:10px 14px;font-size:13px}.rh-ep-main{padding:12px}.rh-ep-acts{flex-direction:column;align-items:stretch;gap:4px;margin:6px 8px 6px 0}.rh-ep-acts .rh-ep-quiz{border-radius:8px;padding:4px 9px;font-size:11px}.rh-ep-done-long{display:none}}.pw-speak-sm{vertical-align:middle;color:#9c7c33;opacity:.75;background:0 0;border-radius:6px;align-items:center;width:auto;height:auto;margin-left:6px;padding:3px 6px;font-size:15px;line-height:1;display:inline-flex}.pw-speak-sm:hover{opacity:1;background:#d8a94e29}.pw-speak-sm:active{transform:scale(.92)}.prep-speak{cursor:pointer;vertical-align:middle;opacity:.75;background:0 0;border:none;margin-left:6px;padding:3px 6px;font-family:inherit;font-size:15px;line-height:1;transition:opacity .15s,transform 50ms}.prep-speak:hover{opacity:1}.prep-speak:active{transform:scale(.92)}.exp-block{margin:4px 0 14px}.exp-gain{background:radial-gradient(120% 140% at 80% 10%, color-mix(in srgb, var(--gold) 22%, transparent), transparent 60%), var(--surface);border:1px solid color-mix(in srgb, var(--accent) 30%, transparent);border-radius:15px;align-items:baseline;gap:8px;width:fit-content;margin:0 auto 10px;padding:10px 24px;display:flex}.exp-gain-num{color:var(--accent);font-variant-numeric:tabular-nums;font-family:Playfair Display,serif;font-size:38px;font-weight:700;line-height:1}.exp-gain-unit{color:var(--text-muted);letter-spacing:.06em;font-size:12px;font-weight:700}.exp-level{background:var(--surface);border:1px solid var(--border);text-align:left;border-radius:13px;max-width:340px;margin:0 auto;padding:11px 14px}.exp-level-head{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.exp-level-name{font-size:14px;font-weight:800}.exp-level-total{color:var(--text-muted);font-size:11px}.exp-level-bar{background:var(--surface2);border-radius:999px;height:7px;margin-top:7px;overflow:hidden}.exp-level-fill{background:linear-gradient(90deg, var(--accent), var(--gold));border-radius:999px;height:100%;transition:width .8s ease-out;display:block}.exp-level-next{color:var(--text-muted);margin-top:5px;font-size:11px}@media (prefers-reduced-motion:reduce){.exp-level-fill{transition:none}}.review-card-head{justify-content:space-between;align-items:center;gap:8px;width:100%;display:flex}.review-card-head .review-counter{align-self:auto}.review-undo{color:var(--text-muted);cursor:pointer;text-underline-offset:3px;background:0 0;border:none;padding:4px 0;font-family:inherit;font-size:12px;text-decoration:underline}.review-undo:hover{color:var(--accent)}.review-next{min-width:60%}.review-head-btns{align-items:center;gap:2px;display:inline-flex}.review-keys-btn{text-align:center;width:30px;font-weight:700}.review-kbd,.review-key-hint kbd{border:1px solid var(--review-border);background:var(--surface2);text-align:center;border-radius:6px;min-width:20px;padding:2px 8px;font-family:inherit;font-size:12px;line-height:1.5;display:inline-block}.review-kbd-or{color:var(--text-muted);margin:0 5px;font-size:12px}.review-keys-table{border-collapse:collapse;margin:12px auto 0;font-size:13px}.review-keys-table td{vertical-align:middle;padding:5px 10px}.review-keys-table td:nth-child(2){white-space:nowrap;text-align:right}.review-keys-table td:last-child{text-align:left;font-weight:700}.review-keys-dev{font-size:14px;padding-right:2px!important}.review-keys-gesture{font-size:13px}.review-keys-table tr.is-pc:first-of-type td,.review-keys-table tr.is-mobile+tr.is-pc td{border-top:1px solid var(--review-border)}.review-keys-note{color:var(--text-muted);margin-top:10px;font-size:12px;line-height:1.5}.review-key-hint{text-align:center;color:var(--text-muted);margin-top:10px;font-size:11px;display:none}.review-key-hint kbd{padding:1px 6px;font-size:11px}@media (hover:hover) and (pointer:fine) and (min-width:768px){.review-key-hint{display:block}.review-swipe-hint{display:none!important}}.quiz-ex-ja{color:var(--text-soft);margin:-12px 0 12px;font-size:13px;line-height:1.6}.quiz-ex-src{text-align:left;margin:-4px 0 16px}.choice-ja{color:var(--text-muted);text-align:right;min-width:0;font-size:13px}.choice-btn.correct .choice-ja{color:var(--green);opacity:.85}.choice-btn.wrong .choice-ja{color:var(--red);opacity:.85}.vocab-progress{padding:0 max(40px, calc((100% - var(--content-max)) / 2));margin:0 0 14px}.vocab-progress-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;align-items:stretch;max-width:640px;display:flex;overflow:hidden}.vp-tile{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;padding:13px 10px;display:flex}.vp-label{font-size:12px;font-weight:700}.vp-num{font-family:Playfair Display,serif;font-size:26px;font-weight:800;line-height:1}.vp-sub{color:var(--text-muted);font-size:13px;font-weight:600}.vp-learned .vp-label,.vp-learned .vp-num{color:var(--green)}.vp-mastered .vp-label,.vp-mastered .vp-num{color:var(--gold,#d99a00)}.vp-divider{background:var(--border);flex-shrink:0;width:1px}.vp-gauge{background:color-mix(in srgb, var(--border) 55%, transparent);border-radius:999px;width:100%;height:6px;margin-top:7px;overflow:hidden}.vp-gauge-fill{border-radius:999px;height:100%;transition:width .4s;display:block}.vp-learned .vp-gauge-fill{background:var(--green)}.vp-mastered .vp-gauge-fill{background:var(--gold,#d99a00)}.vp-pct{color:var(--text-muted);font-size:11px;font-weight:700}.vr-wrap{--vr-ink:#292622;--vr-muted:#8d877e;--vr-soft:#706a62;--vr-eyebrow:#9b7545;--vr-card-bg:radial-gradient(circle at 50% 50%, #ffd37e33, transparent 36%), linear-gradient(120deg, #fffaf0, #f9f1e2);--vr-card-border:#ead9bf;--vr-row-line:#9678501f;--vr-met:#f0d6a4;--vr-learned:#e3ad50;--vr-mastered:#bd7418;--vr-track:#cda46024;--vr-today-bg:#fffaefd9;--vr-today-border:#e6d5b9;--vr-today-ink:#6f5a3c;--vr-gold-deep:#a96513;--vr-wc-bg:#fff;--vr-wc-border:#e8e0d5;padding:0 max(40px, calc((100% - var(--content-max)) / 2));color:var(--vr-ink);margin:0 0 18px}html[data-theme=dark] .vr-wrap{--vr-ink:#f3ece0;--vr-muted:#a39a8c;--vr-soft:#c4baa9;--vr-eyebrow:#d5a965;--vr-card-bg:radial-gradient(circle at 50% 50%, #ffbe5a1f, transparent 40%), linear-gradient(120deg, #221d16, #1a1611);--vr-card-border:#d6aa6438;--vr-row-line:#d6aa6424;--vr-met:#6e5a36;--vr-learned:#d39a3e;--vr-mastered:#f0b64e;--vr-track:#d6aa641f;--vr-today-bg:#ffdca00f;--vr-today-border:#d6aa6447;--vr-today-ink:#e7d3b0;--vr-gold-deep:#f0b64e;--vr-wc-bg:var(--surface);--vr-wc-border:var(--border)}.vr-card{border:1px solid var(--vr-card-border);background:var(--vr-card-bg);border-radius:20px;grid-template-columns:minmax(0,1fr) 300px minmax(0,1fr);align-items:center;gap:24px;padding:36px 40px;display:grid;position:relative;overflow:hidden}.vr-card:before{content:"";pointer-events:none;opacity:.2;background-image:radial-gradient(circle,#c8882d66 0 1px,#0000 1.6px);background-size:78px 78px;animation:9s linear infinite vrDust;position:absolute;inset:-80px 0 0}@keyframes vrDust{to{transform:translateY(-78px)}}.vr-card>*{z-index:1;min-width:0;position:relative}.vr-eyebrow{color:var(--vr-eyebrow);margin-bottom:8px;font-size:13px}.vr-copy h2{letter-spacing:.02em;margin:0 0 14px;font-family:Playfair Display,serif;font-size:34px;font-weight:700}.vr-copy p{color:var(--vr-soft);font-size:14px;line-height:1.9}.vr-stage{aspect-ratio:1;width:300px;max-width:100%;font:inherit;color:inherit;background:0 0;border:0;border-radius:50%;margin:auto;padding:0;position:relative}button.vr-stage{cursor:pointer}button.vr-stage:focus-visible,.vr-today:focus-visible,.vr-rh button:focus-visible{outline:2px solid var(--vr-learned);outline-offset:3px}.vr-stage svg{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.vr-track{stroke:var(--vr-track)}.vr-arc-met{stroke:var(--vr-met)}.vr-arc-learned{stroke:var(--vr-learned)}.vr-arc-mastered{stroke:var(--vr-mastered)}.vr-arc-glow{stroke:#ffd77a}.vr-arc-glow2{stroke:#ffe6a8}.vr-center{color:#fff;background:radial-gradient(circle at 35% 25%,#d99428,#a8600e);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:108px;height:108px;margin:-54px 0 0 -54px;display:flex;position:absolute;top:50%;left:50%;box-shadow:0 0 0 8px #c482241f,0 12px 30px #9c5e1047}.vr-center strong{font-variant-numeric:tabular-nums;font-family:Playfair Display,serif;font-size:30px;line-height:1.05}.vr-center span{opacity:.92;font-size:12px}.vr-center em{white-space:nowrap;background:#ffffff2e;border-radius:99px;margin-top:3px;padding:1px 8px;font-size:10.5px;font-style:normal}.vr-center.is-zero{color:#6f4a12;background:radial-gradient(circle at 35% 25%,#f1d29a,#d9a957)}.vr-cue{color:var(--vr-eyebrow);white-space:nowrap;font-size:12px;position:absolute;bottom:-24px;left:50%;transform:translate(-50%)}.vr-lrow{border-bottom:1px solid var(--vr-row-line);grid-template-columns:14px 64px auto minmax(0,1fr);align-items:center;gap:10px;padding:11px 0;display:grid}.vr-lrow b{font-variant-numeric:tabular-nums;font-size:20px}.vr-lrow span{white-space:nowrap;font-weight:600}.vr-lrow small{color:var(--vr-muted);font-size:12px}.vr-dot{border-radius:50%;width:13px;height:13px}.vr-dot-met{background:var(--vr-met)}.vr-dot-learned{background:var(--vr-learned)}.vr-dot-mastered{background:var(--vr-mastered)}.vr-today{border:1px solid var(--vr-today-border);background:var(--vr-today-bg);width:100%;color:var(--vr-today-ink);font:inherit;text-align:left;border-radius:15px;align-items:center;gap:10px;margin-top:18px;padding:13px 15px;font-size:14px;transition:transform .2s,box-shadow .2s;display:flex}button.vr-today{cursor:pointer}button.vr-today:hover{transform:translateY(-2px);box-shadow:0 8px 22px #966e321f}.vr-today .vr-t{flex:1}.vr-today b{color:var(--vr-gold-deep)}.vr-spark{color:var(--vr-learned)}.vr-recent{margin-top:20px}.vr-rh{justify-content:space-between;align-items:center;margin:0 4px 12px;display:flex}.vr-rh h3{color:var(--text);font-size:16px}.vr-rh button{color:var(--text-muted);font:inherit;cursor:pointer;background:0 0;border:0;font-size:13px}.vr-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.vr-wc{border:1px solid var(--vr-wc-border);background:var(--vr-wc-bg);border-radius:14px;grid-template-columns:60px minmax(0,1fr);align-items:start;gap:12px;padding:12px;display:grid;box-shadow:0 3px 12px #32281e0a}.vr-poster{aspect-ratio:2/3;background:linear-gradient(160deg,#4a3f35,#9a8468);border-radius:7px;place-items:center;width:60px;display:grid;position:relative;overflow:hidden;box-shadow:0 4px 10px #281e142e}.vr-poster img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.vr-poster-initial{color:#ffffffd9;font-family:Playfair Display,serif;font-size:22px;font-weight:700}.vr-poster-ep{color:#fff;white-space:nowrap;background:#14120fa6;border-radius:4px;padding:1px 4px;font-size:9px;position:absolute;bottom:3px;left:3px}.vr-wb{min-width:0}.vr-wl{justify-content:space-between;align-items:center;gap:8px;display:flex}.vr-wl strong{color:var(--text);overflow-wrap:anywhere;font-size:15px}.vr-st{white-space:nowrap;border-radius:99px;padding:3px 8px;font-size:10px;font-style:normal;font-weight:700}.vr-st.is-m{color:#fff;background:#bb751c}.vr-st.is-l{color:#76501f;background:#f6d58e}.vr-wb p{color:var(--text-soft);margin:4px 0 6px;font-size:12px}.vr-wb .vr-ex{-webkit-line-clamp:3;color:var(--text-soft);-webkit-box-orient:vertical;font-size:11.5px;display:-webkit-box;overflow:hidden}.vr-src{color:var(--text-muted);margin-top:4px;font-size:10.5px;display:block}@media (max-width:1180px){.vr-lrow{grid-template-columns:14px 54px auto}.vr-lrow small{grid-column:3;margin-top:-8px}}@media (max-width:1000px){.vr-card{text-align:center;grid-template-columns:minmax(0,1fr);padding:28px 20px 34px}.vr-legend{text-align:left;width:100%;max-width:460px;margin:14px auto 0}.vr-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:640px){.vr-wrap{padding:0 16px}.vr-copy h2{font-size:28px}.vr-stage{width:260px}.vr-grid{grid-template-columns:minmax(0,1fr)}}@media (prefers-reduced-motion:reduce){.vr-card:before{animation:none}.vr-today{transition:none}}.plus-note{color:var(--text-muted);border:1px solid var(--border);border-radius:999px;padding:1px 8px;font-size:11px;line-height:1.5;display:inline-block}.plus-note-sub{opacity:.85}.vj-screen{--vj-ink:#292622;--vj-muted:#8d877e;--vj-soft:#6f6a62;--vj-gold-deep:#a96513;--vj-card-bg:#fff;--vj-card-border:#e8e0d5;--vj-warm:#fffaf0;--vj-warm-border:#efdcbc;--vj-warm-ink:#6f5a3c;--vj-g0:#f1ece3;--vj-g1:#f3dcaa;--vj-g2:#e7b65c;--vj-g3:#cf8a2d;--vj-g4:#9e5f12;--vj-learned:#e3ad50;--vj-mastered:#bd7418;--vj-bar:#f3e3bf;--vj-area:#e3ad5024;--vj-grid:#efe7da;--vj-axis:#a09a91;--vj-axis2:#c4b49a;--vj-endlabel:#8a5a12;--vj-dot-stroke:#fff;--vj-prog:#eadfcb;--vj-prog-on:#c8882d;padding:16px max(40px, calc((100% - var(--content-max)) / 2)) 28px;color:var(--vj-ink)}html[data-theme=dark] .vj-screen{--vj-ink:#f3ece0;--vj-muted:#a39a8c;--vj-soft:#c4baa9;--vj-gold-deep:#f0b64e;--vj-card-bg:var(--surface);--vj-card-border:var(--border);--vj-warm:#ffdca00f;--vj-warm-border:#d6aa6447;--vj-warm-ink:#e7d3b0;--vj-g0:#ffffff12;--vj-g1:#5c4a2c;--vj-g2:#8a6830;--vj-g3:#c08a36;--vj-g4:#f0b64e;--vj-learned:#c98a2e;--vj-mastered:#f7d27a;--vj-bar:#d6aa6438;--vj-area:#d39a3e1f;--vj-grid:#ffffff14;--vj-axis:#a39a8c;--vj-axis2:#8a7d68;--vj-endlabel:#f0c878;--vj-dot-stroke:var(--surface);--vj-prog:#ffffff1a;--vj-prog-on:#d39a3e}.vj-body{gap:16px;display:grid}.vj-body>.vr-wrap{margin:0;padding:0}.vj-cell:focus-visible{outline:2px solid var(--vj-learned);outline-offset:2px}.vj-card{border:1px solid var(--vj-card-border);background:var(--vj-card-bg);border-radius:18px;gap:12px;min-width:0;padding:18px 20px;display:grid;box-shadow:0 3px 12px #32281e0a}.vj-ch{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:6px 12px;display:flex}.vj-ch h3{color:var(--vj-ink);margin:0;font-size:17px}.vj-sum{color:var(--vj-soft);flex-wrap:wrap;gap:4px 18px;font-size:13px;display:flex}.vj-sum b{color:var(--vj-ink);font-variant-numeric:tabular-nums;margin-right:2px;font-family:Playfair Display,serif;font-size:20px}.vj-hint{color:var(--vj-muted);margin:0;font-size:12px}.vj-grasswrap{padding-bottom:4px;overflow-x:auto}.vj-grass{grid-template-columns:22px auto;gap:4px;width:max-content;display:grid}.vj-months{color:var(--vj-muted);grid-auto-columns:15px;grid-auto-flow:column;gap:3px;height:15px;font-size:10.5px;line-height:15px;display:grid}.vj-months span{white-space:nowrap;overflow:visible}.vj-wdays{color:var(--vj-muted);grid-template-rows:repeat(7,15px);gap:3px;font-size:10px;line-height:15px;display:grid}.vj-cells{grid-template-rows:repeat(7,15px);grid-auto-columns:15px;grid-auto-flow:column;gap:3px;display:grid}.vj-cell{background:var(--vj-g0);border:0;border-radius:4px;width:15px;height:15px;padding:0;display:block}button.vj-cell{cursor:pointer}.vj-cell.l1{background:var(--vj-g1)}.vj-cell.l2{background:var(--vj-g2)}.vj-cell.l3{background:var(--vj-g3)}.vj-cell.l4{background:var(--vj-g4)}.vj-cell.is-out{background:0 0}.vj-cell.is-today{outline:1.5px solid var(--vj-gold-deep);outline-offset:1px}.vj-cell[aria-pressed=true]{outline:2px solid var(--vj-ink);outline-offset:1px}.vj-scale{color:var(--vj-muted);align-items:center;gap:4px;font-size:11px;display:flex}.vj-scale .vj-cell{border-radius:3px;width:12px;height:12px;display:inline-block}.vj-gfoot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;display:flex}.vj-detail{background:var(--vj-warm);border:1px solid var(--vj-warm-border);color:var(--vj-warm-ink);border-radius:12px;padding:8px 12px;font-size:13px}.vj-detail b{color:var(--vj-ink)}.vj-chartbox{gap:12px;min-width:0;display:grid}.vj-chart{width:100%;max-width:760px;height:auto;display:block}.vj-grid{stroke:var(--vj-grid);stroke-width:1px}.vj-axis{fill:var(--vj-axis);font-size:11px}.vj-axis2{fill:var(--vj-axis2);font-size:11px}.vj-bar{fill:var(--vj-bar)}.vj-area{fill:var(--vj-area)}.vj-line-learned{stroke:var(--vj-learned)}.vj-line-mastered{stroke:var(--vj-mastered)}.vj-dot-learned{fill:var(--vj-learned);stroke:var(--vj-dot-stroke)}.vj-dot-mastered{fill:var(--vj-mastered);stroke:var(--vj-dot-stroke)}.vj-endlabel{fill:var(--vj-endlabel);font-size:12px;font-weight:700}.vj-legend{color:var(--vj-soft);flex-wrap:wrap;gap:6px 16px;font-size:12px;display:flex}.vj-legend i{vertical-align:middle;border-radius:2px;width:14px;height:4px;margin-right:6px;display:inline-block}.vj-legend .vj-key-learned{background:var(--vj-learned)}.vj-legend .vj-key-mastered{background:var(--vj-mastered)}.vj-legend .vj-key-bar{background:var(--vj-bar);width:10px;height:10px}.vj-wait{border:1px dashed var(--vj-warm-border);background:var(--vj-warm);text-align:center;color:var(--vj-warm-ink);border-radius:14px;justify-items:center;gap:8px;padding:18px;font-size:13px;display:grid}.vj-wait-big{color:var(--vj-ink);font-family:Playfair Display,serif;font-size:18px}.vj-prog{gap:6px;display:flex}.vj-prog span{background:var(--vj-prog);border-radius:99px;width:34px;height:8px}.vj-prog span.is-on{background:var(--vj-prog-on)}.vj-lock{border:1px solid var(--vj-warm-border);background:var(--vj-warm);color:var(--vj-warm-ink);border-radius:14px;gap:6px;padding:14px 16px;font-size:13px;display:grid}.vj-lock b{color:var(--vj-ink)}@media (max-width:640px){.vj-screen{padding:12px 16px 24px}.vj-card{padding:16px 14px}}.vr-more{border:1px dashed var(--vr-today-border);background:var(--vr-today-bg);width:100%;color:var(--vr-today-ink);font:inherit;cursor:pointer;border-radius:12px;margin-top:12px;padding:10px;font-size:13px;display:block}.vr-more:hover{border-style:solid}.vj-screen.vj-embed{padding:0 max(40px, calc((100% - var(--content-max)) / 2));margin:0 0 14px}.vj-card-compact{grid-template-columns:auto minmax(0,1fr);grid-template-areas:"ch sum""grid grid""detail detail";align-items:baseline;gap:6px 12px;padding:10px 14px}.vj-card-compact .vj-ch{flex-wrap:nowrap;grid-area:ch}.vj-card-compact .vj-sum{grid-area:sum;justify-content:flex-end;gap:2px 12px;font-size:12px}.vj-card-compact .vj-grasswrap{grid-area:grid}.vj-card-compact .vj-detail{grid-area:detail;font-size:12px}.vj-card-compact .vj-ch h3{font-size:15px}.vj-card-compact .vj-sum b{font-size:17px}.vj-card-compact .vj-grass{grid-template-columns:18px auto;gap:3px}.vj-card-compact{--vj-cell:12px}.vj-card-compact .vj-months{grid-auto-columns:var(--vj-cell);height:13px;font-size:10px;line-height:13px}.vj-card-compact .vj-wdays{grid-template-rows:repeat(7, var(--vj-cell));line-height:var(--vj-cell);font-size:9px}.vj-card-compact .vj-cells{grid-template-rows:repeat(7, var(--vj-cell));grid-auto-columns:var(--vj-cell)}.vj-card-compact .vj-cell{width:var(--vj-cell);height:var(--vj-cell);border-radius:3px}.vj-card-compact .vj-grasswrap{overflow-x:hidden}.home-stats-row{padding:0 max(40px, calc((100% - var(--content-max)) / 2));grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:stretch;gap:12px;margin:0 0 14px;display:grid}.home-stats-row>.vocab-progress,.home-stats-row>.vj-screen.vj-embed{min-width:0;margin:0;padding:0}.home-stats-row .vocab-progress-card{max-width:none;height:100%}.home-stats-row .vj-embed{display:flex}.vj-card-mini{width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:6px;display:flex}.vj-card-mini:hover{border-color:var(--vj-learned)}.vj-card-mini:focus-visible{outline:2px solid var(--vj-learned);outline-offset:2px}.vj-card-mini .vj-grasswrap{justify-content:center;width:100%;display:flex}.vj-mini-title{color:var(--vj-ink);text-align:center;font-size:13px;font-weight:700}.home-stats-row.is-single{grid-template-columns:minmax(0,1fr)}.vj-card-mini .plus-note{padding:0 6px;font-size:10px}.vj-plus{justify-content:center;margin:0 0 10px;display:flex}@media (min-width:769px){.vj-card-mini{--vj-cell:19px;gap:8px}.vj-card-mini .vj-grass{grid-template-columns:22px auto;gap:4px}.vj-card-mini .vj-cells{gap:4px}.vj-card-mini .vj-months,.vj-card-mini .vj-wdays{gap:4px;font-size:11px}.vj-card-mini .vj-cell{border-radius:4px}.vj-mini-title,.home-stats-row .vp-label{font-size:15px}.home-stats-row .vp-num{font-size:40px}.home-stats-row .vp-sub{font-size:17px}.home-stats-row .vp-pct{font-size:14px}.home-stats-row .vp-gauge{height:8px}}@media (max-width:768px){.home-stats-row{gap:10px;padding:0 16px}.home-stats-row .vocab-progress-card{flex-direction:column}.home-stats-row .vp-divider{width:auto;height:1px}.home-stats-row .vp-tile{gap:2px;padding:8px 10px}.home-stats-row .vp-num{font-size:30px}.home-stats-row .vp-sub{font-size:14px}.home-stats-row .vp-label{font-size:13px}.home-stats-row .vp-pct{display:none}.home-stats-row .vp-gauge{margin-top:4px}.home-stats-row .vj-card-mini{padding:8px 6px}}.rh-progress{margin:0 0 12px}.rh-progress .vocab-progress{margin:0;padding:0}.rh-progress .vocab-progress-card{max-width:none}.library-sections.library-sections-top{min-height:0;padding-bottom:6px}.library-sections.library-sections-rest{min-height:0;padding-top:6px}@media (max-width:768px){.vj-screen.vj-embed{padding:0 16px}}.vr-lrow b{font-family:Playfair Display,serif;font-weight:700}.vj-reveal{opacity:0;scroll-margin-top:80px;transition:opacity .6s,transform .7s cubic-bezier(.2,.8,.2,1);transform:translateY(28px)}.vj-reveal.is-in{opacity:1;transform:none}.vj-screen button.vr-stage .vr-cue{animation:2.4s ease-in-out infinite vjCueBob}@keyframes vjCueBob{0%,to{transform:translate(-50%)}50%{transform:translate(-50%,4px)}}@media (max-width:640px){.vj-screen .vr-wrap{padding:0}.vj-screen{padding-top:8px}.vj-screen .vr-card{min-height:calc(var(--vj-avail,640px) - 20px);flex-direction:column;justify-content:space-evenly;align-items:center;gap:6px;padding:12px 14px 14px;display:flex}.vj-screen .vr-eyebrow{margin-bottom:2px;font-size:12px}.vj-screen .vr-copy h2{margin-bottom:4px;font-size:22px}.vj-screen .vr-copy p{font-size:12.5px;line-height:1.6}.vj-screen .vr-stage{width:min(260px, calc(var(--vj-avail,640px) * .34));margin-bottom:18px}.vj-screen .vr-legend{margin:0 auto}.vj-screen .vr-lrow{gap:2px 10px;padding:5px 0}.vj-screen .vr-lrow b{font-size:18px}.vj-screen .vr-today{margin-top:8px;padding:9px 14px;font-size:13px}}@media (prefers-reduced-motion:reduce){.vj-reveal{opacity:1;transition:none;transform:none}.vj-screen button.vr-stage .vr-cue{animation:none}}.gen-confirm-scrim{z-index:1200;background:#14100a73;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.gen-confirm{background:var(--surface);width:min(440px,100%);color:var(--text);border-radius:18px;gap:12px;padding:20px;display:grid;box-shadow:0 20px 60px #00000040}.gen-confirm-title{font-size:16px;font-weight:800}.gen-confirm-body{color:var(--text-soft);margin:0;font-size:14px;line-height:1.8}.gen-confirm-body b{color:var(--text)}.gen-confirm-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}@media (max-width:768px){.btn-header-icon{padding:6px}}@media (max-width:380px){header{gap:6px}.logo{font-size:18px}.logo-mark{width:22px;height:22px;margin-right:6px}.logo .beta-tag{margin-left:5px;padding:0 5px;font-size:9px;line-height:14px}.header-right{gap:2px}.btn-header-icon{padding:5px}.btn-header-icon svg{width:18px;height:18px}}@media (max-width:340px){header{padding-left:max(12px, env(safe-area-inset-left));padding-right:max(12px, env(safe-area-inset-right))}.logo{font-size:16px}.logo-mark{width:20px;height:20px;margin-right:5px}.btn-header-icon{padding:4px}}.srs-ep-label{flex-wrap:wrap;align-items:center;gap:6px 8px;min-width:0;display:flex}.srs-ep-title{min-width:0}.ep-inline-badge{background:linear-gradient(135deg, color-mix(in srgb, var(--accent) 65%, #000), color-mix(in srgb, var(--accent) 55%, #000));color:#fff;letter-spacing:.4px;font-variant-numeric:tabular-nums;cursor:pointer;border:none;border-radius:8px;flex-shrink:0;align-items:center;gap:5px;padding:4px 9px 4px 10px;font-family:DM Sans,sans-serif;font-size:13px;font-weight:700;line-height:1.2;transition:filter .15s,transform .12s;display:inline-flex}.ep-inline-badge:hover{filter:brightness(1.12)}.ep-inline-badge:active{transform:scale(.97)}.ep-inline-badge-chev{opacity:.85;font-size:11px}.ep-sheet{max-width:560px}.ep-sheet-body{padding:16px 20px}.ep-sheet-foot{border-top:1px solid var(--border);flex-direction:column;flex-shrink:0;align-items:center;gap:0;padding:6px 16px 12px;display:flex}.ep-sheet-foot .bulkdel-link{margin:0}@media (max-width:768px){.ep-sheet-overlay{align-items:flex-end;padding:0}.ep-sheet{border-radius:16px 16px 0 0;max-width:none;max-height:82vh}.ep-sheet-foot{padding-bottom:calc(12px + env(safe-area-inset-bottom,0px))}}.srs-pct{white-space:nowrap;flex-shrink:0;margin-left:8px}.srs-progress-header{align-items:flex-start;gap:10px}.srs-heading{flex:auto;min-width:0}.srs-work-title{text-align:center;text-wrap:balance;letter-spacing:.1px;color:color-mix(in srgb, var(--text) 73%, var(--surface));overflow-wrap:anywhere;font-family:inherit;font-size:18px;font-weight:600;line-height:1.22}.srs-heading-sub{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:6px 8px;margin-top:6px;font-size:12px;display:flex}.srs-heading-sub .srs-ep-title{font-weight:500}.srs-heading-sub .prepped-chip{margin-left:0}.srs-media-chip{background:var(--surface2);border:1px solid var(--border);color:var(--text);border-radius:8px;flex-shrink:0;padding:3px 9px;font-size:12px;font-weight:600}.srs-heading-sub .srs-pct{margin-top:0;margin-left:auto;font-size:13px}.vocab-action-bar{position:sticky}.vab-close{border:1px solid var(--border);background:var(--surface);width:22px;height:22px;color:var(--text-muted);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:11px;line-height:1;display:flex;position:absolute;top:-9px;right:-6px;box-shadow:0 1px 4px #0000001f}.vab-close:hover{color:var(--text);border-color:var(--accent)}.vocab-header-compact{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.vocab-header-compact .btn-back{margin-bottom:0}.vocab-svc{color:var(--text-muted);white-space:nowrap;font-size:12px}.vocab-work-heading{text-align:center;text-wrap:balance;color:color-mix(in srgb, var(--text) 73%, var(--surface));overflow-wrap:anywhere;margin:-2px 0 2px;font-family:inherit;font-size:18px;font-weight:600;line-height:1.22}@media (max-width:768px){.vocab-header-compact{margin-bottom:6px}}.srs-work-title,.vocab-work-heading{justify-content:center;align-items:center;gap:12px;display:flex}.srs-work-title:before,.srs-work-title:after,.vocab-work-heading:before,.vocab-work-heading:after{content:"";background:color-mix(in srgb, var(--border) 80%, var(--text));flex:1 0 18px;height:1px}.work-title-text{text-align:center;text-wrap:balance;overflow-wrap:anywhere;flex:0 auto;min-width:0}.srs-episode-note{color:var(--text-muted);background:var(--surface2);border-radius:8px;padding:6px 10px;font-size:11px;line-height:1.5}
