/* ═══════════════ SENTHORA — CINEMATIC ═══════════════ */
@font-face { font-family:'Nohemi'; src:url('../assets/fonts/Nohemi-Light.ttf') format('truetype'); font-weight:300; font-display:swap; }
@font-face { font-family:'Nohemi'; src:url('../assets/fonts/Nohemi-Regular.ttf') format('truetype'); font-weight:400; font-display:swap; }
@font-face { font-family:'Nohemi'; src:url('../assets/fonts/Nohemi-Medium.ttf') format('truetype'); font-weight:500; font-display:swap; }
@font-face { font-family:'Nohemi'; src:url('../assets/fonts/Nohemi-SemiBold.ttf') format('truetype'); font-weight:600; font-display:swap; }

:root {
  --bg:      #110F14;
  --bg-2:    #17151C;
  --panel:   #1E1C26;
  --violet:  #9A8AFB;
  --violet-dim: rgba(154,138,251,.14);
  --pink:    #CC3366;
  --text:    #EAEAF0;
  --muted:   #A49DB5;
  --muted-2: #C2BCD2;
  --line:    rgba(234,234,240,.08);
  --trace:   rgba(140,122,230,.42);
  --trace-bright: #9A8AFB;
}

* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:auto; }
html.lenis, html.lenis body { height:auto; }
/* nothing may widen the page: decorative glows/nets that spill sideways get clipped
   (fixes the page sitting left-of-center on phones) */
html { overflow-x:hidden; overflow-x:clip; }
.lenis.lenis-smooth { scroll-behavior:auto !important; }

body {
  background-color:var(--bg);
  /* hero backdrop: pure CSS gradients — resolution-independent, crisp on any screen
     (replaced the compressed webp that showed banding on large displays) */
  background-image:
    radial-gradient(110% 80% at 50% -12%, rgba(124,92,240,.14), rgba(124,92,240,0) 62%),
    radial-gradient(55% 60% at -8% 28%, rgba(124,92,240,.10), rgba(124,92,240,0) 70%),
    radial-gradient(55% 60% at 108% 55%, rgba(154,138,251,.08), rgba(154,138,251,0) 70%),
    radial-gradient(70% 45% at 50% 108%, rgba(204,51,102,.05), rgba(204,51,102,0) 72%);
  background-repeat:no-repeat;
  background-position:top center;
  background-size:100% 100vh;
  color:var(--text);
  /* Segoe UI fallback keeps Cyrillic and accented text clean when translated */
  font-family:'Nohemi', 'Segoe UI', system-ui, sans-serif;
  font-weight:400;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
/* Google Translate wraps text in <font> tags — force them to inherit our styles */
font { font-family:inherit !important; color:inherit !important; }
img { max-width:100%; display:block; }
a { color:inherit; text-decoration:none; }
h1,h2,h3 { font-weight:600; letter-spacing:-.02em; }
section { position:relative; z-index:2; }

/* ─────────── app chip (logo tile) ─────────── */
.app-chip {
  width:96px; aspect-ratio:1; border-radius:26%;
  background:linear-gradient(145deg, #BCA9FF 0%, #8F7BF7 45%, #6A4EE8 100%);
  border:1px solid rgba(255,255,255,.30);
  box-shadow:
    inset 0 2px 6px rgba(255,255,255,.45),
    inset 0 -6px 14px rgba(52,34,140,.55),
    0 0 44px rgba(154,138,251,.45),
    0 18px 50px rgba(0,0,0,.5);
  display:flex; align-items:center; justify-content:center;
}
.app-chip img { width:52%; filter:brightness(0) invert(1); }

/* ─────────── living logo: gentle breathing everywhere the mark appears ─────────── */
@keyframes logoBreath {
  0%, 100% { transform:scale(1); }
  50%      { transform:scale(1.09); }
}
@keyframes markBreath {
  0%, 100% { transform:scale(1); filter:drop-shadow(0 0 4px rgba(154,138,251,.35)); }
  50%      { transform:scale(1.1); filter:drop-shadow(0 0 13px rgba(154,138,251,.85)); }
}
@keyframes chipBreath {
  0%, 100% {
    box-shadow:
      inset 0 2px 6px rgba(255,255,255,.45),
      inset 0 -6px 14px rgba(52,34,140,.55),
      0 0 44px rgba(154,138,251,.45),
      0 18px 50px rgba(0,0,0,.5);
  }
  50% {
    box-shadow:
      inset 0 2px 6px rgba(255,255,255,.5),
      inset 0 -6px 14px rgba(52,34,140,.55),
      0 0 78px rgba(154,138,251,.85),
      0 18px 50px rgba(0,0,0,.5);
  }
}
.app-chip { animation:chipBreath 3.6s ease-in-out infinite; }
.app-chip img { animation:logoBreath 3.6s ease-in-out infinite; }
.nav-logo img, .footer > img:not(.footer-qr) { animation:markBreath 3.6s ease-in-out infinite; }

/* 3D rotating chip (scroll-scrubbed) */
.chip3d { position:relative; transform-style:preserve-3d; }
.chip-face { position:absolute; inset:0; width:100%; height:100%; backface-visibility:hidden; }
.chip-face.back { transform:rotateY(180deg); filter:brightness(.82); }

/* ─────────── loader ─────────── */
.loader {
  position:fixed; inset:0; z-index:100;
  background:var(--bg);
  display:flex; align-items:center; justify-content:center;
}
.loader-inner { text-align:center; width:min(420px, 80vw); display:flex; flex-direction:column; align-items:center; }
.loader-chip { width:72px; margin-bottom:30px; }
.loader-count {
  font-size:clamp(64px, 10vw, 120px); font-weight:300; letter-spacing:-.04em;
  color:var(--text); line-height:1; margin-bottom:24px; font-variant-numeric:tabular-nums;
}
.loader-count::after { content:'%'; font-size:.35em; color:var(--muted); margin-left:.1em; }
.loader-bar { height:1px; width:100%; background:var(--line); overflow:hidden; }
.loader-bar-fill { height:100%; width:0%; background:linear-gradient(90deg, var(--violet), var(--pink)); }
.loader-tag { margin-top:18px; font-size:10px; letter-spacing:.4em; color:var(--muted); }

/* ─────────── canvas layers & progress ─────────── */
#gl { position:fixed; inset:0; z-index:0; pointer-events:none; }
.vignette {
  position:fixed; inset:0; z-index:1; pointer-events:none;
  background:radial-gradient(ellipse at center, transparent 55%, rgba(8,7,10,.75) 100%);
}
#grain { position:fixed; inset:0; z-index:60; pointer-events:none; opacity:.07; mix-blend-mode:overlay; }
.scroll-progress {
  position:fixed; top:0; left:0; right:0; height:3px; z-index:70;
  background:linear-gradient(90deg, var(--violet), var(--pink));
  transform-origin:0 50%; transform:scaleX(0);
  box-shadow:0 0 12px rgba(154,138,251,.8);
  pointer-events:none;
}

/* ─────────── scroll-to-top button ─────────── */
.to-top {
  position:fixed; right:26px; bottom:26px; z-index:80;
  width:52px; height:52px; border-radius:50%;
  background:linear-gradient(145deg, #BCA9FF 0%, #8F7BF7 45%, #6A4EE8 100%);
  border:1px solid rgba(255,255,255,.3);
  color:#fff; display:flex; align-items:center; justify-content:center;
  box-shadow:0 10px 30px rgba(124,92,240,.45);
  cursor:pointer;
  opacity:0; visibility:hidden; transform:translateY(16px);
  transition:opacity .35s, transform .35s, visibility .35s, box-shadow .35s;
}
.to-top.is-visible { opacity:1; visibility:visible; transform:translateY(0); }
.to-top:hover { box-shadow:0 14px 44px rgba(124,92,240,.75); }
@media (max-width: 640px) { .to-top { right:16px; bottom:16px; width:46px; height:46px; } }

/* ─────────── custom cursor (tech reticle, desktop only) ─────────── */
.cursor { display:none; }
@media (pointer: fine) {
  /* hide the native cursor everywhere, but only on pages that render the custom one;
     !important beats the scattered cursor:pointer rules (lang button, to-top, FAQ, plans) */
  body:has(#cursor), body:has(#cursor) * { cursor:none !important; }
  .cursor {
    display:block; position:fixed; left:0; top:0; z-index:210;
    width:38px; height:38px; pointer-events:none;
    will-change:transform;
  }
  .cursor svg {
    position:absolute; inset:0; width:100%; height:100%;
    filter:drop-shadow(0 0 6px rgba(154,138,251,.9));
    animation:logoBreath 2.8s ease-in-out infinite;
    transition:scale .3s ease;
  }
  .cursor.is-hover svg { scale:1.5; }
}

/* ─────────── circuit nets & connectors (BOLD) ─────────── */
.net path {
  stroke:var(--trace); stroke-width:3; vector-effect:non-scaling-stroke;
  stroke-linecap:round;
}
.net path.faint { stroke:rgba(140,122,230,.22); stroke-width:2; }
.net path.spine { stroke:rgba(154,138,251,.55); stroke-width:3.4; }
.net path[data-pulse] {
  stroke:#D6CCFF; stroke-width:4.5; opacity:.95;
  filter:drop-shadow(0 0 8px rgba(154,138,251,1));
}
.connector {
  position:relative; z-index:2; height:36vh; min-height:220px;
  display:flex; justify-content:center;
}
.connector svg { width:min(560px, 90vw); height:100%; overflow:visible; }
.connector path {
  stroke:var(--trace); stroke-width:3; vector-effect:non-scaling-stroke; stroke-linecap:round;
}
.connector path[data-pulse] {
  stroke:#D6CCFF; stroke-width:4.6;
  filter:drop-shadow(0 0 9px rgba(154,138,251,1));
}

/* edge glows */
.edge-glow {
  position:absolute; top:12%; bottom:12%; width:120px; z-index:0; pointer-events:none;
  filter:blur(34px); opacity:.55;
}
.edge-glow.left  { left:-56px; background:radial-gradient(ellipse at center, rgba(124,92,240,.55), transparent 70%); }
.edge-glow.right { right:-56px; background:radial-gradient(ellipse at center, rgba(124,92,240,.55), transparent 70%); }

/* ─────────── nav ─────────── */
.nav {
  position:fixed; top:0; left:0; right:0; z-index:50;
  display:flex; align-items:center; justify-content:space-between;
  padding:22px clamp(20px, 4vw, 56px);
  transition:background .4s, backdrop-filter .4s;
}
.nav.is-solid { background:rgba(17,15,20,.72); backdrop-filter:blur(14px); border-bottom:1px solid var(--line); }
.nav-logo { display:flex; align-items:center; gap:10px; font-weight:600; font-size:18px; letter-spacing:.02em; }
.nav-logo img { width:30px; }
.nav-right { display:flex; align-items:center; gap:clamp(14px, 2.5vw, 32px); }
.nav-link { font-size:13px; color:var(--muted-2); letter-spacing:.05em; transition:color .3s; }
.nav-link:hover { color:var(--text); }
.nav-cta {
  font-size:13px; padding:10px 22px; border-radius:100px;
  background:var(--violet); color:#0E0C12 !important; font-weight:500;
  white-space:nowrap;
  box-shadow:0 0 24px rgba(154,138,251,.35);
  transition:transform .3s, box-shadow .3s;
}
.nav-cta font { color:#0E0C12 !important; }
.nav-cta:hover { transform:translateY(-2px); box-shadow:0 0 40px rgba(154,138,251,.6); }

/* ─────────── hero ─────────── */
.hero {
  min-height:100vh; display:flex; flex-direction:column;
  /* bottom-anchored: any leftover space goes above the phone,
     so the net's end sits flush with the hero's bottom edge */
  align-items:center; justify-content:flex-end; text-align:center;
  padding:80px 0 72px;
}
.hero-content { padding:0 24px; position:relative; }
/* the hand sits BEHIND the headline, softly blurred like depth of field */
.hero-phone {
  position:relative; z-index:0;
  width:clamp(175px, 24vh, 240px);
  margin:-28px auto -30px; /* only the very start of the hand tucks behind the headline */
  pointer-events:none;
  will-change:transform;
  filter:drop-shadow(0 30px 60px rgba(0,0,0,.6));
}
.hero-phone img { width:100%; height:auto; }
.hero-title, .hero-sub, .hero-badges { position:relative; z-index:2; }
.hero-sub span { display:inline-block; }
.hero-title {
  font-size:clamp(38px, 6.4vw, 88px); line-height:1.02; margin-bottom:18px;
  text-shadow:0 6px 30px rgba(17,15,20,.85);
}
.hero-title .line { display:block; overflow:hidden; }
.word-w { display:inline-block; white-space:nowrap; }
.hero-title .char { display:inline-block; will-change:transform; }
.hero-title .accent, .hero-title .accent .char {
  background:linear-gradient(100deg, var(--violet) 20%, var(--pink) 90%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.hero-sub { max-width:520px; margin:0 auto 22px; color:var(--muted-2); font-size:clamp(15px, 1.6vw, 18px); font-weight:400; line-height:1.6; }
.reveal-line { overflow:hidden; }
/* breathing room so the buttons' hover lift is never clipped by the reveal mask */
.hero-badges.reveal-line { padding:8px 0 14px; margin:-8px 0 -14px; }
.badges-wrap { display:inline-flex; gap:14px; }
.store-btn {
  display:flex; align-items:center; gap:12px; text-align:left;
  padding:11px 22px 11px 16px; border-radius:16px;
  background:rgba(234,234,240,.05); border:1px solid var(--line);
  transition:transform .3s, border-color .3s, box-shadow .3s, background .3s;
}
.store-btn:hover {
  transform:translateY(-3px); border-color:rgba(154,138,251,.5);
  background:rgba(154,138,251,.08);
  box-shadow:0 12px 40px rgba(154,138,251,.25);
}
.store-btn img { height:32px; width:32px; object-fit:contain; }
.store-btn span { display:flex; flex-direction:column; line-height:1.15; font-size:16px; font-weight:500; color:var(--text); }
.store-btn b { font-weight:500; white-space:nowrap; }
.store-btn small { font-size:10px; font-weight:300; color:var(--muted-2); letter-spacing:.04em; }

/* hero circuit visual — full-bleed traces that wrap down the screen edges */
.hero-visual {
  position:relative; width:100vw; max-width:none; margin-top:8px;
  height:clamp(150px, 24vh, 260px);
  display:flex; align-items:center; justify-content:center;
  perspective:900px;
}
.hero-net { width:100%; height:100%; display:block; overflow:visible; }
.hero-chip {
  position:absolute; left:50%; top:50%;
  width:clamp(72px, 8vw, 96px); aspect-ratio:1;
  transform:translate(-50%, -50%);
}
.hero-chip .app-chip { width:100%; height:100%; }

/* ─────────── statement (pinned story, PCB frame) ─────────── */
.statement-pin {
  position:relative;
  min-height:100vh; display:flex; align-items:center; justify-content:center;
  padding:0 24px;
}
.statement-net {
  position:absolute; inset:0; width:100%; height:100%;
  overflow:visible; pointer-events:none;
}
.statement-net path.s-pulse {
  stroke:#D6CCFF; stroke-width:4.5; vector-effect:non-scaling-stroke; stroke-linecap:round;
  filter:drop-shadow(0 0 8px rgba(154,138,251,1));
  opacity:0;
}
.statement-text { position:relative; z-index:2; }
.statement-text {
  max-width:1000px; text-align:center;
  font-size:clamp(28px, 4.6vw, 60px); font-weight:500; line-height:1.25; letter-spacing:-.02em;
}
.statement-text .word { color:rgba(234,234,240,.3); transition:color .3s linear; }
.statement-text .word.is-on { color:var(--text); }

/* ─────────── languages marquee ─────────── */
.languages { padding:8vh 0; overflow:hidden; }
.section-kicker {
  font-size:clamp(14px, 1.6vw, 18px); font-weight:700; letter-spacing:.34em;
  color:var(--violet); text-align:center; margin-bottom:38px;
  text-shadow:0 0 24px rgba(154,138,251,.45);
}
.marquee { overflow:hidden; padding:12px 0; -webkit-mask-image:linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent); mask-image:linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent); }
.marquee-track { display:flex; gap:18px; width:max-content; will-change:transform; }
.lang-chip {
  display:flex; align-items:center; gap:12px;
  padding:16px 30px; border-radius:100px;
  background:var(--panel); border:1px solid var(--line);
  font-size:clamp(16px, 2vw, 22px); font-weight:500; white-space:nowrap;
  color:var(--muted-2);
}
.lang-chip img { width:26px; height:26px; border-radius:50%; object-fit:cover; }

/* ─────────── steps ─────────── */
.steps-pin { min-height:100vh; display:flex; flex-direction:column; justify-content:center; padding:90px clamp(20px,5vw,72px) 60px; }
.steps-head { text-align:center; margin-bottom:clamp(28px, 5vh, 64px); }
.steps-head h2 { font-size:clamp(30px, 4.4vw, 58px); line-height:1.1; }
.steps-body {
  display:grid; grid-template-columns:1fr minmax(280px, 420px); gap:clamp(24px, 6vw, 96px);
  align-items:center; max-width:1200px; margin:0 auto; width:100%;
}
.steps-text { position:relative; padding-left:34px; }

/* vertical scroll rail — the cinematic scrub bar */
.steps-rail {
  position:absolute; left:0; top:8px; bottom:54px; width:3px;
  background:rgba(234,234,240,.08); border-radius:3px;
}
.steps-rail-fill {
  position:absolute; top:0; left:0; width:100%; height:0%;
  background:linear-gradient(180deg, var(--violet), var(--pink));
  border-radius:3px;
  box-shadow:0 0 14px rgba(154,138,251,.8);
}
.steps-rail-dot {
  position:absolute; left:50%; top:0%;
  width:13px; height:13px; border-radius:50%;
  transform:translate(-50%,-50%);
  background:#EDE9FF;
  box-shadow:0 0 0 4px rgba(154,138,251,.35), 0 0 18px rgba(154,138,251,1);
}
.steps-counter {
  position:absolute; right:0; top:-8px;
  font-weight:300; color:var(--muted); font-size:14px; letter-spacing:.1em;
  font-variant-numeric:tabular-nums;
}
.steps-counter #stepsCounterNum { font-size:30px; font-weight:500; color:var(--violet); }

.step-item {
  padding:22px 0; opacity:.45; border-top:1px solid var(--line);
  transform:translateX(-14px);
  transition:opacity .5s, transform .5s cubic-bezier(.22,1,.36,1);
}
.step-item:first-child { border-top:none; }
.step-item.is-active { opacity:1; transform:translateX(0); }
.step-num { font-size:12px; letter-spacing:.35em; color:var(--violet); margin-bottom:8px; }
.step-item h3 { font-size:clamp(20px, 2.4vw, 30px); margin-bottom:8px; }
.step-item p { color:var(--muted-2); font-weight:400; font-size:15px; line-height:1.6; max-width:440px; }
.steps-progress { height:3px; background:var(--line); margin-top:22px; border-radius:3px; overflow:hidden; }
.steps-progress-fill { height:100%; width:0%; background:linear-gradient(90deg, var(--violet), var(--pink)); box-shadow:0 0 10px rgba(154,138,251,.7); }

.steps-phone { position:relative; display:flex; justify-content:center; }
.phone-glow {
  position:absolute; inset:-12%; z-index:0; border-radius:50%;
  background:radial-gradient(circle, rgba(154,138,251,.28), transparent 65%);
  filter:blur(30px);
}
/* videos are 1080x1080 with the phone at x294-784, y44-1054 — crop to the phone exactly */
.phone-frame {
  position:relative; z-index:1;
  width:min(300px, 68vw); aspect-ratio:490/1010;
  border-radius:16% / 7.8%;
  overflow:hidden;
  background:transparent;
  box-shadow:0 40px 120px rgba(0,0,0,.55);
}
.step-video {
  position:absolute;
  width:220.41%; height:106.93%;
  left:-60%; top:-4.36%;
  max-width:none;
  object-fit:fill;
  opacity:0; transition:opacity .6s;
}
.step-video.is-active { opacity:1; }

/* ─────────── inside: connected engineering rows ─────────── */
.exploded { padding:14vh clamp(20px,5vw,72px); }
.exploded-head { text-align:center; margin-bottom:clamp(36px, 7vh, 80px); }
.exploded-title { font-size:clamp(30px, 4.4vw, 58px); line-height:1.1; }
.exploded-title .dim { color:var(--muted); }
.inside-list {
  position:relative; max-width:1040px; margin:0 auto;
  display:flex; flex-direction:column; gap:clamp(22px, 4vh, 40px);
}
/* vertical spine running through the tile column */
.inside-list::before {
  content:''; position:absolute; left:135px; top:-30px; bottom:-30px; width:3px;
  background:linear-gradient(180deg, transparent, var(--trace) 8%, var(--trace) 92%, transparent);
  border-radius:3px;
}
.i-row {
  display:grid; grid-template-columns:270px 1fr minmax(260px, 46%);
  align-items:center; gap:0; position:relative;
}
.i-tile {
  width:270px; height:150px; border-radius:26px;
  background:linear-gradient(160deg, rgba(37,33,48,.96), rgba(22,19,28,.96));
  border:1px solid rgba(154,138,251,.28);
  box-shadow:0 20px 50px rgba(0,0,0,.5);
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:9px;
  position:relative; z-index:1;
  /* no transform transition here — it would fight the GSAP entrance scale */
  transition:border-color .35s, box-shadow .35s;
}
.i-tile:hover {
  border-color:rgba(154,138,251,.6);
  box-shadow:0 24px 60px rgba(124,92,240,.25);
}
.i-tile img { width:60px; height:60px; object-fit:contain; }
.i-tile span { font-size:14px; letter-spacing:.08em; color:var(--muted-2); font-weight:400; }
.i-tile.chip-tile { background:none; border:none; box-shadow:none; }
.x-chip { width:120px; }
.i-trace { height:64px; width:100%; align-self:center; overflow:visible; }
/* PCB routing: chamfered main line, ghost trace, solder pads, traveling light */
.i-trace .i-line {
  stroke:rgba(154,138,251,.62); stroke-width:3.2;
  stroke-linecap:round; stroke-linejoin:round; vector-effect:non-scaling-stroke;
}
.i-trace .i-ghost {
  stroke:rgba(140,122,230,.18); stroke-width:2;
  stroke-linecap:round; stroke-linejoin:round; vector-effect:non-scaling-stroke;
}
.i-trace .i-pulse {
  stroke:#D6CCFF; stroke-width:4.2; opacity:0;
  stroke-linecap:round; stroke-linejoin:round; vector-effect:non-scaling-stroke;
  filter:drop-shadow(0 0 7px rgba(154,138,251,1));
}
.i-trace .i-pad {
  stroke:#B4A6FF; stroke-width:8; stroke-linecap:round; vector-effect:non-scaling-stroke;
  filter:drop-shadow(0 0 6px rgba(154,138,251,.8));
}
.i-trace .i-pad.ring { stroke:rgba(154,138,251,.28); stroke-width:15; filter:none; }
.i-info h4 { font-size:clamp(16px, 1.8vw, 20px); margin-bottom:6px; }
.i-info p { font-size:14px; color:var(--muted-2); font-weight:400; line-height:1.6; }

/* ─────────── features (circuit board) ─────────── */
.features { padding:10vh clamp(20px,4vw,64px); max-width:1360px; margin:0 auto; }
.features-title {
  font-size:clamp(30px, 4.6vw, 60px); line-height:1.12; margin-bottom:70px;
  max-width:1240px; margin-left:auto; margin-right:auto;
}
.features-title .dim { color:var(--muted); font-weight:500; }
.features-wrap {
  position:relative; display:grid;
  grid-template-columns:1fr clamp(220px, 26vw, 360px) 1fr;
  align-items:stretch; max-width:1240px; margin:0 auto;
}
.f-col { display:flex; flex-direction:column; gap:22px; justify-content:space-between; }
.f-card {
  display:flex; gap:16px; align-items:flex-start;
  background:linear-gradient(160deg, rgba(30,28,38,.92), rgba(21,19,26,.92));
  border:1px solid var(--line); border-radius:20px;
  padding:26px 26px;
  transition:transform .4s, border-color .4s, box-shadow .4s;
}
.f-card:hover {
  transform:translateY(-4px); border-color:rgba(154,138,251,.4);
  box-shadow:0 16px 50px rgba(124,92,240,.18);
}
.f-card img { width:44px; height:44px; object-fit:contain; flex-shrink:0; }
.f-card h3 { font-size:18px; margin-bottom:6px; }
.f-card p { color:var(--muted-2); font-weight:400; font-size:14px; line-height:1.55; }
.f-center { position:relative; min-height:420px; }
.f-net { position:absolute; inset:0; width:100%; height:100%; overflow:visible; }
.f-chip {
  position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
  width:clamp(84px, 9vw, 110px);
}

/* ─────────── signature features ─────────── */
.signature { padding:12vh clamp(20px, 5vw, 72px); overflow:hidden; }
.sig-title { text-align:center; font-size:clamp(30px, 4.4vw, 58px); line-height:1.1; margin-bottom:clamp(60px, 9vh, 110px); }
.sig-title .dim { color:var(--muted); }
.sig-row {
  max-width:1100px; margin:0 auto;
  display:grid; grid-template-columns:minmax(280px, 1fr) minmax(280px, 1fr);
  gap:clamp(30px, 5vw, 90px); align-items:center;
}
/* sideways PCB trace between feature rows */
.sig-connector {
  max-width:1100px; margin:0 auto; height:clamp(120px, 18vh, 200px);
}
.sig-connector svg { width:100%; height:100%; overflow:visible; }
.sig-connector path {
  stroke:var(--trace); stroke-width:3; vector-effect:non-scaling-stroke; stroke-linecap:round;
}
.sig-connector path[data-pulse] {
  stroke:#D6CCFF; stroke-width:4.6;
  filter:drop-shadow(0 0 9px rgba(154,138,251,1));
}
.sig-rev .sig-copy { order:2; }
.sig-rev .sig-phone { order:1; }
.sig-badge {
  display:inline-block; margin-bottom:18px;
  font-size:11.5px; font-weight:700; letter-spacing:.26em;
  padding:9px 16px; border-radius:100px; color:#fff;
  background:linear-gradient(120deg, var(--violet), var(--pink));
  box-shadow:0 8px 26px rgba(154,138,251,.4);
}
.sig-copy h3 { font-size:clamp(26px, 3.2vw, 44px); line-height:1.12; margin-bottom:18px; }
.sig-copy h3 .lav { color:var(--violet); }
.sig-copy p { color:var(--muted-2); font-size:clamp(15px, 1.5vw, 17.5px); line-height:1.65; margin-bottom:22px; }
.sig-copy ul { list-style:none; display:flex; flex-direction:column; gap:12px; }
.sig-copy li {
  position:relative; padding-left:26px;
  color:var(--muted-2); font-size:14.5px; line-height:1.5;
}
.sig-copy li::before {
  content:''; position:absolute; left:0; top:7px;
  width:12px; height:12px; border-radius:4px;
  background:linear-gradient(135deg, var(--violet), var(--pink));
  box-shadow:0 0 10px rgba(154,138,251,.6);
}
.sig-copy li em { font-style:normal; color:var(--violet); }
.sig-phone { display:flex; justify-content:center; }
.sig-phone img {
  width:100%; max-width:340px; height:auto; display:block;
  aspect-ratio:1040 / 2154; /* reserve space before lazy-load — prevents layout jumps */
  filter:drop-shadow(0 34px 80px rgba(0,0,0,.6)) drop-shadow(0 0 60px rgba(124,92,240,.25));
  will-change:transform;
}
@media (max-width: 900px) {
  .sig-row { grid-template-columns:1fr; gap:34px; }
  .sig-rev .sig-copy { order:1; }
  .sig-rev .sig-phone { order:2; }
  .sig-phone img { max-width:280px; }
}

/* ─────────── tech ─────────── */
.tech { padding:10vh 24px 12vh; text-align:center; }
.tech .section-kicker { margin-bottom:40px; }
.tech-logos { display:flex; justify-content:center; gap:clamp(16px, 3vw, 32px); flex-wrap:wrap; }
.tech-logo {
  display:flex; align-items:center; gap:18px;
  padding:24px 42px; border-radius:22px;
  background:linear-gradient(160deg, rgba(31,29,39,.92), rgba(21,19,26,.92));
  border:1px solid var(--line);
  transition:border-color .35s, box-shadow .35s;
}
.tech-logo:hover {
  border-color:rgba(154,138,251,.55);
  box-shadow:0 20px 55px rgba(124,92,240,.22);
}
.tech-logo img { height:54px; width:auto; }
.tech-logo span { font-size:clamp(19px, 2vw, 24px); font-weight:500; color:var(--text); }
@media (max-width: 640px) {
  .tech-logo { padding:16px 26px; gap:12px; }
  .tech-logo img { height:38px; }
  .tech-logo span { font-size:17px; }
}

/* ─────────── imagine: speak without fear ─────────── */
.imagine { padding:12vh clamp(20px, 5vw, 72px); overflow:hidden; }
.imagine-grid {
  max-width:1160px; margin:0 auto;
  display:grid; grid-template-columns:minmax(300px, 1fr) minmax(300px, 1fr);
  gap:clamp(30px, 5vw, 80px); align-items:center;
}
.imagine-title { font-size:clamp(32px, 4.6vw, 62px); line-height:1.08; margin-bottom:36px; }
.imagine-title .accent {
  background:linear-gradient(120deg, var(--violet), var(--pink));
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.imagine-points { list-style:none; display:flex; flex-direction:column; gap:20px; margin-bottom:38px; }
.imagine-points li { display:flex; align-items:center; gap:16px; }
.imagine-points img { width:38px; height:38px; object-fit:contain; filter:drop-shadow(0 4px 14px rgba(124,92,240,.45)); }
.imagine-points span { font-size:clamp(15.5px, 1.5vw, 18.5px); color:var(--muted-2); }
.imagine-stat {
  display:flex; align-items:center; gap:20px;
  padding:20px 26px; margin-bottom:38px; max-width:440px;
  border-radius:20px; border:1px solid rgba(154,138,251,.35);
  background:linear-gradient(160deg, rgba(37,33,48,.9), rgba(22,19,28,.9));
  box-shadow:0 16px 44px rgba(124,92,240,.14);
}
.stat-num {
  font-size:clamp(30px, 3.2vw, 42px); font-weight:700; white-space:nowrap;
  background:linear-gradient(120deg, var(--violet), var(--pink));
  -webkit-background-clip:text; background-clip:text; color:transparent;
  filter:drop-shadow(0 0 18px rgba(154,138,251,.4));
}
.imagine-stat p { font-size:14.5px; line-height:1.5; color:var(--muted-2); }
.imagine-stat strong { color:var(--text); font-weight:500; }
.imagine-badges { justify-content:flex-start; }

.imagine-phones {
  position:relative; margin-top:-150px;
  /* soft fade to hide the baked-in reflection strip at the PNG's bottom */
  -webkit-mask-image:linear-gradient(180deg, #000 84%, transparent 94%);
  mask-image:linear-gradient(180deg, #000 84%, transparent 94%);
}
.imagine-phones img {
  width:100%; max-width:820px; height:auto; display:block; margin:0 auto;
  aspect-ratio:1611 / 1356; /* reserve space before lazy-load — prevents layout jumps */
  filter:drop-shadow(0 40px 90px rgba(0,0,0,.55)) drop-shadow(0 0 70px rgba(124,92,240,.22));
  will-change:transform;
}

@media (max-width: 900px) {
  .imagine-grid { grid-template-columns:1fr; }
  /* phones image leads the section on stacked layouts */
  .imagine-phones { order:-1; max-width:440px; margin:0 auto; width:100%; }
  .imagine-phones img { width:100%; }
  .imagine-badges { justify-content:flex-start; }
}

/* ─────────── reviews ─────────── */
.reviews { padding:12vh clamp(20px, 5vw, 72px); text-align:center; }
.reviews-title { font-size:clamp(30px, 4.4vw, 58px); line-height:1.1; margin-bottom:clamp(44px, 7vh, 80px); }
.reviews-title .dim { color:var(--muted); }
.reviews-grid {
  max-width:1100px; margin:0 auto;
  display:grid; grid-template-columns:repeat(auto-fit, minmax(280px, 1fr)); gap:22px;
}
.review-card {
  text-align:left; padding:30px 28px; border-radius:24px;
  background:linear-gradient(160deg, rgba(30,28,38,.92), rgba(21,19,26,.92));
  border:1px solid var(--line);
  display:flex; flex-direction:column; gap:16px;
  transition:border-color .35s, box-shadow .35s;
}
.review-card:hover { border-color:rgba(154,138,251,.45); box-shadow:0 18px 50px rgba(124,92,240,.16); }
.review-stars { color:var(--violet); font-size:17px; letter-spacing:.2em; text-shadow:0 0 14px rgba(154,138,251,.6); }
.review-card blockquote { color:var(--muted-2); font-size:15px; line-height:1.65; flex:1; }
.review-card figcaption { color:var(--muted); font-size:13px; }

/* ─────────── QR download ─────────── */
.qr-box {
  margin-top:34px; display:flex; flex-direction:column; align-items:center; gap:16px;
}
.qr-pair { display:flex; gap:clamp(28px, 5vw, 52px); justify-content:center; }
.qr-tile { display:flex; flex-direction:column; align-items:center; gap:10px; }
.qr-tile img {
  width:clamp(110px, 14vw, 140px); height:auto; border-radius:14px;
  border:1px solid var(--line);
  box-shadow:0 14px 40px rgba(0,0,0,.5), 0 0 40px rgba(124,92,240,.18);
}
.qr-tile figcaption { font-size:12.5px; color:var(--muted-2); letter-spacing:.06em; }
.qr-box > span { font-size:12.5px; letter-spacing:.14em; color:var(--muted); text-transform:uppercase; }

/* ─────────── pricing ─────────── */
.pricing { padding:8vh 24px; text-align:center; }
.pricing h2 { font-size:clamp(30px, 4.4vw, 58px); line-height:1.1; margin-bottom:56px; }
.price-card {
  max-width:520px; margin:0 auto; padding:44px 38px;
  background:linear-gradient(170deg, rgba(30,28,38,.95), rgba(17,15,20,.95));
  border:1px solid rgba(154,138,251,.3); border-radius:32px;
  box-shadow:0 0 80px rgba(154,138,251,.12);
}
.price-plans { display:flex; gap:8px; justify-content:center; margin-bottom:36px; flex-wrap:wrap; }
.plan {
  font-family:'Nohemi', 'Segoe UI', sans-serif; font-size:13px; color:var(--muted-2);
  background:transparent; border:1px solid var(--line); border-radius:100px;
  padding:9px 18px; cursor:pointer; transition:all .3s;
}
.plan.is-active, .plan:hover { color:var(--text); border-color:var(--violet); background:var(--violet-dim); }
.price-amount { font-size:clamp(52px, 7vw, 76px); font-weight:600; letter-spacing:-.03em; }
.price-amount span { font-size:.28em; color:var(--muted); font-weight:400; }
.price-note { color:var(--violet); font-size:14px; margin:10px 0 34px; }
.btn-primary {
  display:inline-block; padding:17px 44px; border-radius:100px;
  background:linear-gradient(100deg, var(--violet), #7B68F0);
  color:#0E0C12; font-weight:600; font-size:16px;
  box-shadow:0 12px 44px rgba(154,138,251,.35);
  transition:transform .3s, box-shadow .3s;
}
.btn-primary:hover { transform:translateY(-3px); box-shadow:0 18px 60px rgba(154,138,251,.55); }

/* ─────────── cta ─────────── */
.cta { min-height:80vh; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:14vh 24px; }
.cta-title { font-size:clamp(34px, 5.6vw, 84px); line-height:1.08; margin-bottom:48px; max-width:1100px; }
.cta-title .line { display:block; overflow:hidden; }
.cta-title .char { display:inline-block; }
.cta-title .accent, .cta-title .accent .char {
  background:linear-gradient(100deg, var(--violet) 20%, var(--pink) 90%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}

/* ─────────── faq ─────────── */
.faq { padding:10vh 24px; max-width:860px; margin:0 auto; }
.faq-title { text-align:center; font-size:clamp(30px, 4.4vw, 58px); margin-bottom:56px; }
.faq-title .dim { color:var(--muted); }
.faq-list { display:flex; flex-direction:column; gap:14px; }
.faq-item {
  background:linear-gradient(160deg, rgba(30,28,38,.92), rgba(21,19,26,.92));
  border:1px solid var(--line); border-radius:18px;
  transition:border-color .35s;
}
.faq-item[open] { border-color:rgba(154,138,251,.4); }
.faq-item summary {
  list-style:none; cursor:pointer;
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding:22px 26px;
  font-size:clamp(16px, 1.9vw, 19px); font-weight:500;
}
.faq-item summary::-webkit-details-marker { display:none; }
.faq-item summary::after {
  content:'+'; flex-shrink:0;
  width:30px; height:30px; border-radius:50%;
  border:1px solid rgba(154,138,251,.45); color:var(--violet);
  display:flex; align-items:center; justify-content:center;
  font-size:18px; font-weight:400;
  transition:transform .35s, background .35s;
}
.faq-item[open] summary::after { transform:rotate(45deg); background:var(--violet-dim); }
.faq-body { padding:0 26px 24px; color:var(--muted-2); font-size:15px; line-height:1.7; }
.faq-body p + p, .faq-body p + ul { margin-top:10px; }
.faq-body ul { margin-left:18px; display:flex; flex-direction:column; gap:8px; }
.faq-body strong { color:var(--text); font-weight:500; }

/* ─────────── language switcher ─────────── */
.lang-switch { position:relative; }
.lang-btn {
  display:flex; align-items:center; gap:7px; white-space:nowrap;
  font-family:'Nohemi', 'Segoe UI', sans-serif; font-size:12.5px; letter-spacing:.06em;
  color:var(--muted-2); background:rgba(234,234,240,.05);
  border:1px solid var(--line); border-radius:100px;
  padding:8px 14px; cursor:pointer; transition:all .3s;
}
.lang-btn:hover { color:var(--text); border-color:rgba(154,138,251,.5); }
.lang-menu {
  position:absolute; top:calc(100% + 10px); right:0; min-width:150px;
  background:rgba(23,21,28,.97); border:1px solid var(--line);
  border-radius:14px; padding:6px; z-index:60;
  display:none; flex-direction:column;
  box-shadow:0 20px 50px rgba(0,0,0,.5);
}
.lang-menu.is-open { display:flex; }
.lang-menu button {
  font-family:'Nohemi', 'Segoe UI', sans-serif; font-size:13.5px; text-align:left;
  color:var(--muted-2); background:none; border:none;
  padding:9px 14px; border-radius:9px; cursor:pointer; transition:all .25s;
}
.lang-menu button:hover, .lang-menu button.is-active { color:var(--text); background:var(--violet-dim); }

/* ─────────── compact nav menu (translated pages + mobile) ─────────── */
.nav-menu { position:relative; display:none; }
.nav-menu-btn { padding:8px 12px; }
/* translated labels are long — swap inline links for the dropdown */
body.is-translated .nav-link { display:none; }
body.is-translated .nav-menu { display:block; }
.nav-drop { right:auto; left:0; min-width:200px; }
.nav-drop a {
  display:block; font-size:13.5px; color:var(--muted-2);
  padding:9px 14px; border-radius:9px; transition:all .25s;
}
.nav-drop a:hover { color:var(--text); background:var(--violet-dim); }

/* hide the Google Translate banner/artifacts */
.goog-te-banner-frame, #goog-gt-tt, .goog-te-balloon-frame { display:none !important; }
body { top:0 !important; }
.skiptranslate iframe { visibility:hidden !important; height:0 !important; }

/* ─────────── footer ─────────── */
.footer-links { display:flex; gap:12px; align-items:center; font-size:13px; color:var(--muted); }
.footer-links a { color:var(--muted-2); transition:color .3s; }
.footer-links a:hover { color:var(--text); }
.footer-credit { font-size:12px; color:var(--muted); }
.footer-credit .notranslate { color:var(--violet); font-weight:500; }

.footer { display:flex; flex-direction:column; align-items:center; gap:14px; padding:60px 24px 46px; border-top:1px solid var(--line); }
.footer img { width:34px; opacity:.8; }
.footer p { font-size:12px; color:var(--muted); letter-spacing:.05em; }

/* ─────────── responsive ─────────── */
/* tablet */
@media (max-width: 1080px) {
  .steps-body { gap:28px; }
  .features-wrap { grid-template-columns:1fr clamp(170px, 20vw, 240px) 1fr; }
  .f-card { padding:20px; }
  .i-row { grid-template-columns:230px 1fr minmax(240px, 50%); }
  .i-tile { width:230px; }
  .inside-list::before { left:115px; }
}
/* mobile */
@media (max-width: 900px) {
  .nav-link { display:none; }
  .nav-menu { display:block; }
  .nav { padding:16px 18px; }
  .hero { padding-top:88px; }
  .hero-phone { width:clamp(160px, 24vh, 210px); margin-bottom:-24px; }
  /* trim the wrist so the hand ends at the headline — soft fade, no hard edge */
  .hero-phone img {
    clip-path:inset(0 0 12% 0);
    -webkit-mask-image:linear-gradient(180deg, #000 76%, transparent 88%);
    mask-image:linear-gradient(180deg, #000 76%, transparent 88%);
  }
  .hero-title { font-size:clamp(34px, 10vw, 52px); }
  .hero-sub { font-size:14px; padding:0 6px; }
  .badges-wrap { flex-direction:row; flex-wrap:wrap; justify-content:center; }
  .store-btn { padding:9px 16px 9px 12px; }
  .store-btn span { font-size:14px; }
  .hero-visual { height:clamp(130px, 20vh, 200px); }
  .hero-chip { width:clamp(56px, 7vh, 72px); }
  .statement-text { font-size:clamp(24px, 6.6vw, 34px); }
  /* mobile steps: phone + ONLY the active step, with a visible counter + progress bar */
  .steps-pin { padding:74px 18px 36px; }
  .steps-head { margin-bottom:14px; }
  .steps-body { grid-template-columns:1fr; gap:14px; }
  .steps-phone { order:-1; }
  .phone-frame { width:min(172px, 44vw); }
  .steps-text { padding-left:0; text-align:center; }
  .steps-rail { display:none; }
  .steps-counter {
    position:static; display:block; margin-bottom:2px;
    font-size:13px;
  }
  .steps-counter #stepsCounterNum { font-size:26px; }
  .step-item { display:none; padding:6px 0 0; border-top:none; }
  .step-item.is-active { display:block; transform:none; }
  .step-num { display:none; } /* the big counter already shows the step number */
  .step-item p { font-size:13.5px; max-width:100%; }
  .steps-progress { margin-top:14px; }
  .features { padding:8vh 18px; }
  .features-wrap { grid-template-columns:1fr; }
  .f-center { order:-1; min-height:190px; }
  .f-net path { display:none; }
  .f-net path.spine { display:block; }
  .f-col { gap:14px; }
  .f-col + .f-col { margin-top:14px; }
  .connector { height:20vh; min-height:130px; }
  .edge-glow { display:none; }
  .exploded { padding:9vh 18px; }
  .inside-list::before { display:none; }
  .i-row { grid-template-columns:1fr; gap:12px; justify-items:center; text-align:center; }
  .i-trace { display:none; }
  .i-info { max-width:420px; }
  .price-card { padding:32px 20px; }
  .cta-title { font-size:clamp(26px, 7.4vw, 44px); }
  .footer { padding:44px 18px 36px; }
}

/* compact nav + footer clearance on small phones */
@media (max-width: 640px) {
  .nav { padding:10px 6px; }
  .nav-logo { gap:6px; }
  .nav-logo img { width:22px; }
  .nav-logo span { font-size:14.5px; }
  .nav-right { gap:4px; }
  .nav-cta { padding:7px 9px; font-size:11px; }
  .hide-xs { display:none; }
  .lang-btn { padding:6px 7px; font-size:10.5px; gap:4px; }
  .lang-btn svg { width:12px; height:12px; }
  .nav-menu-btn { padding:6px 7px; }
  .to-top { right:34px; bottom:16px; width:44px; height:44px; }
}
/* ultra-narrow phones: icon-only logo so every nav control fits */
@media (max-width: 360px) {
  .nav-logo span { display:none; }
  .nav-logo img { width:28px; }
  /* keep footer content clear of the fixed scroll-to-top button */
  .footer { padding:44px 18px 112px; }
  .footer-links { flex-wrap:wrap; justify-content:center; row-gap:6px; }
}
/* ─────────── large displays (QHD / 4K): scale the whole experience up ─────────── */
@media (min-width: 2000px) {
  /* nav */
  .nav { padding:26px 64px; }
  .nav-logo img { width:36px; }
  .nav-logo span { font-size:24px; }
  .nav-link { font-size:17px; }
  .nav-cta { font-size:16px; padding:13px 28px; }
  .lang-btn { font-size:15px; padding:11px 18px; }
  /* hero */
  .hero-title { font-size:110px; }
  .hero-sub { font-size:23px; max-width:780px; }
  .hero-phone { width:340px; margin-top:-40px; margin-bottom:-42px; }
  .store-btn { padding:14px 28px 14px 20px; }
  .store-btn img { width:42px; height:42px; }
  .store-btn span { font-size:20px; }
  .store-btn small { font-size:12.5px; }
  .hero-visual { height:340px; }
  /* shared */
  .section-kicker { font-size:22px; }
  .btn-primary { font-size:19px; padding:18px 42px; }
  .connector svg { width:760px; }
  .to-top { width:64px; height:64px; right:40px; bottom:40px; }
  /* statement */
  .statement-text { font-size:58px; max-width:1240px; }
  /* steps */
  .steps-head h2 { font-size:84px; }
  .steps-body { max-width:1720px; gap:130px; }
  .phone-frame { width:400px; }
  .step-item h3 { font-size:42px; }
  .step-item p { font-size:20px; max-width:640px; }
  .steps-counter #stepsCounterNum { font-size:44px; }
  /* signature features */
  .sig-title { font-size:84px; }
  .sig-row, .sig-connector { max-width:1620px; }
  .sig-copy h3 { font-size:60px; }
  .sig-copy p { font-size:22px; }
  .sig-copy li { font-size:19px; padding-left:32px; }
  .sig-badge { font-size:14px; padding:12px 22px; }
  .sig-phone img { max-width:470px; }
  /* features grid */
  .features { max-width:1760px; }
  .features-title { font-size:78px; max-width:1620px; }
  .features-wrap { max-width:1620px; grid-template-columns:1fr clamp(300px, 22vw, 440px) 1fr; }
  .f-card { padding:28px 30px; gap:20px; }
  .f-card img { width:60px; height:60px; }
  .f-card h3 { font-size:24px; }
  .f-card p { font-size:17px; }
  .f-chip { width:150px; }
  /* languages marquee */
  .lang-chip { font-size:21px; padding:18px 34px; gap:14px; }
  .lang-chip img { width:36px; height:36px; }
  /* inside */
  .exploded-title { font-size:84px; }
  .inside-list { max-width:1520px; }
  .i-row { grid-template-columns:350px 1fr minmax(320px, 44%); }
  .i-tile { width:350px; min-height:195px; }
  .i-tile img { width:78px; height:78px; }
  .i-tile span { font-size:19px; }
  .i-tile .app-chip { width:150px; }
  .i-info h4 { font-size:27px; }
  .i-info p { font-size:17.5px; }
  /* imagine */
  .imagine-grid { max-width:1640px; }
  .imagine-title { font-size:78px; }
  .imagine-points img { width:50px; height:50px; }
  .imagine-points span { font-size:22px; }
  .imagine-stat { max-width:560px; padding:26px 34px; }
  .stat-num { font-size:56px; }
  .imagine-stat p { font-size:18px; }
  .imagine-phones img { max-width:1020px; }
  .imagine-phones { margin-top:-190px; }
  /* pricing */
  .pricing h2 { font-size:78px; }
  .price-card { max-width:680px; padding:60px 54px; }
  .price-amount { font-size:104px; }
  .plan { font-size:16px; padding:12px 24px; }
  .price-note { font-size:17px; }
  /* faq */
  .faq { max-width:1180px; }
  .faq-title { font-size:78px; }
  .faq-item summary { font-size:22px; padding:28px 32px; }
  .faq-body { font-size:18px; padding:0 32px 30px; }
  /* cta + footer */
  .cta-title { font-size:112px; max-width:1560px; }
  .qr-tile img { width:180px; }
  .qr-tile figcaption { font-size:15px; }
  .footer img { width:46px; }
  .footer-links { font-size:16px; }
  .footer p { font-size:14px; }
}

@media (prefers-reduced-motion: reduce) {
  #gl, #grain { display:none; }
}
