:root{--portal-ink:#282321;--portal-muted:#6b625e;--portal-line:#e6ddda;--portal-accent:#a11d2c;--portal-deep:#75141f;--portal-pale:#f7eeeb;--blue:var(--portal-accent);--blue-deep:var(--portal-deep);--bg:#fbf9f7}
.portal-width{width:min(1120px,calc(100% - 40px));margin-inline:auto}
.portal-header{border-top:4px solid var(--portal-accent);background:#fff;color:var(--portal-ink)}
.portal-top{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-block:20px}
.portal-brand{display:flex;align-items:center;gap:12px;color:var(--portal-deep);font-size:27px;font-weight:750;line-height:1.15;white-space:nowrap}
.portal-brand small{display:block;font-size:10px;letter-spacing:.15em;margin-top:5px}
.portal-search{display:flex;gap:0;max-width:340px;min-width:0}
.portal-search input,.portal-search button{font:inherit;padding:8px 12px;border:1px solid var(--portal-line);min-width:0}
.portal-search input{width:100%;border-radius:4px 0 0 4px}
.portal-search button{white-space:nowrap;background:var(--portal-accent);color:#fff;border-radius:0 4px 4px 0}
.portal-nav{background:linear-gradient(105deg,var(--portal-deep),var(--portal-accent));color:white}
.portal-nav>div{display:flex;gap:0;flex-wrap:wrap}
.portal-nav a{display:block;color:white;font-size:15px;padding:12px 18px}
.portal-nav a:hover,.portal-nav a[aria-current=page]{background:#47080f66;box-shadow:inset 0 -2px #e8bd8b}
.portal-page{padding-block:30px 48px;color:var(--portal-ink)}
.portal-kicker{display:flex;gap:16px;flex-wrap:wrap;color:var(--portal-muted);font-size:14px;padding-bottom:12px;border-bottom:1px solid var(--portal-line);margin-bottom:20px}
.portal-kicker span:first-child,.portal-eyebrow{font-weight:700;color:var(--portal-accent)}
.portal-news-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:26px}
.portal-lead{background:var(--portal-pale);padding:28px;border-top:4px solid var(--portal-accent)}
.portal-lead h1,.portal-reading h1{font-size:clamp(28px,4vw,43px);line-height:1.25;margin:12px 0;overflow-wrap:anywhere}
.portal-lead p{margin:8px 0 16px;color:var(--portal-muted);line-height:1.75}
.portal-more{font-size:14px;color:var(--portal-accent);white-space:nowrap}
.portal-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px;margin-top:30px}
.portal-section-title{display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:3px solid var(--portal-accent);padding:10px 0 8px;margin:0;font-size:19px}
.portal-headline{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:11px 0;border-top:1px solid var(--portal-line);line-height:1.5}
.portal-headline time,.portal-meta,.portal-crumb,.portal-muted,.portal-article-list time{font-size:14px;color:var(--portal-muted)}
.portal-headline time{flex-shrink:0}
.portal-channel-title{font-size:36px;margin:10px 0 18px}
.portal-channel-links,.portal-footer nav,.portal-pagination{display:flex;gap:18px;flex-wrap:wrap}
.portal-article-list article{display:flex;justify-content:space-between;align-items:center;gap:20px;border-top:1px solid var(--portal-line);padding:18px 0}
.portal-article-list h2{font-size:21px;margin:0 0 5px}
.portal-article-list p{color:var(--portal-muted);margin:4px 0}
.portal-article-list img{width:112px;aspect-ratio:4/3;object-fit:cover;border-radius:4px}
.portal-pagination{justify-content:center;margin-top:20px}
.portal-reading{max-width:790px}
.portal-deck{background:var(--portal-pale);border-left:3px solid var(--portal-accent);padding:14px 18px;margin:20px 0}
.portal-reading figure{margin:18px 0}
.portal-cover{display:block;max-width:100%;height:auto}
.portal-prose{font-size:17px;line-height:1.9;overflow-wrap:anywhere}
.portal-prose p,.portal-prose ul,.portal-prose ol{margin:0 0 1em}
.portal-prose h2,.portal-prose h3{margin:1.25em 0 .5em}
.portal-prose a,.portal-source a{text-decoration:underline}
.portal-sponsored{font-size:12px;margin-inline-start:8px;padding:2px 6px;background:#f9eadf;color:#783823}
.portal-footer{padding:20px 0;background:#f3eeea;color:var(--portal-muted);font-size:14px}
.portal-footer p{margin:8px 0}
@media(max-width:700px){.portal-width{width:calc(100% - 28px)}.portal-top{padding-block:13px;gap:10px}.portal-brand{font-size:20px;gap:7px}.portal-brand img{width:32px;height:32px}.portal-brand small{font-size:8px}.portal-search input,.portal-search button{padding:7px}.portal-nav a{padding:10px 8px;font-size:13px}.portal-page{padding-top:18px}.portal-news-grid,.portal-columns{grid-template-columns:1fr;gap:18px}.portal-lead{padding:19px}.portal-article-list article{gap:10px}.portal-article-list img{width:78px}}

/* Editorial home */
:root{--portal-accent:#a00916;--portal-deep:#850811;--portal-line:#e6e2df;--bg:#fff}
.portal-width{width:min(1480px,calc(100% - 40px))}
.portal-header{border-top:0}
.portal-top{justify-content:flex-start;gap:22px;padding-block:13px}
.portal-brand{font:800 clamp(32px,4vw,55px)/1.05 "Songti SC","Noto Serif SC",SimSun,serif;letter-spacing:.04em}
.portal-brand img{display:none}
.portal-tagline{margin:0;padding-left:20px;border-left:1px solid var(--portal-line);font-size:15px;color:var(--portal-muted)}
.portal-search{margin-left:auto;width:min(29%,380px)}
.portal-search button{border-color:var(--portal-accent)}
.portal-nav{background:var(--portal-accent)}
.portal-nav a{font-weight:700;font-size:17px;padding:11px clamp(12px,2vw,30px)}
.portal-nav a:hover,.portal-nav a[aria-current=page]{box-shadow:inset 0 -3px #fff}
.portal-front{padding-top:21px}
.front-grid{display:grid;grid-template-columns:minmax(0,1.63fr) minmax(0,1fr) minmax(0,.91fr);gap:18px;align-items:start}
.front-grid>*,.front-columns>section{min-width:0}
.front-latest,.front-side{border-left:1px solid var(--portal-line);padding-left:16px}
.front-art{position:relative;display:block;isolation:isolate;background:#51272a;overflow:hidden;color:white}
.front-art:hover{color:white}
.front-art img{display:block;width:100%;aspect-ratio:1.65;object-fit:cover}
.front-art::after{position:absolute;inset:34% 0 0;content:"";background:linear-gradient(transparent,#000d);pointer-events:none}
.front-art-note{position:absolute;top:10px;right:10px;padding:2px 7px;background:#111b;color:#fff;font-size:11px}
.front-feature-copy{position:absolute;bottom:0;left:0;right:0;z-index:1;padding:15px 18px}
.front-feature h1{font-size:clamp(22px,2.4vw,36px);line-height:1.28;margin:0 0 4px}
.front-feature-copy p{margin:0;color:#fff;font-size:13px;line-height:1.6}
.front-section-heading{display:flex;justify-content:space-between;align-items:baseline;gap:8px;border-bottom:1px solid var(--portal-accent);margin:0 0 10px;padding-bottom:5px;font-size:clamp(20px,2vw,27px);font-weight:800;color:var(--portal-accent);line-height:1.2}
.front-section-heading .portal-more{font-weight:500;color:var(--portal-muted);font-size:13px}
.front-secondary-heading{font-size:15px;color:var(--portal-accent);margin:10px 0 4px}
.front-link-list{list-style:none;margin:0;padding:0}
.front-link-list li{display:flex;align-items:baseline;gap:8px;border-bottom:1px solid var(--portal-line);font-size:14px;line-height:1.45;padding:6px 0;min-height:31px}
.front-link-list li::before{content:"";background:var(--portal-accent);width:5px;height:5px;flex:0 0 5px;align-self:center}
.front-link-list li.front-empty::before{display:none}
.front-empty,.front-link-list time{color:var(--portal-muted)}
.front-link-list time{white-space:nowrap;margin-left:auto;font-size:12px}
.front-teaser{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr);gap:12px;margin:12px 0 8px;align-items:start}
.front-teaser img{width:100%;aspect-ratio:1.64;object-fit:cover}
.front-teaser h3{font-size:clamp(14px,1.3vw,20px);font-weight:750;line-height:1.4;margin:0 0 4px}
.front-teaser p{font-size:13px;margin:0;line-height:1.55;color:var(--portal-muted)}
.front-channel{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:2px 8px;margin-top:12px;padding:10px 13px;background:var(--portal-accent);color:white}
.front-channel strong{font-size:clamp(17px,1.8vw,25px)}
.front-channel span{font-size:11px;color:#fff}
.front-channel:hover{color:white;background:var(--portal-deep)}
.front-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:20px;padding-top:14px;border-top:1px solid var(--portal-line)}
.front-columns>section+section{border-left:1px solid var(--portal-line);padding-left:16px}
.front-focus{display:flex;align-items:center;flex-wrap:wrap;gap:8px 20px;border-top:1px solid var(--portal-line);padding-top:14px;margin-top:20px;font-size:14px}
.front-focus strong{background:var(--portal-accent);color:#fff;padding:3px 10px}
@media(max-width:900px){.portal-tagline{display:none}.front-grid{grid-template-columns:1.3fr 1fr}.front-side{grid-column:1/-1;border-left:0;padding-left:0;display:grid;grid-template-columns:2fr 1fr;gap:18px;align-items:start}.front-channel{margin-top:0}.front-local .front-teaser{grid-template-columns:minmax(85px,120px) 1fr}}
@media(max-width:650px){.portal-width{width:calc(100% - 26px)}.portal-top{gap:10px}.portal-brand{font-size:29px}.portal-search{width:48%}.portal-nav a{font-size:13px;padding:9px 7px}.front-grid,.front-columns,.front-side{grid-template-columns:1fr;gap:18px}.front-latest,.front-columns>section+section{border-left:0;padding-left:0}.front-art img{aspect-ratio:1.5}.front-teaser{grid-template-columns:minmax(85px,120px) 1fr}.front-feature-copy{padding:10px 12px}}
.main:has(.portal-front){max-width:none;padding:0}
@media(min-width:901px){
 .front-latest .front-link-list a,.front-local .front-link-list a{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
 .front-local .front-teaser h3,.front-local .front-teaser p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
}
.portal-nav a{padding-inline:clamp(8px,1.35vw,23px)}
.portal-source-link{text-decoration:underline;text-underline-offset:3px}
.front-columns{row-gap:25px}
.front-columns>section+section{border-left:0;padding-left:0}
@media(min-width:901px){
 .front-columns>section:not(:nth-child(3n+1)){border-left:1px solid var(--portal-line);padding-left:16px}
}
@media(min-width:651px) and (max-width:900px){
 .front-columns{grid-template-columns:repeat(2,minmax(0,1fr))}
 .front-columns>section:nth-child(even){border-left:1px solid var(--portal-line);padding-left:14px}
}
@media(max-width:650px){.portal-nav a{padding-inline:8px}}
