/* ============================================================
   StockMedia — Landing page styles
   ============================================================ */

/* ── Base ── */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--bg-app);
  color: var(--text-strong);
  font-family: var(--font-sans);
  -webkit-font-smoothing: antialiased;
  line-height: var(--leading-normal);
  transition: background var(--duration-slow) var(--ease-standard),
              color var(--duration-slow) var(--ease-standard);
}
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
.wrap { max-width: var(--container-max); margin: 0 auto; padding: 0 var(--space-8); }
.eyebrow {
  display: block;
  font-size: var(--text-xs);
  font-weight: var(--weight-semibold);
  letter-spacing: var(--eyebrow-tracking);
  text-transform: uppercase;
  color: var(--brand-on-dark);
  margin-bottom: var(--space-3);
}

/* ── Section heads ── */
section { padding: var(--space-20) 0; }
section + section { border-top: 1px solid var(--border-default); }
.sec-head { max-width: 640px; margin: 0 auto var(--space-12); text-align: center; }
.sec-head h2 {
  margin: var(--space-2) 0 0;
  font-size: var(--text-4xl);
  font-weight: var(--weight-bold);
  letter-spacing: var(--tracking-tight);
  color: var(--text-strong);
  line-height: var(--leading-snug);
}
.sec-head p { margin: var(--space-3) 0 0; font-size: var(--text-base); color: var(--text-body); text-wrap: pretty; }

/* ── Navbar ── */
.nav {
  position: sticky; top: 0; z-index: 50;
  background: rgba(17, 24, 39, 0.82);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(55, 65, 81, 0.6);
  transition: background var(--duration-slow);
}
[data-theme="light"] .nav {
  background: rgba(249, 250, 251, 0.88);
  border-bottom-color: var(--gray-200);
}
.nav-in {
  display: flex; align-items: center; justify-content: space-between;
  height: var(--topbar-height); gap: var(--space-6);
}
.brand {
  display: flex; align-items: center;
}
.brand-logo {
  height: 34px; width: auto; display: block;
}
[data-theme="light"] .brand-logo { filter: invert(1); }
.hero-logo {
  height: 92px; width: auto; max-width: 100%; display: block;
}
.brand-s {
  font-size: 1.65rem; font-weight: var(--weight-extrabold);
  font-style: italic; color: var(--text-strong);
  border-bottom: 2.5px solid var(--brand-on-dark);
  line-height: 1; padding-bottom: 1px;
}
.brand-tock {
  font-size: 1rem; font-weight: var(--weight-medium);
  font-style: italic; color: var(--text-body);
  align-self: flex-end; margin-bottom: 1px;
}
.brand-media {
  font-size: 1.25rem; font-weight: var(--weight-extrabold);
  letter-spacing: -0.02em; color: var(--text-strong);
  align-self: flex-end; margin-bottom: 0;
}
.nav-links { display: flex; align-items: center; gap: var(--space-8); }
.nav-links a {
  font-size: var(--text-sm); font-weight: var(--weight-medium);
  color: var(--text-body); transition: color var(--duration);
}
.nav-links a:hover { color: var(--text-strong); }
.nav-end { display: flex; align-items: center; gap: var(--space-3); }

/* Theme toggle */
.theme-toggle {
  display: flex; align-items: center; justify-content: center;
  width: 36px; height: 36px; border-radius: var(--radius-pill);
  background: var(--surface-card); border: 1px solid var(--border-default);
  cursor: pointer; color: var(--text-muted);
  transition: background var(--duration), color var(--duration), border-color var(--duration);
}
.theme-toggle:hover { background: var(--surface-input); color: var(--text-strong); }
.theme-toggle svg { width: 16px; height: 16px; stroke-width: 2; }
.icon-sun, .icon-moon { display: block; }
[data-theme="dark"] .icon-sun  { display: none; }
[data-theme="light"] .icon-moon { display: none; }

/* Ham */
.ham-btn {
  display: none; background: none; border: none; padding: var(--space-2);
  color: var(--text-body); cursor: pointer; border-radius: var(--radius-sm);
}
.ham-btn svg { width: 22px; height: 22px; stroke-width: 2; display: block; }
.ham-btn:hover { color: var(--text-strong); }
.mobile-menu {
  display: none; flex-direction: column;
  background: var(--bg-raised); border-top: 1px solid var(--border-default);
  padding: var(--space-4) var(--space-6);
}
.mobile-menu.open { display: flex; }
.mobile-menu a {
  padding: var(--space-3) 0; font-size: var(--text-base); font-weight: var(--weight-medium);
  color: var(--text-body); border-bottom: 1px solid var(--border-default);
  transition: color var(--duration);
}
.mobile-menu a:last-child { border-bottom: none; }
.mobile-menu a:hover { color: var(--text-strong); }

/* ── Buttons ── */
.btn {
  display: inline-flex; align-items: center; gap: var(--space-2);
  cursor: pointer; font-family: var(--font-sans); font-weight: var(--weight-semibold);
  font-size: var(--text-sm); border-radius: var(--radius-sm);
  padding: 9px var(--space-4); border: 1px solid transparent;
  transition: background var(--duration), border-color var(--duration), box-shadow var(--duration);
  white-space: nowrap; line-height: 1.4;
}
.btn-primary { background: var(--brand); color: var(--text-onbrand); }
.btn-primary:hover { background: var(--brand-hover); }
.btn-primary:active { background: var(--brand-active); }
.btn-outline {
  background: transparent; color: var(--text-body);
  border-color: var(--border-control);
}
.btn-outline:hover { background: var(--surface-input); color: var(--text-strong); border-color: var(--border-strong); }
.btn-outline-hero {
  background: transparent; color: rgba(255, 255, 255, 0.8);
  border-color: rgba(255, 255, 255, 0.22);
}
.btn-outline-hero:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.38);
  color: #fff;
}
.btn-lg { padding: 11px var(--space-6); font-size: var(--text-base); border-radius: var(--radius-pill); }
.btn-glow { box-shadow: var(--shadow-brand); }
.btn-glow:hover { box-shadow: var(--shadow-brand), 0 0 0 3px rgba(78,172,197,0.22); }

/* ── Hero ── */
.hero {
  position: relative; overflow: hidden;
  background: #1a222a; /* always dark */
  padding: var(--space-20) 0 var(--space-16);
  min-height: 480px; display: flex; align-items: center;
}
.hero-glow {
  position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background:
    radial-gradient(700px 400px at 65% -10%, rgba(22,75,107,0.45), transparent 70%),
    radial-gradient(450px 350px at 0% 70%, rgba(78,172,197,0.12), transparent 70%);
}
.hero-grid {
  position: absolute; inset: 0; z-index: 0; pointer-events: none; opacity: 0.30;
  background-image:
    linear-gradient(rgba(78,172,197,0.3) 1px, transparent 1px),
    linear-gradient(90deg, rgba(78,172,197,0.3) 1px, transparent 1px);
  background-size: 52px 52px;
  -webkit-mask-image: radial-gradient(ellipse at 55% 35%, black 0%, transparent 68%);
  mask-image: radial-gradient(ellipse at 55% 35%, black 0%, transparent 68%);
}
.hero-code {
  position: absolute; right: 4%; top: 50%; transform: translateY(-50%);
  z-index: 0; opacity: 0.10; pointer-events: none;
  font-family: var(--font-mono); font-size: 11px; color: var(--indigo-300);
  line-height: 1.75; white-space: pre; overflow: hidden;
  max-width: 400px; max-height: 340px; margin: 0;
}
.hero-content { position: relative; z-index: 1; max-width: 680px; }
.hero-pill {
  display: inline-flex; align-items: center; gap: var(--space-2);
  padding: 5px 13px 5px 8px; border: 1px solid rgba(255,255,255,0.10);
  border-radius: var(--radius-pill); background: rgba(255,255,255,0.05);
  font-size: var(--text-xs); color: rgba(255,255,255,0.55);
  margin-bottom: var(--space-5); letter-spacing: 0.01em;
}
.hero-pill .dot {
  width: 7px; height: 7px; border-radius: 50%;
  background: var(--green-400); box-shadow: 0 0 0 3px rgba(74,222,128,0.22);
  flex-shrink: 0;
}
.hero-h1 {
  margin: 0; font-size: var(--text-7xl); font-weight: var(--weight-extrabold);
  line-height: 1.03; letter-spacing: var(--tracking-tighter); color: #fff;
}
.hero-h1 em { font-style: normal; color: var(--indigo-400); }
.hero-sub {
  margin: var(--space-5) 0 0; max-width: 540px;
  font-size: var(--text-xl); color: rgba(255,255,255,0.58);
  line-height: var(--leading-relaxed); text-wrap: pretty;
}
.hero-actions { display: flex; flex-wrap: wrap; gap: var(--space-3); margin-top: var(--space-8); }

/* ── Platform cards ── */
.platforms { padding: var(--space-20) 0; }
.filter-tabs {
  display: flex; flex-wrap: wrap; justify-content: center; gap: var(--space-2);
  margin-bottom: var(--space-10);
}
.filter-tab {
  padding: 6px 16px; border-radius: var(--radius-pill);
  font-family: var(--font-sans); font-size: var(--text-sm);
  font-weight: var(--weight-medium); cursor: pointer;
  border: 1px solid var(--border-default); background: transparent;
  color: var(--text-muted);
  transition: background var(--duration), color var(--duration), border-color var(--duration);
}
.filter-tab:hover {
  background: var(--surface-hover); color: var(--text-body);
  border-color: var(--border-control);
}
.filter-tab.active {
  background: var(--brand); color: var(--text-onbrand); border-color: var(--brand);
}
.filter-tab.active:hover { background: var(--brand-hover); border-color: var(--brand-hover); }
.filter-tab:active { transform: scale(0.97); }

.plat-grid {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--space-5);
}
.plat-card {
  background: var(--surface-card); border: 1px solid var(--border-default);
  border-radius: var(--radius-md); overflow: hidden;
  box-shadow: var(--shadow);
  transition: border-color var(--duration), transform var(--duration), box-shadow var(--duration);
}
.plat-card:hover {
  border-color: var(--border-strong); transform: translateY(-3px);
  box-shadow: var(--shadow-md);
}
.plat-card.hidden { display: none; }

.plat-img {
  height: 160px; display: flex; align-items: center; justify-content: center;
  position: relative; overflow: hidden;
}
.bg-indigo  { background: linear-gradient(135deg, #0c2a3c 0%, #164b6b 100%); }
.bg-sky     { background: linear-gradient(135deg, #10333f 0%, #3f96ad 100%); }
.bg-green   { background: linear-gradient(135deg, #052e16 0%, #064e3b 100%); }
.bg-amber   { background: linear-gradient(135deg, #1c1107 0%, #451a03 100%); }
.bg-purple  { background: linear-gradient(135deg, #12303f 0%, #2f7290 100%); }
.bg-slate   { background: linear-gradient(135deg, #1a222a 0%, #2f3941 100%); }
.bg-indigo2 { background: linear-gradient(135deg, #0c2a3c 0%, #2f7290 100%); }
.bg-sky2    { background: linear-gradient(135deg, #164b6b 0%, #4eacc5 100%); }

.plat-icon-wrap {
  width: 60px; height: 60px; border-radius: var(--radius-lg);
  display: flex; align-items: center; justify-content: center;
}
.plat-icon-wrap svg { width: 28px; height: 28px; stroke-width: 1.75; }
.ic-indigo { background: rgba(22,75,107,0.30); border: 1px solid rgba(78,172,197,0.35); color: var(--indigo-400); }
.ic-sky    { background: rgba(78,172,197,0.20); border: 1px solid rgba(154,222,240,0.35); color: var(--sky-400); }
.ic-green  { background: rgba(34,197,94,0.18);  border: 1px solid rgba(74,222,128,0.35); color: var(--green-400); }
.ic-amber  { background: rgba(234,179,8,0.18);   border: 1px solid rgba(250,204,21,0.35); color: var(--amber-400); }
.ic-purple { background: rgba(47,114,144,0.25); border: 1px solid rgba(154,222,240,0.35); color: var(--indigo-300); }

.plat-info {
  display: flex; align-items: center; justify-content: space-between;
  padding: var(--space-3) var(--space-4); gap: var(--space-3);
}
.plat-meta { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.plat-meta h3 {
  margin: 0; font-size: var(--text-sm); font-weight: var(--weight-semibold);
  color: var(--text-strong); white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.plat-cat { font-size: var(--text-xs); color: var(--text-muted); }
.plat-link {
  display: flex; align-items: center; justify-content: center; flex-shrink: 0;
  width: 32px; height: 32px; border-radius: 50%;
  background: var(--brand); color: var(--text-onbrand);
  transition: background var(--duration), transform var(--duration);
}
.plat-link:hover { background: var(--brand-hover); transform: scale(1.08); }
.plat-link svg { width: 15px; height: 15px; stroke-width: 2.5; }

/* ── About ── */
.about { padding: var(--space-20) 0; }
.about-layout {
  display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-12); align-items: center;
}
.about-visual {
  border-radius: var(--radius-lg); overflow: hidden;
  background: #1a222a; border: 1px solid rgba(255,255,255,0.08);
  box-shadow: var(--shadow-lg); display: flex; flex-direction: column;
  min-height: 340px;
}
.about-vis-header {
  display: flex; align-items: center; gap: var(--space-2);
  padding: 10px var(--space-4); background: #242e36;
  border-bottom: 1px solid rgba(255,255,255,0.07); flex-shrink: 0;
}
.vis-dot { width: 11px; height: 11px; border-radius: 50%; flex-shrink: 0; }
.vis-tab {
  margin-left: var(--space-2); font-family: var(--font-mono); font-size: 11px;
  color: #64748b; letter-spacing: 0.01em;
}
.about-vis-body {
  flex: 1; padding: var(--space-5);
  font-family: var(--font-mono); font-size: 12px; line-height: 1.75;
  color: #64748b; white-space: pre; overflow: hidden;
}
/* Syntax highlighting */
.ck { color: var(--indigo-400); }  /* keywords */
.cf { color: var(--sky-400); }     /* functions/classes */
.cs { color: var(--green-400); }   /* strings */
.cm { color: #475569; }            /* comments */
.cv { color: var(--amber-300); }   /* variables */

.about-text { display: flex; flex-direction: column; gap: var(--space-4); }
.about-h2 {
  margin: 0; font-size: var(--text-4xl); font-weight: var(--weight-extrabold);
  letter-spacing: var(--tracking-tight); line-height: var(--leading-snug);
  color: var(--text-strong);
}
.about-body { margin: 0; font-size: var(--text-base); color: var(--text-body); line-height: var(--leading-relaxed); }

/* ── Contact form ── */
.contact { padding: var(--space-20) 0; }
.contact-form { max-width: 640px; margin: 0 auto; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-4); }
.form-field { display: flex; flex-direction: column; gap: var(--space-2); margin-bottom: var(--space-5); }
.form-label {
  font-size: var(--text-sm); font-weight: var(--weight-medium); color: var(--text-body);
}
.form-input, .form-textarea {
  width: 100%; background: var(--surface-card); border: 1px solid var(--border-control);
  border-radius: var(--radius-sm); padding: 10px var(--space-3);
  font-family: var(--font-sans); font-size: var(--text-sm); color: var(--text-strong);
  transition: border-color var(--duration), box-shadow var(--duration), background var(--duration);
}
.form-input:focus, .form-textarea:focus {
  outline: none; border-color: var(--brand-ring);
  box-shadow: 0 0 0 3px rgba(99,102,241,0.20);
}
.form-input::placeholder, .form-textarea::placeholder { color: var(--text-subtle); }
.form-textarea { resize: vertical; min-height: 130px; line-height: var(--leading-relaxed); }
.form-submit { display: flex; justify-content: center; margin-top: var(--space-2); }

/* ── Social ── */
.social { padding: var(--space-16) 0; }
.social-links {
  display: flex; justify-content: center; flex-wrap: wrap; gap: var(--space-4);
  margin-top: var(--space-8);
}
.social-link {
  display: inline-flex; align-items: center; gap: var(--space-3);
  padding: 12px var(--space-6); border-radius: var(--radius-pill);
  background: var(--surface-card); border: 1px solid var(--border-default);
  font-size: var(--text-sm); font-weight: var(--weight-semibold); color: var(--text-body);
  box-shadow: var(--shadow-sm);
  transition: border-color var(--duration), background var(--duration), color var(--duration);
}
.social-link:hover { border-color: var(--brand-on-dark); color: var(--text-strong); }
.social-link svg { width: 18px; height: 18px; stroke-width: 2; flex-shrink: 0; }

/* ── Footer ── */
footer {
  border-top: 1px solid var(--border-default);
  padding: var(--space-6) 0; text-align: center;
}
.foot-copy { margin: 0; font-size: var(--text-xs); color: var(--text-subtle); }

/* ── Scroll reveal ── */
.reveal {
  opacity: 0; transform: translateY(18px);
  transition: opacity var(--duration-slow) var(--ease-out),
              transform var(--duration-slow) var(--ease-out);
}
.reveal.visible { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .reveal { opacity: 1; transform: none; } }

/* ── Responsive ── */
@media (max-width: 1100px) {
  .plat-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 860px) {
  .nav-links { display: none; }
  .ham-btn { display: flex; }
  .hero-h1 { font-size: var(--text-6xl); }
  .plat-grid { grid-template-columns: repeat(2, 1fr); }
  .about-layout { grid-template-columns: 1fr; }
  .about-visual { min-height: 280px; }
  .form-row { grid-template-columns: 1fr; }
  .wrap { padding: 0 var(--space-5); }
}
@media (max-width: 520px) {
  .hero-h1 { font-size: var(--text-5xl); }
  .hero-sub { font-size: var(--text-base); }
  .sec-head h2 { font-size: var(--text-3xl); }
  .about-h2 { font-size: var(--text-3xl); }
  .clients-logos { gap: var(--space-2); }
  .client-logo { min-width: 100px; padding: var(--space-2) var(--space-4); }
  .btn-lg { padding: 10px var(--space-5); font-size: var(--text-sm); }
}
