/* Portfolio enhancement layer v3: polished, stable, and overflow-safe. */
:root{
  --accent:#0a66c2;
  --accent-dark:#073b73;
  --accent-bright:#39d5ff;
  --gold:#f8b84e;
  --page-grid:rgba(10,102,194,.045);
}

html{scroll-behavior:smooth;scroll-padding-top:96px;}
body{
  background:
    radial-gradient(circle at 8% 0%, rgba(57,213,255,.20), transparent 26rem),
    radial-gradient(circle at 92% 8%, rgba(10,102,194,.18), transparent 28rem),
    linear-gradient(180deg,#f8fbff 0%,#eef5ff 45%,#f7f9fc 100%) !important;
}
body::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:-2;
  pointer-events:none;
  background-image:
    linear-gradient(var(--page-grid) 1px, transparent 1px),
    linear-gradient(90deg, var(--page-grid) 1px, transparent 1px);
  background-size:44px 44px;
  mask-image:linear-gradient(180deg,rgba(0,0,0,.75),rgba(0,0,0,.12));
}

.site-header{
  position:sticky !important;
  top:0 !important;
  z-index:999 !important;
  background:rgba(255,255,255,.88) !important;
  backdrop-filter:saturate(180%) blur(18px) !important;
  border-bottom:1px solid rgba(10,102,194,.14) !important;
  box-shadow:0 10px 28px rgba(7,17,31,.08) !important;
}
.brand h1{
  letter-spacing:-.035em !important;
  background:linear-gradient(90deg,var(--accent-dark),var(--accent),#00a9d6) !important;
  -webkit-background-clip:text !important;
  background-clip:text !important;
  color:transparent !important;
}
.brand .tagline{font-weight:600 !important;color:#475569 !important;}
.nav-links{flex-wrap:wrap !important;}
.nav-links a{
  border-radius:999px !important;
  padding:.58rem .9rem !important;
  transition:transform .18s ease,background .18s ease,box-shadow .18s ease,color .18s ease !important;
}
.nav-links a:hover{
  transform:translateY(-2px) !important;
  background:#eaf5ff !important;
  box-shadow:0 8px 22px rgba(10,102,194,.12) !important;
  text-decoration:none !important;
}
.nav-links a.active,.nav-links a[aria-current="page"]{
  color:#fff !important;
  background:linear-gradient(135deg,var(--accent),var(--accent-dark)) !important;
  border-color:transparent !important;
  box-shadow:0 10px 24px rgba(10,102,194,.22) !important;
}

.hero{
  position:relative !important;
  overflow:hidden !important;
  color:#fff !important;
  background:
    radial-gradient(circle at 12% 20%, rgba(57,213,255,.27), transparent 22rem),
    radial-gradient(circle at 86% 10%, rgba(248,184,78,.18), transparent 20rem),
    linear-gradient(135deg,#07111f 0%,#0a3d75 48%,#0a66c2 100%) !important;
  border-bottom:1px solid rgba(10,102,194,.18) !important;
  box-shadow:0 24px 60px rgba(7,17,31,.15) !important;
}
.hero::before{
  content:"";
  position:absolute;
  inset:-30%;
  pointer-events:none;
  background:linear-gradient(120deg,transparent 0 44%,rgba(255,255,255,.16) 50%,transparent 56%);
  transform:translateX(-70%) rotate(4deg);
  animation:hero-sheen 8s ease-in-out infinite;
}
.hero > *{position:relative;z-index:1;}
.hero h1,.hero h2{color:#fff !important;text-wrap:balance !important;}
.hero p{color:rgba(255,255,255,.88) !important;}
@keyframes hero-sheen{0%,56%{transform:translateX(-70%) rotate(4deg)}84%,100%{transform:translateX(70%) rotate(4deg)}}

.metric,.rail-card,.card,.project-card,.resume-section,.cert-card,.surface{
  background:rgba(255,255,255,.90) !important;
  backdrop-filter:blur(12px) !important;
  border:1px solid rgba(10,102,194,.12) !important;
  border-radius:22px !important;
  box-shadow:0 16px 42px rgba(7,17,31,.09) !important;
  transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease !important;
}
.card:hover,.project-card:hover,.rail-card:hover,.resume-section:hover,.cert-card:hover,.metric:hover{
  transform:translateY(-4px) !important;
  border-color:rgba(10,102,194,.30) !important;
  box-shadow:0 24px 60px rgba(7,17,31,.14) !important;
}
.card h3 a,.project-card h3 a,.rail-card h4,.resume-section h3,.cert-title{color:#0b2f57 !important;}
.card-thumb,.project-card .thumb,.project-card .media img{background:linear-gradient(135deg,#dff5ff,#f8fbff) !important;}

.btn{
  border-radius:999px !important;
  font-weight:800 !important;
  letter-spacing:.01em !important;
  box-shadow:0 10px 26px rgba(7,17,31,.11) !important;
  transition:transform .18s ease,box-shadow .18s ease,background .18s ease !important;
  min-width:0 !important;
  max-width:100% !important;
}
.btn.primary{background:linear-gradient(135deg,var(--accent),var(--accent-dark)) !important;border-color:transparent !important;color:#fff !important;}
.btn.outline{background:rgba(255,255,255,.92) !important;border-color:rgba(10,102,194,.22) !important;color:#0b2f57 !important;}
.btn:hover{transform:translateY(-2px) !important;box-shadow:0 16px 38px rgba(7,17,31,.16) !important;text-decoration:none !important;}

.card-cta,.project-card .actions{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:.55rem !important;
  width:100% !important;
  overflow:hidden !important;
}
.card-cta .btn,.project-card .actions .btn{
  width:100% !important;
  min-width:0 !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
  padding-inline:.65rem !important;
}
.card-cta .btn:nth-child(n+3),.project-card .actions .btn:nth-child(n+3){grid-column:1 / -1 !important;}

.tag,.badge,.badge--subtle{
  border-color:rgba(10,102,194,.18) !important;
  background:#eaf6ff !important;
  color:#0b2f57 !important;
  font-weight:700 !important;
}
input[type="text"],input[type="search"],input[type="email"],select,textarea{
  border-radius:16px !important;
  border:1px solid rgba(10,102,194,.18) !important;
  background:rgba(255,255,255,.92) !important;
  box-shadow:0 12px 30px rgba(7,17,31,.07) !important;
}
input:focus-visible,select:focus-visible,textarea:focus-visible{
  border-color:var(--accent) !important;
  box-shadow:0 0 0 4px rgba(10,102,194,.16),0 14px 32px rgba(7,17,31,.10) !important;
}
footer{background:linear-gradient(135deg,#07111f,#0a3d75) !important;color:rgba(255,255,255,.78) !important;border-top:0 !important;}
footer a{color:#fff !important;}

.site-progress{position:fixed;top:0;left:0;height:4px;width:0;z-index:10000;background:linear-gradient(90deg,var(--accent-bright),var(--gold),var(--accent));box-shadow:0 0 18px rgba(57,213,255,.5);}
.back-to-top{position:fixed;right:1rem;bottom:1rem;z-index:1000;width:48px;height:48px;border-radius:999px;border:1px solid rgba(255,255,255,.4);background:linear-gradient(135deg,var(--accent),var(--accent-dark));color:#fff;box-shadow:0 18px 45px rgba(7,17,31,.24);display:grid;place-items:center;text-decoration:none;font-weight:900;opacity:0;pointer-events:none;transform:translateY(10px);transition:opacity .2s ease,transform .2s ease;}
.back-to-top.is-visible{opacity:1;pointer-events:auto;transform:translateY(0);}
.reveal-on-scroll{opacity:0;transform:translateY(18px);transition:opacity .55s ease,transform .55s ease;}
.reveal-on-scroll.is-visible{opacity:1;transform:translateY(0);}

@media (max-width:920px){.site-header .brand{align-items:flex-start !important;flex-direction:column !important;}.brand .tagline{white-space:normal !important;}}
@media (max-width:560px){.metrics{grid-template-columns:1fr !important;}.card-cta,.project-card .actions{grid-template-columns:1fr !important;}.nav-links a{padding:.48rem .72rem !important;font-size:.92rem !important;}}
@media (prefers-reduced-motion:reduce){.hero::before{animation:none !important}.reveal-on-scroll{opacity:1 !important;transform:none !important}}
