/* ============================================================
   fx-print — capability statement on paper & the static fallback
   ------------------------------------------------------------
   CSS only. Zero runtime cost, nothing to gate.

   Two consumers of one set of "static cinema" rules:
     1. html.no-gl   — set by the bridge when GHScene.init throws.
                       The 620vh black canvas collapses into a readable
                       hero + three act captions, in document order.
     2. @media print — Ctrl/⌘-P, or fx-console's
                       'Print capability statement' (window.print()).

   The static-cinema block is written once under html.no-gl and
   duplicated verbatim inside @media print (a JS beforeprint class
   was rejected: ten duplicated lines beat a script).

   Print palette: every colour on the page is token-driven, so the
   :root override alone flips the surface ramp to paper. --threat is
   deliberately left alone — the one accent prints. Browsers print
   backgrounds OFF by default, so nothing below depends on a
   background surviving: borders are restored as real borders and
   the eyebrow rule becomes a border rather than a painted box.
   ============================================================ */


/* ------------------------------------------------------------
   1. STATIC CINEMA — no-WebGL state
   ------------------------------------------------------------ */
html.no-gl .cinema{height:auto;margin-bottom:0}
html.no-gl .cinema-sticky{position:static;height:auto;overflow:visible}
html.no-gl .hero-copy,
html.no-gl .beat{
  position:static!important;opacity:1!important;transform:none!important;visibility:visible!important;
  max-width:none;text-align:left;pointer-events:auto;
  padding:clamp(60px,10vh,120px) clamp(22px,7vw,120px);
}
html.no-gl .beat.right{text-align:left}
html.no-gl .beat.right .eyebrow{flex-direction:row}
html.no-gl .beat.right p{margin-left:0}
html.no-gl #gl,
html.no-gl .hud,
html.no-gl .rail,
html.no-gl .hero-scroll,
html.no-gl .mob-scrim{display:none}
/* fx-grammar keeps .beat h2 .swi static under html.no-gl; nothing to add here. */


/* ------------------------------------------------------------
   2. PRINT
   ------------------------------------------------------------ */
@media print{

  /* ---- palette: paper white, ink black; --threat untouched ---- */
  :root{
    --bg:#fff;
    --bg-raised:#fff;
    --surface:#f4f4f4;
    --surface-hi:#eee;
    --border:#cfcfcf;
    --border-strong:#8a8a8a;
    --text:#000;
    --text-dim:#333;
    --text-faint:#555;
    --ink:#000;
    --accent:#000;
    --accent-hi:#000;
    --accent-line:rgba(0,0,0,.5);
  }
  @page{margin:16mm}
  html,body{background:#fff}
  body{font-size:11pt;color:var(--text)}

  /* ---- static cinema (verbatim duplicate of the no-gl block) ---- */
  .cinema{height:auto;margin-bottom:0}
  .cinema-sticky{position:static;height:auto;overflow:visible}
  .hero-copy,
  .beat{
    position:static!important;opacity:1!important;transform:none!important;visibility:visible!important;
    max-width:none;text-align:left;pointer-events:auto;
    padding:clamp(60px,10vh,120px) clamp(22px,7vw,120px);
  }
  .beat.right{text-align:left}
  .beat.right .eyebrow{flex-direction:row}
  .beat.right p{margin-left:0}
  #gl,.hud,.rail,.hero-scroll,.mob-scrim{display:none}
  .beat{break-inside:avoid}

  /* ---- hide: chrome, atmosphere, live layers, other fx modules ---- */
  .grain,
  .vignette,
  .loader,
  .skip,
  .nav,
  .mobile-menu,
  .ticker,
  .holo__canvas,
  .holo__scan,
  .holo__plinth,
  .holo__pins,
  .fig__hint,
  .card .glare,
  .ghost-word,
  .reserve .orb,
  .seam,
  .cur,
  .pal,
  #incident,
  .dossier,
  .nav-k{display:none}
  /* fx-console's opener sits inside .reserve (kept on paper) at (0,3,0) — force it off */
  .inc-open{display:none!important}
  /* the protective drive is a modal in the top layer; it never prints, even if Ctrl P is pressed mid-run */
  .drive-doc,.drive-doc::backdrop{display:none!important}
  /* .holo--live flips static→canvas at (0,2,0); force the SVG back on paper */
  .holo .holo__canvas,
  .holo .holo__scan,
  .holo .holo__plinth,
  .holo .holo__pins{display:none!important}
  .holo .holo__static{display:block!important}
  /* the pin-marker discs are a hardcoded #101010 in the static SVG —
     on black ink their numerals would vanish; disc becomes paper */
  .holo__static circle[fill="#101010"]{fill:var(--bg)}
  .holo__feat{opacity:1!important}

  /* ---- reveals & draw-on: everything fully arrived ---- */
  .rv{opacity:1!important;transform:none!important}
  .js .dgm[data-draw] *{stroke-dashoffset:0!important;opacity:1!important}
  .swi{transform:none!important}
  /* drawn rules (fx-grammar paints these as 1px gradients) → plain borders */
  .spec-row,.client,.prog,.hud-note,
  .card ul,.card ul li,
  .notfor li,
  .doc-row,.doc-head{background-size:100% 1px!important;border-color:var(--border)!important}
  /* eyebrow tick: a border prints with backgrounds off; width is forced
     past fx-grammar's 0 → 26px draw */
  .eyebrow::before{width:26px!important;height:0;background:none;border-top:1px solid var(--accent-line)}

  /* ---- layout ---- */
  .card,.hud-tilt,.doc{transform:none!important;box-shadow:none;break-inside:avoid}
  .doc{background:var(--bg)}               /* .doc is a hardcoded #141414 on screen */
  .figs{grid-template-columns:1fr 1fr}
  .fig{break-inside:avoid}
  .fig__frame{overflow:visible}            /* scroll containers clip on paper */
  /* full-bleed plates: the screen stage is a fixed min(82vh,920px) box with a side legend —
     on paper let the static SVG set the height (16/10) and stack the legend under it */
  .holo-fig{grid-template-columns:1fr;grid-template-areas:"plate" "cap" "legend"}
  .holo{height:auto;aspect-ratio:16 / 10}
  .dgm{min-width:0}                        /* let the schematic fit its column; strokes stay 1pt (non-scaling-stroke) */
  .section{padding:12mm 0;border:0}
  .manifesto,.reserve,footer{padding-left:0;padding-right:0}
  h2,h3{break-after:avoid}
  .section.raised::after{display:none}
  /* buttons read as outlines rather than white-on-white pills */
  .btn,.pill{background:none!important;color:var(--text)!important;border-color:var(--border-strong)!important}

  /* ---- links: mailto/tel already show their value; print external hrefs ---- */
  .foot-col a[href^="http"]::after{content:" (" attr(href) ")";font-family:var(--mono);font-size:9pt}
}
