
/* ═══════════════════════════════════════════
   TOKENS &mdash; V3 structure &middot; V1 blue-cyan palette
═══════════════════════════════════════════ */
:root {
  /* Backgrounds &mdash; dark navy-void */
  --void:   #020408;
  --void2:  #040a12;
  --pit:    #060e1a;
  --deep:   #091422;
  --cave:   #0d1c2e;
  --vein:   #12263c;
  --raised: #172e48;

  /* V1 Blue-Cyan accent scale */
  --neon:   #00c8ff;
  --core:   #0080cc;
  --mid:    #0055a0;
  --dark:   #003366;
  --cyan2:  #00fff0;
  --ice:    #e0f4ff;

  /* Greys */
  --grey-bright: #ddeaf4;
  --grey-mid:    #9bbdce;
  --grey-dim:    #2a3a4a;
  --grey-ghost:  #142030;

  /* Glow */
  --glow:  rgba(0,200,255,.45);
  --glow2: rgba(0,200,255,.18);
  --glow3: rgba(0,200,255,.08);
  --dim-blue: rgba(0,128,204,.12);

  /* Typography */
  --fd: 'Syncopate', sans-serif;
  --fb: 'Jost', sans-serif;
  --fm: 'Space Mono', monospace;
}

*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--fb);background:var(--void);color:var(--grey-bright);overflow-x:hidden;-webkit-font-smoothing:antialiased;cursor:auto;}
a,button,[onclick],.course-card,.proj-card,.testi-card,.cp-badge,.filt,.nav-cta,.btn-fire,.btn-ghost,.ham{cursor:pointer!important;}

/* ═══ CURSOR — original dot + ring design via SVG CSS ═══ */
*{
  cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='44' height='44' viewBox='0 0 44 44'%3E%3Ccircle cx='22' cy='22' r='6' fill='%2300c8ff'/%3E%3Ccircle cx='22' cy='22' r='18' fill='none' stroke='%2300c8ff' stroke-width='3' opacity='0.65'/%3E%3C/svg%3E") 22 22, crosshair !important;
}
a, button, [onclick], .course-card, .proj-card, .testi-card, .cp-badge, .filt, .nav-cta, .btn-fire, .btn-ghost, .ham, .reg-submit, .m-close-btn, .reg-close-btn, .sl-btn, .sl-dot, .t-btn, .fsoc {
  cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='52' height='52' viewBox='0 0 52 52'%3E%3Ccircle cx='26' cy='26' r='4' fill='%2300c8ff' opacity='0.7'/%3E%3Ccircle cx='26' cy='26' r='24' fill='none' stroke='%2300c8ff' stroke-width='2.5' opacity='0.85'/%3E%3C/svg%3E") 26 26, pointer !important;
}
#trail-c{position:fixed;inset:0;pointer-events:none;z-index:99990;}

/* ═══ NEURAL BG ═══ */
#neural{position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.65;}

/* ═══ OVERLAYS ═══ */
.vignette{position:fixed;inset:0;z-index:1;pointer-events:none;background:radial-gradient(ellipse at center,transparent 40%,rgba(2,4,8,.9) 100%);}
.noise{position:fixed;inset:0;z-index:2;pointer-events:none;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");}
.scan{position:fixed;inset:0;z-index:2;pointer-events:none;background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,0,0,.06) 2px,rgba(0,0,0,.06) 4px);}
/* scan-move removed — background-position animation causes full-page repaints on mobile GPUs */
@keyframes scan-move{0%{background-position:0 0}100%{background-position:0 100vh}}

/* ═══ GRID ═══ */
.grid-layer{position:fixed;inset:0;z-index:1;pointer-events:none;background-image:linear-gradient(rgba(0,120,200,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(0,120,200,.03) 1px,transparent 1px);background-size:56px 56px;}

/* ═══ PROGRESS ═══ */
#pgbar{position:fixed;top:0;left:0;height:2px;z-index:1001;background:linear-gradient(90deg,var(--core),var(--neon),var(--cyan2));box-shadow:0 0 14px var(--glow);width:0%;transition:width .15s;}

/* ═══════════ NAV ═══════════ */
nav{position:fixed;top:0;left:0;right:0;z-index:1000;display:flex;align-items:center;justify-content:space-between;padding:0 5%;height:72px;transition:background .5s,box-shadow .5s,border-color .5s;border-bottom:1px solid transparent;}
nav.stuck{background:rgba(2,4,8,.92);backdrop-filter:blur(28px) saturate(200%);box-shadow:0 1px 0 rgba(0,200,255,.1);border-color:rgba(0,200,255,.1);}

/*  MDR LABS LOGO  */
.logo{display:flex;align-items:center;gap:12px;text-decoration:none;}
.logo-img{
  width:52px;height:52px;flex-shrink:0;
  object-fit:contain;
  filter:drop-shadow(0 0 10px rgba(0,200,255,.35));
  transition:filter .4s,transform .4s;
  border-radius:4px;
}
.logo:hover .logo-img{
  filter:drop-shadow(0 0 18px rgba(0,200,255,.7)) brightness(1.08);
  transform:scale(1.05);
}
/* Outer hex ring &mdash; rotates */
.lhex-spin{fill:none;stroke:var(--neon);stroke-width:1.2;filter:drop-shadow(0 0 7px rgba(0,200,255,.9));animation:hex-rot 14s linear infinite;transform-origin:24px 24px;}
/* Inner hex &mdash; static fill */
.lhex-inner{fill:rgba(0,128,204,.18);stroke:rgba(0,200,255,.3);stroke-width:.8;}
/* Diamond accent marks */
.lhex-accent{fill:var(--neon);filter:drop-shadow(0 0 4px var(--neon));}
/* MDR text */
.lhex-mdr{font-family:var(--fd);font-size:8px;font-weight:700;fill:#fff;text-anchor:middle;dominant-baseline:central;letter-spacing:.5px;filter:drop-shadow(0 0 5px rgba(0,200,255,.9));}
/* LABS subscript */
.lhex-labs{font-family:var(--fm);font-size:4.5px;fill:var(--neon);text-anchor:middle;dominant-baseline:central;letter-spacing:.8px;}
@keyframes hex-rot{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
@keyframes hex-pulse{0%,100%{filter:drop-shadow(0 0 7px rgba(0,200,255,.9))}50%{filter:drop-shadow(0 0 16px rgba(0,200,255,1))}}

.logo-copy{display:flex;flex-direction:column;gap:1px;}
.logo-name{font-family:var(--fd);font-size:.95rem;font-weight:700;letter-spacing:.2em;color:#fff;line-height:1;}
.logo-name span{color:var(--neon);text-shadow:0 0 12px rgba(0,200,255,.7);}
.logo-tagline{font-family:var(--fm);font-size:.5rem;letter-spacing:.22em;color:var(--grey-mid);text-transform:uppercase;line-height:1;margin-top:2px;}

.nav-ul{display:flex;gap:2.2rem;list-style:none;}
.nav-ul a{font-family:var(--fm);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--grey-mid);text-decoration:none;position:relative;padding-bottom:2px;transition:color .3s;}
.nav-ul a::after{content:'';position:absolute;bottom:0;left:0;width:0;height:1px;background:var(--neon);box-shadow:0 0 6px var(--neon);transition:width .3s;}
.nav-ul a:hover{color:var(--neon);}
.nav-ul a:hover::after{width:100%;}

.nav-cta{font-family:var(--fm);font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;text-decoration:none;cursor:pointer;padding:10px 24px;border:1px solid var(--neon);color:var(--neon);background:rgba(0,200,255,.06);position:relative;overflow:hidden;transition:color .3s,box-shadow .3s;}
.nav-cta::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,transparent,rgba(0,200,255,.15),transparent);transform:translateX(-100%);transition:transform .5s;}
.nav-cta:hover::before{transform:translateX(100%);}
.nav-cta:hover{color:var(--void);background:var(--neon);box-shadow:var(--glow);}

.ham{display:none;flex-direction:column;gap:5px;cursor:pointer;}
.ham span{display:block;width:24px;height:1.5px;background:var(--neon);box-shadow:0 0 5px var(--neon);transition:all .3s;}

/* ═══════════ HERO ═══════════ */
#home{min-height:100vh;position:relative;z-index:3;display:flex;align-items:center;padding:80px 5% 30px;overflow:hidden;}

/* Ambient orbs */
.orb{position:absolute;border-radius:50%;pointer-events:none;filter:blur(110px);}
.o1{width:700px;height:700px;top:-200px;right:-180px;background:radial-gradient(circle,rgba(0,128,204,.22) 0%,transparent 70%);animation:od1 16s ease-in-out infinite;}
.o2{width:500px;height:500px;bottom:-100px;left:-100px;background:radial-gradient(circle,rgba(0,200,255,.14) 0%,transparent 70%);animation:od1 20s ease-in-out infinite 4s reverse;}
.o3{width:380px;height:380px;top:40%;left:38%;background:radial-gradient(circle,rgba(0,128,204,.1) 0%,transparent 70%);animation:od1 12s ease-in-out infinite 2s;}
@keyframes od1{0%,100%{transform:translate(0,0)}33%{transform:translate(30px,-40px)}66%{transform:translate(-20px,25px)}}

.hero-inner{display:grid;grid-template-columns:1.1fr .9fr;gap:60px;align-items:center;max-width:1300px;margin:0 auto;width:100%;}

/* chip */
.hero-chip{display:inline-flex;align-items:center;gap:10px;padding:7px 18px;border:1px solid rgba(0,200,255,.3);background:rgba(0,200,255,.05);font-family:var(--fm);font-size:.66rem;letter-spacing:.22em;color:var(--neon);text-transform:uppercase;margin-bottom:16px;}
.chip-dot{width:6px;height:6px;border-radius:50%;background:var(--neon);box-shadow:0 0 6px var(--neon);animation:blink 1.2s step-end infinite;}
@keyframes blink{0%,100%{opacity:1}50%{opacity:.15}}

/* hero heading */
.hero-h{font-family:var(--fd);font-size:clamp(2.2rem,4.5vw,4.4rem);font-weight:700;line-height:1.08;letter-spacing:.06em;color:#fff;margin-bottom:18px;display:flex;flex-direction:column;gap:4px;}
.hero-h .line-solid{display:block;white-space:nowrap;}
.hero-h .line-stroke{display:block;color:transparent;-webkit-text-stroke:1.5px var(--neon);filter:drop-shadow(0 0 10px rgba(0,200,255,.6));white-space:nowrap;}
.hero-h .line-neon{display:block;background:linear-gradient(135deg,var(--core),var(--neon),var(--cyan2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;white-space:nowrap;}

/* typewriter */
.tw-wrap{font-family:var(--fm);font-size:1rem;letter-spacing:.1em;color:var(--neon);margin-bottom:16px;min-height:1.6em;display:flex;align-items:center;gap:6px;}
.tw-prompt{color:rgba(0,200,255,.4);}
#tw-out{color:var(--neon);text-shadow:0 0 10px rgba(0,200,255,.5);}
.tw-pipe{display:inline-block;width:2px;height:1em;background:var(--neon);box-shadow:0 0 6px var(--neon);animation:blink .8s step-end infinite;vertical-align:middle;}

.hero-p{font-size:1rem;font-weight:300;line-height:1.88;color:var(--grey-mid);max-width:520px;margin-bottom:22px;border-left:2px solid rgba(0,200,255,.35);padding-left:16px;}

/* hero buttons */
.hero-acts{display:flex;gap:16px;flex-wrap:wrap;}
.btn-fire{font-family:var(--fm);font-size:.76rem;letter-spacing:.16em;text-transform:uppercase;text-decoration:none;cursor:pointer;border:none;padding:14px 34px;background:linear-gradient(135deg,var(--dark),var(--core),var(--neon));color:#fff;font-weight:700;clip-path:polygon(10px 0%,100% 0%,calc(100% - 10px) 100%,0% 100%);position:relative;overflow:hidden;transition:box-shadow .3s,transform .2s;}
.btn-fire::after{content:'';position:absolute;inset:0;background:linear-gradient(135deg,transparent,rgba(255,255,255,.2),transparent);transform:translateX(-100%);transition:transform .5s;}
.btn-fire:hover::after{transform:translateX(100%);}
.btn-fire:hover{box-shadow:0 0 40px var(--glow),0 0 80px var(--glow2);transform:translateY(-2px);}
.btn-ghost{font-family:var(--fm);font-size:.76rem;letter-spacing:.16em;text-transform:uppercase;text-decoration:none;cursor:pointer;padding:14px 34px;border:1px solid var(--grey-dim);color:var(--grey-bright);background:transparent;clip-path:polygon(10px 0%,100% 0%,calc(100% - 10px) 100%,0% 100%);transition:all .3s;}
.btn-ghost:hover{border-color:var(--neon);color:var(--neon);box-shadow:0 0 18px var(--glow3);}

/* hero stats */
.hero-stats{display:flex;gap:0;margin-top:24px;border:1px solid var(--grey-dim);background:rgba(6,14,26,.5);position:relative;overflow:hidden;}
.hero-stats::before{content:'';position:absolute;top:0;left:-100%;width:40%;height:100%;background:linear-gradient(90deg,transparent,rgba(0,200,255,.05),transparent);animation:stats-sw 4s ease-in-out infinite;}
@keyframes stats-sw{0%{left:-100%}100%{left:200%}}
.hstat{flex:1;padding:20px 16px;border-right:1px solid var(--grey-dim);text-align:center;transition:background .3s;}
.hstat:last-child{border-right:none;}
.hstat:hover{background:var(--glow3);}
.hstat-n{font-family:var(--fd);font-size:2rem;color:var(--neon);display:block;line-height:1;text-shadow:0 0 20px rgba(0,200,255,.5);}
.hstat-l{font-family:var(--fm);font-size:.55rem;letter-spacing:.18em;color:var(--grey-mid);text-transform:uppercase;margin-top:6px;}

/* HERO RIGHT &mdash; sphere */
.hero-right{display:flex;align-items:center;justify-content:center;position:relative;height:480px;}
.sphere-wrap{position:relative;width:340px;height:340px;isolation:isolate;}
.sphere-core{width:100%;height:100%;border-radius:50%;background:radial-gradient(circle at 35% 35%,rgba(0,200,255,.42),rgba(0,80,160,.28) 40%,rgba(0,40,100,.12) 70%,transparent 100%);border:1px solid rgba(0,200,255,.35);box-shadow:0 0 100px rgba(0,128,204,.5),0 0 200px rgba(0,200,255,.18),inset 0 0 70px rgba(0,200,255,.18);animation:sphere-breathe 6s ease-in-out infinite;}
@keyframes sphere-breathe{0%,100%{box-shadow:0 0 100px rgba(0,128,204,.5),0 0 200px rgba(0,200,255,.18),inset 0 0 70px rgba(0,200,255,.18)}50%{box-shadow:0 0 160px rgba(0,200,255,.65),0 0 280px rgba(0,200,255,.28),inset 0 0 60px rgba(0,200,255,.28)}}
.orbit-ring{position:absolute;top:50%;left:50%;border-radius:50%;border-style:solid;border-color:rgba(0,200,255,.28);}
.ring1{width:380px;height:380px;border-width:1px;transform:translate(-50%,-50%);animation:oring 20s linear infinite;}
.ring2{width:440px;height:440px;border-width:1px;border-color:rgba(0,128,204,.18);transform:translate(-50%,-50%);animation:oring 30s linear infinite reverse;}
.ring3{width:500px;height:500px;border-width:.5px;border-color:rgba(0,200,255,.1);transform:translate(-50%,-50%);animation:oring 40s linear infinite;}
@keyframes oring{from{transform:translate(-50%,-50%) rotate(0deg) rotateX(70deg)}to{transform:translate(-50%,-50%) rotate(360deg) rotateX(70deg)}}
.orb-dot{position:absolute;top:50%;left:50%;width:8px;height:8px;border-radius:50%;background:var(--neon);box-shadow:0 0 12px var(--neon),0 0 24px rgba(0,200,255,.5);transform-origin:-190px 0;}
.orb-dot:nth-child(1){animation:dot-o 8s linear infinite;}
.orb-dot:nth-child(2){animation:dot-o 8s linear infinite -2.67s;background:var(--core);box-shadow:0 0 12px var(--core);}
.orb-dot:nth-child(3){animation:dot-o 8s linear infinite -5.33s;background:var(--cyan2);box-shadow:0 0 12px var(--cyan2);}
@keyframes dot-o{from{transform:rotate(0deg) translateX(190px)}to{transform:rotate(360deg) translateX(190px)}}
.float-icon{
  position:absolute;
  width:50px;height:50px;border-radius:50%;
  will-change:transform;
  background:rgba(9,20,34,.92);
  border:1px solid rgba(0,200,255,.22);
  display:flex;align-items:center;justify-content:center;
  font-size:1.3rem;
  box-shadow:0 4px 20px rgba(0,0,0,.5);
  backdrop-filter:blur(10px);
  /* NO transition or transform here &mdash; animation handles movement */
}

/*  ORBIT WRAPPERS  each spins around sphere center, icon counter-rotates to stay upright */
.fi-wrap{
  position:absolute;top:50%;left:50%;width:0;height:0;
  animation:fi-orbit 28s linear infinite;
}
.fw1{animation-delay:0s;}
.fw2{animation-delay:-4.67s;}
.fw3{animation-delay:-9.33s;}
.fw4{animation-delay:-14s;}
.fw5{animation-delay:-18.67s;}
.fw6{animation-delay:-23.33s;}
@keyframes fi-orbit{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}

/* Icon sits at orbit radius, counter-rotates to stay upright, then tooltip */
.fi-wrap .float-icon{
  position:absolute;
  left:178px;top:-25px; /* orbit radius 178px from center, vertically centered */
  animation:fi-upright 28s linear infinite;
}
.fw1 .float-icon{animation-delay:0s;}
.fw2 .float-icon{animation-delay:-4.67s;}
.fw3 .float-icon{animation-delay:-9.33s;}
.fw4 .float-icon{animation-delay:-14s;}
.fw5 .float-icon{animation-delay:-18.67s;}
.fw6 .float-icon{animation-delay:-23.33s;}
@keyframes fi-upright{from{transform:rotate(0deg)}to{transform:rotate(-360deg)}}

/* Tooltip label shown on hover */
.float-icon::after{
  content:attr(data-name);
  position:absolute;
  bottom:calc(100% + 8px);left:50%;
  transform:translateX(-50%);
  background:rgba(6,14,26,.96);
  border:1px solid rgba(0,200,255,.5);
  color:#fff;
  font-family:var(--fm);font-size:.58rem;letter-spacing:.1em;
  white-space:nowrap;padding:5px 12px;
  border-radius:2px;
  opacity:0;pointer-events:none;
  transition:opacity .2s;
  box-shadow:0 0 14px rgba(0,200,255,.25);
}

/* Unused keyframe placeholder */
@keyframes fi-bob{
  0%,100%{ transform:translateY(0px); }
  50%    { transform:translateY(-8px); }
}
  55% {transform:translate(5px,  7px);}
  80% {transform:translate(-3px, 4px);}
  100%{transform:translate(0px, 0px);}
}

/* ═══════════ SECTIONS ═══════════ */
section{position:relative;z-index:3;}
.container{max-width:1200px;margin:0 auto;padding:0 5%;}
.sec-pad{padding:130px 0;}

.s-eyebrow{font-family:var(--fm);font-size:.66rem;letter-spacing:.28em;text-transform:uppercase;color:var(--neon);display:inline-flex;align-items:center;gap:10px;margin-bottom:16px;}
.s-eyebrow::before{content:'';width:28px;height:1px;background:linear-gradient(90deg,transparent,var(--neon));box-shadow:0 0 6px var(--neon);}

.s-title{font-family:var(--fd);font-size:clamp(1.9rem,4vw,3.6rem);font-weight:700;letter-spacing:.05em;color:#fff;line-height:1.08;margin-bottom:14px;}
.s-title em{font-style:normal;background:linear-gradient(135deg,var(--core),var(--neon));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}

/*  SCROLL ASSEMBLY SYSTEM  */
/* Base: everything hidden until triggered */
.rev,.rev-l,.rev-r,
[data-fly]{will-change:transform,opacity;}

/* Generic up */
.rev{opacity:0;transform:translateY(60px);
  transition:opacity .85s cubic-bezier(.16,1,.3,1),transform .85s cubic-bezier(.16,1,.3,1);}
.rev.in{opacity:1;transform:none;}

/* From left */
.rev-l{opacity:0;transform:translateX(-80px);
  transition:opacity .85s cubic-bezier(.16,1,.3,1),transform .85s cubic-bezier(.16,1,.3,1);}
.rev-l.in{opacity:1;transform:none;}

/* From right */
.rev-r{opacity:0;transform:translateX(80px);
  transition:opacity .85s cubic-bezier(.16,1,.3,1),transform .85s cubic-bezier(.16,1,.3,1);}
.rev-r.in{opacity:1;transform:none;}

/* Fly in from BOTTOM &mdash; hero stats, cards */
[data-fly="up"]{opacity:0;transform:translateY(100px) scale(.96);
  transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1);}
[data-fly="up"].in{opacity:1;transform:none;}

/* Fly from LEFT */
[data-fly="left"]{opacity:0;transform:translateX(-120px) rotate(-3deg);
  transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1);}
[data-fly="left"].in{opacity:1;transform:none;}

/* Fly from RIGHT */
[data-fly="right"]{opacity:0;transform:translateX(120px) rotate(3deg);
  transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1);}
[data-fly="right"].in{opacity:1;transform:none;}

/* Fly from TOP */
[data-fly="down"]{opacity:0;transform:translateY(-80px);
  transition:opacity .75s cubic-bezier(.16,1,.3,1),transform .75s cubic-bezier(.16,1,.3,1);}
[data-fly="down"].in{opacity:1;transform:none;}

/* Zoom in from far &mdash; big headings */
[data-fly="zoom"]{opacity:0;transform:scale(.7) translateY(30px);
  transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1);}
[data-fly="zoom"].in{opacity:1;transform:none;}

/* Flip in &mdash; cards */
[data-fly="flip"]{opacity:0;transform:perspective(600px) rotateX(25deg) translateY(50px);
  transition:opacity .85s cubic-bezier(.16,1,.3,1),transform .85s cubic-bezier(.16,1,.3,1);}
[data-fly="flip"].in{opacity:1;transform:none;}

/* Slam in &mdash; heavy elements */
[data-fly="slam"]{opacity:0;transform:translateY(-60px) scaleY(1.1);
  transition:opacity .6s cubic-bezier(.16,1,.3,1),transform .6s cubic-bezier(.55,-0.1,.15,1.3);}
[data-fly="slam"].in{opacity:1;transform:none;}

/* Delay helpers */
[data-delay="1"]{transition-delay:.08s!important;}
[data-delay="2"]{transition-delay:.16s!important;}
[data-delay="3"]{transition-delay:.24s!important;}
[data-delay="4"]{transition-delay:.32s!important;}
[data-delay="5"]{transition-delay:.42s!important;}
[data-delay="6"]{transition-delay:.54s!important;}

/* Section entrance line &mdash; cyan scan line that sweeps across on section enter */
.sec-scan{position:absolute;top:0;left:-100%;width:100%;height:2px;
  background:linear-gradient(90deg,transparent,var(--neon),transparent);
  pointer-events:none;z-index:10;opacity:0;transition:none;}
.sec-scan.sweep{left:100%;opacity:1;transition:left 1.2s cubic-bezier(.4,0,.2,1),opacity .1s;}

/* Hero line stagger */
.h-solid,.h-stroke,.h-neon{opacity:0;}
.h-solid.in{opacity:1;animation:slam-in .7s cubic-bezier(.16,1,.3,1) forwards;}
.h-stroke.in{opacity:1;animation:slam-in .7s cubic-bezier(.16,1,.3,1) .12s forwards;}
.h-neon.in{opacity:1;animation:slam-in .7s cubic-bezier(.16,1,.3,1) .24s forwards;}
@keyframes slam-in{
  from{opacity:0;transform:translateX(-60px) skewX(-8deg);}
  to{opacity:1;transform:none;}
}

/* Stat counter boxes &mdash; assemble from scattered positions */
.hst{opacity:0;transform:translateY(40px) scale(.9);}
.hst.in{opacity:1;transform:none;
  transition:opacity .6s cubic-bezier(.16,1,.3,1),transform .6s cubic-bezier(.16,1,.3,1);}

/* About stat panels &mdash; each flies from its own corner */
.dw1{opacity:0;transform:translate(-60px,-40px) rotate(-4deg);}

.dw2{opacity:0;transform:translate(60px,-40px) rotate(4deg);}

.dw3{opacity:0;transform:translate(-60px,40px) rotate(3deg);}

.dw4{opacity:0;transform:translate(60px,40px) rotate(-3deg);}


/* Course cards &mdash; fly up staggered */
.course-card{opacity:0;transform:translateY(80px) scale(.94);}
.course-card.in{opacity:1;transform:none;
  transition:opacity .75s cubic-bezier(.16,1,.3,1),transform .75s cubic-bezier(.16,1,.3,1);}

/* Proj cards &mdash; alternate left/right */
.proj-card:nth-child(odd){opacity:0;transform:translateX(-70px) rotate(-2deg);}
.proj-card:nth-child(even){opacity:0;transform:translateX(70px) rotate(2deg);}
.proj-card.in{opacity:1;transform:none;
  transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1);}

/* Testimonial cards &mdash; fan in */
.testi-card{opacity:0;transform:translateY(60px) rotate(-1deg);}
.testi-card.in{opacity:1;transform:none;
  transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1);}

/* Section heading dramatic entrance */
.s-eyebrow{opacity:0;transform:translateX(-30px);
  transition:opacity .6s ease,transform .6s ease;}
.s-eyebrow.in{opacity:1;transform:none;}
.s-title{opacity:0;transform:translateY(40px);
  transition:opacity .7s cubic-bezier(.16,1,.3,1) .1s,transform .7s cubic-bezier(.16,1,.3,1) .1s;}
.s-title.in{opacity:1;transform:none;}

/* ═══════════ ABOUT ═══════════ */
#about{background:linear-gradient(180deg,transparent,rgba(9,20,34,.5),transparent);}
.about-layout{display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:center;}

/* stat panels */
.about-vis{position:relative;height:440px;}
.dw{position:absolute;background:linear-gradient(135deg,rgba(8,18,34,.99),rgba(5,12,26,.98));border:1px solid;backdrop-filter:blur(20px);overflow:hidden;transition:border-color .4s,box-shadow .4s;}
.dw:hover{box-shadow:0 0 40px rgba(0,200,255,.18),0 0 80px rgba(0,200,255,.08);}
.dw::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--neon),transparent);opacity:.4;transition:opacity .4s;}
.dw:hover::before{opacity:1;}
.dw1{width:190px;height:185px;top:0;left:15px;border-color:rgba(0,200,255,.75);box-shadow:0 0 40px rgba(0,200,255,.18),inset 0 0 30px rgba(0,200,255,.08);}
.dw2{width:190px;height:185px;top:0;right:10px;border-color:rgba(0,200,255,.7);box-shadow:0 0 40px rgba(0,128,204,.18),inset 0 0 30px rgba(0,128,204,.08);}
.dw3{width:190px;height:185px;bottom:60px;left:15px;border-color:rgba(0,200,255,.7);box-shadow:0 0 40px rgba(0,200,255,.18),inset 0 0 30px rgba(0,200,255,.08);}
.dw4{width:190px;height:185px;bottom:60px;right:10px;border-color:rgba(0,200,255,.7);box-shadow:0 0 40px rgba(0,128,204,.18),inset 0 0 30px rgba(0,128,204,.08);}
@keyframes dwf{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
.dw-inner{padding:22px;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;gap:10px;}
.dw-ico{font-size:2.8rem;filter:drop-shadow(0 0 14px rgba(0,200,255,.9)) brightness(1.3);line-height:1;}
.dw-val{font-family:var(--fd);font-size:2.2rem;color:#ffffff;line-height:1;text-shadow:0 0 20px rgba(0,200,255,.8), 0 0 40px rgba(0,200,255,.4);}
.dw-lbl{font-family:var(--fm);font-size:.66rem;letter-spacing:.18em;color:#ffffff;text-transform:uppercase;font-weight:500;text-shadow:0 0 8px rgba(0,200,255,.3);}

/* arc ring */
.arc-wrap{display:flex;align-items:center;justify-content:center;margin:auto;}
.arc-svg{width:115px;height:115px;}
.arc-track{fill:none;stroke:rgba(0,200,255,.12);stroke-width:5;}
.arc-fill{fill:none;stroke:url(#arcG);stroke-width:5;stroke-linecap:round;stroke-dasharray:283;stroke-dashoffset:283;animation:arc-d 2s ease forwards 1s;}
@keyframes arc-d{to{stroke-dashoffset:20}}
.arc-pct{font-family:var(--fd);font-size:1.2rem;fill:var(--neon);text-anchor:middle;dominant-baseline:central;}

.about-txt p{font-size:1.02rem;font-weight:400;line-height:1.92;color:#8daec4;margin-bottom:18px;}
.cp-badges{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px;}
.cp-badge{font-family:var(--fm);font-size:.64rem;letter-spacing:.1em;padding:7px 14px;border:1px solid var(--grey-dim);color:var(--grey-mid);background:rgba(0,200,255,.03);clip-path:polygon(8px 0%,100% 0%,calc(100% - 8px) 100%,0% 100%);transition:all .3s;cursor:default;}
.cp-badge:hover{border-color:var(--neon);color:var(--neon);background:rgba(0,200,255,.07);}

/* ═══════════ COURSES ═══════════ */
#courses{background:radial-gradient(ellipse 80% 60% at 50% 50%,rgba(9,20,34,.7),transparent);}
.courses-hdr{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:56px;flex-wrap:wrap;gap:24px;}
.courses-hdr p{font-size:.95rem;font-weight:300;color:var(--grey-mid);max-width:360px;line-height:1.72;}

/* filter pills */
.filters{display:flex;gap:8px;flex-wrap:wrap;}
.filt{font-family:var(--fm);font-size:.66rem;letter-spacing:.1em;padding:8px 18px;border:1px solid var(--grey-dim);background:transparent;color:var(--grey-mid);cursor:pointer;transition:all .25s;}
.filt.on{border-color:var(--neon);background:rgba(0,200,255,.07);color:var(--neon);}
.filt:hover{border-color:rgba(0,200,255,.4);color:var(--neon);}

.cards-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}

/* 3D tilt card */
.course-card{position:relative;background:rgba(9,20,34,.92);border:1px solid var(--grey-dim);padding:32px 28px;overflow:hidden;border-radius:4px;transition:border-color .4s,box-shadow .4s;will-change:transform;cursor:pointer;}
.course-card::before{display:none;}
/* spotlight removed */
.course-card:hover{border-color:rgba(0,200,255,.35);box-shadow:0 24px 80px rgba(0,0,0,.5),0 0 40px rgba(0,200,255,.08);}
.card-streak{display:none;}
.course-card:hover .card-streak{left:160%;transition:left .7s ease;}
.card-num{position:absolute;top:14px;right:18px;font-family:var(--fd);font-size:3.8rem;font-weight:700;color:rgba(0,200,255,.04);line-height:1;pointer-events:none;}
.card-icon-wrap{
  display:flex;align-items:center;justify-content:center;
  width:80px;height:80px;border-radius:50%;
  background:radial-gradient(circle at 35% 35%,rgba(0,200,255,.18),rgba(0,60,120,.22));
  border:1px solid rgba(0,200,255,.25);
  box-shadow:0 0 28px rgba(0,200,255,.12),inset 0 0 20px rgba(0,200,255,.06);
  margin-bottom:20px;
  transition:box-shadow .4s ease, border-color .4s ease;
  position:relative;
}
.card-icon-wrap::after{
  content:'';position:absolute;inset:-4px;border-radius:50%;
  border:1px solid rgba(0,200,255,.1);
  animation:icon-ring-pulse 3s ease-in-out infinite;
}
@keyframes icon-ring-pulse{
  0%,100%{transform:scale(1);opacity:.5;}
  50%     {transform:scale(1.08);opacity:1;}
}
.course-card:hover .card-icon-wrap{
  box-shadow:0 0 44px rgba(0,200,255,.28),inset 0 0 24px rgba(0,200,255,.12);
  border-color:rgba(0,200,255,.55);
}
.card-icon{
  font-size:3rem;display:block;
  filter:drop-shadow(0 0 8px rgba(0,200,255,.5));
  transition:filter .3s ease;
}
.course-card:hover .card-icon{
  filter:drop-shadow(0 0 14px rgba(0,200,255,.75));
}
.card-domain{font-family:var(--fm);font-size:.62rem;letter-spacing:.2em;color:var(--neon);text-transform:uppercase;margin-bottom:8px;display:block;}
.card-title{font-family:var(--fd);font-size:.92rem;font-weight:700;letter-spacing:.05em;color:#fff;margin-bottom:12px;line-height:1.35;}
.card-desc{font-size:.94rem;font-weight:400;color:#8daec4;line-height:1.85;margin-bottom:20px;}
.card-tags{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:18px;}
.c-tag{font-family:var(--fm);font-size:.68rem;letter-spacing:.07em;padding:5px 11px;border:1px solid var(--grey-dim);background:rgba(0,200,255,.03);color:var(--grey-mid);}
.card-footer{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--grey-dim);padding-top:16px;}
.card-weeks{font-family:var(--fd);font-size:1.8rem;color:var(--neon);text-shadow:0 0 16px rgba(0,200,255,.4);}
.card-weeks sub{font-family:var(--fm);font-size:.55rem;color:var(--grey-mid);letter-spacing:.1em;vertical-align:middle;margin-left:4px;}
.card-lvl{font-family:var(--fm);font-size:.6rem;letter-spacing:.1em;padding:3px 9px;border:1px solid;}
.lvl-g{color:#4ecb71;border-color:rgba(78,203,113,.3);}
.lvl-o{color:#60a5fa;border-color:rgba(96,165,250,.3);}
.lvl-r{color:var(--neon);border-color:rgba(0,200,255,.3);}
.card-glow{position:absolute;bottom:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--core),var(--neon),transparent);transform:scaleX(0);transition:transform .5s;box-shadow:0 0 10px var(--neon);}
.course-card:hover .card-glow{transform:scaleX(1);}

/* ═══════════ PROJECTS ═══════════ */
#services{background:linear-gradient(180deg,transparent,rgba(9,20,34,.5),transparent);}
.tab-nav{display:flex;gap:0;border:1px solid var(--grey-dim);width:fit-content;margin-bottom:44px;}
.t-btn{font-family:var(--fm);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;padding:12px 22px;border:none;border-right:1px solid var(--grey-dim);background:transparent;color:var(--grey-mid);cursor:pointer;transition:all .3s;}
.t-btn:last-child{border-right:none;}
.t-btn.on{background:rgba(0,200,255,.07);color:var(--neon);}
.t-btn:hover{color:var(--neon);}
.t-panel{display:none;grid-template-columns:repeat(2,1fr);gap:20px;}
.t-panel.on{display:grid;}
.proj-card{background:rgba(9,20,34,.88);border:1px solid var(--grey-dim);padding:28px;border-radius:4px;position:relative;overflow:hidden;transition:all .4s;}
.proj-card:hover{border-color:rgba(0,200,255,.28);box-shadow:0 8px 40px rgba(0,0,0,.4),0 0 20px rgba(0,200,255,.07);}
.proj-strip{position:absolute;top:0;left:0;width:2px;height:0;background:linear-gradient(180deg,var(--neon),var(--core));transition:height .5s;box-shadow:2px 0 10px rgba(0,200,255,.3);}
.proj-card:hover .proj-strip{height:100%;}
.proj-tag{font-family:var(--fm);font-size:.62rem;letter-spacing:.16em;color:var(--neon);opacity:.65;margin-bottom:12px;display:block;}
.proj-icon-wrap{
  display:flex;align-items:center;justify-content:center;
  width:64px;height:64px;border-radius:50%;
  background:radial-gradient(circle at 35% 35%,rgba(0,200,255,.15),rgba(0,60,120,.18));
  border:1px solid rgba(0,200,255,.2);
  box-shadow:0 0 20px rgba(0,200,255,.09);
  margin-bottom:16px;
  transition:box-shadow .4s ease, border-color .4s ease;
}
.proj-card:hover .proj-icon-wrap{
  box-shadow:0 0 36px rgba(0,200,255,.24);
  border-color:rgba(0,200,255,.5);
}
.proj-icon{font-size:2rem;display:block;filter:drop-shadow(0 0 7px rgba(0,200,255,.4));transition:filter .3s;}
.proj-card:hover .proj-icon{filter:drop-shadow(0 0 12px rgba(0,200,255,.65));}
.proj-h{font-family:var(--fd);font-size:1rem;letter-spacing:.04em;color:#fff;margin-bottom:12px;line-height:1.3;}
.proj-p{font-size:.93rem;font-weight:400;color:#8daec4;line-height:1.8;}
.proj-link{display:inline-flex;align-items:center;gap:6px;margin-top:14px;font-family:var(--fm);font-size:.68rem;letter-spacing:.1em;color:var(--neon);text-decoration:none;transition:gap .3s,text-shadow .3s;}
.proj-link:hover{gap:10px;text-shadow:0 0 8px var(--neon);}

/* ═══════════ TESTIMONIALS ═══════════ */
#testimonials{background:radial-gradient(ellipse 70% 50% at 50% 50%,rgba(9,20,34,.5),transparent);}
.testi-outer{overflow:hidden;}
.testi-track{display:flex;gap:22px;transition:transform .7s cubic-bezier(.25,.46,.45,.94);}
.testi-card{min-width:calc(33.333% - 15px);flex-shrink:0;background:rgba(9,20,34,.92);border:1px solid var(--grey-dim);padding:32px;border-radius:4px;position:relative;overflow:hidden;transition:border-color .4s;}
.testi-card:hover{border-color:rgba(0,200,255,.22);}
.testi-card.hot{border-color:rgba(0,200,255,.2);background:rgba(12,24,40,.96);}
.tq{font-family:var(--fd);font-size:5rem;color:rgba(0,200,255,.06);position:absolute;top:-8px;right:18px;line-height:1;pointer-events:none;font-weight:700;}
.tstars{display:flex;gap:3px;margin-bottom:15px;}
.tstar{width:11px;height:11px;background:var(--neon);clip-path:polygon(50% 0%,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%);box-shadow:0 0 4px var(--neon);}
.t-text{font-size:.95rem;font-weight:400;line-height:1.85;color:var(--grey-mid);margin-bottom:24px;position:relative;z-index:1;}
.t-author{display:flex;align-items:center;gap:13px;}
.t-av{width:42px;height:42px;border-radius:50%;background:linear-gradient(135deg,var(--dark),var(--core));display:flex;align-items:center;justify-content:center;font-family:var(--fd);font-size:.82rem;color:#fff;flex-shrink:0;border:2px solid rgba(0,200,255,.2);}
.t-name{font-family:var(--fd);font-size:.8rem;letter-spacing:.05em;color:#fff;}
.t-role{font-family:var(--fm);font-size:.62rem;letter-spacing:.08em;color:var(--grey-mid);margin-top:2px;}
.sl-ctl{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:40px;}
.sl-btn{width:44px;height:44px;border:1px solid var(--grey-dim);background:transparent;color:var(--grey-mid);font-size:1.2rem;cursor:pointer;border-radius:2px;display:flex;align-items:center;justify-content:center;transition:all .3s;}
.sl-btn:hover{border-color:var(--neon);color:var(--neon);box-shadow:0 0 12px var(--glow3);}
.sl-dots{display:flex;gap:8px;}
.sl-dot{width:6px;height:6px;border-radius:50%;background:var(--grey-dim);cursor:pointer;transition:all .3s;}
.sl-dot.on{background:var(--neon);transform:scale(1.4);box-shadow:0 0 6px var(--neon);}

/* ═══════════ ENROLL CTA ═══════════ */
#enroll{padding:130px 0;position:relative;overflow:hidden;background:linear-gradient(135deg,rgba(9,20,34,.8),rgba(0,40,80,.3));border-top:1px solid var(--grey-dim);border-bottom:1px solid var(--grey-dim);}
.enroll-glow{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 65% 80% at 50% 100%,rgba(0,128,204,.1),transparent 60%);}
.enroll-inner{max-width:680px;margin:0 auto;text-align:center;position:relative;z-index:2;}
.enroll-inner .s-title{margin-bottom:16px;}
.enroll-p{font-size:1rem;font-weight:300;color:var(--grey-mid);margin-bottom:40px;line-height:1.82;}
.enroll-row{display:flex;gap:12px;max-width:480px;margin:0 auto;}
.e-inp{flex:1;padding:14px 20px;background:rgba(9,20,34,.9);border:1px solid var(--grey-dim);color:#fff;font-family:var(--fm);font-size:.8rem;letter-spacing:.05em;border-radius:2px;outline:none;transition:border-color .3s;}
.e-inp:focus{border-color:rgba(0,200,255,.45);box-shadow:0 0 18px var(--glow3);}
.e-inp::placeholder{color:var(--grey-mid);}
#eMsg{display:none;margin-top:14px;font-family:var(--fm);font-size:.76rem;letter-spacing:.1em;color:var(--neon);}

/* ═══════════ FOOTER ═══════════ */
footer{background:var(--void2);border-top:1px solid var(--grey-dim);padding:80px 5% 36px;}
.foot-g{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:60px;max-width:1200px;margin:0 auto;padding-bottom:60px;border-bottom:1px solid var(--grey-ghost);}
.foot-logo-wrap p{font-size:.86rem;font-weight:300;color:var(--grey-mid);line-height:1.8;max-width:260px;margin-top:14px;}
.foot-soc{display:flex;gap:10px;margin-top:22px;}
.fsoc{width:36px;height:36px;border:1px solid var(--grey-dim);background:transparent;color:var(--grey-mid);font-size:.78rem;display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:2px;transition:all .3s;text-decoration:none;}
.fsoc:hover{border-color:var(--neon);color:var(--neon);background:var(--glow3);}
.foot-col h6{font-family:var(--fm);font-size:.62rem;letter-spacing:.24em;text-transform:uppercase;color:var(--grey-bright);margin-bottom:20px;}
.foot-col ul{list-style:none;display:flex;flex-direction:column;gap:12px;}
.foot-col a{font-size:.88rem;font-weight:300;color:var(--grey-mid);text-decoration:none;transition:color .3s;display:flex;align-items:center;gap:7px;}
.foot-col a::before{content:'›';color:rgba(0,200,255,.55);transition:transform .3s;font-size:1rem;}
.foot-col a:hover{color:var(--neon);}
.foot-col a:hover::before{transform:translateX(4px);}
.foot-bot{max-width:1200px;margin:0 auto;padding:20px 0 32px;display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--grey-ghost);}
.foot-bot p{font-size:.78rem;color:var(--grey-dim);}
.foot-bot span{color:var(--neon);}

/* MOB NAV */
.mob-nav{display:none;position:fixed;top:72px;left:0;right:0;bottom:0;background:rgba(2,4,8,.98);backdrop-filter:blur(24px);z-index:999;flex-direction:column;align-items:center;justify-content:center;gap:40px;}
.mob-nav.open{display:flex;}
.mob-nav a{font-family:var(--fd);font-size:1.6rem;letter-spacing:.12em;color:#fff;text-decoration:none;transition:color .3s;}
.mob-nav a:hover{color:var(--neon);}

/* RESPONSIVE */
@media(max-width:1024px){
  .hero-inner{grid-template-columns:1fr;}
  .hero-right{display:none;}
  .about-layout{grid-template-columns:1fr;}
  .about-vis{display:none;}
  .cards-grid{grid-template-columns:repeat(2,1fr);}
  .foot-g{grid-template-columns:1fr 1fr;gap:40px;}
  .testi-card{min-width:calc(50% - 11px);}
}
@media(max-width:768px){
  .nav-ul,.nav-cta{display:none;}
  .ham{display:flex;}
  .cards-grid{grid-template-columns:1fr;}
  .t-panel.on{grid-template-columns:1fr;}
  .testi-card{min-width:100%;}
  .hstat{padding:16px 10px;}
  .enroll-row{flex-direction:column;}
  .foot-g{grid-template-columns:1fr;gap:30px;}
  .foot-bot{flex-direction:column;gap:8px;text-align:center;}
  .courses-hdr{flex-direction:column;align-items:flex-start;}
}

/* ═══════════════════════════════════════════════════
   PER-SECTION ANIMATIONS
═══════════════════════════════════════════════════ */

/*  ABOUT: animated hex grid topo lines  */
#about { overflow: hidden; }
.about-topo {
  position: absolute; inset: 0; pointer-events: none; z-index: 0;
  opacity: 0.06;
  background-image:
    radial-gradient(circle 260px at 80% 50%, rgba(0,200,255,.6) 0%, transparent 100%),
    radial-gradient(circle 180px at 20% 70%, rgba(0,128,204,.4) 0%, transparent 100%);
  animation: topo-drift 12s ease-in-out infinite;
}
@keyframes topo-drift {
  0%,100% { transform: translate(0,0) scale(1); }
  33% { transform: translate(20px,-15px) scale(1.04); }
  66% { transform: translate(-15px,10px) scale(.97); }
}
.about-circuit-lines {
  position: absolute; inset: 0; pointer-events: none; z-index: 0; opacity: 0.06;
  background-image:
    linear-gradient(rgba(0,200,255,.6) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0,200,255,.6) 1px, transparent 1px);
  background-size: 42px 42px;
  mask-image: radial-gradient(ellipse 80% 80% at 20% 50%, black 0%, transparent 70%);
  animation: circuit-shift 18s linear infinite;
}
@keyframes circuit-shift {
  from { background-position: 0 0; }
  to { background-position: 42px 42px; }
}
/* pulsing dot on circuit nodes */
.circuit-node {
  position: absolute; width: 5px; height: 5px; border-radius: 50%;
  background: var(--neon); box-shadow: 0 0 10px var(--neon);
  animation: node-pulse 2.5s ease-in-out infinite;
  pointer-events: none;
}
@keyframes node-pulse { 0%,100%{opacity:.3;transform:scale(1)} 50%{opacity:1;transform:scale(1.8)} }

/*  ABOUT: floating stat panels get data-pulse  */
.dw::after {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(135deg, transparent 60%, rgba(0,200,255,.06) 100%);
  animation: dw-sheen 6s ease-in-out infinite;
  pointer-events: none;
}
@keyframes dw-sheen {
  0%,100%{opacity:0} 50%{opacity:1}
}

/*  COURSES: floating code fragments  */
#courses { overflow: hidden; }
.code-frag {
  position: absolute; font-family: var(--fm); font-size: .62rem; letter-spacing: .04em;
  color: rgba(0,200,255,.18); pointer-events: none; white-space: nowrap;
  animation: frag-float linear infinite;
  user-select: none;
}
@keyframes frag-float {
  0%   { transform: translateY(100px) rotate(-2deg); opacity: 0; }
  10%  { opacity: 1; }
  90%  { opacity: .7; }
  100% { transform: translateY(-120px) rotate(2deg); opacity: 0; }
}

/* Course filter &mdash; animated underline slide */
.filt { position: relative; overflow: hidden; }
.filt::after {
  content: ''; position: absolute; bottom: 0; left: -100%; width: 100%; height: 1px;
  background: var(--neon); box-shadow: 0 0 6px var(--neon);
  transition: left .35s ease;
}
.filt.on::after, .filt:hover::after { left: 0; }

/* course card: corner decoration appears on hover */
/* corners removed */

/* Course card icon bounce on hover */
/* card-icon simple */
.course-card .card-icon{transition:filter .4s ease;}
.course-card:hover .card-icon{filter:drop-shadow(0 0 12px rgba(0,200,255,.6));}

/*  SERVICES / PROJECTS: beam sweep across section  */
#services { overflow: hidden; }
.services-beam {
  position: absolute; top: 0; left: -60%; width: 40%; height: 100%;
  background: linear-gradient(90deg, transparent, rgba(0,200,255,.04), transparent);
  animation: beam-sweep 8s ease-in-out infinite;
  pointer-events: none; z-index: 0; transform: skewX(-12deg);
}
@keyframes beam-sweep { 0%{left:-60%} 100%{left:120%} }

/* Proj card: glowing scan line on hover */
.proj-card { overflow: hidden; }
.proj-scan {
  position: absolute; left: 0; right: 0; height: 1px;
  background: linear-gradient(90deg, transparent, var(--neon), transparent);
  top: -1px; opacity: 0;
  box-shadow: 0 0 8px var(--neon);
  transition: opacity .3s;
  pointer-events: none;
  animation: proj-scan-move 3s linear infinite paused;
}
.proj-card:hover .proj-scan {
  opacity: 1;
  animation-play-state: running;
}
@keyframes proj-scan-move { from{top:-1px} to{top:100%} }

/* tab button indicator animation */
.t-btn { position: relative; }
.t-btn.on::after {
  content: ''; position: absolute; bottom: -1px; left: 0; width: 100%; height: 1px;
  background: var(--neon); box-shadow: 0 0 8px var(--neon);
  animation: tab-glow 1.5s ease-in-out infinite;
}
@keyframes tab-glow { 0%,100%{box-shadow:0 0 8px var(--neon)} 50%{box-shadow:0 0 20px var(--neon)} }

/*  TESTIMONIALS: card shimmer + floating stars  */
#testimonials { overflow: hidden; }
.testi-star {
  position: absolute; pointer-events: none;
  color: var(--neon); font-size: .7rem; opacity: 0;
  animation: star-drift linear infinite;
  user-select: none;
}
@keyframes star-drift {
  0%   { opacity: 0; transform: translateY(0) rotate(0deg) scale(.5); }
  15%  { opacity: .6; }
  85%  { opacity: .4; }
  100% { opacity: 0; transform: translateY(-80px) rotate(180deg) scale(1.2); }
}
/* Card entrance animation &mdash; cards slide in from alternating sides */
.testi-card { transition: border-color .4s, box-shadow .4s; }
.testi-card:hover {
  box-shadow: 0 0 40px rgba(0,200,255,.08), 0 20px 60px rgba(0,0,0,.5);
}
/* Testi card inner glow pulse on 'hot' */
.testi-card.hot {
  animation: hot-pulse 4s ease-in-out infinite;
}
@keyframes hot-pulse {
  0%,100% { box-shadow: 0 0 0 1px rgba(0,200,255,.2); }
  50%     { box-shadow: 0 0 30px rgba(0,200,255,.1), 0 0 0 1px rgba(0,200,255,.4); }
}

/*  ENROLL: live data stream effect behind form  */
#enroll { overflow: hidden; }
.enroll-stream {
  position: absolute; inset: 0; pointer-events: none; z-index: 1;
  opacity: 0.04;
}
/* ripple rings on enroll section */
.enroll-ripple {
  position: absolute; border-radius: 50%; border: 1px solid var(--neon);
  animation: er-expand linear infinite;
  pointer-events: none; opacity: 0;
}
@keyframes er-expand {
  0%   { width: 0; height: 0; opacity: .5; top: 50%; left: 50%; transform: translate(-50%,-50%); }
  100% { width: 800px; height: 800px; opacity: 0; top: 50%; left: 50%; transform: translate(-50%,-50%); }
}

/* Input field: animated border glow typing effect */
.e-inp:focus {
  border-color: var(--neon) !important;
  box-shadow: 0 0 0 1px rgba(0,200,255,.2), 0 0 20px rgba(0,200,255,.12) !important;
  animation: input-breathe 2s ease-in-out infinite;
}
@keyframes input-breathe {
  0%,100% { box-shadow: 0 0 0 1px rgba(0,200,255,.2), 0 0 20px rgba(0,200,255,.12); }
  50%     { box-shadow: 0 0 0 2px rgba(0,200,255,.35), 0 0 35px rgba(0,200,255,.2); }
}

/*  FOOTER: grid animation  */
footer { overflow: hidden; position: relative; z-index: 3; }
.foot-glow-line {
  position: absolute; left: 0; right: 0; height: 1px;
  background: linear-gradient(90deg, transparent, var(--neon), transparent);
  opacity: 0; animation: foot-line-scroll 6s ease-in-out infinite;
  pointer-events: none;
}
@keyframes foot-line-scroll {
  0%,100% { opacity: 0; top: 0; }
  10%     { opacity: .4; }
  90%     { opacity: .2; }
  100%    { opacity: 0; top: 100%; }
}

/*  SECTION TRANSITION: diagonal slash decorations  */
.sec-slash {
  position: absolute; pointer-events: none; overflow: hidden;
  z-index: 0;
}
.sec-slash::before {
  content: ''; position: absolute;
  width: 1px; background: linear-gradient(180deg, transparent, rgba(0,200,255,.2), transparent);
  animation: slash-grow 3s ease-in-out infinite;
}
@keyframes slash-grow { 0%,100%{height:0;top:50%} 50%{height:100%;top:0} }

/*  GENERAL: magnetic button hover  */
.btn-fire, .nav-cta {
  transition: box-shadow .3s, transform .2s, background .3s, color .3s;
}
.btn-fire:active { transform: scale(.97); }

/*  ABOUT vis: number count-up animation  */
.dw-val { animation: none; }
.dw-val.counting { animation: count-flash .15s ease; }
@keyframes count-flash { 0%,100%{color:var(--neon)} 50%{color:var(--cyan2)} }



/*  MODAL STYLES  */
.modal-ov{position:fixed;inset:0;z-index:90000;background:rgba(2,4,8,.88);backdrop-filter:blur(18px);display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;pointer-events:none;transition:opacity .3s;}
.modal-ov.open{opacity:1;pointer-events:all;}
.modal-box{position:relative;width:100%;max-width:740px;max-height:88vh;overflow-y:auto;background:rgba(9,20,34,.99);border:1px solid rgba(0,200,255,.22);border-radius:5px;box-shadow:0 0 80px rgba(0,200,255,.1),0 40px 120px rgba(0,0,0,.8);transform:translateY(28px) scale(.97);transition:transform .4s cubic-bezier(.34,1.56,.64,1);scrollbar-width:thin;scrollbar-color:rgba(0,200,255,.25) transparent;}
.modal-ov.open .modal-box{transform:none;}
.m-top{height:2px;background:linear-gradient(90deg,transparent,var(--core),var(--neon),var(--cyan2),transparent);box-shadow:0 0 14px rgba(0,200,255,.5);}
.m-code-bg{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0;border-radius:5px;}
.m-close-btn{position:absolute;top:14px;right:16px;width:30px;height:30px;border-radius:50%;background:rgba(0,200,255,.07);border:1px solid rgba(0,200,255,.18);color:var(--neon);font-size:.9rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .25s;z-index:10;}
.m-close-btn:hover{background:rgba(0,200,255,.18);transform:rotate(90deg);}
.m-body{padding:34px 38px 38px;position:relative;z-index:1;}
.m-hdr{display:flex;align-items:flex-start;gap:18px;margin-bottom:22px;}
.m-ico{font-size:2.8rem;flex-shrink:0;filter:drop-shadow(0 0 14px rgba(0,200,255,.4));}
.m-dom{font-family:var(--fm);font-size:.6rem;letter-spacing:.22em;color:var(--neon);text-transform:uppercase;margin-bottom:5px;display:block;}
.m-title{font-family:var(--fd);font-size:1.3rem;font-weight:700;letter-spacing:.04em;color:#fff;line-height:1.18;margin-bottom:8px;}
.m-badges{display:flex;gap:7px;flex-wrap:wrap;margin-top:6px;}
.m-badge{font-family:var(--fm);font-size:.6rem;letter-spacing:.1em;padding:3px 10px;border:1px solid var(--grey-dim);color:var(--grey-mid);border-radius:2px;}
.m-badge.hi{border-color:rgba(0,200,255,.3);color:var(--neon);background:rgba(0,200,255,.05);}
.m-divider{height:1px;background:linear-gradient(90deg,transparent,var(--grey-dim),transparent);margin:18px 0;}
.m-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:22px;}
.mst{background:rgba(0,200,255,.03);border:1px solid var(--grey-dim);padding:13px;text-align:center;border-radius:3px;}
.mst-n{font-family:var(--fd);font-size:1.4rem;color:var(--neon);display:block;text-shadow:0 0 12px rgba(0,200,255,.3);}
.mst-l{font-family:var(--fm);font-size:.56rem;letter-spacing:.14em;color:var(--grey-mid);text-transform:uppercase;margin-top:3px;}
.m-sec-h{font-family:var(--fm);font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;color:var(--neon);margin-bottom:11px;display:flex;align-items:center;gap:10px;}
.m-sec-h::after{content:'';flex:1;height:1px;background:linear-gradient(90deg,var(--grey-dim),transparent);}
.m-desc{font-size:.96rem;font-weight:400;line-height:1.88;color:#9dbad0;margin-bottom:22px;}
.m-curric{display:flex;flex-direction:column;gap:8px;margin-bottom:22px;}
.ci{display:flex;align-items:flex-start;gap:10px;padding:10px 13px;background:rgba(9,20,34,.7);border:1px solid var(--grey-ghost);border-radius:2px;transition:border-color .3s;}
.ci:hover{border-color:rgba(0,200,255,.18);}
.ci-n{font-family:var(--fm);font-size:.6rem;color:var(--neon);flex-shrink:0;width:22px;}
.ci-t{font-size:.9rem;font-weight:400;color:#c0d4e4;line-height:1.6;}
.m-tools{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:22px;}
.tool-chip{font-family:var(--fm);font-size:.68rem;letter-spacing:.07em;padding:6px 13px;border:1px solid rgba(0,200,255,.22);color:#c8dce8;background:rgba(0,200,255,.06);border-radius:3px;}
.m-actions{display:flex;gap:12px;flex-wrap:wrap;}

/*  REGISTER MODAL  */
.reg-ov{position:fixed;inset:0;z-index:95000;background:rgba(2,4,8,.92);backdrop-filter:blur(20px);display:flex;align-items:center;justify-content:center;padding:16px;opacity:0;pointer-events:none;transition:opacity .3s;}
.reg-ov.open{opacity:1;pointer-events:all;}
.reg-box{position:relative;width:100%;max-width:520px;background:rgba(9,20,34,.99);border:1px solid rgba(0,200,255,.28);border-radius:5px;box-shadow:0 0 100px rgba(0,200,255,.14),0 40px 120px rgba(0,0,0,.8);transform:translateY(28px) scale(.96);transition:transform .4s cubic-bezier(.34,1.56,.64,1);overflow:hidden;}
.reg-ov.open .reg-box{transform:none;}
.reg-code-bg{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0;}
.reg-body{padding:16px 22px 16px;position:relative;z-index:1;}
.reg-close-btn{position:absolute;top:14px;right:16px;z-index:10;width:30px;height:30px;border-radius:50%;background:rgba(0,200,255,.07);border:1px solid rgba(0,200,255,.18);color:var(--neon);font-size:.9rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .25s;}
.reg-close-btn:hover{background:rgba(0,200,255,.18);transform:rotate(90deg);}
.reg-ey{font-family:var(--fm);font-size:.62rem;letter-spacing:.24em;color:var(--neon);text-transform:uppercase;margin-bottom:8px;}
.reg-h{font-family:var(--fd);font-size:1.3rem;font-weight:700;letter-spacing:.04em;color:#fff;margin-bottom:4px;line-height:1.1;}
.reg-h em{font-style:normal;background:linear-gradient(135deg,var(--core),var(--neon));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.reg-sub{font-size:.84rem;font-weight:300;color:var(--grey-mid);margin-bottom:12px;line-height:1.5;}
.reg-for{font-family:var(--fm);font-size:.6rem;letter-spacing:.14em;color:var(--neon);opacity:.7;margin-bottom:16px;}
.f-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:8px;}
.f-row.full{grid-template-columns:1fr;margin-bottom:8px;}
.f-grp{display:flex;flex-direction:column;gap:4px;}
.f-grp label{font-family:var(--fm);font-size:.56rem;letter-spacing:.12em;color:var(--grey-mid);text-transform:uppercase;}
.f-grp input,.f-grp select,.f-grp textarea{background:rgba(2,4,8,.85);border:1px solid var(--grey-dim);color:#fff;font-family:var(--fb);font-size:.85rem;font-weight:300;padding:8px 12px;border-radius:2px;outline:none;transition:border-color .3s,box-shadow .3s;-webkit-appearance:none;}
.f-grp input:focus,.f-grp select:focus,.f-grp textarea:focus{border-color:var(--neon);box-shadow:0 0 14px rgba(0,200,255,.1);}
.f-grp input::placeholder,.f-grp textarea::placeholder{color:var(--grey-mid);}
.f-grp select{cursor:pointer;}.f-grp select[multiple]{height:auto;min-height:96px;}.f-grp select option{background:#091422;color:#fff;padding:4px 8px;}
.cc-row{display:grid;grid-template-columns:68px 1fr 1fr;gap:8px;margin-bottom:8px;}
.f-grp textarea{resize:none;min-height:44px;}
.reg-agree{display:flex;align-items:flex-start;gap:9px;margin:8px 0 10px;}
.reg-agree input[type=checkbox]{width:15px;height:15px;accent-color:var(--neon);flex-shrink:0;margin-top:2px;cursor:pointer;}
.reg-agree label{font-size:.8rem;font-weight:300;color:var(--grey-mid);line-height:1.5;cursor:pointer;}
.reg-agree label a{color:var(--neon);text-decoration:none;}
.reg-submit{width:100%;padding:11px;font-family:var(--fm);font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;font-weight:700;background:linear-gradient(135deg,var(--dark),var(--core),var(--neon));color:#fff;border:none;border-radius:2px;cursor:pointer;position:relative;overflow:hidden;transition:box-shadow .3s,transform .2s;}
.reg-submit::after{content:'';position:absolute;inset:0;background:linear-gradient(135deg,transparent,rgba(255,255,255,.15),transparent);transform:translateX(-100%);transition:transform .5s;}
.reg-submit:hover::after{transform:translateX(100%);}
.reg-submit:hover{box-shadow:0 0 36px rgba(0,200,255,.38);transform:translateY(-2px);}
.reg-success{display:none;text-align:center;padding:24px 0 10px;}

/*  CODE FRAG  */
.code-frag{position:absolute;font-family:var(--fm);font-size:.6rem;letter-spacing:.04em;color:rgba(0,200,255,.16);pointer-events:none;white-space:nowrap;user-select:none;animation:cfloat linear forwards;}
@keyframes cfloat{0%{opacity:0;transform:translateY(50px)}10%{opacity:1}90%{opacity:.6}100%{opacity:0;transform:translateY(-160px)}}

/* clickable cards */
.course-card,.proj-card{cursor:pointer;}
@media(max-width:768px){.f-row{grid-template-columns:1fr;}}


/*  ADVANCED SCROLL EFFECTS  */

/* Progress bar fills on scroll &mdash; already exists, boost visibility */
#pgbar{height:3px;background:linear-gradient(90deg,var(--core),var(--neon),var(--cyan2));
  box-shadow:0 0 18px var(--glow),0 0 6px var(--glow);}

/* Section &mdash; subtle bg flash on enter */
section{transition:background .5s ease;}

/* Chip pulse when it flies in */
.hero-chip[data-fly="down"].in{animation:chip-arrive .6s cubic-bezier(.16,1,.3,1) forwards;}
@keyframes chip-arrive{
  0%{opacity:0;transform:translateY(-30px);}
  60%{opacity:1;transform:translateY(4px);}
  100%{opacity:1;transform:none;}
}

/* Hero paragraph left-slide with blur clear */
.hero-p[data-fly="left"].in{
  animation:para-slide .8s cubic-bezier(.16,1,.3,1) forwards;
}
@keyframes para-slide{
  from{opacity:0;transform:translateX(-80px);}
  to{opacity:1;transform:none;}
}

/* Enroll section zoom with bounce */
[data-fly="zoom"].in{
  animation:zoom-arrive .9s cubic-bezier(.16,1,.3,1) forwards;
}
@keyframes zoom-arrive{
  from{opacity:0;transform:scale(.65) translateY(40px);}
  60%{opacity:1;transform:scale(1.03) translateY(-4px);}
  to{opacity:1;transform:none;}
}

/* Tab bar &mdash; slam down */
[data-fly="slam"].in{
  animation:slam-down .65s cubic-bezier(.55,-.1,.15,1.3) forwards;
}
@keyframes slam-down{
  from{opacity:0;transform:translateY(-50px) scaleY(1.08);}
  to{opacity:1;transform:none;}
}

/* Course card flip-in override */
.course-card.in{
  animation:card-flip .75s cubic-bezier(.16,1,.3,1) both;
}
@keyframes card-flip{
  from{opacity:0;transform:perspective(600px) rotateX(22deg) translateY(55px) scale(.95);}
  to{opacity:1;transform:none;}
}

/* Proj card left swing in */
.proj-card:nth-child(odd).in{
  animation:proj-left .7s cubic-bezier(.16,1,.3,1) both;
}
@keyframes proj-left{
  from{opacity:0;transform:translateX(-80px) rotate(-3deg);}
  to{opacity:1;transform:none;}
}
.proj-card:nth-child(even).in{
  animation:proj-right .7s cubic-bezier(.16,1,.3,1) both;
}
@keyframes proj-right{
  from{opacity:0;transform:translateX(80px) rotate(3deg);}
  to{opacity:1;transform:none;}
}

/* Testi card fan in */
.testi-card.in{
  animation:testi-fan .7s cubic-bezier(.16,1,.3,1) both;
}
@keyframes testi-fan{
  from{opacity:0;transform:translateY(70px) rotate(-2deg) scale(.96);}
  to{opacity:1;transform:none;}
}

/* About panels scatter-assemble */

@keyframes dw-tl{from{opacity:0;transform:translate(-70px,-50px) rotate(-5deg) scale(.85);}to{opacity:1;transform:none;}}

@keyframes dw-tr{from{opacity:0;transform:translate(70px,-50px) rotate(5deg) scale(.85);}to{opacity:1;transform:none;}}

@keyframes dw-bl{from{opacity:0;transform:translate(-70px,50px) rotate(3deg) scale(.85);}to{opacity:1;transform:none;}}

@keyframes dw-br{from{opacity:0;transform:translate(70px,50px) rotate(-3deg) scale(.85);}to{opacity:1;transform:none;}}

/* Stat numbers count &mdash; pop when hero stats arrive */
.hst.in{animation:hst-pop .6s cubic-bezier(.16,1,.3,1) both;}
@keyframes hst-pop{
  from{opacity:0;transform:translateY(45px) scale(.88);}
  65%{transform:translateY(-6px) scale(1.04);}
  to{opacity:1;transform:none;}
}

/* Right-side hero fly with rotation */
[data-fly="right"].in{
  animation:right-fly .85s cubic-bezier(.16,1,.3,1) forwards;
}
@keyframes right-fly{
  from{opacity:0;transform:translateX(100px) rotate(4deg);}
  to{opacity:1;transform:none;}
}

/* Section heading eyebrow slide */
.s-eyebrow.in{animation:ey-slide .6s ease forwards;}
@keyframes ey-slide{from{opacity:0;transform:translateX(-36px);}to{opacity:1;transform:none;}}

/* Section heading title rise */
.s-title.in{animation:title-rise .7s cubic-bezier(.16,1,.3,1) .1s forwards;}
@keyframes title-rise{from{opacity:0;transform:translateY(44px);}to{opacity:1;transform:none;}}

/* Scan line styles */
.sec-scan{position:absolute;top:0;left:-100%;width:100%;height:2px;
  background:linear-gradient(90deg,transparent,var(--neon),var(--cyan2),transparent);
  pointer-events:none;z-index:10;opacity:0;}
.sec-scan.sweep{animation:scan-sweep 1.1s cubic-bezier(.4,0,.2,1) forwards;}
@keyframes scan-sweep{
  0%{left:-100%;opacity:.8;}
  70%{opacity:.6;}
  100%{left:110%;opacity:0;}
}


/*  TYPOGRAPHY READABILITY OVERRIDES  */
/* Course cards */
.card-domain  { font-size:.7rem!important;letter-spacing:.15em!important;font-weight:500!important; }
.card-title   { font-size:1.1rem!important;letter-spacing:.02em!important;line-height:1.25!important; }
.card-desc    { font-size:1.02rem!important;font-weight:400!important;color:#b8d0e2!important;line-height:1.86!important; }
.card-num     { font-size:4rem!important;color:rgba(0,200,255,.04)!important; }
.card-weeks   { font-size:1.8rem!important; }
.card-weeks sub { font-size:.58rem!important; }
/* Tags */
.c-tag        { font-size:.7rem!important;padding:5px 11px!important;border-color:rgba(0,200,255,.2)!important;color:#96c0d8!important; }
.card-lvl     { font-size:.67rem!important;padding:4px 10px!important; }
/* Project cards */
.proj-tag     { font-size:.65rem!important;letter-spacing:.15em!important;color:var(--neon)!important;opacity:.8!important; }
.proj-icon    { font-size:2.2rem!important; }
.proj-h       { font-size:1.06rem!important;letter-spacing:.03em!important;margin-bottom:12px!important; }
.proj-p       { font-size:1.02rem!important;font-weight:400!important;color:#b8d0e2!important;line-height:1.86!important; }
.proj-link    { font-size:.74rem!important;letter-spacing:.09em!important; }
/* Testimonials */
.t-text       { font-size:1.02rem!important;font-weight:400!important;color:#b8d0e2!important;line-height:1.9!important; }
.t-name       { font-size:.86rem!important; }
.t-role       { font-size:.67rem!important; }
/* About */
.about-txt p  { font-size:1.06rem!important;font-weight:400!important;color:#b8d0e2!important;line-height:1.96!important; }
.dw-val       { font-size:2.3rem!important; color:#ffffff!important; text-shadow:0 0 20px rgba(0,200,255,.8)!important; }
.dw-lbl       { font-size:.67rem!important;letter-spacing:.15em!important;color:#ffffff!important; }
/* Section headers */
.s-eyebrow    { font-size:.74rem!important;letter-spacing:.25em!important; }
/* Hero paragraph */
.hero-p       { font-size:1.08rem!important;font-weight:400!important;color:#b8d0e2!important;line-height:1.96!important; }
/* Nav links */
.nav-ul a     { font-size:.74rem!important;letter-spacing:.12em!important; }


/*  COURSE CARD FLOAT (after fly-in completes)  */
/* Use animation-delay to start float AFTER the flip-in (0.75s) */
.course-card:nth-child(1).in{animation:card-flip .75s cubic-bezier(.16,1,.3,1) both,cf-float1 7s ease-in-out 0.9s infinite!important;}
.course-card:nth-child(2).in{animation:card-flip .75s cubic-bezier(.16,1,.3,1) both,cf-float2 9s ease-in-out 0.9s infinite!important;}
.course-card:nth-child(3).in{animation:card-flip .75s cubic-bezier(.16,1,.3,1) both,cf-float3 8s ease-in-out 0.9s infinite!important;}
.course-card:nth-child(4).in{animation:card-flip .75s cubic-bezier(.16,1,.3,1) both,cf-float1 10s ease-in-out 0.9s infinite!important;}
.course-card:nth-child(5).in{animation:card-flip .75s cubic-bezier(.16,1,.3,1) both,cf-float2 8.5s ease-in-out 0.9s infinite!important;}
.course-card:nth-child(6).in{animation:card-flip .75s cubic-bezier(.16,1,.3,1) both,cf-float3 9.5s ease-in-out 0.9s infinite!important;}

/* Stop float on hover &mdash; let tilt take over */
.course-card:hover{animation-play-state:paused!important;}

/* Subtle vertical float &mdash; small amplitude, never clipped */
@keyframes cf-float1{0%,100%{transform:translateY(0)}40%{transform:translateY(-7px)}70%{transform:translateY(-3px)}}
@keyframes cf-float2{0%,100%{transform:translateY(0)}30%{transform:translateY(-9px)}65%{transform:translateY(-4px)}}
@keyframes cf-float3{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}80%{transform:translateY(-2px)}}

/*  PROJECT CARD FLOAT  */
/* Swing in THEN float &mdash; each panel card gets its own rhythm */
.proj-card:nth-child(1).in{animation:proj-left .7s cubic-bezier(.16,1,.3,1) both,pf-float1 7.5s ease-in-out 0.85s infinite!important;}
.proj-card:nth-child(2).in{animation:proj-right .7s cubic-bezier(.16,1,.3,1) both,pf-float2 9s ease-in-out 0.85s infinite!important;}
.proj-card:nth-child(3).in{animation:proj-left .7s cubic-bezier(.16,1,.3,1) both,pf-float3 8s ease-in-out 0.85s infinite!important;}
.proj-card:nth-child(4).in{animation:proj-right .7s cubic-bezier(.16,1,.3,1) both,pf-float1 10s ease-in-out 0.85s infinite!important;}

/* Stop float when hovered */
.proj-card:hover{animation-play-state:paused!important;}

/* Project float &mdash; slightly more X movement for variety */
@keyframes pf-float1{0%,100%{transform:translate(0,0) rotate(0)}30%{transform:translate(2px,-8px) rotate(.2deg)}70%{transform:translate(-1px,-4px) rotate(-.1deg)}}
@keyframes pf-float2{0%,100%{transform:translate(0,0) rotate(0)}25%{transform:translate(-2px,-9px) rotate(-.2deg)}65%{transform:translate(1px,-5px) rotate(.15deg)}}
@keyframes pf-float3{0%,100%{transform:translate(0,0) rotate(0)}40%{transform:translate(1px,-10px) rotate(.18deg)}75%{transform:translate(-2px,-4px) rotate(-.1deg)}}


/* ══════════════════════════════════════════
   ABOUT STAT PANELS &mdash; FLOAT SYSTEM
   Phase 1: scatter-assemble fly-in on scroll
   Phase 2: continuous gentle float after
══════════════════════════════════════════ */

/* Scatter start positions for fly-in */
.dw1{opacity:0;transform:translate(-65px,-50px) rotate(-5deg) scale(.85);}
.dw2{opacity:0;transform:translate(65px,-50px)  rotate( 5deg) scale(.85);}
.dw3{opacity:0;transform:translate(-65px, 50px) rotate( 3deg) scale(.85);}
.dw4{opacity:0;transform:translate(65px, 50px)  rotate(-3deg) scale(.85);}

/* When .in added: fly-in first, then float continuously.
   animation shorthand: name duration easing delay fill-mode */
.dw1.in{
  animation:
    dw-fly-in .9s cubic-bezier(.16,1,.3,1) 0s    both,
    dw-float1  7s ease-in-out              1.1s  infinite;
}
.dw2.in{
  animation:
    dw-fly-in .9s cubic-bezier(.16,1,.3,1) .12s  both,
    dw-float2  9s ease-in-out              1.2s  infinite;
}
.dw3.in{
  animation:
    dw-fly-in .9s cubic-bezier(.16,1,.3,1) .24s  both,
    dw-float3  8s ease-in-out              1.3s  infinite;
}
.dw4.in{
  animation:
    dw-fly-in .9s cubic-bezier(.16,1,.3,1) .36s  both,
    dw-float4 10s ease-in-out              1.4s  infinite;
}

/* Fly-in: from scattered → natural position */
@keyframes dw-fly-in{
  from{opacity:0;transform:translate(var(--dx,0),var(--dy,0)) rotate(var(--dr,0)) scale(.85);}
  to  {opacity:1;transform:translate(0,0) rotate(0) scale(1);}
}

/* Post-fly-in float: small gentle movement, each panel unique */
@keyframes dw-float1{
  0%,100%{transform:translate(0,0) rotate(0deg);}
  30%    {transform:translate(4px,-10px) rotate(.3deg);}
  65%    {transform:translate(-3px,-6px) rotate(-.2deg);}
}
@keyframes dw-float2{
  0%,100%{transform:translate(0,0) rotate(0deg);}
  25%    {transform:translate(-5px,-8px) rotate(-.3deg);}
  60%    {transform:translate(3px,-12px) rotate(.2deg);}
}
@keyframes dw-float3{
  0%,100%{transform:translate(0,0) rotate(0deg);}
  40%    {transform:translate(3px,-9px) rotate(.25deg);}
  75%    {transform:translate(-4px,-5px) rotate(-.15deg);}
}
@keyframes dw-float4{
  0%,100%{transform:translate(0,0) rotate(0deg);}
  35%    {transform:translate(-4px,-11px) rotate(-.2deg);}
  70%    {transform:translate(5px,-7px) rotate(.3deg);}
}

/* Hover: pause float, add glow */
.dw:hover{
  animation-play-state:paused;
  box-shadow:0 0 30px rgba(0,200,255,.12),0 8px 40px rgba(0,0,0,.4)!important;
  border-color:rgba(0,200,255,.5)!important;
}


/* Float icon hover &mdash; pure CSS, no JS */
.fi-wrap:hover .float-icon{


  box-shadow:0 0 32px rgba(0,200,255,.6),0 0 70px rgba(0,200,255,.2);
  border-color:rgba(0,200,255,.9);
}
.fi-wrap:hover .float-icon::after{opacity:1;}


/* Hero sphere &mdash; simple fade in, no transform shift */
.hero-right{opacity:0;transition:opacity 1.2s ease .4s;}
.hero-right.ready{opacity:1;}


/*  COURSE CARD HOVER &mdash; clean & simple  */
.course-card{
  transition: border-color .3s ease, box-shadow .3s ease, transform .3s ease;
}
.course-card:hover{
  border-color: rgba(0,200,255,.45);
  box-shadow: 0 8px 40px rgba(0,0,0,.45), 0 0 24px rgba(0,200,255,.09);
  transform: translateY(-6px);
}
.course-card:hover .card-glow{ transform: scaleX(1); }

/*  PROJ CARD HOVER &mdash; same clean lift  */
.proj-card{
  transition: border-color .3s ease, box-shadow .3s ease, transform .3s ease;
}
.proj-card:hover{
  border-color: rgba(0,200,255,.35);
  box-shadow: 0 8px 40px rgba(0,0,0,.4), 0 0 18px rgba(0,200,255,.07);
  transform: translateY(-6px);
}
.proj-card:hover .proj-strip{ height: 100%; }


/*  Icon float when card is hovered  */
@keyframes icon-float {
  0%, 100% { transform: translateY(0px);   }
  50%       { transform: translateY(-7px);  }
}
/* Float the whole disc wrapper &mdash; slow calm bob */
.course-card:hover .card-icon-wrap{
  animation: icon-float 2s ease-in-out infinite;
}
.proj-card:hover .proj-icon-wrap{
  animation: icon-float 2s ease-in-out infinite;
}

/*  GPU LAYER PROMOTION &mdash; prevents mobile flicker  */
#neural,#trail-c{transform:translateZ(0);-webkit-transform:translateZ(0);}
/* Do NOT add will-change to vignette/noise/grid — too many promoted layers causes mobile flicker */
/*  TOUCH DEVICES &mdash; hide desktop-only cursor canvas, disable paint-heavy animations  */
@media(hover:none),(pointer:coarse){
  #cur,#cur-ring,#trail-c{display:none!important;}
  body{cursor:auto!important;}
  .scan{display:none!important;}
  .orb{animation:none!important;will-change:auto;}
  /* Disable neural canvas JS on touch — handled in script block */
  #neural{display:none!important;}
}
/*  FOOTER BRAND LOGO  */
.foot-brand{text-align:center;padding:48px 0 24px;margin-top:0;}
.foot-brand-img{
  width:260px;height:260px;object-fit:contain;
  display:block;margin:0 auto;
  opacity:.28;
  filter:drop-shadow(0 0 22px rgba(0,200,255,.3)) grayscale(.3);
  border-radius:8px;
  transition:opacity .5s,filter .5s;
  -webkit-user-drag:none;
}
.foot-brand-img:hover{opacity:.48;filter:drop-shadow(0 0 36px rgba(0,200,255,.6)) grayscale(0);}

/* ── MODAL QUICK-CONTACT STRIP ── */
.m-quick-contact{margin-bottom:18px;}
.m-qc-row{display:grid;grid-template-columns:68px 1fr 1.6fr;gap:8px;margin-bottom:10px;}
.m-qc-inp{background:rgba(2,4,8,.85);border:1px solid var(--grey-dim);color:#fff;font-family:var(--fb);font-size:.84rem;padding:10px 12px;border-radius:2px;outline:none;transition:border-color .25s;width:100%;}
.m-qc-inp:focus{border-color:var(--neon);box-shadow:0 0 10px rgba(0,200,255,.1);}
.m-qc-inp::placeholder{color:var(--grey-mid);}
/* ── ENROLL ROW FULL WIDTH ── */
.enroll-row--full{flex-wrap:wrap;gap:8px;}
.enroll-row--full .btn-fire{flex:none;}

/* ── PROGRAM SELECTOR ── */
.prog-pills-label{
  font-family:var(--fm);font-size:.54rem;letter-spacing:.14em;
  color:var(--grey-mid);text-transform:uppercase;
  display:block;margin-bottom:5px;
}
.prog-pills{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:5px;
}
.prog-pill{position:relative;}
.prog-pill input[type=checkbox]{
  position:absolute;opacity:0;width:100%;height:100%;
  top:0;left:0;margin:0;cursor:pointer;z-index:1;
}
.prog-pill label{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:4px;
  padding:7px 6px;
  background:rgba(4,10,20,.9);
  border:1px solid rgba(0,200,255,.15);
  color:var(--grey-mid);
  font-family:var(--fm);font-size:.58rem;letter-spacing:.06em;text-align:center;
  cursor:pointer;border-radius:4px;
  transition:border-color .15s,background .15s,color .15s,box-shadow .15s;
  user-select:none;
  -webkit-tap-highlight-color:transparent;
  line-height:1.2;
  position:relative;z-index:0;
  pointer-events:none;
}
.prog-pill label .pill-ico{
  font-size:1.2rem;line-height:1;display:block;
  filter:grayscale(.4);transition:filter .15s;
}
.prog-pill input:checked + label{
  border-color:var(--neon);
  background:rgba(0,200,255,.12);
  color:#fff;
  box-shadow:0 0 14px rgba(0,200,255,.15),inset 0 0 8px rgba(0,200,255,.06);
}
.prog-pill input:checked + label .pill-ico{
  filter:none;
}
.prog-pill:hover label{
  border-color:rgba(0,200,255,.45);
  color:var(--neon);
  background:rgba(0,200,255,.05);
}
.prog-pill:hover label .pill-ico{filter:none;}


/* ═══════════════════════════════════════════
   MOBILE — COMPREHENSIVE FIX
   Clean spacing, readable layout, no overflow
═══════════════════════════════════════════ */

@media(max-width:768px){

  /* ── Global spacing ── */
  .container{padding:0 20px;}
  .sec-pad{padding:80px 0;}
  section{padding-left:0;padding-right:0;}

  /* ── Nav ── */
  nav{padding:0 20px;height:64px;}

  /* ── Hero ── */
  #home{padding:100px 20px 50px;}
  .hero-inner{gap:30px;}
  .hero-h{font-size:clamp(1.8rem,8vw,2.8rem);}
  .hero-p{font-size:.95rem;margin-bottom:20px;padding-left:12px;}
  .hero-acts{flex-direction:column;gap:12px;}
  .hero-acts .btn-fire,.hero-acts .btn-ghost{width:100%;text-align:center;padding:14px 20px;}
  .hero-stats{flex-wrap:wrap;}
  .hstat{flex:1 1 45%;padding:16px 10px;border-right:none;border-bottom:1px solid var(--grey-dim);}
  .hstat:nth-child(odd){border-right:1px solid var(--grey-dim);}
  .hstat:last-child,.hstat:nth-last-child(2):nth-child(odd){border-bottom:none;}
  .hstat-n{font-size:1.6rem;}
  .tw-wrap{font-size:.85rem;}
  .hero-chip{font-size:.58rem;padding:6px 12px;}

  /* ── About ── */
  .about-layout{padding:0 20px;}
  .about-txt{padding:0;}
  .cp-badges{gap:8px;}
  .cp-badge{font-size:.6rem;padding:6px 11px;}

  /* ── Courses ── */
  #courses .container{padding:0 20px;}
  .courses-hdr{margin-bottom:32px;}
  .filters{gap:6px;}
  .filt{font-size:.6rem;padding:7px 12px;}
  .cards-grid{gap:14px;}
  .course-card{padding:24px 18px;}
  .card-title{font-size:.95rem!important;}
  .card-desc{font-size:.9rem!important;}

  /* ── Services / Projects ── */
  #services .container{padding:0 20px;}
  .tab-nav{flex-wrap:wrap;width:100%;}
  .t-btn{flex:1;font-size:.6rem;padding:10px 8px;text-align:center;border-right:none;border-bottom:1px solid var(--grey-dim);}
  .t-btn:last-child{border-bottom:none;}
  .proj-card{padding:20px 16px;}
  .proj-h{font-size:.95rem!important;}
  .proj-p{font-size:.9rem!important;}

  /* ── Testimonials ── */
  #testimonials .container{padding:0 20px;}
  .testi-card{padding:20px 16px;}
  .t-text{font-size:.92rem!important;}

  /* ── Enroll ── */
  #enroll .container{padding:0 20px;}
  .enroll-inner{padding:40px 20px;}
  .enroll-row{flex-direction:column;gap:10px;}
  .e-inp,.enroll-row .btn-fire{width:100%;box-sizing:border-box;}
  .enroll-row--full .e-cc{max-width:100%!important;}

  /* ── Footer ── */
  footer .foot-g{padding:0 20px;}
  .foot-col h6{margin-top:8px;}
  .foot-bot{padding:16px 20px;}
  .foot-soc{gap:10px;}
  .fsoc{width:36px;height:36px;font-size:.9rem;}

  /* ── Modals ── */
  .modal-ov{padding:12px;}
  .modal-box{max-height:92vh;}
  .m-body{padding:20px 16px 24px;}
  .m-hdr{flex-direction:column;gap:10px;}
  .m-stats{grid-template-columns:repeat(3,1fr);gap:8px;}
  .mst{padding:10px 6px;}
  .mst-n{font-size:1.1rem;}
  .m-qc-row{grid-template-columns:64px 1fr;gap:8px;}
  .m-qc-row input:last-child{grid-column:1/-1;}
  .m-actions{flex-direction:column;}
  .m-actions .btn-fire,.m-actions .btn-ghost{width:100%;text-align:center;}

  /* ── Register modal ── */
  .reg-ov{padding:12px;}
  .reg-box{max-height:92vh;overflow-y:auto;}
  .reg-body{padding:20px 16px 24px;}
  .f-row{grid-template-columns:1fr;}
  .cc-row{grid-template-columns:68px 1fr;gap:8px;}
  .cc-row .f-grp:last-child{grid-column:1/-1;}
  .prog-pills{grid-template-columns:repeat(2,1fr);}
  .reg-submit{font-size:.68rem;padding:12px;}

  /* ── Mobile nav ── */
  .mob-nav{padding:80px 24px 40px;}
  .mob-nav a{font-size:.9rem;padding:14px 0;}
}

/* ── Extra small phones ── */
@media(max-width:400px){
  #home{padding:90px 16px 40px;}
  .container{padding:0 16px;}
  nav{padding:0 16px;}
  .hero-h{font-size:1.7rem;}
  .prog-pills{grid-template-columns:1fr 1fr;}
  .m-stats{grid-template-columns:1fr 1fr;}
  .mst:last-child{grid-column:1/-1;}
}

/* ═══════════════════════════════════════════
   SECURITY — DISABLE RIGHT-CLICK & DEV TOOLS HINTS
═══════════════════════════════════════════ */

/* Prevent text selection on UI elements */
nav, .hero-chip, .card-domain, .card-num,
.t-btn, .filt, .m-dom, .m-badge, .code-frag,
.hstat-l, .dw-lbl, .s-eyebrow, .prog-pills-label,
.f-grp label, .reg-ey, .foot-col h6 {
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
}

/* Prevent image drag */
img {
  -webkit-user-drag: none;
  user-drag: none;
  pointer-events: none;
}
/* Re-enable pointer on logo image (it's a link) */
.logo img { pointer-events: auto; }

/* Hide content from print (reduces scraping) */
@media print {
  body { display: none !important; }
}

/* ── FOOTER SOCIAL ICONS — SVG fix ── */
.fsoc {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px; height: 38px;
  border: 1px solid rgba(0,200,255,.2);
  border-radius: 50%;
  color: var(--grey-mid);
  text-decoration: none;
  transition: color .3s, border-color .3s, box-shadow .3s;
}
.fsoc:hover {
  color: var(--neon);
  border-color: var(--neon);
  box-shadow: 0 0 14px rgba(0,200,255,.25);
}
.fsoc svg { display: block; }
