:root{--bg:#050509;--fg:#f3f4f6;--card:#11111a;--border:rgba(255,255,255,0.08);--accent:#7c3aed;}:root.dark{--bg:#111214;--fg:#e6e7eb;--card:#16171a;--border:#2a2c31;--accent:#8da2fb;}html,body{margin:0;padding:0;font-family:'Inter',sans-serif;background:var(--bg);color:var(--fg);}a{color:var(--accent);text-decoration:none;}a:hover{text-decoration:underline;}button{background:var(--accent);color:white;border:none;border-radius:6px;padding:0.6rem 1.2rem;cursor:pointer;}button:hover{opacity:0.9;}:root.dark .theme-switch .knob{transform:translateX(18px);background:#fff;}h1{font-size:2.5rem;font-weight:700;margin-bottom:1rem;}h2{font-size:1.75rem;font-weight:600;margin:2rem 0 1rem;}.card{background:var(--card);border:1px solid var(--border);border-radius:1rem;padding:1.5rem;}.dark .card,body.dark .card{background:#111317;border-color:#27272a;}.dark a,body.dark a{color:var(--brand);}.dark button,body.dark button{background:#3B82F6;box-shadow:0 10px 20px rgba(96,165,250,.18);}.dark button:hover,body.dark button:hover{opacity:0.95;}.dark body,body.dark{background-color:#050509 !important;color:#f3f4f6 !important;}.dark .text-black,body.dark .text-black,.dark .text-gray-900,body.dark .text-gray-900,.dark h1,.dark h2,.dark h3,body.dark h1,body.dark h2,body.dark h3{color:#e5e7eb !important;}.dark .text-gray-800,body.dark .text-gray-800,.dark .text-gray-700,body.dark .text-gray-700{color:#e5e7eb !important;}.dark .text-gray-600,body.dark .text-gray-600{color:#cbd5e1 !important;}.dark .text-gray-500,body.dark .text-gray-500{color:#94a3b8 !important;}.dark p,.dark li,.dark span,.dark label{color:inherit;}.dark a,body.dark a{color:var(--brand);}.dark .border-gray-200,.dark .divide-gray-200{border-color:#27272a !important;}.dark #y-labels text,body.dark #y-labels text{fill:#94a3b8 !important;}:root{--bg:#ffffff;--fg:#0f172a;--card:#f9fafb;--border:#e5e7eb;--accent:#1E40AF;--accent-weak:#3B82F6;}:root.dark{--bg:#0b0b0c;--fg:#f3f4f6;--card:#111317;--border:#27272a;--accent:#60a5fa;--accent-weak:#93c5fd;}

/* Solidly chain banner – light + dark mode */
.solidly-banner{
  text-align: center;
  padding: 24px 0;
  margin-top: 0;
  position: relative;
  z-index: 2;
  background-color: #f5f5f5;
  color: #111111;
}

.solidly-banner-inner{
  font-weight: 600;
  letter-spacing: -0.01em;
  font-size: clamp(1.125rem, 2vw, 1.5rem);
}

html.dark .solidly-banner,
body.dark .solidly-banner{
  background-color: rgba(255,255,255,0.06);
  color: #ffffff;
}

html.dark .solidly-banner .typewriter-caret,
body.dark .solidly-banner .typewriter-caret{
  color: inherit;
}
body{color:#000 !important;background-color:#ffffff;}.dark body,body.dark{color:#fff !important;background-color:#000000 !important;}h1,h2,h3,h4,h5,h6,p,span,label,small,strong,em,li,dt,dd,th,td{color:inherit !important;}a{color:inherit !important;text-decoration:none;}a:hover{text-decoration:underline;}.dark body,body.dark{background-color:#0f1115 !important;color:#ffffff !important;}header .brand-link,header .brand-link:visited,header .brand-link:hover,header .brand-link:focus{color:inherit !important;}header .brand-logo{display:inline-block;vertical-align:middle;color:inherit !important;}header a,:root.dark header a,body.dark header a{color:inherit !important;}footer{background:var(--bg);color:var(--fg);}footer a{color:var(--fg);}.dark footer{background:var(--bg);color:var(--fg);}:root{--space-hero-top:clamp(24px,6vw,56px);--space-hero-bottom:clamp(16px,5vw,40px);--space-section:clamp(40px,8vw,96px);--space-section-tight:clamp(28px,5.5vw,64px);--space-heading:clamp(12px,2.5vw,24px);--space-subhead:clamp(8px,2vw,16px);--space-grid:clamp(12px,2.5vw,24px);}#hero,section#hero{padding-top:var(--space-hero-top);padding-bottom:var(--space-hero-bottom);}section{padding-top:var(--space-section);padding-bottom:var(--space-section);}#how-it-works,#tokenomics{padding-top:var(--space-section-tight);padding-bottom:var(--space-section-tight);}section h2,section h3{margin-top:var(--space-heading);margin-bottom:var(--space-subhead);line-height:1.15;}section p,section ul,section ol{margin-top:8px;margin-bottom:12px;}.grid,.cards,.token-cards{gap:var(--space-grid);}.card,.rounded-xl,.rounded-2xl{margin:0;}#partners{padding-top:var(--space-section);padding-bottom:var(--space-section-tight);}footer{margin-top:clamp(32px,6vw,72px);padding-top:clamp(16px,3vw,28px);}.section-divider{height:1px;margin:clamp(12px,2.5vw,20px) 0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.08),transparent);}#partners{padding-bottom:clamp(12px,2vw,28px);}#how-it-works .flow-step-card{transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;will-change:transform;}#how-it-works .flow-step-card:hover{transform:translateY(-2px);box-shadow:0 10px 28px rgba(0,0,0,.18);border-color:rgba(124,58,237,.45);}#how-it-works .down-arrow{opacity:.7;padding:4px 0 8px;}@media (min-width:1024px){#how-it-works .flow-steps{max-width:720px;margin-left:auto;margin-right:auto;}.dark a,.dark a:link,.dark a:visited{color:#fff !important;text-decoration-color:rgba(255,255,255,0.25);}.dark a:hover,.dark a:focus-visible{color:#a855f7 !important;text-decoration-color:#a855f7;}.dark .btn-brand,.dark .badge,.dark .btn-brand a{color:#fff !important;background:linear-gradient(90deg,#7c3aed,#a855f7);border-color:transparent;}.dark .btn-brand:hover{filter:saturate(1.06);box-shadow:var(--glow);}#theme-toggle{display:inline-flex !important;align-items:center !important;vertical-align:middle !important;margin:0 !important;line-height:1 !important;top:0 !important;transform:translate3d(0,0,0);}html:not(.dark) #theme-toggle[aria-pressed="false"]{background:var(--card) !important;border:1px solid var(--border) !important;box-shadow:none !important;}html:not(.dark) #theme-toggle[aria-pressed="true"]{background:linear-gradient(90deg,#7c3aed,#a855f7) !important;border-color:transparent !important;box-shadow:0 0 10px rgba(124,58,237,0.40) !important;}.dark #theme-toggle[aria-pressed="false"]{background:rgba(255,255,255,0.06) !important;border:1px solid rgba(255,255,255,0.12) !important;box-shadow:none !important;}.dark #theme-toggle[aria-pressed="true"]{background:linear-gradient(90deg,#8b5cf6,#a855f7) !important;border-color:transparent !important;box-shadow:0 0 10px rgba(124,58,237,0.40) !important;}#theme-toggle > span:nth-child(2){position:relative !important;z-index:1;top:0 !important;}#theme-toggle:focus-visible{box-shadow:0 0 0 3px rgba(124,58,237,0.35) !important;outline:none !important;}

/* Theme toggle knob extracted from Tailwind utilities */
.theme-toggle-knob{
  position: absolute;
  left: 0.125rem;  /* ~left-0.5 */
  top: 0.125rem;   /* ~top-0.5 */
  display: inline-block;
  width: 1.25rem;  /* ~w-5 */
  height: 1.25rem; /* ~h-5 */
  border-radius: 999px;
  background: #ffffff;
  box-shadow: 0 1px 3px rgba(15,23,42,0.15), 0 1px 1px rgba(15,23,42,0.08);
  transform: translateX(0);
  transition: transform 300ms ease, box-shadow 200ms ease;
}
.dark .theme-toggle-knob{
  box-shadow: 0 1px 4px rgba(0,0,0,0.55), 0 0 0 1px rgba(15,23,42,0.65);
}


/*  === Banner dark-mode color hardening (v57) === */
html
html

/* Ensure no media query reverts the color at small widths */
@media (max-width: 2000px){
  html
}



/* === Minimal hardening patch (v58) === */

/* Banner dark-mode: ultra-specific override that beats inline + media */
html.dark body #solidly-ethereum-banner#solidly-ethereum-banner{
  background-color: rgba(255,255,255,0.06) !important;
  color:#ffffff !important;
}
@media all {
  html.dark body #solidly-ethereum-banner#solidly-ethereum-banner{
    background-color: rgba(255,255,255,0.06) !important;
    color:#ffffff !important;
  }
}
/* Caret inherits banner color */
html.dark body #solidly-ethereum-banner .typewriter-caret{
  color:inherit !important;
}

/* Toggle: suppress OS blue without touching layout */
#theme-toggle{
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  width: 3rem; /* ~w-12 */
  height: 1.5rem; /* ~h-6 */
  border-radius: 999px;
  padding: 0;
  border: none;
  background: transparent;
  -webkit-tap-highlight-color: rgba(0,0,0,0) !important;
  outline: none !important;
}
#theme-toggle:focus-visible{
  box-shadow: 0 0 0 3px rgba(124,58,237,0.35) !important;
}



/* v59 – hero ambient + section labels + spacing */

.hero-section {

.hero-title {
  font-size: clamp(2.4rem, 3.4vw, 3.7rem);
  line-height: 1.08;
}
  position: relative;
}

.hero-ambient {
  animation: heroGlowDrift 18s ease-in-out infinite alternate;
  transform-origin: center;
}

@keyframes heroGlowDrift {
  0%   { transform: translate3d(-6px, 4px, 0) scale(1.02); filter: blur(26px); }
  50%  { transform: translate3d(4px, -8px, 0) scale(1.04);  filter: blur(28px); }
  100% { transform: translate3d(-3px, 3px, 0) scale(1.03);  filter: blur(26px); }
}

@media (prefers-reduced-motion: reduce){
  .hero-ambient { animation: none; }
}

.section-label {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  font-size: 0.75rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  text-indent: 0.18em;
  opacity: 0.75;
  white-space: nowrap;
}

.section-label::before,
.section-label::after {
  content: "";
  display: block;
  height: 1px;
  width: 32px;
  border-radius: 999px;
  background: linear-gradient(
    90deg,
    rgba(124,58,237,0),
    rgba(124,58,237,0.75),
    rgba(236,72,153,0)
  );
}

.dark .section-label {
  opacity: 0.85;
}

/* Section rhythm – gentle vertical spacing */
section.relative.z-10 {
  margin-top: clamp(3rem, 5vh, 4.75rem);
}

@media (min-width: 1024px) {
  section.relative.z-10 {
    margin-top: clamp(3.75rem, 6vh, 5.5rem);
  }
}

section.relative.z-10:first-of-type {
  margin-top: clamp(2.5rem, 4vh, 3.5rem);
}

section.relative.z-10 .rounded-2xl {
  padding: clamp(1.5rem, 2.3vw, 2.5rem);
}



/* Founders / Team */
.team-grid {
  align-items: stretch;
}

.team-card {
  border-radius: 1.25rem;
  border-width: 1px;
  border-style: solid;
  border-color: rgba(148, 163, 184, 0.45);
  background-color: rgba(249, 250, 251, 0.98);
  transition:
    transform 180ms ease-out,
    box-shadow 180ms ease-out,
    border-color 180ms ease-out,
    background-color 180ms ease-out;
}

.dark .team-card {
  border-color: rgba(51, 65, 85, 0.9);
  background-color: rgba(15, 23, 42, 0.92);
}


.team-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 18px 40px rgba(15, 23, 42, 0.25);
  border-color: rgba(129, 140, 248, 0.5);
}

.team-avatar {
  font-family: inherit;
}

@media (max-width: 640px) {
  #founders {
    padding-top: 3rem;
    padding-bottom: 3rem;
  }
}


.status-pill {
  border-radius: 9999px;
  padding: 0.25rem 0.75rem;
  font-size: 0.7rem;
  line-height: 1;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  white-space: nowrap;
}

/* Active uses the same gradient + behavior as partner badges via .badge */

.status-active {
  box-shadow: 0 0 12px rgba(34,197,94,0.9), 0 0 18px rgba(22,163,74,0.8);
  border-color: transparent;
}


/* Inactive: same pill shape, muted surface */

.status-inactive {
  background: rgba(148,163,184,0.25);
  color: rgba(55,65,81,1);
  border-color: rgba(148,163,184,0.9);
  box-shadow: none;
}



/* === Solidly polish pass: hero, flow connectors, micro-animations, partners, founders, footer === */

/* Single-page shell feel */
.page-wrap {
  min-height: 100vh;
  position: relative;
  background:
    radial-gradient(circle at top, #f7f2ff 0, #f9fafb 26%, #020617 100%);
}
.dark .page-wrap {
  background:
    radial-gradient(circle at top, #020617 0, #020617 40%, #020617 100%);
}

/* Hero: grid + halo + orbiting dot */
.hero-section {
  position: relative;
  isolation: isolate;
}

.hero-content {
  position: relative;
  z-index: 1;
}

.hero-content::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 38%;
  transform: translate(-50%, -50%);
  width: min(520px, 80vw);
  height: min(520px, 80vw);
  border-radius: 999px;
  background:
    radial-gradient(circle,
      rgba(124, 58, 237, 0.30),
      transparent 60%);
  opacity: 0.7;
  filter: blur(4px);
  pointer-events: none;
  z-index: -1;
}

.dark .hero-content::before {
  background:
    radial-gradient(circle,
      rgba(79, 70, 229, 0.55),
      transparent 62%);
  opacity: 0.9;
}

.hero-bg-grid {
  position: absolute;
  inset: -120px;
  background-image:
    linear-gradient(
      90deg,
      rgba(148, 163, 184, 0.12) 1px,
      transparent 1px
    ),
    linear-gradient(
      180deg,
      rgba(148, 163, 184, 0.12) 1px,
      transparent 1px
    );
  background-size: 80px 80px;
  opacity: 0.22;
  mix-blend-mode: soft-light;
  pointer-events: none;
  z-index: -1;
  animation: heroGridDrift 38s linear infinite;
}

.dark .hero-bg-grid {
  opacity: 0.26;
  background-image:
    linear-gradient(
      90deg,
      rgba(180, 180, 180, 0.25) 1px,
      transparent 1px
    ),
    linear-gradient(
      180deg,
      rgba(180, 180, 180, 0.25) 1px,
      transparent 1px
    );
}

.hero-orbit-dot {
  position: absolute;
  width: 10px;
  height: 10px;
  border-radius: 999px;
  right: 18%;
  top: 34%;
  background: #22c55e;
  box-shadow:
    0 0 12px rgba(34, 197, 94, 0.45),
    0 0 20px rgba(34, 197, 94, 0.30);
  animation: heroOrbit 24s ease-in-out infinite;
}

.dark .hero-orbit-dot {
  position: absolute;
  width: 10px;
  height: 10px;
  border-radius: 999px;
  right: 18%;
  top: 34%;
  background: #22c55e;
  box-shadow:
    0 0 12px rgba(34, 197, 94, 0.45),
    0 0 20px rgba(34, 197, 94, 0.30);
  animation: heroOrbit 24s ease-in-out infinite;
}

@keyframes heroGridDrift {
  0% {
    transform: translate3d(0, 0, 0);
  }
  50% {
    transform: translate3d(-24px, -18px, 0);
  }
  100% {
    transform: translate3d(0, 0, 0);
  }
}

@keyframes heroOrbit {
  0% {
    transform: translate3d(0, 0, 0);
  }
  25% {
    transform: translate3d(26px, -4px, 0);
  }
  50% {
    transform: translate3d(10px, 12px, 0);
  }
  75% {
    transform: translate3d(-20px, 4px, 0);
  }
  100% {
    transform: translate3d(0, 0, 0);
  }
}

/* Section connectors: light, neural-style arcs tying the story together */
.section-connector {
  position: relative;
  height: 30px;
  margin-top: -4px;
  margin-bottom: 4px;
  pointer-events: none;
}

.section-connector::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: min(640px, 88vw);
  height: 140%;
  transform: translate(-50%, -40%);
  border-radius: 999px;
  border-top: 1px dashed rgba(148, 163, 184, 0.7);
  opacity: 0.55;
}

.dark .section-connector::before {
  border-top-color: rgba(55, 65, 81, 0.95);
  opacity: 0.5;
}

/* Slight variation per connector so they don't feel copy-pasted */
.connector-hero-how::before {
  width: min(520px, 82vw);
  height: 120%;
}

.connector-tokenomics-origins::before {
  width: min(680px, 92vw);
}

.connector-origins-partners::before {
  width: min(560px, 86vw);
}

.connector-partners-founders::before {
  width: min(380px, 72vw);
  opacity: 0.42;
}

/* Card micro-interactions: shared "lifted" behavior */
.lifted {
  transition:
    transform 160ms ease-out,
    box-shadow 160ms ease-out,
    border-color 160ms ease-out,
    background-color 160ms ease-out;
  will-change: transform, box-shadow;
}

.lifted:hover {
  transform: translateY(-2px);
  box-shadow:
    0 20px 45px rgba(15, 23, 42, 0.24);
  border-color: rgba(129, 140, 248, 0.55);
}

/* Reveal-on-scroll behavior (script already wires IntersectionObserver) */
.reveal-on-scroll {
  opacity: 0;
  transform: translateY(12px);
  transition:
    opacity 260ms ease-out,
    transform 260ms ease-out,
    box-shadow 260ms ease-out,
    border-color 260ms ease-out;
}

.reveal-on-scroll.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* Founders: vignette + editorial feel */
.team-card {
  position: relative;
  overflow: hidden;
}

.team-card::before {
  content: "";
  position: absolute;
  inset: -18%;
  background:
    radial-gradient(circle at top left,
      rgba(129, 140, 248, 0.25),
      transparent 60%);
  opacity: 0.9;
  pointer-events: none;
  z-index: -1;
}

.dark .team-card::before {
  background:
    radial-gradient(circle at top left,
      rgba(55, 65, 81, 0.9),
      transparent 62%);
}

/* Partners / Integrations: subtle hierarchy & polish */
#partners a.badge {
  filter: grayscale(0.9);
  opacity: 0.78;
  transition:
    color 0.25s ease,
    border-color 0.25s ease,
    box-shadow 0.25s ease,
    filter 0.25s ease,
    opacity 0.25s ease;
}

#partners a.badge:hover,
#partners a.badge:focus-visible {
  filter: none;
  opacity: 1;
}

/* Footer: slightly more intentional */
.site-footer {
  margin-top: 2.5rem;
}

.footer-logos a {
  transition:
    transform 160ms ease,
    opacity 160ms ease;
}

.footer-logos a:hover {
  transform: translateY(-1px) scale(1.03);
  opacity: 1;
}

.footer-built {
  margin-top: 0.35rem;
  font-size: 0.7rem;
  opacity: 0.65;
}
.footer-built strong {
  font-weight: 600;
}

/* Global vertical rhythm for sections */
section[id]:not(:first-of-type) {
  margin-top: clamp(2.5rem, 5vh, 3.5rem);
}
@media (max-width: 640px) {
  section[id]:not(:first-of-type) {
    margin-top: 2.25rem;
  }
}


.dark #partners .section-shell,
body.dark #partners .section-shell{
  background-color: #050509 !important;
}

/* Mobile-safe background + gradient tuning */
@media (max-width: 768px){
  body,
  .page-wrap{
    background-color: #050509;
    background-image: radial-gradient(900px 480px at 50% -10%, rgba(139,92,246,0.14), transparent 60%),
                      linear-gradient(to bottom, #050509 0%, #06060c 32%, #070714 68%, #08081a 100%);
    background-attachment: scroll;
  }
  .dark body,
  body.dark,
  .dark .page-wrap,
  body.dark .page-wrap{
    background-color: #050509;
    background-image: radial-gradient(900px 480px at 50% -10%, rgba(139,92,246,0.18), transparent 60%),
                      linear-gradient(to bottom, #050509 0%, #06060c 32%, #070714 68%, #08081a 100%);
  }
}

/* Mobile hero glow boost */
@media (max-width: 768px){
  .hero-content::before{
    top: 45%;
    width: 120vw;
    height: 120vw;
    opacity: 1;
    filter: blur(12px);
  }
}

/* Dark-mode charcoal section shells */
.dark .section-shell,
body.dark .section-shell{
  background-color: #050509;
}