:root{
    --ink:#0c0b09;--paper:#f5f3ee;--paper-alt:#edeae2;
    --line:rgba(12,11,9,0.15);--line-soft:rgba(12,11,9,0.07);
    --muted:rgba(12,11,9,0.54);--block:#d7d2c8;--block-ink:rgba(12,11,9,0.4);--heat:#d83c18;
    --display:"Sora",sans-serif;--body:"Archivo",sans-serif;--mono:"JetBrains Mono",ui-monospace,monospace;
    --gut:clamp(1.5rem,4vw,4.5rem);
  }
  *{margin:0;padding:0;box-sizing:border-box}
  html{scroll-behavior:smooth}
  body{background:var(--paper);color:var(--ink);font-family:var(--body);-webkit-font-smoothing:antialiased;overflow-x:hidden}
  .display{font-family:var(--display);font-weight:700;line-height:0.98;letter-spacing:-0.02em}
  .kicker{font-family:var(--mono);font-weight:500;font-size:0.72rem;letter-spacing:0.22em;text-transform:uppercase;color:var(--muted)}
  .heat{color:var(--heat)}
  h1,h2,h3{font-family:var(--display);letter-spacing:-0.02em}
  p{line-height:1.55}

  /* fixed chrome */
  nav{position:fixed;top:0;left:0;right:0;z-index:60;display:flex;justify-content:space-between;align-items:center;padding:0.9rem var(--gut);background:rgba(245,243,238,0.78);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line-soft)}
  nav .brand{font-family:var(--display);font-weight:800;font-size:1rem;letter-spacing:-0.01em}
  nav .meta{font-family:var(--mono);font-size:0.66rem;letter-spacing:0.14em;text-transform:uppercase;color:var(--muted)}
  nav .navmenu{display:flex;gap:clamp(1rem,2.2vw,2.4rem);align-items:center}
  nav .navmenu a{font-family:var(--mono);font-size:0.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);text-decoration:none;padding:.2rem 0;border-bottom:1.5px solid transparent;transition:color .2s ease,border-color .2s ease;cursor:pointer;white-space:nowrap}
  nav .navmenu a:hover{color:var(--ink)}
  nav .navmenu a.active{color:var(--heat);border-bottom-color:var(--heat)}
  @media(max-width:680px){nav{padding:0.7rem var(--gut)}nav .navmenu{gap:.85rem}nav .navmenu a{font-size:0.56rem;letter-spacing:.06em}}
  .prog{position:fixed;top:0;left:0;height:3px;background:var(--heat);z-index:61;width:0;transition:width .25s ease}
  .counter{position:fixed;bottom:1.1rem;right:var(--gut);z-index:60;font-family:var(--mono);font-size:0.7rem;letter-spacing:.12em;color:var(--muted)}
  .hint{position:fixed;bottom:1.1rem;left:var(--gut);z-index:60;font-family:var(--mono);font-size:0.62rem;letter-spacing:.12em;color:var(--muted);text-transform:uppercase}

  /* deck */
  .deck{height:100vh;overflow-y:scroll;scroll-snap-type:y mandatory;scroll-behavior:smooth}
  .slide{min-height:100vh;scroll-snap-align:start;display:flex;align-items:center;padding:5rem var(--gut) 4rem;position:relative}
  .stage{width:100%;max-width:1380px;margin:0 auto}
  .ix{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:1.6rem;border-bottom:1px solid var(--line);padding-bottom:.9rem}
  .ix .num{font-family:var(--mono);font-size:0.74rem;letter-spacing:.16em;color:var(--heat);text-transform:uppercase}
  .ix .tag{font-family:var(--mono);font-size:0.66rem;letter-spacing:.14em;color:var(--muted);text-transform:uppercase}
  h2.head{font-size:clamp(1.9rem,4.4vw,3.7rem);max-width:20ch;margin-bottom:1.2rem}
  .lede{font-size:clamp(1.05rem,1.5vw,1.4rem);color:var(--ink);max-width:60ch;margin-bottom:2rem}

  .split{display:grid;grid-template-columns:1.02fr 0.98fr;gap:clamp(2rem,5vw,4.5rem);align-items:center}
  .split.text-r{grid-template-columns:0.98fr 1.02fr}

  /* image placeholder */
  .imgblock{position:relative;width:100%;overflow:hidden;border:1px solid var(--line);background:var(--block);background-image:repeating-linear-gradient(135deg,rgba(12,11,9,0.05) 0 2px,transparent 2px 26px);display:flex;align-items:center;justify-content:center;text-align:center}
  .imgblock .lbl{display:flex;flex-direction:column;gap:.5rem;padding:1.4rem}
  .imgblock .lbl .t{font-family:var(--mono);font-size:0.58rem;letter-spacing:.28em;text-transform:uppercase;font-weight:500;color:var(--heat)}
  .imgblock .lbl .n{font-family:var(--display);font-weight:700;font-size:clamp(1rem,1.4vw,1.4rem);color:rgba(12,11,9,0.6);max-width:26ch}
  .fig{height:clamp(280px,52vh,560px)}
  .fig.sm{height:clamp(220px,34vh,340px)}
  .grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}
  .grid2{display:grid;grid-template-columns:repeat(2,1fr);gap:1.2rem}

  /* feature glass */
  .feature{position:relative;width:100%;height:clamp(360px,64vh,640px);overflow:hidden;border:1px solid var(--line);background:var(--block);background-image:repeating-linear-gradient(135deg,rgba(12,11,9,0.05) 0 2px,transparent 2px 26px)}
  .feature .glass{position:absolute;top:0;bottom:0;left:0;width:44%;background:rgba(245,243,238,0.55);backdrop-filter:blur(18px) saturate(1.1);-webkit-backdrop-filter:blur(18px) saturate(1.1);border-right:1px solid rgba(245,243,238,0.5);display:flex;flex-direction:column;justify-content:flex-end;padding:clamp(1.6rem,3.5vw,3rem)}
  .feature .glass h2{font-size:clamp(1.7rem,3.4vw,3rem);max-width:14ch;margin-bottom:.8rem}
  .feature .ph{position:absolute;right:1.4rem;bottom:1.4rem;font-family:var(--mono);font-size:0.58rem;letter-spacing:.24em;text-transform:uppercase;color:rgba(12,11,9,0.5)}

  /* cards / cols */
  .mcard{border:1px solid var(--line);padding:clamp(1.4rem,2.6vw,2.2rem);background:var(--paper)}
  .mcard .tag{font-family:var(--mono);font-size:0.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--heat)}
  .mcard h3{font-size:clamp(1.3rem,2.4vw,1.9rem);margin:.5rem 0 .7rem}
  .mcard p{color:var(--muted)}
  .mcard .ord{font-family:var(--mono);font-size:0.62rem;color:var(--muted);letter-spacing:.14em;display:block;margin-top:1rem}

  .pts{list-style:none;display:flex;flex-direction:column;gap:1.1rem;max-width:46ch}
  .pts li{display:grid;grid-template-columns:auto 1fr;gap:.9rem;align-items:start;font-size:1.02rem;line-height:1.5}
  .pts li .b{width:8px;height:8px;margin-top:.5rem;background:var(--heat);flex:none}
  .pts li b{font-weight:600}

  /* stat / metric row */
  .statrow{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-top:1.6rem}
  .stat{background:var(--paper);padding:1.5rem 1.3rem}
  .stat .mw{font-family:var(--display);font-weight:800;font-size:clamp(1.8rem,3.4vw,2.9rem);line-height:.9}
  .stat .u{font-family:var(--mono);font-size:0.66rem;color:var(--muted);letter-spacing:.08em;margin-top:.4rem}
  .stat .nm{font-size:0.88rem;font-weight:600;margin-top:.6rem}

  /* phase / gate bar */
  .phasebar{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-top:1.6rem}
  .ph{background:var(--paper);padding:1.4rem 1.2rem}
  .ph .pn{font-family:var(--mono);font-size:0.64rem;letter-spacing:.14em;color:var(--heat)}
  .ph .pt{font-family:var(--display);font-weight:600;font-size:1.05rem;margin:.5rem 0 .4rem}
  .ph .pd{font-size:0.85rem;color:var(--muted)}

  /* cover + part dividers */
  .cover .stage{max-width:1380px}
  .cover .brandbig{font-family:var(--display);font-weight:800;font-size:1.1rem;letter-spacing:.02em}
  .cover h1{font-size:clamp(2.6rem,8vw,6.6rem);margin:.6rem 0 .2rem}
  .cover .site{font-family:var(--display);font-weight:700;font-size:clamp(1.4rem,3.4vw,2.6rem);color:var(--heat);margin-bottom:1.4rem}
  .cover .sub{font-size:clamp(1.05rem,1.6vw,1.45rem);max-width:54ch;color:var(--ink);margin-bottom:2rem}
  .cover .meta{font-family:var(--mono);font-size:0.78rem;letter-spacing:.08em;color:var(--ink);display:flex;flex-wrap:wrap;gap:1.6rem;margin-top:1.4rem}
  .cover .meta b{color:var(--heat);font-weight:500}
  .draft{font-family:var(--mono);font-size:0.64rem;letter-spacing:.14em;color:var(--muted);text-transform:uppercase;margin-top:2.2rem}

  .part{background:var(--ink);color:var(--paper)}
  .part .pk{font-family:var(--mono);font-size:0.8rem;letter-spacing:.26em;text-transform:uppercase;color:var(--heat)}
  .part h1{font-size:clamp(3rem,11vw,9rem);line-height:.9;margin:.8rem 0 1.2rem}
  .part .sub{font-size:clamp(1.1rem,1.8vw,1.6rem);color:rgba(245,243,238,0.7);max-width:46ch}

  /* close */
  .close{background:var(--ink);color:var(--paper)}
  .close .cta{font-family:var(--display);font-weight:800;font-size:clamp(3rem,12vw,9rem);line-height:.86;letter-spacing:-0.04em;margin-top:1.6rem}
  .close .frow{display:flex;justify-content:space-between;flex-wrap:wrap;gap:2rem;margin-top:clamp(2rem,5vh,4rem);border-top:1px solid rgba(245,243,238,0.16);padding-top:1.6rem;font-family:var(--mono);font-size:0.74rem;color:rgba(245,243,238,0.6);letter-spacing:.06em}
  .asks{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem;margin-top:1rem}
  .ask{border:1px solid rgba(245,243,238,0.2);padding:1.4rem}
  .ask .who{font-family:var(--mono);font-size:0.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--heat);margin-bottom:.6rem}
  .ask p{color:rgba(245,243,238,0.82);font-size:0.96rem}

  .note{font-family:var(--mono);font-size:0.72rem;color:var(--muted);letter-spacing:.02em;margin-top:1.4rem;max-width:70ch}
  .part .note,.close .note{color:rgba(245,243,238,0.55)}

  /* metrics opening table */
  .metricsplit{display:grid;grid-template-columns:1fr 1fr;gap:0 clamp(2rem,5vw,4.5rem)}
  .mrow{display:flex;justify-content:space-between;align-items:baseline;gap:1.2rem;padding:.5rem 0;border-bottom:1px solid var(--line-soft)}
  .mrow .mk{font-size:clamp(.78rem,0.95vw,.95rem);color:var(--ink);line-height:1.25}
  .mrow .mvf{font-family:var(--mono);font-size:clamp(.72rem,0.9vw,.86rem);color:var(--heat);font-weight:500;text-align:right;line-height:1.25;flex:none;max-width:52%}

  /* reveal */
  .rv{opacity:0;transform:translateY(22px);transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1)}
  .rv.in{opacity:1;transform:none}
  .rv.d1{transition-delay:.06s}.rv.d2{transition-delay:.13s}.rv.d3{transition-delay:.2s}.rv.d4{transition-delay:.27s}

  @media(max-width:900px){
    .split,.split.text-r,.split.diagrams{grid-template-columns:1fr;gap:1.6rem}
    .grid3{grid-template-columns:1fr}.grid2{grid-template-columns:1fr}
    .statrow,.phasebar{grid-template-columns:1fr 1fr}
    .asks{grid-template-columns:1fr}
    .metricsplit{grid-template-columns:1fr}
    .feature .glass{width:100%;background:rgba(245,243,238,0.42)}
    .slide{padding:4.5rem var(--gut) 3.5rem}
  }
  .imgblock img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;z-index:1}
  .feature .featbg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
  .feature .glass{z-index:2}
  .imgblock.tech{background:#fff;background-image:none}
  .imgblock.tech img{object-fit:contain;background:#fff}
  .fig.tall{height:clamp(240px,34vh,380px)}
  .fig.wide{height:clamp(300px,46vh,540px)}
  .fig.med{height:clamp(260px,40vh,440px)}
  .tcell{margin:0;display:flex;flex-direction:column;gap:.55rem}
  .tcell figcaption{font-family:var(--mono);font-size:0.55rem;letter-spacing:.22em;text-transform:uppercase;color:var(--muted)}

  /* diagram slides: text left, images stacked right at natural shape */
  .split.diagrams{grid-template-columns:0.9fr 1.1fr;align-items:start}
  .stackimgs{display:flex;flex-direction:column;gap:1.6rem}
  .imgblock.natural{height:auto}
  .imgblock.natural img{position:static;inset:auto;width:100%;height:auto;object-fit:contain}

  /* part dividers with a background photo and a left frosted glass panel */
  .part.haspic{position:relative;overflow:hidden;color:var(--ink);background:var(--ink)}
  .part.haspic .partbg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
  .part.haspic .partglass{position:absolute;top:0;bottom:0;left:0;width:54%;z-index:2;display:flex;align-items:center;background:rgba(245,243,238,0.62);backdrop-filter:blur(20px) saturate(1.12);-webkit-backdrop-filter:blur(20px) saturate(1.12);border-right:1px solid rgba(245,243,238,0.5)}
  .part.haspic .partglass .stage{margin:0;max-width:none;padding:0 clamp(1.6rem,4vw,4.5rem)}
  .part.haspic h1{font-size:clamp(2.4rem,6vw,5rem)}
  .part.haspic .sub{color:rgba(12,11,9,0.66)}
  .part.haspic .note{color:rgba(12,11,9,0.55)}
  @media(max-width:900px){.part.haspic .partglass{width:100%;background:rgba(245,243,238,0.72)}}
