/* V5.9.1 — visually balanced equal whitespace around the floating radar. */
.about-full .skills-radar-section {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 1.22fr) minmax(0, 1.01fr);
  gap: clamp(20px, 2.6vw, 44px);
  align-items: center;
  margin-top: clamp(24px, 2.6vw, 36px);
  padding-top: clamp(24px, 2.5vw, 34px);
  border-top: 1px solid var(--line);
}
.about-full .skills-radar-copy {
  grid-column: auto;
  min-width: 0;
  align-self: center;
}
.about-full .skills-radar-copy > .resume-card-kicker {
  margin-bottom: 17px;
  font-size: clamp(12px, .9vw, 14px);
}
.about-full .skills-radar-copy h3 {
  max-width: 490px;
  margin-bottom: 20px;
  font-size: clamp(34px, 2.8vw, 48px);
  line-height: 1.075;
}
.about-full .skills-radar-copy p:not(.resume-card-kicker) {
  max-width: 435px;
  margin: 0;
  font-size: clamp(15px, 1.04vw, 17px);
  line-height: 1.75;
}
/* A chart floating on the section's own background, not in a card. */
.about-full .skills-radar-card {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-width: 0;
  max-width: none;
  padding: 0;
  margin: 0;
  border: 0;
  border-radius: 0;
  outline: 0;
  background: none;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
.about-full .skills-radar {
  display: block;
  width: 100%;
  height: auto;
  max-width: 362px;
  min-width: 0;
  overflow: visible;
  margin: 0 auto;
}
.about-full .skills-values {
  min-width: 0;
  width: 100%;
  margin: 0;
  align-self: center;
  gap: 0;
}
.about-full .skills-values > .resume-card-kicker {
  font-size: clamp(12px, .86vw, 14px);
  letter-spacing: .2em;
  margin: 0 0 16px;
}
.about-full .skill-value-row {
  min-width: 0;
  padding: clamp(13px, 1vw, 18px) 0;
  gap: 14px;
  align-items: center;
}
.about-full .skill-value-row span {
  font-size: clamp(13px, 1vw, 16px);
  line-height: 1.35;
}
.about-full .skill-value-row strong {
  font-size: clamp(14px, 1.04vw, 17px);
}
@media (max-width: 1179px) {
  .about-full .skills-radar-section {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    column-gap: clamp(20px, 4vw, 56px);
    row-gap: 10px;
  }
  .about-full .skills-radar-copy {grid-column: 1 / -1;}
  .about-full .skills-radar-copy h3 {max-width: 780px; font-size: clamp(34px, 4.6vw, 48px);}
  .about-full .skills-radar-copy p:not(.resume-card-kicker) {max-width: 800px;}
  .about-full .skills-radar {max-width: 340px;}
  .about-full .skills-values {max-width: 440px; justify-self: center;}
}
@media (max-width: 720px) {
  .about-full .skills-radar-section {
    grid-template-columns: minmax(0, 1fr);
    gap: 14px;
  }
  .about-full .skills-radar-copy {grid-column: auto;}
  .about-full .skills-radar-copy h3 {font-size: clamp(31px, 7.2vw, 42px); margin-bottom: 15px;}
  .about-full .skills-radar-copy p:not(.resume-card-kicker) {font-size: 15px;}
  .about-full .skills-radar-card {width: 100%; justify-self: stretch;}
  .about-full .skills-radar {max-width: min(100%, 344px);}
  .about-full .skills-values {max-width: none;}
  .about-full .skills-values > .resume-card-kicker {margin-bottom: 11px;}
  .about-full .skill-value-row {padding: 12px 0;}
}
/* Keep the extreme left/right axis labels readable on narrow devices. */
@media (max-width: 720px) {
  .about-full .radar-label text { text-anchor: middle; }
}

/* On extra-wide screens the SVG has a max width, so its optical centre
   drifts right as the middle track grows. Correct that drift progressively:
   0px at 1600px, easing to -36px at 1900px and wider. */
@media (min-width: 1601px) {
  .about-full .skills-radar-card {
    transform: translateX(clamp(-36px, calc(192px - 12vw), 0px));
  }
}
