/* ===== Octoryn site — shared styles ===== */
body { font-family: Inter, sans-serif; background: #0A0A14; color: #e7e7f0; }
.font-display { font-family: 'Plus Jakarta Sans', sans-serif; }

.gradient-text {
  background: linear-gradient(135deg, #37b6ff, #9b7bff, #ff5cf6);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.glow { position: absolute; border-radius: 9999px; filter: blur(90px); opacity: .5; pointer-events: none; }
.card-hover { transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.card-hover:hover { transform: translateY(-4px); border-color: rgba(155,123,255,.55); }
::selection { background: rgba(122,81,242,.45); }

/* ===== Bilingual: show one language, hide the other ===== */
/* Default to EN before JS runs to avoid a flash. */
html:not([data-lang="zh"]) [data-zh] { display: none; }
html[data-lang="zh"] [data-en] { display: none; }

/* ===== Scroll reveal ===== */
.reveal { opacity: 0; transform: translateY(18px); transition: opacity .6s ease, transform .6s ease; }
.reveal.in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .reveal { opacity: 1; transform: none; transition: none; }
}

/* ===== Nav active link ===== */
.nav-link.active { color: #fff; }
.nav-link.active::after {
  content: ''; display: block; height: 2px; margin-top: 4px; border-radius: 2px;
  background: linear-gradient(135deg, #00A0E9, #7A51F2, #F402FB);
}

/* ===== Lang toggle ===== */
.lang-btn { transition: color .2s ease, background .2s ease; }
.lang-btn[aria-pressed="true"] { background: rgba(255,255,255,.12); color: #fff; }
