#scene-intro{background:radial-gradient(800px 660px at 77% 44%,rgba(145,121,255,.12),transparent 68%);}
#scene-dc{
  background:
    radial-gradient(900px 680px at 76% 56%,rgba(55,207,224,.10),transparent 69%),
    radial-gradient(600px 500px at 16% 15%,rgba(126,99,255,.08),transparent 70%);
}
#scene-weights{
  background:
    radial-gradient(860px 660px at 77% 52%,rgba(150,122,255,.13),transparent 68%),
    radial-gradient(560px 440px at 14% 76%,rgba(66,211,222,.07),transparent 72%);
}
#scene-api{
  background:
    radial-gradient(720px 560px at 15% 83%,rgba(91,226,242,.085),transparent 70%),
    radial-gradient(760px 580px at 84% 34%,rgba(153,128,255,.105),transparent 72%);
}
#scene-laptop{
  background:
    radial-gradient(900px 660px at 79% 53%,rgba(79,224,222,.10),transparent 68%),
    radial-gradient(560px 480px at 12% 20%,rgba(139,105,255,.07),transparent 72%);
}
#scene-outro{background:radial-gradient(980px 720px at 50% 49%,rgba(140,112,255,.17),transparent 68%);}

/* ---------- intro ---------- */
.intro-kicker{
  position:absolute;left:112px;top:88px;
  display:flex;align-items:center;gap:14px;
  font-family:var(--mono);font-size:11px;letter-spacing:.28em;
  color:var(--muted);text-transform:uppercase;
}
.intro-kicker .rule{width:52px;height:1px;background:linear-gradient(90deg,transparent,var(--cyan));}
.intro-kicker .live{width:5px;height:5px;border-radius:50%;background:var(--lime);box-shadow:0 0 12px rgba(201,245,139,.8);}
.intro-title{position:absolute;left:106px;top:190px;z-index:3;font-family:var(--display);}
.intro-title .line{
  display:flex;align-items:baseline;gap:.18em;overflow:hidden;
  padding-bottom:.055em;will-change:transform;
}
.intro-title .word{display:inline-block;transform:translateY(118%);opacity:0;will-change:transform,opacity;}
.line-1{font-size:74px;line-height:1;font-weight:800;letter-spacing:-.025em;color:#aab4d4;margin-bottom:8px;}
.line-2{font-size:148px;line-height:.88;font-weight:900;letter-spacing:-.07em;}
.line-3{font-size:95px;line-height:1.06;font-weight:900;letter-spacing:-.055em;color:#e9eeff;}
.accent{
  background:linear-gradient(100deg,var(--cyan) 4%,#b5a0ff 52%,var(--pink) 110%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.intro-sub{position:absolute;left:114px;top:690px;z-index:3;font-size:19px;letter-spacing:-.01em;color:var(--muted);opacity:0;}
.intro-sub b{color:#dfe6ff;font-weight:600;}
.intro-meta{
  position:absolute;left:114px;top:735px;z-index:3;display:flex;gap:30px;
  font-family:var(--mono);font-size:9px;letter-spacing:.2em;color:var(--faint);opacity:0;
}
.intro-meta span{display:flex;align-items:center;gap:8px;}
.intro-meta span::before{content:"";width:16px;height:1px;background:rgba(141,152,187,.35);}
.intro-orbit{
  position:absolute;right:74px;top:126px;width:390px;height:700px;z-index:2;
  opacity:0;will-change:transform,opacity;
}
.intro-orbit svg{width:100%;height:100%;overflow:visible;}
.intro-orbit .orbit-label{font-family:var(--mono);font-size:9px;letter-spacing:.22em;fill:rgba(164,178,216,.55);}

/* ---------- data centre ---------- */
.dc-copy{left:112px;top:104px;width:540px;}
.dc-copy .scene-title{margin-top:22px;font-size:72px;}
.dc-copy .scene-body{margin-top:25px;}
.stats{display:flex;gap:27px;margin-top:37px;opacity:0;}
.stat{min-width:92px;padding-left:13px;border-left:1px solid rgba(151,171,235,.24);}
.stat b{display:block;font-family:var(--mono);font-size:22px;font-weight:500;letter-spacing:-.04em;color:#edf2ff;}
.stat small{display:block;margin-top:7px;font-family:var(--mono);font-size:8px;letter-spacing:.18em;color:var(--faint);}
.dc-visual{
  position:absolute;left:664px;top:170px;width:880px;height:646px;z-index:4;
  transform-origin:52% 56%;opacity:0;will-change:transform,opacity;
}
.dc-visual svg{width:100%;height:100%;overflow:visible;}
.dc-readout{
  position:absolute;right:66px;top:160px;z-index:5;display:flex;align-items:center;gap:10px;
  font-family:var(--mono);font-size:9px;letter-spacing:.19em;color:rgba(173,190,228,.55);opacity:0;
}
.dc-readout .live{width:5px;height:5px;border-radius:50%;background:var(--cyan);box-shadow:0 0 12px rgba(116,231,243,.9);}
.dc-readout i{font-style:normal;color:var(--faint);}

/* ---------- weights ---------- */
.weights-canvas{position:absolute;inset:0;width:1600px;height:900px;z-index:2;pointer-events:none;}
.weights-ghost{
  position:absolute;right:-12px;top:2px;z-index:1;
  font-family:var(--display);font-weight:900;font-size:216px;line-height:.8;letter-spacing:-.09em;
  color:transparent;-webkit-text-stroke:1px rgba(149,170,235,.10);opacity:.7;pointer-events:none;
}
.weights-copy{left:112px;top:134px;width:590px;}
.weights-copy .scene-title{margin-top:22px;font-size:70px;}
.weights-copy .scene-body{max-width:430px;margin-top:24px;}
.weights-source{
  position:absolute;left:756px;top:218px;z-index:4;width:160px;
  display:flex;flex-direction:column;align-items:center;opacity:0;will-change:transform,opacity;
}
.weights-source svg{width:96px;height:auto;filter:drop-shadow(0 0 22px rgba(116,231,243,.35));}
.weights-source .source-label{margin-top:9px;font-family:var(--mono);font-size:8px;letter-spacing:.2em;color:var(--faint);white-space:nowrap;}
.weights-source .source-line{width:1px;height:44px;margin-top:8px;background:linear-gradient(180deg,rgba(116,231,243,.5),transparent);}
.weights-card{
  position:absolute;left:1088px;top:310px;z-index:5;width:362px;padding:20px 22px 18px;
  border-radius:21px;
  background:linear-gradient(145deg,rgba(19,27,58,.94),rgba(8,12,30,.9));
  border:1px solid rgba(157,176,244,.23);
  box-shadow:0 28px 86px rgba(0,0,0,.55),inset 0 1px 0 rgba(255,255,255,.06);
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
  opacity:0;transform-origin:50% 55%;will-change:transform,opacity;overflow:hidden;
}
.weights-card::before{
  content:"";position:absolute;inset:-1px;pointer-events:none;
  background:linear-gradient(115deg,rgba(116,231,243,.13),transparent 28%,transparent 70%,rgba(157,140,255,.13));
}
.weights-card::after{
  content:"";position:absolute;left:-45%;top:-80%;width:45%;height:260%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.055),transparent);
  transform:rotate(20deg);animation:cardSheen 5.6s ease-in-out infinite;
}
@keyframes cardSheen{0%,58%{left:-55%;}100%{left:130%;}}
.card-top{
  position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;
  font-family:var(--mono);font-size:8px;letter-spacing:.17em;color:var(--faint);
}
.card-dots{display:flex;gap:5px;}
.card-dots i{display:block;width:5px;height:5px;border-radius:50%;background:rgba(151,171,235,.3);}
.card-dots i:nth-child(1){background:rgba(255,154,203,.7);}
.card-dots i:nth-child(2){background:rgba(255,209,122,.7);}
.card-dots i:nth-child(3){background:rgba(201,245,139,.7);}
.file-row{position:relative;z-index:1;display:flex;align-items:center;gap:14px;margin-top:22px;}
.file-icon{
  width:56px;height:56px;flex:0 0 auto;display:grid;place-items:center;border-radius:15px;
  background:linear-gradient(145deg,rgba(116,231,243,.18),rgba(157,140,255,.16));
  border:1px solid rgba(154,222,255,.25);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 0 28px rgba(116,231,243,.1);
}
.file-icon svg{width:31px;height:31px;}
.file-meta{flex:1;min-width:0;}
.file-meta b{display:block;font-family:var(--mono);font-size:16px;font-weight:500;letter-spacing:-.03em;color:#edf2ff;}
.file-meta span{display:block;margin-top:6px;font-family:var(--mono);font-size:8px;letter-spacing:.14em;color:var(--faint);}
.weight-ring-wrap{position:relative;width:48px;height:48px;flex:0 0 auto;}
.weight-ring-wrap svg{width:48px;height:48px;transform:rotate(-90deg);}
.weight-ring-wrap circle{fill:none;stroke-width:2.2;}
.weight-ring-wrap .track{stroke:rgba(151,171,235,.14);}
.weight-ring-wrap .fill{stroke:var(--cyan);stroke-linecap:round;filter:drop-shadow(0 0 4px rgba(116,231,243,.55));}
.weight-ring-wrap span{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--mono);font-size:8px;color:#bfeaf2;}
.download-row{position:relative;z-index:1;display:flex;align-items:center;gap:12px;margin-top:23px;}
.mini-track{flex:1;height:4px;border-radius:99px;background:rgba(151,171,235,.14);overflow:hidden;}
.mini-track i{display:block;width:0%;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--cyan),var(--violet));box-shadow:0 0 12px rgba(116,231,243,.55);}
.download-state{width:72px;text-align:right;font-family:var(--mono);font-size:8px;letter-spacing:.13em;color:var(--lime);}
.card-foot{
  position:relative;z-index:1;margin-top:17px;padding-top:13px;
  border-top:1px solid rgba(151,171,235,.1);
  font-family:var(--mono);font-size:8px;letter-spacing:.14em;color:var(--faint);
}
.weights-note{
  position:absolute;left:1068px;top:596px;z-index:5;display:flex;gap:18px;
  font-family:var(--mono);font-size:8px;letter-spacing:.17em;color:var(--faint);opacity:0;
}
.weights-note span{display:flex;align-items:center;gap:7px;}
.weights-note span::before{content:"";width:12px;height:1px;background:rgba(151,171,235,.3);}

/* ---------- api ---------- */
.api-copy{left:112px;top:91px;width:610px;}
.api-copy .scene-title{margin-top:21px;font-size:72px;}
.api-copy .scene-body{max-width:500px;margin-top:22px;}
#api-svg{position:absolute;inset:0;width:100%;height:100%;z-index:4;overflow:visible;}
.svg-label{font-family:var(--mono);font-size:9px;letter-spacing:.2em;fill:rgba(173,188,226,.52);}
.api-code{font-family:var(--mono);font-size:11px;letter-spacing:.02em;fill:#dffaff;}
.prompt-bubble{
  position:absolute;left:280px;top:492px;z-index:6;display:flex;align-items:center;gap:11px;
  padding:11px 15px 11px 13px;
  border:1px solid rgba(157,176,244,.22);border-radius:13px;
  background:rgba(11,17,38,.85);box-shadow:0 16px 44px rgba(0,0,0,.4);
  font-family:var(--mono);font-size:13px;color:#dce3ff;opacity:0;will-change:transform,opacity;
}
.prompt-bubble::before{
  content:"";position:absolute;left:20px;bottom:-7px;width:12px;height:12px;
  border-right:1px solid rgba(157,176,244,.22);border-bottom:1px solid rgba(157,176,244,.22);
  background:#0b1126;transform:rotate(45deg);
}
.prompt-bubble .prompt-dot{width:6px;height:6px;border-radius:50%;background:var(--cyan);box-shadow:0 0 10px rgba(116,231,243,.75);}
.api-legend{
  position:absolute;left:114px;top:408px;z-index:5;display:flex;gap:23px;
  font-family:var(--mono);font-size:8px;letter-spacing:.16em;color:var(--faint);opacity:0;
}
.api-legend span{display:flex;align-items:center;gap:8px;}
.api-legend i{display:block;width:6px;height:6px;border-radius:50%;background:var(--cyan);box-shadow:0 0 10px rgba(116,231,243,.7);}
.api-legend span:nth-child(2) i{background:var(--violet);box-shadow:0 0 10px rgba(157,140,255,.7);}
.api-legend span:nth-child(3) i{background:var(--lime);box-shadow:0 0 10px rgba(201,245,139,.7);}

/* ---------- laptop / editor ---------- */
.laptop-copy{left:112px;top:137px;width:470px;}
.laptop-copy .scene-title{margin-top:21px;font-size:74px;}
.laptop-copy .scene-body{max-width:420px;margin-top:23px;}
.laptop-copy .chips{margin-top:26px;}
.laptop-wrap{
  position:absolute;left:590px;top:152px;width:900px;height:666px;z-index:5;
  perspective:1800px;opacity:0;will-change:transform,opacity;
}
.laptop-glow{
  position:absolute;left:40px;top:10px;width:820px;height:540px;border-radius:50%;
  background:radial-gradient(ellipse,rgba(81,221,224,.20),rgba(120,100,255,.08) 48%,transparent 72%);
  filter:blur(54px);pointer-events:none;
}
.laptop{position:absolute;inset:0;transform-style:preserve-3d;transform:rotateY(-7deg) rotateX(2.2deg);}
.laptop-screen{
  position:absolute;left:40px;top:0;width:820px;height:522px;padding:12px;border-radius:17px;
  background:linear-gradient(160deg,#121a36,#080c1b 74%);
  border:1px solid rgba(164,184,242,.25);
  box-shadow:0 48px 100px rgba(0,0,0,.62),inset 0 0 0 1px rgba(255,255,255,.035),0 0 70px rgba(97,227,229,.08);
}
.laptop-screen::before{
  content:"";position:absolute;left:50%;top:5px;width:5px;height:5px;margin-left:-2.5px;border-radius:50%;
  background:#1c2546;box-shadow:inset 0 0 0 1px rgba(158,190,255,.22);
}
.screen-glare{
  position:absolute;inset:12px;z-index:4;border-radius:9px;pointer-events:none;
  background:linear-gradient(122deg,rgba(255,255,255,.055) 0%,rgba(255,255,255,0) 24%,rgba(255,255,255,0) 76%,rgba(116,231,243,.035) 100%);
}
.editor{
  position:absolute;inset:12px;display:flex;flex-direction:column;overflow:hidden;
  border-radius:9px;border:1px solid rgba(134,158,225,.16);background:#070b19;
}
.editor-top{
  height:43px;flex:0 0 auto;display:flex;align-items:center;gap:8px;padding:0 16px;
  border-bottom:1px solid rgba(134,158,225,.12);
  background:linear-gradient(180deg,rgba(20,29,59,.96),rgba(10,15,34,.94));
}
.win-dots{display:flex;gap:6px;margin-right:8px;}
.win-dots i{width:7px;height:7px;border-radius:50%;background:rgba(155,173,220,.22);}
.win-dots i:nth-child(1){background:rgba(255,154,203,.62);}
.win-dots i:nth-child(2){background:rgba(255,209,122,.62);}
.win-dots i:nth-child(3){background:rgba(201,245,139,.62);}
.editor-title{font-family:var(--mono);font-size:10px;letter-spacing:.06em;color:#97a3c7;}
.editor-title b{color:#d7e0ff;font-weight:500;}
.editor-title i{font-style:normal;color:#465173;}
.editor-badge{
  margin-left:auto;padding:5px 8px;border-radius:6px;
  border:1px solid rgba(201,245,139,.18);background:rgba(201,245,139,.06);
  font-family:var(--mono);font-size:8px;letter-spacing:.1em;color:#c9f58b;
}
.editor-body{position:relative;flex:1;padding:13px 0 8px;overflow:hidden;}
.editor-body::after{
  content:"";position:absolute;left:0;right:0;top:-20%;height:22%;
  background:linear-gradient(180deg,transparent,rgba(116,231,243,.035),transparent);
  animation:scan 6s linear infinite;pointer-events:none;
}
@keyframes scan{from{transform:translateY(-40px);}to{transform:translateY(470px);}}
.code-line{
  display:flex;height:27px;line-height:27px;
  font-family:var(--mono);font-size:17px;letter-spacing:-.02em;white-space:pre;
}
.code-line.active{background:linear-gradient(90deg,rgba(116,231,243,.035),transparent 78%);}
.code-line .ln{width:48px;flex:0 0 auto;padding-right:17px;text-align:right;font-size:11px;color:#353f61;user-select:none;}
.code-line .code-text{white-space:pre;color:#e6ebff;}
.kw{color:#b7a6ff;}
.str{color:#79e5d2;}
.fn{color:#ffd17a;}
.type{color:#8ed7ff;}
.com{color:#566383;font-style:italic;}
.op{color:#a6b1d3;}
.punc{color:#7f8bae;}
.caret{
  display:inline-block;width:2px;height:1.12em;margin-left:1px;vertical-align:-.19em;
  background:var(--cyan);box-shadow:0 0 9px rgba(116,231,243,.8);
  animation:blink 1.05s steps(2,end) infinite;
}
@keyframes blink{0%,48%{opacity:1;}49%,100%{opacity:0;}}
.editor-status{
  height:31px;flex:0 0 auto;display:flex;align-items:center;gap:9px;padding:0 16px;
  border-top:1px solid rgba(134,158,225,.1);background:rgba(8,13,29,.9);
  font-family:var(--mono);font-size:8px;letter-spacing:.08em;color:#667294;
}
.editor-status .status-live{width:5px;height:5px;border-radius:50%;background:var(--lime);box-shadow:0 0 8px rgba(201,245,139,.7);}
.editor-status .spacer{flex:1;}
.editor-status b{font-weight:500;color:#a3b0d2;}
.laptop-base{
  position:absolute;left:0;top:514px;width:900px;height:52px;border-radius:0 0 39px 39px;
  background:linear-gradient(180deg,#202a4a 0%,#111831 26%,#080d1c 100%);
  border:1px solid rgba(164,184,242,.16);
  box-shadow:0 35px 55px rgba(0,0,0,.58),inset 0 1px 0 rgba(255,255,255,.09);
}
.laptop-base::before{
  content:"";position:absolute;left:50%;top:0;width:126px;height:13px;margin-left:-63px;
  border-radius:0 0 9px 9px;background:#070b17;box-shadow:inset 0 -1px 0 rgba(151,171,235,.08);
}
.laptop-base::after{
  content:"";position:absolute;left:12%;right:12%;bottom:8px;height:5px;border-radius:99px;
  background:repeating-linear-gradient(90deg,rgba(151,171,235,.10) 0 5px,transparent 5px 10px);
  opacity:.65;
}
.stream-chip{
  position:absolute;left:1376px;top:145px;z-index:7;display:flex;align-items:center;gap:8px;
  padding:8px 11px;border:1px solid rgba(116,231,243,.27);border-radius:999px;
  background:rgba(8,16,34,.8);
  font-family:var(--mono);font-size:8px;letter-spacing:.15em;color:#b8eff4;
  transform:rotate(4deg);opacity:0;
}
.stream-chip i{width:5px;height:5px;border-radius:50%;background:var(--cyan);box-shadow:0 0 10px rgba(116,231,243,.8);animation:pulseDot 1.2s ease-in-out infinite;}
@keyframes pulseDot{50%{transform:scale(.55);opacity:.45;}}
.run-chip{
  position:absolute;left:1134px;top:710px;z-index:7;display:flex;align-items:center;gap:10px;
  padding:10px 14px;border:1px solid rgba(201,245,139,.22);border-radius:11px;
  background:rgba(9,20,27,.86);box-shadow:0 18px 40px rgba(0,0,0,.35);
  font-family:var(--mono);font-size:10px;color:#d8f7b8;
  opacity:0;transform:translateY(10px);
}
.run-chip b{color:var(--lime);font-weight:500;}

/* ---------- outro ---------- */
.outro-inner{
  position:absolute;inset:0;z-index:4;display:flex;flex-direction:column;
  align-items:center;justify-content:center;text-align:center;padding-bottom:12px;
}
.outro-kicker{font-family:var(--mono);font-size:10px;letter-spacing:.29em;color:var(--muted);opacity:0;}
.outro-title{
  margin-top:27px;font-family:var(--display);font-weight:900;font-size:91px;
  line-height:.97;letter-spacing:-.062em;color:#f4f6ff;
}
.outro-title em{
  font-style:normal;
  background:linear-gradient(96deg,var(--cyan) 0%,#b8a4ff 53%,var(--pink) 108%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.outro-sub{margin-top:28px;max-width:720px;font-size:18px;line-height:1.55;color:var(--muted);opacity:0;}
.outro-sub b{color:#e0e7ff;font-weight:600;}
.outro-route{margin-top:32px;width:690px;height:88px;opacity:0;}
.outro-route svg{width:100%;height:100%;overflow:visible;}
.replay-btn{
  margin-top:26px;display:inline-flex;align-items:center;gap:10px;height:44px;padding:0 19px;
  border-radius:999px;border:1px solid rgba(151,171,235,.28);background:rgba(12,17,38,.55);
  font-family:var(--mono);font-size:9px;letter-spacing:.17em;color:#cbd4ee;cursor:pointer;
  opacity:0;pointer-events:none;transition:background .25s,border-color .25s,transform .25s;
}
.replay-btn:hover{background:rgba(116,231,243,.1);border-color:rgba(116,231,243,.5);transform:translateY(-1px);}
.replay-btn svg{width:14px;height:14px;}
.outro-credit{position:absolute;left:0;right:0;bottom:66px;font-family:var(--mono);font-size:8px;letter-spacing:.2em;color:var(--faint);opacity:0;}
.outro-halo{
  position:absolute;left:50%;top:50%;width:760px;height:760px;margin:-380px 0 0 -380px;
  border-radius:50%;border:1px solid rgba(151,171,235,.09);
  box-shadow:0 0 100px rgba(116,231,243,.06) inset;z-index:1;
}
.outro-halo::before,.outro-halo::after{content:"";position:absolute;border-radius:50%;border:1px solid rgba(151,171,235,.07);}
.outro-halo::before{inset:80px;}
.outro-halo::after{inset:180px;border-color:rgba(157,140,255,.12);}
