/* ============================================================
   Ambition site — "Living Consequence" alignment fixes.
   P0 (critical clip) · P1 (reduced-motion/no-JS, footer) · P2 (AA contrast)
   + band tokens matched to the app. Shared on every page.
   ============================================================ */

/* ---- Band tokens — exact app hues (drive legend dots, chips, accents) ---- */
:root{
  --flourish:#4f9d6f;--flourish-2:#7fc69a;
  --productive:#7bb463;--productive-2:#a9d189;
  --warning:#e0a83c;--warning-2:#f1d089;
  --critical:#d4642a;--critical-2:#eaa074;
  --lock:#8a2f10;--lock-2:#cf8a86;
}

/* ---- P2 · AA contrast: lift muted text (covers both token systems) ---- */
:root{--fog-500:#9aa3b2;--fog-600:#8891a1;--text-3:#a89c8d;--text-2:#d6cabc}
body[data-theme="light"]{--fog-300:#454d5e;--fog-400:#545c6d;--fog-500:#5f6878;--fog-600:#737b8d;--text-3:#6b6053;--text-2:#4a4136}

/* ---- P0 · Critical / Lockdown keyframe: nothing clips (320–414px) ---- */
.phone .app .row .tt{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
[data-state="critical"] .phone .app .scoreblock .big,[data-state="lock"] .phone .app .scoreblock .big,[data-state="lockdown"] .phone .app .scoreblock .big{font-size:58px}
[data-state="critical"] .phone .app .content,[data-state="lock"] .phone .app .content,[data-state="lockdown"] .phone .app .content{padding-top:24px;padding-bottom:12px}
[data-state="critical"] .phone .app .row,[data-state="lock"] .phone .app .row,[data-state="lockdown"] .phone .app .row{padding:5px 0}
[data-state="critical"] [data-directive],[data-state="lock"] [data-directive],[data-state="lockdown"] [data-directive]{font-size:13px!important;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

/* ---- P1 · Reveal safety: never trap content invisible ---- */
/* no-JS users never get .amb-js → reveals stay visible */
html:not(.amb-js) .reveal,html:not(.amb-js) .rv,html:not(.amb-js) [class*="reveal"]{opacity:1!important;transform:none!important}
@media (prefers-reduced-motion: reduce){
  .reveal,.rv,.beat .reveal,[class*="reveal"]{opacity:1!important;transform:none!important;transition:none!important;animation:none!important}
}

/* ---- P1 · trim pre-footer dead space ---- */
.megabrand{padding-top:0!important;padding-bottom:34px!important}

/* ---- Legibility · small stat numerals ---- */
/* Italiana is a hairline display serif — gorgeous at the big score (94),
   but its thin strokes nearly vanish on the small ~15–22px stat numerals
   in the mockups (e.g. "12 streak", "73% done"). Keep Italiana for the
   large display numerals; use solid Instrument Sans for the small ones. */
.mono{font-family:"Instrument Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif!important;font-weight:600!important;letter-spacing:0!important}
.scoreblock .big,.big.mono,.bignum.mono,[data-score],.app .scoreblock .big{font-family:"Italiana",Georgia,"Times New Roman",serif!important;font-weight:400!important;letter-spacing:-.01em!important}
