/* ============================================================
   PRABHU // NEON FRAME SYSTEM
   Dedicated final visual layer — desktop + mobile
   ============================================================ */

:root{
  --neon-white:#ffffff;
  --neon-cyan:#63f6ff;
  --neon-violet:#9b7cff;
  --neon-gold:#f1c75b;
  --neon-bg:#050608;
  --neon-line:rgba(255,255,255,.16);
  --neon-glow:rgba(99,246,255,.22);
}

/* ---------- viewport frame ---------- */
html{
  background:#020305;
}

body{
  position:relative;
  isolation:isolate;
  background:
    radial-gradient(circle at 15% 10%, rgba(99,246,255,.055), transparent 28%),
    radial-gradient(circle at 88% 78%, rgba(155,124,255,.05), transparent 30%),
    var(--black,#08070a);
}

body::before{
  content:"";
  position:fixed;
  z-index:2000;
  inset:8px;
  pointer-events:none;
  border:1px solid rgba(255,255,255,.92);
  border-radius:14px;
  box-shadow:
    0 0 4px rgba(255,255,255,.75),
    0 0 16px rgba(99,246,255,.22),
    0 0 34px rgba(99,246,255,.09),
    inset 0 0 16px rgba(255,255,255,.035);
  animation:prabhuFramePulse 5.5s ease-in-out infinite;
}

body::after{
  content:"";
  position:fixed;
  z-index:1999;
  inset:8px;
  pointer-events:none;
  border-radius:14px;
  padding:1px;
  background:conic-gradient(
    from 0deg,
    transparent 0deg,
    rgba(255,255,255,.95) 36deg,
    rgba(99,246,255,.85) 82deg,
    transparent 125deg,
    transparent 205deg,
    rgba(155,124,255,.78) 250deg,
    rgba(255,255,255,.9) 292deg,
    transparent 330deg
  );
  -webkit-mask:
    linear-gradient(#000 0 0) content-box,
    linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;
  mask-composite:exclude;
  filter:blur(.2px);
  animation:prabhuFrameOrbit 10s linear infinite;
}

@keyframes prabhuFramePulse{
  0%,100%{opacity:.82; box-shadow:0 0 4px rgba(255,255,255,.72),0 0 16px rgba(99,246,255,.18),0 0 34px rgba(99,246,255,.07),inset 0 0 16px rgba(255,255,255,.03)}
  50%{opacity:1; box-shadow:0 0 5px rgba(255,255,255,.95),0 0 24px rgba(99,246,255,.3),0 0 52px rgba(155,124,255,.11),inset 0 0 22px rgba(255,255,255,.045)}
}
@keyframes prabhuFrameOrbit{
  to{transform:rotate(360deg)}
}

/* ---------- cinematic ambient field ---------- */
.grain{
  z-index:0;
  opacity:.95;
}

.grain::before,
.grain::after{
  content:"";
  position:absolute;
  width:34vw;
  height:34vw;
  min-width:260px;
  min-height:260px;
  border-radius:50%;
  filter:blur(70px);
  opacity:.12;
  pointer-events:none;
  animation:prabhuOrb 11s ease-in-out infinite alternate;
}
.grain::before{
  left:-12vw;
  top:18vh;
  background:var(--neon-cyan);
}
.grain::after{
  right:-12vw;
  bottom:8vh;
  background:var(--neon-violet);
  animation-delay:-4s;
}
@keyframes prabhuOrb{
  from{transform:translate3d(0,0,0) scale(.92)}
  to{transform:translate3d(6vw,-4vh,0) scale(1.12)}
}

/* ---------- navigation: glass control deck ---------- */
.navwrap{
  top:18px;
  padding-inline:18px;
}

.nav{
  border:1px solid rgba(255,255,255,.58);
  background:
    linear-gradient(135deg,rgba(255,255,255,.085),rgba(255,255,255,.018) 40%,rgba(99,246,255,.035)),
    rgba(7,9,13,.78);
  box-shadow:
    0 0 0 1px rgba(255,255,255,.045),
    0 0 22px rgba(99,246,255,.13),
    0 18px 55px rgba(0,0,0,.55),
    inset 0 1px 0 rgba(255,255,255,.1);
  backdrop-filter:blur(22px) saturate(150%);
}

.nav::before{
  content:"";
  position:absolute;
  inset:2px;
  border-radius:inherit;
  pointer-events:none;
  background:linear-gradient(110deg,rgba(255,255,255,.08),transparent 28%,transparent 72%,rgba(99,246,255,.05));
}

.navlink{
  transition:color .22s ease,background .22s ease,box-shadow .22s ease;
}
.navlink:hover{
  color:#fff;
  background:rgba(255,255,255,.055);
}
.navlink.active{
  color:#fff;
  text-shadow:0 0 12px rgba(99,246,255,.35);
}
.navlink.active::after{
  background:linear-gradient(90deg,#fff,var(--neon-cyan));
  box-shadow:0 0 10px rgba(99,246,255,.65);
}

.brand .dot{color:#fff;text-shadow:0 0 12px var(--neon-cyan);}

.navbtn{
  border-color:rgba(255,255,255,.58);
  background:rgba(255,255,255,.025);
  color:#fff;
  box-shadow:0 0 10px rgba(255,255,255,.06);
}
.navbtn:hover{
  background:rgba(99,246,255,.09);
  border-color:#fff;
  box-shadow:0 0 18px rgba(99,246,255,.2);
}

/* ---------- global content frame ---------- */
.page{
  padding-top:156px;
}

.wrap{
  position:relative;
}

.section-block,
.hero,
.page-flow{
  position:relative;
}

.section-block::before{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:-28px;
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.22) 18%,rgba(99,246,255,.3) 50%,transparent 82%);
  opacity:.55;
}

/* ---------- headings ---------- */
h1,h2,h3{
  text-shadow:0 0 24px rgba(255,255,255,.035);
}

.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:9px;
  color:#fff;
}
.eyebrow::before{
  content:"";
  width:22px;
  height:1px;
  background:linear-gradient(90deg,#fff,var(--neon-cyan));
  box-shadow:0 0 9px rgba(99,246,255,.45);
}

/* ---------- cards: white edge + neon depth ---------- */
.id-card,
.work-card,
.project-card,
.process-card,
.contact-card,
.about-card,
.song-card,
.nav-card,
.mdym-panel,
.reality-card,
.ai-callout,
.contact-link{
  position:relative;
  overflow:hidden;
  border-color:rgba(255,255,255,.18);
  background:
    linear-gradient(145deg,rgba(255,255,255,.045),transparent 35%),
    linear-gradient(180deg,rgba(16,18,24,.96),rgba(7,8,11,.96));
  box-shadow:
    0 0 0 1px rgba(255,255,255,.025),
    0 16px 50px rgba(0,0,0,.35),
    inset 0 1px 0 rgba(255,255,255,.055);
  transition:
    transform .28s cubic-bezier(.2,.75,.2,1),
    border-color .28s ease,
    box-shadow .28s ease,
    background .28s ease;
}

.id-card::after,
.work-card::after,
.project-card::after,
.process-card::after,
.contact-card::after,
.about-card::after,
.song-card::after,
.nav-card::after,
.mdym-panel::before,
.reality-card::after,
.ai-callout::after,
.contact-link::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  border-radius:inherit;
  border:1px solid rgba(255,255,255,.08);
  box-shadow:
    inset 0 0 24px rgba(99,246,255,.035),
    inset 0 0 45px rgba(155,124,255,.018);
}

.id-card:hover,
.work-card:hover,
.project-card:hover,
.process-card:hover,
.contact-card:hover,
.about-card:hover,
.song-card:hover,
.nav-card:hover,
.contact-link:hover{
  transform:translateY(-7px);
  border-color:rgba(255,255,255,.52);
  box-shadow:
    0 0 0 1px rgba(255,255,255,.06),
    0 22px 65px rgba(0,0,0,.55),
    0 0 32px rgba(99,246,255,.10);
}

/* moving light sweep */
.id-card::before,
.work-card::before,
.project-card::before,
.process-card::before,
.contact-card::before,
.about-card::before,
.song-card::before,
.nav-card::before{
  content:"";
  position:absolute;
  top:-30%;
  left:-75%;
  width:42%;
  height:160%;
  transform:rotate(22deg);
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.16),transparent);
  filter:blur(5px);
  opacity:0;
  pointer-events:none;
  transition:left .7s ease,opacity .25s ease;
}
.id-card:hover::before,
.work-card:hover::before,
.project-card:hover::before,
.process-card:hover::before,
.contact-card:hover::before,
.about-card:hover::before,
.song-card:hover::before,
.nav-card:hover::before{
  left:135%;
  opacity:1;
}

/* ---------- hero ---------- */
.hero{
  min-height:calc(100svh - 190px);
  padding:30px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:34px;
  background:
    radial-gradient(circle at 75% 35%,rgba(99,246,255,.055),transparent 27%),
    linear-gradient(145deg,rgba(255,255,255,.035),transparent 32%),
    rgba(6,8,11,.52);
  box-shadow:
    0 0 0 1px rgba(255,255,255,.025),
    0 30px 90px rgba(0,0,0,.48),
    inset 0 0 50px rgba(99,246,255,.018);
  overflow:hidden;
}

.hero::after{
  content:"";
  position:absolute;
  inset:12px;
  border:1px solid rgba(255,255,255,.05);
  border-radius:25px;
  pointer-events:none;
}

.hero-photo{
  filter:drop-shadow(0 0 24px rgba(99,246,255,.08));
}
.hero-photo::before{
  background:radial-gradient(circle,rgba(99,246,255,.12),rgba(155,124,255,.06) 42%,transparent 70%);
  box-shadow:0 0 80px rgba(99,246,255,.08);
}
.hero-photo img{
  filter:drop-shadow(0 30px 60px rgba(0,0,0,.72)) drop-shadow(0 0 20px rgba(99,246,255,.06));
}

/* ---------- buttons ---------- */
.btn{
  border:1px solid rgba(255,255,255,.48);
  box-shadow:0 10px 28px rgba(0,0,0,.25);
}
.btn-gold{
  background:linear-gradient(135deg,#fff,#f1c75b 46%,#c28f21);
  color:#08090b;
  border-color:#fff;
  box-shadow:
    0 10px 30px rgba(241,199,91,.22),
    0 0 18px rgba(255,255,255,.08);
}
.btn-gold:hover{
  box-shadow:
    0 12px 40px rgba(241,199,91,.3),
    0 0 24px rgba(99,246,255,.12);
}
.btn-ghost:hover{
  border-color:#fff;
  background:rgba(99,246,255,.07);
  box-shadow:0 0 24px rgba(99,246,255,.14);
}

/* ---------- MDYM special frame ---------- */
#mdym .mdym-hero{
  border-color:rgba(255,255,255,.7);
  box-shadow:
    0 0 0 1px rgba(255,255,255,.05),
    0 30px 100px rgba(0,0,0,.65),
    0 0 55px rgba(99,246,255,.09);
}
#mdym .mdym-hero::before{
  content:"";
  position:absolute;
  inset:6px;
  z-index:5;
  border:1px solid rgba(255,255,255,.12);
  border-radius:27px;
  pointer-events:none;
}
#mdym .mdym-hero-glow{
  background:radial-gradient(circle,rgba(99,246,255,.09),rgba(212,169,46,.08),transparent 68%);
}
#mdym .mdym-play{
  border-color:#fff;
  color:#fff;
  box-shadow:0 0 8px rgba(255,255,255,.7),0 0 28px rgba(99,246,255,.25);
}

/* ---------- menu ---------- */
.menu-overlay{
  background:rgba(1,3,6,.76);
  backdrop-filter:blur(24px) saturate(145%);
}
.menu-panel{
  border-color:rgba(255,255,255,.62);
  background:
    linear-gradient(145deg,rgba(255,255,255,.06),transparent 30%),
    rgba(7,9,13,.94);
  box-shadow:
    0 30px 110px rgba(0,0,0,.78),
    0 0 50px rgba(99,246,255,.12);
}

/* ---------- footer ---------- */
footer{
  position:relative;
  border-top-color:rgba(255,255,255,.16)!important;
}
.footer-inner{
  position:relative;
}
.footer-inner::before{
  content:"";
  position:absolute;
  top:0;
  left:0;
  width:90px;
  height:1px;
  background:linear-gradient(90deg,#fff,var(--neon-cyan),transparent);
  box-shadow:0 0 12px rgba(99,246,255,.35);
}

/* ---------- mobile app shell ---------- */
@media (max-width:820px){
  body::before{
    inset:5px;
    border-radius:10px;
  }
  body::after{
    inset:5px;
    border-radius:10px;
  }

  .navwrap{
    top:11px;
    padding-inline:11px;
  }

  .nav{
    width:min(100%,620px);
    border-radius:19px;
  }

  .page{
    padding-top:112px;
  }

  .hero{
    min-height:auto;
    padding:20px;
    border-radius:25px;
  }

  .hero::after{
    inset:8px;
    border-radius:19px;
  }

  .section-block::before{
    top:-20px;
  }

  .id-card,
  .work-card,
  .project-card,
  .process-card,
  .contact-card,
  .about-card,
  .song-card,
  .nav-card{
    box-shadow:
      0 0 0 1px rgba(255,255,255,.025),
      0 13px 38px rgba(0,0,0,.38),
      inset 0 1px 0 rgba(255,255,255,.055);
  }
}

@media (max-width:560px){
  body::before,
  body::after{
    inset:4px;
    border-radius:8px;
  }

  .navwrap{
    top:9px;
    padding-inline:9px;
  }

  .nav{
    border-radius:17px;
    padding:5px;
  }

  .navbtn{
    width:38px;
    height:38px;
  }

  .page{
    padding:103px 15px 64px;
  }

  .hero{
    padding:17px;
    border-radius:21px;
  }

  .hero-photo{
    min-height:300px;
  }

  .section-block::before{
    top:-15px;
  }

  .section-block{
    margin-bottom:78px;
  }

  .btn{
    min-height:50px;
  }

  #mdym .mdym-hero{
    border-radius:21px;
  }
}

/* ---------- motion safety ---------- */
@media (prefers-reduced-motion:reduce){
  body::before,
  body::after,
  .grain::before,
  .grain::after{
    animation:none!important;
  }
  .id-card::before,
  .work-card::before,
  .project-card::before,
  .process-card::before,
  .contact-card::before,
  .about-card::before,
  .song-card::before,
  .nav-card::before{
    display:none!important;
  }
}

/* keyboard focus */
:where(a,button):focus-visible{
  outline:2px solid #fff;
  outline-offset:3px;
  box-shadow:0 0 0 5px rgba(99,246,255,.16),0 0 18px rgba(99,246,255,.22);
}


/* Cursor light: subtle on desktop, absent on touch. */
@media (pointer:fine){
  body{
    background:
      radial-gradient(480px circle at var(--pointer-x,50vw) var(--pointer-y,40vh),
        rgba(99,246,255,.045), transparent 58%),
      radial-gradient(circle at 15% 10%, rgba(99,246,255,.055), transparent 28%),
      radial-gradient(circle at 88% 78%, rgba(155,124,255,.05), transparent 30%),
      var(--black,#08070a);
  }
}
