:root{color-scheme:light;--ink:#1a3045;--sub:#697b8d;--line:#dfe5e9;--wash:#f4f7f8;--paper:#fffdfa;--accent:#274968;--terra:#ce725a;--sea:#49796e;--shadow:0 9px 30px rgba(31,52,72,.065)}*{box-sizing:border-box}body{margin:0;background:#f6f7f5;color:var(--ink);font:15px/1.55 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button,select,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.35}button:focus-visible,select:focus-visible,input:focus-visible,[role=button]:focus-visible{outline:3px solid #e09a76;outline-offset:2px}h1,h2,h3,p{margin-top:0}.site{max-width:1090px;margin:0 auto;padding:0 22px 42px}.topbar{height:78px;display:flex;align-items:center;justify-content:space-between;gap:12px}.brand{display:flex;align-items:center;gap:11px;color:var(--ink);text-decoration:none;font-weight:790;font-size:18px;letter-spacing:-.03em}.logo{width:38px;height:38px;display:grid;place-items:center;border-radius:12px;background:var(--ink);color:#fff1df;font-weight:800}.topright{display:flex;gap:8px;align-items:center}.button{border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:11px;padding:10px 15px;font-weight:650;transition:background .15s,transform .15s}.button:hover:not(:disabled){background:#f1f4f5}.button:active:not(:disabled){transform:scale(.99)}.button.primary{background:var(--accent);color:white;border-color:var(--accent)}.button.primary:hover:not(:disabled){background:#18334f}.button.green{background:var(--sea);color:white;border-color:var(--sea)}.button.green:hover:not(:disabled){background:#38645a}.button.ghost{background:transparent;border-color:transparent}.button.small{padding:7px 11px;font-size:13px}.button.block{width:100%}.eyebrow{letter-spacing:.12em;text-transform:uppercase;font-size:11px;font-weight:800;color:var(--terra)}.muted{color:var(--sub)}.tiny{font-size:12px}.hero{display:flex;align-items:center;justify-content:space-between;gap:24px;border-radius:25px;background:#172b43;color:white;padding:34px 38px;position:relative;overflow:hidden;min-height:208px}.hero:before{content:'あ';font-size:230px;position:absolute;right:-17px;top:-85px;opacity:.06;font-weight:800}.hero>*{position:relative}.hero .eyebrow{color:#e9aa8c}.hero h1{font-size:clamp(30px,5vw,47px);line-height:1.17;letter-spacing:-.045em;margin:9px 0 12px}.hero p{color:#d1dce6;margin:0;max-width:560px}.hero-bubble{background:#294762;border:1px solid #40617d;padding:15px 20px;border-radius:22px;font-size:34px;flex-shrink:0}.section-header{display:flex;justify-content:space-between;align-items:center;gap:14px;margin:29px 0 15px}.section-header h2{font-size:21px;margin:0;letter-spacing:-.025em}.lesson-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.lesson-card{border:1px solid var(--line);border-radius:19px;padding:24px;background:#fff;box-shadow:var(--shadow)}.lesson-card.locked{background:#f7f8f8;color:#7b8a96}.lesson-card h3{font-size:22px;letter-spacing:-.035em;margin:12px 0 3px}.lesson-card .jpname{font-size:16px;color:var(--sub)}.lesson-card p{color:var(--sub);margin:11px 0 21px;font-size:13px}.pill{display:inline-flex;align-items:center;gap:6px;border-radius:50px;padding:4px 10px;background:#eef2f4;color:#4f6475;font-size:11px;font-weight:750;white-space:nowrap}.pill.live{background:#e6f2eb;color:#3a7562}.flex{display:flex;align-items:center;gap:10px}.between{justify-content:space-between}.wrap{flex-wrap:wrap}.lesson-actions{display:flex;gap:9px;flex-wrap:wrap}.lesson-actions .button{flex:1}.statline{display:flex;gap:8px;margin-top:16px;font-size:12px;color:var(--sub)}.statline span{flex:1;background:#f4f6f7;border-radius:9px;padding:8px 11px}.study-head{display:flex;gap:12px;align-items:center;justify-content:space-between;margin:16px 0}.study-head h1{font-size:27px;margin:1px 0 0;letter-spacing:-.035em}.study-head .subhead{margin:0;color:var(--sub);font-size:13px}.panel{background:#fff;border:1px solid var(--line);border-radius:19px;padding:20px;box-shadow:var(--shadow)}.tabs{display:flex;gap:7px;align-items:center}.tabs button[aria-selected=true]{background:var(--accent);color:white;border-color:var(--accent)}.stats{display:flex;gap:9px;flex-wrap:wrap}.stats .tile{padding:12px 15px;background:#f3f6f7;border-radius:12px;min-width:100px}.stats .number{font-weight:800;font-size:21px;line-height:1.2}.progress{height:7px;width:100%;background:#e6ecef;overflow:hidden;border-radius:99px}.progress div{height:100%;background:var(--sea);border-radius:99px;transition:width .18s}.controls{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:20px 0 14px}.control label{display:block;font-size:11px;color:var(--sub);font-weight:750;margin-bottom:5px;letter-spacing:.06em;text-transform:uppercase}.control select{width:100%;border:1px solid var(--line);border-radius:11px;background:#fff;color:var(--ink);padding:10px}.settings{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:15px;flex-wrap:wrap}.checkline{font-size:13px;display:flex;gap:7px;align-items:center;color:#43586b}.checkline input{accent-color:var(--sea)}.flash-area{background:#eef2f3;border:1px solid #dce5e9;border-radius:20px;min-height:292px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:25px 17px;transition:background .15s;user-select:none}.flash-area:hover{background:#e9eff1}.flash-title{font-size:clamp(25px,4vw,39px);line-height:1.45;max-width:730px;font-weight:770;overflow-wrap:anywhere;letter-spacing:-.015em}.flash-title.jp{font-size:clamp(27px,4vw,42px);font-weight:650}.card-label{font-size:11px;color:var(--sub);font-weight:800;text-transform:uppercase;letter-spacing:.11em}.romaji{font-size:17px;font-style:italic;color:#486173;margin-top:8px}.touch-hint{font-size:12px;color:var(--sub);margin-top:22px}.drill-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:13px 0}.question{font-weight:730;font-size:clamp(19px,3vw,25px);line-height:1.6;margin:13px 0 5px;overflow-wrap:anywhere}.drill-surface{border:1px solid var(--line);border-radius:17px;background:#fafcfb;min-height:230px;padding:22px;margin:10px 0 12px}.response-lines{display:grid;gap:22px;margin-top:25px}.response-lines div{height:1px;background:#cfdae0}.answer-box{margin-top:18px;background:#ecf3ef;border:1px solid #cedfd5;padding:17px;border-radius:14px}.answer-box .flash-title{font-size:clamp(21px,3.2vw,28px);margin-top:10px}.nav-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:15px}.jump{margin-top:15px;width:100%;accent-color:var(--sea)}.clock{width:205px;max-width:100%;display:block;margin:13px auto;color:#274563}.price-ticket{display:table;padding:21px 35px;border-radius:14px;border:1px solid #d9e4e7;background:#fff;margin:18px auto;text-align:center}.price-ticket strong{display:block;font-size:32px;letter-spacing:-.04em}.price-ticket small{color:var(--sub)}.context-table{border-collapse:collapse;font-size:12px;width:100%;margin-top:16px}.context-table th,.context-table td{padding:7px 6px;text-align:left;border-bottom:1px solid #dfe6e7}.context-table th{color:var(--sub)}.empty{text-align:center;padding:46px 15px;border-radius:15px;border:1px dashed #cdd9de}.footer{text-align:center;margin-top:31px;color:var(--sub);font-size:12px}.boot{padding:45px;text-align:center;color:#566a80}.kbd{font-family:monospace;color:#8091a0;border:1px solid #d9e2e6;border-radius:5px;padding:1px 5px;font-size:11px}.share-note{background:#fcf1e9;border:1px solid #f1dbca;border-radius:12px;padding:11px 14px;margin:15px 0;font-size:13px;color:#8c5437}.list-note{max-width:660px;color:var(--sub);font-size:13px;line-height:1.7}.switches{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.small-heading{font-size:12px;font-weight:750;letter-spacing:.06em;text-transform:uppercase;color:var(--sub)}@media(max-width:720px){.site{padding:0 14px 25px}.topbar{height:66px}.hero{padding:29px 23px;min-height:185px}.hero-bubble{display:none}.lesson-grid{grid-template-columns:1fr}.lesson-card{padding:19px}.section-header{margin:24px 0 12px}.study-head{align-items:flex-start}.study-head h1{font-size:23px}.controls{grid-template-columns:1fr}.panel{padding:14px}.nav-row .button{padding:9px 11px}.stats .tile{min-width:0;flex:1}.flash-area{min-height:260px}.topright .button{font-size:12px;padding:7px 9px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}} 
/* Grammar & Conversation quiz */
.lesson-actions .quiz-btn{border-color:#bdd4cb;background:#eaf4ef;color:#286754}.lesson-actions .quiz-btn:hover{background:#dcefe4}.statline{flex-wrap:wrap}.statline span{min-width:130px}.quiz-progress-top{display:flex;justify-content:space-between;gap:10px;margin:22px 0 9px;color:var(--sub);font-size:13px;font-weight:650}.quiz-work{margin-top:18px}.quiz-topline{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.quiz-question{font-size:clamp(19px,2.8vw,26px);font-weight:740;line-height:1.55;margin:18px 0 22px;white-space:pre-wrap;overflow-wrap:anywhere}.quiz-options{display:grid;gap:10px;margin-bottom:20px}.quiz-options.duo{grid-template-columns:1fr 1fr}.quiz-option{border:1px solid #d8e2e8;border-radius:13px;padding:14px 16px;background:#fafcfc;display:flex;align-items:center;gap:13px;text-align:left;color:var(--ink);font-size:16px;line-height:1.6;transition:background .12s,border .12s}.quiz-option:hover:not(:disabled){background:#eff5f6;border-color:#90b1b6}.quiz-option.picked{background:#e8f0f8;border-color:#3e678e;box-shadow:0 0 0 1px #3e678e inset}.quiz-option.right{background:#e4f3e9;border-color:#539276}.quiz-option.wrong{background:#fceceb;border-color:#cc7773}.quiz-option:disabled{opacity:1;cursor:default}.quiz-letter{display:grid;place-items:center;width:30px;height:30px;flex-shrink:0;border-radius:8px;background:#e6edf1;color:#35566c;font-size:12px;font-weight:800}.quiz-field{display:block;margin-bottom:20px}.quiz-field .card-label{display:block;margin-bottom:8px}.quiz-field input{display:block;width:100%;border:1px solid #bdcdd6;border-radius:12px;font-size:19px;padding:15px 16px;background:#fff;color:var(--ink)}.quiz-field input:disabled{background:#f4f6f6;color:#344b5e}.quiz-sort{margin-bottom:20px}.quiz-sort .card-label{display:block;margin:12px 0 7px}.quiz-built,.quiz-pool{display:flex;flex-wrap:wrap;gap:9px;min-height:56px;padding:12px;border:1px dashed #c2d1d8;border-radius:12px;background:#f6f9f9;align-items:center}.quiz-pool{background:#fff}.quiz-chip{background:white;border:1px solid #b9cbd2;border-radius:9px;padding:9px 12px;color:#1c3749;font-size:15px}.quiz-chip:hover:not(:disabled){background:#e6f2ee}.quiz-chip.placed{background:#e2edf3;border-color:#8caebd}.quiz-chip span{color:#8c9aa5;margin-left:5px}.quiz-feedback{border:1px solid #c6dfd1;border-radius:13px;background:#eef8f2;padding:18px;margin-top:16px}.quiz-feedback.is-wrong{background:#fff3f0;border-color:#e7c9bc}.quiz-feedback-label{font-weight:800;font-size:15px;margin-bottom:12px;color:#276850}.quiz-feedback.is-wrong .quiz-feedback-label{color:#a34d37}.quiz-feedback-answer{display:grid;gap:3px}.quiz-feedback-answer strong{font-size:21px;font-weight:750;line-height:1.5;overflow-wrap:anywhere}.quiz-feedback-answer em{font-size:15px;color:#617785}.quiz-feedback p{font-size:14px;margin:12px 0 0;color:#47605d}.quiz-feedback.is-wrong p{color:#72554e}.quiz-check{margin-top:12px}.quiz-nav{margin-top:20px}.quiz-dots{display:grid;grid-template-columns:repeat(10,1fr);gap:6px;margin-top:23px}.quiz-dot{border:1px solid #d9e2e7;background:#f1f4f6;color:#657787;min-height:32px;border-radius:7px;font-size:11px;font-weight:700}.quiz-dot.done{background:#dceee3;color:#2c6e51;border-color:#9bceb0}.quiz-dot.incorrect{background:#f7e4df;color:#8b5548;border-color:#dcbbb3}.quiz-dot.current{outline:2px solid #345e81;outline-offset:1px}.quiz-finish{margin-top:20px;padding:15px;background:#f0f6f3;border-radius:12px}.quiz-result{text-align:center;padding:32px 8px 12px}.quiz-result-score{font-weight:840;font-size:72px;line-height:1.1;letter-spacing:-.055em;color:#284c6c}.quiz-result-score small{font-size:27px;color:#81919a}.quiz-result h2{margin-top:8px}.quiz-stats{justify-content:center;margin:20px 0}.quiz-result-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.quiz-review-list{text-align:left;margin-top:35px;border-top:1px solid var(--line);padding-top:20px}.quiz-review-list h3{font-size:17px}.quiz-review-link{display:flex;width:100%;gap:15px;justify-content:space-between;align-items:center;text-align:left;border:1px solid var(--line);background:#fff;border-radius:10px;padding:11px 14px;margin:7px 0;color:var(--ink)}.quiz-review-link span:first-child{font-size:12px;font-weight:750;color:#9b5c44;min-width:90px}.quiz-review-link span:last-child{flex:1}.quiz-perfect{padding:15px;background:#eaf4ec;border-radius:12px;margin-top:23px}@media(max-width:540px){.quiz-dots{grid-template-columns:repeat(8,1fr)}.quiz-option{font-size:15px;padding:12px 10px}.quiz-result-score{font-size:55px}.quiz-result-score small{font-size:21px}.quiz-review-link{display:block}.quiz-review-link span{display:block}.quiz-review-link span:last-child{margin-top:4px}}

/* Written-answer lesson quizzes */
.quiz-filter{display:block;margin:18px 0 8px}.quiz-filter .card-label{display:block;margin-bottom:8px}.quiz-filter select{display:block;width:100%;padding:12px 13px;background:white;border:1px solid #c5d3dc;border-radius:10px;color:#233e52;font-size:14px}
.quiz-field textarea{display:block;width:100%;margin-top:8px;min-height:105px;resize:vertical;border:1px solid #bdcdd6;border-radius:12px;font-size:18px;padding:15px 16px;background:#fff;color:#233e52;line-height:1.7;font-family:inherit}
.quiz-field textarea:read-only{background:#f7f9f9}.quiz-self-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:17px}.quiz-self-actions .button{flex:1;min-width:130px}.button.quiz-flagged{background:#fff1e8;border-color:#cf9473;color:#8c5234}.button.quiet{background:white;border-color:#b5c9d3;color:#37546b}.quiz-reveal{margin-top:12px}.quiz-reveal .button{width:100%;padding:13px 16px}.quiz-context{overflow-x:auto;border:1px solid #d6e0e5;background:#fff;border-radius:12px;padding:12px;margin:16px 0}.quiz-context .context-table{margin-top:7px;width:100%;font-size:12px}.quiz-context th,.quiz-context td{padding:7px 9px;white-space:nowrap}.quiz-dot.seen{background:#e7eef5;color:#496c87}.quiz-feedback.is-right{background:#eff6fb;border-color:#bad5e8}.quiz-feedback.is-right .quiz-feedback-label{color:#315d7d}.quiz-feedback.is-right p{color:#536d80}.quiz-work .clock{display:block;max-width:235px;margin:12px auto 18px}.quiz-question{font-size:21px}.quiz-result .muted{max-width:650px;margin-left:auto;margin-right:auto}
@media(max-width:540px){.quiz-question{font-size:18px}.quiz-context{padding:8px}.quiz-context .context-table{font-size:11px}.quiz-field textarea{font-size:16px}.quiz-self-actions .button{min-width:110px}}

/* v1.5: long quiz navigation remains compact on phones */
.quiz-dots{max-height:190px;overflow-y:auto;overscroll-behavior:contain;padding:6px 3px;}


/* v2.0 - Kanji Foundations */
.kanji-feature{display:flex;align-items:center;gap:30px;margin:22px 0 13px;border:1px solid #ead5b3;border-radius:20px;background:linear-gradient(112deg,#fffaf2,#f4f7f4);padding:23px;box-shadow:var(--shadow)}
.kanji-feature-mark{display:grid;place-items:center;flex:0 0 130px;min-height:150px;background:#ece3d4;border-radius:15px;font-weight:800;font-size:47px;color:#87613c;letter-spacing:.04em}
.kanji-feature-content{flex:1;min-width:0}.kanji-feature h2{font-size:24px;line-height:1.2;margin:4px 0}.kanji-feature p{font-size:13px;color:var(--sub);margin:6px 0 11px}
.kanji-feature-stats{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:15px}.kanji-feature-stats span{background:#ffffffb8;border:1px solid #e9e0d1;border-radius:8px;font-size:12px;padding:5px 9px;color:#526777}.kanji-feature-stats strong{color:#28485e}
.kanji-feature .kanji-actions{max-width:670px}.kanji-h1{font-size:.8em;color:#98704b}.kanji-panel-body{margin-top:21px}
.kanji-tabs{flex-wrap:wrap}.kanji-tabs .button{flex:1;min-width:100px}.kanji-guide-intro{display:grid;grid-template-columns:minmax(180px,0.8fr) 1.2fr;gap:21px;align-items:center;margin-bottom:27px}
.kanji-guide-big{border-radius:15px;background:#f5f0e7;color:#845737;min-height:210px;display:grid;place-items:center;align-content:center;text-align:center;line-height:2;font-size:38px;font-weight:700;letter-spacing:.06em}.kanji-guide-big span{font-size:20px;letter-spacing:.03em}
.kanji-guide-intro h2{font-size:24px;margin:5px 0}.kanji-guide-intro p{color:var(--sub);font-size:14px}
.kanji-section-title{margin:26px 0 12px;font-size:19px}.kanji-table-wrap{overflow-x:auto}.kanji-table{margin:0}.kanji-table td,.kanji-table th{font-size:14px;padding:10px 13px}.kanji-table .kanji-glyph{font-size:29px;font-weight:750;color:#694f3d;min-width:80px}.kanji-rules{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.kanji-rule{border:1px solid var(--line);border-radius:12px;background:#fafbf9;padding:14px}.kanji-rule p{font-size:13px;margin:6px 0 0;color:#496072}
.kanji-example-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.kanji-example-grid>div{border:1px solid #e2e8e5;background:#f7faf7;padding:14px;border-radius:12px;display:grid;gap:4px}.kanji-example-grid strong{font-size:25px;white-space:nowrap}.kanji-example-grid span{font-size:12px;color:var(--sub)}
.kanji-readline{margin-top:10px;font-size:19px;letter-spacing:.02em;color:#36536c}.kanji-flash .flash-title{word-break:break-word}.kanji-flash .flash-title.jp{font-size:clamp(33px,5vw,56px)}
@media(max-width:700px){.kanji-feature{gap:15px;padding:15px;align-items:flex-start}.kanji-feature-mark{flex-basis:84px;min-height:100px;font-size:29px}.kanji-feature h2{font-size:20px}.kanji-feature-stats{gap:5px}.kanji-feature-stats span{font-size:10px;padding:4px 6px}.kanji-tabs .button{min-width:0;padding:10px 8px;font-size:12px}.kanji-guide-intro{grid-template-columns:1fr}.kanji-guide-big{min-height:120px;font-size:28px;line-height:1.6}.kanji-rules{grid-template-columns:1fr}.kanji-example-grid{grid-template-columns:1fr}.kanji-example-grid>div{padding:10px}.kanji-table td,.kanji-table th{padding:9px 7px;font-size:12px}}
@media(max-width:410px){.kanji-feature{display:block}.kanji-feature-mark{min-height:64px;font-size:30px;margin-bottom:13px}.kanji-feature .lesson-actions .button{min-width:46%;font-size:12px}}

.kanji-write-card{padding:18px;border:1px solid #e7dbc5;border-radius:15px;background:#fffdfa}
.kanji-write-controls{display:flex;gap:9px;flex-wrap:wrap;align-items:end;margin:12px 0}
.kanji-write-controls label{flex:1;min-width:160px}.kanji-write-controls select{display:block;width:100%;padding:9px;border:1px solid var(--line);border-radius:9px;color:var(--ink);background:white}
.kanji-write-board{display:grid;grid-template-columns:1fr 320px;gap:17px;align-items:center;max-width:620px;margin:auto}
.kanji-write-reference{display:grid;place-items:center;text-align:center;gap:7px}.kanji-write-reference strong{font-size:90px;line-height:1.35;font-weight:600}.kanji-write-reference span{font-size:14px;color:var(--sub)}
.kanji-canvas-wrap{width:320px;max-width:100%;border:2px solid #c4b59b;background:linear-gradient(90deg,transparent calc(50% - 0.5px),#d7ceba calc(50% - 0.5px),#d7ceba calc(50% + 0.5px),transparent calc(50% + 0.5px)),linear-gradient(transparent calc(50% - 0.5px),#d7ceba calc(50% - 0.5px),#d7ceba calc(50% + 0.5px),transparent calc(50% + 0.5px)),#fff;aspect-ratio:1/1;position:relative}
#kanji-canvas{display:block;width:100%;height:100%;touch-action:none;cursor:crosshair}
@media(max-width:700px){.kanji-write-board{grid-template-columns:1fr}.kanji-write-reference strong{font-size:62px}.kanji-canvas-wrap{margin:auto;width:min(320px,100%)}.kanji-write-controls .button{flex:1}}


/* Lesson 4, v2.1 */
.l4-jp{font-size:.55em;color:#75899f;display:inline-block}.l4-intro{padding:21px;background:linear-gradient(125deg,#f4f7fc,#fcf7ed);border:1px solid #dee6ed;border-radius:16px;margin-top:17px}.l4-intro h2{margin:0 0 7px;font-size:24px}.l4-intro p{color:#526777;font-size:14px}.l4-numbers{display:flex;flex-wrap:wrap;gap:7px;margin-top:14px}.l4-numbers span{padding:8px 11px;border-radius:9px;background:#fff;border:1px solid #e3e9ee;font-size:12px}.l4-numbers b{font-size:17px;color:#225c83;margin-right:4px}.l4-study-section{margin-top:26px}.l4-study-section>h2{font-size:23px;margin:0 0 11px}.l4-grammar-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.l4-grammar{background:#fbfcff;border:1px solid #e0e7ed;border-radius:13px;padding:16px}.l4-grammar h3{margin:4px 0 7px;color:#203e55;font-size:17px}.l4-grammar p{font-size:13px;color:#5a6e7c;margin:0 0 12px}.l4-example{background:#eef5fa;border-radius:10px;padding:11px 13px;font-size:19px;line-height:1.65;font-weight:700;overflow-wrap:anywhere}.l4-example small,.l4-example span{display:block;font-weight:400;font-size:12px;color:#566f83}.l4-example small{font-style:italic}.l4-past-short{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:13px}.l4-past-short>div{border-radius:11px;border:1px solid #e1e8eb;background:#fafcfb;padding:12px;display:grid;gap:8px}.l4-past-short strong{font-size:11px;color:#62798c}.l4-past-short b{font-size:19px}.l4-past-short em{font-size:11px;color:#6d7d8e}.l4-table-wrap{overflow-x:auto}.l4-table{width:100%;min-width:900px}.l4-table td,.l4-table th{font-size:12px;padding:8px}.l4-vocab{border:1px solid #e0e6ed;border-radius:11px;margin:10px 0;background:#fff;overflow:hidden}.l4-vocab summary{cursor:pointer;padding:12px 15px;font-weight:700;display:flex;justify-content:space-between;align-items:center;background:#f6f9fb}.l4-vocab summary span{font-weight:500;color:#67808c;font-size:12px}.l4-vocab-grid{padding:12px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.l4-word{background:#fbfcff;border:1px solid #eef0f2;padding:11px;border-radius:9px;display:grid;gap:3px}.l4-word b{font-size:21px}.l4-word span{font-size:12px;color:#31455d}.l4-word em{font-size:11px;color:#718595}.l4-reminders{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.l4-reminders>div{background:#f7faf8;border:1px solid #e2e9e4;padding:14px;border-radius:12px}.l4-reminders h3{font-size:15px;margin:0 0 7px}.l4-reminders p{font-size:12px;color:#566f83;margin:0}
@media(max-width:690px){.l4-grammar-grid{grid-template-columns:1fr}.l4-past-short{grid-template-columns:repeat(2,minmax(0,1fr))}.l4-vocab-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.l4-reminders{grid-template-columns:1fr}.l4-study-section>h2{font-size:20px}.l4-word b{font-size:19px}}
@media(max-width:390px){.l4-vocab-grid{grid-template-columns:1fr}.l4-past-short{grid-template-columns:1fr 1fr}.l4-past-short b{font-size:16px}}


/* Lesson 1–4 study-guide navigation and supporting reference layouts */
.guide-quicklinks{display:flex;gap:8px;flex-wrap:wrap;margin:17px 0 8px;border-bottom:1px solid var(--line);padding-bottom:15px}
.guide-quicklinks .button{flex:1;min-width:95px;font-size:13px}
.guide-quicklinks .button.guide-active{background:#e5eff7;border-color:#84adc5;color:#234a65}
.guide-reference-grid{display:grid;grid-template-columns:1fr;gap:14px}
.guide-reference{border:1px solid #dee6e9;border-radius:13px;padding:16px;background:#fafcfd}
.guide-reference h3{font-size:17px;margin:0 0 9px}
.guide-reference .context-table{margin:0}
.guide-ref-scroll{max-width:100%;overflow-x:auto}
.guide-ref-table{min-width:580px;font-size:13px;background:#fff;border-radius:9px}
.guide-ref-table th{background:#edf3f6;font-weight:750;color:#3a5261}
.guide-ref-table td,.guide-ref-table th{padding:10px 12px;white-space:normal;min-width:110px}
.guide-ref-table td[lang="ja"]{font-size:14px}
.guide-reference .muted{margin:10px 2px 0}
.guide-dialogue-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}
.guide-dialogue{background:#fafcfb;border:1px solid #dfe7e5;border-radius:13px;padding:16px}
.guide-dialogue h3{margin:0 0 14px;font-size:17px}
.guide-line{display:flex;gap:11px;margin:10px 0}
.guide-speaker{font-weight:750;background:#e6f2ef;border-radius:9px;padding:5px 8px;align-self:flex-start;font-size:12px}
.guide-line strong{display:block;font-size:17px;line-height:1.55}
.guide-line em,.guide-line small{display:block;color:#6e8390;font-size:12px}
.guide-line em{font-style:italic}
.guide-dialogue>p{margin:11px 0 0}
.guide-checklist{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.guide-checklist label{display:flex;align-items:center;gap:9px;padding:12px;border:1px solid #dce8e1;border-radius:11px;background:#f6faf7;font-size:13px}
.guide-checklist input{accent-color:#49796e;flex-shrink:0}
.guide-tips{font-size:13px;color:#4b6170;line-height:1.7;padding-left:21px}
.guide-tips li{margin-bottom:5px}
.guide-sources{margin-top:28px;color:#526a78;font-size:12px}
.guide-sources summary{cursor:pointer;font-weight:700}
.guide-sources ul{padding-left:20px}
@media(max-width:690px){.tabs{flex-wrap:wrap}.guide-dialogue-grid{grid-template-columns:1fr}.guide-checklist{grid-template-columns:1fr}.guide-quicklinks .button{min-width:0;padding:8px 7px}.guide-reference{padding:11px}.guide-ref-table{min-width:520px}}

/* GENKI Midterm Practice v2.3 */
.midterm-feature{display:flex;gap:22px;align-items:center;background:linear-gradient(115deg,#edf4f7,#fff7e9);border:1px solid #d7e5ed;border-radius:18px;padding:22px;margin:20px 0 24px}
.midterm-mark{flex:0 0 130px;min-height:143px;background:#24485b;color:white;border-radius:15px;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.3;font-size:32px;font-weight:750;letter-spacing:.05em}
.midterm-mark span{font-size:20px;letter-spacing:.14em;color:#d8e7ea}
.midterm-feature-body{min-width:0;flex:1}.midterm-feature h2{font-size:24px;margin:4px 0 8px;color:#1b3449}.midterm-feature p{font-size:14px;margin:0 0 10px;color:#51687a;line-height:1.55}.midterm-pills{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0 14px}.midterm-pills span,.midterm-breakdown span{border-radius:22px;padding:5px 9px;background:#fff;border:1px solid #d8e5ea;font-size:11px;color:#466173;font-weight:600}.midterm-breakdown{display:flex;flex-wrap:wrap;gap:6px;margin:2px 0 18px}.midterm-breakdown span{border-radius:8px;font-size:10px;padding:6px}
@media(max-width:680px){.midterm-feature{display:block;padding:15px}.midterm-mark{min-height:74px;font-size:24px;margin-bottom:14px;flex-direction:row;gap:12px}.midterm-mark span{font-size:16px}.midterm-feature h2{font-size:20px}.midterm-feature .lesson-actions .button{width:100%}.midterm-breakdown{max-height:160px;overflow:auto}.topright .button{font-size:11px;padding:8px}}
@media(max-width:680px){.topright>.pill{display:none}}
/* Midterm Part 2 — lesson-organized revision */
.midterm2-feature .midterm-mark{background:linear-gradient(150deg,#f2cc94,#d89f69);color:#3e3140}
.midterm2-feature .midterm-mark span{font-size:14px;letter-spacing:.04em}
.m2-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:22px 0}
.m2-lesson{border:1px solid var(--line, #dbe2e7);border-radius:18px;padding:24px;background:var(--card, #fff);box-shadow:0 8px 26px rgba(32,50,65,.06)}
.m2-lesson h2{margin:7px 0 2px;font-size:1.43rem}
.m2-jp{font-size:1rem;color:var(--muted, #73808a);margin-bottom:20px}
.m2-sections{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}
.m2-sections>div{border:1px solid var(--line, #dbe2e7);padding:13px;border-radius:12px;display:flex;flex-direction:column;gap:8px;min-width:0}
.m2-sections strong{font-size:.96rem}
.m2-sections span,.m2-sections small{font-size:.78rem;color:var(--muted,#7b8590)}
.m2-sections .button{white-space:normal;min-height:42px;font-size:.85rem}
.m2-mini-progress{height:7px;border-radius:12px;background:#e7edf1;overflow:hidden}
.m2-mini-progress>div{height:100%;background:#4b9a7d;border-radius:12px}
.m2-bottom-links,.m2-mode-nav{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0}
.m2-mode-nav .button{max-width:100%;white-space:normal}
.m2-vocab-question{font-size:clamp(1.23rem,2.8vw,1.7rem)}
@media(max-width:800px){.m2-grid{grid-template-columns:1fr}.m2-lesson{padding:18px}}
@media(max-width:450px){.m2-sections{grid-template-columns:1fr}.m2-mode-nav .button{width:100%}}
@media(max-width:720px){
 .topbar{height:auto;min-height:66px;padding:12px 0;flex-wrap:wrap;align-items:center}
 .topright{flex-wrap:wrap;justify-content:flex-start;width:100%;gap:7px}
 .topright .button{flex:0 1 auto}
}

/* v2.5: opt-in textbook rule in every lesson/grammar practice interface. */
.book-reference{margin:12px 0 14px;border:1px solid #c7d3dc;border-radius:11px;background:#f7fafc;color:#21374a;}
.book-reference summary{padding:11px 14px;cursor:pointer;font-size:0.85rem;font-weight:650;line-height:1.45;}
.book-reference summary:hover{background:#eff5f8;border-radius:11px;}
.book-reference-detail{padding:0 14px 12px;font-size:.84rem;line-height:1.5;}
.book-reference-detail .jp-mini{font-weight:650;font-size:1rem;margin:4px 0 8px;white-space:normal;}
.book-reference-detail p{margin:0;color:#4b6172;}
@media(max-width:600px){.book-reference summary{font-size:.79rem;padding:10px;}.book-reference-detail{padding:0 10px 10px}}

/* Indonesian meaning and brief explanation shown only after Reveal Answer. */
.indonesian-note { margin-top:16px; padding:14px 16px; border:1px solid var(--border, #d9e0e8); border-radius:12px; background:rgba(77,111,145,.06); text-align:left; font-size:.94rem; line-height:1.55; }
.indonesian-note-title { font-weight:800; letter-spacing:.005em; margin-bottom:10px; color:var(--text,#24344b); }
.indonesian-meaning { margin:0 0 8px; color:var(--text,#24344b); }
.indonesian-explain { color:var(--muted,#52677d); }
.indonesian-note b { font-weight:700; }
.kanji-flash .indonesian-note,.flash-area .indonesian-note { width:100%; max-width:720px; margin-left:auto; margin-right:auto; }
@media(max-width:640px){.indonesian-note{font-size:.9rem;padding:12px;margin-top:12px}}

/* v2.7: clear source distinction for new Lesson 4 kanji worksheet */
.l4-kanji-feature{margin:27px 0 12px;padding:20px;border:1px solid #b9c9d4;border-radius:16px;background:linear-gradient(145deg,#f2f7fa,#eaf3f5)}
.l4-kanji-feature h3{margin:7px 0;font-size:1.25rem;color:#17304a}.l4-kanji-feature p{font-size:.94rem;line-height:1.6;margin:0 0 13px;color:#314453}
.l4-kanji-feature .lesson-actions{display:flex;flex-wrap:wrap;gap:8px}
@media(max-width:540px){.l4-kanji-feature{padding:15px}.l4-kanji-feature .lesson-actions .button{flex:1 1 100%}}
