/* op-heading-levels-ua */
:where(h2.rt-h3){display:block;font-size:1.17em;margin-block-start:1em;margin-block-end:1em;font-weight:bold}
:where(h2.rt-h3p88345b){display:block;font-size:1.17em;margin-block-start:1em;margin-block-end:1em;font-weight:bold}
/* op-heading-levels-ua:end */
/* =========================================================================
   Capitán Alatriste — "The Tavern Table" static site
   Shared stylesheet. Design tokens drive every component.
   ========================================================================= */

:root{
  /* palette */
  --paper:#e7dcc4;        /* warm parchment ground */
  --paper-2:#efe6d1;      /* lighter band */
  --paper-3:#f5efe0;      /* card / reading surface */
  --ink:#241812;          /* deep brown — primary text & dark rooms */
  --ink-2:#40312399;      /* (unused reserve) */
  --ink-body:#3a2c20;     /* body text */
  --ink-soft:#6b5a44;     /* meta / secondary */
  --dark:#241812;         /* header / dark rooms */
  --dark-2:#180f0a;       /* footer */
  --red:#7a2a1e;          /* tavern red */
  --red-deep:#5e1f16;
  --gold:#9a7524;         /* old gold */
  --gold-bright:#c99a3d;  /* candle gold (on dark) */
  --line:#cbb98f;         /* rules on paper */
  --line-soft:#dccdaa;
  --chip:#241812;         /* dark backing for light sponsor wordmarks */

  /* type */
  --f-display:'Marcellus', 'Times New Roman', serif;
  --f-edit:'Cormorant Garamond', Georgia, serif;
  --f-body:'Spectral', Georgia, 'Times New Roman', serif;
  --f-label:'Space Grotesk', system-ui, -apple-system, sans-serif;

  --measure:68ch;
  --wrap:1280px;
  --gutter:clamp(20px, 5vw, 56px);
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  background:var(--paper);
  background-image:
    radial-gradient(ellipse at 20% 0%, rgba(154,117,36,.06), transparent 60%),
    radial-gradient(ellipse at 100% 100%, rgba(122,42,30,.05), transparent 55%);
  color:var(--ink-body);
  font-family:var(--f-body);
  font-size:20px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:var(--red);text-decoration:none}
a:hover{color:var(--red-deep);text-decoration:underline}

/* ---- layout helpers ---- */
.wrap{max-width:var(--wrap);margin:0 auto;padding-inline:var(--gutter)}
.band{padding-block:clamp(40px,6vw,72px)}
.band-paper2{background:var(--paper-2)}
.band-dark{background:var(--dark);color:#e7dcc4}
.band-dark a{color:var(--gold-bright)}
.rule-gold{width:64px;height:2px;background:var(--gold);border:0;margin:20px 0 0}
.center{text-align:center}
.center .rule-gold{margin-inline:auto}

.eyebrow{
  font-family:var(--f-label);
  font-size:13px;
  letter-spacing:.32em;
  text-transform:uppercase;
  color:var(--gold);
  margin:0 0 14px;
  font-weight:500;
}
.band-dark .eyebrow{color:var(--gold-bright)}

/* =========================================================================
   Annotation ghosts — homepage/category "annotate, don't fill" slots.
   Elements stay EMPTY in HTML; this renders their data-fill spec faintly.
   ========================================================================= */
[data-fill]:empty::before{
  content:attr(data-fill);
  font-family:var(--f-label);
  font-size:.7em;
  font-weight:400;
  font-style:italic;
  letter-spacing:.01em;
  text-transform:none;
  line-height:1.35;
  color:var(--red);
  opacity:.5;
}
.band-dark [data-fill]:empty::before{color:var(--gold-bright);opacity:.6}

/* =========================================================================
   Site header + nav (dropdowns are CSS-first; JS only enhances touch)
   ========================================================================= */
.site-header{background:var(--dark);color:#e7dcc4;border-bottom:3px solid var(--gold)}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:74px}
.wordmark{
  font-family:var(--f-display);
  font-size:clamp(20px,2.4vw,26px);
  letter-spacing:.12em;
  color:#f0e6d2;
  text-decoration:none;
  white-space:nowrap;
}
.wordmark:hover{color:#fff;text-decoration:none}
.wordmark small{display:block;font-family:var(--f-label);font-size:9.5px;letter-spacing:.34em;color:var(--gold-bright);margin-top:2px}

.mainnav{display:flex;align-items:stretch;gap:6px}
.mainnav ul{list-style:none;display:flex;gap:4px;margin:0;padding:0}
.nav-item{position:relative;display:flex}
.nav-link{
  display:flex;align-items:center;gap:6px;
  font-family:var(--f-display);
  font-size:15px;letter-spacing:.05em;
  color:#d8c8ac;text-decoration:none;
  padding:10px 14px;border-radius:3px;
  background:none;border:0;cursor:pointer;white-space:nowrap;
}
.nav-link:hover,.nav-item:hover .nav-link,.nav-item:focus-within .nav-link{color:#fff;background:#33241a;text-decoration:none}
.mainnav > ul{flex-wrap:wrap;justify-content:flex-end}
.mainnav .nav-link[data-fill]:empty::before{display:inline-block;max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:-3px}
.has-sub > .nav-link::after{content:"";width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-2px) rotate(45deg);opacity:.7}
.submenu{
  position:absolute;top:100%;left:0;z-index:40;
  width:max-content;min-width:220px;max-width:320px;
  background:var(--dark);border:1px solid #4a3826;border-top:2px solid var(--gold);
  box-shadow:0 16px 34px rgba(0,0,0,.4);
  padding:6px;margin:0;list-style:none;
  opacity:0;visibility:hidden;transform:translateY(6px);
  transition:opacity .16s ease, transform .16s ease, visibility .16s;
}
.mainnav .submenu{display:block}
.nav-item.has-sub:hover .submenu,
.nav-item.has-sub:focus-within .submenu,
.submenu.open{opacity:1;visibility:visible;transform:translateY(0)}
.submenu a{display:block;white-space:nowrap;font-family:var(--f-body);font-size:16px;color:#d8c8ac;padding:9px 12px;border-radius:2px;text-decoration:none}
.submenu a:hover{background:#33241a;color:#fff}
.submenu [data-fill]:empty::before{color:var(--gold-bright);opacity:.55;white-space:nowrap}

/* mobile nav toggle */
.nav-toggle{display:none;background:none;border:1px solid #5a4632;color:#e7dcc4;border-radius:4px;padding:8px 10px;cursor:pointer}
.nav-toggle svg{display:block;width:22px;height:22px}

@media (max-width:860px){
  .site-header .wrap{flex-wrap:wrap;min-height:0;padding-block:14px}
  .nav-toggle{display:inline-flex}
  .mainnav{flex-basis:100%;display:none}
  .mainnav.open{display:block}
  .mainnav ul{flex-direction:column;gap:2px;padding-bottom:8px}
  .nav-item{display:block}
  .nav-link{width:100%;justify-content:space-between}
  .submenu{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:0;border-left:2px solid var(--gold);margin:2px 0 6px 14px;min-width:0;display:none}
  .submenu.open{display:block}
  .nav-item.has-sub:hover .submenu,.nav-item.has-sub:focus-within .submenu{display:none}
  .nav-item.has-sub.open .submenu{display:block}
}

/* =========================================================================
   Site footer
   ========================================================================= */
.site-footer{background:var(--dark-2);color:#c9b896;padding-block:44px 30px;margin-top:0}
.site-footer .wrap{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:36px}
.site-footer h4{font-family:var(--f-label);font-size:12px;letter-spacing:.26em;text-transform:uppercase;color:var(--gold-bright);margin:0 0 14px}
.site-footer .foot-brand{font-family:var(--f-display);font-size:22px;letter-spacing:.1em;color:#f0e6d2;margin:0 0 10px}
.site-footer p{font-size:16px;line-height:1.6;color:#b6a487;margin:0 0 10px;max-width:42ch}
.site-footer ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.site-footer a{color:#d3c1a2}
.foot-legal{border-top:1px solid #3a2a1e;margin-top:30px;padding-top:18px;font-family:var(--f-label);font-size:12.5px;letter-spacing:.04em;color:#8f7d63;text-align:center}
@media (max-width:720px){.site-footer .wrap{grid-template-columns:1fr;gap:26px}}

/* =========================================================================
   HOMEPAGE
   ========================================================================= */
/* intro */
.home-intro{background:var(--paper-2);border-bottom:1px solid var(--line);text-align:center}
.home-intro .headline{
  font-family:var(--f-edit);
  font-weight:500;
  font-size:clamp(30px,4.6vw,52px);
  line-height:1.1;
  color:var(--ink);
  margin:0 auto;
  max-width:20ch;
}
.home-intro .subhead{font-family:var(--f-body);font-style:italic;font-size:clamp(17px,2vw,21px);color:var(--ink-soft);max-width:52ch;margin:16px auto 0}

/* section heading pattern */
.sec-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:0 0 26px}
.sec-title{font-family:var(--f-display);font-size:clamp(24px,3vw,32px);color:var(--red);margin:0;letter-spacing:.02em}
.band-dark .sec-title{color:var(--gold-bright)}
.sec-aside{font-family:var(--f-body);font-style:italic;font-size:17px;color:var(--ink-soft)}
.band-dark .sec-aside{color:#c9b896}

/* featured lead (side-by-side, stacks on mobile) */
.featured-lead{display:grid;grid-template-columns:1.15fr 1fr;gap:clamp(20px,3vw,44px);align-items:center}
.featured-lead .fl-media{position:relative}
.featured-lead .fl-media img{width:100%;aspect-ratio:4/3;object-fit:cover;border:1px solid var(--gold);box-shadow:0 10px 26px rgba(40,20,10,.22)}
.featured-lead .fl-cat{margin-bottom:12px}
.featured-lead .fl-title{font-family:var(--f-edit);font-weight:500;font-size:clamp(28px,3.6vw,44px);line-height:1.08;color:var(--ink);margin:0 0 14px}
.featured-lead .fl-dek{font-size:19px;line-height:1.6;color:var(--ink-body);margin:0 0 16px;max-width:46ch}
@media (max-width:760px){.featured-lead{grid-template-columns:1fr}.featured-lead .fl-media{order:-1}}

/* meta line (NO dates — author · category · read time) */
.pmeta{font-family:var(--f-label);font-size:14px;letter-spacing:.03em;color:var(--ink-soft);display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.pmeta > *{display:inline-flex;align-items:center}
.pmeta .sep{opacity:.5}
.band-dark .pmeta{color:#c0ad8e}

/* feed — varied newest-first cards */
.feed{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2.4vw,30px)}
.feed .feed-card{display:flex;flex-direction:column;background:var(--paper-3);border:1px solid var(--line-soft);border-radius:4px;overflow:hidden}
.feed .feed-card img{width:100%;aspect-ratio:3/2;object-fit:cover}
.feed .fc-body{padding:18px 20px 22px;display:flex;flex-direction:column;gap:10px}
.feed .fc-cat{font-family:var(--f-label);font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--red);display:block}
.feed .fc-title{font-family:var(--f-display);font-size:22px;line-height:1.18;color:var(--ink);margin:0;display:block}
.feed .fc-dek{font-size:16.5px;color:var(--ink-body);margin:0}
.feed .fc-body .pmeta{margin-top:auto;padding-top:6px}
/* first card spans wider for rhythm variety */
.feed .feed-card.wide{grid-column:span 2;flex-direction:row}
.feed .feed-card.wide img{width:46%;aspect-ratio:auto;object-fit:cover}
.feed .feed-card.wide .fc-body{padding:24px 26px}
.feed .feed-card.wide .fc-title{font-size:27px}
.feed-extra{display:none}
#feed-more:checked ~ .feed .feed-extra{display:flex}
#feed-more:checked ~ .feed-more-label{display:none}
.feed-more-label{display:inline-flex;align-items:center;gap:9px;margin:26px auto 0;cursor:pointer;
  font-family:var(--f-label);font-size:13px;letter-spacing:.18em;text-transform:uppercase;color:var(--red);
  border:1px solid var(--red);border-radius:3px;padding:12px 22px;width:max-content}
.feed-more-label:hover{background:var(--red);color:var(--paper-3)}
.feed-more-wrap{text-align:center}
@media (max-width:860px){.feed{grid-template-columns:repeat(2,1fr)}.feed .feed-card.wide{grid-column:span 2}}
@media (max-width:560px){.feed{grid-template-columns:1fr}.feed .feed-card.wide{flex-direction:column}.feed .feed-card.wide img{width:100%;aspect-ratio:3/2}}

/* browse by section (category filter, kept inline where design placed it) */
.browse-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}
.browse-card{display:flex;flex-direction:column;gap:8px;background:var(--dark);color:#e7dcc4;border:1px solid #4a3826;border-radius:4px;padding:20px 18px 22px;text-decoration:none;transition:transform .15s ease,border-color .15s ease}
.browse-card:hover{transform:translateY(-3px);border-color:var(--gold);text-decoration:none}
.browse-card .bc-ico{color:var(--gold-bright);margin-bottom:6px}
.browse-card .bc-ico svg{width:30px;height:30px;display:block}
.browse-card .bc-name{font-family:var(--f-display);font-size:20px;color:#f0e6d2;display:block}
.browse-card .bc-desc{font-family:var(--f-body);font-size:15px;color:#c0ad8e;display:block;line-height:1.45}
@media (max-width:900px){.browse-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:460px){.browse-grid{grid-template-columns:1fr}}

/* the shelf — cover row */
.shelf-row{display:grid;grid-template-columns:repeat(7,1fr);gap:14px}
.shelf-book{display:flex;flex-direction:column;gap:9px;text-decoration:none}
.shelf-book .sb-cover{width:100%;aspect-ratio:2/3;object-fit:cover;box-shadow:0 8px 18px rgba(40,20,10,.3);border-radius:2px}
.shelf-book .sb-title{font-family:var(--f-display);font-size:14px;line-height:1.2;color:var(--ink);display:block}
.shelf-book .sb-num{font-family:var(--f-label);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);display:block}
@media (max-width:900px){.shelf-row{grid-template-columns:repeat(4,1fr)}}
@media (max-width:460px){.shelf-row{grid-template-columns:repeat(2,1fr)}}

/* =========================================================================
   SPONSORS — tiered treatment (featured band + toned-down strip)
   Slot markup identical across tiers; numbered 1..11 continuously.
   ========================================================================= */
.sponsor{display:flex;flex-direction:column;gap:12px;text-decoration:none;color:inherit}
.sponsor img{width:100%;aspect-ratio:3/1;object-fit:contain;background:var(--chip);border:1px solid #3a2a1e;border-radius:5px;padding:14px}
.sponsor .sponsor-blurb{display:block;font-family:var(--f-body);font-size:16px;line-height:1.5;color:var(--ink-soft)}
.sponsor:hover{text-decoration:none}
.sponsor:hover img{border-color:var(--gold)}

.sponsors-featured{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,3vw,40px)}
.sponsors-featured .sponsor img{aspect-ratio:3.4/1;padding:18px}

/* toned-down strip — smaller, blurb hidden, placed away from featured band */
.sponsors-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.sponsors-strip .sponsor img{aspect-ratio:3.4/1;padding:10px;background:#2a1d15;border-color:#4a3826}
.sponsors-strip .sponsor-blurb{display:none}
.band-dark .sponsor .sponsor-blurb{color:#c0ad8e}
@media (max-width:860px){.sponsors-featured{grid-template-columns:1fr;gap:22px}.sponsors-strip{grid-template-columns:repeat(2,1fr)}}

/* =========================================================================
   ARTICLE template
   ========================================================================= */
.article-hero{position:relative;background:var(--dark);color:#e7dcc4}
.article-hero .ah-media{width:100%;height:clamp(280px,42vw,520px);overflow:hidden}
.article-hero .ah-media img{width:100%;height:100%;object-fit:cover;opacity:.72}
.article-hero .ah-inner{position:absolute;inset:auto 0 0 0;background:linear-gradient(0deg,rgba(20,12,8,.94),rgba(20,12,8,.2));padding:clamp(28px,5vw,60px) 0}
.article-hero .ah-inner .wrap{max-width:900px}
.article-hero .ah-cat{color:var(--gold-bright);margin-bottom:14px}
.article-hero h1{font-family:var(--f-edit);font-weight:500;font-size:clamp(32px,5vw,58px);line-height:1.05;color:#f7ecd4;margin:0 0 16px;max-width:20ch}
.article-hero .pmeta{color:#d3c1a2}
/* fallback when hero has no image */
.article-hero.no-img{padding:clamp(40px,6vw,80px) 0}
.article-hero.no-img .ah-media{display:none}
.article-hero.no-img .ah-inner{position:static;background:none;padding:0}

.article-body{max-width:var(--measure);margin:0 auto;padding:clamp(36px,5vw,60px) 24px clamp(40px,6vw,72px)}
.article-body > *{margin-inline:auto}
.article-body p{font-size:20px;line-height:1.72;color:var(--ink-body);margin:0 0 1.15em}
.article-body h2{font-family:var(--f-display);font-size:clamp(24px,3vw,32px);color:var(--ink);letter-spacing:.01em;margin:1.7em 0 .5em;line-height:1.2}
.article-body h2 em{font-family:var(--f-edit);font-style:italic;font-weight:500}
.article-body h3{font-family:var(--f-display);font-size:22px;color:var(--red);margin:1.4em 0 .4em}
.article-body ul,.article-body ol{font-size:20px;line-height:1.65;color:var(--ink-body);padding-left:1.2em;margin:0 0 1.2em}
.article-body ul li,.article-body ol li{margin:0 0 .5em}
.article-body ul{list-style:none;padding-left:0}
.article-body ul li{position:relative;padding-left:1.5em}
.article-body ul li::before{content:"";position:absolute;left:.2em;top:.72em;width:7px;height:7px;background:var(--gold);transform:rotate(45deg)}
.article-body > .lead:first-child::first-letter,
.article-body .lead.dropcap::first-letter{
  font-family:var(--f-edit);font-weight:600;float:left;font-size:3.4em;line-height:.78;
  padding:.04em .09em 0 0;color:var(--red);
}
.data-person,[data-person],[data-place],[data-work],[data-entity]{color:var(--red);border-bottom:1px solid rgba(122,42,30,.28)}

/* related block — collapses cleanly when empty */
.related{border-top:2px solid var(--line);max-width:var(--measure);margin:0 auto;padding:0 24px clamp(50px,6vw,80px)}
.related > h2{font-family:var(--f-display);font-size:24px;color:var(--red);margin:34px 0 20px;letter-spacing:.02em}
.related-links{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.related-links:empty{display:none}
.related:has(.related-links:empty){display:none}
.related-links li{margin:0}
.related-links a{display:block;background:var(--paper-3);border:1px solid var(--line-soft);border-left:3px solid var(--gold);border-radius:3px;padding:16px 18px;font-family:var(--f-display);font-size:18px;color:var(--ink);line-height:1.25}
.related-links a:hover{border-left-color:var(--red);text-decoration:none;background:#fbf6ea}
@media (max-width:560px){.related-links{grid-template-columns:1fr}}

/* =========================================================================
   CATEGORY index template
   ========================================================================= */
.cat-hero{background:var(--dark);color:#e7dcc4;padding-block:clamp(40px,6vw,72px);border-bottom:3px solid var(--gold)}
.cat-hero .eyebrow{color:var(--gold-bright)}
.cat-hero h1{font-family:var(--f-edit);font-weight:500;font-size:clamp(34px,5vw,56px);color:#f7ecd4;margin:0 0 16px;line-height:1.05}
.cat-hero .cat-intro{font-family:var(--f-body);font-size:20px;line-height:1.6;color:#d3c1a2;max-width:60ch;margin:0}
.cat-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(16px,2vw,26px)}
.cat-list:empty::after{content:"No entries in this section yet.";font-family:var(--f-body);font-style:italic;color:var(--ink-soft);grid-column:1/-1}
.cat-list > li{margin:0}
.cat-card{display:grid;grid-template-columns:120px 1fr;gap:18px;background:var(--paper-3);border:1px solid var(--line-soft);border-radius:4px;overflow:hidden;text-decoration:none;height:100%}
.cat-card img{width:120px;height:100%;object-fit:cover}
.cat-card .cc-body{padding:18px 20px 20px;display:flex;flex-direction:column;gap:8px}
.cat-card .cc-cat{font-family:var(--f-label);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--red)}
.cat-card .cc-title{font-family:var(--f-display);font-size:21px;line-height:1.2;color:var(--ink)}
.cat-card .cc-dek{font-size:16px;color:var(--ink-body);margin:0}
.cat-card:hover{border-color:var(--gold);text-decoration:none}
@media (max-width:640px){.cat-list{grid-template-columns:1fr}}

/* =========================================================================
   Simple content pages (about, contact, privacy, 404)
   ========================================================================= */
.page-hero{background:var(--paper-2);border-bottom:1px solid var(--line);padding-block:clamp(36px,5vw,60px)}
.page-hero h1{font-family:var(--f-edit);font-weight:500;font-size:clamp(32px,4.6vw,50px);color:var(--ink);margin:0;line-height:1.06}
.page-hero .eyebrow{margin-bottom:12px}
.page-body{max-width:var(--measure);margin:0 auto;padding:clamp(34px,5vw,56px) 24px clamp(44px,6vw,72px)}
.page-body h2{font-family:var(--f-display);font-size:26px;color:var(--ink);margin:1.5em 0 .4em}
.page-body h2:first-child{margin-top:0}
.page-body p{font-size:20px;line-height:1.72;margin:0 0 1.1em;color:var(--ink-body)}
.page-body ul{font-size:19px;line-height:1.6;margin:0 0 1.2em;padding-left:1.3em}
.page-body ul li{margin:0 0 .55em}

/* contact methods (SVG icons, not emoji) */
.contact-methods{list-style:none;margin:26px 0 0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.contact-methods li{display:flex;gap:14px;align-items:flex-start;background:var(--paper-3);border:1px solid var(--line-soft);border-radius:4px;padding:16px 18px}
.contact-methods .cm-ico{color:var(--red);flex:none;margin-top:2px}
.contact-methods .cm-ico svg{width:24px;height:24px;display:block}
.contact-methods .cm-name{display:block;font-family:var(--f-display);font-size:18px;color:var(--ink)}
.contact-methods .cm-val{display:block;font-size:16px;color:var(--ink-soft)}
@media (max-width:560px){.contact-methods{grid-template-columns:1fr}}
.contact-form{margin-top:28px;display:grid;gap:14px;max-width:560px}
.contact-form label{font-family:var(--f-label);font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);display:block;margin-bottom:6px}
.contact-form input,.contact-form textarea{width:100%;font-family:var(--f-body);font-size:18px;padding:12px 14px;border:1px solid var(--line);border-radius:3px;background:var(--paper-3);color:var(--ink)}
.contact-form button{justify-self:start;font-family:var(--f-label);font-size:13px;letter-spacing:.16em;text-transform:uppercase;background:var(--red);color:var(--paper-3);border:0;border-radius:3px;padding:14px 30px;cursor:pointer}
.contact-form button:hover{background:var(--red-deep)}

/* 404 */
.nf{min-height:52vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:60px var(--gutter)}
.nf .nf-num{font-family:var(--f-edit);font-size:clamp(90px,16vw,180px);line-height:.9;color:var(--gold);margin:0}
.nf h1{font-family:var(--f-display);font-size:clamp(26px,4vw,40px);color:var(--ink);margin:8px 0 12px}
.nf p{font-size:20px;color:var(--ink-soft);max-width:44ch;margin:0 0 26px}
.btn{display:inline-flex;align-items:center;gap:10px;font-family:var(--f-label);font-size:13px;letter-spacing:.16em;text-transform:uppercase;background:var(--red);color:var(--paper-3);border-radius:3px;padding:14px 28px;text-decoration:none}
.btn:hover{background:var(--red-deep);color:var(--paper-3);text-decoration:none}

/* =========================================================================
   PALETTE_SPEC components
   ========================================================================= */
.lead{font-family:var(--f-edit);font-size:clamp(22px,2.6vw,27px);line-height:1.45;color:var(--ink);font-weight:500;margin:0 0 1em}

.pullquote{margin:1.6em 0;border:0;padding:0;text-align:center;font-family:var(--f-edit);font-style:italic;font-weight:500;font-size:clamp(24px,3.2vw,32px);line-height:1.3;color:var(--red)}
.pullquote p{font:inherit;color:inherit;margin:0}
.pullquote::before{content:"\201C";display:block;font-family:var(--f-edit);font-size:2.2em;line-height:.4;color:var(--gold);opacity:.6;margin-bottom:.12em}

.blockquote{margin:1.5em 0;padding:4px 0 4px 24px;border-left:3px solid var(--gold)}
.blockquote p{font-family:var(--f-body);font-style:italic;font-size:21px;line-height:1.55;color:var(--ink);margin:0 0 .5em}
.blockquote cite{font-family:var(--f-label);font-style:normal;font-size:14px;letter-spacing:.08em;color:var(--ink-soft)}

.callout{margin:1.6em 0;background:var(--paper-3);border:1px solid var(--line);border-top:3px solid var(--red);border-radius:4px;padding:22px 26px;font-family:var(--f-body);font-size:19px;line-height:1.6;color:var(--ink)}
.callout p{font-family:inherit;font-size:inherit;line-height:inherit;color:inherit;margin:0}
.callout p + p{margin-top:.7em}

.note{font-family:var(--f-body);font-size:17px;line-height:1.55;color:var(--ink-soft);font-style:italic;margin:1.3em 0;padding-left:16px;border-left:2px solid var(--line)}

/* versus */
.versus{width:100%;border-collapse:collapse;margin:1.6em 0;font-size:18px}
.versus caption{font-family:var(--f-label);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);padding-bottom:10px}
.versus td,.versus th{border:1px solid var(--line);padding:14px 16px;vertical-align:top;background:var(--paper-3)}
.versus th{font-family:var(--f-display);font-size:19px;color:var(--red);text-align:left;background:var(--paper-2)}
.versus .versus-side{display:table-cell}
/* also supports div-based versus */
div.versus{display:grid;grid-template-columns:1fr 1fr;gap:0;border:1px solid var(--line)}
div.versus .versus-side{padding:20px 22px;background:var(--paper-3)}
div.versus .versus-side + .versus-side{border-left:1px solid var(--line)}
div.versus .versus-side strong{display:block;font-family:var(--f-display);font-weight:400;font-size:20px;color:var(--red);margin-bottom:12px}
div.versus .versus-side ul{margin:0;padding-left:1.2em;font-size:17px}
div.versus .versus-side li{margin:0 0 .5em}
@media (max-width:560px){div.versus{grid-template-columns:1fr}div.versus .versus-side + .versus-side{border-left:0;border-top:1px solid var(--line)}}

/* datatable */
.datatable{width:100%;border-collapse:collapse;margin:1.6em 0;font-size:17.5px;font-family:var(--f-body)}
.datatable caption{font-family:var(--f-label);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);text-align:left;padding-bottom:10px}
.datatable th,.datatable td{border-bottom:1px solid var(--line);padding:12px 14px;text-align:left}
.datatable thead th{font-family:var(--f-label);font-size:12.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--red);border-bottom:2px solid var(--gold)}
.datatable tbody tr:hover{background:var(--paper-3)}
.datatable-wrap{overflow-x:auto}

/* statblocks */
.statrow{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:1.7em 0}
.statblock{display:flex;flex-direction:column;gap:6px;background:var(--dark);color:#e7dcc4;border-radius:5px;padding:22px 20px;text-align:center;border:1px solid #4a3826}
.statblock .stat-num{font-family:var(--f-edit);font-weight:600;font-size:clamp(32px,4vw,46px);line-height:1;color:var(--gold-bright)}
.statblock .stat-label{font-family:var(--f-label);font-size:13px;letter-spacing:.06em;color:#c8b795;line-height:1.35}
@media (max-width:560px){.statrow{grid-template-columns:1fr;gap:10px}.statblock{flex-direction:row;align-items:baseline;justify-content:flex-start;gap:14px;text-align:left}}

/* timeline — long multi-word labels supported */
.timeline{list-style:none;margin:1.7em 0;padding:0;position:relative}
.timeline::before{content:"";position:absolute;left:9px;top:6px;bottom:6px;width:2px;background:var(--line)}
.timeline li{position:relative;padding:0 0 22px 40px}
.timeline li::before{content:"";position:absolute;left:3px;top:5px;width:14px;height:14px;border-radius:50%;background:var(--gold);border:3px solid var(--paper)}
.timeline li:last-child{padding-bottom:0}
.timeline .t-when{display:block;font-family:var(--f-label);font-size:13.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--red);margin-bottom:4px;line-height:1.3}
.timeline .t-what{display:block;font-family:var(--f-body);font-size:18.5px;line-height:1.55;color:var(--ink-body)}

/* charts */
.chart{margin:1.7em 0}
.chart svg{width:100%;height:auto;display:block;overflow:visible}
.chart figcaption{font-family:var(--f-label);font-size:14px;color:var(--ink-soft);margin-top:12px;text-align:center;letter-spacing:.02em}
.chart .bar-rect{fill:var(--red)}
.chart .bar-rect.alt{fill:var(--gold)}
.chart .bar-label{font-family:var(--f-label);font-size:12px;fill:var(--ink-soft)}
.chart .bar-val{font-family:var(--f-label);font-size:12px;fill:var(--ink);font-weight:500}
.chart .axis{stroke:var(--line);stroke-width:1.5}
.chart .grid{stroke:var(--line-soft);stroke-width:1}
.chart .line-path{fill:none;stroke:var(--red);stroke-width:2.5}
.chart .line-area{fill:var(--red);opacity:.08}
.chart .line-dot{fill:var(--gold)}

/* figures */
.article-figure{margin:1.8em 0}
.article-figure img{width:100%;border:1px solid var(--line);border-radius:3px;background:var(--paper-3)}
.article-figure figcaption{font-family:var(--f-label);font-size:14.5px;color:var(--ink-soft);margin-top:10px;line-height:1.5;padding-left:14px;border-left:2px solid var(--gold)}

.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:1.8em 0}
.gallery figure{margin:0}
.gallery img{width:100%;aspect-ratio:1/1;object-fit:cover;border:1px solid var(--line);border-radius:3px}
.gallery figcaption{font-family:var(--f-label);font-size:13px;color:var(--ink-soft);margin-top:7px}
@media (max-width:560px){.gallery{grid-template-columns:1fr 1fr}}

/* map figure */
.map-figure{margin:1.8em 0}
.map-figure svg{width:100%;height:auto;display:block;background:var(--paper-3);border:1px solid var(--line);border-radius:3px}
.map-figure figcaption{font-family:var(--f-label);font-size:14px;color:var(--ink-soft);margin-top:10px;padding-left:14px;border-left:2px solid var(--gold)}

/* profile cards */
.profile-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin:1.8em 0}
.profile-card{display:grid;grid-template-columns:88px 1fr;gap:16px;background:var(--paper-3);border:1px solid var(--line);border-radius:5px;padding:20px}
.profile-card .p-photo{width:88px;height:88px;border-radius:50%;object-fit:cover;border:2px solid var(--gold)}
.profile-card.no-photo{grid-template-columns:1fr}
.profile-card h3{font-family:var(--f-display);font-size:21px;color:var(--ink);margin:0 0 2px}
.profile-card .p-role{font-family:var(--f-label);font-size:12.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--red);margin:0 0 8px;display:block}
.profile-card p{font-size:16.5px;line-height:1.55;color:var(--ink-body);margin:0 0 8px}
.profile-card .p-links{display:flex;flex-wrap:wrap;gap:12px;margin:0}
.profile-card .p-links a{font-family:var(--f-label);font-size:13px;letter-spacing:.03em}
.profile-card .p-attr{font-family:var(--f-label);font-size:12px;color:var(--ink-soft);margin-top:6px;display:block}
@media (max-width:640px){.profile-grid{grid-template-columns:1fr}}
@media (max-width:400px){.profile-card{grid-template-columns:1fr}.profile-card .p-photo{width:72px;height:72px}}

/* org cards */
.org-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:1.8em 0}
.org-card{display:flex;flex-direction:column;gap:8px;background:var(--paper-3);border:1px solid var(--line);border-radius:4px;padding:16px 18px;text-decoration:none}
.org-card .org-logo{width:100%;aspect-ratio:3/1;object-fit:contain;background:var(--chip);border-radius:3px;padding:10px}
.org-card .org-name{font-family:var(--f-display);font-size:18px;color:var(--ink);display:block}
.org-card .org-host{font-family:var(--f-label);font-size:13px;color:var(--ink-soft);display:block}
.org-card.no-logo{padding-top:20px}
.org-card:hover{border-color:var(--gold);text-decoration:none}
@media (max-width:640px){.org-grid{grid-template-columns:1fr 1fr}}
@media (max-width:400px){.org-grid{grid-template-columns:1fr}}

.entity-ref{font-family:var(--f-body);color:var(--red);border-bottom:1px solid rgba(122,42,30,.4);white-space:nowrap}
.entity-ref:hover{color:var(--red-deep);text-decoration:none;border-bottom-color:var(--red)}

/* further reading */
.further-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:1.8em 0}
.further-grid a{display:block;background:var(--paper-3);border:1px solid var(--line-soft);border-left:3px solid var(--gold);border-radius:3px;padding:16px 18px;font-family:var(--f-display);font-size:18px;color:var(--ink);line-height:1.25}
.further-grid a:hover{border-left-color:var(--red);text-decoration:none;background:#fbf6ea}
@media (max-width:640px){.further-grid{grid-template-columns:1fr}}

/* utility */
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.sg-swatch{height:56px;border-radius:4px;border:1px solid rgba(0,0,0,.15)}

/* =========================================================================
   GLOSSED MANUSCRIPT — a reading layout where the main column flows and a
   margin rail carries "glosses" (entity notes, small engravings, place-pins,
   stat-marks) aligned to the passage they annotate. Collapses on mobile.
   ========================================================================= */
.ms-hero{background:var(--dark);color:#e7dcc4;border-bottom:3px solid var(--gold);padding-block:clamp(38px,6vw,74px)}
.ms-hero .wrap{max-width:1180px}
.ms-hero .eyebrow{color:var(--gold-bright)}
.ms-hero h1{font-family:var(--f-edit);font-weight:500;font-size:clamp(34px,6vw,68px);line-height:1.02;color:#f7ecd4;margin:0 0 18px;max-width:16ch}
.ms-hero .ms-standfirst{font-family:var(--f-body);font-style:italic;font-size:clamp(18px,2.2vw,23px);line-height:1.5;color:#d3c1a2;max-width:60ch;margin:0 0 20px}
.ms-hero .pmeta{color:#c0ad8e}

/* the manuscript wrapper + spread rows */
.manuscript{max-width:1180px;margin:0 auto;padding:clamp(30px,5vw,60px) var(--gutter) clamp(40px,6vw,80px)}
.spread{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:clamp(30px,4vw,60px);align-items:start}
.spread + .spread{margin-top:6px}
.spread-main{min-width:0}
.spread-main > *{max-width:66ch}
.spread-main > .full{max-width:none}   /* charts, tables, maps, galleries break the measure */
.spread-margin{position:sticky;top:24px;display:flex;flex-direction:column;gap:20px;padding-top:6px}

/* prose inside the manuscript main column */
.spread-main p{font-size:20px;line-height:1.74;color:var(--ink-body);margin:0 0 1.15em}
.spread-main h2{font-family:var(--f-display);font-size:clamp(24px,3vw,32px);color:var(--ink);letter-spacing:.01em;margin:1.5em 0 .45em;line-height:1.2;max-width:none}
.spread-main h2 .h2-num{font-family:var(--f-edit);font-style:italic;color:var(--gold);margin-right:.4em}
.spread-main h3{font-family:var(--f-display);font-size:21px;color:var(--red);margin:1.3em 0 .35em}
.spread-main > p:first-of-type::first-letter{font-family:var(--f-edit);font-weight:600;float:left;font-size:3.6em;line-height:.78;padding:.04em .1em 0 0;color:var(--red)}

/* gloss cards */
.gloss{background:var(--paper-3);border:1px solid var(--line-soft);border-left:3px solid var(--gold);border-radius:3px;padding:16px 18px}
.gloss .g-label{display:block;font-family:var(--f-label);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--red);margin-bottom:8px}
.gloss .g-name{display:block;font-family:var(--f-display);font-size:19px;color:var(--ink);line-height:1.2;margin-bottom:6px}
.gloss p{font-family:var(--f-body);font-size:15.5px;line-height:1.55;color:var(--ink-body);margin:0}
.gloss.gloss-fig{padding:0;overflow:hidden;background:none;border-left-width:1px}
.gloss.gloss-fig img{width:100%;aspect-ratio:4/5;object-fit:cover;display:block}
.gloss.gloss-fig figcaption{font-family:var(--f-label);font-size:12.5px;line-height:1.45;color:var(--ink-soft);padding:10px 14px;background:var(--paper-3)}
.gloss.gloss-stat{text-align:center;border-left:0;border-top:3px solid var(--gold);background:var(--dark);color:#e7dcc4}
.gloss.gloss-stat .g-num{font-family:var(--f-edit);font-weight:600;font-size:clamp(34px,5vw,48px);line-height:1;color:var(--gold-bright);display:block;margin-bottom:4px}
.gloss.gloss-stat .g-label{color:#c8b795;margin:0}
.gloss.gloss-pin{border-left-color:var(--red)}
.gloss.gloss-pin .g-label{color:var(--gold)}
.gloss.gloss-pin .g-coord{font-family:var(--f-label);font-size:12px;color:var(--ink-soft);display:block;margin-top:6px;letter-spacing:.04em}
/* timeline-pin gloss — a moment anchored in the margin */
.gloss.gloss-time{border-left:0;padding-left:38px;position:relative;background:var(--paper-3)}
.gloss.gloss-time::before{content:"";position:absolute;left:14px;top:20px;bottom:16px;width:2px;background:var(--line)}
.gloss.gloss-time::after{content:"";position:absolute;left:9px;top:18px;width:12px;height:12px;border-radius:50%;background:var(--gold);border:3px solid var(--paper-3)}
.gloss.gloss-time .g-when{display:block;font-family:var(--f-label);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--red);margin-bottom:5px;line-height:1.3}
.gloss.gloss-time .g-name{margin-bottom:5px}

@media (max-width:900px){
  .spread{grid-template-columns:1fr;gap:0}
  .spread-margin{position:static;flex-direction:column;gap:16px;margin:8px 0 24px;padding-top:0}
  .spread-margin:empty{display:none}
  .spread-main > *{max-width:none}
  /* inline gloss reads as a tinted aside band on small screens */
  .gloss{border-left-width:4px}
}

/* =========================================================================
   HOMEPAGE — five-room spine ("The Tavern Table")
   ========================================================================= */
/* Room 1: The Novels — cover carousel (reading order) */
.cover-rail{display:grid;grid-auto-flow:column;grid-auto-columns:clamp(140px,19vw,178px);gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:14px;-webkit-overflow-scrolling:touch}
.cover-rail::-webkit-scrollbar{height:8px}
.cover-rail::-webkit-scrollbar-thumb{background:var(--line);border-radius:4px}
.cover-rail::-webkit-scrollbar-track{background:transparent}
.cover-book{scroll-snap-align:start;display:flex;flex-direction:column;gap:10px;text-decoration:none}
.cover-book .cb-cover{width:100%;aspect-ratio:2/3;object-fit:cover;border-radius:2px;box-shadow:0 10px 22px rgba(40,20,10,.32)}
.cover-book .cb-num{font-family:var(--f-label);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);display:block}
.cover-book .cb-title{font-family:var(--f-display);font-size:15px;line-height:1.2;color:var(--ink);display:block}
.cover-book:hover .cb-cover{outline:2px solid var(--gold);outline-offset:2px}

/* Room 2: Characters — portrait grid (on dark) */
.char-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:clamp(12px,2vw,20px)}
.char{display:flex;flex-direction:column;gap:9px;text-decoration:none}
.char .ch-photo{width:100%;aspect-ratio:3/4;object-fit:cover;border:1px solid var(--gold);border-radius:2px}
.char .ch-name{font-family:var(--f-display);font-size:18px;color:#f0e6d2;display:block}
.char .ch-role{font-family:var(--f-body);font-style:italic;font-size:15px;color:#c0ad8e;display:block}
@media(max-width:820px){.char-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:480px){.char-grid{grid-template-columns:repeat(2,1fr)}}

/* Room 3: The Golden Age — painting-led band + short history list */
.ga-band{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(24px,4vw,48px);align-items:center}
.ga-media img{width:100%;aspect-ratio:4/3;object-fit:cover;border:1px solid var(--gold);box-shadow:0 10px 26px rgba(40,20,10,.22)}
.ga-cap{font-family:var(--f-label);font-size:13px;color:var(--ink-soft);margin-top:10px;padding-left:12px;border-left:2px solid var(--gold);display:block}
.ga-title{font-family:var(--f-edit);font-weight:500;font-size:clamp(26px,3.4vw,40px);line-height:1.1;color:var(--ink);margin:0 0 12px}
.ga-dek{font-size:18px;line-height:1.6;color:var(--ink-body);margin:0 0 22px;max-width:48ch}
.ga-list{list-style:none;margin:0;padding:0}
.ga-list li{display:flex;gap:14px;align-items:baseline;padding:13px 0;border-top:1px solid var(--line)}
.ga-list li:last-child{border-bottom:1px solid var(--line)}
.ga-list .ga-n{font-family:var(--f-display);font-size:17px;color:var(--red);flex:none;width:1.8em}
.ga-list .ga-t{font-family:var(--f-body);font-size:17px;color:var(--ink)}
@media(max-width:760px){.ga-band{grid-template-columns:1fr}.ga-media{order:-1}}

/* Room 4: The Film — still strip */
.still-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.still{margin:0}
.still img{width:100%;aspect-ratio:16/9;object-fit:cover;border:1px solid var(--line);border-radius:2px}
.still figcaption{font-family:var(--f-label);font-size:13px;color:var(--ink-soft);margin-top:9px;padding-left:12px;border-left:2px solid var(--gold)}
@media(max-width:640px){.still-strip{grid-template-columns:1fr}}

/* Room 5: The Author — portrait + pull-quote (on dark) */
.author-band{display:grid;grid-template-columns:210px 1fr;gap:clamp(28px,4vw,48px);align-items:center}
.author-portrait img{width:100%;aspect-ratio:4/5;object-fit:cover;border:1px solid var(--gold);border-radius:2px}
.author-quote{font-family:var(--f-edit);font-style:italic;font-weight:500;font-size:clamp(24px,3.2vw,34px);line-height:1.3;color:#f2e7cb;margin:0 0 16px}
.author-quote::before{content:"\201C";font-family:var(--f-edit);color:var(--gold);opacity:.7}
.author-quote::after{content:"\201D";font-family:var(--f-edit);color:var(--gold);opacity:.7}
.author-attr{font-family:var(--f-body);font-size:16px;color:#c0ad8e;display:block}
@media(max-width:620px){.author-band{grid-template-columns:1fr}.author-portrait{max-width:220px}}

/* --- capitan finalize override: show the full novel shelf on desktop (no horizontal scroll); mobile keeps the swipe carousel --- */
@media (min-width:760px){
  .cover-rail{grid-auto-columns:1fr;overflow-x:visible;scroll-snap-type:none}
}

/* op-footer-compact: the footer printed 4 rows for 4 link(s) in
   1 list(s) — 797px at 390, 12% of the whole page. Design's own
   good case (evbb) has no list at all: its footer links simply flow inline, 479px in total.
   Here the lists flow inline too,
   measured 797 -> 635px (20% shorter) with no new overflow. Both shapes were
   tried and the shorter one kept — two columns helps a wide group set and hurts a narrow one.
   Phone widths only; the desktop footer is untouched. */
@media (max-width:640px){
  footer ul,footer ol{display:flex!important;flex-direction:row!important;flex-wrap:wrap!important;column-gap:clamp(8px,2.5vw,36px)!important;row-gap:6px!important}
  footer ul > li,footer ol > li{width:auto!important;flex:0 0 auto;max-width:100%}
}

/* op-article-width: the article column was capped at 660px (74 characters per line) at every desktop width. Operator: "it should utilize more space". Widened through max-width 66ch (declared in .spread-main > *) to ~80 characters per line in this build's own prose font, never past the edge Design's own content already reaches beside it. The layout has no room to grow above 1600, so this width holds there. Nothing below 1024 changes. Originals: migration/_backups/article_width/. */
@media (min-width:1024px){
  div.manuscript div.spread-main > :is(p:not([class]), ul:not([class])){max-width:min(907px, 100%)!important}
}
/* op-article-width:end */

/* op-article-head: the article header followed the text column (660px) and was left behind when the text went to 710px. Operator: "article header page with title + meta info that are super shrinked". Its containers now follow the text again by the text's own factor. */
@media (min-width:1024px){
  header.ms-hero h1{max-width:min(558px, 100%)!important}
  p.ms-standfirst{max-width:min(710px, 100%)!important}
}
/* op-article-head:end */
/* op-heading-levels */
.profile-card h2:where(.rt-h3){font-family: var(--f-display); font-size: 21px; color: var(--ink); margin: 0px 0px 2px;}
.profile-card h2:where(.rt-h3p88345b){font-family: var(--f-display); font-size: 21px; color: var(--ink); margin: 0px 0px 2px;}
.spread-main h2:where(.rt-h3){font-family: var(--f-display); font-size: 21px; color: var(--red); margin: 1.3em 0px 0.35em;}
.spread-main h2:where(.rt-h3p88345b){font-family: var(--f-display); font-size: 21px; color: var(--red); margin: 1.3em 0px 0.35em;}
h2.rt-h3.rt-h3{height:33.5938px;line-height:33.6px;letter-spacing:normal}
h2.rt-h3p88345b.rt-h3p88345b{line-height:33.6px;letter-spacing:normal}
/* op-heading-levels:end */

/* op-img-dims — intrinsic width/height reserve image space; the proven height:auto guard (zero specificity) */
:where(a.still-link > figure.still > img,
  aside.spread-margin > div.gloss > img,
  div.author-portrait > a > img,
  div.char-grid > a.char > img.ch-photo,
  div.cover-rail > a.cover-book > img.cb-cover,
  div.ga-band > div.ga-media > img,
  div.spread-main > div.profile-card > img,
  div.spread-main > figure.article-figure > img,
  div.spread-main > figure.article-figure.full > img,
  li > a.cat-card > img){height:auto}
/* op-img-dims:end */

/* op-entity-wrap: long reference links wrap like the text around them (nowrap ran them off phone screens) */
.entity-ref.entity-ref{white-space:normal!important}
@media (min-width:700px) and (max-width:879px){.sponsors-featured:has(> [data-partner]){display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:var(--sp-gap,16px)!important}.sponsors-featured:has(> [data-partner]) > [data-partner]{width:auto!important;min-width:0!important;margin-left:0!important;margin-right:0!important}}
