/*
 * Base and the design system's shared primitives.
 *
 * Scoped under `body.rvf` so the Elementor kit stylesheet — which loads on
 * every request whatever theme is active, and still carries two retired
 * themes' rules — cannot reach in.
 *
 * The document-wide defaults are written with :where() so they carry almost no
 * specificity. Written the obvious way, `body.rvf a` is (0,1,2) and outranks
 * every single-class rule on a link, which is what painted an earlier build's
 * primary button cyan on cyan. A default should lose to anything more
 * specific, so it is written to lose.
 */

*,*::before,*::after{box-sizing:border-box}

body.rvf{
  margin:0;background:var(--canvas);color:var(--ink-1);
  font-family:var(--font);font-size:16px;line-height:1.5;
  overflow-x:clip;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
}
body.rvf img,body.rvf svg,body.rvf canvas{max-width:100%;display:block}

/*
 * `hidden` must actually hide.
 *
 * The UA sets `[hidden]{display:none}` at the lowest possible priority, so any
 * class that sets `display` beats it. Every success panel on this site is a
 * flex container that starts hidden — and each one was reserving its full
 * height while invisible, which pushed the launch hero 84px taller than the
 * design. This is the one !important in the stylesheet, and it earns it.
 */
body.rvf [hidden]{display:none!important}
body.rvf :where(h1,h2,h3,h4,p,figure,blockquote){margin:0}
:where(body.rvf) a{color:var(--cyan);text-decoration:none}
:where(body.rvf) a:hover{color:var(--ink-1)}
body.rvf input::placeholder,body.rvf textarea::placeholder{color:var(--ink-3)}
body.rvf :focus-visible{outline:2px solid var(--cyan);outline-offset:3px}
body.rvf ::selection{background:var(--cyan);color:var(--canvas)}

.rvf-skip{position:absolute;left:-9999px;top:0;z-index:100;padding:12px 18px;
  background:var(--cyan);color:var(--canvas);font-size:14px;border-radius:0 0 12px 0}
.rvf-skip:focus{left:0}
.rvf-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* ---- layout shells ---------------------------------------------------- */
.rvf-wrap{max-width:var(--max);margin-inline:auto;padding-inline:var(--gutter)}
.rvf-sec{max-width:var(--max);margin:0 auto;padding:var(--sec-y) var(--gutter);
  display:flex;flex-direction:column;gap:var(--sec-gap)}
.rvf-sec--hero{position:relative;overflow:hidden;padding:0}
/* Each page's hero states its own bottom padding, because the sources do:
   Tokenomics ends at clamp(56px,7vw,96px), FAQ at clamp(48px,6vw,80px), and
   Cum-functioneaza / Despre / Whitepaper / Blog / Contact run the full
   clamp(72px,10vw,140px) top and bottom. */
.rvf-sec--hero>.rvf-hero-in{position:relative;max-width:var(--max);margin:0 auto;
  padding:var(--sec-y) var(--gutter);display:flex;flex-direction:column;gap:28px}
.rvf-sec--hero>.rvf-hero-in--96{padding-bottom:clamp(56px,7vw,96px)}
.rvf-sec--hero>.rvf-hero-in--80{padding-bottom:clamp(48px,6vw,80px)}

/* ---- the gradient word: .ogs-grad-text -------------------------------- */
.rvf-grad{color:transparent;
  background:linear-gradient(100deg,#8DB1FF,#6FE3FF,#B9A8FF,#8DB1FF) 0 0/200% 100%;
  -webkit-background-clip:text;background-clip:text;
  animation:rvf-grad-pan 6s linear infinite}
@keyframes rvf-grad-pan{to{background-position:200% 0}}
@supports not ((-webkit-background-clip:text) or (background-clip:text)){
  .rvf-grad{color:#8DB1FF;background:none}
}

/* ---- OGS.Eyebrow: mono 12px, .22em, 4px dot with an 8px glow ---------- */
.rvf-eyebrow{display:inline-flex;align-items:center;gap:10px;
  font-family:var(--mono);font-size:12px;line-height:16px;
  text-transform:uppercase;letter-spacing:.22em;color:var(--rvf-dot,var(--cyan))}
.rvf-eyebrow::before{content:'';width:4px;height:4px;border-radius:50%;flex:0 0 auto;
  background:var(--rvf-dot,var(--cyan));box-shadow:0 0 8px var(--rvf-dot,var(--cyan))}

/* ---- the cyan-dot pill. v4's hero badge and the launch page's alike. ---
   Height 39 at 1440: 21px line box + 16 padding + 2 border. */
.rvf-badge{display:inline-flex;align-items:center;gap:10px;
  padding:8px 16px 8px 10px;border-radius:999px;
  border:1px solid rgba(69,213,255,.35);background:rgba(6,7,10,.6);
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-size:14px}
.rvf-badge::before{content:'';width:6px;height:6px;border-radius:50%;flex:0 0 auto;
  background:var(--cyan);box-shadow:0 0 10px var(--cyan)}

/* ---- OGS.Sheet: a light panel inset in the dark page ------------------ */
.rvf-sheet{padding:8px;background:var(--canvas)}
.rvf-sheet>div{position:relative;overflow:hidden;border-radius:32px;background:var(--sheet)}
@media (min-width:640px){.rvf-sheet{padding:16px}.rvf-sheet>div{border-radius:44px}}

/* ---- OGS.Aurora: three blurred discs, drifting ------------------------ */
.rvf-aurora{position:absolute;inset:0;pointer-events:none;opacity:var(--rvf-aurora,.4)}
.rvf-aurora span{position:absolute;border-radius:50%;display:block;
  animation:rvf-aurora 14s ease-in-out infinite}
.rvf-aurora span:nth-child(1){left:-8%;top:-25%;width:55vh;height:55vh;
  background:radial-gradient(circle,rgba(var(--rvf-tint,69,213,255),.6),transparent 62%);filter:blur(80px)}
.rvf-aurora span:nth-child(2){right:-10%;top:5%;width:52vh;height:52vh;
  background:radial-gradient(circle,rgba(69,213,255,.4),transparent 62%);filter:blur(90px);animation-delay:-6s}
.rvf-aurora span:nth-child(3){bottom:-30%;left:28%;width:52vh;height:52vh;
  background:radial-gradient(circle,rgba(119,102,255,.45),transparent 62%);filter:blur(90px);animation-delay:-12s}
.rvf-aurora--indigo{--rvf-tint:119,102,255}
@keyframes rvf-aurora{
  0%,100%{transform:translate(0) scale(1)}
  33%{transform:translate(9%,-6%) scale(1.16)}
  66%{transform:translate(-8%,7%) scale(.92)}
}
.rvf-breathe{animation:rvf-breathe 7s ease-in-out infinite}
@keyframes rvf-breathe{0%,100%{opacity:.75}50%{opacity:1}}

/* ---- OGS.CtaButton ---------------------------------------------------- */
.rvf-cta,a.rvf-cta{display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:12px 24px;border-radius:var(--pill);border:0;
  font-family:inherit;font-size:14px;font-weight:500;line-height:20px;color:#fff;cursor:pointer;
  background:linear-gradient(135deg,#5B82FF,#3D5BFF 55%,#5277FF);
  box-shadow:0 8px 28px -10px rgba(82,119,255,.65),inset 0 1px 0 rgba(255,255,255,.22);
  transition:transform .2s ease,filter .2s ease}
.rvf-cta:hover,a.rvf-cta:hover{color:#fff;transform:translateY(-1px);filter:brightness(1.1)}
.rvf-cta:active,a.rvf-cta:active{transform:none;filter:brightness(.95)}

.rvf-cta--ghost,a.rvf-cta--ghost{background:rgba(255,255,255,.03);color:#fff;
  border:1px solid rgba(255,255,255,.15);box-shadow:none;
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.rvf-cta--ghost:hover,a.rvf-cta--ghost:hover{color:#fff;transform:none;filter:none;
  border-color:rgba(255,255,255,.35);background:rgba(255,255,255,.07)}
.rvf-cta--ghost-light,a.rvf-cta--ghost-light{background:transparent;color:var(--onlight-1);
  border:1px solid rgba(20,24,31,.15);box-shadow:none}
.rvf-cta--ghost-light:hover,a.rvf-cta--ghost-light:hover{color:var(--onlight-1);
  border-color:rgba(20,24,31,.35);background:rgba(20,24,31,.04)}

/* ---- OGS.FaqList ------------------------------------------------------ */
.rvf-faq{position:relative;overflow:hidden;padding:96px 0}
.rvf-faq__in{position:relative;margin:0 auto;max-width:880px;padding:0 24px}
.rvf-faq__head{max-width:672px}
.rvf-faq h2{margin-top:24px;font-size:36px;line-height:1;font-weight:600;
  letter-spacing:-.03em;color:var(--onlight-1)}
.rvf-faq__list{margin-top:48px;border-radius:24px;border:1px solid rgba(20,24,31,.1);
  background:#fff;overflow:hidden}
.rvf-faq__list details{padding:20px 24px}
.rvf-faq__list details+details{border-top:1px solid rgba(20,24,31,.08)}
.rvf-faq__list summary{display:flex;cursor:pointer;list-style:none;align-items:center;
  justify-content:space-between;gap:16px;font-size:16px;font-weight:500;color:var(--onlight-1)}
.rvf-faq__list summary::-webkit-details-marker{display:none}
.rvf-faq__list summary i{display:grid;place-items:center;height:24px;width:24px;flex:0 0 auto;
  border-radius:50%;border:1px solid rgba(20,24,31,.18);font-size:14px;font-style:normal;
  color:var(--accent);transition:transform .2s ease}
.rvf-faq__list details[open] summary i{transform:rotate(45deg)}
.rvf-faq__list p{margin-top:12px;font-size:14px;line-height:1.625;color:var(--onlight-2)}
@media (min-width:640px){
  .rvf-faq{padding:128px 0}
  .rvf-faq__in{padding:0 32px}
  .rvf-faq h2{font-size:48px}
  .rvf-faq__list details{padding:20px 32px}
}

/* ---- reveal on scroll ------------------------------------------------- */
.rvf-rv{opacity:0;transform:translateY(36px);filter:blur(8px);
  transition:opacity 900ms var(--ease),transform 1100ms var(--ease),filter 900ms var(--ease)}
.rvf-rv.is-in{opacity:1;transform:none;filter:none}
html.no-js .rvf-rv,html.rvf-static .rvf-rv{opacity:1;transform:none;filter:none;transition:none}

/* ---- scroll progress bar (scroll-fx.js draws one) --------------------- */
.rvf-progress{position:fixed;left:0;top:0;height:2px;width:100%;transform-origin:left;
  transform:scaleX(0);background:var(--cyan);box-shadow:0 0 12px var(--cyan);
  z-index:9999;pointer-events:none}

@media (prefers-reduced-motion:reduce){
  body.rvf .rvf-rv{opacity:1!important;transform:none!important;filter:none!important;transition:none}
  body.rvf .rvf-grad,body.rvf .rvf-aurora span,body.rvf .rvf-breathe{animation:none}
  body.rvf *{scroll-behavior:auto!important}
}
