
:root{--bg:#FBFAF3;--surface:#fff;--soft:#EEF5EA;--ink:#1D2A22;--muted:#54645A;--leaf:#2E7D4B;--leaf-d:#1D5A35;--leaf-l:#CFE6D2;--sky:#DCEBF5;--sky-ink:#1E4E73;--line:#DAD8C8}
@media (prefers-color-scheme:dark){:root{--bg:#0F1A13;--surface:#16241B;--soft:#1B2D21;--ink:#EAF1EA;--muted:#A9BBAE;--leaf:#6CC18A;--leaf-d:#9BDDB1;--leaf-l:#274833;--sky:#1B3446;--sky-ink:#A8D2F0;--line:#2C4234;color-scheme:dark}}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font:16.5px/1.9 "Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,"Noto Sans JP",sans-serif;-webkit-text-size-adjust:100%}
h1,h2{font-family:"Hiragino Mincho ProN","Yu Mincho","Noto Serif JP",serif;line-height:1.45;text-wrap:balance;margin:0}
img{max-width:100%;height:auto;display:block}a{color:var(--sky-ink);text-underline-offset:3px}
.wrap{max-width:980px;margin:0 auto;padding-inline:20px}
.site-header{background:var(--surface);border-bottom:1px solid var(--line)}.site-header .wrap{display:flex;flex-wrap:wrap;gap:6px 20px;align-items:center;justify-content:space-between;padding-block:12px}
.brand{font:800 22px "Hiragino Mincho ProN","Yu Mincho",serif;color:var(--leaf-d);text-decoration:none;letter-spacing:.04em}
nav{display:flex;flex-wrap:wrap;gap:4px 14px}nav a{font-size:14px;color:var(--ink);text-decoration:none;padding:4px 2px;border-bottom:2px solid transparent}nav a:hover,nav a[aria-current=page]{border-bottom-color:var(--leaf)}
.hero{position:relative;min-height:480px;display:flex;align-items:flex-end;overflow:hidden;background:#243a2c}.hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 40%}
.shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,30,18,.08),rgba(10,30,18,.3) 45%,rgba(10,30,18,.8))}
.copy{position:relative;color:#fff;padding-block:40px 36px;width:100%}.kicker{margin:0 0 8px;font-size:13px;letter-spacing:.12em;font-weight:700;color:#DDF2DF}
.hero h1{font-size:clamp(28px,5.2vw,48px);font-weight:800;text-shadow:0 2px 14px rgba(0,0,0,.35)}.sub{margin:12px 0 0;max-width:34em;font-size:clamp(16px,2.2vw,19px);line-height:1.7;text-shadow:0 1px 8px rgba(0,0,0,.4)}
.cred{position:absolute;right:12px;top:10px;font-size:11px;color:#fff;background:rgba(0,0,0,.4);padding:2px 8px;border-radius:6px}
.block{padding-block:34px;border-bottom:1px solid var(--line)}.block:last-child{border-bottom:0}
h2{font-size:clamp(22px,3.4vw,30px);color:var(--leaf-d);margin-bottom:14px}h2::before{content:"";display:block;width:44px;height:5px;border-radius:3px;background:linear-gradient(90deg,var(--leaf),var(--sky));margin-bottom:12px}
p{margin:0 0 1em;max-width:44em}.note{font-size:13.5px;color:var(--muted)}
.points{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.points li{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:16px 18px}.points b{display:block;margin-bottom:4px;color:var(--leaf-d)}.points span{font-size:15px;line-height:1.8;display:block}
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px;align-items:start}.split>*{min-width:0}
.cats{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:0 0 10px}.cats li{background:var(--soft);border:1px solid var(--leaf-l);border-radius:99px;padding:4px 16px;font-size:15px}
.photo{margin:0}.photo img{width:100%;border-radius:14px;aspect-ratio:4/3;object-fit:cover}.photo figcaption{font-size:12.5px;color:var(--muted);margin-top:8px}
.doc{padding-block:36px 56px}.doc h1{font-size:clamp(26px,4vw,36px);color:var(--leaf-d);margin-bottom:20px}.doc h2{margin-top:30px}.doc ul{padding-left:1.3em;max-width:44em}.doc li{margin:6px 0}
.info{display:grid;grid-template-columns:8em minmax(0,1fr);gap:8px 16px;margin:0}.info dt{font-weight:700;color:var(--leaf-d)}.info dd{margin:0}
.cred-list{font-size:14px;line-height:1.8;word-break:break-all}
.site-footer{background:var(--surface);border-top:1px solid var(--line);padding-block:22px;font-size:14px;color:var(--muted)}.site-footer p{margin:0 0 8px}.fnav{display:flex;flex-wrap:wrap;gap:4px 16px}.fnav a{color:var(--muted)}.small{font-size:12.5px}
@media (max-width:720px){.points,.split{grid-template-columns:minmax(0,1fr)}.hero{min-height:420px}.info{grid-template-columns:minmax(0,1fr);gap:2px}.info dd{margin-bottom:10px}}
