/* =====================================================================
   Industry page set pieces
   1. Spot the fake (#spot-the-fake): an interactive wire-fraud email
   2. Contained (#contained): a practice floor plan where ransomware gets isolated
   Everything reads as plain content without JS; industry-fx.js adds .is-js.
   ===================================================================== */

/* hidden means hidden, even on .btn and flex rows */
.fx-spot [hidden], .fx-contain [hidden] { display:none !important; }

/* ---------- 1. Spot the fake ---------- */
.fx-spot .section-header { margin-bottom:40px; }
.fx-spot .section-header h2 { color:#fff; }
.fx-spot .section-header p { color:var(--gray-300); }
.spot-grid { display:grid; grid-template-columns:minmax(0, 1.35fr) minmax(0, 1fr); gap:28px; align-items:start; max-width:1100px; margin:0 auto; }

.spot-mail { position:relative; background:#fff; color:#1a1a2e; border-radius:18px; overflow:hidden; box-shadow:0 40px 90px -40px rgba(0,0,0,.7), 0 0 0 1px rgba(255,255,255,.08); isolation:isolate; }
.spot-chrome { display:flex; align-items:center; gap:7px; padding:12px 16px; background:#f3f4f8; border-bottom:1px solid #e6e8ef; font-size:.75rem; font-weight:600; color:#6b7194; }
.spot-chrome i { width:10px; height:10px; border-radius:50%; background:#d7dae4; }
.spot-chrome i:nth-child(1) { background:#ff6159; } .spot-chrome i:nth-child(2) { background:#ffbd2e; } .spot-chrome i:nth-child(3) { background:#28c941; }
.spot-chrome span { margin-left:8px; }
.spot-chrome .spot-meter { margin-left:auto; display:inline-flex; align-items:center; gap:6px; padding:4px 10px; border-radius:999px; background:#fff; border:1px solid #e1e4ee; color:#1a1a2e; font-weight:700; }
.spot-chrome .spot-meter b { color:#c2410c; font-variant-numeric:tabular-nums; }
.spot-chrome .spot-meter.done b { color:#047857; }

.spot-banner { display:flex; gap:10px; align-items:flex-start; padding:12px 16px; background:#fff4e5; border-bottom:1px solid #f6d7a8; color:#7a3e00; font-size:.84rem; line-height:1.45; }
.spot-banner svg { width:18px; height:18px; flex-shrink:0; margin-top:1px; color:#c2410c; }
.spot-banner b { color:#7a2e00; }

.spot-head { padding:18px 22px 14px; border-bottom:1px solid #eef0f6; }
.spot-subj { font-family:'Inter Tight', system-ui, sans-serif; font-weight:800; font-size:1.12rem; line-height:1.35; margin-bottom:12px; color:#0a0e27; }
.spot-row { display:grid; grid-template-columns:74px minmax(0, 1fr); gap:8px; font-size:.84rem; line-height:1.5; color:#2d3152; }
.spot-row .k { color:#8a90a8; font-weight:600; }
.spot-row .v { overflow-wrap:anywhere; }
.spot-body { padding:18px 22px 24px; font-size:.93rem; line-height:1.65; color:#2d3152; }
.spot-body p { margin:0 0 12px; }
.spot-wire { margin:4px 0 14px; padding:12px 14px; border-radius:10px; background:#f6f7fb; border:1px solid #e6e8ef; font-family:ui-monospace, SFMono-Regular, Menlo, monospace; font-size:.8rem; line-height:1.7; color:#1a1a2e; }
.spot-wire span { color:#8a90a8; }
.spot-sig { color:#6b7194; font-size:.86rem; }
.spot-code { font-family:ui-monospace, SFMono-Regular, Menlo, monospace; font-size:.9em; white-space:nowrap; }
.spot-code mark { background:rgba(239,68,68,.28); color:inherit; border-radius:3px; padding:0 2px; }
.spot-banner .spot-code mark { background:rgba(194,65,12,.18); }

/* hotspots read as ordinary text until found */
.spot-hit { font:inherit; color:inherit; background:none; border:0; padding:0 1px; margin:0 -1px; text-align:inherit; display:inline; cursor:pointer; border-radius:4px; line-height:inherit; letter-spacing:inherit; -webkit-tap-highlight-color:transparent; }
.spot-hit:focus-visible { outline:2px dashed #2b5cff; outline-offset:2px; }
.fx-spot.is-js .spot-mail [data-spot-area] { cursor:pointer; }
.spot-hit.found { background:rgba(239,68,68,.12); box-shadow:0 0 0 2px rgba(239,68,68,.75); color:#b42318; }
.spot-hit .spot-n { display:none; }
.spot-hit.found .spot-n { display:inline-grid; place-items:center; width:18px; height:18px; margin-left:4px; border-radius:50%; background:#ef4444; color:#fff; font:800 .66rem/1 'Inter', sans-serif; vertical-align:2px; }
.fx-spot.is-js .spot-hit.found { animation:spot-pop .5s cubic-bezier(.34,1.56,.64,1); }
@keyframes spot-pop { 0% { box-shadow:0 0 0 10px rgba(239,68,68,0); } 100% { box-shadow:0 0 0 2px rgba(239,68,68,.75); } }

.spot-panel { color:#fff; }
.spot-score { font-family:'Inter Tight', system-ui, sans-serif; font-weight:800; font-size:1.25rem; margin-bottom:6px; }
.spot-score b { font-variant-numeric:tabular-nums; color:#ff8a65; }
.spot-hint { font-size:.85rem; color:var(--gray-400); min-height:1.4em; margin:0 0 16px; transition:color .2s; }
.spot-hint.nope { color:#ffb199; }
.spot-flags { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px; counter-reset:flag; }
.spot-flags li { position:relative; padding:14px 16px 14px 50px; border-radius:14px; background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.1); transition:background .4s, border-color .4s; }
.spot-flags li::before { counter-increment:flag; content:counter(flag); position:absolute; left:14px; top:14px; width:24px; height:24px; border-radius:50%; display:grid; place-items:center; font:800 .72rem/1 'Inter', sans-serif; background:#ef4444; color:#fff; }
.spot-flags h3 { font-size:.98rem; margin:0 0 3px; color:#fff; }
.spot-flags p { font-size:.85rem; line-height:1.5; margin:0; color:var(--gray-300); }
.fx-spot.is-js .spot-flags li:not(.found) { background:rgba(255,255,255,.025); border-style:dashed; }
.fx-spot.is-js .spot-flags li:not(.found)::before { content:'?'; background:rgba(255,255,255,.1); color:var(--gray-400); }
.fx-spot.is-js .spot-flags li:not(.found) h3, .fx-spot.is-js .spot-flags li:not(.found) p { filter:blur(5px); opacity:.35; user-select:none; }
.fx-spot.is-js .spot-flags li.found { background:rgba(239,68,68,.09); border-color:rgba(239,68,68,.4); animation:flag-in .5s cubic-bezier(.16,1,.3,1); }
@keyframes flag-in { from { transform:translateX(12px); opacity:.4; } to { transform:none; opacity:1; } }
.spot-tools { display:flex; flex-wrap:wrap; gap:10px; margin-top:16px; }
.spot-tools .btn { padding:11px 18px; min-height:42px; font-size:.84rem; }

/* phase 2: our email security catches it */
.spot-scan { position:absolute; left:0; right:0; top:0; height:90px; pointer-events:none; opacity:0; z-index:3;
  background:linear-gradient(180deg, transparent, rgba(0,212,255,.16) 70%, rgba(0,212,255,.55) 98%, transparent); }
.fx-spot.is-scanning .spot-scan { animation:spot-scan 1.3s cubic-bezier(.45,0,.55,1) forwards; }
@keyframes spot-scan { 0% { opacity:1; transform:translateY(-90px); } 90% { opacity:1; } 100% { opacity:0; transform:translateY(var(--scan-h, 600px)); } }
.spot-stamp { position:absolute; right:18px; bottom:62px; z-index:4; padding:10px 16px; border:3px solid #c2410c; border-radius:10px; color:#c2410c; background:rgba(255,255,255,.85);
  font:900 1.05rem/1 'Inter Tight', sans-serif; letter-spacing:.08em; text-transform:uppercase; transform:rotate(-8deg) scale(1.6); opacity:0; pointer-events:none; }
.fx-spot.is-caught .spot-stamp { opacity:1; transform:rotate(-8deg) scale(1); transition:opacity .25s, transform .45s cubic-bezier(.34,1.56,.64,1); }
.fx-spot.is-caught .spot-body, .fx-spot.is-caught .spot-head { filter:saturate(.4); opacity:.55; transition:opacity .6s, filter .6s; }
.fx-spot.is-js .spot-banner { display:none; }
.fx-spot.is-caught .spot-banner { display:flex; animation:banner-in .5s cubic-bezier(.16,1,.3,1); }
@keyframes banner-in { from { transform:translateY(-100%); opacity:0; } to { transform:none; opacity:1; } }

.spot-after { max-width:760px; margin:36px auto 0; text-align:center; }
.fx-spot.is-js .spot-after { opacity:0; transform:translateY(12px); transition:opacity .6s, transform .6s cubic-bezier(.16,1,.3,1); visibility:hidden; }
.fx-spot.is-caught .spot-after { opacity:1; transform:none; visibility:visible; }
.spot-result { font-family:'Inter Tight', system-ui, sans-serif; font-weight:800; font-size:clamp(1.2rem, 2.4vw, 1.6rem); line-height:1.35; color:#fff; margin:0 0 10px; text-wrap:balance; }
.spot-result em { font-style:normal; color:var(--green); }
.spot-train { color:var(--gray-300); margin:0 0 22px; }
.spot-ctas { display:flex; flex-wrap:wrap; gap:12px; justify-content:center; }
.spot-note { font-size:.74rem; color:var(--gray-400); margin:18px 0 0; }

@media (max-width: 900px) {
  .spot-grid { grid-template-columns:minmax(0, 1fr); gap:22px; }
  .spot-head { padding:16px 16px 12px; }
  .spot-body { padding:16px 16px 20px; font-size:.9rem; }
  .spot-row { grid-template-columns:66px minmax(0, 1fr); font-size:.8rem; }
  .spot-chrome span.spot-folder { display:none; }
  .spot-stamp { right:12px; bottom:48px; font-size:.9rem; }
}

/* ---------- 2. Contained ---------- */
.fx-contain .section-header { margin-bottom:36px; }
.fx-contain .section-header h2 { color:#fff; }
.fx-contain .section-header p { color:var(--gray-300); }
.ctn-grid { display:grid; grid-template-columns:minmax(0, 1.55fr) minmax(0, 1fr); gap:32px; align-items:center; max-width:1160px; margin:0 auto; }
.ctn-map { position:relative; border-radius:20px; background:radial-gradient(120% 90% at 20% 0%, rgba(43,92,255,.16), transparent 60%), #0b1030; border:1px solid rgba(120,150,255,.16); padding:14px; }
.ctn-map svg { display:block; width:100%; height:auto; }
.fx-contain:not(.is-js) .ctn-map { display:none; }
.fx-contain:not(.is-js) .ctn-grid { grid-template-columns:minmax(0, 1fr); max-width:640px; }
.ctn-room { fill:rgba(120,150,255,.035); stroke:rgba(120,160,255,.26); stroke-width:1.2; }
.ctn-hall { fill:rgba(120,150,255,.02); stroke:rgba(120,160,255,.14); stroke-width:1; stroke-dasharray:4 5; }
.ctn-rlabel { font:700 9.5px 'Inter', system-ui, sans-serif; letter-spacing:.16em; fill:rgba(170,190,255,.5); text-transform:uppercase; }
.ctn-wire { fill:none; stroke:rgba(0,212,255,.28); stroke-width:1.6; transition:stroke .5s, opacity .5s; }
.ctn-wire.hot { stroke:rgba(239,68,68,.8); }
.ctn-wire.cut { stroke-dasharray:3 6; opacity:.35; stroke:rgba(239,68,68,.6); }
.ctn-dev rect { fill:#121a3d; stroke:rgba(140,170,255,.45); stroke-width:1.3; transition:fill .4s, stroke .4s; }
.ctn-dev .scr { fill:rgba(0,212,255,.16); transition:fill .4s; }
.ctn-dev .dot { fill:#00e68a; transition:fill .4s; }
.ctn-dev text { font:600 9px 'Inter', system-ui, sans-serif; fill:rgba(220,228,255,.78); text-anchor:middle; }
.ctn-dev.warn rect { stroke:#f5b53d; } .ctn-dev.warn .dot { fill:#f5b53d; }
.ctn-dev.bad rect { fill:#3a0f1a; stroke:#ef4444; } .ctn-dev.bad .scr { fill:rgba(239,68,68,.35); } .ctn-dev.bad .dot { fill:#ef4444; }
.ctn-dev.iso rect { fill:#1a1430; stroke:rgba(239,68,68,.7); } .ctn-dev.iso .dot { fill:#ef4444; }
.ctn-dev.fixed rect { stroke:#00e68a; } .ctn-dev.fixed .dot { fill:#00e68a; }
.ctn-shield { fill:none; stroke:#00d4ff; stroke-width:2; }
.ctn-tag { font:800 8.5px 'Inter', system-ui, sans-serif; letter-spacing:.12em; }
.ctn-cut { opacity:0; transition:opacity .4s; }
.ctn-map.s-iso .ctn-cut { opacity:1; }
.ctn-map.s-restored .ctn-cut { opacity:0; }
.ctn-soc { opacity:0; transition:opacity .5s; }
.ctn-map.s-soc .ctn-soc { opacity:1; }
.ctn-status { display:flex; flex-wrap:wrap; gap:8px; margin:10px 4px 2px; }
.ctn-status span { font-size:.7rem; font-weight:700; letter-spacing:.04em; padding:6px 10px; border-radius:999px; background:rgba(10,14,39,.85); border:1px solid rgba(0,230,138,.35); color:#b9ffe0; }
.ctn-status span::before { content:''; display:inline-block; width:6px; height:6px; border-radius:50%; background:#00e68a; margin-right:6px; vertical-align:1px; box-shadow:0 0 8px #00e68a; }

.ctn-steps { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:4px; color:#fff; }
.ctn-steps li { display:grid; grid-template-columns:112px minmax(0, 1fr); gap:10px; padding:10px 12px; border-radius:12px; border:1px solid transparent; transition:background .4s, border-color .4s, opacity .4s; }
.ctn-steps time { font-family:'Inter Tight', system-ui, sans-serif; font-weight:800; font-size:.8rem; color:var(--cyan); padding-top:1px; white-space:nowrap; }
.ctn-steps span { font-size:.92rem; line-height:1.45; color:var(--gray-300); }
.ctn-steps li.bad time { color:#ff7a7a; }
.ctn-steps li.good time { color:var(--green); }
.fx-contain.is-js .ctn-steps li { opacity:.35; }
.fx-contain.is-js .ctn-steps li.done { opacity:.7; }
.fx-contain.is-js .ctn-steps li.now { opacity:1; background:rgba(255,255,255,.05); border-color:rgba(255,255,255,.12); }
.fx-contain.is-js .ctn-steps li.now span { color:#fff; }
.ctn-after { max-width:760px; margin:34px auto 0; text-align:center; }
.ctn-result { font-family:'Inter Tight', system-ui, sans-serif; font-weight:800; font-size:clamp(1.2rem, 2.4vw, 1.6rem); color:#fff; margin:0 0 20px; text-wrap:balance; }
.ctn-result em { font-style:normal; color:var(--green); }
.ctn-ctas { display:flex; flex-wrap:wrap; gap:12px; justify-content:center; }
.ctn-note { font-size:.74rem; color:var(--gray-400); margin:18px 0 0; }

@media (max-width: 900px) {
  .ctn-grid { grid-template-columns:minmax(0, 1fr); gap:18px; }
  .ctn-map { padding:8px; border-radius:16px; }
  .ctn-status { display:flex; flex-wrap:wrap; gap:8px; margin:10px 4px 2px; }
  .ctn-status span { font-size:.62rem; padding:4px 8px; }
  .ctn-steps li { grid-template-columns:104px minmax(0, 1fr); padding:8px 10px; }
  .ctn-steps span { font-size:.86rem; }
}

@media (prefers-reduced-motion: reduce) {
  .fx-spot .spot-hit.found, .fx-spot .spot-flags li.found, .fx-spot .spot-banner { animation:none !important; }
  .fx-spot .spot-stamp, .fx-spot .spot-after, .ctn-wire, .ctn-dev rect, .ctn-steps li { transition:none !important; }
}

/* /healthcare-it stats bar: a long word stat ("Nationwide") pushed the page 40px wider than a phone
   and shoved the menu button off screen. Smaller type for word stats on phones, and grid cells may shrink. */
@media (max-width: 640px) {
  .stats-bar .stat-item { min-width:0; }
  .stats-bar .stat-num.stat-word { font-size:1.5rem; line-height:1.2; }
}

/* Contained, manufacturing plan: the segmentation wall between office and plant networks */
.ctn-wall rect { fill:rgba(0,212,255,.05); stroke:rgba(0,212,255,.35); stroke-width:1.5; stroke-dasharray:6 5; transition:stroke .4s, fill .4s; }
.ctn-wall-t { font:800 9px 'Inter', system-ui, sans-serif; letter-spacing:.3em; fill:rgba(0,212,255,.55); text-anchor:middle; dominant-baseline:middle; }
.ctn-map.s-hold .ctn-wall rect { stroke:#00e68a; stroke-dasharray:none; fill:rgba(0,230,138,.08); filter:drop-shadow(0 0 8px rgba(0,230,138,.55)); }
.ctn-map.s-hold .ctn-wall-t { fill:#00e68a; }

/* ---------- 3. Built around your calendar (accounting) ---------- */
.fx-cal [hidden] { display:none !important; }
.cal-grid { display:grid; grid-template-columns:minmax(0, 340px) minmax(0, 1fr); gap:28px; align-items:stretch; max-width:1160px; margin:0 auto; }
.cal-card { background:#fff; border:1px solid var(--gray-100); border-radius:22px; padding:26px 26px 24px; box-shadow:0 20px 50px -30px rgba(10,14,39,.25); display:flex; flex-direction:column; }
.cal-k { font-size:.7rem; font-weight:800; letter-spacing:.16em; text-transform:uppercase; color:var(--blue); }
.cal-date { font-family:'Inter Tight', system-ui, sans-serif; font-weight:800; font-size:1.7rem; letter-spacing:-.02em; margin-top:8px; color:var(--text); }
.cal-what { color:var(--text-muted); font-size:.92rem; margin-top:2px; }
.cal-count { margin-top:14px; font-size:.95rem; color:var(--gray-600); }
.cal-count b { font-family:'Inter Tight', system-ui, sans-serif; font-weight:900; font-size:2.6rem; color:#c2410c; letter-spacing:-.03em; font-variant-numeric:tabular-nums; margin-right:4px; }
.cal-list { list-style:none; margin:18px 0 22px; padding:14px 0 0; border-top:1px solid var(--gray-100); display:flex; flex-direction:column; gap:7px; }
.cal-list li { display:grid; grid-template-columns:96px minmax(0, 1fr); gap:10px; font-size:.84rem; color:var(--gray-600); }
.cal-list time { font-weight:700; color:var(--text); font-variant-numeric:tabular-nums; }
.fx-cal.is-js .cal-list li { display:none; }
.fx-cal.is-js .cal-list li.show { display:grid; }
.cal-list li.past { color:var(--gray-400); text-decoration:line-through; text-decoration-color:rgba(0,0,0,.2); }
.cal-list li.past time { color:var(--gray-400); }
.cal-list li.next time, .cal-list li.next span { color:#c2410c; font-weight:700; }
.cal-cta { margin-top:auto; align-self:flex-start; }
.cal-year { position:relative; display:flex; align-items:center; border-radius:22px; background:radial-gradient(120% 90% at 100% 0%, rgba(43,92,255,.14), transparent 60%), #0b1030; border:1px solid rgba(120,150,255,.16); padding:18px 18px 10px; min-height:320px; }
.cal-year svg { display:block; width:100%; height:auto; flex:1 1 auto; }
.fx-cal:not(.is-js) .cal-year { display:none; }
.fx-cal:not(.is-js) .cal-grid { grid-template-columns:minmax(0, 520px); justify-content:center; }
.cal-note { text-align:center; font-size:.74rem; color:var(--gray-500); margin:18px 0 0; }
.cy-month { font:700 10px 'Inter', system-ui, sans-serif; fill:rgba(190,205,255,.6); text-anchor:middle; letter-spacing:.08em; }
.cy-grid { stroke:rgba(140,170,255,.10); stroke-width:1; }
.cy-area { fill:url(#cyWork); }
.cy-line { fill:none; stroke:#f5b53d; stroke-width:2.2; }
.cy-watch rect { fill:rgba(0,212,255,.14); stroke:rgba(0,212,255,.55); stroke-width:1.2; }
.cy-watch text { font:800 9.5px 'Inter', system-ui, sans-serif; letter-spacing:.12em; fill:#7fe8ff; }
.cy-pin line { stroke:#ff7a5c; stroke-width:1.6; stroke-dasharray:3 3; }
.cy-pin circle { fill:#ff7a5c; }
.cy-pin text { font:800 9.5px 'Inter', system-ui, sans-serif; fill:#ffb3a3; text-anchor:middle; }
.cy-block rect { fill:#16224f; stroke:rgba(0,230,138,.7); stroke-width:1.4; }
.cy-block text { font:700 9.5px 'Inter', system-ui, sans-serif; fill:#c8ffe8; text-anchor:middle; dominant-baseline:middle; }
.cy-block.busy rect { stroke:rgba(255,122,92,.8); }
.cy-today line { stroke:#fff; stroke-width:1.6; }
.cy-today text { font:800 9.5px 'Inter', system-ui, sans-serif; fill:#fff; text-anchor:middle; letter-spacing:.1em; }
.cy-quiet { fill:rgba(0,230,138,.06); }
.cy-quiet-t { font:700 9px 'Inter', system-ui, sans-serif; fill:rgba(120,255,200,.55); text-anchor:middle; letter-spacing:.14em; }
@media (max-width: 900px) {
  .cal-grid { grid-template-columns:minmax(0, 1fr); }
  .cal-year { min-height:0; padding:12px 10px 6px; }
}

/* ---------- 4. When the examiner calls (financial) ---------- */
.fx-exam [hidden] { display:none !important; }
.fx-exam .section-header h2 { color:#fff; }
.fx-exam .section-header p { color:var(--gray-300); }
.exam-grid { position:relative; display:grid; grid-template-columns:minmax(0, 300px) minmax(0, 1fr); gap:26px; align-items:start; max-width:1080px; margin:0 auto; }
.exam-binder { position:sticky; top:110px; border-radius:20px; padding:20px; background:radial-gradient(120% 90% at 0% 0%, rgba(43,92,255,.2), transparent 60%), #0e1334; border:1px solid rgba(120,150,255,.2); }
.exam-binder-head { display:flex; flex-wrap:wrap; align-items:center; gap:8px; color:#fff; font-family:'Inter Tight', system-ui, sans-serif; font-weight:800; font-size:1.05rem; margin-bottom:14px; }
.exam-binder-head .dot { width:9px; height:9px; border-radius:50%; background:var(--green); box-shadow:0 0 10px var(--green); }
.exam-binder-head small { flex-basis:100%; font-family:'Inter', sans-serif; font-weight:500; font-size:.76rem; color:var(--gray-400); }
.exam-folders { display:flex; flex-wrap:wrap; gap:8px; }
.exam-folders span { font-size:.78rem; font-weight:700; color:#cfd8ff; padding:8px 11px 8px 30px; border-radius:10px; background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.1); position:relative; transition:background .3s, border-color .3s, color .3s; }
.exam-folders span::before { content:''; position:absolute; left:10px; top:50%; width:13px; height:10px; margin-top:-5px; border-radius:2px; background:#f5b53d; box-shadow:inset 0 3px 0 rgba(0,0,0,.18); }
.exam-folders span.lit { background:rgba(0,230,138,.12); border-color:rgba(0,230,138,.55); color:#fff; }
.exam-doc { background:#fff; color:#1a1a2e; border-radius:20px; overflow:hidden; box-shadow:0 40px 90px -40px rgba(0,0,0,.7); }
.exam-doc-head { display:grid; grid-template-columns:1fr auto; gap:2px 16px; padding:18px 22px; background:#f3f4f8; border-bottom:1px solid #e6e8ef; }
.exam-k { grid-column:1; font-size:.68rem; font-weight:800; letter-spacing:.16em; text-transform:uppercase; color:#6b7194; }
.exam-doc-head > b { grid-column:1; font-family:'Inter Tight', system-ui, sans-serif; font-size:1.08rem; color:#0a0e27; }
.exam-meta { grid-column:1; font-size:.78rem; color:#6b7194; }
.exam-meter { grid-column:2; grid-row:1 / span 3; align-self:center; font-size:.8rem; font-weight:700; color:#4a4f6a; padding:8px 12px; border-radius:999px; background:#fff; border:1px solid #e1e4ee; white-space:nowrap; }
.exam-meter b { color:#047857; font-variant-numeric:tabular-nums; }
.exam-items { list-style:none; margin:0; padding:6px 0; }
.exam-items li { display:grid; grid-template-columns:30px minmax(0, 1fr) auto; gap:12px; align-items:center; padding:13px 22px; border-bottom:1px solid #eef0f6; transition:background .4s; }
.exam-items li:last-child { border-bottom:0; }
.exam-n { width:26px; height:26px; border-radius:50%; display:grid; place-items:center; font:800 .72rem/1 'Inter', sans-serif; background:#eef0f6; color:#6b7194; transition:background .3s, color .3s; }
.exam-body { display:flex; flex-direction:column; min-width:0; }
.exam-t { font-size:.92rem; font-weight:600; color:#1a1a2e; line-height:1.35; }
.exam-file { font-family:ui-monospace, SFMono-Regular, Menlo, monospace; font-size:.74rem; color:#2b5cff; margin-top:4px; overflow-wrap:anywhere; }
.exam-file i { font-family:'Inter', sans-serif; font-style:normal; color:#8a90a8; margin-left:6px; }
.exam-st { font-size:.7rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; padding:5px 9px; border-radius:999px; background:#eef0f6; color:#8a90a8; white-space:nowrap; }
.exam-items li.ready .exam-n { background:#00e68a; color:#04221a; }
.exam-items li.ready .exam-st { background:rgba(0,230,138,.16); color:#047857; }
.exam-items li.flash { background:rgba(0,230,138,.08); }
.fx-exam.is-js .exam-items li:not(.ready) .exam-file { visibility:hidden; }
.fx-exam.is-js .exam-items li:not(.ready) .exam-st::before { content:'Pending'; }
.fx-exam.is-js .exam-items li:not(.ready) .exam-st { font-size:0; }
.fx-exam.is-js .exam-items li:not(.ready) .exam-st::before { font-size:.7rem; }
.exam-chip { position:absolute; z-index:5; left:0; top:0; pointer-events:none; font-family:ui-monospace, SFMono-Regular, Menlo, monospace; font-size:.72rem; color:#fff; background:#2b5cff; border-radius:8px; padding:6px 10px; box-shadow:0 10px 24px -8px rgba(43,92,255,.8); white-space:nowrap; }
.exam-after { max-width:760px; margin:34px auto 0; text-align:center; }
.fx-exam.is-js .exam-after { opacity:0; transform:translateY(12px); transition:opacity .6s, transform .6s cubic-bezier(.16,1,.3,1); }
.fx-exam.is-done .exam-after { opacity:1; transform:none; }
.exam-result { font-family:'Inter Tight', system-ui, sans-serif; font-weight:800; font-size:clamp(1.2rem, 2.4vw, 1.55rem); line-height:1.35; color:#fff; margin:0 0 20px; text-wrap:balance; }
.exam-result em { font-style:normal; color:var(--green); }
.exam-ctas { display:flex; flex-wrap:wrap; gap:12px; justify-content:center; }
.exam-note { font-size:.74rem; color:var(--gray-400); margin:18px 0 0; }
@media (max-width: 900px) {
  .exam-grid { grid-template-columns:minmax(0, 1fr); }
  .exam-binder { position:static; }
  .exam-items li { grid-template-columns:24px minmax(0, 1fr) auto; gap:10px; padding:11px 14px; align-items:start; }
  .exam-n { width:24px; height:24px; margin-top:1px; }
  .exam-t { font-size:.86rem; }
  .exam-st { font-size:.6rem; padding:4px 7px; margin-top:2px; }
  .fx-exam.is-js .exam-items li:not(.ready) .exam-st::before { font-size:.6rem; }
  .exam-doc-head { grid-template-columns:1fr; padding:16px; }
  .exam-meter { grid-column:1; grid-row:auto; justify-self:start; margin-top:8px; }
}

/* ---------- 5. Every dollar back to the mission (nonprofit) ---------- */
.fx-lic [hidden] { display:none !important; }
.fx-lic .section-header h2 { color:#fff; }
.fx-lic .section-header p { color:var(--gray-300); }
.lic-grid { display:grid; grid-template-columns:minmax(0, 1.25fr) minmax(0, 1fr); gap:30px; align-items:center; max-width:1100px; margin:0 auto; }
.lic-panel { border-radius:22px; padding:22px; background:radial-gradient(120% 90% at 100% 0%, rgba(0,230,138,.12), transparent 60%), #0e1334; border:1px solid rgba(120,150,255,.18); }
.lic-head { display:flex; align-items:flex-end; justify-content:space-between; gap:12px; margin-bottom:16px; flex-wrap:wrap; }
.lic-k { font-size:.7rem; font-weight:800; letter-spacing:.16em; text-transform:uppercase; color:var(--cyan); }
.lic-cost { text-align:right; }
.lic-cost-l { display:block; font-size:.7rem; color:var(--gray-400); letter-spacing:.06em; text-transform:uppercase; }
.lic-cost b { font-family:'Inter Tight', system-ui, sans-serif; font-weight:900; font-size:2rem; color:#fff; font-variant-numeric:tabular-nums; letter-spacing:-.02em; }
.lic-cost s { margin-left:8px; color:var(--gray-500); font-size:.95rem; font-variant-numeric:tabular-nums; }
.fx-lic.is-js .lic-cost s { opacity:0; transition:opacity .4s; }
.fx-lic.is-done .lic-cost s { opacity:1; }
.lic-seats { display:grid; grid-template-columns:repeat(10, minmax(0, 1fr)); gap:6px; }
.lic-seats i { aspect-ratio:1.25; border-radius:6px; background:#2b5cff; box-shadow:inset 0 -3px 0 rgba(0,0,0,.18); transition:background .35s, opacity .45s, transform .45s cubic-bezier(.16,1,.3,1); }
.lic-seats i.gone { background:#ef4444; }
.lic-seats i.dup { background:#f5b53d; }
.lic-seats i.out { opacity:.08; transform:scale(.7); }
.lic-seats i.np { background:#00e68a; }
.lic-legend { display:flex; flex-wrap:wrap; gap:6px 14px; margin-top:14px; font-size:.72rem; color:var(--gray-300); }
.lic-legend span::before { content:''; display:inline-block; width:10px; height:10px; border-radius:3px; margin-right:6px; vertical-align:-1px; }
.lic-legend .k-paid::before { background:#2b5cff; } .lic-legend .k-gone::before { background:#ef4444; } .lic-legend .k-dup::before { background:#f5b53d; } .lic-legend .k-np::before { background:#00e68a; }
.lic-mission { display:grid; grid-template-columns:auto auto 1fr; align-items:baseline; gap:4px 10px; margin-top:18px; padding-top:16px; border-top:1px solid rgba(255,255,255,.08); color:var(--gray-300); font-size:.85rem; }
.lic-mission b { font-family:'Inter Tight', system-ui, sans-serif; font-weight:900; font-size:1.5rem; color:var(--green); font-variant-numeric:tabular-nums; }
.lic-mission em { font-style:normal; color:var(--gray-400); }
.lic-bar { grid-column:1 / -1; height:8px; border-radius:6px; background:rgba(255,255,255,.08); overflow:hidden; margin-top:6px; }
.lic-bar i { display:block; height:100%; width:42%; border-radius:6px; background:linear-gradient(90deg, var(--green), var(--cyan)); }
.lic-steps { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px; counter-reset:lic; }
.lic-steps li { position:relative; padding:14px 16px 14px 52px; border-radius:14px; border:1px solid rgba(255,255,255,.09); background:rgba(255,255,255,.03); transition:background .4s, border-color .4s, opacity .4s; }
.lic-steps li::before { counter-increment:lic; content:counter(lic); position:absolute; left:14px; top:14px; width:26px; height:26px; border-radius:50%; display:grid; place-items:center; font:800 .74rem/1 'Inter', sans-serif; background:rgba(255,255,255,.1); color:#fff; }
.lic-steps b { display:block; color:#fff; font-size:.95rem; }
.lic-steps span { display:block; color:var(--gray-300); font-size:.84rem; margin-top:2px; }
.fx-lic.is-js .lic-steps li { opacity:.35; }
.fx-lic.is-js .lic-steps li.on { opacity:1; background:rgba(0,230,138,.07); border-color:rgba(0,230,138,.35); }
.fx-lic.is-js .lic-steps li.on::before { background:var(--green); color:#04221a; }
.lic-after { max-width:760px; margin:34px auto 0; text-align:center; }
.fx-lic.is-js .lic-after { opacity:0; transform:translateY(12px); transition:opacity .6s, transform .6s cubic-bezier(.16,1,.3,1); }
.fx-lic.is-done .lic-after { opacity:1; transform:none; }
.lic-result { font-family:'Inter Tight', system-ui, sans-serif; font-weight:800; font-size:clamp(1.2rem, 2.4vw, 1.55rem); line-height:1.35; color:#fff; margin:0 0 20px; text-wrap:balance; }
.lic-result em { font-style:normal; color:var(--green); }
.lic-ctas { display:flex; flex-wrap:wrap; gap:12px; justify-content:center; }
.lic-note { font-size:.74rem; color:var(--gray-400); margin:18px 0 0; }
@media (max-width: 900px) {
  .lic-grid { grid-template-columns:minmax(0, 1fr); gap:18px; }
  .lic-seats { gap:4px; }
  .lic-cost b { font-size:1.6rem; }
}
