:root{font-family:Inter,Segoe UI,Arial,sans-serif;color:#ededed;background:#000000;font-synthesis:none;color-scheme:dark}*{box-sizing:border-box}body{margin:0}button,a,input{font:inherit}button{cursor:pointer;color:inherit;border:1px solid #303030;background:#141414;border-radius:10px;padding:12px 18px;font-size:1rem}button:hover{background:#202020;border-color:#737373}button:focus-visible,a:focus-visible,label:focus-within{outline:3px solid #f2f2f2;outline-offset:3px}a{color:inherit;text-decoration:none}header{max-width:1440px;margin:auto;padding:28px 40px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #303030;gap:20px}.brand{font-size:1.7rem;font-weight:800;letter-spacing:-1px}.brand>span{color:#f2f2f2}.brand small{font-size:.75rem;letter-spacing:2px;margin-left:20px;font-weight:500;color:#a3a3a3}#saved{font-size:.875rem;color:#a3a3a3}main{max-width:1360px;margin:auto;padding:50px 32px}h1{font-size:clamp(2.3rem,4vw,3.8rem);letter-spacing:-2px;line-height:1.12;margin:14px 0 24px}h2{font-size:1.4rem;letter-spacing:-.5px}p{color:#a3a3a3;line-height:1.65}.eyebrow{font-size:.75rem;font-weight:700;letter-spacing:2px;color:#d4d4d4}.intro{display:flex;justify-content:space-between;gap:50px;align-items:center;margin-bottom:48px}.intro p{margin-bottom:0}.overall{min-width:280px;border-left:1px solid #303030;padding:24px 0 24px 38px}.overall strong{font-size:2.8rem;letter-spacing:-1px}.overall strong span{font-size:1.1rem;color:#a3a3a3;font-weight:400}.overall p{margin:3px 0 20px}.overall small{display:block;margin-top:14px;color:#a3a3a3}.meter{height:5px;background:#303030;border-radius:8px;overflow:hidden}.meter i{display:block;height:100%;background:#f2f2f2;transition:width .2s}.course-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:36px;align-items:start}.section-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.section-title h2{margin:0}.section-title>span{font-size:.875rem;color:#a3a3a3}.batches{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.batch{text-align:left;display:grid;grid-template-columns:1fr auto;padding:18px;gap:12px;background:#000000;min-height:112px}.batch>span{font-size:.875rem}.batch>strong{color:#a3a3a3;font-size:.875rem;font-weight:500}.batch small{grid-column:1/-1;color:#a3a3a3;font-size:.8rem}.batch .meter{grid-column:1/-1;height:3px}.batch.selected{border-color:#f2f2f2;background:#202020;box-shadow:0 0 0 1px #f2f2f2}.batch.finished>strong{color:#d4d4d4}aside{border:1px solid #303030;border-radius:16px;padding:24px;background:#000000;position:sticky;top:20px}aside h2{font-size:1.75rem;margin:8px 0}aside>.eyebrow{margin:0}.primary{background:#f2f2f2;color:#101010;border-color:#f2f2f2;font-weight:650}.primary:hover{background:#f2f2f2;border-color:#f2f2f2}.wide{width:100%;display:flex;justify-content:space-between;margin:24px 0 16px}.sets>button{display:flex;align-items:center;text-align:left;width:100%;border:0;border-bottom:1px solid #303030;border-radius:0;background:none;padding:15px 0;gap:12px}.sets>button:hover{background:#202020}.set-num{font-size:.875rem;color:#d4d4d4;width:22px}.sets b{font-size:1.05rem;font-weight:500}.sets small{display:block;font-size:.75rem;color:#a3a3a3;margin-top:4px}.set-state{margin-left:auto;font-size:.75rem;color:#a3a3a3}.muted{color:#a3a3a3;font-weight:400}.hint{font-size:.875rem;color:#a3a3a3}.study-top{display:flex;align-items:center;justify-content:space-between;gap:15px;color:#d4d4d4;font-size:.875rem}.study-top button{background:none}.study{text-align:center;max-width:760px;margin:65px auto}.study h1{font-size:2.8rem}.word-list{margin:30px 0;display:grid;text-align:left;border:1px solid #303030;border-radius:16px;overflow:hidden}.word-list>div{display:grid;grid-template-columns:110px 130px 1fr;align-items:center;gap:18px;padding:18px 24px;background:#000000;border-bottom:1px solid #303030}.word-list>div:last-child{border:0}.word-list strong{font-size:1.6rem;font-weight:500}.word-list span{color:#d4d4d4}.word-list p{margin:0}.study>.primary{min-width:240px}.rounds{display:flex;justify-content:center;gap:12px;margin-bottom:48px}.rounds span{padding:10px 20px;border-bottom:3px solid #303030;color:#a3a3a3}.rounds .current{color:#f2f2f2;border-color:#f2f2f2}.rounds .passed{color:#d4d4d4;border-color:#d4d4d4}.recall-word{font-size:clamp(3rem,9vw,6rem);margin-top:28px}.reading{font-size:1.4rem;margin:10px 0;color:#d4d4d4}.answer{min-height:110px;padding:28px 10px;font-size:1.35rem;line-height:1.5}.actions{display:flex;justify-content:center;gap:16px}.actions button{min-width:190px}.again{background:#141414;border-color:#737373}kbd{font:inherit;font-size:.75rem;opacity:.65;margin-left:25px}.feedback{min-height:28px;font-size:.875rem}.quiet{border:none;background:none;color:#a3a3a3}.seal{font-size:2.5rem;background:#141414;color:#f2f2f2;border-radius:100%;width:90px;height:90px;display:grid;place-items:center;margin:0 auto 28px}.completion .meter{margin:30px auto;width:80%}.completion .primary{margin:20px 0}footer{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-top:40px;padding-top:25px;border-top:1px solid #303030;color:#a3a3a3;font-size:.875rem}footer button,.import{font-size:.875rem;background:none;padding:8px;border:0;cursor:pointer}.import input{display:none}#notice{color:#ffb4b4;text-align:center;padding:0 20px 20px}@media(max-width:1000px){.course-layout{grid-template-columns:1fr 310px;gap:20px}.batches{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){header{padding:20px}.brand small{display:none}#saved{font-size:.75rem}main{padding:28px 18px}.intro{display:block;margin-bottom:30px}.overall{border-left:0;padding:20px 0;min-width:0}.overall strong{font-size:2rem}.course-layout{display:flex;flex-direction:column}.course-layout>section{width:100%}aside{position:static;width:100%;order:-1}.sets{display:grid;grid-template-columns:1fr 1fr;gap:0 15px}.set-state{display:none}.study-top{flex-wrap:wrap}.study{margin:40px auto}.study h1{font-size:2rem}.word-list>div{grid-template-columns:1fr 1fr;padding:16px}.word-list p{grid-column:1/-1}.actions button{min-width:0;flex:1}.rounds{gap:8px}.rounds span{padding:10px;font-size:.875rem}}

#courses-dialog{width:min(640px,95vw);max-height:90vh;overflow:auto;border:1px solid #303030;border-radius:16px;background:#000000;color:inherit;padding:24px}#courses-dialog::backdrop{background:#0009}#courses-list{display:grid;gap:8px;max-height:220px;overflow:auto}#courses-list button{display:flex;justify-content:space-between;gap:12px;text-align:left}#courses-list small{color:#a3a3a3}#courses-list [aria-pressed=true]{border-color:#f2f2f2}#create-course label{display:grid;gap:8px;margin:16px 0}#create-course input,#create-course textarea{width:100%;padding:10px;background:#000000;border:1px solid #303030;border-radius:8px;color:inherit;font:inherit}#course-error{color:#ffb4b4}.header-tools{display:flex;gap:8px}.brand small{overflow-wrap:anywhere}
/* Compact course summary. */
.intro{gap:24px;margin-bottom:28px}.intro h1{font-size:1.8rem;letter-spacing:-.5px;margin:0 0 8px}.intro p{margin:0}.overall{padding:0 0 0 24px}.overall strong{font-size:1.8rem}.overall p{margin:3px 0 10px}.overall small{margin-top:8px}main{padding-top:28px}@media(max-width:720px){.overall{padding:16px 0 0}.intro{margin-bottom:22px}}

.batch .batch-history{line-height:1.6;font-size:.875rem}.batch-history{display:block;color:#a3a3a3;line-height:1.6;font-size:.875rem}aside>.batch-history{margin-top:14px}

.accuracy-panel{margin:24px 0;border-top:1px solid #303030;padding-top:16px}.accuracy-panel h3{font-size:1rem;margin:0 0 18px}.accuracy-chart{display:flex;gap:16px;overflow-x:auto;padding-bottom:12px}.accuracy-day{flex:0 0 94px;text-align:center}.accuracy-day b{font-size:.875rem}.accuracy-track{height:100px;width:36px;background:#303030;margin:8px auto;display:flex;align-items:flex-end;border-radius:4px;overflow:hidden}.accuracy-track>div{width:100%;background:#f2f2f2;min-height:2px}.accuracy-day time,.accuracy-day small{display:block;font-size:.75rem;color:#a3a3a3;line-height:1.7}

.header-tools{display:flex;align-items:center;gap:20px}#keys-dialog{width:min(420px,calc(100vw - 32px));padding:28px;background:#000000;color:#ededed;border:1px solid #303030;border-radius:16px}#keys-dialog::backdrop{background:#000a}#keys-dialog h2{margin:0 0 24px}.key-options>div{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:12px 0}.key-options button{min-width:130px}#keys-message{min-height:24px;font-size:.875rem}.key-presets,.key-footer{display:flex;gap:12px}.key-footer{justify-content:flex-end;margin-top:28px}@media(max-width:720px){.header-tools{gap:10px}.header-tools #saved{display:none}}

.set-state{text-align:right}.set-state>b{display:block;color:#f2f2f2;font-size:1rem}.set-state small{font-size:.75rem}.set-comparison{display:grid;grid-template-columns:1fr 1fr;gap:12px;max-width:460px;margin:24px auto}.set-comparison>div{background:#000000;padding:16px;border:1px solid #303030;border-radius:10px}.set-comparison span,.set-comparison small{display:block;font-size:.875rem;color:#a3a3a3}.set-comparison strong{display:block;font-size:1.8rem;margin:8px 0}.set-comparison time{grid-column:1/-1;font-size:.875rem;color:#a3a3a3}@media(max-width:720px){.set-state{display:block}.sets{grid-template-columns:1fr}}

.reading-toggle{display:flex;align-items:center;gap:8px;font-size:.875rem;white-space:nowrap;color:#a3a3a3}.reading-toggle input{width:17px;height:17px;accent-color:#f2f2f2}@media(max-width:480px){header{flex-wrap:wrap}.header-tools{margin-left:auto}}

.word-audio{display:flex;justify-content:center;align-items:center;gap:20px}.word-audio .recall-word{margin:24px 0 8px}.audio-button{padding:10px 14px;flex-shrink:0;font-size:1rem}.sentence-line{display:flex;justify-content:center;align-items:center;gap:14px;margin:24px auto 0;max-width:680px;font-size:1.35rem;line-height:1.7}.header-tools{flex-wrap:wrap;justify-content:flex-end}@media(max-width:1000px){.header-tools #saved{display:none}}

.word-audio{position:relative;display:table;margin:0 auto}.word-audio>.audio-button{position:absolute;left:calc(100% + 20px);top:50%;transform:translateY(-50%)}@media(max-width:480px){.word-audio>.audio-button{left:calc(100% + 10px)}}


.intended-meaning{font-weight:650;color:#ededed}.other-meanings{margin:14px auto 0;max-width:560px;padding-top:12px;border-top:1px solid #303030;font-size:1rem;color:#a3a3a3}.other-meanings>div{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin:6px 0}.other-meanings span[lang]{color:#d4d4d4}.preview-meanings{color:#a3a3a3;line-height:1.6}.preview-meanings .other-meanings>div{justify-content:flex-start}.word-list .preview-meanings span{font-size:1rem}@media(max-width:720px){.preview-meanings{grid-column:1/-1}}

.word-list>div{grid-template-columns:90px 100px minmax(0,1fr) 120px}.word-accuracy{text-align:right}.word-accuracy b{display:block;color:#f2f2f2;font-size:1.15rem}.word-accuracy small,.word-accuracy time{display:block;color:#a3a3a3;font-size:.75rem;line-height:1.6}@media(max-width:720px){.word-list>div{grid-template-columns:1fr 1fr}.word-accuracy{grid-column:1/-1;text-align:left;border-top:1px solid #303030;padding-top:10px}}

#practice-time{flex:1;text-align:center;white-space:nowrap;color:#f2f2f2;font-size:1rem;font-variant-numeric:tabular-nums;min-width:70px}@media(max-width:720px){header{flex-wrap:wrap}.header-tools{width:100%}.header-tools #saved{display:none}}

/* Equal side columns keep the timer at the header's geometric center. */
header{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:20px}.brand{grid-column:1;grid-row:1;justify-self:start}#practice-time{grid-column:2;grid-row:1;justify-self:center;min-width:0}.header-tools{grid-column:3;grid-row:1;justify-self:end;min-width:0;width:100%}@media(max-width:1000px){.header-tools{grid-column:1/-1;grid-row:2}.brand small{display:none}}


#saved:empty{display:none}#saved:not(:empty){text-align:center;color:#ffb4b4;padding:0 20px 20px}

.batch-summary{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.batch .batch-minutes{position:static;flex-shrink:0;font-size:inherit;line-height:inherit;color:#a3a3a3;font-variant-numeric:tabular-nums}

.word-accuracy .word-minutes{margin-top:6px;color:#f2f2f2;font-size:.875rem;font-variant-numeric:tabular-nums}


.hide-time #practice-time{visibility:hidden}.hide-time .batch-minutes,.hide-time .word-minutes{display:none}

#keys-dialog{max-height:calc(100dvh - 40px);overflow-y:auto}.settings-options{display:grid;gap:18px;padding:0 0 24px;border-bottom:1px solid #303030;margin-bottom:24px}.settings-options label{display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:1rem}.settings-options input{width:18px;height:18px;accent-color:#f2f2f2}#keys-title{font-size:1rem;margin:0 0 18px}@media(max-width:1000px){header .header-tools{grid-column:3;grid-row:1;width:auto}.brand small{display:none}}

.intro{justify-content:flex-end}.intro .overall{border-left:0;padding-left:0}

.course-row{display:flex;gap:8px}.course-row>button:first-child{flex:1;min-width:0}.course-row>button:first-child span{overflow-wrap:anywhere}

.word-editor{margin:20px 0;padding:0 16px 16px;border:1px solid #303030;border-radius:10px}.word-editor-actions{display:flex;align-items:center;gap:12px;margin-top:16px;flex-wrap:wrap}#entry-status{font-size:.85rem;color:#a3a3a3}#courses-dialog details{margin:16px 0}#courses-dialog summary{cursor:pointer;color:#a3a3a3}#course-word-rows{max-height:240px;overflow:auto;margin-top:10px;display:grid;gap:5px}#course-word-rows button{display:grid;grid-template-columns:1fr 1fr 2fr;gap:10px;text-align:left;padding:10px;font-size:.875rem}#course-word-rows span{overflow-wrap:anywhere}

#keys-dialog{width:min(560px,calc(100vw - 32px));padding:24px}.settings-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:8px}#keys-dialog .settings-heading h2{margin:0}.settings-heading button{padding:5px 12px;font-size:1.5rem;border:0;background:transparent}.settings-section{border-top:1px solid #303030;padding:18px 0}.settings-section:last-child{padding-bottom:0}.settings-section h3,.settings-section summary{font-size:1rem;font-weight:600;margin:0 0 16px}.settings-section summary{cursor:pointer;margin:0}.settings-section[open] summary{margin-bottom:18px}#keys-dialog .settings-options{border:0;margin:0;padding:0;gap:16px}.settings-options label{font-size:.9rem}.backup-controls{display:flex;gap:10px;flex-wrap:wrap}.backup-import{cursor:pointer;display:inline-flex;align-items:center;border:1px solid #303030;border-radius:10px;padding:12px 18px;background:#141414}.backup-import input{position:absolute;width:1px;height:1px;opacity:0}.backup-import:focus-within{outline:3px solid #f2f2f2}#backup-status{font-size:.85rem;line-height:1.5;margin-bottom:0}#backup-status:empty{display:none}.settings-section .key-footer{margin-top:16px}

#account-dialog{width:min(500px,95vw);padding:24px;background:#000000;color:inherit;border:1px solid #303030;border-radius:16px}#account-dialog::backdrop{background:#000a}#account-dialog label{display:grid;gap:8px;margin:16px 0}#account-dialog input,#anki-mapping select,#anki-group{width:100%;padding:10px;color:inherit;background:#000000;border:1px solid #303030;border-radius:8px}#account-sync .key-footer{flex-wrap:wrap}#anki-preview{overflow-wrap:anywhere}.header-tools{gap:8px}@media(max-width:720px){.header-tools button{padding:10px;font-size:.8rem}}
.cloud-history-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:8px 0;border-bottom:1px solid #303030}.cloud-history-row span{font-size:13px}
.touch-controls{display:none}@media(pointer:coarse){.touch-controls{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}.touch-controls button{min-height:48px}}#account-dialog{max-height:calc(100dvh - 32px);overflow:auto}

/* Black workspace, with the supplied PER5 mark. */
html,body{background:#000}.brand{display:flex;align-items:center;line-height:0}.brand-logo{display:block;width:64px;height:64px;object-fit:contain}.brand:hover{opacity:.85}input,textarea,select{accent-color:#f2f2f2}::selection{background:#454545;color:#fff}@media(max-width:720px){.brand-logo{width:48px;height:48px}}

.improvement{margin:18px 0;font-variant-numeric:tabular-nums}.improvement span{display:block;color:#a3a3a3;font-size:.8rem;margin-bottom:6px}.improvement strong{font-size:1rem;font-weight:600;color:#ededed}

/* Compact phone header: centered timer, one row of touch-friendly menus. */
@media(max-width:720px){
  header{padding:10px 16px;gap:6px 12px}
  header .brand-logo{width:36px;height:36px}
  header #practice-time{font-size:.875rem}
  header .header-tools{grid-column:1/-1;grid-row:2;display:flex;flex-direction:row;justify-content:stretch;gap:8px;width:100%}
  header .header-tools button{flex:1;min-width:0;min-height:40px;padding:8px 10px;font-size:.875rem;line-height:1.3;white-space:nowrap}
}

/* Study cards keep the word intact and details out of the first reading pass. */
.study-preview{max-width:900px}
.word-list>.study-word-row{grid-template-columns:minmax(150px, .9fr) minmax(0, 1.7fr) 110px;gap:20px;padding:22px 24px;align-items:start}
.study-word-label{min-width:0;display:flex;flex-direction:column;gap:7px}
.study-word-label>strong{line-height:1.4;word-break:keep-all;overflow-wrap:anywhere}
.study-word-label>span{font-size:.9rem;color:#a3a3a3}
.preview-meanings .intended-meaning{font-weight:400;color:#ededed}
.meaning-details{margin-top:8px;font-size:.875rem;line-height:1.65;color:#a3a3a3;text-align:left}
.meaning-details summary{cursor:pointer;width:fit-content;font-size:.75rem;color:#888;padding:3px 0}
.meaning-details summary:hover{color:#ededed}
.meaning-details summary:focus-visible{outline:2px solid #ededed;outline-offset:4px}
.meaning-details>div{padding-top:8px}
.meaning-details p{margin:0;color:#a3a3a3}
.meaning-details .alternate-meaning{margin-top:12px;padding-top:10px;border-top:1px solid #252525}
.meaning-details .alternate-meaning>span{display:block;margin-bottom:3px}
.answer .meaning-details{max-width:520px;margin:12px auto 0}
.answer .meaning-details summary{margin:auto}
@media(max-width:720px){
 .word-list>.study-word-row{grid-template-columns:minmax(0,1fr) auto;gap:12px 16px;padding:18px}
 .study-word-row>.study-word-label{grid-column:1;grid-row:1}
 .study-word-row>.preview-meanings{grid-column:1/-1;grid-row:2}
 .study-word-row>.word-accuracy{grid-column:2;grid-row:1;text-align:right;border:0;padding:0}
 .study-word-label>strong{font-size:1.5rem}
}

.study-modes{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.quiz-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;max-width:640px;margin:28px auto}.quiz-options button{white-space:normal;min-height:64px}.quiz-meaning{font-size:1.8rem;margin:36px 0}.quiz-entry{display:block;margin:24px auto;max-width:500px}.quiz-entry .recall-word{font-size:2.5rem}.quiz-entry input{width:100%;padding:14px;margin-top:12px;background:#111;color:#fff;border:1px solid #555;border-radius:8px;font-size:1.1rem}.quiz-result{margin:24px 0}.quiz #quiz-undo{margin-left:12px}@media(max-width:520px){.quiz-options{grid-template-columns:1fr}.study-modes>*{flex:1}.quiz .rounds{gap:8px}}

.preview-word-audio{display:flex;align-items:center;gap:10px}.preview-word-audio .audio-button{position:static;transform:none;flex-shrink:0;width:30px;height:30px;font-size:.8rem}

.quiz-statistics{margin-top:36px;padding-top:24px;border-top:1px solid #333}.quiz-statistics .set-comparison strong{font-size:1rem}.quiz-statistics details{text-align:left;margin:16px 0;overflow-x:auto}.quiz-statistics table{width:100%;border-collapse:collapse;font-size:.9rem}.quiz-statistics td,.quiz-statistics th{padding:10px;text-align:left;border-bottom:1px solid #333}.stats-mode-label{font-size:1rem;color:#aaa}.hide-time .quiz-time-stat{display:none}

.quiz-reading-audio{display:flex;justify-content:center;align-items:center;gap:12px;margin:8px 0 20px}.quiz-reading-audio [lang="ja"]{font-size:1.25rem}
