/*
 * Pure neomorphism surface system
 * Consistent soft-raised and inset surfaces for the existing dark/mint portfolio.
 * Flat same-family surfaces, precise highlights, restrained edges, and static shadows.
 */
:root {
  --neo-light: #f0f1ec;
  --neo-light-edge: rgba(255, 255, 255, .92);
  --neo-light-shadow: 8px 8px 17px rgba(166, 171, 164, .42), -7px -7px 17px rgba(255, 255, 255, .94);
  --neo-light-inset: inset 5px 5px 11px rgba(166, 171, 164, .28), inset -5px -5px 11px rgba(255, 255, 255, .88);
  --neo-dark: #111619;
  --neo-dark-raised: #12181b;
  --neo-dark-shadow: 8px 8px 17px rgba(0, 0, 0, .40), -5px -5px 13px rgba(255, 255, 255, .025);
  --neo-dark-shadow-soft: 5px 5px 12px rgba(0, 0, 0, .31), -4px -4px 10px rgba(255, 255, 255, .022);
  --neo-dark-inset: inset 5px 5px 10px rgba(0, 0, 0, .32), inset -4px -4px 9px rgba(255, 255, 255, .022);
  --neo-radius-sm: 10px;
  --neo-radius-md: 14px;
  --neo-radius-lg: 18px;
  --neo-radius-xl: 20px;
}

/* Navigation: one soft dark surface, with mint used only as a signal. */
.site-navbar .nav-links {
  gap: 4px;
  padding: 5px;
  border: 1px solid rgba(255, 255, 255, .055);
  border-radius: 999px;
  background: #111619;
  box-shadow: var(--neo-dark-shadow-soft);
}
.site-navbar .nav-links a { border-radius: 999px; }
.site-navbar .nav-links a::after { left: 18px; right: 18px; bottom: 5px; height: 2px; border-radius: 999px; }
.site-navbar .nav-links a.is-active { background: #121c1a; box-shadow: var(--neo-dark-inset); }
.menu-button {
  padding: 9px 13px;
  border: 1px solid rgba(255, 255, 255, .065);
  border-radius: 999px;
  background: #111619;
  box-shadow: var(--neo-dark-shadow-soft);
  transition: transform .22s var(--ease), border-color .22s ease, color .22s ease;
}
.menu-button:hover { transform: translateY(-1px); border-color: rgba(1, 247, 182, .30); }
.menu-button:active { transform: translateY(0) scale(.985); box-shadow: var(--neo-dark-inset); }
.navigation-drawer {
  border: 1px solid rgba(255, 255, 255, .055);
  border-radius: var(--neo-radius-lg);
  background: #101416;
  box-shadow: 10px 10px 25px rgba(0, 0, 0, .36), -4px -4px 11px rgba(255, 255, 255, .018);
}
.navigation-drawer li a { border-radius: var(--neo-radius-sm); }
.navigation-drawer li a:hover,
.navigation-drawer li a:focus-visible { background: #131b1d; box-shadow: var(--neo-dark-inset); }

/* Controls: raised by default, inset while pressed. Shadows stay static otherwise. */
.action,
.outline-button,
.project-more,
.project-details-button,
.coverage-more,
.moneylog-actions a,
.open-source-links a,
.footer-arrow,
.contact-back,
.contact-direct,
.recognition-viewmore,
.recognition-lightbox-head button {
  border-radius: var(--neo-radius-sm);
  transition-property: transform, border-color, background-color, color, opacity;
  transition-duration: .22s;
  transition-timing-function: var(--ease);
}
.action:not(.primary),
.outline-button,
.project-details-button,
.coverage-more {
  box-shadow: var(--neo-light-shadow);
}
.recognition-viewmore,
.recognition-lightbox-head button { box-shadow: var(--neo-dark-shadow-soft); }
.site-hero .action:not(.primary) { box-shadow: var(--neo-dark-shadow-soft); }
.site-hero .action:not(.primary):active { box-shadow: var(--neo-dark-inset); }
.action.primary,
.project-more,
.moneylog-actions .moneylog-live-button,
.open-source-links a:first-child {
  box-shadow: var(--neo-dark-shadow-soft);
}
.action:active,
.outline-button:active,
.project-more:active,
.project-details-button:active,
.coverage-more:active,
.moneylog-actions a:active,
.open-source-links a:active,
.footer-arrow:active,
.contact-direct:active,
.recognition-viewmore:active,
.recognition-lightbox-head button:active {
  transform: translateY(0) scale(.985);
}
.action:not(.primary):active,
.outline-button:active,
.project-details-button:active,
.coverage-more:active { box-shadow: var(--neo-light-inset); }
.recognition-viewmore:active,
.recognition-lightbox-head button:active { box-shadow: var(--neo-dark-inset); }
.action.primary:active,
.project-more:active,
.moneylog-actions .moneylog-live-button:active,
.open-source-links a:first-child:active { box-shadow: var(--neo-dark-inset); }

/* Light sections: cards share the same paper tone and form depth through opposing shadows. */
.experience-strip {
  gap: 13px;
  border: 0;
}
.experience-strip article,
.experience-strip article:nth-child(2),
.experience-strip article:last-child {
  min-width: 0;
  border: 1px solid rgba(11, 13, 14, .035);
  border-radius: var(--neo-radius-md);
  background: var(--neo-light);
  box-shadow: var(--neo-light-shadow);
}
.focus-card {
  height: 100%;
  padding: 25px 24px 26px;
  border: 1px solid rgba(11, 13, 14, .045);
  border-top: 1px solid rgba(11, 13, 14, .045);
  border-radius: var(--neo-radius-md);
  background: var(--neo-light);
  box-shadow: var(--neo-light-shadow);
}
.focus-card .num { color: #5e6864; }
.focus-card h3 { text-wrap: balance; }

/* Proficiency cards sit on the same charcoal field as their parent. */
.skill-grid {
  gap: 13px;
  padding: 3px;
  border: 0;
  background: transparent;
}
.skill-card {
  border: 1px solid rgba(255, 255, 255, .035);
  border-radius: var(--neo-radius-md);
  background: var(--neo-dark-raised);
  box-shadow: var(--neo-dark-shadow);
  transition: transform .24s var(--ease), border-color .22s ease, color .22s ease;
}
.skill-card:hover { transform: translateY(-2px); border-color: rgba(1, 247, 182, .22); background: var(--neo-dark-raised); }

/* Publications: raised feature well, individual controls, inset selected record. */
.publication-feature {
  border: 1px solid rgba(255, 255, 255, .045);
  border-radius: var(--neo-radius-xl);
  background: #111619;
  box-shadow: var(--neo-dark-shadow);
}
.publication-feature::before { border-radius: calc(var(--neo-radius-xl) - 5px); }
.publication-list {
  display: grid;
  gap: 9px;
  padding: 3px;
  border: 0;
  border-radius: var(--neo-radius-lg);
  background: transparent;
  scrollbar-gutter: stable;
  max-height: 430px;
  overflow-y: auto;
  overflow-x: hidden;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
}
.publication-item {
  border: 1px solid rgba(11, 13, 14, .035);
  border-radius: var(--neo-radius-sm);
  background: var(--neo-light);
  color: var(--ink);
  box-shadow: var(--neo-light-shadow);
  transition: transform .18s var(--ease), color .18s ease, border-color .18s ease, background-color .18s ease;
}
.publication-item:hover { transform: translateX(-2px); background: #f0f1ec; }
.publication-item.is-selected,
.publication-item[aria-selected="true"],
.publication-item.is-active,
.publication-item[aria-pressed="true"] {
  border-color: rgba(1, 125, 97, .32);
  background: #e9ece6;
  color: var(--ink);
  box-shadow: var(--neo-light-inset);
}
.publication-item.is-selected span,
.publication-item.is-selected small,
.publication-item[aria-selected="true"] span,
.publication-item[aria-selected="true"] small {
  color: #59655f;
}

/* Projects: a tactile paper card for the general set; special projects keep dark shells. */
.project-card {
  border: 1px solid rgba(11, 13, 14, .04);
  border-radius: var(--neo-radius-lg);
  background: var(--neo-light);
  box-shadow: var(--neo-light-shadow);
  transition: transform .24s var(--ease), border-color .2s ease;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}
.project-card:hover {
  transform: translate3d(0, -3px, 0);
  box-shadow: var(--neo-light-shadow);
}
.project-card:focus-within { border-color: rgba(1, 125, 97, .38); }
.project-media,
.moneylog-visual--dashboard,
.bot-visual { border-radius: calc(var(--neo-radius-lg) - 1px) calc(var(--neo-radius-lg) - 1px) 0 0; }
.project-body { background: var(--neo-light); }
.project-card--moneylog,
.project-card--open,
.project-card--opensoccer {
  border-color: rgba(255, 255, 255, .045);
  background: #111619;
  box-shadow: var(--neo-dark-shadow);
}
.project-card--moneylog:hover,
.project-card--open:hover,
.project-card--opensoccer:hover { box-shadow: var(--neo-dark-shadow); }
.project-card--moneylog .project-body,
.project-card--open .project-body,
.project-card--opensoccer .project-body { background: #111619; }
.project-card--moneylog .moneylog-visual--dashboard { border-radius: 0; }
.project-actions { gap: 14px; }

/* MoneyLog's custom dashboard uses quiet recessed instrument panels. */
.moneylog-visual--dashboard,
.moneylog-showcase--product {
  border: 1px solid rgba(16, 32, 26, .11);
  border-radius: 12px;
  background: #e8ebe5;
  color: #10201a;
  box-shadow: var(--neo-light-inset);
}
.moneylog-visual--dashboard::after,
.moneylog-showcase--product::before { display: none; }
.moneylog-windowbar,
.moneylog-balance,
.moneylog-chart,
.moneylog-ledger div,
.moneylog-ui-card,
.moneylog-ui-rail span {
  border: 1px solid rgba(16, 32, 26, .07);
  border-radius: 8px;
  background: #e8ebe5;
  box-shadow: 4px 4px 8px rgba(155, 163, 153, .28), -4px -4px 8px rgba(255, 255, 255, .72);
}
.moneylog-balance,
.moneylog-ledger,
.moneylog-ui-card--primary { box-shadow: var(--neo-light-inset); }
.moneylog-ui-chart {
  border: 1px solid rgba(16, 32, 26, .07);
  border-radius: 8px;
  background: #e8ebe5;
  box-shadow: var(--neo-light-inset);
}
.moneylog-chart { overflow: hidden; }
.moneylog-chart::before { opacity: .7; }
.moneylog-demo-shell,
.moneylog-demo-frame {
  border: 1px solid rgba(255, 255, 255, .06);
  border-radius: var(--neo-radius-md);
  box-shadow: var(--neo-dark-shadow);
}
.moneylog-actions .moneylog-live-button,
.moneylog-actions .moneylog-live-button:hover,
.moneylog-actions .moneylog-live-button:focus-visible {
  border-color: #0d211a;
  background: #10251d;
  color: #effff8;
  box-shadow: var(--neo-dark-shadow-soft);
}
.moneylog-actions .moneylog-source-button,
.moneylog-actions .moneylog-source-button:hover,
.moneylog-actions .moneylog-source-button:focus-visible {
  border-color: rgba(16, 32, 26, .12);
  background: #e8ebe5;
  color: #10201a;
  box-shadow: var(--neo-light-shadow);
}

/* OpenSoccerBot: a recessed dark instrument panel; preserve the robotics field graphics. */
.bot-visual,
.opensoccer-card-visual,
.opensoccer-tactical-mini,
.opensoccer-field {
  border: 1px solid rgba(255, 255, 255, .055);
  border-radius: var(--neo-radius-sm);
  background: #0e1417;
  box-shadow: var(--neo-dark-inset);
}
.opensoccer-mode-row span,
.opensoccer-specs span,
.open-source-card {
  border: 1px solid rgba(255, 255, 255, .04);
  border-radius: 8px;
  background: #111619;
  box-shadow: var(--neo-dark-shadow-soft);
}
.opensoccerbot-intro-note--tactical { background: #12191c; }
.opensoccer-mode-row,
.opensoccer-specs,
.opensoccerbot-intro-note,
.opensoccerbot-intro-note--tactical {
  border: 1px solid rgba(255, 255, 255, .045);
  border-radius: var(--neo-radius-sm);
  background: #12191c;
  box-shadow: var(--neo-dark-shadow-soft);
}

/* Features and team cards: same soft-raised grammar across both sections. */
.coverage-card {
  border: 1px solid rgba(11, 13, 14, .04);
  border-radius: var(--neo-radius-lg);
  background: var(--neo-light);
  box-shadow: var(--neo-light-shadow);
  transition: transform .24s var(--ease), border-color .2s ease;
}
.coverage-card:hover { transform: translateY(-3px); box-shadow: var(--neo-light-shadow); }
.coverage-media { overflow: hidden; }
.coverage-card--featured .coverage-media { border-radius: var(--neo-radius-lg) 0 0 var(--neo-radius-lg); }
.coverage-card:not(.coverage-card--featured) .coverage-media { border-radius: var(--neo-radius-lg) var(--neo-radius-lg) 0 0; }
.collab-card {
  border: 1px solid rgba(11, 13, 14, .035);
  border-radius: var(--neo-radius-md);
  background: var(--neo-light);
  box-shadow: var(--neo-light-shadow);
  transition: transform .22s var(--ease), border-color .2s ease;
}
.collab-card:hover { transform: translateY(-2px); border-color: rgba(1, 125, 97, .22); box-shadow: var(--neo-light-shadow); }
.collab-logo { border-radius: 10px; }

/* Work detail media: raised frame with an inset media well. */
.detail-media .media-grid > a,
.detail-media .video-frame,
.detail-media.single-media,
.open-source-embed,
.moneylog-demo-shell,
.moneylog-demo-frame {
  border-radius: var(--neo-radius-md);
  box-shadow: var(--neo-dark-shadow);
}
.detail-media .media-grid > a,
.detail-media .video-frame { overflow: hidden; }
.open-source-embed { border-color: rgba(255, 255, 255, .10); background: #0e1315; }
.open-source-links a {
  border: 1px solid rgba(255, 255, 255, .05);
  border-radius: var(--neo-radius-sm);
  background: #111619;
  color: #f1f5f3;
  box-shadow: var(--neo-dark-shadow-soft);
}
.open-source-links a:hover,
.open-source-links a:focus-visible { border-color: rgba(1, 247, 182, .28); box-shadow: var(--neo-dark-inset); }
.project-meta span {
  border: 1px solid rgba(255, 255, 255, .035);
  border-radius: 7px;
  background: #12181a;
  box-shadow: var(--neo-dark-inset);
}
.detail-light .project-meta span {
  border-color: rgba(11, 13, 14, .04);
  background: var(--neo-light);
  color: #202a26;
  box-shadow: var(--neo-light-shadow);
}

/* Contact cards and icon wells. */
.contact-card {
  border: 1px solid rgba(255, 255, 255, .045);
  border-radius: var(--neo-radius-lg);
  background: #111619;
  box-shadow: var(--neo-dark-shadow);
  transition: transform .22s var(--ease), border-color .2s ease, color .2s ease;
}
.contact-card::before { background: none; }
.contact-card:hover,
.contact-card:focus-visible {
  transform: translateY(-3px);
  border-color: rgba(1, 247, 182, .25);
  background: #111619;
  box-shadow: var(--neo-dark-shadow);
}
.contact-card-icon {
  border: 1px solid rgba(255, 255, 255, .035);
  border-radius: 11px;
  background: #111619;
  box-shadow: var(--neo-dark-inset);
}
.contact-direct {
  border: 1px solid rgba(255, 255, 255, .045);
  border-radius: var(--neo-radius-sm);
  background: #111619;
  box-shadow: var(--neo-dark-shadow-soft);
}
.contact-back { border-radius: var(--neo-radius-sm); box-shadow: none; }
.contact-card-media { border-color: rgba(255, 255, 255, .045); border-radius: var(--neo-radius-sm); box-shadow: var(--neo-dark-inset); }

/* Awards & Records: dark raised cards, inset preview wells, tactile archive controls. */
.recognition-band-item {
  border: 1px solid rgba(255, 255, 255, .045);
  border-radius: var(--neo-radius-md);
  background: #111619;
  box-shadow: var(--neo-dark-shadow-soft);
}
.recognition-section-index { border-radius: 6px; }
.recognition-card {
  border: 1px solid rgba(255, 255, 255, .045);
  border-radius: var(--neo-radius-lg);
  background: #111619;
  box-shadow: var(--neo-dark-shadow-soft);
  transition: transform .22s var(--ease), border-color .2s ease;
}
.recognition-card:hover { transform: translateY(-2px); border-color: rgba(1, 247, 182, .23); box-shadow: var(--neo-dark-shadow-soft); }
.recognition-card::before { background: none; }
.recognition-card-media {
  border: 1px solid rgba(255, 255, 255, .045);
  border-radius: var(--neo-radius-sm);
  background: #0d1214;
  box-shadow: var(--neo-dark-inset);
}
.recognition-card-media img { border-radius: 5px; }
.recognition-media-mark { border-radius: 6px; }
.recognition-viewmore {
  border: 1px solid rgba(255, 255, 255, .055);
  border-radius: var(--neo-radius-sm);
  background: #111619;
  box-shadow: var(--neo-dark-shadow-soft);
}
.recognition-viewmore:hover,
.recognition-viewmore:focus-visible { background: #111a19; border-color: rgba(1, 247, 182, .30); box-shadow: var(--neo-dark-inset); }
.recognition-lightbox-dialog {
  border: 1px solid rgba(255, 255, 255, .055);
  border-radius: var(--neo-radius-lg);
  overflow: hidden;
  background: #0d1113;
  box-shadow: 12px 14px 34px rgba(0, 0, 0, .42), -4px -4px 12px rgba(255, 255, 255, .018);
}
.recognition-lightbox-stage img { border-radius: 5px; }

/* Footer controls and the discreet floating arrow use the same raised shell. */
.footer-links .social-link {
  border-radius: var(--neo-radius-sm);
  background: #111619;
  box-shadow: var(--neo-dark-shadow-soft);
}
.footer-links .social-link:hover,
.footer-links .social-link:focus-visible { box-shadow: var(--neo-dark-shadow-soft); }
.footer-arrow,
.back-to-top {
  border-radius: 12px;
  box-shadow: var(--neo-dark-shadow-soft);
}
.back-to-top:hover,
.back-to-top:focus-visible { box-shadow: var(--neo-dark-inset); }

a:focus-visible,
button:focus-visible,
[tabindex]:focus-visible { outline-color: var(--mint); outline-offset: 3px; }
::selection { background: rgba(1, 247, 182, .26); color: inherit; }

/* Responsive: keep the same surface language without oversized shadows on small screens. */
@media (max-width: 1100px) {
  .experience-strip article:nth-child(-n+2) { border-bottom: 1px solid rgba(11, 13, 14, .04); }
}
@media (max-width: 760px) {
  .site-navbar .nav-links { border-radius: 0; padding: 0; box-shadow: none; border: 0; }
  .experience-strip { gap: 10px; }
  .experience-strip article,
  .experience-strip article:nth-child(2),
  .experience-strip article:last-child { border: 1px solid rgba(11, 13, 14, .035); }
  .focus-card { padding: 22px 20px; }
  .skill-grid { gap: 11px; }
  .publication-feature { border-radius: var(--neo-radius-lg); }
  .publication-list { max-height: min(380px, 52vh); overflow-y: auto; overflow-x: hidden; }
  .coverage-card--featured .coverage-media { border-radius: var(--neo-radius-lg) var(--neo-radius-lg) 0 0; }
  .coverage-card--featured { display: flex; }
  .coverage-card--featured .coverage-media { min-height: 0; height: auto; aspect-ratio: 16 / 9; }
  .project-card,
  .coverage-card,
  .collab-card,
  .skill-card,
  .recognition-card,
  .contact-card { border-radius: var(--neo-radius-md); }
  .detail-media .media-grid > a,
  .detail-media .video-frame,
  .detail-media.single-media,
  .open-source-embed,
  .moneylog-demo-shell,
  .moneylog-demo-frame { border-radius: 12px; }
  .project-actions { flex-wrap: wrap; }
  .project-card:hover,
  .coverage-card:hover,
  .collab-card:hover,
  .contact-card:hover,
  .recognition-card:hover { transform: none; }
}
@media (max-width: 360px) {
  :root { --neo-radius-sm: 9px; --neo-radius-md: 12px; --neo-radius-lg: 14px; --neo-radius-xl: 16px; }
  .project-card,
  .coverage-card,
  .collab-card,
  .skill-card,
  .recognition-card,
  .contact-card { box-shadow: var(--neo-dark-shadow-soft); }
  .experience-strip article,
  .experience-strip article:nth-child(2),
  .experience-strip article:last-child,
  .focus-card,
  .publication-item,
  .project-card:not(.project-card--moneylog):not(.project-card--open):not(.project-card--opensoccer),
  .coverage-card,
  .collab-card { box-shadow: 5px 5px 10px rgba(0, 0, 0, .065), -4px -4px 10px rgba(255, 255, 255, .7); }
}
@media (hover: none) {
  .project-card:hover,
  .coverage-card:hover,
  .collab-card:hover,
  .contact-card:hover,
  .recognition-card:hover { transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  .menu-button,
  .publication-item,
  .project-card,
  .coverage-card,
  .collab-card,
  .contact-card,
  .recognition-card,
  .action,
  .outline-button,
  .project-more,
  .project-details-button,
  .coverage-more,
  .moneylog-actions a,
  .open-source-links a,
  .footer-arrow,
  .contact-direct,
  .recognition-viewmore,
  .recognition-lightbox-head button { transition: none !important; }
  .menu-button:hover,
  .publication-item:hover,
  .project-card:hover,
  .coverage-card:hover,
  .collab-card:hover,
  .contact-card:hover,
  .recognition-card:hover { transform: none !important; }
}
/* v44 — shared tactile interactions (navigation styling remains on the original design). */
:root {
  --neo-bounce: cubic-bezier(.22, 1.42, .36, 1);
  --neo-press: cubic-bezier(.32, 0, .22, 1);
}

/* One shared press response across actionable surfaces. */
.action,
.outline-button,
.project-more,
.project-details-button,
.coverage-more,
.moneylog-actions a,
.open-source-links a,
.footer-arrow,
.contact-back,
.contact-direct,
.recognition-viewmore,
.recognition-lightbox-head button,
.back-to-top {
  transition-timing-function: var(--neo-bounce);
  transition-duration: .32s;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
}
.action:hover,
.outline-button:hover,
.project-more:hover,
.project-details-button:hover,
.coverage-more:hover,
.moneylog-actions a:hover,
.open-source-links a:hover,
.footer-arrow:hover,
.contact-back:hover,
.contact-direct:hover,
.recognition-viewmore:hover,
.recognition-lightbox-head button:hover,
.back-to-top:hover {
  transform: translateY(-2px) scale(1.012);
}
.action:active,
.outline-button:active,
.project-more:active,
.project-details-button:active,
.coverage-more:active,
.moneylog-actions a:active,
.open-source-links a:active,
.footer-arrow:active,
.contact-back:active,
.contact-direct:active,
.recognition-viewmore:active,
.recognition-lightbox-head button:active,
.back-to-top:active {
  transform: translateY(1px) scale(.965);
}

/* Give cards a very small elastic lift, not an expanding shadow animation. */
.project-card,
.coverage-card,
.collab-card,
.skill-card,
.contact-card,
.recognition-card {
  transition-timing-function: var(--neo-bounce);
  transition-duration: .34s;
}
@media (hover: hover) and (pointer: fine) {
  .project-card:hover,
  .coverage-card:hover,
  .collab-card:hover,
  .contact-card:hover,
  .recognition-card:hover {
    transform: translate3d(0, -2px, 0) scale(1.003);
  }
  .skill-card:hover { transform: translate3d(0, -2px, 0) scale(1.006); }
}

@media (hover: none) {
  .action:hover,
  .outline-button:hover,
  .project-more:hover,
  .project-details-button:hover,
  .coverage-more:hover,
  .moneylog-actions a:hover,
  .open-source-links a:hover,
  .footer-arrow:hover,
  .contact-back:hover,
  .contact-direct:hover,
  .recognition-viewmore:hover,
  .recognition-lightbox-head button:hover,
  .back-to-top:hover { transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  .action,
  .outline-button,
  .project-more,
  .project-details-button,
  .coverage-more,
  .moneylog-actions a,
  .open-source-links a,
  .footer-arrow,
  .contact-back,
  .contact-direct,
  .recognition-viewmore,
  .recognition-lightbox-head button,
  .back-to-top,
  .project-card,
  .coverage-card,
  .collab-card,
  .skill-card,
  .contact-card,
  .recognition-card { transition: none !important; }
  .action:hover,
  .action:active,
  .outline-button:hover,
  .outline-button:active,
  .project-more:hover,
  .project-more:active,
  .project-details-button:hover,
  .project-details-button:active,
  .coverage-more:hover,
  .coverage-more:active,
  .moneylog-actions a:hover,
  .moneylog-actions a:active,
  .open-source-links a:hover,
  .open-source-links a:active,
  .footer-arrow:hover,
  .footer-arrow:active,
  .contact-back:hover,
  .contact-back:active,
  .contact-direct:hover,
  .contact-direct:active,
  .recognition-viewmore:hover,
  .recognition-viewmore:active,
  .recognition-lightbox-head button:hover,
  .recognition-lightbox-head button:active,
  .back-to-top:hover,
  .back-to-top:active,
  .project-card:hover,
  .coverage-card:hover,
  .collab-card:hover,
  .skill-card:hover,
  .contact-card:hover,
  .recognition-card:hover { transform: none !important; }
}

/* Header translucency refinement: keep the original navigation layout,
   but let the page texture breathe through the neomorphic surfaces. */
.site-navbar {
  background: linear-gradient(180deg, rgba(6, 8, 9, .60), rgba(6, 8, 9, .055));
}
.site-navbar.is-scrolled {
  background: rgba(8, 10, 12, .52);
  -webkit-backdrop-filter: blur(20px) saturate(132%);
  backdrop-filter: blur(20px) saturate(132%);
  box-shadow: 0 1px 0 rgba(255, 255, 255, .05);
}
.site-navbar .nav-links {
  background: rgba(17, 22, 25, .56);
  -webkit-backdrop-filter: blur(15px) saturate(125%);
  backdrop-filter: blur(15px) saturate(125%);
  border-color: rgba(255, 255, 255, .065);
}
.site-navbar .menu-button {
  background: rgba(17, 22, 25, .48);
  -webkit-backdrop-filter: blur(14px) saturate(120%);
  backdrop-filter: blur(14px) saturate(120%);
}
.navigation-drawer {
  background: rgba(16, 20, 22, .86);
  -webkit-backdrop-filter: blur(22px) saturate(128%);
  backdrop-filter: blur(22px) saturate(128%);
}


/* v46 — global color pairing and component contrast pass.
   Keep foreground/background pairs explicit so inherited body colors cannot
   create dark text on dark pills (or low-contrast micro-labels) in any section. */
:root {
  --neo-paper-ink: #202a26;
  --neo-paper-muted: #59645e;
  --neo-dark-ink: #edf6f2;
  --neo-dark-muted: #b0beb8;
  --neo-accent-ink: #075b45;
}

/* Project metadata uses a deliberate foreground for every section theme. */
.project-meta span { color: var(--neo-dark-ink); }
.detail-light .project-meta span,
.moneylog-project .project-meta span {
  color: var(--neo-paper-ink);
  border-color: rgba(11, 13, 14, .10);
  background: var(--neo-light);
  box-shadow: var(--neo-light-shadow);
}
.detail-dark .project-meta span,
.opensoccerbot-project .project-meta span {
  color: var(--neo-dark-ink);
}
.detail-light .project-meta span.project-meta--important,
.moneylog-project .project-meta span.project-meta--important {
  color: var(--neo-accent-ink);
  border-color: rgba(0, 125, 93, .42);
  background: linear-gradient(180deg, rgba(1, 190, 139, .18), rgba(1, 190, 139, .08));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .65), 0 4px 12px rgba(0, 92, 66, .09);
}
.detail-dark .project-meta span.project-meta--important,
.opensoccerbot-project .project-meta span.project-meta--important {
  color: #effff9;
  border-color: rgba(1, 247, 182, .48);
  background: rgba(1, 247, 182, .10);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .04), 0 4px 13px rgba(1, 247, 182, .06);
}
.moneylog-project .detail-copy h6 { color: #59665f; opacity: 1; }
.moneylog-project .detail-copy p { color: #56615b; }

/* Section labels and emphasized skill terms need the same contrast standard. */
.detail-light .detail-copy h6 { color: var(--neo-paper-muted); opacity: 1; }
.detail-dark .detail-copy h6,
.opensoccerbot-project .detail-copy h6 { color: rgba(237, 246, 242, .76); opacity: 1; }
.skill-card em { color: rgba(255, 255, 255, .72); }
.open-source-card,
.opensoccer-mode-row span,
.opensoccer-specs span { color: var(--neo-dark-ink); }

/* Raise contrast on small metadata without changing the visual hierarchy. */
.about-meta span,
.experience-strip small,
.focus-card .num { color: #5c6861; opacity: 1; }
.experience-strip p,
.focus-card p { color: #59645e; }
.pub-date { color: rgba(255, 255, 255, .68); }
.publication-feature p { color: rgba(255, 255, 255, .78); }
.publication-feature p + p { color: rgba(255, 255, 255, .66); }
.pub-feature-foot { color: rgba(255, 255, 255, .58); }
.publication-item span,
.publication-item small { color: #59645e; }
.project-label { color: #59645e; }
.project-card--moneylog .project-label,
.project-card--open .project-label,
.project-card--opensoccer .project-label { color: #aebbb6; }
.coverage-meta { color: #59645e; }
.coverage-meta span:first-child { color: #48554f; }
.coverage-body p { color: #59645e; }
.coverage-note { color: #626d67; }
.collab-card small { color: #59645e; }
.contact-card-top { color: rgba(238, 244, 242, .64); }
.contact-footer,
.recognition-footer { color: rgba(238, 244, 242, .48); }
.recognition-card-top { color: rgba(238, 244, 242, .68); }
.recognition-card p { color: rgba(238, 244, 242, .72); }
.opensoccer-specs small { color: rgba(238, 247, 243, .68); }

/* MoneyLog's light dashboard labels use a consistent forest-slate ink. */
.moneylog-topline small,
.moneylog-windowbar span,
.moneylog-balance small,
.moneylog-ledger span,
.moneylog-ui-card small,
.moneylog-ui-card span,
.moneylog-ui-rail span {
  color: #53635a;
}
.moneylog-ui-card small,
.moneylog-ui-card span,
.moneylog-ui-rail span,
.moneylog-topline small,
.moneylog-windowbar span,
.moneylog-balance small,
.moneylog-ledger span { opacity: 1; }

/* Keep hover states on metadata chips aligned to the card's own surface. */
.detail-light .project-meta span:hover,
.moneylog-project .project-meta span:hover {
  color: var(--neo-paper-ink);
  border-color: rgba(11, 13, 14, .20);
  background: #e9ebe5;
  box-shadow: var(--neo-light-shadow);
}
.detail-light .project-meta span.project-meta--important:hover,
.moneylog-project .project-meta span.project-meta--important:hover {
  color: #064d3a;
  border-color: rgba(0, 125, 93, .55);
  background: #dff3e9;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .68), 0 5px 13px rgba(0, 92, 66, .11);
}
.detail-dark .project-meta span:hover,
.opensoccerbot-project .project-meta span:hover {
  color: #f4fffb;
  border-color: rgba(255, 255, 255, .28);
}
.detail-dark .project-meta span.project-meta--important:hover,
.opensoccerbot-project .project-meta span.project-meta--important:hover {
  color: #f4fffb;
  border-color: rgba(1, 247, 182, .62);
  background: rgba(1, 247, 182, .14);
}

/* Keep interactive text clear on both light and dark control surfaces. */
.detail-light .outline-button { color: #18241e; border-color: rgba(11, 13, 14, .24); }
.detail-dark .outline-button,
.opensoccerbot-project .outline-button { color: #edf6f2; border-color: rgba(255, 255, 255, .24); }
.detail-dark .outline-button:hover,
.opensoccerbot-project .outline-button:hover { color: #10201a; background: #e8f1ed; border-color: #e8f1ed; }

/* Quiet metadata in the footer/drawer should remain readable, not disappear. */
.drawer-footer { color: rgba(255, 255, 255, .56); }
.footer-bottom { color: rgba(255, 255, 255, .56); }

@media (prefers-reduced-motion: reduce) {
  .project-meta span,
  .project-meta span:hover { transition: none !important; }
}
