
.vwrap::after{content:'';position:absolute;bottom:0;left:0;width:28px;height:28px;border-bottom:1px solid rgba(255,255,255,.15);border-left:1px solid rgba(255,255,255,.15);z-index:3;pointer-events:none;transition:width .5s,height .5s;}
.vitem:hover .vwrap::before,.vitem:hover .vwrap::after{width:80px;height:80px;}

/* ============================================================
   ABOUT
============================================================ */
#about{background:var(--g1);}
.agrid{display:grid;grid-template-columns:1fr 1.15fr;gap:5rem;align-items:start;}
@media(max-width:800px){.agrid{grid-template-columns:1fr;gap:3rem;}}
.albl{font-size:.58rem;letter-spacing:.2em;text-transform:uppercase;color:var(--g4);margin-bottom:1.8rem;display:flex;align-items:center;gap:1rem;}
.albl::after{content:'';flex:1;height:1px;background:var(--g3);}
.abody p{font-size:.78rem;color:var(--g6);line-height:2.1;margin-bottom:1.4rem;}
.abody p strong{color:var(--white);}
.skillrow{display:flex;align-items:center;gap:1rem;margin-top:1.6rem;}
.sklbl{font-size:.58rem;letter-spacing:.08em;color:var(--g5);width:76px;flex-shrink:0;}
.skbar{flex:1;height:1px;background:var(--g3);position:relative;overflow:hidden;}
.skfill{position:absolute;left:0;top:0;bottom:0;background:var(--white);width:0%;transition:width 1.5s cubic-bezier(.16,1,.3,1);}
.skpct{font-size:.58rem;color:var(--g4);width:30px;text-align:right;}
.statblock{font-size:.62rem;color:var(--g4);border:1px solid var(--g3);padding:2rem;position:relative;}
.statblock::before{content:'SYSTEM.STATUS';position:absolute;top:-.45em;left:1rem;background:var(--g1);padding:0 .5rem;font-size:.52rem;letter-spacing:.2em;color:var(--g4);}
.strow{display:flex;align-items:baseline;gap:1rem;padding:.85rem 0;border-bottom:1px solid rgba(255,255,255,.04);}
.strow:last-child{border-bottom:none;}
.stkey{color:var(--g4);flex:1;font-size:.62rem;}
.stval{font-family:var(--ff-t);font-size:2rem;font-weight:900;color:var(--white);line-height:1;}
.stunit{font-size:.6rem;color:var(--g5);margin-left:.3rem;}

/* ============================================================
   SERVICES
============================================================ */
#services{background:var(--black);}
.svctbl{border:1px solid var(--g3);overflow:hidden;}
.svcrow{display:grid;grid-template-columns:4rem 1fr auto;align-items:center;gap:2rem;padding:1.6rem 2rem;border-bottom:1px solid rgba(255,255,255,.04);transition:background .2s;cursor:default;}
.svcrow:last-child{border-bottom:none;}
.svcrow:hover{background:var(--g1);}
.svcrow:hover .sname{letter-spacing:.06em;}
.sn{font-size:.58rem;letter-spacing:.1em;color:var(--g4);}
.sname{font-family:var(--ff-t);font-size:clamp(1.1rem,2.5vw,1.9rem);font-weight:700;text-transform:uppercase;letter-spacing:.02em;transition:letter-spacing .35s;}
.scat{font-size:.52rem;letter-spacing:.18em;text-transform:uppercase;color:var(--g4);border:1px solid var(--g3);padding:.32rem .7rem;white-space:nowrap;transition:border-color .2s,color .2s;}
.svcrow:hover .scat{border-color:rgba(255,255,255,.25);color:var(--white);}

/* ============================================================
   CONTACT
============================================================ */
#contact{background:var(--black);text-align:center;padding:8rem 2.5rem;}
.cpre{font-size:.58rem;letter-spacing:.28em;text-transform:uppercase;color:var(--g4);margin-bottom:2rem;display:flex;align-items:center;justify-content:center;gap:1rem;}
.cpre::before,.cpre::after{content:'';width:3rem;height:1px;background:var(--g3);}
.cbig{font-family:var(--ff-t);font-size:clamp(4rem,12vw,11rem);font-weight:900;text-transform:uppercase;letter-spacing:-.02em;line-height:.9;margin-bottom:3rem;display:inline-block;}
.cemailw{display:inline-flex;align-items:center;gap:1rem;border:1px solid var(--g3);padding:1.2rem 2rem;position:relative;overflow:hidden;transition:border-color .3s;}
.cemailw::before{content:'';position:absolute;inset:0;background:var(--white);transform:scaleX(0);transform-origin:left;transition:transform .4s;}
.cemailw:hover::before{transform:scaleX(1);}
.cemailw:hover{border-color:var(--white);}
.cemailw:hover .cemail,.cemailw:hover .carr{color:var(--black);}
.cemail{font-family:var(--ff-m);font-size:.85rem;letter-spacing:.05em;position:relative;z-index:1;transition:color .3s;}
.carr{position:relative;z-index:1;font-size:1rem;color:var(--g4);transition:transform .3s,color .3s;}
.cemailw:hover .carr{transform:translateX(5px);}

/* ============================================================
   FOOTER
============================================================ */
footer{border-top:1px solid rgba(255,255,255,.06);padding:1.8rem 2.5rem;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;background:var(--black);position:relative;z-index:1;}
.fm{font-size:.58rem;letter-spacing:.1em;color:var(--g4);}
.flinks{list-style:none;display:flex;gap:1.5rem;}
.flinks a{font-size:.58rem;letter-spacing:.1em;text-transform:uppercase;color:var(--g4);transition:color .2s;}
.flinks a:hover{color:var(--white);}

/* Reveal */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .8s,transform .8s;}
.reveal.visible{opacity:1;transform:none;}

@media(max-width:700px){
  nav{padding:1rem 1.2rem;}
  .nlinks{gap:1rem;}
  .nlinks{
  display:none;
}
  #hero{padding:0 1.2rem 3rem;}
  #boot{left:1.2rem;}
  section{padding:4rem 1.2rem;}
  #videos .shdr,#videos h2.vtitle{padding-left:1.2rem;padding-right:1.2rem;}
  .vitem{padding:3rem 1.2rem 3rem;}
  .vitem-num{left:1.2rem;top:3rem;}
  .vitem-meta{flex-wrap:wrap;gap:1rem;}
  .vitem-tag{display:none;}
  .svcrow{grid-template-columns:3rem 1fr;}
  .scat{display:none;}
}
@media(pointer:coarse){
  body{cursor:auto;}
  .cdot,.cring{display:none;}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important;}
}