/**
 * Theme System
 * To disable themes, remove this file and scripts/themes.js from index.html
 */

/* Theme toggle button */
.theme-button {
  padding: 0.5rem 1rem;
  background: transparent;
  color: inherit;
  border: 1px solid rgba(0, 0, 0, 0.25);
  border-radius: 4px;
  font-family: inherit;
  font-size: 0.95rem;
  cursor: pointer;
  transition: background-color 0.2s ease, border-color 0.2s ease;
}

.theme-button:hover,
.theme-button:focus {
  background: rgba(0, 0, 0, 0.05);
  border-color: rgba(0, 0, 0, 0.4);
}

/* Theme dropdown */
.theme-dropdown {
  position: absolute;
  top: 100%;
  right: 0;
  margin-top: 0.25rem;
  background: var(--bg-color, #ece4d7);
  border: 1px solid rgba(0, 0, 0, 0.15);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
  z-index: 101;
  min-width: 140px;
}

.theme-dropdown[hidden] {
  display: none;
}

.theme-option {
  display: block;
  width: 100%;
  padding: 0.65rem 1rem;
  background: none;
  border: none;
  text-align: left;
  font-family: inherit;
  font-size: 0.95rem;
  cursor: pointer;
  color: inherit;
  transition: background-color 0.15s ease;
}

.theme-option:hover,
.theme-option:focus {
  background: rgba(0, 0, 0, 0.06);
}

.theme-option.active {
  font-weight: 600;
}

.theme-option + .theme-option {
  border-top: 1px solid rgba(0, 0, 0, 0.08);
}

/* ============================================
   LIGHT THEME (default - matches current site)
   ============================================ */
:root,
[data-theme="light"] {
  --font-family: 'Helvetica Neue', Helvetica, Arial, system-ui, sans-serif;
  --bg-color: #ece4d7;
  --text-color: #111;
  --text-muted: rgba(0, 0, 0, 0.65);
  --text-subtle: rgba(0, 0, 0, 0.6);
  --border-color: rgba(0, 0, 0, 0.08);
  --divider-color: rgba(0, 0, 0, 0.15);
  --link-underline: rgba(0, 0, 0, 0.25);
  --link-underline-hover: rgba(0, 0, 0, 0.65);
  --card-bg: rgba(255, 255, 255, 0.65);
  --card-bg-hover: rgba(255, 255, 255, 0.85);
  --button-bg: #111;
  --button-text: #ece4d7;
  --button-bg-hover: rgba(17, 17, 17, 0.85);
  --modal-backdrop: rgba(0, 0, 0, 0.6);
  --icon-opacity: 0.8;
  --cf-line-color: #1a5fb4;
  --cf-point-color: #ece4d7;
  --cf-purple: #9c1fa4;
}

/* Light theme font variants */
[data-theme="light-system"] {
  --font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --bg-color: #ece4d7;
  --text-color: #111;
  --text-muted: rgba(0, 0, 0, 0.65);
  --text-subtle: rgba(0, 0, 0, 0.6);
  --border-color: rgba(0, 0, 0, 0.08);
  --divider-color: rgba(0, 0, 0, 0.15);
  --link-underline: rgba(0, 0, 0, 0.25);
  --link-underline-hover: rgba(0, 0, 0, 0.65);
  --card-bg: rgba(255, 255, 255, 0.65);
  --card-bg-hover: rgba(255, 255, 255, 0.85);
  --button-bg: #111;
  --button-text: #ece4d7;
  --button-bg-hover: rgba(17, 17, 17, 0.85);
  --modal-backdrop: rgba(0, 0, 0, 0.6);
  --icon-opacity: 0.8;
  --cf-line-color: #1a5fb4;
  --cf-point-color: #ece4d7;
  --cf-purple: #9c1fa4;
}

[data-theme="light-geometric"] {
  --font-family: 'Avenir Next', Avenir, Montserrat, 'Trebuchet MS', sans-serif;
  --bg-color: #ece4d7;
  --text-color: #111;
  --text-muted: rgba(0, 0, 0, 0.65);
  --text-subtle: rgba(0, 0, 0, 0.6);
  --border-color: rgba(0, 0, 0, 0.08);
  --divider-color: rgba(0, 0, 0, 0.15);
  --link-underline: rgba(0, 0, 0, 0.25);
  --link-underline-hover: rgba(0, 0, 0, 0.65);
  --card-bg: rgba(255, 255, 255, 0.65);
  --card-bg-hover: rgba(255, 255, 255, 0.85);
  --button-bg: #111;
  --button-text: #ece4d7;
  --button-bg-hover: rgba(17, 17, 17, 0.85);
  --modal-backdrop: rgba(0, 0, 0, 0.6);
  --icon-opacity: 0.8;
  --cf-line-color: #1a5fb4;
  --cf-point-color: #ece4d7;
  --cf-purple: #9c1fa4;
}

[data-theme="light-humanist"] {
  --font-family: Optima, Candara, 'Noto Sans', sans-serif;
  --bg-color: #ece4d7;
  --text-color: #111;
  --text-muted: rgba(0, 0, 0, 0.65);
  --text-subtle: rgba(0, 0, 0, 0.6);
  --border-color: rgba(0, 0, 0, 0.08);
  --divider-color: rgba(0, 0, 0, 0.15);
  --link-underline: rgba(0, 0, 0, 0.25);
  --link-underline-hover: rgba(0, 0, 0, 0.65);
  --card-bg: rgba(255, 255, 255, 0.65);
  --card-bg-hover: rgba(255, 255, 255, 0.85);
  --button-bg: #111;
  --button-text: #ece4d7;
  --button-bg-hover: rgba(17, 17, 17, 0.85);
  --modal-backdrop: rgba(0, 0, 0, 0.6);
  --icon-opacity: 0.8;
  --cf-line-color: #1a5fb4;
  --cf-point-color: #ece4d7;
  --cf-purple: #9c1fa4;
}

/* ============================================
   DARK THEME (minimalist)
   ============================================ */
[data-theme="dark"] {
  --font-family: 'Helvetica Neue', Helvetica, Arial, system-ui, sans-serif;
  --bg-color: #1a1a1a;
  --text-color: #e8e8e8;
  --text-muted: rgba(255, 255, 255, 0.65);
  --text-subtle: rgba(255, 255, 255, 0.55);
  --border-color: rgba(255, 255, 255, 0.1);
  --divider-color: rgba(255, 255, 255, 0.2);
  --link-underline: rgba(255, 255, 255, 0.3);
  --link-underline-hover: rgba(255, 255, 255, 0.7);
  --card-bg: rgba(255, 255, 255, 0.06);
  --card-bg-hover: rgba(255, 255, 255, 0.1);
  --button-bg: #e8e8e8;
  --button-text: #1a1a1a;
  --button-bg-hover: rgba(232, 232, 232, 0.85);
  --modal-backdrop: rgba(0, 0, 0, 0.75);
  --icon-opacity: 0.85;
  --cf-line-color: #62a0ea;
  --cf-point-color: #1a1a1a;
  --cf-purple: #c87ed0;
}

/* Dark theme font variants */
[data-theme="dark-system"] {
  --font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --bg-color: #1a1a1a;
  --text-color: #e8e8e8;
  --text-muted: rgba(255, 255, 255, 0.65);
  --text-subtle: rgba(255, 255, 255, 0.55);
  --border-color: rgba(255, 255, 255, 0.1);
  --divider-color: rgba(255, 255, 255, 0.2);
  --link-underline: rgba(255, 255, 255, 0.3);
  --link-underline-hover: rgba(255, 255, 255, 0.7);
  --card-bg: rgba(255, 255, 255, 0.06);
  --card-bg-hover: rgba(255, 255, 255, 0.1);
  --button-bg: #e8e8e8;
  --button-text: #1a1a1a;
  --button-bg-hover: rgba(232, 232, 232, 0.85);
  --modal-backdrop: rgba(0, 0, 0, 0.75);
  --icon-opacity: 0.85;
  --cf-line-color: #62a0ea;
  --cf-point-color: #1a1a1a;
  --cf-purple: #c87ed0;
}

[data-theme="dark-geometric"] {
  --font-family: 'Avenir Next', Avenir, Montserrat, 'Trebuchet MS', sans-serif;
  --bg-color: #1a1a1a;
  --text-color: #e8e8e8;
  --text-muted: rgba(255, 255, 255, 0.65);
  --text-subtle: rgba(255, 255, 255, 0.55);
  --border-color: rgba(255, 255, 255, 0.1);
  --divider-color: rgba(255, 255, 255, 0.2);
  --link-underline: rgba(255, 255, 255, 0.3);
  --link-underline-hover: rgba(255, 255, 255, 0.7);
  --card-bg: rgba(255, 255, 255, 0.06);
  --card-bg-hover: rgba(255, 255, 255, 0.1);
  --button-bg: #e8e8e8;
  --button-text: #1a1a1a;
  --button-bg-hover: rgba(232, 232, 232, 0.85);
  --modal-backdrop: rgba(0, 0, 0, 0.75);
  --icon-opacity: 0.85;
  --cf-line-color: #62a0ea;
  --cf-point-color: #1a1a1a;
  --cf-purple: #c87ed0;
}

[data-theme="dark-humanist"] {
  --font-family: Optima, Candara, 'Noto Sans', sans-serif;
  --bg-color: #1a1a1a;
  --text-color: #e8e8e8;
  --text-muted: rgba(255, 255, 255, 0.65);
  --text-subtle: rgba(255, 255, 255, 0.55);
  --border-color: rgba(255, 255, 255, 0.1);
  --divider-color: rgba(255, 255, 255, 0.2);
  --link-underline: rgba(255, 255, 255, 0.3);
  --link-underline-hover: rgba(255, 255, 255, 0.7);
  --card-bg: rgba(255, 255, 255, 0.06);
  --card-bg-hover: rgba(255, 255, 255, 0.1);
  --button-bg: #e8e8e8;
  --button-text: #1a1a1a;
  --button-bg-hover: rgba(232, 232, 232, 0.85);
  --modal-backdrop: rgba(0, 0, 0, 0.75);
  --icon-opacity: 0.85;
  --cf-line-color: #62a0ea;
  --cf-point-color: #1a1a1a;
  --cf-purple: #c87ed0;
}

[data-theme="dark"] .theme-button,
[data-theme="dark-system"] .theme-button,
[data-theme="dark-geometric"] .theme-button,
[data-theme="dark-humanist"] .theme-button,
[data-theme="flexoki-dark"] .theme-button {
  border-color: rgba(255, 255, 255, 0.25);
}

[data-theme="dark"] .theme-button:hover,
[data-theme="dark"] .theme-button:focus,
[data-theme="dark-system"] .theme-button:hover,
[data-theme="dark-system"] .theme-button:focus,
[data-theme="dark-geometric"] .theme-button:hover,
[data-theme="dark-geometric"] .theme-button:focus,
[data-theme="dark-humanist"] .theme-button:hover,
[data-theme="dark-humanist"] .theme-button:focus,
[data-theme="flexoki-dark"] .theme-button:hover,
[data-theme="flexoki-dark"] .theme-button:focus {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.4);
}

[data-theme="dark"] .theme-option:hover,
[data-theme="dark"] .theme-option:focus,
[data-theme="dark-system"] .theme-option:hover,
[data-theme="dark-system"] .theme-option:focus,
[data-theme="dark-geometric"] .theme-option:hover,
[data-theme="dark-geometric"] .theme-option:focus,
[data-theme="dark-humanist"] .theme-option:hover,
[data-theme="dark-humanist"] .theme-option:focus,
[data-theme="flexoki-dark"] .theme-option:hover,
[data-theme="flexoki-dark"] .theme-option:focus {
  background: rgba(255, 255, 255, 0.08);
}

[data-theme="dark"] .theme-option + .theme-option,
[data-theme="dark-system"] .theme-option + .theme-option,
[data-theme="dark-geometric"] .theme-option + .theme-option,
[data-theme="dark-humanist"] .theme-option + .theme-option,
[data-theme="flexoki-dark"] .theme-option + .theme-option {
  border-top-color: rgba(255, 255, 255, 0.1);
}

/* ============================================
   FLEXOKI THEME
   https://stephango.com/flexoki
   ============================================ */
[data-theme="flexoki-light"] {
  --bg-color: #fffcf0;
  --text-color: #1c1b1a;
  --text-muted: #575653;
  --text-subtle: #6f6e69;
  --border-color: #cecdc3;
  --divider-color: #b7b5ac;
  --link-underline: #4385be;
  --link-underline-hover: #205ea6;
  --card-bg: #f2f0e5;
  --card-bg-hover: #e6e4d9;
  --button-bg: #1c1b1a;
  --button-text: #fffcf0;
  --button-bg-hover: #282726;
  --modal-backdrop: rgba(16, 15, 15, 0.6);
  --icon-opacity: 0.85;
  --cf-line-color: #4385be;
  --cf-point-color: #fffcf0;
  --cf-purple: #9c1fa4;
}

[data-theme="flexoki-dark"] {
  --bg-color: #1c1b1a;
  --text-color: #cecdc3;
  --text-muted: #9f9d96;
  --text-subtle: #878580;
  --border-color: #403e3c;
  --divider-color: #575653;
  --link-underline: #205ea6;
  --link-underline-hover: #4385be;
  --card-bg: #282726;
  --card-bg-hover: #343331;
  --button-bg: #cecdc3;
  --button-text: #1c1b1a;
  --button-bg-hover: #dad8ce;
  --modal-backdrop: rgba(16, 15, 15, 0.75);
  --icon-opacity: 0.85;
  --cf-line-color: #205ea6;
  --cf-point-color: #1c1b1a;
  --cf-purple: #5e409d;
}

/* ============================================
   CHANNEL ORANGE THEME
   Inspired by Frank Ocean's "Channel Orange"
   White text on burnt orange, like the album cover
   ============================================ */
[data-theme="orange"] {
  --bg-color: #d7733d;
  --text-color: #ffffff;
  --text-muted: rgba(255, 255, 255, 0.8);
  --text-subtle: rgba(255, 255, 255, 0.7);
  --border-color: rgba(255, 255, 255, 0.2);
  --divider-color: rgba(255, 255, 255, 0.35);
  --link-underline: rgba(255, 255, 255, 0.4);
  --link-underline-hover: rgba(255, 255, 255, 0.85);
  --card-bg: rgba(0, 0, 0, 0.12);
  --card-bg-hover: rgba(0, 0, 0, 0.18);
  --button-bg: #ffffff;
  --button-text: #d7733d;
  --button-bg-hover: rgba(255, 255, 255, 0.9);
  --modal-backdrop: rgba(0, 0, 0, 0.5);
  --icon-opacity: 0.9;
  --cf-line-color: #ffffff;
  --cf-point-color: #d7733d;
  --cf-purple: #d494da;
}

[data-theme="orange"] .theme-button {
  border-color: rgba(255, 255, 255, 0.4);
}

[data-theme="orange"] .theme-button:hover,
[data-theme="orange"] .theme-button:focus {
  background: rgba(255, 255, 255, 0.15);
  border-color: rgba(255, 255, 255, 0.7);
}

[data-theme="orange"] .theme-option:hover,
[data-theme="orange"] .theme-option:focus {
  background: rgba(0, 0, 0, 0.1);
}

[data-theme="orange"] .theme-option + .theme-option {
  border-top-color: rgba(255, 255, 255, 0.15);
}

/* ============================================
   COFFEE THEME
   Deep espresso brown with creamy light text
   ============================================ */
[data-theme="coffee"] {
  --bg-color: #3b1c0a;
  --text-color: #f5ebe0;
  --text-muted: rgba(245, 235, 224, 0.75);
  --text-subtle: rgba(245, 235, 224, 0.65);
  --border-color: rgba(92, 52, 28, 0.6);
  --divider-color: rgba(245, 235, 224, 0.25);
  --link-underline: rgba(245, 235, 224, 0.35);
  --link-underline-hover: rgba(245, 235, 224, 0.8);
  --card-bg: #5c341c;
  --card-bg-hover: #6b3f24;
  --button-bg: #f5ebe0;
  --button-text: #3b1c0a;
  --button-bg-hover: rgba(245, 235, 224, 0.9);
  --modal-backdrop: rgba(0, 0, 0, 0.6);
  --icon-opacity: 0.85;
  --cf-line-color: #f5ebe0;
  --cf-point-color: #3b1c0a;
  --cf-purple: #d494da;
}

[data-theme="coffee"] .theme-button {
  border-color: rgba(245, 235, 224, 0.3);
}

[data-theme="coffee"] .theme-button:hover,
[data-theme="coffee"] .theme-button:focus {
  background: rgba(245, 235, 224, 0.1);
  border-color: rgba(245, 235, 224, 0.5);
}

[data-theme="coffee"] .theme-option:hover,
[data-theme="coffee"] .theme-option:focus {
  background: rgba(245, 235, 224, 0.1);
}

[data-theme="coffee"] .theme-option + .theme-option {
  border-top-color: rgba(245, 235, 224, 0.12);
}

/* ============================================
   CATPPUCCIN MOCHA THEME
   Soothing pastel dark theme
   https://catppuccin.com
   ============================================ */
[data-theme="catppuccin"] {
  --bg-color: #1e1e2e;
  --text-color: #cdd6f4;
  --text-muted: #a6adc8;
  --text-subtle: #9399b2;
  --border-color: rgba(147, 153, 178, 0.2);
  --divider-color: rgba(147, 153, 178, 0.35);
  --link-underline: rgba(180, 190, 254, 0.4);
  --link-underline-hover: #b4befe;
  --card-bg: #313244;
  --card-bg-hover: #45475a;
  --button-bg: #b4befe;
  --button-text: #1e1e2e;
  --button-bg-hover: #cdd6f4;
  --modal-backdrop: rgba(17, 17, 27, 0.8);
  --icon-opacity: 0.85;
  --cf-line-color: #b4befe;
  --cf-point-color: #1e1e2e;
  --cf-purple: #cba6f7;
}

[data-theme="catppuccin"] .theme-button {
  border-color: rgba(180, 190, 254, 0.35);
}

[data-theme="catppuccin"] .theme-button:hover,
[data-theme="catppuccin"] .theme-button:focus {
  background: rgba(180, 190, 254, 0.1);
  border-color: rgba(180, 190, 254, 0.6);
}

[data-theme="catppuccin"] .theme-option:hover,
[data-theme="catppuccin"] .theme-option:focus {
  background: rgba(180, 190, 254, 0.1);
}

[data-theme="catppuccin"] .theme-option + .theme-option {
  border-top-color: rgba(147, 153, 178, 0.15);
}

/* ============================================
   ROSÉ PINE THEME
   All natural pine, faux fur and a bit of soho vibes
   https://rosepinetheme.com
   ============================================ */
[data-theme="rosepine"] {
  --bg-color: #191724;
  --text-color: #e0def4;
  --text-muted: #908caa;
  --text-subtle: #6e6a86;
  --border-color: rgba(110, 106, 134, 0.25);
  --divider-color: rgba(110, 106, 134, 0.45);
  --link-underline: rgba(235, 111, 146, 0.5);
  --link-underline-hover: #eb6f92;
  --card-bg: #1f1d2e;
  --card-bg-hover: #26233a;
  --button-bg: #eb6f92;
  --button-text: #191724;
  --button-bg-hover: #f5a0b4;
  --modal-backdrop: rgba(25, 23, 36, 0.85);
  --icon-opacity: 0.85;
  --cf-line-color: #eb6f92;
  --cf-point-color: #191724;
  --cf-purple: #c4a7e7;
}

[data-theme="rosepine"] .theme-button {
  border-color: rgba(235, 111, 146, 0.4);
}

[data-theme="rosepine"] .theme-button:hover,
[data-theme="rosepine"] .theme-button:focus {
  background: rgba(235, 111, 146, 0.12);
  border-color: rgba(235, 111, 146, 0.7);
}

[data-theme="rosepine"] .theme-option:hover,
[data-theme="rosepine"] .theme-option:focus {
  background: rgba(235, 111, 146, 0.12);
}

[data-theme="rosepine"] .theme-option + .theme-option {
  border-top-color: rgba(110, 106, 134, 0.2);
}

/* ============================================
   NEON THEME
   Blade Runner 2049 / Joi hologram inspired
   Deep purple with pink accents
   ============================================ */
[data-theme="neon"] {
  --bg-color: #351e4a;
  --text-color: #f0e0f5;
  --text-muted: rgba(240, 224, 245, 0.8);
  --text-subtle: rgba(240, 224, 245, 0.65);
  --border-color: rgba(181, 90, 163, 0.3);
  --divider-color: rgba(181, 90, 163, 0.5);
  --link-underline: rgba(181, 90, 163, 0.5);
  --link-underline-hover: #b55aa3;
  --card-bg: #b55aa3;
  --card-bg-hover: #c875b5;
  --button-bg: #493696;
  --button-text: #f0e0f5;
  --button-bg-hover: #5a42a8;
  --modal-backdrop: rgba(53, 30, 74, 0.92);
  --icon-opacity: 0.9;
  --cf-line-color: #f0e0f5;
  --cf-point-color: #351e4a;
  --cf-purple: #e066c8;
}

[data-theme="neon"] .theme-button {
  border-color: rgba(181, 90, 163, 0.5);
}

[data-theme="neon"] .theme-button:hover,
[data-theme="neon"] .theme-button:focus {
  background: rgba(181, 90, 163, 0.15);
  border-color: rgba(181, 90, 163, 0.8);
  box-shadow: 0 0 12px rgba(181, 90, 163, 0.35);
}

[data-theme="neon"] .theme-option:hover,
[data-theme="neon"] .theme-option:focus {
  background: rgba(181, 90, 163, 0.15);
}

[data-theme="neon"] .theme-option + .theme-option {
  border-top-color: rgba(181, 90, 163, 0.25);
}

[data-theme="neon"] .contact-button {
  box-shadow: 0 0 12px rgba(181, 90, 163, 0.45);
}

[data-theme="neon"] .contact-button:hover,
[data-theme="neon"] .contact-button:focus {
  box-shadow: 0 0 18px rgba(181, 90, 163, 0.65);
}

/* ============================================
   CODEFORCES THEME
   Classic Codeforces look - white bg, blue accents
   ============================================ */
[data-theme="codeforces"] {
  --bg-color: #ffffff;
  --text-color: #000000;
  --text-muted: #666666;
  --text-subtle: #888888;
  --border-color: #b9b9b9;
  --divider-color: #cccccc;
  --link-underline: #0000c4;
  --link-underline-hover: #000080;
  --card-bg: #ffffff;
  --card-bg-hover: #ffffff;
  --button-bg: #425894;
  --button-text: #ffffff;
  --button-bg-hover: #364a7a;
  --modal-backdrop: rgba(0, 0, 0, 0.5);
  --icon-opacity: 0.85;
  --cf-line-color: #425894;
  --cf-point-color: #ffffff;
  --cf-purple: #9c1fa4;
}

[data-theme="codeforces"] .theme-button {
  border-color: #425894;
  color: #425894;
}

[data-theme="codeforces"] .theme-button:hover,
[data-theme="codeforces"] .theme-button:focus {
  background: rgba(66, 88, 148, 0.1);
  border-color: #2d3d66;
}

[data-theme="codeforces"] .theme-option:hover,
[data-theme="codeforces"] .theme-option:focus {
  background: rgba(66, 88, 148, 0.1);
}

[data-theme="codeforces"] .theme-option + .theme-option {
  border-top-color: #e1e1e1;
}

[data-theme="codeforces"] a {
  color: #0000c4;
}

[data-theme="codeforces"] a:hover,
[data-theme="codeforces"] a:focus {
  color: #000080;
}

[data-theme="codeforces"] .section-heading h2,
[data-theme="codeforces"] .work-entry h3,
[data-theme="codeforces"] .project-summary h3 {
  color: #425894;
}

[data-theme="codeforces"] .project-summary h3 {
  font-weight: normal;
}

[data-theme="codeforces"] .project-card,
[data-theme="codeforces"] .work-body,
[data-theme="codeforces"] .cp-body {
  border-radius: 6px;
}

/* ============================================
   Apply theme variables to elements
   ============================================ */
:root {
  background-color: var(--bg-color);
  color: var(--text-color);
}

body {
  background-color: var(--bg-color);
  color: var(--text-color);
  transition: background-color 0.3s ease, color 0.3s ease;
}

a {
  color: inherit;
  text-decoration-color: var(--link-underline);
}

a:hover,
a:focus {
  text-decoration-color: var(--link-underline-hover);
}

.eyebrow {
  color: var(--text-muted);
}

.section-heading {
  border-top-color: var(--divider-color);
}

.site-header {
  border-bottom-color: var(--divider-color);
}

.social-link {
  border-bottom-color: var(--link-underline);
}

.icon {
  opacity: var(--icon-opacity);
}

.project-card,
.work-body,
.cp-body {
  border-color: var(--border-color);
  background: var(--card-bg);
  transition: background-color 0.3s ease, border-color 0.3s ease;
}

.project-description {
  color: var(--text-color);
  opacity: 0.85;
}

.project-tags {
  color: var(--text-muted);
}

.project-detail {
  color: var(--text-color);
  opacity: 0.78;
}

.project-links a {
  border-bottom-color: var(--link-underline);
}

.project-media video {
  border-color: var(--border-color);
}

.project-media figcaption {
  color: var(--text-muted);
}

.work-meta {
  color: var(--text-subtle);
}

.cp-instructions {
  color: var(--text-muted);
}

footer {
  color: var(--text-subtle);
  border-top-color: var(--divider-color);
}

/* Contact button themed */
.contact-button {
  background: var(--button-bg);
  color: var(--button-text);
  transition: background-color 0.2s ease;
}

.contact-button:hover,
.contact-button:focus {
  background: var(--button-bg-hover);
}

/* Contact modal themed */
.contact-modal {
  background: var(--modal-backdrop);
}

.contact-modal-content {
  background: var(--bg-color);
  transition: background-color 0.3s ease;
}

.contact-close {
  color: var(--text-muted);
}

.contact-close:hover,
.contact-close:focus {
  color: var(--text-color);
}

.contact-link {
  background: var(--card-bg);
  border-color: var(--border-color);
}

.contact-link:hover,
.contact-link:focus {
  background: var(--card-bg-hover);
}

/* Theme dropdown themed */
.theme-dropdown {
  background: var(--bg-color);
  border-color: var(--border-color);
}

@media (max-width: 640px) {
  .theme-button {
    font-size: 0.9rem;
    padding: 0.45rem 0.85rem;
  }
}
