/* ============================================================
   Greatif Pitch Deck — deck.css
   Identity: "The signal". Neutral (Tailwind) + one accent #FF6A00.
   Geist + Geist Mono (mono sparse). No uppercase (sans). No middot.
   ============================================================ */

*{ margin:0; padding:0; box-sizing:border-box; }
:root{
  --acc:#FF6A00;
  --ease:cubic-bezier(0.16,1,0.3,1);
  --pop:cubic-bezier(0.34,1.56,0.64,1);
  --page:#0e0e0e;            /* deck backdrop behind slides */
}
html{ scroll-behavior:smooth; }
body{
  background:var(--page); color:#fafafa;
  font-family:"Geist",system-ui,-apple-system,sans-serif;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}

/* ---------------- deck layout (review / scroll view) ---------------- */
.deck{ display:flex; flex-direction:column; align-items:center; gap:22px; padding:74px 16px 120px; }
.slide{
  container-type:inline-size;
  width:min(1200px,94vw); aspect-ratio:16/9;
  border-radius:10px; overflow:hidden; position:relative;
  box-shadow:0 26px 70px -34px rgba(0,0,0,.9);
  border:1px solid rgba(255,255,255,.06);
}
.slide .pad{ position:absolute; inset:0; padding:5.2cqw 6cqw; display:flex; flex-direction:column; }

/* ---------------- neutral tokens per page ---------------- */
.d{ --bg:#0a0a0a; --ink:#fafafa; --mut:#a3a3a3; --hair:#262626; --card:#141414; } /* neutral 950/50/400/800 */
.l{ --bg:#fafafa; --ink:#0a0a0a; --mut:#737373; --hair:#e5e5e5; --card:#ffffff; } /* neutral 50/950/500/200 */
.slide.d{ background:var(--bg); color:var(--ink); }
.slide.l{ background:var(--bg); color:var(--ink); }
.acc{ color:var(--acc); }
.mut{ color:var(--mut); }

/* ---------------- chrome (top logo + index) ---------------- */
.top{ display:flex; align-items:center; justify-content:space-between; }
.wm-logo{ height:1.6cqw; width:auto; display:block; }
.idx{ font-family:"Geist Mono",monospace; font-size:1.15cqw; letter-spacing:.06em; color:var(--mut); }
.live{ font-family:"Geist Mono",monospace; font-size:1.15cqw; color:var(--mut); display:flex; align-items:center; gap:.7cqw; }
.dot{ width:.8cqw; height:.8cqw; border-radius:50%; background:var(--acc); box-shadow:0 0 0 .35cqw rgba(255,106,0,.16); }
.grow{ flex:1; display:flex; flex-direction:column; justify-content:center; min-height:0; }
.foot{ display:flex; align-items:flex-end; justify-content:space-between; }

/* ---------------- equalizer motif / chart grammar ---------------- */
.eq{ display:flex; align-items:flex-end; gap:.55cqw; height:5.5cqw; }
.eq i{ width:.85cqw; background:var(--acc); border-radius:1px; display:block; height:0; transition:height .7s var(--ease); }
.slide.in .eq i{ height:var(--h,50%); }

/* ---------------- reveal system ---------------- */
.reveal{ opacity:0; transform:translateY(16px); transition:opacity .6s var(--ease), transform .6s var(--ease); }
.slide.in .reveal{ opacity:1; transform:none; }

/* ---------------- typography primitives ---------------- */
.eyebrow{ font-family:"Geist Mono",monospace; font-size:1.15cqw; letter-spacing:.14em; color:var(--acc); margin-bottom:1.6cqw; }
.h{ font-weight:600; font-size:5.4cqw; line-height:1.02; letter-spacing:-.028em; }
.h.sm{ font-size:4.4cqw; }
.h.xl{ font-size:6.2cqw; letter-spacing:-.032em; }
.body{ font-size:1.9cqw; line-height:1.55; color:var(--mut); max-width:58%; margin-top:1.6cqw; }
.body b{ color:var(--ink); font-weight:500; }
.kicker{ font-size:1.7cqw; line-height:1.5; color:var(--mut); margin-top:1.4cqw; max-width:60%; }
.kicker b{ color:var(--ink); font-weight:500; }

/* ============================================================
   ARCHETYPES
   ============================================================ */

/* A1 cover / close */
.cover-logo{ height:12.5cqw; width:auto; display:block; align-self:flex-start; margin-left:-.3cqw; }
.tag{ font-weight:500; font-size:4cqw; line-height:1.08; letter-spacing:-.02em; margin-top:2.4cqw; }
.loc{ color:var(--mut); font-size:1.55cqw; margin-top:2.4cqw; }

/* A3 data — stat row + eq chart */
.stats{ display:flex; gap:5cqw; margin-top:auto; }
.stat{ display:flex; flex-direction:column; }
.stat .n{ font-weight:600; font-size:6.4cqw; letter-spacing:-.035em; line-height:1; display:flex; align-items:baseline; }
.stat .n .pre{ font-size:.62em; font-weight:600; margin-right:.05em; }
.stat .n u{ text-decoration:none; font-family:"Geist Mono",monospace; font-weight:400; font-size:.42em; margin-left:.06em; color:var(--acc); }
.stat .l{ color:var(--mut); font-size:1.35cqw; line-height:1.4; margin-top:.9cqw; max-width:17cqw; }
.stats.four{ gap:3.4cqw; }
.stats.four .stat .n{ font-size:5.2cqw; }
.stats.four .stat .l{ max-width:13cqw; }

/* A4 structure — cells / score grid / ledger / columns */
.cells{ display:grid; grid-template-columns:repeat(2,1fr); gap:1cqw; margin-top:auto; }
.cell{ border:1px solid var(--hair); border-radius:.8cqw; padding:1.9cqw 2cqw; background:var(--card); }
.cell .ck{ font-family:"Geist Mono",monospace; font-size:1.05cqw; color:var(--acc); }
.cell .ct{ font-weight:600; font-size:2.1cqw; margin-top:.7cqw; letter-spacing:-.01em; }
.cell .cd{ font-size:1.35cqw; line-height:1.45; color:var(--mut); margin-top:.7cqw; }

.scores{ display:grid; grid-template-columns:repeat(3,1fr); gap:.9cqw; margin-top:auto; }
.score{ border:1px solid var(--hair); border-radius:.7cqw; padding:1.5cqw 1.6cqw; background:var(--card); }
.score .k{ font-family:"Geist Mono",monospace; font-size:1.05cqw; color:var(--acc); }
.score .v{ font-weight:500; font-size:2cqw; margin-top:.5cqw; letter-spacing:-.01em; }
.score .d2{ font-size:1.2cqw; color:var(--mut); margin-top:.4cqw; line-height:1.4; }

.ledger{ margin-top:auto; }
.lrow{ display:flex; align-items:baseline; justify-content:space-between; padding:1.1cqw 0; border-bottom:1px solid var(--hair); }
.lrow:first-child{ border-top:1px solid var(--ink); }
.lrow .k{ font-weight:500; font-size:1.9cqw; letter-spacing:-.01em; }
.lrow .kn{ font-family:"Geist Mono",monospace; font-size:1.15cqw; color:var(--mut); }

.cols{ display:grid; gap:1cqw; margin-top:auto; }
.cols.two{ grid-template-columns:1fr 1fr; }
.cols.four{ grid-template-columns:repeat(4,1fr); }
.col{ border:1px solid var(--hair); border-radius:.8cqw; padding:1.8cqw; background:var(--card); }
.col .ch{ font-weight:600; font-size:1.8cqw; letter-spacing:-.01em; display:flex; align-items:center; gap:.7cqw; }
.col .ch .tagn{ font-family:"Geist Mono",monospace; font-size:1cqw; color:var(--acc); }
.col ul{ list-style:none; margin-top:1.1cqw; display:flex; flex-direction:column; gap:.55cqw; }
.col li{ font-size:1.3cqw; color:var(--mut); line-height:1.35; padding-left:1.2cqw; position:relative; }
.col li::before{ content:""; position:absolute; left:0; top:.55cqw; width:.4cqw; height:.4cqw; border-radius:50%; background:var(--acc); opacity:.7; }

/* A5 diagram — flow / nodes / spine */
.flow{ display:flex; align-items:stretch; gap:0; margin-top:auto; }
.step{ flex:1; border:1px solid var(--hair); border-radius:.7cqw; padding:1.5cqw 1.4cqw; background:var(--card); display:flex; flex-direction:column; }
.step .sn{ font-family:"Geist Mono",monospace; font-size:1cqw; color:var(--acc); }
.step .st{ font-weight:500; font-size:1.5cqw; margin-top:.7cqw; letter-spacing:-.01em; line-height:1.15; }
.conn{ align-self:center; width:2.4cqw; height:1px; background:var(--hair); position:relative; flex:0 0 auto; }
.conn::after{ content:""; position:absolute; right:0; top:50%; transform:translateY(-50%); border-left:.55cqw solid var(--hair); border-top:.4cqw solid transparent; border-bottom:.4cqw solid transparent; }

.spine{ margin-top:1.2cqw; border:1px dashed var(--hair); border-radius:.7cqw; padding:1.2cqw 1.8cqw; display:flex; align-items:center; gap:1cqw; }
.spine .spk{ font-family:"Geist Mono",monospace; font-size:1cqw; color:var(--acc); }
.spine .spt{ font-size:1.4cqw; color:var(--mut); }
.spine .spt b{ color:var(--ink); font-weight:500; }

.callout{ border:1px solid var(--acc); border-radius:.8cqw; padding:1.6cqw 1.8cqw; background:rgba(255,106,0,.06); }
.callout .cok{ font-family:"Geist Mono",monospace; font-size:1cqw; color:var(--acc); }
.callout .cot{ font-size:1.5cqw; line-height:1.4; margin-top:.6cqw; }
.callout .cot b{ font-weight:600; }

/* ecosystem grid (06) */
.eco{ display:grid; grid-template-columns:repeat(4,1fr); gap:1cqw; margin-top:auto; }
.eco .node{ border:1px solid var(--hair); border-radius:.8cqw; padding:1.7cqw; background:var(--card); }
.eco .node .nk{ font-family:"Geist Mono",monospace; font-size:1cqw; color:var(--acc); }
.eco .node .nt{ font-weight:600; font-size:1.75cqw; margin-top:.7cqw; letter-spacing:-.01em; }
.eco .node .nd{ font-size:1.25cqw; color:var(--mut); margin-top:.55cqw; line-height:1.4; }
.core{ margin-top:1.1cqw; border-radius:.8cqw; padding:1.5cqw 1.9cqw; background:var(--acc); color:#0a0a0a; display:flex; align-items:center; justify-content:space-between; }
.core .cek{ font-family:"Geist Mono",monospace; font-size:1.05cqw; font-weight:500; }
.core .cet{ font-weight:600; font-size:1.7cqw; letter-spacing:-.01em; }

/* marketplace (13) */
.market{ display:grid; grid-template-columns:1fr 1.1fr 1fr; gap:1.4cqw; align-items:center; margin-top:auto; }
.market .side{ border:1px solid var(--hair); border-radius:.8cqw; padding:1.8cqw; background:var(--card); }
.market .side .sh{ font-weight:600; font-size:1.8cqw; letter-spacing:-.01em; }
.market .side ul{ list-style:none; margin-top:1cqw; display:flex; flex-direction:column; gap:.5cqw; }
.market .side li{ font-size:1.25cqw; color:var(--mut); padding-left:1.1cqw; position:relative; line-height:1.35; }
.market .side li::before{ content:""; position:absolute; left:0; top:.5cqw; width:.38cqw; height:.38cqw; border-radius:50%; background:var(--acc); opacity:.7; }
.market .hub{ text-align:center; }
.market .hub .hublogo{ width:100%; max-width:16cqw; margin:0 auto; display:block; }
.market .hub .hubt{ font-size:1.3cqw; color:var(--mut); margin-top:1cqw; line-height:1.4; }
.market .flowline{ position:relative; }

/* timeline (17) */
.timeline{ margin-top:auto; }
.tline{ display:flex; align-items:center; gap:0; margin-bottom:1.6cqw; }
.tnode{ width:1.1cqw; height:1.1cqw; border-radius:50%; background:var(--acc); flex:0 0 auto; }
.tbar{ flex:1; height:1px; background:var(--hair); }
.tcols{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.4cqw; }
.tcol .tm{ font-family:"Geist Mono",monospace; font-size:1.2cqw; color:var(--acc); }
.tcol .tt{ font-weight:600; font-size:1.6cqw; margin-top:.4cqw; letter-spacing:-.01em; }
.tcol ul{ list-style:none; margin-top:.9cqw; display:flex; flex-direction:column; gap:.45cqw; }
.tcol li{ font-size:1.2cqw; color:var(--mut); line-height:1.35; }

/* allocation stacked bar (21) */
.alloc{ margin-top:auto; }
.abar{ display:flex; height:3.4cqw; border-radius:.5cqw; overflow:hidden; gap:.25cqw; }
.abar span{ display:block; height:100%; border-radius:.2cqw; }
.aleg{ display:grid; grid-template-columns:repeat(4,1fr); gap:.7cqw 2cqw; margin-top:1.8cqw; }
.aleg .ai{ display:flex; align-items:baseline; gap:.7cqw; font-size:1.3cqw; }
.aleg .ai .sw{ width:.9cqw; height:.9cqw; border-radius:.2cqw; flex:0 0 auto; align-self:center; }
.aleg .ai .ap{ font-family:"Geist Mono",monospace; font-weight:500; }
.aleg .ai .al{ color:var(--mut); }

/* competition (16) */
.compgrid{ display:grid; grid-template-columns:1.3fr 1fr; gap:1.4cqw; margin-top:auto; }
.compcol{ display:grid; grid-template-columns:1fr 1fr; gap:.7cqw; align-content:start; }
.crow{ border:1px solid var(--hair); border-radius:.6cqw; padding:1cqw 1.2cqw; background:var(--card); }
.crow .cn{ font-weight:500; font-size:1.45cqw; letter-spacing:-.01em; }
.crow .cl{ font-size:1.1cqw; color:var(--mut); margin-top:.3cqw; line-height:1.3; }
.greatcol{ border:1px solid var(--acc); border-radius:.8cqw; padding:1.8cqw; background:rgba(255,106,0,.06); }
.greatcol .gh{ font-weight:600; font-size:1.8cqw; letter-spacing:-.01em; display:flex; align-items:center; gap:.7cqw; }
.greatcol .gh .glogo{ height:1.5cqw; }
.greatcol ul{ list-style:none; margin-top:1cqw; columns:2; column-gap:1.4cqw; }
.greatcol li{ font-size:1.2cqw; color:var(--ink); line-height:1.5; padding-left:1.1cqw; position:relative; break-inside:avoid; }
.greatcol li::before{ content:""; position:absolute; left:0; top:.55cqw; width:.4cqw; height:.4cqw; border-radius:50%; background:var(--acc); }

/* vision (19) */
.horizon{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.2cqw; margin-top:auto; }
.hz{ border-top:2px solid var(--hair); padding-top:1.3cqw; }
.hz.now{ border-top-color:var(--acc); }
.hz .hk{ font-family:"Geist Mono",monospace; font-size:1.05cqw; color:var(--mut); }
.hz.now .hk{ color:var(--acc); }
.hz .ht{ font-weight:600; font-size:1.9cqw; margin-top:.7cqw; letter-spacing:-.01em; }
.hz .hd{ font-size:1.3cqw; color:var(--mut); margin-top:.6cqw; line-height:1.45; }

/* team (20) — photo-less, typographic */
.team{ display:grid; grid-template-columns:1fr 1fr; gap:3.2cqw; margin-top:auto; }
.member{ border-top:2px solid var(--hair); padding-top:1.8cqw; }
.member.lead{ border-top-color:var(--acc); }
.member .mnum{ font-family:"Geist Mono",monospace; font-size:1.1cqw; color:var(--mut); }
.member .mn{ font-weight:600; font-size:3cqw; letter-spacing:-.015em; margin-top:1cqw; }
.member .mr{ font-family:"Geist Mono",monospace; font-size:1.25cqw; color:var(--acc); margin-top:.7cqw; }
.member .md{ font-size:1.45cqw; color:var(--mut); margin-top:1.4cqw; line-height:1.55; }

/* ============================================================
   NAV (screen only) — present mode + print
   ============================================================ */
.deck-nav{ position:fixed; top:0; left:0; right:0; z-index:60; display:flex; align-items:center; gap:14px;
  padding:12px 20px; background:rgba(14,14,14,.72); backdrop-filter:blur(12px); border-bottom:1px solid #222; }
.deck-nav .brand{ font-family:"Geist Mono",monospace; font-size:11px; letter-spacing:.16em; color:#a3a3a3; }
.deck-nav .sp{ flex:1; }
.deck-nav button{ font-family:"Geist Mono",monospace; font-size:11px; letter-spacing:.04em; color:#fafafa;
  background:transparent; border:1px solid #333; border-radius:999px; padding:6px 12px; cursor:pointer; transition:.2s; }
.deck-nav button:hover{ background:#1c1c1c; border-color:#444; }
.deck-nav .count{ font-family:"Geist Mono",monospace; font-size:11px; color:#a3a3a3; min-width:52px; text-align:right; }

/* present mode: one slide fills viewport at 16:9 */
body.present{ overflow:hidden; }
body.present .deck{ padding:0; }
body.present .slide{ display:none; }
body.present .slide.active{
  display:block; position:fixed; top:50%; left:50%; transform:translate(-50%,-50%);
  width:min(100vw, calc(100vh * 16 / 9)); height:min(100vh, calc(100vw * 9 / 16));
  max-width:none; border-radius:0; border:none; box-shadow:none; z-index:40;
}
body.present .deck-nav{ opacity:0; transition:opacity .25s; }
body.present .deck-nav:hover{ opacity:1; }
body.present .hint{ display:none; }

/* grid overview */
body.grid .deck{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; padding:74px 24px 60px; max-width:1400px; margin:0 auto; }
body.grid .slide{ width:100%; cursor:pointer; transition:transform .2s var(--ease), border-color .2s; }
body.grid .slide:hover{ transform:translateY(-4px); border-color:var(--acc); }

.hint{ position:fixed; bottom:16px; left:50%; transform:translateX(-50%); z-index:60;
  font-family:"Geist Mono",monospace; font-size:11px; color:#6f6f6f; background:rgba(14,14,14,.7);
  border:1px solid #262626; border-radius:999px; padding:6px 14px; }

/* ---------------- reduced motion ---------------- */
@media (prefers-reduced-motion: reduce){
  .reveal, .eq i, .slide{ transition:none !important; }
  .reveal{ opacity:1 !important; transform:none !important; }
  .eq i{ height:var(--h,50%) !important; }
}

/* ============================================================
   PRINT / PDF — each slide one 1920x1080 page, final state
   ============================================================ */
@media print{
  @page{ size:1920px 1080px; margin:0; }
  html,body{ background:#fff; }
  .deck-nav, .hint{ display:none !important; }
  .deck{ display:block !important; padding:0 !important; margin:0 !important; gap:0 !important; }
  .slide{
    display:block !important; width:1920px !important; height:1080px !important; aspect-ratio:auto !important;
    max-width:none !important; margin:0 !important; border:none !important; border-radius:0 !important;
    box-shadow:none !important; break-after:page; page-break-after:always; overflow:hidden;
  }
  .slide:last-child{ break-after:auto; }
  .reveal{ opacity:1 !important; transform:none !important; }
  .eq i{ height:var(--h,50%) !important; }
  .callout, .greatcol, .hz.now, .core{ -webkit-print-color-adjust:exact; print-color-adjust:exact; }
}
