:root{--ink: #12171d;--ink-body: #262f39;--ink-muted: #55606c;--bg: #ffffff;--bg-soft: #f6f6f4;--bg-deep: #12171d;--line: #dcdfe3;--line-soft: #eceef0;--accent: #1a4a73;--accent-hover: #10395c;--accent-tint: #eef2f6;--serif: "Hiragino Mincho ProN", "Hiragino Mincho Pro", "Yu Mincho", YuMincho, "Yu Mincho Demibold", "Noto Serif JP", "MS PMincho", serif;--sans: "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic Medium", "Yu Gothic", Meiryo, system-ui, sans-serif;--maxw: 1120px;--readw: 760px;--r: 6px;--shadow: 0 1px 3px rgba(18, 23, 29, .06), 0 10px 28px rgba(18, 23, 29, .07)}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;color:var(--ink-body);background:var(--bg);font-family:var(--sans);font-size:17px;line-height:1.95;letter-spacing:.03em;-webkit-font-smoothing:antialiased}img{max-width:100%;height:auto;display:block}a{color:var(--accent);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}a:hover{color:var(--accent-hover)}.wrap{max-width:var(--maxw);margin:0 auto;padding:0 26px}.narrow{max-width:var(--readw)}h1,h2,h3{font-family:var(--serif);color:var(--ink);font-weight:600;letter-spacing:.06em;line-height:1.65}h1{font-size:clamp(1.65rem,4vw,2.35rem);margin:0 0 .6em}h2{font-size:clamp(1.28rem,2.6vw,1.55rem);margin:3.2em 0 1.1em;padding-bottom:.55em;border-bottom:1px solid var(--line)}h3{font-size:clamp(1.26rem,2.2vw,1.38rem);font-weight:700;margin:2.4em 0 .7em;padding-left:16px;border-left:4px solid var(--accent)}h4{font-family:var(--sans);font-size:1.04rem;font-weight:700;color:var(--ink);margin:2.1em 0 .5em;letter-spacing:.04em}.eyebrow{display:block;font-family:var(--sans);font-size:.82rem;font-weight:700;letter-spacing:.16em;color:var(--accent);margin:0 0 14px}.site-header{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:100}.site-header .wrap{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:104px}.brand{display:inline-flex;align-items:center;gap:14px;color:var(--ink);text-decoration:none;flex-shrink:0}.brand:hover{color:var(--ink)}.brand img{height:72px;width:auto}.brand span{font-family:var(--serif);font-weight:600;font-size:1.05rem;letter-spacing:.06em;white-space:nowrap}.nav{display:flex;gap:16px;flex-wrap:nowrap;align-items:center}.nav a{color:var(--ink-body);font-size:.93rem;font-weight:600;letter-spacing:.04em;text-decoration:none;padding:6px 0;border-bottom:2px solid transparent;white-space:nowrap}.nav a:hover{color:var(--accent);border-bottom-color:var(--accent)}.nav-toggle{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}.nav-toggle:focus-visible+.nav-btn{outline:2px solid var(--accent);outline-offset:2px}.nav-btn{display:none}.nav-cta{background:var(--accent);color:#fff!important;text-decoration:none;padding:9px 16px!important;border-radius:var(--r);font-size:.88rem;font-weight:700;letter-spacing:.04em;border-bottom:none!important}.nav-cta:hover{background:var(--accent-hover);border-bottom:none!important}@media(max-width:1150px)and (min-width:901px){.brand span{display:none}.nav{gap:14px}}@media(max-width:900px){.site-header .wrap{min-height:66px;gap:12px;flex-wrap:wrap}.brand img{height:44px}.brand span{font-size:.95rem}.brand{gap:10px}.nav-btn{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;margin-right:-10px;cursor:pointer;flex-shrink:0}.nav-btn-bars,.nav-btn-bars:before,.nav-btn-bars:after{content:"";display:block;width:24px;height:2px;background:var(--ink);transition:transform .22s ease}.nav-btn-bars{position:relative}.nav-btn-bars:before{position:absolute;top:-8px;left:0}.nav-btn-bars:after{position:absolute;top:8px;left:0}.nav-toggle:checked+.nav-btn .nav-btn-bars{background:transparent}.nav-toggle:checked+.nav-btn .nav-btn-bars:before{transform:translateY(8px) rotate(45deg)}.nav-toggle:checked+.nav-btn .nav-btn-bars:after{transform:translateY(-8px) rotate(-45deg)}.nav{display:none;width:100%;flex-direction:column;gap:0;border-top:1px solid var(--line);max-height:calc(100vh - 66px);overflow-y:auto}.nav-toggle:checked~.nav{display:flex}.nav a{padding:17px 2px;font-size:1rem;border-bottom:1px solid var(--line-soft)}.nav a:hover{border-bottom-color:var(--line-soft)}.nav-cta{display:block;margin:16px 0 20px;text-align:center;background:var(--ink);color:#fff!important;padding:15px 0!important;border:none!important;border-radius:var(--r);font-weight:700}}.hero{background:var(--bg-soft);border-bottom:1px solid var(--line)}.hero .wrap{display:grid;grid-template-columns:1fr 360px;gap:56px;align-items:center;padding-top:76px;padding-bottom:76px}.hero h1{font-size:clamp(1.7rem,3.6vw,2.4rem);line-height:1.7;margin-bottom:.7em}.hero .lead{font-size:1.03rem;color:var(--ink-body);margin:0;line-height:2.05}.hero-sig{margin:30px 0 0;font-family:var(--serif);font-size:.95rem;color:var(--ink);letter-spacing:.06em}.hero-sig small{display:block;font-family:var(--sans);font-size:.78rem;color:var(--ink-muted);letter-spacing:.08em;margin-bottom:4px}.hero-btns{margin:34px 0 0;display:flex;gap:14px;flex-wrap:wrap}.hero-text{min-width:0}.hero-photo{margin:0}.hero-photo img{width:100%;border-radius:var(--r);box-shadow:var(--shadow)}@media(max-width:900px){.hero .wrap{grid-template-columns:1fr;gap:30px;padding-top:44px;padding-bottom:46px}.hero-photo{order:-1;max-width:260px}}.page-head{background:var(--bg-soft);border-bottom:1px solid var(--line);padding:66px 0 40px}.page-head h1{margin-bottom:.45em}.page-head .lead{color:var(--ink-muted);margin:0;max-width:38em;font-size:1rem}@media(max-width:760px){.page-head{padding:40px 0 28px}}section.block{padding:80px 0}section.block.soft{background:var(--bg-soft);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}section.block>.wrap>h2:first-child{margin-top:0}@media(max-width:760px){section.block{padding:46px 0}}.cards{display:grid;gap:1px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));margin-top:36px;background:var(--line);border:1px solid var(--line)}.card{background:#fff;padding:34px 30px 32px}.card h3{margin:0 0 .7em;font-size:1.08rem;padding-left:0;border-left:none}.card p{margin:0;color:var(--ink-body);font-size:.95rem;line-height:1.95}.card .num{display:block;font-family:var(--serif);font-size:.95rem;color:var(--accent);letter-spacing:.12em;margin-bottom:12px}a.card-link{display:block;color:inherit;text-decoration:none}a.card-link:hover{background:var(--accent-tint);color:inherit}a.card-link h3{margin-top:0}.card-more{display:inline-block;margin-top:16px;color:var(--accent);font-size:.89rem;font-weight:700}.checklist{list-style:none;padding:0;margin:32px 0 0;border-top:1px solid var(--line)}.checklist li{position:relative;padding:20px 8px 20px 34px;border-bottom:1px solid var(--line);color:var(--ink-body);font-size:.98rem;line-height:1.9}.checklist li:before{content:"";position:absolute;left:8px;top:31px;width:12px;height:2px;background:var(--accent)}table{width:100%;border-collapse:collapse;margin:1.9em 0;font-size:.95rem}th,td{text-align:left;vertical-align:top;padding:15px 16px;border:1px solid var(--line);line-height:1.85}thead th{background:var(--bg-soft);color:var(--ink);font-weight:700;font-size:.92rem}tbody th{width:28%;background:var(--bg-soft);font-weight:700;color:var(--ink)}@media(max-width:660px){table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;font-size:.9rem}th,td{padding:12px 13px}table th:first-child,table td:first-child{min-width:7em}}.prose{font-size:1.02rem}.prose>:first-child{margin-top:0}.prose p{margin:1.6em 0}.prose ul,.prose ol{padding-left:1.4em;margin:1.5em 0}.prose li{margin:.55em 0}.prose strong{color:var(--ink);font-weight:700}.prose blockquote{margin:2.2em 0;padding:20px 24px;background:var(--bg-soft);border-left:3px solid var(--accent);color:var(--ink-body)}.prose blockquote p{margin:0}.prose hr{border:0;border-top:1px solid var(--line);margin:3em 0}.prose code{background:var(--bg-soft);padding:.15em .45em;border-radius:3px;font-size:.9em;color:#8a3a1f}.btn{display:inline-block;background:var(--ink);color:#fff;padding:16px 38px;border-radius:var(--r);text-decoration:none;font-weight:700;font-size:1rem;letter-spacing:.06em}.btn:hover{background:#000;color:#fff;text-decoration:none}.btn.ghost{background:#fff;color:var(--ink);border:1px solid var(--ink)}.btn.ghost:hover{background:var(--ink);color:#fff}.cta{background:var(--bg-deep);color:#e8eaec;padding:84px 0;text-align:center}.cta h2{color:#fff;margin:0 0 .7em;padding-bottom:.6em;border-bottom:none}.cta p{color:#c2c7cc;max-width:34em;margin:0 auto;font-size:1rem}.cta .btn{margin-top:34px;background:#fff;color:var(--ink)}.cta .btn:hover{background:#e8eaec;color:var(--ink)}@media(max-width:760px){.cta{padding:54px 0}}.post-list{list-style:none;padding:0;margin:34px 0 0;border-top:1px solid var(--line)}.post-list li{padding:24px 4px;border-bottom:1px solid var(--line)}.post-list time{color:var(--ink-muted);font-size:.84rem;font-weight:700;letter-spacing:.08em;display:block;margin-bottom:6px}.post-list a{font-family:var(--serif);font-weight:600;font-size:1.1rem;color:var(--ink);text-decoration:none}.post-list a:hover{color:var(--accent);text-decoration:underline}.post-list p{margin:.45em 0 0;color:var(--ink-muted);font-size:.94rem;line-height:1.9}.site-footer{background:var(--bg-soft);border-top:1px solid var(--line);padding:50px 0 40px;font-size:.92rem;color:var(--ink-muted)}.site-footer .fnav{display:flex;gap:24px;flex-wrap:wrap;margin-bottom:24px}.site-footer a{color:var(--ink-body);text-decoration:none;font-weight:600}.site-footer a:hover{color:var(--accent);text-decoration:underline}.copyright{color:var(--ink-muted);margin:0;font-size:.85rem}.portrait{float:right;margin:4px 0 28px 34px;width:240px}.portrait img{width:100%;border-radius:var(--r);box-shadow:var(--shadow)}@media(max-width:660px){.portrait{float:none;width:100%;max-width:260px;margin:0 auto 28px}}@media(max-width:560px){body{font-size:16.5px;line-height:1.9;letter-spacing:.02em}.wrap{padding:0 18px}h2{margin:2.4em 0 .9em}h3{margin:2em 0 .6em}.btn,.btn.ghost{display:block;text-align:center;padding:16px 20px}.hero-btns{flex-direction:column}.card{padding:26px 20px 24px}.checklist li{padding:17px 4px 17px 28px;font-size:.95rem}.checklist li:before{left:4px;top:28px}.post-list li{padding:20px 2px}.prose{font-size:1rem}}.statement{background:var(--bg-deep);color:#c9cfd6;padding:104px 0}.statement .eyebrow{color:#8fa8bf}.statement h2{color:#fff;border-bottom:none;padding-bottom:0;font-size:clamp(1.55rem,3.4vw,2.15rem);line-height:1.75;margin:0 0 .9em;max-width:21em}.statement p{max-width:36em;font-size:1.02rem;line-height:2.05;margin:1.4em 0}.statement strong{color:#fff;font-weight:700}.statement a{color:#cfe0f0}.statement a:hover{color:#fff}@media(max-width:760px){.statement{padding:62px 0}}.stats{display:grid;gap:1px;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));background:var(--line);border:1px solid var(--line);margin-top:40px}.stat{background:#fff;padding:40px 30px 36px}.stat .n{display:block;font-family:var(--serif);font-size:3rem;line-height:1.15;color:var(--ink);letter-spacing:.02em;margin-bottom:10px}.stat .n small{font-size:1.3rem;margin-left:2px;letter-spacing:.04em}.stat .l{display:block;color:var(--ink-muted);font-size:.92rem;line-height:1.8}@media(max-width:560px){.stat{padding:28px 22px 26px}.stat .n{font-size:2.4rem}}.prose>p:first-child{font-size:1.12rem;color:var(--ink);line-height:2.05}.prose .pull{font-family:var(--serif);font-size:1.3rem;line-height:1.9;color:var(--ink);border-left:none;background:none;padding:0;margin:2.4em auto;max-width:30em;text-align:center}.checklist.two-col{grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:4px 14px;border-top:none;margin-top:22px}.checklist.two-col li{border-bottom:none}.checklist.two-col li:has(a) a{padding:11px 20px 11px 32px}.checklist.two-col li:has(a):before{top:20px}.checklist.two-col li:has(a){border-radius:8px}@media(max-width:860px){.checklist.two-col{grid-template-columns:1fr;gap:2px}}.checklist li a{color:var(--ink-body);text-decoration:none;display:block}.checklist li:has(a){padding:0}.checklist li:has(a) a{padding:20px 22px 20px 34px}.checklist li:has(a):before{top:29px;left:8px}.checklist li:has(a):hover{background:var(--accent-tint);border-color:#c6d6e4}.checklist li:has(a):hover a{color:var(--accent-hover)}.icon-wrap{display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:50%;background:var(--accent-tint);color:var(--accent);margin-bottom:14px}.icon-wrap.sm{width:42px;height:42px;margin:0 12px 0 0;vertical-align:middle}.cat-head{display:flex;align-items:center}.card .num{font-size:.85rem;margin-bottom:8px}.prose img{border:1px solid var(--line);border-radius:var(--r);background:#fff;margin:1.8em 0 .6em}.prose img+em,.prose img+p em{color:var(--ink-muted);font-size:.86rem}.icon{display:block}.prose .photo-portrait{max-width:min(420px,100%);height:auto;display:block;border:1px solid var(--line);border-radius:var(--r);margin:1.8em 0}.prose img[src$=".jpg"]{border:none}.prose img[src^="/images/illust-"]{border:none;background:transparent}.split{display:grid;grid-template-columns:1fr;gap:36px;align-items:center}.split .illust{width:100%;max-width:560px;height:auto;margin:8px auto 0;display:block}@media(min-width:980px){.split{grid-template-columns:3fr 2fr}.split .illust{margin:0}}.photo-band{margin:0;line-height:0}.photo-band img{width:100%;height:clamp(170px,24vw,300px);object-fit:cover;display:block}.steps{margin:2em 0}.step{display:flex;gap:20px;position:relative;padding-bottom:30px}.step:last-child{padding-bottom:0}.step:before{content:"";position:absolute;left:23px;top:48px;bottom:4px;width:2px;background:var(--line)}.step:last-child:before{display:none}.step-no{flex-shrink:0;width:46px;height:46px;display:flex;align-items:center;justify-content:center;background:var(--accent);color:#fff;font-family:var(--serif);font-size:1.25rem;font-weight:600;border-radius:var(--r);position:relative;z-index:1}.step-body{padding-top:4px;min-width:0}.step-body h4{margin:0 0 .35em;font-family:var(--serif);font-size:1.12rem;font-weight:700;letter-spacing:.05em}.step-body p{margin:0 0 .5em;font-size:.95rem;line-height:1.9}.step-out{color:var(--ink-muted);font-size:.89rem!important}.step-out span{display:inline-block;background:var(--accent-tint);color:var(--accent);font-size:.78rem;font-weight:700;padding:2px 10px;border-radius:3px;margin-right:10px;letter-spacing:.06em}@media(max-width:660px){.step{gap:14px;padding-bottom:24px}.step-no{width:38px;height:38px;font-size:1.05rem}.step:before{left:19px;top:42px}.step-out span{display:block;width:fit-content;margin:0 0 4px}}
