/* ===== FUSION CLOUD - cinematic 8s intro ===== */
html.fc-intro-on{overflow:hidden;}
html.fc-intro-on::before{content:"";position:fixed;inset:0;background:#080D1A;z-index:99990;}

.fi{position:fixed;inset:0;z-index:99999;overflow:hidden;background:#080D1A;color:#fff;font-family:'Poppins',system-ui,sans-serif;user-select:none;-webkit-user-select:none;}
.fi canvas{position:absolute;inset:0;width:100%;height:100%;display:block;}
.fi-cb{z-index:1;}
.fi-scrim{position:absolute;inset:0;z-index:2;pointer-events:none;background:radial-gradient(ellipse 62% 58% at 50% 56%,rgba(8,13,26,.82),rgba(8,13,26,.35) 55%,transparent 78%);opacity:0;transition:opacity 1s ease;}
.fi.scrim-on .fi-scrim{opacity:1;}
.fi.exit .fi-scrim{opacity:0;transition-duration:.6s;}
.fi-cf{z-index:4;pointer-events:none;}

/* stage: logo + text + badges */
.fi-stage{position:absolute;inset:0;z-index:3;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(6px,1.5vh,16px);padding:0 16px;text-align:center;transform-origin:50% 42%;transition:opacity .7s ease,transform .8s cubic-bezier(.4,0,.2,1),filter .7s ease;}
.fi.exit .fi-stage{opacity:0;transform:scale(1.16);filter:blur(8px);}

/* holographic logo */
.fi-logo{position:relative;height:clamp(92px,25vh,250px);opacity:0;will-change:transform,opacity,filter,clip-path;}
.fi-float{position:relative;height:100%;animation:fiFloat 4.5s ease-in-out infinite;}
.fi-float img{display:block;height:100%;width:auto;}
.fi-main{position:relative;filter:drop-shadow(0 0 22px rgba(0,212,255,.75)) drop-shadow(0 0 60px rgba(40,100,255,.55));}
.fi-ghost{position:absolute;left:0;top:0;opacity:0;mix-blend-mode:screen;filter:brightness(0) invert(1) sepia(1) saturate(7) hue-rotate(150deg);}
.fi-ghost.g2{filter:brightness(0) invert(1) sepia(1) saturate(8) hue-rotate(290deg);}
.fi-scan{position:absolute;left:-8%;right:-8%;top:0;height:3px;opacity:0;background:linear-gradient(90deg,transparent,#8ff2ff 20%,#fff 50%,#8ff2ff 80%,transparent);box-shadow:0 0 18px 4px rgba(0,212,255,.9),0 0 46px 10px rgba(0,120,255,.5);}
.fi-logo.on{animation:fiHoloIn 1.7s cubic-bezier(.2,.7,.2,1) forwards;}
.fi-logo.on .fi-scan{animation:fiScan 1.35s cubic-bezier(.4,.1,.3,1) forwards;}
.fi-logo.on .fi-ghost.g1{animation:fiGhost1 1.9s steps(1,end) forwards,fiGlitch 3.4s 2.2s infinite;}
.fi-logo.on .fi-ghost.g2{animation:fiGhost2 1.9s steps(1,end) forwards,fiGlitch 3.4s 2.4s infinite;}
.fi.burst .fi-logo{animation:fiBurstLogo .9s cubic-bezier(.2,.8,.2,1) both;}
@keyframes fiFloat{0%,100%{transform:translateY(-4px);}50%{transform:translateY(5px);}}
@keyframes fiHoloIn{
  0%{opacity:0;clip-path:inset(0 0 100% 0);filter:blur(14px) brightness(3.2) saturate(1.6);transform:scale(1.1);}
  14%{opacity:.95;clip-path:inset(0 0 74% 0);}
  20%{opacity:.2;}
  28%{opacity:1;clip-path:inset(0 0 58% 0);filter:blur(8px) brightness(2.6) saturate(1.5);}
  36%{opacity:.35;}
  46%{opacity:1;clip-path:inset(0 0 34% 0);filter:blur(5px) brightness(2.1);}
  56%{opacity:.6;}
  66%{opacity:1;clip-path:inset(0 0 12% 0);filter:blur(2.5px) brightness(1.6);}
  100%{opacity:1;clip-path:inset(0 0 0 0);filter:blur(0) brightness(1) saturate(1);transform:scale(1);}
}
@keyframes fiScan{0%{top:0;opacity:1;}88%{opacity:1;}100%{top:calc(100% - 3px);opacity:0;}}
@keyframes fiGhost1{0%{opacity:.7;transform:translate(-9px,0);}30%{opacity:.35;transform:translate(6px,2px);}55%{opacity:.6;transform:translate(-4px,-2px);}80%{opacity:.25;transform:translate(2px,0);}100%{opacity:0;transform:none;}}
@keyframes fiGhost2{0%{opacity:.6;transform:translate(9px,0);}30%{opacity:.3;transform:translate(-6px,-2px);}55%{opacity:.5;transform:translate(4px,2px);}80%{opacity:.2;transform:translate(-2px,0);}100%{opacity:0;transform:none;}}
@keyframes fiGlitch{0%,92%,100%{opacity:0;transform:none;}94%{opacity:.55;transform:translate(-6px,1px);}96%{opacity:.35;transform:translate(5px,-1px);}98%{opacity:.5;transform:translate(-3px,0);}}
@keyframes fiBurstLogo{0%{transform:scale(1);filter:brightness(1);}30%{transform:scale(1.22);filter:brightness(2.6) drop-shadow(0 0 60px #7fe7ff);}100%{transform:scale(1.05);filter:brightness(1.15);}}

/* title / subtitle */
.fi-title{margin:0;font-weight:800;font-size:clamp(1.9rem,7.2vw,4.7rem);line-height:1;letter-spacing:.13em;text-transform:uppercase;white-space:nowrap;padding-left:.13em;min-height:1em;filter:drop-shadow(0 0 16px rgba(0,212,255,.55));}
.fi-title span{display:inline-block;opacity:0;background:linear-gradient(180deg,#fff 10%,#a4ecff 55%,#4f8cff 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;}
.fi-title span.sp{width:.32em;}
.fi-title.on span{animation:fiLetter .95s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(var(--i)*65ms);}
@keyframes fiLetter{0%{opacity:0;filter:blur(18px);transform:translateY(34px) scale(1.5,1.9);}60%{opacity:1;filter:blur(2px);}100%{opacity:1;filter:blur(0);transform:none;}}
.fi-sub{margin:0;font-weight:500;font-size:clamp(.66rem,1.7vw,1.05rem);letter-spacing:.6em;text-transform:uppercase;color:#b9c6ff;opacity:0;padding-left:.6em;text-shadow:0 0 14px rgba(88,101,242,.8);}
.fi-sub.on{animation:fiSub 1.3s cubic-bezier(.2,.8,.2,1) forwards;}
@keyframes fiSub{0%{opacity:0;letter-spacing:.75em;filter:blur(8px);}100%{opacity:1;letter-spacing:.3em;filter:blur(0);}}

/* feature badges */
.fi-badges{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;max-width:min(1180px,96vw);margin-top:clamp(4px,1.4vh,14px);min-height:2.6em;}
.fi-badge{display:inline-flex;align-items:center;gap:10px;padding:6px 18px 6px 10px;border-radius:999px;font-weight:600;font-size:clamp(.7rem,1.35vw,.86rem);white-space:nowrap;color:#E6ECFF;background:linear-gradient(135deg,rgba(40,90,220,.28),rgba(8,20,54,.55));border:1px solid rgba(0,212,255,.4);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 0 20px -4px rgba(0,180,255,.55),inset 0 0 14px rgba(0,212,255,.1);opacity:0;}
.fi-badge i{font-size:1.05em;color:var(--c,#22D3EE);filter:drop-shadow(0 0 6px var(--c,#22D3EE));}
.fi-badge.on{animation:fiBadge .8s cubic-bezier(.2,.8,.2,1) forwards;}
@keyframes fiBadge{0%{opacity:0;transform:translateY(22px) scale(.86);filter:blur(6px);}60%{opacity:1;box-shadow:0 0 36px 2px rgba(0,212,255,.85),inset 0 0 14px rgba(0,212,255,.25);}100%{opacity:1;transform:none;filter:blur(0);}}

/* cinematic bars, HUD, skip */
.fi-lb{position:absolute;left:0;right:0;height:0;background:#080D1A;z-index:6;transition:height 1s cubic-bezier(.2,.8,.2,1);pointer-events:none;}
.fi-lb.t{top:0;}.fi-lb.b{bottom:0;}
.fi.lb-on .fi-lb{height:clamp(22px,6.5vh,64px);}
.fi.lb-off .fi-lb{height:0;transition-duration:.7s;}
.fi-hud{position:absolute;left:50%;transform:translateX(-50%);bottom:calc(clamp(22px,6.5vh,64px) + 16px);z-index:7;width:min(460px,86vw);text-align:center;font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:#8ea2d9;transition:opacity .5s ease;pointer-events:none;}
.fi.lb-off .fi-hud,.fi.exit .fi-hud{opacity:0;}
.fi-hud-row{display:flex;justify-content:space-between;gap:12px;margin-bottom:8px;}
.fi-pct{color:#7fe7ff;font-variant-numeric:tabular-nums;}
.fi-bar{height:2px;border-radius:2px;background:rgba(255,255,255,.1);overflow:hidden;}
.fi-bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,#5865F2,#00D4FF,#fff);box-shadow:0 0 12px #00D4FF;}
.fi-skip{position:absolute;right:16px;top:calc(clamp(22px,6.5vh,64px) + 12px);z-index:8;padding:8px 16px;border-radius:999px;border:1px solid rgba(124,140,248,.4);background:rgba(15,23,42,.55);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#C7CEFF;font:600 .76rem 'Poppins',sans-serif;letter-spacing:.06em;cursor:pointer;opacity:0;pointer-events:none;transition:opacity .5s,background .25s,border-color .25s,color .25s;}
.fi.skip-on .fi-skip{opacity:.85;pointer-events:auto;}
.fi.exit .fi-skip{opacity:0;pointer-events:none;}
.fi-skip:hover{opacity:1;background:rgba(88,101,242,.4);border-color:#8B97FF;color:#fff;}
.fi-skip:focus-visible{outline:2px solid #00D4FF;outline-offset:3px;}

/* the website underneath arrives as the intro fades */
body.fc-reveal #navbar{animation:fcNavIn 1s cubic-bezier(.2,.8,.2,1) both;}
body.fc-reveal main{animation:fcMainIn 1.2s cubic-bezier(.2,.8,.2,1) both;}
@keyframes fcNavIn{from{opacity:0;transform:translateY(-24px);}to{opacity:1;transform:none;}}
@keyframes fcMainIn{from{opacity:0;transform:scale(1.045);filter:blur(6px);}to{opacity:1;transform:none;filter:blur(0);}}

@media(max-width:640px){
  .fi-title{letter-spacing:.08em;}
  .fi-sub{letter-spacing:.34em;padding-left:.34em;}
  @keyframes fiSub{0%{opacity:0;letter-spacing:.5em;filter:blur(8px);}100%{opacity:1;letter-spacing:.2em;filter:blur(0);}}
  .fi-badges{gap:7px;}
  .fi-badge{padding:7px 12px;}
  .fi-skip{padding:7px 13px;}
}
@media(max-height:520px){.fi-badges{display:none;}}


/* ===== animated emoji-style badge icons ===== */
.fe{position:relative;display:inline-flex;flex:none;width:32px;height:32px;line-height:0;}
.fe svg{width:100%;height:100%;overflow:visible;position:relative;filter:drop-shadow(0 0 5px var(--c));}
.fe::before{content:"";position:absolute;inset:-7px;border-radius:50%;background:radial-gradient(circle,var(--c),transparent 66%);opacity:.32;animation:feGlow 2.2s ease-in-out infinite;}
.fi-badge.on .fe{animation:fePop .95s cubic-bezier(.2,1.7,.3,1) both;}
@keyframes fePop{0%{transform:scale(0) rotate(-40deg);}55%{transform:scale(1.3) rotate(10deg);}100%{transform:scale(1) rotate(0);}}
@keyframes feGlow{0%,100%{opacity:.22;transform:scale(.9);}50%{opacity:.5;transform:scale(1.15);}}
.fe *{transform-box:fill-box;}
/* bolt: flickering with electric sparks */
.fe-bolt g.fe-bolt,.fe .fe-bolt{transform-origin:50% 50%;animation:feBolt 1.3s ease-in-out infinite;}
@keyframes feBolt{0%,100%{transform:scale(1);filter:brightness(1);}10%{transform:scale(1.2) rotate(-4deg);filter:brightness(1.5);}18%{transform:scale(.94);filter:brightness(.9);}28%{transform:scale(1.12) rotate(3deg);filter:brightness(1.35);}40%{transform:scale(1);filter:brightness(1);}}
.fe-sp{opacity:0;animation:feSpark 1.3s ease-out infinite;}
.fe-sp.s2{animation-delay:.12s;}.fe-sp.s3{animation-delay:.3s;}.fe-sp.s4{animation-delay:.45s;}
@keyframes feSpark{0%,6%{opacity:0;}12%{opacity:1;}30%,100%{opacity:0;}}
/* shield: shine sweep, check draws itself, ring pulse */
.fe-shield{transform-origin:50% 50%;animation:feShield 2.6s ease-in-out infinite;}
@keyframes feShield{0%,100%{transform:scale(1);}50%{transform:scale(1.07);}}
.fe-check{stroke-dasharray:1;stroke-dashoffset:1;animation:feCheck 2.6s ease-in-out infinite;}
@keyframes feCheck{0%,10%{stroke-dashoffset:1;}38%,88%{stroke-dashoffset:0;}100%{stroke-dashoffset:1;}}
.fe-shine{animation:feShine 2.6s ease-in-out infinite;}
@keyframes feShine{0%,25%{transform:translateX(0);}75%,100%{transform:translateX(62px);}}
.fe-ring{transform-origin:50% 50%;animation:feRing 2.6s ease-out infinite;}
@keyframes feRing{0%{transform:scale(.8);opacity:.9;}100%{transform:scale(1.5);opacity:0;}}
/* globe: continents scroll, satellite orbits (SMIL) */
.fe-land{animation:feLand 7s linear infinite;}
@keyframes feLand{from{transform:translateX(0);}to{transform:translateX(-30px);}}
/* rocket: engine rumble, flame flicker, trail */
.fe-rk{animation:feRk .5s ease-in-out infinite;}
@keyframes feRk{0%,100%{transform:translate(0,0);}25%{transform:translate(.5px,-1.6px);}50%{transform:translate(-.5px,-.4px);}75%{transform:translate(.4px,-1.8px);}}
.fe-flame{transform-origin:50% 0;animation:feFlame .22s ease-in-out infinite alternate;}
@keyframes feFlame{from{transform:scaleY(.72) scaleX(1.05);}to{transform:scaleY(1.3) scaleX(.9);}}
.fe-trail circle{animation:feTrail .9s linear infinite;opacity:0;}
.fe-trail .t2{animation-delay:.3s;}.fe-trail .t3{animation-delay:.6s;}
@keyframes feTrail{0%{transform:translateY(0) scale(1);opacity:.9;}100%{transform:translateY(9px) scale(.3);opacity:0;}}
/* gem: bob, moving shine, twinkling sparkles */
.fe-gem{transform-origin:50% 50%;animation:feGem 2.4s ease-in-out infinite;}
@keyframes feGem{0%,100%{transform:translateY(-1.6px) rotate(-3deg);}50%{transform:translateY(1.6px) rotate(3deg);}}
.fe-gshine{animation:feShine 2.4s ease-in-out infinite;}
.fe-star{transform-origin:50% 50%;animation:feStar 1.6s ease-in-out infinite;}
.fe-star.b{animation-delay:.5s;}.fe-star.c{animation-delay:1s;}
@keyframes feStar{0%,100%{transform:scale(0) rotate(0);opacity:0;}50%{transform:scale(1.15) rotate(90deg);opacity:1;}}
@media (prefers-reduced-motion:reduce){.fe *,.fe::before{animation:none!important;}.fe-check{stroke-dashoffset:0;}}
