:root{--paper:#f7f8f5;--surface:#fff;--ink:#172b35;--muted:#53666d;--line:#dbe4df;--teal:#006c62;--tint:#eaf5ef;--amber:#aa4c0c;--warm:#fff3df;--navy:#142e38;--radius:18px;font-family:Inter,"Noto Sans JP",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;line-height:1.9;font-size:16px}a{color:var(--teal);text-underline-offset:4px}a:hover{text-decoration-thickness:2px}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:default}button:focus-visible,input:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #bd600a;outline-offset:4px}::selection{background:#cee8db}h1,h2,h3,h4,p{margin-top:0}h1,h2,h3,h4{line-height:1.5;letter-spacing:-.025em}h1{font-size:clamp(1.85rem,3.6vw,3rem);margin-bottom:18px}h2{font-size:1.6rem;margin-bottom:20px}h3{font-size:1.17rem;margin:28px 0 12px}p{margin-bottom:18px}ul,ol{padding-left:1.6em}li+li{margin-top:7px}strong{font-weight:750}small,.small{font-size:.84rem}.muted{color:var(--muted)}.skip{position:fixed;left:20px;top:-100px;z-index:100;background:white;padding:12px}.skip:focus{top:12px}.layout{display:grid;grid-template-columns:250px minmax(0,1fr);min-height:100vh}.sidebar{padding:30px 22px;border-right:1px solid var(--line);background:#f0f4ee;position:sticky;top:0;height:100vh;overflow-y:auto}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink);font-weight:800;line-height:1.45;font-size:1.06rem}.brand-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:var(--teal);color:white;font-size:15px;flex-shrink:0}.brand small{font-weight:500;letter-spacing:.12em;font-size:.65rem;color:var(--muted)}.sidebar summary{color:var(--muted);font-size:.77rem;letter-spacing:.12em;cursor:pointer;margin:34px 0 14px}.sidebar nav{display:flex;flex-direction:column;gap:5px}.sidebar nav a{padding:9px 11px;display:flex;gap:10px;text-decoration:none;color:#3e555c;border-radius:9px;font-size:.86rem;line-height:1.6}.sidebar nav a:hover{background:#e3ebe2}.sidebar nav a[aria-current=page]{background:var(--teal);color:white;font-weight:700}.nav-num{opacity:.7;font-variant-numeric:tabular-nums}.sidebar-note{margin-top:30px;padding-top:18px;border-top:1px solid var(--line);font-size:.74rem;color:var(--muted)}.progress-label{display:flex;justify-content:space-between;gap:8px;font-size:.78rem;margin:22px 0 7px}progress{width:100%;height:7px;border:none;border-radius:20px;display:block;accent-color:var(--teal)}progress::-webkit-progress-bar{background:#d5e1d7;border-radius:20px}progress::-webkit-progress-value{background:var(--teal);border-radius:20px}.main-wrap{min-width:0}.topbar{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:19px 42px;border-bottom:1px solid var(--line);font-size:.8rem;color:var(--muted);background:#ffffffb0}.topbar a{color:var(--muted)}.top-actions{display:flex;gap:20px;align-items:center}.text-button{border:0;background:none;color:var(--muted);padding:0;font-size:.8rem;text-decoration:underline;text-underline-offset:4px}.container{max-width:1100px;margin:0 auto;padding:45px 46px 60px}.eyebrow{font-size:.74rem;letter-spacing:.14em;font-weight:750;color:var(--teal);margin-bottom:14px}.lead{font-size:1.06rem;line-height:2;color:var(--muted);max-width:760px}.tags{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0}.tag{font-size:.72rem;font-weight:650;display:inline-flex;padding:4px 11px;border:1px solid var(--line);background:var(--surface);border-radius:100px;color:#3e555c}.hero{background:var(--navy);color:white;padding:40px;border-radius:24px;display:grid;grid-template-columns:1.13fr 1fr;gap:24px;align-items:center;position:relative;overflow:hidden}.hero h1{font-size:clamp(2rem,3.5vw,3.1rem);margin-bottom:18px}.hero .eyebrow{color:#9ed9bd}.hero p{color:#d6e4e4}.hero .button{background:#bde7b7;color:#173e31;border:0}.hero .hero-map{background:#203d47;padding:16px;border:1px solid #4f6970;border-radius:16px}.hero-map svg{width:100%;height:auto;display:block}.hero-map p{font-size:.73rem;margin:8px 0 0;text-align:center}.button{display:inline-flex;justify-content:center;align-items:center;gap:10px;padding:10px 20px;border-radius:10px;background:var(--teal);color:white;text-decoration:none;font-size:.88rem;font-weight:700;border:1px solid var(--teal);line-height:1.7}.button:hover{filter:brightness(.93)}.button.secondary{background:white;color:var(--teal)}.button[aria-pressed=true]{background:var(--tint);color:var(--teal)}.section{margin-top:44px;padding-top:8px}.section+.section{border-top:1px solid var(--line);padding-top:36px}.section-heading{display:flex;gap:20px;align-items:center;justify-content:space-between}.section-heading h2{margin-bottom:12px}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.card{border:1px solid var(--line);border-radius:var(--radius);padding:25px;background:white;min-width:0}.card h3{margin:12px 0 10px;font-size:1.15rem}.card p{font-size:.9rem;color:var(--muted);margin-bottom:18px}.card a.stretched{font-size:.85rem;font-weight:750}.card .card-number{color:var(--teal);font-size:.72rem;font-weight:750;letter-spacing:.1em}.card .tags{margin:8px 0}.card.done{border-color:#70a28c}.card.done .card-number:after{content:" · 学習済み"}.callout{border-radius:14px;background:var(--tint);padding:23px 25px;margin:25px 0;border-left:4px solid var(--teal)}.callout p:last-child,.callout ul:last-child{margin-bottom:0}.callout.warm{background:var(--warm);border-color:#c47822}.callout .label{display:block;font-size:.78rem;font-weight:800;color:var(--teal);margin-bottom:8px;letter-spacing:.05em}.callout.warm .label{color:var(--amber)}.toc{display:flex;flex-wrap:wrap;gap:8px;margin:25px 0 32px}.toc a{font-size:.78rem;background:white;border:1px solid var(--line);padding:5px 12px;border-radius:8px;text-decoration:none}.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:14px;background:white;margin:20px 0}table{border-collapse:collapse;width:100%;font-size:.88rem;text-align:left;line-height:1.8}caption{text-align:left;padding:14px 18px;font-size:.8rem;color:var(--muted)}th,td{padding:14px 17px;border-bottom:1px solid var(--line);vertical-align:top;min-width:110px}thead{background:#ecf2ed}th{font-weight:750}tr:last-child td{border-bottom:0}td:first-child{font-weight:650}td a{white-space:normal}.weight{display:flex;align-items:center;gap:10px}.weight i{display:block;height:5px;width:calc(var(--n)*2px);max-width:90px;background:var(--teal);border-radius:10px}.diagram{margin:28px 0;padding:24px;background:white;border:1px solid var(--line);border-radius:var(--radius)}.diagram-scroll{overflow-x:auto}.diagram svg{display:block;width:100%;min-width:560px;height:auto;font-family:inherit}.diagram figcaption{color:var(--muted);font-size:.8rem;margin-top:14px;line-height:1.8}.diagram svg .node{fill:#edf5ef;stroke:#9ab5a7;stroke-width:1.5}.diagram svg .accent{fill:#fff0da;stroke:#d5a36a}.diagram svg .dark{fill:#174d47;stroke:#174d47}.diagram svg .txt{fill:#173a36;font-size:17px;font-weight:700;text-anchor:middle}.diagram svg .sub{fill:#425e5b;font-size:12px;text-anchor:middle}.diagram svg .white{fill:white}.diagram svg .edge{fill:none;stroke:#567c70;stroke-width:2;marker-end:url(#arrow)}.diagram svg .dash{stroke-dasharray:5 5}.diagram svg .edge-label{fill:#4a615a;font-size:12px;text-anchor:middle}.code-wrap{position:relative;margin:22px 0}.code-label{font-size:.73rem;letter-spacing:.06em;color:#c2d9d2;background:#28434b;padding:9px 18px;border-radius:12px 12px 0 0}.code-wrap pre{margin:0;border-radius:0 0 12px 12px}pre{background:#172e37;color:#e1f1ed;padding:22px;overflow-x:auto;font-size:.81rem;line-height:1.85;border-radius:12px;tab-size:2}code{font-family:"SFMono-Regular",Consolas,"Liberation Mono",monospace;font-size:.9em;overflow-wrap:anywhere}p code,li code,td code{background:#eaf0ea;padding:2px 5px;border-radius:4px;color:#205c4e}pre code{font-size:inherit;overflow-wrap:normal}.copy{position:absolute;right:10px;top:5px;border:1px solid #77938c;color:white;background:#28434b;border-radius:6px;padding:3px 9px;font-size:.72rem}.steps{counter-reset:step;list-style:none;padding:0}.steps>li{counter-increment:step;position:relative;padding:0 0 24px 48px}.steps>li:before{content:counter(step);position:absolute;left:0;top:2px;width:30px;height:30px;display:grid;place-items:center;background:var(--teal);color:white;border-radius:50%;font-size:.8rem;font-weight:750}.steps p{margin:7px 0 0;color:var(--muted);font-size:.9rem}.quiz{border:1px solid var(--line);border-radius:var(--radius);padding:25px;background:white;margin:22px 0}.quiz fieldset{padding:0;border:0;min-width:0;margin:0}.quiz legend{font-weight:750;font-size:1rem;margin-bottom:18px;width:100%}.q-number{color:var(--teal);font-size:.75rem;letter-spacing:.06em;display:block;margin-bottom:8px}.quiz label{display:flex;align-items:flex-start;gap:12px;padding:10px 14px;margin:8px 0;border:1px solid var(--line);border-radius:9px;font-size:.9rem;cursor:pointer}.quiz label:hover{background:#f5f9f4}.quiz input{accent-color:var(--teal);flex-shrink:0;margin-top:7px}.quiz .button{margin:12px 0 0;font-size:.8rem}.feedback{font-size:.9rem;font-weight:750;margin:12px 0}.feedback:empty{display:none}.feedback.correct{color:#006953}.feedback.incorrect{color:#a53d14}.quiz details{border-top:1px solid var(--line);padding-top:14px;margin-top:18px;font-size:.9rem}.quiz summary{color:var(--teal);cursor:pointer;font-size:.84rem;font-weight:700}.quiz details p{margin:14px 0 0}.quiz details a{font-size:.82rem}.quiz[data-result=correct]{border-color:#528e77}.quiz[data-result=incorrect]{border-color:#ce9167}.exercise{padding:23px 25px;border:1px dashed #7c9e8d;border-radius:14px;margin:25px 0}.exercise h3{margin-top:0}.exercise summary{font-size:.88rem;color:var(--teal);cursor:pointer}.exercise details p{margin-top:12px}.sources{font-size:.84rem}.sources li{margin:10px 0}.checklist{list-style:none;padding:0}.checklist li{display:flex;gap:12px;border-bottom:1px solid var(--line);padding:12px 0}.checklist label{display:flex;gap:12px;align-items:flex-start;cursor:pointer}.checklist input{margin-top:9px;accent-color:var(--teal)}.chapter-end{margin:38px 0;padding:24px;background:var(--tint);border-radius:var(--radius);display:flex;align-items:center;justify-content:space-between;gap:20px}.chapter-end p{font-size:.85rem;margin:0}.pager{display:grid;grid-template-columns:1fr 1fr;gap:18px;padding-top:25px;border-top:1px solid var(--line);margin-top:35px}.pager a{border:1px solid var(--line);padding:19px 22px;border-radius:14px;background:white;text-decoration:none;font-size:.9rem;font-weight:700}.pager a:last-child{text-align:right}.pager small{display:block;color:var(--muted);font-weight:500;margin-bottom:4px}.footer{margin-top:40px;font-size:.73rem;color:var(--muted);display:flex;justify-content:space-between;gap:16px}.search{padding:14px 17px;border:1px solid #9bb2a4;border-radius:10px;width:100%;background:white;color:var(--ink);font-size:.95rem}.search-status{font-size:.8rem;color:var(--muted);min-height:24px;margin:8px 0 20px}.search-label{display:block;font-size:.82rem;font-weight:700;margin:18px 0 8px}.review-score{display:flex;gap:16px;align-items:center;flex-wrap:wrap;padding:20px;background:var(--tint);border-radius:14px}.review-score p{margin:0;font-weight:700}.glossary dt{font-weight:750;margin-top:17px}.glossary dd{margin:6px 0 0;color:var(--muted);font-size:.9rem}.noscript{padding:16px;background:var(--warm);font-size:.86rem}.stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:24px 0}.stat{border:1px solid var(--line);padding:18px;border-radius:14px;background:white}.stat b{font-size:1.5rem;display:block;color:var(--teal)}.stat span{font-size:.78rem;color:var(--muted)}[hidden]{display:none!important}
@media(min-width:1550px){.container{padding-top:55px}.layout{grid-template-columns:270px minmax(0,1fr)}}
@media(max-width:1100px){.container{padding:32px 28px 45px}.topbar{padding:16px 28px}.hero{padding:28px;grid-template-columns:1fr}.hero .hero-map{max-width:530px}.grid.three{grid-template-columns:1fr}.hero h1 br{display:none}}
@media(max-width:760px){html{scroll-padding-top:16px}.layout{display:block}.sidebar{position:static;height:auto;padding:19px 20px;border-right:0;border-bottom:1px solid var(--line)}.brand{font-size:1rem}.brand-icon{width:36px;height:36px}.sidebar summary{margin:16px 0 8px;letter-spacing:.05em}.sidebar nav{display:grid;grid-template-columns:1fr 1fr;gap:4px}.sidebar nav a{padding:7px;font-size:.76rem}.sidebar .progress-label{margin-top:16px}.sidebar-note{display:none}.topbar{padding:13px 20px;font-size:.7rem}.top-actions{gap:13px}.container{padding:27px 20px 36px}.hero{padding:26px 22px;border-radius:18px}.hero h1{font-size:2rem}.hero-map{margin-top:5px}.grid{grid-template-columns:1fr}.stat-row{gap:8px}.stat{padding:12px}.stat b{font-size:1.2rem}.stat span{font-size:.7rem}h2{font-size:1.32rem}.section{margin-top:32px}.section+.section{padding-top:28px}.diagram{padding:16px 12px}.diagram figcaption{font-size:.75rem}.callout,.exercise,.quiz{padding:20px}.quiz label{padding:10px}.chapter-end{align-items:flex-start;flex-direction:column}.pager{gap:10px}.pager a{font-size:.8rem;padding:15px 13px}.footer{flex-direction:column;gap:3px}.lead{font-size:.98rem}.section-heading{align-items:flex-start;flex-direction:column;gap:0}th,td{padding:12px;min-width:100px}.topbar .crumb{max-width:54%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
@media print{details::details-content{content-visibility:visible!important;display:block!important;height:auto!important}}
@media print{@page{size:A4;margin:17mm}body{background:white;font-size:10pt;line-height:1.7}.layout{display:block}.sidebar,.topbar,.toc,.chapter-end,.pager,.copy,.quiz button,.review-score,.search-label,.search,.search-status,.skip,.hero .button{display:none!important}.container{max-width:none;padding:0}.hero{display:block;background:white;color:var(--ink);border:1px solid #aaa;padding:20px}.hero p,.hero .eyebrow{color:var(--ink)}.hero .hero-map{background:white;border:0;max-width:420px}.hero-map svg text{fill:#111}.hero-map svg rect{fill:#eee;stroke:#444}.hero-map p{color:#333}.section{break-inside:auto}.card,.callout,.quiz,.diagram,.code-wrap{break-inside:avoid}.grid{display:block}.card{margin-bottom:15px}.table-wrap{overflow:visible}th,td{min-width:0}.diagram svg{min-width:0}pre{white-space:pre-wrap;overflow:visible;background:#f0f0f0;color:#111;font-size:8pt}.code-label{background:#ddd;color:#111}details>*,details:not([open])>*{display:block!important}details summary{display:list-item!important}.quiz input{appearance:none;width:11px;height:11px;border:1px solid #555}.quiz label{padding:4px 8px}.footer{margin-top:15px}.tag{border:1px solid #aaa}a{color:#174b3c}.section+.section{padding-top:22px}.table-wrap{border-radius:0}}
