div.hero {
    width: 100%;
    max-width: 1200px;
    min-height: 350px;
    background: var(--white);
    border-radius: 50px;
    display: grid;
    grid-template-columns: minmax(10px, 1fr) minmax(300px, 1fr);
    overflow: hidden;
    transition: all 0.3s ease;
}

div.hero:hover {
    transform: translateY(-5px);
    box-shadow: var(--shadow-hover);
}

div.hero .visual {
    position: relative;
    background: linear-gradient(135deg, rgba(106,101,238,0.15), rgba(106,101,238,0.05));
    overflow: hidden;
}

div.hero .visual a {
    text-decoration: none;
}

div.hero .shape {
    position: absolute;
    border-radius: 50%;
    background: var(--primary-color);
    opacity: 0.15;
    filter: blur(10px);
}

div.hero .shape.one {
    width: 220px;
    height: 220px;
    offset-path: circle(20px at 20% 20%);
    animation: fullOffset 10s linear infinite;
}

div.hero .shape.two {
    width: 160px;
    height: 160px;
    bottom: 40px;
    left: 60px;
    opacity: 0.2;
    offset-path: circle(20px at 35% 80%);
    animation: fullOffset 11s linear infinite reverse;
}

div.hero .shape.three {
    width: 280px;
    height: 280px;
    top: 80px;
    right: -120px;
    opacity: 0.12;
    offset-path: circle(20px at 90% 40%);
    animation: fullOffset 12s linear infinite;
}

div.hero .shape.four {
    width: 120px;
    height: 120px;
    opacity: 0.25;
    offset-path: circle(20px at 80% 90%);
    animation: fullOffset 15s linear infinite reverse;
}

div.hero .lines {
    position: absolute;
    inset: 0;
    background-image: repeating-linear-gradient(
        45deg,
        rgba(106, 101, 238, 0.08),
        rgba(106, 101, 238, 0.08) 1px,
        transparent 1px,
        transparent 12px);
}

div.hero div.label,
div.hero div.logo {
    display: none;
}
div.hero div.label {
    font-size: 32px;
}

div.hero div.activitypub.label {
    position: absolute;
    filter: blur(1px);
    offset-path: path("M 100 400 L 170 260");
    offset-rotate: -5deg;
    animation: fullOffsetSolidify 4s ease-out forwards;
}
div.hero div.atprotocol.label {
    position: absolute;
    filter: blur(1px);
    offset-path: path("M 500 250 L 420 240");
    offset-rotate: 5deg;
    animation: fullOffset 4s ease-out forwards;
}
div.hero div.open.label {
    position: absolute;
    font-size: 70px;
    filter: blur(1px);
    color: #a0a0a0;
    offset-path: path("M 290 480 L 290 430");
    offset-rotate: 0deg;
    opacity: 0;
    animation: fullOffsetSolidify 8s ease forwards;
}

div.hero div.activitypub.logo {
    position: absolute;
    filter: blur(1px);
    offset-path: path("M 0 100 Q 100 150 140 100");
    offset-rotate: 10deg;
    animation: fullOffset 7s ease-out forwards;
}
div.hero div.atprotocol.logo {
    position: absolute;
    filter: blur(1px);
    offset-path: path("M 560 300 Q 450 200 420 130");
    offset-rotate: -10deg;
    animation: fullOffset 7s ease-out forwards;
}
div.hero div.atprotocol.logo img {
    width: 96px;
}

div.hero .content {
    padding: 3rem;
}
div.hero h1 {
    line-height: 1.2;
    margin-bottom: 1em;
    color: var(--primary-color);
    white-space: wrap;
}
div.hero p {
    font-size: large;
}

@keyframes fullOffset {
  0% {
    offset-distance: 0%;
  }
  100% {
    offset-distance: 100%;
  }
}
@keyframes fullOffsetSolidify {
  0% {
    offset-distance: 0%;
    opacity: 0;
  }
  100% {
    offset-distance: 100%;
    opacity: 1;
  }
}
