:root{
  --bg:#faf7f0;
  --surface:#ffffff;
  --paper-2:#f3eee1;
  --ink:#1e2a3a;
  --muted:#556070;
  --accent:#23395b;
  --accent-2:#c98b2b;
  --accent-2-ink:#7a5314;
  --line:#d9d2c3;
  --deep:#1b2a41;
  --g1:#e9d8a6;
  --g2:#c98b2b;
  --g3:#8d6e4b;
  --g4:#5b6b73;
  --g5:#2f3a40;
  --font-head:"Zen Old Mincho","Noto Serif JP","Hiragino Mincho ProN","Yu Mincho",serif;
  --font-body:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
  --font-mono:"Roboto Mono",ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;
  --header-h:68px;
  --contour:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='520' height='360' viewBox='0 0 520 360'%3E%3Cg fill='none' stroke='%2323395b' stroke-width='1.1' opacity='.16'%3E%3Cpath d='M60 190C70 120 150 80 230 96S340 70 380 130 470 200 430 270 300 330 220 304 50 260 60 190Z'/%3E%3Cpath d='M92 192C100 140 160 112 226 124S324 104 354 150 430 204 400 254 296 300 228 280 84 240 92 192Z'/%3E%3Cpath d='M126 194C132 158 176 138 226 148S306 134 326 168 386 208 366 240 292 272 234 256 120 226 126 194Z'/%3E%3Cpath d='M160 196C164 176 192 164 226 170S284 162 296 184 336 208 326 226 284 244 240 234 156 216 160 196Z'/%3E%3Cpath d='M194 198C196 190 210 186 226 190S258 188 264 198 280 212 270 218 250 226 236 220 192 210 194 198Z'/%3E%3Cpath d='M400 40C430 20 480 30 500 60S520 110 480 124 410 110 396 80 380 52 400 40Z'/%3E%3Cpath d='M420 52C440 40 468 46 480 64S488 96 466 104 424 96 418 78 408 58 420 52Z'/%3E%3Cpath d='M20 320C60 300 100 310 130 330S60 360 20 350Z'/%3E%3C/g%3E%3C/svg%3E");
  --ticks:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='40' viewBox='0 0 14 40'%3E%3Cpath d='M0 1H14M0 11H6M0 21H6M0 31H6' stroke='%2323395b' stroke-width='1.2' fill='none'/%3E%3C/svg%3E");
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:6rem}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:16px;line-height:1.95;letter-spacing:.02em;overflow-x:hidden}
img{display:block;max-width:100%;height:auto}
a{color:var(--accent);text-underline-offset:.22em;text-decoration-thickness:1px}
a:hover{color:var(--accent-2-ink)}
h1,h2,h3,h4,h5,h6{text-wrap:balance;word-break:auto-phrase;line-break:strict;overflow-wrap:break-word}
.skip-link{position:fixed;left:1rem;top:-5rem;background:#fff;padding:.6rem 1.1rem;z-index:999;border-radius:4px}
.skip-link:focus{top:1rem}
.icon{width:1.5em;height:1.5em;flex:none;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}

/* header: 測量野帳の紙色、下に地層ストライプ */
.site-header{position:sticky;top:0;z-index:100;background:var(--surface);border-bottom:1px solid var(--line)}
.site-header:before{content:"";display:block;height:5px;background:linear-gradient(90deg,var(--g1) 0 20%,var(--g2) 20% 40%,var(--g3) 40% 60%,var(--g4) 60% 80%,var(--g5) 80% 100%)}
.header-inner{max-width:1280px;height:var(--header-h);margin:auto;padding:0 24px;display:flex;align-items:center;justify-content:space-between;gap:18px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--accent);line-height:1.3;flex:0 1 auto;min-width:0}
.brand-mark{flex:none;display:grid;place-items:center;width:42px;height:42px;background:var(--accent);color:var(--g1);border-radius:4px}
.brand-mark .icon{width:28px;height:28px;stroke-width:1.5}
.brand strong{display:block;font-family:var(--font-head);font-weight:900;font-size:1.02rem;letter-spacing:.04em;color:var(--accent)}
.brand small{display:block;color:var(--muted);font-family:var(--font-mono);font-size:.56rem;letter-spacing:.14em}
.menu-toggle{display:none;flex:none;width:46px;height:42px;padding:10px;border:1px solid var(--accent);background:var(--surface);border-radius:4px;cursor:pointer}
.menu-toggle span{display:block;height:2px;background:var(--accent);margin:5px 0;transition:transform .2s,opacity .2s}
.menu-toggle.is-active span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.menu-toggle.is-active span:nth-child(2){opacity:0}
.menu-toggle.is-active span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.global-nav ul{margin:0;padding:0;list-style:none;display:flex;align-items:center;gap:2px}
.global-nav a{display:block;padding:8px 10px;color:var(--ink);font-size:.8rem;font-weight:500;text-decoration:none;border-radius:4px;white-space:nowrap;border-bottom:2px solid transparent}
.global-nav a:hover{background:var(--paper-2);color:var(--accent)}
.global-nav a[aria-current=page]{background:var(--accent);color:#fff}
.global-nav a.is-compare:not([aria-current=page]){border-bottom-color:var(--accent-2)}

/* notices */
.pr-notice{margin:0;background:var(--paper-2);color:var(--muted);font-size:.72rem;letter-spacing:.03em;text-align:center;padding:.45em 1em;border-bottom:1px solid var(--line)}
.site-disclaimer{background:var(--paper-2);border-top:1px solid var(--line)}
.site-disclaimer p{max-width:1120px;margin:0 auto;padding:18px 24px;font-size:.72rem;line-height:1.9;color:var(--muted)}
.source-note{margin:0 0 1.6em;padding:14px 18px;background:#fff;border:1px solid var(--line);border-left:5px solid var(--accent-2);font-size:.88rem;line-height:1.8;color:var(--ink);border-radius:0 4px 4px 0}
.updated{margin:0 0 1.4em;color:var(--muted);font-family:var(--font-mono);font-size:.78rem;letter-spacing:.04em}

/* hero (index): 等高線パターン + 柱状図コラム */
.hero-contour{position:relative;overflow:hidden;background-color:var(--bg);background-image:var(--contour);background-size:520px 360px;border-bottom:1px solid var(--line)}
.hero-grid{position:relative;max-width:1180px;margin:auto;padding:64px 24px 72px;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:56px;align-items:center}
.hero-copy{position:relative}
.eyebrow{display:inline-block;margin:0 0 14px;padding:2px 12px;border:1px solid var(--accent);color:var(--accent);font-family:var(--font-mono);font-size:.68rem;font-weight:500;letter-spacing:.18em;border-radius:2px;background:rgba(255,255,255,.7)}
.hero-copy h1{font-family:var(--font-head);font-weight:900;font-size:clamp(1.9rem,3.9vw,3.4rem);line-height:1.5;letter-spacing:.03em;margin:0 0 18px;color:var(--accent)}
.hero-lead{max-width:560px;margin:0 0 26px;color:var(--ink);font-size:1rem}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;list-style:none;padding:0;margin:0}
.btn{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;background:var(--accent);color:#fff;border:2px solid var(--accent-2);border-radius:4px;font-size:.88rem;font-weight:700;text-decoration:none;letter-spacing:.04em}
.btn:hover{background:var(--deep);color:#fff}
.btn.is-ghost{background:transparent;color:var(--accent);border-color:var(--accent)}
.btn.is-ghost:hover{background:var(--accent);color:#fff}
.hero-figure{position:relative;margin:0 0 0 46px}
.hero-figure img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:16px;border:1px solid var(--line);box-shadow:0 14px 34px rgba(27,42,65,.16)}
.core-column{position:absolute;left:-46px;top:22px;bottom:22px;width:46px;display:flex;flex-direction:column;border-radius:4px;overflow:hidden;box-shadow:0 6px 18px rgba(27,42,65,.22);z-index:2}
.core-column span{flex:1;display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:.56rem;letter-spacing:0;color:#fff;writing-mode:horizontal-tb;white-space:nowrap}
.core-column span:nth-child(1){background:var(--g1);color:var(--g5)}
.core-column span:nth-child(2){background:var(--g2);color:#2b1c05}
.core-column span:nth-child(3){background:var(--g3)}
.core-column span:nth-child(4){background:var(--g4)}
.core-column span:nth-child(5){background:var(--g5)}

/* page hero (下層): ヒーローの縮小版 */
.page-hero{position:relative;overflow:hidden;background-color:var(--bg);background-image:var(--contour);background-size:520px 360px;border-bottom:1px solid var(--line)}
.page-hero-inner{max-width:1180px;margin:auto;padding:38px 24px 42px;display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:44px;align-items:center}
.page-hero h1{font-family:var(--font-head);font-weight:900;font-size:clamp(1.55rem,3vw,2.35rem);line-height:1.55;letter-spacing:.03em;margin:0 0 12px;color:var(--accent)}
.page-hero .hero-lead{margin:0;font-size:.95rem;max-width:640px}
.page-hero-fig{position:relative;margin:0 0 0 22px}
.page-hero-fig img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:16px;border:1px solid var(--line)}
.mini-strata{position:absolute;left:-22px;top:14px;bottom:14px;width:12px;display:flex;flex-direction:column;border-radius:3px;overflow:hidden}
.mini-strata i{flex:1;display:block}
.mini-strata i:nth-child(1){background:var(--g1)}
.mini-strata i:nth-child(2){background:var(--g2)}
.mini-strata i:nth-child(3){background:var(--g3)}
.mini-strata i:nth-child(4){background:var(--g4)}
.mini-strata i:nth-child(5){background:var(--g5)}

/* layout */
.container{width:min(1120px,calc(100% - 48px));margin:auto}
.content-layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:56px;align-items:start;padding-top:52px;padding-bottom:90px}
.article{min-width:0;counter-reset:sec}
.article>section{margin:0 0 56px}
.article>section:not(.related):not(.related-sites)>h2:before{counter-increment:sec;content:"GL-" counter(sec,decimal-leading-zero);display:block;margin-bottom:4px;color:var(--accent-2-ink);font-family:var(--font-mono);font-size:.74rem;font-weight:500;letter-spacing:.16em}
.article h2{font-family:var(--font-head);font-weight:900;font-size:clamp(1.4rem,2.3vw,1.8rem);line-height:1.6;letter-spacing:.03em;margin:0 0 24px;padding:2px 0 4px 26px;color:var(--accent);background:var(--ticks) repeat-y left top;border-left:2px solid var(--accent)}
.article h3{font-family:var(--font-head);font-weight:700;font-size:1.15rem;line-height:1.65;margin:1.8em 0 .7em;color:var(--accent);padding:2px 0 2px 14px;border-left:6px solid var(--g2)}
.article h4{font-family:var(--font-head);margin:1.4em 0 .5em;color:var(--accent)}
.article p{margin:0 0 1.35em}
.article ul,.article ol{margin:0 0 1.4em;padding-left:1.4em}
.article li{margin-bottom:.5em}
.article blockquote{margin:0 0 1.4em;padding:12px 18px;border-left:4px solid var(--g3);background:var(--paper-2);font-size:.92rem;border-radius:0 4px 4px 0}
.notice-box{background:#fff;border:1px solid var(--line);border-top:4px solid var(--g2);border-radius:4px;padding:20px 24px;margin:0 0 1.6em;font-size:.92rem}
.notice-box strong{display:block;font-family:var(--font-head);margin-bottom:.4em;color:var(--accent)}
.fact-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:0 0 1.8em;padding:0;list-style:none}
.fact-strip li{background:#fff;border:1px solid var(--line);border-left:6px solid var(--g2);border-radius:4px;padding:14px 16px;font-size:.82rem;line-height:1.7;margin:0}
.fact-strip li:nth-child(2){border-left-color:var(--g3)}
.fact-strip li:nth-child(3){border-left-color:var(--g4)}
.fact-strip b{display:block;font-family:var(--font-mono);font-weight:500;font-size:1.4rem;color:var(--accent);line-height:1.4}
.depth-list{list-style:none;margin:0 0 1.6em;padding:0;display:grid;gap:10px;counter-reset:depth}
.depth-list li{counter-increment:depth;position:relative;background:#fff;border:1px solid var(--line);border-radius:4px;padding:12px 16px 12px 84px;margin:0;font-size:.92rem}
.depth-list li:before{content:"GL-" counter(depth,decimal-leading-zero);position:absolute;left:0;top:0;bottom:0;width:64px;display:grid;place-items:center;background:var(--g1);color:var(--g5);font-family:var(--font-mono);font-size:.74rem;border-right:1px solid var(--line)}
.depth-list li:nth-child(2):before{background:var(--g2);color:#2b1c05}
.depth-list li:nth-child(3):before{background:var(--g3);color:#fff}
.depth-list li:nth-child(4):before{background:var(--g4);color:#fff}
.depth-list li:nth-child(5):before{background:var(--g5);color:#fff}
.depth-list li:nth-child(6):before{background:var(--g1);color:var(--g5)}
.depth-list strong{display:block;font-family:var(--font-head);color:var(--accent);margin-bottom:2px}

/* compare table */
.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 0 .7em;border:1px solid var(--line);border-radius:4px;background:#fff}
.compare-table{width:100%;min-width:1000px;border-collapse:collapse;font-size:.84rem;line-height:1.7;margin:0}
.compare-table th,.compare-table td{border:1px solid var(--line);padding:.7em .85em;text-align:left;vertical-align:top;white-space:normal}
.compare-table thead th{background:var(--accent);color:#fff;font-family:var(--font-head);font-weight:700;font-size:.82rem;border-color:#33507d}
.compare-table tbody th[scope=row]{background:var(--paper-2);font-family:var(--font-head);font-weight:700;color:var(--accent);min-width:9em}
.compare-table tbody tr:nth-child(even) td{background:#faf8f2}
.compare-table tbody tr:hover td{background:#f3ecd6}
.compare-note{font-size:.78rem;color:var(--muted);margin:0 0 1.8em;line-height:1.85}
.player-profile{margin:0 0 1.6em}
.player-profile h3{margin-top:1.4em}

/* sidebar */
.sidebar{position:sticky;top:calc(var(--header-h) + 22px);display:grid;gap:22px}
.sidebar nav,.ad-slot{background:#fff;border:1px solid var(--line);padding:22px;border-radius:4px}
.sidebar nav{border-left:6px solid var(--accent)}
.sidebar h2,.sidebar nav h2{display:flex;align-items:center;gap:8px;font-family:var(--font-head);font-weight:900;font-size:.98rem;margin:0 0 12px;color:var(--accent)}
.sidebar h2 .icon{width:1.25em;height:1.25em;color:var(--accent-2-ink)}
.sidebar ol{margin:0;padding-left:1.15rem}
.sidebar li+li{margin-top:8px}
.sidebar a{font-size:.83rem}
.ad-slot{border-left:6px solid var(--g2)}
.ad-slot span{display:block;color:var(--muted);font-family:var(--font-mono);font-size:.58rem;letter-spacing:.18em;border-bottom:1px solid var(--line);margin-bottom:12px}
.ad-slot strong{display:block;font-family:var(--font-head);line-height:1.55;color:var(--accent)}
.ad-slot p{font-size:.78rem;line-height:1.7;margin:.5em 0 .8em}
.ad-slot>a{display:inline-block;background:var(--accent);color:#fff;padding:8px 18px;font-size:.8rem;text-decoration:none;border-radius:4px;border:2px solid var(--accent-2)}
.ad-slot>a:hover{background:var(--deep);color:#fff}
.sidebar-links{margin:0;padding:0;list-style:none;display:grid;gap:9px}
.sidebar-links a{display:block}

/* related */
.related{border-top:1px solid var(--line);padding-top:48px}
.related-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.related-grid article{background:#fff;border:1px solid var(--line);border-left:6px solid var(--g3);padding:20px;border-radius:4px}
.related-grid article:nth-child(2){border-left-color:var(--g4)}
.related-grid article:nth-child(3){border-left-color:var(--g2)}
.related-grid h3{font-size:.98rem;margin:0 0 8px;padding:0;border:0}
.related-grid p{font-size:.8rem;line-height:1.7;margin:0;color:var(--muted)}
.related-sites{background:var(--paper-2);padding:28px 30px;border-radius:4px;border:1px solid var(--line)}
.related-sites h2{background:none;border-left:0;padding:0 0 0 0;margin-bottom:16px}
.related-sites ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.related-sites a{display:flex;align-items:baseline;gap:16px;text-decoration:none}
.related-sites strong{min-width:150px;color:var(--accent)}
.related-sites span{font-size:.8rem;color:var(--muted)}

/* index */
.intro-block{max-width:880px;margin:0 auto 70px}
.intro-block h2{display:flex;align-items:center;gap:12px;font-family:var(--font-head);font-weight:900;font-size:clamp(1.45rem,2.5vw,2rem);line-height:1.6;margin:0 0 20px;color:var(--accent)}
.intro-block h2 .icon{width:1.4em;height:1.4em;color:var(--accent-2-ink)}
.stage-list{list-style:none;margin:30px 0 0;padding:0;display:grid;grid-template-columns:repeat(5,1fr);gap:0;counter-reset:stage;border:1px solid var(--line);border-radius:4px;overflow:hidden}
.stage-list li{counter-increment:stage;position:relative;background:#fff;padding:16px 12px 14px;font-size:.8rem;line-height:1.7;margin:0;text-align:left;border-top:8px solid var(--g1)}
.stage-list li:nth-child(2){border-top-color:var(--g2)}
.stage-list li:nth-child(3){border-top-color:var(--g3)}
.stage-list li:nth-child(4){border-top-color:var(--g4)}
.stage-list li:nth-child(5){border-top-color:var(--g5)}
.stage-list li+li{border-left:1px solid var(--line)}
.stage-list li:before{content:"STEP " counter(stage);display:block;margin-bottom:4px;color:var(--accent-2-ink);font-family:var(--font-mono);font-size:.62rem;letter-spacing:.1em}
.stage-list strong{display:block;font-family:var(--font-head);color:var(--accent);margin-bottom:4px;font-size:.95rem}
.index-section{margin:0 0 80px}
.index-section>.container>h2,.index-section>h2{font-family:var(--font-head);font-weight:900;font-size:clamp(1.4rem,2.4vw,1.9rem);margin:0 0 8px;color:var(--accent);padding-left:20px;border-left:2px solid var(--accent);background:var(--ticks) repeat-y left top}
.index-section p.section-lead{color:var(--muted);margin:0 0 26px;font-size:.92rem;padding-left:22px}
.page-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.page-card{position:relative;background:#fff;border:1px solid var(--line);border-left:10px solid var(--g1);padding:20px 22px 20px 22px;border-radius:4px}
.page-card:nth-child(5n+2){border-left-color:var(--g2)}
.page-card:nth-child(5n+3){border-left-color:var(--g3)}
.page-card:nth-child(5n+4){border-left-color:var(--g4)}
.page-card:nth-child(5n+5){border-left-color:var(--g5)}
.page-card .card-top{display:flex;align-items:center;gap:10px;margin-bottom:8px;color:var(--accent-2-ink)}
.page-card .num{font-family:var(--font-mono);font-weight:500;font-size:.8rem;letter-spacing:.12em;color:var(--accent-2-ink)}
.page-card .icon{width:1.7em;height:1.7em;margin-left:auto;color:var(--accent)}
.page-card.is-compare{background:var(--accent);border-color:var(--accent);color:#fff}
.page-card.is-compare .num{color:var(--g1)}
.page-card.is-compare .icon{color:var(--g1)}
.page-card.is-compare h3 a,.page-card.is-compare p{color:#fff}
.page-card .badge{display:inline-block;padding:0 8px;background:var(--g1);color:var(--g5);font-family:var(--font-mono);font-size:.62rem;font-weight:500;letter-spacing:.14em;border-radius:2px}
.page-card h3{margin:0 0 8px;font-family:var(--font-head);font-weight:700;font-size:1.08rem;line-height:1.6}
.page-card h3 a{color:var(--accent);text-decoration:none}
.page-card h3 a:hover{text-decoration:underline}
.page-card p{margin:0;font-size:.84rem;line-height:1.8;color:#3a4657}
.stance-list{margin:0;padding:0;list-style:none;display:grid;gap:10px}
.stance-list li{background:#fff;border:1px solid var(--line);border-left:5px solid var(--g2);padding:12px 18px;border-radius:0 4px 4px 0;font-size:.88rem;margin:0}
.spacer-lg{height:44px}
.after-list{margin-top:1.6em}
.stance-title{font-family:var(--font-head);color:var(--accent);margin:2em 0 .8em}

/* footer: 藍 */
.site-footer{position:relative;background:var(--deep);color:#d7deea;padding:58px 24px 24px;border-top:5px solid var(--g2)}
.footer-grid{max-width:1120px;margin:auto;display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:56px}
.footer-grid h2{font-family:var(--font-head);font-weight:900;font-size:1rem;color:#fff;margin:0 0 14px}
.footer-grid p{font-size:.78rem;max-width:380px;color:#b3bfd1;margin:0}
.footer-grid nav{display:flex;flex-direction:column;align-items:flex-start}
.footer-grid a{color:#d7deea;font-size:.8rem;margin-bottom:8px;text-decoration:none}
.footer-grid a:hover{color:#fff;text-decoration:underline}
.footer-note{max-width:1120px;margin:26px auto 0;font-size:.72rem;color:#a7b4c8;line-height:1.9;border-top:1px solid #34476a;padding-top:18px}
.footer-links{max-width:1120px;margin:18px auto 0;padding-top:18px;border-top:1px solid #34476a;display:flex;flex-wrap:wrap;gap:1rem}
.footer-links a{color:#d7deea;font-size:.78rem;text-decoration:none}
.footer-links a:hover{color:#fff;text-decoration:underline}
.copyright{max-width:1120px;margin:18px auto 0;font-family:var(--font-mono);font-size:.65rem;color:#8ea0bb}
.footer-strata{height:8px;max-width:1120px;margin:34px auto 0;display:flex;border-radius:2px;overflow:hidden}
.footer-strata i{flex:1;display:block}
.footer-strata i:nth-child(1){background:var(--g1)}
.footer-strata i:nth-child(2){background:var(--g2)}
.footer-strata i:nth-child(3){background:var(--g3)}
.footer-strata i:nth-child(4){background:var(--g4)}
.footer-strata i:nth-child(5){background:var(--g5)}
.no-scroll{overflow:hidden}

@media(max-width:1340px){
  .header-inner{padding:0 18px;gap:12px}
  .global-nav a{padding:8px 7px;font-size:.76rem}
  .brand small{display:none}
}
@media(max-width:1060px){
  :root{--header-h:62px}
  .menu-toggle{display:block}
  .global-nav{display:none;position:fixed;left:0;right:0;top:calc(var(--header-h) + 5px);height:calc(100vh - var(--header-h) - 5px);background:var(--surface);overflow:auto;border-top:1px solid var(--line)}
  .global-nav.is-open{display:block}
  .global-nav ul{display:block;padding:14px 22px 40px}
  .global-nav a{font-size:.95rem;padding:14px 8px;border-radius:0;border-bottom:1px solid var(--line)}
  .global-nav a.is-compare:not([aria-current=page]){border-bottom-color:var(--line);box-shadow:inset 4px 0 0 var(--accent-2);padding-left:14px}
  .global-nav a[aria-current=page]{border-left:4px solid var(--accent-2)}
  .hero-grid{grid-template-columns:1fr;gap:28px;padding:36px 18px 44px}
  .hero-figure{order:-1;margin:0}
  .hero-figure img{aspect-ratio:16/9}
  .core-column{left:0;right:0;top:auto;bottom:auto;width:auto;height:12px;position:relative;flex-direction:row;margin:0 0 10px;box-shadow:none}
  .core-column span{font-size:0;color:transparent}
  .page-hero-inner{grid-template-columns:1fr;gap:22px;padding:26px 18px 30px}
  .page-hero-fig{order:-1;margin:0}
  .page-hero-fig img{aspect-ratio:16/9;max-height:220px;width:100%}
  .mini-strata{left:0;right:0;top:auto;bottom:auto;width:auto;height:8px;position:relative;flex-direction:row;margin:0 0 8px}
  .container{width:calc(100% - 36px)}
  .content-layout{grid-template-columns:1fr;gap:40px;padding-top:40px;padding-bottom:60px}
  .sidebar{position:static}
  .article>section{margin-bottom:46px}
  .related-grid{grid-template-columns:1fr}
  .stage-list{grid-template-columns:1fr}
  .stage-list li+li{border-left:0;border-top:1px solid var(--line)}
  .fact-strip{grid-template-columns:1fr}
  .page-grid{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr;gap:30px}
  .related-sites a{display:block}
  .related-sites strong{display:block}
}
@media(max-width:480px){
  .brand strong{font-size:.82rem;letter-spacing:.01em}
  .brand{gap:9px}
  .brand-mark{width:36px;height:36px}
  .hero-copy h1{font-size:clamp(1.7rem,7.2vw,2.2rem)}
  .article h3{font-size:1.05rem}
  .depth-list li{padding-left:74px}
  .depth-list li:before{width:56px;font-size:.68rem}
}

/* LATEST-COMMENTARY:START */
.latest-commentary {
  padding: 3rem 0;
}
/* .container を持たないサイトでも端に張り付かないための保険。
   :where() は詳細度0なので、サイト側の .container 定義が常に優先される。 */
:where(.latest-commentary .container) {
  max-width: 1200px;
  margin-inline: auto;
  padding-inline: 1rem;
}
.latest-commentary h2 {
  margin-bottom: 1.25rem;
}
.latest-commentary-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.latest-commentary-list li {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.25rem 1rem;
  padding: 0.75rem 0;
  border-bottom: 1px solid var(--line, #e5e5e5);
}
.latest-commentary-list time {
  flex: 0 0 auto;
  color: var(--muted, #666);
  font-size: 0.9rem;
  font-variant-numeric: tabular-nums;
}
.latest-commentary-list a {
  flex: 1 1 16rem;
  min-width: 0;
  color: var(--ink, #222);
  text-decoration: none;
  overflow-wrap: anywhere;
  word-break: break-word;
}
.latest-commentary-list a:hover {
  color: var(--accent, #0b5);
  text-decoration: underline;
}
.latest-commentary-more {
  margin-top: 1.25rem;
}
.latest-commentary-more a {
  color: var(--accent, #0b5);
  text-decoration: none;
  font-weight: 600;
}
.latest-commentary-more a:hover {
  text-decoration: underline;
}
@media (max-width: 600px) {
  .latest-commentary-list li {
    flex-direction: column;
    gap: 0.2rem;
  }
  /* 縦積み時に flex-basis(16rem) が高さに効かないよう auto に戻す */
  .latest-commentary-list a,
  .latest-commentary-list time {
    flex: 0 0 auto;
  }
}
/* LATEST-COMMENTARY:END */

.latest-commentary:not(:has(li)) {
  display: none;
}

/* Keep the sidebar in document flow unless its full contents fit the viewport. */
@media (min-width:1201px){
html body{overflow-x:clip!important}
}
@media (min-width: 1201px) {
  html body aside.sidebar {
    position: static;
  }
}
@media (min-width: 1201px) {
  html body aside.sidebar.sidebar--sticky-fit {
    position: sticky;
    top: var(--sidebar-sticky-top, 104px);
    align-self: start;
  }
}
