/* === Skill Rings === */ .bkbg-sr-wrap { background: var(--bkbg-sr-bg, transparent); padding: var(--bkbg-sr-pt, 60px) clamp(20px, 5vw, 60px) var(--bkbg-sr-pb, 60px); } /* === ROW layout === */ .bkbg-sr-row { display: flex; flex-wrap: wrap; gap: 40px; justify-content: center; align-items: flex-start; } .bkbg-sr-item { display: flex; flex-direction: column; align-items: center; gap: 0; } .bkbg-sr-ring-wrap { position: relative; display: flex; align-items: center; justify-content: center; } .bkbg-sr-ring-wrap svg { display: block; overflow: visible; } /* Center label (row/inside) */ .bkbg-sr-center { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); text-align: center; pointer-events: none; line-height: 1.1; } .bkbg-sr-pct { font-family: var(--bksr-pc-font-family, inherit); font-size: var(--bksr-pc-font-size-d, 28px); font-weight: var(--bksr-pc-font-weight, 700); line-height: var(--bksr-pc-line-height-d, 1.1); text-transform: var(--bksr-pc-text-transform, none); font-style: var(--bksr-pc-font-style, normal); text-decoration: var(--bksr-pc-text-decoration, none); letter-spacing: var(--bksr-pc-letter-spacing-d); word-spacing: var(--bksr-pc-word-spacing-d); color: var(--bkbg-sr-pct-color, #fff); display: block; } .bkbg-sr-name-inside { font-family: var(--bksr-lb-font-family, inherit); font-size: var(--bksr-lb-font-size-d, 14px); font-weight: var(--bksr-lb-font-weight, 400); line-height: var(--bksr-lb-line-height-d, 1.3); text-transform: var(--bksr-lb-text-transform, none); font-style: var(--bksr-lb-font-style, normal); text-decoration: var(--bksr-lb-text-decoration, none); letter-spacing: var(--bksr-lb-letter-spacing-d); word-spacing: var(--bksr-lb-word-spacing-d); color: var(--bkbg-sr-label-color, #fff); opacity: 0.7; display: block; margin-top: 2px; } /* Labels below */ .bkbg-sr-label-below { margin-top: 10px; text-align: center; } .bkbg-sr-pct-below { font-family: var(--bksr-pc-font-family, inherit); font-size: var(--bksr-pc-font-size-d, 28px); font-weight: var(--bksr-pc-font-weight, 700); line-height: var(--bksr-pc-line-height-d, 1.1); text-transform: var(--bksr-pc-text-transform, none); font-style: var(--bksr-pc-font-style, normal); text-decoration: var(--bksr-pc-text-decoration, none); letter-spacing: var(--bksr-pc-letter-spacing-d); word-spacing: var(--bksr-pc-word-spacing-d); color: var(--bkbg-sr-pct-color, #fff); } .bkbg-sr-name-below { font-family: var(--bksr-lb-font-family, inherit); font-size: var(--bksr-lb-font-size-d, 14px); font-weight: var(--bksr-lb-font-weight, 400); line-height: var(--bksr-lb-line-height-d, 1.3); text-transform: var(--bksr-lb-text-transform, none); font-style: var(--bksr-lb-font-style, normal); text-decoration: var(--bksr-lb-text-decoration, none); letter-spacing: var(--bksr-lb-letter-spacing-d); word-spacing: var(--bksr-lb-word-spacing-d); color: var(--bkbg-sr-label-color, #fff); opacity: 0.7; margin-top: 4px; } /* SVG progress circle — start invisible, animate via JS */ .bkbg-sr-progress { transition: stroke-dashoffset var(--bkbg-sr-dur, 1400ms) var(--bkbg-sr-easing, ease-out); will-change: stroke-dashoffset; } /* === CONCENTRIC layout === */ .bkbg-sr-concentric { display: flex; flex-direction: column; align-items: center; gap: 24px; } .bkbg-sr-concentric svg { display: block; max-width: 100%; } /* Concentric legend */ .bkbg-sr-legend { display: flex; flex-direction: column; gap: 8px; min-width: 180px; } .bkbg-sr-legend-item { display: flex; align-items: center; gap: 10px; } .bkbg-sr-legend-dot { width: 10px; height: 10px; border-radius: 50%; flex-shrink: 0; } .bkbg-sr-legend-name { flex: 1; font-family: var(--bksr-lb-font-family, inherit); font-size: var(--bksr-lb-font-size-d, 14px); font-weight: var(--bksr-lb-font-weight, 400); line-height: var(--bksr-lb-line-height-d, 1.3); text-transform: var(--bksr-lb-text-transform, none); font-style: var(--bksr-lb-font-style, normal); text-decoration: var(--bksr-lb-text-decoration, none); letter-spacing: var(--bksr-lb-letter-spacing-d); word-spacing: var(--bksr-lb-word-spacing-d); color: var(--bkbg-sr-label-color, #fff); } .bkbg-sr-legend-pct { font-family: var(--bksr-pc-font-family, inherit); font-size: var(--bksr-pc-font-size-d, 14px); font-weight: var(--bksr-pc-font-weight, 700); line-height: var(--bksr-pc-line-height-d, 1.1); letter-spacing: var(--bksr-pc-letter-spacing-d); } /* Responsive */ @media (max-width: 480px) { .bkbg-sr-row { gap: 24px; } } /* ---- Typography responsive: Tablet ---- */ @media (max-width: 1024px) { .bkbg-sr-pct, .bkbg-sr-pct-below, .bkbg-sr-legend-pct { font-size: var(--bksr-pc-font-size-t, var(--bksr-pc-font-size-d, 28px)); line-height: var(--bksr-pc-line-height-t, var(--bksr-pc-line-height-d, 1.1)); letter-spacing: var(--bksr-pc-letter-spacing-t, var(--bksr-pc-letter-spacing-d)); word-spacing: var(--bksr-pc-word-spacing-t, var(--bksr-pc-word-spacing-d)); } .bkbg-sr-name-inside, .bkbg-sr-name-below, .bkbg-sr-legend-name { font-size: var(--bksr-lb-font-size-t, var(--bksr-lb-font-size-d, 14px)); line-height: var(--bksr-lb-line-height-t, var(--bksr-lb-line-height-d, 1.3)); letter-spacing: var(--bksr-lb-letter-spacing-t, var(--bksr-lb-letter-spacing-d)); word-spacing: var(--bksr-lb-word-spacing-t, var(--bksr-lb-word-spacing-d)); } } /* ---- Typography responsive: Mobile ---- */ @media (max-width: 767px) { .bkbg-sr-pct, .bkbg-sr-pct-below, .bkbg-sr-legend-pct { font-size: var(--bksr-pc-font-size-m, var(--bksr-pc-font-size-t, var(--bksr-pc-font-size-d, 28px))); line-height: var(--bksr-pc-line-height-m, var(--bksr-pc-line-height-t, var(--bksr-pc-line-height-d, 1.1))); letter-spacing: var(--bksr-pc-letter-spacing-m, var(--bksr-pc-letter-spacing-t, var(--bksr-pc-letter-spacing-d))); word-spacing: var(--bksr-pc-word-spacing-m, var(--bksr-pc-word-spacing-t, var(--bksr-pc-word-spacing-d))); } .bkbg-sr-name-inside, .bkbg-sr-name-below, .bkbg-sr-legend-name { font-size: var(--bksr-lb-font-size-m, var(--bksr-lb-font-size-t, var(--bksr-lb-font-size-d, 14px))); line-height: var(--bksr-lb-line-height-m, var(--bksr-lb-line-height-t, var(--bksr-lb-line-height-d, 1.3))); letter-spacing: var(--bksr-lb-letter-spacing-m, var(--bksr-lb-letter-spacing-t, var(--bksr-lb-letter-spacing-d))); word-spacing: var(--bksr-lb-word-spacing-m, var(--bksr-lb-word-spacing-t, var(--bksr-lb-word-spacing-d))); } }