/* History's Worst Headlines — public-only editorial layer.
   Keep the baseline app.css/player contracts and owner control room independent. */
body.public-headlines {
  --wh-paper: #f5ecdc;
  --wh-paper-light: #fbf7ed;
  --wh-paper-deep: #e9d9bd;
  --wh-ink: #201c18;
  --wh-muted: #60554b;
  --wh-red: #a62924;
  --wh-red-hover: #8b201f;
  --wh-black: #211e1b;
  --wh-gold: #c58c3e;
  --wh-border: #c8b89d;
  --c-bg: var(--wh-paper);
  --c-bg-deep: var(--wh-paper-light);
  --c-surface: var(--wh-paper-light);
  --c-surface-2: var(--wh-paper-deep);
  --c-surface-3: #e2d0b2;
  --c-text: var(--wh-ink);
  --c-text-2: #4c423a;
  --c-muted: var(--wh-muted);
  --c-parchment: var(--wh-ink);
  --c-gold: var(--wh-red);
  --c-gold-ink: var(--wh-red);
  --c-gold-bright: var(--wh-red-hover);
  --c-line: #d8c9b3;
  --c-line-strong: var(--wh-border);
  --c-line-gold: var(--wh-border);
  --c-action: var(--wh-red);
  --c-action-hover: var(--wh-red-hover);
  --c-on-action: #ffffff;
  --c-error: #9e2b22;
  --content-max: 1200px;
  --gutter: clamp(18px, 3.5vw, 48px);
  --shell: min(100% - 2 * var(--gutter), var(--content-max));
  --r-md: 7px;
  --r-lg: 7px;
  --r-xl: 7px;
  --header-h: 100px;
  --shadow-lift: 0 3px 0 #c8b89d66, 0 10px 24px #76604314;
  background: var(--wh-paper);
  color-scheme: light;
}
.public-headlines .wh-app { background: var(--wh-paper); }
.public-headlines .eyebrow { font-size: 11px; letter-spacing: .13em; }
.public-headlines :focus-visible { outline-color: var(--wh-red); }
/* Every labelled public action is a small woodcut placard. The shared base
   keeps cards, forms, modals and player controls visually related; large hero
   actions simply scale the same construction up. */
.public-headlines .btn {
  position: relative;
  isolation: isolate;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 46px;
  padding: 10px 16px;
  overflow: hidden;
  border: 2px solid #402116;
  border-radius: 10px;
  font-family: "Fraunces", Georgia, "Times New Roman", serif;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.15;
  text-decoration: none;
  white-space: nowrap;
  box-shadow: inset 0 0 0 2px rgb(255 224 165 / .48), 0 3px 0 #512519, 0 5px 9px rgb(51 32 22 / .13);
  transition: transform .15s ease, box-shadow .15s ease;
}
.public-headlines .btn--primary, .public-headlines .btn--gold { background-color: #a91f18; background-image: repeating-linear-gradient(125deg, rgb(255 240 208 / .055) 0 1px, transparent 1px 5px), radial-gradient(circle at 18% 35%, rgb(255 240 208 / .12) 0 1px, transparent 1.6px); background-size: auto, 11px 13px; border-color: #402116; color: #fff0d0; }
.public-headlines .btn--ghost { background-color: #f5e4c4; background-image: repeating-linear-gradient(125deg, rgb(51 32 22 / .035) 0 1px, transparent 1px 6px), linear-gradient(135deg, #fbefd5, #efd8ae); background-size: auto, auto; border-color: #402116; color: #332016; }
.public-headlines .btn::before, .public-headlines .btn::after { content: ""; position: absolute; z-index: 1; width: 28px; height: 21px; opacity: .6; pointer-events: none; background: repeating-linear-gradient(45deg, currentColor 0 1px, transparent 1px 4px); }
.public-headlines .btn::before { top: 5px; left: 5px; clip-path: polygon(0 0, 100% 0, 0 100%); }
.public-headlines .btn::after { right: 5px; bottom: 5px; clip-path: polygon(100% 0, 100% 100%, 0 100%); }
.public-headlines .btn .icon { position: relative; z-index: 2; }
.public-headlines .btn:hover { transform: translateY(-1px); box-shadow: inset 0 0 0 2px rgb(255 224 165 / .55), 0 4px 0 #512519, 0 7px 12px rgb(51 32 22 / .16); }
.public-headlines .btn:active { transform: translateY(2px); box-shadow: inset 0 0 0 2px rgb(255 224 165 / .48), 0 1px 0 #512519; }
.public-headlines .btn:focus-visible { outline: 3px solid #b77b27; outline-offset: 3px; }
.public-headlines .btn--lg { min-height: 64px; padding: 14px 26px; border-radius: 12px; font-size: 22px; }
.public-headlines .btn--lg .icon { width: 28px; height: 28px; stroke-width: 2; }

/* Detail-page actions are printed like hand-inked game placards. Scope this
   treatment narrowly so catalog, form, and player controls remain unchanged. */
.public-headlines .detail-hero__actions .woodcut-btn {
  position: relative;
  isolation: isolate;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  min-height: 64px;
  padding: 14px 26px;
  overflow: hidden;
  border: 2px solid #402116;
  border-radius: 12px;
  font-family: "Fraunces", Georgia, "Times New Roman", serif;
  font-size: 22px;
  font-weight: 700;
  line-height: 1.15;
  text-decoration: none;
  white-space: nowrap;
  box-shadow: inset 0 0 0 3px rgb(255 224 165 / .5), 0 5px 0 #512519, 0 7px 12px rgb(51 32 22 / .14);
  transition: transform .15s ease, box-shadow .15s ease;
}
.public-headlines .detail-hero__actions .woodcut-btn--primary {
  background-color: #a91f18;
  background-image: repeating-linear-gradient(125deg, rgb(255 240 208 / .055) 0 1px, transparent 1px 5px), radial-gradient(circle at 18% 35%, rgb(255 240 208 / .12) 0 1px, transparent 1.6px), radial-gradient(circle at 76% 72%, rgb(47 11 8 / .2) 0 1px, transparent 1.6px);
  background-size: auto, 11px 13px, 13px 17px;
  color: #fff0d0;
}
.public-headlines .detail-hero__actions .woodcut-btn--secondary {
  background-color: #f5e4c4;
  background-image: repeating-linear-gradient(125deg, rgb(51 32 22 / .035) 0 1px, transparent 1px 6px), radial-gradient(circle at 17% 34%, rgb(126 81 36 / .12) 0 1px, transparent 1.7px), linear-gradient(135deg, #fbefd5, #efd8ae);
  background-size: auto, 12px 14px, auto;
  color: #332016;
}
.public-headlines .detail-hero__actions .woodcut-btn::before,
.public-headlines .detail-hero__actions .woodcut-btn::after {
  content: "";
  position: absolute;
  z-index: 1;
  width: 42px;
  height: 30px;
  pointer-events: none;
  opacity: .68;
  background: repeating-linear-gradient(45deg, currentColor 0 1px, transparent 1px 5px);
}
.public-headlines .detail-hero__actions .woodcut-btn::before { top: 7px; left: 7px; clip-path: polygon(0 0, 100% 0, 0 100%); }
.public-headlines .detail-hero__actions .woodcut-btn::after { right: 7px; bottom: 7px; clip-path: polygon(100% 0, 100% 100%, 0 100%); }
.public-headlines .detail-hero__actions .woodcut-btn .icon { position: relative; z-index: 2; width: 28px; height: 28px; flex: none; stroke-width: 2; }
.public-headlines .detail-hero__actions .woodcut-btn:hover { transform: translateY(-2px); box-shadow: inset 0 0 0 3px rgb(255 224 165 / .5), 0 7px 0 #512519, 0 10px 16px rgb(51 32 22 / .18); }
.public-headlines .detail-hero__actions .woodcut-btn:active { transform: translateY(2px); box-shadow: inset 0 0 0 3px rgb(255 224 165 / .5), 0 2px 0 #512519; }
.public-headlines .detail-hero__actions .woodcut-btn:focus-visible { outline: 3px solid #b77b27; outline-offset: 4px; }
@media (max-width: 600px) {
  .public-headlines .btn { min-height: 44px; padding: 9px 12px; gap: 8px; font-size: 14px; }
  .public-headlines .btn--lg { min-height: 52px; padding: 10px 16px; font-size: 18px; }
  .public-headlines .detail-hero__actions .woodcut-btn { min-height: 52px; padding: 10px; gap: 8px; font-size: 16px; }
  .public-headlines .detail-hero__actions .woodcut-btn .icon { width: 24px; height: 24px; }
}
.public-headlines .badge--play { background: #d6e4d5; color: #27563e; }
.public-headlines .badge--soon { background: #f9ddd6; color: #9a2e24; }
.public-headlines .age__label { background: #faedcf; color: #5b4b37; }
.public-headlines .art { background: linear-gradient(140deg, #eadbc3, #d6c1a0); }
.public-headlines .art__fallback { color: #80623b; }
.public-headlines .art__fallback i { color: #a62924; }
.public-headlines .art__fallback::after { border-color: #ac8d61; }

/* Contrast islands: use the original dark semantics without changing iframe sizes. */
.public-headlines :is(.site-header, .site-footer, .player-page, .quotes, .age-gate) {
  --c-bg: #211e1b; --c-bg-deep: #171411;
  --c-surface: #29231e; --c-surface-2: #342a23; --c-surface-3: #3d3026;
  --c-text: #f8eedd; --c-text-2: #e3c9a4; --c-muted: #d1bca6;
  --c-parchment: #f8eedd; --c-gold: #c58c3e; --c-gold-ink: #f3d6a2;
  --c-line: #6c5944; --c-line-strong: #aa8a61; --c-line-gold: #aa8a61;
  --c-error: #ffb4a8;
  color: var(--c-text);
  color-scheme: dark;
}
.public-headlines :is(.site-header, .site-footer, .player-page, .quotes) :focus-visible { outline-color: #f3d6a2; }
.public-headlines .site-header { background: var(--wh-black); border-bottom: 3px solid var(--wh-red); backdrop-filter: none; }
.public-headlines .site-header__inner { gap: 24px; }
.public-headlines .site-nav { justify-content: flex-end; gap: 2px; }
.public-headlines .site-nav__link { font-size: 13px; padding-inline: 12px; }
.public-headlines .site-nav__search { margin-left: 0; }
.public-headlines .site-nav__link[aria-current="page"] { color: #fff1d7; background: #50392a; box-shadow: none; }
.public-headlines .wh-brand__medallion { width: 64px; height: 64px; }
.public-headlines .wh-brand__scroll { font-size: 27px; }
.public-headlines .site-footer { background: var(--wh-black); }
.public-headlines .site-footer__inner { padding-block: 40px; gap: 26px; grid-template-columns: 1fr 1.4fr 1fr; }
.public-headlines .site-footer__information { min-width: 0; }
.public-headlines .site-footer__information .site-footer__links { justify-content: flex-start; margin: 0 0 12px; }
.public-headlines .site-footer__information .site-footer__note { margin: 0; }
.public-headlines .site-footer :is(p, a, button) { font-size: 12px; }
.public-headlines .site-footer .site-footer__name { font-size: 26px; }
.public-headlines .site-footer .btn--ghost { background: transparent; color: #f3d6a2; border-color: #aa8a61; }
.public-headlines .player-page { background: var(--c-bg); border-radius: 7px; margin-block: 24px; }
.public-headlines .age-gate { background: var(--c-surface); }

/* One full-width editorial stage: transparent art under real, selectable copy.
   The left wash reaches beneath the torn header, never forming a separate card. */
.public-headlines .headlines-masthead { position: relative; isolation: isolate; border-bottom: 2px solid #d8c5a7; background: linear-gradient(130deg, #faf3e3, #eddbbc); }
.public-headlines .headlines-masthead__inner { position: relative; width: 100%; min-height: clamp(380px, calc(35.6vw + 2px), 620px); display: grid; align-items: center; }
.public-headlines .headlines-masthead__inner::before { content: ""; position: absolute; z-index: 1; inset: calc(-1 * var(--header-h)) 0 0; background: linear-gradient(90deg, #fbf0d8f2, #fbf0d8e6 24%, #fbf0d880 31%, #fbf0d800 42%); pointer-events: none; }
.public-headlines .headlines-masthead__copy { position: relative; z-index: 2; width: min(38vw, 520px); margin-left: max(var(--gutter), (100% - var(--content-max)) / 2); padding-block: 32px; }
.public-headlines .headlines-masthead__cta { min-width: 166px; min-height: 50px; margin-top: 20px; padding: 12px 24px; gap: 12px; font: 700 18px/1.1 Georgia, serif; border-radius: 8px; }
.public-headlines .headlines-masthead h1 { margin: 8px 0; font: 800 clamp(42px, 4.4vw, 68px)/.99 var(--font-display); letter-spacing: -.035em; }
.public-headlines .headlines-playability { margin: 8px 0 0; color: var(--wh-muted); font: 400 13px/1.4 var(--font-ui); }
.public-headlines .headlines-masthead__tagline { margin: 0; font: 700 clamp(17px, 1.8vw, 24px)/1.3 var(--font-display); }
.public-headlines .headlines-masthead__art { position: absolute; z-index: 0; right: clamp(10px, 1.4vw, 28px); top: 50%; transform: translateY(-50%); width: min(84%, 1440px); height: auto; aspect-ratio: 3000 / 1271; margin: 0; }
.public-headlines .headlines-masthead__art picture { position: absolute; inset: 0; display: block; }
.public-headlines .headlines-masthead__art img { display: block; width: 100%; height: 100%; max-width: none; object-fit: contain; object-position: center; border: 0; border-radius: 0; box-shadow: none; background: transparent; mix-blend-mode: normal; mask-image: none; }
.public-headlines .headlines-masthead__art img.is-broken { visibility: hidden; }
.public-headlines .shelves { padding-block: 42px 0; gap: 42px; }
.public-headlines .shelf { container-type: normal; }
.public-headlines .shelf__title { font-size: clamp(26px, 2.6vw, 39px); letter-spacing: -.03em; }
.public-headlines .shelf__head { margin-bottom: 18px; }
.public-headlines .shelf__controls { display: none; }
.public-headlines .shelf__track, .public-headlines .game-grid { display: grid; grid-auto-flow: row; grid-auto-columns: auto; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; overflow: visible; scroll-snap-type: none; padding-block: 0; }
.public-headlines .shelf + .shelf { padding-top: 32px; }
.public-headlines .headlines-idea { width: var(--shell); margin-inline: auto; display: grid; grid-template-columns: .98fr 1.02fr; border: 1px solid #be9a6b; border-radius: 7px; overflow: hidden; background: #dfc59d; box-shadow: var(--shadow-lift); }
.public-headlines .headlines-idea__art { display: grid; place-items: center; padding: 24px; background: repeating-linear-gradient(110deg, transparent 0 28px, #80623b0a 28px 29px); }
.public-headlines .headlines-idea__art img { width: 160px; height: auto; border-radius: 50%; }
.public-headlines .headlines-idea__copy { padding: 28px 32px; background: linear-gradient(110deg, #f7e9ce, #ead3a8); }
.public-headlines .headlines-idea h2 { margin: 10px 0; font-size: clamp(25px, 2.8vw, 37px); line-height: 1.1; letter-spacing: -.03em; }
.public-headlines .headlines-idea__copy > p:not(.eyebrow) { font-size: 14px; max-width: 46ch; }

/* Separate art, headline, catalog facts and actual lifecycle-aware actions. */
.public-headlines .game-card { display: flex; flex-direction: column; overflow: hidden; border: 1px solid #d3bea0; border-radius: 7px; background: #f9f0df; box-shadow: var(--shadow-lift); }
.public-headlines .game-card__link { height: auto; flex: 1; border-radius: 0; background: transparent; box-shadow: none; }
.public-headlines .game-card__media { height: 180px; flex: none; }
.public-headlines .game-card__media::after { display: none; }
.public-headlines .game-card__art { height: 100%; aspect-ratio: auto; }
.public-headlines .game-card .game-card__title { position: static; margin: 0; color: var(--wh-ink); font: 800 clamp(20px, 2vw, 26px)/1.06 var(--font-display); letter-spacing: -.03em; text-shadow: none; -webkit-text-stroke: 0; text-wrap: pretty; }
.public-headlines .game-card__lead { display: inline; color: inherit; font-size: inherit; }
.public-headlines .game-card__name { display: inline; overflow: visible; }
.public-headlines .game-card__body { padding: 15px 15px 8px; gap: 8px; }
.public-headlines .game-card__chips { order: 1; margin: 0; gap: 4px 9px; }
.public-headlines .game-card__chips li { padding: 0; background: transparent; box-shadow: none; border-radius: 0; font-size: 11px; white-space: normal; }
.public-headlines .game-card__copy { order: 2; color: var(--wh-ink); font-size: 13px; display: block; overflow: visible; }
.public-headlines .game-card__tag { left: 10px; right: auto; background: var(--wh-black); color: #fff; font-size: 10px; }
.public-headlines .game-card__actions { display: flex; flex-wrap: wrap; gap: 8px; padding: 8px 15px 16px; }
.public-headlines .game-card__actions .btn { flex: 1 1 90px; min-height: 44px; padding: 8px 10px; font-size: 12px; }
.public-headlines .game-card__link:hover, .public-headlines .game-card__link:focus-visible { background: #eddfc6; transform: none; box-shadow: none; }
.public-headlines .game-card__link:focus-visible { outline-offset: -3px; }
.public-headlines .game-card__link:hover .art__img { transform: none; }

/* Shared paper surfaces; functional inline/banner/dialog behavior stays unchanged. */
.public-headlines .modal { width: min(650px, 100%); border: 6px solid #f0d4a6; background: #f9efdd; box-shadow: 0 24px 75px #12090088; }
.public-headlines .opening-modal { width: min(810px, 100%); }
.public-headlines .modal__close { color: var(--wh-muted); }
.public-headlines .form-success { background: #d6e4d5; color: #226343; }
.public-headlines .consent-banner { border-color: #8d673f; background: #fcf3e4; box-shadow: 0 16px 48px #100b0844; }
.public-headlines .search-box { border: 2px solid #947955; background: #fff9ef; box-shadow: 0 3px 0 #e1c9a7; }
.public-headlines .error-page__code { color: var(--wh-muted); }
.public-headlines .source { border-bottom: 1px dashed var(--wh-border); background: transparent; box-shadow: none; }
.public-headlines .detail-page { --content-max: 1200px; --section-gap: 32px; }
.public-headlines .detail-hero { padding-block: 28px 36px; border-bottom: 1px solid var(--wh-border); grid-template-columns: 1fr 1fr; }
.public-headlines .detail-hero__art { border: 7px solid #ede0c9; outline: 1px solid #c5ad89; }
.public-headlines .history__sources { background: var(--wh-paper-deep); border-left: 4px solid var(--wh-red); box-shadow: none; border-radius: 0; }
.public-headlines .history__source-list li { padding-block: 6px; border-bottom: 1px dashed #bba685; }
.public-headlines .history__source-list a { color: var(--wh-red-hover); }
.public-headlines .gallery__track { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-auto-flow: row; grid-auto-columns: auto; width: 100%; padding: 0; gap: 14px; overflow: visible; }
.public-headlines .gallery__item { padding: 5px; background: var(--wh-paper-deep); border: 1px solid var(--wh-border); }
.public-headlines .gallery__item figcaption { padding: 8px; font-size: 12px; }
.public-headlines .field :is(input,textarea,select) { font-size: 14px; background: #fff9ef; color: var(--wh-ink); }
.public-headlines .preview-art-label { position: absolute; z-index: 2; left: 6px; bottom: 6px; max-width: calc(100% - 12px); padding: 3px 5px; color: #fff; background: #4c423a; font: 700 10px/1.3 var(--font-ui); border-radius: 3px; }
.public-headlines .opening-dialog { width: min(810px, 100%); }
.public-headlines .source h3 { font-size: 21px; }
.public-headlines .quotes { width: var(--shell); margin: 42px auto; border: 0; border-radius: 7px; background: #342319; }
.public-headlines .quotes__inner { width: auto; padding: 24px 28px; }
.public-headlines .quotes__head > .eyebrow { display: none; }
.public-headlines .quotes__title { margin: 0; font: 700 11px/1.4 var(--font-ui); text-transform: uppercase; letter-spacing: .13em; color: #f3d6a2; }
.public-headlines .cm-quote-stage { margin-top: 16px; }
.public-headlines .cm-quote { min-height: 100px; grid-template-columns: 100px minmax(0, 1fr); gap: 28px; }
.public-headlines .cm-quote-portrait-wrap { width: 90px; box-shadow: 0 0 0 2px #c58c3e; font-size: 36px; background: transparent; }
.public-headlines .cm-quote-nameplate { display: none; }
.public-headlines .cm-quote blockquote { margin: 10px 0; }
.public-headlines .cm-quote blockquote::before { display: none; }
.public-headlines .cm-quote blockquote p { max-width: none; font-size: clamp(21px, 2.1vw, 31px); }
.public-headlines .cm-quote figcaption { font-size: 12px; }
.public-headlines .cm-quote-label { color: #f3d6a2; }

@media (max-width: 1100px) {
  .public-headlines .shelf__track, .public-headlines .game-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .public-headlines .site-header__inner { gap: 12px; }
  .public-headlines .site-nav__link { padding-inline: 8px; }
  .public-headlines .wh-brand__scroll { font-size: 22px; }
  .public-headlines .wh-brand__medallion { width: 52px; height: 52px; }
}
@media (min-width: 801px) and (max-width: 860px) {
  .public-headlines .site-nav { position: static; display: flex; flex-direction: row; padding: 0; background: none; box-shadow: none; }
  .public-headlines .site-nav__link { min-height: 44px; font-size: 13px; }
  .public-headlines .site-nav__settings { width: 40px; padding: 0; justify-content: center; }
  .public-headlines .site-nav__settings-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .public-headlines :is(.nav-toggle, .site-header__search) { display: none; }
}
@media (max-width: 800px) {
  body.public-headlines { --header-h: 82px; }
  .public-headlines .site-nav { background: var(--wh-black); }
  .public-headlines .site-nav__link { padding: 12px 14px; font-size: 16px; }
  .public-headlines .detail-hero { grid-template-columns: 1fr; }
  .public-headlines .detail-hero__art { grid-column: 1; grid-row: 1; }
  .public-headlines .detail-hero__text { grid-column: 1; grid-row: 2; }
  .public-headlines .shelf__track, .public-headlines .game-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .public-headlines .headlines-idea { grid-template-columns: 1fr; }
  .public-headlines .headlines-idea__art { height: 160px; padding: 16px; }
  .public-headlines .headlines-idea__art img { width: 120px; }
  .public-headlines .cm-quote { grid-template-columns: 1fr; text-align: center; justify-items: center; }
}
@media (max-width: 480px) {
  body.public-headlines { --header-h: 70px; }
  .public-headlines .wh-brand__medallion { width: 42px; height: 42px; }
  .public-headlines .wh-brand__scroll { display: block; font-size: 19px; padding-inline: 17px 10px; }
  .public-headlines .site-header__inner { gap: 8px; }
  .public-headlines .site-header__search { display: none; }
  .public-headlines .nav-toggle { margin-left: auto; }
  .public-headlines .shelves { padding-top: 28px; gap: 28px; }
  .public-headlines .shelf__track, .public-headlines .game-grid { grid-template-columns: 1fr; gap: 12px; }
  .public-headlines .shelf__title { font-size: 25px; }
  .public-headlines .game-card { display: grid; grid-template-columns: 104px minmax(0, 1fr); grid-template-rows: 1fr auto; }
  .public-headlines .game-card__link { grid-column: 1 / -1; grid-row: 1 / 3; display: grid; grid-template-columns: 104px minmax(0, 1fr); }
  .public-headlines .game-card__media { height: 100%; min-height: 154px; }
  .public-headlines .game-card__body { min-width: 0; padding: 11px 12px 64px; gap: 5px; }
  .public-headlines .game-card .game-card__title { font-size: 20px; }
  .public-headlines .game-card__copy { display: none; }
  .public-headlines .game-card__chips li { font-size: 10px; }
  .public-headlines .game-card__actions { position: relative; grid-column: 2; grid-row: 2; align-self: end; padding: 0 12px 12px; }
  .public-headlines .game-card__actions .btn { flex: 0 1 auto; font-size: 11px; padding: 8px 10px; }
  .public-headlines .game-card__actions .btn--ghost { display: none; }
  .public-headlines .game-card__tag { top: 5px; left: 5px; padding: 3px 4px; font-size: 8px; letter-spacing: 0; }
  .public-headlines .headlines-idea__copy { padding: 22px; }
  .public-headlines .site-footer__inner { display: grid; grid-template-columns: 1fr; }
  .public-headlines .modal { padding: 32px 18px max(40px, calc(env(safe-area-inset-bottom) + 24px)); }
  .public-headlines .gallery__track { grid-template-columns: 1fr; }
  .public-headlines .field :is(input,textarea,select) { font-size: 16px; }
  /* A wrapped toolbar must not push the game beyond a short phone viewport. */
  .public-headlines .wh-game { max-height: 100dvh; }
  .public-headlines .game-frame { min-height: 0; flex-shrink: 1; }
  .public-headlines .game-toolbar { flex-shrink: 0; }
}
/* On phones the supplied landscape becomes a newspaper-cover illustration:
   visual lead first, then a compact paper headline and CTA. This avoids the
   former tall portrait pushing the actual story below the first viewport. */
@media (max-width: 768px) {
  .public-headlines .headlines-masthead__inner { display: flex; flex-direction: column; align-items: center; min-height: 0; padding: 0 0 18px; gap: 0; }
  .public-headlines .headlines-masthead__inner::before { display: none; }
  .public-headlines .headlines-home .headlines-masthead .eyebrow { justify-content: center; }
  .public-headlines .headlines-home .headlines-masthead .eyebrow::after { display: none; }
  .public-headlines .headlines-masthead__art { position: relative; order: -1; top: auto; right: auto; transform: none; width: 100%; height: auto; aspect-ratio: 3000 / 1271; margin: 0; overflow: hidden; }
  .public-headlines .headlines-masthead__art img { object-fit: cover; object-position: center; }
  .public-headlines .headlines-masthead__copy { box-sizing: border-box; width: 100%; max-width: 520px; margin: -4px 0 0; padding: 15px 18px 0; background: linear-gradient(#fbf0d8 84%, transparent); text-align: center; }
  .public-headlines .headlines-masthead h1 { max-width: 20ch; margin: 4px auto; font-size: clamp(34px, 9vw, 40px); line-height: 1.02; }
  .public-headlines .headlines-masthead__tagline { font-size: 16px; }
  .public-headlines .headlines-masthead__cta { min-height: 46px; margin: 10px 0 0; font-size: 16px; }
  body.public-headlines .headlines-home .shelves { padding-top: 22px; }
}
/* Homepage newspaper treatment; other catalog/detail/player surfaces keep their contracts. */
body.public-headlines:has(.headlines-home) { --content-max: 1440px; --wh-ink: #19170f; --wh-red: #b21e17; --wh-red-hover: #8f1712; }
.public-headlines .headlines-home :is(.headlines-masthead, .shelf__head) .eyebrow { display: flex; align-items: center; gap: 12px; margin: 0; font: 700 clamp(12px, 1.3vw, 16px)/1.2 Georgia, serif; letter-spacing: 0; }
.public-headlines .headlines-home :is(.headlines-masthead, .shelf__head) .eyebrow::after { content: ""; width: clamp(40px, 8vw, 160px); border-top: 1px solid #af5d3d; }
.public-headlines .headlines-home .shelves { padding-top: 24px; gap: 36px; }
.public-headlines .headlines-home .shelf__head { align-items: flex-end; gap: 20px; margin-bottom: 22px; }
.public-headlines .headlines-home .shelf__title { margin-top: 6px; font: 800 clamp(28px, 3.3vw, 48px)/1.08 var(--font-display); letter-spacing: -.045em; }
.public-headlines .shelf__all { flex: none; display: inline-flex; align-items: center; gap: 10px; min-height: 44px; color: var(--wh-red-hover); font: 700 17px/1.1 Georgia, serif; }
.public-headlines .headlines-home .game-card { border-color: #c9ac82; box-shadow: 0 2px 0 #b68b5044, 0 5px 10px #79552a12; }
.public-headlines .headlines-home .game-card__media { height: clamp(170px, 15vw, 230px); }
.public-headlines .headlines-home .game-card__body { padding: 12px 16px 6px; gap: 10px; }
.public-headlines .headlines-home .game-card .game-card__title { min-height: 2em; font: 800 clamp(24px, 2.65vw, 36px)/1 var(--font-display); letter-spacing: -.045em; }
.public-headlines .headlines-home .game-card__copy { display: none; }
.public-headlines .headlines-home .game-card__chips { gap: 4px 12px; }
.public-headlines .headlines-home .game-card__chips li { font: 700 13px/1.3 Georgia, serif; }
.public-headlines .headlines-home .game-card__actions { padding: 8px 16px 16px; gap: 10px; }
.public-headlines .headlines-home .game-card__actions .btn { font: 700 16px/1.15 Georgia, serif; padding: 10px 12px; }
@media (max-width: 800px) {
  .public-headlines .headlines-home .shelf__title { font-size: clamp(25px, 4vw, 34px); }
}
@media (max-width: 600px) {
  .public-headlines .headlines-home .shelf__all { display: none; }
  .public-headlines .headlines-home .shelf__title { font-size: clamp(25px, 7.1vw, 29px); letter-spacing: -.035em; }
  .public-headlines .headlines-home .shelf__head { margin-bottom: 16px; }
  .public-headlines .headlines-home .shelf__head .eyebrow { font-size: 14px; }
  .public-headlines .headlines-home .shelf__track { grid-template-columns: 1fr; gap: 0; }
  .public-headlines .headlines-home .game-card { --news-thumb: clamp(112px, 34vw, 136px); display: grid; grid-template-columns: var(--news-thumb) minmax(0, 1fr); grid-template-rows: 1fr auto; padding: 14px 0; border: 0; border-top: 1px solid #b99d74; border-radius: 0; background: transparent; box-shadow: none; }
  .public-headlines .headlines-home .game-card__link { grid-column: 1 / -1; grid-row: 1 / 3; display: grid; grid-template-columns: var(--news-thumb) minmax(0, 1fr); }
  .public-headlines .headlines-home .game-card__media { height: var(--news-thumb); min-height: var(--news-thumb); border-radius: 5px; overflow: hidden; }
  .public-headlines .headlines-home .game-card__body { min-width: 0; padding: 0 0 54px 14px; gap: 7px; }
  .public-headlines .headlines-home .game-card .game-card__title { min-height: 0; font-size: clamp(22px, 6.5vw, 26px); line-height: 1.02; }
  .public-headlines .headlines-home .game-card__chips { gap: 3px 8px; }
  .public-headlines .headlines-home .game-card__chips li { font-size: 11px; }
  .public-headlines .headlines-home .game-card__actions { position: relative; grid-column: 2; grid-row: 2; align-self: end; padding: 0 0 0 14px; }
  .public-headlines .headlines-home .game-card__actions .btn { flex: 0 1 auto; min-height: 44px; font-size: 14px; padding: 9px 18px; }
  .public-headlines .headlines-home .game-card__actions .btn--ghost { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .public-headlines *, .public-headlines *::before, .public-headlines *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}
