:root {
  --violet: #6b3cc6;
  --violet-deep: #3b1578;
  --bg: #fdfbff;
  --white: #fff;
  --shadow: 0 20px 40px rgba(107, 60, 198, 0.25);
  --blur: blur(12px);
  --radius: 18px;
  --gradient: linear-gradient(135deg, var(--violet), var(--violet-deep));

  /* celestial palette */
  --halo-1: rgba(155, 93, 229, 0.24);
  --halo-2: rgba(91, 46, 166, 0.22);
  --halo-3: rgba(221, 182, 255, 0.22);
  --star: rgba(255, 255, 255, 0.6);
}

* { box-sizing: border-box; margin: 0; padding: 0; }
html:focus-within { scroll-behavior: smooth; }
body {
  font-family: "Inter", system-ui, -apple-system, Segoe UI, Roboto, "Noto Sans", "Helvetica Neue", Arial, sans-serif;
  color: #1b133e;
  background: var(--bg);
  line-height: 1.7;
  overflow-x: hidden;
}

/* --- NAV --- */
.site-header {
  backdrop-filter: saturate(180%) blur(16px);
  background: rgba(255,255,255,.8);
  box-shadow: var(--shadow);
  position: sticky; top:0; z-index:100;
}
.nav {
  display:flex;justify-content:space-between;align-items:center;
  padding:1rem 1.5rem;max-width:1200px;margin:0 auto;
}
.brand {display:flex;align-items:center;gap:.75rem;text-decoration:none;}
.brand__logo {width:42px;height:42px;border-radius:50%;box-shadow:0 0 12px rgba(107,60,198,.45);}
.brand__text {font-weight:700;font-size:1.1rem;background:var(--gradient);-webkit-background-clip:text;color:transparent;}

/* --- Language Picker (futuristic glass pill) --- */
.lang-selector {
  position:relative;
  background:rgba(255,255,255,.45);
  backdrop-filter:blur(12px) saturate(120%);
  border:1px solid rgba(107,60,198,.25);
  border-radius:999px;
  padding:.55rem 1rem;
  cursor:pointer;
  display:flex;align-items:center;gap:.6rem;
  box-shadow: inset 0 0 12px rgba(107,60,198,.18), 0 10px 24px rgba(107,60,198,.18);
  transition:transform .2s ease, box-shadow .25s ease, background .25s ease;
}
.lang-selector:hover { background:rgba(255,255,255,.65); box-shadow: inset 0 0 14px rgba(107,60,198,.22), 0 16px 36px rgba(107,60,198,.26); }
.lang-selector:active { transform: translateY(1px); }
.lang-selector .globe {
  width:16px;height:16px;border-radius:50%;
  background: radial-gradient(circle at 30% 30%, var(--violet) 0%, var(--violet-deep) 100%);
  box-shadow: 0 0 6px rgba(107,60,198,.6), inset 0 0 6px rgba(255,255,255,.35);
}

.lang-menu {
  position:absolute;top:100%;right:0;margin-top:.6rem;
  background: rgba(255,255,255,.82);
  backdrop-filter: blur(16px);
  border:1px solid rgba(107,60,198,.25);
  border-radius:16px;
  list-style:none;padding:.5rem;width:200px;
  box-shadow: 0 24px 60px rgba(107,60,198,.28);
  transform-origin: top right;
  transform: perspective(600px) rotateX(-12deg) translateY(-8px);
  opacity:0; pointer-events:none;
  transition: transform .28s cubic-bezier(.22,.61,.36,1), opacity .22s ease;
  z-index: 120;
}
.lang-menu[data-open="true"] {
  transform: perspective(600px) rotateX(0) translateY(0);
  opacity:1; pointer-events:auto;
}
.lang-menu li {
  padding:.6rem .8rem;border-radius:12px;cursor:pointer;font-size:.96rem;
  transition: background .18s ease, color .18s ease, transform .18s ease;
}
.lang-menu li:hover {
  background: var(--gradient); color:#fff; transform: translateX(2px);
}

/* --- HERO (Celestial animated background) --- */
.hero {
  position: relative;
  padding: 7rem 1rem 5.5rem;
  text-align: center;
  background:
    linear-gradient(180deg, #ffffff 0%, #f5f0ff 100%);
  overflow: hidden;
}

/* starfield */
.hero::before {
  content: "";
  position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background-image:
    radial-gradient(1px 1px at 10% 20%, var(--star) 20%, transparent 22%),
    radial-gradient(1px 1px at 30% 5%, var(--star) 20%, transparent 22%),
    radial-gradient(1px 1px at 55% 28%, var(--star) 20%, transparent 22%),
    radial-gradient(1px 1px at 70% 12%, var(--star) 20%, transparent 22%),
    radial-gradient(1px 1px at 85% 30%, var(--star) 20%, transparent 22%),
    radial-gradient(1px 1px at 15% 75%, var(--star) 20%, transparent 22%),
    radial-gradient(1px 1px at 42% 82%, var(--star) 20%, transparent 22%),
    radial-gradient(1px 1px at 68% 70%, var(--star) 20%, transparent 22%),
    radial-gradient(1px 1px at 90% 60%, var(--star) 20%, transparent 22%);
  opacity: .45;
  filter: blur(.2px);
}

/* animated nebula & aurora, uses your existing .hero__aura div */
.hero__aura {
  position: absolute; inset: -20% -20% -10% -20%; z-index: 0; pointer-events: none;
  filter: blur(28px) saturate(110%);
  background:
    radial-gradient(600px 320px at 20% 15%, var(--halo-1), transparent 60%),
    radial-gradient(500px 300px at 80% 10%, var(--halo-2), transparent 60%),
    radial-gradient(700px 360px at 50% 80%, var(--halo-3), transparent 65%);
  animation: drift 22s ease-in-out infinite;
}
.hero__aura::before,
.hero__aura::after {
  content:""; position:absolute; inset: -10% -10% -10% -10%;
  background:
    conic-gradient(from 10deg at 30% 30%, rgba(221,182,255,.25), transparent 60%),
    conic-gradient(from 200deg at 70% 40%, rgba(155,93,229,.18), transparent 55%);
  mix-blend-mode: screen;
  animation: float 26s ease-in-out infinite;
}
.hero__aura::after { animation-duration: 34s; animation-direction: reverse; opacity: .9; }

@keyframes drift {
  0%   { transform: translate3d(-2%, 0, 0) scale(1.02); }
  50%  { transform: translate3d(2%, -1%, 0) scale(1.06); }
  100% { transform: translate3d(-2%, 0, 0) scale(1.02); }
}
@keyframes float {
  0%   { transform: rotate(0deg) translate3d(0,0,0) scale(1); }
  50%  { transform: rotate(8deg) translate3d(0,-1%,0) scale(1.04); }
  100% { transform: rotate(0deg) translate3d(0,0,0) scale(1); }
}

.hero .container { position: relative; z-index: 1; }
.hero__title {
  font-size: clamp(2rem,4vw,3.2rem);
  background: var(--gradient);
  -webkit-background-clip: text; color: transparent;
  margin-bottom: 1rem;
  text-shadow: 0 1px 0 rgba(255,255,255,.35);
}
.hero__subtitle {
  color:#342b60; max-width: 680px; margin: 0 auto 2rem;
}
.hero__cta { display:flex; justify-content:center; gap:1rem; flex-wrap:wrap; }

/* Buttons */
.btn {
  border:none; cursor:pointer;
  padding:.9rem 1.6rem; border-radius:999px; font-weight:600;
  transition:transform .15s ease, box-shadow .3s ease, background .2s ease;
}
.btn:active { transform: scale(.98); }
.btn--primary {
  background: var(--gradient); color:#fff; box-shadow: var(--shadow);
}
.btn--primary:hover { box-shadow: 0 14px 40px rgba(107,60,198,.4); }
.btn--outline { border:2px solid var(--violet); color:#3b1578; background:transparent; }
.btn--outline:hover { background: rgba(107,60,198,.08); }
.btn--muted { background:#f1ecff;color:#6150a2;border:none;cursor:default; }

/* Sections / grids */
.section { padding: 5rem 1rem; text-align: center; }
.section--tinted { background:#f8f6ff; }
.section--elev { background: var(--white); box-shadow: var(--shadow); border-radius: var(--radius); }
.container { max-width: 1100px; margin: 0 auto; }
.grid-3 { display:grid; gap:1.5rem; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); }

/* Cards */
.cards { display:grid; gap:2rem; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); margin-top:2rem; }
.card {
  background: rgba(255,255,255,.6);
  backdrop-filter: blur(12px);
  border: 1px solid rgba(107,60,198,.15);
  border-radius: var(--radius);
  padding: 2rem;
  box-shadow: var(--shadow);
  display: flex; flex-direction: column; align-items: center; gap: 1rem;
  transition: transform .3s ease, box-shadow .3s ease;
}
.card:hover { transform: translateY(-6px); box-shadow: 0 25px 50px rgba(107,60,198,.25); }
.card img { width: 120px; height: 120px; border-radius: 12px; }

/* Values */
.value { background:#fff; padding:2rem; border-radius: var(--radius); box-shadow: var(--shadow); }
.value h3 { background: var(--gradient); -webkit-background-clip: text; color: transparent; margin-bottom:.5rem; }

/* Contact */
.contact-section { background: linear-gradient(180deg,#fff,#f9f6ff); }
.contact-section .btn { margin-top: 1.5rem; }

/* Footer */
.site-footer { padding:2rem 1rem; background:#fff; border-top:1px solid #eee; text-align:center; }
.to-top { color: var(--violet); text-decoration:none; font-weight:600; }

/* Accessibility: reduced motion */
@media (prefers-reduced-motion: reduce) {
  html:focus-within { scroll-behavior: auto; }
  .hero__aura, .hero__aura::before, .hero__aura::after { animation: none !important; }
}
