
/* ============ FONTS (self-hosted, inlined) ============ */







/* ============ TOKENS ============ */
:root{
  --ivory:#F3F2EE;
  --paper:#FAF9F7;
  --ink:#33332E;
  --charcoal:#3B3B36;
  --olive:#7F8644;
  --olive-deep:#6C7338;
  --green:#839309;
  --lime:#C3D223;
  --gray:#83817B;
  --line:#E2E0D9;
  --serif:'PT Serif', Georgia, 'Times New Roman', serif;
  --sans:'Jost', 'Century Gothic', 'Avenir Next', sans-serif;
  --max:1180px;
  --rad:14px;
  --shadow:0 20px 60px -20px rgba(51,51,46,.18);
  --webinar-banner-height:64px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--webinar-banner-height) + 62px)}
html,body{overflow-x:clip}
body{background:var(--ivory);color:var(--ink);font-family:var(--serif);font-size:18px;line-height:1.65;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:var(--green);text-decoration:none}
::selection{background:var(--lime);color:var(--ink)}

.wrap{max-width:var(--max);margin:0 auto;padding:0 28px}
section{position:relative}

/* ============ TYPE ============ */
.eyebrow{font-family:var(--sans);font-weight:600;font-size:12.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--green);display:flex;align-items:center;gap:12px;margin-bottom:18px}
.eyebrow::before{content:'';width:34px;height:2px;background:var(--lime)}
h1,h2,h3{font-family:var(--serif);font-weight:700;line-height:1.12;color:var(--charcoal);letter-spacing:-.01em}
h2{font-size:clamp(30px,4.4vw,52px);margin-bottom:22px}
h2 em,h1 em,h3 em,h4 em{font-style:normal;color:var(--green)}
.lede{font-size:clamp(17px,1.6vw,21px);color:#5A594F;max-width:760px}
.center{text-align:center}
.center .eyebrow{justify-content:center}
.center .lede{margin-left:auto;margin-right:auto}

/* ============ SCROLL PROGRESS ============ */
#progress{position:fixed;top:0;left:0;height:3px;background:linear-gradient(90deg,var(--green),var(--lime));width:0;z-index:1000;transition:width .1s linear}

/* ============ NAV ============ */
nav{position:fixed;top:var(--webinar-banner-height);left:0;right:0;z-index:990;background:rgba(243,242,238,.82);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid transparent;transition:all .35s ease}
nav.scrolled{border-bottom-color:var(--line);box-shadow:0 8px 30px -18px rgba(51,51,46,.25)}
.nav-in{max-width:var(--max);margin:0 auto;padding:0 28px;display:flex;align-items:center;justify-content:space-between;height:74px;transition:height .35s ease}
nav.scrolled .nav-in{height:60px}
/* The invitation stays fixed above the navigation, with no dismiss state. */
.webinar-banner{position:fixed;top:0;left:0;right:0;height:var(--webinar-banner-height);z-index:995;background:var(--olive);color:var(--ivory);border-bottom:1px solid transparent;box-shadow:0 9px 22px -16px rgba(43,46,28,.55)}
.webinar-banner-inner{max-width:var(--max);height:100%;margin:0 auto;padding:8px 28px;display:flex;align-items:center;justify-content:center;gap:14px;font-family:var(--sans);font-size:15px;line-height:1.35}
.webinar-banner-icon{display:grid;place-items:center;flex:none;width:38px;height:38px;border-radius:11px;background:#b62535;box-shadow:0 4px 14px rgba(182,37,53,.3)}
.webinar-banner-icon svg{width:23px;height:23px;fill:none;stroke:#fff;stroke-width:1.8;stroke-linecap:round}
.webinar-banner-label{flex:none;color:#f4f6d4;font-size:10px;font-weight:700;letter-spacing:.16em;text-transform:uppercase}
.webinar-banner-copy{font-weight:500}
.webinar-banner-cta{display:inline-flex;align-items:center;justify-content:center;flex:none;min-height:38px;margin-left:10px;padding:8px 20px;border:1px solid rgba(255,255,255,.7);border-radius:999px;background:var(--ivory);color:var(--charcoal);font-size:12px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;white-space:nowrap;box-shadow:0 4px 12px rgba(43,46,28,.17);transition:background .2s ease,transform .2s ease,box-shadow .2s ease}
.webinar-banner-cta:hover{background:#fff;border-color:#fff;color:var(--charcoal);transform:translateY(-1px);box-shadow:0 7px 15px rgba(43,46,28,.22)}
.webinar-banner-cta:focus-visible{outline:2px solid var(--charcoal);outline-offset:3px}
.nav-logo img{height:26px;width:auto}
.nav-links{display:flex;gap:30px;align-items:center;list-style:none}
.nav-links a{font-family:var(--sans);font-weight:500;font-size:13px;letter-spacing:.09em;text-transform:uppercase;color:var(--ink);position:relative;padding:4px 0}
.nav-links a.nav-hand{font-family:'Snell Roundhand','Savoye LET','Segoe Script','Bradley Hand','Lucida Handwriting',cursive;text-transform:none;letter-spacing:.02em;font-size:17px;font-weight:600}
.nav-links a::after{content:'';position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--lime);transition:width .25s ease}
.nav-links a:hover::after{width:100%}
.burger{display:none;background:none;border:none;cursor:pointer;padding:8px}
.burger span{display:block;width:24px;height:2px;background:var(--ink);margin:5px 0;transition:.3s}

/* mid-size screens: tighten nav so links fit on one line */
@media (max-width:1320px){
  .nav-links{gap:15px}
  .nav-links a{font-size:11.5px;letter-spacing:.04em;white-space:nowrap}
  .nav-links .btn{font-size:11.5px !important;padding:8px 14px !important;letter-spacing:.08em}
  .nav-in{padding:0 20px}
}
/* below this, links can't fit - switch to the burger drawer */
@media (max-width:1080px){
  .nav-links{position:fixed;top:calc(var(--webinar-banner-height) + 74px);right:0;height:calc(100dvh - var(--webinar-banner-height) - 74px);overflow-y:auto;width:min(78vw,340px);background:var(--paper);flex-direction:column;align-items:flex-start;justify-content:flex-start;padding:36px 32px;gap:22px;transform:translateX(105%);visibility:hidden;transition:transform .4s cubic-bezier(.2,.8,.2,1), visibility 0s linear .4s;box-shadow:-30px 0 60px rgba(51,51,46,.18);border-left:1px solid var(--line)}
  nav.scrolled .nav-links{top:calc(var(--webinar-banner-height) + 60px);height:calc(100dvh - var(--webinar-banner-height) - 60px)}
  .nav-links a{font-size:13px;letter-spacing:.09em}
  .nav-links .btn{font-size:13px !important;padding:9px 22px !important}
  .nav-links.open{transform:none;visibility:visible;transition:transform .4s cubic-bezier(.2,.8,.2,1)}
  .burger{display:block}
  .nav-links .li-cta{display:none} /* header CTA replaces the drawer copy */
}
/* always-visible invest CTA (mobile header only) */
.nav-right{display:flex;align-items:center;gap:6px}
a.nav-cta-m{display:none;font-size:11.5px !important;padding:8px 14px !important;letter-spacing:.08em}
@media (max-width:1080px){
  a.nav-cta-m{display:inline-flex}
}
@media (max-width:420px){
  a.nav-cta-m{font-size:10px !important;padding:7px 10px !important;letter-spacing:.05em}
  .nav-logo img{height:22px}
}
@media (max-width:700px){
  :root{--webinar-banner-height:72px}
  .webinar-banner-inner{justify-content:flex-start;gap:10px;padding:8px 16px;font-size:13px}
  .webinar-banner-icon{width:34px;height:34px;border-radius:9px}
  .webinar-banner-icon svg{width:21px;height:21px}
  .webinar-banner-label{display:none}
  .webinar-banner-copy{flex:1}
  .webinar-banner-cta{min-height:36px;margin-left:0;padding:7px 13px;font-size:10px}
}
@media (max-width:360px){
  .webinar-banner-inner{gap:8px;padding:7px 12px;font-size:12px}
  .webinar-banner-cta{padding:7px 10px;font-size:9px}
}

/* ============ BUTTONS ============ */
.btn{display:inline-flex;align-items:center;justify-content:center;text-align:center;gap:10px;font-family:var(--serif);font-weight:700;font-size:15px;letter-spacing:.14em;text-transform:uppercase;padding:10px 26px;border-radius:9px;cursor:pointer;border:2px solid transparent;transition:transform .22s ease, box-shadow .22s ease, background .22s ease;white-space:nowrap}
.btn-primary{background:var(--olive);color:#fff !important;text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px;box-shadow:0 12px 28px -12px rgba(127,134,68,.55)}
.btn-primary:hover{transform:translateY(-2px);background:var(--olive-deep);box-shadow:0 18px 36px -12px rgba(127,134,68,.65)}
.btn-ghost{background:transparent;color:var(--charcoal) !important;border-color:var(--charcoal)}
.btn-ghost:hover{transform:translateY(-2px);background:var(--charcoal);color:#fff !important}
.btn-ghost-light{background:transparent;color:var(--ivory) !important;border-color:var(--ivory)}
.btn-ghost-light:hover{transform:translateY(-2px);background:var(--ivory);color:var(--charcoal) !important}
.btn-lg{font-size:17px;padding:16px 38px}

/* ============ HERO ============ */
#hero{min-height:100vh;display:flex;flex-direction:column;justify-content:center;padding:150px 0 60px;overflow:hidden}
#net{position:absolute;inset:0;width:100%;height:100%;z-index:0;opacity:.9}
.hero-glow{position:absolute;width:900px;height:900px;border-radius:50%;background:radial-gradient(circle,rgba(195,210,35,.16),transparent 65%);top:-200px;right:-200px;z-index:0;animation:breathe 9s ease-in-out infinite}
@keyframes breathe{0%,100%{transform:scale(1)}50%{transform:scale(1.15)}}
.hero-in{position:relative;z-index:2;text-align:center;max-width:980px;margin:0 auto;padding:0 28px}
@keyframes ping{0%{transform:scale(.6);opacity:1}80%,100%{transform:scale(1.6);opacity:0}}
h1{font-size:clamp(40px,6.6vw,84px);margin-bottom:24px}
h1 .w{display:inline-block;opacity:0;transform:translateY(34px) rotate(1.5deg);animation:wordin .8s cubic-bezier(.2,.7,.2,1) forwards}
@keyframes wordin{to{opacity:1;transform:none}}
.hero-sub{font-size:clamp(17px,1.8vw,22px);color:#57564D;max-width:720px;margin:0 auto 36px;opacity:0;animation:fadeup 1s ease .9s forwards}
@keyframes fadeup{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
.hero-ctas{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;margin-bottom:0;opacity:0;animation:fadeup 1s ease 1.15s forwards} /* the early-bird block below carries the spacing */

/* video placeholder */
.video-shell{position:relative;max-width:860px;margin:0 auto;border-radius:18px;overflow:hidden;box-shadow:0 40px 90px -30px rgba(51,51,46,.45);opacity:0;animation:fadeup 1.1s ease 1.35s forwards;transform-style:preserve-3d}

/* hero: two columns on desktop - copy left, video top right, above the fold */
@media (min-width:1021px){
  #hero{padding:130px 0 50px}
  .hero-in{max-width:1280px;text-align:left}
  .hero-top{display:flex;align-items:center;gap:48px}
  .hero-copy{flex:1 1 50%;min-width:0}
  h1{font-size:clamp(38px,4.4vw,64px)}
  .hero-sub{margin:0 0 34px;max-width:none}
  .hero-ctas{justify-content:flex-start;margin-bottom:0}
  .hero-top .video-shell{flex:1 1 50%;max-width:640px;margin:0}
/* Compliance (founder 2026-08-21): the headline/subheadline are part of the
   DealMaker-approved page and are NEVER hidden — the video plays in place. */

  #hero .deal-strip{max-width:100%;margin:44px auto 0}
}
/* ?autoplay=1 on mobile: video first, approved copy immediately below.
   width:100% is load-bearing: the shell's margin:0 auto blocks flex-item
   stretch and aspect-ratio content has no intrinsic width -> 0px collapse. */
@media (max-width:1020px){
  .hero-top.video-first{display:flex;flex-direction:column}
  .hero-top.video-first .video-shell{order:-1;width:100%;max-width:860px;align-self:center;margin:0 0 36px}
}
.video-ph{position:relative;aspect-ratio:16/9;background:var(--charcoal);display:flex;align-items:center;justify-content:center;cursor:pointer}
.video-ph > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.92}
.video-ph::before{content:'';position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(35,35,32,.05),rgba(35,35,32,.38))}
.play-btn{position:relative;z-index:2;width:92px;height:92px;border-radius:50%;background:rgba(243,242,238,.94);display:flex;align-items:center;justify-content:center;transition:transform .25s ease}
.play-btn::before{content:'';position:absolute;inset:-14px;border-radius:50%;border:2px solid rgba(243,242,238,.5);animation:ping 2.4s cubic-bezier(0,0,.2,1) infinite}
.play-btn svg{margin-left:6px}
.video-ph:hover .play-btn{transform:scale(1.08)}
.play-wrap{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;gap:16px}
.play-label{font-family:var(--sans);font-weight:600;font-size:13px;letter-spacing:.22em;text-transform:uppercase;color:var(--ivory);text-shadow:0 1px 10px rgba(0,0,0,.4)}
.video-ph.vid-loading{cursor:progress}
.video-ph.vid-loading .play-btn svg{opacity:0}
.video-ph.vid-loading .play-btn::before{animation:none;opacity:0}
.video-ph.vid-loading .play-btn::after{content:'';position:absolute;inset:24px;border-radius:50%;border:3px solid rgba(59,59,54,.2);border-top-color:#3B3B36;animation:vidspin .8s linear infinite}
@keyframes vidspin{to{transform:rotate(360deg)}}
.video-tag{position:absolute;top:16px;left:16px;z-index:2;font-family:var(--sans);font-weight:600;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--ivory);background:rgba(59,59,54,.75);border:1px dashed rgba(243,242,238,.6);padding:7px 14px;border-radius:7px}

/* deal strip */
.deal-strip{display:flex;justify-content:center;gap:0;max-width:860px;margin:26px auto 0;background:var(--paper);border:1px solid var(--line);border-radius:var(--rad);box-shadow:var(--shadow);opacity:0;animation:fadeup 1.1s ease 1.55s forwards;overflow:hidden}
.deal-cell{flex:1;padding:20px 12px;text-align:center;border-right:1px solid var(--line)}
.deal-cell:last-child{border-right:none}
.deal-k{font-family:var(--sans);font-weight:500;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--gray);margin-bottom:6px}
.deal-v{font-family:var(--serif);font-weight:700;font-size:clamp(16px,1.8vw,21px);color:var(--charcoal)}
.deal-v a{display:inline-flex;align-items:center;gap:6px;color:var(--green);transition:color .2s}
.deal-v a:hover{color:var(--olive-deep)}
.deal-v a svg{opacity:.5}
.deal-sub{font-family:var(--sans);font-size:11px;line-height:1.45;color:var(--olive-deep);margin-top:7px}
/* early bird: the current timing bonus and its deadline, right under the CTA */
.early-bird{text-align:center;margin-top:18px;opacity:0;animation:fadeup 1s ease 1.35s forwards}
.eb-line{font-family:var(--sans);font-size:13px;letter-spacing:.02em;color:var(--olive-deep)}
/* The offer replaces the webinar invitation at 9:30 a.m. PDT on October 6. */
.countdown-banner-inner{display:none;max-width:var(--max);height:100%;margin:0 auto;padding:5px 28px;align-items:center;justify-content:center;gap:16px;font-family:var(--sans);line-height:1.2}
.countdown-banner-copy{font-size:14px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;white-space:nowrap}
.countdown-clock{display:inline-flex;align-items:center;gap:0;padding:7px 10px;border-radius:6px;background:var(--lime);color:var(--ink);white-space:nowrap;font-size:12px}
.countdown-unit{display:inline-flex;align-items:baseline;gap:4px;padding:0 9px;border-right:1px solid rgba(51,51,46,.32)}
.countdown-unit:first-child{padding-left:0}
.countdown-unit:last-child{padding-right:0;border-right:0}
.countdown-unit b{font-size:14px;font-weight:700;font-variant-numeric:tabular-nums}
.countdown-phase{display:none}
html.offer-countdown-active{--webinar-banner-height:46px;scroll-padding-top:calc(74px + var(--webinar-banner-height) + 10px)}
.offer-countdown-active nav,.offer-countdown-expired nav{top:0;z-index:995}
.offer-countdown-active nav.scrolled .nav-in,.offer-countdown-expired nav.scrolled .nav-in{height:74px}
.offer-countdown-active .webinar-banner{top:74px;height:var(--webinar-banner-height);background:var(--charcoal);box-shadow:none;z-index:994}
.offer-countdown-active .webinar-banner-inner{display:none}
.offer-countdown-active .countdown-banner-inner{display:flex}
.offer-countdown-active .countdown-phase{display:inline}
.offer-countdown-active .webinar-phase{display:none}
.offer-countdown-active #hero{padding-top:calc(74px + var(--webinar-banner-height) + 30px)}
html.offer-countdown-expired{--webinar-banner-height:0px;scroll-padding-top:84px}
.offer-countdown-expired .webinar-banner,.offer-countdown-expired .early-bird{display:none}
@media (max-width:1080px){
  .offer-countdown-active nav.scrolled .nav-links,.offer-countdown-expired nav.scrolled .nav-links{top:calc(var(--webinar-banner-height) + 74px);height:calc(100dvh - var(--webinar-banner-height) - 74px)}
}
@media (max-width:700px){
  html.offer-countdown-active{--webinar-banner-height:64px}
  .countdown-banner-inner{gap:5px;flex-direction:column;padding:5px 12px}
  .countdown-banner-copy{font-size:11px;letter-spacing:.04em}
  .countdown-clock{padding:5px 8px;font-size:11px}
  .countdown-unit{padding:0 7px}
  .countdown-unit b{font-size:12px}
}
@media (max-width:360px){
  .countdown-banner-copy{font-size:10px}
  .countdown-unit{padding:0 5px;gap:3px}
}
/* Fee disclosure: an "i" marker beside $1,000 with the sentence in a bubble, at every
   width. One copy of the text (it is also what aria-describedby points at). Opens on
   hover, on keyboard focus, and on tap via the .open class the script below toggles —
   iOS does not focus a button on tap, so hover/focus alone would not do on phones. */
.info{display:inline-flex;width:15px;height:15px;padding:0;align-items:center;justify-content:center;border:1px solid var(--olive);border-radius:50%;background:none;color:var(--olive);font-family:var(--sans);font-size:9.5px;font-weight:700;font-style:italic;line-height:1;cursor:help;transition:background .2s,color .2s}
.info:hover,.info:focus,.deal-cell.fee.open .info{background:var(--olive);color:var(--paper);outline:none}
/* flex, not vertical-align: the marker centres on the digits' line box instead of hanging off the serif baseline */
.deal-cell.fee .deal-v{display:flex;align-items:center;justify-content:center;gap:7px}
/* the strip used to clip its children to keep cell borders inside its rounded corners; the
   bubble has to escape it, so the clip is lifted and the one border that would cross a
   corner (the last cell's bottom border once the strip wraps) is removed instead */
.deal-strip{overflow:visible}
.deal-cell.fee{position:relative}
.fee-sub{position:absolute;left:50%;bottom:calc(100% - 2px);transform:translateX(-50%);width:min(240px,calc(100vw - 32px));margin:0;padding:11px 13px;border-radius:10px;background:var(--charcoal);color:rgba(243,242,238,.92);font-size:11.5px;line-height:1.55;text-align:center;box-shadow:0 10px 30px rgba(51,51,46,.22);opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease;pointer-events:none;z-index:20}
.fee-sub::after{content:'';position:absolute;top:100%;left:50%;transform:translateX(-50%);border:6px solid transparent;border-top-color:var(--charcoal)}
.deal-cell.fee:hover .fee-sub,.deal-cell.fee:has(.info:focus) .fee-sub,.deal-cell.fee.open .fee-sub{opacity:1;visibility:visible}
.deal-v .tba{color:var(--green)}
.deal-note{font-family:var(--sans);font-size:12px;color:var(--gray);text-align:center;margin-top:12px;opacity:0;animation:fadeup 1s ease 1.7s forwards}
/* Filing links under the deal strip: pending until the Form C is filed, so
   they carry the external-link icon but no href yet (founder 2026-08-27). */
.deal-links{display:flex;justify-content:center;align-items:center;gap:22px;flex-wrap:wrap;margin-top:16px;opacity:0;animation:fadeup 1s ease 1.65s forwards}
.deal-link{display:inline-flex;align-items:center;gap:7px;font-family:var(--sans);font-weight:600;font-size:12.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--green);transition:color .2s}
.deal-link:hover{color:var(--olive-deep)}

/* ============ STAT TICKER ============ */
#ticker{background:var(--charcoal);color:var(--ivory);padding:0;overflow:hidden}
.ticker-in{display:flex;flex-wrap:wrap;justify-content:center}
.tick{flex:1 1 0;min-width:150px;max-width:100%;text-align:center;padding:34px 12px;border-right:1px solid rgba(243,242,238,.09);display:flex;flex-direction:column;justify-content:center}
.tick:last-child{border-right:none}
/* chart tile: same fixed column width as every other stat */
.tick-chart{flex:1 1 0;min-width:150px;padding:22px 12px}
.tk-svg{display:block;width:100%;height:auto;overflow:visible}
.tk-base{stroke:rgba(243,242,238,.16);stroke-width:1.2}
.tk-area{fill:var(--lime);opacity:0;transition:opacity .6s ease .9s}
.tick-chart.on .tk-area{opacity:.13}
.tk-line{fill:none;stroke:var(--lime);stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:170;stroke-dashoffset:170;transition:stroke-dashoffset 1.6s cubic-bezier(.3,.7,.3,1) .15s}
.tick-chart.on .tk-line{stroke-dashoffset:0}
.tk-dot{fill:var(--lime);stroke:var(--charcoal);stroke-width:1.6;opacity:0;transition:opacity .5s ease 1.2s}
.tick-chart.on .tk-dot{opacity:1}
.tk-val{font-family:var(--sans);font-weight:600;font-size:9.5px;fill:var(--lime);opacity:0;transition:opacity .5s ease 1.3s}
.tick-chart.on .tk-val{opacity:1}
.tk-title{font-family:var(--sans);font-weight:400;font-size:8px;letter-spacing:.08em;text-transform:uppercase;fill:rgba(243,242,238,.82)}
.tk-lab{font-family:var(--sans);font-size:9.5px;fill:rgba(243,242,238,.5);letter-spacing:.04em}
.tk-year{font-size:8px}
@media (max-width:640px){
  .ticker-in{display:grid;grid-template-columns:1fr 1fr}
  .tick{border-right:none;border-top:1px solid rgba(243,242,238,.09);min-width:0;padding:24px 10px 22px}
  .tick:nth-child(even){border-right:1px solid rgba(243,242,238,.09)}
  .tick:last-child{grid-column:1/-1;border-right:none}
  .tick-chart{grid-column:1/-1;border-top:none;max-width:330px;width:100%;margin:0 auto;padding:24px 12px 8px}
  .tick span{min-height:0}
}
.tick b{display:block;font-family:var(--serif);font-weight:700;font-size:clamp(26px,2.6vw,38px);color:var(--lime);line-height:1.1;margin-bottom:6px}
.tick span{font-family:var(--sans);font-weight:400;font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;color:rgba(243,242,238,.72);display:block;line-height:1.5;min-height:38px}

/* ============ REVEALS ============ */
.rv{opacity:0;transform:translateY(44px);transition:opacity .9s cubic-bezier(.2,.65,.25,1), transform .9s cubic-bezier(.2,.65,.25,1)}
.rv.rv-l{transform:translateX(-60px)}
.rv.rv-r{transform:translateX(60px)}
.rv.rv-zoom{transform:scale(.88)}
.rv.on{opacity:1;transform:none}
.stagger>*{opacity:0;transform:translateY(40px);transition:opacity .8s cubic-bezier(.2,.65,.25,1), transform .8s cubic-bezier(.2,.65,.25,1)}
.stagger.on>*{opacity:1;transform:none}
.stagger.on>*:nth-child(1){transition-delay:.05s}
.stagger.on>*:nth-child(2){transition-delay:.17s}
.stagger.on>*:nth-child(3){transition-delay:.29s}
.stagger.on>*:nth-child(4){transition-delay:.41s}
.stagger.on>*:nth-child(5){transition-delay:.53s}
.stagger.on>*:nth-child(6){transition-delay:.65s}
.stagger.on>*:nth-child(7){transition-delay:.77s}
.stagger.on>*:nth-child(8){transition-delay:.89s}

/* ============ SOURCE NOTES ============ */
.src-note{font-family:var(--sans);font-size:11.5px;color:var(--gray);line-height:1.7;margin-top:22px}
.src-note a{color:var(--olive-deep);text-decoration:underline;text-underline-offset:2px}
.src-note a:hover{color:var(--green)}
.pcard sup,.mkt-sup{font-family:var(--sans);font-size:.6em;color:var(--gray)}

/* ============ SECTION SPACING ============ */
.sect{padding:110px 0}
.sect-tight{padding:80px 0}

/* ============ CRED STRIP ============ */
#cred{background:var(--ivory);padding:56px 0 66px}
.cred-label{font-family:var(--sans);font-weight:500;font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--gray);text-align:center;margin-bottom:34px}
.cred-logos{display:flex;justify-content:center;align-items:center;gap:60px;row-gap:34px;flex-wrap:wrap}
.cred-logos img{height:40px;width:auto;transition:opacity .25s, transform .25s}
.cred-logos img:hover{transform:scale(1.06)}

/* ============ PROBLEM CARDS ============ */
.cards4{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin-top:56px}
.pcard{background:var(--paper);border:1px solid var(--line);border-radius:var(--rad);padding:34px 26px;box-shadow:var(--shadow);position:relative;overflow:hidden;transition:transform .3s ease, box-shadow .3s ease}
.pcard:hover{transform:translateY(-6px);box-shadow:0 30px 70px -24px rgba(51,51,46,.28)}
.pcard::after{content:'';position:absolute;left:0;top:0;height:4px;width:100%;background:linear-gradient(90deg,var(--green),var(--lime))}
.pnum{font-family:var(--sans);font-weight:600;font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--gray);margin-bottom:14px}
.pstat{font-family:var(--serif);font-weight:700;font-size:46px;line-height:1;color:var(--green);margin-bottom:12px}
.pcard{display:flex;flex-direction:column}
.pcard .ptitle{font-family:var(--serif);font-weight:700;font-size:clamp(19px,1.7vw,23px);line-height:1.3;color:var(--charcoal);margin-bottom:12px}
.pcard .psub{font-size:15px;color:#5A594F;line-height:1.55}
.pmetric{margin-top:auto;padding-top:18px;border-top:1px solid var(--line);display:flex;align-items:center;gap:14px}
.pcard .ptitle,.pcard .psub{margin-bottom:22px}
.pcard .ptitle + .pmetric{margin-top:auto}
.pmetric .pstat{margin-bottom:0;font-size:38px;flex:none}
.pmetric-stack{flex-direction:column;align-items:flex-start;gap:8px}
@media (min-width:1021px){.pmetric{min-height:160px}.pmetric-stack{justify-content:flex-start}}
.pmetric p{font-family:var(--sans);font-size:13.5px;color:var(--gray);line-height:1.5}
.pmetric p b{color:var(--charcoal);font-weight:600}
.pcard p b{color:var(--charcoal)}




/* ======= deck-style investor quote rows ======= */
.iqr-list{margin-top:60px}
.iqr{display:grid;grid-template-columns:1.15fr 1fr;border-radius:var(--rad);overflow:hidden;box-shadow:var(--shadow);background:var(--paper);margin-top:28px;min-height:440px}
.iqr-txt{padding:clamp(32px,4.5vw,64px);display:flex;flex-direction:column;justify-content:center}
.iqr-txt blockquote{font-family:var(--serif);font-size:clamp(19px,1.9vw,26px);line-height:1.5;color:var(--charcoal)}
.iqr-txt blockquote::before{content:'\201C';display:block;font-family:var(--serif);font-size:78px;line-height:.55;color:var(--lime);margin-bottom:18px}
.iqr-txt .who{margin-top:26px;font-family:var(--sans)}
.iqr-txt .who b{display:block;font-weight:600;font-size:16.5px;color:var(--green);letter-spacing:.03em}
.iqr-txt .who span{font-size:13.5px;color:var(--gray);line-height:1.5;display:block;margin-top:4px}
.iqr-txt .iq-logos{display:flex;align-items:center;gap:22px;margin-top:26px;padding-top:22px;border-top:1px solid var(--line)}
.iqr-txt .iq-logos img{position:static;width:auto;height:20px;object-fit:contain}
.iqr-txt .iq-logos .lg{display:inline-flex;align-items:center;gap:7px}
.iqr-txt .iq-logos .wm{font-family:var(--sans);font-weight:700;font-size:15px;color:#4A4941;letter-spacing:.02em}
.iqr-txt .iq-logos .wm.caps{letter-spacing:.2em;font-size:13px}
.iqr-img{position:relative;min-height:300px}
.iqr-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.iqr.dark{background:var(--charcoal)}
.iqr.dark blockquote{color:var(--ivory)}
.iqr.dark .who b{color:var(--lime)}
.iqr.dark .who span{color:rgba(243,242,238,.65)}
.iqr.dark .iq-logos{border-top-color:rgba(243,242,238,.15)}
.iqr.dark .iq-logos img{filter:brightness(0) invert(1);opacity:.9}
@media (max-width:860px){
  .iqr{grid-template-columns:1fr}
  .iqr-img{order:-1;min-height:300px}
}


/* ============ SOLUTION ============ */
#solution{background:var(--paper);border-top:1px solid var(--line);border-bottom:1px solid var(--line);overflow:hidden}
.sol-hero{text-align:center;max-width:900px;margin:0 auto 80px}
.sol-hero h2{font-size:clamp(34px,5vw,60px)}
.split{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center;margin-top:40px}
.split + .split{margin-top:130px}
.split .txt h3{font-size:clamp(26px,3vw,38px);margin-bottom:18px}
.split .txt p{color:#5A594F;margin-bottom:14px}
.chan-pills{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}
.chan-pills span{font-family:var(--sans);font-weight:500;font-size:13px;letter-spacing:.1em;text-transform:uppercase;background:var(--ivory);border:1px solid var(--line);border-radius:100px;padding:8px 18px;color:var(--charcoal)}
.chan-pills span b{color:var(--green)}
.float{animation:float 7s ease-in-out infinite}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-16px)}}
.phones-img{filter:drop-shadow(0 40px 50px rgba(51,51,46,.25))}

/* contrast rows */
.vs-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:26px}
.vs-card{position:relative;border-radius:var(--rad);overflow:hidden;min-height:300px;display:flex;align-items:flex-end;box-shadow:var(--shadow)}
.vs-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.2s ease}
.vs-card:hover img{transform:scale(1.06)}
.vs-card .veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(243,242,238,.82) 0%,rgba(243,242,238,.55) 45%,rgba(243,242,238,.9) 100%)}
.vs-card.dark .veil{background:linear-gradient(180deg,rgba(59,59,54,.28),rgba(243,242,238,.88))}
.vs-card .cap{position:relative;z-index:2;padding:30px}
.vs-card .cap h4{font-family:var(--serif);font-weight:700;font-size:clamp(21px,2.2vw,28px);line-height:1.25;color:var(--charcoal)}
.vs-card .cap .bad{color:#A65454}
.vs-card .cap .good{color:var(--green)}
.vs-tag{position:absolute;top:18px;left:18px;z-index:2;font-family:var(--sans);font-weight:600;font-size:11px;letter-spacing:.2em;text-transform:uppercase;padding:6px 14px;border-radius:100px}
.vs-tag.them{background:rgba(166,84,84,.12);color:#A65454;border:1px solid rgba(166,84,84,.3)}
.vs-tag.us{background:rgba(131,147,9,.12);color:var(--green);border:1px solid rgba(131,147,9,.35)}



/* ======= agent availability: official glyphs, in-system olive ======= */
.chan-avail{display:flex;flex-wrap:wrap;align-items:center;gap:12px 22px;margin-top:26px;padding-top:22px;border-top:1px solid var(--line)}
.ca-label{font-family:var(--sans);font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--gray)}
.ca-item{display:inline-flex;align-items:center;gap:8px;font-family:var(--sans);font-weight:500;font-size:14px;color:var(--charcoal)}
.ca-item svg{width:19px;height:19px;color:var(--olive);flex:0 0 auto}


/* ======= us vs them: one ruled comparison, no imagery ======= */
.vs-table{max-width:980px;margin:80px auto 0;border:1px solid var(--line);border-radius:var(--rad);overflow:hidden;box-shadow:var(--shadow);background:var(--paper)}
.vs-head{display:grid;grid-template-columns:1fr 1fr}
.vs-head > div{padding:20px 30px;font-family:var(--sans);font-weight:600;font-size:13px;letter-spacing:.14em;text-transform:uppercase}
.vs-head .h-them{background:var(--ivory);color:var(--gray)}
.vs-head .h-torre{background:var(--charcoal);color:var(--lime)}
.vs-pair{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line)}
.vs-cell{display:flex;gap:16px;align-items:flex-start;padding:28px 30px;font-family:var(--serif);font-size:clamp(16.5px,1.5vw,19px);line-height:1.55}
.vs-cell.them{background:var(--ivory);color:#6E6C64}
.vs-cell.torre{background:var(--paper);color:var(--charcoal)}
.vs-mark{flex:0 0 auto;width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-top:1px}
.vs-mark svg{width:13px;height:13px}
.them .vs-mark{background:rgba(166,84,84,.12);color:#A65454}
.torre .vs-mark{background:rgba(131,147,9,.14);color:var(--green)}
.vs-txt{flex:1;min-width:0}
.vs-cell::before{display:none;font-family:var(--sans);font-weight:600;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;content:attr(data-side)}
@media (max-width:760px){
  .vs-head > div{padding:12px 14px;font-size:11px;letter-spacing:.12em}
  .vs-cell{display:grid;grid-template-columns:20px 1fr;gap:8px;padding:14px 12px;align-items:start;font-size:14px;line-height:1.45}
  .vs-mark{width:20px;height:20px;margin-top:1px}
  .vs-mark svg{width:10px;height:10px}
}


/* ============ TRACTION ============ */
.charts2{display:grid;grid-template-columns:1fr 1fr;gap:26px;margin-top:60px}
.chartcard{background:var(--paper);border:1px solid var(--line);border-radius:var(--rad);padding:36px 34px 28px;box-shadow:var(--shadow)}
.chartcard h4{font-family:var(--serif);font-size:20px;color:var(--charcoal);margin-bottom:4px}
.chartcard .sub{font-family:var(--sans);font-size:12.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--gray);margin-bottom:26px}
.bars{display:flex;align-items:flex-end;gap:18px;height:220px}
.barcol{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;height:100%}
.barv{flex:none;font-family:var(--sans);font-weight:600;font-size:13px;color:var(--green);margin-bottom:8px;opacity:0;transition:opacity .5s ease 1s}
.on .barv{opacity:1}
.bar{flex:none;width:100%;max-width:74px;background:linear-gradient(180deg,#8A9147,var(--olive));border-radius:6px 6px 2px 2px;height:0;transition:height 1.4s cubic-bezier(.25,.8,.25,1)}
.barlab{flex:none;font-family:var(--sans);font-size:12.5px;color:var(--gray);margin-top:10px;letter-spacing:.06em}
.cost-note{display:flex;gap:14px;align-items:center;background:var(--ivory);border:1px solid var(--line);border-radius:var(--rad);padding:18px 24px;margin-top:26px}
.cost-note .arrow{font-size:26px;color:var(--green)}
.cost-note p{font-size:15.5px;color:#5A594F}
.cost-note p b{color:var(--charcoal)}

/* companies ball */
.ball-wrap{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;margin-top:90px}
.ball{position:relative;display:flex;justify-content:center;align-items:flex-start}
.ball .ball-clip{width:min(460px,88%);aspect-ratio:1/1;border-radius:50%;overflow:hidden}
/* height:auto, not 100%: the square comes from the image's own 1:1 ratio,
   so the circle never depends on aspect-ratio/flex resolution — iOS WebKit
   (Chrome on iPhone included) rendered the clip as a lens (founder
   screenshot 2026-08-24). Desktop is pixel-identical either way. */
.ball img{width:100%;height:auto;display:block;animation:spin 120s linear infinite}
@keyframes spin{from{transform:rotate(0deg) scale(1.18)}to{transform:rotate(360deg) scale(1.18)}}
.ball .ball-label{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:2;text-align:center;font-family:var(--serif);font-weight:700;font-size:clamp(24px,2.6vw,34px);color:var(--charcoal);line-height:1.2;background:radial-gradient(closest-side,rgba(255,255,255,.97) 45%,rgba(255,255,255,.85) 70%,rgba(255,255,255,0) 100%);padding:56px 48px;border-radius:50%}

/* quotes / testimonials */
#voices{background:var(--charcoal);color:var(--ivory);overflow:hidden}
#voices .eyebrow{color:var(--lime)}
#voices h2{color:var(--ivory)}
.quote-track{position:relative;margin-top:60px;min-height:340px}
.q-slide{position:absolute;inset:0;display:grid;grid-template-columns:180px 1fr;gap:44px;align-items:center;opacity:0;transform:translateX(60px);transition:opacity .8s ease, transform .8s ease;pointer-events:none}
.q-slide.active{opacity:1;transform:none;pointer-events:auto}
.q-slide .face{width:180px;height:180px;border-radius:50%;object-fit:cover;border:4px solid rgba(195,210,35,.5)}
.q-slide blockquote{font-family:var(--serif);font-size:clamp(20px,2.4vw,30px);line-height:1.45;font-weight:400}
.q-slide blockquote::before{content:'\201C';display:block;font-size:70px;line-height:.6;color:var(--lime);margin-bottom:16px}
.q-who{margin-top:20px;font-family:var(--sans)}
.q-who b{display:block;font-weight:600;font-size:16px;color:var(--lime);letter-spacing:.04em}
.q-who span{font-size:13.5px;color:rgba(243,242,238,.7)}
.q-dots{display:flex;gap:10px;justify-content:center;margin-top:40px}
.q-dot{width:34px;height:4px;border-radius:2px;background:rgba(243,242,238,.25);border:none;cursor:pointer;transition:background .3s}
.q-dot.active{background:var(--lime)}
.client-logos{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:70px;padding-top:50px;border-top:1px solid rgba(243,242,238,.1)}
.client-logos .cl{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:18px;background:var(--paper);border-radius:var(--rad);padding:34px 28px;text-align:center;transition:transform .3s ease}
.client-logos .cl:hover{transform:translateY(-5px)}
.client-logos .cl .cl-logo{height:78px;display:flex;align-items:center}
.client-logos img{max-height:78px;width:auto}
.client-logos .cl q{font-family:var(--serif);font-style:italic;font-size:16px;line-height:1.55;color:#4A4941;max-width:260px}
@media (max-width:860px){.client-logos{grid-template-columns:1fr}}


/* ======= 3-up traction charts ======= */
.charts4{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:60px}
.charts4 .chartcard{padding:20px 14px 14px}
.charts4 h4{font-size:14.5px;line-height:1.3;min-height:40px;margin-bottom:10px}
.charts4 .bars{gap:5px;height:210px}
.charts4 .bars .bar{flex:none}
.charts4 .bars .barv{flex:none;font-size:10.5px;margin-bottom:6px;white-space:nowrap}
.charts4 .bars .barlab{flex:none;font-size:10px;margin-top:8px;letter-spacing:.01em;white-space:nowrap}
.charts4 .bar{border-radius:4px 4px 2px 2px}
@media (max-width:900px){.charts4{gap:12px}}
@media (max-width:680px){.charts4{grid-template-columns:1fr;gap:14px}}
@media (max-width:600px){.charts4 .chartcard{padding:16px 10px 10px}.charts4 h4{font-size:12.5px;min-height:34px}}

/* line chart styles */
.linechart{width:100%;height:auto;display:block;overflow:visible}
.lbase{stroke:var(--line);stroke-width:1}
.larea{fill:url(#lgrad);fill:rgba(131,147,9,.10)}
.lline{fill:none;stroke:var(--olive);stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:700;stroke-dashoffset:700;transition:stroke-dashoffset 1.6s cubic-bezier(.3,.7,.3,1) .15s}
.chartcard.on .lline{stroke-dashoffset:0}
.ldot{fill:var(--olive);stroke:var(--paper);stroke-width:1.6;opacity:0;transition:opacity .5s ease 1.2s}
.chartcard.on .ldot{opacity:1}
.lval{font-family:var(--sans);font-weight:600;font-size:10.5px;fill:var(--green);opacity:0;transition:opacity .5s ease 1.3s}
.chartcard.on .lval{opacity:1}
.llab{font-family:var(--sans);font-size:10px;fill:var(--gray);letter-spacing:.02em}



/* ============ LIVE ACTIVITY ============ */
/* The height lives on the WRAPPER, which clips: iOS WebKit sizes iframes to
   their content and ignores both the height and scrolling="no" unless the
   parent has an explicit height plus overflow:hidden. Without this the section
   balloons to the embed's full content height on iPhone. The radius and shadow
   move here too — a clipped child cannot paint its own shadow. */
#activity .activity-frame{margin-top:50px;height:608px;overflow:hidden;border-radius:var(--rad);box-shadow:var(--shadow)}
/* The embed is cross-origin with scrolling="no", so the box must match its
   content height exactly or it CLIPS (it centres its content, so a short box
   cuts the column headers at the top and items at the bottom). Its height is
   fixed per width band, measured on torre.ai/activity 2026-08-22:
     iframe > 960px  -> lists 560            + 80 padding =  640
     iframe 720-960  -> globe 360 + 24 + 560 + 80 padding = 1024
     iframe <= 720   -> globe 360 + 24 + 460 + 80 padding =  924
   We take 32px off each (the embed's own padding, not content) so 24px of air
   stays visible, matching its 24px internal sides. Bands are the embed's own
   960/720 breakpoints translated to OUR viewport: the iframe is
   min(1180px, 100vw) - 56px of .wrap padding, hence 1016px and 776px. */
#activity iframe{display:block;width:100%;height:100%;border:0;background:#E9E8E2}
@media (max-width:1016px){#activity .activity-frame{height:992px}}
@media (max-width:776px){#activity .activity-frame{height:892px}}


/* ============ MARKET ============ */
.mkt-circles{display:flex;justify-content:center;gap:34px;flex-wrap:wrap;margin-top:60px}
.mcircle{width:280px;height:280px;border-radius:50%;background:radial-gradient(circle at 32% 28%,#96A052,var(--olive) 70%);color:#fff;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:20px;box-shadow:0 24px 50px -18px rgba(127,134,68,.55);transition:transform .35s ease}
.mcircle:hover{transform:scale(1.06)}
.mcircle b{font-family:var(--serif);font-weight:700;font-size:52px;line-height:1.05}
.mcircle span{font-family:var(--sans);font-size:13.5px;letter-spacing:.1em;text-transform:uppercase;opacity:.9;margin-top:8px}
.bigco{display:flex;justify-content:center;align-items:flex-end;gap:70px;flex-wrap:wrap;margin-top:70px}
.bigco .co{text-align:center}
.bigco .co img{height:44px;width:auto;margin:0 auto 14px}
.bigco .co span{font-family:var(--sans);font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--gray)}
.bigco .co b{display:block;font-family:var(--serif);font-size:26px;color:var(--green)}

/* bubbles */
.bubbles{position:relative;margin-top:80px;display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center}
.bub-viz{display:flex;flex-direction:column;align-items:center;gap:14px}
@media (max-width:860px){
  .bubbles>div:first-child{display:contents}
  .bubbles>div:first-child>h2{order:0}
  .bubbles>div:first-child>.lede{order:1}
  .bub-viz{order:2}
  .bub-src{order:3;margin-top:10px}
}

.bub-row{display:grid;grid-template-columns:150px 1fr;align-items:center;gap:18px;width:100%;max-width:430px}
.bub-row .bub{margin:0 auto}
.bub{border-radius:50%;flex:none;transform:scale(0);transition:transform 1s cubic-bezier(.2,.9,.3,1.25)}
.on .bub{transform:scale(1)}
.bub-row span{font-family:var(--sans);font-size:14px;color:#5A594F}
.bub-row b{color:var(--charcoal)}

/* roadmap */
#roadmap{background:var(--paper);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.road{max-width:760px;margin:60px auto 0;display:flex;flex-direction:column;gap:0}
.rstep{display:grid;grid-template-columns:56px 1fr;gap:26px;position:relative;padding-bottom:44px}
.rstep::before{content:'';position:absolute;left:27px;top:56px;bottom:0;width:2px;background:var(--line)}
.rstep:last-child::before{display:none}
.rbox{width:56px;height:56px;border-radius:14px;border:3px solid var(--lime);display:flex;align-items:center;justify-content:center;background:var(--ivory);font-size:26px;color:var(--green);font-weight:700}
.rbox.done{background:var(--lime);color:var(--charcoal)}
.rbox.doing{color:var(--green);font-size:30px;letter-spacing:2px}
.rstep h4{font-family:var(--serif);font-size:clamp(20px,2.2vw,27px);color:var(--charcoal);padding-top:10px}
.rstep h4 em{font-style:normal;color:var(--green)}
.rstep .rtag{font-family:var(--sans);font-weight:600;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--gray)}
.rstep:last-child h4{font-size:clamp(24px,2.8vw,34px)}

/* moats */
.moats{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:60px}
.moat{background:var(--paper);border:1px solid var(--line);border-radius:var(--rad);padding:36px 30px;box-shadow:var(--shadow);transition:transform .3s ease}
.moat:hover{transform:translateY(-6px)}
.moat .ic{width:58px;height:58px;border-radius:50%;background:rgba(195,210,35,.18);display:flex;align-items:center;justify-content:center;margin-bottom:22px;font-size:26px;animation:spin-slow 14s linear infinite}
@keyframes spin-slow{to{transform:rotate(360deg)}}
.moat h4{font-family:var(--serif);font-size:23px;margin-bottom:12px;color:var(--charcoal)}
.moat p{font-size:15.5px;color:#5A594F}

/* resilient band */
.resilient{display:grid;grid-template-columns:1fr 1fr;gap:0;margin-top:90px;border-radius:var(--rad);overflow:hidden;box-shadow:var(--shadow)}
.res-cell{position:relative;min-height:320px;display:flex;align-items:center;justify-content:center;text-align:center;padding:50px 40px}
.res-cell img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.2}
.res-cell .in{position:relative;z-index:2;max-width:420px}
.res-cell h4{font-family:var(--serif);font-size:clamp(24px,2.6vw,32px);margin-bottom:14px}
.res-cell h4 em{font-style:normal;color:var(--green)}
.res-cell p{font-size:16px;color:#4A4941}
.res-cell{background:var(--ivory)}
.res-cell:first-child{border-right:1px solid var(--line)}

/* business model */
.model{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:60px}
@media (max-width:1080px){.model{grid-template-columns:1fr 1fr}}
.mcol{background:var(--paper);border:1px solid var(--line);border-radius:var(--rad);padding:40px 36px;box-shadow:var(--shadow)}
.mcol h4{font-family:var(--serif);font-size:26px;color:var(--green);margin-bottom:8px}
.mcol .msub{font-family:var(--sans);font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--gray);margin-bottom:24px}
.mcol ul{list-style:none}
.mcol li{padding:13px 0 13px 36px;border-bottom:1px dashed var(--line);position:relative;font-size:16.5px;color:#4A4941}
.mcol li:last-child{border-bottom:none}
.mcol li::before{content:'⬢';position:absolute;left:0;top:12px;color:var(--lime);font-size:17px}
.mcol li b{color:var(--charcoal)}
.mcol li .val{font-family:var(--sans);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--green);display:block}
.mcol li .vrow{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:3px}
.mcol li .vrow .val{display:inline-block;margin-top:0}
.mcol li .vtag{display:inline-flex;align-items:center;font-family:var(--sans);font-weight:600;font-size:11px;letter-spacing:.07em;text-transform:uppercase;color:var(--charcoal);background:linear-gradient(135deg,var(--lime),#D8E45A);border:1px solid rgba(131,147,9,.45);border-radius:999px;padding:3.5px 11px;white-space:nowrap;box-shadow:0 3px 12px -4px rgba(131,147,9,.75);animation:vtagPulse 3.4s ease-in-out infinite}
@keyframes vtagPulse{0%,100%{box-shadow:0 3px 12px -4px rgba(131,147,9,.75)}50%{box-shadow:0 3px 20px -3px rgba(131,147,9,.95)}}
.rev-roadmap{margin-top:120px}
.rev-roadmap .model{margin-top:48px}
.rev-roadmap .mcol{background:#FFFDFA}
@media (max-width:860px){.rev-roadmap{margin-top:90px}}
.model-note{text-align:center;font-family:var(--sans);font-size:13px;color:var(--gray);margin-top:26px;max-width:640px;margin-left:auto;margin-right:auto}

/* comparison table */
.cmp-wrap{overflow-x:auto;margin-top:60px;border-radius:var(--rad);border:1px solid var(--line);box-shadow:var(--shadow);background:var(--paper)}
table.cmp{width:100%;border-collapse:separate;border-spacing:0;min-width:760px;table-layout:fixed}
/* fixed layout: the five comparison columns share the width equally and the long
   category headers wrap, instead of auto layout handing the widest header the most room */
.cmp th:not(:first-child),.cmp td:not(:first-child){width:15%}
.cmp th,.cmp td{padding:15px 18px;text-align:center;border-bottom:1px solid var(--line);font-size:15px}
.cmp th{font-family:var(--sans);font-weight:600;font-size:12.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--gray);background:var(--ivory)}
.cmp th:first-child,.cmp td:first-child{text-align:left;font-family:var(--serif);color:var(--charcoal);font-size:16px}
.cmp th.torre-col{color:#fff;background:var(--olive);font-size:14px}
.cmp td.torre-col{background:rgba(127,134,68,.1)}
.cmp .yes{display:inline-block;width:22px;height:22px;border-radius:5px;background:var(--olive);position:relative;transform:scale(0);transition:transform .5s cubic-bezier(.2,.9,.3,1.4)}
.on .cmp .yes{transform:scale(1)}
.cmp .yes::after{content:'✓';position:absolute;inset:0;color:#fff;font-size:14px;line-height:22px;font-family:var(--sans);font-weight:600}
.cmp .part{display:inline-block;width:22px;height:22px;border-radius:5px;border:1.5px solid #C9C7BF;background:linear-gradient(135deg,transparent 52%,#C9C7BF 52%)}
.cmp .no{display:inline-block;width:22px;height:22px;border-radius:5px;border:1.5px solid #DDDBD3}
.cmp-hint{display:none;font-family:var(--sans);font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--gray);text-align:center;margin:14px 0 0}
.cmp-outer{position:relative}
.cmp-outer::after{content:'';position:absolute;top:1px;bottom:1px;right:1px;width:54px;pointer-events:none;opacity:0;transition:opacity .3s ease;z-index:3;border-radius:0 var(--rad) var(--rad) 0;background:linear-gradient(270deg,var(--paper) 12%,rgba(250,249,247,0))}
.cmp-outer.can-right::after{opacity:1}
@media (max-width:640px){
  .cmp th:first-child,.cmp td:first-child{position:sticky;left:0;z-index:2;background:var(--paper);font-size:13.5px;width:128px;min-width:128px;max-width:128px;padding-left:12px;padding-right:10px}
  .cmp th:first-child{background:var(--ivory)}
  .cmp th:nth-child(2),.cmp td:nth-child(2){position:sticky;left:128px;z-index:2;border-right:1px solid var(--line);width:64px;min-width:64px;max-width:64px}
  /* Phones: the scroller bleeds to the viewport edges. At rest the table keeps the
     page inset (inner padding); once you swipe, the two sticky columns pin to the
     screen edge and the comparison columns get the 28px the gutter was using. */
  .cmp-outer{margin-left:-28px;margin-right:-28px}
  .cmp-outer::after{border-radius:0}
  /* The scroller is an invisible full-width track; the CARD is the table itself, inset by
     its own margins. At rest it reads exactly like the desktop card (paper, border, radius);
     when swiped, the card slides and the two sticky columns pin to the screen edge. The
     inset is a table margin, not scroller padding — Chrome pins sticky cells at the
     scroller's content edge, so padding would leave a strip beside the pinned columns. */
  .cmp-wrap{background:none;border:none;border-radius:0;box-shadow:none}
  table.cmp{margin-left:28px;margin-right:28px;background:var(--paper);border:1px solid var(--line);border-radius:var(--rad)}
  .cmp thead th:first-child{border-top-left-radius:var(--rad)}
  .cmp thead th:last-child{border-top-right-radius:var(--rad)}
  .cmp tbody tr:last-child td{border-bottom:none}
  .cmp tbody tr:last-child td:first-child{border-bottom-left-radius:var(--rad)}
  .cmp tbody tr:last-child td:last-child{border-bottom-right-radius:var(--rad)}
  .cmp td.torre-col{background:linear-gradient(rgba(127,134,68,.1),rgba(127,134,68,.1)),var(--paper)}
  table.cmp{table-layout:fixed;min-width:700px}
  /* below 860px the sticky first two columns are fixed px; the other four split the
     remainder (auto), and the headers drop a notch so PROFESSIONAL fits on one line */
  .cmp th:not(:first-child):not(:nth-child(2)),.cmp td:not(:first-child):not(:nth-child(2)){width:auto}
  .cmp th{white-space:normal;font-size:11px;letter-spacing:.06em}
  .cmp th,.cmp td{padding:13px 10px}
  .cmp-hint{display:block}
}


.rstep .rsub{font-family:var(--sans);font-size:14px;line-height:1.6;color:var(--gray);margin-top:8px;max-width:560px}
.road-note{text-align:center;font-family:var(--serif);font-style:italic;font-size:16.5px;color:var(--gray);margin:46px auto 0;max-width:620px}


/* ======= subtorres + growth graphics ======= */
.hex-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(136px,1fr));gap:14px;margin-top:56px}
.hexcard{position:relative;background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:26px 14px 20px;text-align:center;box-shadow:var(--shadow);transition:transform .3s ease}
.hexcard:hover{transform:translateY(-5px)}
.hexcard .hex{display:flex;align-items:center;justify-content:center;width:64px;height:58px;margin:0 auto 14px;background:var(--hc);clip-path:polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%);font-size:26px}
.hexcard b{display:block;font-family:var(--serif);font-size:15.5px;color:var(--charcoal);line-height:1.3}
.hexcard b i{font-style:normal;color:var(--green)}
.hexcard .hs{display:block;font-family:var(--sans);font-size:12px;color:var(--gray);line-height:1.45;margin-top:6px}
.hexcard .htag{position:absolute;top:10px;right:10px;font-family:var(--sans);font-weight:600;font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--green);background:rgba(131,147,9,.13);border:1px solid rgba(131,147,9,.35);border-radius:20px;padding:3px 9px}
.grow-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px;margin-top:70px}
.grow-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--rad);box-shadow:var(--shadow);padding:clamp(28px,3.5vw,48px);text-align:center}
.grow-card h3{font-family:var(--serif);font-weight:700;font-size:clamp(21px,2.1vw,29px);color:var(--charcoal);margin-bottom:30px}
.grow-card h3 em{color:var(--green);font-style:normal}
.grow-card img{width:100%;height:auto;max-width:430px}
.grow-card:first-child img{max-width:330px}
@media (max-width:860px){.grow-grid{grid-template-columns:1fr}}


/* ======= growth graphics: deck slide 25, in the page flow ======= */
.grow-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;margin-top:110px;align-items:stretch}
.grow-item{display:flex;flex-direction:column;text-align:center}
.grow-item h3{font-family:var(--serif);font-weight:700;font-size:clamp(22px,2.2vw,30px);color:var(--charcoal)}
.grow-item h3 em{color:var(--green);font-style:normal}
.grow-item .gimg{flex:1;display:flex;align-items:center;justify-content:center;margin-top:36px}
.grow-item .gimg img{width:100%;height:auto}
.grow-item .gimg .g-circle{max-width:300px}
.grow-item .gimg .g-map{max-width:470px}
@media (max-width:860px){.grow-grid{grid-template-columns:1fr;gap:70px}}


/* ======= subtorre index: editorial numbered list ======= */
.sub-index{max-width:880px;margin:56px auto 0;border-bottom:1px solid var(--line)}
.sidx{display:grid;grid-template-columns:120px 1fr;align-items:center;gap:22px;padding:30px 18px;border-top:1px solid var(--line);cursor:default;transition:background .4s ease,padding-left .4s ease}
.sidx:hover{background:var(--tint);padding-left:30px}
.snum{font-family:var(--serif);font-weight:700;font-size:52px;line-height:1;color:transparent;-webkit-text-stroke:1.3px var(--hue);letter-spacing:.02em;transition:color .4s ease}
.sidx:hover .snum{color:var(--hue)}
.smain b{display:block;font-family:var(--serif);font-weight:700;font-size:clamp(20px,2vw,26px);color:var(--charcoal);line-height:1.25}
.smain span{display:block;font-family:var(--sans);font-size:14px;color:var(--gray);margin-top:5px}
@media (max-width:640px){
  .sidx{grid-template-columns:64px 1fr;gap:14px;padding:24px 8px}
  .sidx:hover{padding-left:8px}
  .snum{font-size:34px}
}


/* ======= moats -> result: dark band, lime accents, no imagery ======= */
.moat-result{position:relative;margin-top:64px;background:var(--charcoal);border-radius:var(--rad);box-shadow:var(--shadow)}
.mr-label{position:absolute;top:-13px;left:50%;transform:translateX(-50%);background:var(--ivory);border:1px solid var(--line);border-radius:999px;padding:4px 16px;font-family:var(--sans);font-weight:600;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--olive-deep);white-space:nowrap}
.mr-grid{display:grid;grid-template-columns:1fr 1fr}
.mr-cell{padding:46px clamp(26px,4vw,58px)}
.mr-cell + .mr-cell{border-left:1px solid rgba(243,242,238,.12)}
.mr-cell h4{font-family:var(--serif);font-weight:700;font-size:clamp(22px,2.4vw,30px);color:var(--ivory)}
.mr-cell h4 em{color:var(--lime);font-style:normal}
.mr-cell p{font-family:var(--serif);font-size:16px;line-height:1.65;color:rgba(243,242,238,.82);margin-top:12px}
@media (max-width:760px){.mr-grid{grid-template-columns:1fr}.mr-cell + .mr-cell{border-left:0;border-top:1px solid rgba(243,242,238,.12)}}


/* ============ TEAM ============ */
#team{background:var(--charcoal);color:var(--ivory);overflow:hidden}
#team .eyebrow{color:var(--lime)}
#team h2{color:var(--ivory)}
#team .lede{color:rgba(243,242,238,.78)}
.founder-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:60px;align-items:center;margin-top:60px}
.founder-photo{position:relative;border-radius:var(--rad);overflow:hidden;box-shadow:0 40px 90px -30px rgba(0,0,0,.6)}
.founder-photo img{width:100%;transition:transform 1.4s ease}
.founder-photo:hover img{transform:scale(1.05)}
.founder-photo .fp-cap{position:absolute;left:0;right:0;bottom:0;padding:24px;background:linear-gradient(0deg,rgba(30,30,27,.85),transparent);font-family:var(--sans);font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;color:rgba(243,242,238,.9)}
.founder-list{list-style:none;margin-top:26px}
.founder-list li{padding:12px 0 12px 38px;position:relative;font-size:17.5px;color:rgba(243,242,238,.92);border-bottom:1px solid rgba(243,242,238,.09)}
.founder-list li:last-child{border-bottom:none}
.founder-list li::before{content:'⬢';position:absolute;left:2px;color:var(--lime)}
.founder-list b{color:#fff}
.team-mini{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:70px}
.tm{background:rgba(243,242,238,.05);border:1px solid rgba(243,242,238,.12);border-radius:var(--rad);padding:30px;display:flex;gap:20px;align-items:center;transition:background .3s}
.tm:hover{background:rgba(243,242,238,.09)}
.tm .av{width:64px;height:64px;flex:none;border-radius:50%;background:var(--olive);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-weight:700;font-size:22px}
.tm img.av{object-fit:cover;border:2px solid rgba(195,210,35,.45)}
.tm b{display:block;font-family:var(--serif);font-size:19px;color:#fff}
.tm span{font-family:var(--sans);font-size:13px;letter-spacing:.06em;color:var(--lime);text-transform:uppercase;display:block;margin:2px 0 6px}
.tm p{font-size:14.5px;color:rgba(243,242,238,.72);line-height:1.5}

/* investors */
#investors .inv-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:22px;margin-top:60px}
#investors .inv-grid .inv{flex:0 1 calc((100% - 44px)/3);min-width:280px}
.inv{background:var(--paper);border:1px solid var(--line);border-radius:var(--rad);padding:32px 28px;box-shadow:var(--shadow);transition:transform .3s ease}
.inv:hover{transform:translateY(-6px)}
.inv .inv-head{display:flex;align-items:center;gap:18px;margin-bottom:16px}
.inv .inv-head img{width:74px;height:74px;flex:none;border-radius:50%;object-fit:cover}
.inv .inv-head .two{display:flex;flex:none}
.inv .inv-head .two img{width:66px;height:66px}
.inv .inv-head .two img:last-child{margin-left:-10px;border:3px solid var(--paper)}
.inv b{font-family:var(--serif);font-size:20px;color:var(--green)}
.inv p{font-size:15px;color:#5A594F;line-height:1.55}
.inv p b2{color:var(--charcoal);font-weight:700}
.career-strip{margin-top:56px;text-align:center}
.career-strip .cs-label{font-family:var(--sans);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--gray);margin-bottom:26px}
.career-logos{display:flex;justify-content:center;align-items:center;gap:48px;flex-wrap:wrap}
.career-logos img{height:30px;width:auto;transition:all .3s ease}
.career-logos .lg{display:inline-flex;align-items:center;gap:8px}
.career-logos img:hover{opacity:1;transform:scale(1.08)}

/* investor quotes */
.iq-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:60px}
.iq{position:relative;border-radius:var(--rad);overflow:hidden;min-height:640px;display:flex;flex-direction:column;justify-content:flex-end;box-shadow:var(--shadow)}
.iq img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:top center;transition:transform 1.2s ease}
.iq:hover img{transform:scale(1.05)}
.iq .veil{position:absolute;inset:0;background:linear-gradient(0deg,rgba(243,242,238,.97) 24%,rgba(243,242,238,.72) 40%,rgba(243,242,238,0) 58%)}
.iq .in{position:relative;z-index:2;padding:28px}
.iq blockquote{font-family:var(--serif);font-size:16.5px;line-height:1.5;color:var(--ink)}
.iq blockquote::before{content:'\201C';display:block;font-size:54px;line-height:.4;color:var(--olive);margin-bottom:12px}
.iq .who{margin-top:14px;font-family:var(--sans)}
.iq .who b{display:block;font-weight:600;font-size:15px;color:var(--green)}
.iq .who span{font-size:12.5px;color:var(--gray)}
.iq-logos{display:flex;align-items:center;flex-wrap:wrap;gap:10px 20px;margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.iq-logos .lg{display:inline-flex;align-items:center;gap:7px}
.iq-logos img{position:static;inset:auto;height:20px;width:auto;display:block;object-fit:contain;transition:none}
.iq:hover .iq-logos img{transform:none}
.iq-logos .lg i{font-style:normal;font-family:var(--sans);font-weight:700;font-size:14.5px;color:#43423B;letter-spacing:.01em}
.iq-logos .wm{font-family:var(--sans);font-weight:800;font-size:14.5px;color:#43423B}
.iq-logos .wm.caps{letter-spacing:.14em;font-size:13px}


/* ============ FOUNDER LETTER ============ */
#letter{background:linear-gradient(180deg,var(--ivory) 0%,#ECEBE4 100%)}
#letter.collapsed{max-height:640px;overflow:hidden;position:relative}
#letter.collapsed::after{content:'';position:absolute;left:0;right:0;bottom:0;height:300px;background:linear-gradient(180deg,rgba(243,242,238,0),var(--ivory) 80%);pointer-events:none}
.ltr-more{display:none;text-align:center;padding:0 28px 96px;margin-top:-56px;position:relative;z-index:2;background:var(--ivory)}
.ltr-more.show{display:block}
/* the button must never be wider than the screen: on iOS an unclipped overflow widens the whole layout viewport (tester, iPhone 14/15, 2026-09-14) */
.ltr-more .btn{white-space:normal;max-width:100%;line-height:1.35}
.paper{max-width:820px;margin:70px auto 0;background:var(--paper);border:1px solid var(--line);border-radius:18px;box-shadow:0 50px 110px -40px rgba(51,51,46,.35);padding:clamp(36px,6vw,84px);position:relative}

.paper .salutation{font-family:'Snell Roundhand','Savoye LET','Segoe Script','Bradley Hand','Lucida Handwriting',cursive;font-size:24px;color:var(--gray);margin-bottom:34px}
.paper p{font-size:17.5px;line-height:1.85;color:#3E3D36;margin-bottom:24px}
.paper h4{font-family:var(--serif);font-weight:700;font-size:22px;color:var(--charcoal);margin:40px 0 18px}
.paper .ltr-link{color:var(--green);text-decoration:underline;text-underline-offset:3px}
.drop::first-letter{font-size:64px;font-weight:700;float:left;line-height:.82;padding:6px 12px 0 0;color:var(--green)}
.sig{margin-top:44px;border-top:1px solid var(--line);padding-top:32px}
.sig .conviction{font-family:var(--serif);font-style:italic;font-size:19px;color:#3E3D36;margin-bottom:18px}
.sig .name{font-family:var(--serif);font-weight:700;font-size:26px;color:var(--charcoal)}
.sig .role{font-family:var(--sans);font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--green);margin-top:4px}
.notes{margin-top:40px;background:var(--ivory);border:1px solid var(--line);border-radius:12px;padding:26px 30px}
.notes h5{font-family:var(--serif);font-size:16px;color:var(--charcoal);margin-bottom:12px}
.notes ol{padding-left:20px}
.notes li{font-family:var(--sans);font-size:13px;color:var(--gray);line-height:1.65;margin-bottom:8px}
.emma-line{text-align:center;font-family:var(--serif);font-style:italic;font-size:17px;color:var(--gray);margin-top:36px}


/* ============ PERKS ============ */
#perks{background:var(--paper);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.perk-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:60px}
.perk{background:var(--ivory);border:1px solid var(--line);border-radius:var(--rad);padding:28px 24px;position:relative;transition:transform .3s ease, box-shadow .3s ease;display:flex;flex-direction:column}
.perk:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.perk .tier{font-family:var(--sans);font-weight:600;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--gray)}
.perk .amt{font-family:var(--serif);font-weight:700;font-size:32px;color:var(--green);margin:8px 0 4px}
.perk .amt small{font-size:14px;color:var(--gray);font-weight:400;font-family:var(--sans);letter-spacing:.06em}
.perk p{font-size:14.5px;color:#5A594F;line-height:1.55;margin-top:8px}
.perk p b{color:var(--charcoal)}
.perk .plus{font-family:var(--sans);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--olive);margin-top:auto;padding-top:12px}
.perk.hot{background:var(--charcoal);border-color:var(--charcoal)}
.perk.hot .tier{color:rgba(243,242,238,.6)}
.perk.hot .amt{color:var(--lime)}
.perk.hot p{color:rgba(243,242,238,.85)}
.perk.hot p b{color:#fff}
.perk-fine{font-family:var(--sans);font-size:12px;color:var(--gray);margin-top:26px;line-height:1.6;max-width:900px}
/* Each tier's discount block, laid out like Virtuix's investor perks: a section
   label, the extra discount, then the resulting cap on a ticked line, and a
   "Plus" label before the perk itself. The 10% everyone gets is stated once in
   the section lede, so no card has to repeat it (founder 2026-08-27). The cap is
   an offering term, not a perk — the fine print says so. */
.perk-terms{margin-top:16px}
.pt-label{display:block;font-family:var(--sans);font-weight:600;font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--gray)}
.pt-pct{font-family:var(--sans);font-weight:600;font-size:19px;line-height:1.25;color:var(--charcoal);margin-top:4px}
.pt-cap{display:flex;align-items:baseline;gap:7px;font-family:var(--sans);font-size:14.5px;line-height:1.4;color:var(--olive-deep);margin-top:14px}
.pt-cap b{font-weight:600;font-size:22px}
.pt-early{display:flex;align-items:baseline;gap:6px;font-family:var(--sans);font-size:13px;line-height:1.45;color:var(--green);margin-top:4px}
.pt-early b{font-weight:600}
.pt-arrow{flex:none;opacity:.6}
.perk.hot .pt-early{color:var(--lime)}
.pt-tick{flex:none;font-size:12px}
.pt-plus{margin-top:18px}
.perk.hot .pt-label{color:rgba(243,242,238,.5)}
.pt-pct b{font-weight:600;color:var(--green)}
.perk.hot .pt-pct{color:#fff}
.perk.hot .pt-pct b{color:var(--lime)}
.perk.hot .pt-cap{color:var(--lime)}

/* ============ INVEST ============ */
#invest{overflow:hidden}
#invest .invest-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:50px;margin-top:60px;align-items:start}
.terms-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--rad);box-shadow:var(--shadow);overflow:hidden}
.terms-card .tc-head{background:var(--charcoal);color:var(--ivory);padding:26px 30px;font-family:var(--serif);font-weight:700;font-size:22px}
.terms-card .tc-head span{color:var(--lime)}
.trow{display:flex;justify-content:space-between;align-items:center;padding:18px 30px;border-bottom:1px solid var(--line);font-size:16px}
.trow:last-child{border-bottom:none}
.trow .tk{font-family:var(--sans);font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--gray)}
.trow .tv{font-family:var(--serif);font-weight:700;color:var(--charcoal)}
.trow .tv.tba{color:var(--green)}
.checkout-ph{border:2px dashed var(--olive);border-radius:var(--rad);background:repeating-linear-gradient(-45deg,rgba(127,134,68,.05),rgba(127,134,68,.05) 14px,transparent 14px,transparent 28px);min-height:420px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:50px 36px;gap:16px}
.checkout-ph .ico{font-size:44px}
.checkout-ph h4{font-family:var(--serif);font-size:24px;color:var(--charcoal)}
.checkout-ph p{font-family:var(--sans);font-size:14.5px;color:var(--gray);max-width:420px;line-height:1.6}
.checkout-ph code{font-size:12.5px;background:var(--ivory);border:1px solid var(--line);border-radius:6px;padding:3px 10px;color:var(--olive-deep)}

/* ============ FAQ ============ */
#investor-education{scroll-margin-top:60px}
.disqus-shell{max-width:860px;margin:50px auto 0;background:var(--paper);border:1px solid var(--line);border-radius:var(--rad);padding:30px 32px 24px;box-shadow:var(--shadow)}
@media(max-width:640px){.disqus-shell{padding:20px 16px 14px;margin-top:34px}}
.disqus-ph{display:none;border:2px dashed var(--line);border-radius:10px;padding:38px 30px;text-align:center;font-family:var(--sans);font-size:14px;color:var(--gray);line-height:1.7}
.disqus-ph b{font-weight:600;color:var(--olive-deep)}
.faq-list{max-width:860px;margin:60px auto 0}
.faq{border:1px solid var(--line);border-radius:12px;background:var(--paper);margin-bottom:14px;overflow:hidden;transition:box-shadow .3s}
.faq[open]{box-shadow:var(--shadow)}
.faq summary{list-style:none;cursor:pointer;padding:22px 28px;display:flex;justify-content:space-between;align-items:center;gap:20px;font-family:var(--serif);font-weight:700;font-size:18px;color:var(--charcoal)}
.faq summary::-webkit-details-marker{display:none}
.faq summary .chev{flex:none;width:30px;height:30px;border-radius:50%;border:1.5px solid var(--olive);color:var(--olive);display:flex;align-items:center;justify-content:center;font-size:16px;transition:transform .35s ease, background .35s ease}
.faq[open] summary .chev{transform:rotate(45deg);background:var(--olive);color:#fff}
.faq .fa{padding:0 28px 24px;font-size:16px;color:#5A594F;line-height:1.7}
.faq .fa p{margin-bottom:12px}


/* ============ FOOTER ============ */
footer{background:var(--charcoal);color:rgba(243,242,238,.75);padding:80px 0 50px}
.foot-top{display:flex;justify-content:space-between;align-items:center;gap:30px;flex-wrap:wrap;padding-bottom:44px;border-bottom:1px solid rgba(243,242,238,.12)}
.foot-logo{font-family:var(--sans);font-weight:500;font-size:30px;color:#fff;letter-spacing:.01em}
.foot-logo span{color:var(--lime)}
.foot-contact{font-family:var(--sans);font-size:14px}
.foot-contact a{color:var(--lime)}
.foot-cta{display:flex;gap:14px}
.disclosures{padding-top:44px}
.disclosures h5{font-family:var(--serif);font-size:18px;color:var(--ivory);margin-bottom:20px;letter-spacing:.02em}
.disclosures p{font-family:var(--sans);font-size:13px;line-height:1.75;color:rgba(243,242,238,.75);margin-bottom:14px;max-width:1080px}
.disclosures p b{color:rgba(243,242,238,.85)}
.disclosures .ph{color:var(--lime)}
.foot-bottom{margin-top:40px;padding-top:26px;border-top:1px solid rgba(243,242,238,.12);display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-family:var(--sans);font-size:12.5px;color:rgba(243,242,238,.45)}

/* ============ RESPONSIVE ============ */
@media (max-width:1020px){
  .cards4{grid-template-columns:repeat(2,1fr);align-items:start}
  .iq-grid,.moats,#investors .inv-grid{grid-template-columns:repeat(2,1fr)}
  .perk-grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:860px){
  .split,.ball-wrap,.bubbles,.founder-grid,#invest .invest-grid,.model,.resilient,.team-mini{grid-template-columns:1fr}
  /* The label's padding becomes proportional to the sphere. With the fixed
     56/48px the white halo stayed a constant ~198px disc while the sphere
     shrank with the column, so it grew from 58% of the sphere on desktop to
     78% at 375px and 85% at 320px — only a ring of logos left, and nothing
     visible to rotate. The sphere's own size is untouched; percentages resolve
     against .ball, so 861px and up keeps the original 56/48px. */
  .ball .ball-label{padding:10.5% 9%}
  .split{gap:40px}
  .res-cell:first-child{border-right:none;border-bottom:1px solid var(--line)}
  .results{grid-template-columns:1fr}
  .q-slide{grid-template-columns:1fr;text-align:center;gap:22px}
  .q-slide .face{margin:0 auto;width:130px;height:130px}
  .quote-track{min-height:430px}
  .deal-strip{flex-wrap:wrap}
  .deal-cell{flex:1 1 45%;border-bottom:1px solid var(--line)}
  .deal-cell:last-child{border-bottom:none}
  .vs-grid{grid-template-columns:1fr}
  .sect{padding:80px 0}
}
/* Narrow phones: the label's font hits its 24px floor while the sphere keeps
   shrinking, so the halo would creep back to ~67% of it. Drop the font a notch
   and let the sphere use the full column to hold the desktop 58% ratio. */
@media (max-width:360px){
  .ball .ball-label{font-size:21px}
}
@media (max-width:640px){
  .cards4,.iq-grid,.moats,#investors .inv-grid,.perk-grid,.charts2{grid-template-columns:1fr}
  #investors .inv-grid{margin-left:-12px;margin-right:-12px;gap:16px}
  #investors .inv-grid .inv{flex-basis:100%;min-width:0}
  .inv{padding:26px 22px}
  .tick{flex:1 1 45%}
  h1{font-size:clamp(36px,10vw,52px)}
  .btn-lg{font-size:13.5px;padding:14px 22px;letter-spacing:.1em}
  .hero-ctas{flex-direction:column;align-items:center}
  .mkt-circles{gap:16px}
  .mcircle{width:148px;height:148px;padding:12px}
  .mcircle b{font-size:30px}
  .mcircle span{font-size:10.5px;letter-spacing:.06em}
}
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.001s !important;animation-iteration-count:1 !important;transition-duration:.001s !important}
  html{scroll-behavior:auto}
  .rv,.stagger>*{opacity:1 !important;transform:none !important}
  .vs-row .plate{opacity:1 !important;transform:none !important}
}


.up-scrim{position:fixed;inset:0;z-index:1100;background:rgba(35,35,32,.62);display:flex;align-items:center;justify-content:center;padding:16px}
.up-scrim[hidden]{display:none}
.up-card{position:relative;width:100%;max-width:440px;background:var(--paper);border:1px solid var(--line);border-radius:var(--rad);padding:32px 28px 26px;box-shadow:var(--shadow);color:var(--ink)}
.up-x{position:absolute;top:10px;right:10px;width:36px;height:36px;border:0;border-radius:50%;background:transparent;color:var(--gray);font-size:26px;line-height:1;cursor:pointer}
.up-x:hover{background:var(--ivory);color:var(--ink)}
.up-card h2{font-family:var(--serif);font-weight:700;font-size:26px;line-height:1.15;margin:0 32px 10px 0}
.up-card p{font-size:16px;line-height:1.55;color:var(--charcoal);margin:0 0 18px}
.up-card input[type=email],.up-card input[type=text]{display:block;width:100%;height:52px;padding:0 16px;font:inherit;font-size:16px;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:9px}
.up-card input[type=text]{margin-bottom:12px}
.up-card input[type=email]:focus,.up-card input[type=text]:focus{outline:2px solid var(--olive);outline-offset:1px}
.up-ok{display:flex;gap:10px;align-items:flex-start;margin:16px 0 18px;font-size:15px;line-height:1.45;color:var(--charcoal);cursor:pointer}
.up-ok input{flex:0 0 auto;width:20px;height:20px;margin-top:1px;accent-color:var(--olive)}
.up-card .btn{width:100%;min-height:52px}
.up-card .btn[disabled]{opacity:.6;cursor:default;transform:none}
.up-err{font-family:var(--sans);font-size:14px;line-height:1.45;color:#B03A2E;margin:12px 0 0}
.up-err:empty{display:none}
.up-card .up-fine{font-size:13px;line-height:1.5;color:var(--gray);margin:16px 0 0}
