/* =========================
   Theme tokens
   ========================= */
:root {
  --accent-color:                 #28AFB0;
  --accent-color-rgb:             40, 175, 176;
  --accent-color-darker:          #1f8686;
  --accent-color-darker-rgb:      31, 134, 134;
  --accent-color-darkest-rgb:     21, 92, 93;

  --link-color:                   #28AFB0;
  --link-color-darker:            #1f8686;

  --border-color:                 #B8B8B8;
  --subtitle-color:               #28AFB0;

  --body-bg:                      #181A1A;
  --body-bg-rgb:                  24, 26, 26;
  --body-bg-lighter:              #242727;
  --body-bg-darker:               #0c0d0d;
  --body-bg-darkest:              #000000;

  --body-color:                   #EBEBEB;
  --body-color-rgb:               235, 235, 235;
  --body-color-darkest:           #b8b8b8;

  --about-card-bg:                #000000;
  --footer-color:                 #9B9B9B;
  --footer-bg:                    #181A1A;

  --caption-bg:                   #000000;
  --lib-perfect-scrollbar-bg:     #444a4a;
  --component-notify-bg:          #303535;

  --lightness-body-5:             #242727;
  --lightness-body-10:            #303535;

  --font-family-primary:          'Roboto', Helvetica, Arial, sans-serif;
  --font-family-secondary:        'Montserrat', Helvetica, Arial, sans-serif;

  /* Ambient gradient defaults / safety knobs */
  --grad-angle: 135deg;
  --grad-mix: 55%;
  --grad-sat: 1;          /* 1 = full color. Lower to mute. */
  --grad-sat-max: 1;      /* Optional global cap. Set < 1 to clamp saturation everywhere. */
  
  /* Marks current job entry as "present" */
  --experience-present-color: #3DFF7A;
  --experience-present-color-rgb: 61, 255, 122;
}

/* -----------------------------
   Custom options via Theme Customizer
   ----------------------------- */
body {
  font-weight: 300;
  letter-spacing: 0;
}

.site-title a {
  font-weight: 400;
  letter-spacing: 4px;
}

.site-title .site-subtitle,
.site-footer-copy,
.site-footer .btt {
  font-weight: 300;
  letter-spacing: 0;
}

@media (min-width: 70em) {
  body { font-size: 14px; }
  .site-title a { font-size: 16px; }
  .site-title .site-subtitle { font-size: 14px; }
  .site-footer-copy,
  .site-footer .btt { font-size: 13px; }
}

/* =========================
   Social icon base
   ========================= */

/* Default: accent icons */
.so-list i.fa-brands,
.so-list i.fa-solid {
  color: var(--accent-color);
  transition: color 160ms ease;
}

/* Acknowledgements Block */
.ack-lines {
  white-space: pre-line;
}

/* =========================
   MOTION
   ========================= */

/* Social icon links: make them behave like little buttons */
.about-social .so-item a,
.so-list .so-item a,
.fo-social-item a {
  display: inline-flex;
  align-items: left;
  justify-content: left;
  transition: transform 160ms cubic-bezier(0.2, 0.8, 0.2, 1), opacity 160ms ease;
  will-change: transform;
}

/* Hover motion (link-level) */
.about-social .so-item a:hover,
.about-social .so-item a:focus-visible,
.so-list .so-item a:hover,
.so-list .so-item a:focus-visible,
.fo-social-item a:hover,
.fo-social-item a:focus-visible {
  transform: translateY(-2px) scale(1.1);
  color: var(--body-color);
}

/* Hover: turn icons to body color */
.so-list a:hover i.fa-brands,
.so-list a:hover i.fa-solid,
.so-list a:focus-visible i.fa-brands,
.so-list a:focus-visible i.fa-solid {
  color: var(--body-color);
}

/* About Email */
.about-email a {
  display: inline-flex;
  align-items: center;
  transition: transform 160ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

.about-email a:hover,
.about-email a:focus-visible {
  transform: translateY(-2px);
  color: var(--body-color);
}

/* About Resume */
.about-resume-link {
  display: inline-block;
  transition: transform 160ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

.about-resume-link:hover,
.about-resume-link:focus-visible {
  transform: translateY(-2px) scale(1.1);
}

.site-footer .btt a {
  display: inline-flex;
  align-items: center;
  gap: 0.4285714286rem;
  transition: transform 160ms cubic-bezier(0.2, 0.8, 0.2, 1), color 160ms ease;
}

.site-footer .btt a:hover,
.site-footer .btt a:focus-visible {
  transform: translateY(-2px);
}

/* Site Footer Nav Motion */
.site-footer-copy a {
  display: inline-block;
  transition: transform 160ms cubic-bezier(0.2, 0.8, 0.2, 1), color 160ms ease;
}

.site-footer-copy a:hover,
.site-footer-copy a:focus-visible {
  transform: translateY(-2px);
  color: var(--accent-color);
}

/* Header nav hover motion (preserve existing accent color) */
.header-nav li > a {
  display: inline-block;
  transition: color 200ms ease, transform 160ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

.header-nav li > a:hover,
.header-nav li > a:focus-visible {
  transform: translateY(-2px);
}

/* Footer socials: keep the icon strip centered inside its column */
.site-footer-socials {
  text-align: center;
}

.site-footer-socials .fo-social {
  display: inline-flex;      /* lets it be a tight pill */
  justify-content: center;   /* centers icons within the pill */
  align-items: center;
}

/* If you keep .fo-social-item as inline-block, this is still fine */
.site-footer-socials .fo-social-item {
  display: inline-block;
}