:root{--navy:#122f50;--ink:#24384c;--muted:#526579;--line:#dbe3ea;--pale:#f1f5f9;--blue:#175fad;color:var(--ink);background:#fff;font-family:system-ui,-apple-system,Noto Sans JP,sans-serif;font-size:16px}*{box-sizing:border-box}body{margin:0;line-height:1.85}a{color:var(--blue);text-underline-offset:4px}a:hover{color:var(--navy)}:focus-visible{outline-offset:5px;outline:3px solid #e07b20}header{border-bottom:1px solid var(--line)}.header-inner{justify-content:space-between;align-items:center;gap:30px;max-width:1160px;margin:auto;padding:23px 32px;display:flex}.brand{letter-spacing:-1px;color:var(--navy);font-size:28px;font-weight:800;line-height:1.2;text-decoration:none}.brand span{color:#587c9f}.brand small{letter-spacing:1px;margin-top:8px;font-size:12px;font-weight:500;display:block}nav{flex-wrap:wrap;gap:27px;display:flex}nav a{color:var(--ink);font-size:14px;text-decoration:none}nav a[aria-current=page]{border-bottom:2px solid var(--navy)}main{max-width:1160px;margin:auto;padding:0 32px 85px}.eyebrow{color:var(--blue);letter-spacing:.13em;font-size:13px;font-weight:700}.hero{grid-template-columns:1.65fr 1fr;align-items:center;gap:60px;padding:70px 0 60px;display:grid}.hero h1{letter-spacing:.015em;color:var(--navy);margin:16px 0 24px;font-size:clamp(32px,4vw,48px);line-height:1.5}.lead{color:var(--muted);font-size:17px}.button{background:var(--navy);color:#fff;border-radius:3px;margin-top:14px;padding:12px 24px;font-weight:600;text-decoration:none;display:inline-block}.button:hover{color:#fff;background:#214c76}.secondary{color:var(--navy);border:1px solid var(--line);background:#fff;margin-left:10px}.path{border:1px solid var(--line);border-top:4px solid var(--navy);background:#fff;padding:25px 30px}.path h2{margin:0 0 15px;font-size:18px}.path ol{counter-reset:step;margin:0;padding:0;list-style:none}.path li{counter-increment:step;border-top:1px solid var(--line);padding:16px 0}.path li:before{content:"0" counter(step);color:#5b7ea3;margin-right:18px;font-family:monospace}.path small{color:var(--muted);margin-left:40px;display:block}.notice{background:var(--pale);border-left:3px solid #64819e;padding:16px 22px;font-size:14px}.section{margin-top:55px}.section-head{justify-content:space-between;align-items:center;gap:16px;margin-bottom:22px;display:flex}.section h2,.section-head h2{color:var(--navy);margin:0;font-size:25px}.cards{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}.card{border:1px solid var(--line);border-radius:3px;padding:26px}.card h3{margin:15px 0;font-size:20px;line-height:1.6}.card p{color:var(--muted);font-size:15px}.tag{background:var(--pale);color:var(--muted);padding:4px 9px;font-size:12px}.number{color:#627e99;font-family:monospace;font-size:14px}.split{grid-template-columns:1fr 1fr;gap:25px;display:grid}.book-panel{background:var(--pale);padding:30px}.book-panel h3{margin:5px 0;font-size:23px}.page-heading{border-bottom:1px solid var(--line);margin-bottom:35px;padding:45px 0 30px}.page-heading h1{color:var(--navy);margin:12px 0;font-size:36px}.breadcrumb{color:var(--muted);font-size:13px}.prose{max-width:780px}.prose h1{color:var(--navy);font-size:32px;line-height:1.5}.prose h2{border-bottom:1px solid var(--line);margin-top:42px;padding-bottom:10px;font-size:24px}.prose h3{margin-top:26px}.prose li{margin:5px 0}.prose pre{color:#edf4fb;background:#112a42;border-radius:3px;padding:22px;font-size:14px;line-height:1.65;overflow:auto}.prose code{overflow-wrap:anywhere}.prose table{border-collapse:collapse;max-width:100%;display:block;overflow:auto}.prose td,.prose th{border:1px solid var(--line);padding:10px}.prose img{max-width:100%}.tools{align-items:center;gap:20px;margin:25px 0;display:flex}.tools button{font:inherit;border:1px solid var(--line);cursor:pointer;background:#fff;padding:8px 16px}.empty{color:var(--muted);border:1px dashed #aabac9;padding:28px}footer{background:var(--pale);padding:40px max(32px,50vw - 548px);font-size:13px}footer p{color:var(--muted)}footer nav{margin:25px 0}.fine{border-top:1px solid var(--line);padding-top:20px}.skip{z-index:5;background:#fff;padding:10px;position:absolute;top:-100px}.skip:focus{top:0}@media (width<=760px){.header-inner{flex-direction:column;align-items:start;gap:20px;padding:20px}nav{gap:18px}.hero{grid-template-columns:1fr;gap:30px;padding:36px 0}.hero h1{font-size:28px}.cards,.split{grid-template-columns:1fr}main{padding:0 20px 55px}.section{margin-top:38px}.page-heading h1{font-size:30px}.section-head{flex-direction:column;align-items:start}.secondary{margin-left:0}.button{margin-right:8px}footer{padding:30px 20px}.prose h1{font-size:28px}}
