/* Page primitives (marketingsite-t44): classes that replaced per-page inline
   styles. Declarations are verbatim from the former style attributes. Linked
   LAST by layouts/partials/head.html so they win ties against per-page sheets
   exactly as the inline attributes did. */

.crt-scanlines { position: absolute; inset: 0; pointer-events: none; background: repeating-linear-gradient(0deg, var(--bc-scanline) 0px, var(--bc-scanline) 1px, transparent 1px, transparent 3px); opacity: 0.55; animation: bcFlicker 9s steps(1) infinite; }
.kicker { margin: 0 0 12px; font-family: var(--bc-font-mono); font-size: 12px; letter-spacing: 0.24em; color: var(--bc-color-accent); }
.nowrap { white-space: nowrap; }
.accent { color: var(--bc-color-accent); }
.btn-primary { display: inline-block; padding: 15px 26px; background: var(--bc-color-accent); border: 1px solid var(--bc-color-accent); color: var(--bc-color-ground); font-family: var(--bc-font-mono); font-size: 14px; font-weight: 600; letter-spacing: 0.06em; border-radius: 0; }
.link-muted { color: var(--bc-color-muted); text-decoration: underline; }
.section { padding: clamp(64px, 10vh, 120px) 24px; border-bottom: 1px solid var(--bc-rule-12); }
.container { max-width: 1080px; margin: 0 auto; }
.display-h2 { margin: 0 0 18px; font-family: var(--bc-font-display); font-weight: 400; font-size: clamp(34px, 5vw, 56px); text-transform: uppercase; color: var(--bc-color-ink); }
.lede { margin: 0 0 40px; max-width: 640px; font-size: 16px; line-height: 1.65; color: var(--bc-color-muted); text-wrap: pretty; }
.kicker--plain { margin: 0 0 12px; font-family: var(--bc-font-mono); font-size: 12px; color: var(--bc-color-accent); }
.card-p { margin: 0; font-size: 14px; line-height: 1.6; color: var(--bc-color-muted); text-wrap: pretty; }
.mono-note { margin: 28px 0 0; font-family: var(--bc-font-mono); font-size: 12px; letter-spacing: 0.1em; color: var(--bc-color-muted); }
.muted { color: var(--bc-color-muted); }
.link-ink { color: var(--bc-color-ink); text-decoration: underline; }
.prose-page { margin: 0 auto; padding: clamp(56px, 9vh, 100px) 24px 80px; }
.display-h1 { margin: 0 0 18px; font-family: 'Anton', 'Arial Narrow', sans-serif; font-weight: 400; font-size: clamp(40px, 7vw, 72px); line-height: 0.96; text-transform: uppercase; color: #EDE7DF; text-wrap: balance; }
.lede--doc { margin: 0 0 40px; font-size: 15px; line-height: 1.6; color: #9A9088; text-wrap: pretty; }
.doc-stack { display: flex; flex-direction: column; gap: 32px; font-size: 15px; line-height: 1.7; color: #9A9088; }
.display-h3 { margin: 0 0 10px; font-family: 'Anton', sans-serif; font-weight: 400; font-size: 24px; text-transform: uppercase; color: #EDE7DF; }
.list-tight { margin: 0; padding-left: 20px; display: flex; flex-direction: column; gap: 8px; }
.ink { color: var(--bc-color-ink); }
.mb14 { margin: 0 0 14px; }
.rules-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 20px; }
.kicker--sub { margin: 0 0 8px; font-family: 'IBM Plex Mono', monospace; font-size: 12px; letter-spacing: 0.14em; color: #FF3B1F; }
.mb10 { margin: 0 0 10px; }
.mono-faint { margin: 0; font-family: 'IBM Plex Mono', monospace; font-size: 12px; letter-spacing: 0.08em; color: #7A7168; }
.m0 { margin: 0; }
.lede--matches { margin: 0 0 44px; font-size: 15px; line-height: 1.7; color: #9A9088; max-width: 62ch; }
.body-note { margin: 16px 0 0; font-size: 14px; line-height: 1.6; color: #9A9088; }
.cast-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 16px; }
.cast-card { background: var(--bc-color-ground); border: 1px solid var(--bc-rule-15); padding: 24px 22px; display: flex; flex-direction: column; gap: 12px; }
.cast-card__head { display: flex; justify-content: space-between; align-items: baseline; font-family: var(--bc-font-mono); font-size: 11px; letter-spacing: 0.12em; color: var(--bc-color-muted); }
.fate-escaped { color: var(--bc-color-escape); }
.cast-card__name { margin: 0; font-family: var(--bc-font-display); font-weight: 400; font-size: 26px; text-transform: uppercase; color: var(--bc-color-ink); }
.cast-card__model { margin: 0; font-family: var(--bc-font-mono); font-size: 11px; letter-spacing: 0.1em; color: var(--bc-color-accent); }
.cast-card__tell { margin: auto 0 0; padding-top: 12px; border-top: 1px solid var(--bc-rule-12); font-family: var(--bc-font-mono); font-size: 11px; color: var(--bc-color-muted); }
.nf-section { position: relative; overflow: hidden; min-height: 60vh; display: flex; align-items: center; justify-content: center; padding: clamp(72px, 14vh, 160px) 24px; border-bottom: 1px solid rgba(237,231,223,0.12); }
.nf-stack { position: relative; max-width: 720px; display: flex; flex-direction: column; align-items: center; text-align: center; gap: 24px; }
.nf-title { margin: 0; font-family: 'Anton', 'Arial Narrow', sans-serif; font-weight: 400; font-size: clamp(44px, 9vw, 110px); line-height: 0.94; letter-spacing: 0.01em; text-transform: uppercase; color: #EDE7DF; text-wrap: balance; }
.nf-lede { margin: 0; max-width: 520px; font-size: 15px; line-height: 1.65; color: #9A9088; text-wrap: pretty; }
.nf-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: 8px; }
.btn-ghost--sm { display: inline-block; padding: 13px 22px; background: transparent; border: 1px solid rgba(237,231,223,0.3); color: #EDE7DF; font-family: 'IBM Plex Mono', monospace; font-size: 13px; font-weight: 600; letter-spacing: 0.06em; }
.nf-foot { margin: 8px 0 0; font-family: 'IBM Plex Mono', monospace; font-size: 11px; letter-spacing: 0.1em; color: #7A7168; }
.mb34 { margin: 0 0 34px; }
.scroll-x { overflow-x: auto; }
.mt44 { margin-top: 44px; }
.w-wide { max-width: 1080px; }
.w-prose { max-width: 68ch; }
.mt36 { margin-top: 36px; }
.jumpline { font-family: 'IBM Plex Mono', monospace; font-size: 12px; line-height: 2; }
.mb22 { margin: 0 0 22px; }
.frame-img { max-width: 100%; height: auto; border: 1px solid var(--rule); }
.u { text-decoration: underline; }

/* Modifiers: always after their base so they win the tie. */
.kicker--flush { margin: 0; }
.display-h2--ls { letter-spacing: 0.01em; }
.section--alt { background: var(--bc-color-section); }
.display-h2--balance { text-wrap: balance; }
.display-h2--m32 { margin: 0 0 32px; }
.display-h2--m36 { margin: 0 0 36px; }
.prose-page--w760 { max-width: 760px; }
.lede--doc-tight { margin: 0 0 12px; }
.list-tight--6 { gap: 6px; }
.kicker--sub-spaced { margin: 14px 0 8px; }
.prose-page--w720 { max-width: 720px; }
.prose-page--w780 { max-width: 780px; }
.btn-primary--sm { padding: 13px 22px; font-size: 13px; }
