
:root{color-scheme:light;
--font:"Inter","Noto Sans JP","Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic","Meiryo",system-ui,sans-serif;
--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--s7:48px;--s8:64px;--s9:96px;
--base:#ffffff;--surface:#f8f6f3;--line:#ebe5df;--ink:#221e1d;--ink-2:#4e4744;--muted:#6a625e;--accent:#a31515;--accent-soft:#f7e9e6;--ainezu:#aebfcd;
--g-air:linear-gradient(135deg,#f8f3ee 0%,#eef2f5 100%);--g-layer:linear-gradient(160deg,#f3ddd6 0%,#efe6da 50%,#dfe7ee 100%);--g-capture:linear-gradient(120deg,#e7b9ae 0%,#aebfcd 100%);
--blob-1:#eec3bb;--blob-2:#cfdae4;--blob-3:#eedfc9;--chart-1:#b4473b;--chart-2:#2f6d9e;--chart-grid:#e8e7e4}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;overflow-x:clip}body{overflow-x:clip}
body{margin:0;background:var(--base);color:var(--ink);font-family:var(--font);font-size:16px;line-height:1.8;font-weight:400}
h1,h2,h3,h4,p,figure,ul,ol{margin:0}a{color:var(--accent)}a:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.num{font-variant-numeric:tabular-nums lining-nums}
.wrap{max-width:1120px;margin:0 auto;padding-inline:20px}
.bar{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.92);border-bottom:1px solid var(--line);transition:background-color .4s ease,border-color .4s ease}
.js .bar{background:#fff;border-bottom-color:transparent}.js .bar.scrolled{background:rgba(255,255,255,.82);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom-color:var(--line)}
.brand .logo{display:block;height:26px;width:auto}footer .logo{display:block;height:16px;width:auto;margin-bottom:var(--s3)}
@media (max-width:480px){.brand .logo{height:20px}}
.bar .wrap{display:flex;align-items:center;gap:var(--s4);flex-wrap:wrap;padding-block:10px}
.brand{display:block;margin-right:auto;line-height:0}
.bar nav{display:flex;flex-wrap:wrap;gap:2px var(--s4);font-size:14px}.bar nav a{color:var(--ink-2);text-decoration:none}.bar nav a:hover{color:var(--accent)}
.banner{background:var(--accent);color:#fff;padding:8px 20px;text-align:center;font-size:14px}
.eyebrow{font-size:12px;font-weight:500;letter-spacing:.12em;color:var(--muted);text-transform:uppercase}
.h-xl{font-size:clamp(30px,5vw,54px);font-weight:300;line-height:1.3;letter-spacing:.005em;text-wrap:balance}
.h-l{font-size:clamp(26px,3.2vw,34px);font-weight:300;line-height:1.45;text-wrap:balance}
.h-m{font-size:18px;font-weight:500;line-height:1.6}.lead{font-size:18px;color:var(--ink-2);max-width:42em;line-height:1.8}
.small{font-size:13px;color:var(--muted);line-height:1.7}
.cover{position:relative;overflow:hidden}.cover:before{content:"";position:absolute;inset:0;background:var(--g-air)}.cover:after{content:"";position:absolute;inset:auto 0 0 0;height:40%;background:linear-gradient(to bottom,transparent,#fff)}.cover b{position:absolute;border-radius:50%;filter:blur(48px);pointer-events:none}.cover .b1{width:420px;height:420px;background:var(--blob-1);right:-60px;top:-160px;opacity:.85}.cover .b2{width:340px;height:340px;background:var(--blob-2);right:220px;top:-60px;opacity:.7}.cover .phead{position:relative;z-index:1}.phead{padding-block:var(--s6) var(--s5)}.h-xl.top{font-size:clamp(26px,3.6vw,40px);max-width:26em}.phead .h-xl{margin-top:var(--s3);max-width:20em}.phead .lead{margin-top:var(--s4)}
.dateline{margin-top:var(--s4);font-size:13px;color:var(--muted);display:flex;flex-wrap:wrap;gap:2px var(--s4)}
.dateline a{color:var(--muted)}
.st{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--ink);white-space:nowrap}.st i{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--c);border:1px solid rgba(34,30,29,.25)}
.photo{margin-block:var(--s4) var(--s7)}.photo .ph{aspect-ratio:21/8;overflow:hidden;background:var(--g-air)}.photo img{display:block;width:100%;height:100%;object-fit:cover}
.photo figcaption{font-size:13px;color:var(--muted);margin-top:var(--s2);line-height:1.7}
.field{position:relative;overflow:hidden;aspect-ratio:21/6;background:var(--g-layer)}
.field b{position:absolute;border-radius:50%;filter:blur(40px);opacity:.85}.field b:nth-child(1){width:300px;height:300px;background:var(--blob-1);right:6%;top:-100px}.field b:nth-child(2){width:260px;height:260px;background:var(--blob-2);right:24%;top:20px;opacity:.7}.field b:nth-child(3){width:220px;height:220px;background:var(--blob-3);left:10%;top:40px;opacity:.7}
.cols{display:grid;gap:var(--s7);grid-template-columns:1fr}@media(min-width:960px){.cols{grid-template-columns:minmax(0,1fr) 300px}}
aside.facts{font-size:14px}.cols>*,.mapgrid>*{min-width:0}@media(min-width:960px){aside.facts{position:sticky;top:64px;align-self:start}}@media(max-width:959px){aside.facts{order:-1}}
aside.facts h2{font-size:12px;font-weight:500;letter-spacing:.12em;color:var(--muted);text-transform:uppercase;margin-bottom:var(--s2)}
.quote{width:100%;border-collapse:collapse}.quote th,.quote td{padding:8px 10px 8px 0;border-top:1px solid var(--line);text-align:left;vertical-align:top;font-size:14px;line-height:1.55}
.quote th{font-size:12px;font-weight:500;letter-spacing:.06em;color:var(--muted);text-transform:uppercase}.quote tr:last-child td,.quote tr:last-child th{border-bottom:1px solid var(--line)}
.quote td.n{font-variant-numeric:tabular-nums lining-nums;white-space:nowrap}.quote .big{font-weight:600;font-size:17px;font-variant-numeric:tabular-nums lining-nums}
.sc{overflow-x:auto}.sc .quote{min-width:520px}.sc .quote.fit{min-width:0}
.sec{border-top:1px solid var(--line);padding-block:var(--s7) var(--s6)}.sec:first-of-type{border-top:0;padding-top:0}.sec>.h-l{margin-bottom:var(--s3)}.sec>.lead{font-size:16px;margin-bottom:var(--s5)}
.brief p{max-width:40em;margin-bottom:var(--s3)}.brief p:first-child{font-size:18px;color:var(--ink)}
.fig{margin-block:var(--s5)}.fig h3{font-size:18px;font-weight:500;line-height:1.6;margin-bottom:var(--s2)}.fig svg{display:block;width:100%;height:auto;max-width:760px}
.fig svg text{font-family:var(--font);font-size:12px;fill:var(--muted);font-variant-numeric:tabular-nums}.fig svg .lbl{fill:var(--ink);font-weight:500}.fig svg .ax{stroke:var(--chart-grid);stroke-width:1}
.fig svg .c0{stroke:var(--chart-1);fill:var(--chart-1)}.fig svg .c1{stroke:var(--chart-2);fill:var(--chart-2)}.fig svg path.ln{fill:none;stroke-width:2.2}
.fig svg .dsh{stroke-dasharray:6 4;fill:none}.fig svg line.dsh{stroke-width:1.8}.fig svg .dot{stroke-width:2;fill:#fff}
.fig svg .ref{stroke:#b9b4ae;stroke-dasharray:2 4}.fig svg .reft{font-size:11px}.fig svg .fan{fill:var(--chart-1);opacity:.1}.fig svg .sgl{stroke:var(--chart-1)}
.fig svg rect.lg.c0{fill:var(--chart-1);stroke:none}.fig svg rect.lg.c1{fill:var(--chart-2);stroke:none}.fig svg .bar{fill:var(--chart-1);stroke:none}
.fig .cite{font-size:12px;color:var(--muted);margin-top:var(--s2);line-height:1.7}.fig .cite a{color:var(--muted)}
details.tb{margin-top:var(--s2)}details.tb summary{cursor:pointer;font-size:13px;color:var(--ink-2)}
.tl{list-style:none;padding:0;margin:0}.tl li{display:grid;grid-template-columns:116px 1fr;gap:var(--s4);padding:10px 0;border-top:1px solid var(--line)}.tl li:last-child{border-bottom:1px solid var(--line)}
.tl .d{font-variant-numeric:tabular-nums lining-nums;font-weight:600;font-size:14px}.tl .f .t:before{content:"Upcoming — ";color:var(--muted);font-size:13px}
.flow{list-style:none;padding:0;margin:0;display:grid;gap:var(--s4);grid-template-columns:1fr}@media(min-width:760px){.flow{grid-template-columns:repeat(var(--n),1fr)}}
.flow li{border-top:1px solid var(--ink);padding-top:var(--s3)}.flow .k{font-size:12px;letter-spacing:.12em;color:var(--muted);text-transform:uppercase}.flow h4{font-size:16px;font-weight:500;line-height:1.6;margin:2px 0}.flow p{font-size:14px;color:var(--ink-2);line-height:1.7}
.faq details{border-top:1px solid var(--line)}.faq details:last-child{border-bottom:1px solid var(--line)}.faq summary{cursor:pointer;font-size:17px;font-weight:500;padding:14px 0;line-height:1.6}.faq p{padding-bottom:var(--s4);max-width:44em;color:var(--ink-2)}
.rows{list-style:none;padding:0;margin:0}.rows li{border-top:1px solid var(--line);padding:var(--s3) 0;display:grid;gap:2px var(--s4);grid-template-columns:1fr}@media(min-width:760px){.rows li{grid-template-columns:150px 1fr}}.rows li:last-child{border-bottom:1px solid var(--line)}
.rows .d{font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}.rows a{color:var(--ink);font-weight:500;text-decoration:none}.rows a:hover{color:var(--accent)}.rows p{font-size:14px;color:var(--ink-2)}
.notlisted{padding-left:20px}.notlisted li{margin:4px 0;font-size:14px;color:var(--ink-2)}
.srcs{font-size:13px;color:var(--muted);columns:1;padding-left:18px}.srcs li{margin:4px 0}@media(min-width:760px){.srcs{columns:2}}.srcs a{color:var(--muted)}
.mapgrid{display:grid;gap:var(--s6);grid-template-columns:1fr}@media(min-width:960px){.mapgrid{grid-template-columns:1.45fr 1fr;align-items:start}}
.geo{width:100%;height:auto;display:block;border:1px solid var(--line)}.geo .sea{fill:#fff}.geo .grat{stroke:var(--line);stroke-width:1}.geo .land{fill:#f3eeea;stroke:#fff;stroke-width:.8}.geo .land.t{fill:var(--c)}
.geo .pin circle{fill:var(--c);stroke:#fff;stroke-width:2}.geo .pin.prep circle{fill:#fff;stroke:var(--muted);stroke-dasharray:3 3;stroke-width:1.2}.geo .pc{font-family:var(--font);font-size:10px;font-weight:600;fill:var(--on)}.geo .pin.prep .pc{fill:var(--muted)}
.geo .pn{font-family:var(--font);font-size:13px;font-weight:500;fill:var(--ink);paint-order:stroke;stroke:#fff;stroke-width:3px}.geo a:hover circle{stroke:var(--accent)}
.legend{display:flex;flex-wrap:wrap;gap:4px var(--s4);font-size:13px;color:var(--muted);margin-top:var(--s2)}.legend i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px;background:var(--c);border:1px solid rgba(34,30,29,.25)}
.numcard{margin-block:var(--s5)}.numcard svg{width:100%;height:auto;display:block;max-width:760px}
.bars{display:grid;gap:8px;max-width:760px}.bars .r{display:grid;grid-template-columns:120px 1fr auto;gap:var(--s3);align-items:center;font-size:14px}.bars .t{height:10px;background:var(--chart-grid)}.bars .t i{display:block;height:100%;background:var(--chart-1)}

.field.big span{position:absolute;left:24px;bottom:16px;font-size:clamp(40px,8vw,96px);font-weight:300;line-height:1;color:var(--ink);letter-spacing:.01em;font-variant-numeric:tabular-nums}.ph{overflow:hidden;background:var(--g-air)}.ph img{display:block;width:100%;height:100%;object-fit:cover}.topnews{display:grid;gap:var(--s6);grid-template-columns:1fr;padding-top:var(--s6)}@media(min-width:960px){.topnews{grid-template-columns:1.7fr 1fr}}@media(min-width:960px) and (max-width:1139.98px){.topnews aside .thw{display:none}}.lead-story .h-xl{margin-top:8px}.lead-story .lead{margin-top:8px}.topnews>*{min-width:0}.photocr{margin-top:6px;color:var(--muted)}.photolist{list-style:none;padding:0;display:grid;gap:2px;margin-bottom:32px}.big-fact{margin-top:12px;font-size:clamp(32px,5vw,56px);font-weight:300;line-height:1;font-variant-numeric:tabular-nums}
.rows.tight li{grid-template-columns:100px 1fr}.rows .d{line-height:1.5}
.bands{display:grid;gap:var(--s6);grid-template-columns:1fr;margin-top:var(--s7)}@media(min-width:900px){.bands{grid-template-columns:1fr 1fr}}.band>.h-m{padding-bottom:8px;border-bottom:1px solid var(--ink);margin-bottom:0}.band .rows li:first-child{border-top:0}
.lead3 p{font-size:18px;color:var(--ink-2);max-width:40em;margin-top:6px}.lead3 p:first-child{color:var(--ink)}
.article .sec p{max-width:40em;margin-bottom:var(--s3)}
footer{border-top:1px solid var(--line);background:var(--surface);margin-top:var(--s8);padding-block:var(--s6)}footer p{font-size:13px;color:var(--muted);max-width:60em;margin-bottom:var(--s2)}footer a{color:var(--ink-2)}
@media(max-width:520px){.tl li{grid-template-columns:92px 1fr}.bars .r{grid-template-columns:90px 1fr}.bars .r>.num{grid-column:1/-1}.photo .ph{aspect-ratio:16/9}.field{aspect-ratio:16/7}}
/* 記事行の絵(写真か、記事の数字から描いた小さな図) */
.thw{float:right;display:block;width:96px;height:64px;margin:4px 0 6px 14px;overflow:hidden;background:var(--g-air)}.thw img,.thw svg{display:block;width:100%;height:100%;object-fit:cover}.thw.fg{background:#fff}
@media(max-width:520px){.thw{width:76px;height:52px;margin-left:10px}}
.kick{font-size:12px;font-weight:500;letter-spacing:.12em;color:var(--muted);text-transform:uppercase;margin-bottom:var(--s2)}
.hl{text-decoration:none;background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;transition:background-size .45s cubic-bezier(.2,.7,.2,1),color .3s ease}.hl:hover,.hl:focus-visible{background-size:100% 1px}
.cgrid{display:grid;gap:var(--s5) var(--s4);grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}@media(min-width:760px){.cgrid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}}
.ccard{border-top:1px solid var(--line);padding-top:var(--s3);min-width:0}.ccard>a.pic{display:block;margin-bottom:var(--s2)}.ccard .ph,.ccard .field,.ccard .cfig{aspect-ratio:3/2;display:block;overflow:hidden}.ccard .cfig{background:#fff}.ccard .cfig svg{display:block;width:100%;height:100%}
.ccard .field span{position:absolute;left:12px;bottom:8px;font-size:32px;font-weight:300;line-height:1;color:var(--ink);letter-spacing:.04em}.ccard h3{font-size:16px;font-weight:500;line-height:1.5}.ccard h3 a{color:var(--ink)}.ccard .sub{margin-top:2px}
.prog{position:fixed;top:0;left:0;right:0;height:2px;z-index:30;pointer-events:none}.prog i{display:block;height:100%;background:var(--accent);transform:scaleX(0);transform-origin:0 50%}
/* 動き(付加。JS が無いときは全部そのまま見える) */
.js .rv{opacity:0;transform:translateY(12px);transition:opacity .5s ease,transform .5s cubic-bezier(.2,.7,.2,1)}.js .rv.in{opacity:1;transform:none}
.js img.fd{opacity:0;transition:opacity .9s ease,transform 1.2s cubic-bezier(.2,.7,.2,1)}.js img.fd.ld{opacity:1}
.ph img,.thw img{transition:transform 1.2s cubic-bezier(.2,.7,.2,1),opacity .9s ease}a:hover>.ph img,.rows li:hover .thw img,.ccard:hover .ph img{transform:scale(1.03)}
@media (prefers-reduced-motion:no-preference){.cover:before{background-size:170% 170%;animation:acd-drift 26s ease-in-out 1 both}.cover .b1{animation:acd-float 30s ease-in-out 1 both}.cover .b2{animation:acd-float2 30s ease-in-out 1 both}}
@keyframes acd-drift{from{background-position:0% 0%}to{background-position:100% 100%}}@keyframes acd-float{to{transform:translate(-40px,24px)}}@keyframes acd-float2{to{transform:translate(30px,-16px)}}
@media print{.js .rv,.js img.fd{opacity:1!important;transform:none!important}.prog{display:none}}
@media (prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.js .rv,.js img.fd{opacity:1!important;transform:none!important}a:hover>.ph img,.rows li:hover .thw img,.ccard:hover .ph img{transform:none}.hl{background-size:0 1px}.hl:hover{text-decoration:underline}}
