/* =============================================================
   Section · Awards — 수상 실적
   통통 튀는 메달 카드 (팝 등장 + 둥실 바운스 + hover 통!)
   ============================================================= */

.awards {
  position: relative; overflow: hidden;
  padding: var(--space-24) 0;
  background:
    radial-gradient(42% 42% at 50% 34%, rgba(233,255,112,.20), transparent 62%),
    radial-gradient(40% 38% at 52% 68%, rgba(239,158,120,.16), transparent 62%),
    var(--color-paper);
}
.awards__inner { max-width: var(--container); margin: 0 auto; padding: 0 var(--space-6); }

.awards__head { text-align: center; margin: 0 0 var(--space-16); }
.awards__label {
  font-size: var(--fs-small); font-weight: var(--fw-bold);
  letter-spacing: .18em; color: var(--color-coral-deep); margin-bottom: var(--space-3);
}
.awards__title {
  font-size: clamp(2rem, 4vw, 3rem); font-weight: var(--fw-extra);
  line-height: 1.2; letter-spacing: var(--ls-tight); margin: 0 0 var(--space-4); color: var(--color-ink);
}
.awards__sub { font-size: 1.05rem; color: var(--color-subtext); margin: 0; }

/* ---------------- 그리드 ---------------- */
.awards__grid {
  position: relative;
  display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--space-8);
}

/* 카드를 꿰뚫는 곡선 줄 (binding thread) */
.awards__thread {
  position: absolute; inset: 0; width: 100%; height: 100%;
  z-index: 0; pointer-events: none; color: var(--color-lime-deep);
  overflow: visible;
}

/* 카드 (바깥: 등장 애니메이션 / 안쪽: 기울임 + hover) */
.award { position: relative; z-index: 1; transition: opacity .6s ease, transform .6s cubic-bezier(.34, 1.56, .64, 1); }
.award__inner {
  position: relative; height: 100%;
  background: #fff; border: 1px solid var(--color-line);
  border-radius: var(--radius-lg); padding: 3.2rem 1.8rem 2.4rem;
  min-height: 320px;
  box-shadow: var(--shadow-sm); text-align: center;
  display: flex; flex-direction: column; align-items: center;
  transform: rotate(var(--tilt, -2deg));
  transition: transform .35s cubic-bezier(.34,1.56,.64,1), box-shadow .3s ease;
}
.award:nth-child(odd)  .award__inner { --tilt: -2.5deg; }
.award:nth-child(even) .award__inner { --tilt:  2.5deg; }
.award:hover .award__inner { transform: rotate(0deg) translateY(-6px); box-shadow: var(--shadow-md); }

/* 메달 */
.award__medal {
  width: 92px; height: 92px; border-radius: 50%;
  display: grid; place-items: center; margin-bottom: var(--space-5);
  background: var(--color-lime); color: var(--color-ink);
  box-shadow: 0 8px 18px rgba(120,140,40,.30);
  animation: award-bob 2.6s ease-in-out infinite;
}
.award:nth-child(even) .award__medal { background: var(--color-coral); box-shadow: 0 8px 18px rgba(229,131,90,.30); }
.award:nth-child(4n+1) .award__medal { animation-delay: 0s; }
.award:nth-child(4n+2) .award__medal { animation-delay: .25s; }
.award:nth-child(4n+3) .award__medal { animation-delay: .5s; }
.award:nth-child(4n)   .award__medal { animation-delay: .75s; }
.award__medal svg { width: 48px; height: 48px; }
.award:hover .award__medal { animation: award-pop .55s cubic-bezier(.34,1.56,.64,1); }

/* 등급 */
.award__tier {
  font-size: 1.7rem; font-weight: var(--fw-extra); letter-spacing: -.01em;
  color: var(--color-ink); margin-bottom: var(--space-3);
  display: inline-flex; align-items: center; gap: 6px;
}
.award__tier .star { color: var(--color-coral); }
.award:nth-child(even) .award__tier .star { color: var(--color-lime-deep); }

/* 수상명 */
.award__name {
  font-size: 1.05rem; line-height: 1.55; color: #3a4038; margin: 0; flex: 1;
}

/* 연도 배지 */
.award__year {
  position: absolute; top: 12px; right: 12px;
  font-size: .72rem; font-weight: var(--fw-bold); font-variant-numeric: tabular-nums;
  padding: 3px 9px; border-radius: var(--radius-pill);
  background: var(--color-paper-soft); color: var(--color-subtext);
}

/* 반짝이 두들 */
.award__spark {
  position: absolute; top: -8px; left: -6px; width: 26px; height: 26px;
  color: var(--color-coral); animation: award-twinkle 2.8s ease-in-out infinite;
}
.award:nth-child(even) .award__spark { color: var(--color-lime-deep); }
.award__spark svg { width: 100%; height: 100%; }

/* ---------------- Keyframes ---------------- */
@keyframes award-bob { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-7px); } }
@keyframes award-pop {
  0% { transform: scale(1); } 40% { transform: scale(1.18) translateY(-5px); }
  70% { transform: scale(.95); } 100% { transform: scale(1); }
}
@keyframes award-twinkle {
  0%,100% { transform: scale(.7) rotate(0); opacity: .55; }
  50% { transform: scale(1.15) rotate(15deg); opacity: 1; }
}

/* 팝 등장: from-pop(scale .55) → 오버슈트 */
.award.sr.from-pop { transform: scale(.5); }

/* ---------------- Responsive ---------------- */
@media (max-width: 920px) {
  .awards__grid { grid-template-columns: repeat(2, 1fr); }
  .awards { padding: var(--space-16) 0; }
}
@media (max-width: 480px) {
  .awards__grid { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  .award__medal, .award__spark { animation: none; }
}
