/* ============================================================
   Moony — homepage sections v2 (structural / monochrome)
   ============================================================ */

/* ============================================================
   HERO — left-aligned type, O-mark object on the right
   ============================================================ */
.hero { padding: 116px 0 96px; position: relative; overflow: hidden; background: linear-gradient(180deg, #efe7fc 0%, #f5effc 40%, #ffffff 100%); }
.hero::before { content: ""; position: absolute; top: -160px; left: 50%; transform: translateX(-50%); width: 1500px; height: 900px; z-index: 0; pointer-events: none; background: radial-gradient(48% 54% at 60% 34%, rgba(216,197,253,.32), rgba(255,255,255,0) 68%); }
.hero::after { content: ""; position: absolute; left: 0; right: 0; bottom: -180px; height: 420px; z-index: 0; pointer-events: none; background: radial-gradient(60% 100% at 50% 100%, rgba(124,77,222,.09), rgba(232,150,90,.045) 55%, transparent 80%); }
.hero-in { position: relative; z-index: 1; }

/* ── apple-hero borrowings on the two-column layout: floor shadow under the stack, no spin ring ── */
.hero-object::after { content: ""; position: absolute; left: 50%; bottom: 8%; z-index: 1; width: min(64%, 320px); height: 40px; border-radius: 50%; transform: translateX(-50%); background: radial-gradient(closest-side, rgba(40,22,84,.26), transparent 72%); filter: blur(5px); animation: floorsync 7s ease-in-out infinite; }
@keyframes floorsync { 0%,100% { transform: translateX(-50%) scaleX(1); opacity: 1; } 50% { transform: translateX(-50%) scaleX(1.06); opacity: .78; } }
@media (prefers-reduced-motion: reduce) { .hero-object::after { animation: none; } }

/* curve draw-on-scroll (BondingCurve): line traces itself, then fills + handle fade in */
.rcurve .rv-line-path { stroke-dasharray: 1; stroke-dashoffset: 1; }
.rsv-chart.drawn .rv-line-path { animation: rvDraw 1.5s cubic-bezier(.55,.06,.25,1) .2s forwards; }
@keyframes rvDraw { to { stroke-dashoffset: 0; } }
.rsv-chart .rv-fade { transition: opacity .9s ease .95s; }
.rsv-chart:not(.drawn) .rv-fade { opacity: 0; transition: none; }
@media (prefers-reduced-motion: reduce) { .rcurve .rv-line-path { stroke-dashoffset: 0; } .rsv-chart.drawn .rv-line-path { animation: none; } }

/* announcement banner (Circle-style) */
.hero-banner { position: relative; z-index: 1; display: flex; align-items: center; justify-content: space-between; gap: 20px;
  background: rgba(255,255,255,.82); backdrop-filter: blur(10px); border: 1px solid rgba(255,255,255,.9);
  border-radius: 18px; padding: 22px 26px; margin-bottom: clamp(40px, calc(6 * var(--vu)), 72px); box-shadow: var(--sh-soft); transition: transform .2s ease, box-shadow .2s ease; }
.hero-banner:hover { transform: translateY(-1px); box-shadow: var(--sh-card); }
.hb-text { color: var(--ink); font-size: 15px; font-weight: 460; letter-spacing: -0.01em; display: flex; align-items: center; gap: 12px; }
.hb-tag { flex-shrink: 0; font-size: 11px; font-weight: 650; letter-spacing: .06em; text-transform: uppercase; color: var(--violet); background: var(--violet-tint); border-radius: 999px; padding: 4px 10px; }
.hb-cta { flex-shrink: 0; display: inline-flex; align-items: center; gap: 6px; color: var(--violet); font-weight: 600; font-size: 14.5px; }
.hero-banner:hover .hb-cta svg { transform: translateX(3px); transition: transform .2s ease; }
@media (max-width: 640px) { .hb-cta span, .hb-text .hb-tag { } .hero-banner { padding: 13px 16px; } .hb-text { font-size: 13.5px; } }
.hero-in { display: grid; grid-template-columns: 1.08fr .92fr; gap: 40px; align-items: center; }
.hero-eyebrow { margin-bottom: 26px; }
.hero-h { font-size: clamp(50px, calc(7.1 * var(--vu)), 106px); line-height: .95; letter-spacing: -0.05em; font-weight: 660; }
.hero-h em { font-style: normal; }
.hero-h--one { font-size: clamp(38px, calc(5.2 * var(--vu)), 60px); }
.hero-h--one .grad-word { white-space: nowrap; }
.hero-sub { color: var(--ink-2); font-size: clamp(18px, calc(1.7 * var(--vu)), 22px); line-height: 1.42; font-weight: 420; max-width: 500px; margin-top: 28px; }
.hero-actions { display: flex; gap: 13px; margin-top: 34px; flex-wrap: wrap; align-items: center; }

.hero-object { position: relative; display: flex; align-items: center; justify-content: center; min-height: 460px; }
.hero-ring { position: absolute; width: 100%; max-width: 540px; aspect-ratio: 1; border-radius: 50%;
  border: 1.5px solid var(--line-2); animation: spin 60s linear infinite; }
.hero-ring::after { content: ""; position: absolute; inset: 9%; border-radius: 50%; border: 1px solid var(--line); }
@keyframes spin { to { transform: rotate(360deg); } }
.hero-halo { display: none; }
.hero-stack { position: relative; z-index: 2; width: min(390px, 80%); filter: drop-shadow(0 22px 28px rgba(28,18,54,.24)) drop-shadow(0 48px 64px rgba(28,18,54,.14)); animation: floaty 7s ease-in-out infinite; }
@keyframes floaty { 0%,100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-14px) rotate(1deg); } }

@media (max-width: 860px) {
  .hero { padding: 116px 0 48px; }
  .hero--stage { padding-bottom: 0; }
  .hero-in { grid-template-columns: 1fr; gap: 20px; }
  .hero-object { min-height: 320px; order: 2; }
  .hero-sub { max-width: none; }
}

/* ============================================================
   GLASS SURFACE — tinted, frosted card that reads against a
   gradient wash. Pairs with plain white cards for contrast.
   ============================================================ */
.glass { position: relative; background: linear-gradient(158deg, rgba(255,255,255,.94) 6%, rgba(216,197,253,.26) 62%, rgba(255,242,217,.3) 100%);
  backdrop-filter: blur(14px) saturate(1.15); -webkit-backdrop-filter: blur(14px) saturate(1.15);
  border: 1px solid rgba(255,255,255,.7);
  box-shadow: 0 1px 0 rgba(255,255,255,.9) inset, 0 24px 48px -28px rgba(60,31,120,.34), 0 0 0 1px rgba(124,77,222,.06); }
.glass::after { content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none;
  background: linear-gradient(180deg, rgba(255,255,255,.5), transparent 42%); }
.glass > * { position: relative; z-index: 1; }
/* film grain over real photography (not graphics) */
.netdec-banner::after, .fnd-mission-photo::after, .wild-feat::after, .wild-card::after { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; border-radius: inherit; opacity: .3; mix-blend-mode: overlay; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E"); background-size: 240px 240px; }
.netdec-cap, .fnd-honest-cap, .wild-play { z-index: 2; }

/* ============================================================
   WHY + RESERVE section washes — carry warmth on from Flipcash
   (soft symmetric belly, no hard dividers)
   ============================================================ */
#why { position: relative; background: #ffffff; }
#money { position: relative; background: linear-gradient(180deg, #ffffff 0%, #f4edfb 44%, #ffffff 100%); }
#rails { position: relative; background: #ffffff; }
#reserve { position: relative; }
#foundation { position: relative; background: linear-gradient(180deg, #ffffff 0%, #f4edfb 42%, #ffffff 100%); }
#network { position: relative; }

/* ============================================================
   MONETARY NETWORK — capability grid (Circle-style)
   ============================================================ */
.netcap-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-top: clamp(40px, calc(5 * var(--vu)), 60px); border-top: 1px solid var(--line); padding-top: clamp(36px, calc(4.4 * var(--vu)), 52px); }
.netcap { background: #fff;
  border: 1px solid var(--line); border-radius: var(--r); padding: 30px 28px 32px;
  box-shadow: var(--sh-card);
  transition: transform .3s cubic-bezier(.16,.8,.24,1), box-shadow .3s ease, border-color .3s ease; }
.netcap:hover { transform: translateY(-6px); box-shadow: var(--sh-lift); border-color: transparent; }
.netcap-ic { width: 50px; height: 50px; border-radius: 14px; display: grid; place-items: center; margin-bottom: 22px; background: rgba(255,255,255,.72); box-shadow: inset 0 0 0 1px rgba(124,77,222,.1); color: var(--ink); }
.netcap h4 { font-size: 18.5px; letter-spacing: -0.025em; }
.netcap p { color: var(--ink-2); font-size: 14.4px; line-height: 1.55; margin-top: 10px; }
.netcap-foot { margin-top: 16px; display: flex; align-items: center; justify-content: space-between; gap: 18px 28px; flex-wrap: wrap; padding: 22px 30px; border: 1px solid var(--line); border-radius: var(--r); box-shadow: var(--sh-soft); background: var(--w); transition: transform .3s ease, box-shadow .3s ease; }
.netcap-foot:hover { transform: translateY(-3px); box-shadow: var(--sh-card); }
.netcap-uses { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.netcap-uses .lbl { font-size: 13.5px; color: var(--ink-3); margin-right: 4px; }
.netcap-use { display: inline-flex; align-items: center; font-size: 13px; font-weight: 540; color: var(--ink); background: var(--paper); border: 1px solid var(--line-2); border-radius: 999px; padding: 7px 13px; }
.netcap-foot .txtlink { flex-shrink: 0; }
@media (max-width: 940px) { .netcap-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .netcap-grid { grid-template-columns: 1fr; } }

/* Better money — two labelled movements (value + movement) */
.bm-half { margin-top: clamp(44px, calc(5.5 * var(--vu)), 72px); }
.bm-kick { display: inline-flex; align-items: center; gap: 8px; font-family: var(--mono); font-size: 12.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--violet); font-weight: 600; }
.bm-half .sound { margin-top: 22px; }
.bm-lede { color: var(--ink-2); font-size: clamp(17px, calc(1.7 * var(--vu)), 20px); line-height: 1.5; margin-top: 16px; max-width: 62ch; }
.bm-lede b { color: var(--ink); font-weight: 600; }
.bm-half .netcap-grid { margin-top: clamp(28px, calc(3.4 * var(--vu)), 40px); }
.bm-divide { height: 1px; margin: clamp(52px, calc(6 * var(--vu)), 80px) 0 0; background: linear-gradient(90deg, transparent, rgba(124,77,222,.16) 20%, rgba(124,77,222,.16) 80%, transparent); }

/* ============================================================
   MEET MOONY — currency anchor (Circle/Apple-inspired)
   ============================================================ */
.meet { padding: clamp(88px, calc(10 * var(--vu)), 156px) 0 clamp(80px, calc(9 * var(--vu)), 132px); position: relative; background: linear-gradient(180deg, #f2ecfb 0%, #f8f4fc 42%, #ffffff 100%); overflow: hidden; }
.meet .wrap { position: relative; z-index: 1; }
.meet-stage { position: relative; margin: clamp(36px, calc(4.5 * var(--vu)), 60px) 0 0; display: grid; place-items: center; }
.meet-glow { position: absolute; width: min(880px, 100%); aspect-ratio: 1.72; z-index: 0; pointer-events: none;
  background: radial-gradient(50% 56% at 50% 44%, rgba(216,197,253,.5), rgba(224,122,79,.12) 54%, rgba(255,255,255,0) 74%); }
.meet-bills { position: relative; z-index: 1; width: min(600px, 84%); height: auto; display: block;
  filter: drop-shadow(0 36px 54px rgba(50,30,110,.24)) drop-shadow(0 12px 22px rgba(50,30,110,.14));
  animation: meetfloat 8s ease-in-out infinite; }
.meet-visual::after, .meet-stage::after { content: ""; position: absolute; left: 50%; bottom: -12px; z-index: 0; width: min(56%, 380px); height: 40px; border-radius: 50%; transform: translateX(-50%); background: radial-gradient(closest-side, rgba(40,22,84,.22), transparent 72%); filter: blur(6px); animation: meetfloorsync 8s ease-in-out infinite; }
@keyframes meetfloorsync { 0%,100% { transform: translateX(-50%) scaleX(1); opacity: 1; } 50% { transform: translateX(-50%) scaleX(1.07); opacity: .74; } }
@keyframes meetfloat { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-12px); } }
@media (prefers-reduced-motion: reduce) { .meet-bills { animation: none; } .meet-visual::after, .meet-stage::after { animation: none; }
  .hero-stack, .hero-ring { animation: none; }
  .rv-line-path { stroke-dasharray: none; stroke-dashoffset: 0; transition: none; }
  .rsv-chart svg path[fill^="url"] { opacity: 1; transition: none; }
  .wild-card, .net-chapters-flags .net-flag { opacity: 1; transform: none; transition: none; }
}
/* Experience digital cash — sound + open pillars below the anchor */
.meet-body { text-align: left; }
.meet-body .sound { margin-top: clamp(40px, calc(5 * var(--vu)), 68px); }
.sound-tag { display: inline-flex; align-items: center; gap: 8px; font-family: var(--mono); font-size: 12px; letter-spacing: .07em; text-transform: uppercase; color: var(--violet); margin-bottom: 14px; }
.sound-tag svg { color: var(--violet); }

/* two matched pillars (Sound + Open) sitting under the bills */
.meet-duo { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(30px, calc(4 * var(--vu)), 66px); margin-top: clamp(40px, calc(5 * var(--vu)), 68px); align-items: start; }
.mpil { display: flex; flex-direction: column; }
.mpil-card { min-height: 268px; margin-bottom: 30px; display: flex; flex-direction: column; background: #fff; border: 1px solid var(--line); border-radius: var(--r); box-shadow: var(--sh-card); overflow: hidden; }
.mpil-card--stat { justify-content: center; gap: 13px; padding: clamp(30px, calc(3 * var(--vu)), 40px); background: linear-gradient(158deg, #fff 8%, var(--violet-tint)); }
.mpil-card-kick { display: inline-flex; align-items: center; gap: 8px; font-family: var(--mono); font-size: 11.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--violet); }
.mpil-card-kick svg { color: var(--violet); }
.mpil-stat { font-size: clamp(44px, calc(5 * var(--vu)), 64px); line-height: .98; letter-spacing: -0.045em; font-weight: 620; color: var(--ink); }
.mpil-stat-sub { color: var(--ink-2); font-size: 15px; line-height: 1.5; max-width: 340px; }
.mpil-card--code { padding: 0; }
.mpil-card--code .om2-code-body { font-size: 12.5px; padding: 20px 18px 22px; }
.mpil-tag { display: inline-flex; align-items: center; gap: 8px; font-family: var(--mono); font-size: 12px; letter-spacing: .07em; text-transform: uppercase; color: var(--violet); margin-bottom: 12px; }
.mpil-tag svg { color: var(--violet); }
.mpil-h { font-size: clamp(25px, calc(2.7 * var(--vu)), 34px); letter-spacing: -0.035em; line-height: 1.07; }
.mpil-p { color: var(--ink-2); font-size: 16.5px; line-height: 1.62; margin-top: 15px; }
.mpil-link { margin-top: 20px; align-self: flex-start; }
@media (max-width: 860px) { .meet-duo { grid-template-columns: 1fr; gap: 46px; } }

/* ============================================================
   PROPS (why) — hairline spec grid
   ============================================================ */
/* Sound money — featured (fixed supply) */
.sound { display: grid; grid-template-columns: 0.85fr 1.15fr; gap: clamp(32px, calc(5 * var(--vu)), 72px); align-items: center; margin-top: clamp(56px, calc(7 * var(--vu)), 96px); padding: clamp(36px, calc(4 * var(--vu)), 56px); background: #ffffff; border: 1px solid rgba(124,77,222,.1); border-radius: clamp(22px, calc(2.6 * var(--vu)), 32px); box-shadow: 0 30px 70px -32px rgba(60,31,120,.24); }
.sound-fig { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; }
.sound-kick { display: inline-flex; align-items: center; gap: 8px; font-family: var(--mono); font-size: 12px; letter-spacing: .07em; text-transform: uppercase; color: var(--violet); }
.sound-kick svg { color: var(--violet); }
.sound-num { font-size: clamp(40px, calc(6.2 * var(--vu)), 72px); font-weight: 600; letter-spacing: -0.045em; line-height: .95; font-variant-numeric: tabular-nums; margin-top: 4px; background: var(--grad-vivid); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: transparent; }
.sound-num-sub { font-size: 14px; line-height: 1.55; color: var(--ink-3); max-width: 30ch; }
.sound-h { font-size: clamp(24px, calc(2.9 * var(--vu)), 34px); letter-spacing: -0.03em; line-height: 1.1; }
.sound-p { color: var(--ink-2); font-size: 16px; line-height: 1.62; margin-top: 18px; max-width: 52ch; }
.sound-p b { color: var(--ink); font-weight: 600; }
@media (max-width: 860px) { .sound { grid-template-columns: 1fr; gap: 28px; } }

.props { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; margin-top: 64px; }
.props--3 { grid-template-columns: repeat(3, 1fr); margin-top: clamp(18px, calc(2.2 * var(--vu)), 28px); }
.prop { background: var(--w); padding: 34px 30px 36px; position: relative; border: 1px solid var(--line); border-radius: var(--r); box-shadow: var(--sh-soft); transition: transform .3s cubic-bezier(.16,.8,.24,1), box-shadow .3s ease, border-color .3s ease; }
.prop:hover { transform: translateY(-6px); box-shadow: var(--sh-lift); border-color: transparent; }
.prop::before { display: none; }
.prop-n { position: absolute; top: 30px; right: 30px; font-family: var(--mono); font-size: 12px; color: var(--ink-3); }
.prop-ic { width: 54px; height: 54px; border-radius: 15px; display: grid; place-items: center; margin-bottom: 24px; }
.prop:nth-child(1) .prop-ic { background: rgba(24,18,40,.05); color: var(--ink) !important; }
.prop:nth-child(2) .prop-ic { background: rgba(24,18,40,.05); color: var(--ink) !important; }
.prop:nth-child(3) .prop-ic { background: rgba(24,18,40,.05); color: var(--ink) !important; }
.prop:nth-child(4) .prop-ic { background: rgba(24,18,40,.05); color: var(--ink) !important; }
.prop h3 { font-size: 18.5px; letter-spacing: -0.025em; }
.prop p { color: var(--ink-2); font-size: 14.4px; line-height: 1.55; margin-top: 10px; }
@media (max-width: 860px) { .props { grid-template-columns: 1fr 1fr; } .props--3 { grid-template-columns: 1fr 1fr; } }

/* Open by design — public-good statement */
.om2 { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.02fr); gap: 80px; align-items: stretch; margin-top: 76px; }
.om2-art { position: relative; display: flex; align-items: stretch; }
/* open-source contract card (no image) */
.om2-photo { position: relative; z-index: 1; display: block; width: 100%; height: 100%; max-width: none; margin: 0; border-radius: var(--r-l); overflow: hidden; box-shadow: 0 50px 100px -50px rgba(60,31,120,.55), 0 8px 24px -12px rgba(60,31,120,.16); background: #efe7ff; }
.om2-photo img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: inherit; }
.om2-photo-cap { position: absolute; left: 14px; bottom: 14px; z-index: 2; display: inline-flex; align-items: center; gap: 8px; font-size: 12.5px; font-weight: 500; color: #fff; background: rgba(24,16,44,.5); backdrop-filter: blur(8px); border-radius: 999px; padding: 8px 13px; }
.om2-photo-dot { width: 7px; height: 7px; border-radius: 50%; background: #4fd18a; box-shadow: 0 0 0 3px rgba(79,209,138,.28); }
.om2-code { position: relative; z-index: 1; width: 100%; max-width: 430px; background: #fff; border: 1px solid var(--line); border-radius: var(--r); box-shadow: var(--sh-card); overflow: hidden; }
.om2-code-bar { display: flex; align-items: center; gap: 10px; padding: 13px 16px; border-bottom: 1px solid var(--line); }
.om2-dots { display: flex; gap: 6px; }
.om2-dots i { width: 9px; height: 9px; border-radius: 50%; background: var(--line-2); }
.om2-file { font-family: var(--mono); font-size: 12.5px; color: var(--ink-3); margin-left: 4px; }
.om2-lic { margin-left: auto; font-family: var(--mono); font-size: 10.5px; letter-spacing: .04em; color: var(--violet); background: var(--violet-tint); padding: 3px 8px; border-radius: 6px; }
.om2-code-body { margin: 0; padding: 22px 20px 24px; font-family: var(--mono); font-size: 13px; line-height: 1.85; color: var(--ink); white-space: pre; overflow-x: auto; }
.om2-code-body .cc { color: var(--ink-3); }
.om2-code-body .ck { color: var(--violet); }
.om2-code-body .cv { color: #c47d1e; }
.om2-code-body .cn { color: #1f8a5b; }
.om2-code-body .cf { color: #2a6fdb; }
.om2-code-body .cs { color: #c47d1e; }
.om2-kicker { display: inline-flex; align-items: center; gap: 8px; font-family: var(--mono); font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--violet); }
.om2-kicker svg { color: var(--violet); }
.om2-h { font-size: clamp(28px, calc(3.4 * var(--vu)), 42px); letter-spacing: -0.032em; line-height: 1.07; margin-top: 18px; }
.om2-p { color: var(--ink-2); font-size: 16.5px; line-height: 1.6; margin-top: 20px; max-width: 470px; }
.om2-tenets { display: grid; gap: 30px; margin-top: 40px; }
.om2-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 42px; }
.om2-tenet { display: flex; align-items: flex-start; gap: 16px; }
.om2-tenet-txt { flex: 1; }
.om2-tic { flex: none; width: 42px; height: 42px; border-radius: 12px; display: grid; place-items: center; }
.om2-tic--v { background: rgba(24,18,40,.05); color: var(--ink); }
.om2-tic--b { background: rgba(24,18,40,.05); color: var(--ink); }
.om2-tic--g { background: rgba(24,18,40,.05); color: var(--ink); }
.om2-tenet-txt b { display: block; font-size: 19px; letter-spacing: -0.02em; color: var(--ink); }
.om2-tenet-txt span { display: block; color: var(--ink-2); font-size: 16px; line-height: 1.58; margin-top: 8px; max-width: 460px; }
@media (max-width: 860px) { .om2 { grid-template-columns: 1fr; gap: 40px; } .om2-art { order: -1; } }

/* ============================================================
   PRODUCT
   ============================================================ */
/* ============================================================
   PRODUCT — lead showcase (featured opener)
   ============================================================ */
.product-lead { padding: clamp(88px, calc(10 * var(--vu)), 156px) 0; background: linear-gradient(180deg, #ffffff 0%, #f3edfc 24%, #efe7fa 52%, #f6f1fd 76%, #ffffff 100%); }
.ps-tabs { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-bottom: clamp(22px, calc(2.6 * var(--vu)), 34px); }
.ps-tab { appearance: none; border: 1px solid transparent; background: #f1ecfb; color: var(--ink-2); font: inherit; font-size: 13px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; padding: 15px 26px; border-radius: 14px; cursor: pointer; transition: background .25s ease, color .25s ease, box-shadow .25s ease; }
.ps-tab:hover { background: #e9e1f8; color: var(--ink); }
.ps-tab.is-on { background: var(--violet, #6b3fd4); color: #fff; box-shadow: 0 10px 24px -10px rgba(90,45,190,.6); }
.product-showcase { display: grid; grid-template-columns: minmax(0,.82fr) minmax(0,1fr); gap: 36px 56px; align-items: center;
  background: linear-gradient(140deg, #f2ebfe 0%, #f7f1fb 44%, #fdf3ea 100%);
  border: 1px solid rgba(124,77,222,.12); border-radius: 32px; padding: 44px 56px;
  box-shadow: var(--sh-card); position: relative; animation: psSwap .5s cubic-bezier(.16,1,.3,1); min-height: 580px; }
@keyframes psSwap { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
.ps-copy .pill { background: rgba(255,255,255,.72); border-color: rgba(124,77,222,.16); }
.ps-h { font-size: 52px; margin-top: 22px; letter-spacing: -0.04em; }
.ps-lede { color: var(--ink-2); font-size: 19px; line-height: 1.42; margin-top: 18px; max-width: 440px; }
.ps-copy .badges { margin-top: 32px; }
.ps-phone-slot { display: none; }
.ps-explore { display: inline-flex; align-items: center; gap: 7px; margin-top: 22px; font-weight: 560; }
.ps-start { display: flex; flex-wrap: wrap; gap: 10px 22px; margin-top: 22px; }
.ps-start span { display: inline-flex; align-items: center; gap: 7px; font-size: 13.5px; font-weight: 500; color: var(--ink-2); }
.ps-start svg { color: var(--violet); }
.ps-visual { position: relative; display: flex; justify-content: center; align-items: center; align-self: stretch; order: -1; min-height: 340px; isolation: isolate; }
.ps-phone { position: relative; display: flex; justify-content: center; will-change: transform; transform: translateZ(0); animation: psfloat 8s ease-in-out infinite; }
@keyframes psfloat { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }
.ps-visual::after { content: ""; position: absolute; left: 50%; bottom: 4px; z-index: 1; width: min(52%, 250px); height: 34px; border-radius: 50%; transform: translateX(-50%); background: radial-gradient(closest-side, rgba(40,22,84,.24), transparent 72%); filter: blur(5px); animation: psfloorsync 8s ease-in-out infinite; }
@keyframes psfloorsync { 0%,100% { transform: translateX(-50%) scaleX(1); opacity: 1; } 50% { transform: translateX(-50%) scaleX(1.05); opacity: .8; } }
@media (prefers-reduced-motion: reduce) { .ps-phone, .ps-visual::after { animation: none; } }
.ps-halo { position: absolute; width: 72%; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle, rgba(179,150,247,.7) 0%, rgba(247,206,164,.4) 45%, transparent 72%); filter: blur(30px); opacity: .8; z-index: 0; }
.ps-phone img { position: relative; z-index: 2; width: auto; height: auto; max-height: 540px; max-width: 100%; filter: drop-shadow(0 44px 84px rgba(60,31,120,.36)); transform: translateZ(0); backface-visibility: hidden; }

/* apps cluster visual */
.ps-appcards { position: relative; z-index: 2; width: min(400px, 96%); height: 360px; }
.pac { position: absolute; background: #fff; border: 1px solid rgba(80,39,146,.1); border-radius: 20px; box-shadow: 0 24px 54px -22px rgba(52,26,104,.5); display: flex; flex-direction: column; transition: transform .35s cubic-bezier(.16,.8,.24,1), box-shadow .35s ease; }
.ps-visual:hover .pac { transform: translateY(-4px); box-shadow: 0 32px 64px -24px rgba(52,26,104,.56); }
.pac-ic { width: 42px; height: 42px; border-radius: 12px; display: grid; place-items: center; background: #ece2ff; color: var(--violet, #6b3fd4); margin-bottom: 12px; }
.pac b { font-size: 16px; letter-spacing: -0.02em; }
.pac-sub { font-size: 12.5px; color: var(--ink-3); margin-top: 3px; }
.pac--img { padding: 0; overflow: hidden; justify-content: flex-end; }
.pac--img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.pac-tag { position: relative; z-index: 2; margin: 12px; align-self: flex-start; font-size: 11.5px; font-weight: 600; color: #fff; background: rgba(20,10,40,.5); backdrop-filter: blur(6px); padding: 5px 11px; border-radius: 999px; }
.pac--game { top: 4%; left: 3%; width: 200px; padding: 18px 20px; background: linear-gradient(155deg, #f6f1ff, #fff); }
.pac--shop { top: 30%; right: 1%; width: 178px; padding: 18px 20px; }
.pac--shop .pac-ic { background: #fbe7da; color: #c96a3e; }
.pac--tool { bottom: 4%; left: 16%; width: 186px; padding: 18px 20px; }
.pac--tool .pac-ic { background: #dcece4; color: #1f8a5b; }

/* agentic flow visual */
.ps-flowcards { position: relative; z-index: 2; width: min(340px, 96%); display: flex; flex-direction: column; gap: 18px; }
.pfc--coyote { position: relative; inset: auto; width: 100%; height: 156px; border-radius: 20px; box-shadow: 0 24px 54px -22px rgba(52,26,104,.5); }
.pfc { background: #fff; border: 1px solid rgba(80,39,146,.1); border-radius: 20px; box-shadow: 0 22px 50px -22px rgba(52,26,104,.46); padding: 20px 22px; display: flex; flex-direction: column; }
.pfc--stream { transform: translateX(24px); }
.pfc-kick { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 620; letter-spacing: .02em; text-transform: uppercase; color: var(--violet, #6b3fd4); }
.pfc-amt { font-size: 30px; font-weight: 680; letter-spacing: -0.04em; margin-top: 10px; }
.pfc-amt small { font-size: 15px; font-weight: 500; color: var(--ink-3); letter-spacing: 0; margin-left: 2px; }
.pfc-bar { display: block; height: 6px; border-radius: 999px; background: #ece2ff; margin-top: 14px; overflow: hidden; }
.pfc-bar i { display: block; height: 100%; width: 40%; border-radius: 999px; background: linear-gradient(90deg, #8a5cf0, #f0a97e); animation: pfcFill 2.4s ease-in-out infinite; }
@keyframes pfcFill { 0% { width: 12%; } 50% { width: 82%; } 100% { width: 12%; } }
.pfc-sub { font-size: 12.5px; color: var(--ink-3); margin-top: 12px; }
.ps-feats { display: flex; flex-direction: column; gap: 20px; margin-top: 30px; }
.ps-feat { display: grid; grid-template-columns: 26px 1fr; gap: 14px; align-items: start; }
.ps-feat-ic { color: var(--violet); margin: 2px 0 0; }
.ps-feat-tx { font-size: 16.5px; line-height: 1.5; color: var(--ink-2); }
.ps-feat-tx b { color: var(--ink); font-weight: 600; letter-spacing: -0.01em; }
@media (max-width: 1080px) {
  .product-showcase { padding: 40px; min-height: 0; }
  .ps-h { font-size: 40px; }
}
@media (max-width: 860px) {
  .product-showcase { grid-template-columns: 1fr; height: auto; min-height: 0; padding: 32px; }
  .ps-h { font-size: 34px; }
  .ps-lede { font-size: 17px; }
  .ps-visual { order: -1; min-height: 300px; }
  .ps-feats { grid-template-columns: 1fr; gap: 20px; }
}

/* ============================================================
   RESERVE (dark, structural)
   ============================================================ */
.reserve-panel { border-radius: var(--r-l); padding: clamp(34px, calc(4.2 * var(--vu)), 60px); position: relative; overflow: hidden; box-shadow: var(--sh-panel); margin-top: 52px; }
.reserve-panel::before { content: ""; position: absolute; top: -30%; right: -12%; width: 640px; height: 640px; border-radius: 50%; background: radial-gradient(circle, rgba(124,77,222,.4), transparent 62%); pointer-events: none; }
.reserve-panel > * { position: relative; z-index: 1; }
.reserve { position: relative; background: #ffffff; }
.reserve .shead { margin-bottom: 0; }
/* soft wash: 03 sits directly on the page like every other section */
.reserve--framed { background: linear-gradient(180deg, #ffffff 0%, #ffffff 20%, #f3edfc 46%, #eee6fa 72%, #ffffff 100%); }
/* frame removed — hairline document border retired for section consistency */
.reserve--framed > .wrap { position: relative; }

/* ── the loop: 3 airy steps, spec-sheet stepper ── */
.rloop { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(28px, calc(4 * var(--vu)), 64px); margin-top: clamp(56px, calc(6 * var(--vu)), 84px); }
.rloop-step { position: relative; padding-top: clamp(18px, calc(2 * var(--vu)), 24px); border-top: 1px solid var(--line); }
.rloop-top { display: flex; align-items: center; justify-content: space-between; }
.rloop-ic { color: var(--ink-3); display: grid; place-items: center; }
.rloop-n { display: block; font-family: var(--mono); font-size: clamp(26px, calc(3.1 * var(--vu)), 36px); font-weight: 500; color: var(--violet); letter-spacing: -0.02em; line-height: 1; }
.rloop-step h4 { font-size: 20px; letter-spacing: -0.028em; margin-top: clamp(20px, calc(2.4 * var(--vu)), 28px); }
.rloop-step p { color: var(--ink-2); font-size: 15px; line-height: 1.6; margin-top: 10px; max-width: 32ch; }

/* ── liquidity: the reserve-based liquidity beat ── */
.rliq { display: grid; grid-template-columns: minmax(0,1.04fr) minmax(0,.96fr); gap: clamp(44px, calc(6 * var(--vu)), 104px); align-items: center; margin-top: clamp(72px, calc(9 * var(--vu)), 128px); }
.rliq-tx h3 { font-size: clamp(28px, calc(3.4 * var(--vu)), 42px); letter-spacing: -0.032em; line-height: 1.07; margin-top: 16px; }
.rliq-tx > p { color: var(--ink-2); font-size: 16.5px; line-height: 1.62; margin-top: 20px; max-width: 46ch; }
.rliq-list { list-style: none; padding: 0; display: flex; flex-direction: column; gap: 20px; margin-top: 32px; }
.rliq-item { display: flex; gap: 15px; align-items: flex-start; }
.rliq-chk { flex: none; width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; margin-top: 1px; background: var(--violet-bg, rgba(124,77,222,.11)); color: var(--violet); }
.rliq-item p { color: var(--ink-2); font-size: 15.5px; line-height: 1.56; max-width: 42ch; }
.rliq-item strong { color: var(--ink); font-weight: 600; }
/* visual: the USDF reserve-asset card */
.usdfcard { position: relative; overflow: hidden; color: #fff; background: linear-gradient(160deg, #3143c0 0%, #232e93 100%); border: 1px solid rgba(255,255,255,.16); border-radius: clamp(22px, calc(2.6 * var(--vu)), 32px); padding: clamp(32px, calc(3.8 * var(--vu)), 48px) clamp(28px, calc(3.4 * var(--vu)), 44px); box-shadow: 0 34px 64px -34px rgba(0,52,190,.7), 0 2px 6px -4px rgba(0,40,140,.35); }
.usdfcard::before { content: ""; position: absolute; top: -40%; right: -20%; width: 380px; height: 380px; border-radius: 50%; background: radial-gradient(circle, rgba(255,255,255,.22), transparent 66%); pointer-events: none; }
.usdfcard > * { position: relative; z-index: 1; }
.usdfcard-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.usdfcard-lockup { display: flex; align-items: center; gap: 20px; color: #fff; }
.usdfcard-lockup .usdfcard-x { font-size: 17px; font-weight: 400; opacity: .5; }
.usdfcard-fc { height: 38px; width: auto; }
.usdfcard-id { display: flex; flex-direction: column; gap: 3px; margin-top: 0; }
.usdfcard-tk { font-size: clamp(36px, calc(4.6 * var(--vu)), 52px); letter-spacing: -0.02em; font-weight: 600; color: #fff; line-height: 1; }
.usdfcard-sub { font-size: 13.5px; color: rgba(255,255,255,.72); }
.usdfcard-desc { font-size: 15px; line-height: 1.55; color: rgba(255,255,255,.84); margin-top: clamp(14px, calc(1.8 * var(--vu)), 18px); }
.usdfcard-desc strong { color: #fff; font-weight: 600; }
.usdfcard-flow { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-top: clamp(16px, calc(2 * var(--vu)), 22px); }
.usdfcard-node { font-family: var(--mono); font-size: 12px; letter-spacing: .01em; color: #fff; background: rgba(255,255,255,.15); border: 1px solid rgba(255,255,255,.22); border-radius: 999px; padding: 8px 14px; }
.usdfcard-node.v { color: #232e93; background: #fff; border-color: transparent; font-weight: 600; }
.usdfcard-rel { font-family: var(--mono); font-size: 10.5px; letter-spacing: .08em; text-transform: uppercase; color: rgba(255,255,255,.62); }
.usdfcard-foot { display: flex; justify-content: space-between; align-items: center; gap: 12px 18px; flex-wrap: wrap; margin-top: clamp(16px, calc(2 * var(--vu)), 22px); padding-top: clamp(14px, calc(2.2 * var(--vu)), 24px); border-top: 1px solid rgba(255,255,255,.18); width: 100%; }
.usdfcard-foot-l { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; color: rgba(255,255,255,.82); }
.usdfcard-foot svg { color: #fff; }
.usdfcard-cta { display: inline-flex; align-items: center; gap: 7px; margin-top: 0; font-size: 14px; font-weight: 600; color: #fff; text-decoration: none; transition: gap .18s ease, opacity .18s ease; }
.usdfcard-cta svg { transition: transform .18s ease; }
.usdfcard-cta:hover { color: #fff; opacity: .82; gap: 10px; }
.usdfcard-cta:hover svg { transform: translate(2px, -2px); }

.rliq--lead { margin-top: clamp(48px, calc(6 * var(--vu)), 82px); }
.rcurve--after { margin-top: clamp(72px, calc(9 * var(--vu)), 128px); }
/* ── the curve: interactive centerpiece ── */
.rcurve { position: relative; display: block; margin-top: clamp(48px, calc(6 * var(--vu)), 82px); padding: clamp(30px, calc(3.6 * var(--vu)), 52px); background: #fff; border: 1px solid var(--line); border-radius: clamp(20px, calc(2.2 * var(--vu)), 30px); box-shadow: var(--sh-card); }
/* dark-panel overrides (retired — panel is white again) */
.rcurve .rsv-kick2 { color: var(--violet); }
.rcurve h3, .rcurve .rloop-step h4, .rcurve-fact .v { color: var(--ink); }
.rcurve .rloop-step p, .rcurve-head p { color: var(--ink-2); }
.rcurve .rcurve-steps .rloop-step { border-top-color: rgba(80,39,148,.18); }
.rcurve .rcurve-facts2 { color: var(--ink-2); }
.rcurve .rcurve-facts2 b { color: var(--ink); }
.rcurve .rcurve-read { border-left-color: rgba(124,77,222,.14); }
.rcurve .rcurve-metric .k, .rcurve .rcurve-metric .sub, .rcurve .rcurve-note { color: var(--ink-3); }
.rcurve .rcurve-metric .v { color: var(--ink); }
.rcurve .rcurve-metric .chip { color: var(--violet); background: rgba(124,77,222,.11); }
.rcurve .rv-grid { stroke: rgba(23,17,31,.07); }
.rcurve .rv-now { stroke: rgba(124,77,222,.32); }
.rcurve .rv-ylab { color: var(--ink-3); }
.rcurve .rv-hdot { border-color: #fff; box-shadow: 0 3px 10px rgba(90,46,196,.45); }
.rcurve .rv-drag { color: var(--violet); background: #fff; border-color: rgba(124,77,222,.3); }
.rcurve { overflow: hidden; }
.rcurve > * { position: relative; z-index: 1; }
.rsv-kick2 { font-family: var(--mono); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--violet); }
.rcurve-tx { display: block; }
.rcurve-head { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: clamp(24px, calc(4 * var(--vu)), 72px); align-items: end; }
.rcurve-head h3 { font-size: clamp(28px, calc(3.4 * var(--vu)), 42px); letter-spacing: -0.032em; line-height: 1.07; margin-top: 16px; }
.rcurve-head p { color: var(--ink-2); font-size: 16.5px; line-height: 1.62; max-width: 50ch; }
.rcurve-facts { display: flex; gap: clamp(28px,calc(4 * var(--vu)),56px); margin-top: clamp(24px,calc(2.8 * var(--vu)),34px); padding-top: clamp(20px,calc(2.4 * var(--vu)),28px); border-top: 1px solid rgba(124,77,222,.12); }
.rcurve-fact { display: flex; flex-direction: column; gap: 4px; }
.rcurve-fact .v { font-size: clamp(26px,calc(3 * var(--vu)),34px); font-weight: 600; letter-spacing: -0.03em; }
.rcurve-fact .k { font-size: 12.5px; color: var(--ink-3); text-transform: uppercase; letter-spacing: .06em; }
.rcurve-viz { margin-top: 0; }
.rcurve-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(20px, calc(3 * var(--vu)), 44px); padding-bottom: clamp(28px, calc(3.4 * var(--vu)), 44px); margin-bottom: clamp(28px, calc(3.4 * var(--vu)), 44px); border-bottom: 1px solid rgba(80,39,148,.14); }
.rcurve-steps .rloop-step { padding-top: 16px; border-top: 1px solid rgba(80,39,148,.18); }
.rcurve-steps .rloop-step h4 { font-size: 17.5px; margin-top: clamp(14px, calc(1.8 * var(--vu)), 20px); }
.rcurve-steps .rloop-step p { font-size: 13.5px; margin-top: 8px; max-width: none; }
.rcurve-vhead { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; flex-wrap: wrap; margin-bottom: clamp(18px, calc(2.2 * var(--vu)), 26px); }
.rcurve-vhead h3 { font-size: clamp(23px, calc(2.7 * var(--vu)), 32px); letter-spacing: -0.03em; line-height: 1.08; margin-top: 8px; }
.rcurve-facts2 { font-family: var(--mono); font-size: 12.5px; color: var(--ink-2); letter-spacing: .01em; }
.rcurve-facts2 b { color: var(--ink); font-weight: 600; }
@media (max-width: 720px) { .rcurve-steps { grid-template-columns: 1fr; gap: 0; } .rcurve-steps .rloop-step { padding: 16px 0 4px; } }

/* interactive live block: chart + readouts */
.rcurve-live { display: grid; grid-template-columns: minmax(0,1fr) clamp(220px, calc(22 * var(--vu)), 288px); gap: clamp(28px, calc(3.6 * var(--vu)), 56px); align-items: stretch; }
@media (max-width: 820px) {
  .rcurve-live { grid-template-columns: 1fr; gap: 30px; }
  .rcurve-read { border-left: none; padding-left: 0; padding-top: 26px; border-top: 1px solid rgba(124,77,222,.14); }
}
.rcurve-read { display: flex; flex-direction: column; justify-content: center; gap: clamp(20px, calc(2.4 * var(--vu)), 30px); border-left: 1px solid rgba(124,77,222,.14); padding-left: clamp(24px, calc(3 * var(--vu)), 40px); }
.rcurve-metric { display: flex; flex-direction: column; gap: 8px; }
.rcurve-metric .k { font-size: 14px; color: var(--ink-3); letter-spacing: -0.01em; }
.rcurve-metric .v { font-size: clamp(40px, calc(5 * var(--vu)), 58px); font-weight: 600; letter-spacing: -0.04em; line-height: 1; color: var(--ink); font-variant-numeric: tabular-nums; overflow-wrap: normal; min-width: 0; }
.rcurve-metric { min-width: 0; }
.rcurve-metric .chip { align-self: flex-start; margin-top: 4px; font-size: 12.5px; font-weight: 600; color: var(--violet); background: var(--violet-bg, rgba(124,77,222,.11)); border-radius: 999px; padding: 5px 11px; }
.rcurve-note { font-size: 13px; line-height: 1.55; color: var(--ink-3); max-width: 30ch; }
.rcurve-metric .sub { font-size: 12px; line-height: 1.4; color: var(--ink-3); max-width: 26ch; }

.rcurve-metric--r .v { font-size: clamp(30px, calc(3.4 * var(--vu)), 40px); }
.rvs { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 10px 14px; margin-top: clamp(24px, calc(3 * var(--vu)), 40px); text-align: center; }
.rvs-lead { font-size: 14.5px; font-weight: 600; letter-spacing: -0.01em; color: var(--ink); }
.rvs-chips { display: inline-flex; flex-wrap: wrap; gap: 8px; }
.rvs-chip { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 560; color: var(--violet); background: rgba(124,77,222,.09); border: 1px solid rgba(124,77,222,.16); border-radius: 999px; padding: 6px 13px; }
.rvs-chip svg { color: var(--violet); }
.rvs-tail { font-size: 14px; color: var(--ink-2); }
@media (max-width: 640px) { .rvs-tail { display: block; width: 100%; } }

.rsv-chart { position: relative; min-height: 244px; touch-action: pan-y; cursor: grab; }
.rsv-chart:active { cursor: grabbing; }
.rsv-chart svg { width: 100%; height: 100%; display: block; overflow: visible; }
.rv-grid { stroke: rgba(23,17,31,.07); stroke-width: 1; }
.rv-line-path { fill: none; stroke: url(#rvLineV); stroke-width: 3; stroke-linecap: round; stroke-dasharray: 1; stroke-dashoffset: 1; }
.rsv-chart.drawn .rv-line-path { stroke-dashoffset: 0; transition: stroke-dashoffset 1.3s cubic-bezier(.45,0,.15,1); }
.rsv-chart svg path[fill^="url"] { opacity: 0; transition: opacity .7s ease .3s; }
.rsv-chart.drawn svg path[fill^="url"] { opacity: 1; }
.rv-now { stroke: rgba(124,77,222,.32); stroke-width: 1; stroke-dasharray: 3 3; }
.rv-dot { fill: var(--violet); }
.rv-halo { fill: rgba(124,77,222,.16); }
.rv-hdot { position: absolute; width: 15px; height: 15px; border-radius: 50%; background: var(--violet); border: 3px solid #fff; box-shadow: 0 3px 10px rgba(90,46,196,.45); transform: translate(-50%,-50%); pointer-events: none; z-index: 3; }
.rv-ylab { position: absolute; left: 0; transform: translateY(-50%); font-family: var(--mono); font-size: 10.5px; color: var(--ink-3); }
.rv-xlab { display: flex; justify-content: space-between; font-family: var(--mono); font-size: 11px; color: var(--ink-3); margin-top: 12px; }
.rv-drag { position: absolute; transform: translate(-50%, -190%); font-family: var(--mono); font-size: 11px; letter-spacing: .06em; color: var(--violet); background: #fff; border: 1px solid rgba(124,77,222,.2); border-radius: 999px; padding: 5px 12px; box-shadow: 0 10px 24px -14px rgba(60,31,120,.5); pointer-events: none; white-space: nowrap; transition: opacity .4s ease; animation: dragNudge 1.8s ease-in-out infinite; }
.rv-drag.gone { opacity: 0; }
@keyframes dragNudge { 0%,100% { margin-left: -4px; } 50% { margin-left: 4px; } }
/* light variant (on paper) */
.rsv-chart.light { min-height: clamp(320px, calc(34 * var(--vu)), 440px); cursor: grab; touch-action: none; }
.rsv-chart.light:active { cursor: grabbing; }
.rsv-chart.light .rv-grid { stroke: rgba(23,17,31,.07); }
.rsv-chart.light .rv-now { stroke: rgba(124,77,222,.28); }
.rsv-chart.light .rv-dot { fill: var(--violet); }
.rsv-chart.light .rv-ylab { color: var(--ink-3); }

/* ── proof block: verifiable trust properties, color-coded ── */
.rproof { margin-top: clamp(64px, calc(8 * var(--vu)), 112px); }
.rproof { margin-top: clamp(44px, calc(5.5 * var(--vu)), 76px); padding-top: clamp(28px, calc(3 * var(--vu)), 40px); border-top: 1px solid rgba(124,77,222,.12); }
.rproof-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(22px, calc(2.6 * var(--vu)), 40px); }
.rproof-item { display: flex; flex-direction: row; align-items: flex-start; gap: 13px; }
.rproof-ic { flex: none; width: 38px; height: 38px; border-radius: 11px; display: grid; place-items: center; background: rgba(23,17,31,.05); color: var(--ink); }
.rproof-tx { display: flex; flex-direction: column; }
.rproof-item h4 { font-size: 15.5px; letter-spacing: -0.015em; }
.rproof-item p { color: var(--ink-2); font-size: 13px; line-height: 1.5; margin-top: 5px; }
@media (max-width: 940px) { .rproof-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .rproof-grid { grid-template-columns: 1fr; } }
@media (max-width: 940px) { .rloop { grid-template-columns: 1fr; gap: 32px; } .rloop-step:not(:last-child)::after { display: none; } .rcurve { grid-template-columns: 1fr; gap: 44px; } .rliq { grid-template-columns: 1fr; gap: 40px; } .rliq-viz { order: 2; } }
@media (max-width: 720px) { .rproof-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 620px) { .rcurve-facts { gap: 28px; } }

/* ============================================================
   ECONOMY
   ============================================================ */
.eco-apps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-top: 56px; }

/* two-door hub */
.econ-flip { display: grid; grid-template-columns: 0.9fr 1.1fr; align-items: end; gap: 0 40px; margin-top: 56px; padding: clamp(30px, calc(3.4 * var(--vu)), 48px) clamp(28px, calc(3.4 * var(--vu)), 52px) 0; border: 1px solid rgba(124,77,222,.14); border-radius: 26px; background: linear-gradient(120deg, #f4eefd 0%, #fbf4ee 100%); box-shadow: var(--sh-card); overflow: hidden; }
.econ-flip .pill { background: rgba(255,255,255,.78); border-color: rgba(124,77,222,.16); }
.econ-flip-l { padding-bottom: clamp(36px, calc(4.2 * var(--vu)), 58px); align-self: center; }
.econ-flip-h { font-size: clamp(28px, calc(3 * var(--vu)), 40px); letter-spacing: -0.035em; margin-top: 20px; }
.econ-flip-p { font-size: 16px; line-height: 1.5; color: var(--ink-2); margin-top: 14px; max-width: 42ch; }
.econ-flip-feats { display: flex; flex-direction: column; gap: 14px; margin-top: 22px; }
.econ-flip-feats .ps-feat { display: grid; grid-template-columns: 24px 1fr; gap: 12px; align-items: start; }
.econ-flip-feats .ps-feat-tx { font-size: 14.5px; line-height: 1.5; }
.econ-flip-badges { margin-top: 26px; }
.econ-tri { position: relative; width: 100%; height: 500px; overflow: hidden; margin: 0 auto; align-self: end; }
.econ-tri::before { content: ""; position: absolute; z-index: 0; width: 860px; height: 860px; right: -60px; bottom: -210px; border-radius: 50%; background: repeating-radial-gradient(circle at center, transparent 0 46px, rgba(124,77,222,.08) 46px 47px); -webkit-mask-image: radial-gradient(circle at center, #000 56%, transparent 72%); mask-image: radial-gradient(circle at center, #000 56%, transparent 72%); pointer-events: none; }
.econ-tri-solo { position: absolute; z-index: 1; right: -3%; top: 18px; width: 452px; max-width: 108%; display: block; filter: drop-shadow(0 40px 74px rgba(52,26,104,.44)); }
@media (max-width: 860px) { .econ-flip { grid-template-columns: 1fr; align-items: center; text-align: center; padding-bottom: 0; } .econ-flip-l { padding-bottom: clamp(28px, calc(4 * var(--vu)), 40px); } .econ-flip .pill, .econ-flip-badges { justify-content: center; } .econ-flip-p { margin-left: auto; margin-right: auto; } .econ-tri { order: 2; height: 270px; } }
.econ-doors { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 16px; }
.econ-door { display: flex; flex-direction: column; align-items: stretch; overflow: hidden; border: 1px solid var(--line); border-radius: var(--r); background: var(--w); box-shadow: var(--sh-soft); transition: border-color .3s ease, transform .3s cubic-bezier(.16,1,.3,1), box-shadow .3s ease; }
.econ-door:hover { border-color: transparent; transform: translateY(-6px); box-shadow: var(--sh-lift); }
.econ-door-body { display: flex; flex-direction: column; align-items: flex-start; padding: 26px 32px 30px; }
.econ-door-kicker { font-size: 12px; font-weight: 620; letter-spacing: .04em; text-transform: uppercase; color: var(--ink-3); }
.econ-door-title { font-size: 23px; font-weight: 600; letter-spacing: -0.028em; margin-top: 9px; }
.econ-door-blurb { font-size: 14.5px; line-height: 1.55; color: var(--ink-2); margin-top: 11px; max-width: 34ch; }
.econ-door-go { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; font-weight: 560; color: var(--ink); margin-top: 22px; }
.econ-door:hover .econ-door-go { gap: 9px; }
.econ-door-go svg { transition: transform .3s ease; }

/* door visual anchors */
.econ-door-art { position: relative; height: 178px; display: flex; align-items: center; justify-content: center; overflow: hidden; border-bottom: 1px solid var(--line); }
.econ-door-art .ed-orb { position: absolute; width: 260px; height: 260px; border-radius: 50%; filter: blur(46px); opacity: .55; }
.art--pay { background: linear-gradient(152deg, #fff4ec 0%, #ffe2d0 100%); }
.art--pay .ed-orb { background: radial-gradient(circle, rgba(240,169,126,.7), transparent 62%); top: -70px; right: -50px; }
.art--apps { background: linear-gradient(152deg, #efe9fd 0%, #ddccfb 100%); }
.art--apps .ed-orb { background: radial-gradient(circle, rgba(150,110,236,.55), transparent 62%); bottom: -80px; left: -50px; }

/* pay: floating confirmation card */
.ed-pay-card { position: relative; z-index: 2; width: 224px; background: #fff; border: 1px solid rgba(80,39,146,.08); border-radius: 17px; box-shadow: 0 14px 34px -14px rgba(74,40,20,.34); padding: 15px 16px 16px; transition: transform .4s cubic-bezier(.16,1,.3,1); }
.econ-door:hover .ed-pay-card { transform: translateY(-4px) rotate(-1.2deg); }
.ed-pay-top { display: flex; align-items: center; gap: 10px; }
.ed-ava { flex: none; width: 32px; height: 32px; border-radius: 50%; background: linear-gradient(135deg, #a982f0, #f0a97e); color: #fff; font-weight: 700; font-size: 13px; display: flex; align-items: center; justify-content: center; }
.ed-pay-meta { display: flex; flex-direction: column; line-height: 1.25; margin-right: auto; }
.ed-pay-meta b { font-size: 13px; font-weight: 620; }
.ed-pay-meta span { font-size: 11px; color: var(--ink-3); }
.ed-pay-check { flex: none; width: 22px; height: 22px; border-radius: 50%; background: var(--c-green, #1f8a5b); color: #fff; display: flex; align-items: center; justify-content: center; }
.ed-pay-amt { font-size: 30px; font-weight: 680; letter-spacing: -0.035em; margin-top: 13px; color: var(--ink); }
.ed-chip { position: absolute; z-index: 3; bottom: 20px; right: 24px; font-size: 11px; font-weight: 640; letter-spacing: .02em; text-transform: uppercase; color: var(--c-green, #1f8a5b); background: rgba(255,255,255,.86); border: 1px solid rgba(31,138,91,.24); border-radius: 999px; padding: 5px 11px; box-shadow: 0 4px 12px -6px rgba(0,0,0,.2); }

/* apps: mini app cluster */
.ed-app-grid { position: relative; z-index: 2; display: grid; grid-template-columns: repeat(2, 66px); grid-auto-rows: 66px; gap: 13px; transition: transform .4s cubic-bezier(.16,1,.3,1); }
.econ-door:hover .ed-app-grid { transform: translateY(-3px); }
.ed-app { border-radius: 17px; display: flex; align-items: center; justify-content: center; overflow: hidden; background: #fff; border: 1px solid rgba(80,39,146,.1); box-shadow: 0 10px 26px -14px rgba(42,22,86,.44); }
.ed-app--img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ed-app--v { background: linear-gradient(150deg, #6d4bd0, #2a1656); color: #fff; border-color: transparent; }
.ed-app--p { background: #fff; color: var(--c-violet, #502792); }
.ed-app--b { background: linear-gradient(150deg, #26262c, #0c0c0e); color: #d8c5fd; border-color: transparent; }

@media (max-width: 720px) { .econ-doors { grid-template-columns: 1fr; } }
.eco-card { border: 1px solid var(--line); border-radius: var(--r); overflow: hidden; background: var(--w); box-shadow: var(--sh-soft); transition: border-color .3s ease, transform .3s cubic-bezier(.16,.8,.24,1), box-shadow .3s ease; display: block; }
.eco-card:hover { border-color: transparent; transform: translateY(-6px); box-shadow: var(--sh-lift); }
.eco-art { aspect-ratio: 16/11; position: relative; overflow: hidden; display: flex; align-items: center; justify-content: center; background: var(--paper); }
.eco-art img { width: 100%; height: 100%; object-fit: cover; }
.eco-art .glow { position: absolute; inset: 0; }
.eco-art .glyph { color: rgba(255,255,255,.92); position: relative; z-index: 2; }
.eco-soon { position: absolute; top: 13px; left: 13px; z-index: 3; font-size: 10.5px; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; color: #fff; background: rgba(0,0,0,.34); backdrop-filter: blur(6px); padding: 5px 10px; border-radius: 999px; }
.eco-body { padding: 22px 24px 24px; }
.eco-tag { font-size: 11px; font-weight: 600; letter-spacing: .07em; text-transform: uppercase; color: var(--ink-3); }
.eco-body h3 { font-size: 19px; margin-top: 7px; letter-spacing: -0.025em; }
.eco-body p { color: var(--ink-2); font-size: 13.8px; line-height: 1.5; margin-top: 9px; }
.eco-body .txtlink { margin-top: 16px; font-size: 13.5px; border: none; padding: 0; color: var(--ink-2); }
.eco-body .txtlink:hover { color: var(--ink); }

.eco-more { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 18px; padding: 24px 30px; border: 1px solid var(--line); border-radius: var(--r); box-shadow: var(--sh-soft); flex-wrap: wrap; transition: transform .3s ease, box-shadow .3s ease; }
.eco-more:hover { transform: translateY(-3px); box-shadow: var(--sh-card); }
.eco-more span { font-size: 16px; font-weight: 500; }
.eco-more b { font-weight: 600; }

/* micro demo — structural */
.micro { margin-top: 60px; display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.05fr); gap: 40px; align-items: center;
  border-top: 1px solid var(--line); padding-top: 56px; }
.micro-copy h3 { font-size: clamp(24px, calc(2.8 * var(--vu)), 34px); margin-top: 16px; letter-spacing: -0.03em; }
.micro-copy p { color: var(--ink-2); margin-top: 14px; font-size: 16px; max-width: 400px; }
.micro-modes { display: flex; gap: 8px; margin-top: 24px; flex-wrap: wrap; }
.micro-mode { display: inline-flex; align-items: center; gap: 7px; padding: 9px 15px; border-radius: 999px; border: 1px solid var(--line-2); background: transparent; color: var(--ink-2); font-size: 13px; font-weight: 540; cursor: pointer; transition: all .2s ease; }
.micro-mode.on { background: var(--ink); color: #fff; border-color: var(--ink); }
.micro-mode:hover:not(.on) { border-color: var(--ink); color: var(--ink); }
.micro-demo { border: 1px solid var(--line); border-radius: var(--r); padding: 32px; background: var(--w); box-shadow: var(--sh-card); }
.micro-wire { display: flex; align-items: center; gap: 14px; margin-bottom: 26px; }
.micro-node { width: 52px; height: 52px; flex-shrink: 0; border-radius: 13px; border: 1px solid var(--line-2); color: var(--ink); display: flex; align-items: center; justify-content: center; }
.micro-track { flex: 1; height: 2px; background: var(--line-2); position: relative; overflow: hidden; }
.micro-pulse { position: absolute; top: 50%; left: 0; width: 22px; height: 2px; transform: translateY(-50%); background: linear-gradient(90deg, transparent, var(--ink)); animation: flow linear infinite; }
@keyframes flow { from { left: -22px; } to { left: 100%; } }
.micro-readout { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--line); border: 1px solid var(--line); border-radius: var(--r-s); overflow: hidden; }
.micro-ro { background: var(--w); padding: 16px 18px; }
.micro-ro .k { font-size: 11.5px; color: var(--ink-3); text-transform: uppercase; letter-spacing: .05em; }
.micro-ro .v { font-size: 24px; font-weight: 600; color: var(--ink); margin-top: 5px; }
.micro-ro .v em { font-size: 13px; color: var(--ink-3); font-style: normal; font-weight: 400; }
.micro-cap { margin-top: 20px; font-size: 13.5px; color: var(--ink-2); line-height: 1.5; }
.micro-cap b { color: var(--ink); font-weight: 560; }
.micro-note { font-size: 11.5px; color: var(--ink-3); margin-top: 12px; }
@media (max-width: 860px) { .eco-apps { grid-template-columns: 1fr; } .micro { grid-template-columns: 1fr; } }

/* ============================================================
   FOUNDATION
   ============================================================ */
.fnd-focus { margin-top: clamp(56px, calc(6 * var(--vu)), 88px); display: grid; grid-template-columns: 0.8fr 1.2fr; gap: clamp(28px, calc(4 * var(--vu)), 64px); align-items: start; }
.fnd-focus-lead .rsv-kick2 { display: block; }
.fnd-focus-lead p { color: var(--ink-2); font-size: 16px; line-height: 1.55; margin-top: 14px; max-width: 30ch; }
.fnd-focus-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(24px, calc(3 * var(--vu)), 40px) clamp(28px, calc(4 * var(--vu)), 56px); }
.fnd-focus-item { padding-top: 18px; border-top: 1px solid var(--line); }
.fnd-focus-top { display: flex; align-items: center; justify-content: space-between; }
.fnd-focus-n { font-family: var(--mono); font-size: clamp(22px, calc(2.6 * var(--vu)), 30px); font-weight: 500; color: var(--violet); letter-spacing: -0.02em; line-height: 1; }
.fnd-focus-ic { color: var(--ink-3); display: grid; place-items: center; }
.fnd-focus-item h4 { font-size: 18px; letter-spacing: -0.028em; margin-top: clamp(18px, calc(2.2 * var(--vu)), 26px); }
.fnd-focus-item p { color: var(--ink-2); font-size: 14px; line-height: 1.55; margin-top: 9px; }
@media (max-width: 860px) { .fnd-focus { grid-template-columns: 1fr; gap: 28px; } .fnd-focus-lead p { max-width: none; } }
@media (max-width: 560px) { .fnd-focus-grid { grid-template-columns: 1fr; } }

.fnd-glass-inline { display: flex; align-items: center; justify-content: flex-end; }
.fnd-ring { position: relative; width: 130px; height: 130px; display: flex; align-items: center; justify-content: center; }
.fnd-ring .ring { position: absolute; inset: 0; border-radius: 50%; border: 1.5px solid var(--line-2); }
.fnd-ring .halo { position: absolute; inset: -34%; border-radius: 50%; background: var(--grad); filter: blur(34px); opacity: .8; z-index: -1; }
.fnd-ring .mk { color: var(--ink); position: relative; z-index: 2; }
@media (max-width: 640px) { .fnd-head-main { grid-template-columns: 1fr !important; } .fnd-glass-inline { display: none; } }

.fnd-mission { margin-top: clamp(46px, calc(5 * var(--vu)), 72px); display: grid; grid-template-columns: minmax(0,0.92fr) minmax(0,1.08fr); gap: clamp(30px, calc(4 * var(--vu)), 60px); align-items: center; }
.fnd-mission-photo { position: relative; border-radius: var(--r-l); overflow: hidden; aspect-ratio: 4 / 5; background: linear-gradient(150deg, #efe6fb, #f7efe8); box-shadow: var(--sh-card); }
.fnd-mission-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.fnd-mission-photo image-slot { position: absolute; inset: 0; width: 100%; height: 100%; }
.fnd-mission-photo .fnd-honest-cap { pointer-events: none; }
.fnd-mission-head { max-width: 560px; }
.fnd-mission-head .eyebrow { margin-bottom: 16px; }
.fnd-mission-lede { font-size: clamp(19px, calc(1.9 * var(--vu)), 24px); line-height: 1.42; color: var(--ink); letter-spacing: -0.018em; text-wrap: pretty; }
.fnd-mission-lede b { color: var(--violet); font-weight: 600; }
.fnd-mp-list { display: flex; flex-direction: column; gap: 0; margin-top: clamp(24px, calc(2.6 * var(--vu)), 34px); border-top: 1px solid var(--line); }
.fnd-mp { display: grid; grid-template-columns: 40px 1fr; gap: 16px; align-items: start; padding: 17px 0; border-bottom: 1px solid var(--line); }
.fnd-mp:last-child { border-bottom: none; }
.fnd-mp-ic { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 11px; background: var(--violet-tint); color: var(--violet); }
.fnd-mp b { font-family: var(--font-head); font-weight: 700; font-size: 16px; letter-spacing: -0.015em; color: var(--ink); display: block; }
.fnd-mp-d { font-size: 13.5px; line-height: 1.5; color: var(--ink-2); margin-top: 4px; text-wrap: pretty; display: block; }
@media (max-width: 820px) { .fnd-mission { grid-template-columns: 1fr; gap: 28px; } .fnd-mission-photo { aspect-ratio: 16 / 10; } }
/* photo-less info variant + facts strip */
.fnd-mission--info { grid-template-columns: minmax(0,1.04fr) minmax(0,.96fr); align-items: start; }
.fnd-info-lede .fnd-mission-lede { max-width: 52ch; }
.fnd-facts { display: flex; gap: clamp(24px, calc(3.4 * var(--vu)), 52px); margin-top: clamp(24px, calc(3 * var(--vu)), 36px); padding-top: clamp(18px, calc(2.2 * var(--vu)), 26px); border-top: 1px solid rgba(124,77,222,.14); flex-wrap: wrap; }
.fnd-fact { display: flex; flex-direction: column; gap: 4px; }
.fnd-fact .v { font-size: clamp(24px, calc(2.8 * var(--vu)), 32px); font-weight: 600; letter-spacing: -0.02em; color: var(--ink); }
.fnd-fact .k { font-size: 12.5px; color: var(--ink-2); }
.fnd-mission--info .fnd-mp-list { margin-top: 0; }
/* foundation intro inside network: photo left, intro right */
.net-fnd2 { display: grid; grid-template-columns: minmax(0,.88fr) minmax(0,1.12fr); gap: clamp(30px, calc(4 * var(--vu)), 64px); align-items: stretch; margin-top: clamp(52px, calc(6 * var(--vu)), 80px); }
.net-fnd2-photo { position: relative; overflow: hidden; border-radius: clamp(18px, calc(2 * var(--vu)), 28px); min-height: 340px; background: #efeaf7; box-shadow: var(--sh-card); }
.net-fnd2-photo image-slot { display: block; filter: saturate(.85); }
.net-fnd2-photo::after { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; border-radius: inherit; opacity: .3; mix-blend-mode: overlay; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E"); background-size: 240px 240px; }
.net-fnd2-tx .rsv-kick2 { color: var(--violet); display: block; }
.net-fnd2-tx h3 { font-size: clamp(24px, calc(2.9 * var(--vu)), 36px); letter-spacing: -0.03em; margin-top: 12px; color: var(--ink); }
.net-fnd2-tx p { color: var(--ink-2); font-size: 15.5px; line-height: 1.6; margin-top: 14px; max-width: 54ch; text-wrap: pretty; }
.net-fnd2-tx p b { color: var(--ink); font-weight: 600; }
.net-fnd2-pillars { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 24px; margin-top: 22px; }
.net-fnd2-pillar { display: flex; align-items: flex-start; gap: 10px; padding: 10px 0; border-top: 1px solid rgba(124,77,222,.12); }
.net-fnd2-pic { flex: none; display: grid; place-items: center; width: 26px; height: 26px; border-radius: 8px; color: var(--violet); background: rgba(124,77,222,.1); margin-top: 1px; }
.net-fnd2-pillar b { display: block; font-size: 13.5px; letter-spacing: -0.01em; color: var(--ink); }
.net-fnd2-pillar div span { display: block; font-size: 12.5px; line-height: 1.45; color: var(--ink-2); margin-top: 2px; text-wrap: pretty; }
.net-fnd2-tx .btn { margin-top: 24px; }
@media (max-width: 820px) { .net-fnd2 { grid-template-columns: 1fr; } .net-fnd2-photo { aspect-ratio: 16 / 10; min-height: 0; } }
@media (max-width: 520px) { .net-fnd2-pillars { grid-template-columns: 1fr; } }
/* second network photo band */
.netdec-photo2 { position: relative; overflow: hidden; border-radius: clamp(18px, calc(2 * var(--vu)), 28px); aspect-ratio: 21 / 8; margin-top: clamp(36px, calc(4.4 * var(--vu)), 56px); background: #efeaf7; }
.netdec-photo2 image-slot { display: block; filter: saturate(.85); }
.netdec-photo2::after { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; border-radius: inherit; opacity: .3; mix-blend-mode: overlay; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E"); background-size: 240px 240px; }
@media (max-width: 700px) { .netdec-photo2 { aspect-ratio: 16 / 10; } }
@media (max-width: 820px) { .fnd-mission--info { grid-template-columns: 1fr; } }
.fnd-do { margin-top: clamp(52px, calc(6 * var(--vu)), 80px); }
.fnd-do-head { max-width: 640px; }
.fnd-do-head h3 { font-size: clamp(21px,calc(2.4 * var(--vu)),28px); letter-spacing: -0.03em; margin-top: 12px; }
.fnd-do-head .lede { color: var(--ink-2); font-size: 15.5px; line-height: 1.55; margin-top: 12px; text-wrap: pretty; }
.fnd-do-grid { margin-top: clamp(28px,calc(3 * var(--vu)),40px); grid-template-columns: repeat(4, 1fr); }
@media (max-width: 960px) { .fnd-do-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .fnd-do-grid { grid-template-columns: 1fr; } }
.fnd-do .fnd-sign { margin-top: clamp(28px,calc(3 * var(--vu)),40px); padding-top: 26px; border-top: 1px solid var(--line); display: flex; flex-wrap: wrap; align-items: center; gap: 20px 40px; }
.fnd-actions { display: flex; gap: 14px; margin-top: 30px; flex-wrap: wrap; }
.fnd-honest-photo { position: relative; min-height: 340px; background: linear-gradient(150deg, #efe6fb, #f7efe8); }
.fnd-honest-photo img { width: 100%; height: 100%; object-fit: cover; }
.fnd-honest-cap { position: absolute; left: 14px; bottom: 14px; z-index: 3; display: inline-flex; align-items: center; gap: 7px; font-size: 12px; color: #fff; background: rgba(0,0,0,.42); backdrop-filter: blur(6px); padding: 6px 11px; border-radius: 999px; }
.fnd-honest-cap .d { width: 6px; height: 6px; border-radius: 50%; background: #4fd18a; }
.fnd-honest-body { max-width: 620px; }
.fnd-honest-body h3 { font-size: clamp(21px,calc(2.4 * var(--vu)),28px); margin-top: 12px; }
.fnd-honest-body .lede { color: var(--ink-2); font-size: 15.5px; margin-top: 12px; }
.fnd-fl { margin-top: clamp(26px,calc(3 * var(--vu)),38px); display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: clamp(20px,calc(2.6 * var(--vu)),38px); padding-top: clamp(26px,calc(3 * var(--vu)),36px); border-top: 1px solid var(--line); }line); }
.fnd-fl-item { display: flex; flex-direction: column; align-items: start; gap: 0; padding: 0; border-bottom: none; }
.fnd-fl-ic { width: 40px !important; height: 40px !important; border-radius: 11px; background: var(--violet-tint) !important; color: var(--violet) !important; display: inline-flex !important; align-items: center; justify-content: center; margin-bottom: 14px; }
.fnd-fl-item b { color: var(--ink); font-size: 16px; display: block; letter-spacing: -0.015em; font-family: var(--font-head); font-weight: 700; }
.fnd-fl-item span { color: var(--ink-2); font-size: 13.5px; line-height: 1.5; margin-top: 5px; display: block; }
@media (max-width: 820px) { .fnd-fl { grid-template-columns: 1fr; gap: 22px; } }
.fnd-fl--4 { grid-template-columns: repeat(4, minmax(0,1fr)); }
@media (max-width: 860px) { .fnd-fl--4 { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width: 560px) { .fnd-fl--4 { grid-template-columns: 1fr; } }
.fnd-sign { margin-top: clamp(28px,calc(3 * var(--vu)),40px); padding-top: 26px; border-top: 1px solid var(--line); display: flex; flex-wrap: wrap; align-items: center; gap: 20px 40px; }
.fnd-sign .fnd-fundline { margin-top: 0; padding-left: 18px; border-left: 2px solid var(--violet); flex: 1; min-width: 300px; }
.fnd-fundline { margin-top: 20px; font-size: 13px; line-height: 1.5; color: var(--ink-3); padding-left: 14px; border-left: 2px solid var(--violet); }
.fnd-lockup-wrap { margin-bottom: 18px; padding-bottom: 18px; border-bottom: 1px solid var(--line); }
.fnd-lockup { display: inline-flex; flex-direction: column; align-items: stretch; gap: 6px; }
.fnd-lockup img { display: block; width: auto; }
.fnd-lockup-sub { display: flex; justify-content: space-between; width: 100%; font-family: var(--font-head); font-weight: 600; font-size: 11px; text-transform: uppercase; color: var(--ink-3); padding-left: 2px; }
.fnd-lockup--white .fnd-lockup-sub { color: rgba(255,255,255,.55); }
.footer-lockup { align-self: flex-start; gap: 3px; }
.footer-lockup .fnd-lockup-sub { margin-top: -3px; }

.fnd-builders { margin-top: clamp(52px, calc(6 * var(--vu)), 80px); display: grid; grid-template-columns: 1fr auto; gap: clamp(24px, calc(4 * var(--vu)), 56px); align-items: center; padding-top: clamp(32px, calc(4 * var(--vu)), 52px); border-top: 1px solid var(--line); }
.fnd-builders-lead .rsv-kick2 { display: block; }
.fnd-builders-lead h3 { font-size: clamp(21px, calc(2.4 * var(--vu)), 28px); letter-spacing: -0.03em; margin-top: 12px; }
.fnd-builders-lead p { color: var(--ink-2); font-size: 15.5px; line-height: 1.55; margin-top: 12px; max-width: 46ch; }
.fnd-earn { display: inline-flex; align-items: center; gap: 22px; border: 1px solid var(--line); border-radius: var(--r); padding: 20px 24px; background: var(--w); box-shadow: var(--sh-soft); transition: transform .2s ease, box-shadow .2s ease; }
.fnd-earn:hover { transform: translateY(-3px); box-shadow: var(--sh-card); }
.fnd-earn-logo { height: 26px; filter: grayscale(1); flex: none; }
.fnd-earn-meta { font-size: 14px; color: var(--ink-2); border-left: 1px solid var(--line); padding-left: 22px; max-width: 15ch; line-height: 1.35; }
.fnd-earn .btn { flex: none; }
@media (max-width: 760px) { .fnd-builders { grid-template-columns: 1fr; } .fnd-earn { flex-wrap: wrap; gap: 16px; } .fnd-earn-meta { border-left: none; padding-left: 0; max-width: none; } }
.fnd-earn-body p { color: var(--ink-2); font-size: 14px; margin-top: 4px; }
@media (max-width: 860px) { .fnd-honest { grid-template-columns: 1fr; } }

/* ============================================================
   NETWORK
   ============================================================ */
.net-map-stage { position: relative; margin-top: clamp(44px, calc(5.5 * var(--vu)), 72px); }
.net-map-img { width: 100%; display: block; }
.net-map-pins { position: absolute; inset: 0; pointer-events: none; }
.net-pin { position: absolute; width: 9px; height: 9px; border-radius: 50%; background: var(--violet); transform: translate(-50%,-50%); box-shadow: 0 0 0 4px rgba(90,46,196,.12); }
.net-pin--lead { width: 13px; height: 13px; box-shadow: 0 0 0 6px rgba(90,46,196,.16); z-index: 2; }
.net-pin--lead::after { content: ""; position: absolute; inset: -4px; border-radius: 50%; border: 1.5px solid var(--violet); animation: netPulse 2.6s ease-out infinite; }
@keyframes netPulse { 0% { transform: scale(.5); opacity: .85; } 100% { transform: scale(3); opacity: 0; } }
.net-pin-label { position: absolute; left: 50%; bottom: calc(100% + 10px); transform: translateX(-50%); white-space: nowrap; font-family: var(--mono); font-size: 11px; font-weight: 600; letter-spacing: .01em; color: var(--violet); background: #fff; border: 1px solid var(--line); border-radius: 999px; padding: 4px 10px; box-shadow: var(--sh-soft); }
@media (max-width: 560px) { .net-pin-label { display: none; } .net-map-img { opacity: .85; } }
.net-chapters { position: relative; overflow: hidden; margin-top: clamp(52px, calc(6 * var(--vu)), 80px); color: #e9e2fb; background: radial-gradient(120% 100% at 85% 0%, rgba(124,77,222,.38), transparent 58%), linear-gradient(150deg, #32204f 0%, #241645 55%, #1c1238 100%); border: 1px solid rgba(216,197,253,.22); border-radius: clamp(20px, calc(2.2 * var(--vu)), 28px); box-shadow: 0 30px 70px -34px rgba(24,13,51,.55); padding: clamp(26px, calc(3.4 * var(--vu)), 48px); display: grid; grid-template-columns: 0.9fr 1.1fr; gap: clamp(28px, calc(4 * var(--vu)), 56px) clamp(28px, calc(4 * var(--vu)), 56px); align-items: center; padding: clamp(32px, calc(4 * var(--vu)), 52px); }
.net-chapters-copy .rsv-kick2 { display: block; }
.net-chapters-copy h3 { font-size: clamp(23px, calc(2.7 * var(--vu)), 32px); letter-spacing: -0.03em; margin-top: 12px; }
.net-chapters-copy p { color: var(--ink-2); font-size: 16px; line-height: 1.55; margin-top: 14px; max-width: 40ch; }
.net-chapters-copy p b { color: var(--ink); font-weight: 600; }
.net-chapters-copy .btn { margin-top: 26px; }
.net-chapters-flags { display: flex; flex-wrap: wrap; gap: 10px; }
.net-chapters-flags .net-flag { background: rgba(255,255,255,.66); border-color: rgba(124,77,222,.16); cursor: default; }
.net-chapters-flags .net-flag:hover { transform: none; border-color: rgba(124,77,222,.16); color: var(--ink-2); }
.net-chapters-flags .net-flag { opacity: 0; transform: translateY(9px); transition: opacity .5s ease, transform .5s cubic-bezier(.16,.8,.24,1); transition-delay: calc(var(--i, 0) * 45ms + 60ms); }
.net-chapters.in .net-chapters-flags .net-flag { opacity: 1; transform: translateY(0); }
/* dark-violet chapters panel internals */
.net-chapters > * { position: relative; z-index: 1; }
.net-chapters-map { position: absolute; z-index: 0; right: -6%; top: 50%; transform: translateY(-50%); width: 62%; min-width: 480px; opacity: .22; filter: brightness(1.1); pointer-events: none; -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 45%); mask-image: linear-gradient(90deg, transparent 0%, #000 45%); }
.net-chapters-copy h3 { color: #f6f1ff; }
.net-chapters-copy p { color: rgba(216,205,240,.82); }
.net-chapters-copy p b { color: #f6f1ff; }
.net-chapters .rsv-kick2 { color: rgba(201,187,230,.78); }
.net-chapters .btn--primary { background: #fff; color: var(--violet, #6b3fd4); box-shadow: 0 14px 34px -14px rgba(0,0,0,.6); }
.net-chapters .btn--primary:hover { background: #f3edfc; color: var(--violet, #6b3fd4); }
.net-chapters-flags .net-flag { background: rgba(255,255,255,.08); border-color: rgba(216,197,253,.24); color: #e9e2fb; }
.net-chapters-flags .net-flag:hover { border-color: rgba(216,197,253,.24); color: #e9e2fb; }
.net-chapters .net-social { border-top-color: rgba(216,197,253,.18); }
.net-chapters .net-social-label { color: rgba(216,205,240,.78); }
.net-chapters .net-channel { background: rgba(255,255,255,.08); border-color: rgba(216,197,253,.24); color: #f6f1ff; }
.net-chapters .net-channel:hover { border-color: #fff; color: #fff; transform: translateY(-2px); }
@media (max-width: 760px) { .net-chapters { grid-template-columns: 1fr; align-items: start; } }
.net-social { grid-column: 1 / -1; margin-top: clamp(6px, calc(1 * var(--vu)), 12px); padding-top: clamp(24px, calc(3 * var(--vu)), 32px); border-top: 1px solid rgba(124,77,222,.14); display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 32px; }
.net-social-label { font-size: 14px; color: var(--ink-2); max-width: 46ch; }
.net-flags { display: flex; flex-wrap: wrap; gap: 10px; margin-top: clamp(32px, calc(4 * var(--vu)), 48px); }
.net-flag { display: inline-flex; align-items: center; gap: 9px; padding: 9px 15px 9px 10px; border-radius: 999px; border: 1px solid var(--line-2); font-size: 13.5px; font-weight: 500; color: var(--ink); transition: border-color .2s ease, transform .2s ease; }
.net-flag:hover { color: var(--ink); border-color: var(--ink); transform: translateY(-2px); }
.net-flag img { width: 20px; height: 20px; border-radius: 50%; opacity: 1; }
.net-caption { margin-top: 22px; font-size: 13.5px; color: var(--ink-2); display: inline-flex; align-items: center; gap: 8px; }
.net-caption .d { width: 8px; height: 8px; border-radius: 50%; background: #16a34a; box-shadow: 0 0 0 4px rgba(22,163,74,.14); }

.wild { margin-top: 64px; border-top: 1px solid var(--line); padding-top: 44px; }
/* ── capability points inside the flipcash showcase ── */
.ps-caps { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(20px, calc(2.4 * var(--vu)), 32px) clamp(20px, calc(2.6 * var(--vu)), 36px); margin-top: clamp(4px, calc(.7 * var(--vu)), 8px); padding-top: clamp(24px, calc(2.8 * var(--vu)), 36px); border-top: 1px solid rgba(124,77,222,.14); }
.cw-cap { display: flex; gap: 12px; align-items: flex-start; }
.cw-cap-ic { flex: none; width: 34px; height: 34px; border-radius: 10px; display: grid; place-items: center; background: var(--c-violet-bg); color: var(--c-violet); margin-top: 1px; }
.cw-cap[data-a="gold"] .cw-cap-ic { background: var(--c-gold-bg); color: var(--c-gold); }
.cw-cap[data-a="blue"] .cw-cap-ic { background: var(--c-blue-bg); color: var(--c-blue); }
.cw-cap[data-a="green"] .cw-cap-ic { background: var(--c-green-bg); color: var(--c-green); }
.cw-cap[data-a="peach"] .cw-cap-ic { background: var(--c-peach-bg); color: var(--c-peach); }
.cw-cap[data-a="magenta"] .cw-cap-ic { background: rgba(214,81,159,.12); color: #c2478d; }
.cw-cap h4 { font-size: 14.5px; letter-spacing: -0.015em; color: var(--ink); }
.cw-cap p { color: var(--ink-2); font-size: 12.8px; line-height: 1.5; margin-top: 4px; text-wrap: pretty; }
@media (max-width: 900px) { .ps-caps { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .ps-caps { grid-template-columns: 1fr; gap: 18px; } }
.wild-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 26px; flex-wrap: wrap; }
.wild-head .rsv-kick2 { display: block; }
.wild-head h3 { font-size: clamp(21px, calc(2.4 * var(--vu)), 30px); letter-spacing: -0.03em; margin-top: 10px; }
.wild-lede { color: var(--ink-2); font-size: 15.5px; line-height: 1.55; margin-top: 12px; max-width: 56ch; text-wrap: pretty; }
.ps-caps-lead { max-width: 640px; margin-bottom: clamp(28px, calc(3 * var(--vu)), 40px); }
.ps-caps-lead .lede { color: var(--ink-2); font-size: 15.5px; line-height: 1.55; margin-top: 12px; text-wrap: pretty; }
.wild-gallery { display: grid; grid-template-columns: 1.25fr 1fr; gap: 16px; align-items: stretch; }
.wild-feat { position: relative; border-radius: var(--r-l); overflow: hidden; background: var(--paper); border: 1px solid var(--line); display: block; transition: transform .3s cubic-bezier(.16,.8,.24,1), box-shadow .3s ease; }
.wild-feat:hover { transform: translateY(-4px); box-shadow: var(--sh-lift); }
.wild-feat::before { content: ""; display: none; }
.wild-feat > img { width: 100%; height: 100%; object-fit: cover; position: absolute; inset: 0; filter: saturate(.82) brightness(.98); transition: filter .3s ease; }
.wild-feat:hover > img { filter: none; }
.wild-feat-meta { position: absolute; left: 0; right: 0; bottom: 0; z-index: 3; padding: 40px 22px 22px; display: flex; align-items: center; gap: 12px; background: linear-gradient(to top, rgba(10,6,12,.9), rgba(10,6,12,.3) 60%, transparent); color: #fff; }
.wild-ava { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; border: 2px solid rgba(255,255,255,.85); flex: none; position: static !important; }
.wild-feat-tx b { font-size: 17px; font-weight: 600; display: block; letter-spacing: -0.02em; }
.wild-feat-tx span { font-size: 12.5px; opacity: .86; display: inline-flex; align-items: center; gap: 5px; margin-top: 3px; }
.wild-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; align-content: stretch; }
.wild-play--lg { width: 44px; height: 44px; top: 16px; right: 16px; }
.wild-card { border-radius: var(--r); overflow: hidden; position: relative; aspect-ratio: 4/5; background: var(--paper); border: 1px solid var(--line); transition: transform .25s ease, border-color .25s ease; }
.wild-card:hover { transform: translateY(-4px); border-color: var(--ink); transition-delay: 0s; }
.wild-card { opacity: 0; transform: translateY(16px); transition: opacity .55s ease, transform .55s cubic-bezier(.16,.8,.24,1), border-color .2s ease; transition-delay: calc(var(--i, 0) * 85ms + 80ms); }
.wild.in .wild-card { opacity: 1; transform: translateY(0); }
.wild-card img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.8) brightness(.97); transition: filter .25s ease; }
.wild-card:hover img { filter: none; }
.wild-play { position: absolute; top: 12px; right: 12px; width: 30px; height: 30px; border-radius: 50%; z-index: 3; background: rgba(255,255,255,.92); display: flex; align-items: center; justify-content: center; color: var(--ink); }
.wild-meta { position: absolute; left: 0; right: 0; bottom: 0; z-index: 3; padding: 28px 14px 14px; background: linear-gradient(to top, rgba(10,6,12,.86), transparent); color: #fff; }
.wild-meta { display: flex; align-items: center; gap: 9px; }
.wild-meta .wild-ava--sm { width: 28px; height: 28px; border-width: 1.5px; filter: none; }
.wild-meta-tx { min-width: 0; }
.wild-meta b { font-size: 13.5px; font-weight: 550; display: block; }
.wild-meta span { font-size: 11.5px; opacity: .82; display: inline-flex; align-items: center; gap: 5px; margin-top: 3px; }

@media (max-width: 760px) { .wild-gallery { grid-template-columns: 1fr; } }
.roles { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; margin-top: 60px; }
.role { background: linear-gradient(158deg, rgba(255,255,255,.94) 6%, rgba(216,197,253,.22) 64%, rgba(255,242,217,.26) 100%);
  backdrop-filter: blur(14px) saturate(1.15); -webkit-backdrop-filter: blur(14px) saturate(1.15);
  padding: 32px 28px 34px; border: 1px solid rgba(255,255,255,.7); border-radius: var(--r);
  box-shadow: 0 1px 0 rgba(255,255,255,.9) inset, 0 20px 42px -26px rgba(60,31,120,.3), 0 0 0 1px rgba(124,77,222,.06);
  transition: transform .3s cubic-bezier(.16,.8,.24,1), box-shadow .3s ease, border-color .3s ease; }
.role:hover { transform: translateY(-6px); box-shadow: 0 1px 0 rgba(255,255,255,.9) inset, var(--sh-lift); border-color: rgba(255,255,255,.95); }
.role-ic { width: auto !important; height: auto !important; border-radius: 0; background: none !important; color: var(--violet) !important; margin-bottom: 24px; display: block; }
.role h4 { font-size: 17px; letter-spacing: -0.02em; }
.role p { color: var(--ink-2); font-size: 13.6px; line-height: 1.5; margin-top: 9px; }
@media (max-width: 860px) { .roles { grid-template-columns: 1fr 1fr; } }

.net-join { margin-top: 56px; display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; background: linear-gradient(140deg, #f2ebfe 0%, #f7f1fb 46%, #fdf3ea 100%); border: 1px solid rgba(124,77,222,.12); border-radius: clamp(22px, calc(2.6 * var(--vu)), 30px); box-shadow: var(--sh-soft); padding: clamp(30px, calc(3.4 * var(--vu)), 46px) clamp(30px, calc(3.6 * var(--vu)), 52px); }
.net-join-copy h3 { font-size: clamp(22px,calc(2.6 * var(--vu)),32px); }
.net-join-copy p { color: var(--ink-2); margin-top: 8px; }
.net-channels { display: flex; gap: 10px; flex-wrap: wrap; }
.net-channel { display: inline-flex; align-items: center; gap: 9px; padding: 11px 19px; border-radius: 999px; border: 1px solid var(--line-2); color: var(--ink); font-weight: 500; font-size: 14px; transition: all .2s ease; }
.net-channel:hover { color: var(--ink); border-color: var(--ink); transform: translateY(-2px); }
.net-join .net-channel { background: rgba(255,255,255,.72); border-color: rgba(124,77,222,.16); }
.net-join .net-channel:hover { background: #fff; border-color: var(--violet); }

/* ============================================================
   FAQ
   ============================================================ */
.faq-sec { position: relative; }
.faq2 { margin-top: clamp(38px, calc(4 * var(--vu)), 58px); border-top: 1px solid var(--line); }
.faq2-item { border-bottom: 1px solid var(--line); transition: background .3s ease; }
.faq2-item.open { background: linear-gradient(160deg, rgba(216,197,253,.09), rgba(255,242,217,.05)); }
.faq2-q { width: 100%; background: none; border: none; cursor: pointer; text-align: left; font-family: var(--font); display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: clamp(14px, calc(2 * var(--vu)), 28px); align-items: center; padding: clamp(15px, calc(1.5 * var(--vu)), 19px) clamp(6px, calc(1 * var(--vu)), 12px); }
.faq2-ix { font-size: 12px; font-weight: 600; letter-spacing: .06em; color: var(--violet); font-variant-numeric: tabular-nums; opacity: .5; transition: opacity .25s ease; }
.faq2-item.open .faq2-ix, .faq2-q:hover .faq2-ix { opacity: 1; }
.faq2-main { min-width: 0; }
.faq2-cat { display: none; }
.faq2-qt { display: block; font-size: clamp(15px, calc(1.5 * var(--vu)), 17px); font-weight: 600; letter-spacing: -0.02em; color: var(--ink); line-height: 1.35; text-wrap: pretty; transition: color .2s ease; }
.faq2-q:hover .faq2-qt { color: var(--violet); }
.faq2-item.open .faq2-qt { color: var(--ink); }
.faq2-a { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .4s cubic-bezier(.4,0,.2,1); }
.faq2-item.open .faq2-a { grid-template-rows: 1fr; }
.faq2-a-in { overflow: hidden; }
.faq2-a-in { color: var(--ink-2); font-size: 14.5px; line-height: 1.58; max-width: 620px; }
.faq2-item.open .faq2-a-in { padding-top: 10px; }
.faq2-tog { flex: none; width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; background: var(--paper); color: var(--ink-2); transition: background .25s ease, color .25s ease; }
.faq2-q:hover .faq2-tog { background: var(--violet-tint); color: var(--violet); }
.faq2-item.open .faq2-tog { background: var(--violet); color: #fff; }
.faq2-still { margin-top: clamp(28px, calc(3 * var(--vu)), 42px); display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.faq2-still span { color: var(--ink-2); font-size: 15px; }
.faq2-still a { display: inline-flex; align-items: center; gap: 6px; color: var(--violet); font-weight: 600; font-size: 15px; }
.faq2-still a:hover { color: var(--violet-d, #3f1f74); }
@media (max-width: 760px) {
  .faq2-q { grid-template-columns: minmax(0,1fr) auto; gap: 18px; }
  .faq2-ix { display: none; }
}

/* ============================================================
   FINAL CTA
   ============================================================ */
.cta { text-align: center; position: relative; overflow: hidden; padding: clamp(110px,calc(13 * var(--vu)),180px) 0; }
.cta::before { content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none; background: radial-gradient(42% 60% at 50% 42%, rgba(216,197,253,.4), rgba(255,242,217,.2) 50%, transparent 76%); }
.cta .wrap { position: relative; z-index: 1; }
.cta-object { position: relative; width: 120px; height: 120px; margin: 0 auto 30px; display: flex; align-items: center; justify-content: center; }
.cta-object .ring { position: absolute; inset: 0; border-radius: 50%; border: 1.5px solid var(--line-2); }
.cta-object .halo { position: absolute; inset: -40%; border-radius: 50%; background: var(--grad); filter: blur(36px); opacity: .8; z-index: -1; }
.cta-object .mark { color: var(--ink); position: relative; z-index: 2; }
.cta h2 { font-size: clamp(36px, calc(5.4 * var(--vu)), 68px); letter-spacing: -0.045em; }
.cta p { color: var(--ink-2); font-size: clamp(17px,calc(1.7 * var(--vu)),21px); margin-top: 20px; max-width: 500px; margin-left: auto; margin-right: auto; }
.cta-actions { margin-top: 34px; display: flex; gap: 13px; justify-content: center; flex-wrap: wrap; }

/* ============================================================
   RESERVE — full dark chapter (light → dark → light break)
   ============================================================ */
#reserve.rdark { position: relative; background: radial-gradient(115% 60% at 50% 38%, rgba(124,77,222,.26), transparent 72%), radial-gradient(125% 100% at 22% -10%, #32204f 0%, #221541 38%, #180f2d 70%, var(--ink-panel) 100%); color: #e9e2fb; margin-inline: clamp(10px, 1.6vw, 26px); border-radius: clamp(28px, 3.4vw, 48px); }
.reserve.rdark::before, .reserve.rdark::after { content: none; }
/* tighter vertical rhythm inside the dark chapter */
#reserve.rdark { padding: clamp(64px, calc(7.5 * var(--vu)), 112px) 0; }
#reserve.rdark .rliq--lead { margin-top: clamp(40px, calc(5 * var(--vu)), 60px); }
#reserve.rdark .rcurve--after { margin-top: clamp(48px, calc(5.5 * var(--vu)), 80px); }
#reserve.rdark .rproof { margin-top: clamp(36px, calc(4.4 * var(--vu)), 56px); }
#reserve.rdark .rsv-more { margin-top: clamp(32px, calc(4 * var(--vu)), 48px); }
#reserve.rdark .rsv-chart.light { min-height: clamp(280px, calc(29 * var(--vu)), 370px); }
.reserve.rdark > .wrap { position: relative; z-index: 1; }
/* section head */
.reserve.rdark .shead-idx .n, .reserve.rdark .shead-idx .lbl { color: rgba(201,187,230,.72); }
.reserve.rdark .shead-main h2 { color: #f6f1ff; }
.reserve.rdark .shead-main h2 .dim { color: rgba(201,187,230,.5); }
.reserve.rdark .shead-main p { color: rgba(216,205,240,.8); }
.reserve.rdark .rsv-kick2 { color: rgba(201,187,230,.78); }
/* deposit → mint → redeem steps */
.reserve.rdark .rloop-step h4 { color: #f6f1ff; }
.reserve.rdark .rloop-step p { color: rgba(216,205,240,.72); }
.reserve.rdark .rloop-n { color: rgba(201,187,230,.55); }
.reserve.rdark .rloop-ic { background: rgba(138,92,240,.18); color: #d9c6fe; box-shadow: none; }
/* curve panel: elevated violet surface — clearly lighter than the section floor */
.reserve.rdark .rcurve { background: linear-gradient(165deg, #342058 0%, #2a1a4c 55%, #251543 100%); border: 1px solid rgba(216,197,253,.24); box-shadow: 0 40px 90px -40px rgba(0,0,0,.8), inset 0 1px 0 rgba(255,255,255,.08); }
.reserve.rdark .rcurve::before { opacity: .5; }
.reserve.rdark .rcurve .rv-grid { stroke: rgba(216,197,253,.17); }
.reserve.rdark .rcurve .rv-now { stroke: rgba(216,197,253,.45); }
/* panel internals: light type on the elevated surface */
.reserve.rdark .rcurve h3, .reserve.rdark .rcurve .rloop-step h4, .reserve.rdark .rcurve-fact .v, .reserve.rdark .rcurve-metric .v { color: #f6f1ff; }
.reserve.rdark .rcurve .rsv-kick2 { color: #c9b4ff; }
.reserve.rdark .rcurve .rloop-step p, .reserve.rdark .rcurve-head p { color: rgba(216,205,240,.74); }
.reserve.rdark .rcurve .rcurve-steps .rloop-step { border-top-color: rgba(216,197,253,.18); }
.reserve.rdark .rcurve .rcurve-facts2 { color: rgba(216,205,240,.8); }
.reserve.rdark .rcurve .rcurve-facts2 b { color: #fff; }
.reserve.rdark .rcurve .rcurve-read { border-left-color: rgba(216,197,253,.2); }
.reserve.rdark .rcurve .rcurve-metric .k, .reserve.rdark .rcurve .rcurve-metric .sub, .reserve.rdark .rcurve .rcurve-note { color: rgba(201,187,230,.74); }
.reserve.rdark .rv-ylab, .reserve.rdark .rv-xlab { color: rgba(201,187,230,.64); }
.reserve.rdark .rv-drag { background: rgba(24,13,51,.9); color: #d9c6fe; border-color: rgba(216,197,253,.34); }
.reserve.rdark .rv-hdot { border-color: #2a1a4c; }
.reserve.rdark .rcurve .rcurve-metric .chip { background: rgba(216,197,253,.16); color: #d9c6fe; }
/* vs-a-typical-launch strip */
.reserve.rdark .rvs-lead { color: #f6f1ff; }
.reserve.rdark .rvs-tail { color: rgba(216,205,240,.8); }
.reserve.rdark .rvs-chip { color: #e7ddff; background: rgba(138,92,240,.16); border-color: rgba(216,197,253,.22); }
/* reserve asset (USDF) block — text light; the USDF card stays a light card for contrast */
.reserve.rdark .rliq-tx h3 { color: #f6f1ff; }
.reserve.rdark .rliq-tx p { color: rgba(216,205,240,.8); }
.reserve.rdark .rliq-tx p strong, .reserve.rdark .rliq-tx p em { color: #f6f1ff; }
.reserve.rdark .rliq-item p { color: rgba(216,205,240,.8); }
.reserve.rdark .rliq-item strong { color: #f6f1ff; }
.reserve.rdark .rliq-chk { background: rgba(138,92,240,.2); color: #d9c6fe; }
/* proof strip */
.reserve.rdark .rproof { border-top-color: rgba(216,197,253,.16); }
.reserve.rdark .rproof-item h4 { color: #f6f1ff; }
.reserve.rdark .rproof-item p { color: rgba(216,205,240,.72); }
.reserve.rdark .rproof-cred { color: rgba(216,205,240,.72); }
.reserve.rdark .rproof-ic { background: rgba(255,255,255,.08); color: #d9c6fe; }

/* ── RWARM: brand-gradient reserve variant (light section, dark curve panel) ── */
#reserve.rwarm { position: relative; margin-inline: clamp(10px, 1.6vw, 26px); border-radius: clamp(28px, 3.4vw, 48px); border: 1px solid rgba(124,77,222,.12); background: radial-gradient(110% 70% at 78% 0%, rgba(247,206,164,.35), transparent 55%), linear-gradient(150deg, #f2ebfe 0%, #f7f1fb 45%, #fdf3ea 100%); padding: clamp(64px, calc(7.5 * var(--vu)), 112px) 0; }
#reserve.rwarm::before, #reserve.rwarm::after { content: none; }
#reserve.rwarm > .wrap { position: relative; z-index: 1; }
#reserve.rwarm .rliq--lead { margin-top: clamp(40px, calc(5 * var(--vu)), 60px); }
#reserve.rwarm .rcurve--after { margin-top: clamp(48px, calc(5.5 * var(--vu)), 80px); }
#reserve.rwarm .rproof { margin-top: clamp(36px, calc(4.4 * var(--vu)), 56px); border-top-color: rgba(124,77,222,.14); }
#reserve.rwarm .rsv-more { margin-top: clamp(32px, calc(4 * var(--vu)), 48px); background: rgba(124,77,222,.07); border-color: rgba(124,77,222,.16); }
#reserve.rwarm .rsv-more-tx { color: var(--ink-2); }
#reserve.rwarm .rsv-more-tx b { color: var(--ink); }
#reserve.rwarm .rsv-more-cta { background: var(--violet); color: #fff; box-shadow: 0 14px 30px -14px rgba(90,46,196,.55); }
#reserve.rwarm .rsv-more-cta:hover { color: #fff; }
#reserve.rwarm .rsv-chart.light { min-height: clamp(280px, calc(29 * var(--vu)), 370px); }
/* the pricing-curve panel stays deep violet */
.reserve.rwarm .rcurve { background: linear-gradient(165deg, #342058 0%, #2a1a4c 55%, #251543 100%); border: 1px solid rgba(216,197,253,.24); box-shadow: 0 40px 90px -44px rgba(40,20,90,.6), inset 0 1px 0 rgba(255,255,255,.08); }
.reserve.rwarm .rcurve::before { opacity: .5; }
.reserve.rwarm .rcurve h3, .reserve.rwarm .rcurve .rcurve-fact .v, .reserve.rwarm .rcurve .rcurve-metric .v { color: #f6f1ff; }
.reserve.rwarm .rcurve .rsv-kick2 { color: #c9b4ff; }
.reserve.rwarm .rcurve .rcurve-head p, .reserve.rwarm .rcurve .rcurve-vhead p { color: rgba(216,205,240,.74); }
.reserve.rwarm .rcurve .rcurve-facts2 { color: rgba(216,205,240,.8); }
.reserve.rwarm .rcurve .rcurve-facts2 b { color: #fff; }
.reserve.rwarm .rcurve .rcurve-read { border-left-color: rgba(216,197,253,.2); }
.reserve.rwarm .rcurve .rcurve-metric .k, .reserve.rwarm .rcurve .rcurve-metric .sub, .reserve.rwarm .rcurve .rcurve-note { color: rgba(201,187,230,.74); }
.reserve.rwarm .rcurve .rv-ylab, .reserve.rwarm .rcurve .rv-xlab { color: rgba(201,187,230,.64); }
.reserve.rwarm .rcurve .rv-drag { background: rgba(24,13,51,.9); color: #d9c6fe; border-color: rgba(216,197,253,.34); }
.reserve.rwarm .rcurve .rv-hdot { border-color: #2a1a4c; }
.reserve.rwarm .rcurve .rcurve-metric .chip { background: rgba(216,197,253,.16); color: #d9c6fe; }
.reserve.rwarm .rcurve .rv-grid { stroke: rgba(216,197,253,.17); }
.reserve.rwarm .rcurve .rv-now { stroke: rgba(216,197,253,.45); }
/* learn-more CTA band */
.rsv-more { display: flex; align-items: center; justify-content: space-between; gap: 20px 40px; flex-wrap: wrap; margin-top: clamp(40px, calc(5 * var(--vu)), 64px); padding: clamp(22px, calc(2.8 * var(--vu)), 32px) clamp(24px, calc(3 * var(--vu)), 40px); background: rgba(138,92,240,.12); border: 1px solid rgba(216,197,253,.2); border-radius: 22px; }
.rsv-more-tx { color: rgba(216,205,240,.82); font-size: 15.5px; line-height: 1.55; max-width: 52ch; text-wrap: pretty; }
.rsv-more-tx b { color: #f6f1ff; font-weight: 600; }
.rsv-more-cta { display: inline-flex; align-items: center; gap: 8px; padding: 12px 22px; border-radius: 999px; background: #fff; color: var(--violet, #6b3fd4); font-size: 14px; font-weight: 600; text-decoration: none; white-space: nowrap; box-shadow: 0 14px 34px -14px rgba(0,0,0,.6); transition: transform .18s ease, box-shadow .18s ease; }
.rsv-more-cta:hover { color: var(--violet, #6b3fd4); transform: translateY(-1px); box-shadow: 0 18px 40px -14px rgba(0,0,0,.7); }

/* ── community: decentralized banner ── */
.netdec { margin-top: clamp(40px, calc(5 * var(--vu)), 68px); }
.netdec-banner { position: relative; overflow: hidden; border-radius: clamp(18px, calc(2 * var(--vu)), 28px); aspect-ratio: 5 / 2; background: #efeaf7; }
.netdec-banner image-slot { display: block; filter: saturate(.82) brightness(.98); transition: filter .3s ease; }
.netdec-banner:hover image-slot { filter: saturate(.9) brightness(1); }
.netdec-banner img { width: 100%; height: 100%; object-fit: cover; display: block; }
.netdec-cap { position: absolute; left: clamp(14px, calc(1.8 * var(--vu)), 22px); bottom: clamp(14px, calc(1.8 * var(--vu)), 22px); display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; border-radius: 999px; font-family: var(--mono); font-size: 12px; letter-spacing: .01em; color: #fff; background: rgba(12,8,22,.5); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); border: 1px solid rgba(255,255,255,.18); }
.netdec-dot { width: 7px; height: 7px; border-radius: 50%; background: #4ade80; box-shadow: 0 0 0 3px rgba(74,222,128,.22); }
.netdec-tx { display: grid; grid-template-columns: minmax(0,.92fr) minmax(0,1.08fr); gap: clamp(28px, calc(4 * var(--vu)), 72px); align-items: start; margin-top: clamp(30px, calc(3.6 * var(--vu)), 48px); }
.netdec-tx .rsv-kick2 { color: var(--violet); }
.netdec-tx h3 { color: var(--ink); }
.netdec-tx h3 { font-size: clamp(25px, calc(2.9 * var(--vu)), 36px); letter-spacing: -0.032em; line-height: 1.08; margin-top: 12px; }
.netdec-body { display: flex; flex-direction: column; gap: 16px; }
.netdec-body p { color: var(--ink-2); font-size: 16.5px; line-height: 1.62; max-width: 54ch; text-wrap: pretty; }
@media (max-width: 820px) { .netdec-banner { aspect-ratio: 16 / 10; } .netdec-tx { grid-template-columns: 1fr; gap: 20px; } }

/* ── network: contributor roles ── */
.net-roles { margin-top: clamp(52px, calc(6 * var(--vu)), 80px); border-top: 1px solid var(--line); padding-top: clamp(36px, calc(4.4 * var(--vu)), 52px); }
.net-roles .rsv-kick2 { color: var(--violet); display: block; }
.net-roles-h { font-size: clamp(23px, calc(2.7 * var(--vu)), 32px); letter-spacing: -0.03em; margin-top: 12px; color: var(--ink); }
.net-roles-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(14px, calc(1.6 * var(--vu)), 20px); margin-top: clamp(24px, calc(3 * var(--vu)), 36px); }
.net-role { background: #fff; border: 1px solid var(--line); border-radius: clamp(16px, calc(1.8 * var(--vu)), 22px); box-shadow: var(--sh-card); padding: clamp(20px, calc(2.4 * var(--vu)), 28px); transition: transform .3s cubic-bezier(.16,.8,.24,1), box-shadow .3s ease, border-color .3s ease; }
.net-role:hover { transform: translateY(-6px); box-shadow: var(--sh-lift); border-color: transparent; }
.net-role-ic { display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; border-radius: 12px; background: var(--c-violet-bg); color: var(--violet); transition: transform .3s cubic-bezier(.16,.8,.24,1); }
.net-role:hover .net-role-ic { transform: scale(1.06) rotate(-3deg); }
.net-role--violet .net-role-ic { background: var(--c-violet-bg); color: var(--c-violet); }
.net-role--peach .net-role-ic { background: var(--c-peach-bg); color: var(--c-peach); }
.net-role--blue .net-role-ic { background: var(--c-blue-bg); color: var(--c-blue); }
.net-role--green .net-role-ic { background: var(--c-green-bg); color: var(--c-green); }
.net-role h4 { font-size: 17.5px; letter-spacing: -0.02em; margin-top: 16px; color: var(--ink); }
.net-role p { color: var(--ink-2); font-size: 14.5px; line-height: 1.56; margin-top: 8px; text-wrap: pretty; }
@media (max-width: 860px) { .net-roles-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px) { .net-roles-grid { grid-template-columns: 1fr; } }
/* oss-culture ledger — compact list beside prose */
.oss-grid { display: grid; grid-template-columns: minmax(0,1.06fr) minmax(0,.94fr); gap: clamp(32px, calc(4.4 * var(--vu)), 72px); align-items: start; }
.oss-prose p { color: var(--ink-2); font-size: 16px; line-height: 1.62; margin-top: 16px; max-width: 54ch; text-wrap: pretty; }
.oss-prose p:first-of-type { margin-top: 18px; }
.oss-ctas { display: flex; align-items: center; gap: 12px 24px; flex-wrap: wrap; margin-top: 26px; }
.oss-head { display: flex; align-items: center; justify-content: flex-end; }
.oss-file { font-family: var(--mono); font-size: 11.5px; letter-spacing: .1em; color: var(--ink-3); border: 1px solid var(--line-2); border-radius: 6px; padding: 5px 10px; }
.oss-ledger { margin-top: 14px; border-top: 1px solid var(--line-2); }
.oss-row { display: grid; grid-template-columns: 30px 32px 1fr auto; gap: 8px 14px; align-items: center; padding: 15px 4px; border-bottom: 1px solid var(--line-2); transition: background .15s ease, transform .25s cubic-bezier(.16,.8,.24,1); }
.oss-row:hover { background: rgba(124,77,222,.045); transform: translateX(4px); }
.oss-n { font-family: var(--mono); font-size: 12px; color: var(--ink-3); }
.oss-ic { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 9px; color: var(--violet); background: var(--c-violet-bg, rgba(124,77,222,.1)); }
.oss-ic--peach { color: #b4572c; background: var(--c-peach-bg, rgba(240,150,100,.14)); }
.oss-ic--blue { color: #2b5eb8; background: var(--c-blue-bg, rgba(90,140,230,.12)); }
.oss-ic--green { color: #1e7a4d; background: var(--c-green-bg, rgba(60,180,120,.12)); }
.oss-t { font-size: 15.5px; letter-spacing: -0.015em; color: var(--ink); }
.oss-mini { font-family: var(--mono); font-size: 11.5px; letter-spacing: .02em; color: var(--ink-3); white-space: nowrap; }
.oss-d { color: var(--ink-2); font-size: 14px; line-height: 1.5; text-wrap: pretty; }
@media (max-width: 860px) { .oss-grid { grid-template-columns: 1fr; gap: 28px; } .oss-head { justify-content: flex-start; } }/* spec chips under the no-owner narrative */
.oss-spec { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 26px; }
.oss-chip { font-family: var(--mono); font-size: 12px; letter-spacing: .02em; color: var(--ink-2); border: 1px solid var(--line-2); border-radius: 999px; padding: 6px 13px; background: rgba(255,255,255,.6); }




/* ── accent colour-coding on icon tiles (restores the open, accessible palette) ── */
.netcap[data-a="violet"] .netcap-ic { background: var(--c-violet-bg); color: var(--c-violet); box-shadow: inset 0 0 0 1px rgba(124,77,222,.12); }
.netcap[data-a="peach"] .netcap-ic { background: var(--c-peach-bg); color: var(--c-peach); box-shadow: inset 0 0 0 1px rgba(224,122,79,.14); }
.netcap[data-a="blue"] .netcap-ic { background: var(--c-blue-bg); color: var(--c-blue); box-shadow: inset 0 0 0 1px rgba(74,111,208,.14); }
.netcap[data-a="green"] .netcap-ic { background: var(--c-green-bg); color: var(--c-green); box-shadow: inset 0 0 0 1px rgba(31,138,91,.14); }
.netcap[data-a="gold"] .netcap-ic { background: var(--c-gold-bg); color: var(--c-gold); box-shadow: inset 0 0 0 1px rgba(194,144,43,.16); }
.netcap[data-a="magenta"] .netcap-ic { background: var(--c-magenta-bg); color: var(--c-magenta); box-shadow: inset 0 0 0 1px rgba(194,86,154,.14); }
.rproof-item[data-a="violet"] .rproof-ic { background: var(--c-violet-bg); color: var(--c-violet); }
.rproof-item[data-a="peach"] .rproof-ic { background: var(--c-peach-bg); color: var(--c-peach); }
.rproof-item[data-a="blue"] .rproof-ic { background: var(--c-blue-bg); color: var(--c-blue); }
.rproof-item[data-a="green"] .rproof-ic { background: var(--c-green-bg); color: var(--c-green); }
.rproof-item[data-a="gold"] .rproof-ic { background: var(--c-gold-bg); color: var(--c-gold); }
.fnd-mp[data-a="blue"] .fnd-mp-ic { background: var(--c-blue-bg); color: var(--c-blue); }
.fnd-mp[data-a="gold"] .fnd-mp-ic { background: var(--c-gold-bg); color: var(--c-gold); }
.fnd-mp[data-a="green"] .fnd-mp-ic { background: var(--c-green-bg); color: var(--c-green); }

/* ── sound money: dark full-bleed statement section ── */
.smny-sec { position: relative; overflow: hidden; isolation: isolate; padding: clamp(72px, calc(8.5 * var(--vu)), 128px) 0; color: #fff;
  background: radial-gradient(125% 130% at 22% -10%, #32204f 0%, #221541 38%, #180f2d 72%, var(--ink-panel) 100%); }
.smny-sec::after { content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none; background: radial-gradient(56% 62% at 76% 22%, rgba(216,197,253,.18), rgba(247,206,164,.06) 50%, transparent 74%); }
.smny { position: relative; z-index: 1; text-align: center; max-width: 860px; margin: 0 auto; }
.smny h2 { font-size: clamp(30px, calc(3.8 * var(--vu)), 52px); letter-spacing: -0.035em; color: #fff; margin-top: 16px; }
.smny h2 em { font-style: normal; }
.smny > p { color: rgba(255,255,255,.76); font-size: clamp(15.5px, calc(1.4 * var(--vu)), 18px); line-height: 1.6; max-width: 58ch; margin: 18px auto 0; text-wrap: pretty; }
.smny-chips { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px 26px; margin-top: 32px; }
.smny-chips span { display: inline-flex; align-items: center; gap: 8px; font-size: 13.5px; font-weight: 560; color: rgba(255,255,255,.88); }
.smny-chips svg { color: #d8c5fd; }

/* ── community: soft gradient surface, hero/currency-style ── */
.net-sec { background: linear-gradient(180deg, #ffffff 0%, #ffffff 30%, #f4eefc 58%, #efe8fb 78%, #ffffff 100%); overflow: hidden; }
.net-sec::before { content: ""; position: absolute; top: 10%; left: 50%; transform: translateX(-50%); width: 1400px; height: 760px; z-index: 0; pointer-events: none; background: radial-gradient(46% 52% at 50% 42%, rgba(216,197,253,.22) 0%, rgba(247,214,196,.1) 58%, rgba(255,255,255,0) 78%); }
.net-sec > .wrap { position: relative; z-index: 1; }

/* ── mobile-first layer (phones) ── */
@media (max-width: 560px) {
  /* hero: type-led, centered, art below CTA */
  .hero { padding-top: 88px; }
  .hero-banner { display: block; padding: 13px 16px; }
  .hb-text { display: block; font-size: 13px; line-height: 1.55; }
  .hb-tag { display: inline-flex; margin-right: 7px; vertical-align: 1px; }
  .hb-cta { display: inline-flex; margin-top: 9px; font-size: 13px; }
  .hero-object { order: 2; min-height: 0; margin-top: 26px; }
  .hero-copy .hero-sub { order: 3; }
  .hero-copy .hero-actions { order: 4; }
  .hero-in { display: flex; flex-direction: column; }
  .hero-copy { display: contents; }
  .hero-copy .pill, .hero-copy .hero-h { align-self: center; text-align: center; }
  .hero-copy .hero-sub, .hero-copy .hero-actions { align-self: center; text-align: center; }
  .hero-h { font-size: clamp(42px, 12.5vw, 52px); letter-spacing: -0.04em; }
  .hero-sub { font-size: 16.5px; max-width: 34ch; }
  .hero-actions { flex-direction: column; width: 100%; margin-top: 26px; }
  .hero-actions .btn { width: 100%; justify-content: center; }
  .hero-stack { width: min(230px, 62%); }
  /* cards that became rails keep breathing room */
  .props, .props--3 { grid-template-columns: 1fr; gap: 14px; }
  .netcap { min-height: 210px; }
  .netcap-foot { flex-wrap: wrap; gap: 10px; }
  /* reserve: compact 2-col readout, chart gets touch height */
  .rsv-chart { min-height: 210px; }
  .rcurve-read { display: grid; grid-template-columns: 1fr 1fr; gap: 18px 14px; }
  .rcurve-metric .v { font-size: 30px; }
  .rcurve-metric--r, .rcurve-note { grid-column: 1 / -1; }
  .rcurve-facts { flex-wrap: wrap; row-gap: 14px; }
  .rloop-step, .rcurve-steps .rloop-step { padding-top: 14px; }
  .rcurve-steps { display: none !important; }
  /* flipcash surface: pill + heading, then a cropped phone window, then copy */
  .product-showcase { display: flex; flex-direction: column; padding: 30px 22px 32px; }
  .ps-copy { display: contents; }
  .ps-copy .pill { order: 1; align-self: center; }
  .ps-copy .ps-h { order: 2; }
  .ps-visual { position: relative; order: 3; align-self: stretch; width: 100%; margin-top: 24px; height: 290px; min-height: 0; overflow: hidden; border-radius: 18px; background: radial-gradient(120% 130% at 50% -20%, rgba(124,77,222,.5), transparent 58%), var(--ink); }
  .ps-halo { display: none; }
  .ps-phone { display: none; }
  .ps-phone-slot { display: block; position: absolute; inset: 0; width: 100%; height: 100%; }
  .ps-copy .ps-lede { order: 5; margin-top: 22px; }
  .ps-copy .ps-feats { order: 6; }
  .ps-copy .badges { order: 4; }
  .ps-h { font-size: 30px; margin-top: 18px; }
  /* app badges side by side, compact */
  .ps-copy .badges { margin-top: 14px; flex-wrap: nowrap; gap: 8px; }
  .ps-copy .appbadge { flex: 1 1 0; min-width: 0; justify-content: center; padding: 9px 10px; gap: 8px; }
  .ps-copy .appbadge small { font-size: 9px; white-space: nowrap; }
  .ps-copy .appbadge b { font-size: 13.5px; white-space: nowrap; }
  /* USDF beat: card above the checklist */
  .rliq { display: flex; flex-direction: column; gap: 0; }
  .rliq-tx { display: contents; }
  .rliq-tx .rsv-kick2 { order: 1; }
  .rliq-tx h3 { order: 2; margin-top: 12px; }
  .rliq-tx > p { order: 3; margin-top: 16px; }
  .rliq-viz { order: 4; margin-top: 24px; }
  .rliq-tx .rliq-list { order: 5; margin-top: 26px; }
  /* community */
  .netdec-banner { aspect-ratio: 4 / 3; }
  .wild-feat { border-radius: 16px; }
  .wild-grid { gap: 12px; grid-auto-columns: min(62%, 230px) !important; }
  .net-join { padding: 24px 20px; }
  .net-join .btn { width: 100%; justify-content: center; }
  .net-chapters-flags { overflow-x: auto; flex-wrap: nowrap; margin: 18px calc(-1 * var(--gutter)) 0; padding: 2px var(--gutter) 8px; scrollbar-width: none; }
  .net-chapters-flags::-webkit-scrollbar { display: none; }
  .net-flag { flex: none; }
  /* social channels: one row of three */
  .net-channels { flex-wrap: nowrap; gap: 8px; width: 100%; }
  .net-channel { flex: 1 1 0; min-width: 0; justify-content: center; padding: 11px 8px; font-size: 13px; gap: 7px; white-space: nowrap; }
  /* trust bar: all four logos fit one row, smaller */
  .trust { padding: 26px 0; }
  .trust-lbl { font-size: 11px; letter-spacing: .08em; }
  .trust-row { overflow: visible; flex-wrap: nowrap; justify-content: space-between; margin: 0; padding: 0; gap: 14px; }
  .trust-item { flex: none; font-size: 12px; gap: 5px; }
  .trust-item img { height: 15px; }
  .trust-sep { display: none; }
  .trust-item .cb-word { font-size: 13.5px; }
  .cb-lockup svg { width: 15px; height: 15px; }
  .trust-item img[alt="Sec3"] { height: 15px !important; }
  .trust-item img[alt="Solana"] { height: 12px !important; }
  /* ticker slimmer */
  .ticker-item { font-size: 12.5px; }
  /* section 01 four properties: 2x2 compact tiles instead of a 1-col tower */
  .prop { padding: 22px 18px 24px; }
  .prop h3 { font-size: 16px; }
  .prop p { font-size: 13.2px; margin-top: 8px; }
  /* sound-money band */
  .sound { gap: 22px; }
  /* rloop steps: horizontal rail */
  .rloop { display: grid; grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: min(74%, 280px); overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-left: var(--gutter); margin-left: calc(-1 * var(--gutter)); margin-right: calc(-1 * var(--gutter)); padding: 0 var(--gutter) 16px; scrollbar-width: none; }
  .rloop::-webkit-scrollbar { display: none; }
  .rloop > * { scroll-snap-align: start; }
  .rcurve-steps { display: flex; flex-direction: column; gap: 22px; }
  /* community text block */
  .netdec-tx h3 br { display: none; }
  .netdec-body p { font-size: 15px; }
  /* FAQ */
  .faq2-qt { font-size: 15px; }
  /* floor shadow is for the floating phone; the cropped window doesn't want it */
  .ps-visual::after { display: none; }
  /* CONTRIBUTING ledger: drop the index column at phone width */
  .oss-row { grid-template-columns: 32px 1fr auto; gap: 8px 12px; }
  .oss-n { display: none; }
  .oss-mini { font-size: 10.5px; }
  .faq2-q { padding: 16px 0; }
  /* footer: statement scales, brief card breathes */
  .foot-statement { font-size: clamp(30px, 9vw, 38px); }
  .foot-brief { padding: 22px 20px; }
  .foot-grid { grid-template-columns: 1fr 1fr; gap: 26px 18px; }
  .foot-base { flex-direction: column; align-items: flex-start; gap: 14px; }
}

/* composited-clip fix — children that animate filter/transform get their own layer and ignore overflow:hidden, flashing square corners. clip-path clips composited layers. */
.wild-card > img { border-radius: inherit; clip-path: inset(0 round var(--r)); }
.wild-feat > img { border-radius: inherit; clip-path: inset(0 round var(--r-l)); }
.netdec-banner > image-slot, .netdec-banner img { border-radius: inherit; clip-path: inset(0 round clamp(18px, calc(2 * var(--vu)), 28px)); }
.net-fnd2-photo > image-slot, .netdec-photo2 > image-slot { border-radius: inherit; clip-path: inset(0 round clamp(18px, calc(2 * var(--vu)), 28px)); }

.hb-short { display: none; }
.hb-full { display: inline; }
.hb-clone { display: none; }
.hb-mar { display: inline; }
.hb-view { display: inline; }

.rsvh-short { display: none; }
.rsvh-full { display: inline; }

/* chapters panel sits as a full-width row inside the contributors grid */
.oss-grid > .net-chapters { grid-column: 1 / -1; margin-top: 0; }
.net-roles .net-chapters .rsv-kick2 { color: rgba(201,187,230,.78); }

/* contributors: bounty invitation panel (replaces the two small CTAs) */
/* narrow banner: label + copy left, Superteam mark and arrow right */
.oss-bounty { display: grid; grid-template-columns: 1fr auto auto; align-items: center; column-gap: 18px; row-gap: 6px; margin-top: clamp(22px, calc(2.6 * var(--vu)), 30px); padding: 15px 18px; border: 1px solid var(--line); border-radius: 16px; background: linear-gradient(168deg, #fff 0%, rgba(247,242,255,.9) 100%); box-shadow: var(--sh-card); transition: transform .22s cubic-bezier(.16,.8,.24,1), box-shadow .22s ease, border-color .22s ease; }
.oss-bounty:hover { transform: translateY(-3px); box-shadow: var(--sh-lift); border-color: transparent; }
.oss-bounty-live { grid-column: 1 / -1; display: inline-flex; align-items: center; gap: 7px; font-family: var(--mono); font-size: 10px; font-weight: 600; letter-spacing: .13em; text-transform: uppercase; color: #1c6f47; }
.oss-bounty-live .ld { width: 7px; height: 7px; border-radius: 50%; background: currentColor; box-shadow: 0 0 0 3px rgba(28,111,71,.16); }
.oss-bounty-tx b { display: block; font-size: 16.5px; font-weight: 650; letter-spacing: -0.022em; color: var(--ink); }
.oss-bounty-tx span { display: block; margin-top: 4px; font-size: 13.5px; line-height: 1.5; color: var(--ink-2); text-wrap: pretty; }
.oss-bounty-logo { height: 17px; width: auto; opacity: .85; flex: none; }
.oss-bounty-go { display: inline-flex; align-items: center; padding-left: 14px; margin-left: 2px; border-left: 1px solid var(--line); color: var(--violet); }
.oss-bounty:hover .oss-bounty-go svg { transform: translate(2px, -2px); transition: transform .2s ease; }

/* shared mobile: footer statement shouldn't run to three lines */
@media (max-width: 700px) {
  .foot-statement { font-size: clamp(18px, 6.5vw, 27px); line-height: 1.16; letter-spacing: -.042em; white-space: nowrap; }
}


.netdec-cap, .net-fnd2-photo .netdec-cap { border-radius: 999px; }
.wild-meta { border-radius: 0 0 var(--r) var(--r); }
.wild-feat-meta { border-radius: 0 0 var(--r-l) var(--r-l); }
.om2-photo-cap { border-radius: 999px; }

/* balance the contributors row: the ledger stretches to the prose column's height,
   so the bounty banner no longer leaves the right side short */
@media (min-width: 861px) {
  .oss-grid { align-items: stretch; }
  .oss-grid > .oss-list { display: flex; flex-direction: column; }
  .oss-list .oss-ledger { display: flex; flex-direction: column; flex: 1 1 auto; }
  .oss-list .oss-row { flex: 1 1 auto; align-content: center; min-height: 74px; }
}

/* live-from-chain badge on the reserve curve (reads the vault directly from Solana) */
.rv-live { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; color: var(--ink-2, #3c3552); }
.rv-live-dot { width: 7px; height: 7px; border-radius: 50%; background: #23b26d; box-shadow: 0 0 0 3px rgba(35,178,109,.16); animation: rvLivePulse 2.4s ease-in-out infinite; }
@media (prefers-reduced-motion: reduce) { .rv-live-dot { animation: none; } }
@keyframes rvLivePulse { 0%,100% { box-shadow: 0 0 0 3px rgba(35,178,109,.16); } 50% { box-shadow: 0 0 0 5px rgba(35,178,109,.07); } }

/* Reserve receipts: one quiet line — every claim, a link (dark panel context) */
.rsv-receipts { display: flex; align-items: baseline; gap: 14px; margin-top: clamp(28px, 3.5vw, 44px); padding-top: 16px; border-top: 1px solid rgba(255,255,255,.09); }
.rsv-receipts-k { flex: none; font-size: 10.5px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; color: rgba(255,255,255,.42); }
.rsv-receipts-line { display: flex; align-items: baseline; gap: 10px; white-space: nowrap; overflow-x: auto; scrollbar-width: none; font-family: var(--mono); font-size: 12px; color: rgba(255,255,255,.62); }
.rsv-receipts-line::-webkit-scrollbar { display: none; }
.rsv-receipts-line i { font-style: normal; color: rgba(255,255,255,.22); }
.rsv-receipts-line a { display: inline-flex; align-items: center; gap: 3px; color: rgba(255,255,255,.85); text-decoration: none; border-bottom: 1px solid rgba(255,255,255,.22); padding-bottom: 1px; transition: border-color .15s, color .15s; }
.rsv-receipts-line a:hover { color: #fff; border-color: rgba(255,255,255,.6); }
.rsv-receipts-line a svg { opacity: .6; }

/* live chip: overlays the chart, top right, one line always */
.rv-livechip { position: absolute; top: 10px; right: 10px; display: inline-flex; align-items: center; gap: 7px; padding: 6px 12px; border-radius: 999px; background: rgba(255,255,255,.055); border: 1px solid rgba(255,255,255,.13); backdrop-filter: blur(6px); font-family: var(--mono); font-size: 11px; letter-spacing: .04em; color: rgba(255,255,255,.82); white-space: nowrap; pointer-events: none; }
.rv-live-dot { width: 6px; height: 6px; border-radius: 50%; background: #2fd583; box-shadow: 0 0 0 3px rgba(47,213,131,.15); animation: rvLivePulse 2.4s ease-in-out infinite; }
@media (prefers-reduced-motion: reduce) { .rv-live-dot { animation: none; } }
@keyframes rvLivePulse { 0%,100% { box-shadow: 0 0 0 3px rgba(47,213,131,.15); } 50% { box-shadow: 0 0 0 5px rgba(47,213,131,.06); } }
@media (max-width: 640px) { .rsv-receipts { flex-direction: column; gap: 8px; } .rv-livechip { top: 8px; right: 8px; padding: 5px 10px; font-size: 10.5px; } }

/* x labels live inside the chart wrapper now (window edge changes with the zoom) */
.rv-xlab--in { position: absolute; left: 0; right: 0; bottom: -26px; }
.rcurve .rsv-chart { margin-bottom: 32px; } /* room for the in-chart x labels */

/* the curve's one control: a real slider under the chart */
.rv-slider { -webkit-appearance: none; appearance: none; width: 100%; height: 22px; margin: 2px 0 6px; background: transparent; cursor: pointer; }
.rv-slider::-webkit-slider-runnable-track { height: 6px; border-radius: 999px; background: linear-gradient(90deg, #8a5cf0, #f0a978 var(--fill), rgba(255,255,255,.12) var(--fill)); }
.rv-slider::-webkit-slider-thumb { -webkit-appearance: none; width: 22px; height: 22px; margin-top: -8px; border-radius: 50%; background: #fff; border: 2px solid #8a5cf0; box-shadow: 0 4px 14px -4px rgba(20,10,50,.55); transition: transform .12s; }
.rv-slider::-webkit-slider-thumb:hover { transform: scale(1.08); }
.rv-slider:active::-webkit-slider-thumb { transform: scale(1.12); border-color: #f0a978; }
.rv-slider::-moz-range-track { height: 6px; border-radius: 999px; background: rgba(255,255,255,.12); }
.rv-slider::-moz-range-progress { height: 6px; border-radius: 999px; background: linear-gradient(90deg, #8a5cf0, #f0a978); }
.rv-slider::-moz-range-thumb { width: 22px; height: 22px; border-radius: 50%; background: #fff; border: 2px solid #8a5cf0; box-shadow: 0 4px 14px -4px rgba(20,10,50,.55); }
.rv-slider:focus-visible { outline: 2px solid #8a5cf0; outline-offset: 4px; border-radius: 999px; }
.rcurve .rsv-chart { cursor: default; }
.rv-stage { display: flex; flex-direction: column; min-width: 0; }
.rv-stage .rsv-chart { flex: 1; }

/* slider wrapper: live-position marker + snap-back */
.rv-sliderwrap { position: relative; }
.rv-livechip--btn { pointer-events: auto; cursor: pointer; color: #fff; background: rgba(255,255,255,.09); border-color: rgba(255,255,255,.22); transition: background .15s, border-color .15s; }
.rv-livechip--btn:hover { background: rgba(255,255,255,.15); border-color: rgba(255,255,255,.38); }
