/* ACA X deck engine - shared styles for the webinar + all 8 session decks */
:root{
  /* THEME TOKENS. Defaults below are the exact ACA colors.
     A brand theme sets only --bg --fg --accent --risk --on-accent (plus fonts).
     Open any deck or module with ?theme=<name>: deck.js loads themes/_derive.css,
     which rebuilds every grey below from those five, then themes/<name>.css. */
  --bg:#000000; --fg:#ffffff; --accent:#d0f539; --risk:#ff6b3d;
  --on-accent:#000000;  /* text on an accent or light chip */
  /* Greys, lightest to darkest */
  --fg-2:#e9e9ee; --muted:#8a8a90; --subtle:#5a5a60; --dim:#3a3a3e;
  --line-2:#2c2c2e; --line:#242426; --faint:#1a1a1d; --surface:#0e0e10;
  --green-a:color-mix(in srgb,var(--accent) 14%,transparent);
  /* Extra exact shades used by single modules */
  --c-cfcfd4:#cfcfd4; --c-ffb79f:#ffb79f; --c-cfd6a8:#cfd6a8; --c-b9b9be:#b9b9be; --c-9a9aa0:#9a9aa0; --c-77777d:#77777d; --c-6a6a70:#6a6a70; --c-55555b:#55555b; --c-4a4a50:#4a4a50; --c-333333:#333333; --c-2f2f33:#2f2f33; --c-2c2c30:#2c2c30; --c-2a2a2e:#2a2a2e; --c-26262a:#26262a; --c-232327:#232327; --c-1f1f22:#1f1f22; --c-1d1d20:#1d1d20; --c-1c1c1f:#1c1c1f; --c-1b1b1e:#1b1b1e; --c-1a1e0c:#1a1e0c; --c-151517:#151517; --c-141416:#141416; --c-121214:#121214; --c-0c0c0d:#0c0c0d; --c-0b0b0c:#0b0b0c; --c-080809:#080809;
  /* Legacy names used across decks and modules */
  --ink:var(--bg); --white:var(--fg); --green:var(--accent); --warn:var(--risk);
  --h: 'Barlow', system-ui, 'Arial Narrow', sans-serif;
  --b: 'Inter', system-ui, sans-serif;
  --m: 'JetBrains Mono', ui-monospace, monospace;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{background:var(--ink);color:var(--white);font-family:var(--b);overflow:hidden}
.deck{position:fixed;inset:0}
.slide{position:absolute;inset:0;display:flex;align-items:center;padding:6vh 8vw;
  opacity:0;visibility:hidden;transform:translateY(14px);transition:opacity .5s ease, transform .5s ease}
.slide.active{opacity:1;visibility:visible;transform:none}
.slide.center{justify-content:center;text-align:center}
.wrap{width:100%;max-width:1180px}
.slide.center .wrap{max-width:1000px}
.kicker{font-family:var(--h);font-weight:700;font-size:14px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);margin-bottom:26px}
.kicker b{color:var(--green);font-weight:700}
h1.title{font-family:var(--h);font-weight:800;text-transform:uppercase;font-size:clamp(34px,5.6vw,84px);line-height:.98;letter-spacing:-.01em}
.title .g{color:var(--green)}
.sub{font-size:clamp(17px,2vw,24px);color:var(--muted);margin-top:22px;max-width:820px;line-height:1.35}
.slide.center .sub{margin-left:auto;margin-right:auto}
.body{margin-top:28px;font-size:clamp(16px,1.5vw,20px);line-height:1.5}
.rule{width:72px;height:8px;background:var(--green);border-radius:2px;margin:26px 0}
.slide.center .rule{margin-left:auto;margin-right:auto}
.num{font-family:var(--h);font-weight:900;color:var(--green);font-size:clamp(90px,20vw,260px);line-height:.85;letter-spacing:-.03em}
.num.small{font-size:clamp(70px,12vw,150px)}
.cap{font-size:clamp(16px,1.6vw,22px);color:var(--muted);margin-top:12px;max-width:780px;line-height:1.4}
.cap b{color:var(--fg)}
.src{font-size:12px;color:var(--muted);margin-top:18px;letter-spacing:.04em;text-transform:uppercase}
.src b{color:var(--fg-2)}
.blocks{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:8px}
.block{border:1px solid var(--line);border-left:4px solid var(--green);border-radius:12px;padding:20px 22px;background:linear-gradient(180deg,color-mix(in srgb,var(--green) 3%,transparent),transparent)}
.block .bl{font-family:var(--h);font-weight:800;text-transform:uppercase;color:var(--green);font-size:22px;letter-spacing:.02em}
.block p{color:var(--muted);margin-top:6px;font-size:16px}
.cards{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:6px}
.card{border:1px solid var(--line);border-radius:12px;padding:22px;background:var(--surface)}
.card.bad{opacity:.6}
.card.good{border-color:var(--green);box-shadow:0 0 0 1px color-mix(in srgb,var(--green) 25%,transparent)}
.card .tag{font-family:var(--h);font-weight:800;letter-spacing:.12em;text-transform:uppercase;font-size:13px;margin-bottom:10px}
.card.bad .tag{color:var(--muted)} .card.good .tag{color:var(--green)}
.card p{font-size:17px;line-height:1.45}
.rows{margin-top:6px;border-top:1px solid var(--line)}
.row{display:grid;grid-template-columns:1fr auto 1fr;gap:20px;align-items:center;padding:18px 0;border-bottom:1px solid var(--line);font-size:clamp(16px,1.7vw,21px)}
.row .a{color:var(--muted)} .row .arw{color:var(--green);font-family:var(--h);font-weight:800}
.row .b{font-weight:600} .row .b b{color:var(--green)}
.turn{display:inline-block;font-family:var(--h);font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);background:var(--green);padding:6px 12px;border-radius:6px;font-size:13px;margin-bottom:18px}
.mono{font-family:var(--m);font-size:clamp(15px,1.5vw,18px);line-height:1.6;background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--green);border-radius:10px;padding:20px 22px;color:var(--fg-2)}
.mono .c{color:var(--green)}
ol.steps2{margin:0 0 0 20px;font-size:clamp(16px,1.6vw,20px);line-height:1.7}
ol.steps2 li{margin:4px 0}
.ph{margin-top:8px;border:1.5px dashed color-mix(in srgb,var(--green) 50%,transparent);border-radius:12px;background:repeating-linear-gradient(45deg,color-mix(in srgb,var(--green) 3%,transparent),color-mix(in srgb,var(--green) 3%,transparent) 12px,transparent 12px,transparent 24px);min-height:34vh;display:flex;align-items:center;justify-content:center;text-align:center;padding:28px}
.ph .pl{max-width:640px}
.ph .pk{font-family:var(--h);font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--green);font-size:13px;margin-bottom:8px}
.ph .pt{color:var(--muted);font-size:16px;line-height:1.45}
.checklist,.recaplist{list-style:none;margin-top:6px;font-size:clamp(17px,1.8vw,23px);line-height:1.9}
.checklist li:before{content:"›";color:var(--green);font-family:var(--h);font-weight:800;margin-right:14px}
.recaplist li{display:flex;gap:18px;align-items:baseline;margin:6px 0}
.recaplist .n{font-family:var(--h);font-weight:900;color:var(--green);font-size:34px;line-height:1;min-width:42px}
.poll{list-style:none;margin-top:10px;font-size:clamp(18px,2vw,26px);line-height:2}
.poll .n{font-family:var(--h);font-weight:900;color:var(--green);margin-right:14px}
.arc{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:10px}
.arc .st{border:1px solid var(--line);border-radius:999px;padding:10px 16px;font-size:14px;color:var(--muted);white-space:nowrap}
.arc .st.final{border-color:var(--green);color:var(--green);font-weight:700}
.arc .ar{color:var(--green);font-weight:800}
.lifecycle{display:flex;flex-wrap:wrap;gap:12px;margin-top:14px;font-family:var(--h);font-weight:800;text-transform:uppercase;font-size:clamp(16px,2.2vw,30px)}
.lifecycle .n{color:var(--green)}
.aster{display:inline-block;width:56px;height:56px;color:var(--green)}
.bignum-wrap{display:flex;gap:36px;align-items:center;flex-wrap:wrap}
.twobars{display:flex;gap:26px;align-items:flex-end;height:34vh;margin-top:10px}
.bar{width:120px;background:var(--green);border-radius:6px 6px 0 0;display:flex;align-items:flex-start;justify-content:center;padding-top:10px;color:var(--ink);font-family:var(--h);font-weight:900;font-size:26px}
.bar.small{opacity:.45}
.barlabel{color:var(--muted);font-size:13px;text-align:center;margin-top:8px}
.cubebox{margin-top:20px;display:flex;justify-content:center;perspective:900px}
.slide.center .cubebox{margin-top:30px}
.cube{width:150px;height:150px;transform-style:preserve-3d;transform:rotateX(-24deg) rotateY(-32deg);position:relative}
.cube .f{position:absolute;width:150px;height:150px;border:2px solid var(--line-2);background:var(--c-0c0c0d)}
.cube .top{transform:rotateX(90deg) translateZ(75px)}
.cube .left{transform:rotateY(-90deg) translateZ(75px)}
.cube .front{transform:translateZ(75px)}
.cube.lit .f{border-color:var(--green);background:color-mix(in srgb,var(--green) 8%,transparent);box-shadow:0 0 26px color-mix(in srgb,var(--green) 55%,transparent),inset 0 0 30px color-mix(in srgb,var(--green) 25%,transparent)}
.cube.lit{animation:flick 2.6s ease-in-out infinite}
@keyframes flick{0%,100%{filter:brightness(1)}50%{filter:brightness(1.25)}}
.tbar{width:180px;height:14px;background:var(--green);border-radius:3px;margin-top:34px}
.logo{position:fixed;top:22px;left:26px;font-family:var(--h);font-weight:800;font-size:26px;letter-spacing:.02em;z-index:5;text-decoration:none;color:var(--fg)}
.by{position:fixed;top:26px;right:28px;font-family:var(--h);font-weight:700;font-size:14px;letter-spacing:.04em;color:var(--muted);z-index:5}
.shot{width:100%;max-height:54vh;object-fit:contain;border:1px solid var(--line);border-radius:12px;display:block;margin-top:8px;background:var(--surface)}
.shotcap{color:var(--muted);font-size:14px;margin-top:10px}
.logo sup{color:var(--green);font-size:.6em;margin-left:1px}
.progress{position:fixed;top:0;left:0;height:3px;background:var(--green);width:0;z-index:6;transition:width .4s ease}
.counter{position:fixed;bottom:18px;right:24px;font-family:var(--m);font-size:13px;color:var(--muted);z-index:6}
.counter b{color:var(--white)}
.hint{position:fixed;bottom:18px;left:26px;font-family:var(--m);font-size:12px;color:var(--line);z-index:6}
.nav{position:fixed;bottom:16px;left:50%;transform:translateX(-50%);display:flex;gap:8px;z-index:6}
.nav button{background:var(--surface);border:1px solid var(--line);color:var(--muted);width:38px;height:32px;border-radius:8px;cursor:pointer;font-size:16px}
.nav button:hover{border-color:var(--green);color:var(--green)}
.notes{position:fixed;left:0;right:0;bottom:0;background:color-mix(in srgb,var(--c-080809) 97%,transparent);border-top:2px solid var(--green);padding:18px 26px 22px;z-index:8;transform:translateY(110%);transition:transform .35s ease;max-height:42vh;overflow:auto}
.notes.on{transform:none}
.notes .nk{font-family:var(--h);font-weight:800;text-transform:uppercase;letter-spacing:.14em;color:var(--green);font-size:12px;margin-bottom:8px}
.notes .nt{font-size:17px;line-height:1.5;color:var(--fg-2);max-width:1000px}
.notes .vis{margin-top:12px;font-size:13px;color:var(--muted)}
.notes .vis b{color:var(--green);text-transform:uppercase;letter-spacing:.08em}
@media (max-width:640px){.blocks,.cards{grid-template-columns:1fr}.logo{font-size:20px}}

/* PDF export: one slide per page. Screen view is untouched. */
@media print{
  @page{size:1280px 720px;margin:0}
  html,body{background:var(--bg)!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .logo,.progress,.nav,.counter,.hint,.notes,.by{display:none!important}
  .deck{position:static!important}
  .slide{position:relative!important;inset:auto!important;opacity:1!important;visibility:visible!important;transform:none!important;width:1280px!important;height:720px!important;box-sizing:border-box;overflow:hidden;break-after:page;page-break-after:always;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .slide:last-child{break-after:auto;page-break-after:avoid}
}
