/* Website-wide theme enforcement */
.project-page-wrapper,
.experience-page,
.professional-journey,
.contact-wrapper {
  color: var(--color-text-primary);
  background: var(--gradient-background);
}

.project-page-wrapper,
.experience-page,
.professional-journey,
.contact-wrapper,
.project-page-wrapper * ,
.experience-page * ,
.professional-journey * ,
.contact-wrapper * {
  --page-border: var(--color-border);
  --page-surface: color-mix(in oklab, var(--color-surface) 88%, transparent);
}

.project-header h1,
.experience-page-title,
.professional-journey h1,
.contact-title {
  color: var(--color-text-primary);
  text-shadow: 0 0 32px color-mix(in srgb, var(--color-accent) 20%, transparent);
}

.experience-intro,
.professional-journey-intro,
.contact-subtitle,
.project-header .lead-text,
.project-description,
.contact-card p,
.experience-card p {
  color: var(--color-text-secondary);
}

.experience-card,
.hydro-project-card,
.contact-card,
.location-section,
.popup-card,
.professional-gallery-panel,
.professional-photo,
.input-panel,
.action-panel,
.performance-tool,
.performance-result,
.result-box,
.history-panel {
  border-color: var(--color-border);
  background: var(--page-surface);
  box-shadow: var(--shadow-sm);
  color: var(--color-text-primary);
}

.experience-card:hover,
.hydro-project-card:hover,
.contact-card:hover,
.location-section:hover,
.professional-gallery-panel:hover {
  border-color: var(--color-border-strong);
  box-shadow: var(--shadow-lg), var(--shadow-glow);
}

.professional-photo {
  border-color: var(--color-border);
  background: color-mix(in oklab, var(--color-surface) 88%, transparent);
  box-shadow: var(--shadow-sm);
  color: var(--color-text-primary);
}

.professional-photo:hover {
  border-color: var(--color-border-strong);
  box-shadow: var(--shadow-lg), var(--shadow-glow);
}

.unit-mode-control,
.unit-mode-control select,
.input-group input,
.performance-field input,
.contact-wrapper input,
.contact-wrapper textarea,
.contact-wrapper select {
  border-color: var(--color-border);
  background: var(--color-surface-solid);
  color: var(--color-text-primary);
}

.unit-mode-control:focus-within,
.unit-mode-control select:focus,
.input-group input:focus,
.performance-field input:focus,
.contact-wrapper input:focus,
.contact-wrapper textarea:focus,
.contact-wrapper select:focus {
  border-color: var(--color-accent);
  box-shadow: 0 0 0 4px var(--color-accent-soft);
}

.project-badge,
.experience-duration,
.experience-current-badge,
.normalized-times,
.normalized-grid div,
.result-line,
.contact-list-item,
.contact-icon-box,
.social-button,
.map-container {
  border-color: var(--color-border);
  background: var(--color-accent-soft);
  color: var(--color-text-primary);
}

.project-card-icon {
  border-color: var(--color-accent);
  background: var(--gradient-surface);
}

.analyzer-btn-primary,
.form-submit-btn {
  border-color: var(--color-accent);
  background: var(--gradient-main);
  color: #ffffff;
  box-shadow: var(--shadow-sm), var(--shadow-glow);
}

.analyzer-btn-secondary {
  border-color: var(--color-info);
  background: color-mix(in srgb, var(--color-info) 72%, var(--color-accent-strong));
  color: #ffffff;
}

.analyzer-btn-neutral {
  border-color: var(--color-border-strong);
  background: var(--color-surface-solid);
  color: var(--color-text-primary);
}

.professional-lightbox {
  background: color-mix(in oklab, var(--color-bg) 94%, transparent);
}

.professional-lightbox__close,
.professional-lightbox__nav {
  border-color: var(--color-border);
  background: var(--color-surface);
  color: var(--color-text-primary);
}

.professional-lightbox figcaption {
  color: var(--color-text-secondary);
}

.experience-card--current,
.professional-empty-state {
  border-color: var(--color-accent-soft);
}

.contact-glow-accent.top,
.contact-glow-accent.bottom {
  background: var(--color-accent);
  opacity: .16;
}

@media (prefers-reduced-motion: reduce) {
  .experience-card,
  .hydro-project-card,
  .contact-card {
    transition: none;
  }

  .top-navbar,
  .footer-bar,
  .lightNavShift,
  .lightFooterShift {
    animation: none;
  }
}

/* Shared premium component language */
:where(button, .premium-btn-main, .premium-btn-secondary, .btn-boom-primary, .form-submit-btn, .impact-btn, .btn-cv):active {
  transform: translateY(1px) scale(.99);
}

:where(button, input, select, textarea):disabled {
  cursor: not-allowed;
  opacity: .58;
}

:where(.experience-page, .contact-wrapper, .professional-journey, .project-page-wrapper) {
  color: var(--color-text-primary);
  background: var(--gradient-background);
}

:where(.experience-card, .hydro-project-card, .contact-card, .location-section, .popup-card, .professional-gallery-panel, .input-panel, .action-panel, .performance-tool, .performance-result, .result-box, .history-panel, .gallery-admin-dialog, .gallery-upload-form, .gallery-admin-item) {
  border-color: var(--color-border);
  background: color-mix(in oklab, var(--color-surface) 88%, transparent);
  box-shadow: var(--shadow-sm);
}

:where(.experience-card, .hydro-project-card, .contact-card, .location-section, .professional-gallery-panel, .gallery-admin-item):hover {
  border-color: var(--color-border-strong);
  box-shadow: var(--shadow-lg), var(--shadow-glow);
}

[data-theme="dark"] body,
[data-theme="dark"] .about-section-shell,
[data-theme="dark"] .project-page-wrapper,
[data-theme="dark"] .experience-page-body,
[data-theme="dark"] .professional-journey,
[data-theme="dark"] .contact-wrapper,
[data-theme="dark"] .journal-page,
[data-theme="dark"] .home-page,
[data-theme="dark"] .legal-page-wrapper {
  background: var(--gradient-background);
  color: var(--color-text-primary);
}

[data-theme="dark"] .about-card,
[data-theme="dark"] .project-card,
[data-theme="dark"] .project-header,
[data-theme="dark"] .experience-entry-content,
[data-theme="dark"] .progression-flow > div,
[data-theme="dark"] .strengths-grid > div,
[data-theme="dark"] .contact-card,
[data-theme="dark"] .contact-header,
[data-theme="dark"] .location-section,
[data-theme="dark"] .popup-card,
[data-theme="dark"] .journal-post-card,
[data-theme="dark"] .journal-hero,
[data-theme="dark"] .professional-folder-card,
[data-theme="dark"] .professional-gallery-panel,
[data-theme="dark"] .gallery-filter,
[data-theme="dark"] .legal-card,
[data-theme="dark"] .home-hero-card,
[data-theme="dark"] .home-section-card > .container,
[data-theme="dark"] .strength-item,
[data-theme="dark"] .snapshot-list article {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  background: var(--color-surface-elevated);
  box-shadow: var(--shadow-md);
  color: var(--color-text-primary);
}

[data-theme="dark"] .about-card::before,
[data-theme="dark"] .project-header::after,
[data-theme="dark"] .experience-cta::before,
[data-theme="dark"] .contact-header::after,
[data-theme="dark"] .journal-hero::before {
  background: linear-gradient(90deg, transparent, var(--color-accent), transparent);
  opacity: .7;
}

[data-theme="dark"] .section-kicker,
[data-theme="dark"] .about-eyebrow,
[data-theme="dark"] .journal-kicker,
[data-theme="dark"] .experience-kicker,
[data-theme="dark"] .home-eyebrow,
[data-theme="dark"] .contact-title,
[data-theme="dark"] .card-title,
[data-theme="dark"] .project-badge,
[data-theme="dark"] .journal-link,
[data-theme="dark"] .professional-folder-action,
[data-theme="dark"] .home-text-link,
[data-theme="dark"] .snapshot-year,
[data-theme="dark"] .snapshot-org,
[data-theme="dark"] .entry-label,
[data-theme="dark"] .strengths-grid span,
[data-theme="dark"] .project-card-icon {
  color: var(--color-accent);
}

[data-theme="dark"] .about-page-intro,
[data-theme="dark"] .section-body-text,
[data-theme="dark"] .philosophy-text,
[data-theme="dark"] .project-description,
[data-theme="dark"] .experience-intro,
[data-theme="dark"] .journey-heading > p,
[data-theme="dark"] .progression-copy,
[data-theme="dark"] .journal-post-body > p:not(.journal-post-date),
[data-theme="dark"] .contact-subtitle,
[data-theme="dark"] .card-description,
[data-theme="dark"] .professional-journey-intro,
[data-theme="dark"] .professional-folder-card p,
[data-theme="dark"] .gallery-closing > p:not(.professional-journey-kicker),
[data-theme="dark"] .home-description,
[data-theme="dark"] .home-copy,
[data-theme="dark"] .hero-description,
[data-theme="dark"] .strength-item p,
[data-theme="dark"] .snapshot-list article p:last-child,
[data-theme="dark"] .legal-card p,
[data-theme="dark"] .legal-updated {
  color: var(--color-text-secondary);
}

.legal-page-wrapper {
  min-height: 100vh;
  padding: clamp(6rem, 10vw, 8rem) 0 4rem;
  background: var(--gradient-background);
}

.legal-card {
  max-width: 880px;
  margin: 0 auto;
  padding: clamp(1.4rem, 4vw, 2.8rem);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  background: color-mix(in oklab, var(--color-surface) 88%, transparent);
  box-shadow: var(--shadow-md);
}

.legal-card h1 {
  color: var(--color-text-primary);
  font-size: clamp(2rem, 5vw, 3.5rem);
}

.legal-card h2 {
  margin-top: 1.8rem;
  color: var(--color-text-primary);
  font-size: var(--font-size-xl);
}

.legal-card p,
.legal-updated {
  color: var(--color-text-secondary);
  line-height: 1.75;
}

.legal-card section + section {
  margin-top: 1.8rem;
}

.legal-updated {
  margin-top: .45rem;
  color: var(--color-text-muted);
  font-size: var(--font-size-sm);
}

.top-navbar {
  border-color: var(--color-border);
  background: color-mix(in oklab, var(--color-surface) 88%, transparent);
  box-shadow: var(--shadow-sm);
}

.top-navbar.scrolled {
  border-color: var(--color-border-strong);
  box-shadow: var(--shadow-md), var(--shadow-glow);
}

.nav-links {
  border-color: var(--color-border);
  background: color-mix(in oklab, var(--color-surface-solid) 76%, transparent);
}

.nav-links a:hover,
.nav-links a.active {
  color: var(--color-text-primary);
  background: var(--gradient-surface);
  box-shadow: inset 0 0 0 1px var(--color-border);
}

.footer-bar {
  border-top-color: var(--color-border);
  background: color-mix(in oklab, var(--color-bg-soft) 86%, transparent);
  box-shadow: none;
}

.footer-bottom {
  border-top-color: var(--color-border);
}

:where(.premium-btn-main, .premium-btn-secondary, .btn-boom-primary, .form-submit-btn, .impact-btn, .nav-contact-btn, .btn-cv, .theme-toggle) {
  border-color: var(--color-border);
}

:where(.premium-btn-main, .btn-boom-primary, .form-submit-btn, .impact-btn, .nav-contact-btn) {
  background: var(--gradient-main);
  color: #ffffff;
  box-shadow: var(--shadow-sm), var(--shadow-glow);
}

:where(.premium-btn-secondary, .btn-cv, .theme-toggle) {
  background: color-mix(in oklab, var(--color-surface-solid) 82%, transparent);
  color: var(--color-text-primary);
}
