/* Stuniex theme — fully light theme. All sections, the header, footer,
   ticker and app/mockup shells share one light palette (see :root below). */
:root{
  --bg:#FFFFFF;
  --bg-2:#F8FAFC;
  --card:#FFFFFF;
  --card-2:#FBFCFE;
  --border:#E4E8F0;
  --border-2:#D3DAE8;
  --text:#0F1729;
  --muted:#64748B;
  --primary:#2F7BFF;
  --primary-2:#1B63E0;
  --brand-light:#1B63E0;
  --primary-fg:#0A1024;
  --chip-bg:rgba(15,23,42,.04);
  --chip-bg-strong:rgba(15,23,42,.07);
  --card-shadow:0 1px 2px rgba(16,24,40,.04),0 2px 8px rgba(16,24,40,.05);
  --radius:14px;
  --max:1180px;
  --shadow-lg:0 20px 50px -20px rgba(47,123,255,.22);
  --shadow-glow:0 0 40px rgba(47,123,255,.18);
  --ease:cubic-bezier(.22,.61,.36,1);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
html{scroll-behavior:smooth;overflow-x:hidden;max-width:100%}
body{
  font-family:"Helvetica Neue",Helvetica,Arial,system-ui,sans-serif;
  background:var(--bg);
  color:var(--text);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
/* Ambient background glow */
body::before{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
  background:
    radial-gradient(1000px 600px at 10% -10%,rgba(47,123,255,.14),transparent 60%),
    radial-gradient(800px 500px at 90% 10%,rgba(124,178,255,.08),transparent 60%),
    radial-gradient(700px 400px at 50% 110%,rgba(47,123,255,.10),transparent 60%);
}
#site-main,.site-header,.site-footer{position:relative;z-index:1}

img{max-width:100%;height:auto;display:block}
a{color:var(--brand-light);text-decoration:none;transition:color .2s var(--ease)}
a:hover{color:var(--primary-2)}
.container{max-width:var(--max);margin:0 auto;padding-left:20px;padding-right:20px}
.muted{color:var(--muted)}

/* ===== Header ===== */
.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.82);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--border);transition:background .3s var(--ease)}
.nav-wrap{display:flex;align-items:center;justify-content:space-between;padding:14px 20px}
.brand{display:inline-flex;align-items:center;transition:transform .3s var(--ease)}
.brand:hover{transform:scale(1.03)}
.brand img{height:45px;width:auto;filter:drop-shadow(0 4px 14px rgba(47,123,255,.35))}
.nav{display:flex;align-items:center;gap:26px}
.nav ul{display:flex;gap:6px;list-style:none;margin:0;padding:0}
.nav ul li a{position:relative;color:var(--text);font-weight:500;font-size:14px;padding:8px 14px;border-radius:8px;transition:color .2s var(--ease),background .2s var(--ease)}
.nav ul li a::after{content:"";position:absolute;left:14px;right:14px;bottom:4px;height:2px;background:linear-gradient(90deg,var(--primary),var(--brand-light));transform:scaleX(0);transform-origin:right;transition:transform .3s var(--ease)}
.nav ul li a:hover{color:var(--brand-light);background:rgba(47,123,255,.06)}
.nav ul li a:hover::after{transform:scaleX(1);transform-origin:left}
.nav ul li.current-menu-item a,.nav ul li.current_page_item a{color:var(--brand-light)}
.nav ul li.current-menu-item a::after,.nav ul li.current_page_item a::after{transform:scaleX(1)}
.nav-toggle{display:none;background:transparent;border:1px solid var(--border);color:var(--text);border-radius:8px;padding:6px 10px;font-size:18px;cursor:pointer;transition:transform .2s var(--ease)}
.nav-toggle:hover{transform:rotate(90deg);border-color:var(--primary)}

/* ===== Buttons ===== */
.btn{position:relative;display:inline-flex;align-items:center;gap:8px;padding:12px 22px;border-radius:10px;font-weight:600;font-size:14px;border:1px solid transparent;cursor:pointer;transition:transform .25s var(--ease),box-shadow .25s var(--ease),background .25s var(--ease);overflow:hidden;isolation:isolate}
.btn::before{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent 30%,rgba(255,255,255,.25),transparent 70%);transform:translateX(-100%);transition:transform .6s var(--ease);z-index:-1}
.btn:hover::before{transform:translateX(100%)}
.btn:hover{transform:translateY(-2px)}
.btn:active{transform:translateY(0)}
.btn-primary{background:linear-gradient(135deg,var(--primary),var(--primary-2));color:#fff;box-shadow:0 10px 26px -10px rgba(47,123,255,.7)}
.btn-primary:hover{box-shadow:0 14px 30px -8px rgba(47,123,255,.85),0 0 20px rgba(124,178,255,.35);color:#fff}
.btn-outline{background:var(--chip-bg);color:var(--text);border-color:var(--border-2)}
.btn-outline:hover{background:rgba(47,123,255,.12);border-color:var(--primary)}

/* ===== Sections & type ===== */
section{padding:80px 0}
h1,h2,h3,h4{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;letter-spacing:-.01em;line-height:1.15;margin:0 0 16px}
h1{font-size:44px;font-weight:700}
h2{font-size:34px;font-weight:700}
h3{font-size:20px;font-weight:600}
.eyebrow{display:inline-block;font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--brand-light);font-weight:700;margin-bottom:14px;padding:6px 12px;border:1px solid rgba(124,178,255,.28);border-radius:999px;background:rgba(47,123,255,.06)}
.gradient-text{background:linear-gradient(92deg,#0F1729 0%,#1B63E0 20%,#2F7BFF 45%,#7CB2FF 60%,#2F7BFF 75%,#0F1729 100%);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:chromeShift 6s ease-in-out infinite}@keyframes chromeShift{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}

/* ===== Hero ===== */
.hero{position:relative;overflow:hidden;padding:140px 0 110px;text-align:center}
.hero .bg{position:absolute;inset:0;background-size:cover;background-position:center;opacity:.24;animation:heroZoom 24s var(--ease) infinite alternate}
.hero .overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.55) 0%,rgba(255,255,255,.88) 55%,var(--bg) 100%)}
.hero .grid-lines{position:absolute;inset:0;background-image:linear-gradient(rgba(124,178,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(124,178,255,.05) 1px,transparent 1px);background-size:60px 60px;mask-image:radial-gradient(ellipse at center,#000 20%,transparent 70%);-webkit-mask-image:radial-gradient(ellipse at center,#000 20%,transparent 70%)}
.hero .orb{position:absolute;border-radius:50%;filter:blur(80px);opacity:.55;pointer-events:none}
.hero .orb-1{width:520px;height:520px;background:radial-gradient(circle,rgba(47,123,255,.5),transparent 70%);top:-140px;left:-140px;animation:float 12s var(--ease) infinite alternate}
.hero .orb-2{width:420px;height:420px;background:radial-gradient(circle,rgba(124,178,255,.4),transparent 70%);bottom:-120px;right:-120px;animation:float 14s var(--ease) infinite alternate-reverse}
.hero .content{position:relative;max-width:920px;margin:0 auto;padding:0 20px}
.hero h1{font-size:60px;animation:fadeUp .8s var(--ease) both}
.hero p.lead{font-size:19px;color:var(--muted);margin:22px auto 32px;max-width:660px;animation:fadeUp .8s var(--ease) .15s both}
.hero .cta{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;animation:fadeUp .8s var(--ease) .3s both}
@keyframes heroZoom{from{transform:scale(1)}to{transform:scale(1.08)}}
@keyframes float{from{transform:translate(0,0)}to{transform:translate(30px,-24px)}}
@keyframes fadeUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes shimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}

/* Page hero */
.page-hero{padding:96px 0 64px;text-align:center;border-bottom:1px solid var(--border);position:relative;overflow:hidden}
.page-hero + section{padding-top:64px}
.page-hero + .ticker{margin-top:0}
.page-hero::before{content:"";position:absolute;top:-160px;left:50%;transform:translateX(-50%);width:800px;height:400px;background:radial-gradient(ellipse at center,rgba(47,123,255,.2),transparent 60%);pointer-events:none}
.page-hero h1{font-size:46px;position:relative;animation:fadeUp .7s var(--ease) both}
.page-hero p{color:var(--muted);max-width:680px;margin:14px auto 0;position:relative;animation:fadeUp .7s var(--ease) .1s both}

/* ===== Reveal on scroll ===== */
.reveal{transition:opacity .8s var(--ease),transform .8s var(--ease)}
.reveal.reveal-armed{opacity:0;transform:translateY(28px)}
.reveal.in{opacity:1;transform:translateY(0)}
.reveal[data-delay="1"]{transition-delay:.08s}
.reveal[data-delay="2"]{transition-delay:.16s}
.reveal[data-delay="3"]{transition-delay:.24s}
.reveal[data-delay="4"]{transition-delay:.32s}

/* ===== Grids / cards ===== */
.grid{display:grid;gap:20px}
.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:900px){.grid-3,.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}

.card{position:relative;background:linear-gradient(160deg,var(--card),var(--card-2));border:1px solid var(--border);border-radius:var(--radius);padding:24px;overflow:hidden;box-shadow:var(--card-shadow);transition:transform .35s var(--ease),border-color .35s var(--ease),box-shadow .35s var(--ease)}
.card::before{content:"";position:absolute;inset:0;background:radial-gradient(600px circle at var(--mx,50%) var(--my,50%),rgba(47,123,255,.14),transparent 40%);opacity:0;transition:opacity .35s var(--ease);pointer-events:none}
.card:hover{transform:translateY(-6px);border-color:rgba(47,123,255,.55);box-shadow:var(--shadow-lg)}
.card:hover::before{opacity:1}
.card .accent{height:3px;width:36px;border-radius:2px;background:linear-gradient(90deg,var(--primary),var(--brand-light));margin-bottom:14px;transition:width .35s var(--ease)}
.card:hover .accent{width:64px}
.card h3{margin-bottom:6px}
.card p{color:var(--muted);font-size:14px;margin:0}

/* Icon box */
.icon-box{width:48px;height:48px;border-radius:12px;background:linear-gradient(135deg,rgba(47,123,255,.22),rgba(124,178,255,.10));color:var(--brand-light);display:inline-flex;align-items:center;justify-content:center;margin-bottom:16px;font-size:22px;border:1px solid rgba(124,178,255,.25);transition:transform .35s var(--ease),background .35s var(--ease)}
.card:hover .icon-box{transform:rotate(-6deg) scale(1.08);background:linear-gradient(135deg,rgba(47,123,255,.35),rgba(124,178,255,.18))}

/* ===== Steps ===== */
.steps{display:grid;gap:18px;margin-top:36px;list-style:none;padding:0}
.step{display:flex;gap:20px;background:linear-gradient(160deg,var(--card),var(--card-2));border:1px solid var(--border);border-radius:var(--radius);padding:24px;transition:transform .3s var(--ease),border-color .3s var(--ease),box-shadow .3s var(--ease)}
.step:hover{transform:translateX(6px);border-color:rgba(47,123,255,.5);box-shadow:var(--shadow-lg)}
.step .num{flex:none;width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--brand-light));color:#fff;font-weight:700;display:flex;align-items:center;justify-content:center;font-size:20px;box-shadow:0 8px 22px -6px rgba(47,123,255,.6);position:relative;transition:transform .35s var(--ease)}
.step .num::after{content:"";position:absolute;inset:-4px;border-radius:50%;border:1px solid rgba(124,178,255,.3);opacity:0;transition:opacity .35s var(--ease),transform .35s var(--ease)}
.step:hover .num{transform:scale(1.06)}
.step:hover .num::after{opacity:1;transform:scale(1.1)}
.step h3{margin-bottom:4px}
.step p{color:var(--muted);margin:0}

/* ===== Lists ===== */
.check-list{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.check-list li{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border:1px solid var(--border);border-radius:10px;background:var(--chip-bg);transition:transform .25s var(--ease),border-color .25s var(--ease),background .25s var(--ease)}
.check-list li:hover{transform:translateX(4px);border-color:rgba(47,123,255,.45);background:rgba(47,123,255,.06)}
.check-list li::before{content:"✓";display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;flex:none;color:#fff;background:linear-gradient(135deg,var(--primary),var(--brand-light));border-radius:50%;font-size:13px;font-weight:700}

/* ===== Callouts ===== */
.callout{position:relative;border:1px solid rgba(47,123,255,.35);background:linear-gradient(160deg,rgba(47,123,255,.14),rgba(47,123,255,.04));border-radius:20px;padding:40px;text-align:center;margin:36px 0;overflow:hidden}
.callout::before{content:"";position:absolute;top:-100px;right:-100px;width:280px;height:280px;background:radial-gradient(circle,rgba(47,123,255,.4),transparent 65%);filter:blur(20px);animation:float 10s var(--ease) infinite alternate}
.callout h2{margin-bottom:12px;position:relative}
.callout p{position:relative}

/* ===== Why Join stack ===== */
.stack{display:grid;gap:22px}
.stack article{position:relative;background:linear-gradient(160deg,var(--card),var(--card-2));border:1px solid var(--border);border-radius:var(--radius);padding:28px;transition:transform .3s var(--ease),border-color .3s var(--ease),box-shadow .3s var(--ease);overflow:hidden}
.stack article::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(180deg,var(--primary),var(--brand-light));transform:scaleY(0);transform-origin:top;transition:transform .4s var(--ease)}
.stack article:hover{transform:translateY(-4px);border-color:rgba(47,123,255,.45);box-shadow:var(--shadow-lg)}
.stack article:hover::before{transform:scaleY(1)}
.stack .num-line{display:flex;align-items:center;gap:12px;margin-bottom:10px}
.stack .num-line span{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--brand-light);font-size:12px;font-weight:600;letter-spacing:.1em}
.stack .num-line i{flex:1;max-width:40px;height:1px;background:linear-gradient(90deg,var(--brand-light),transparent);display:block}

/* ===== FAQ ===== */
.faq-group{margin-bottom:36px}
.faq-group h2{font-size:22px;color:var(--brand-light);margin-bottom:14px;position:relative;padding-left:18px}
.faq-group h2::before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:3px;background:linear-gradient(180deg,var(--primary),var(--brand-light));border-radius:2px}
.faq-item{border:1px solid var(--border);border-radius:10px;background:linear-gradient(160deg,var(--card),var(--card-2));margin-bottom:10px;overflow:hidden;transition:border-color .25s var(--ease),transform .25s var(--ease)}
.faq-item:hover{border-color:rgba(47,123,255,.4)}
.faq-item.open{border-color:rgba(47,123,255,.6);box-shadow:var(--shadow-glow)}
.faq-item button{width:100%;text-align:left;background:transparent;color:var(--text);border:0;padding:18px 20px;font-size:15px;font-weight:500;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:12px;font-family:inherit;transition:color .2s var(--ease)}
.faq-item button:hover{color:var(--brand-light)}
.faq-item .a{max-height:0;overflow:hidden;padding:0 20px;color:var(--muted);font-size:14px;line-height:1.7;transition:max-height .4s var(--ease),padding .4s var(--ease)}
.faq-item.open .a{max-height:400px;padding:0 20px 18px;border-top:1px solid var(--border)}
.faq-item.open .a{padding-top:14px}
.faq-item .chev{transition:transform .3s var(--ease);color:var(--brand-light)}
.faq-item.open .chev{transform:rotate(180deg)}

/* ===== Forms ===== */
.form-card{background:linear-gradient(160deg,var(--card),var(--card-2));border:1px solid var(--border);border-radius:20px;padding:32px;max-width:760px;margin:0 auto;box-shadow:0 30px 60px -30px rgba(0,0,0,.6)}
.form-card label{display:block;font-size:13px;font-weight:600;margin:14px 0 6px;color:var(--text)}
.form-card input,.form-card textarea,.form-card select{width:100%;background:var(--bg-2);border:1px solid var(--border);color:var(--text);padding:12px 14px;border-radius:10px;font:inherit;transition:border-color .2s var(--ease),box-shadow .2s var(--ease),background .2s var(--ease)}
.form-card input:hover,.form-card textarea:hover{border-color:var(--border-2)}
.form-card input:focus,.form-card textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(47,123,255,.22);background:rgba(47,123,255,.04)}
.form-card .btn{margin-top:22px}
.notice{border-radius:12px;padding:14px 18px;margin:0 auto 16px;max-width:760px;animation:fadeUp .5s var(--ease)}
.notice-success{background:rgba(34,197,94,.1);border:1px solid rgba(34,197,94,.5);color:#bbf7d0}
.notice-error{background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.5);color:#fecaca}

/* ===== Footer ===== */
.site-footer{border-top:1px solid var(--border);background:linear-gradient(180deg,var(--bg),var(--bg-2));padding:64px 0 24px;margin-top:80px;position:relative;overflow:hidden}
.site-footer::before{content:"";position:absolute;top:0;left:50%;transform:translateX(-50%);width:600px;height:1px;background:linear-gradient(90deg,transparent,var(--primary),transparent)}
.footer-grid{display:grid;grid-template-columns:1.5fr repeat(4,1fr);gap:28px}
@media (max-width:800px){.footer-grid{grid-template-columns:1fr 1fr}}
@media (max-width:480px){.footer-grid{grid-template-columns:1fr}}
.site-footer h4{font-size:12px;text-transform:uppercase;letter-spacing:.22em;color:var(--text);margin:0 0 14px}
.site-footer ul{list-style:none;padding:0;margin:0;display:grid;gap:10px}
.site-footer a{color:var(--muted);font-size:14px;transition:color .2s var(--ease),transform .2s var(--ease);display:inline-block}
.site-footer a:hover{color:var(--brand-light);transform:translateX(4px)}
.footer-bottom{margin-top:44px;padding-top:22px;border-top:1px solid var(--border);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:12px;color:var(--muted)}
.socials{display:flex;gap:10px;margin-top:14px}
.socials a{width:38px;height:38px;border-radius:10px;background:var(--chip-bg);border:1px solid var(--border);display:inline-flex;align-items:center;justify-content:center;color:var(--muted);font-size:15px;transition:all .25s var(--ease)}
.socials a:hover{background:linear-gradient(135deg,var(--primary),var(--brand-light));color:#fff;transform:translateY(-3px);border-color:transparent;box-shadow:0 8px 18px -4px rgba(47,123,255,.55)}

/* Mobile nav */
@media (max-width:900px){
  .nav-toggle{display:inline-flex}
  .nav{position:absolute;top:78px;right:20px;left:20px;flex-direction:column;align-items:stretch;background:rgba(255,255,255,.98);backdrop-filter:blur(14px);border:1px solid var(--border);padding:18px;border-radius:14px;gap:14px;display:none;box-shadow:0 20px 40px -10px rgba(16,26,51,.18);animation:fadeUp .3s var(--ease)}
  .nav.open{display:flex}
  .nav ul{flex-direction:column;gap:4px}
  .brand img{height:38px}
  .hero{padding:100px 0 80px}
  .hero h1{font-size:38px}
  .page-hero h1{font-size:32px}
  h1{font-size:34px}
  h2{font-size:26px}
  section{padding:60px 0}
}
@media (max-width:480px){
  .brand img{height:32px}
  .nav-wrap{padding:12px 16px}
}

/* Utility */
.text-center{text-align:center}
.mt-8{margin-top:32px}.mt-12{margin-top:48px}.mt-16{margin-top:64px}

/* Reduce motion */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001s!important;transition-duration:.001s!important;animation-iteration-count:1!important}
  .reveal{opacity:1;transform:none}
}

/* ===== v2.3 additions: ticker, stats, bento, quotes, trust, animations ===== */
@keyframes ticker { from{transform:translateX(0)} to{transform:translateX(-50%)} }
@keyframes floatY { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-14px)} }
@keyframes shine { 0%{background-position:-200% 0} 100%{background-position:200% 0} }
@keyframes pulseDot { 0%,100%{box-shadow:0 0 0 0 rgba(47,123,255,.7)} 70%{box-shadow:0 0 0 10px rgba(47,123,255,0)} }
@keyframes tilt-in { from{opacity:0;transform:perspective(800px) rotateX(8deg) translateY(20px)} to{opacity:1;transform:none} }

.pulse-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--primary-2);margin-right:8px;vertical-align:middle;animation:pulseDot 2s infinite}
.hero-badges{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px;justify-content:center}
.hero-badges span{font-size:12px;padding:8px 14px;border:1px solid var(--border-2);border-radius:999px;background:var(--chip-bg);color:var(--muted);backdrop-filter:blur(6px)}
.orb-3{position:absolute;bottom:-160px;left:40%;width:360px;height:360px;background:radial-gradient(circle,rgba(124,178,255,.25),transparent 60%);filter:blur(50px);animation:floatY 12s ease-in-out infinite}

/* Ticker */
.ticker{overflow:hidden;border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:linear-gradient(90deg,var(--bg-2),#EEF2FA,var(--bg-2));padding:12px 0;position:relative}
.ticker::before,.ticker::after{content:"";position:absolute;top:0;bottom:0;width:80px;z-index:2;pointer-events:none}
.ticker::before{left:0;background:linear-gradient(90deg,var(--bg-2),transparent)}
.ticker::after{right:0;background:linear-gradient(-90deg,var(--bg-2),transparent)}
.ticker-track{display:inline-flex;gap:36px;white-space:nowrap;animation:ticker 45s linear infinite;min-width:200%}
.ticker:hover .ticker-track{animation-play-state:paused}
.tk{font-size:13px;color:var(--muted);display:inline-flex;gap:8px;align-items:center}
.tk b{color:var(--text);font-weight:600}
.tk em{font-style:normal;color:var(--brand-light)}
.tk i.up{color:#4ade80;font-style:normal}
.tk i.down{color:#f87171;font-style:normal}

/* Stats */
.stats-section{padding:80px 0;background:radial-gradient(1000px 400px at 50% 0%,rgba(47,123,255,.08),transparent 60%)}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
@media(max-width:800px){.stats-grid{grid-template-columns:repeat(2,1fr)}}
.stat{background:linear-gradient(160deg,var(--card),var(--card-2));border:1px solid var(--border);border-radius:var(--radius);padding:28px;text-align:center;transition:transform .35s var(--ease),border-color .35s var(--ease),box-shadow .35s var(--ease);position:relative;overflow:hidden}
.stat::after{content:"";position:absolute;inset:-1px;border-radius:inherit;background:linear-gradient(120deg,transparent,rgba(124,178,255,.15),transparent);background-size:200% 100%;opacity:0;transition:opacity .4s var(--ease);animation:shine 3s linear infinite;pointer-events:none}
.stat:hover{transform:translateY(-6px);border-color:rgba(47,123,255,.55);box-shadow:var(--shadow-lg)}
.stat:hover::after{opacity:1}
.stat .num{font-size:44px;font-weight:800;background:linear-gradient(135deg,var(--text),var(--brand-light));-webkit-background-clip:text;background-clip:text;color:transparent;line-height:1}
.stat .num em{font-style:normal;color:var(--primary-2);-webkit-text-fill-color:var(--primary-2);margin-left:2px}
.stat p{margin:12px 0 0;color:var(--muted);font-size:14px}

/* Bento */
.bento{display:grid;grid-template-columns:repeat(6,1fr);grid-auto-rows:minmax(180px,auto);gap:20px}
@media(max-width:900px){.bento{grid-template-columns:repeat(2,1fr)}}
.bento-item{position:relative;padding:28px;border-radius:18px;background:linear-gradient(160deg,var(--card),var(--card-2));border:1px solid var(--border);overflow:hidden;transition:transform .4s var(--ease),border-color .4s var(--ease),box-shadow .4s var(--ease)}
.bento-item:hover{transform:translateY(-6px);border-color:rgba(47,123,255,.55);box-shadow:var(--shadow-lg)}
.bento-item h3{margin:12px 0 8px}
.bento-item p{color:var(--muted);margin:0}
.bento-a{grid-column:span 3;grid-row:span 2}
.bento-b{grid-column:span 3}
.bento-c{grid-column:span 2}
.bento-d{grid-column:span 2}
.bento-e{grid-column:span 2}
@media(max-width:900px){.bento-item{grid-column:span 2!important;grid-row:auto!important}}
.bento-a .ring{position:absolute;right:-80px;bottom:-80px;width:260px;height:260px;border-radius:50%;border:1px solid rgba(124,178,255,.25);box-shadow:inset 0 0 60px rgba(47,123,255,.25);animation:floatY 8s ease-in-out infinite}

/* Tilt on hover */
.tilt{transition:transform .35s var(--ease),border-color .35s var(--ease),box-shadow .35s var(--ease)}
.tilt:hover{transform:perspective(900px) rotateX(3deg) rotateY(-3deg) translateY(-4px)}

/* Testimonial quotes */
.quote{margin:0;padding:28px;background:linear-gradient(160deg,var(--card),var(--card-2));border:1px solid var(--border);border-radius:var(--radius);position:relative;transition:transform .35s var(--ease),border-color .35s var(--ease),box-shadow .35s var(--ease)}
.quote::before{content:"“";position:absolute;top:6px;right:18px;font-size:72px;line-height:1;color:rgba(124,178,255,.15);font-family:Georgia,serif}
.quote:hover{transform:translateY(-6px);border-color:rgba(47,123,255,.5);box-shadow:var(--shadow-lg)}
.quote .stars{color:#fbbf24;letter-spacing:2px;margin-bottom:10px;font-size:14px}
.quote p{color:var(--text);font-size:15px;line-height:1.65;margin:0 0 18px}
.quote footer{display:flex;flex-direction:column;gap:2px;border-top:1px solid var(--border);padding-top:14px}
.quote footer strong{color:var(--brand-light);font-weight:600}
.quote footer span{color:var(--muted);font-size:12px}

/* Trust strip */
.trust{padding:60px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:linear-gradient(180deg,transparent,rgba(47,123,255,.06),transparent)}
.logo-strip{display:flex;flex-wrap:wrap;gap:14px;justify-content:center}
.logo-chip{padding:12px 22px;border:1px solid var(--border-2);border-radius:12px;color:var(--muted);font-weight:600;letter-spacing:.08em;font-size:13px;background:var(--chip-bg);transition:all .3s var(--ease);position:relative;overflow:hidden}
.logo-chip::before{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent 30%,rgba(124,178,255,.18),transparent 70%);transform:translateX(-100%);transition:transform .6s var(--ease)}
.logo-chip:hover{color:var(--brand-light);border-color:var(--primary);transform:translateY(-3px);box-shadow:0 8px 22px -10px rgba(47,123,255,.5)}
.logo-chip:hover::before{transform:translateX(100%)}

/* Enhanced reveal */
.reveal.in{animation:tilt-in .7s var(--ease) both}

@media (prefers-reduced-motion: reduce){
  .ticker-track,.orb-3,.stat::after,.pulse-dot,.bento-a .ring{animation:none!important}
  .tilt:hover{transform:none}
}


/* ===== v2.3.2 — clean section rhythm + professional imagery ===== */
:root{
  --section-pad-y: 104px;
  --section-pad-y-sm: 72px;
}
section{ padding: var(--section-pad-y) 0; margin: 0; }
.hero{ padding: 120px 0 110px; }
.stats-section, .trust{ padding: var(--section-pad-y) 0; margin: 0; }
.ticker{ padding: 12px 0; margin: 0; border-top:1px solid var(--border); border-bottom:1px solid var(--border); }

/* remove double borders where bordered sections meet */
section + section{ border-top: 0 !important; }

/* Kill any leftover min-height stretch from v2.3.1 */
section > .container,
.stats-section > .container,
.trust > .container,
.hero > .content{ min-height: 0 !important; display: block; }
.hero > .content{ display:block }

@media(max-width:768px){
  section, .stats-section, .trust{ padding: var(--section-pad-y-sm) 0; }
  .hero{ padding: 90px 0 80px; }
}

/* ===== Section media (professional imagery) ===== */
.section-media{
  position:relative;border-radius:20px;overflow:hidden;
  border:1px solid var(--border);
  box-shadow: 0 30px 60px -30px rgba(0,0,0,.65), 0 0 0 1px rgba(47,123,255,.08) inset;
  aspect-ratio: 4 / 3; background:var(--bg-2);
  transition: transform .5s var(--ease), box-shadow .5s var(--ease);
}
.section-media img{ width:100%;height:100%;object-fit:cover;display:block;transition:transform .8s var(--ease); filter:saturate(1.05) contrast(1.02); }
.section-media::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background: linear-gradient(180deg, rgba(5,11,31,0) 40%, rgba(5,11,31,.55) 100%),
              linear-gradient(120deg, rgba(47,123,255,.12), transparent 55%);
}
.section-media:hover{ transform:translateY(-6px); box-shadow:0 40px 80px -30px rgba(47,123,255,.4); }
.section-media:hover img{ transform:scale(1.06); }
.section-media .caption{
  position:absolute;left:18px;bottom:16px;z-index:2;color:#fff;font-size:12px;
  padding:6px 12px;border-radius:999px;background:rgba(5,11,31,.65);
  border:1px solid rgba(124,178,255,.35);backdrop-filter:blur(6px);
}
.media-grid{ display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin:24px 0 }
@media(max-width:900px){ .media-grid{ grid-template-columns:1fr } }
.media-grid .section-media{ aspect-ratio: 4/5 }
.media-wide{ aspect-ratio: 16/9 }

/* ===== Mega menu + dropdown navigation ===== */
/* NOTE: intentionally no `display` here — the base `.nav{display:flex}`
   rule near the top of this file already covers desktop, and the
   mobile media query further down toggles display:none/.open{flex}.
   Redeclaring display here (even to the same "flex" value) would win
   the cascade on mobile too, since it comes later in the file, and
   permanently force the mobile nav panel open regardless of the
   hamburger toggle. */
.nav{align-items:center;gap:22px}
.nav > ul{display:flex;align-items:center;gap:4px;list-style:none;margin:0;padding:0}
.nav .menu-item{position:relative}
.nav .menu-item > a{position:relative;display:inline-flex;align-items:center;gap:5px;color:var(--text);font-weight:500;font-size:14px;padding:10px 12px;border-radius:8px;transition:color .2s var(--ease),background .2s var(--ease)}
.nav-icon{display:none}
.nav .menu-item > a:hover{color:var(--brand-light);background:rgba(47,123,255,.06)}
.nav .caret{width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .25s var(--ease)}
.nav .menu-item.has-dropdown:hover .caret,.nav .menu-item.has-mega:hover .caret{transform:rotate(225deg) translateY(2px)}

.nav .sub-menu{position:absolute;top:100%;left:0;min-width:220px;margin:8px 0 0;padding:10px;list-style:none;background:rgba(255,255,255,.98);backdrop-filter:blur(14px);border:1px solid var(--border);border-radius:12px;box-shadow:0 20px 40px -10px rgba(16,26,51,.18);opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .25s var(--ease),transform .25s var(--ease),visibility .25s}
.nav .menu-item.has-dropdown:hover .sub-menu,.nav .menu-item.has-dropdown:focus-within .sub-menu{opacity:1;visibility:visible;transform:translateY(0)}
.nav .sub-menu li a{display:block;padding:9px 12px;border-radius:8px;font-size:14px;color:var(--muted)}
.nav .sub-menu li a:hover{background:rgba(47,123,255,.1);color:var(--brand-light)}

.mega-panel{position:absolute;top:100%;left:50%;transform:translateX(-50%) translateY(6px);width:min(980px,94vw);margin-top:10px;background:rgba(255,255,255,.98);backdrop-filter:blur(16px);border:1px solid var(--border);border-radius:16px;box-shadow:0 30px 60px -20px rgba(16,26,51,.18);opacity:0;visibility:hidden;transition:opacity .3s var(--ease),transform .3s var(--ease),visibility .3s;z-index:60;display:flex;align-items:stretch;overflow:hidden}
.nav .menu-item.has-mega:hover .mega-panel,.nav .menu-item.has-mega:focus-within .mega-panel{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
.mega-grid{flex:1;min-width:0;display:grid;grid-template-columns:repeat(4,1fr);gap:0;padding:28px}
.mega-col{padding:0 18px;border-left:1px solid var(--border)}
.mega-col:first-child{border-left:0;padding-left:0}
.mega-col h4{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--brand-light);margin:0 0 14px;font-weight:700}
.mega-col ul{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.mega-col ul li a{display:flex;align-items:flex-start;gap:9px;padding:8px;margin:0 -8px;border-radius:8px;color:var(--text);transition:background .2s var(--ease),color .2s var(--ease),transform .2s var(--ease)}
.mega-col ul li a:hover{background:rgba(47,123,255,.1);color:var(--brand-light);transform:translateX(3px)}
.mega-link-icon{flex:none;width:28px;height:28px;border-radius:8px;display:flex;align-items:center;justify-content:center;background:rgba(47,123,255,.08);color:var(--brand-light);margin-top:1px}
.mega-link-icon .icon-svg{width:16px;height:16px}
.mega-link-text{display:flex;flex-direction:column;gap:2px;min-width:0}
.mega-link-text strong{font-size:14px;font-weight:600;color:inherit}
.mega-link-text small{font-size:11.5px;font-weight:400;color:var(--muted);line-height:1.35}
.mega-col-link{display:inline-block;margin-top:4px;font-size:13px;font-weight:600;color:var(--brand-light)}

.mega-feature{flex:none;width:270px;padding:28px 24px;background:linear-gradient(165deg,var(--bg-2),var(--card));border-left:1px solid var(--border);display:flex;flex-direction:column}
.mega-feature-art{border-radius:12px;overflow:hidden;border:1px solid var(--border);background:var(--card);margin-bottom:16px;aspect-ratio:4/3;display:flex}
.mega-feature-art svg{display:block}
.mega-feature-eyebrow{font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--brand-light);font-weight:700;margin:0 0 8px}
.mega-feature h4{font-size:15px;line-height:1.35;margin:0 0 8px}
.mega-feature p{font-size:12.5px;color:var(--muted);line-height:1.5;margin:0 0 16px}
.mega-feature-cta{font-size:13px;padding:9px 14px;margin-top:auto;align-self:flex-start}

.nav-actions{display:flex;align-items:center;gap:12px;padding-left:8px;margin-left:4px;border-left:1px solid var(--border)}
.nav-account{font-size:13px;font-weight:600;color:var(--muted);padding:8px 10px;border-radius:8px;transition:color .2s var(--ease),background .2s var(--ease)}
.nav-account:hover{color:var(--brand-light);background:rgba(47,123,255,.08)}

@media (max-width:900px){
  .nav{flex-direction:column;align-items:stretch;gap:6px}
  .nav > ul{flex-direction:column;align-items:stretch;gap:2px}
  .nav .menu-item > a{padding:12px 10px}
  .nav-icon{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:8px;background:linear-gradient(135deg,rgba(47,123,255,.2),rgba(124,178,255,.08));border:1px solid rgba(124,178,255,.25);flex:none}
  .nav-icon .icon-svg{width:15px;height:15px}
  .nav .sub-menu,.mega-panel{position:static;transform:none;opacity:1;visibility:visible;width:auto;box-shadow:none;background:var(--chip-bg);margin:6px 0 6px 14px;max-height:0;overflow:hidden;padding:0;border-width:0 0 0 2px;border-radius:0;transition:max-height .3s var(--ease)}
  .nav .menu-item.has-dropdown.open .sub-menu,.nav .menu-item.has-mega.open .mega-panel{max-height:800px;padding:10px 0 10px 12px}
  .mega-panel{flex-direction:column}
  .mega-grid{grid-template-columns:1fr;padding:0}
  .mega-col{border-left:0;padding:10px 0}
  .mega-link-text small{display:none}
  .mega-feature{width:auto;border-left:0;border-top:1px solid var(--border);padding:16px 0 4px}
  .mega-feature-art{aspect-ratio:16/9}
  .nav-actions{border-left:0;padding-left:0;margin-left:0;flex-direction:column;align-items:stretch;padding-top:10px;border-top:1px solid var(--border)}
}

/* ===== Lottie icons ===== */
.lottie-icon{display:inline-block}
.lottie-icon svg{display:block;width:100%;height:100%}
.icon-box .lottie-icon{margin:0 auto}

/* ===== v2.5.0 — Advanced animation pass: icons, hero terminal, dashboard showcase ===== */
:root{
  --up:#4ade80;
  --down:#f87171;
  --silver:#C9D6EC;
  --silver-2:#EAF0FA;
}

/* --- SVG icon system --- */
.icon-svg{display:block;width:26px;height:26px;color:#1B63E0;filter:drop-shadow(0 1px 0 rgba(201,214,236,.65))}
.icon-box{position:relative}
.icon-box::after{content:"";position:absolute;inset:-6px;border-radius:16px;background:radial-gradient(circle,rgba(124,178,255,.35),transparent 70%);opacity:0;transition:opacity .35s var(--ease)}
.card:hover .icon-box::after,.bento-item:hover .icon-box::after{opacity:1}
.socials a svg{width:16px;height:16px}

/* --- Hero: two-column split + particle canvas --- */
.hero-particles{position:absolute;inset:0;width:100%;height:100%;opacity:.55;pointer-events:none}
.hero-split .content.hero-grid{max-width:1180px;display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center;text-align:left}
.hero-copy .lead{margin-left:0;margin-right:0}
.hero-copy .cta{justify-content:flex-start}
.hero-badges{display:flex;gap:10px;flex-wrap:wrap;margin-top:26px;animation:fadeUp .8s var(--ease) .4s both}
.hero-badges span{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;color:var(--text);background:linear-gradient(160deg,var(--chip-bg-strong),rgba(124,178,255,.06));border:1px solid rgba(201,214,236,.28);padding:7px 13px 7px 10px;border-radius:999px}
.hero-badges .icon-svg{width:15px;height:15px}
.hero-visual{position:relative;animation:fadeUp .9s var(--ease) .3s both}
@media(max-width:980px){
  .hero-split .content.hero-grid{grid-template-columns:1fr;text-align:center;gap:40px}
  .hero-copy .cta,.hero-copy .hero-badges{justify-content:center}
  .hero-visual{max-width:440px;margin:0 auto}
}

/* --- Buttons: glow --- */
.btn-glow{position:relative}
.btn-glow::after{content:"";position:absolute;inset:-3px;border-radius:inherit;background:linear-gradient(135deg,var(--primary),var(--brand-light),var(--silver));z-index:-1;opacity:.55;filter:blur(10px);animation:pulseGlow 2.6s ease-in-out infinite}
@media(prefers-reduced-motion:reduce){.btn-glow::after{animation:none}}

/* --- Trading terminal (hero mockup) --- */
.terminal{position:relative;max-width:420px;margin:0 auto;padding:22px 22px 18px;border-radius:20px;background:linear-gradient(165deg,var(--card),var(--card-2));border:1px solid var(--border);box-shadow:0 30px 70px -30px rgba(16,24,40,.18),0 0 0 1px rgba(47,123,255,.06) inset;backdrop-filter:blur(6px);animation:dashFloat 7s var(--ease) infinite}
.terminal-glow{position:absolute;inset:-30%;background:radial-gradient(circle at 30% 20%,rgba(47,123,255,.35),transparent 55%),radial-gradient(circle at 80% 90%,rgba(201,214,236,.18),transparent 50%);filter:blur(30px);z-index:-1}
.terminal-head{display:flex;align-items:center;gap:9px;font-size:12.5px;color:var(--muted);font-weight:600;letter-spacing:.02em;margin-bottom:16px}
.terminal-dot{width:8px;height:8px;border-radius:50%;background:var(--up);box-shadow:0 0 0 0 rgba(74,222,128,.7);animation:pulseDot 2s infinite}
.terminal-live{margin-left:auto;font-size:10.5px;color:var(--up);letter-spacing:.05em;font-weight:700}
.terminal-balance{margin-bottom:14px}
.t-label{display:block;font-size:11.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:4px}
.t-value{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:30px;font-weight:700;color:var(--text);letter-spacing:-.01em}
.t-value em{font-style:normal;color:var(--muted);font-size:17px}
.t-value.dash-big{font-size:34px}
.t-pill{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;font-weight:700;padding:4px 10px;border-radius:999px;margin-top:8px}
.t-pill.up{color:var(--up);background:rgba(74,222,128,.12);border:1px solid rgba(74,222,128,.3)}
.t-pill.down{color:var(--down);background:rgba(248,113,113,.12);border:1px solid rgba(248,113,113,.3)}
.terminal-chart{margin:14px 0 12px;border-radius:12px;overflow:hidden;background:var(--chip-bg);border:1px solid var(--border)}
.candle-chart{display:block;width:100%;height:108px}
.candle-chart-lg{height:220px}
.candle{
  transform-origin:bottom;transform-box:fill-box;cursor:pointer;
  transition:filter .2s var(--ease),transform .2s var(--ease);
  animation-name:candleRise,candleIdle;
  animation-duration:.7s,3.2s;
  animation-timing-function:var(--ease),ease-in-out;
  animation-delay:var(--cd),calc(var(--cd) + .7s);
  animation-iteration-count:1,infinite;
  animation-fill-mode:both,none;
}
.candle:hover{filter:brightness(1.55) saturate(1.25) drop-shadow(0 0 6px rgba(124,178,255,.6));transform:scaleY(1.06)}
.candle-trend{stroke-dasharray:900;stroke-dashoffset:900;animation:trendDraw 1.8s var(--ease) .3s forwards;pointer-events:none}
@media(prefers-reduced-motion:reduce){.candle,.candle-trend{animation:none}}

/* --- 3D mouse-tilt wrapper (trading terminal + dashboard showcase) --- */
.tilt-3d{will-change:transform;transition:transform .15s linear;transform-style:preserve-3d}
.dash-tilt-3d{max-width:1040px;margin:0 auto}
@media(prefers-reduced-motion:reduce){.tilt-3d{transition:none}}
.terminal-positions{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}
.t-row{display:grid;grid-template-columns:1.3fr .9fr .9fr;align-items:center;font-size:12.5px;padding:8px 10px;border-radius:10px;background:var(--chip-bg);border:1px solid var(--border)}
.t-sym{display:flex;flex-direction:column;font-weight:700;color:var(--text);gap:2px}
.t-sym small{font-weight:500;color:var(--muted);font-size:10.5px}
.t-side{font-size:9.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:1px 6px;border-radius:5px;width:fit-content}
.t-side.long{color:var(--up);background:rgba(74,222,128,.14)}
.t-side.short{color:var(--down);background:rgba(248,113,113,.14)}
.t-entry{color:var(--muted);text-align:right}
.t-pnl{font-weight:700;text-align:right}
.t-pnl.up{color:var(--up)}
.t-pnl.down{color:var(--down)}
.terminal-actions{display:flex;gap:10px}
.t-btn{flex:1;text-align:center;padding:10px;border-radius:10px;font-size:12.5px;font-weight:700;letter-spacing:.02em}
.t-btn.buy{color:#08122A;background:linear-gradient(135deg,var(--up),#7CE8A4)}
.t-btn.sell{color:#08122A;background:linear-gradient(135deg,var(--down),#FCA5A5)}

/* --- Dashboard showcase section --- */
.dash-showcase{padding:var(--section-pad-y) 0;background:radial-gradient(ellipse 800px 400px at 50% 0%,rgba(47,123,255,.08),transparent 70%)}
.dash-shell{max-width:1040px;margin:0 auto;border-radius:22px;padding:20px;background:linear-gradient(160deg,var(--card),var(--card-2));border:1px solid var(--border);box-shadow:0 40px 90px -40px rgba(16,24,40,.2)}
.dash-topbar{display:flex;align-items:center;justify-content:space-between;padding:4px 10px 16px;border-bottom:1px solid var(--border);margin-bottom:18px}
.dash-tabs{display:flex;gap:6px}
.dash-tab{font-size:12px;font-weight:600;color:var(--muted);padding:6px 14px;border-radius:999px;border:1px solid transparent}
.dash-tab.active{color:var(--text);background:linear-gradient(135deg,rgba(47,123,255,.25),rgba(124,178,255,.12));border-color:rgba(124,178,255,.3)}
.dash-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:20px}
.dash-panel{background:var(--chip-bg);border:1px solid var(--border);border-radius:16px;padding:18px}
.dash-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.dash-positions{margin-top:10px}
.dash-risk{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:16px;padding-top:14px;border-top:1px solid var(--border)}
.dash-risk div{text-align:center;font-size:20px;font-weight:700;color:var(--text)}
.dash-risk small{display:block;font-size:10.5px;font-weight:500;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-top:2px}
@media(max-width:860px){.dash-grid{grid-template-columns:1fr}}

/* --- Live Market Pulse (Markets page) --- */
.market-pulse{padding:var(--section-pad-y) 0;background:radial-gradient(ellipse 800px 400px at 50% 0%,rgba(124,178,255,.07),transparent 70%)}
.pulse-shell{max-width:1040px;margin:0 auto;border-radius:22px;padding:20px;background:linear-gradient(160deg,var(--card),var(--card-2));border:1px solid var(--border);box-shadow:0 40px 90px -40px rgba(16,24,40,.2);animation:dashFloat 8s var(--ease) infinite}
.pulse-symbol-tabs .dash-tab{font-family:inherit}
.pulse-feed-note{font-size:12px;margin:2px 0 12px;line-height:1.5}
.pulse-feed{display:flex;flex-direction:column;gap:2px;max-height:280px;overflow-y:auto}
.pulse-feed-item{display:flex;gap:10px;align-items:flex-start;padding:10px 4px;border-bottom:1px solid var(--border);animation:fieldIn .5s var(--ease) both}
.pulse-feed-item:last-child{border-bottom:none}
.pulse-feed-icon{flex:0 0 auto;width:28px;height:28px;border-radius:10px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,rgba(47,123,255,.18),rgba(124,178,255,.08));border:1px solid rgba(124,178,255,.25)}
.pulse-feed-icon svg{width:15px;height:15px}
.pulse-feed-body p{margin:0 0 3px;font-size:12.5px;line-height:1.4;color:var(--text)}
.pulse-feed-time{font-size:10.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
@media(max-width:860px){.pulse-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.pulse-shell{animation:none}}

/* --- Trader Portal preview (homepage, browser-chrome screenshot mockup) ---
   Base dash-app/checklist/skill-tag rules mirror the real Trader Dashboard
   app shell (see the plugin's dashboard.css) so the homepage mockup looks
   authentic without depending on the plugin being installed. */
.dash-app{display:grid;grid-template-columns:240px 1fr;gap:0;background:transparent}
.dash-app-sidebar{padding:26px 18px;border-right:1px solid var(--border);display:flex;flex-direction:column;gap:24px}
.dash-app-user{display:flex;align-items:center;gap:10px}
.dash-app-avatar{width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,#2F7BFF,#7CB2FF);display:flex;align-items:center;justify-content:center;font-weight:700;color:#08122A;flex:none}
.dash-app-user strong{display:block;font-size:13.5px}
.dash-app-nav{display:flex;flex-direction:column;gap:4px}
.dash-app-tab{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;background:none;border:0;color:var(--muted);font-size:13.5px;font-weight:600;text-align:left;font-family:inherit}
.dash-app-tab.is-active{background:linear-gradient(135deg,rgba(47,123,255,.22),rgba(124,178,255,.1));color:var(--text)}
.dash-app-tab svg{flex:none}
.dash-app-logout{margin-top:auto;text-align:center}
.dash-app-main{padding:28px}
.dash-checklist-list{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-direction:column;gap:10px}
.dash-checklist-list li{display:flex;align-items:center;gap:10px;font-size:13.5px;color:var(--muted)}
.dash-checklist-list li .lms-lesson-check{width:22px;height:22px;font-size:10px}
.dash-checklist-list li.is-done{color:var(--text)}
.dash-checklist-list li.is-done .lms-lesson-check{background:linear-gradient(135deg,var(--up),#7CE8A4);color:#08122A}
.lms-lesson-check{width:24px;height:24px;border-radius:50%;background:var(--chip-bg-strong);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex:none}
.lms-skill-tags{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}
.lms-skill-tag{display:inline-flex;align-items:center;background:rgba(47,123,255,.12);color:var(--brand-light);border:1px solid rgba(47,123,255,.3);border-radius:20px;padding:5px 12px;font-size:12px;font-weight:600}

.portal-preview{padding:var(--section-pad-y) 0}
.portal-preview-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;max-width:1180px;margin:0 auto}
.portal-preview-copy .eyebrow{margin-bottom:10px}
.portal-preview-copy h2{margin:0 0 16px}
.portal-preview-copy p{margin:0 0 24px}
.portal-preview-points{list-style:none;margin:0 0 28px;padding:0;display:flex;flex-direction:column;gap:14px}
.portal-preview-points li{display:flex;align-items:flex-start;gap:10px;font-size:14px;color:var(--muted)}
.portal-preview-points li svg{flex:none;margin-top:2px}
.browser-frame{border-radius:16px;overflow:hidden;border:1px solid var(--border);box-shadow:0 40px 90px -40px rgba(16,24,40,.2);background:var(--card)}
.browser-frame-bar{display:flex;align-items:center;gap:8px;padding:12px 16px;background:var(--chip-bg);border-bottom:1px solid var(--border)}
.browser-dot{width:9px;height:9px;border-radius:50%;background:rgba(255,255,255,.18)}
.browser-frame-url{margin-left:10px;font-size:11.5px;color:var(--muted);background:var(--chip-bg-strong);border-radius:999px;padding:4px 12px}
.portal-preview-app.dash-app{border:0;border-radius:0;box-shadow:none}
.portal-preview-app .dash-app-sidebar{padding:22px 16px}
.portal-preview-app .dash-app-avatar{width:34px;height:34px;font-size:13px}
.portal-preview-app .dash-app-tab{cursor:default;font-size:13px}
.portal-preview-app .dash-app-main{padding:22px}
.portal-preview-app .dash-app-panel{display:block}
.portal-preview-app .card{padding:20px}
.portal-preview-card-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.portal-preview-card-row h3{margin:2px 0 0}
.portal-preview-progress{margin:16px 0 20px;height:6px;border-radius:999px;background:var(--chip-bg-strong);overflow:hidden}
.portal-preview-progress span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--primary),#7fb1ff)}
.portal-preview-card-label{margin:0 0 2px}
.portal-preview-app .lms-skill-tags{margin:10px 0 0}
.t-pill.neutral{color:var(--brand-light);background:rgba(47,123,255,.12);border:1px solid rgba(47,123,255,.3)}
@media(max-width:900px){
  .portal-preview-grid{grid-template-columns:1fr;gap:32px}
  .dash-app{grid-template-columns:1fr}
  .portal-preview-app .dash-app-sidebar{flex-direction:row;flex-wrap:wrap;padding:14px}
  .portal-preview-app .dash-app-nav{flex-direction:row;flex-wrap:wrap}
  .portal-preview-app .dash-app-logout{display:none}
}

/* --- Cookie consent banner --- */
.cookie-consent{position:fixed;left:0;right:0;bottom:0;z-index:200;background:rgba(255,255,255,.97);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--border);box-shadow:0 -20px 60px -30px rgba(16,24,40,.25);transform:translateY(100%);opacity:0;transition:transform .4s var(--ease),opacity .4s var(--ease)}
.cookie-consent.is-visible{transform:translateY(0);opacity:1}
.cookie-consent-inner{max-width:var(--max);margin:0 auto;padding:20px;display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}
.cookie-consent-copy h4{margin:0 0 4px;font-size:15px}
.cookie-consent-copy p{margin:0;font-size:13px;color:var(--muted);max-width:640px;line-height:1.6}
.cookie-consent-copy a{color:var(--brand-light);text-decoration:underline}
.cookie-consent-actions{display:flex;gap:10px;flex:none}
.cookie-consent-actions .btn{padding:10px 20px;font-size:13px}
@media(max-width:640px){
  .cookie-consent-inner{flex-direction:column;align-items:stretch}
  .cookie-consent-actions{width:100%}
  .cookie-consent-actions .btn{flex:1;justify-content:center}
}

/* --- Animated forms (login/register/contact/apply) --- */
.form-card{position:relative;animation:formIn .6s var(--ease) both;overflow:visible}
.form-card::before{content:"";position:absolute;inset:-1px;border-radius:21px;padding:1px;background:linear-gradient(135deg,rgba(124,178,255,.5),rgba(201,214,236,.15),rgba(47,123,255,.5));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:.7;pointer-events:none;animation:formBorderShift 5s ease-in-out infinite}
.form-card form > label,.form-card form > input,.form-card form > select,.form-card form > textarea,.form-card form > button,.form-card form > .form-note,.form-card form > .form-subhead{animation:fieldIn .5s var(--ease) both}
.form-card form > .form-subhead{margin:22px 0 4px;padding-top:18px;border-top:1px solid var(--border);font-size:15px;letter-spacing:.02em;background:linear-gradient(135deg,var(--text),var(--silver) 55%,#2F7BFF);-webkit-background-clip:text;background-clip:text;color:transparent}
.form-card form > label:nth-of-type(1),.form-card form > input:nth-of-type(1){animation-delay:.05s}
.form-card form > label:nth-of-type(2),.form-card form > input:nth-of-type(2){animation-delay:.12s}
.form-card form > label:nth-of-type(3),.form-card form > input:nth-of-type(3){animation-delay:.19s}
.form-card form > label:nth-of-type(4),.form-card form > input:nth-of-type(4){animation-delay:.26s}
.form-card form > button{animation-delay:.34s}
.form-card form > .form-note{animation-delay:.4s}
.form-card input:focus,.form-card textarea:focus,.form-card select:focus{transform:translateY(-1px)}
@media(prefers-reduced-motion:reduce){.form-card,.form-card::before,.form-card form > *{animation:none}}

/* --- Silver/blue/white accent expansion --- */
.card:hover{box-shadow:var(--shadow-lg),0 0 0 1px rgba(201,214,236,.16) inset}
.bento-item:hover{box-shadow:var(--shadow-lg),0 0 0 1px rgba(201,214,236,.16) inset}
.stat .num{background:linear-gradient(120deg,var(--text),var(--silver) 45%,var(--brand-light) 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.logo-chip:hover{border-color:rgba(201,214,236,.5)}

/* --- Keyframes: v2.5.0 --- */
@keyframes pulseGlow{0%,100%{opacity:.4;filter:blur(8px)}50%{opacity:.75;filter:blur(14px)}}
@keyframes dashFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
@keyframes candleRise{from{transform:scaleY(0);opacity:0}to{transform:scaleY(1);opacity:1}}
@keyframes trendDraw{to{stroke-dashoffset:0}}
@keyframes candleIdle{0%,100%{transform:scaleY(1)}50%{transform:scaleY(1.035)}}
@keyframes formIn{from{opacity:0;transform:translateY(16px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes formBorderShift{0%,100%{opacity:.5}50%{opacity:.9}}
@keyframes fieldIn{from{opacity:0;transform:translateX(-8px)}to{opacity:1;transform:translateX(0)}}
