.reveal,
.reveal--left,
.reveal--right,
.reveal--scale {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.7s ease, transform 0.7s ease;
}

.reveal--left { transform: translateX(-40px); }
.reveal--right { transform: translateX(40px); }
.reveal--scale { opacity: 0; transform: scale(0.95); }

.reveal.is-visible,
.reveal--left.is-visible,
.reveal--right.is-visible,
.reveal--scale.is-visible {
  opacity: 1;
  transform: translate(0, 0) scale(1);
}

.word-reveal .wr-word {
  display: inline-block;
  opacity: 0;
  transform: translateY(12px);
  transition: opacity 0.5s ease, transform 0.5s ease;
}

.word-reveal.is-visible .wr-word {
  opacity: 1;
  transform: translateY(0);
}

.card-spotlight {
  --spot-x: 50%;
  --spot-y: 50%;
}

.card-spotlight::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: radial-gradient(450px circle at var(--spot-x) var(--spot-y), rgba(46,107,138,0.09) 0%, transparent 55%);
  opacity: 0;
  transition: opacity 0.35s ease;
  pointer-events: none;
  z-index: 0;
}

.card-spotlight:hover::before {
  opacity: 1;
}

.glow-card {
  position: relative;
  --glow-start: 0;
  --glow-spread: 40;
  --glow-active: 0;
  --glow-border-width: 3px;
  --glow-gradient:
    radial-gradient(circle, #F6D307 10%, #F6D30700 20%),
    radial-gradient(circle at 40% 40%, #E5C306 5%, #E5C30600 15%),
    radial-gradient(circle at 60% 60%, #C8A90A 10%, #C8A90A00 20%),
    radial-gradient(circle at 40% 60%, #2E6B8A 10%, #2E6B8A00 20%),
    repeating-conic-gradient(from 236.84deg at 50% 50%, #F6D307 0%, #E5C306 5%, #C8A90A 10%, #2E6B8A 15%, #F6D307 20%);
}

.glow-card__border,
.glow-card__glow,
.glow-card__glow .glow-inner {
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
}

.glow-card__border {
  border: 1px solid rgba(255,255,255,0.08);
  transition: opacity 0.3s ease;
  z-index: 0;
}

.glow-card__glow {
  z-index: 0;
}

.glow-card__glow .glow-inner::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  border: var(--glow-border-width) solid transparent;
  background: var(--glow-gradient);
  background-attachment: fixed;
  opacity: var(--glow-active);
  transition: opacity 0.3s ease;
  -webkit-mask-clip: padding-box, border-box;
  mask-clip: padding-box, border-box;
  -webkit-mask-composite: source-in;
  mask-composite: intersect;
  -webkit-mask-image: linear-gradient(#0000, #0000), conic-gradient(from calc((var(--glow-start) - var(--glow-spread)) * 1deg), #00000000 0deg, #fff, #00000000 calc(var(--glow-spread) * 2deg));
  mask-image: linear-gradient(#0000, #0000), conic-gradient(from calc((var(--glow-start) - var(--glow-spread)) * 1deg), #00000000 0deg, #fff, #00000000 calc(var(--glow-spread) * 2deg));
}

.glow-card > *:not(.glow-card__border):not(.glow-card__glow) {
  position: relative;
  z-index: 1;
}

.glow-card.is-glowing {
  box-shadow: 0 0 24px -6px rgba(246,211,7,0.16), 0 0 24px -6px rgba(46,107,138,0.14);
}

.hero {
      background:
        radial-gradient(circle at top right, rgba(126,169,192,0.18), transparent 32%),
        linear-gradient(180deg, rgba(255,255,255,0.03), transparent 38%);
      overflow: hidden;
    }

.hero__eyebrow,
.hero__headline,
.hero__lead {
  opacity: 0;
  transform: translateY(28px);
  animation: heroEntrance 0.9s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.hero__eyebrow { animation-delay: 0.15s; }
.hero__headline { animation-delay: 0.35s; }
.hero__lead { animation-delay: 0.6s; max-width: 62ch; font-size: var(--fs-lg); color: rgba(255,255,255,0.72); }

@keyframes heroEntrance {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

main section { padding: 3rem 0; }

.projects-section .eyebrow {
  display: block;
  margin-bottom: 0.5rem;
}

.projects-section .section-title {
  font-size: clamp(1.6rem, 1rem + 2vw, 2.4rem);
  margin-bottom: 2rem;
}

.projects-grid, .fast-data, .detail-grid {
      display: grid;
      gap: 1.25rem;
    }

.projects-grid {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .projects-grid .project-card--download {
      grid-column: 1 / -1;
    }

.fast-data {
      grid-template-columns: repeat(5, minmax(0, 1fr));
      margin-top: 1.5rem;
    }

.detail-grid {
      grid-template-columns: repeat(2, minmax(0, 1fr));
      margin-top: 1.25rem;
    }

.card {
      background: var(--bg-soft);
      border: 1px solid var(--line);
      border-radius: var(--radius);
      padding: 1.5rem;
      transition: transform 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
    }

.card:hover,
.fast-card:hover {
  transform: translateY(-4px);
  border-color: rgba(246,211,7,0.18);
  box-shadow: 0 18px 40px rgba(0,0,0,0.18);
}

.card strong, .fast-card strong {
      color: var(--white);
    }

.project-card {
      display: flex;
      flex-direction: column;
      gap: 1rem;
      min-height: 100%;
    }

.project-card p:first-of-type {
      color: var(--white);
      font-weight: 600;
    }

.project-card .btn {
      margin-top: auto;
      align-self: center;
    }

.project-section {
      padding-top: 4rem;
      scroll-margin-top: 96px;
      border-top: 1px solid rgba(255,255,255,0.06);
    }

.project-hero {
      position: relative;
      overflow: hidden;
      border: 1px solid rgba(255,255,255,0.08);
      border-radius: calc(var(--radius) + 4px);
      padding: 2.25rem;
      min-height: 340px;
      display: flex;
      align-items: end;
      background-size: cover;
      background-position: center;
      box-shadow: 0 30px 80px rgba(0,0,0,0.35);
      transition: transform 0.45s cubic-bezier(0.03, 0.98, 0.52, 0.99), box-shadow 0.35s ease;
      transform-style: preserve-3d;
    }

.project-hero::before {
      content: "";
      position: absolute;
      inset: 0;
      background: linear-gradient(180deg, rgba(10,10,11,0.12), rgba(10,10,11,0.86));
    }

.project-hero__content {
      position: relative;
      z-index: 1;
      max-width: 44rem;
    }

.project-hero h2 {
      font-size: clamp(1.8rem, 1.2rem + 2vw, 3rem);
      margin-bottom: 0.75rem;
    }

.project-hero p {
      font-size: var(--fs-lg);
      max-width: 48rem;
    }

.fast-card {
      background: var(--panel);
      border: 1px solid var(--line);
      border-radius: var(--radius);
      padding: 1.1rem;
      transition: transform 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
    }

.fast-card span {
      display: block;
      font-size: var(--fs-sm);
      color: rgba(255,255,255,0.58);
      text-transform: uppercase;
      letter-spacing: 0.08em;
      margin-bottom: 0.45rem;
    }

.detail-card h3, .why-card h3 {
      margin-bottom: 0.75rem;
    }

.detail-list {
      display: grid;
      gap: 0.65rem;
      margin-top: 1rem;
    }

.detail-list li {
      list-style: none;
      color: var(--muted);
      position: relative;
      padding-left: 1rem;
    }

.detail-list li::before {
      content: "";
      position: absolute;
      left: 0;
      top: 0.7rem;
      width: 5px;
      height: 5px;
      border-radius: 50%;
      background: var(--accent);
    }

.finance-card {
      background: linear-gradient(135deg, rgba(246,211,7,0.1), rgba(126,169,192,0.07));
      border: 1px solid rgba(246,211,7,0.18);
    }

.finance-card .detail-list li::before { background: #fff4a0; }

.summary {
      border: 1px solid rgba(246,211,7,0.24);
      background: rgba(246,211,7,0.08);
    }

@media (prefers-reduced-motion: reduce) {
  .hero__eyebrow,
  .hero__headline,
  .hero__lead,
  .reveal,
  .reveal--left,
  .reveal--right,
  .reveal--scale,
  .word-reveal .wr-word {
    opacity: 1;
    transform: none;
    animation: none;
    transition: none;
  }
}

@media (max-width: 1100px) {
.projects-grid, .fast-data, .detail-grid {
        grid-template-columns: 1fr;
      }

}

@media (max-width: 768px) {
.project-hero { min-height: 240px; padding: 1.75rem; }

.fast-data,
.projects-grid,
.detail-grid { gap: var(--space-md); }

.card,
.fast-card { padding: 1.35rem; }

}

@media (max-width: 640px) {
  .project-hero { min-height: 220px; padding: 1.5rem; }

  .project-hero h2 { font-size: clamp(1.3rem, 4vw, 1.8rem); }

  .project-hero p { font-size: var(--fs-sm); }

  .card { padding: 1.25rem; }

  .fast-card { padding: 1rem; }

  .fast-card span { font-size: 0.72rem; }

  .detail-list { gap: 0.5rem; }

  .detail-card h3, .why-card h3 { font-size: 1rem; }
}

@media (max-width: 480px) {
.project-hero {
  min-height: 200px;
  padding: 1.5rem;
}

.project-hero h2 { font-size: 1.5rem; }

.project-hero p { font-size: var(--fs-base); }

.fast-card {
  padding: 1rem;
}

.fast-card span { font-size: 0.7rem; }

.fast-card strong { font-size: var(--fs-lg); }

.card { padding: 1.25rem; }

.detail-list { gap: 0.5rem; }

.project-section { padding-top: 3rem; }

}

@media (max-width: 375px) {
  .project-hero { min-height: 170px; padding: 1.25rem; }

  .project-hero h2 { font-size: 1.25rem; }

  .fast-card { padding: 0.75rem; }

  .fast-card span { font-size: 0.65rem; }

  .fast-card strong { font-size: var(--fs-md); }

  .card { padding: 1rem; }

  .project-section { padding-top: 2rem; }

  .detail-list li { font-size: 0.88rem; }
}
