.fx-progress { position: fixed; left: 0; top: 0; z-index: 70; width: 100%; height: 3px; background: var(--grad); transform-origin: 0 50%; transform: scaleX(0); pointer-events: none; box-shadow: 0 0 12px rgba(255, 107, 61, .7); }

.fx-stage { position: relative; isolation: isolate; overflow: hidden; }
.fx-stage > .fx-canvas { position: absolute; inset: 0; width: 100%; height: 100%; z-index: -1; pointer-events: none; }
.fx-stage > .fx-glow { position: absolute; inset: -30% -10% auto; height: 160%; z-index: -2; pointer-events: none; filter: blur(70px); opacity: .6; background: radial-gradient(40% 40% at 75% 30%, rgba(255, 107, 61, .45), transparent 70%), radial-gradient(30% 30% at 20% 70%, rgba(255, 182, 72, .18), transparent 70%); animation: fx-drift 20s ease-in-out infinite alternate; }
@keyframes fx-drift { to { transform: translate3d(-5%, 4%, 0) scale(1.1); } }

.fx-w { display: inline-block; opacity: 0; transform: translateY(.45em) rotate(2deg); filter: blur(6px); animation: fx-w .9s cubic-bezier(.2, .7, .2, 1) forwards; animation-delay: calc(var(--i) * 55ms + 80ms); }
@keyframes fx-w { to { opacity: 1; transform: none; filter: none; } }

.grad { background-size: 200% 100%; animation: fx-grad 8s ease-in-out infinite alternate; }
@keyframes fx-grad { to { background-position: 100% 0; } }

.nav-links a { position: relative; }
.nav-links a::after { content: ""; position: absolute; left: 0; right: 0; bottom: -6px; height: 2px; border-radius: 2px; background: var(--grad); transform: scaleX(0); transform-origin: 0 50%; transition: transform .3s cubic-bezier(.2, .7, .2, 1); }
.nav-links a:hover::after { transform: scaleX(1); }

[data-spot] { position: relative; }
[data-spot]::after { content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; opacity: 0; transition: opacity .3s ease; background: radial-gradient(380px circle at var(--mx, 50%) var(--my, 50%), rgba(255, 138, 61, .14), transparent 60%); }
[data-spot]:hover::after { opacity: 1; }
[data-spot].fx-lift { transition: transform .35s cubic-bezier(.2, .7, .2, 1), border-color .3s ease, box-shadow .35s ease; }
[data-spot].fx-lift:hover { transform: translateY(-4px); border-color: rgba(255, 107, 61, .4); box-shadow: 0 24px 50px rgba(0, 0, 0, .45); }
[data-magnet], .btn-primary { will-change: transform; }

.faq details { transition: border-color .2s, background .3s; }
.faq details[open] { background: linear-gradient(180deg, rgba(255, 107, 61, .06), transparent 70%), var(--card); }
.faq details[open] p { animation: fx-open .45s cubic-bezier(.2, .7, .2, 1); }
@keyframes fx-open { from { opacity: 0; transform: translateY(-6px); } }

@media (prefers-reduced-motion: reduce) {
  .fx-w, .grad, .fx-stage > .fx-glow { animation: none !important; opacity: 1; transform: none; filter: none; }
}
.fx-stage > .fx-canvas, .fx-stage > .fx-glow { -webkit-mask-image: linear-gradient(#000 55%, transparent); mask-image: linear-gradient(#000 55%, transparent); }

.nav-lang { display: inline-flex; padding: 3px; border-radius: 999px; background: var(--card); border: 1px solid var(--edge); flex: none; }
.nav-lang a { min-width: 38px; height: 32px; padding: 0 10px; display: grid; place-items: center; border-radius: 999px; font-size: 13px; font-weight: 800; letter-spacing: .04em; color: var(--muted); text-decoration: none; transition: color .2s, background .25s; }
.nav-lang a:hover { color: var(--ink); }
.nav-lang a.active { background: var(--grad); color: var(--on-accent); box-shadow: 0 6px 16px rgba(255, 107, 61, .35); }
@media (max-width: 900px) {
  .nav-inner { gap: 10px; }
  .nav-lang { margin-left: auto; }
}
@media (max-width: 480px) {
  .nav-logo img { height: 36px; }
  .nav-lang a { min-width: 32px; height: 28px; padding: 0 7px; font-size: 12px; }
  .nav-inner > .btn-sm { height: 38px; padding: 0 14px; font-size: 13px; }
}
.nav-cta { white-space: nowrap; }
.nav-cta-short { display: none; }
@media (max-width: 420px) {
  .nav-cta-long { display: none; }
  .nav-cta-short { display: inline; }
}
.grad.fx-w { padding-bottom: .14em; margin-bottom: -.14em; }
