:root{
  --deep:#0b3b49;
  --teal:#0f4c5c;
  --teal-mid:#1f7083;
  --teal-pale:#dcebee;
  --sand:#e9dcc3;
  --sand-soft:#f4ede0;
  --sand-deep:#b99a5f;
  --sand-ink:#6d5226;
  --foam:#faf7f0;
  --white:#fff;
  --ink:#14272d;
  --muted:#586a70;
  --line:#ddd3bd;
  --serif:"Shippori Mincho","Noto Serif JP","Hiragino Mincho ProN","Yu Mincho",serif;
  --sans:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
  --header-h:70px;
  --wave:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='10' viewBox='0 0 48 10'%3E%3Cpath d='M0 5 Q12 -1 24 5 T48 5' fill='none' stroke='%23b99a5f' stroke-width='2'/%3E%3C/svg%3E");
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:6rem}
body{margin:0;background:var(--foam);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.95;letter-spacing:.02em;overflow-x:hidden}
img{display:block;max-width:100%;height:auto}
a{color:var(--teal-mid);text-underline-offset:.22em;text-decoration-thickness:1px}
a:hover{color:var(--sand-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}

/* header */
.site-header{position:sticky;top:0;z-index:100;background:var(--deep);border-bottom:3px solid var(--sand-deep)}
.header-inner{max-width:1260px;height:var(--header-h);margin:auto;padding:0 28px;display:flex;align-items:center;justify-content:space-between;gap:22px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--sand);line-height:1.3;flex:0 1 auto;min-width:0}
.brand-mark{flex:none}
.brand-mark{display:grid;place-items:center;width:40px;height:40px;background:var(--sand);color:var(--deep);border-radius:50%;font-family:var(--serif);font-weight:800;font-size:1.15rem;box-shadow:0 0 0 3px rgba(233,220,195,.25)}
.brand strong{display:block;font-family:var(--serif);font-size:1.02rem;letter-spacing:.05em;color:#fff}
.brand small{display:block;color:#a9c4c9;font-size:.55rem;letter-spacing:.22em}
.menu-toggle{display:none;flex:none;width:46px;height:42px;padding:9px;border:1px solid rgba(233,220,195,.6);background:transparent;border-radius:8px;cursor:pointer}
.menu-toggle span{display:block;height:2px;background:var(--sand);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 11px;color:#d8e6e8;font-size:.8rem;font-weight:500;text-decoration:none;border-radius:20px;white-space:nowrap}
.global-nav a:hover{background:rgba(233,220,195,.16);color:#fff}
.global-nav a[aria-current=page]{background:var(--sand);color:var(--deep)}
.global-nav a.is-compare:not([aria-current=page]){box-shadow:inset 0 -2px 0 var(--sand-deep);border-radius:6px 6px 0 0}

/* notices */
.pr-notice{margin:0;background:var(--sand-soft);color:var(--sand-ink);font-size:.72rem;letter-spacing:.03em;text-align:center;padding:.45em 1em;border-bottom:1px solid var(--line)}
.site-disclaimer{background:var(--teal-pale);border-top:1px solid #bdd5da}
.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:var(--sand-soft);border-left:4px solid var(--sand-deep);font-size:.88rem;line-height:1.8;color:var(--sand-ink);border-radius:0 8px 8px 0}
.updated{margin:0 0 1.4em;color:var(--muted);font-size:.8rem;letter-spacing:.04em}
.updated time{font-weight:500}

/* hero */
.hero-block{position:relative;max-width:1440px;margin:auto;background:var(--deep);min-height:480px;display:grid;align-items:end;overflow:hidden}
.hero-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-block:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,43,54,.25) 0%,rgba(8,43,54,.55) 45%,rgba(8,43,54,.88) 100%);z-index:1}
.hero-block:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:34px;z-index:2;background:var(--foam);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 34' preserveAspectRatio='none'%3E%3Cpath d='M0 34V16C150 -2 300 -2 450 16S750 34 900 16 1100 2 1200 14V34Z'/%3E%3C/svg%3E") center/100% 100% no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 34' preserveAspectRatio='none'%3E%3Cpath d='M0 34V16C150 -2 300 -2 450 16S750 34 900 16 1100 2 1200 14V34Z'/%3E%3C/svg%3E") center/100% 100% no-repeat}
.hero-copy{position:relative;z-index:3;color:#fff;width:min(1120px,calc(100% - 48px));margin:0 auto;padding:100px 0 78px}
.eyebrow{display:inline-block;margin:0 0 16px;padding:3px 14px;background:var(--sand);color:var(--deep);font-size:.68rem;font-weight:700;letter-spacing:.24em;border-radius:20px;text-shadow:none}
.hero-copy h1{font-family:var(--serif);font-weight:700;font-size:clamp(1.9rem,3.9vw,3.4rem);line-height:1.5;letter-spacing:.04em;margin:0 0 18px;max-width:1040px;color:#fff;text-shadow:0 3px 22px rgba(0,0,0,.8),0 1px 5px rgba(0,0,0,.85)}
.hero-lead{max-width:760px;margin:0;color:#fff;font-size:1.02rem;text-shadow:0 2px 12px rgba(0,0,0,.8),0 1px 3px rgba(0,0,0,.75)}
.hero-chips{display:flex;flex-wrap:wrap;gap:10px;list-style:none;padding:0;margin:26px 0 0}
.hero-chips a{display:inline-block;padding:7px 16px;border:1px solid rgba(233,220,195,.8);border-radius:20px;color:#fff;font-size:.82rem;text-decoration:none;background:rgba(8,43,54,.6);text-shadow:0 1px 4px rgba(0,0,0,.6)}
.hero-chips a:hover{background:var(--sand);border-color:var(--sand);color:var(--deep);text-shadow:none}

/* 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:56px;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:"№ " counter(sec,decimal-leading-zero);display:block;margin-bottom:6px;color:var(--sand-deep);font-family:var(--serif);font-size:.82rem;font-weight:700;letter-spacing:.2em}
.article h2{font-family:var(--serif);font-size:clamp(1.4rem,2.3vw,1.85rem);line-height:1.6;letter-spacing:.03em;margin:0 0 26px;padding-bottom:16px;color:var(--deep);background:var(--wave) repeat-x left bottom}
.article h3{font-family:var(--serif);font-size:1.15rem;line-height:1.65;margin:1.8em 0 .7em;color:var(--teal);padding:2px 0 2px 14px;border-left:5px solid var(--sand-deep)}
.article h4{font-family:var(--serif);margin:1.4em 0 .5em;color:var(--teal)}
.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(--teal-mid);background:var(--teal-pale);font-size:.92rem;border-radius:0 8px 8px 0}
.article table{width:100%;border-collapse:collapse;margin:0 0 1.4em;font-size:.9rem}
.article th,.article td{border:1px solid var(--line);padding:.65em .8em;text-align:left;vertical-align:top}
.notice-box{background:var(--sand-soft);border:1px solid var(--line);border-radius:14px;padding:20px 24px;margin:0 0 1.6em;font-size:.9rem}
.notice-box strong{display:block;font-family:var(--serif);margin-bottom:.4em;color:var(--deep)}
.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-radius:14px;padding:14px 16px;font-size:.82rem;line-height:1.7;margin:0}
.fact-strip b{display:block;font-family:var(--serif);font-size:1.5rem;color:var(--teal);line-height:1.3}

/* compare table */
.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 0 .7em;border:1px solid var(--line);border-radius:14px;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(--deep);color:#fff;font-family:var(--serif);font-weight:600;font-size:.82rem;border-color:#245765}
.compare-table tbody th[scope=row]{background:var(--sand-soft);font-family:var(--serif);font-weight:700;color:var(--deep);min-width:9em}
.compare-table tbody tr:nth-child(even) td{background:#f8f5ec}
.compare-table tbody tr:hover td{background:var(--teal-pale)}
.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:static;display:grid;gap:22px}
.sidebar nav,.ad-slot{background:#fff;border:1px solid var(--line);padding:22px;border-radius:16px}
.sidebar nav{border-top:4px solid var(--teal)}
.sidebar h2,.sidebar nav h2{font-family:var(--serif);font-size:.98rem;margin:0 0 12px;color:var(--deep)}
.sidebar ol{margin:0;padding-left:1.15rem}
.sidebar li+li{margin-top:8px}
.sidebar a{font-size:.83rem}
.ad-slot{border-top:4px solid var(--sand-deep)}
.ad-slot span{display:block;color:var(--muted);font-size:.58rem;letter-spacing:.18em;border-bottom:1px solid var(--line);margin-bottom:12px}
.ad-slot strong{display:block;font-family:var(--serif);line-height:1.55;color:var(--deep)}
.ad-slot p{font-size:.78rem;line-height:1.7;margin:.5em 0 .8em}
.ad-slot>a{display:inline-block;background:var(--deep);color:#fff;padding:8px 18px;font-size:.8rem;text-decoration:none;border-radius:20px}
.ad-slot>a:hover{background:var(--sand-ink);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-top:4px solid var(--teal-mid);padding:20px;border-radius:14px}
.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(--sand-soft);padding:28px 30px;border-radius:16px}
.related-sites h2{background:none;padding-bottom:0}
.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(--deep)}
.related-sites span{font-size:.8rem;color:var(--muted)}

/* index */
.intro-block{max-width:880px;margin:0 auto 70px}
.intro-block h2{font-family:var(--serif);font-size:clamp(1.45rem,2.5vw,2rem);line-height:1.6;margin:0 0 20px;color:var(--deep)}
.stage-list{list-style:none;margin:30px 0 0;padding:0;display:grid;grid-template-columns:repeat(5,1fr);gap:10px;counter-reset:stage}
.stage-list li{counter-increment:stage;position:relative;background:#fff;border:1px solid var(--line);padding:18px 14px 16px;border-radius:50px 50px 14px 14px;font-size:.8rem;line-height:1.7;margin:0;text-align:center}
.stage-list li:before{content:counter(stage);display:block;margin:0 auto 6px;width:30px;height:30px;line-height:30px;border-radius:50%;background:var(--teal);color:#fff;font-family:var(--serif);font-weight:700}
.stage-list strong{display:block;font-family:var(--serif);color:var(--deep);margin-bottom:4px;font-size:.92rem}
.index-section{margin:0 0 80px}
.index-section>h2{font-family:var(--serif);font-size:clamp(1.4rem,2.4vw,1.9rem);margin:0 0 8px;color:var(--deep)}
.index-section>p.section-lead{color:var(--muted);margin:0 0 26px;font-size:.92rem}
.page-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.page-card{position:relative;background:#fff;border:1px solid var(--line);padding:22px 24px 22px 78px;border-radius:20px}
.page-card .num{position:absolute;left:20px;top:18px;font-family:var(--serif);font-weight:700;font-size:1.9rem;color:var(--sand);line-height:1}
.page-card.is-compare{background:var(--deep);border-color:var(--deep);color:#fff}
.page-card.is-compare .num{color:var(--sand-deep)}
.page-card.is-compare h3 a,.page-card.is-compare p{color:#fff}
.page-card.is-compare .badge{background:var(--sand);color:var(--deep)}
.page-card .badge{display:inline-block;margin-bottom:6px;padding:1px 10px;background:var(--teal-pale);color:var(--teal);font-size:.64rem;font-weight:700;letter-spacing:.14em;border-radius:10px}
.page-card h3{margin:0 0 8px;font-family:var(--serif);font-size:1.06rem;line-height:1.6}
.page-card h3 a{color:var(--deep);text-decoration:none}
.page-card h3 a:hover{text-decoration:underline}
.page-card p{margin:0;font-size:.84rem;line-height:1.8;color:#3d4d52}
.page-card.is-compare h3 a:hover{color:var(--sand)}
.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(--sand-deep);padding:12px 18px;border-radius:0 10px 10px 0;font-size:.88rem;margin:0}

/* footer */
.site-footer{position:relative;background:var(--deep);color:#d4e4e6;padding:58px 24px 24px;border-top:4px solid var(--sand-deep)}
.footer-grid{max-width:1120px;margin:auto;display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:56px}
.footer-grid h2{font-family:var(--serif);font-size:1rem;color:#fff;margin:0 0 14px}
.footer-grid p{font-size:.78rem;max-width:380px;color:#a9c4c9;margin:0}
.footer-grid nav{display:flex;flex-direction:column;align-items:flex-start}
.footer-grid a{color:#d4e4e6;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:#93b3b8;line-height:1.9;border-top:1px solid #24596a;padding-top:18px}
.footer-links{max-width:1120px;margin:18px auto 0;padding-top:18px;border-top:1px solid #24596a;display:flex;flex-wrap:wrap;gap:1rem}
.footer-links a{color:#d4e4e6;font-size:.78rem;text-decoration:none}
.footer-links a:hover{color:#fff;text-decoration:underline}
.copyright{max-width:1120px;margin:18px auto 0;font-size:.65rem;color:#7fa2a8}
.no-scroll{overflow:hidden}

@media(max-width:1340px){
  .header-inner{padding:0 18px;gap:12px}
  .global-nav a{padding:8px 8px;font-size:.76rem}
  .brand small{display:none}
}
@media(max-width:1020px){
  :root{--header-h:62px}
  .header-inner{padding:0 18px}
  .menu-toggle{display:block}
  .global-nav{display:none;position:fixed;left:0;right:0;top:var(--header-h);height:calc(100vh - var(--header-h));background:var(--deep);overflow:auto}
  .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 #24596a;color:#e6f0f1}
  .global-nav a.is-compare:not([aria-current=page]){box-shadow:none;border-radius:0}
  .global-nav a[aria-current=page]{background:rgba(233,220,195,.16);color:#fff;border-left:4px solid var(--sand-deep)}
  .hero-block{min-height:430px}
  .hero-copy{width:calc(100% - 36px);padding:70px 0 62px}
  .hero-copy h1{font-size:clamp(1.7rem,7.2vw,2.3rem)}
  .hero-lead{font-size:.92rem}
  .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:repeat(2,1fr)}
  .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:.8rem;letter-spacing:.02em}
  .brand{gap:9px}
  .page-card{padding:20px 18px 20px 62px}
  .page-card .num{left:14px;font-size:1.6rem}
  .stage-list{grid-template-columns:1fr}
  .article h3{font-size:1.05rem}
}

.spacer-lg {
  height: 36px;
}

.after-list {
  margin-top: 1.6em;
}

.stance-title {
  font-family: var(--serif);
  color: var(--deep);
  margin: 2em 0 .8em;
}

/* 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: #0b5;
  text-decoration: underline;
}
.latest-commentary-more {
  margin-top: 1.25rem;
}
.latest-commentary-more a {
  color: #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 */

/* Short sidebar navigation follows the page; tall navigation remains in normal flow. */
@media (min-width:1021px){
  html body{overflow-x:clip!important}
  html body aside.sidebar.sidebar--fits{position:sticky;top:92px;align-self:start;overflow:visible}
}
