/* KuDownloader site. Plain CSS: light by default, dark from the system. */
:root {
  --bg: #ffffff;
  --bg-soft: #f4f5f7;
  --bg-card: #f7f8fa;
  --line: #e7e8ec;
  --text: #121317;
  --text-2: #5c6170;
  --text-3: #9aa0ad;
  --blue: #2563eb;
  --lime: #d4ff00;
  --glow: rgba(37, 99, 235, 0.55);
  --dark-pill: #121317;
  --dark-pill-text: #ffffff;
  --radius: 28px;
  --max: 1200px;
  --ease: cubic-bezier(0.2, 0.7, 0.1, 1);
  --display: "Inter Tight", "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  --body: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  color-scheme: light;
}
@media (prefers-color-scheme: dark) {
  :root {
    --bg: #0b0c10;
    --bg-soft: #15171d;
    --bg-card: #121419;
    --line: #23262e;
    --text: #f1f2f5;
    --text-2: #a4a9b6;
    --text-3: #6b7180;
    --glow: rgba(59, 130, 246, 0.6);
    --dark-pill: #f1f2f5;
    --dark-pill-text: #0b0c10;
    color-scheme: dark;
  }
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; overflow-x: clip; }
body {
  margin: 0;
  background: var(--bg);
  color: var(--text);
  font: 400 17px/1.6 var(--body);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; }
button { font: inherit; color: inherit; }
.skip { position: absolute; left: -999px; top: 8px; padding: 8px 14px; background: var(--text); color: var(--bg); border-radius: 10px; z-index: 100; }
.skip:focus { left: 8px; }
:focus-visible { outline: 2px solid var(--blue); outline-offset: 3px; border-radius: 8px; }

/* ───────── Type ───────── */
.display {
  font: 500 clamp(44px, 8.2vw, 104px)/0.98 var(--display);
  letter-spacing: -0.045em;
  margin: 0;
  text-wrap: balance;
}
.display.small { font-size: clamp(38px, 6vw, 76px); }
.title {
  font: 500 clamp(34px, 5vw, 60px)/1.02 var(--display);
  letter-spacing: -0.035em;
  margin: 0;
  text-wrap: balance;
}
.sub, .lead { color: var(--text-2); }
.lead { font-size: clamp(17px, 1.6vw, 20px); max-width: 640px; margin: 26px auto 0; text-wrap: pretty; }
.sub { font-size: 18px; max-width: 560px; margin: 18px 0 0; }
.kicker { font-weight: 600; font-size: 14px; letter-spacing: 0.02em; color: var(--blue); margin: 0 0 14px; }
.fine { color: var(--text-3); font-size: 14px; margin: 22px 0 0; }
h3 { font: 600 20px/1.3 var(--display); letter-spacing: -0.01em; margin: 0; }

/* ───────── Buttons ───────── */
.pill {
  display: inline-flex; align-items: center; justify-content: center; gap: 9px;
  height: 52px; padding: 0 26px; border-radius: 999px;
  font: 500 16px/1 var(--body); text-decoration: none; white-space: nowrap;
  border: 0; cursor: pointer;
  transition: transform 0.25s var(--ease), background-color 0.2s, box-shadow 0.25s;
}
.pill:active { transform: scale(0.97); }
.pill.dark { background: var(--dark-pill); color: var(--dark-pill-text); }
.pill.dark:hover { transform: translateY(-2px); box-shadow: 0 10px 28px -10px rgba(18, 19, 23, 0.45); }
.pill.light { background: var(--bg-soft); color: var(--text); }
.pill.light:hover { background: var(--line); }
.pill.small { height: 40px; padding: 0 18px; font-size: 14px; }
.i { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.round {
  width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--line); background: var(--bg);
  display: grid; place-items: center; cursor: pointer; transition: background 0.2s;
}
.round:hover { background: var(--bg-soft); }
.round svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

/* ───────── Navigation ───────── */
.nav {
  position: fixed; inset: 0 0 auto; z-index: 50;
  transition: background 0.3s, box-shadow 0.3s, backdrop-filter 0.3s;
}
.nav.scrolled { background: color-mix(in srgb, var(--bg) 82%, transparent); backdrop-filter: saturate(1.6) blur(16px); -webkit-backdrop-filter: saturate(1.6) blur(16px); box-shadow: 0 1px 0 var(--line); }
.nav-inner { max-width: var(--max); margin: 0 auto; height: 68px; padding: 0 24px; display: flex; align-items: center; gap: 28px; }
.brand { display: inline-flex; align-items: center; gap: 10px; font: 600 17px/1 var(--display); letter-spacing: -0.01em; text-decoration: none; }
.nav-links { display: flex; gap: 26px; margin-right: auto; margin-left: 18px; }
.nav-links a { font-size: 15px; color: var(--text-2); text-decoration: none; transition: color 0.2s; }
.nav-links a:hover { color: var(--text); }
@media (max-width: 860px) { .nav-links { display: none; } .nav-inner { justify-content: space-between; } }

/* ───────── Hero ───────── */
.hero {
  position: relative; min-height: 100svh; display: grid; place-items: center;
  text-align: center; padding: 120px 20px 80px; overflow: hidden;
}
.field { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.hero-copy { position: relative; z-index: 1; max-width: 1000px; }
.eyebrow { display: inline-flex; align-items: center; gap: 9px; font: 500 18px/1 var(--display); color: var(--text-2); margin: 0 0 30px; }
.cta { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; margin-top: 38px; }

/* ───────── Showcase ───────── */
.showcase { padding: 0 20px 40px; perspective: 1400px; }
.frame {
  max-width: 1100px; margin: 0 auto; border-radius: 24px; overflow: hidden;
  background: #0b0c10; padding: 10px;
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.06), 0 40px 120px -30px var(--glow), 0 0 90px -20px var(--glow);
  transform-origin: 50% 100%;
  transform: rotateX(var(--tilt, 18deg)) scale(var(--scale, 0.92));
  transition: transform 0.1s linear;
  will-change: transform;
}
.frame img { border-radius: 16px; width: 100%; }

/* ───────── Statement: words light up as you scroll ───────── */
.statement { max-width: 1040px; margin: 0 auto; padding: 140px 24px; }
.words { font: 500 clamp(28px, 3.8vw, 46px)/1.22 var(--display); letter-spacing: -0.025em; margin: 0; text-wrap: pretty; }
.words .w { color: var(--text-3); transition: color 0.35s; }
.words .w.on { color: var(--text); }

/* ───────── Sections ───────── */
.section { max-width: var(--max); margin: 0 auto; padding: 110px 24px; }
.head { margin-bottom: 56px; }
.head.row { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; }
.arrows { display: flex; gap: 10px; }

.cards { display: grid; gap: 18px; }
.cards.four { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 1040px) { .cards.four { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .cards.four { grid-template-columns: 1fr; } }
.card {
  position: relative; overflow: hidden;
  background: var(--bg-card); border: 1px solid var(--line); border-radius: var(--radius);
  padding: 28px; display: flex; flex-direction: column; gap: 12px; min-height: 300px;
  transition: transform 0.35s var(--ease), border-color 0.3s;
}
/* A soft spotlight that follows the pointer. */
.card::before {
  content: ""; position: absolute; inset: 0; opacity: 0; transition: opacity 0.3s; pointer-events: none;
  background: radial-gradient(420px circle at var(--mx, 50%) var(--my, 50%), rgba(37, 99, 235, 0.13), transparent 60%);
}
.card:hover { transform: translateY(-4px); border-color: color-mix(in srgb, var(--blue) 30%, var(--line)); }
.card:hover::before { opacity: 1; }
.card p { color: var(--text-2); margin: 0; font-size: 15.5px; flex: 1; }
.more { font-weight: 600; font-size: 15px; text-decoration: none; display: inline-flex; gap: 6px; align-items: center; }
.more::after { content: "→"; transition: transform 0.25s var(--ease); }
.more:hover::after { transform: translateX(4px); }
.card-icon { width: 52px; height: 52px; border-radius: 16px; display: grid; place-items: center; margin-bottom: 18px; }
.card-icon svg { width: 26px; height: 26px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.card-icon.blue { background: rgba(37, 99, 235, 0.12); color: #2563eb; }
.card-icon.green { background: rgba(22, 163, 74, 0.12); color: #16a34a; }
.card-icon.orange { background: rgba(234, 88, 12, 0.12); color: #ea580c; }
.card-icon.violet { background: rgba(124, 58, 237, 0.12); color: #7c3aed; }

/* ───────── Features ───────── */
.feature-grid { display: grid; grid-template-columns: 0.9fr 1.3fr; gap: 56px; align-items: start; }
.feature-list { list-style: none; margin: 0; padding: 0; }
.feature-list li {
  padding: 22px 0 22px 22px; border-left: 2px solid var(--line); cursor: pointer;
  transition: border-color 0.3s;
}
.feature-list li h3 { color: var(--text-3); transition: color 0.3s; }
.feature-list li p { color: var(--text-2); margin: 8px 0 0; font-size: 15.5px; max-height: 0; overflow: hidden; opacity: 0; transition: max-height 0.5s var(--ease), opacity 0.4s; }
.feature-list li.active { border-color: var(--blue); }
.feature-list li.active h3 { color: var(--text); }
.feature-list li.active p { max-height: 160px; opacity: 1; }
.feature-shot {
  position: sticky; top: 110px; border-radius: var(--radius); overflow: hidden;
  background: linear-gradient(135deg, #dbe7ff, #eef3ff 50%, #f1ffd1);
  padding: 34px; display: grid; place-items: center; aspect-ratio: 4 / 3;
}
@media (prefers-color-scheme: dark) { .feature-shot { background: linear-gradient(135deg, #14203d, #111726 55%, #1b2410); } }
.feature-shot img { border-radius: 14px; box-shadow: 0 30px 70px -25px rgba(0, 0, 0, 0.45); max-height: 100%; width: auto; transition: opacity 0.35s, transform 0.5s var(--ease); }
.feature-shot img.swap { opacity: 0; transform: translateY(10px) scale(0.985); }
@media (max-width: 900px) {
  .feature-grid { grid-template-columns: 1fr; }
  .feature-shot { position: relative; top: 0; order: -1; }
}
.chips { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 70px; }
.chips span { padding: 10px 16px; border-radius: 999px; background: var(--bg-soft); color: var(--text-2); font-size: 14.5px; }

/* ───────── KuAirSend ───────── */
.air-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: center; }
@media (max-width: 900px) { .air-grid { grid-template-columns: 1fr; } }
.ticks { list-style: none; padding: 0; margin: 30px 0 0; display: grid; gap: 14px; }
.ticks li { position: relative; padding-left: 32px; color: var(--text-2); }
.ticks li::before { content: ""; position: absolute; left: 0; top: 4px; width: 20px; height: 20px; border-radius: 50%; background: var(--lime); box-shadow: inset 0 0 0 5px color-mix(in srgb, var(--lime) 40%, #fff); }
.radar {
  position: relative; aspect-ratio: 1; max-width: 480px; width: 100%; margin: 0 auto;
  border-radius: 50%; background: radial-gradient(circle, color-mix(in srgb, var(--blue) 10%, var(--bg)) 0%, var(--bg) 70%);
}
.ring { position: absolute; inset: 50%; border: 1px solid color-mix(in srgb, var(--blue) 22%, transparent); border-radius: 50%; transform: translate(-50%, -50%); }
.r1 { width: 36%; height: 36%; }
.r2 { width: 66%; height: 66%; }
.r3 { width: 96%; height: 96%; }
.sweep {
  position: absolute; inset: 2%; border-radius: 50%;
  background: conic-gradient(from 0deg, transparent 0 300deg, color-mix(in srgb, var(--blue) 30%, transparent) 360deg);
  animation: spin 5s linear infinite;
  mask: radial-gradient(circle, #000 0 70%, transparent 71%);
}
@keyframes spin { to { transform: rotate(360deg); } }
.px { position: absolute; image-rendering: pixelated; border-radius: 50%; transform: translate(-50%, -50%); background: var(--bg-card); box-shadow: 0 10px 30px -12px rgba(0, 0, 0, 0.35); }
.px.me { left: 50%; top: 50%; width: 22%; }
.px.peer { width: 16%; animation: bob 3.2s ease-in-out infinite; }
.p1 { left: 50%; top: 15%; }
.p2 { left: 83%; top: 68%; animation-delay: -1s !important; }
.p3 { left: 18%; top: 72%; animation-delay: -2s !important; }
@keyframes bob { 50% { transform: translate(-50%, calc(-50% - 6px)); } }
.beam { position: absolute; width: 10px; height: 10px; border-radius: 50%; background: var(--blue); box-shadow: 0 0 14px var(--blue); left: 50%; top: 50%; opacity: 0; }
.b1 { animation: beam1 2.8s var(--ease) infinite; }
.b2 { animation: beam2 2.8s var(--ease) 1.4s infinite; background: var(--lime); box-shadow: 0 0 14px var(--lime); }
@keyframes beam1 { 0% { opacity: 0; left: 50%; top: 50%; } 15% { opacity: 1; } 85% { opacity: 1; } 100% { opacity: 0; left: 50%; top: 18%; } }
@keyframes beam2 { 0% { opacity: 0; left: 82%; top: 66%; } 15% { opacity: 1; } 85% { opacity: 1; } 100% { opacity: 0; left: 52%; top: 52%; } }

/* ───────── People rail ───────── */
.rail {
  display: grid; grid-auto-flow: column; grid-auto-columns: minmax(290px, 360px); gap: 18px;
  overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 10px; scrollbar-width: none;
}
.rail::-webkit-scrollbar { display: none; }
.person {
  scroll-snap-align: start; border-radius: var(--radius); padding: 30px; min-height: 340px;
  display: flex; flex-direction: column; justify-content: flex-end; gap: 12px;
  background:
    radial-gradient(120% 80% at 100% 0%, hsl(var(--hue) 90% 60% / 0.28), transparent 60%),
    var(--bg-card);
  border: 1px solid var(--line);
  transition: transform 0.35s var(--ease);
}
.person:hover { transform: translateY(-4px); }
.person p { color: var(--text-2); margin: 0; font-size: 15.5px; }
.tag { align-self: flex-start; margin-bottom: auto; font-size: 13px; font-weight: 600; padding: 6px 12px; border-radius: 999px; background: hsl(var(--hue) 90% 55% / 0.14); color: hsl(var(--hue) 70% 45%); }
@media (prefers-color-scheme: dark) { .tag { color: hsl(var(--hue) 90% 72%); } }
.person h3 { font-size: 24px; letter-spacing: -0.02em; }

/* ───────── Download ───────── */
.platforms { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; }
@media (max-width: 760px) { .platforms { grid-template-columns: 1fr; } }
.platform {
  border: 1px solid var(--line); border-radius: var(--radius); padding: 30px;
  background: var(--bg-card); display: flex; flex-direction: column; gap: 10px;
  transition: border-color 0.3s, box-shadow 0.3s;
}
.platform.mine { border-color: var(--blue); box-shadow: 0 0 0 3px color-mix(in srgb, var(--blue) 18%, transparent); }
.platform p { color: var(--text-2); margin: 0 0 14px; font-size: 15.5px; }
.p-head { display: flex; align-items: center; gap: 12px; }
.p-head svg { width: 30px; height: 30px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.p-head svg .fill { fill: currentColor; stroke: none; }
.p-head h3 { font-size: 24px; }
.pair { display: flex; flex-wrap: wrap; gap: 10px; margin-top: auto; }
.platform > .pill { align-self: flex-start; margin-top: auto; }
.extension {
  margin-top: 18px; border-radius: var(--radius); padding: 30px; background: var(--bg-soft);
  display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap;
}
.extension p { color: var(--text-2); margin: 8px 0 0; max-width: 660px; font-size: 15.5px; }
.extension .pair { margin: 0; }

/* ───────── FAQ ───────── */
.qa { display: grid; gap: 12px; max-width: 860px; }
.qa details { border-radius: 20px; background: var(--bg-card); border: 1px solid var(--line); padding: 0 24px; }
.qa summary { list-style: none; cursor: pointer; padding: 22px 30px 22px 0; font: 500 18px/1.4 var(--display); position: relative; }
.qa summary::-webkit-details-marker { display: none; }
.qa summary::after { content: "+"; position: absolute; right: 0; top: 50%; transform: translateY(-50%); font-size: 26px; font-weight: 300; color: var(--text-2); transition: transform 0.3s var(--ease); }
.qa details[open] summary::after { transform: translateY(-50%) rotate(45deg); }
.qa p { margin: 0 0 22px; color: var(--text-2); }

/* ───────── Final call to action ───────── */
.final { position: relative; min-height: 70vh; display: grid; place-items: center; text-align: center; overflow: hidden; padding: 100px 20px; }
.final-copy { position: relative; z-index: 1; display: grid; gap: 34px; justify-items: center; }

/* ───────── Footer ───────── */
.foot { border-top: 1px solid var(--line); }
.foot-inner { max-width: var(--max); margin: 0 auto; padding: 56px 24px 24px; display: flex; justify-content: space-between; gap: 40px; flex-wrap: wrap; }
.cols { display: flex; gap: 72px; flex-wrap: wrap; }
.cols h4 { margin: 0 0 14px; font-size: 14px; color: var(--text-3); font-weight: 500; }
.cols a { display: block; text-decoration: none; color: var(--text-2); font-size: 15px; margin-bottom: 10px; }
.cols a:hover { color: var(--text); }
.copy { max-width: var(--max); margin: 0 auto; padding: 18px 24px 40px; color: var(--text-3); font-size: 14px; }

/* ───────── Scroll reveal ───────── */
.reveal { opacity: 0; transform: translateY(28px); transition: opacity 0.9s var(--ease), transform 0.9s var(--ease); }
.reveal.in { opacity: 1; transform: none; }
.no-js .reveal { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .reveal { opacity: 1; transform: none; transition: none; }
  .frame { transform: none; }
  .sweep, .px.peer, .beam { animation: none; }
  .words .w { color: var(--text); }
}

/* ───────── Plain pages (privacy) ───────── */
.wrap { max-width: 760px; margin: 0 auto; padding: 0 24px 64px; }
.top { padding: 28px 0; }
.prose h1 { font: 500 clamp(36px, 6vw, 56px)/1.05 var(--display); letter-spacing: -0.035em; margin: 24px 0 18px; }
.prose h2 { font: 600 22px/1.3 var(--display); margin: 40px 0 10px; }
.prose p, .prose li { color: var(--text-2); }
.prose a { color: var(--blue); }
.note { font-size: 14px; color: var(--text-3); }
.wrap > footer { margin-top: 48px; padding-top: 24px; border-top: 1px solid var(--line); }
.wrap > footer a { text-decoration: none; color: var(--text-2); }
