/* Post OS Design System — global tokens + real brand faces (sources: portal shot-create-v4.css, postos.io landing) */
/* Satoshi was trialled as the text face on 2026-08-26 and REJECTED — too friendly. Switzer stands.
   What survived the trial: the weight floor (400 for anything sentence-length) and the 17px paragraph size. */
@font-face { font-family: "Switzer"; src: url("/landing/fonts/Switzer-Thin.otf"); font-weight: 100; font-display: swap; }
@font-face { font-family: "Switzer"; src: url("/landing/fonts/Switzer-Extralight.woff2") format("woff2"), url("/landing/fonts/Switzer-Extralight.otf"); font-weight: 200; font-display: swap; }
@font-face { font-family: "Switzer"; src: url("/landing/fonts/Switzer-Light.woff2") format("woff2"), url("/landing/fonts/Switzer-Light.otf"); font-weight: 300; font-display: swap; }
@font-face { font-family: "Switzer"; src: url("/landing/fonts/Switzer-Regular.woff2") format("woff2"), url("/landing/fonts/Switzer-Regular.otf"); font-weight: 400; font-display: swap; }
@font-face { font-family: "Switzer"; src: url("/landing/fonts/Switzer-Medium.otf"); font-weight: 500 900; font-display: swap; }
@font-face { font-family: "Switzer"; src: url("/landing/fonts/Switzer-Italic.otf"); font-style: italic; font-weight: 400; font-display: swap; }
@font-face { font-family: "CarbonPlus"; src: url("/landing/fonts/CarbonPlus-Light.otf"); font-weight: 100 300; font-display: swap; }
@font-face { font-family: "CarbonPlus"; src: url("/landing/fonts/CarbonPlus.otf"); font-weight: 400; font-display: swap; }
@font-face { font-family: "CarbonPlus"; src: url("/landing/fonts/CarbonPlus-Bold.otf"); font-weight: 500 900; font-display: swap; }
@font-face { font-family: "HeadingsNow"; src: url("/landing/fonts/HeadingNow-25Medium.otf"); font-weight: 100 500; font-display: swap; }
@font-face { font-family: "HeadingsNow"; src: url("/landing/fonts/HeadingNow-16Bold.otf"); font-weight: 600 900; font-display: swap; }
@font-face { font-family: "Bebas Neue"; src: url("/landing/fonts/BebasNeue-Regular.ttf"); font-weight: 400 700; font-display: swap; }
@font-face { font-family: "Panchang"; src: url("/landing/fonts/Panchang-Bold.otf"); font-weight: 700; font-display: swap; }
@font-face { font-family: "Panchang"; src: url("/landing/fonts/Panchang-Extrabold.otf"); font-weight: 800 900; font-display: swap; }
@font-face { font-family: "Sentient"; src: url("/landing/fonts/Sentient-Light.otf"); font-weight: 300 400; font-display: swap; }
@font-face { font-family: "AwesomeSerif"; src: url("/landing/fonts/AwesomeSerif-LightRegular.otf"); font-weight: 200 300; font-display: swap; }
@font-face { font-family: "AwesomeSerif"; src: url("/landing/fonts/AwesomeSerif-Regular.otf"); font-weight: 400 500; font-display: swap; }
@font-face { font-family: "AwesomeSerif"; src: url("/landing/fonts/AwesomeSerif-BoldRegular.otf"); font-weight: 600 900; font-display: swap; }
@font-face { font-family: "AwesomeSerif Tall"; src: url("/landing/fonts/AwesomeSerif-LightTall.otf"); font-weight: 200 300; font-display: swap; }
@font-face { font-family: "AwesomeSerif Tall"; src: url("/landing/fonts/AwesomeSerif-MediumTall.otf"); font-weight: 400 500; font-display: swap; }
@font-face { font-family: "AwesomeSerif Tall"; src: url("/landing/fonts/AwesomeSerif-BoldTall.otf"); font-weight: 600 900; font-display: swap; }
:root {
  --bg:#000; --bg-raised:#111; --bg-elevated:#1a1a1a; --surface-3:#181818; --border:#2a2a2a;
  --red:#FF4D00; --marquee:#C8102E; --cream:#EEE8E1; --amber:#B2914F;
  --te-orange:#FF4E00; --display-pink:#FF3E8E; --signal-blue:#3E9EF4; --wu-yellow:#FFD500; --identity-violet:#7C3AED;
  --chassis:#D8D6D2; --grille:#A8A6A2; --keycap-grey:#7B7975; --keycap-black:#1C1C1E;
  --text-1:#f2efe8; --text-2:#a29c93; --text-3:#7a766f;
  --font-display:'CarbonPlus',Arial,sans-serif; /* CarbonPlus — all UI caps/labels. Self-hosted. */
  --font-condensed:'HeadingsNow',Arial,sans-serif; /* ultra condensed display — brand covers only (law 10) */
  --font-support:'Bebas Neue',Arial,sans-serif; /* the support poster face — brand cover title 3 of 3, self-hosted 2026-08-27 */
  --font-poster:'HeadingsNow',Arial,sans-serif; /* Story Opener face — brand cover title 1 of 3 */
  --font-wide:'Panchang',Arial,sans-serif; /* ultra wide bold — brand cover title 2 of 3 */
  --font-hero:'Switzer',Arial,sans-serif; /* Switzer — full family self-hosted (100–500 uprights, Medium covers 500–900, true italics) */ /* Switzer — full family self-hosted (100–500 uprights, Medium covers 500–900, true italics) */
  --font-body:'Switzer',Arial,sans-serif; /* THE text face. Paragraphs: Regular 400 at 17px (weight floor 400 — 300 reads spindly on white) */ /* body = the brand face. THE ONLY text face: General Sans, Geist and Inter Tight are retired (law 19) and no stack may name them */
  --font-serif:'AwesomeSerif Tall','AwesomeSerif',Georgia,serif; /* tall-serif casting face — law 10 finance/heritage cast; Regular + Tall cuts self-hosted */
  --t-fast:.15s; /* @kind other */ --easing:ease; /* @kind other */ --radius-card:5px;
}
/* ── Canonical KEY TIERS (design-laws/09 · ratified 2026-08-05 from the lesson player bottom nav) ──
   PRIMARY   : bg --red · ink #fff · hover opacity .88 · ONE per bar/stack — the step you're on
   SECONDARY : grey fill (#2a2a2a dark · the chassis bg grey light: --bg #f5f5f5) · ink --text-1 · 1px keyline 12% ink · hover fill lifts — context switchers (header strips · dropdown keys · the posts nav); never in action bars
   TERTIARY  : bg --bg-raised · 1px keyline 18% ink · ink --text-1 · hover: orange keyline + ink --red — quiet real acts (Previous · Mark complete · Save · downloads)
   All: radius 5px · CarbonPlus caps · ONE trailing icon · disabled = any tier at .4 opacity */
