/* ============================================
   FXS ELITES — shared design system
   ============================================ */
@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=Inter:wght@400;500;600&family=JetBrains+Mono:wght@400;500;700&display=swap');

:root{
  --bg:#08090b;
  --bg-2:#0c0e11;
  --bg-card:#101317;
  --bg-card-2:#14181d;
  --line:#20242c;
  --line-soft:#191d23;
  --text:#f6f8fa;
  --text-dim:#8d96a1;
  --text-faint:#5c646e;
  --green:#1ed98a;
  --green-deep:#13b873;
  --green-soft:rgba(30,217,138,0.10);
  --blue:#4f8dff;
  --blue-soft:rgba(79,141,255,0.10);
  --orange:#ff7d2e;
  --orange-soft:rgba(255,125,46,0.10);
  --display:'Space Grotesk',sans-serif;
  --body:'Inter',sans-serif;
  --mono:'JetBrains Mono',monospace;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  background:var(--bg);color:var(--text);font-family:var(--body);
  line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden;position:relative;
}
body::after{
  content:"";position:fixed;inset:0;z-index:9999;pointer-events:none;opacity:0.035;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  mix-blend-mode:overlay;
}
.wrap{max-width:1160px;margin:0 auto;padding:0 28px}
a{text-decoration:none;color:inherit}
::selection{background:var(--green);color:#04130b}
img{max-width:100%;display:block}

/* TICKER */
.ticker{position:relative;z-index:40;border-bottom:1px solid var(--line-soft);background:var(--bg-2);overflow:hidden;height:38px;display:flex;align-items:center}
.ticker-track{display:flex;gap:42px;white-space:nowrap;animation:scrollticker 40s linear infinite;padding-left:42px}
.ticker:hover .ticker-track{animation-play-state:paused}
@keyframes scrollticker{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.tick{font-family:var(--mono);font-size:12px;letter-spacing:.5px;color:var(--text-faint);display:inline-flex;align-items:center;gap:9px}
.tick b{color:var(--text-dim);font-weight:500}
.tick .up{color:var(--green)}
.tick .dn{color:var(--orange)}
.tick .dot{width:5px;height:5px;border-radius:99px;background:var(--text-faint)}

/* NAV */
nav{position:sticky;top:0;z-index:50;background:rgba(8,9,11,0.72);backdrop-filter:blur(16px) saturate(140%);border-bottom:1px solid var(--line-soft)}
.nav-inner{display:flex;align-items:center;justify-content:space-between;height:70px}
.brand{display:flex;align-items:center;gap:11px}
.brand img{height:38px;width:auto;filter:drop-shadow(0 0 14px rgba(30,217,138,0.25))}
.brand .wordmark{font-family:var(--display);font-weight:700;letter-spacing:1.5px;font-size:19px}
.brand .wordmark .x{color:var(--green)}
.nav-links{display:flex;align-items:center;gap:30px}
.nav-links a{font-family:var(--body);font-size:14px;color:var(--text-dim);font-weight:500;transition:color .2s;position:relative}
.nav-links a:hover{color:var(--text)}
.nav-links a.active{color:var(--text)}
.nav-links a.active::after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:2px;background:var(--green);border-radius:2px}
.nav-cta{font-family:var(--display);background:var(--green);color:#04130b;font-weight:600;padding:10px 20px;border-radius:9px;font-size:14px;transition:transform .25s cubic-bezier(.2,.8,.2,1),box-shadow .25s;letter-spacing:.3px}
.nav-cta:hover{transform:translateY(-2px);box-shadow:0 10px 30px rgba(30,217,138,0.25)}
.nav-toggle{display:none;background:none;border:none;color:var(--text);font-size:24px;cursor:pointer}

/* BUTTONS */
.btn-primary{font-family:var(--display);background:var(--green);color:#04130b;font-weight:600;padding:16px 32px;border-radius:11px;font-size:16px;letter-spacing:.3px;transition:transform .25s cubic-bezier(.2,.8,.2,1),box-shadow .25s;position:relative;overflow:hidden;display:inline-block;text-align:center;border:none;cursor:pointer}
.btn-primary::after{content:"";position:absolute;top:0;left:-120%;width:60%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,0.35),transparent);transform:skewX(-20deg);transition:left .6s}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 14px 36px rgba(30,217,138,0.3)}
.btn-primary:hover::after{left:130%}
.btn-ghost{font-family:var(--display);border:1px solid var(--line);color:var(--text);font-weight:500;padding:16px 32px;border-radius:11px;font-size:16px;transition:.25s;background:rgba(255,255,255,0.01);display:inline-block;cursor:pointer}
.btn-ghost:hover{border-color:var(--blue);color:var(--blue);background:var(--blue-soft)}
.btn-blue{background:var(--blue);color:#fff}
.btn-blue:hover{box-shadow:0 14px 36px rgba(79,141,255,0.3)}

/* SECTION PRIMITIVES */
section{padding:96px 0;position:relative}
.eyebrow{font-family:var(--mono);display:inline-flex;align-items:center;gap:9px;color:var(--green);font-weight:500;font-size:12px;letter-spacing:2.5px;text-transform:uppercase;margin-bottom:18px}
.eyebrow::before{content:"";width:26px;height:1px;background:var(--green)}
.eyebrow.blue{color:var(--blue)}.eyebrow.blue::before{background:var(--blue)}
.eyebrow.orange{color:var(--orange)}.eyebrow.orange::before{background:var(--orange)}
.sec-title{font-family:var(--display);font-size:clamp(30px,4.2vw,48px);font-weight:700;letter-spacing:-1.4px;margin-bottom:18px;line-height:1.06}
.sec-sub{color:var(--text-dim);font-size:18px;max-width:540px}
.center{text-align:center}
.center .eyebrow{justify-content:center}
.center .sec-sub{margin:0 auto}

/* FOOTER */
footer{border-top:1px solid var(--line-soft);padding:54px 0 40px;color:var(--text-faint);font-size:13px}
.foot-grid{display:flex;justify-content:space-between;align-items:flex-start;gap:40px;flex-wrap:wrap;margin-bottom:36px}
.foot-brand img{height:48px;margin-bottom:14px;filter:drop-shadow(0 0 16px rgba(30,217,138,0.2))}
.foot-brand p{max-width:280px;color:var(--text-faint);font-size:13px}
.foot-cols{display:flex;gap:64px;flex-wrap:wrap}
.foot-col h4{font-family:var(--mono);font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:var(--text-dim);margin-bottom:14px}
.foot-col a{display:block;color:var(--text-faint);font-size:14px;margin-bottom:9px;transition:color .2s}
.foot-col a:hover{color:var(--green)}
.foot-legal{border-top:1px solid var(--line-soft);padding-top:24px;text-align:center;color:var(--text-faint);font-size:12px;line-height:1.7}
.foot-legal p{max-width:680px;margin:0 auto 8px}

/* REVEAL */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s cubic-bezier(.2,.8,.2,1),transform .7s cubic-bezier(.2,.8,.2,1)}
.reveal.in{opacity:1;transform:none}

/* FLOATING CTA */
.float-cta{position:fixed;bottom:24px;right:24px;z-index:200;font-family:var(--display);background:var(--green);color:#04130b;font-weight:600;font-size:15px;padding:15px 24px;border-radius:99px;border:none;cursor:pointer;box-shadow:0 10px 40px rgba(30,217,138,0.4);display:flex;align-items:center;gap:9px;transform:translateY(120px);opacity:0;transition:transform .4s cubic-bezier(.2,.8,.2,1),opacity .4s,box-shadow .25s}
.float-cta.show{transform:translateY(0);opacity:1}
.float-cta:hover{box-shadow:0 14px 50px rgba(30,217,138,0.55);transform:translateY(-2px)}
.float-cta .cal{width:8px;height:8px;border-radius:99px;background:#04130b;animation:pulse2 2.2s infinite}
@keyframes pulse2{0%{box-shadow:0 0 0 0 rgba(4,19,11,0.5)}70%{box-shadow:0 0 0 7px rgba(4,19,11,0)}100%{box-shadow:0 0 0 0 rgba(4,19,11,0)}}

/* MODAL */
.modal-overlay{position:fixed;inset:0;z-index:300;background:rgba(4,5,7,0.82);backdrop-filter:blur(8px);display:none;align-items:center;justify-content:center;padding:24px;opacity:0;transition:opacity .3s}
.modal-overlay.open{display:flex;opacity:1}
.modal{position:relative;background:var(--bg-card);border:1px solid var(--line);border-radius:22px;width:100%;max-width:560px;max-height:88vh;overflow-y:auto;overflow-x:hidden}
.modal-glow{position:absolute;top:-60px;left:-60px;width:200px;height:200px;background:radial-gradient(circle,var(--green-soft),transparent 70%);pointer-events:none}
.modal-close{position:absolute;top:16px;right:18px;z-index:3;background:var(--bg-card-2);border:1px solid var(--line);color:var(--text-dim);width:34px;height:34px;border-radius:9px;cursor:pointer;font-size:18px;line-height:1;transition:.2s}
.modal-close:hover{color:var(--text);border-color:var(--green)}
.modal-inner{position:relative;z-index:2;padding:40px 38px}
.modal h3{font-family:var(--display);font-size:26px;font-weight:700;letter-spacing:-.8px;margin-bottom:8px}
.modal .modal-sub{color:var(--text-dim);font-size:15px;margin-bottom:26px}

/* QUESTIONNAIRE in modal */
.q-step{display:none}
.q-step.active{display:block;animation:fadein .4s}
@keyframes fadein{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.q-label{font-family:var(--mono);font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--text-faint);margin-bottom:14px}
.q-opts{display:flex;flex-direction:column;gap:11px;margin-bottom:8px}
.q-opt{text-align:left;background:var(--bg-card-2);border:1px solid var(--line);border-radius:12px;padding:16px 18px;color:var(--text);font-family:var(--body);font-size:15px;cursor:pointer;transition:.2s;display:flex;align-items:center;gap:13px}
.q-opt:hover{border-color:var(--green);background:rgba(30,217,138,0.05)}
.q-opt .q-ico{font-size:20px}
.q-progress{display:flex;gap:6px;margin-bottom:24px}
.q-dot{height:3px;flex:1;background:var(--line);border-radius:2px;transition:.3s}
.q-dot.on{background:var(--green)}
.q-result{text-align:center}
.q-result .q-big{font-family:var(--display);font-size:22px;font-weight:700;margin-bottom:10px;letter-spacing:-.5px}
.q-result p{color:var(--text-dim);font-size:15px;margin-bottom:24px}
.cal-embed{border-radius:14px;overflow:hidden;border:1px solid var(--line);min-height:420px}
.cal-embed iframe{width:100%;height:560px;border:0;display:block}

@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  .reveal{opacity:1;transform:none}
}
@media(max-width:880px){
  .nav-links{display:none;position:absolute;top:70px;left:0;right:0;flex-direction:column;background:var(--bg-2);border-bottom:1px solid var(--line);padding:20px 28px;gap:18px}
  .nav-links.open{display:flex}
  .nav-toggle{display:block}
  .foot-grid{flex-direction:column;gap:32px}
  .foot-cols{gap:40px}
}
