/* Agrythm light/dark enhancement.
   Production CSS owns all geometry. This file changes palette only and styles
   the login/theme controls added by offline.js. */

html[data-theme="light"] { color-scheme: light; }

html[data-theme="dark"] {
  color-scheme: dark;
  --ink: #f7faf9;
  --forest: #0b2117;
  --green: #7bc89f;
  --lime: #cce46b;
  --cream: #050807;
  --paper: #0b100e;
  --sage: #101613;
  --muted: #98a69f;
  --line: rgba(255,255,255,.09);
  --space: #050807;
  --surface: #0b100e;
  --surface-2: #101613;
  --surface-3: #151d19;
  --text: #f7faf9;
  --text-soft: #c8d1cd;
  --signal: #7bc89f;
}

html[data-theme="dark"],
html[data-theme="dark"] body,
html[data-theme="dark"] main {
  background: var(--space) !important;
  color: var(--text) !important;
}

html[data-theme="dark"] h1,
html[data-theme="dark"] h2,
html[data-theme="dark"] h3,
html[data-theme="dark"] h4,
html[data-theme="dark"] blockquote { color: var(--text); }

html[data-theme="dark"] h1 em,
html[data-theme="dark"] h2 em,
html[data-theme="dark"] blockquote em,
html[data-theme="dark"] .kicker,
html[data-theme="dark"] .kicker-light { color: var(--signal) !important; }

/* Header and navigation. The source PNG includes generous transparent padding,
   so the lockup is deliberately cropped instead of squeezed into a short box. */
.site-header .brand-lockup {
  width: 230px !important;
  height: 68px !important;
  max-width: 230px !important;
  max-height: 68px !important;
  overflow: hidden !important;
  display: block !important;
}
.site-header .brand-lockup > img {
  width: 230px !important;
  height: auto !important;
  max-width: 230px !important;
  max-height: none !important;
  object-fit: initial !important;
  transform: translateY(-23%);
  transform-origin: left top;
}

/* The footer uses the same source artwork and crop as the header. Keeping the
   lockup geometry identical prevents the transparent PNG canvas from making
   the footer brand appear miniature. */
.footer-brand .brand {
  width: 230px !important;
  height: 68px !important;
  min-height: 68px !important;
}
.footer-brand .brand-lockup {
  width: 230px !important;
  height: 68px !important;
  max-width: 230px !important;
  max-height: 68px !important;
  overflow: hidden !important;
  display: block !important;
  background: none !important;
}
.footer-brand .brand-lockup > img {
  visibility: visible !important;
  width: 230px !important;
  height: auto !important;
  max-width: 230px !important;
  max-height: none !important;
  object-fit: initial !important;
  transform: translateY(-23%) !important;
  transform-origin: left top;
}

html[data-theme="dark"] .site-header {
  background: rgba(5,8,7,.94) !important;
  border-color: var(--line) !important;
}

/* A true white lockup is intentionally obvious against the dark header. */
html[data-theme="dark"] .site-header .brand-lockup > img,
.footer-brand .brand-lockup > img {
  filter: grayscale(1) brightness(0) invert(1) !important;
}
html[data-theme="dark"] .site-header .brand-lockup::after,
.footer-brand .brand-lockup::after { content: none !important; }

html[data-theme="dark"] .desktop-nav { color: var(--text-soft); }
html[data-theme="dark"] .desktop-nav a:hover,
html[data-theme="dark"] .desktop-nav a.active,
html[data-theme="dark"] .login-menu-trigger:hover,
html[data-theme="dark"] .login-menu.open .login-menu-trigger {
  color: var(--signal) !important;
  border-color: var(--signal) !important;
}

html[data-theme="dark"] .header-cta,
html[data-theme="dark"] .button-dark {
  background: var(--text) !important;
  color: #06110c !important;
}

html[data-theme="dark"] .button-green {
  background: #176b4d !important;
  color: #fff !important;
}

html[data-theme="dark"] .button-lime {
  background: var(--signal) !important;
  color: #06110c !important;
}

html[data-theme="dark"] .text-link {
  color: var(--text) !important;
  border-color: rgba(247,250,249,.45) !important;
}

html[data-theme="dark"] .mobile-menu summary span { background: var(--text); }
html[data-theme="dark"] .mobile-menu > div {
  background: rgba(11,16,14,.99) !important;
  border-color: var(--line) !important;
  color: var(--text);
}

/* Page and section surfaces */
html[data-theme="dark"] .section,
html[data-theme="dark"] .page-hero,
html[data-theme="dark"] .product-detail-list,
html[data-theme="dark"] .journey-section,
html[data-theme="dark"] .mission-section,
html[data-theme="dark"] .advisor-section,
html[data-theme="dark"] .supporters-section,
html[data-theme="dark"] .impact-section,
html[data-theme="dark"] .contact-section,
html[data-theme="dark"] .legal-section {
  background: var(--space) !important;
  color: var(--text) !important;
}

html[data-theme="dark"] .intelligence-section,
html[data-theme="dark"] .conviction-section,
html[data-theme="dark"] .team-section,
html[data-theme="dark"] .contact-expect,
html[data-theme="dark"] .cha5-section {
  background: var(--surface) !important;
  color: var(--text) !important;
}

html[data-theme="dark"] .section p,
html[data-theme="dark"] .page-hero p,
html[data-theme="dark"] .product-story > p:not(.kicker),
html[data-theme="dark"] .contact-expect p,
html[data-theme="dark"] .person-copy,
html[data-theme="dark"] .advisor-card p { color: var(--muted); }

html[data-theme="dark"] .page-hero { border-bottom: 1px solid var(--line); }
html[data-theme="dark"] .page-hero::after {
  border-color: var(--line);
  box-shadow: 0 0 0 80px rgba(123,200,159,.05), 0 0 0 160px rgba(123,200,159,.025);
}

/* Home hero */
html[data-theme="dark"] .hero {
  background: var(--space) !important;
  color: var(--text) !important;
}

html[data-theme="dark"] .hero-photo { filter: saturate(.78) brightness(.53) contrast(1.08); }
html[data-theme="dark"] .hero-wash {
  background: linear-gradient(90deg,#050807 0%,rgba(5,8,7,.97) 43%,rgba(5,8,7,.72) 68%,rgba(5,8,7,.24) 100%), linear-gradient(180deg,transparent 48%,#050807 100%) !important;
}

html[data-theme="dark"] .hero h1,
html[data-theme="dark"] .hero-copy,
html[data-theme="dark"] .hero-copy span { color: var(--text) !important; }
html[data-theme="dark"] .hero-copy strong { color: var(--signal) !important; }
html[data-theme="dark"] .pill {
  background: rgba(11,16,14,.84) !important;
  border-color: rgba(123,200,159,.22) !important;
  color: var(--signal) !important;
}

html[data-theme="dark"] .signal-card {
  background: rgba(11,16,14,.92) !important;
  border-color: var(--line) !important;
  box-shadow: 0 24px 70px rgba(0,0,0,.34) !important;
}
html[data-theme="dark"] .signal-card,
html[data-theme="dark"] .signal-card b { color: var(--text); }
html[data-theme="dark"] .signal-card span { color: var(--muted); }

/* Dashboard and platform */
html[data-theme="dark"] .dashboard,
html[data-theme="dark"] .harvest-promise {
  background: var(--surface-2) !important;
  border-color: var(--line) !important;
  box-shadow: 0 18px 55px rgba(0,0,0,.25) !important;
}
html[data-theme="dark"] .dash-map { filter: saturate(.82) brightness(.76); }
html[data-theme="dark"] .dash-stats div { background: var(--surface-3) !important; }
html[data-theme="dark"] .dash-stats b,
html[data-theme="dark"] .dash-table b { color: var(--text) !important; }
html[data-theme="dark"] .dash-stats small,
html[data-theme="dark"] .dash-table p { color: var(--muted) !important; }
html[data-theme="dark"] .dash-table p,
html[data-theme="dark"] .check-list li { border-color: var(--line) !important; }
html[data-theme="dark"] .harvest-promise span,
html[data-theme="dark"] .harvest-promise strong { color: var(--signal) !important; }

html[data-theme="dark"] .platform-band,
html[data-theme="dark"] .ownership-strip {
  background: var(--surface-2) !important;
  color: var(--text) !important;
  border-color: var(--line) !important;
}
html[data-theme="dark"] .platform-band-title,
html[data-theme="dark"] .platform-links a { border-color: var(--line) !important; }
html[data-theme="dark"] .platform-links b { color: var(--text) !important; }
html[data-theme="dark"] .platform-links p,
html[data-theme="dark"] .platform-band-title > span { color: var(--muted) !important; }
html[data-theme="dark"] .platform-links span,
html[data-theme="dark"] .platform-links small,
html[data-theme="dark"] .platform-links i,
html[data-theme="dark"] .ownership-strip span b,
html[data-theme="dark"] .ownership-strip i { color: var(--signal) !important; }

/* Cards and logo rail */
html[data-theme="dark"] .support-logo,
html[data-theme="dark"] .mission-grid article,
html[data-theme="dark"] .journey-grid article,
html[data-theme="dark"] .person-card,
html[data-theme="dark"] .advisor-card {
  background: var(--surface) !important;
  border-color: var(--line) !important;
  color: var(--text) !important;
  box-shadow: none !important;
}
.advisor-card {
  border-radius: 16px;
  overflow: hidden;
}
.advisor-photo {
  border-radius: 15px 15px 0 0;
  overflow: hidden !important;
}
html[data-theme="dark"] .person-card,
html[data-theme="dark"] .advisor-card {
  border-radius: 16px !important;
  overflow: hidden !important;
}
html[data-theme="dark"] .person-photo,
html[data-theme="dark"] .advisor-photo {
  border-radius: 15px 15px 0 0;
  border-bottom: 1px solid var(--line);
  overflow: hidden !important;
}
html[data-theme="dark"] .person-photo img,
html[data-theme="dark"] .advisor-photo img {
  filter: brightness(.94) saturate(.96);
}
html[data-theme="dark"] .linkedin-link {
  background: rgba(123,200,159,.12) !important;
  border-color: rgba(123,200,159,.28) !important;
  color: var(--signal) !important;
}
html[data-theme="dark"] .support-logo:hover,
html[data-theme="dark"] .mission-grid article:hover,
html[data-theme="dark"] .journey-grid article:hover,
html[data-theme="dark"] .person-card:hover,
html[data-theme="dark"] .advisor-card:hover {
  background: var(--surface-2) !important;
  border-color: rgba(123,200,159,.25) !important;
}
html[data-theme="dark"] .impact-grid,
html[data-theme="dark"] .impact-grid article,
html[data-theme="dark"] .mission-grid,
html[data-theme="dark"] .cha5-flow,
html[data-theme="dark"] .cha5-flow article { border-color: var(--line) !important; }
html[data-theme="dark"] .impact-grid h3,
html[data-theme="dark"] .mission-grid h3,
html[data-theme="dark"] .journey-grid h3,
html[data-theme="dark"] .person-card h3,
html[data-theme="dark"] .advisor-card h3 { color: var(--text) !important; }
html[data-theme="dark"] .impact-grid b,
html[data-theme="dark"] .mission-grid > article > span,
html[data-theme="dark"] .journey-grid > article > span,
html[data-theme="dark"] .person-card > div:last-child > p:first-child,
html[data-theme="dark"] .advisor-copy > p:first-child { color: var(--signal) !important; }
html[data-theme="dark"] .person-photo,
html[data-theme="dark"] .advisor-photo { background: var(--surface-2) !important; }
html[data-theme="dark"] .card-rule { background: var(--line) !important; }

/* Product hero index: deliberate vertical reading order. */
.mini-product-nav {
  display: grid;
  max-width: 420px;
  margin-top: 22px;
}
.mini-product-nav a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 11px 0;
  border-bottom: 1px solid var(--line);
  font-weight: 700;
}
.mini-product-nav a::after {
  content: "↗";
  color: var(--green);
  font-size: .85em;
}
html[data-theme="dark"] .mini-product-nav a { color: var(--text-soft); }
html[data-theme="dark"] .mini-product-nav a::after { color: var(--signal); }

/* Product details */
html[data-theme="dark"] .product-detail { border-color: var(--line) !important; }
html[data-theme="dark"] .product-visual,
html[data-theme="dark"] .visual-flow,
html[data-theme="dark"] .visual-assure {
  background: var(--surface-2) !important;
  border-color: var(--line) !important;
  color: var(--text) !important;
  box-shadow: inset 0 0 0 1px var(--line) !important;
}
html[data-theme="dark"] .product-visual::after {
  border-color: rgba(123,200,159,.16);
  box-shadow: 0 0 0 45px rgba(123,200,159,.05), 0 0 0 90px rgba(123,200,159,.025);
}
html[data-theme="dark"] .visual-label span { color: var(--text) !important; }
html[data-theme="dark"] .visual-label b {
  background: #176b4d !important;
  color: #fff !important;
}
html[data-theme="dark"] .capability-list p {
  color: var(--text-soft) !important;
  border-color: var(--line) !important;
}
html[data-theme="dark"] .capability-list span { color: var(--signal) !important; }
html[data-theme="dark"] .boundary-note,
html[data-theme="dark"] .cha5-note {
  background: var(--surface-2) !important;
  border-color: var(--signal) !important;
  color: var(--text-soft) !important;
}
html[data-theme="dark"] .boundary-note b,
html[data-theme="dark"] .cha5-note { color: var(--signal) !important; }

/* Contact */
html[data-theme="dark"] .contact-form-wrap {
  background: var(--surface) !important;
  border-color: var(--line) !important;
  box-shadow: 0 18px 55px rgba(0,0,0,.24);
}
html[data-theme="dark"] .contact-form-wrap input,
html[data-theme="dark"] .contact-form-wrap select,
html[data-theme="dark"] .contact-form-wrap textarea {
  background: var(--surface-2) !important;
  color: var(--text) !important;
  border-color: var(--line) !important;
}
html[data-theme="dark"] .contact-methods,
html[data-theme="dark"] .contact-methods > a,
html[data-theme="dark"] .contact-methods > div { border-color: var(--line) !important; }
html[data-theme="dark"] .contact-methods span { color: var(--signal) !important; }
html[data-theme="dark"] .contact-methods b,
html[data-theme="dark"] .contact-methods i { color: var(--text-soft) !important; }

/* CTA and footer */
html[data-theme="dark"] .cta-panel {
  background: linear-gradient(135deg,var(--surface-2),#0b1712) !important;
  color: var(--text) !important;
  border-color: rgba(123,200,159,.18) !important;
  box-shadow: 0 22px 70px rgba(0,0,0,.2);
}
html[data-theme="dark"] .cta-panel h2 { color: var(--text) !important; }
html[data-theme="dark"] .cta-panel > div:last-child > p { color: var(--muted) !important; }
html[data-theme="dark"] footer {
  background: var(--space) !important;
  color: var(--text) !important;
  border-top-color: var(--line) !important;
}
html[data-theme="dark"] .footer-links a,
html[data-theme="dark"] .footer-links span,
html[data-theme="dark"] .footer-brand > p,
html[data-theme="dark"] .footer-bottom { color: var(--muted) !important; }

/* Login menu */
.login-menu { position: relative; display: inline-flex; align-items: center; }
.login-menu-trigger {
  appearance: none;
  border: 0;
  border-bottom: 3px solid transparent;
  background: transparent;
  color: inherit;
  cursor: pointer;
  padding: 31px 0 27px;
  font: inherit;
}
.login-menu-trigger .chevron { margin-left: 4px; font-size: .58em; }
.login-dropdown {
  position: absolute;
  z-index: 60;
  top: calc(100% + 8px);
  right: -18px;
  min-width: 172px;
  padding: 8px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--paper);
  box-shadow: 0 18px 48px rgba(0,0,0,.28);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-6px);
  transition: opacity 160ms ease,transform 160ms ease,visibility 160ms ease;
}
.login-menu.open .login-dropdown { opacity: 1; visibility: visible; transform: translateY(0); }
.login-dropdown a {
  display: block;
  border: 0 !important;
  border-radius: 7px;
  padding: 10px 12px !important;
  color: var(--ink);
  font-size: 14px;
}
.login-dropdown a:hover { background: var(--sage); color: var(--green); }
html[data-theme="dark"] .login-dropdown {
  background: rgba(11,16,14,.99) !important;
  border-color: var(--line) !important;
}
html[data-theme="dark"] .login-dropdown a { color: var(--text) !important; }
html[data-theme="dark"] .login-dropdown a:hover { background: var(--surface-3) !important; color: var(--signal) !important; }

/* Theme control */
.theme-toggle {
  appearance: none;
  position: relative;
  width: 42px;
  height: 24px;
  flex: 0 0 42px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--sage);
  color: var(--ink);
  cursor: pointer;
}
.theme-icon { position: absolute; top: 50%; transform: translateY(-50%); font-size: 12px; line-height: 1; }
.theme-icon-sun { left: 6px; }
.theme-icon-moon { right: 6px; }
.theme-toggle::after {
  content: "";
  position: absolute;
  top: 3px;
  left: 3px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: var(--paper);
  box-shadow: 0 1px 5px rgba(16,37,28,.24);
  transition: transform 180ms ease;
}
html[data-theme="dark"] .theme-toggle { background: var(--surface-2); }
html[data-theme="dark"] .theme-toggle::after { background: var(--text); transform: translateX(18px); }
.header-theme-toggle { display: none; }
.mobile-theme-wrap { display: flex; align-items: center; justify-content: space-between; padding: 10px 12px; color: var(--muted); font-size: 12px; font-weight: 700; }
.mobile-login-menu summary { cursor: pointer; list-style: none; }
.mobile-login-menu summary::-webkit-details-marker { display: none; }
.mobile-login-links { display: grid; }

@media (max-width: 960px) {
  .desktop-theme-toggle { display: none; }
  .mobile-menu > div {
    width: min(420px, calc(100vw - 32px)) !important;
    max-width: min(420px, calc(100vw - 32px)) !important;
    display: grid !important;
    padding: 10px 18px 14px !important;
    gap: 0 !important;
    border-radius: 16px !important;
    box-shadow: 0 22px 56px rgba(16,37,28,.2) !important;
  }
  .mobile-menu > div > a {
    width: 100% !important;
    min-height: 52px !important;
    padding: 12px 2px !important;
    border: 0 !important;
    border-bottom: 1px solid var(--line) !important;
    border-radius: 0 !important;
    font-size: 16px !important;
    font-weight: 600 !important;
  }
  .mobile-login-menu {
    width: 100%;
    margin: 0;
    border: 0;
    border-bottom: 1px solid var(--line);
  }
  .mobile-menu .mobile-login-menu > summary {
    width: 100% !important;
    height: auto !important;
    min-height: 52px !important;
    display: flex !important;
    flex-direction: row !important;
    align-items: center;
    justify-content: space-between;
    gap: 12px !important;
    padding: 12px 2px !important;
    border: 0 !important;
    border-radius: 0 !important;
    color: inherit;
    font-size: 16px !important;
    font-weight: 600 !important;
    text-align: left;
  }
  .mobile-menu .mobile-login-menu > summary::after {
    content: "+";
    font-size: 20px;
    font-weight: 400;
    line-height: 1;
  }
  .mobile-menu .mobile-login-menu[open] > summary::after { content: "−"; }
  .mobile-login-links { padding: 0 0 8px 12px; }
  .mobile-login-links a {
    min-height: 44px !important;
    padding: 9px 4px !important;
    font-size: 15px !important;
  }
  .mobile-theme-wrap {
    width: 100%;
    min-height: 56px;
    padding: 12px 2px 8px;
    color: inherit;
    font-size: 14px;
    font-weight: 600;
  }
  .mobile-theme-wrap .theme-toggle {
    width: 48px;
    height: 28px;
    flex-basis: 48px;
  }
  .mobile-theme-wrap .theme-toggle::after {
    width: 20px;
    height: 20px;
  }
  html[data-theme="dark"] .mobile-theme-wrap .theme-toggle::after {
    transform: translateX(20px);
  }
}

@media (max-width: 700px) {
  .site-header .brand-lockup {
    width: 178px !important;
    height: 54px !important;
    max-width: 178px !important;
    max-height: 54px !important;
  }
  .site-header .brand-lockup > img {
    width: 178px !important;
    max-width: 178px !important;
  }
  .footer-brand .brand,
  .footer-brand .brand-lockup {
    width: 178px !important;
    height: 54px !important;
    min-height: 54px !important;
    max-width: 178px !important;
    max-height: 54px !important;
  }
  .footer-brand .brand-lockup > img {
    width: 178px !important;
    max-width: 178px !important;
  }
  .hero { flex-direction: column; }
  .hero-content { width: 100%; }
  .signal-card { align-self: stretch; }
}

@media (prefers-reduced-motion: reduce) {
  .login-dropdown,.theme-toggle::after { transition: none; }
}
