/* ================= HERO ================= */
.hero{ min-height:100svh; display:flex; align-items:center; padding-top:120px; padding-bottom:60px; }
.hero-grid{ display:grid; grid-template-columns:1.15fr .85fr; gap:40px; align-items:center; }
@media (max-width:900px){ .hero-grid{ grid-template-columns:1fr; } }

.hero-term{
  font-family:var(--font-mono); font-size:.82rem; color:var(--blue); line-height:1.9;
  border-left:2px solid var(--line-strong); padding-left:14px; margin-bottom:26px; min-height:8.5em;
}
.hero-term .ok{ color:#7CF29C; }
.hero-term .dim{ color:var(--text-faint); }
.caret{ display:inline-block; width:7px; height:1em; background:var(--blue); vertical-align:-2px; animation:blink 1s steps(1) infinite; }
@keyframes blink{ 50%{ opacity:0; } }

.hero-title{ margin:0 0 26px; }
.hero-title .line{ display:block; overflow:hidden; }
.hero-title .line span{ display:inline-block; will-change:transform; }

.hero-sub{ font-family:var(--font-mono); font-size:.92rem; color:var(--text-dim); max-width:46ch; line-height:1.7; margin-bottom:34px; }

.btn-row{ display:flex; gap:14px; flex-wrap:wrap; }
.btn{
  position:relative; display:inline-flex; align-items:center; gap:10px;
  font-family:var(--font-mono); font-size:.78rem; letter-spacing:.05em;
  padding:14px 24px; border-radius:10px; overflow:hidden; isolation:isolate;
}
.btn-primary{ background:var(--grad); color:#040410; font-weight:600; }
.btn-ghost{ border:1px solid var(--line-strong); color:var(--text); background:rgba(255,255,255,.02); }
.btn-ghost:hover{ border-color:var(--blue); }

.hero-visual{ position:relative; display:flex; justify-content:center; }
.hero-photo-wrap{
  position:relative; width:min(360px, 80vw); border-radius:22px; overflow:hidden;
  border:1px solid var(--line-strong);
  box-shadow:0 0 0 1px rgba(255,255,255,.02), 0 40px 90px -30px rgba(76,60,255,.55);
}
.hero-photo-wrap img{ width:100%; height:100%; object-fit:cover; filter:saturate(1.05) contrast(1.05); }
.hero-photo-wrap::after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(200deg, rgba(76,124,255,.28), rgba(178,75,255,.22) 55%, rgba(5,5,16,.55));
  mix-blend-mode:color-dodge; opacity:.35;
}
.hero-photo-wrap::before{
  content:''; position:absolute; inset:0; z-index:2; pointer-events:none;
  background: repeating-linear-gradient(0deg, rgba(255,255,255,0.04) 0px, transparent 1px, transparent 3px);
  mix-blend-mode:overlay;
}
.hero-tags{ position:absolute; font-family:var(--font-mono); font-size:.66rem; letter-spacing:.08em; color:var(--text-dim); background:rgba(8,11,24,.72); border:1px solid var(--line); padding:7px 11px; border-radius:8px; backdrop-filter:blur(6px); }
.hero-tags.t1{ top:14px; left:-18px; }
.hero-tags.t2{ bottom:22px; right:-22px; }
.hero-tags.t3{ top:44%; right:-14px; }
@media (max-width:520px){ .hero-tags{ display:none; } }

/* ================= MARQUEE ================= */
.marquee-row{ overflow:hidden; border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:20px 0; background:rgba(255,255,255,.012); }
.marquee-track{ display:flex; width:max-content; gap:56px; white-space:nowrap; animation: scrollLeft 26s linear infinite; }
.marquee-track.rev{ animation: scrollRight 34s linear infinite; }
.marquee-track span{ font-family:var(--font-mono); font-size:clamp(1rem,2.4vw,1.5rem); font-weight:600; color:var(--text-faint); letter-spacing:.02em; display:flex; align-items:center; gap:56px; }
.marquee-track span em{ font-style:normal; color:var(--blue); }
@keyframes scrollLeft{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
@keyframes scrollRight{ from{ transform:translateX(-50%); } to{ transform:translateX(0); } }

