/* ════════════════════════════════════════════════════════════════════════════
   TENET5 DESIGN LOCK  ·  DO NOT EDIT — owner-locked guardrail (2026-07-11)
   ────────────────────────────────────────────────────────────────────────────
   This file is injected LAST on every page (after press-theme.css) so it ALWAYS
   wins the cascade. The swarm / auto-aesthetic passes own press-theme.css and may
   add anything (video, animation, layout). This layer enforces the owner's taste
   contract on top, so nothing can re-break the look:

     • crystal-clear MONOCHROME (ivory content, ice = label/link, red = CRITICAL only)
     • NO gaudy overuse: no card glass-blur, no colour-glows on stamps/badges,
       no cyan gradient fills, no multi-colour stat rainbows, no gold
     • KEEP the owner-approved cinematic accent glow on hero/heading emphasis
     • share / social buttons BANNED · buttons refined to white-hairline

   Technical-artist rule: intentional accent effects stay; gaudy overuse dies.
   Edit css/DESIGN_LANGUAGE.md (the doctrine), never this enforcement layer.
   ════════════════════════════════════════════════════════════════════════════ */

/* 1 · Semantic colour vocabulary → monochrome (gold retired; stat colours neutralised) */
[data-press], body.press-interior {
  --gold: var(--ivory-dim);
  --slate-brass: var(--ivory-dim); --slate-brass-hi: var(--ivory);
  --slate-warning: var(--ivory-dim); --slate-warn: var(--ivory-dim);
  --slate-success: var(--ivory); --slate-ok: var(--ivory); --slate-positive: var(--ivory);
  --slate-good: var(--ivory); --slate-danger: var(--ivory);
  --blue: var(--ivory-dim); --crimson: var(--red);
}

/* 2 · Stat numbers → one ivory (no red/gold/blue/green rainbow) */
[data-press] .num-red, [data-press] .num-gold,
[data-press] .num-blue, [data-press] .num-purple,
body.press-interior .inv-stat .num, body.press-interior .inv-stat .num-red,
body.press-interior .inv-stat .num-gold, body.press-interior .inv-stat .num-blue,
body.press-interior .inv-stat .num-purple,
[data-press] .stat__num, [data-press] .stat-value,
[data-press] .pr-stat-value, [data-press] .pr-stat .num {
  color: var(--ivory) !important;
}
[data-press] .cap263-card > div { color: var(--ivory) !important; }
[data-press] .cap263-card > div:not(:first-child) { color: var(--ivory-dim) !important; }

/* 3 · Status / dept / outcome badges + tags → ONE quiet mono label */
[data-press] .pr-outcome-badge, [data-press] .pr-dept-badge,
[data-press] [class*="badge-"], [data-press] .cap263-tag,
[data-press] .cap263-tag--red, [data-press] .cap263-tag--gold {
  background: transparent !important; color: var(--ivory-dim) !important;
  border: 1px solid rgba(255,255,255,.10) !important; border-radius: 3px !important;
  font-family: var(--mono) !important; font-size: 9.5px !important; font-weight: 500 !important;
  letter-spacing: .16em !important; text-transform: uppercase !important;
  padding: 2px 7px !important; box-shadow: none !important;
}

/* 4 · NO glass blur anywhere in the interior */
[data-press] *, [data-press] *::before, [data-press] *::after {
  backdrop-filter: none !important; -webkit-backdrop-filter: none !important;
}

/* 5 · Kill colour glows + gaudy gradient fills on chrome/cards/panels — flat surfaces */
[data-press] .press-bar, [data-press] .summary-banner,
[data-press] .glass, [data-press] [class*="card"], [data-press] [class*="panel"],
[data-press] [class*="tile"], [data-press] .exhibit, [data-press] .dossier,
[data-press] .cat-item, [data-press] .inflection, [data-press] .stamp,
[data-press] .vis-timeline, [data-press] .t5r-pill, [data-press] .cta-button {
  box-shadow: none !important; background-image: none !important;
}
[data-press] .cat-item, [data-press] .exhibit, [data-press] .dossier,
[data-press] .inflection, [data-press] [class*="panel"],
[data-press] [class*="tile"], [data-press] .brief-item, [data-press] .glass:not(.media-card) { border-color: transparent !important; }

/* 5.01 · Fix media-frame sharp corner overflow on media-cards */
[data-press] .media-frame {
  border-top-left-radius: var(--media-radius, 8px) !important;
  border-top-right-radius: var(--media-radius, 8px) !important;
}

/* 5.1 · High contrast text for glass and media-card components */
[data-press] .glass p, [data-press] .glass h3, [data-press] .glass h4, [data-press] .glass .kick,
[data-press] .media-card p, [data-press] .media-card h3, [data-press] .media-card h4, [data-press] .media-card .kick {
  color: var(--ivory) !important;
}

/* 6 · Meter / timeline fills → single monochrome, never red→cyan gaud */
[data-press] [class*="-fill"], [data-press] [class*="meter"], [data-press] .vis-timeline-fill {
  background: rgba(255,255,255,.16) !important; box-shadow: none !important;
}

/* 7 · Stamps / status chips → quiet mono labels */
[data-press] .stamp, [data-press] .stamp.bad,
[data-press] .stamp.ok, [data-press] .stamp.warn {
  background: transparent !important; color: var(--ivory-dim) !important;
  border-color: rgba(255,255,255,.14) !important; box-shadow: none !important;
}

/* 8 · Dock / radio indicators → no cyan glow, keep the dock's black separator */
[data-press] .dock { box-shadow: 0 -24px 48px -18px rgba(0,0,0,.9) !important; }
[data-press] .eq i, [data-press] .t5r-dot, [data-press] .t5r-pill,
[data-press] .dock .on, [data-press] [class*="dot"] { box-shadow: none !important; }

/* 9 · Buttons: NO gaudy filled/glowing pills — refined white-hairline only */
.cta-button, [data-press] .cta, [data-press] .cta-secondary,
[data-press] .report-cta, [data-press] .hub-cta, [data-press] .cta-box {
  background: transparent !important; color: var(--ivory) !important;
  border: 1px solid rgba(255,255,255,.22) !important; border-radius: 4px !important;
  box-shadow: none !important; backdrop-filter: none !important;
  padding: .68em 1.4em !important; font-family: var(--mono) !important;
  font-size: 12px !important; letter-spacing: .14em !important; text-transform: uppercase !important;
  transition: border-color .18s ease, background .18s ease !important;
}
.cta-button:hover, [data-press] .cta:hover, [data-press] .cta-secondary:hover {
  background: rgba(255,255,255,.04) !important; border-color: rgba(255,255,255,.5) !important;
  color: var(--ivory) !important; transform: none !important;
}

/* 10 · BAN share + social entirely */
.share-card, .share-grid, .share-banner, .share-visual,
.cat-social, .ev-cat.cat-social, .share-bar, [id="share-bar"],
[class*="share-btn"], [class*="social-share"], [class*="share-cta"] { display: none !important; }

/* 11 · KEEP — owner-approved cinematic accent glow on hero / heading emphasis.
   This is the intentional effect. It is deliberately AFTER the glow-kills above. */
[data-press] .press-hero h1 em, [data-press] .ch-title em,
[data-press] .era h3 em, [data-press] h1 em, [data-press] h2 em {
  text-shadow: 0 0 18px rgba(154,219,232,.42) !important;
}

/* 12 · ACT CINEMA (act-i…v) — restore ice borders + media frame so LTX/stills read.
   Fixed page video layers are not cards; walkthrough host + media boards need edge. */
body.act-cinema-page .walkthrough-host,
body.act-cinema-page .act-cinema-host,
body.act-cinema-page .media-card,
body.act-cinema-page article.media-card,
body.act-cinema-page a.media-card,
body.act-cinema-page .media-note {
  border: 1px solid rgba(154,219,232,.16) !important;
  border-color: rgba(154,219,232,.16) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.06), 0 28px 48px -28px rgba(0,0,0,.85) !important;
}
body.act-cinema-page .media-card:hover,
body.act-cinema-page a.media-card:hover {
  border-color: rgba(154,219,232,.3) !important;
}
body.act-cinema-page .media-frame img,
body.act-cinema-page .media-frame video,
body.act-cinema-page .act-page-bg,
body.act-cinema-page .act-page-fg-video {
  /* images/video content must not inherit glass background kills */
  background-image: none !important;
}
/* Cinema video must stay visible and able to paint (never force display:none) */
body.act-cinema-page video.act-page-bg,
body.act-cinema-page video.act-page-fg-video,
body.act-cinema-page .media-frame video,
body.act-cinema-page video.tunw-media-bg,
body.act-cinema-page video.act-hero-video {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
}
/* Play gate + controls must remain interactive */
body.act-cinema-page .act-play-gate {
  display: flex !important;
  visibility: visible !important;
  pointer-events: auto !important;
  opacity: 1 !important;
}
body.act-cinema-page .act-play-gate[hidden] {
  display: none !important;
}
body.act-cinema-page .media-frame.is-cine video[controls] {
  pointer-events: auto !important;
}
body.act-cinema-page .media-tag {
  background: rgba(5,7,8,.72) !important;
  border: 1px solid rgba(154,219,232,.28) !important;
  color: var(--ice) !important;
  box-shadow: none !important;
}

/* 12 · Home cover: keep the giant "5" watermark OUT of flow — fixes the ~403px dead gap
   above the "read backwards" hero. The cover is NOT [data-press], so unscoped. */
.cover > .ghost5 { position: absolute !important; z-index: 1 !important; }

/* 13 · ONE header site-wide — interior .press-bar adopts the home .cover-bar design
   (owner 2026-07-11: "header shouldn't change when I click; apply the home design across the
   system; the blue version is ugly"). Keeps interior nav + sticky; matches home look; monochrome. */
[data-press] .press-bar {
  padding: 20px clamp(28px,4.4vw,64px) !important;
  letter-spacing: .22em !important;
  background: linear-gradient(180deg, rgba(255,255,255,.05) 0%, rgba(5,7,8,.92) 88%) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08) !important;
}
/* white hairline on BOTH bars (no blue border) + monochrome nav (no ice/blue link colour) */
.cover-bar, [data-press] .press-bar { border-bottom: 1px solid rgba(255,255,255,.10) !important; }
[data-press] .press-bar nav a { color: var(--ivory-dim) !important; }
[data-press] .press-bar nav a:hover,
[data-press] .press-bar nav a.is-on { color: var(--ivory) !important; }

/* 14 · Database pager (accountability / 504) — monochrome, hairline */
[data-press] .db-pager { display:flex; gap:12px; align-items:center; justify-content:center; margin:2rem 0; flex-wrap:wrap; }
[data-press] .db-page {
  background:transparent !important; border:1px solid rgba(255,255,255,.18) !important; color:var(--ivory) !important;
  font-family:var(--mono) !important; font-size:11px !important; letter-spacing:.12em !important; text-transform:uppercase !important;
  padding:.55em 1.1em !important; border-radius:4px !important; cursor:pointer; box-shadow:none !important; transition:border-color .18s ease;
}
[data-press] .db-page:hover:not(:disabled){ border-color:rgba(255,255,255,.5) !important; }
[data-press] .db-page:disabled{ opacity:.3; cursor:default; }
[data-press] .db-page-info{ font-family:var(--mono); font-size:11px; letter-spacing:.14em; color:var(--ivory-dim); text-transform:uppercase; }

/* 15 · DELICATE PROJECTION — media reads as light gently projected onto the page, never a
   video wall (owner: "projected onto the site slightly, but delicately"). Elevated over the
   base .film-broll: lower opacity, FULL monochrome, softer defocus, cold register, fades to
   void before the reading text. Hero-ambient only — design-lock still bans glass-blur on cards. */
.film-broll {
  opacity: .34 !important;
  filter: grayscale(1) brightness(.6) contrast(1.04) blur(.85px) !important;
  animation: broll-project 6.5s ease-in-out infinite !important;
}
@keyframes broll-project { 0%,100%{opacity:.34} 46%{opacity:.30} 63%{opacity:.375} }
@media (prefers-reduced-motion: reduce) { .film-broll { animation: none !important; opacity: .3 !important; } }
.film-broll-veil {
  background: linear-gradient(180deg, transparent 0%, rgba(5,7,8,.42) 40%, rgba(5,7,8,.93) 66%, var(--void) 100%) !important;
}
/* embedded cinema cards (REEL): quiet, monochrome, no gaudy chrome — projection register */
[data-press] .cinema-embed > video, [data-press] .cine-frame > video {
  filter: grayscale(1) brightness(.72) contrast(1.03) !important;
}

/* Fix time-chapter column squishing from implicit grids */
.time-chapter-col .wire {
  grid-template-columns: 1fr !important;
}
.time-chapter-col .wire .glass.lead-card {
  grid-column: auto !important;
}
