:root {
  --bg: #ffffff;
  --bg2: #f5faf6;
  --bg3: #eef7f0;
  --paper: #ffffff;
  --ink: #1a2e1c;
  --muted: #5a6f5c;
  --faint: #8a9d8c;
  --line: rgba(26, 90, 46, 0.12);
  --line2: rgba(26, 90, 46, 0.07);
  --green: #1f7a3a;
  --green2: #155c2b;
  --green3: #0d3f1c;
  --mint: #e8f6ec;
  --mint2: #d4efdc;
  --lime: #7dce8a;
  --lime2: #b8e6c0;
  --gold: #c4a35a;
  --gold-soft: rgba(196, 163, 90, 0.14);
  --shadow: 0 8px 28px rgba(21, 92, 43, 0.08);
  --shadow2: 0 16px 40px rgba(21, 92, 43, 0.12);
  --r: 14px;
  --r2: 20px;
  --font: "Noto Sans SC", "Inter", ui-sans-serif, system-ui, sans-serif;
  --display: "Noto Serif SC", "Fraunces", Georgia, serif;
  --max: 1180px;
  --max-wide: 1280px;
}
* { box-sizing: border-box; margin: 0; padding: 0 }
html { scroll-behavior: smooth; -webkit-font-smoothing: antialiased }
body {
  font-family: var(--font);
  background: var(--bg);
  color: var(--ink);
  line-height: 1.65;
  min-height: 100vh;
}
img { max-width: 100%; display: block; height: auto }
a { color: inherit; text-decoration: none }
ul { list-style: none }
.wrap { width: min(var(--max), calc(100% - 36px)); margin: 0 auto }
.wrap-wide { width: min(var(--max-wide), calc(100% - 36px)); margin: 0 auto }

/* progress — ginseng baby walker */
.progress-track {
  position: fixed; top: 0; left: 0; right: 0; height: 6px; z-index: 100;
  background: linear-gradient(180deg, #e8f6ec, #d4efdc);
  border-bottom: 1px solid rgba(31,122,58,.12);
  pointer-events: none;
  overflow: visible;
}
.progress-fill {
  position: absolute; top: 0; left: 0; height: 100%; width: 0;
  background: linear-gradient(90deg, #7dce8a, #1f7a3a 60%, #155c2b);
  border-radius: 0 3px 3px 0;
  box-shadow: 0 0 10px rgba(125,206,138,.45);
  transition: width .07s linear;
}
.progress-flag {
  position: absolute; right: 6px; top: 10px;
  font-size: 14px; line-height: 1;
  filter: drop-shadow(0 2px 3px rgba(0,0,0,.15));
  opacity: .85;
  transform: translateY(0);
  animation: flag-wave 1.6s ease-in-out infinite;
}
@keyframes flag-wave {
  0%, 100% { transform: rotate(-6deg) }
  50% { transform: rotate(8deg) }
}
.ginseng-walker {
  position: absolute;
  top: 8px;
  left: 0;
  width: 48px;
  height: 58px;
  margin-left: -24px;
  transform: translate3d(0, 0, 0);
  transition: left .07s linear;
  will-change: left;
  filter: drop-shadow(0 4px 8px rgba(21,92,43,.28));
  z-index: 3;
}
.ginseng-walker.walking .ginseng-svg { animation: g-bob .28s ease-in-out infinite }
.ginseng-walker.walking .g-leg-l { animation: g-leg-l .28s ease-in-out infinite }
.ginseng-walker.walking .g-leg-r { animation: g-leg-r .28s ease-in-out infinite }
.ginseng-walker.walking .g-arm-l { animation: g-arm-l .28s ease-in-out infinite }
.ginseng-walker.walking .g-arm-r { animation: g-arm-r .28s ease-in-out infinite }
.ginseng-walker.walking .g-leaf { animation: g-leaf .56s ease-in-out infinite }
.ginseng-walker.walking .g-dust {
  opacity: 1;
  animation: g-dust .28s ease-out infinite;
}
.ginseng-svg {
  display: block;
  overflow: visible;
  transform-origin: 50% 90%;
}
.g-leg-l, .g-leg-r, .g-arm-l, .g-arm-r, .g-leaf {
  transform-origin: center;
  transform-box: fill-box;
}
.g-leg-l { transform-origin: 27px 52px }
.g-leg-r { transform-origin: 37px 52px }
.g-arm-l { transform-origin: 20px 36px }
.g-arm-r { transform-origin: 44px 36px }
.g-leaf { transform-origin: 32px 14px }
.g-dust {
  position: absolute;
  left: 6px; bottom: 2px;
  width: 10px; height: 6px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(196,163,90,.55), transparent 70%);
  opacity: 0;
  pointer-events: none;
}
@keyframes g-bob {
  0%, 100% { transform: translateY(0) }
  50% { transform: translateY(-3px) }
}
@keyframes g-leg-l {
  0%, 100% { transform: rotate(22deg) }
  50% { transform: rotate(-22deg) }
}
@keyframes g-leg-r {
  0%, 100% { transform: rotate(-22deg) }
  50% { transform: rotate(22deg) }
}
@keyframes g-arm-l {
  0%, 100% { transform: rotate(-18deg) }
  50% { transform: rotate(18deg) }
}
@keyframes g-arm-r {
  0%, 100% { transform: rotate(18deg) }
  50% { transform: rotate(-18deg) }
}
@keyframes g-leaf {
  0%, 100% { transform: rotate(-4deg) }
  50% { transform: rotate(5deg) }
}
@keyframes g-dust {
  0% { opacity: .7; transform: translate(0, 0) scale(1) }
  100% { opacity: 0; transform: translate(-8px, 2px) scale(1.6) }
}
@media (max-width: 640px) {
  .ginseng-walker { width: 36px; height: 44px; margin-left: -18px }
  .ginseng-svg { width: 36px; height: 44px }
  .progress-flag { font-size: 12px; right: 4px }
}

/* top nav — iHerb style white + green */
.top {
  position: sticky; top: 0; z-index: 50;
  background: rgba(255,255,255,.96);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--line2);
}
.top.scrolled { box-shadow: 0 6px 20px rgba(21,92,43,.06) }
.top-bar {
  background: var(--green2);
  color: #fff;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .04em;
  text-align: center;
  padding: 7px 12px;
}
.top-bar span { opacity: .85; font-weight: 500 }
.top-in {
  display: flex; align-items: center; justify-content: space-between;
  gap: 14px; padding: 10px 0;
}
.brand { display: flex; align-items: center; gap: 10px; min-width: 0 }
.brand img.logo { height: 40px; width: auto }
.brand-txt { display: flex; flex-direction: column; line-height: 1.15 }
.brand-txt b { font-size: 14px; color: var(--green2); letter-spacing: .02em }
.brand-txt small { color: var(--faint); font-size: 11px; font-weight: 500; margin-top: 2px }
.nav-links {
  display: flex; flex-wrap: wrap; gap: 2px 0; justify-content: flex-end;
  max-width: 70%;
}
.nav-links a {
  font-size: 12.5px; color: var(--muted); padding: 7px 10px; border-radius: 999px;
  font-weight: 500; transition: .15s;
}
.nav-links a:hover, .nav-links a.active {
  color: var(--green2); background: var(--mint);
}
.nav-cta {
  display: inline-flex; align-items: center; gap: 6px;
  background: var(--green); color: #fff !important;
  padding: 8px 14px !important; border-radius: 999px !important;
  font-weight: 700 !important; font-size: 12.5px !important;
  box-shadow: 0 6px 16px rgba(31,122,58,.25);
}
.nav-cta:hover { background: var(--green2) !important; color: #fff !important }

/* hero — iHerb category banner feel */
.hero {
  position: relative;
  background: linear-gradient(135deg, #f0faf3 0%, #ffffff 45%, #eaf6ee 100%);
  border-bottom: 1px solid var(--line2);
  overflow: hidden;
}
.hero-grid {
  display: grid;
  grid-template-columns: 1.15fr .95fr;
  gap: 36px;
  align-items: center;
  padding: 42px 0 36px;
}
.eyebrow {
  display: inline-flex; align-items: center; gap: 8px;
  color: var(--green); font-size: 12px; font-weight: 800;
  letter-spacing: .12em; text-transform: uppercase; margin-bottom: 14px;
}
.eyebrow::before {
  content: ""; width: 18px; height: 3px; border-radius: 2px; background: var(--green);
}
h1 {
  font-family: var(--display);
  font-size: clamp(28px, 4.2vw, 44px);
  line-height: 1.18; font-weight: 700; color: var(--green3);
  letter-spacing: -.01em; margin-bottom: 14px;
}
h1 em {
  font-style: normal;
  background: linear-gradient(90deg, var(--green), var(--green2));
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.hero-lead {
  font-size: 16px; color: var(--muted); max-width: 540px; margin-bottom: 18px;
}
.hero-lead strong { color: var(--green2) }
.hero-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 22px }
.tag {
  font-size: 12px; font-weight: 600; color: var(--green2);
  background: var(--mint); border: 1px solid var(--line);
  padding: 6px 12px; border-radius: 999px;
}
.hero-stats {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px;
  margin-top: 8px;
}
.hero-stat {
  background: #fff; border: 1px solid var(--line); border-radius: var(--r);
  padding: 12px 10px; text-align: center; box-shadow: var(--shadow);
}
.hero-stat b {
  display: block; font-size: 20px; color: var(--green2); font-weight: 800; line-height: 1.2;
}
.hero-stat span { font-size: 11px; color: var(--faint); font-weight: 500 }
.hero-visual {
  position: relative; border-radius: 22px; overflow: hidden;
  box-shadow: var(--shadow2); border: 1px solid var(--line);
  aspect-ratio: 4/3; background: var(--bg3);
}
.hero-visual img { width: 100%; height: 100%; object-fit: cover }
.hero-badge {
  position: absolute; left: 14px; bottom: 14px;
  background: rgba(255,255,255,.94); backdrop-filter: blur(8px);
  border-radius: 12px; padding: 10px 14px; border: 1px solid var(--line);
  display: flex; align-items: center; gap: 10px;
  box-shadow: var(--shadow);
}
.hero-badge img { width: 36px; height: 36px; border-radius: 8px }
.hero-badge div { line-height: 1.2 }
.hero-badge b { font-size: 13px; color: var(--green2) }
.hero-badge small { font-size: 11px; color: var(--faint) }

/* category strip like iHerb */
.cat-strip {
  background: #fff;
  border-bottom: 1px solid var(--line2);
  padding: 14px 0;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.cat-row {
  display: flex; gap: 10px; min-width: max-content; padding: 2px 0;
}
.cat-chip {
  display: flex; align-items: center; gap: 8px;
  padding: 8px 14px; border-radius: 999px;
  border: 1px solid var(--line); background: var(--bg2);
  font-size: 12.5px; font-weight: 600; color: var(--green2);
  white-space: nowrap; transition: .15s;
}
.cat-chip:hover { background: var(--mint); border-color: var(--green); transform: translateY(-1px) }
.cat-chip i {
  width: 22px; height: 22px; border-radius: 50%;
  background: var(--mint2); display: grid; place-items: center; font-style: normal; font-size: 12px;
}

/* sections */
.sec { padding: 52px 0 8px }
.sec + .sec { border-top: 1px solid var(--line2); margin-top: 28px }
.sec-head {
  display: flex; align-items: flex-start; gap: 14px; margin-bottom: 22px;
}
.sec-num {
  flex-shrink: 0; width: 42px; height: 42px; border-radius: 12px;
  background: linear-gradient(135deg, var(--lime2), var(--green));
  color: #fff; font-weight: 800; font-size: 14px;
  display: grid; place-items: center;
  box-shadow: 0 8px 18px rgba(31,122,58,.22);
}
.sec-head h2 {
  font-family: var(--display);
  font-size: clamp(22px, 2.8vw, 30px);
  color: var(--green3); line-height: 1.25; font-weight: 700;
}
.sec-sub { color: var(--muted); font-size: 14px; margin-top: 4px; max-width: 720px }
.prose { color: var(--muted); font-size: 15px; max-width: 820px }
.prose p + p { margin-top: 10px }
.prose strong { color: var(--ink) }

/* cards / grids */
.grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 16px }
.grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px }
.grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px }
.card {
  background: var(--paper); border: 1px solid var(--line); border-radius: var(--r2);
  padding: 18px 18px 16px; box-shadow: var(--shadow);
  transition: .18s;
}
.card:hover { border-color: rgba(31,122,58,.28); box-shadow: var(--shadow2); transform: translateY(-2px) }
.card h3 { font-size: 16px; color: var(--green3); margin-bottom: 6px; font-weight: 700 }
.card p, .card li { font-size: 13.5px; color: var(--muted); line-height: 1.55 }
.card ul { margin-top: 8px }
.card li { padding-left: 14px; position: relative; margin-bottom: 4px }
.card li::before {
  content: ""; position: absolute; left: 0; top: 8px;
  width: 6px; height: 6px; border-radius: 50%; background: var(--green);
}
.card-ico {
  width: 40px; height: 40px; border-radius: 12px; margin-bottom: 12px;
  background: var(--mint); color: var(--green2);
  display: grid; place-items: center; font-size: 18px; font-weight: 700;
}
.pill {
  display: inline-block; font-size: 11px; font-weight: 700;
  color: var(--green2); background: var(--mint); padding: 3px 8px;
  border-radius: 999px; margin-bottom: 8px; letter-spacing: .03em;
}

/* dual engine */
.engine {
  display: grid; grid-template-columns: 1fr 1fr; gap: 16px;
}
.engine-card {
  border-radius: var(--r2); overflow: hidden; border: 1px solid var(--line);
  background: #fff; box-shadow: var(--shadow);
}
.engine-card .img {
  height: 180px; overflow: hidden; position: relative;
}
.engine-card .img img { width: 100%; height: 100%; object-fit: cover }
.engine-card .img .label {
  position: absolute; left: 12px; top: 12px;
  background: rgba(21,92,43,.92); color: #fff;
  font-size: 12px; font-weight: 700; padding: 6px 12px; border-radius: 999px;
}
.engine-card .body { padding: 16px 18px 18px }
.engine-card h3 { font-size: 18px; color: var(--green3); margin-bottom: 6px }
.engine-card p { font-size: 13.5px; color: var(--muted) }

/* entity table cards */
.trow {
  display: grid; grid-template-columns: 1.4fr .8fr 1.4fr; gap: 10px;
  padding: 14px 16px; border: 1px solid var(--line); border-radius: var(--r);
  background: #fff; margin-bottom: 8px; align-items: center;
  box-shadow: 0 4px 12px rgba(21,92,43,.04);
}
.trow.th {
  background: var(--green2); color: #fff; border: none;
  font-size: 12px; font-weight: 700; letter-spacing: .04em;
}
.trow.th span { color: #fff }
.trow b { color: var(--green3); font-size: 14px }
.trow span { font-size: 13px; color: var(--muted) }
.trow .badge {
  display: inline-block; background: var(--mint); color: var(--green2);
  font-size: 11px; font-weight: 700; padding: 4px 10px; border-radius: 999px;
}

/* layers stack */
.layers {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px;
}
.layer {
  background: linear-gradient(180deg, #fff 0%, var(--bg2) 100%);
  border: 1px solid var(--line); border-radius: var(--r);
  padding: 16px; text-align: left;
}
.layer .n {
  font-size: 11px; font-weight: 800; color: var(--green);
  letter-spacing: .1em; margin-bottom: 8px;
}
.layer h4 { font-size: 15px; color: var(--green3); margin-bottom: 6px }
.layer p { font-size: 12.5px; color: var(--muted) }

/* market stats */
.stat-band {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px;
  margin: 18px 0 8px;
}
.stat-big {
  background: var(--green2); color: #fff; border-radius: var(--r2);
  padding: 22px 18px; text-align: center;
  box-shadow: var(--shadow2);
}
.stat-big b { display: block; font-size: 28px; font-weight: 800; line-height: 1.1 }
.stat-big span { display: block; margin-top: 6px; font-size: 12.5px; opacity: .88 }
.stat-big.alt { background: linear-gradient(135deg, var(--green), var(--green3)) }
.stat-big.mint {
  background: var(--mint); color: var(--green3); border: 1px solid var(--line);
  box-shadow: none;
}

/* product / platform modules */
.mod {
  display: grid; grid-template-columns: 1.05fr .95fr; gap: 18px;
  align-items: stretch; margin-bottom: 18px;
}
.mod.reverse { direction: rtl }
.mod.reverse > * { direction: ltr }
.mod-media {
  border-radius: var(--r2); overflow: hidden; border: 1px solid var(--line);
  min-height: 240px; background: var(--bg3); position: relative;
}
.mod-media img { width: 100%; height: 100%; object-fit: cover; min-height: 240px }
.mod-media .cap {
  position: absolute; right: 12px; bottom: 12px;
  background: rgba(255,255,255,.92); font-size: 11px; font-weight: 600;
  color: var(--green2); padding: 6px 10px; border-radius: 999px;
}
.mod-body {
  background: #fff; border: 1px solid var(--line); border-radius: var(--r2);
  padding: 20px; box-shadow: var(--shadow); display: flex; flex-direction: column;
}
.mod-body h3 { font-size: 18px; color: var(--green3); margin-bottom: 8px }
.mod-body p { font-size: 14px; color: var(--muted); margin-bottom: 10px }
.mod-body .bullets { flex: 1 }
.mod-body .bullets li {
  font-size: 13.5px; color: var(--muted); padding: 5px 0 5px 16px;
  position: relative; border-bottom: 1px dashed var(--line2);
}
.mod-body .bullets li:last-child { border-bottom: 0 }
.mod-body .bullets li::before {
  content: "✓"; position: absolute; left: 0; color: var(--green); font-weight: 800; font-size: 12px;
}

/* platform five pillars */
.pillars { display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px }
.pillar {
  background: #fff; border: 1px solid var(--line); border-radius: var(--r);
  padding: 14px 12px; text-align: center; box-shadow: var(--shadow);
}
.pillar .ico {
  width: 48px; height: 48px; margin: 0 auto 10px; border-radius: 14px;
  background: var(--mint); display: grid; place-items: center; font-size: 22px;
}
.pillar h4 { font-size: 13px; color: var(--green3); margin-bottom: 4px }
.pillar p { font-size: 11.5px; color: var(--muted); line-height: 1.4 }

/* image mosaic */
.mosaic {
  display: grid; grid-template-columns: 1.4fr 1fr 1fr; grid-template-rows: 160px 160px;
  gap: 10px; margin: 16px 0 8px;
}
.mosaic .m { border-radius: 14px; overflow: hidden; border: 1px solid var(--line) }
.mosaic .m img { width: 100%; height: 100%; object-fit: cover }
.mosaic .m.big { grid-row: 1 / span 2 }
.mosaic .m.wide { grid-column: 2 / span 2 }

/* store model */
.store-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 16px }
.store-card {
  border-radius: var(--r2); overflow: hidden; border: 1px solid var(--line);
  background: #fff; box-shadow: var(--shadow);
}
.store-card .ph { height: 200px; position: relative }
.store-card .ph img { width: 100%; height: 100%; object-fit: cover }
.store-card .ph .chip {
  position: absolute; left: 12px; top: 12px;
  background: #fff; color: var(--green2); font-size: 11px; font-weight: 800;
  padding: 5px 10px; border-radius: 999px;
}
.store-card .bd { padding: 16px 18px 18px }
.store-card h3 { font-size: 18px; color: var(--green3); margin-bottom: 6px }
.kv {
  display: grid; grid-template-columns: 88px 1fr; gap: 6px 10px;
  margin-top: 10px; font-size: 13px;
}
.kv dt { color: var(--faint); font-weight: 600 }
.kv dd { color: var(--ink) }

/* timeline */
.roadmap {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px;
  position: relative;
}
.rm {
  background: #fff; border: 1px solid var(--line); border-radius: var(--r2);
  padding: 18px; box-shadow: var(--shadow); position: relative;
}
.rm .phase {
  display: inline-block; background: var(--green); color: #fff;
  font-size: 11px; font-weight: 800; padding: 4px 10px; border-radius: 999px;
  margin-bottom: 10px;
}
.rm h3 { font-size: 16px; color: var(--green3); margin-bottom: 8px }
.rm ul li {
  font-size: 13px; color: var(--muted); padding: 4px 0 4px 14px; position: relative;
}
.rm ul li::before {
  content: ""; position: absolute; left: 0; top: 11px;
  width: 6px; height: 6px; border-radius: 50%; background: var(--lime);
}

/* finance */
.fin-grid {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-bottom: 14px;
}
.fin {
  background: #fff; border: 1px solid var(--line); border-radius: var(--r);
  padding: 14px; text-align: center;
}
.fin .lbl { font-size: 11px; color: var(--faint); font-weight: 600; margin-bottom: 6px }
.fin .v { font-size: 18px; font-weight: 800; color: var(--green2) }
.fin .v small { font-size: 11px; font-weight: 600; color: var(--muted) }
.fin-table {
  width: 100%; border-collapse: separate; border-spacing: 0;
  border: 1px solid var(--line); border-radius: var(--r); overflow: hidden;
  background: #fff; font-size: 13.5px;
}
.fin-table th, .fin-table td {
  padding: 12px 14px; text-align: left; border-bottom: 1px solid var(--line2);
}
.fin-table th {
  background: var(--bg2); color: var(--green3); font-weight: 700; font-size: 12px;
}
.fin-table tr:last-child td { border-bottom: 0; font-weight: 800; color: var(--green2); background: var(--mint) }
.fin-table td:not(:first-child), .fin-table th:not(:first-child) { text-align: right; font-variant-numeric: tabular-nums }
.note {
  margin-top: 12px; font-size: 12.5px; color: var(--muted);
  background: var(--bg2); border-left: 3px solid var(--green);
  padding: 10px 14px; border-radius: 0 var(--r) var(--r) 0;
}

/* risk */
.risk {
  display: grid; grid-template-columns: 1fr 1.2fr; gap: 0;
  border: 1px solid var(--line); border-radius: var(--r); overflow: hidden;
  margin-bottom: 8px; background: #fff;
}
.risk .l {
  background: var(--bg2); padding: 12px 14px; font-size: 13.5px;
  font-weight: 700; color: var(--green3); border-right: 1px solid var(--line2);
}
.risk .r { padding: 12px 14px; font-size: 13.5px; color: var(--muted) }

/* gallery */
.gallery {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px;
}
.g-item {
  border-radius: 12px; overflow: hidden; border: 1px solid var(--line);
  aspect-ratio: 4/3; position: relative;
}
.g-item img { width: 100%; height: 100%; object-fit: cover }
.g-item span {
  position: absolute; left: 8px; bottom: 8px;
  background: rgba(13,63,28,.85); color: #fff;
  font-size: 10px; font-weight: 600; padding: 4px 8px; border-radius: 6px;
}

/* callout */
.callout {
  background: linear-gradient(135deg, var(--green2), var(--green3));
  color: #fff; border-radius: var(--r2); padding: 28px 28px 24px;
  margin: 18px 0; box-shadow: var(--shadow2);
}
.callout h3 { font-family: var(--display); font-size: 22px; margin-bottom: 10px; font-weight: 700 }
.callout p { font-size: 14.5px; opacity: .92; max-width: 820px; line-height: 1.7 }
.callout .links { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px }
.btn {
  display: inline-flex; align-items: center; gap: 6px;
  background: #fff; color: var(--green2); font-weight: 700; font-size: 13px;
  padding: 10px 16px; border-radius: 999px;
}
.btn.ghost {
  background: transparent; color: #fff; border: 1px solid rgba(255,255,255,.4);
}

/* footer */
.foot {
  margin-top: 48px; padding: 28px 0 40px;
  border-top: 1px solid var(--line); background: var(--bg2);
}
.foot-in {
  display: flex; flex-wrap: wrap; justify-content: space-between; gap: 16px;
  align-items: flex-start;
}
.foot .brand img.logo { height: 32px }
.foot p { font-size: 12.5px; color: var(--muted); max-width: 420px; margin-top: 8px }
.foot .meta { font-size: 12px; color: var(--faint); text-align: right }
.foot a { color: var(--green2); font-weight: 600 }

/* fade */
.fade-in { opacity: 0; transform: translateY(14px); transition: .5s ease }
.fade-in.visible { opacity: 1; transform: none }

/* mobile */
@media (max-width: 980px) {
  .hero-grid, .engine, .mod, .mod.reverse, .store-cards, .roadmap,
  .layers, .stat-band, .pillars, .grid-4, .fin-grid { grid-template-columns: 1fr 1fr }
  .pillars { grid-template-columns: repeat(3, 1fr) }
  .layers { grid-template-columns: 1fr 1fr }
  .mosaic { grid-template-columns: 1fr 1fr; grid-template-rows: auto }
  .mosaic .m.big { grid-row: auto }
  .mosaic .m.wide { grid-column: auto }
  .gallery { grid-template-columns: 1fr 1fr }
  .trow { grid-template-columns: 1fr; gap: 4px }
  .trow.th { display: none }
  .nav-links { display: none }
  .hero-stats { grid-template-columns: 1fr 1fr }
}
@media (max-width: 640px) {
  .hero-grid, .engine, .mod, .store-cards, .roadmap, .grid-2, .grid-3,
  .grid-4, .stat-band, .pillars, .layers, .fin-grid, .risk { grid-template-columns: 1fr }
  .pillars { grid-template-columns: 1fr 1fr }
  .gallery { grid-template-columns: 1fr 1fr }
  .fin-table { font-size: 12px }
  .fin-table th, .fin-table td { padding: 10px 8px }
  .foot-in { flex-direction: column }
  .foot .meta { text-align: left }
}
