
:root{
  --bg:#0b0c10;
  --panel:#111317;
  --ink:#f5f7fa;
  --muted:#9aa0a6;
  --accent:#e5e7eb;
  --brand:#f0f0f0;
  --link:#cbd5e1;
  --line:#1f242d;
  --pill:#171a21;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Inter,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--ink);line-height:1.55}
a{color:var(--link);text-decoration:none}
a:hover{text-decoration:underline}
.container{max-width:1120px;margin:0 auto;padding:0 20px}
nav{position:sticky;top:0;z-index:20;background:rgba(11,12,16,.8);backdrop-filter:saturate(140%) blur(8px);border-bottom:1px solid var(--line)}
nav .bar{display:flex;align-items:center;justify-content:space-between;padding:14px 0}
.logo{display:flex;gap:12px;align-items:center}
.logo img{height:28px}
.logo span{font-weight:700;letter-spacing:.12em;font-size:.95rem;color:var(--brand)}
nav .links a{margin-left:18px;font-size:.95rem}
.btn{display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border-radius:999px;border:1px solid var(--line);background:var(--pill);color:var(--ink);font-weight:600}
.btn:hover{background:#1b1f27}
.hero{background:url('assets/hero.svg') center/cover no-repeat;padding:100px 0 90px;border-bottom:1px solid var(--line)}
.hero h1{font-size: clamp(32px, 5vw, 64px);letter-spacing:.04em;margin:0 0 10px}
.hero p{max-width:760px;color:var(--muted);font-size:1.05rem;margin:10px 0 20px}
.badges{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0 26px}
.badge{padding:8px 12px;border:1px solid var(--line);border-radius:999px;background:var(--pill);font-size:.85rem;color:var(--accent)}
.section{padding:64px 0;border-bottom:1px solid var(--line)}
.section h2{font-size:1.6rem;letter-spacing:.06em;margin:0 0 18px}
.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:18px}
.card{grid-column:span 4;background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:18px}
.card h3{margin:0 0 8px;font-size:1.05rem}
.card p{margin:0;color:var(--muted)}
@media(max-width:900px){.card{grid-column:span 6}}
@media(max-width:640px){.card{grid-column:span 12}}
.strip{display:flex;gap:28px;overflow:auto;padding:8px 0 4px}
.strip .pill{white-space:nowrap;border:1px solid var(--line);background:var(--pill);border-radius:999px;padding:8px 12px;color:var(--muted)}
.two-col{display:grid;grid-template-columns:1.2fr 1fr;gap:24px}
@media(max-width:900px){.two-col{grid-template-columns:1fr}}
.list{list-style:none;margin:8px 0 0;padding:0}
.list li{padding:8px 0;border-bottom:1px dashed var(--line);display:flex;justify-content:space-between;gap:16px;color:var(--accent)}
.kicker{color:var(--muted);letter-spacing:.18em;text-transform:uppercase;font-size:.75rem}
blockquote{margin:0;padding:16px 18px;background:#0f1217;border-left:3px solid #2a2f3a;border-radius:8px;color:#ced4da}
footer{padding:28px 0;color:var(--muted)}
.small{font-size:.92rem}
.cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:16px}
hr.sep{border:none;border-top:1px solid var(--line);margin:18px 0}
.credit-cols{columns:2;column-gap:28px}
@media(max-width:740px){.credit-cols{columns:1}}
.notice{font-size:.85rem;color:var(--muted)}

.logo .main-logo{
  height:48px;
  filter:invert(1);
}
.hero-logo{
  max-width:280px;
  margin-bottom:20px;
  filter:invert(1);
}
@media(max-width:640px){
  .hero-logo{max-width:200px;}
}


/* --- Masthead (prominent logo panel) --- */
.masthead{
  background:#f5f7fa;
  border-bottom:1px solid var(--line);
  padding:28px 0;
}
.masthead .masthead-logo{
  display:block;
  margin:0 auto;
  height:72px;
  width:auto;
  image-rendering:auto;
  filter:none;
}
@media(min-width:900px){
  .masthead .masthead-logo{ height:88px; }
}

/* Optionally invert the logo for dark backgrounds */
.logo-inverse{ filter: invert(1) hue-rotate(180deg) contrast(1.05) brightness(1.05); }

.masthead-strap{
  text-align:center;
  margin-top:8px;
  font-size:.95rem;
  letter-spacing:.06em;
  color:#374151;
}


/* --- Animate on Scroll (AOS) --- */
.aos{opacity:0;transform:translateY(40px);transition:all .8s ease-out;}
.aos.visible{opacity:1;transform:none;}

/* --- Decorative floating shapes --- */
.shape{
  position:absolute;
  border-radius:50%;
  background:rgba(255,255,255,0.04);
  animation:float 12s ease-in-out infinite;
  z-index:0;
}
@keyframes float{
  0%,100%{transform:translateY(0) translateX(0);}
  50%{transform:translateY(-20px) translateX(10px);}
}
.hero{position:relative;overflow:hidden;}
.hero .shape{background:rgba(255,255,255,0.06);}


/* --- Motion system --- */
.reveal{opacity:0; transform:translateY(14px); transition:opacity .7s ease, transform .7s ease; will-change: opacity, transform;}
.reveal.in{opacity:1; transform:none;}
.reveal.slide-right{transform:translateX(-18px)}
.reveal.slide-left{transform:translateX(18px)}
.reveal.zoom{transform:scale(.98)}

/* Decorative animated shapes in hero */
.hero{position:relative; overflow:hidden}
.hero-shapes{position:absolute; inset:0; pointer-events:none}
.shape{position:absolute; filter:blur(18px); opacity:.25; mix-blend-mode:screen; animation:floaty 16s ease-in-out infinite alternate}
.shape.blob{width:380px; height:380px; border-radius:50%; background:radial-gradient(circle at 30% 30%, #c7d2fe, #6366f1)}
.shape.ring{width:300px; height:300px; border-radius:50%; border:24px solid rgba(244,244,245,.35); left:65%; top:10%; animation-duration:22s}
.shape.dot{width:140px; height:140px; border-radius:50%; background:radial-gradient(circle at 40% 40%, #fca5a5, #ef4444); left:12%; bottom:6%; animation-duration:18s}
.shape.blob{left:-6%; top:28%}

@keyframes floaty{
  0%{transform:translate3d(0,0,0) scale(1)}
  100%{transform:translate3d(20px,-24px,0) scale(1.06)}
}

/* Parallax (handled by JS via translateY) */
[data-speed]{transition:transform .2s linear; will-change: transform}

/* Reduced motion preference */
@media (prefers-reduced-motion: reduce){
  .reveal{opacity:1; transform:none !important; transition:none}
  .shape{animation:none}
  [data-speed]{transition:none}
}

.card:nth-child(2n).reveal{transform:translateY(14px) translateX(-8px)}
.card:nth-child(3n).reveal{transform:translateY(14px) translateX(8px)}
