/* Editorial variation: portal only. The special never loads this layer. */
.portal {
  --grain: url('assets/editorial/papel.png');
  --press-shadow: 0 2px 7px rgb(22 62 53 / 6%);
}
.portal :is(.catalog-intro,.news-heading,.catalog-search,.news-controls,.portal-footer) {
  background-image: var(--grain);
}
.portal .masthead { border-bottom-width:1px; }
.portal .masthead .site-nav a {
  text-decoration:none;
  transition:color 140ms ease, box-shadow 140ms ease;
}
.portal .masthead .site-nav a[aria-current=page] { box-shadow:inset 0 -6px var(--marker); }
.portal .masthead .site-nav a:is(:hover,:focus-visible) { box-shadow:inset 0 -6px var(--yellow); }

/* A shared margin links the opening, search and reading hierarchy. */
.portal .catalog-intro { border-bottom:0; }
.portal .catalog-intro:after { display:none; }
.portal .intro-layout { padding-block:34px; padding-left:28px; border-left:1px solid #77998c; }
.portal .catalog-intro h1 { font-size:72px; }
.portal .catalog-intro h1 span { text-decoration:underline; text-underline-offset:8px; }
.portal .catalog-intro p:not(.eyebrow) { margin-top:20px; max-width:560px; }
.portal .intro-gami { height:238px; }
.portal .catalog { padding-top:35px; }
.portal .catalog-heading { align-items:end; }
.portal .catalog-heading h2 { font-size:39px; }
.portal .catalog-heading h2:after { width:114px; height:6px; transform:rotate(-1deg); margin-top:12px; }
.portal .catalog-heading>p { font-style:italic; border-left:0; border-bottom:2px solid var(--terra); padding:0 0 8px; max-width:300px; font-size:20px; }
.portal .catalog-search { border-left-width:2px; padding:18px 22px; border-radius:0 6px 6px 0; }
.portal .search-entry { box-shadow:var(--press-shadow); }
.portal .search-entry:focus-within { box-shadow:none; }
.portal .filters { border-left-width:1px; border-color:var(--rule); padding-left:18px; }
.portal .filters legend { padding-bottom:8px; border-bottom:3px solid var(--yellow); }
.portal .filters fieldset label { min-height:44px; align-items:center; transition:background-color 140ms ease; }
.portal .filters fieldset label:has(input:checked) { box-shadow:inset 3px 0 var(--green); }
.portal .filters input[type=checkbox] { margin-top:0; }
.portal .filters select { transition:background-color 140ms ease, border-color 140ms ease; }
.portal .catalog-results { border-bottom:2px solid var(--green); padding-block:0 14px; }
.portal .result-status { min-height:34px; display:flex; align-items:center; gap:5px; }
.portal .result-status strong { display:inline-block; min-width:42px; text-align:center; border-radius:2px 5px 2px 3px; }
.portal .active-filter-count { font-size:12px; }

/* Comparable resources keep the same dimensions and written categories. */
.portal .resource-grid { gap:26px; }
.portal .resource-card { --card-pad:24px; border-color:var(--rule); box-shadow:none; }
.portal .resource-top { min-height:88px; padding-block:16px; border-bottom:1px solid var(--rule); }
.portal .resource-kind { font-size:11px; color:var(--ink); }
.portal .resource-modality { border-radius:3px; padding:5px 7px; }
.portal .resource-card h3 { font-size:33px; margin-bottom:14px; }
.portal .resource-description { font-size:15px; line-height:1.7; }
.portal .resource-tags { font-size:11px; margin-block:19px 24px; }
.portal .resource-tags li { text-decoration:underline; text-decoration-color:var(--rule); text-underline-offset:5px; }
.portal .resource-open { min-height:48px; }
.portal .resource-title { text-decoration:underline; text-decoration-color:transparent; text-underline-offset:6px; transition:color 140ms ease,text-decoration-color 140ms ease; }
.portal .resource-card:is(:hover,:focus-within) { border-color:var(--accent); box-shadow:inset 0 -3px var(--accent),var(--press-shadow); }
.portal .resource-card:is(:hover,:focus-within) .resource-title { text-decoration-color:var(--accent); }
.portal :is(.resource-open,.article-link,.text-link) .ui-icon { transition:opacity 140ms ease; }
.portal :is(.resource-open,.article-link,.text-link):is(:hover,:focus-visible) .ui-icon { opacity:.65; }
.portal .curation { padding-block:18px; }
.portal .curation summary { min-height:44px; display:list-item; padding-block:9px; }
.portal .curation[open] summary { text-decoration:underline; text-decoration-color:var(--yellow); text-decoration-thickness:4px; text-underline-offset:6px; }
.portal .special-band { border-top:3px solid var(--yellow); }

/* The archive has a larger title and an unframed lead, not a giant card. */
.portal .news-heading { padding:42px 0 30px 28px; border-left:1px solid var(--rule); margin-block:30px 0; }
.portal .news-heading h1 { font-size:70px; max-width:900px; }
.portal .news-heading .eyebrow:after { width:42px; height:2px; }
.portal .news-heading>p:not(.eyebrow) { max-width:550px; }
.portal .news-controls { background-color:var(--paper); border-left:2px solid var(--green); border-radius:0; margin-block:2px 32px; }
.portal .news-controls select { background:#fff; min-height:46px; }
.portal .news-controls p { min-height:26px; font-size:13px; }
.portal .news-controls:has(.is-selected) { background-color:var(--sky); }
.portal .news-grid-editorial { grid-template-columns:repeat(12,minmax(0,1fr)); column-gap:30px; row-gap:40px; }
.portal .news-grid-editorial>.news-card { grid-column:span 4; }
.portal .news-card { border-bottom:1px solid var(--rule); padding-bottom:25px; }
.portal .news-card h2 { font-size:30px; line-height:1.2; }
.portal .news-card h2 a { text-decoration:underline; text-decoration-color:transparent; text-underline-offset:5px; transition:color 140ms ease,text-decoration-color 140ms ease; }
.portal .news-card h2 a:is(:hover,:focus-visible) { text-decoration-color:var(--terra); }
.portal .news-deck { font-size:15px; line-height:1.75; }
.portal .news-meta { margin-top:20px; font-size:11px; }
.portal .news-meta>span:first-child { border-bottom:0; padding:0; text-decoration:underline; text-decoration-color:var(--yellow); text-decoration-thickness:3px; text-underline-offset:5px; }
.portal .news-image-credit { font-size:11px; line-height:1.6; }
.portal .news-art.news-art-photo { border-radius:4px; background-color:var(--paper); }
.portal .news-art.news-art-photo img { object-fit:contain; }
.portal .news-card.news-lead {
  grid-column:1/-1;
  grid-template-columns:minmax(0,7fr) minmax(0,5fr);
  gap:32px;
  padding:24px 0 32px;
  border-top:3px solid var(--green);
  border-bottom:1px solid var(--rule);
  border-radius:0;
  background:transparent;
  align-items:start;
}
.portal .news-lead .lead-label { display:inline-block; align-self:start; background:var(--marker); border-left:3px solid var(--terra); border-radius:0; padding:4px 10px; }
.portal .news-lead .news-copy { padding:0 0 0 22px; border-left:1px solid var(--rule); }
.portal .news-lead h2 { font-size:39px; line-height:1.15; }
.portal .news-lead .news-deck { font-size:16px; }
.portal .news-lead .news-date { margin-block:16px; }
.portal .news-lead .article-link { margin-top:auto; }
.portal .news-list .news-grid-editorial>.news-card:nth-child(5 of :not([hidden])) { grid-column:span 7; }
.portal .news-list .news-grid-editorial>.news-card:nth-child(6 of :not([hidden])) { grid-column:span 5; }
.portal .news-list .news-grid-editorial>.news-card:nth-child(5 of :not([hidden])) h2 { font-size:36px; max-width:600px; }
.portal .news-list .news-grid-editorial>.news-card:nth-child(5 of :not([hidden])) .news-copy { padding-left:20px; border-left:3px solid var(--terra); }

/* On the home page a lead and two shorter stories form a reading spread. */
.portal .home-news .section-top { border-bottom:1px solid var(--rule); padding-bottom:26px; }
.portal .home-news .section-top h2 { font-size:44px; }
.portal .home-news .section-top h2 em { text-decoration:underline; text-decoration-color:var(--marker); text-decoration-thickness:7px; text-underline-offset:2px; }
.portal .home-news .news-grid-editorial { grid-template-columns:repeat(12,minmax(0,1fr)); gap:28px 34px; }
.portal .home-news .news-card.news-lead { grid-column:span 7; grid-row:span 2; display:flex; gap:20px; border-top:0; padding-top:0; }
.portal .home-news .news-lead .news-copy { border-left:0; padding-left:0; flex:1; }
.portal .home-news .news-lead h2 { font-size:36px; }
.portal .home-news .news-card:not(.news-lead) { grid-column:span 5; }
.portal .home-news .news-card:not(.news-lead) h2 { font-size:27px; }
.portal .home-news .news-card:not(.news-lead) .news-art { aspect-ratio:2/1; }
.portal .home-news .news-card:not(.news-lead) .news-deck { font-size:14px; }
.portal .portal-footer { border-top-width:2px; }
.portal .empty-state { border-left:3px solid var(--terra); padding:24px; background:var(--paper); }

@media(min-width:1600px) {
  .portal .resource-card { --card-pad:21px; }
  .portal .resource-card h3 { font-size:30px; }
  .portal .resource-description { font-size:14px; }
}
@media(max-width:1050px) {
  .portal .intro-layout { grid-template-columns:minmax(0,1fr) 200px; }
  .portal .catalog-intro h1 { font-size:62px; }
  .portal .catalog-heading h2 { font-size:35px; }
  .portal .catalog-heading>p { font-size:18px; max-width:240px; }
  .portal .resource-grid { gap:20px; }
  .portal .resource-card { --card-pad:20px; }
  .portal .resource-card h3 { font-size:29px; }
  .portal .resource-description { font-size:14px; }
  .portal .news-grid-editorial { grid-template-columns:repeat(2,minmax(0,1fr)); gap:30px 24px; }
  .portal .news-list .news-grid-editorial>.news-card:nth-child(n) { grid-column:span 1; }
  .portal .news-list .news-grid-editorial>.news-card:nth-child(5 of :not([hidden])),
  .portal .news-list .news-grid-editorial>.news-card:nth-child(6 of :not([hidden])) { grid-column:span 1; }
  .portal .news-list .news-grid-editorial>.news-card.news-lead { grid-column:1/-1; grid-template-columns:1fr 1fr; }
  .portal .news-lead h2 { font-size:33px; }
  .portal .news-list .news-grid-editorial>.news-card:nth-child(5 of :not([hidden])) h2 { font-size:30px; }
  .portal .home-news .news-lead h2 { font-size:31px; }
  .portal .home-news .news-card:not(.news-lead) h2 { font-size:25px; }
}
@media(max-width:760px) {
  .portal .intro-layout { grid-template-columns:minmax(0,1fr) 115px; padding:24px 0 24px 16px; gap:12px; }
  .portal .catalog-intro h1 { font-size:44px; }
  .portal .catalog-intro p:not(.eyebrow) { font-size:14px; margin-top:15px; }
  .portal .intro-gami { height:192px; }
  .portal .catalog-heading h2 { font-size:34px; }
  .portal .catalog-heading>p { font-size:18px; max-width:360px; margin-top:25px; padding-bottom:8px; }
  .portal .catalog-search { padding:16px; }
  .portal .catalog-layout .filters { border-left:0; padding-left:0; margin-top:8px; }
  .portal .filters legend { width:auto; }
  .portal .filters fieldset label { font-size:13px; }
  .portal .resource-card { --card-pad:23px; }
  .portal .resource-card h3 { font-size:32px; }
  .portal .resource-description { font-size:15px; }
  .portal .resource-tags { font-size:11px; }
  .portal .catalog-results { align-items:start; }
  .portal .news-heading { margin-top:20px; padding:22px 0 28px 16px; }
  .portal .news-heading h1 { font-size:42px; }
  .portal .news-heading>p:not(.eyebrow) { font-size:14px; }
  .portal .news-controls { padding:16px; }
  .portal .news-grid-editorial,.portal .home-news .news-grid-editorial { display:grid; grid-template-columns:minmax(0,1fr); gap:30px; }
  .portal .news-list .news-grid-editorial>.news-card:nth-child(n),
  .portal .home-news .news-grid-editorial>.news-card:nth-child(n) { grid-column:1; grid-row:auto; }
  .portal .news-list .news-grid-editorial>.news-card.news-lead { display:flex; padding:20px 0 25px; gap:20px; }
  .portal .news-lead .news-copy { border-left:0; padding-left:0; margin-top:0; }
  .portal .news-card h2,.portal .news-lead h2,.portal .home-news .news-lead h2,
  .portal .home-news .news-card:not(.news-lead) h2 { font-size:31px; }
  .portal .news-list .news-grid-editorial>.news-card:nth-child(5 of :not([hidden])) h2 { font-size:31px; }
  .portal .news-list .news-grid-editorial>.news-card:nth-child(5 of :not([hidden])) .news-copy { border-left:0; padding-left:0; }
  .portal .home-news .section-top h2 { font-size:35px; }
  .portal .home-news .news-card:not(.news-lead) .news-art { aspect-ratio:16/9; }
  .portal .news-deck,.portal .news-lead .news-deck,.portal .home-news .news-card:not(.news-lead) .news-deck { font-size:15px; }
  .portal .news-image-credit { font-size:11px; }
}
@media(max-width:520px) {
  .portal .intro-layout { grid-template-columns:minmax(0,1fr) 88px; padding-left:14px; gap:10px; }
  .portal .catalog-intro h1 { font-size:35px; }
  .portal .catalog-intro p:not(.eyebrow) { font-size:14px; }
  .portal .intro-gami { height:175px; }
  .portal .resource-grid { grid-template-columns:1fr; }
  .portal .resource-top { min-height:84px; }
}
@media(max-width:360px) {
  .portal .intro-layout { grid-template-columns:minmax(0,1fr) 68px; gap:8px; }
  .portal .catalog-intro h1 { font-size:29px; }
  .portal .intro-gami { height:150px; }
  .portal .catalog-heading h2 { font-size:29px; }
  .portal .catalog-search { padding:13px 11px; }
  .portal .resource-card { --card-pad:20px; }
  .portal .resource-card h3 { font-size:29px; }
  .portal .news-heading h1 { font-size:34px; }
  .portal .news-card h2,.portal .news-lead h2,.portal .home-news .news-lead h2,
  .portal .home-news .news-card:not(.news-lead) h2 { font-size:28px; }
}
@media(prefers-reduced-motion:reduce) {
  .portal *, .portal *:before, .portal *:after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
}
@media print {
  .portal :is(.catalog-intro,.news-heading,.catalog-search,.news-controls,.portal-footer) { background-image:none; }
  .portal .news-grid-editorial,.portal .home-news .news-grid-editorial { display:block; }
  .portal .news-card { margin-bottom:24px; }
  .portal .resource-card { box-shadow:none!important; }
}

/* Functional interactions: local saved lists and comparison, never scores. */
.portal .interaction-announcement:not(.is-warning) { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.portal .interaction-announcement.is-warning { border-left:3px solid var(--terra); padding:12px; font-size:13px; margin-top:12px; color:var(--ink); background:var(--marker); }
.portal .resource-tools { display:flex; align-items:center; justify-content:space-between; gap:12px; width:100%; min-height:44px; margin:-8px 0 12px; }
.portal .compare-option { display:inline-flex; gap:9px; align-items:center; min-height:44px; font-size:12px; cursor:pointer; }
.portal .compare-option input { accent-color:var(--green); width:18px; height:18px; padding:0; margin:0; }
.portal .compare-option:has(input:checked) { color:var(--green); font-weight:800; }
.portal .bookmark-toggle { display:grid; place-items:center; padding:0; width:44px; height:44px; flex:0 0 44px; border-color:var(--rule); border-radius:6px; background:#fff; }
.portal .bookmark-toggle[aria-pressed=true] { background:var(--yellow); border-color:var(--green); }
.portal .bookmark-toggle:hover { background:var(--marker); }
.portal .saved-view { display:inline-flex; flex-wrap:wrap; align-items:center; border:1px solid var(--green); border-radius:6px; padding:3px; gap:3px; }
.portal .saved-view button { display:inline-flex; align-items:center; justify-content:center; gap:7px; padding:7px 10px; min-height:38px; border:0; border-radius:3px; font-size:12px; background:transparent; }
.portal .saved-view button[aria-pressed=true] { background:var(--green); color:white; }
.portal .saved-view button[aria-pressed=true] .ui-icon { filter:invert(1); }
.portal .saved-count { font-size:11px; font-weight:800; min-width:16px; text-align:center; }
.portal .catalog-results { gap:12px; }
.portal .active-chips { display:flex; align-items:start; flex-wrap:wrap; gap:8px; margin:0 0 18px; }
.portal .filter-chip { display:inline-flex; align-items:center; justify-content:space-between; gap:9px; min-height:44px; font-size:12px; max-width:100%; padding:8px 12px; border-color:var(--rule); background:var(--marker); text-align:left; }
.portal .filter-chip span { overflow-wrap:anywhere; min-width:0; }
.portal .filter-chip .ui-icon { width:16px; height:16px; flex-basis:16px; }
.portal .comparison-tray { display:flex; align-items:center; gap:14px; position:sticky; top:var(--header); z-index:15; padding:12px 14px; background:var(--green); color:white; margin:0 0 20px; border-radius:6px; }
.portal .comparison-selection { font-size:12px; line-height:1.5; margin:0; flex:1; min-width:0; overflow-wrap:anywhere; }
.portal .comparison-tray .compare-open { display:inline-flex; align-items:center; justify-content:center; gap:8px; background:var(--yellow); color:var(--ink); border-color:var(--yellow); flex:0 0 auto; font-size:12px; padding:10px 12px; }
.portal .comparison-tray .compare-open:disabled { background:var(--green); color:white; border-color:#77998c; cursor:default; }
.portal .compare-open:disabled .ui-icon { filter:invert(1); }
.portal .comparison-tray .comparison-clear { display:grid; place-items:center; width:44px; min-width:44px; height:44px; padding:0; background:#fff; }
.portal .comparison-tray :focus-visible { outline-color:var(--yellow); }
.portal .comparison-dialog { width:min(1000px,calc(100% - 32px)); max-height:85dvh; color:var(--ink); padding:26px; border:2px solid var(--green); border-radius:8px; box-shadow:0 10px 40px rgb(22 62 53 / 12%); }
.portal .comparison-dialog::backdrop { background:rgb(24 44 39 / 60%); }
.portal .comparison-heading { display:flex; align-items:start; justify-content:space-between; gap:20px; margin-bottom:20px; }
.portal .comparison-heading h2 { font-size:34px; }
.portal .comparison-close { display:grid; place-items:center; min-width:44px; width:44px; height:44px; padding:0; }
.portal .comparison-table-region { overflow-x:auto; padding-bottom:8px; }
.portal .comparison-table { border-collapse:collapse; width:100%; font-size:14px; line-height:1.65; table-layout:fixed; }
.portal .comparison-table caption { caption-side:bottom; text-align:left; padding-top:16px; font-size:12px; color:var(--muted); }
.portal .comparison-table :is(th,td) { padding:16px; vertical-align:top; text-align:left; border-bottom:1px solid var(--rule); overflow-wrap:anywhere; }
.portal .comparison-table th { font-weight:800; }
.portal .comparison-table thead { background:var(--sky); }
.portal .comparison-table th:first-child { width:130px; }
.portal .comparison-table th a { font:400 25px/1.25 var(--serif); display:inline-flex; align-items:start; gap:8px; }
.portal .comparison-table th .ui-icon { margin-top:4px; }
.portal .comparison-mobile { display:none; }
.portal .news-tools { margin-left:auto; display:inline-flex; }
.portal .news-copy .news-meta { width:100%; align-items:center; }
.portal .news-controls { flex-wrap:wrap; }
.portal .news-controls .saved-view { margin-left:auto; }
.portal .news-empty { padding:24px 20px; border-left:3px solid var(--terra); background:var(--paper); }
@media(max-width:1050px) {
  .portal .comparison-tray { flex-wrap:wrap; gap:8px; }
  .portal .comparison-selection { flex-basis:100%; }
  .portal .comparison-clear { margin-left:auto; }
}
@media(max-width:760px) {
  .portal .catalog-results .saved-view { margin-left:0; }
  .portal .comparison-heading h2 { font-size:29px; }
  .portal .comparison-dialog { padding:18px; }
  .portal .comparison-table { display:none; }
  .portal .comparison-mobile { display:block; }
  .portal .comparison-mobile-item { border-top:3px solid var(--blue); padding-top:18px; }
  .portal .comparison-mobile-item+.comparison-mobile-item { margin-top:28px; }
  .portal .comparison-mobile h3 { font-size:27px; margin-bottom:18px; }
  .portal .comparison-mobile h3 a { display:inline-flex; align-items:center; gap:10px; }
  .portal .comparison-mobile dl { display:grid; grid-template-columns:88px minmax(0,1fr); gap:16px 12px; font-size:13px; line-height:1.7; }
  .portal .comparison-mobile dt { font-weight:800; }
  .portal .comparison-mobile dd { overflow-wrap:anywhere; }
  .portal .comparison-note { font-size:12px; margin-top:22px; color:var(--muted); }
  .portal .comparison-heading { position:sticky; top:-18px; margin:-18px -18px 20px; padding:18px; background:#fff; border-bottom:1px solid var(--rule); z-index:1; }
  .portal .news-controls .saved-view { margin-left:0; }
  .portal .comparison-selection { max-height:40px; overflow-y:auto; }
}
@media print {
  .portal [data-interactive] { display:none!important; }
}
