/* Editorial v12. HC+ palette and fonts; original interview-card CSS is imported. */
.top-sr-only { position:absolute; width:1px; height:1px; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.top-editorial { --top-ink:#150201; --top-paper:#f5f3f2; color:#333; }
.top-editorial a { color:inherit; text-decoration:none; }
.top-editorial a:focus-visible,.top-people-strip:focus-visible { outline:2px solid var(--top-ink); outline-offset:4px; }
.top-eyebrow { display:block; font-size:11px; font-weight:700; letter-spacing:.12em; line-height:1.5; }
.top-editorial .section-general { margin:0; }
.top-editorial .top-hero { padding:24px 0 64px; }
.top-feature-grid { display:grid; grid-template-columns:minmax(0,2.15fr) minmax(0,1fr); gap:48px; align-items:start; }
.top-feature-image-link { display:block; }
.top-feature-image { width:100%; display:block; aspect-ratio:16/9; object-fit:contain; background:var(--top-paper); }
.top-feature-caption { display:grid; grid-template-columns:144px minmax(0,1fr); gap:24px; margin-top:24px; }
.top-feature-label { border-right:1px solid var(--top-paper); padding-right:16px; }
.top-feature-label .top-eyebrow { font-family:Montserrat,sans-serif; font-size:11px; letter-spacing:1.32px; line-height:1.5; font-weight:700; white-space:nowrap; }
.top-feature-label>span:last-child { display:block; width:max-content; font-family:"Noto Sans JP",sans-serif; font-size:14px; line-height:1.5; font-weight:600; color:#333; margin-top:6px; white-space:nowrap; }
.top-feature-title-link h3 { margin:8px 0 16px; font-size:25px; line-height:1.6; font-weight:700; letter-spacing:-.025em; }
.top-feature-title-link:hover,.top-text-link:hover { opacity:.6; }
.top-feature-deck { font-size:13px; line-height:1.9; margin:0 0 16px; }
.top-feature-person { display:flex; gap:12px; align-items:center; font-size:12px; font-weight:600; }
.top-feature-person img { width:32px; height:32px; border-radius:50%; object-fit:cover; }
.top-feature-person .small-text { display:block; font-size:10px; font-weight:400; margin-top:2px; }
.top-picks { display:grid; gap:24px; }
.top-story { display:flex; flex-direction:column; min-width:0; }
.top-story-visual { overflow:hidden; background:var(--top-paper); }
.top-story-image { display:block; width:100%; aspect-ratio:16/9; object-fit:contain; transition:transform .25s ease; }
.top-story:hover .top-story-image { transform:scale(1.025); }
.top-story:hover .top-story-title { opacity:.65; }
.top-story-meta { display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 12px; font-size:10px; margin:12px 0 8px; }
.top-story-meta>span { font-weight:600; }
.top-story-meta .small-text { font-size:10px; font-family:Montserrat,sans-serif; letter-spacing:.02em; }
.top-story-title { font-size:17px; line-height:1.7; font-weight:600; margin:0; letter-spacing:-.02em; transition:opacity .2s; }
.top-story--pick .top-story-title { font-size:18px; }
.top-story--pick+.top-story--pick { padding-top:0; border:0; }
.top-section-head { display:flex; justify-content:space-between; align-items:flex-end; gap:24px; margin-bottom:32px; }
.top-section-head h2 { margin:8px 0 0; font-size:32px; line-height:1.5; font-weight:700; letter-spacing:-.04em; }
.top-section-head p { margin:16px 0 0; font-size:14px; }
.top-text-link { display:inline-flex; gap:24px; align-items:center; font-size:12px; font-weight:500; white-space:nowrap; }
.top-text-link>span { font-size:20px; font-weight:400; line-height:1; }
.top-editorial .top-voices { padding:48px 0 40px; background:var(--top-paper); }
/* Preserve original 2:3 layout / 48px gap, 4:3 image / contain and text hierarchy. */
.top-editorial .top-latest { padding:64px 0; }
.top-latest .top-section-head { padding-top:0; }
.top-news-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:40px 24px; }
.top-news-grid .top-story-title { display:-webkit-box; -webkit-line-clamp:4; -webkit-box-orient:vertical; overflow:hidden; }
.top-editorial .top-topics { padding:16px 0 64px; }
.top-topics-lead { font-size:24px; font-weight:600; letter-spacing:-.02em; margin:8px 0 32px; }
.top-topic { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,2fr); gap:48px; border-top:1px solid var(--top-ink); padding:40px 0; scroll-margin-top:24px; }
.top-topic-intro { display:flex; flex-direction:column; align-items:flex-start; }
.top-topic-intro h3 { font-size:26px; line-height:1.5; letter-spacing:-.03em; margin:8px 0 16px; }
.top-topic-intro p { font-size:13px; line-height:1.8; margin:0 0 24px; max-width:240px; }
.top-topic-intro .top-text-link { margin-top:auto; font-size:11px; }
.top-topic-stories { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.top-story--topic .top-story-title { font-size:19px; }
.top-editorial+.section-general.footer { margin-top:0; }
@media (min-width:768px) and (max-width:1050px) {
 .top-feature-grid { gap:24px; grid-template-columns:minmax(0,1.8fr) minmax(0,1fr); }
 .top-feature-caption { grid-template-columns:100px minmax(0,1fr); gap:16px; }
 .top-feature-label>span:last-child { width:auto; white-space:normal; }
 .top-feature-title-link h3 { font-size:21px; }
 .top-news-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
 .top-topic { gap:24px; }
}
@media (max-width:767px) {
 .top-editorial .top-hero { padding:16px 0 40px; }
 .top-feature-grid { grid-template-columns:minmax(0,1fr); gap:32px; }
 .top-feature-caption { grid-template-columns:minmax(0,1fr); gap:16px; margin-top:16px; }
 .top-feature-label { display:flex; align-items:center; justify-content:space-between; gap:6px; padding:0 0 12px; border:0; border-bottom:1px solid var(--top-paper); }

 .top-feature-label br { display:none; }
 .top-feature-label>span:last-child { margin:0; }
 .top-feature-title-link h3 { font-size:22px; line-height:1.65; margin:8px 0 12px; }
 .top-feature-copy .top-story-meta { margin-top:0; }
 .top-feature-deck { font-size:12px; line-height:1.85; }
 .top-feature-person { font-size:11px; }
 .top-picks { grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; border-left:0; padding-left:0; }
 .top-story--pick .top-story-title { font-size:14px; line-height:1.7; }
 .top-story--pick+.top-story--pick { border:0; padding:0; }
 .top-story-meta { gap:4px 8px; font-size:9px; margin-top:8px; }
 .top-story-meta .small-text { font-size:9px; }
 .top-section-head { display:block; margin-bottom:24px; }
 .top-section-head h2 { font-size:25px; margin-top:8px; }
 .top-section-head p { font-size:12px; line-height:1.8; margin-top:12px; }
 .top-eyebrow { font-size:9px; }
 .top-editorial .top-voices { padding:32px 0; }
 .top-text-link { font-size:11px; gap:16px; }
 .top-editorial .top-latest { padding:40px 0; }
 .top-latest .top-section-head { padding-top:0; }
 .top-latest .top-section-head>.top-text-link { margin-top:12px; }
 .top-news-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px 16px; }
 .top-story-title { font-size:14px; line-height:1.75; }
 .top-editorial .top-topics { padding:8px 0 40px; }
 .top-topics-lead { font-size:18px; line-height:1.7; margin-bottom:24px; }
 .top-topic { grid-template-columns:minmax(0,1fr); gap:24px; padding:28px 0 32px; }
 .top-topic-intro { position:relative; padding-right:48px; }
 .top-topic-intro h3 { font-size:24px; margin-bottom:12px; }
 .top-topic-intro p { font-size:12px; max-width:none; margin-bottom:16px; }
 .top-topic-stories { grid-template-columns:minmax(0,1fr); gap:24px; }
 .top-story--topic { display:grid; grid-template-columns:120px minmax(0,1fr); gap:16px; align-items:start; }
 .top-story--topic .top-story-meta { margin-top:0; }
 .top-story--topic .top-story-title { font-size:14px; line-height:1.7; }
 .top-story--topic .top-story-meta>span { display:none; }
}
@media (prefers-reduced-motion:reduce) {
 .top-story-image,.top-story-title { transition:none; }
}
/* v4 stacked people shelf: preserve interview-card internals from interviews.css. */
.top-people-layout { display:grid; grid-template-columns:minmax(0,1fr); gap:40px; align-items:start; }
.top-person-feature { min-width:0; padding:0; background:transparent; border-top:1px solid #DEDEDE; border-bottom:1px solid #DEDEDE; }
.top-people-shelf { min-width:0; padding-top:0; }
.top-people-heading { display:flex; justify-content:space-between; align-items:center; gap:24px; margin-bottom:24px; }
.top-people-labels { display:flex; flex-direction:column; gap:8px; }
.top-people-labels>span:last-child { font-size:13px; font-weight:500; }
.top-people-strip { display:grid; grid-auto-flow:column; grid-auto-columns:150px; gap:16px; overflow-x:auto; list-style:none; padding:4px 0 16px; margin:0; scrollbar-width:thin; scrollbar-color:#150201 #fff; overscroll-behavior-x:contain; }
.top-person { min-width:0; }
.top-person-link { display:flex; flex-direction:column; align-items:center; gap:8px; text-align:center; }
.top-person-image { display:block; width:104px; height:104px; border-radius:50%; object-fit:cover; }
.top-person-name { width:100%; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.top-person-role { width:100%; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.top-person-link:hover .top-person-image { opacity:.7; }
.top-people-footer { display:flex; justify-content:flex-end; margin-top:24px; }
@media (min-width:768px) and (max-width:1050px) {
 .top-people-layout { gap:32px; }
}
@media (max-width:767px) {
 .top-people-layout { grid-template-columns:minmax(0,1fr); gap:32px; }
 .top-person-feature { padding:0; }
 .top-people-heading { margin-bottom:16px; }
 .top-people-strip { grid-auto-columns:calc((100% - 32px) / 2.5); gap:16px; }
 .top-person-image { width:104px; height:104px; }
 .top-people-footer { justify-content:flex-start; }
 .top-editorial h2:not(.top-sr-only) { padding-right:80px; }
 .top-section-head h2 { font-size:24px; }
 .top-topic-intro { padding-right:0; }
}

/* Display-only suffix; keep the inherited name color, weight and baseline. */
.honorific { font-size:0.78em; margin-left:0.1em; color:inherit; font-weight:inherit; vertical-align:baseline; }

/* v6: native scrolling stays available without JavaScript. */
.top-people-scroll { position:relative; }
.top-people-scroll::after { content:""; position:absolute; top:0; bottom:0; right:0; width:80px; background:linear-gradient(to left,#f5f3f2,rgba(245,243,242,0)); pointer-events:none; }
.top-people-scroll.is-at-end::after { opacity:0; }
.top-people-controls { display:flex; gap:8px; flex-shrink:0; }
.top-people-controls[hidden] { display:none; }
.top-people-arrow { display:grid; place-items:center; width:44px; height:44px; padding:0; background:transparent; border:1px solid #150201; color:#150201; border-radius:50%; font-size:22px; cursor:pointer; }
.top-people-arrow:disabled { opacity:.25; cursor:default; }
.top-people-arrow:hover:not(:disabled) { background:#150201; color:white; }
@media (max-width:767px) { .top-people-controls { display:none; } }
/* §8 follow-up 2: full archive counts + two date/title rows per topic. */
.top-topic-content { min-width:0; }
.top-topic-heading { display:flex; align-items:baseline; flex-wrap:wrap; gap:4px 12px; margin:8px 0 16px; }
.top-topic-heading h3 { margin:0; }
.top-topic-text-list { list-style:none; padding:0; margin:24px 0 0; border-bottom:1px solid #DEDEDE; }
.top-topic-text-list>li { border-top:1px solid #DEDEDE; }
.top-topic-text-link { display:grid; grid-template-columns:96px minmax(0,1fr); align-items:baseline; gap:16px; padding:12px 0; }
.top-topic-text-title { min-width:0; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; margin:0; font-size:14px; line-height:1.7; font-weight:500; }
.top-topic-text-link time { white-space:nowrap; font-family:Montserrat,sans-serif; font-size:11px; }
.top-topic-text-link:hover { opacity:.65; }
@media (max-width:767px) {
 .top-topic-heading { padding-right:80px; }
 .top-editorial .top-topic-heading h3 { padding-right:0; }
 .top-topic-text-link { grid-template-columns:76px minmax(0,1fr); gap:12px; }
 .top-topic-text-title { font-size:13px; }
 .top-topic-text-link time { font-size:10px; }
}

/* v7: decoration reduced; existing CTA visual rules remain untouched. */
.top-header-with-tagline { position:relative; }
.top-header-tagline { position:absolute; left:calc(9% + 8px); top:64px; max-width:calc(82% - 16px); margin:0; font-size:10px; line-height:1.6; font-weight:500; letter-spacing:0; }
.top-category-link { font-size:11px; margin-top:auto; }
.top-editorial .top-category-link { text-decoration:underline; text-underline-offset:3px; }
.top-all-posts-cta { display:flex; justify-content:center; margin-top:32px; }
@media (max-width:767px) { .top-header-tagline { display:none; } }

/* v8: immediate topic entry, separate from the header's utility navigation. */
.top-category-nav { padding:8px 0 0; }
.top-category-nav-list { display:flex; justify-content:center; align-items:center; gap:40px; list-style:none; margin:0; padding:0 0 4px; overflow-x:auto; overscroll-behavior-x:contain; scrollbar-width:thin; }
.top-category-nav-list>li { flex:0 0 auto; }
.top-category-nav-link { display:flex; align-items:center; min-height:44px; color:#333; font-size:14px; font-weight:500; line-height:1.5; text-decoration:none; white-space:nowrap; }
.top-category-nav-link:hover { color:#e94709; }
.top-category-nav-link:focus-visible { outline:2px solid #150201; outline-offset:-2px; }
@media (max-width:767px) {
 .top-category-nav { padding-top:0; }
 .top-category-nav-list { justify-content:flex-start; gap:24px; }
}

/* v9: shared six-link header; mobile retains the horizontal topic row. */
.top-header-with-tagline { min-height:90px; display:block; }
.top-header-primary { display:none; }
.top-category-nav-list { justify-content:flex-start; }
.top-nav-interviews { font-weight:600; }
.top-category-nav-link[aria-current="page"],.top-primary-nav-link[aria-current="page"] { text-decoration:underline; text-decoration-thickness:1px; text-decoration-color:#333; text-underline-offset:4px; }
.top-header-with-tagline .nav-button { padding:0; cursor:pointer; }
.top-header-with-tagline.is-menu-open .custom-nav-menu { display:block; z-index:20; overflow-y:auto; }
.top-header-with-tagline.is-menu-open .custom-nav-button { z-index:21; }
.top-header-with-tagline.is-menu-open .menu-open { display:none; }
.top-header-with-tagline.is-menu-open .menu-closed { display:block; }
@media (max-width:1099px) { .top-header-tagline { display:none; } }
@media (max-width:767px) { .top-header-with-tagline { min-height:72px; } }
@media (min-width:1100px) {
 .top-header-with-tagline { display:grid; grid-template-columns:clamp(220px,24vw,340px) minmax(0,1fr) 50px; align-items:center; gap:24px; max-width:1272px; margin:0 auto; padding:15px 16px 25px; }
 .top-header-with-tagline .logo-link-block { position:static; width:100%; margin:0; padding:8px; }
 .top-header-with-tagline .logo-link-block .image { width:100%; height:auto; }
 .top-header-tagline { display:block; left:24px; top:64px; max-width:calc(100% - 48px); }
 .top-header-primary { display:block; min-width:0; }
 .top-primary-nav-list { display:flex; align-items:center; justify-content:flex-start; gap:16px; list-style:none; margin:0; padding:0; }
 .top-primary-nav-list>li { flex:0 0 auto; padding:0; }
 .top-primary-nav-link { display:block; margin:0; white-space:nowrap; }
 .top-primary-nav-link:focus-visible { outline:2px solid #150201; outline-offset:4px; }
 .top-header-with-tagline .custom-nav-button { right:max(16px,calc((100vw - 1240px)/2)); }
 .top-category-nav { display:none; }
}
@media (max-width:767px) {
 .top-header-with-tagline .logo-link-block { top:10px; }
}

/* v10: two desktop navigation groups. The mobile row is unchanged. */
@media (min-width:1100px) {
 .top-header-primary { display:flex; align-items:center; justify-content:space-between; gap:24px; }
 .top-primary-nav-list { gap:32px; flex:0 0 auto; }
 .top-primary-interview { display:flex; align-items:center; gap:24px; flex:0 0 auto; }
 .top-primary-interview::before { content:""; display:block; flex:0 0 1px; width:1px; height:16px; background:#DEDEDE; }
 .top-primary-nav-link { font-size:15px; font-weight:400; letter-spacing:.02em; color:#333; }
 .top-primary-nav-link:hover,.top-primary-nav-link[aria-current="page"] { color:#333; text-decoration:underline; text-decoration-thickness:1px; text-decoration-color:currentColor; text-underline-offset:4px; }
}
@media (min-width:1100px) and (max-width:1199px) {
 .top-header-with-tagline { grid-template-columns:clamp(220px,calc(24vw - 4px),340px) minmax(0,1fr) 50px; }
 .top-primary-nav-list { gap:24px; }
}

/* v12 frozen: shared container coordinates at every viewport. */
.top-header-with-tagline { display:block; max-width:none; min-height:0; margin:0; padding:0; }
.top-header-with-tagline .top-header-frame,.top-category-nav>.container-1272px,.top-editorial .container-1272px { box-sizing:border-box; width:100%; max-width:1272px; margin-left:auto; margin-right:auto; padding-left:16px; padding-right:16px; }
.top-header-frame { position:relative; display:grid; grid-template-columns:minmax(0,1fr) 50px; align-items:center; gap:24px; min-height:90px; padding-top:15px; padding-bottom:25px; }
.top-header-with-tagline .logo-link-block { position:static; left:auto; top:auto; margin:0; padding:0; width:100%; max-width:340px; }
.top-header-with-tagline .logo-link-block .image { display:block; width:100%; height:auto; }
.top-header-with-tagline .top-header-tagline { left:16px; top:64px; }
.top-header-with-tagline .custom-nav-wrapper { width:50px; height:50px; }
.top-header-with-tagline .custom-nav-button { right:max(16px,calc((100vw - 1240px)/2)); }
.top-topic-intro h3 { font-weight:700; }
@media (min-width:1100px) {
 .top-header-frame { grid-template-columns:clamp(220px,24vw,340px) minmax(0,1fr) 50px; }
}
@media (min-width:1100px) and (max-width:1199px) {
 .top-header-frame { grid-template-columns:clamp(220px,calc(24vw - 4px),340px) minmax(0,1fr) 50px; }
}
@media (max-width:767px) {
 .top-header-frame { min-height:72px; padding-bottom:7px; }
 .top-header-with-tagline .logo-link-block { max-width:220px; }
 .top-topic-heading h3 { padding-right:80px; }
}
.top-header-frame::before,.top-header-frame::after { display:none; }

.honorific { font-size:.78em; margin-left:.1em; color:inherit; font-weight:inherit; vertical-align:baseline; }
/* Shared container contract also applies to legacy page bodies; HTML stays intact. */
.container-1272px { box-sizing:border-box; width:100%; max-width:1272px; margin-left:auto; margin-right:auto; padding-left:16px; padding-right:16px; }
