.gazelle-site { --bg:#fff; --ink:#111319; --muted:#626b7b; --blue:#1658ff; --line:#e9edf4; }
.gazelle-site .site-header-inner,.gazelle-site main,.gazelle-site footer { max-width:1280px; }
.gazelle-site main { scroll-margin-top:144px; }
.gazelle-site .brand { font-size:28px; font-weight:600; }
.gazelle-site .brand-mark { width:46px; height:46px; }
.gazelle-site .intro-main { padding-bottom:24px; }
.brand-stage { position:relative; isolation:isolate; }
.brand-ribbons { position:absolute; left:50%; top:200px; width:100%; height:620px; transform:translateX(-50%); pointer-events:none; z-index:-1; mask-image:linear-gradient(#000 60%,transparent); }
.brand-hero { position:relative; min-height:340px; display:flex; align-items:center; padding:48px 0 40px; }
.brand-copy { position:relative; z-index:2; max-width:62%; }
.brand-copy h1 { font-size:clamp(36px,4.6vw,66px); font-weight:800; line-height:1.2; letter-spacing:-.055em; margin:0 0 32px; }
.brand-copy .primary { min-height:58px; padding:0 28px; border-radius:32px; background:#1658ff; box-shadow:0 10px 24px #1658ff24; font-size:17px; }
.brand-copy .primary:hover { background:#0645e5; box-shadow:0 12px 28px #1658ff30; }
.download-mark { width:21px; height:21px; fill:currentColor; margin-right:6px; }
.hero-mascot { position:absolute; right:0; top:20px; width:56%; height:auto; pointer-events:none; user-select:none; z-index:1; animation:gazelle-arrive .9s cubic-bezier(.2,.7,.2,1) both; }
.gazelle-site .feature-banner { max-width:1200px; margin:8px auto 40px; }
.screenshot-frame { width:100%; max-width:1200px; margin:0 auto; padding:3px; border:1px solid var(--line); border-radius:18px; background:var(--card); box-shadow:0 12px 32px #15284b12; }
.gazelle-site .banner-viewport { width:100%; aspect-ratio:16 / 9; border:0; border-radius:14px; background:#101725; box-shadow:none; }
.gazelle-site .banner-track { height:100%; }
.gazelle-site .banner-slide { height:100%; aspect-ratio:auto; }
.gazelle-site .banner-image { object-fit:contain; }
.gazelle-site .banner-controls { display:flex; align-items:center; justify-content:center; gap:12px; padding-top:12px; }
.gazelle-site .banner-dots { gap:6px; min-width:0; }
.gazelle-site .banner-dots button { position:relative; display:inline-flex; align-items:center; min-height:48px; padding:10px 20px 16px; border:0; border-radius:0; background:transparent; color:var(--muted); font-size:14px; box-shadow:none; }
.gazelle-site .banner-dots button:hover,.gazelle-site .banner-dots button[aria-pressed="true"] { color:var(--blue); background:transparent; box-shadow:none; }
.gazelle-site .banner-dots button[aria-pressed="true"]::after { content:""; position:absolute; left:12px; right:12px; bottom:0; height:12px; border-bottom:2px solid var(--blue); border-radius:0 0 50% 50%; }
.banner-arrow { display:grid; place-items:center; flex-shrink:0; width:40px; height:40px; padding:0; border:1px solid var(--line); border-radius:50%; background:var(--bg); color:var(--ink); font-size:20px; }
.banner-arrow:hover { border-color:var(--blue); color:var(--blue); }
.gazelle-site footer { justify-content:flex-end; padding-top:20px; padding-bottom:24px; }
:root[data-theme="dark"] .gazelle-site { --bg:#101010; --ink:#f2f2f2; --muted:#a3a3a3; --blue:#e5e5e5; --line:#2e2e2e; }
:root[data-theme="dark"] .gazelle-site .hero-mascot { filter:drop-shadow(0 8px 20px #0004); }
:root[data-theme="dark"] .gazelle-site .brand-ribbons { opacity:.4; }
@keyframes gazelle-arrive { from { opacity:0; transform:translate(-22px,12px) rotate(-2deg); } to { opacity:1; transform:translate(0,0) rotate(0); } }
@media(min-width:1450px) { .brand-hero { min-height:360px; } }
@media(max-width:900px) {
  .brand-hero { min-height:300px; padding-top:40px; }
  .brand-copy h1 { font-size:clamp(32px,4.6vw,48px); }
  .hero-mascot { top:54px; right:0; width:53%; }
  .brand-copy .primary { min-height:52px; font-size:15px; }
  .brand-ribbons { top:160px; width:100%; height:500px; }
  .gazelle-site .banner-dots button { padding-left:16px; padding-right:16px; }
}
@media(max-width:650px) {
  .gazelle-site .brand { font-size:24px; }
  .gazelle-site .brand-mark { width:36px; height:36px; }
  .brand-hero { display:block; min-height:0; padding:28px 0 16px; }
  .brand-copy { max-width:none; }
  .brand-copy h1 { font-size:clamp(30px,7.5vw,42px); margin-bottom:22px; }
  .brand-copy .primary { min-height:50px; padding:0 22px; font-size:15px; }
  .hero-mascot { position:relative; top:auto; right:auto; display:block; width:92%; margin:14px 0 0 auto; }
  .brand-ribbons { top:190px; height:350px; }
  .gazelle-site .feature-banner { width:calc(100% + 16px); max-width:none; margin-left:-8px; margin-right:-8px; }
  .screenshot-frame { padding:2px; border-radius:12px; }
  .gazelle-site .banner-viewport { border-radius:9px; }
  .gazelle-site .banner-controls { gap:6px; padding-top:6px; }
  .gazelle-site .banner-dots { gap:0; }
  .gazelle-site .banner-dots button { padding:8px 14px 14px; min-height:44px; font-size:13px; }
  .banner-arrow { width:32px; height:32px; font-size:18px; }
  .gazelle-site footer { align-items:flex-end; }
  .gazelle-site footer>span { font-size:11px; gap:16px; }
}
@media(prefers-reduced-motion:reduce) { .hero-mascot { animation:none; } }
