/* LỆNH 37 · Đợt 1 · projector mode and main-sentence contrast (owner: Agent B).
   Projector simulation used to size everything: per sRGB channel v' = 20 + 0.6·v (black lifted ~8 %, contrast −40 %). Pure white through it is
   255 → 173 and the deepest navy (3,8,20) → (22,25,32): 8.0:1 at best, so a main sentence needs white text on a ground at or under about (23,23,23) raw.
   Loaded after nq-card.css; touches nothing outside the class "proj" except the light title band (§A). */

/* ---------- A · the title band: a soft dark gradient behind .head (pseudo-element, no blur, no backdrop-filter, no layout) ----------
   Normal mode: a faint one under the five scenes whose 3D world is pale behind the title. Projector mode: a deep one under every title. */
:root{--nqp-mx:linear-gradient(90deg,transparent 0,#000 12%,#000 88%,transparent 100%);--nqp-my:linear-gradient(180deg,transparent 0,#000 22%,#000 78%,transparent 100%)}
:is(#s-problem,#s-evidence,#s-flow,#s-compete,#s-fit) .head,html.proj .head{isolation:isolate}
:is(#s-problem,#s-evidence,#s-flow,#s-compete,#s-fit) .head::before,html.proj .head::before{
  content:"";position:absolute;z-index:-1;pointer-events:none;left:-170px;right:-210px;top:-66px;bottom:-60px;
  -webkit-mask-image:linear-gradient(90deg,#000 0,#000 calc(100% - var(--nqp-fade,650px)),transparent 100%),linear-gradient(180deg,transparent 0,#000 38%,#000 80%,transparent 100%);
  -webkit-mask-composite:source-in;
  mask-image:linear-gradient(90deg,#000 0,#000 calc(100% - var(--nqp-fade,650px)),transparent 100%),linear-gradient(180deg,transparent 0,#000 38%,#000 80%,transparent 100%);
  mask-composite:intersect}
/* the band stops short of the corner labels that sit under the title's z-order (09 top right, 08 top right) and of 07's line under the title */
html.proj :is(#s-biz,#s-pilot) .head::before{--nqp-fade:140px}
html.proj #s-biz .head::before{right:420px}
html.proj #s-pilot .head::before{right:330px;--nqp-fade:90px}
html.proj #s-risk .head::before{bottom:-24px}
:is(#s-problem,#s-evidence,#s-flow,#s-compete,#s-fit) .head::before{background:rgba(1,4,12,.32)}
html.proj #stage .head::before{background:rgba(1,3,9,.93)}
html.proj :is(#s-demo,#s-cause,#s-outro) .head::before{display:none}   /* no title line there: the demo's sits on the black film frame, 03 and 14 keep only the chapter label */

/* ---------- B · tokens (every rule in the deck that reads a variable follows) ---------- */
html.proj{
  --white:#fff;--mute:#D6E0F0;--steel:#CFDBF3;--graph:#B6C4DC;--blue:#B4D1FF;--blue-dim:rgba(139,182,250,.22);
  --amber:#FFC96B;--card-ink:#02060F;--card-mute:#3B475E;
  --qtext:#fff;--qmuted:#D6E0F0;--qbg:#050A14;--qpanel:#0F1A2C;--qline:#5B6E8C;--qblue:#B0D0FF;--qteal:#8DE6D6;--qamber:#FFD08A;--qred:#FFB0A8}
html.proj #qa100-root{--qbg:#04080F;--qline:#52667F;--qteal:#8DE6D6}   /* the Q&A view sets these three on its own root (qa-creative.css) */

/* ---------- C · titles: pure white, a notch heavier ---------- */
html.proj .head .h1,html.proj .head h2,html.proj .head .h2{color:#fff;font-weight:700}
html.proj #stage .head .h1 em{color:#fff;text-decoration:underline;text-decoration-color:#FFC96B;text-decoration-thickness:.07em;text-underline-offset:.12em;text-decoration-skip-ink:none}


/* ---------- D · hero lines (≥ 40 px: the figures, the closing sentence): white, a notch heavier, a dark halo that follows the glyphs ----------
   The halo is a text-shadow in em (it scales with the line), never a filter or a backdrop-filter. */
html.proj{--nqp-halo:0 0 .05em rgba(0,2,8,.85),0 0 .2em rgba(0,2,8,1),0 0 .5em rgba(0,2,8,.92),0 0 1.1em rgba(0,2,8,.62)}
html.proj :is(
  #s-problem .wd-cnt .wd-lo,#s-problem .wd-say,
  #s-cause .c3-root small,#s-cause .c3-root p,#s-cause .c3-why b,
  #s-flow .f4-col .f4-nm .t,#s-flow .f4-price .f4pn,
  #s-pilot .l7-big b,#s-pilot .l7-board .bt,#s-pilot .l7-ai .tx,
  #s-biz .b10-trio b,#s-biz .b10v,#s-biz .b10-res,#s-biz .b10-res b,#s-biz .b10-eq,#s-biz .b10-eq b,
  #s-final :is(.g11c-hero .hd,.g11-lab .n,.g11-lab .n i,.g11-line),
  #s-outro .o13-wt span,#s-outro .o13-wt em,#s-outro .o13-thx
){color:#fff;text-shadow:var(--nqp-halo)}
html.proj #s-cause .c3-root h2{background:none;-webkit-text-fill-color:#FFF8EA;color:#FFF8EA;filter:none;text-shadow:var(--nqp-halo)}
html.proj #s-problem .wd-cnt b{color:#fff}

/* normal mode, two lines that sat under 7:1: the figure line over the pale yard of scene 01 and the closing wordmark's blue */
#s-problem :is(.wd-say,.wd-cnt){isolation:isolate}
#s-problem .wd-say::before,html.proj #s-problem .wd-cnt::before{content:"";position:absolute;z-index:-1;pointer-events:none;
  -webkit-mask-image:var(--nqp-mx),var(--nqp-my);-webkit-mask-composite:source-in;mask-image:var(--nqp-mx),var(--nqp-my);mask-composite:intersect}
#s-problem .wd-say::before{left:-110px;right:-150px;top:-40px;bottom:-34px;background:rgba(3,8,20,.5)}
html.proj #s-problem .wd-say::before{background:rgba(1,3,9,.92)}
html.proj #s-problem .wd-cnt::before{left:-100px;right:-130px;top:-64px;bottom:-54px;background:rgba(1,3,9,.93)}
html.proj #s-problem .wd-wk{isolation:isolate}
html.proj #s-problem .wd-wk::before{content:"";position:absolute;z-index:-1;pointer-events:none;left:-70px;right:-70px;top:-8px;bottom:-34px;background:rgba(1,3,9,.86);
  -webkit-mask-image:var(--nqp-mx),var(--nqp-my);-webkit-mask-composite:source-in;mask-image:var(--nqp-mx),var(--nqp-my);mask-composite:intersect}
#s-outro .o13-wt em{color:#94BBFD}
#s-final .g11-lab .n i{color:#A8CDFF}   /* 7.08 → more margin at 60 px */

/* ---------- E · decorative layers that only wash out on a projector: toned down ---------- */
html.proj #stage{background:radial-gradient(ellipse 1180px 800px at 50% 40%,#0B1A44 0%,#071030 32%,#050B22 60%,#02060F 100%)}
html.proj #light{background:radial-gradient(closest-side,rgba(46,98,210,.12),rgba(30,66,150,.035) 78.5%,transparent 100%)}
html.proj #light2{background:radial-gradient(closest-side,rgba(240,166,58,.05),transparent 100%)}
html.proj #shade{background:radial-gradient(ellipse at 50% 45%,transparent 78%,rgba(1,4,11,.5) 100%)}   /* the edge vignette sits above the text: it dimmed a corner label by a quarter */
html.proj #s-final :is(.g11c-hero,.g11c-dec){background:rgba(3,5,11,.97)}   /* no warm sheen under the approval card's title */
html.proj :is(#s-team,#s-outro) .tmx-key{background:radial-gradient(1300px 260px at 50% 100%,rgba(70,120,230,.06),rgba(70,120,230,0) 70%)}   /* the warm key light over the title */
html.proj :is(#s-team,#s-outro) .tmc-glow{background:radial-gradient(closest-side,rgba(96,146,255,.14),rgba(96,146,255,.04) 55%,rgba(96,146,255,0))}
html.proj .nq-glass{opacity:.35}
html.proj #s-final :is(.g11-lab,.g11-line){isolation:isolate}
html.proj #s-final :is(.g11-lab,.g11-line)::before{content:"";position:absolute;z-index:-1;pointer-events:none;left:-70px;right:-110px;top:-44px;bottom:-40px;background:rgba(1,3,9,.72);
  -webkit-mask-image:var(--nqp-mx),var(--nqp-my);-webkit-mask-composite:source-in;mask-image:var(--nqp-mx),var(--nqp-my);mask-composite:intersect}
html.proj #s-omen .nq-paper .pr b{color:#000}

/* ---------- F · small chips, labels and sources: lifted to 4.5:1 through the simulation ----------
   Pale text for the greys and soft blues that sat under it, a deeper blue (and red) under white badge text, darker ink on paper. Scene-scoped on purpose:
   the colours are hard-coded in the scene files (#2A63E6 alone is written 30 times), so a variable cannot reach them. */
html.proj{--nq-blue-l:#A9CBFF;--nq-amber-l:#FFD089;--nq-amber:#FFC265;--nq-ink:#0A101C;--nq-ink2:#1B2638;--nqp-pale:#DCE6F5;--nqp-blue:#D0E1FF;--nqp-fill:#12388F}
/* card v2 (nq-card.css): the tokens the cards read, raised for the projector (white on the deepest ground, a brighter edge, a brighter label) */
html.proj{--nqc-bg:linear-gradient(180deg,rgba(6,12,26,.985),rgba(3,7,16,.985));--nqc-edge:linear-gradient(180deg,rgba(244,248,255,.62),rgba(244,248,255,.3));--nqc-lab:#CBD8F0;--nqc-body:#F4F8FF;--nqc-sp:#BCD6FF;--nqc-bdb:rgba(120,165,255,.4);--nqc-bdg:rgba(190,205,230,.34)}
html.proj .nq-card,html.proj .nq-card.is-data{--nq-c:#A9C6FF}
html.proj .nq-card.is-issue{--nq-c:#FFCB78;--nqc-bg:linear-gradient(180deg,rgba(26,16,6,.985),rgba(17,10,3,.985));--nqc-edge:linear-gradient(180deg,rgba(255,203,120,.85),rgba(255,203,120,.4))}
html.proj .nq-card.is-quiet{--nq-c:#D2DCEC}
html.proj .nq-card .nq-sub{color:#F4F8FF}
html.proj :is(.nq-bd,#s-compete .c5-ok i){color:#fff}
html.proj :is(.nq-bd.tr,#s-compete .c5-tr i){color:#fff}
html.proj #s-compete .c5-ic em{color:#fff}
html.proj #s-compete :is(.c5-ex,.c5-ok,.c5-tr,.c5-nm){color:#fff}
html.proj .nq-hr,html.proj #s-compete .c5-how::before{background:linear-gradient(90deg,rgba(244,248,255,0),rgba(244,248,255,.5) 20%,rgba(244,248,255,.5) 80%,rgba(244,248,255,0))}
html.proj .nq-paper{color:#05080F}
html.proj :is(
  #s-biz :is(.b10-src,.b10sq,.b10-cav),
  #s-pilot :is(.l7-corner,.l7-cab .pv,.l7-cab .ct,.l7-cab .ct em),
  #s-risk :is(.g6-src,.g6-leg i,.g6-an,.g6-at,.g6-at span),
  #s-flow :is(.fl-src,.f4-line,.lr .s,.f4pk),
  #s-compete :is(.c5-src,.c5-l1),
  #s-cause .c3-ask small,#s-cause .c3-cap,
  #s-outro :is(.o13-tag,.o13-evt,.chap i,.chap b),
  #s-omen .o11-tag,#s-evidence .e2-tag,
  #s-problem .wd-wk span,
  #s-final :is(.g11c-card .md,.g11-chip .t)
){color:var(--nqp-pale)}
html.proj #s-biz .b10-cav,html.proj #s-cause .c3-chip span,html.proj #s-cause .c3-why small,html.proj #s-evidence .e2-chip span,html.proj #s-compete .c5-tr i{color:#FFD79A}
html.proj :is(#s-compete .c5-ok i,#s-fit .c6-tick i,#s-evidence .e2-c1 i,#s-pilot .nq-txt i,#s-pilot .ct .v,#s-flow .f4-wc .tb b em,#s-omen header b,#s-omen .o11-st .tx span){color:var(--nqp-blue)}
html.proj :is(#s-evidence .e2-pl i,#s-flow :is(.f4rk,.dl.lit,.dl.c,.f4-gst .b,.f-code),#s-flow .f4-col .f4-doc.lit .dl,#s-risk :is(.g6-dot .bd,.g6-dot.hi .bd,.g6-rc i,.g6-gt.ok i),#s-pilot .l7-stamp i){background:var(--nqp-fill)}
html.proj #s-flow .phd b{background:#961C16}
html.proj #s-team .tmc-nt{background:rgba(16,48,128,.95)}
html.proj #s-final .hd .no{color:#fff;background:rgba(3,10,40,.97)}
html.proj #s-fit .c6-step,html.proj #s-flow .fl-src{background:rgba(2,6,16,.82)}
html.proj #s-compete .c5-say{isolation:isolate}
html.proj #s-compete .c5-say::before{content:"";position:absolute;z-index:-1;pointer-events:none;left:-90px;right:-130px;top:-30px;bottom:-26px;background:rgba(1,3,9,.86);
  -webkit-mask-image:var(--nqp-mx),var(--nqp-my);-webkit-mask-composite:source-in;mask-image:var(--nqp-mx),var(--nqp-my);mask-composite:intersect}
/* dark ink on paper and on the amber button */
html.proj :is(#s-flow .f4-bub .hl.gone,#s-flow .f4-doc .dl.s,#s-flow .f4-rec .f4rl,#s-flow .bh span,#s-omen .nq-paper :is(small,.pr span,.sb),#s-omen .o12-qc .sb){color:#0F1826}
html.proj :is(#s-flow .f4-pdf .f4imp,#s-omen .o12-qc .lb){color:#16399A}
html.proj :is(#s-final .bn .ok,#s-omen .o11-pen){color:#000}
html.proj #s-final .g11-chip .t{color:#fff}
html.proj #s-omen .o11-st .tx b{color:#EEF3FB}
html.proj #s-omen .o11-core b{color:#fff;text-shadow:var(--nqp-halo)}
html.proj #s-omen .o11-core{isolation:isolate}
html.proj #s-omen .o11-core .sh{box-shadow:inset 0 0 0 1px rgba(127,166,255,.5)}   /* its blue glow lit the ground under the label */
html.proj #s-omen .o11-core::before{content:"";position:absolute;z-index:-1;pointer-events:none;left:-30px;right:-30px;top:60px;bottom:-14px;background:rgba(1,3,9,.85);
  -webkit-mask-image:var(--nqp-mx),var(--nqp-my);-webkit-mask-composite:source-in;mask-image:var(--nqp-mx),var(--nqp-my);mask-composite:intersect}
html.proj #s-biz .b10-ai2,html.proj #s-biz .b10-ai2 :is(b,span){color:#04092A}

/* ---------- reserved: a future film-grain layer ---------- */
html.proj .nq-grain{display:none}

/* ---------- LỆNH 44/46/47 · scene 10's plans, strip and logo row (assets/css/pitch-biz-price.css): white on the deepest ground ---------- */
html.proj :is(.bp-card,.bp-strip){background:linear-gradient(180deg,rgba(6,10,20,.985),rgba(2,5,12,.985))}
html.proj .bp-pilot{background:linear-gradient(180deg,rgba(6,10,20,.92),rgba(2,5,12,.92))}
html.proj :is(.bp-card,.bp-strip)::before{background:linear-gradient(180deg,rgba(244,248,255,.7),rgba(244,248,255,.32))}
html.proj .bp-pilot::before{background:rgba(244,248,255,.45)}
html.proj .bp-team::before{background:linear-gradient(180deg,#D6E8FF,rgba(190,220,255,.8))}
html.proj :is(.bp-pr b,.bp-pr span,.bp-tg,.bp-ft li,.bp-chip,.bp-big b,.bp-big span,.bp-pc,.bp-sm,.bp-cp,.bp-fa,.bp-eq,.bp-logos,.bp-logos em){color:#fff}
html.proj :is(.bp-nm,.bp-lb){color:#7CC4FF}
html.proj :is(.bp-chip,.bp-logos){background:rgba(1,3,9,.92);box-shadow:inset 0 0 0 1px rgba(244,248,255,.82)}
html.proj .bp-eq{background:rgba(24,70,150,.92);box-shadow:inset 0 0 0 1px rgba(214,232,255,.95)}
html.proj .bp-tr{background:rgba(244,248,255,.28)}
html.proj .bp-bar{background:linear-gradient(90deg,#4C9AFF,#BFE2FF)}
html.proj .bp-logos em{border-left-color:rgba(244,248,255,.6)}
html.proj .bp-ft::before,html.proj .bp-cell+.bp-cell::before{background:linear-gradient(90deg,rgba(244,248,255,0),rgba(244,248,255,.5) 20%,rgba(244,248,255,.5) 80%,rgba(244,248,255,0))}
html.proj .bp-cell+.bp-cell::before{background:linear-gradient(180deg,rgba(244,248,255,0),rgba(244,248,255,.5) 25%,rgba(244,248,255,.5) 75%,rgba(244,248,255,0))}
html.proj .bp-cc{fill:#184FAE}   /* white on it is 7.6:1 */
html.proj :is(.bp-mc,.bp-pa,.bp-cp){color:#fff} html.proj .bp-mc{background:rgba(24,70,150,.92);box-shadow:inset 0 0 0 1px rgba(214,232,255,.95)}   /* LỆNH 72 */
html.proj .bp-cm{stroke:#fff}
html.proj .bp-lg b,html.proj .bp-nq{color:#fff}   /* ("Quote" stays blue: #7CC4FF on the tile's ground is 9:1) */
html.proj .bp-nq u{color:#7CC4FF}
html.proj .bp-mk{background:#050A16;box-shadow:inset 0 0 0 1px rgba(244,248,255,.7),0 6px 14px -6px rgba(0,0,0,.7)}
html.proj :is(.nq-mk,#s-omen .o11-st .ic.nq-mk){background:#050A16;box-shadow:inset 0 0 0 1px rgba(244,248,255,.7),0 6px 14px -6px rgba(0,0,0,.7)}
html.proj #s-omen .o11-st b.nqw u{color:#7CC4FF}
