/* Compatibility layer for the ported portal shell. It loads after every imported
   theme sheet, so it only adds the missing measured rules and accessibility states.
   Colours come from the native theme tokens and therefore follow light/dark mode. */

/* Skip link: clear the sticky header and stay above it when focused. */
.skip,.skip-to-content{position:absolute;left:-999px;top:0;z-index:10000;background:var(--bg,#fff);color:var(--text,#1a1a1a);padding:.75rem 1rem;font-weight:700;text-decoration:none;border-radius:0 0 6px 0}
.skip:focus,.skip:focus-visible,.skip-to-content:focus,.skip-to-content:focus-visible{left:1rem;top:1rem;z-index:10000;outline:3px solid var(--accent,#c0392b);outline-offset:2px}
/* The imported dark-mode selector has equal/higher specificity than the generic
   rule above; redeclare both portal colours for every skip-link state so the
   unfocused and focused link use the native dark surface and ink. */
:root[data-theme="dark"] .skip,:root[data-theme="dark"] .skip:focus,:root[data-theme="dark"] .skip:focus-visible,:root[data-theme="dark"] .skip-to-content,:root[data-theme="dark"] .skip-to-content:focus,:root[data-theme="dark"] .skip-to-content:focus-visible{background:var(--portal-bg,#101214);color:var(--portal-ink,#f3f5f7)}

/* Consent: compact, calm and usable at phone width without turning privacy copy
   into a wall of text. The dialog itself takes initial focus, so it no longer opens
   with a red keyboard outline around the privacy link. */
.consent-settings{display:block;margin:1rem auto 2rem;min-height:44px;background:var(--bg,#fff);color:var(--text,#1a1a1a);border:1px solid var(--portal-line,#d8dee8);border-radius:6px;padding:.6rem 1rem;font:inherit;cursor:pointer}
.consent-settings:hover{border-color:var(--portal-ink,#071329)}
dialog button{font:inherit;min-height:44px;margin:0;padding:.7rem 1rem;border:1px solid var(--portal-line,#d8dee8);border-radius:9px;background:transparent;color:var(--text,#1a1a1a);cursor:pointer}
#consent-dialog{width:min(31rem,calc(100vw - 2rem));max-width:none;max-height:calc(100dvh - 2rem);margin:auto;border:1px solid var(--portal-line,#d8dee8);border-radius:20px;padding:0;overflow:auto;background:var(--bg,#fff);color:var(--portal-ink,#071329);box-shadow:0 24px 70px rgba(7,19,41,.28)}
#consent-dialog:focus{outline:none}
#consent-dialog::backdrop{background:rgba(7,19,41,.58);backdrop-filter:blur(3px)}
.consent-dialog__inner{position:relative;padding:1.75rem}
.consent-dialog__heading{display:flex;align-items:center;gap:.85rem;padding-right:2.7rem}
.consent-dialog__mark{display:grid;flex:0 0 42px;width:42px;height:42px;place-items:center;border-radius:50%;background:rgba(8,40,103,.09);color:var(--portal-blue,#082867)}
.consent-dialog__mark svg{width:23px;height:23px;fill:currentColor}
.consent-dialog__eyebrow{display:block;margin-bottom:.15rem;color:var(--portal-blue,#082867);font:750 11px/1.2 var(--font-sans,system-ui,sans-serif);letter-spacing:.11em;text-transform:uppercase}
#consent-title{margin:0;padding-right:44px;color:var(--portal-ink,#071329);font:750 clamp(1.45rem,5vw,1.8rem)/1.15 var(--font-sans,system-ui,sans-serif);letter-spacing:-.02em}
.consent-dialog__copy{margin:1.25rem 0 .45rem;color:var(--portal-ink,#071329);font:400 1rem/1.55 var(--font-sans,system-ui,sans-serif)}
.consent-dialog__note{margin:0;color:var(--portal-muted,#647084);font:400 .9rem/1.45 var(--font-sans,system-ui,sans-serif)}
.consent-dialog__actions{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:.7rem;margin-top:1.35rem}
#consent-dialog #consent-accept,#consent-dialog #consent-reject{display:inline-flex;align-items:center;justify-content:center;width:100%;font-weight:700;line-height:1.25;white-space:nowrap}
#consent-dialog #consent-accept{background:var(--portal-blue,#082867);border-color:var(--portal-blue,#082867);color:#fff}
#consent-dialog #consent-accept:hover{background:#061f51;border-color:#061f51}
#consent-dialog #consent-reject{background:var(--bg,#fff);color:var(--portal-ink,#071329)}
#consent-dialog #consent-reject:hover{border-color:var(--portal-blue,#082867);color:var(--portal-blue,#082867)}
.consent-dialog__privacy{display:inline-flex;align-items:center;gap:.35rem;min-height:44px;margin-top:.65rem;color:var(--portal-blue,#082867);font:650 .9rem/1.3 var(--font-sans,system-ui,sans-serif);text-decoration:none}
.consent-dialog__privacy:hover{text-decoration:underline}
#consent-dialog .consent-dialog__close{position:absolute;top:1rem;right:1rem;display:grid;width:44px;height:44px;min-height:44px;place-items:center;border:0;border-radius:50%;padding:0;background:transparent;color:var(--portal-muted,#647084)}
.consent-dialog__close:hover{background:rgba(100,112,132,.1);color:var(--portal-ink,#071329)}
.consent-dialog__close svg{width:22px;height:22px;fill:currentColor}
:root[data-theme="dark"] .consent-settings,:root[data-theme="dark"] #consent-dialog{background:var(--portal-bg,#101214);color:var(--portal-ink,#f3f5f7)}
:root[data-theme="dark"] #consent-title,:root[data-theme="dark"] .consent-dialog__copy,:root[data-theme="dark"] #consent-dialog #consent-reject{color:var(--portal-ink,#f3f5f7)}
:root[data-theme="dark"] #consent-dialog #consent-reject{background:transparent}
:root[data-theme="dark"] .consent-dialog__mark{background:rgba(255,255,255,.1);color:#dce7ff}
#consent-dialog button:focus-visible,#consent-dialog a:focus-visible{outline:3px solid var(--accent,#c0392b);outline-offset:2px}
@media(max-width:520px){
  #consent-dialog{width:calc(100vw - 1.5rem);max-height:calc(100dvh - 1.5rem);border-radius:18px}
  .consent-dialog__inner{padding:1.35rem}
  .consent-dialog__actions{grid-template-columns:1fr}
  #consent-dialog #consent-accept,#consent-dialog #consent-reject{min-height:48px}
}

/* Every visible shell control keeps a 44px target at both widths. */
.portal-icon-button,.hamburger-btn,.theme-toggle-btn,.search-toggle-btn,.portal-action,.main-nav a,.site-search__submit,.site-footer-consent-button,.site-footer-links li a,.consent-settings{min-height:44px}
.portal-icon-button,.hamburger-btn,.theme-toggle-btn,.search-toggle-btn,.site-search__submit{min-width:44px}
.portal-icon-button,.portal-action,.portal-logo,.main-nav a,.site-footer-links a,.site-footer-brand,.site-footer-consent-button{display:inline-flex;align-items:center}
.portal-logo,.site-footer-brand{min-height:44px}
.main-nav a{min-height:44px}
.site-search__submit{width:44px;height:44px}
:root[data-theme="dark"] .site-search__submit,:root[data-theme="dark"] .site-search__submit svg{color:var(--portal-ink,#f3f5f7)}
.search button{min-height:44px}

/* The old preview's no-image row rules are intentionally exact: without a thumb,
   the headline occupies the whole native row at desktop and mobile. */
.portal-teaser.portal-teaser--no-image{grid-template-columns:minmax(0,1fr)}
.portal-teaser.portal-teaser--no-image>div{grid-column:1/-1;min-width:0}

/* Text-only lead: keep the original native variant and its natural height. */
.portal-front-grid--image-free-lead .portal-lead{min-height:0}
.portal-front-grid--image-free-lead .portal-lead__body{position:relative;left:auto;right:auto;bottom:auto;padding:24px}

@media(max-width:900px){
  .portal-lead__image{position:relative}
  .portal-front-grid--image-free-lead .portal-lead__body{position:relative;left:auto;right:auto;bottom:auto;padding:0}
}

/* Native category/latest feed: time first, then a body column, with no thumbnail. */
.portal-feed-item.portal-feed-item--no-image{grid-template-columns:max-content minmax(0,1fr)}
.portal-feed-item--no-image .portal-feed-item__time{grid-column:1;white-space:nowrap}
.portal-feed-item--no-image .portal-feed-item__body{grid-column:2;min-width:0;max-width:100%}
.portal-feed-item--no-image h3,.portal-feed-item--no-image p{min-width:0;max-width:100%;overflow-wrap:anywhere}
.portal-feed-item--no-image>.fixture{grid-column:1/-1}

/* Archive pager only renders on /sivu/N/; keep its links useful after the retired
   root card sheet was removed, using the native theme tokens. */
.pager{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1rem;margin-top:2rem;border-top:1px solid var(--portal-line,#d8dee8);padding-top:1rem;color:var(--portal-muted,#647084)}
.pager a,.pager .page-current{display:inline-flex;align-items:center;min-height:44px;padding:.5rem .8rem}
.pager a{border:1px solid var(--portal-line,#d8dee8);border-radius:5px;color:var(--portal-ink,#071329);font-weight:650;text-decoration:none}
.pager a:hover{border-color:var(--portal-blue,#082867);text-decoration:underline}

/* Theme control in the mobile menu: hidden on desktop and only occupies space once
   the native nav has been opened, so the reference header remains one row tall. */
.theme-menu-item{display:none}
@media(max-width:900px){
  .main-nav.nav-open .theme-menu-item{display:block}
  .main-nav.nav-open .theme-menu-item .theme-toggle-btn{display:flex!important;height:44px!important;min-height:44px;align-items:center;gap:.5rem;width:100%;padding:0 4px;border:0;border-bottom:3px solid transparent;background:transparent;color:var(--portal-ink,#071329);font:650 15px/1.2 var(--font-sans,system-ui,sans-serif);text-align:left;cursor:pointer}
  .portal-teaser > .portal-teaser__thumb,.portal-row-card > .portal-row-card__thumb{grid-column:2;grid-row:1}
}

/* Keep one action icon visible for each resolved theme, including before the
   deferred theme script has attached a data-theme attribute. */
.theme-icon--dark{display:inline}
.theme-icon--light{display:none}
:root[data-theme="light"] .theme-icon--dark{display:inline}
:root[data-theme="light"] .theme-icon--light{display:none}
:root[data-theme="dark"] .theme-icon--dark{display:none}
:root[data-theme="dark"] .theme-icon--light{display:inline}
@media(prefers-color-scheme:dark){
  :root:not([data-theme]) .theme-icon--dark{display:none}
  :root:not([data-theme]) .theme-icon--light{display:inline}
}

/* Native portal metadata has no text node between adjacent spans. */
.portal-row-card__meta{display:flex;align-items:center;gap:10px}
.portal-row-card__category{flex-shrink:0;white-space:nowrap}
@media(max-width:900px){
  .portal-lead .portal-kicker{margin-right:10px}
}

/* Round 1: give full Finnish dates their own space on category and latest rows. */
.portal-feed-item{grid-template-columns:max-content minmax(0,1fr) 132px}
.portal-feed-item__time{white-space:nowrap}
@media(max-width:600px){
  .portal-feed-item,.portal-feed-item.portal-feed-item--no-image{
    grid-template-columns:minmax(0,1fr) 78px;
    column-gap:10px;
    row-gap:4px;
  }
  .portal-feed-item__time,.portal-feed-item--no-image .portal-feed-item__time{grid-column:1;grid-row:1}
  .portal-feed-item__body,.portal-feed-item--no-image .portal-feed-item__body{grid-column:1;grid-row:2}
  .portal-feed-item__thumb{grid-column:2;grid-row:1/span 2}
  .portal-feed-item--no-image>.fixture{grid-column:1/-1}
}

/* A single semantic trail replaces the two competing article back controls. */
.single-article .article-breadcrumb{margin:0 0 8px;color:var(--portal-muted,#647084);font:600 14px/1.45 var(--font-sans,system-ui,sans-serif)}
.article-breadcrumb ol{display:flex;flex-wrap:wrap;align-items:center;column-gap:8px;row-gap:0;list-style:none;margin:0;padding:0}
.article-breadcrumb li{display:inline-flex;align-items:center;min-width:0;overflow-wrap:anywhere}
.article-breadcrumb li+li::before{content:'›';margin-right:8px;color:var(--portal-muted,#647084)}
.article-breadcrumb a{display:inline-flex;align-items:center;min-height:44px;min-width:44px;color:var(--portal-blue,#082867);text-decoration:underline;text-underline-offset:3px}
:root[data-theme="dark"] .article-breadcrumb a{color:#8ab4ff}
.article-breadcrumb [aria-current="page"]{font-weight:600;color:var(--portal-muted,#647084)}
.article-breadcrumb a:focus-visible,.related-story a:focus-visible{outline:3px solid var(--accent,#c0392b);outline-offset:2px}

/* Make publication sources and image rights discoverable without changing copy. */
.single-article .sources a,.single-article .image-rights a{text-decoration:underline;text-underline-offset:3px}
.single-article .sources a:focus-visible,.single-article .image-rights a:focus-visible{outline:3px solid var(--accent,#c0392b);outline-offset:2px}

/* Keep the disclosure attached to the picture and separate the reading blocks. */
.single-article > .lead{margin:20px 0 20px}

/* Reuse existing reviewed assets in quiet, accessible related-story rows. */
.single-article .related ul{list-style:none;margin:0;padding:0}
.single-article .related-story{border-top:1px solid var(--portal-line,#d8dee8);padding:14px 0}
.single-article .related-story__link{display:grid;grid-template-columns:112px minmax(0,1fr);align-items:center;gap:14px;min-height:76px;color:var(--portal-ink,#071329);text-decoration:none}
.single-article .related-story__link:hover .related-story__title{text-decoration:underline;text-underline-offset:3px}
.related-story__thumb{display:block;width:112px;height:76px;overflow:hidden;border-radius:4px;background:var(--portal-soft,#eef1f5)}
.related-story__thumb img{display:block;width:100%;height:100%;object-fit:cover}
.related-story__title{font-weight:700;font-size:17px;line-height:1.3;overflow-wrap:anywhere}
.related-story--text>a{display:inline-flex;align-items:center;min-height:44px}
@media(max-width:600px){
  .single-article .related-story__link{grid-template-columns:88px minmax(0,1fr);gap:10px;min-height:66px}
  .related-story__thumb{width:88px;height:66px}
  /* These are standalone story entry points, never inline citations or rights. */
  .portal-logo,.portal-save-link,.portal-teaser h3>a,.portal-row-card h3>a,.portal-feed-item h3>a{display:inline-flex;align-items:center;min-width:44px;min-height:44px}
}

/* The primary strip stays compact. The hamburger reveals the complete grouped
   directory, including intentionally empty desks, service routes and settings. */
.main-nav{position:relative;overflow:visible}
.menu-directory{display:none;box-sizing:border-box;background:var(--portal-card,#fff);color:var(--portal-ink,#071329);border:1px solid var(--portal-line,#d8dee8);box-shadow:0 18px 42px rgba(7,19,41,.16)}
.main-nav.nav-open .menu-directory{position:absolute;z-index:300;top:calc(100% - 8px);left:36px;right:36px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;padding:22px}
.menu-directory__head{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:16px;padding-bottom:12px;border-bottom:1px solid var(--portal-line,#d8dee8)}
.menu-directory__head strong{font:800 1.05rem/1.2 var(--font-sans,system-ui,sans-serif)}
.menu-close,.menu-consent-settings{min-height:44px;border:1px solid var(--portal-line,#d8dee8);border-radius:5px;background:transparent;color:inherit;padding:.55rem .8rem;font:650 .9rem/1.2 var(--font-sans,system-ui,sans-serif);cursor:pointer}
.menu-directory__title{margin:0 0 6px;color:var(--portal-muted,#647084);font:800 .75rem/1.2 var(--font-sans,system-ui,sans-serif);letter-spacing:.08em;text-transform:uppercase}
.main-nav .menu-directory ul{display:grid;gap:0;overflow:visible;margin:0;padding:0;list-style:none}
.main-nav .menu-directory a,.main-nav .menu-directory .theme-toggle-btn,.main-nav .menu-directory .menu-consent-settings{box-sizing:border-box;width:100%;justify-content:flex-start;border-radius:0;text-transform:none;letter-spacing:0;white-space:normal}
.main-nav .menu-directory a{padding:0 4px}
.main-nav.nav-open .theme-menu-item{display:block}
.main-nav.nav-open .theme-menu-item .theme-toggle-btn{display:flex!important;min-height:44px;align-items:center;gap:.5rem;border:0;border-bottom:3px solid transparent;background:transparent;color:inherit;padding:0 4px;text-align:left;cursor:pointer}
.menu-close:focus-visible,.menu-consent-settings:focus-visible,.main-nav .menu-directory button:focus-visible{outline:3px solid var(--accent,#c0392b);outline-offset:2px}

/* Search names its external destination in the visible interface. */
.portal-search .search-note{margin:.35rem 0 0;color:var(--portal-muted,#647084);font:500 .7rem/1.25 var(--font-sans,system-ui,sans-serif)}
.portal-weather{cursor:default}

/* Consolidated footer: approved brand asset plus two useful link groups. */
.site-footer-grid{grid-template-columns:minmax(220px,1.2fr) minmax(150px,.8fr) minmax(190px,1fr)}
.site-footer-brand__image{display:block;width:min(220px,100%);height:auto;filter:none;opacity:.94}
.site-footer-brand-col{min-width:0}
.site-footer-weather-source{margin:1rem 0 0;color:#a7a7a7;font-size:.82rem;line-height:1.45}

/* Category/latest archives are a finite reading column, not a full-width card wall. */
.portal-list-page{max-width:860px;margin-inline:auto}
.portal-list-header{margin-bottom:10px}
.archive-count{font:700 .8rem/1.35 var(--font-sans,system-ui,sans-serif)!important;letter-spacing:.02em}
.portal-feed-item,.portal-feed-item.portal-feed-item--no-image{grid-template-columns:minmax(0,1fr) 132px;gap:16px;padding:18px 0}
.portal-feed-item--no-image .portal-feed-item__body,.portal-feed-item__body{grid-column:1;min-width:0}
.portal-feed-item__thumb{grid-column:2;grid-row:1;align-self:center}
.portal-feed-item__meta{display:block!important;margin:0 0 5px!important;color:var(--portal-muted,#647084)!important;font:650 .78rem/1.4 var(--font-sans,system-ui,sans-serif)!important}
.portal-feed-item__meta a{color:var(--category-accent,var(--portal-blue,#082867));text-decoration:none}
:root[data-theme="dark"] .portal-feed-item__meta a{color:#8ab4ff}
.portal-feed-item h2{margin:3px 0 7px;font-size:21px;line-height:1.22;overflow-wrap:anywhere}
.portal-feed-item h2 a{color:var(--portal-ink,#071329);text-decoration:none}
.portal-feed-item h2 a:hover{text-decoration:underline;text-underline-offset:3px}
.empty-recovery{margin-top:18px;padding-top:16px;border-top:1px solid var(--portal-line,#d8dee8)}
.empty-recovery h2{margin:0 0 8px;font-size:1rem}
.empty-recovery ul{display:flex;flex-wrap:wrap;gap:6px 16px;margin:0;padding:0;list-style:none}
.empty-recovery a{display:inline-flex;align-items:center;min-height:44px;color:var(--portal-blue,#082867);font-weight:700}
.pager{justify-content:space-between}

/* Article roles: a restrained opening, readable prose and clearly separated lower
   evidence/process panels. No process label is introduced in the opening. */
.single-article{max-width:760px;padding-top:.5rem}
.single-article h1{font-size:clamp(2.05rem,4.2vw,3rem);line-height:1.14;letter-spacing:-.018em;margin-bottom:.65rem}
.single-article>.article-meta{margin:0 0 1.05rem;padding:0 0 .85rem}
.single-article>.lead{max-width:42rem;margin:0 0 1.35rem;color:var(--portal-ink,#071329);font:500 clamp(1.13rem,2vw,1.3rem)/1.48 var(--font-serif,Georgia,serif)}
.single-article .article-hero{margin:0 0 1.5rem}
.single-article .article-hero img{display:block;width:100%;height:auto;border-radius:6px}
.single-article .article-hero-caption{padding-top:7px;color:var(--portal-muted,#647084);font:500 .76rem/1.4 var(--font-sans,system-ui,sans-serif)}
.single-article .content{max-width:68ch;font-size:1.125rem;line-height:1.72}
.single-article .sources,.single-article .source-reuse,.single-article .article-production,.single-article .image-rights,.single-article .related{margin-top:2rem;padding-top:1.15rem;border-top:1px solid var(--portal-line,#d8dee8)}
.single-article :is(.sources,.source-reuse,.article-production,.image-rights,.related)>h2{margin:0 0 .7rem;font-size:1.15rem;line-height:1.25}
.single-article :is(.sources,.source-reuse) ul,.single-article .sources ol{padding-left:1.3rem}
.single-article :is(.sources,.source-reuse) li{margin:.65rem 0;overflow-wrap:anywhere}
.source-count{color:var(--portal-muted,#647084);font:650 .82rem/1.4 var(--font-sans,system-ui,sans-serif)}
.article-status{margin:0 0 1.2rem;padding:14px 16px;border-left:4px solid var(--portal-blue,#082867);background:var(--portal-soft,#eef1f5)}
.article-status h2{margin:0 0 4px;font-size:1rem}
.article-status p{margin:0}
.article-status--corrected{border-left-color:#9a6700}
.article-status--withdrawn{border-left-color:var(--accent,#c0392b)}
.article-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--portal-line,#d8dee8)}
.article-actions .article-share{display:inline-flex;align-items:center;gap:6px;min-height:44px;border:1px solid var(--portal-line,#d8dee8);border-radius:5px;background:transparent;color:var(--portal-blue,#082867);padding:.45rem .65rem;font:700 .82rem/1.25 var(--font-sans,system-ui,sans-serif);cursor:pointer}
.article-share__feedback{min-height:1.3em;color:var(--portal-muted,#647084);font:600 .82rem/1.3 var(--font-sans,system-ui,sans-serif)}
.about-page{max-width:760px;margin-inline:auto}
.about-page li{margin:.55rem 0}

/* Failed remote/local images leave a stable neutral surface. Only an article hero
   receives explanatory text; listing thumbnails simply disappear without badges. */
.image-unavailable{display:grid;place-items:center;min-height:88px;background:var(--portal-soft,#eef1f5)}
.image-unavailable__message{margin:0;padding:24px;color:var(--portal-muted,#647084);font:650 .9rem/1.4 var(--font-sans,system-ui,sans-serif)}
.article-hero.image-unavailable .article-hero-caption{display:none}
.portal-thumb__story:has(>img[hidden]){display:none}

:root[data-theme="dark"] .menu-directory,:root[data-theme="dark"] .article-status{background:var(--portal-card,#181b1f);color:var(--portal-ink,#f3f5f7)}
:root[data-theme="dark"] .portal-feed-item h2 a,:root[data-theme="dark"] .single-article>.lead{color:var(--portal-ink,#f3f5f7)}
:root[data-theme="dark"] .empty-recovery a,:root[data-theme="dark"] .article-actions .article-share{color:#8ab4ff}

@media(max-width:900px){
  .main-nav.nav-open .main-nav__primary{display:none!important}
  .main-nav.nav-open .menu-directory{position:static;display:block;border-inline:0;border-bottom:0;box-shadow:none;padding:8px 12px 18px}
  .menu-directory__head{margin-bottom:10px}
  .menu-directory__group{margin-top:14px}
  .main-nav .menu-directory ul{padding:0!important}
  .main-nav .menu-directory a{padding:0 4px!important}
  .site-search--collapsed .search-note{display:none}
  .site-search:not(.site-search--collapsed){padding:10px 10px 36px}
  .site-search:not(.site-search--collapsed) .search-note{position:absolute;left:12px;right:12px;bottom:7px;margin:0}
  .site-footer-grid{grid-template-columns:1fr}
}

@media(max-width:600px){
  .portal-lead .portal-lead__body{inline-size:100%!important;max-inline-size:100%!important;width:100%!important;max-width:100%!important}
  .portal-list-page{max-width:100%}
  .portal-feed-item,.portal-feed-item.portal-feed-item--no-image{grid-template-columns:minmax(0,1fr) 78px;column-gap:10px;row-gap:4px}
  .portal-feed-item__body,.portal-feed-item--no-image .portal-feed-item__body{grid-column:1;grid-row:1}
  .portal-feed-item__thumb{grid-column:2;grid-row:1}
  .portal-feed-item h2{font-size:17px;line-height:1.28}
  .portal-feed-item__body>p:not(.portal-feed-item__meta){display:none}
  .portal-feed-item--no-image{grid-template-columns:minmax(0,1fr)!important}
  .pager{justify-content:center}
  .pager .page-current{order:-1;flex-basis:100%;justify-content:center}
  .single-article{padding:.25rem .75rem 1.25rem}
  .single-article h1{font-size:clamp(1.82rem,9vw,2.35rem);line-height:1.16}
  .single-article .content{font-size:1.0625rem;line-height:1.7}
  .single-article .article-hero{width:calc(100% + 1.5rem);margin-inline:-.75rem}
  .single-article .article-hero img{border-radius:0}
  .single-article .article-hero-caption{padding-inline:.75rem}
  .article-actions{align-items:center;flex-direction:row}
  .portal-feed-item h2>a{display:inline-flex;align-items:center;min-width:44px;min-height:44px}
}

/* Kept post-reference features, styled with the approved portal system. */
.theme-logo--light{display:block}
.theme-logo--dark{display:none}
:root[data-theme="light"] .theme-logo--light{display:block}
:root[data-theme="light"] .theme-logo--dark{display:none}
:root[data-theme="dark"] .theme-logo--light{display:none}
:root[data-theme="dark"] .theme-logo--dark{display:block}
@media(prefers-color-scheme:dark){
  :root:not([data-theme="light"]) .theme-logo--light{display:none}
  :root:not([data-theme="light"]) .theme-logo--dark{display:block}
}

/* The owner requires article surfaces to remain white in every light viewport. */
:root.reader-page:not([data-theme="dark"]){--bg:#fff;--portal-bg:#fff;background:#fff}
:root.reader-page:not([data-theme="dark"]) body.reader-page,
:root.reader-page:not([data-theme="dark"]) .single-article{background:#fff}

.article-reading-grid,.article-reading-main,.article-afterword{display:block}
.article-evidence{display:block}
.article-action-feedback{flex-basis:100%;min-height:1.3em;color:var(--portal-muted,#647084);font:600 .82rem/1.3 var(--font-sans,system-ui,sans-serif)}
.article-action-feedback:empty{display:none}
.article-actions+.article-afterword .sources{margin-top:1.5rem}
.article-corrections{display:inline-flex;align-items:center;min-height:44px;margin-top:.45rem;color:var(--portal-blue,#082867);font:700 .78rem/1.3 var(--font-sans,system-ui,sans-serif)}
.article-context{margin-top:2rem;padding-top:1.15rem;border-top:1px solid var(--portal-line,#d8dee8)}
.article-context__block+.article-context__block{margin-top:1.5rem}
.article-context__head{margin-bottom:6px}
.article-context__head h2{margin:0;font-size:1.15rem;line-height:1.25}
.article-context ul{margin:0;padding:0;list-style:none}
.article-context li+li{border-top:1px solid var(--portal-line,#d8dee8)}
.article-context li>a{display:grid;gap:3px;min-height:44px;padding:10px 0;color:var(--portal-ink,#071329);text-decoration:none}
.article-context li>a:hover .article-context__title{text-decoration:underline;text-underline-offset:3px}
.article-context__title{font-weight:700;line-height:1.3}
.article-context__meta{color:var(--portal-muted,#647084);font-size:.75rem;line-height:1.35}
.article-context__more{margin:.35rem 0 0}
.article-context__more a{display:inline-flex;align-items:center;min-height:44px;color:var(--portal-blue,#082867);font-size:.82rem;font-weight:700}
:root[data-theme="dark"] .article-actions .article-share,:root[data-theme="dark"] .article-corrections,:root[data-theme="dark"] .article-context__more a{color:#8ab4ff}
:root[data-theme="dark"] .article-context li>a{color:var(--portal-ink,#f3f5f7)}

.guide-contents ul{display:block}
.guide-contents li+li{margin-top:4px}
.article-kicker{margin:1.1rem 0 .35rem;color:var(--portal-blue,#082867);font:800 .76rem/1.2 var(--font-sans,system-ui,sans-serif);letter-spacing:.08em;text-transform:uppercase}
.content .explainer-section{margin:2rem 0 .65rem;font-size:1.3rem;line-height:1.25}
:root[data-theme="dark"] .article-kicker{color:#8ab4ff}
