/* Home page composition. The existing RoPay color tokens remain the source of truth. */

/* The hero headline keeps its original Helvetica / Playfair pairing. */
#heroTitle { font-family: 'RoPay Helvetica', 'Arial Narrow', Arial, sans-serif; }
#heroTitle .hero-serif-highlight { font-family: var(--font-serif); }

@media (min-width: 1121px) {
  .navbar-wrapper,
  .navbar-wrapper.scrolled {
    padding: 14px 24px 0;
  }

  .navbar,
  .navbar.scrolled {
    max-width: 1180px;
    height: 64px;
    padding: 7px 18px;
    border-radius: 14px;
    border: 1px solid rgba(255, 255, 255, .12);
    background: rgba(9, 13, 25, .9);
    backdrop-filter: blur(20px) saturate(145%);
    -webkit-backdrop-filter: blur(20px) saturate(145%);
    box-shadow: 0 14px 38px rgba(0, 0, 0, .28), inset 0 1px rgba(255, 255, 255, .07);
    transition: width 380ms var(--ease-out),
                background-color 240ms var(--ease-out),
                box-shadow 240ms var(--ease-out),
                border-color 240ms var(--ease-out);
    will-change: auto;
  }

  .navbar { width: min(100%, 1000px); }

  .navbar.scrolled {
    width: min(100%, 1180px);
    background: rgba(9, 13, 25, .97);
    box-shadow: 0 18px 48px rgba(0, 0, 0, .42), inset 0 1px rgba(255, 255, 255, .09);
  }

  .navbar .nav-container.navbar-inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    align-items: center;
    justify-content: initial;
    gap: 12px;
    min-height: 0;
  }

  .navbar .nav-logo { justify-self: start; }
  .navbar .nav-links { justify-self: center; }
  .navbar .nav-actions { justify-self: end; }
  .navbar .nav-socials { display: none; }
  .navbar .nav-link { padding: 8px 11px; font-size: 13px; }
}

.hero {
  min-height: 100dvh;
  padding: 156px 0 112px;
}

.hero-content {
  width: 100%;
  max-width: 1160px;
}

.hero-bg-banner { opacity: .47; }
.aura-background-container { opacity: .56; }

.hero-showcase {
  position: relative;
  z-index: 2;
  width: min(100%, 1030px);
  margin: 66px auto 0;
  opacity: 0;
  transform: translateY(36px) scale(.97);
  transition: opacity 850ms var(--ease-out), transform 850ms var(--ease-out);
}

.hero-showcase.visible {
  opacity: 1;
  transform: translateY(0) scale(1);
}

.hero-showcase::before {
  content: '';
  position: absolute;
  inset: 18% 13% -8%;
  z-index: -1;
  border-radius: 50%;
  background: radial-gradient(ellipse, rgba(86, 117, 237, .24), transparent 70%);
  filter: blur(36px);
  pointer-events: none;
}

.showcase-shell {
  overflow: hidden;
  border: 1px solid rgba(147, 167, 255, .24);
  border-radius: 24px;
  background: #080c16;
  box-shadow: 0 46px 110px rgba(0, 0, 0, .58), inset 0 1px rgba(255, 255, 255, .08);
}

.showcase-toolbar {
  height: 54px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 0 24px;
  border-bottom: 1px solid rgba(147, 167, 255, .13);
  background: rgba(255, 255, 255, .025);
}

.showcase-brand,
.showcase-live {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  white-space: nowrap;
}

.showcase-brand {
  color: #f4f6fa;
  font-size: 14px;
  font-weight: 700;
}

.showcase-brand img { object-fit: contain; }

.showcase-brand > span {
  margin-left: 6px;
  padding-left: 14px;
  border-left: 1px solid rgba(255, 255, 255, .14);
  color: #8e98aa;
  font-size: 12px;
  font-weight: 500;
}

.showcase-live {
  color: #a5adba;
  font-size: 12px;
}

.showcase-live > span:first-child {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--green);
  box-shadow: 0 0 10px rgba(34, 197, 94, .6);
}

.showcase-body {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  min-height: 490px;
}

.showcase-copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 64px 36px 38px 54px;
  text-align: left;
}

.showcase-eyebrow {
  margin-bottom: 22px;
  color: var(--purple-400);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .15em;
}

.showcase-copy h2 {
  max-width: 420px;
  margin: 0 0 18px;
  color: #f4f6fa;
  font: 600 clamp(32px, 3.15vw, 44px)/1.08 var(--font-display);
  letter-spacing: -.045em;
}

.showcase-copy p {
  max-width: 370px;
  margin: 0 0 32px;
  color: #a5adba;
  font-size: 15px;
  line-height: 1.65;
}

.showcase-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.showcase-tab {
  min-height: 40px;
  padding: 0 15px;
  border: 1px solid rgba(147, 167, 255, .2);
  border-radius: 9999px;
  background: rgba(255, 255, 255, .03);
  color: #a5adba;
  font: 600 12px var(--font);
  cursor: pointer;
  transition: color 180ms var(--ease-out), background-color 180ms var(--ease-out), border-color 180ms var(--ease-out), transform 160ms var(--ease-out);
}

.showcase-tab.is-active {
  border-color: rgba(147, 167, 255, .48);
  background: rgba(86, 117, 237, .22);
  color: #f4f6fa;
}

.showcase-tab:focus-visible {
  outline: 2px solid var(--purple-400);
  outline-offset: 3px;
}

.showcase-caption {
  margin-top: auto;
  padding-top: 32px;
  color: #788396;
  font-size: 12px;
}

.showcase-media {
  position: relative;
  display: grid;
  place-items: center;
  min-width: 0;
  overflow: hidden;
  isolation: isolate;
  background: radial-gradient(ellipse at 50% 54%, rgba(86, 117, 237, .2), rgba(86, 117, 237, .045) 45%, transparent 76%);
}

.showcase-screen-glow {
  position: absolute;
  width: 380px;
  height: 380px;
  border-radius: 50%;
  background: rgba(86, 117, 237, .19);
  filter: blur(80px);
}

.showcase-screen-frame {
  position: relative;
  z-index: 2;
  width: min(300px, 70%);
  overflow: hidden;
  border: 1px solid rgba(189, 201, 255, .24);
  border-radius: 22px;
  background: #080a12;
  box-shadow: 0 38px 80px rgba(0, 0, 0, .64), 0 0 42px rgba(86, 117, 237, .15);
  transform: rotate(-3deg);
}

.showcase-screen-frame img {
  display: block;
  width: 100%;
  height: auto;
}

.showcase-orbit {
  position: absolute;
  z-index: 1;
  width: 470px;
  height: 470px;
  border: 1px solid rgba(147, 167, 255, .11);
  border-radius: 50%;
  pointer-events: none;
}

.showcase-orbit-two {
  width: 620px;
  height: 620px;
  border-color: rgba(147, 167, 255, .06);
}

.hero-stats-strip { margin-top: 34px; }

.install-affiliate-disclosure {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  width: min(100%, 770px);
  margin: 26px auto 0;
  padding: 16px 18px;
  border: 1px solid rgba(147, 167, 255, .13);
  border-radius: 12px;
  background: rgba(9, 13, 25, .72);
  color: #8e98aa;
  text-align: left;
}

.install-affiliate-icon {
  display: inline-grid;
  flex: 0 0 18px;
  place-items: center;
  width: 18px;
  height: 18px;
  margin-top: 2px;
  border: 1px solid rgba(147, 167, 255, .4);
  border-radius: 50%;
  color: var(--purple-400);
  font: 700 11px var(--font);
}

.install-affiliate-disclosure strong {
  display: block;
  margin-bottom: 3px;
  color: #c7ceda;
  font-size: 12px;
  font-weight: 600;
}

.install-affiliate-disclosure p {
  margin: 0;
  color: #8e98aa;
  font-size: 12px;
  line-height: 1.55;
}

@media (hover: hover) and (pointer: fine) {
  .showcase-tab:hover { color: #fff; background: rgba(86, 117, 237, .16); }
  .showcase-tab:active { transform: scale(.97); }
}

@media (max-width: 820px) {
  .hero { padding-top: 130px; }
  .hero-showcase { width: min(100%, 700px); margin-top: 52px; }
  .showcase-body { grid-template-columns: 1fr; }
  .showcase-copy { padding: 36px 32px 28px; }
  .showcase-copy h2 { max-width: 560px; }
  .showcase-caption { padding-top: 22px; }
  .showcase-media { height: 395px; }
  .showcase-screen-frame { width: 230px; }
}

@media (max-width: 540px) {
  .hero { padding: 126px 0 96px; }
  .hero-showcase { margin-top: 42px; }
  .showcase-shell { border-radius: 18px; }
  .showcase-toolbar { height: 48px; padding-inline: 16px; }
  .showcase-brand { font-size: 13px; }
  .showcase-brand > span { display: none; }
  .showcase-live { font-size: 10px; }
  .showcase-copy { padding: 30px 22px 24px; }
  .showcase-copy h2 { font-size: 30px; }
  .showcase-copy p { font-size: 14px; }
  .showcase-media { height: 350px; }
  .showcase-screen-frame { width: 206px; }
  .install-affiliate-disclosure { padding: 14px; }
}

@media (prefers-reduced-motion: reduce) {
  .hero-showcase,
  .hero-showcase.visible { opacity: 1; transform: none; transition: none; }
}

/* AIWork-inspired page rhythm, adapted to RoPay's existing dark blue palette. */
body::before {
  opacity: 1;
  background-image:
    linear-gradient(rgba(147, 167, 255, .045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(147, 167, 255, .045) 1px, transparent 1px);
  background-size: 78px 78px;
  mask-image: none;
  -webkit-mask-image: none;
}

#particles-canvas { opacity: .09; }

.hero {
  padding-bottom: 74px;
  background: #060910;
}

.hero-bg-banner { opacity: 0; }
.aura-background-container { opacity: .18; }
.hero-light-rays { opacity: .22; }
.hero::before, .hero::after { opacity: .2; }
.hero-vignette {
  background-image:
    radial-gradient(ellipse 52% 30% at 50% 13%, rgba(72, 105, 236, .2), transparent 78%),
    linear-gradient(180deg, transparent 0%, rgba(6, 9, 16, .1) 35%, #060910 93%),
    linear-gradient(rgba(147, 167, 255, .07) 1px, transparent 1px),
    linear-gradient(90deg, rgba(147, 167, 255, .07) 1px, transparent 1px);
  background-size: auto, auto, 78px 78px, 78px 78px;
}

.features,
.how-it-works,
.security,
.faq,
.community,
.cta-banner {
  background: transparent;
}

.features {
  padding: 30px 0 100px;
}

.features::before,
.security::before,
.faq::before,
.community::before { display: none; }

.features > .container {
  width: calc(100% - 48px);
  max-width: 1220px;
  padding: 72px 58px 58px;
  border: 1px solid rgba(147, 167, 255, .16);
  border-radius: 28px;
  background: linear-gradient(180deg, rgba(14, 19, 31, .94), rgba(7, 11, 19, .95));
  box-shadow: inset 0 1px rgba(255, 255, 255, .055), 0 32px 100px rgba(0, 0, 0, .21);
}
.features > .container.animate-on-scroll { opacity: .58; transform: translateY(18px); filter: blur(2px); transition: opacity 950ms var(--ease-out), transform 950ms var(--ease-out), filter 950ms var(--ease-out); }
.features > .container.animate-on-scroll.visible { opacity: 1; transform: translateY(0); filter: blur(0); }

.features .section-header {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
  column-gap: clamp(40px, 8vw, 130px);
  align-items: center;
  margin-bottom: 50px;
  text-align: left;
}

.features .section-tag { grid-column: 1 / -1; }
.features .section-title { max-width: 530px; margin: 0; font-size: clamp(39px, 4vw, 56px); }
.features .section-desc { max-width: 430px; margin: 0; }

/* Fix the legacy 12-column spans inside the newer 3-column bento grid. */
.features-grid.bento-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.features-grid.bento-grid > .feature-card { grid-column: auto; }
.features-grid.bento-grid > .bento-span-2 { grid-column: span 2; }
.features-grid.bento-grid > .bento-span-3 { grid-column: span 3; }

.features-grid .feature-card {
  min-width: 0;
  border-radius: 17px;
  background: linear-gradient(160deg, rgba(22, 28, 43, .92), rgba(13, 18, 29, .92));
  border-color: rgba(147, 167, 255, .1);
  box-shadow: inset 0 1px rgba(255, 255, 255, .045);
  transform-style: flat;
  will-change: auto;
}

.feature-title,
.step-title,
.security-item h4,
.discord-info-card h3,
.footer-heading { font-family: var(--font-display); }

.feature-title { font-size: clamp(20px, 2vw, 25px); font-weight: 600; letter-spacing: -.035em; }
.feature-desc { color: #a3adbe; }

.border-beam::after { animation: none; opacity: .23; }

.how-it-works,
.security,
.community { padding-block: 110px; }

.how-it-works .section-header,
.community .section-header { max-width: 770px; margin-inline: auto; }

.security-item,
.step-card,
.discord-info-card {
  border-color: rgba(147, 167, 255, .11);
  box-shadow: inset 0 1px rgba(255, 255, 255, .04);
}

/* The reference's broad blue call-to-action and simple four-column footer. */
.cta-banner {
  padding: 62px 0 76px;
}

.cta-banner > .container {
  max-width: 1280px;
  padding-inline: 30px;
}

.cta-card {
  min-height: 440px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 84px 36px;
  border: 1px solid rgba(190, 205, 255, .32);
  border-radius: 26px;
  background:
    linear-gradient(rgba(255, 255, 255, .075) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, .075) 1px, transparent 1px),
    linear-gradient(155deg, #314fc4 4%, #5675ed 55%, #8298fa 100%);
  background-size: 78px 78px, 78px 78px, auto;
  box-shadow: inset 0 1px rgba(255, 255, 255, .26), 0 35px 90px rgba(28, 50, 150, .24);
}

.cta-card::before { display: none; }
.cta-glow { display: none; }
.cta-title { max-width: 760px; font-size: clamp(42px, 5vw, 65px); line-height: 1.03; letter-spacing: -.05em; font-weight: 600; }
.cta-desc { max-width: 650px; color: #eef2ff; font-size: 16px; }
.cta-actions .btn-outline { background: rgba(9, 18, 57, .16); border-color: rgba(255, 255, 255, .48); color: #fff; }

.footer {
  min-height: 0;
  padding: 24px 0 32px;
  border-top: 0;
  background: #060910;
}

.footer::before {
  background-image:
    linear-gradient(rgba(147, 167, 255, .035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(147, 167, 255, .035) 1px, transparent 1px);
  background-size: 78px 78px;
  opacity: .65;
}

.footer-wordmark { display: none; }
.footer-shell { max-width: 1280px; padding-inline: 30px; }
.footer-grid {
  grid-template-columns: minmax(290px, 1.55fr) repeat(3, minmax(130px, .55fr));
  gap: clamp(32px, 5vw, 75px);
  align-items: start;
  margin-bottom: 0;
  padding: 30px 0 88px;
}
.footer-brand { max-width: 350px; }
.footer-logo { margin-bottom: 25px; }
.footer-logo-img { width: 42px; height: 42px; }
.footer-tagline { max-width: 300px; color: #9ca5b5; font-size: 15px; }
.footer-heading { margin-bottom: 22px; color: #f5f7fe; font-size: 20px; font-weight: 550; letter-spacing: -.025em; }
.footer-links { gap: 14px; }
.footer-links a { color: #a3abba; font-size: 14px; }
.footer-social { margin-top: 30px; }
.social-link { width: 38px; height: 38px; border-radius: 50%; }
.footer-bottom { padding-top: 22px; }
.footer-copyright, .footer-status { color: #a1a9b6; font-size: 12px; }
.footer-disclaimer { max-width: 780px; color: #727d91; font-size: 11px; }

/* Community uses the same rounded product panels and icon language. */
.community .section-header { margin-bottom: 54px; }
.discord-section {
  grid-template-columns: minmax(0, 1.06fr) minmax(0, .94fr);
  gap: 18px;
  align-items: stretch;
}
.discord-widget-wrap {
  min-width: 0;
  min-height: 0;
  border: 1px solid rgba(147, 167, 255, .18);
  border-radius: 22px;
  background: #101522;
  box-shadow: inset 0 1px rgba(255, 255, 255, .06), 0 26px 70px rgba(0, 0, 0, .25);
}
.community-widget-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  height: 58px;
  padding: 0 20px;
  border-bottom: 1px solid rgba(147, 167, 255, .15);
  color: #f4f6fc;
}
.community-widget-brand,
.community-widget-live { display: inline-flex; align-items: center; gap: 8px; }
.community-widget-brand { font: 650 16px var(--font-display); }
.community-widget-brand img { object-fit: contain; }
.community-widget-live { color: #aeb8c9; font-size: 11px; white-space: nowrap; }
.community-widget-live > span:first-child { width: 7px; height: 7px; border-radius: 50%; background: var(--green); box-shadow: 0 0 10px rgba(34, 197, 94, .4); }
.discord-iframe { height: 442px; min-height: 442px; border-radius: 0 0 21px 21px; }
.discord-info { gap: 14px; }
.discord-info-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  min-height: 348px;
  padding: 32px;
  border: 1px solid rgba(147, 167, 255, .17);
  border-radius: 22px;
  background: radial-gradient(circle at 95% 0, rgba(86, 117, 237, .14), transparent 38%), linear-gradient(155deg, #12192a, #0b101b);
  box-shadow: inset 0 1px rgba(255, 255, 255, .055);
}
.discord-icon-wrap { width: 52px; height: 52px; margin-bottom: 20px; border-radius: 14px; }
.community-card-eyebrow { margin-bottom: 10px; color: var(--purple-400); font-size: 10px; font-weight: 700; letter-spacing: .16em; }
.discord-info-card h3 { margin-bottom: 10px; font-size: 29px; font-weight: 600; letter-spacing: -.04em; }
.discord-info-card p { max-width: 430px; margin-bottom: 25px; color: #aab4c4; font-size: 14px; line-height: 1.65; }
#communityCardLink {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  gap: 10px;
  width: 100%;
  min-height: 50px;
  margin-top: auto;
  padding: 5px 6px 5px 16px;
  border: 1px solid rgba(186, 203, 255, .42);
  border-radius: 999px;
  background: linear-gradient(105deg, #4f6ee9, #7791f6);
  color: #fff;
  font: 650 13px var(--font);
  text-decoration: none;
  box-shadow: inset 0 1px rgba(255, 255, 255, .18), 0 12px 28px rgba(45, 76, 200, .19);
  transition: transform 180ms var(--ease-out), box-shadow 180ms var(--ease-out), filter 180ms var(--ease-out);
}
#communityCardLink::before { width: 21px; height: 21px; }
#communityCardLink::after {
  content: '↗';
  display: grid;
  place-items: center;
  flex: 0 0 38px;
  width: 38px;
  height: 38px;
  margin-left: auto;
  border-radius: 50%;
  background: #fff;
  color: #3150be;
  font-size: 20px;
  line-height: 1;
}
.discord-perks { gap: 10px; }
.perk-item {
  min-height: 68px;
  gap: 10px;
  padding: 10px 12px;
  border: 1px solid rgba(147, 167, 255, .15);
  border-radius: 15px;
  background: rgba(16, 22, 35, .78);
  color: #c5cede;
  font-size: 12px;
  line-height: 1.3;
}
.perk-icon { display: grid; place-items: center; flex: 0 0 34px; width: 34px; height: 34px; border: 1px solid rgba(147, 167, 255, .24); border-radius: 10px; background: rgba(102, 130, 255, .11); color: var(--purple-400); }
.perk-icon svg { width: 18px; height: 18px; }

@media (hover: hover) and (pointer: fine) {
  #communityCardLink:hover { transform: translateY(-2px); box-shadow: inset 0 1px rgba(255, 255, 255, .2), 0 18px 38px rgba(45, 76, 200, .28); filter: brightness(1.06); }
  .perk-item:hover { transform: translateY(-2px); border-color: rgba(147, 167, 255, .28); background: rgba(22, 30, 47, .9); }
}

@media (max-width: 820px) {
  .discord-section { grid-template-columns: 1fr; max-width: 650px; margin-inline: auto; }
  .discord-info-card { min-height: 0; }
}

@media (max-width: 540px) {
  .community .section-header { margin-bottom: 34px; }
  .community-widget-head { height: 52px; padding-inline: 16px; }
  .discord-iframe { height: 410px; min-height: 410px; }
  .discord-info-card { padding: 26px 22px; }
  .discord-perks { grid-template-columns: 1fr 1fr; gap: 8px; }
  .perk-item { min-height: 72px; padding: 9px; font-size: 11px; }
  .perk-icon { flex-basis: 30px; width: 30px; height: 30px; }
}

/* Soft transitions keep the grid and blue light continuous between sections. */
.hero {
  background: linear-gradient(180deg, #060910 0%, #060910 52%, rgba(6, 9, 16, .68) 78%, rgba(6, 9, 16, 0) 100%);
}
.hero-vignette {
  mask-image: linear-gradient(180deg, #000 0%, #000 69%, transparent 100%);
  -webkit-mask-image: linear-gradient(180deg, #000 0%, #000 69%, transparent 100%);
}
.features { background: radial-gradient(ellipse 68% 45% at 50% 48%, rgba(64, 83, 165, .075), transparent 100%); }
.how-it-works { background: radial-gradient(ellipse 68% 52% at 50% 46%, rgba(42, 62, 134, .09), transparent 100%); }
.security { background: radial-gradient(ellipse 70% 60% at 64% 46%, rgba(48, 69, 148, .09), transparent 100%); }
.faq { background: radial-gradient(ellipse 70% 62% at 50% 45%, rgba(48, 69, 148, .065), transparent 100%); }
.community { background: radial-gradient(ellipse 72% 65% at 50% 55%, rgba(51, 72, 160, .085), transparent 100%); }
.cta-banner { background: linear-gradient(180deg, transparent, #060910 100%); }

.animate-on-scroll {
  transform: translateY(22px);
  transition: opacity 860ms cubic-bezier(.22, 1, .36, 1), transform 860ms cubic-bezier(.22, 1, .36, 1);
}
.animate-on-scroll.visible { transform: translateY(0); }

/* Port of the supplied Framer AnimatedAccordion interaction and geometry. */
.faq-list.animated-accordion {
  position: relative;
  gap: 16px;
}
.faq-list.animated-accordion::before {
  content: '';
  position: absolute;
  top: 40px;
  bottom: 40px;
  left: 23px;
  width: 2px;
  background: linear-gradient(180deg, transparent, rgba(147, 167, 255, .18), transparent);
  pointer-events: none;
}
.animated-accordion .faq-item {
  display: flex;
  align-items: flex-start;
  overflow: visible;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.animated-accordion .faq-item:last-child { border: 0; }
.animated-accordion .faq-item.active { border: 0; background: transparent; }
.animated-accordion .faq-rail { position: relative; z-index: 1; flex: 0 0 48px; margin: 2px 16px 0 0; }
.animated-accordion .faq-rail::after {
  content: '';
  position: absolute;
  top: 48px;
  bottom: -20px;
  left: 23px;
  width: 2px;
  background: linear-gradient(180deg, var(--purple-500), transparent);
  opacity: 0;
  transform: scaleY(0);
  transform-origin: top;
  transition: opacity 500ms, transform 500ms cubic-bezier(.4, 0, .2, 1);
  pointer-events: none;
}
.animated-accordion .faq-item.active .faq-rail::after { opacity: 1; transform: scaleY(1); }
.animated-accordion .faq-toggle {
  position: relative;
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  padding: 0;
  border: 1px solid rgba(147, 167, 255, .22);
  border-radius: 50%;
  background: rgba(255, 255, 255, .045);
  color: #8897b6;
  cursor: pointer;
  transition: color 300ms, border-color 500ms, box-shadow 500ms, transform 500ms;
}
.animated-accordion .faq-item.active .faq-toggle {
  color: var(--purple-400);
  border-color: var(--purple-500);
  box-shadow: 0 0 20px rgba(102, 130, 255, .22);
  transform: scale(1.1);
}
.animated-accordion .faq-orbit {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  transition: transform 500ms cubic-bezier(.68, -.55, .265, 1.55);
}
.animated-accordion .faq-item.active .faq-orbit { transform: rotate(180deg); }
.animated-accordion .faq-plus { position: relative; width: 12px; height: 12px; transition: transform 500ms; }
.animated-accordion .faq-plus::before,
.animated-accordion .faq-plus::after {
  content: '';
  position: absolute;
  top: 5px;
  left: 0;
  width: 12px;
  height: 2px;
  border-radius: 999px;
  background: currentColor;
  transition: transform 500ms, opacity 500ms;
}
.animated-accordion .faq-plus::after { transform: rotate(90deg); }
.animated-accordion .faq-item.active .faq-plus { transform: rotate(90deg) scale(1.1); }
.animated-accordion .faq-item.active .faq-plus::after { opacity: 0; transform: rotate(90deg) scale(0); }
.animated-accordion .faq-panel {
  flex: 1;
  min-width: 0;
  transition: transform 500ms cubic-bezier(.4, 0, .2, 1);
}
.animated-accordion .faq-item.active .faq-panel { transform: translateX(4px); }
.animated-accordion .faq-question {
  position: relative;
  display: block;
  width: 100%;
  min-height: 70px;
  padding: 19px 20px;
  overflow: hidden;
  border: 1px solid rgba(147, 167, 255, .18);
  border-radius: 16px;
  background: rgba(255, 255, 255, .025);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  color: #d7ddeb;
  font: 600 16px/1.45 var(--font-display);
  letter-spacing: -.02em;
  text-align: left;
  cursor: pointer;
  transition: color 300ms, background-color 500ms, border-color 500ms, border-radius 500ms;
}
.animated-accordion .faq-question::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, var(--purple-500), transparent);
  opacity: 0;
  transition: opacity 150ms;
  pointer-events: none;
}
.animated-accordion .faq-question > span { position: relative; z-index: 1; }
.animated-accordion .faq-item.active .faq-question {
  color: #fff;
  border-color: rgba(147, 167, 255, .35);
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
  background: rgba(102, 130, 255, .09);
}
.animated-accordion .faq-item.active .faq-question::before { opacity: .1; }
.animated-accordion .faq-answer,
.animated-accordion .faq-item.active .faq-answer {
  display: grid;
  grid-template-rows: 0fr;
  height: auto;
  max-height: none;
  padding: 0;
  overflow: visible;
  opacity: 0;
  transition: grid-template-rows 500ms cubic-bezier(.4, 0, .2, 1), opacity 500ms cubic-bezier(.4, 0, .2, 1);
}
.animated-accordion .faq-item.active .faq-answer { grid-template-rows: 1fr; opacity: 1; }
.animated-accordion .faq-answer-clip { min-height: 0; overflow: hidden; }
.animated-accordion .faq-answer-inner {
  position: relative;
  padding: 20px;
  border: 1px solid rgba(147, 167, 255, .16);
  border-top: 0;
  border-radius: 0 0 16px 16px;
  background: rgba(255, 255, 255, .025);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
.animated-accordion .faq-answer-inner::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(147, 167, 255, .4), transparent);
}
.animated-accordion .faq-answer p { margin: 0; padding: 0; color: #a6b0c2; font-size: 14px; line-height: 1.65; }
.animated-accordion .faq-question:focus-visible,
.animated-accordion .faq-toggle:focus-visible { outline: 2px solid var(--purple-400); outline-offset: 3px; }

@media (hover: hover) and (pointer: fine) {
  .animated-accordion .faq-item:hover .faq-panel { transform: translateX(2px); }
  .animated-accordion .faq-item.active:hover .faq-panel { transform: translateX(4px); }
  .animated-accordion .faq-item:hover .faq-question { background: rgba(255, 255, 255, .05); }
  .animated-accordion .faq-item:hover .faq-question::before { opacity: .05; }
  .animated-accordion .faq-item:hover .faq-toggle { transform: scale(1.05); }
  .animated-accordion .faq-item.active:hover .faq-toggle { transform: scale(1.1); }
}

@media (hover: hover) and (pointer: fine) {
  .features-grid .feature-card:hover { border-color: rgba(147, 167, 255, .25); box-shadow: inset 0 1px rgba(255, 255, 255, .07), 0 20px 50px rgba(0, 0, 0, .17); }
  .border-beam:hover::after { opacity: .65; }
  .footer-links a:hover { color: #fff; }
}

@media (max-width: 992px) {
  .features > .container { padding: 54px 32px 32px; }
  .features-grid.bento-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .features-grid.bento-grid > .bento-span-2,
  .features-grid.bento-grid > .bento-span-3 { grid-column: span 2; }
  .footer-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 38px; }
  .footer-brand { grid-column: 1 / -1; }
}

@media (max-width: 700px) {
  .navbar-wrapper,
  .navbar-wrapper.scrolled { padding: 12px 14px 0; }
  .navbar,
  .navbar.scrolled {
    top: 0;
    width: 100%;
    max-width: none;
    height: 60px;
    padding: 7px 14px;
    border: 1px solid rgba(147, 167, 255, .2);
    border-radius: 14px;
    background: rgba(9, 13, 25, .94);
    backdrop-filter: blur(18px) saturate(135%);
    -webkit-backdrop-filter: blur(18px) saturate(135%);
    box-shadow: 0 14px 36px rgba(0, 0, 0, .3), inset 0 1px rgba(255, 255, 255, .06);
  }
  .navbar .nav-container.navbar-inner { min-height: 0; gap: 8px; }
  .navbar .nav-logo-text { display: inline; font-size: 19px; }
  .navbar .nav-socials,
  .navbar .lang-select { display: none; }
  .navbar .nav-actions { width: auto; gap: 0; }
  .navbar .hamburger { width: 40px; height: 40px; padding: 9px; border-radius: 9px; }
  .mobile-menu { top: 83px; left: 14px; right: 14px; }
  .hero-vignette { background-size: auto, auto, 64px 64px, 64px 64px; }
  .hero-showcase { opacity: 1; transform: none; transition: none; }
  .features { padding-top: 20px; }
  .features > .container { width: calc(100% - 28px); padding: 40px 20px 20px; border-radius: 20px; }
  .features .section-header { display: block; margin-bottom: 32px; }
  .features .section-title { margin: 0 0 18px; font-size: clamp(34px, 9vw, 46px); }
  .features .section-desc { font-size: 15px; }
  .features-grid.bento-grid { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .features-grid.bento-grid > .bento-span-2,
  .features-grid.bento-grid > .bento-span-3 { grid-column: auto; }
  .features-grid .feature-card { padding: 24px; }
  .faq { padding-block: 90px; }
  .faq-list.animated-accordion::before { left: 20px; }
  .animated-accordion .faq-rail { flex-basis: 42px; margin-right: 12px; }
  .animated-accordion .faq-toggle { width: 42px; height: 42px; }
  .animated-accordion .faq-rail::after { top: 42px; left: 20px; }
  .animated-accordion .faq-question { min-height: 66px; padding: 17px 16px; font-size: 14px; }
  .animated-accordion .faq-answer-inner { padding: 17px 16px; }
  .how-it-works, .security, .community { padding-block: 80px; }
  .cta-banner { padding: 36px 0 58px; }
  .cta-banner > .container { padding-inline: 14px; }
  .cta-card { min-height: 0; padding: 64px 20px; border-radius: 20px; }
  .cta-title { font-size: clamp(36px, 9vw, 48px); }
  .cta-desc { font-size: 15px; }
  .footer { padding-top: 20px; }
  .footer-shell { padding-inline: 24px; }
  .footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 38px 25px; padding-bottom: 54px; }
  .footer-brand { grid-column: 1 / -1; }
  .footer-column:last-of-type { grid-column: auto; }
  .footer-heading { font-size: 18px; }
  .back-to-top { display: none; }
}

@media (max-width: 420px) {
  .footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .footer-column:last-of-type { grid-column: 1 / -1; }
}

@media (prefers-reduced-motion: reduce) {
  .border-beam::after { animation: none; }
  .animated-accordion .faq-answer,
  .animated-accordion .faq-question,
  .animated-accordion .faq-panel,
  .animated-accordion .faq-toggle,
  .animated-accordion .faq-orbit,
  .animated-accordion .faq-plus,
  .animated-accordion .faq-rail::after { transition: none; }
}
