/* ═══════════════════════════════════════════════════════
   smooth.css — v13 "Silk" layer (loaded LAST on every page)
   • Lag fixes: lighter blur, GPU-only animations, content-visibility
   • One easing curve everywhere for buttery motion
   • Premium polish: refined type, glass, cards, buttons, links
   ═══════════════════════════════════════════════════════ */
:root{
  --silk: cubic-bezier(.22,1,.36,1);
  --silk-fast: 420ms;
  --silk-slow: 900ms;
  --glass-bg: linear-gradient(160deg,rgba(255,255,255,.055),rgba(255,255,255,.012) 55%,rgba(239,68,68,.035));
  --glass-line: rgba(255,255,255,.085);
  --glow-red: 0 18px 50px -18px rgba(239,68,68,.55);
}

/* ── Rendering performance ─────────────────────── */
html{scroll-behavior:auto!important;text-rendering:optimizeLegibility;}
html.lenis,html.lenis body{height:auto;}
.lenis.lenis-smooth{scroll-behavior:auto!important;}
.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain;}
body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent;}
/* film grain with blend-mode repaints the whole screen every frame → lag. Keep it static & cheap */
body::after{mix-blend-mode:normal!important;opacity:.025!important;}
/* off-screen sections skip rendering until needed */
main > section:not(:first-child),section.section,footer{content-visibility:auto;contain-intrinsic-size:auto 900px;}
img{content-visibility:auto;}
/* the odd floating "RAJ" shine artefact in the hero */
.hero-beam{opacity:.07!important;filter:blur(40px)!important;}

/* ── Unified silky motion ─────────────────────── */
a,button,.btn,.nav-link,.social-icon,.tag,.tech-badge,.feature-card,.stat-card,.skill-card,
.core-card,.journey-card,.contact-item,.contact-card,.card{
  transition:transform var(--silk-fast) var(--silk),box-shadow var(--silk-fast) var(--silk),
             background-color .3s ease,border-color .3s ease,color .25s ease,opacity .3s ease!important;
}
/* reveal: transform + opacity only (no blur → no jank) */
.reveal-p,.sr{opacity:0;transform:translate3d(0,26px,0) scale(.985);filter:none!important;
  transition:opacity var(--silk-slow) var(--silk),transform var(--silk-slow) var(--silk)!important;}
.reveal-p.in,.sr.show,.sr.in{opacity:1;transform:none;}

/* page-to-page fade */
body{animation:silkIn .6s var(--silk) both;}
body.silk-out{opacity:0;transition:opacity .22s ease;}
@keyframes silkIn{from{opacity:0}to{opacity:1}}

/* ── Header: crisp glass ──────────────────────── */
.site-header{background:rgba(10,5,5,.62)!important;backdrop-filter:saturate(160%) blur(14px)!important;
  -webkit-backdrop-filter:saturate(160%) blur(14px)!important;border-bottom:1px solid rgba(255,255,255,.06)!important;}
.site-header.scrolled{background:rgba(8,4,4,.82)!important;box-shadow:0 10px 40px -20px rgba(0,0,0,.9)!important;}
.nav-link{position:relative;}
.nav-link:hover{transform:translateY(-1px);}

/* ── Typography polish ────────────────────────── */
h1,h2,h3{letter-spacing:-.01em;text-wrap:balance;}
p{text-wrap:pretty;}
::selection{background:rgba(239,68,68,.35);color:#fff;}

/* ── Cards: premium glass + hairline glow ─────── */
.feature-card,.stat-card,.skill-card,.core-card,.journey-card,.contact-card,.contact-item{
  background:var(--glass-bg)!important;border:1px solid var(--glass-line)!important;
  box-shadow:0 1px 0 rgba(255,255,255,.06) inset,0 30px 60px -40px rgba(0,0,0,.9)!important;}
@media (hover:hover){
  .feature-card:hover,.stat-card:hover,.skill-card:hover,.core-card:hover,.journey-card:hover,.contact-card:hover,.contact-item:hover{
    transform:translate3d(0,-6px,0)!important;border-color:rgba(239,68,68,.32)!important;
    box-shadow:0 1px 0 rgba(255,255,255,.08) inset,var(--glow-red)!important;}
}

/* ── Buttons: sheen sweep ─────────────────────── */
.btn{position:relative;overflow:hidden;isolation:isolate;}
.btn::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.28) 50%,transparent 70%);
  transform:translateX(-120%);transition:transform .9s var(--silk);}
@media (hover:hover){.btn:hover::after{transform:translateX(120%);} .btn:hover{transform:translateY(-2px);}}
.btn:active{transform:scale(.97)!important;transition-duration:.12s!important;}
.btn-primary{box-shadow:var(--glow-red)!important;}

/* ── Scrollbar ─────────────────────────────────── */
::-webkit-scrollbar{width:9px;}
::-webkit-scrollbar-track{background:#0a0505;}
::-webkit-scrollbar-thumb{background:linear-gradient(#ef4444,#f97316);border-radius:9px;border:2px solid #0a0505;}

/* ── Phones / tablets: keep it light = no lag ── */
@media (max-width:820px),(hover:none){
  .hero-beam,.cursor-glow,body::after{display:none!important;}
  [class*="particle"]{display:none!important;}
  .feature-card,.stat-card,.skill-card,.core-card,.journey-card,.contact-card,.contact-item,.tag,.tech-badge{
    backdrop-filter:none!important;-webkit-backdrop-filter:none!important;}
  .site-header{backdrop-filter:blur(10px)!important;-webkit-backdrop-filter:blur(10px)!important;}
  .reveal-p,.sr{transform:translate3d(0,18px,0);}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;}
  .reveal-p,.sr{opacity:1;transform:none;}
}

/* Photo shine was escaping the circle (grey slanted block over the hero) — keep it inside the photo */
.hero-photo-frame::after{display:none!important;}
.hero-photo{position:relative;overflow:hidden;border-radius:50%;}
.hero-photo::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:2;
  background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.18) 50%,transparent 65%);
  transform:translate3d(-120%,0,0);animation:silkSweep 7s var(--silk) 2.5s infinite;}
@keyframes silkSweep{0%{transform:translate3d(-120%,0,0)}45%,100%{transform:translate3d(120%,0,0)}}
