@charset "utf-8";
:root{--paper:#f5f8fb;--ink:#142d50;--muted:#596b80;--accent:#1764b0;--line:#c8d1dc;--white:#ffffff;--orange:#2469ac;--serif:"Yu Mincho","Hiragino Mincho ProN",serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--paper);color:var(--ink);font-family:"Yu Gothic UI","Yu Gothic",Meiryo,sans-serif;font-size:16px;line-height:1.9}a{color:inherit}button,input{font:inherit}button,a,input{touch-action:manipulation}button{cursor:pointer}a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid var(--orange);outline-offset:5px}.skip{position:absolute;left:15px;top:-100px;background:white;padding:10px;z-index:100}.skip:focus{top:10px}.wrap{max-width:1240px;margin:auto;padding:0 42px}header{border-bottom:1px solid var(--line);background:var(--paper);position:sticky;top:0;z-index:10}.nav{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:76px}.brand{text-decoration:none;font-weight:700;letter-spacing:.08em;display:flex;align-items:center;gap:12px}.brand-icon{background:var(--ink);color:var(--white);font-size:21px;width:42px;height:42px;display:grid;place-items:center;line-height:1}.nav nav{display:flex;gap:25px;font-size:13px}.nav nav a{text-decoration:none}.nav nav a:hover{text-decoration:underline}.hero{padding:72px 0 60px;display:grid;grid-template-columns:1.1fr 1fr;gap:65px;align-items:center}.eyebrow{font-size:11px;letter-spacing:.18em;text-transform:uppercase;font-weight:700;color:var(--accent);margin:0 0 18px}.hero h1{font-family:var(--serif);font-size:clamp(38px,4.2vw,62px);font-weight:600;line-height:1.4;letter-spacing:.03em;margin:0 0 25px}.hero p.lead{color:var(--muted);font-size:15px;max-width:500px}.hero-visual{border:1px solid var(--line);padding:28px;background:var(--white);position:relative;box-shadow:12px 12px 0 #e8edf3}.hero-visual svg{display:block;width:100%;height:auto}.plate{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:14px;font-size:10px;letter-spacing:.12em}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.button{display:inline-flex;align-items:center;justify-content:center;padding:11px 22px;border:1px solid var(--ink);background:var(--ink);color:white;text-decoration:none;font-size:13px;min-height:46px;gap:12px}.button.secondary{background:transparent;color:var(--ink)}.button:hover{background:var(--accent);color:white;border-color:var(--accent)}.facts{display:flex;gap:35px;border-top:1px solid var(--line);padding:24px 0}.facts b{font-family:Georgia,serif;font-size:28px;display:block;line-height:1.2}.facts span{font-size:11px;color:var(--muted)}.section{padding:48px 0;border-top:1px solid var(--line)}.section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:26px}.section h2{font-family:var(--serif);font-size:29px;line-height:1.5;margin:6px 0}.section-head p{font-size:13px;color:var(--muted)}.start-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.start-item{border-top:3px solid var(--accent);padding:24px;background:var(--white);text-decoration:none}.start-item .num{font-family:Georgia,serif;font-size:30px;color:var(--accent)}.start-item h3{font-size:18px;margin:15px 0 10px}.start-item p{font-size:13px;color:var(--muted);margin:0}.toolbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:18px}.search{flex:1;min-width:230px;background:var(--white);border:1px solid var(--line);padding:12px 16px;min-height:48px}.filter{border:1px solid var(--line);padding:9px 16px;background:transparent;min-height:44px;font-size:13px}.filter[aria-pressed=true]{background:var(--ink);color:white;border-color:var(--ink)}.chips{display:flex;flex-wrap:wrap;gap:8px}.result-count{font-size:12px;color:var(--muted);margin:18px 0}.library-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0 26px}.card{border-bottom:1px solid var(--line);padding:24px 0;min-height:210px;display:flex;flex-direction:column}.card-top{display:flex;justify-content:space-between;gap:10px;color:var(--accent);font-size:11px;letter-spacing:.04em}.card h3{font-size:18px;line-height:1.6;margin:12px 0}.card h3 a{text-decoration:none}.card h3 a:hover{color:var(--accent)}.card p{font-size:13px;color:var(--muted);margin:0 0 14px}.card-bottom{margin-top:auto;display:flex;justify-content:space-between;align-items:center;font-size:11px;color:var(--muted)}.save{background:transparent;border:1px solid var(--line);color:var(--ink);padding:4px 11px;font-size:11px;min-height:36px}.save[aria-pressed=true]{color:var(--accent);border-color:var(--accent)}[hidden]{display:none!important}.no-results{padding:30px 0;color:var(--muted)}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:50px}.about-grid p{font-size:14px}.about-grid dl{font-size:13px;margin:0}.about-grid dt{font-weight:700;margin-top:12px}.about-grid dd{margin:0;color:var(--muted)}footer{border-top:1px solid var(--line);padding:28px 0;font-size:12px;color:var(--muted)}.footer-row{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}.article-layout{display:grid;grid-template-columns:220px minmax(0,780px);gap:60px;padding:42px 0 65px;justify-content:center}.sidebar{position:sticky;top:110px;align-self:start;font-size:12px}.sidebar a{display:block;text-decoration:none;padding:6px 0;color:var(--muted)}.sidebar a:hover{color:var(--accent)}.sidebar .current{color:var(--accent);font-weight:700}.article-head h1{font-family:var(--serif);font-size:36px;line-height:1.5;margin:12px 0 18px}.article-deck{font-size:17px;color:var(--muted)}.article-meta{display:flex;gap:16px;flex-wrap:wrap;font-size:11px;color:var(--muted);border-top:1px solid var(--line);padding-top:16px;margin-top:24px}.article figure{margin:30px 0;background:var(--white);border:1px solid var(--line);padding:24px}.article figure img{width:100%;height:auto;display:block}.article figcaption{font-size:12px;color:var(--muted);margin-top:16px}.article h2{font-size:23px;margin:38px 0 14px;line-height:1.6}.article p,.article li{font-size:15px}.steps{list-style:none;counter-reset:steps;padding:0}.steps li{position:relative;padding:15px 0 15px 47px;border-bottom:1px solid var(--line);counter-increment:steps}.steps li:before{content:counter(steps,decimal-leading-zero);position:absolute;left:0;color:var(--accent);font-family:Georgia,serif;font-size:22px}.note{border-left:3px solid var(--orange);padding:16px 22px;background:#edf1f6;margin:24px 0}.note p{margin:6px 0}.practice{padding:22px;background:#e8f2fa;margin-top:26px}.practice h3{margin:0;font-size:17px}.practice p{margin:8px 0;font-size:14px}.source{font-size:12px;color:var(--muted);border-top:1px solid var(--line);margin-top:34px;padding-top:20px}.source p{font-size:12px}.pager{display:grid;grid-template-columns:1fr 1fr;gap:20px;border-top:1px solid var(--line);padding-top:20px;margin-top:35px}.pager a{text-decoration:none;font-size:13px}.pager a:last-child{text-align:right}kbd{font:13px ui-monospace,Consolas,monospace;border:1px solid var(--line);border-bottom:3px solid #bcc9d8;background:var(--white);border-radius:3px;padding:2px 7px;white-space:nowrap}code{font:14px Consolas,monospace;background:#e8f2fa;padding:3px 6px}table{width:100%;border-collapse:collapse;font-size:14px}td,th{text-align:left;padding:12px;border-bottom:1px solid var(--line)}th{background:#e8f2fa}.book-cover{padding:100px 30px;min-height:90vh;border:1px solid var(--line)}.book-cover h1{font-family:var(--serif);font-size:52px}.book-toc{columns:2;column-gap:40px}.book-toc a{display:block;font-size:13px;padding:4px 0}.book-article{max-width:780px;margin:70px auto}.book-article h1{font-size:30px}.book-heading{padding:60px 0 15px;border-bottom:2px solid var(--accent)}.book-heading h2{font-size:34px;font-family:var(--serif)}.print-banner{padding:20px;background:#e8f2fa;font-size:13px}.quiz-controls{display:flex;gap:10px;flex-wrap:wrap}.diagram-controls{margin-top:15px;display:flex;gap:12px;align-items:center;font-size:13px}.diagram-controls input{max-width:110px;padding:6px;border:1px solid var(--line)}
@media(max-width:900px){.wrap{padding:0 24px}.hero{gap:32px}.library-grid{grid-template-columns:repeat(2,1fr)}.article-layout{grid-template-columns:160px minmax(0,1fr);gap:30px}.hero h1{font-size:42px}.facts{gap:25px}.start-grid{gap:15px}.start-item{padding:18px}}
@media(max-width:640px){body{font-size:15px}.wrap{padding:0 20px}.nav{min-height:68px}.brand{font-size:14px}.brand-icon{width:34px;height:34px;font-size:18px}.nav nav{gap:14px;font-size:12px}.nav nav .desktop{display:none}.hero{grid-template-columns:1fr;padding:36px 0 40px;gap:30px}.hero h1{font-size:38px}.hero-visual{padding:18px}.facts{gap:25px;justify-content:space-between}.facts b{font-size:25px}.start-grid{grid-template-columns:1fr}.start-item{display:grid;grid-template-columns:40px 1fr;gap:0 15px}.start-item .num{grid-row:1/3}.start-item h3{margin:0 0 6px}.section{padding:35px 0}.section-head{display:block}.section h2{font-size:25px}.library-grid{grid-template-columns:1fr}.card{min-height:170px}.about-grid{grid-template-columns:1fr;gap:20px}.article-layout{display:block;padding-top:25px}.sidebar{display:none}.article-head h1{font-size:29px}.article figure{padding:12px}.article h2{font-size:21px}.article figure figcaption{font-size:11px}.pager{gap:15px}.book-toc{columns:1}.book-cover{padding:45px 20px;min-height:70vh}.book-cover h1{font-size:38px}.section-head p{margin:8px 0}.facts span{font-size:10px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
@page{size:A4;margin:17mm 18mm}
@media print{body{background:white;color:#142d50;font-size:11pt;line-height:1.65}header,footer,.sidebar,.actions,.pager,.toolbar,.chips,.save,.print-banner,.diagram-controls{display:none!important}.wrap{padding:0;max-width:none}.article-layout{display:block;padding:0}.article-head h1{font-size:25pt}.article p,.article li{font-size:10.5pt}.article figure{padding:12px;margin:20px 0;break-inside:avoid}.article h2{break-after:avoid;font-size:16pt;margin-top:24px}.article figure img{max-height:78mm}.note,.practice{break-inside:avoid}.steps li{break-inside:avoid;padding-top:10px;padding-bottom:10px}.source p{font-size:8pt}.book-cover{break-after:page;min-height:240mm;padding:45mm 10mm;border:0}.book-cover h1{font-size:38pt}.book-toc{break-after:page;columns:2}.book-heading{break-before:page;break-after:page;padding-top:75mm;min-height:230mm}.book-article{break-before:page;margin:0;max-width:none}.book-article h1{font-size:24pt}.book-toc a{font-size:9pt;color:inherit;text-decoration:none}a{text-decoration:none}.article-meta{font-size:8pt}}
.visually-hidden{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:641px) and (max-width:900px){.hero h1{font-size:32px}.hero{gap:22px}}@media print{.article p,.article li{font-size:9.5pt}.article h2{font-size:12pt;margin:12px 0 8px}.article figure{margin:14px 0;padding:10px}.article figure img{max-height:55mm}.article figcaption{font-size:7pt;margin-top:6px}.article-meta{margin-top:14px;padding-top:10px}.steps li{padding-top:6px;padding-bottom:6px}.note{padding:10px 16px;margin:14px 0}.practice{padding:10px 16px;margin-top:14px}.source{margin-top:16px;padding-top:10px}.source p{font-size:7pt}.book-article h1{font-size:22pt}}
@media print{.book-article{line-height:1.5}.book-article figure img{max-height:45mm}.book-article h1{font-size:20pt;line-height:1.35;margin:10px 0 12px}.book-article .article-deck{margin:10px 0}.book-article h2{margin:10px 0 6px}.book-article .article-meta{margin-top:10px;padding-top:8px}.book-article figure{margin:12px 0}.book-article .note ul{margin:8px 0;padding-left:20px}.book-article .source{padding-top:6px;margin-top:10px}.book-article .steps li{padding-top:5px;padding-bottom:5px}.book-article .practice,.book-article .note{padding:8px 14px}}
@media print{.steps li:before{font-size:14pt;line-height:1;top:6px}}

.hostbar{background:#142d50;color:#fff;font-size:13px}.hostbar .wrap{display:flex;justify-content:space-between;gap:16px;padding-top:10px;padding-bottom:10px}.hostbar a{color:#fff;text-decoration:none}.host-contact{padding-top:34px;padding-bottom:34px;border-top:1px solid #cbd5e1}.host-contact h2{font-size:25px}.host-contact p{max-width:760px}.host-contact .button{display:inline-flex}@media(max-width:640px){.hostbar .wrap{flex-wrap:wrap;gap:4px}.host-contact h2{font-size:21px}}@media print{.hostbar,.host-contact{display:none!important}}
