html {
  scroll-behavior: smooth;
}

/* Subtle blueprint-style dot grid in the hero — a quiet nod to "building" without being loud */
.hero-grid {
  background-image: radial-gradient(#E6E8F0 1px, transparent 1px);
  background-size: 28px 28px;
  mask-image: linear-gradient(to bottom, black 0%, black 55%, transparent 100%);
  -webkit-mask-image: linear-gradient(to bottom, black 0%, black 55%, transparent 100%);
}

/* Skill pills */
.skill-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.55rem 1rem;
  border-radius: 999px;
  background: #FFFFFF;
  border: 1px solid #E6E8F0;
  font-size: 0.875rem;
  font-weight: 500;
  color: #14161F;
  transition: border-color 0.2s ease, transform 0.2s ease;
}

.skill-pill i {
  color: #4F46E5;
  font-size: 1rem;
}

.skill-pill:hover {
  border-color: #4F46E5;
  transform: translateY(-2px);
  transform:translateY(-3px);
box-shadow:0 8px 20px rgba(79,70,229,.15);
}

/* Focus visibility for accessibility */
a:focus-visible,
button:focus-visible {
  outline: 2px solid #4F46E5;
  outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
  * {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

.bg-team{
    background-image: url("../images/pexels-julia-m-cameron-6995379.jpg");
    background-size: cover;
    background-position: center;
}

.bg-team::before{
    content:"";
    position:absolute;
    inset:0;
    background:rgba(255,255,255,.82);
/* or rgba(20,22,31,.65) for dark mode */
}

.bg-team>*{
    position:relative;
}

.osi-stack{
    border:1px solid #E6E8F0;
    border-radius:18px;
    overflow:hidden;
    background:white;
}

.osi-layer{
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:22px 28px;
    border-bottom:1px solid #E6E8F0;
    transition:.25s;
}

.osi-layer:last-child{
    border-bottom:none;
}

.osi-layer:hover{
    background:#F6F7FB;
    transform:translateX(8px);
}

.osi-layer span{
    font-family:"Space Grotesk";
    font-weight:600;
    font-size:18px;
    color:#14161F;
    min-width:180px;
}

.osi-layer div{
    display:flex;
    align-items:center;
    gap:12px;
    color:#5B6072;
    font-size:.95rem;
}

.osi-layer i{
    color:#4F46E5;
    font-size:18px;
}

@keyframes pulseFlow{
    from{
        transform:translateY(0);
    }
    to{
        transform:translateY(100%);
    }
}

.network-bg{
    background-image:
      linear-gradient(#e6e8f0 1px, transparent 1px),
      linear-gradient(90deg,#e6e8f0 1px, transparent 1px);

    background-size:40px 40px;
}

/* ==========================================
   NETWORK ARCHITECTURE
========================================== */

.network-bg{

    background:
        linear-gradient(#eef1f8 1px,transparent 1px),
        linear-gradient(90deg,#eef1f8 1px,transparent 1px);

    background-size:40px 40px;
    background-color:#F6F7FB;
}

.network-diagram{

    display:flex;
    flex-direction:column;
    align-items:center;
}

.connector{

    width:2px;
    height:60px;
    background:linear-gradient(
        to bottom,
        #4F46E5,
        #bfc6ff
    );

    position:relative;
}

.connector::after{

    content:"";

    position:absolute;

    width:10px;
    height:10px;

    border-radius:50%;

    background:#4F46E5;

    left:50%;
    transform:translateX(-50%);

    animation:dataFlow 2.2s infinite linear;
}

@keyframes dataFlow{

    from{
        top:0;
    }

    to{
        top:100%;
    }

}

.network-node{

    display:flex;
    align-items:center;
    gap:20px;

    background:white;

    border:1px solid #E6E8F0;

    border-radius:18px;

    padding:22px 28px;

    width:420px;

    box-shadow:0 12px 30px rgba(0,0,0,.04);

    transition:.3s;
}

.network-node:hover{

    transform:translateY(-4px);

    border-color:#4F46E5;

    box-shadow:0 18px 40px rgba(79,70,229,.18);
}

.icon{

    width:56px;
    height:56px;

    display:flex;
    justify-content:center;
    align-items:center;

    border-radius:14px;

    background:#EEF2FF;

    color:#4F46E5;

    font-size:22px;

    flex-shrink:0;
}

.content h3{

    font-family:"Space Grotesk";
    font-size:20px;
    margin-bottom:4px;
}

.content p{

    color:#5B6072;
    font-size:.95rem;
}

.split{

    display:flex;
    flex-direction:column;
    align-items:center;
    width:100%;
}

.branch{

    width:2px;
    height:40px;
    background:#4F46E5;
}

.branch-row{

    display:flex;
    justify-content:center;
    gap:80px;
    width:100%;
    position:relative;
}

.branch-row::before{

    content:"";

    position:absolute;

    top:-20px;
    left:25%;
    right:25%;

    height:2px;

    background:#4F46E5;
}

.side{

    width:320px;
}

@media(max-width:900px){

    .branch-row{

        flex-direction:column;

        align-items:center;

        gap:25px;
    }

    .branch-row::before{

        display:none;
    }

    .network-node{

        width:100%;
        max-width:420px;
    }

}