:root {
  color-scheme: light;
  --bg: #f7f5fb;
  --bg-soft: #fffafd;
  --surface: rgba(255,255,255,.76);
  --surface-solid: #ffffff;
  --text: #1f1d2b;
  --muted: #6e687a;
  --line: rgba(53,45,72,.11);
  --primary: #7357d9;
  --primary-2: #c85ea8;
  --accent: #ff8c70;
  --success: #5d9c78;
  --shadow: 0 24px 60px rgba(53,38,96,.14);
  --shadow-soft: 0 14px 32px rgba(53,38,96,.09);
  --radius-xl: 32px;
  --radius-lg: 24px;
  --radius-md: 18px;
  --nav-h: 74px;
  --max: 1180px;
}

[data-theme="dark"] {
  color-scheme: dark;
  --bg: #111019;
  --bg-soft: #171522;
  --surface: rgba(28,25,40,.78);
  --surface-solid: #1c1928;
  --text: #f5f1fb;
  --muted: #b7b0c6;
  --line: rgba(255,255,255,.09);
  --primary: #a58cff;
  --primary-2: #e087c7;
  --accent: #ff9f87;
  --success: #7ec59a;
  --shadow: 0 28px 70px rgba(0,0,0,.32);
  --shadow-soft: 0 14px 34px rgba(0,0,0,.24);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--text);
  background:
    radial-gradient(circle at 12% 8%, rgba(123,91,230,.12), transparent 28%),
    radial-gradient(circle at 88% 16%, rgba(232,105,184,.11), transparent 25%),
    radial-gradient(circle at 65% 78%, rgba(255,143,113,.09), transparent 26%),
    var(--bg);
  min-height: 100vh;
  line-height: 1.6;
  overflow-x: hidden;
}

a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }
button, input, textarea { font: inherit; }
button { color: inherit; }

::selection { background: color-mix(in srgb, var(--primary) 28%, transparent); }

.skip-link {
  position: fixed;
  left: 12px;
  top: -60px;
  z-index: 2000;
  background: var(--surface-solid);
  padding: 10px 14px;
  border-radius: 12px;
  box-shadow: var(--shadow-soft);
}
.skip-link:focus { top: 12px; }

.site-shell { position: relative; isolation: isolate; }

.bg-orb {
  position: fixed;
  width: 34vw;
  aspect-ratio: 1;
  border-radius: 50%;
  filter: blur(80px);
  opacity: .18;
  z-index: -2;
  pointer-events: none;
  animation: orbFloat 18s ease-in-out infinite alternate;
}
.bg-orb.one { left: -12vw; top: 10vh; background: var(--primary); }
.bg-orb.two { right: -14vw; top: 34vh; background: var(--primary-2); animation-delay: -5s; }
.bg-orb.three { left: 36vw; bottom: -16vw; background: var(--accent); animation-delay: -11s; }

@keyframes orbFloat {
  from { transform: translate3d(0,0,0) scale(.95); }
  to { transform: translate3d(4vw,5vh,0) scale(1.08); }
}

.container { width: min(calc(100% - 32px), var(--max)); margin: 0 auto; }
.section { padding: 96px 0; position: relative; }
.section.compact { padding: 72px 0; }

.nav-wrap {
  position: sticky;
  top: 0;
  z-index: 1000;
  height: var(--nav-h);
  display: flex;
  align-items: center;
  transition: background .25s ease, border-color .25s ease, box-shadow .25s ease;
}
.nav-wrap.scrolled {
  background: color-mix(in srgb, var(--bg) 78%, transparent);
  border-bottom: 1px solid var(--line);
  backdrop-filter: blur(18px) saturate(140%);
  box-shadow: 0 10px 30px rgba(28,18,64,.06);
}
.nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}
.brand { display: inline-flex; align-items: center; gap: 10px; font-weight: 800; letter-spacing: -.03em; }
.brand img { width: 38px; height: 38px; border-radius: 12px; box-shadow: var(--shadow-soft); }
.nav-links { display: flex; align-items: center; gap: 4px; }
.nav-links a { padding: 10px 12px; color: var(--muted); border-radius: 12px; font-weight: 650; font-size: .95rem; }
.nav-links a:hover, .nav-links a.active { background: var(--surface); color: var(--text); }
.nav-actions { display: flex; align-items: center; gap: 8px; }
.icon-btn {
  width: 42px; height: 42px; border-radius: 50%; border: 1px solid var(--line);
  background: var(--surface); display: inline-grid; place-items: center; cursor: pointer;
  backdrop-filter: blur(12px); transition: transform .2s ease, background .2s ease;
}
.icon-btn:hover { transform: translateY(-2px); }
.menu-btn { display: none; }

.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 9px;
  min-height: 48px; padding: 0 18px; border-radius: 16px; border: 1px solid transparent;
  font-weight: 760; transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.btn:hover { transform: translateY(-2px); }
.btn-primary { color: #fff; background: linear-gradient(135deg, var(--primary), var(--primary-2)); box-shadow: 0 12px 28px rgba(114,87,217,.25); }
.btn-secondary { background: var(--surface); border-color: var(--line); backdrop-filter: blur(14px); }
.btn-ghost { color: var(--muted); }

.hero { min-height: calc(100vh - var(--nav-h)); display: grid; align-items: center; padding: 64px 0 84px; }
.hero-grid { display: grid; grid-template-columns: 1.02fr .98fr; gap: clamp(46px, 7vw, 90px); align-items: center; }
.eyebrow {
  display: inline-flex; gap: 8px; align-items: center; padding: 8px 12px; border: 1px solid var(--line);
  background: var(--surface); border-radius: 999px; color: var(--muted); font-weight: 750; font-size: .9rem;
  backdrop-filter: blur(10px);
}
.hero h1 { margin: 20px 0 18px; font-size: clamp(3.3rem, 8vw, 6.6rem); line-height: .93; letter-spacing: -.07em; max-width: 840px; }
.hero h1 .gradient { background: linear-gradient(120deg, var(--primary), var(--primary-2) 58%, var(--accent)); color: transparent; background-clip: text; -webkit-background-clip: text; }
.hero p { font-size: clamp(1.08rem, 2vw, 1.25rem); color: var(--muted); max-width: 650px; margin: 0 0 28px; }
.hero-cta { display: flex; flex-wrap: wrap; gap: 12px; }
.hero-note { margin-top: 18px; color: var(--muted); font-size: .9rem; }
.hero-note strong { color: var(--text); }

.phone-stage { position: relative; min-height: 660px; display: grid; place-items: center; perspective: 1200px; }
.phone {
  position: relative; width: min(370px, 82vw); aspect-ratio: 9/19.4; padding: 10px;
  border-radius: 46px; background: linear-gradient(145deg, #22212a, #050508); box-shadow: 0 45px 100px rgba(38,23,82,.28), inset 0 0 0 1px rgba(255,255,255,.18);
  transform: rotateY(-8deg) rotateX(4deg) rotateZ(1.5deg);
  animation: phoneFloat 5.8s ease-in-out infinite;
}
.phone::before { content:""; position:absolute; top:13px; left:50%; transform:translateX(-50%); width:32%; height:22px; border-radius:0 0 16px 16px; background:#08080c; z-index:2; }
.phone-screen { width:100%; height:100%; overflow:hidden; border-radius:38px; background:var(--surface-solid); }
.phone-screen img { width:100%; height:100%; object-fit:cover; }
@keyframes phoneFloat { 0%,100% { transform: rotateY(-8deg) rotateX(4deg) rotateZ(1.5deg) translateY(0); } 50% { transform: rotateY(-5deg) rotateX(2deg) rotateZ(.4deg) translateY(-14px); } }

.float-card {
  position:absolute; background: color-mix(in srgb, var(--surface-solid) 83%, transparent); border:1px solid var(--line); box-shadow:var(--shadow-soft);
  backdrop-filter: blur(16px); border-radius:18px; padding:13px 15px; min-width:150px; animation: drift 5.4s ease-in-out infinite;
}
.float-card.one { left: 0; top: 20%; }
.float-card.two { right: 0; bottom: 17%; animation-delay:-2.3s; }
.float-card .mini { color:var(--muted); font-size:.78rem; }
.float-card strong { display:block; margin-top:2px; }
@keyframes drift { 50% { transform: translateY(-10px) translateX(4px); } }

.scroll-cue { display:flex; align-items:center; gap:10px; color:var(--muted); font-size:.88rem; margin-top:28px; }
.scroll-dot { width:28px; height:44px; border:1px solid var(--line); border-radius:999px; position:relative; }
.scroll-dot::after { content:""; position:absolute; left:50%; top:8px; width:5px; height:5px; border-radius:50%; background:var(--primary); transform:translateX(-50%); animation:scrollDot 1.8s ease-in-out infinite; }
@keyframes scrollDot { 0% { opacity:0; transform:translate(-50%,0); } 35% { opacity:1; } 100% { opacity:0; transform:translate(-50%,18px); } }

.section-head { display:flex; justify-content:space-between; gap:30px; align-items:end; margin-bottom:34px; }
.section-head h2 { margin:0; font-size:clamp(2.2rem,5vw,4rem); letter-spacing:-.05em; line-height:1; }
.section-head p { margin:0; color:var(--muted); max-width:560px; }
.kicker { color:var(--primary); font-weight:800; text-transform:uppercase; letter-spacing:.12em; font-size:.78rem; margin-bottom:10px; }

.feature-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.feature-card {
  padding:26px; border-radius:var(--radius-lg); background:var(--surface); border:1px solid var(--line); box-shadow:var(--shadow-soft);
  backdrop-filter: blur(12px); min-height:250px; position:relative; overflow:hidden;
  transition: transform .25s ease, box-shadow .25s ease;
}
.feature-card:hover { transform:translateY(-7px); box-shadow:var(--shadow); }
.feature-card .icon { width:48px; height:48px; display:grid; place-items:center; border-radius:15px; background:color-mix(in srgb, var(--primary) 14%, transparent); margin-bottom:38px; }
.feature-card h3 { margin:0 0 10px; font-size:1.28rem; }
.feature-card p { margin:0; color:var(--muted); }
.feature-card::after { content:""; position:absolute; width:120px; aspect-ratio:1; border-radius:50%; right:-50px; bottom:-60px; background:radial-gradient(circle, color-mix(in srgb, var(--primary) 18%, transparent), transparent 70%); }

.showcase { display:grid; gap:56px; }
.show-row { display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center; }
.show-row.reverse .show-copy { order:2; }
.show-row.reverse .show-visual { order:1; }
.show-copy h3 { font-size:clamp(2rem,4vw,3.4rem); line-height:1.02; letter-spacing:-.045em; margin:0 0 16px; }
.show-copy p { color:var(--muted); margin:0 0 20px; }
.checks { list-style:none; padding:0; margin:20px 0 0; display:grid; gap:10px; }
.checks li { display:flex; gap:10px; align-items:flex-start; }
.checks li::before { content:"✓"; color:var(--success); font-weight:900; }
.show-visual { border-radius:var(--radius-xl); padding:18px; background:linear-gradient(145deg, color-mix(in srgb, var(--primary) 12%, var(--surface-solid)), var(--surface)); border:1px solid var(--line); box-shadow:var(--shadow); position:relative; overflow:hidden; }
.show-visual img { border-radius:24px; width:100%; }

.gallery { display:grid; grid-template-columns:repeat(12,1fr); gap:16px; align-items:start; }
.gallery-card { grid-column:span 4; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-soft); transition:transform .25s ease; }
.gallery-card:nth-child(2) { transform:translateY(34px); }
.gallery-card:nth-child(3) { transform:translateY(10px); }
.gallery-card:hover { transform:translateY(-6px); }
.gallery-card img { aspect-ratio:9/16; object-fit:cover; }
.gallery-card figcaption { padding:15px 16px 17px; color:var(--muted); }

.cta-panel { border:1px solid var(--line); background:linear-gradient(135deg, color-mix(in srgb, var(--primary) 13%, var(--surface-solid)), color-mix(in srgb, var(--primary-2) 10%, var(--surface-solid))); border-radius:36px; padding:clamp(30px,6vw,70px); text-align:center; box-shadow:var(--shadow); overflow:hidden; position:relative; }
.cta-panel h2 { font-size:clamp(2.4rem,5vw,4.5rem); letter-spacing:-.055em; line-height:1; margin:0 0 18px; }
.cta-panel p { color:var(--muted); max-width:650px; margin:0 auto 26px; }

.page-hero { padding:88px 0 48px; }
.page-hero h1 { font-size:clamp(3rem,7vw,5.7rem); letter-spacing:-.06em; line-height:.98; margin:12px 0 18px; }
.page-hero p { color:var(--muted); font-size:1.1rem; max-width:760px; }

.prose { max-width:850px; margin:0 auto; }
.prose h2 { margin:48px 0 12px; font-size:1.8rem; letter-spacing:-.035em; }
.prose h3 { margin:30px 0 8px; font-size:1.24rem; }
.prose p, .prose li { color:var(--muted); }
.prose ul, .prose ol { padding-left:22px; }
.prose code { font-family:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; background:color-mix(in srgb, var(--primary) 10%, transparent); padding:2px 6px; border-radius:7px; }
.notice { padding:18px 20px; border:1px solid var(--line); background:var(--surface); border-radius:16px; color:var(--muted); }

.docs-grid { display:grid; grid-template-columns:260px 1fr; gap:44px; align-items:start; }
.docs-nav { position:sticky; top:100px; border:1px solid var(--line); background:var(--surface); border-radius:18px; padding:12px; }
.docs-nav a { display:block; padding:9px 10px; color:var(--muted); border-radius:10px; }
.docs-nav a:hover { background:color-mix(in srgb, var(--primary) 9%, transparent); color:var(--text); }

.faq { display:grid; gap:12px; }
.faq details { background:var(--surface); border:1px solid var(--line); border-radius:16px; padding:0 18px; }
.faq summary { cursor:pointer; padding:18px 0; font-weight:760; }
.faq details p { margin:0 0 18px; color:var(--muted); }

.contact-card { display:grid; grid-template-columns:1.1fr .9fr; gap:20px; padding:26px; border:1px solid var(--line); background:var(--surface); border-radius:24px; box-shadow:var(--shadow-soft); }
.contact-card .panel { padding:10px; }

.footer { padding:54px 0 34px; border-top:1px solid var(--line); margin-top:54px; }
.footer-grid { display:grid; grid-template-columns:1.1fr repeat(3,.7fr); gap:30px; }
.footer h4 { margin:0 0 12px; }
.footer a { display:block; color:var(--muted); margin:7px 0; }
.footer a:hover { color:var(--text); }
.footer .brand-copy { color:var(--muted); max-width:340px; }
.footer-bottom { display:flex; justify-content:space-between; gap:20px; padding-top:28px; margin-top:28px; border-top:1px solid var(--line); color:var(--muted); font-size:.9rem; }

.reveal { opacity:0; transform:translateY(22px); transition:opacity .7s ease, transform .7s cubic-bezier(.2,.7,.2,1); }
.reveal.visible { opacity:1; transform:none; }
.reveal.delay-1 { transition-delay:.08s; }
.reveal.delay-2 { transition-delay:.16s; }
.reveal.delay-3 { transition-delay:.24s; }

.progress-bar { position:fixed; left:0; top:0; height:3px; width:0; background:linear-gradient(90deg,var(--primary),var(--primary-2),var(--accent)); z-index:2000; }

@media (max-width: 980px) {
  .nav-links { position:fixed; inset:76px 16px auto 16px; display:none; padding:12px; background:color-mix(in srgb,var(--surface-solid) 92%,transparent); border:1px solid var(--line); border-radius:20px; box-shadow:var(--shadow); backdrop-filter:blur(18px); }
  .nav-links.open { display:grid; }
  .menu-btn { display:inline-grid; }
  .nav-actions .get-app { display:none; }
  .hero-grid, .show-row, .contact-card { grid-template-columns:1fr; }
  .hero { padding-top:40px; }
  .phone-stage { min-height:590px; margin-top:10px; }
  .show-row.reverse .show-copy, .show-row.reverse .show-visual { order:initial; }
  .feature-grid { grid-template-columns:1fr 1fr; }
  .footer-grid { grid-template-columns:1fr 1fr; }
  .docs-grid { grid-template-columns:1fr; }
  .docs-nav { position:static; }
}

@media (max-width: 680px) {
  :root { --nav-h: 66px; }
  .container { width:min(calc(100% - 22px), var(--max)); }
  .section { padding:72px 0; }
  .hero h1 { font-size:clamp(3rem,16vw,5rem); }
  .hero-grid { gap:28px; }
  .phone-stage { min-height:500px; }
  .phone { width:min(310px,78vw); border-radius:38px; }
  .phone-screen { border-radius:31px; }
  .float-card { transform:scale(.9); }
  .float-card.one { left:-6px; top:18%; }
  .float-card.two { right:-4px; bottom:12%; }
  .feature-grid { grid-template-columns:1fr; }
  .section-head { display:block; }
  .section-head p { margin-top:14px; }
  .gallery { gap:12px; }
  .gallery-card { grid-column:span 6; }
  .gallery-card:nth-child(2), .gallery-card:nth-child(3) { transform:none; }
  .gallery-card:nth-child(3) { grid-column:3 / span 8; }
  .footer-grid { grid-template-columns:1fr; }
  .footer-bottom { display:block; }
  .footer-bottom span { display:block; margin-top:8px; }
}

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