@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;600;700;800;900&family=Barlow+Condensed:wght@500;600;700;800&display=swap');
:root{--ink:#14241e;--muted:#64706a;--paper:#f4f6f2;--white:#fff;--line:#d8dfd7;--lime:#d7f36b;--green:#20603e;--red:#9e343a;--sans:'Noto Sans JP',sans-serif;--display:'Barlow Condensed','Arial Narrow',sans-serif;font-family:var(--sans);color:var(--ink);background:var(--paper);font-synthesis:none;font-size:1.0rem;line-height:1.7}
*{box-sizing:border-box}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}a{color:inherit}button:disabled{cursor:default}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #46871b;outline-offset:5px}#app:focus{outline:none}.site-header{max-width:1320px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:26px 48px;border-bottom:1px solid var(--line)}.wordmark{display:flex;align-items:center;gap:11px;text-decoration:none;font-size:1.1875rem;font-weight:900;letter-spacing:.06em;white-space:nowrap}.brand-mark{background:var(--ink);color:var(--lime);width:32px;height:32px;display:grid;place-items:center;font-family:var(--display);font-size:1.6875rem;line-height:1}.brand-divider{color:#a3afa5;font-weight:400}.brand-sub{font-size:0.875rem;font-weight:600;letter-spacing:.12em}.edition{font-family:var(--display);font-size:1.25rem;letter-spacing:.06em}main{max-width:1224px;min-height:calc(100svh - 196px);margin:auto;padding:44px 0 56px}.site-footer{max-width:1224px;margin:auto;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:22px 0;border-top:1px solid var(--line);font-size:0.75rem;color:var(--muted)}.site-footer span:first-child{font-weight:800;letter-spacing:.09em}.loading{padding:50px}.eyebrow{font-family:var(--display);font-size:1.0rem;letter-spacing:.15em;font-weight:700;margin:0 0 18px}.pill{display:inline-flex;align-items:center;font-size:0.75rem;font-weight:700;line-height:1.4;border:1px solid currentColor;padding:6px 10px;border-radius:3px;letter-spacing:.04em}.start-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:0;border:1px solid var(--line);background:white}.identity{background:var(--ink);color:#fff;padding:44px 48px 38px;position:relative;overflow:hidden;display:flex;flex-direction:column;min-height:520px}.identity .eyebrow{color:var(--lime)}.identity h1{font-family:var(--display);font-size:clamp(82px,9vw,126px);line-height:.88;letter-spacing:-.01em;margin:20px 0 28px;font-weight:800}.identity h1 span{display:block;color:var(--lime)}.identity .jp-title{font-size:1.25rem;font-weight:700;margin:0;letter-spacing:.04em}.identity .intro{color:#c7d4ca;line-height:1.9;font-size:0.9375rem;margin:15px 0 36px;max-width:24em}.edition-strip{display:flex;gap:14px;align-items:center;margin-top:auto;padding-top:28px;border-top:1px solid #46574c;font-family:var(--display);font-size:1.0rem;letter-spacing:.09em}.edition-strip .pill{color:var(--lime);font-family:var(--sans);font-size:0.75rem}.start-panel{padding:40px 44px;display:flex;flex-direction:column;justify-content:center}.section-no{font-family:var(--display);font-size:0.875rem;letter-spacing:.14em;color:var(--muted);margin:0 0 8px}.start-panel h2{font-size:1.625rem;margin:0 0 12px;line-height:1.6;letter-spacing:.02em}.lead{font-size:0.9375rem;color:var(--muted);margin:0 0 28px;line-height:1.9}.stats{display:grid;grid-template-columns:repeat(3,1fr);border-block:1px solid var(--line);padding:19px 0;margin-bottom:28px}.stat{padding:0 15px;border-right:1px solid var(--line)}.stat:first-child{padding-left:0}.stat:last-child{border:0}.stat-value{font-family:var(--display);font-size:2.75rem;font-weight:600;line-height:1.1}.stat-label{font-size:0.8125rem;color:var(--muted);display:block;margin-top:4px}.primary{border:0;background:var(--lime);color:var(--ink);font-weight:800;padding:18px 24px;border-radius:4px;font-size:1.0625rem;min-height:58px;transition:background .15s,transform .15s}.primary:hover{background:#c5e751}.primary:active{transform:translateY(1px)}.start-panel .primary{width:100%}.micro{font-size:0.8125rem;color:var(--muted);text-align:center;margin:12px 0 0}.contents-line{margin-top:25px;padding-top:20px;border-top:1px solid var(--line);font-size:0.8125rem;line-height:1.9;color:var(--muted)}.contents-line strong{color:var(--ink);font-weight:600}.source-panel{margin-top:24px;font-size:0.8125rem;color:var(--muted)}.source-panel summary{cursor:pointer;font-weight:500;padding:8px 0;color:var(--ink)}.source-body{padding:8px 0 0;max-width:920px}.source-body p{margin:0 0 9px}.source-body ol{padding-left:1.5em;margin:8px 0}.play-layout{display:grid;grid-template-columns:210px minmax(0,1fr);gap:38px;align-items:start}.side-title{font-family:var(--display);font-size:2.4375rem;line-height:1.05;letter-spacing:.015em;font-weight:700;margin:0 0 26px}.side-title span{display:block}.side-label{font-size:0.75rem;letter-spacing:.14em;color:var(--muted);font-weight:600;margin:0 0 5px}.score-board{background:var(--ink);color:#fff;padding:22px 24px;border-radius:4px}.score-board .side-label{color:#b8cbbd}.score-value{font-family:var(--display);font-size:3.8125rem;color:var(--lime);line-height:1}.score-total{font-family:var(--display);font-size:1.5rem;color:#a8b6aa}.question-dots{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;margin:22px 0}.q-dot{border:1px solid var(--line);display:grid;place-items:center;aspect-ratio:1;font-family:var(--display);font-size:1.0625rem;border-radius:2px;background:#e7ebe4;color:#657065}.q-dot.current{border:2px solid var(--ink);color:var(--ink);font-weight:800;background:white}.q-dot.correct{background:var(--green);color:white;border-color:var(--green)}.q-dot.wrong{background:#f4dfe0;border-color:#dcaaad;color:var(--red)}.side-note{font-size:0.8125rem;color:var(--muted);line-height:1.9}.quiz-card{background:white;border:1px solid var(--line);border-radius:4px;overflow:hidden}.progress-track{height:5px;background:#e8eee4}.progress-fill{height:100%;background:var(--green);transition:width .2s}.card-body{padding:32px 38px 34px}.question-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:0.8125rem;color:var(--muted)}.question-meta .version{color:var(--green);background:#edf6e6;padding:4px 9px;font-weight:600;border-radius:3px}.question-number{margin-right:auto;font-family:var(--display);font-size:1.25rem;color:var(--ink);font-weight:600;letter-spacing:.06em}.question-number small{font-size:0.9375rem;font-weight:500;color:var(--muted)}.question-title{font-size:1.5rem;line-height:1.8;letter-spacing:.015em;margin:24px 0 25px;font-weight:700;overflow-wrap:anywhere}.answers{display:grid;grid-template-columns:1fr;gap:12px}.answer{display:flex;align-items:center;gap:17px;border:1px solid #cbd5c9;background:white;padding:16px 18px;text-align:left;border-radius:4px;color:var(--ink);min-height:64px;font-size:1.0rem;line-height:1.7;width:100%;transition:border-color .15s,background .15s}.answer:not(:disabled):hover{background:#f4f9ec;border-color:#5f814c}.answer .letter{flex:0 0 31px;width:31px;height:31px;border:1px solid var(--line);border-radius:3px;display:grid;place-items:center;font-family:var(--display);font-size:1.25rem;line-height:1;font-weight:600}.answer .answer-text{flex:1;min-width:0;overflow-wrap:anywhere}.answer.correct{background:#edf7ec;border:2px solid var(--green);padding:15px 17px}.answer.correct .letter{background:var(--green);color:white;border-color:var(--green)}.answer.wrong{background:#fcf0ef;border:2px solid var(--red);padding:15px 17px}.answer.wrong .letter{background:var(--red);color:white;border-color:var(--red)}.answer.dim{color:#777e78;background:#fafbf8}.answer-status{flex-shrink:0;font-size:0.75rem;font-weight:700;color:var(--green)}.wrong .answer-status{color:var(--red)}.answer-hint{font-size:0.8125rem;color:var(--muted);margin:18px 0 0}.feedback{border-top:1px solid var(--line);padding:25px 38px 30px;background:#f8faf5}.feedback-head{display:flex;align-items:center;gap:10px;font-size:1.25rem;font-weight:800;color:var(--green);margin:0 0 10px}.feedback-head.incorrect{color:var(--red)}.feedback p{font-size:0.9375rem;line-height:1.95;margin:8px 0}.feedback .source-ref{font-size:0.75rem;color:var(--muted);line-height:1.8;margin:13px 0 20px}.feedback .primary{width:100%;padding:15px;font-size:1.0rem}.result-wrap{max-width:880px;margin:auto}.result-top{display:grid;grid-template-columns:230px 1fr;background:var(--ink);color:white;border-radius:4px;overflow:hidden}.result-score{background:var(--lime);color:var(--ink);text-align:center;display:flex;flex-direction:column;justify-content:center;padding:35px 20px}.result-score .eyebrow{margin-bottom:10px;font-size:0.875rem}.big-score{font-family:var(--display);font-size:7.1875rem;font-weight:600;line-height:.9;letter-spacing:-.025em}.big-score small{font-size:1.4375rem;letter-spacing:0}.result-count{font-size:0.875rem;margin:18px 0 0}.result-title{padding:36px 35px;display:flex;flex-direction:column;justify-content:center}.result-title .eyebrow{color:var(--lime);font-size:0.875rem;margin-bottom:10px}.result-title h1{font-size:1.75rem;margin:0 0 13px;line-height:1.6}.result-title p{font-size:0.9375rem;color:#d3e1d6;margin:0;line-height:1.9}.result-actions{display:flex;gap:14px;margin:26px 0 40px}.result-actions>*{flex:1}.secondary{border:1px solid var(--line);background:white;padding:17px 22px;font-size:0.9375rem;font-weight:600;min-height:58px;border-radius:4px;color:var(--ink)}.secondary:hover{background:#eaf0e4}.review-title{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:16px}.review-title h2{font-size:1.25rem;margin:0}.review-title span{font-size:0.8125rem;color:var(--muted)}.review-item{border:1px solid var(--line);background:white;border-radius:4px;margin-bottom:10px}.review-item summary{padding:17px 20px;cursor:pointer;display:flex;align-items:center;gap:13px;list-style:none}.review-item summary::-webkit-details-marker{display:none}.review-icon{color:var(--green);font-weight:800;flex-shrink:0}.review-icon.missed{color:var(--red)}.review-question{font-size:0.875rem;font-weight:500;flex:1;line-height:1.8}.review-plus{font-size:1.375rem;color:var(--muted)}.review-item[open] .review-plus{transform:rotate(45deg)}.review-content{padding:0 20px 20px 52px;font-size:0.875rem;line-height:1.9}.review-content p{margin:6px 0}.review-content .source-ref{font-size:0.75rem;color:var(--muted)}.your-answer{color:var(--red)}.correct-answer{color:var(--green);font-weight:600}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(min-width:1450px){main{padding-top:65px}.identity{min-height:565px}.start-panel{padding-inline:55px}}
@media(max-width:1320px){main,.site-footer{margin-inline:40px}.site-header{padding-inline:40px}}
@media(max-width:900px){main{margin-inline:26px;padding-top:30px}.site-header{padding:20px 26px}.site-footer{margin-inline:26px}.start-panel{padding:30px}.identity{padding:35px 30px;min-height:500px}.identity h1{font-size:5.875rem}.identity .jp-title{font-size:1.0625rem}.start-panel h2{font-size:1.4375rem}.play-layout{grid-template-columns:150px minmax(0,1fr);gap:23px}.card-body{padding:27px}.feedback{padding:22px 27px}.question-title{font-size:1.3125rem}.side-title{font-size:2.0625rem}.score-board{padding:20px 18px}}
@media(max-width:680px){.site-header{padding:17px 20px}.wordmark{font-size:1.0625rem;gap:8px}.brand-sub{font-size:0.75rem;letter-spacing:.08em}.brand-mark{width:28px;height:28px;font-size:1.4375rem}.edition{font-size:1.0rem}main{margin-inline:16px;padding:24px 0 34px;min-height:calc(100svh - 178px)}.start-grid{grid-template-columns:1fr}.identity{min-height:0;padding:26px 27px 25px}.identity .eyebrow{font-size:0.8125rem;margin:0 0 12px}.identity h1{display:flex;gap:.2em;font-size:4.875rem;margin:0 0 17px;line-height:.95}.identity h1 span{display:inline}.identity .jp-title{font-size:1.0625rem}.identity .intro{font-size:0.875rem;margin:9px 0 0;max-width:none}.edition-strip{display:none}.start-panel{padding:25px 26px 27px}.start-panel h2{font-size:1.375rem}.lead{font-size:0.875rem;margin-bottom:18px}.section-no{display:none}.stats{padding:14px 0;margin-bottom:21px}.stat-value{font-size:2.3125rem}.stat-label{font-size:0.75rem}.contents-line{margin-top:18px;padding-top:15px}.primary{font-size:1.0rem;padding:16px 20px}.source-panel{margin-top:18px;font-size:0.75rem}.source-panel summary{font-size:0.8125rem}.site-footer{padding:20px 0 calc(20px + env(safe-area-inset-bottom));margin-inline:20px;gap:8px;font-size:0.75rem}.site-footer span:nth-child(2){display:none}.play-layout{display:block}.play-sidebar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;margin:0 3px 19px}.side-title{font-size:1.5rem;margin:0}.side-title span{display:inline}.score-board{background:none;padding:0;color:var(--ink);display:flex;align-items:center;gap:9px}.score-board .side-label{color:var(--muted);font-size:0.6875rem;margin:0}.score-value{color:var(--ink);font-size:2.0625rem}.score-total{font-size:1.0625rem;color:var(--muted)}.question-dots,.side-note{display:none}.card-body{padding:22px 20px}.question-meta{gap:7px;font-size:0.75rem}.question-number{font-size:1.125rem}.question-title{font-size:1.1875rem;line-height:1.9;margin:19px 0 23px}.answer{font-size:0.9375rem;gap:12px;padding:14px 12px;min-height:65px}.answer.correct,.answer.wrong{padding:13px 11px}.answer .letter{flex-basis:28px;width:28px;height:28px;font-size:1.125rem}.answer-status{font-size:0.6875rem}.answers{gap:10px}.answer-hint{font-size:0.75rem}.feedback{padding:23px 20px}.feedback p{font-size:0.875rem}.feedback-head{font-size:1.1875rem}.result-top{grid-template-columns:1fr}.result-score{padding:25px 20px}.big-score{font-size:5.6875rem}.result-score .eyebrow{margin:0 0 12px}.result-count{margin-top:12px}.result-title{padding:27px;text-align:center}.result-title h1{font-size:1.5rem}.result-title p{font-size:0.875rem}.result-actions{gap:10px;margin:20px 0 30px}.result-actions .primary,.result-actions .secondary{font-size:0.875rem;padding:15px 12px}.review-title h2{font-size:1.1875rem}.review-title span{font-size:0.75rem}.review-item summary{padding:16px;gap:10px}.review-question{font-size:0.875rem}.review-content{padding:0 16px 18px;font-size:0.875rem}.review-plus{font-size:1.25rem}}
@media(max-width:360px){.edition{display:none}.identity h1{font-size:4.125rem}.identity .jp-title{font-size:0.9375rem}.start-panel{padding:23px 20px}.question-meta .category{display:none}.answer-status{display:none}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* Let longer labels and enlarged text reflow without clipping. */
.site-header{flex-wrap:wrap;gap:12px}.wordmark{flex-wrap:wrap;white-space:normal}.identity h1{overflow-wrap:anywhere}.question-meta>*{min-width:0}.brand-sub{white-space:nowrap}@media(max-width:680px){.identity h1{flex-wrap:wrap}}
