.month-hero{padding-top:68px}
.month-hero h1{font-size:clamp(3rem,6.6vw,6.4rem)}
.month-hero .hero-panel>strong{font-size:7rem;color:#a8d9c7}
.month-hero .hero-panel{background:#18232b}
.month-hero .hero-panel:after{border-color:#f2c84b;border-left-color:transparent;border-bottom-color:transparent}
.month-intro{padding-block:72px 28px}
.month-intro .section-head{margin-bottom:28px}
.month-intro p.lead{font-family:var(--display);font-size:clamp(1.35rem,2.4vw,2rem);line-height:1.45;max-width:980px;margin:0}
.map-section,.trend-section,.oneoff-section,.check-section,.timeline-section,.next-section{padding-block:72px}
.scroll-hint{display:none;font-family:var(--accent);font-size:.78rem;font-weight:700;color:var(--muted);margin:18px 0 -18px;text-align:right}
.scroll-hint span{color:var(--signal)}
.grid-wrap{overflow-x:auto;margin-top:32px;padding-bottom:10px}
.flow-map{border-collapse:collapse;width:100%;min-width:720px;font-size:.86rem;background:var(--white);border:1px solid var(--ink)}
.flow-map th,.flow-map td{padding:16px 14px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.flow-map tr:last-child td{border-bottom:0}
.flow-map th:last-child,.flow-map td:last-child{border-right:0}
.flow-map thead th{font-family:var(--accent);background:var(--ink);color:var(--white);font-size:.75rem;letter-spacing:.04em}
.flow-map tbody th{font-family:var(--display);font-size:1.2rem;white-space:nowrap}
.flow-map td b{display:block;font-family:var(--display);font-size:1.65rem;line-height:1;color:var(--signal);margin-bottom:7px}
.flow-map td a{display:inline-flex;align-items:center;min-height:30px;font-family:var(--accent);font-size:.78rem;color:var(--muted);text-underline-offset:3px}
.map-note,.method-note{font-size:.82rem;color:var(--muted);margin-top:14px}
.trend-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:34px}
.trend-card{background:var(--white);border-top:5px solid var(--signal);padding:28px}
.trend-card.attack{border-color:#d78d1c}
.trend-card.ai{border-color:#08756d}
.trend-card.policy{border-color:#7049af}
.trend-card .tag{margin-bottom:14px}
.trend-card h3{font-family:var(--accent);font-size:clamp(1.55rem,2.25vw,2rem);line-height:1.38;letter-spacing:-.018em;margin:0}
.trend-card>p{color:var(--muted);font-size:.95rem;line-height:1.75}
.evidence{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}
.evidence span{font-family:var(--accent);font-size:.76rem;font-weight:700;margin-right:5px;align-self:center}
.evidence a{display:inline-flex;align-items:center;min-height:32px;font-family:var(--accent);font-size:.78rem;font-weight:700;text-decoration:none;border:1px solid var(--ink);padding:5px 9px}
.evidence a:hover{background:var(--ink);color:var(--white)}
.oneoff-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin-top:30px}
.oneoff{border:1px solid var(--ink);padding:28px}
.oneoff h3{font-family:var(--accent);font-size:1.55rem;line-height:1.42;letter-spacing:-.015em;margin:8px 0 12px}
.oneoff p{color:var(--muted);font-size:.92rem;line-height:1.72}
.check-list{list-style:none;padding:0;margin:30px 0 0;border-top:1px solid var(--ink)}
.check-list li{display:grid;grid-template-columns:132px minmax(0,1fr);gap:24px;padding:24px 0;border-bottom:1px solid var(--line)}
.status{align-self:start;width:max-content;max-width:132px;border:1px solid currentColor;padding:5px 8px;font-family:var(--accent);font-size:.72rem;font-weight:700;color:var(--muted)}
.status.confirmed{color:#08756d;background:rgba(8,117,109,.06)}
.status.quiet{color:#9a5215;background:rgba(215,141,28,.08)}
.status.plan{color:#7049af;background:rgba(112,73,175,.06)}
.check-list h3{font-family:var(--accent);font-size:1.08rem;line-height:1.55;margin:0 0 5px}
.check-list p{font-size:.92rem;line-height:1.7;color:var(--muted);margin:0}
.check-links{display:flex;flex-wrap:wrap;gap:8px 14px;margin-top:11px!important}
.check-links a{display:inline-flex;align-items:center;min-height:30px;font-family:var(--accent);font-size:.78rem;font-weight:700;color:var(--ink);text-underline-offset:4px}
.timeline{--event:#7049af;list-style:none;margin:34px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.timeline li{--event:#7049af;position:relative;display:grid;grid-template-columns:76px minmax(0,1fr);gap:18px;min-height:210px;padding:24px;background:var(--white);border:1px solid var(--line);border-top:6px solid var(--event);overflow:hidden}
.timeline li:after{content:"";position:absolute;width:86px;height:86px;border:18px solid color-mix(in srgb,var(--event) 12%,transparent);border-radius:50%;right:-48px;bottom:-48px}
.timeline .event-sanction{--event:#c33148}
.timeline .event-policy{--event:#0c6d8a}
.timeline .event-effective{--event:#08756d}
.timeline .event-legislation{--event:#7049af}
.timeline .event-research{--event:#b06d08}
.timeline time{display:flex;flex-direction:column;color:var(--event);font-family:var(--accent);font-weight:700;line-height:1}
.timeline time span{font-size:.68rem;letter-spacing:.16em;margin-bottom:7px}
.timeline time b{font-family:var(--display);font-size:2.75rem;font-weight:600;letter-spacing:-.05em}
.timeline .event-kind{margin:0 0 12px;color:var(--event);font-family:var(--accent);font-size:.72rem;font-weight:700;letter-spacing:.08em}
.timeline h3{position:relative;z-index:1;font-family:var(--accent);font-size:1.08rem;line-height:1.5;margin:0}
.timeline li>div>p:last-child{position:absolute;left:118px;bottom:22px;margin:0}
.timeline a{display:inline-flex;align-items:center;min-height:30px;color:var(--ink);font-family:var(--accent);font-size:.76rem;font-weight:700;text-decoration:none;border-bottom:1px solid var(--event)}
.timeline a:hover{color:var(--event)}
.next-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--ink);border:1px solid var(--ink);margin-top:30px}
.next-grid article{background:var(--paper);padding:24px}
.next-grid time{display:block;font-family:var(--accent);color:var(--signal);font-size:.78rem;font-weight:700;margin-bottom:10px}
.next-grid h3{font-family:var(--accent);font-size:1.12rem;line-height:1.5;margin:0}
.archive-row{display:flex;justify-content:space-between;gap:24px;align-items:center;padding:22px 0;border-top:1px solid var(--line);font-size:.84rem}
.archive-row p{margin:0}
.archive-row a{font-family:var(--accent);font-weight:700;text-underline-offset:4px}
.source-boundary{background:#d9d4c9;padding-block:28px}
.source-boundary .shell{display:grid;grid-template-columns:auto 1fr;gap:18px}
.source-boundary strong{font-family:var(--accent);font-size:.74rem;letter-spacing:.08em}
.source-boundary p{margin:0;font-size:.84rem;line-height:1.7;color:#4f5558;max-width:920px}

@media(max-width:980px){
  .timeline{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:820px){
  .trend-grid,.oneoff-grid{grid-template-columns:1fr}
  .next-grid{grid-template-columns:repeat(2,1fr)}
  .month-hero{padding-top:48px}
  .scroll-hint{display:block}
}

@media(max-width:520px){
  .next-grid,.timeline{grid-template-columns:1fr}
  .check-list li{grid-template-columns:1fr;gap:10px}
  .timeline li{grid-template-columns:66px minmax(0,1fr);min-height:176px;padding:20px}
  .timeline time b{font-size:2.35rem}
  .timeline li>div>p:last-child{left:104px;bottom:18px}
  .month-hero h1{font-size:3rem}
  .archive-row{align-items:flex-start;flex-direction:column}
  .source-boundary .shell{grid-template-columns:1fr}
}

@media(max-width:360px){
  .month-hero h1{font-size:2.62rem}
  .trend-card{padding:24px 22px}
  .timeline li{grid-template-columns:58px minmax(0,1fr);gap:14px;padding:18px 16px}
  .timeline li>div>p:last-child{left:88px}
}
