:root{
  --bg:#050A18; --bg2:#0B1330; --panel:rgba(18,28,58,.55); --line:rgba(232,200,122,.22);
  --ink:#F2F6FF; --ink2:#BCC8E6; --muted:#8794B8; --gold:#E8C87A; --cyan:#22D3EE;
  --serif:Georgia,"Times New Roman",serif; --sans:"Segoe UI",system-ui,-apple-system,Helvetica,Arial,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{
  background:var(--bg); color:var(--ink); font-family:var(--sans);
  overflow:hidden; -webkit-font-smoothing:antialiased;
}
/* ---------- animated mesh backdrop ---------- */
.mesh{position:fixed;inset:0;overflow:hidden;z-index:0}
.orb{position:absolute;border-radius:50%;filter:blur(90px);opacity:.55;animation:drift 22s ease-in-out infinite}
.o1{width:60vw;height:60vw;left:-18vw;top:-22vw;background:radial-gradient(circle,#2B3CA8,transparent 68%)}
.o2{width:52vw;height:52vw;right:-16vw;top:8vh;background:radial-gradient(circle,#0E7C8C,transparent 66%);animation-delay:-7s}
.o3{width:48vw;height:48vw;left:26vw;bottom:-26vw;background:radial-gradient(circle,#6B4E9E,transparent 68%);animation-delay:-14s}
@keyframes drift{0%,100%{transform:translate3d(0,0,0) scale(1)}50%{transform:translate3d(3vw,-3vh,0) scale(1.12)}}
.grid{position:absolute;inset:-10%;
  background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);
  background-size:74px 74px;mask-image:radial-gradient(circle at 50% 45%,#000 20%,transparent 78%);
  animation:pan 40s linear infinite}
@keyframes pan{to{transform:translate3d(74px,74px,0)}}
.grain{position:absolute;inset:0;opacity:.16;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='.5'/%3E%3C/svg%3E")}
/* ---------- chrome ---------- */
.topbar{position:fixed;top:0;left:0;right:0;z-index:6;display:flex;justify-content:space-between;align-items:center;
  padding:22px clamp(20px,4vw,54px);font-size:11px;letter-spacing:.22em;color:var(--muted)}
.brand{display:flex;align-items:center;gap:10px}
.mark{width:9px;height:9px;border-radius:50%;background:var(--gold);box-shadow:0 0 18px var(--gold);animation:pulse 2.6s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:.45;transform:scale(.85)}50%{opacity:1;transform:scale(1.15)}}
.progress{position:fixed;top:0;left:0;right:0;height:2px;background:rgba(255,255,255,.06);z-index:7}
.progress i{display:block;height:100%;width:6.25%;background:linear-gradient(90deg,var(--cyan),var(--gold));
  transition:width .55s cubic-bezier(.22,1,.36,1)}
/* ---------- slide shell ---------- */
#deck{position:relative;z-index:2;height:100vh}
.slide{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;
  padding:clamp(64px,9vh,110px) clamp(24px,7vw,120px);opacity:0;visibility:hidden;
  transition:opacity .55s ease,visibility .55s ease}
.slide.active{opacity:1;visibility:visible}
.slide[data-trans="slide"].active{animation:slideIn .7s cubic-bezier(.22,1,.36,1)}
.slide[data-trans="zoom"].active{animation:zoomIn .75s cubic-bezier(.22,1,.36,1)}
.slide[data-trans="slide"]{transform:translateY(3vh)}
.slide[data-trans="slide"].active{transform:none}
@keyframes slideIn{from{transform:translateY(28px) scale(.985);filter:blur(6px)}to{transform:none;filter:none}}
@keyframes zoomIn{from{transform:scale(.93);filter:blur(10px)}to{transform:scale(1);filter:none}}
/* ---------- staged reveal ---------- */
.slide .kicker,.slide h1,.slide h2,.slide .lead,.slide .chips,.slide .source,.slide .stamp,
.slide .stat,.slide .layer,.slide .cell,.slide .col,.slide tbody tr,.slide .rail li,
.slide blockquote,.slide cite,.slide .commit li,.slide .chapno,.slide .big{
  opacity:0;transform:translateY(24px)}
.slide.active .kicker,.slide.active h1,.slide.active h2,.slide.active .lead,.slide.active .chips,
.slide.active .source,.slide.active .stamp,.slide.active .stat,.slide.active .layer,
.slide.active .cell,.slide.active .col,.slide.active tbody tr,.slide.active .rail li,
.slide.active blockquote,.slide.active cite,.slide.active .commit li,.slide.active .chapno,.slide.active .big{
  animation:rise .8s cubic-bezier(.22,1,.36,1) forwards}
@keyframes rise{to{opacity:1;transform:none}}
.slide.active .kicker{animation-delay:.05s}
.slide.active h1{animation-delay:.18s}
.slide.active h2{animation-delay:.15s}
.slide.active .lead{animation-delay:.32s}
.slide.active .chips{animation-delay:.46s}
.slide.active .source{animation-delay:.9s}
.slide.active .chapno{animation-delay:.1s}
.slide.active .big{animation-delay:.22s}
.slide.active .stat:nth-child(1){animation-delay:.28s}
.slide.active .stat:nth-child(2){animation-delay:.4s}
.slide.active .stat:nth-child(3){animation-delay:.52s}
.slide.active .stat:nth-child(4){animation-delay:.64s}
.slide.active .layer:nth-child(1){animation-delay:.26s}
.slide.active .layer:nth-child(2){animation-delay:.38s}
.slide.active .layer:nth-child(3){animation-delay:.5s}
.slide.active .layer:nth-child(4){animation-delay:.62s}
.slide.active .cell:nth-child(1){animation-delay:.26s}
.slide.active .cell:nth-child(2){animation-delay:.38s}
.slide.active .cell:nth-child(3){animation-delay:.5s}
.slide.active .cell:nth-child(4){animation-delay:.62s}
.slide.active .cell:nth-child(5){animation-delay:.74s}
.slide.active .col:nth-child(1){animation-delay:.3s}
.slide.active .col:nth-child(2){animation-delay:.46s}
.slide.active .rail li:nth-child(1){animation-delay:.24s}
.slide.active .rail li:nth-child(2){animation-delay:.36s}
.slide.active .rail li:nth-child(3){animation-delay:.48s}
.slide.active .rail li:nth-child(4){animation-delay:.6s}
.slide.active .rail li:nth-child(5){animation-delay:.72s}
.slide.active .commit li:nth-child(1){animation-delay:.3s}
.slide.active .commit li:nth-child(2){animation-delay:.46s}
.slide.active .commit li:nth-child(3){animation-delay:.62s}
.slide.active blockquote{animation-delay:.12s}
.slide.active cite{animation-delay:.6s}
.slide.active tbody tr:nth-child(1){animation-delay:.3s}
.slide.active tbody tr:nth-child(2){animation-delay:.38s}
.slide.active tbody tr:nth-child(3){animation-delay:.46s}
.slide.active tbody tr:nth-child(4){animation-delay:.54s}
.slide.active tbody tr:nth-child(5){animation-delay:.62s}
/* ---------- type ---------- */
.kicker{font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);margin-bottom:18px}
h1{font-family:var(--serif);font-size:clamp(44px,7.6vw,104px);line-height:.98;font-weight:400;letter-spacing:-.02em}
h1 .amp{display:block;font-size:.42em;color:var(--gold);margin:10px 0 6px;letter-spacing:.1em}
h2{font-family:var(--serif);font-size:clamp(28px,3.9vw,54px);font-weight:400;line-height:1.1;letter-spacing:-.01em}
h3{font-size:15px;font-weight:600;letter-spacing:.02em;color:var(--gold);margin-bottom:8px}
.lead{margin-top:22px;font-size:clamp(15px,1.45vw,20px);color:var(--ink2);max-width:62ch;line-height:1.65}
.lead.narrow{max-width:52ch}
.source{margin-top:26px;font-size:11.5px;letter-spacing:.06em;color:var(--muted)}
.chips{display:flex;gap:10px;flex-wrap:wrap;margin-top:34px}
.chips span{padding:9px 18px;border:1px solid var(--line);border-radius:999px;font-size:11.5px;
  letter-spacing:.16em;text-transform:uppercase;color:var(--ink2);background:rgba(255,255,255,.03)}
.stamp{position:absolute;right:clamp(24px,7vw,120px);bottom:clamp(74px,12vh,120px);
  font-family:var(--serif);font-size:clamp(40px,6vw,84px);color:transparent;
  -webkit-text-stroke:1px rgba(232,200,122,.4);letter-spacing:.06em}
/* ---------- chapter divider ---------- */
.chapter{background:linear-gradient(120deg,rgba(11,19,48,.9),rgba(5,10,24,.6));align-items:flex-start}
.chapno{font-size:11px;letter-spacing:.42em;text-transform:uppercase;color:var(--gold);margin-bottom:16px}
.chapter .big{font-family:var(--serif);font-size:clamp(46px,8vw,120px);line-height:.95;font-weight:400}
.chapter::after{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;
  background:linear-gradient(180deg,transparent,var(--gold),transparent);opacity:.7}
/* ---------- stats ---------- */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(12px,1.4vw,22px);margin-top:clamp(34px,5vh,60px)}
.stats.three{grid-template-columns:repeat(3,1fr)}
.stat{padding:clamp(18px,2vw,30px);border:1px solid rgba(255,255,255,.08);border-radius:18px;
  background:linear-gradient(160deg,rgba(34,211,238,.07),rgba(255,255,255,.02));
  backdrop-filter:blur(12px);transition:transform .35s ease,border-color .35s ease,box-shadow .35s ease}
.stat:hover{transform:translateY(-6px);border-color:var(--line);box-shadow:0 24px 50px -20px rgba(0,0,0,.8)}
.stat b{display:block;font-family:var(--serif);font-size:clamp(30px,3.6vw,52px);font-weight:400;
  color:var(--cyan);letter-spacing:-.02em}
.stat span{display:block;margin-top:10px;font-size:12.5px;line-height:1.55;color:var(--ink2);max-width:24ch}
/* ---------- layers ---------- */
.layers{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(12px,1.4vw,20px);margin-top:clamp(30px,4vh,50px)}
.layer{position:relative;padding:clamp(18px,2vw,28px);border-radius:16px;border:1px solid rgba(255,255,255,.07);
  background:rgba(255,255,255,.025);transition:transform .35s ease,background .35s ease,border-color .35s ease}
.layer:hover{transform:translateY(-6px);background:rgba(34,211,238,.06);border-color:rgba(34,211,238,.3)}
.layer .idx{display:block;font-family:var(--serif);font-size:13px;color:var(--muted);letter-spacing:.2em;margin-bottom:26px}
.layer p{font-size:12.5px;line-height:1.6;color:var(--ink2)}
/* ---------- bento ---------- */
.bento{display:grid;grid-template-columns:1.25fr 1fr 1fr;grid-template-rows:auto auto;gap:clamp(12px,1.3vw,20px);margin-top:clamp(28px,4vh,48px)}
.cell{padding:clamp(18px,2vw,30px);border-radius:18px;border:1px solid rgba(255,255,255,.08);
  background:linear-gradient(150deg,rgba(255,255,255,.05),rgba(255,255,255,.015));
  backdrop-filter:blur(10px);transition:transform .35s ease,border-color .35s ease}
.cell:hover{transform:translateY(-5px);border-color:var(--line)}
.cell.hero{grid-row:span 2;background:linear-gradient(160deg,rgba(232,200,122,.12),rgba(255,255,255,.02))}
.cell.hero h3{font-size:22px}
.cell.wide{grid-column:span 2;background:rgba(34,211,238,.05)}
.cell p{font-size:13px;line-height:1.65;color:var(--ink2)}
/* ---------- two column ---------- */
.cols{display:grid;grid-template-columns:1fr 1fr;gap:clamp(18px,2.4vw,44px);margin-top:clamp(28px,4vh,46px)}
.col{padding:clamp(20px,2.2vw,32px);border-radius:18px;border:1px solid rgba(255,255,255,.08);
  background:rgba(255,255,255,.028);backdrop-filter:blur(10px)}
.col.alt{border-color:rgba(232,200,122,.2);background:linear-gradient(160deg,rgba(232,200,122,.08),rgba(255,255,255,.02))}
.col h4{font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--gold);margin-bottom:18px}
.col ul{list-style:none;display:grid;gap:14px}
.col li{font-size:13.5px;line-height:1.6;color:var(--ink2);padding-left:16px;position:relative}
.col li::before{content:"";position:absolute;left:0;top:9px;width:5px;height:5px;border-radius:50%;background:var(--cyan)}
.col li b{color:var(--ink);font-weight:600}
/* ---------- rail / timeline ---------- */
.rail{list-style:none;display:grid;grid-template-columns:repeat(5,1fr);gap:clamp(10px,1.2vw,18px);
  margin-top:clamp(28px,4.5vh,54px);position:relative}
.rail::before{content:"";position:absolute;top:12px;left:0;right:0;height:1px;
  background:linear-gradient(90deg,transparent,var(--line),var(--line),transparent)}
.rail li{position:relative;padding-top:36px}
.rail li::before{content:"";position:absolute;top:6px;left:0;width:13px;height:13px;border-radius:50%;
  background:var(--bg);border:1px solid var(--gold);box-shadow:0 0 0 4px rgba(232,200,122,.08)}
.rail .yr{display:block;font-family:var(--serif);font-size:12px;letter-spacing:.16em;color:var(--gold);margin-bottom:10px}
.rail h3{font-size:15px;color:var(--ink)}
.rail p{font-size:12.5px;line-height:1.55;color:var(--muted)}
/* ---------- table ---------- */
.tbl{width:100%;border-collapse:collapse;margin-top:clamp(26px,4vh,44px);font-size:13px}
.tbl th{text-align:left;padding:12px 14px;font-size:10.5px;letter-spacing:.24em;text-transform:uppercase;
  color:var(--gold);border-bottom:1px solid var(--line);font-weight:500}
.tbl td{padding:14px;border-bottom:1px solid rgba(255,255,255,.06);color:var(--ink2)}
.tbl td:nth-child(2){font-family:var(--serif);font-size:16px;color:var(--cyan);white-space:nowrap}
.tbl tbody tr{transition:background .3s ease}
.tbl tbody tr:hover{background:rgba(255,255,255,.04)}
/* ---------- quote ---------- */
.quote{align-items:center;text-align:center}
.quote blockquote{font-family:var(--serif);font-size:clamp(24px,3.6vw,50px);line-height:1.28;
  max-width:24ch;letter-spacing:-.01em;background:linear-gradient(120deg,#FFF,var(--gold));
  -webkit-background-clip:text;background-clip:text;color:transparent}
.quote cite{display:block;margin-top:34px;font-style:normal;font-size:11.5px;
  letter-spacing:.26em;text-transform:uppercase;color:var(--muted)}
.quote::before{content:"”";position:absolute;top:16vh;font-family:var(--serif);font-size:clamp(120px,18vw,240px);
  color:rgba(232,200,122,.08);line-height:1}
/* ---------- closing ---------- */
.closing{background:radial-gradient(circle at 20% 20%,rgba(34,211,238,.08),transparent 55%)}
.commit{list-style:none;display:grid;gap:clamp(14px,2vh,22px);margin-top:clamp(30px,4.5vh,52px)}
.commit li{display:flex;gap:clamp(14px,2vw,26px);align-items:baseline;font-size:clamp(14px,1.5vw,19px);
  color:var(--ink2);border-bottom:1px solid rgba(255,255,255,.06);padding-bottom:clamp(12px,1.6vh,18px)}
.commit span{font-family:var(--serif);font-size:12px;letter-spacing:.2em;color:var(--gold);min-width:34px}
/* ---------- nav ---------- */
.nav{position:fixed;bottom:clamp(18px,3vh,30px);left:50%;transform:translateX(-50%);z-index:8;
  display:flex;align-items:center;gap:16px;padding:8px 12px;border-radius:999px;
  border:1px solid rgba(255,255,255,.08);background:rgba(5,10,24,.65);backdrop-filter:blur(14px)}
.nav button{width:34px;height:34px;border-radius:50%;border:1px solid rgba(255,255,255,.1);
  background:transparent;color:var(--ink);font-size:15px;cursor:pointer;transition:all .3s ease}
.nav button:hover{background:var(--gold);color:#050A18;border-color:var(--gold);transform:scale(1.08)}
.dots{display:flex;gap:7px}
.dots i{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.22);cursor:pointer;transition:all .35s ease}
.dots i.on{width:20px;border-radius:99px;background:var(--gold)}
@media (max-width:900px){
  .stats,.stats.three,.layers{grid-template-columns:1fr 1fr}
  .bento{grid-template-columns:1fr 1fr}
  .cell.hero{grid-row:span 1}
  .cols{grid-template-columns:1fr}
  .rail{grid-template-columns:1fr 1fr;gap:20px}
  .rail::before{display:none}
  .slide{padding-top:88px;padding-bottom:96px;overflow-y:auto}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  .slide .kicker,.slide h1,.slide h2,.slide .lead,.slide .stat,.slide .col,.slide .cell,
  .slide .layer,.slide .rail li,.slide tbody tr,.slide blockquote,.slide cite,.slide .commit li,
  .slide .chips,.slide .source,.slide .chapno,.slide .big{opacity:1;transform:none}
}

/* ---------- photographic backdrops (from the user's Drive folder) ---------- */
:root{
  --ph-a:url("./photos/bg_a_sm.jpg");
  --ph-b:url("./photos/bg_b_sm.jpg");
  --ph-c:url("./photos/bg_c_sm.jpg");
  --ph-f:url("./photos/bg_f_sm.jpg");
  --ph-g:url("./photos/bg_g_sm.jpg");
  --ph-h:url("./photos/bg_h_sm.jpg");
}
.slide[data-photo] { isolation:isolate; }
.slide[data-photo]::before{
  content:""; position:absolute; inset:0; z-index:-2;
  background-size:cover; background-position:center; background-repeat:no-repeat;
  filter:saturate(.92) brightness(1.02) contrast(1.03);
  opacity:0; transform:scale(1.08);
  transition:opacity 1.1s ease;
}
.slide[data-photo].active::before{ opacity:.94; animation:kenburns 22s ease-in-out infinite alternate; }
@keyframes kenburns{
  0%{transform:scale(1.06) translate3d(0,0,0)}
  100%{transform:scale(1.16) translate3d(-1.5%,-1.2%,0)}
}
.slide[data-photo]::after{
  content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:
    radial-gradient(130% 95% at 10% 50%, rgba(5,10,24,.80) 0%, rgba(5,10,24,.52) 44%, rgba(5,10,24,.16) 76%, rgba(5,10,24,.48) 100%),
    linear-gradient(180deg, rgba(5,10,24,.55) 0%, transparent 30%, transparent 66%, rgba(5,10,24,.74) 100%);
}
.slide[data-photo="a"]::before{ background-image:var(--ph-a); }
.slide[data-photo="b"]::before{ background-image:var(--ph-b); }
.slide[data-photo="c"]::before{ background-image:var(--ph-c); }
.slide[data-photo="f"]::before{ background-image:var(--ph-f); }
.slide[data-photo="g"]::before{ background-image:var(--ph-g); }
.slide[data-photo="h"]::before{ background-image:var(--ph-h); }
.slide[data-photo] > *{ position:relative; z-index:1; }
/* keep type crisp over photography */
.slide[data-photo] h1,.slide[data-photo] h2.big,.slide[data-photo] blockquote{
  text-shadow:0 2px 26px rgba(0,0,0,.55);
}
.slide[data-photo] h1{ letter-spacing:-.01em; }
.slide[data-photo] .kicker{ color:var(--gold); }

/* ---------- finale: the robot says thank you ---------- */
.finale{
  display:grid;grid-template-columns:1.06fr .94fr;align-items:center;
  gap:clamp(16px,3vw,48px);
  background:radial-gradient(60% 70% at 78% 45%,rgba(34,211,238,.10),transparent 62%),
             radial-gradient(50% 60% at 12% 20%,rgba(232,200,122,.07),transparent 60%);
}
.fin-copy{max-width:34ch}
.fin-title{font-family:var(--serif);font-weight:400;font-size:clamp(32px,4.4vw,62px);
  line-height:1.04;letter-spacing:-.015em;color:var(--ink)}
.fin-rule{width:clamp(80px,10vw,140px);height:1px;margin:clamp(18px,2.4vh,28px) 0 0;
  background:linear-gradient(90deg,var(--gold),rgba(232,200,122,0))}
.fin-copy .lead{margin-top:clamp(16px,2.2vh,24px);font-size:clamp(14px,1.3vw,17px);color:var(--ink2)}
.fin-sig{margin-top:clamp(24px,4vh,44px);font-family:var(--serif);font-style:italic;
  font-size:clamp(12px,1vw,14px);letter-spacing:.04em;color:var(--gold);opacity:.9}
.fin-bot{margin:0;display:flex;justify-content:center;position:relative}
.fin-bot::before{content:"";position:absolute;inset:6% 8% 10%;border-radius:50%;z-index:0;
  background:radial-gradient(circle,rgba(34,211,238,.22),transparent 66%);filter:blur(46px)}
.fin-bot img{position:relative;z-index:1;width:min(40vw,470px);height:auto;
  filter:drop-shadow(0 30px 70px rgba(0,0,0,.6))}
.finale .fin-rule,.finale .fin-sig,.finale .fin-bot{opacity:0;transform:translateY(22px)}
.finale.active .fin-rule{animation:rise .8s .46s cubic-bezier(.22,1,.36,1) forwards}
.finale.active .fin-sig{animation:rise .8s .78s cubic-bezier(.22,1,.36,1) forwards}
.finale.active .fin-bot{animation:rise 1.1s .1s cubic-bezier(.22,1,.36,1) forwards}
.finale.active .fin-bot img{animation:floaty 7s ease-in-out 1.4s infinite}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
@media (max-width:900px){
  .finale{grid-template-columns:1fr;gap:10px;text-align:left}
  .fin-bot img{width:min(58vw,300px)}
  .fin-bot::before{inset:0 12% 0}
}
@media (prefers-reduced-motion:reduce){
  .finale .fin-rule,.finale .fin-sig,.finale .fin-bot{opacity:1;transform:none}
}
