/* =============================================================
   Caribbean Social Studies — Custom Homepage CSS
   assets/css/custom-home.css
   ============================================================= */

@font-face {
  font-family: 'Parabole Display';
  src: url('../fonts/parabole-displayregular.otf') format('opentype');
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

:root {
  --navy: #0e0c22;
  --green: #00F060;
  --pink: #FF0090;
  --gold: #FFD047;
  --coral: #FF5F52;
  --blue-dark: #0a1628;
  --blue-mid: #0d1f3c;
  --faint: rgba(255,255,255,.07);
  --soft: rgba(255,255,255,.12);
  --muted: rgba(255,255,255,.48);
  --dim: rgba(255,255,255,.28);
  --pad: clamp(28px,5vw,80px);
  --t-lbl: clamp(11px,.9vw,12px);
  --t-body: clamp(12px,1vw,14px);
  --t-sub: clamp(14px,1.15vw,16px);
  --t-h3: clamp(16px,1.4vw,20px);
  --t-h2: clamp(24px,2.8vw,42px);
  --t-h1: clamp(30px,4.8vw,68px);
  --t-hero: clamp(32px,5.5vw,78px);
  --blue-accent: #1a3a6b;
  --t-label: clamp(11px,.9vw,12px);
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { background: #000; }
body { font-family: "Helvetica Neue", HelveticaNeue, Helvetica, Arial, sans-serif; background: var(--navy); color: #fff; -webkit-font-smoothing: antialiased; overflow-x: hidden; }

/* Ghost Source theme full-width reset */
body.home-page,
body.home-page .gh-outer,
body.home-page .gh-main,
body.home-page main,
body.home-page article { max-width: 100% !important; margin-left: 0 !important; margin-right: 0 !important; padding-left: 0 !important; padding-right: 0 !important; }
#ch-root { display: block; width: 100%; max-width: 100%; }

/* GRADIENT */
.gp { font-family: 'Parabole Display', 'Helvetica Neue', sans-serif; background: linear-gradient(90deg,#FF0090 0%,#FF5F52 33%,#FFD047 66%,#00F060 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }

/* REVEALS */
.fy { opacity: 0; transform: translateY(28px); transition: opacity .8s cubic-bezier(.16,1,.3,1), transform .8s cubic-bezier(.16,1,.3,1); }
.fx { opacity: 0; transform: translateX(-22px); transition: opacity .72s cubic-bezier(.16,1,.3,1), transform .72s cubic-bezier(.16,1,.3,1); }
.frx { opacity: 0; transform: translateX(22px); transition: opacity .72s cubic-bezier(.16,1,.3,1), transform .72s cubic-bezier(.16,1,.3,1); }
.on { opacity: 1 !important; transform: none !important; }
.d1 { transition-delay: .07s; }
.d2 { transition-delay: .14s; }
.d3 { transition-delay: .21s; }
.d4 { transition-delay: .28s; }
.d5 { transition-delay: .35s; }

/* NAV */
.nav { position: fixed; top: 0; left: 0; right: 0; z-index: 300; background: rgba(8,12,20,.96); backdrop-filter: blur(24px); -webkit-backdrop-filter: blur(24px); display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 20px; padding: 0 var(--pad); height: 54px; border-bottom: 1px solid var(--faint); }
.nav-logo { display: flex; align-items: center; gap: 9px; }
.nav-badge { background: var(--green); color: var(--navy); font-size: 11px; font-weight: 700; padding: 3px 8px; border-radius: 6px; letter-spacing: .04em; }
.nav-name { font-size: 11px; font-weight: 400; color: rgba(255,255,255,.4); line-height: 1.3; }
.nav-links { display: flex; justify-content: center; gap: clamp(14px,2vw,28px); }
.nl { font-size: 11px; color: rgba(255,255,255,.38); text-decoration: none; letter-spacing: .05em; text-transform: uppercase; transition: color .2s; }
.nl:hover { color: #fff; }
.nav-r { display: flex; align-items: center; gap: 10px; justify-content: flex-end; }
.n-search { color: rgba(255,255,255,.38); background: none; border: none; cursor: pointer; display: flex; align-items: center; transition: color .2s; padding: 4px; }
.n-search:hover { color: #fff; }
.n-si { font-size: 11px; color: rgba(255,255,255,.42); text-decoration: none; letter-spacing: .05em; text-transform: uppercase; transition: color .2s; }
.n-si:hover { color: #fff; }
.n-sub { background: var(--pink); color: #fff; border: none; padding: 6px 20px; border-radius: 100px; font-size: 11px; font-weight: 700; cursor: pointer; letter-spacing: .03em; transition: transform .22s cubic-bezier(.16,1,.3,1); font-family: inherit; }
.n-sub:hover { transform: scale(1.05); }

/* NAV BURGER — mobile only */
.nav-mobile-extra { display: none; }
/* shown in mobile via media query */
.nav-burger { display: none; flex-direction: column; justify-content: center; gap: 4px; background: none; border: none; cursor: pointer; padding: 6px; width: 32px; height: 32px; }
.nav-burger span { display: block; height: 1.5px; background: rgba(255,255,255,.6); border-radius: 2px; transition: all .28s cubic-bezier(.16,1,.3,1); }

/* HERO */
.hero { position: relative; height: 100vh; min-height: 600px; max-height: 980px; display: flex; flex-direction: column; justify-content: flex-end; overflow: hidden; padding-top: 54px; }
.hero-bg { position: absolute; inset: 0; background: #05120a; }
.hero-dot { position: absolute; inset: 0; background-image: radial-gradient(rgba(0,240,96,.1) 1px, transparent 1px); background-size: 42px 42px; }
.hero-img { position: absolute; inset: 0; will-change: transform; }
.hero-img svg { width: 100%; height: 100%; }
.hero-img img { width: 100%; height: 100%; object-fit: cover; }
.h-fb { position: absolute; bottom: 0; left: 0; right: 0; height: 55%; background: linear-gradient(to top, var(--navy) 10%, transparent); z-index: 2; }
.h-fl { position: absolute; left: 0; top: 0; bottom: 0; width: 5%; background: linear-gradient(to right, #05120a, transparent); z-index: 2; }
.h-fr { position: absolute; right: 0; top: 0; bottom: 0; width: 5%; background: linear-gradient(to left, #05120a, transparent); z-index: 2; }
.h-ft { position: absolute; top: 0; left: 0; right: 0; height: 28%; background: linear-gradient(to bottom, #05120a 0%, rgba(5,18,10,.6) 60%, transparent 100%); z-index: 2; }
.hero-c { position: relative; z-index: 5; padding: 0 var(--pad) clamp(36px,5vh,60px); display: flex; flex-direction: column; justify-content: flex-end; gap: clamp(16px,2vw,26px); }
.hero-h { font-weight: 700; font-size: clamp(32px,5.8vw,82px); line-height: .95; letter-spacing: -.036em; color: #fff; max-width: min(900px,88%); text-wrap: balance; }
.hero-bottom { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(24px,4vw,60px); align-items: center; }
.hero-right { display: flex; flex-direction: column; gap: 14px; }
.hero-sub { font-size: var(--t-body); color: var(--muted); line-height: 1.75; max-width: 48ch; }
.hero-ctas { display: flex; gap: 9px; flex-wrap: wrap; }

/* TICKER */
.ticker { padding: 10px 0; border-bottom: 1px solid var(--faint); overflow: hidden; }
.t-inner { display: inline-flex; gap: 38px; animation: tick 44s linear infinite; padding-left: var(--pad); }
@keyframes tick { to { transform: translateX(-50%); } }
.ts { font-size: 11px; color: rgba(255,255,255,.18); letter-spacing: .1em; text-transform: uppercase; white-space: nowrap; }
.tdot { color: var(--pink); }

/* SECTIONS */
.sec { padding: clamp(72px,8vw,112px) var(--pad); }
.sec0 { padding-top: 0; }

/* SECTION META */
.smeta { display: flex; align-items: center; gap: 14px; margin-bottom: clamp(40px,5vw,72px); flex-wrap: nowrap; }
.sm-lbl { font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: rgba(255,255,255,.22); white-space: nowrap; }
.sm-rule { flex: 1; height: 1px; background: rgba(255,255,255,.07); min-width: 0; }
.sm-r { font-size: 11px; color: rgba(255,255,255,.14); white-space: nowrap; }

/* TYPE */
.dh { font-weight: 700; font-size: var(--t-h1); line-height: .97; letter-spacing: -.032em; }
.sh { font-weight: 700; font-size: var(--t-h2); line-height: 1.05; letter-spacing: -.026em; text-wrap: balance; }
.bt { font-size: var(--t-body); color: var(--muted); line-height: 1.88; text-wrap: pretty; max-width: 46ch; }

/* BUTTONS */
.btn-pink { background: var(--pink); color: #fff; border: none; padding: 11px 26px; border-radius: 100px; font-size: var(--t-body); font-weight: 600; cursor: pointer; font-family: inherit; transition: transform .22s cubic-bezier(.16,1,.3,1); }
.btn-pink:hover { transform: scale(1.05); }
.btn-ghost { background: transparent; color: #fff; border: 1.5px solid rgba(255,255,255,.25); padding: 11px 26px; border-radius: 100px; font-size: var(--t-body); font-weight: 600; cursor: pointer; font-family: inherit; transition: border-color .22s, transform .22s; }
.btn-ghost:hover { border-color: rgba(255,255,255,.6); transform: scale(1.02); }
.btn-green { background: transparent; color: var(--green); border: 1.5px solid rgba(0,240,96,.35); padding: 11px 26px; border-radius: 100px; font-size: var(--t-body); font-weight: 600; cursor: pointer; font-family: inherit; transition: border-color .22s, transform .22s; }
.btn-green:hover { border-color: var(--green); transform: scale(1.02); }
.ctar { display: flex; gap: 9px; flex-wrap: wrap; margin-top: 20px; }
.cta-note { font-size: 11px; color: rgba(255,255,255,.3); margin-top: 7px; }

/* GRIDS */
.g2 { display: grid; grid-template-columns: 1.2fr .8fr; gap: clamp(24px,4.5vw,72px); }
.g3 { display: grid; grid-template-columns: repeat(3,1fr); gap: 3px; }
.g4 { display: grid; grid-template-columns: repeat(4,1fr); gap: 3px; }
.g3-mag { display: grid; grid-template-columns: 1.8fr 1fr 1fr; grid-template-rows: auto auto; gap: 3px; }
.g3-mag .mc:first-child { grid-row: span 2; }

/* OPPORTUNITY */
.opp-sec { background: var(--blue-dark); padding: clamp(72px,8vw,112px) var(--pad); border-top: 1px solid rgba(0,240,96,.1); }
.ostat { border: 1px solid rgba(0,240,96,.12); background: var(--blue-mid); padding: clamp(16px,2vw,26px); position: relative; overflow: hidden; transition: border-color .25s, transform .3s cubic-bezier(.16,1,.3,1); }
.ostat:hover { border-color: rgba(0,240,96,.3); transform: translateY(-3px); }
.ostat-n { font-weight: 700; font-size: clamp(28px,4vw,54px); line-height: 1; letter-spacing: -.028em; margin-bottom: 5px; }
.ostat-d { font-size: 11px; color: rgba(255,255,255,.45); line-height: 1.55; }
.prog-track { width: 100%; height: clamp(14px,1.6vw,22px); background: rgba(0,240,96,.08); border-radius: 100px; overflow: hidden; margin: clamp(18px,2.2vw,28px) 0 8px; border: 1px solid rgba(0,240,96,.15); }
.prog-fill { height: 100%; width: 0%; background: linear-gradient(90deg,#FF0090,#FFD047,#00F060); border-radius: 100px; transition: width 1.8s cubic-bezier(.16,1,.3,1); }
.prog-lbl { font-size: var(--t-sub); font-weight: 700; color: rgba(255,255,255,.8); }

/* ACCORDION */
.wacc-item { border-bottom: 1px solid var(--faint); }
.wh { display: flex; justify-content: space-between; align-items: center; padding: clamp(11px,1.3vw,16px) 0; cursor: pointer; }
.wt { font-size: var(--t-sub); font-weight: 500; color: rgba(255,255,255,.7); transition: color .22s; }
.wt.op { color: #fff; }
.wa { width: clamp(20px,1.7vw,24px); height: clamp(20px,1.7vw,24px); border-radius: 50%; border: 1px solid rgba(255,255,255,.15); display: flex; align-items: center; justify-content: center; font-size: 11px; color: rgba(255,255,255,.4); flex-shrink: 0; transition: all .3s cubic-bezier(.16,1,.3,1); }
.wa.op { background: var(--green); border-color: var(--green); color: var(--navy); transform: rotate(45deg); }
.wb { max-height: 0; overflow: hidden; transition: max-height .42s cubic-bezier(.16,1,.3,1); }
.wb.op { max-height: 300px; }
.wb-in { padding-bottom: clamp(12px,1.5vw,18px); }
.wb-in p { font-size: var(--t-body); color: rgba(255,255,255,.44); line-height: 1.85; margin-bottom: 9px; }
.wtags { display: flex; gap: 6px; flex-wrap: wrap; }
.wtag { font-size: 11px; padding: 3px 9px; border: 1px solid rgba(255,255,255,.14); border-radius: 100px; color: rgba(255,255,255,.42); }

/* PROOF CARDS */
.proof-grid-subtle { display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; }
.proof-card { border: 1px solid rgba(255,255,255,.08); border-radius: 18px; padding: 20px 22px 22px; min-height: 0; transition: border-color .25s, transform .3s cubic-bezier(.16,1,.3,1), background .25s; }
.proof-card:hover { border-color: rgba(255,255,255,.16); transform: translateY(-3px); }
.proof-meta { font-size: 10px; letter-spacing: .14em; text-transform: uppercase; color: rgba(255,255,255,.4); margin-bottom: 12px; line-height: 1.35; }
.proof-name { font-size: clamp(22px,2.1vw,34px); font-weight: 700; letter-spacing: -.03em; margin-bottom: 3px; line-height: 1; }
.proof-role { font-size: 13px; color: rgba(255,255,255,.46); margin-bottom: 14px; }
.proof-divider { width: 42px; height: 3px; border-radius: 999px; margin-bottom: 14px; }
.proof-headline { font-size: clamp(17px,1.45vw,23px); font-weight: 700; line-height: 1.18; letter-spacing: -.02em; margin-bottom: 8px; max-width: 16ch; text-wrap: balance; }
.proof-body { font-size: 13px; color: rgba(255,255,255,.54); line-height: 1.65; max-width: 24ch; }
.proof-rihanna { background: linear-gradient(180deg,rgba(255,0,168,.09) 0%,rgba(255,0,168,.04) 100%), rgba(255,255,255,.02); }
.proof-kai { background: linear-gradient(180deg,rgba(0,240,96,.08) 0%,rgba(0,240,96,.03) 100%), rgba(255,255,255,.02); }
.proof-herc { background: linear-gradient(180deg,rgba(244,200,66,.08) 0%,rgba(244,200,66,.03) 100%), rgba(255,255,255,.02); }
@media (max-width: 900px) { .proof-grid-subtle { grid-template-columns: 1fr; } .proof-headline, .proof-body { max-width: none; } }

/* PARALLAX BANDS */
.pband { position: relative; overflow: hidden; }
.pband-h { height: clamp(344px,39.6vw,582px); }
.pb-i { position: absolute; inset: -20%; will-change: transform; }
.pb-i svg { width: 100%; height: 100%; }
.pb-i img { width: 100%; height: 100%; object-fit: cover; object-position: center 30%; }
.pb-i > div { width: 100%; height: 100%; background-size: cover; background-position: center 30%; }
.pb-ov { position: absolute; inset: 0; background: linear-gradient(to right, rgba(8,12,20,.9) 0%, rgba(8,12,20,.28) 50%, rgba(8,12,20,.9) 100%); z-index: 2; }
.pb-tx { position: absolute; inset: 0; z-index: 3; display: flex; align-items: center; padding: 0 var(--pad); }
.pb-2col { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(24px,4vw,64px); align-items: center; width: 100%; }
.pb-q { font-weight: 700; font-size: clamp(26px,3.4vw,52px); line-height: 1.08; letter-spacing: -.026em; color: #fff; }

/* AUDIENCE */
.aud-grid { display: grid; grid-template-columns: 1.2fr .8fr; gap: clamp(24px,4.5vw,72px); align-items: start; margin-bottom: clamp(32px,4vw,52px); }
.pill-lbl { display: inline-block; background: var(--green); color: var(--navy); font-size: 11px; font-weight: 700; padding: 5px 14px; border-radius: 100px; letter-spacing: .03em; margin-bottom: clamp(10px,1.2vw,14px); }
.pill-pink { background: var(--pink); color: #fff; }

/* OFFERING TILES — solid brand colors */
.ot { position: relative; height: clamp(200px,20vw,280px); overflow: hidden; cursor: pointer; border-radius: 14px; display: flex; flex-direction: column; transition: transform .3s cubic-bezier(.16,1,.3,1), box-shadow .3s; }
.ot:hover { transform: translateY(-6px); box-shadow: 0 18px 40px rgba(0,0,0,.28); }
/* Top colored accent bar via ::before */
.ot::before { content: ''; display: block; height: 7px; flex-shrink: 0; border-radius: 14px 14px 0 0; }
/* Hide image/overlay layers */
.ot-m { display: none !important; }
.ot-ov { display: none !important; }
/* Text block — centered */
.ot-tx { flex: 1; display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; padding: clamp(20px,2.5vw,32px); }
.ot-lbl { font-size: 11px; letter-spacing: .14em; text-transform: uppercase; margin-bottom: 12px; opacity: .72; font-weight: 600; }
.ot-t { font-size: clamp(18px,1.8vw,26px); font-weight: 700; line-height: 1.2; letter-spacing: -.02em; text-wrap: balance; }
/* Color theming per slot — outline only, white text, dark bg */
.ot-grid .ot:nth-child(1), .ot.d1 { background: rgba(255,0,144,.07); border: 2px solid #FF0090; color: #fff; }
.ot-grid .ot:nth-child(1)::before, .ot.d1::before { background: #FF0090; }
.ot-grid .ot:nth-child(2), .ot.d2 { background: rgba(0,240,96,.07); border: 2px solid #00F060; color: #fff; }
.ot-grid .ot:nth-child(2)::before, .ot.d2::before { background: #00F060; }
.ot-grid .ot:nth-child(3), .ot.d3 { background: rgba(255,208,71,.07); border: 2px solid #FFD047; color: #fff; }
.ot-grid .ot:nth-child(3)::before, .ot.d3::before { background: #FFD047; }
.ot-grid .ot:nth-child(4), .ot.d4 { background: rgba(255,95,82,.07); border: 2px solid #FF5F52; color: #fff; }
.ot-grid .ot:nth-child(4)::before, .ot.d4::before { background: #FF5F52; }
.ot-lbl { opacity: .65; }
.ot-t { color: #fff; }

/* COMMUNITY TILES */
.sub-lbl { font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: rgba(255,255,255,.22); margin-bottom: clamp(10px,1.2vw,16px); }
.ct { border: 1px solid var(--faint); border-radius: 10px; overflow: hidden; transition: border-color .25s, transform .3s cubic-bezier(.16,1,.3,1); cursor: pointer; display: flex; flex-direction: column; }
.ct:hover { border-color: rgba(255,255,255,.22); transform: translateY(-3px); }
.ct-img { width: 100%; aspect-ratio: 4/3; background: rgba(0,240,96,.08); border-radius: 8px 8px 0 0; display: flex; align-items: center; justify-content: center; font-size: 11px; color: rgba(0,240,96,.4); letter-spacing: .08em; text-transform: uppercase; border-bottom: 1px solid var(--faint); }
.ct-img-circ { aspect-ratio: 1/1; border-radius: 50%; overflow: hidden; }
.ct-info { padding: clamp(10px,1.2vw,14px); }
.ct-n { font-size: var(--t-body); font-weight: 600; margin-bottom: 2px; }
.ct-r { font-size: 11px; color: rgba(255,255,255,.36); }
.ct-l { font-size: 11px; color: var(--green); margin-top: 2px; }

/* HORIZONTAL SCROLL */
.h-scroll-wrap { overflow-x: auto; overflow-y: visible; -webkit-overflow-scrolling: touch; cursor: grab; user-select: none; scrollbar-width: none; -ms-overflow-style: none; }
.h-scroll-wrap::-webkit-scrollbar { display: none; }
.h-scroll-wrap:active { cursor: grabbing; }
.h-scroll-inner { display: flex; gap: clamp(10px,1.2vw,16px); }
.h-ct { flex-shrink: 0; width: clamp(160px,16vw,210px); }
.h-scroll-full { margin-left: calc(-1 * var(--pad)); margin-right: calc(-1 * var(--pad)); }
.h-scroll-full .h-scroll-inner { padding-left: var(--pad); padding-right: var(--pad); }

/* IMPACT CARDS */
.impact-card { border-radius: 12px; overflow: hidden; cursor: pointer; border: 1px solid var(--faint); transition: border-color .25s, opacity .7s cubic-bezier(.16,1,.3,1), transform .7s cubic-bezier(.16,1,.3,1); opacity: 0; transform: translateY(40px); }
.impact-card.ic-on { opacity: 1; transform: none; }
.impact-card:hover { border-color: rgba(255,255,255,.18); }
.impact-card-img { width: 100%; height: clamp(200px,22vw,310px); overflow: hidden; }
.impact-card-img svg { width: 100%; height: 100%; display: block; transition: transform .55s cubic-bezier(.16,1,.3,1); }
.impact-card-img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .55s cubic-bezier(.16,1,.3,1); }
.impact-card:hover .impact-card-img svg,
.impact-card:hover .impact-card-img img { transform: scale(1.03); }
.impact-card-bar { display: grid; grid-template-columns: 1fr auto; align-items: start; gap: 20px; padding: clamp(14px,1.8vw,22px) clamp(16px,2vw,26px); background: rgba(255,255,255,.02); border-top: 1px solid var(--faint); }
.impact-card-tag { font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--pink); margin-bottom: 5px; }
.impact-card-t { font-size: clamp(16px,1.8vw,24px); font-weight: 700; margin-bottom: 4px; }
.impact-card-sub { font-size: var(--t-body); color: var(--muted); }
.impact-topics { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 10px; }
.impact-topic { font-size: 11px; padding: 4px 11px; border: 1px solid rgba(255,255,255,.14); border-radius: 100px; color: rgba(255,255,255,.5); }
.impact-read { background: var(--pink); color: #fff; border: none; padding: clamp(10px,1.1vw,14px) clamp(20px,2.5vw,36px); border-radius: 100px; font-size: var(--t-body); font-weight: 700; cursor: pointer; white-space: nowrap; font-family: inherit; transition: transform .22s; flex-shrink: 0; align-self: center; text-decoration: none; display: inline-block; }
.impact-read:hover { transform: scale(1.04); }

/* TEAM / PERSON CARDS */
.person-card { border: 1px solid var(--faint); border-radius: 12px; overflow: hidden; transition: border-color .25s, transform .3s cubic-bezier(.16,1,.3,1); }
.person-card:hover { border-color: rgba(255,255,255,.22); transform: translateY(-4px); }
.person-img { width: 100%; aspect-ratio: 1/1; overflow: hidden; background: rgba(0,240,96,.06); display: flex; align-items: center; justify-content: center; }
.person-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.person-img svg { width: 100%; height: 100%; }
.person-body { padding: clamp(14px,1.6vw,20px); }
.person-name { font-size: var(--t-sub); font-weight: 700; margin-bottom: 4px; }
.person-role { font-size: 11px; color: rgba(255,255,255,.42); line-height: 1.5; }
.ct-img img { width: 100%; height: 100%; object-fit: contain; padding: 8px; }

/* TRACTION */
.traction-sec { position: relative; overflow: hidden; padding: clamp(72px,8vw,112px) var(--pad); }
.traction-bg { position: absolute; inset: -16%; will-change: transform; z-index: 0; }
.traction-bg svg { width: 100%; height: 100%; }
.traction-bg > div { width: 100%; height: 100%; }
.traction-ov { position: absolute; inset: 0; background: rgba(8,12,20,.78); z-index: 1; }
.traction-c { position: relative; z-index: 2; }
.tr-header { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(24px,4.5vw,72px); margin-bottom: clamp(32px,4vw,56px); }
.tr-g { display: grid; grid-template-columns: repeat(3,1fr); gap: 3px; }
.trb { border: 1px solid rgba(255,255,255,.1); background: rgba(8,12,20,.5); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); padding: clamp(22px,2.8vw,38px); transition: border-color .25s, transform .3s cubic-bezier(.16,1,.3,1); }
.trb:hover { border-color: rgba(255,255,255,.22); transform: translateY(-4px); }
.trn { font-weight: 700; font-size: clamp(52px,8vw,108px); line-height: 1; letter-spacing: -.045em; margin-bottom: 8px; }
.trd { font-size: var(--t-body); color: rgba(255,255,255,.38); line-height: 1.65; }

/* MAGAZINE — light / white theme */
.mag-sec { background: #fff; color: #080C14; padding: clamp(72px,8vw,112px) var(--pad); border-top: 1px solid rgba(8,12,20,.08); }
.mag-sec .smeta .sm-lbl { color: rgba(8,12,20,.42); }
.mag-sec .smeta .sm-rule { background: rgba(8,12,20,.08); }
.mag-sec .smeta .sm-r { color: rgba(8,12,20,.28); }
.mag-sec .sh { color: #080C14; }
.mag-sec .bt { color: rgba(8,12,20,.52); }
.mag-sec .btn-ghost { border-color: rgba(8,12,20,.18); color: #080C14; background: transparent; }
.mag-sec .btn-ghost:hover { border-color: rgba(8,12,20,.38); transform: scale(1.02); }
.mc { border: 1px solid rgba(8,12,20,.1); overflow: hidden; cursor: pointer; border-radius: 8px; background: rgba(8,12,20,.02); transition: transform .35s cubic-bezier(.16,1,.3,1), border-color .25s; display: flex; flex-direction: column; }
.mc:hover { transform: translateY(-5px); border-color: rgba(8,12,20,.22); }
.mc-img { overflow: hidden; flex-shrink: 0; }
.mc-img svg { width: 100%; display: block; transition: transform .52s cubic-bezier(.16,1,.3,1); }
.mc-img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .52s cubic-bezier(.16,1,.3,1); }
.mc:hover .mc-img svg, .mc:hover .mc-img img { transform: scale(1.05); }
.mc-tall { height: clamp(220px,26vw,360px); }
.mc-short { height: clamp(95px,9.5vw,132px); }
.mc-body { padding: clamp(12px,1.3vw,16px); flex: 1; }
.mc-cat { font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: #8a6a00; margin-bottom: 4px; }
.mc-t { font-size: var(--t-body); font-weight: 500; line-height: 1.4; color: #080C14; }
.mc-t-lg { font-size: clamp(14px,1.4vw,20px); font-weight: 700; line-height: 1.22; letter-spacing: -.018em; color: #080C14; }
.mc-ex { font-size: 11px; color: rgba(8,12,20,.56); line-height: 1.65; margin-top: 5px; }
.mc-m { font-size: 11px; color: rgba(8,12,20,.34); margin-top: 6px; }

/* EVENTS */
.evrow { display: grid; grid-template-columns: clamp(52px,6vw,72px) 1fr auto; align-items: center; gap: clamp(12px,1.5vw,20px); padding: clamp(14px,1.7vw,20px) 0; border-bottom: 1px solid var(--faint); transition: background .2s, padding-left .22s; }
.evrow:hover { background: rgba(255,255,255,.018); padding-left: 5px; }
.evd { font-weight: 700; font-size: clamp(17px,2vw,24px); color: var(--pink); line-height: 1.1; letter-spacing: -.02em; }
.evn { font-size: var(--t-sub); font-weight: 600; }
.evl { font-size: 11px; color: var(--dim); margin-top: 2px; }
.evb { font-size: 11px; border: 1px solid rgba(255,255,255,.15); padding: 6px 14px; border-radius: 100px; color: rgba(255,255,255,.44); cursor: pointer; background: transparent; white-space: nowrap; font-family: inherit; transition: border-color .2s, color .2s; }
.evb:hover { border-color: var(--pink); color: var(--pink); }

/* UNINHIBITED PLAY */
.up-sec { position: relative; overflow: hidden; padding: clamp(72px,8vw,112px) var(--pad); }
.up-bg { position: absolute; inset: -20%; will-change: transform; z-index: 0; }
.up-bg svg, .up-bg img { width: 100%; height: 100%; object-fit: cover; object-position: center 30%; }
.up-bg > div { width: 100%; height: 100%; background-size: cover; background-position: center 30%; }
.up-ov { position: absolute; inset: 0; background: linear-gradient(135deg, rgba(8,12,20,.88) 0%, rgba(0,30,15,.72) 100%); z-index: 1; }
.up-c { position: relative; z-index: 2; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 32px; }
.up-eye { font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--green); margin-bottom: 6px; display: flex; align-items: center; gap: 8px; }
.up-badge { font-size: 10px; padding: 2px 8px; border-radius: 100px; background: rgba(0,240,96,.1); color: var(--green); border: 1px solid rgba(0,240,96,.2); }
.up-t { font-size: clamp(18px,2.4vw,36px); font-weight: 700; letter-spacing: -.02em; margin-bottom: 8px; }
.up-b { font-size: var(--t-body); color: rgba(255,255,255,.5); line-height: 1.7; max-width: 560px; }

/* READY / GET STARTED */
.ready-3 { display: grid; grid-template-columns: 1fr 1fr; gap: 3px; margin-top: clamp(28px,3.5vw,48px); }
.rg { border: 1px solid var(--faint); padding: clamp(20px,2.5vw,30px); }
.rg-c { background: rgba(255,255,255,.02); }
.rg-eye { font-size: 11px; letter-spacing: .1em; text-transform: uppercase; margin-bottom: 12px; display: flex; align-items: center; gap: 7px; }
.rg-p { color: var(--pink); }
.rg-p::before { content: ''; width: 12px; height: 1px; background: var(--pink); display: block; }
.rg-g { color: var(--green); }
.rg-g::before { content: ''; width: 12px; height: 1px; background: var(--green); display: block; }
.rg-h { font-size: var(--t-h3); font-weight: 700; letter-spacing: -.016em; margin-bottom: 14px; }
.rg-act { display: grid; grid-template-columns: 17px 1fr; gap: 8px; align-items: flex-start; font-size: var(--t-body); color: rgba(255,255,255,.5); padding: 8px 0; border-bottom: 1px solid var(--faint); cursor: pointer; transition: color .2s, padding-left .22s; }
.rg-act:last-child { border-bottom: none; }
.rg-act:hover { color: #fff; padding-left: 4px; }
.rg-ic { width: 17px; height: 17px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 9px; flex-shrink: 0; margin-top: 2px; }
.rg-ic-p { border: 1px solid rgba(255,0,144,.22); color: var(--pink); }
.rg-ic-g { border: 1px solid rgba(0,240,96,.22); color: var(--green); }
.rg-note { font-size: 11px; color: rgba(255,255,255,.25); margin-top: 2px; display: block; }

/* CONTACT */
.contact-sec { border-top: 1px solid var(--faint); padding: clamp(72px,8vw,112px) var(--pad); }
.contact-inner { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(28px,5vw,80px); }
.cf-t { font-size: var(--t-h2); font-weight: 700; letter-spacing: -.022em; margin-bottom: 8px; }
.cf-s { font-size: var(--t-body); color: rgba(255,255,255,.36); line-height: 1.65; margin-bottom: 24px; }
.fr { margin-bottom: 10px; }
.fl { font-size: 11px; letter-spacing: .06em; text-transform: uppercase; color: rgba(255,255,255,.24); margin-bottom: 4px; display: block; }
.fi { width: 100%; background: rgba(255,255,255,.04); border: 1.5px solid rgba(255,255,255,.08); border-radius: 6px; padding: 10px 13px; color: #fff; font-size: var(--t-body); font-family: inherit; outline: none; transition: border-color .22s; }
.fi:focus { border-color: rgba(255,0,144,.42); }
.fta { width: 100%; background: rgba(255,255,255,.04); border: 1.5px solid rgba(255,255,255,.08); border-radius: 6px; padding: 10px 13px; color: #fff; font-size: var(--t-body); font-family: inherit; outline: none; resize: vertical; min-height: 80px; transition: border-color .22s; }
.fta:focus { border-color: rgba(255,0,144,.42); }
.fsub { width: 100%; background: var(--pink); color: #fff; border: none; padding: 12px; border-radius: 100px; font-size: var(--t-body); font-weight: 700; cursor: pointer; margin-top: 4px; font-family: inherit; transition: transform .22s; }
.fsub:hover { transform: scale(1.02); }
.contact-alt { display: flex; flex-direction: column; gap: 16px; justify-content: center; }
.ca-email { font-size: var(--t-body); color: var(--green); text-decoration: none; }
.ca-email:hover { text-decoration: underline; }
.ca-note { font-size: 11px; color: rgba(255,255,255,.3); margin-top: 4px; }

/* FOOTER */
.footer { border-top: 1px solid var(--faint); padding: clamp(36px,4.5vw,58px) var(--pad); display: grid; grid-template-columns: 1.8fr 1fr 1fr 1fr; gap: clamp(18px,2.5vw,28px); }
.flogo-img { width: 48px; height: 48px; background: var(--green); border-radius: 8px; display: flex; align-items: center; justify-content: center; font-size: 14px; font-weight: 700; color: var(--navy); margin-bottom: 10px; }
.fsite { font-size: 13px; font-weight: 600; color: #fff; margin-bottom: 5px; }
.fdesc { font-size: 11px; color: rgba(255,255,255,.26); line-height: 1.7; max-width: 200px; margin-bottom: 14px; }
.fnl-lbl { font-size: 11px; color: rgba(255,255,255,.2); letter-spacing: .06em; text-transform: uppercase; margin-bottom: 7px; }
.fnl-row { display: flex; gap: 3px; }
.fnl-in { flex: 1; background: rgba(255,255,255,.05); border: 1px solid var(--faint); border-radius: 4px; padding: 7px 10px; color: #fff; font-size: 11px; font-family: inherit; outline: none; }
.fnl-btn { background: var(--green); color: var(--navy); border: none; padding: 7px 12px; border-radius: 4px; font-size: 11px; font-weight: 700; cursor: pointer; white-space: nowrap; font-family: inherit; }
.fsocials { display: flex; gap: 10px; margin-top: 12px; }
.fsoc { width: 32px; height: 32px; border-radius: 50%; border: 1px solid rgba(255,255,255,.15); display: flex; align-items: center; justify-content: center; cursor: pointer; transition: border-color .2s, background .2s; text-decoration: none; color: rgba(255,255,255,.4); }
.fsoc:hover { border-color: rgba(255,255,255,.4); background: rgba(255,255,255,.05); color: #fff; }
.fsoc svg { width: 14px; height: 14px; }
.fc h5 { font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: rgba(255,255,255,.22); margin-bottom: 10px; }
.fc a { display: block; font-size: var(--t-body); color: rgba(255,255,255,.36); text-decoration: none; margin-bottom: 6px; transition: color .2s; word-break: break-all; }
.fc a:hover { color: #fff; }
.fbtm { border-top: 1px solid var(--faint); padding: 11px var(--pad); display: flex; justify-content: space-between; font-size: 11px; color: rgba(255,255,255,.18); flex-wrap: wrap; gap: 6px; }
.fbtm a { color: rgba(255,255,255,.18); text-decoration: none; transition: color .2s; }
.fbtm a:hover { color: rgba(255,255,255,.5); }

/* MODALS */
.modal-bg { display: none; position: fixed; inset: 0; background: rgba(8,12,20,.92); z-index: 600; align-items: center; justify-content: center; padding: 20px; }
.modal-bg.open { display: flex; }
.modal-card { background: #0d1520; border: 1px solid rgba(0,240,96,.18); border-radius: 12px; padding: clamp(24px,3vw,34px); width: min(440px,95%); position: relative; animation: mdin .5s cubic-bezier(.16,1,.3,1); }
@keyframes mdin { from { opacity: 0; transform: translateY(22px); } to { opacity: 1; transform: none; } }
.modal-x { position: absolute; top: 11px; right: 14px; background: none; border: none; color: rgba(255,255,255,.3); font-size: 22px; cursor: pointer; line-height: 1; padding: 4px 8px; transition: color .2s; }
.modal-x:hover { color: #fff; }
.modal-eye { font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--green); margin-bottom: 6px; }
.modal-t { font-size: clamp(18px,1.8vw,24px); font-weight: 700; margin-bottom: 5px; }
.modal-s { font-size: var(--t-body); color: rgba(255,255,255,.38); line-height: 1.65; margin-bottom: 18px; }
.contact-modal .modal-card { width: min(520px,95%); }

/* ============================================================
   MOBILE RESPONSIVE
   ============================================================ */
@media (max-width: 900px) {
  /* NAV — full-screen mobile menu */
  .nav { grid-template-columns: 1fr auto; height: 54px; }
  .nav-links {
    display: none;
    position: fixed;
    top: 54px; left: 0; right: 0; bottom: 0;
    background: rgba(8,12,20,.99);
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    padding: 24px var(--pad) 40px;
    gap: 0;
    overflow-y: auto;
    z-index: 299;
    border-top: 1px solid var(--faint);
  }
  .nav-links.open { display: flex; }
  .nl { font-size: 15px; padding: 14px 0; border-bottom: 1px solid var(--faint); width: 100%; color: rgba(255,255,255,.75); letter-spacing: .03em; }
  .nl:hover { color: #fff; }
  .nl:last-child { border-bottom: none; }
  .nav-burger { display: flex; }
  .n-si { display: none; }
  .n-sub { display: none; }
  .nav-mobile-extra { display: flex; flex-direction: column; gap: 4px; width: 100%; margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--faint); }
  /* Add subscribe to mobile menu via ::after on nav-links */

  /* LAYOUTS */
  .hero-bottom { grid-template-columns: 1fr; }
  .g2 { grid-template-columns: 1fr; gap: clamp(28px,5vw,48px); }
  .g3 { grid-template-columns: 1fr; }
  .g4 { grid-template-columns: 1fr 1fr; }
  .g3-mag { grid-template-columns: 1fr; }
  .aud-grid { grid-template-columns: 1fr; }
  .tr-header { grid-template-columns: 1fr; }
  .tr-g { grid-template-columns: 1fr; }
  .pb-2col { grid-template-columns: 1fr; }
  .up-c { grid-template-columns: 1fr; }
  .ready-3 { grid-template-columns: 1fr; }
  .contact-inner { grid-template-columns: 1fr; }
  .footer { grid-template-columns: 1fr 1fr; }
  .impact-card-bar { grid-template-columns: 1fr; }
  .impact-read { align-self: flex-start; margin-top: 12px; }
  .mc-tall { height: clamp(200px,40vw,300px); }
  .proof-grid-subtle { grid-template-columns: 1fr; }
  .proof-headline, .proof-body { max-width: none; }

  /* SECTIONS — tighter padding */
  .sec { padding: clamp(48px,7vw,80px) clamp(20px,4vw,40px); }
  .opp-sec { padding: clamp(48px,7vw,80px) clamp(20px,4vw,40px); }
  .traction-sec { padding: clamp(48px,7vw,80px) clamp(20px,4vw,40px); }
  .up-sec { padding: clamp(48px,7vw,80px) clamp(20px,4vw,40px); }
  .contact-sec { padding: clamp(48px,7vw,80px) clamp(20px,4vw,40px); }
  .mag-sec { padding: clamp(48px,7vw,80px) clamp(20px,4vw,40px); }
  .smeta { margin-bottom: clamp(28px,4vw,48px); }
}

@media (max-width: 600px) {
  .nav { padding: 0 16px; }
  .g4 { grid-template-columns: 1fr; }
  .footer { grid-template-columns: 1fr; }
  .ot-grid { grid-template-columns: 1fr 1fr; }
  .hero { max-height: none; min-height: 100svh; }
  .hero-h { font-size: clamp(30px,8.5vw,56px); }
  .hero-ctas { flex-direction: column; }
  .hero-ctas .btn-pink,
  .hero-ctas .btn-ghost { width: 100%; text-align: center; justify-content: center; }
  .tr-g { grid-template-columns: 1fr; gap: 3px; }
  .ostat-n { font-size: clamp(26px,7vw,44px); }
  .rg { padding: clamp(16px,4vw,24px); }
  .contact-alt { flex-direction: column; gap: 12px; }
  .fbtm { flex-direction: column; gap: 4px; font-size: 10px; }
  .footer { padding: 32px 20px; }
}

@media (max-width: 600px) {
  .g4 { grid-template-columns: 1fr; }
  .footer { grid-template-columns: 1fr; }
  .nav { grid-template-columns: 1fr auto; }
  .nav .nav-logo { order: 1; }
  .nav .nav-r { order: 2; }
}
