@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,300;0,9..144,700;1,9..144,700&family=Plus+Jakarta+Sans:wght@400;500;600&family=JetBrains+Mono:wght@400&display=swap');

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

:root{
  --ink:#1A1613;
  --ink-alt:#221E1A;
  --shelf:#FAFAF8;
  --parchment:#F2EDE6;
  --fog:#E5DDD4;
  --ember:#E85D0A;
  --ember-hover:#D04E06;
  --ember-muted:#F5926A;
  --on-dark-1:#F5F0EB;
  --on-dark-2:#B8A99A;
  --on-dark-3:#7A6A5E;
  --on-light-1:#1A1613;
  --on-light-2:#4A3F38;
  --on-light-3:#7A6A5E;
  --success:#2C6E42;
  --border-dark:#3A3230;
  --border-light:#D8CFC5;
  --container:1180px;
  --gap:24px;
  --ease:cubic-bezier(0.25,0.1,0.25,1.0);
}

html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}

body{
  font-family:'Plus Jakarta Sans',system-ui,-apple-system,sans-serif;
  font-size:16px;
  line-height:1.6;
  color:var(--on-light-1);
  background:var(--shelf);
  -webkit-font-smoothing:antialiased;
}

img,video{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
button{cursor:pointer;font-family:inherit;border:none;background:none}
ul,ol{list-style:none}
input,textarea,select{font-family:inherit;font-size:inherit}

h1,h2,h3,h4,h5,h6{
  font-family:'Fraunces',serif;
  line-height:1.2;
  font-weight:700;
}

.rvlx-container{
  max-width:var(--container);
  margin:0 auto;
  padding-inline:clamp(1rem,4vw,2.5rem);
}

.rvlx-sr-only{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;
}

/* ======================================================
   NAVIGATION
   ====================================================== */

.rvlx-nav{
  position:fixed;
  top:0;left:0;right:0;
  z-index:900;
  height:68px;
  display:flex;
  align-items:center;
  transition:background 250ms var(--ease),box-shadow 250ms var(--ease);
}

.rvlx-page--dark-top .rvlx-nav{
  background:transparent;
}

.rvlx-page--light-top .rvlx-nav{
  background:var(--shelf);
  box-shadow:0 1px 0 var(--border-light);
}

.rvlx-page--dark-top .rvlx-nav.rvlx-nav--scrolled{
  background:var(--ink);
  box-shadow:0 1px 0 var(--border-dark);
}

.rvlx-nav__inner{
  max-width:var(--container);
  margin:0 auto;
  padding-inline:clamp(1rem,4vw,2.5rem);
  display:flex;
  align-items:center;
  gap:2rem;
  width:100%;
}

.rvlx-nav__logo{
  flex-shrink:0;
  display:flex;
  align-items:center;
}

.rvlx-nav__logo img{
  height:28px;
  width:auto;
}

.rvlx-nav__logo .logo-light{display:none}
.rvlx-nav__logo .logo-dark{display:block}

.rvlx-page--dark-top .rvlx-nav .rvlx-nav__logo .logo-light{display:block}
.rvlx-page--dark-top .rvlx-nav .rvlx-nav__logo .logo-dark{display:none}

.rvlx-page--dark-top .rvlx-nav.rvlx-nav--scrolled .rvlx-nav__logo .logo-light{display:block !important}
.rvlx-page--dark-top .rvlx-nav.rvlx-nav--scrolled .rvlx-nav__logo .logo-dark{display:none !important}

.rvlx-nav__links{
  display:flex;
  align-items:center;
  gap:0.25rem;
  margin-left:auto;
}

.rvlx-nav__link{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:0.9rem;
  font-weight:500;
  padding:0.4rem 0.75rem;
  border-radius:6px;
  transition:color 180ms,background 180ms;
}

.rvlx-page--light-top .rvlx-nav .rvlx-nav__link{
  color:var(--on-light-2);
}
.rvlx-page--light-top .rvlx-nav .rvlx-nav__link:hover{
  color:var(--on-light-1);
  background:rgba(26,22,19,0.06);
}

.rvlx-page--dark-top .rvlx-nav .rvlx-nav__link{
  color:var(--on-dark-2);
}
.rvlx-page--dark-top .rvlx-nav .rvlx-nav__link:hover{
  color:var(--on-dark-1);
  background:rgba(245,240,235,0.08);
}

.rvlx-page--dark-top .rvlx-nav.rvlx-nav--scrolled .rvlx-nav__link{
  color:var(--on-dark-2);
}
.rvlx-page--dark-top .rvlx-nav.rvlx-nav--scrolled .rvlx-nav__link:hover{
  color:var(--on-dark-1);
  background:rgba(245,240,235,0.08);
}

.rvlx-nav__actions{
  display:flex;
  align-items:center;
  gap:0.5rem;
  margin-left:0.75rem;
  flex-shrink:0;
}

.rvlx-nav__hamburger{
  display:none;
  flex-direction:column;
  gap:5px;
  padding:8px;
  margin-left:auto;
  border-radius:6px;
  transition:background 180ms;
}
.rvlx-nav__hamburger:hover{background:rgba(26,22,19,0.06)}
.rvlx-nav__hamburger span{
  display:block;
  width:22px;height:2px;
  border-radius:2px;
  transition:background 180ms,transform 250ms,opacity 200ms;
}

.rvlx-page--light-top .rvlx-nav .rvlx-nav__hamburger span{background:var(--ink)}
.rvlx-page--dark-top .rvlx-nav .rvlx-nav__hamburger span{background:var(--on-dark-1)}
.rvlx-page--dark-top .rvlx-nav.rvlx-nav--scrolled .rvlx-nav__hamburger span{background:var(--on-dark-1)}

.rvlx-nav__hamburger.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.rvlx-nav__hamburger.is-open span:nth-child(2){opacity:0}
.rvlx-nav__hamburger.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* ======================================================
   BUTTONS
   ====================================================== */

.rvlx-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:0.5rem;
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:0.9rem;
  font-weight:600;
  padding:0.55rem 1.25rem;
  border-radius:8px;
  transition:background 180ms var(--ease),color 180ms,border-color 180ms,transform 100ms;
  white-space:nowrap;
  cursor:pointer;
  border:1.5px solid transparent;
  text-decoration:none;
}
.rvlx-btn:active{transform:scale(0.97)}

.rvlx-btn--primary{
  background:var(--ember);
  color:#fff;
  border-color:var(--ember);
}
.rvlx-btn--primary:hover{background:var(--ember-hover);border-color:var(--ember-hover)}

.rvlx-btn--ghost-dark{
  background:transparent;
  color:var(--on-dark-1);
  border-color:rgba(245,240,235,0.35);
}
.rvlx-btn--ghost-dark:hover{
  background:rgba(245,240,235,0.08);
  border-color:rgba(245,240,235,0.6);
  color:var(--on-dark-1);
}

.rvlx-btn--ghost-light{
  background:transparent;
  color:var(--on-light-2);
  border-color:var(--border-light);
}
.rvlx-btn--ghost-light:hover{
  background:rgba(26,22,19,0.04);
  border-color:var(--on-light-3);
  color:var(--on-light-1);
}

.rvlx-btn--outline-dark{
  background:transparent;
  color:var(--on-light-1);
  border-color:var(--on-light-1);
}
.rvlx-btn--outline-dark:hover{
  background:var(--on-light-1);
  color:var(--shelf);
}

.rvlx-btn--outline-white{
  background:transparent;
  color:#fff;
  border-color:rgba(255,255,255,0.7);
}
.rvlx-btn--outline-white:hover{
  background:rgba(255,255,255,0.12);
  border-color:#fff;
}

.rvlx-btn--lg{
  font-size:1rem;
  padding:0.75rem 1.75rem;
  border-radius:9px;
}

.rvlx-btn--sm{
  font-size:0.8rem;
  padding:0.35rem 0.85rem;
}

.rvlx-page--light-top .rvlx-nav .rvlx-btn--ghost-light{
  color:var(--on-light-2);
  border-color:var(--border-light);
}
.rvlx-page--dark-top .rvlx-nav .rvlx-btn--ghost-dark{
  color:var(--on-dark-1);
  border-color:rgba(245,240,235,0.35);
}
.rvlx-page--dark-top .rvlx-nav.rvlx-nav--scrolled .rvlx-btn--ghost-dark{
  color:var(--on-dark-1) !important;
  border-color:rgba(245,240,235,0.35) !important;
}

/* ======================================================
   MOBILE NAV DRAWER
   ====================================================== */

.rvlx-nav__mobile{
  display:none;
  position:fixed;
  top:68px;left:0;right:0;
  z-index:899;
  padding:1rem clamp(1rem,4vw,2.5rem) 1.5rem;
  flex-direction:column;
  gap:0.25rem;
}

.rvlx-page--light-top .rvlx-nav__mobile{
  background:var(--shelf);
  border-bottom:1px solid var(--border-light);
}
.rvlx-page--dark-top .rvlx-nav__mobile{
  background:var(--ink);
  border-bottom:1px solid var(--border-dark);
}

.rvlx-nav__mobile.is-open{display:flex}

.rvlx-nav__mobile .rvlx-nav__link{
  padding:0.65rem 0.75rem;
  font-size:1rem;
}

.rvlx-page--light-top .rvlx-nav__mobile .rvlx-nav__link{color:var(--on-light-1)}
.rvlx-page--dark-top .rvlx-nav__mobile .rvlx-nav__link{color:var(--on-dark-1)}

.rvlx-nav__mobile-actions{
  display:flex;
  flex-direction:column;
  gap:0.5rem;
  margin-top:0.75rem;
  padding-top:0.75rem;
  border-top:1px solid var(--border-light);
}
.rvlx-page--dark-top .rvlx-nav__mobile-actions{border-color:var(--border-dark)}
.rvlx-nav__mobile-actions .rvlx-btn{width:100%;justify-content:center}

/* ======================================================
   PAGE TOP OFFSET (nav height compensation)
   ====================================================== */

.rvlx-page--dark-top main{padding-top:0}
.rvlx-page--light-top main{padding-top:68px}

/* ======================================================
   SECTION BACKGROUNDS
   ====================================================== */

.rvlx-section--dark{background:var(--ink)}
.rvlx-section--dark-alt{background:var(--ink-alt)}
.rvlx-section--light{background:var(--shelf)}
.rvlx-section--parchment{background:var(--parchment)}
.rvlx-section--white{background:#fff}
.rvlx-section--brand{background:var(--ember)}

.rvlx-section{padding:96px 0}

/* ======================================================
   HERO — HOME (DARK)
   ====================================================== */

.rvlx-hero{
  background:var(--ink);
  padding:0;
  min-height:100vh;
  display:flex;
  flex-direction:column;
  justify-content:center;
  position:relative;
  overflow:hidden;
}

.rvlx-hero__inner{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:4rem;
  align-items:center;
  max-width:var(--container);
  margin:0 auto;
  padding:140px clamp(1rem,4vw,2.5rem) 96px;
}

.rvlx-hero__copy{}

.rvlx-hero__label{
  display:inline-flex;
  align-items:center;
  gap:0.4rem;
  font-size:0.75rem;
  font-weight:600;
  letter-spacing:0.1em;
  text-transform:uppercase;
  color:var(--ember-muted);
  margin-bottom:1.25rem;
}

.rvlx-hero__h1{
  font-family:'Fraunces',serif;
  font-style:italic;
  font-weight:700;
  font-size:clamp(2.4rem,5vw,3.75rem);
  line-height:1.1;
  color:var(--on-dark-1);
  margin-bottom:1.5rem;
}

.rvlx-hero__h1 em{
  font-style:italic;
  color:var(--ember);
}

.rvlx-hero__sub{
  font-size:clamp(1rem,1.8vw,1.175rem);
  color:var(--on-dark-2);
  line-height:1.65;
  max-width:520px;
  margin-bottom:2.5rem;
}

.rvlx-hero__actions{
  display:flex;
  gap:0.75rem;
  flex-wrap:wrap;
  align-items:center;
}

.rvlx-hero__visual{
  display:flex;
  align-items:center;
  justify-content:flex-end;
}

/* ======================================================
   PRODUCT GRID SVG MOCK
   ====================================================== */

.rvlx-grid-mock{
  width:100%;
  max-width:480px;
  position:relative;
}

.rvlx-grid-mock svg{
  width:100%;
  height:auto;
}

/* ======================================================
   PROBLEM BAR (DARK-ALT)
   ====================================================== */

.rvlx-problem-bar{
  background:var(--ink-alt);
  padding:64px 0;
}

.rvlx-problem-bar__inner{
  max-width:var(--container);
  margin:0 auto;
  padding-inline:clamp(1rem,4vw,2.5rem);
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:var(--gap);
}

.rvlx-stat{
  padding:1.5rem;
  border:1px solid var(--border-dark);
  border-radius:12px;
  background:rgba(58,50,48,0.3);
}

.rvlx-stat__num{
  font-family:'Fraunces',serif;
  font-size:2.25rem;
  font-weight:700;
  color:var(--ember);
  margin-bottom:0.5rem;
  line-height:1;
}

.rvlx-stat__label{
  font-size:0.875rem;
  color:var(--on-dark-2);
  line-height:1.5;
}

/* ======================================================
   HOW IT WORKS (LIGHT)
   ====================================================== */

.rvlx-how{
  background:var(--shelf);
}

.rvlx-how__inner{
  max-width:var(--container);
  margin:0 auto;
  padding-inline:clamp(1rem,4vw,2.5rem);
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:4rem;
  align-items:center;
}

.rvlx-how__headline{
  font-family:'Fraunces',serif;
  font-weight:700;
  font-size:clamp(1.8rem,3.2vw,2.6rem);
  color:var(--on-light-1);
  margin-bottom:2rem;
}

.rvlx-how__copy{}

.rvlx-signal-list{
  display:flex;
  flex-direction:column;
  gap:1.25rem;
}

.rvlx-signal-item{
  display:flex;
  gap:1rem;
  align-items:flex-start;
}

.rvlx-signal-item__icon{
  flex-shrink:0;
  width:36px;height:36px;
  background:var(--parchment);
  border-radius:8px;
  display:flex;align-items:center;justify-content:center;
  color:var(--ember);
  font-size:0.875rem;
}

.rvlx-signal-item__body{}

.rvlx-signal-item__name{
  font-weight:600;
  color:var(--on-light-1);
  margin-bottom:0.15rem;
  font-size:0.925rem;
}

.rvlx-signal-item__desc{
  font-size:0.875rem;
  color:var(--on-light-2);
  line-height:1.55;
}

.rvlx-signal-diagram{
  display:flex;
  align-items:center;
  justify-content:center;
}

.rvlx-signal-diagram svg{
  width:100%;
  max-width:420px;
  height:auto;
}

/* ======================================================
   USE CASES (PARCHMENT)
   ====================================================== */

.rvlx-usecases{
  background:var(--parchment);
}

.rvlx-usecases__inner{
  max-width:var(--container);
  margin:0 auto;
  padding-inline:clamp(1rem,4vw,2.5rem);
}

.rvlx-section-header{
  margin-bottom:3rem;
}

.rvlx-section-headline{
  font-family:'Fraunces',serif;
  font-weight:700;
  font-size:clamp(1.8rem,3.2vw,2.6rem);
  margin-bottom:0.75rem;
}

.rvlx-section--dark .rvlx-section-headline,
.rvlx-section--dark-alt .rvlx-section-headline{
  color:var(--on-dark-1);
}
.rvlx-section--light .rvlx-section-headline,
.rvlx-section--parchment .rvlx-section-headline,
.rvlx-section--white .rvlx-section-headline{
  color:var(--on-light-1);
}

.rvlx-section-sub{
  font-size:1.05rem;
  line-height:1.6;
  max-width:580px;
}

.rvlx-section--dark .rvlx-section-sub,
.rvlx-section--dark-alt .rvlx-section-sub{
  color:var(--on-dark-2);
}
.rvlx-section--light .rvlx-section-sub,
.rvlx-section--parchment .rvlx-section-sub,
.rvlx-section--white .rvlx-section-sub{
  color:var(--on-light-2);
}

.rvlx-usecases__grid{
  display:grid;
  grid-template-columns:2fr 1fr 1fr;
  gap:var(--gap);
}

.rvlx-usecase-card{
  background:var(--shelf);
  border-radius:16px;
  padding:2rem;
  border:1px solid var(--border-light);
  display:flex;
  flex-direction:column;
  gap:1rem;
}

.rvlx-usecase-card--large{
  padding:2.5rem;
}

.rvlx-usecase-card__tag{
  font-size:0.7rem;
  font-weight:600;
  letter-spacing:0.1em;
  text-transform:uppercase;
  color:var(--ember);
  background:rgba(232,93,10,0.1);
  padding:0.25rem 0.65rem;
  border-radius:4px;
  width:fit-content;
}

.rvlx-usecase-card__title{
  font-family:'Fraunces',serif;
  font-weight:700;
  font-size:1.4rem;
  color:var(--on-light-1);
}

.rvlx-usecase-card--large .rvlx-usecase-card__title{
  font-size:1.75rem;
}

.rvlx-usecase-card__desc{
  font-size:0.9rem;
  color:var(--on-light-2);
  line-height:1.6;
  flex:1;
}

.rvlx-usecase-card__result{
  font-size:0.825rem;
  font-weight:600;
  color:var(--success);
  padding:0.6rem 0.85rem;
  background:rgba(44,110,66,0.08);
  border-radius:6px;
  border:1px solid rgba(44,110,66,0.2);
}

/* ======================================================
   METRICS BAND (DARK)
   ====================================================== */

.rvlx-metrics{
  background:var(--ink);
}

.rvlx-metrics__inner{
  max-width:var(--container);
  margin:0 auto;
  padding-inline:clamp(1rem,4vw,2.5rem);
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:var(--gap);
  text-align:center;
}

.rvlx-metric{
  padding:2.5rem 1.5rem;
}

.rvlx-metric__num{
  font-family:'Fraunces',serif;
  font-size:clamp(2.5rem,4.5vw,3.5rem);
  font-weight:700;
  color:var(--ember);
  line-height:1;
  margin-bottom:0.5rem;
}

.rvlx-metric__label{
  font-size:0.9rem;
  color:var(--on-dark-2);
  line-height:1.5;
}

.rvlx-metric__brand{
  font-size:0.75rem;
  color:var(--on-dark-3);
  margin-top:0.5rem;
  font-style:italic;
}

/* ======================================================
   TESTIMONIALS (LIGHT)
   ====================================================== */

.rvlx-testimonials{
  background:var(--shelf);
}

.rvlx-testimonials__inner{
  max-width:var(--container);
  margin:0 auto;
  padding-inline:clamp(1rem,4vw,2.5rem);
}

.rvlx-testimonials__grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:var(--gap);
  margin-top:3rem;
}

.rvlx-quote-card{
  background:var(--parchment);
  border-radius:16px;
  padding:2rem;
  border:1px solid var(--border-light);
  display:flex;
  flex-direction:column;
  gap:1.5rem;
}

.rvlx-quote-card__text{
  font-family:'Fraunces',serif;
  font-style:italic;
  font-size:1.05rem;
  line-height:1.65;
  color:var(--on-light-1);
  font-weight:300;
  flex:1;
}

.rvlx-quote-card__text::before{
  content:'\201C';
  font-size:1.5em;
  color:var(--ember);
  line-height:0;
  vertical-align:-0.25em;
  margin-right:0.1em;
}

.rvlx-quote-card__author{
  display:flex;
  align-items:center;
  gap:0.85rem;
}

.rvlx-avatar{
  width:42px;height:42px;
  border-radius:50%;
  background:var(--ink);
  color:var(--on-dark-1);
  display:flex;align-items:center;justify-content:center;
  font-weight:600;
  font-size:0.85rem;
  flex-shrink:0;
}

.rvlx-quote-card__name{
  font-weight:600;
  font-size:0.9rem;
  color:var(--on-light-1);
}

.rvlx-quote-card__role{
  font-size:0.8rem;
  color:var(--on-light-3);
}

/* ======================================================
   CTA BAND (BRAND / EMBER)
   ====================================================== */

.rvlx-cta-band{
  background:var(--ember);
  padding:80px 0;
  text-align:center;
}

.rvlx-cta-band__inner{
  max-width:var(--container);
  margin:0 auto;
  padding-inline:clamp(1rem,4vw,2.5rem);
}

.rvlx-cta-band__headline{
  font-family:'Fraunces',serif;
  font-style:italic;
  font-weight:700;
  font-size:clamp(1.8rem,3.5vw,3rem);
  color:#fff;
  margin-bottom:2rem;
}

.rvlx-cta-band__actions{
  display:flex;
  gap:1rem;
  justify-content:center;
  flex-wrap:wrap;
}

/* ======================================================
   SUB-PAGE HERO
   ====================================================== */

.rvlx-page-hero{
  background:var(--shelf);
  padding:72px 0 56px;
  position:relative;
  overflow:hidden;
}

.rvlx-page-hero__inner{
  max-width:var(--container);
  margin:0 auto;
  padding-inline:clamp(1rem,4vw,2.5rem);
  display:grid;
  grid-template-columns:3fr 2fr;
  gap:3rem;
  align-items:center;
}

.rvlx-page-hero--centered .rvlx-page-hero__inner{
  display:block;
  text-align:center;
  max-width:740px;
}

.rvlx-page-hero__eyebrow{
  font-size:0.75rem;
  font-weight:600;
  letter-spacing:0.1em;
  text-transform:uppercase;
  color:var(--ember);
  margin-bottom:1rem;
}

.rvlx-page-hero__h1{
  font-family:'Fraunces',serif;
  font-weight:700;
  font-size:clamp(2rem,4vw,3.2rem);
  color:var(--on-light-1);
  margin-bottom:1.25rem;
  line-height:1.15;
}

.rvlx-page-hero__sub{
  font-size:1.075rem;
  color:var(--on-light-2);
  line-height:1.65;
  max-width:540px;
}

.rvlx-page-hero--centered .rvlx-page-hero__sub{
  max-width:none;
  margin:0 auto;
}

.rvlx-page-hero__ornament{
  display:flex;
  align-items:center;
  justify-content:flex-end;
}

.rvlx-page-hero__ornament svg{
  width:100%;
  max-width:340px;
  height:auto;
  opacity:0.7;
}

/* ======================================================
   PLATFORM PAGE
   ====================================================== */

.rvlx-platform-section{
  padding:80px 0;
}

.rvlx-two-col{
  max-width:var(--container);
  margin:0 auto;
  padding-inline:clamp(1rem,4vw,2.5rem);
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:4rem;
  align-items:center;
}

.rvlx-two-col--reverse{
  direction:rtl;
}
.rvlx-two-col--reverse > *{
  direction:ltr;
}

.rvlx-platform-content__eyebrow{
  font-size:0.75rem;
  font-weight:600;
  letter-spacing:0.1em;
  text-transform:uppercase;
  color:var(--ember);
  margin-bottom:0.75rem;
}

.rvlx-platform-content__h2{
  font-family:'Fraunces',serif;
  font-weight:700;
  font-size:clamp(1.6rem,2.8vw,2.2rem);
  color:var(--on-light-1);
  margin-bottom:1rem;
  line-height:1.2;
}

.rvlx-section--dark .rvlx-platform-content__h2{
  color:var(--on-dark-1);
}

.rvlx-platform-content__body{
  font-size:0.975rem;
  color:var(--on-light-2);
  line-height:1.7;
  margin-bottom:1.5rem;
}

.rvlx-section--dark .rvlx-platform-content__body{
  color:var(--on-dark-2);
}

.rvlx-feature-list{
  display:flex;
  flex-direction:column;
  gap:0.6rem;
}

.rvlx-feature-list li{
  display:flex;
  align-items:flex-start;
  gap:0.6rem;
  font-size:0.9rem;
  color:var(--on-light-2);
}

.rvlx-section--dark .rvlx-feature-list li{
  color:var(--on-dark-2);
}

.rvlx-feature-list li::before{
  content:'';
  display:block;
  width:5px;height:5px;
  border-radius:50%;
  background:var(--ember);
  margin-top:0.55em;
  flex-shrink:0;
}

.rvlx-inline-diagram{
  display:flex;
  align-items:center;
  justify-content:center;
}

.rvlx-inline-diagram svg{
  width:100%;
  max-width:440px;
  height:auto;
}

.rvlx-tabs{
  background:var(--shelf);
  border-radius:16px;
  border:1px solid var(--border-light);
  overflow:hidden;
}

.rvlx-tabs__nav{
  display:flex;
  border-bottom:1px solid var(--border-light);
  background:var(--fog);
}

.rvlx-tab-btn{
  flex:1;
  padding:0.75rem 1rem;
  font-size:0.85rem;
  font-weight:600;
  color:var(--on-light-3);
  background:transparent;
  border:none;
  border-bottom:2px solid transparent;
  cursor:pointer;
  transition:color 180ms,border-color 180ms,background 180ms;
  font-family:'Plus Jakarta Sans',sans-serif;
}

.rvlx-tab-btn.is-active{
  color:var(--ember);
  border-bottom-color:var(--ember);
  background:var(--shelf);
}

.rvlx-tabs__panel{
  display:none;
  padding:1.75rem;
}

.rvlx-tabs__panel.is-active{
  display:block;
}

.rvlx-tab-mock{
  background:var(--parchment);
  border-radius:10px;
  padding:1.25rem;
  min-height:200px;
  display:flex;
  flex-direction:column;
  gap:1rem;
}

.rvlx-tab-mock__label{
  font-size:0.75rem;
  font-weight:600;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--ember);
}

.rvlx-tab-mock__grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:0.5rem;
}

.rvlx-tile{
  background:var(--shelf);
  border-radius:6px;
  padding:0.75rem 0.5rem;
  text-align:center;
  border:1px solid var(--border-light);
}

.rvlx-tile--highlighted{
  border-color:var(--ember);
  background:#fff;
}

.rvlx-tile__rank{
  font-size:0.7rem;
  font-weight:700;
  color:var(--ember);
}

.rvlx-tile__bar{
  height:4px;
  border-radius:2px;
  background:var(--fog);
  margin-top:0.5rem;
  position:relative;
  overflow:hidden;
}

.rvlx-tile__bar::after{
  content:'';
  position:absolute;
  top:0;left:0;
  height:100%;
  background:var(--ember);
  border-radius:2px;
}

.rvlx-tile--highlighted .rvlx-tile__bar::after{width:82%}
.rvlx-tile:not(.rvlx-tile--highlighted):nth-child(2) .rvlx-tile__bar::after{width:45%}
.rvlx-tile:not(.rvlx-tile--highlighted):nth-child(3) .rvlx-tile__bar::after{width:28%}

/* ======================================================
   PRICING PAGE
   ====================================================== */

.rvlx-pricing-toggle{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:0.75rem;
  margin-bottom:3rem;
}

.rvlx-pricing-toggle__label{
  font-size:0.9rem;
  color:var(--on-light-2);
  font-weight:500;
}

.rvlx-pricing-toggle__label.is-active{
  color:var(--on-light-1);
  font-weight:600;
}

.rvlx-toggle-switch{
  position:relative;
  display:inline-block;
  width:44px;height:24px;
  cursor:pointer;
}

.rvlx-toggle-switch input{
  opacity:0;width:0;height:0;position:absolute;
}

.rvlx-toggle-slider{
  position:absolute;
  top:0;left:0;right:0;bottom:0;
  background:var(--ember);
  border-radius:24px;
  transition:background 200ms;
}

.rvlx-toggle-slider::before{
  content:'';
  position:absolute;
  width:18px;height:18px;
  border-radius:50%;
  background:#fff;
  left:3px;top:3px;
  transition:transform 200ms;
}

.rvlx-toggle-switch input:checked + .rvlx-toggle-slider::before{
  transform:translateX(20px);
}

.rvlx-toggle-switch input:not(:checked) + .rvlx-toggle-slider{
  background:var(--fog);
}

.rvlx-pricing-badge{
  font-size:0.7rem;
  font-weight:700;
  letter-spacing:0.05em;
  text-transform:uppercase;
  background:var(--success);
  color:#fff;
  padding:0.2rem 0.5rem;
  border-radius:4px;
}

.rvlx-pricing-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:var(--gap);
  max-width:880px;
  margin:0 auto;
}

.rvlx-pricing-card{
  background:var(--shelf);
  border:1px solid var(--border-light);
  border-radius:20px;
  padding:2.5rem;
  display:flex;
  flex-direction:column;
  gap:1.5rem;
}

.rvlx-pricing-card--featured{
  border-color:var(--ember);
  background:#fff;
  position:relative;
}

.rvlx-pricing-card__badge{
  position:absolute;
  top:-12px;
  left:50%;
  transform:translateX(-50%);
  background:var(--ember);
  color:#fff;
  font-size:0.7rem;
  font-weight:700;
  letter-spacing:0.08em;
  text-transform:uppercase;
  padding:0.3rem 1rem;
  border-radius:20px;
}

.rvlx-pricing-card__name{
  font-family:'Fraunces',serif;
  font-size:1.6rem;
  font-weight:700;
  color:var(--on-light-1);
}

.rvlx-pricing-card__price{
  display:flex;
  align-items:baseline;
  gap:0.25rem;
}

.rvlx-pricing-card__amount{
  font-family:'Fraunces',serif;
  font-size:3rem;
  font-weight:700;
  color:var(--on-light-1);
  line-height:1;
}

.rvlx-pricing-card__per{
  font-size:0.875rem;
  color:var(--on-light-3);
}

.rvlx-pricing-card__cap{
  font-size:0.85rem;
  color:var(--on-light-3);
  margin-top:0.25rem;
}

.rvlx-pricing-card__note{
  font-size:0.8rem;
  color:var(--on-light-3);
  font-style:italic;
}

.rvlx-pricing-features{
  display:flex;
  flex-direction:column;
  gap:0.6rem;
  flex:1;
}

.rvlx-pricing-features li{
  display:flex;
  align-items:flex-start;
  gap:0.6rem;
  font-size:0.875rem;
  color:var(--on-light-2);
}

.rvlx-pricing-features li::before{
  content:'✓';
  color:var(--success);
  font-weight:700;
  flex-shrink:0;
  margin-top:0.05em;
}

.rvlx-pricing-cta{
  margin-top:auto;
}

.rvlx-pricing-cta .rvlx-btn{
  width:100%;
  justify-content:center;
}

/* ======================================================
   FAQ ACCORDION
   ====================================================== */

.rvlx-faq{
  max-width:720px;
  margin:0 auto;
}

.rvlx-faq__item{
  border-bottom:1px solid var(--border-light);
}

.rvlx-faq__question{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding:1.25rem 0;
  font-family:'Plus Jakarta Sans',sans-serif;
  font-weight:600;
  font-size:0.975rem;
  color:var(--on-light-1);
  background:transparent;
  border:none;
  cursor:pointer;
  text-align:left;
  transition:color 180ms;
}

.rvlx-faq__question:hover{color:var(--ember)}

.rvlx-faq__icon{
  flex-shrink:0;
  width:20px;height:20px;
  border:1.5px solid var(--border-light);
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:0.7rem;
  color:var(--on-light-3);
  transition:transform 250ms var(--ease),border-color 180ms,color 180ms;
}

.rvlx-faq__item.is-open .rvlx-faq__icon{
  transform:rotate(45deg);
  border-color:var(--ember);
  color:var(--ember);
}

.rvlx-faq__answer{
  overflow:hidden;
  max-height:0;
  transition:max-height 300ms var(--ease),padding 200ms;
}

.rvlx-faq__item.is-open .rvlx-faq__answer{
  max-height:400px;
}

.rvlx-faq__answer-inner{
  padding-bottom:1.25rem;
  font-size:0.9rem;
  color:var(--on-light-2);
  line-height:1.7;
}

/* ======================================================
   CUSTOMERS PAGE
   ====================================================== */

.rvlx-case-study{
  padding:80px 0;
}

.rvlx-case-study__inner{
  max-width:var(--container);
  margin:0 auto;
  padding-inline:clamp(1rem,4vw,2.5rem);
}

.rvlx-case-study__header{
  margin-bottom:2.5rem;
}

.rvlx-case-study__brand{
  font-size:0.75rem;
  font-weight:600;
  letter-spacing:0.1em;
  text-transform:uppercase;
  color:var(--ember);
  margin-bottom:0.5rem;
}

.rvlx-case-study__headline{
  font-family:'Fraunces',serif;
  font-weight:700;
  font-size:clamp(1.5rem,2.8vw,2.2rem);
  color:var(--on-light-1);
  line-height:1.2;
}

.rvlx-section--parchment .rvlx-case-study__headline{
  color:var(--on-light-1);
}

.rvlx-case-study__detail{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:3rem;
}

.rvlx-case-study__col-label{
  font-size:0.75rem;
  font-weight:600;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--on-light-3);
  margin-bottom:0.5rem;
}

.rvlx-case-study__col-body{
  font-size:0.95rem;
  color:var(--on-light-2);
  line-height:1.7;
}

.rvlx-results-row{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1rem;
  margin-top:2rem;
}

.rvlx-result-chip{
  background:var(--shelf);
  border:1px solid var(--border-light);
  border-radius:10px;
  padding:1.25rem;
  text-align:center;
}

.rvlx-section--parchment .rvlx-result-chip{
  background:var(--fog);
}

.rvlx-result-chip__num{
  font-family:'Fraunces',serif;
  font-size:2rem;
  font-weight:700;
  color:var(--ember);
}

.rvlx-result-chip__label{
  font-size:0.8rem;
  color:var(--on-light-3);
  margin-top:0.2rem;
}

.rvlx-testimonials-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:var(--gap);
}

/* ======================================================
   INTEGRATIONS PAGE
   ====================================================== */

.rvlx-integrations-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:var(--gap);
}

.rvlx-integration-card{
  background:var(--shelf);
  border:1px solid var(--border-light);
  border-radius:14px;
  padding:1.75rem;
  display:flex;
  flex-direction:column;
  gap:1rem;
  transition:border-color 200ms,box-shadow 200ms;
}

.rvlx-integration-card:hover{
  border-color:var(--ember-muted);
  box-shadow:0 4px 16px rgba(232,93,10,0.08);
}

.rvlx-integration-card__icon{
  width:44px;height:44px;
  border-radius:10px;
  background:var(--parchment);
  display:flex;align-items:center;justify-content:center;
  font-size:1.125rem;
  color:var(--on-light-1);
}

.rvlx-integration-card__name{
  font-weight:700;
  font-size:1.05rem;
  color:var(--on-light-1);
}

.rvlx-integration-card__depth{
  font-size:0.825rem;
  color:var(--on-light-3);
  line-height:1.5;
}

.rvlx-integration-card__time{
  font-size:0.775rem;
  font-weight:600;
  color:var(--success);
  padding:0.25rem 0.6rem;
  background:rgba(44,110,66,0.08);
  border-radius:4px;
  width:fit-content;
}

.rvlx-code-mock{
  background:var(--ink);
  border-radius:12px;
  overflow:hidden;
}

.rvlx-code-mock__bar{
  background:var(--ink-alt);
  padding:0.65rem 1rem;
  display:flex;
  align-items:center;
  gap:0.5rem;
  border-bottom:1px solid var(--border-dark);
}

.rvlx-code-mock__dot{
  width:10px;height:10px;
  border-radius:50%;
}

.rvlx-code-mock__dot:nth-child(1){background:#FF5F57}
.rvlx-code-mock__dot:nth-child(2){background:#FEBC2E}
.rvlx-code-mock__dot:nth-child(3){background:#28C840}

.rvlx-code-mock__filename{
  font-family:'JetBrains Mono',monospace;
  font-size:0.75rem;
  color:var(--on-dark-3);
  margin-left:0.5rem;
}

.rvlx-code-mock__body{
  padding:1.5rem;
  font-family:'JetBrains Mono',monospace;
  font-size:0.8rem;
  line-height:1.75;
  color:var(--on-dark-2);
  white-space:pre;
  overflow-x:auto;
}

.rvlx-code--keyword{color:#E85D0A}
.rvlx-code--string{color:#B8A99A}
.rvlx-code--prop{color:#F5F0EB}
.rvlx-code--value{color:#F5926A}
.rvlx-code--comment{color:var(--on-dark-3);font-style:italic}
.rvlx-code--key{color:#B8A99A}
.rvlx-code--num{color:#F5926A}

/* ======================================================
   ABOUT PAGE
   ====================================================== */

.rvlx-founder-story{
  padding:80px 0;
}

.rvlx-founder-story__inner{
  max-width:var(--container);
  margin:0 auto;
  padding-inline:clamp(1rem,4vw,2.5rem);
  display:grid;
  grid-template-columns:2fr 3fr;
  gap:4rem;
  align-items:start;
}

.rvlx-founder-portrait{
  border-radius:16px;
  overflow:hidden;
  aspect-ratio:1/1;
  background:var(--fog);
}

.rvlx-founder-portrait img{
  width:100%;
  height:auto;
  object-fit:cover;
  object-position:top;
  display:block;
}

.rvlx-founder-narrative__eyebrow{
  font-size:0.75rem;
  font-weight:600;
  letter-spacing:0.1em;
  text-transform:uppercase;
  color:var(--ember);
  margin-bottom:0.75rem;
}

.rvlx-founder-narrative__name{
  font-family:'Fraunces',serif;
  font-weight:700;
  font-size:1.75rem;
  color:var(--on-light-1);
  margin-bottom:0.25rem;
}

.rvlx-founder-narrative__title{
  font-size:0.9rem;
  color:var(--on-light-3);
  margin-bottom:1.5rem;
}

.rvlx-founder-narrative__body{
  font-size:0.975rem;
  color:var(--on-light-2);
  line-height:1.75;
}

.rvlx-founder-narrative__body p + p{
  margin-top:1rem;
}

.rvlx-team-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:var(--gap);
  max-width:780px;
  margin:0 auto;
}

.rvlx-team-card{
  background:var(--shelf);
  border:1px solid var(--border-light);
  border-radius:16px;
  overflow:hidden;
}

.rvlx-team-card__portrait{
  aspect-ratio:1/1;
  background:var(--fog);
  overflow:hidden;
}

.rvlx-team-card__portrait img{
  width:100%;
  height:auto;
  height:100%;
  object-fit:cover;
  object-position:top;
  display:block;
}

.rvlx-team-card__body{
  padding:1.5rem;
}

.rvlx-team-card__name{
  font-family:'Fraunces',serif;
  font-weight:700;
  font-size:1.25rem;
  color:var(--on-light-1);
  margin-bottom:0.2rem;
}

.rvlx-team-card__title{
  font-size:0.85rem;
  color:var(--on-light-3);
  margin-bottom:0.75rem;
}

.rvlx-team-card__bio{
  font-size:0.875rem;
  color:var(--on-light-2);
  line-height:1.6;
  margin-bottom:0.75rem;
}

.rvlx-team-card__linkedin{
  display:inline-flex;
  align-items:center;
  gap:0.4rem;
  font-size:0.8rem;
  color:var(--ember);
  font-weight:600;
  text-decoration:none;
}

.rvlx-team-card__linkedin:hover{color:var(--ember-hover)}

.rvlx-values-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:var(--gap);
}

.rvlx-value-card{
  padding:2rem;
  background:var(--parchment);
  border-radius:14px;
  border:1px solid var(--border-light);
}

.rvlx-value-card__name{
  font-weight:700;
  font-size:1rem;
  color:var(--on-light-1);
  margin-bottom:0.5rem;
}

.rvlx-value-card__body{
  font-size:0.9rem;
  color:var(--on-light-2);
  line-height:1.65;
}

/* ======================================================
   CAREERS
   ====================================================== */

.rvlx-role-card{
  background:var(--shelf);
  border:1px solid var(--border-light);
  border-radius:16px;
  padding:2rem;
  display:flex;
  flex-direction:column;
  gap:1rem;
}

.rvlx-role-card__dept{
  font-size:0.75rem;
  font-weight:600;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--ember);
}

.rvlx-role-card__title{
  font-family:'Fraunces',serif;
  font-weight:700;
  font-size:1.35rem;
  color:var(--on-light-1);
}

.rvlx-role-card__desc{
  font-size:0.9rem;
  color:var(--on-light-2);
  line-height:1.65;
}

.rvlx-role-card__skills{
  display:flex;
  flex-wrap:wrap;
  gap:0.4rem;
}

.rvlx-skill-tag{
  font-size:0.75rem;
  font-weight:500;
  color:var(--on-light-2);
  background:var(--parchment);
  border:1px solid var(--border-light);
  padding:0.25rem 0.65rem;
  border-radius:20px;
}

.rvlx-roles-list{
  display:flex;
  flex-direction:column;
  gap:var(--gap);
  max-width:760px;
  margin:0 auto;
}

.rvlx-culture-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:var(--gap);
}

.rvlx-culture-panel{
  padding:1.75rem;
  border-left:3px solid var(--ember);
}

.rvlx-culture-panel__title{
  font-weight:700;
  font-size:0.975rem;
  color:var(--on-light-1);
  margin-bottom:0.4rem;
}

.rvlx-culture-panel__body{
  font-size:0.875rem;
  color:var(--on-light-2);
  line-height:1.6;
}

/* ======================================================
   CONTACT
   ====================================================== */

.rvlx-contact-body{
  max-width:var(--container);
  margin:0 auto;
  padding-inline:clamp(1rem,4vw,2.5rem);
  display:grid;
  grid-template-columns:3fr 2fr;
  gap:3rem;
}

.rvlx-contact-form{
  background:#fff;
  border-radius:16px;
  padding:2.5rem;
  border:1px solid var(--border-light);
}

.rvlx-contact-info{
  padding-top:0.5rem;
}

.rvlx-form-group{
  margin-bottom:1.25rem;
}

.rvlx-form-label{
  display:block;
  font-size:0.85rem;
  font-weight:600;
  color:var(--on-light-1);
  margin-bottom:0.4rem;
}

.rvlx-form-input,
.rvlx-form-textarea{
  width:100%;
  padding:0.65rem 0.9rem;
  border:1.5px solid var(--border-light);
  border-radius:8px;
  font-size:0.9rem;
  color:var(--on-light-1);
  background:#fff;
  transition:border-color 180ms;
  outline:none;
  line-height:1.5;
}

.rvlx-form-input:focus,
.rvlx-form-textarea:focus{
  border-color:var(--ember);
}

.rvlx-form-textarea{
  resize:vertical;
  min-height:120px;
}

.rvlx-contact-info__heading{
  font-family:'Fraunces',serif;
  font-weight:700;
  font-size:1.15rem;
  color:var(--on-light-1);
  margin-bottom:1.25rem;
}

.rvlx-contact-detail{
  display:flex;
  gap:0.75rem;
  align-items:flex-start;
  margin-bottom:1rem;
}

.rvlx-contact-detail__icon{
  width:32px;height:32px;
  border-radius:8px;
  background:var(--parchment);
  display:flex;align-items:center;justify-content:center;
  font-size:0.8rem;
  color:var(--ember);
  flex-shrink:0;
}

.rvlx-contact-detail__text{
  font-size:0.9rem;
  color:var(--on-light-2);
  line-height:1.5;
}

.rvlx-contact-detail__text a{
  color:var(--ember);
  text-decoration:none;
}
.rvlx-contact-detail__text a:hover{text-decoration:underline}

/* ======================================================
   BLOG
   ====================================================== */

.rvlx-blog-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:var(--gap);
}

.rvlx-blog-filter{
  display:flex;
  align-items:center;
  gap:0.5rem;
  flex-wrap:wrap;
  margin-bottom:2.5rem;
}

.rvlx-filter-btn{
  font-size:0.825rem;
  font-weight:500;
  color:var(--on-light-2);
  background:var(--shelf);
  border:1px solid var(--border-light);
  border-radius:20px;
  padding:0.3rem 0.85rem;
  cursor:pointer;
  transition:background 180ms,color 180ms,border-color 180ms;
  font-family:'Plus Jakarta Sans',sans-serif;
}

.rvlx-filter-btn.is-active,
.rvlx-filter-btn:hover{
  background:var(--ink);
  color:var(--on-dark-1);
  border-color:var(--ink);
}

.rvlx-blog-card{
  background:var(--shelf);
  border-radius:14px;
  overflow:hidden;
  border:1px solid var(--border-light);
  display:flex;
  flex-direction:column;
  transition:box-shadow 200ms;
  text-decoration:none;
  color:inherit;
}

.rvlx-blog-card:hover{
  box-shadow:0 6px 24px rgba(26,22,19,0.1);
}

.rvlx-blog-card__cover{
  aspect-ratio:16/9;
  overflow:hidden;
  background:var(--fog);
}

.rvlx-blog-card__cover img{
  width:100%;
  height:auto;
  aspect-ratio:16/9;
  object-fit:cover;
  transition:transform 300ms var(--ease);
  display:block;
}

.rvlx-blog-card:hover .rvlx-blog-card__cover img{
  transform:scale(1.03);
}

.rvlx-blog-card__body{
  padding:1.25rem;
  display:flex;
  flex-direction:column;
  gap:0.6rem;
  flex:1;
}

.rvlx-blog-card__cat{
  font-size:0.72rem;
  font-weight:600;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--ember);
}

.rvlx-blog-card__title{
  font-family:'Fraunces',serif;
  font-weight:700;
  font-size:1.025rem;
  color:var(--on-light-1);
  line-height:1.35;
}

.rvlx-blog-card__excerpt{
  font-size:0.85rem;
  color:var(--on-light-2);
  line-height:1.55;
  flex:1;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}

.rvlx-blog-card__meta{
  display:flex;
  align-items:center;
  gap:0.5rem;
  font-size:0.775rem;
  color:var(--on-light-3);
  margin-top:auto;
}

.rvlx-blog-card__meta-dot{
  width:3px;height:3px;
  border-radius:50%;
  background:var(--on-light-3);
}

/* ======================================================
   BLOG ARTICLE
   ====================================================== */

.rvlx-article-hero{
  background:var(--shelf);
  padding:64px 0 48px;
}

.rvlx-article-hero__inner{
  max-width:900px;
  margin:0 auto;
  padding-inline:clamp(1rem,4vw,2.5rem);
}

.rvlx-article-hero__cat{
  font-size:0.75rem;
  font-weight:600;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--ember);
  margin-bottom:1rem;
}

.rvlx-article-hero__h1{
  font-family:'Fraunces',serif;
  font-weight:700;
  font-size:clamp(1.75rem,3.5vw,2.75rem);
  color:var(--on-light-1);
  line-height:1.2;
  margin-bottom:1.25rem;
}

.rvlx-article-hero__meta{
  display:flex;
  align-items:center;
  gap:0.75rem;
  font-size:0.85rem;
  color:var(--on-light-3);
}

.rvlx-article-hero__cover{
  max-width:900px;
  margin:0 auto;
  padding-inline:clamp(1rem,4vw,2.5rem);
  margin-bottom:0;
}

.rvlx-article-hero__cover img{
  width:100%;
  height:auto;
  border-radius:12px;
  aspect-ratio:16/9;
  object-fit:cover;
  display:block;
}

.rvlx-article-body{
  max-width:720px;
  margin:0 auto;
  padding:3rem clamp(1rem,4vw,2.5rem);
  color:var(--on-light-1);
}

.rvlx-blog-content h2{
  font-family:'Fraunces',serif;
  font-size:1.5rem;
  font-weight:700;
  color:var(--on-light-1);
  margin-top:2.5rem;
  margin-bottom:0.75rem;
}

.rvlx-blog-content h3{
  font-family:'Fraunces',serif;
  font-size:1.2rem;
  font-weight:700;
  color:var(--on-light-1);
  margin-top:2rem;
  margin-bottom:0.5rem;
}

.rvlx-blog-content p{
  font-size:1rem;
  line-height:1.8;
  color:var(--on-light-2);
  margin-bottom:1.25rem;
}

.rvlx-blog-content ul,
.rvlx-blog-content ol{
  padding-left:1.5em;
  margin-bottom:1.25rem;
}

.rvlx-blog-content ul{
  list-style:disc;
}

.rvlx-blog-content ol{
  list-style:decimal;
}

.rvlx-blog-content li{
  font-size:1rem;
  line-height:1.75;
  color:var(--on-light-2);
  margin-bottom:0.4rem;
}

.rvlx-blog-content blockquote{
  border-left:3px solid var(--ember);
  padding-left:1.25rem;
  margin:1.5rem 0;
  font-style:italic;
  color:var(--on-light-2);
}

.rvlx-blog-content pre{
  background:var(--ink);
  border-radius:10px;
  padding:1.25rem;
  overflow-x:auto;
  margin-bottom:1.25rem;
}

.rvlx-blog-content pre code{
  font-family:'JetBrains Mono',monospace;
  font-size:0.85rem;
  color:var(--on-dark-2);
  background:transparent;
  border:none;
  padding:0;
}

.rvlx-blog-content code{
  font-family:'JetBrains Mono',monospace;
  font-size:0.85em;
  background:var(--parchment);
  color:var(--on-light-1);
  padding:0.15em 0.4em;
  border-radius:4px;
}

.rvlx-blog-content img{
  max-width:100%;
  border-radius:10px;
  margin:1.5rem 0;
}

/* ======================================================
   LEGAL PAGES
   ====================================================== */

.rvlx-legal-page main{
  background:var(--shelf);
}

.rvlx-legal-content{
  max-width:760px;
  margin:0 auto;
  padding:3rem clamp(1rem,4vw,2.5rem) 5rem;
  background:var(--shelf);
}

.legal-article .legal-header{
  margin-bottom:2.5rem;
  padding-bottom:1.5rem;
  border-bottom:1px solid var(--border-light);
}

.legal-article .legal-header h1{
  font-family:'Fraunces',serif;
  font-weight:700;
  font-size:clamp(1.75rem,3vw,2.5rem);
  color:var(--on-light-1);
  margin-bottom:0.75rem;
}

.legal-article .legal-meta{
  font-size:0.85rem;
  color:var(--on-light-3);
}

.legal-article section{
  margin-bottom:2rem;
}

.legal-article h2{
  font-family:'Fraunces',serif;
  font-size:1.25rem;
  font-weight:700;
  color:var(--on-light-1);
  margin-bottom:0.75rem;
  margin-top:1.5rem;
}

.legal-article h3{
  font-size:1rem;
  font-weight:700;
  color:var(--on-light-1);
  margin-bottom:0.5rem;
  margin-top:1.25rem;
  font-family:'Plus Jakarta Sans',sans-serif;
}

.legal-article p{
  font-size:0.925rem;
  line-height:1.75;
  color:var(--on-light-2);
  margin-bottom:0.75rem;
}

.legal-article ul,
.legal-article ol{
  padding-left:1.5em;
  margin-bottom:0.75rem;
}

.legal-article ul{list-style:disc}
.legal-article ol{list-style:decimal}

.legal-article li{
  font-size:0.925rem;
  line-height:1.7;
  color:var(--on-light-2);
  margin-bottom:0.3rem;
}

.legal-article a{
  color:var(--ember);
  text-decoration:underline;
}

.legal-article address{
  font-style:normal;
  font-size:0.9rem;
  color:var(--on-light-2);
  line-height:1.7;
  background:var(--parchment);
  border-radius:8px;
  padding:1rem 1.25rem;
}

.legal-table{
  width:100%;
  border-collapse:collapse;
  font-size:0.875rem;
  margin-bottom:1rem;
}

.legal-table th{
  text-align:left;
  font-weight:600;
  color:var(--on-light-1);
  padding:0.6rem 0.75rem;
  border-bottom:2px solid var(--border-light);
  background:var(--parchment);
}

.legal-table td{
  padding:0.6rem 0.75rem;
  border-bottom:1px solid var(--border-light);
  color:var(--on-light-2);
  vertical-align:top;
}

/* ======================================================
   AUTH PAGES
   ====================================================== */

.rvlx-auth-page{
  min-height:100vh;
  background:var(--parchment);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:2rem 1rem;
}

.rvlx-auth-card{
  background:var(--ink);
  border-radius:20px;
  padding:2.75rem;
  width:100%;
  max-width:440px;
}

.rvlx-auth-card__logo{
  display:flex;
  justify-content:center;
  margin-bottom:2rem;
}

.rvlx-auth-card__logo img{
  height:28px;
  width:auto;
}

.rvlx-auth-card__heading{
  font-family:'Fraunces',serif;
  font-weight:700;
  font-size:1.75rem;
  color:var(--on-dark-1);
  text-align:center;
  margin-bottom:0.5rem;
}

.rvlx-auth-card__sub{
  font-size:0.875rem;
  color:var(--on-dark-2);
  text-align:center;
  margin-bottom:2rem;
}

.rvlx-auth-form{
  display:flex;
  flex-direction:column;
  gap:1rem;
}

.rvlx-auth-label{
  display:block;
  font-size:0.8rem;
  font-weight:600;
  color:var(--on-dark-2);
  margin-bottom:0.35rem;
}

.rvlx-auth-input{
  width:100%;
  padding:0.7rem 0.9rem;
  border:1.5px solid var(--border-dark);
  border-radius:8px;
  font-size:0.9rem;
  color:var(--on-dark-1);
  background:var(--ink-alt);
  transition:border-color 180ms;
  outline:none;
}

.rvlx-auth-input:focus{border-color:var(--ember)}
.rvlx-auth-input::placeholder{color:var(--on-dark-3)}

.rvlx-auth-submit{
  width:100%;
  padding:0.75rem;
  background:var(--ember);
  color:#fff;
  border:none;
  border-radius:8px;
  font-size:0.975rem;
  font-weight:600;
  cursor:pointer;
  transition:background 180ms;
  font-family:'Plus Jakarta Sans',sans-serif;
  margin-top:0.5rem;
}

.rvlx-auth-submit:hover{background:var(--ember-hover)}

.rvlx-auth-links{
  text-align:center;
  margin-top:1.25rem;
  font-size:0.85rem;
  color:var(--on-dark-2);
}

.rvlx-auth-links a{
  color:var(--ember-muted);
  text-decoration:none;
}
.rvlx-auth-links a:hover{text-decoration:underline;color:var(--ember)}

.rvlx-auth-divider{
  display:flex;
  align-items:center;
  gap:1rem;
  margin:1.25rem 0;
}

.rvlx-auth-divider__line{
  flex:1;
  height:1px;
  background:var(--border-dark);
}

.rvlx-auth-divider__text{
  font-size:0.75rem;
  color:var(--on-dark-3);
  white-space:nowrap;
}

.rvlx-auth-shopify{
  width:100%;
  padding:0.7rem;
  background:transparent;
  border:1.5px solid var(--border-dark);
  border-radius:8px;
  color:var(--on-dark-1);
  font-size:0.9rem;
  font-weight:500;
  cursor:pointer;
  transition:border-color 180ms,background 180ms;
  font-family:'Plus Jakarta Sans',sans-serif;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:0.6rem;
}

.rvlx-auth-shopify:hover{
  border-color:var(--ember-muted);
  background:rgba(232,93,10,0.06);
}

.rvlx-auth-legal{
  margin-top:1.5rem;
  text-align:center;
  font-size:0.775rem;
  color:var(--on-dark-3);
  line-height:1.6;
}

.rvlx-auth-legal a{
  color:var(--on-dark-3);
  text-decoration:underline;
}
.rvlx-auth-legal a:hover{color:var(--on-dark-2)}

/* ======================================================
   FOOTER
   ====================================================== */

.rvlx-footer{
  background:var(--ink);
  padding:64px 0 32px;
}

.rvlx-footer__inner{
  max-width:var(--container);
  margin:0 auto;
  padding-inline:clamp(1rem,4vw,2.5rem);
}

.rvlx-footer__grid{
  display:grid;
  grid-template-columns:2fr 1fr 1fr 1fr;
  gap:3rem;
  padding-bottom:3rem;
  border-bottom:1px solid var(--border-dark);
}

.rvlx-footer__brand{}

.rvlx-footer__logo{
  margin-bottom:1rem;
  display:block;
}

.rvlx-footer__logo img{
  height:26px;
  width:auto;
}

.rvlx-footer__tagline{
  font-size:0.875rem;
  color:var(--on-dark-2);
  line-height:1.6;
  max-width:280px;
  margin-bottom:1.25rem;
}

.rvlx-footer__social{
  display:flex;
  gap:0.75rem;
}

.rvlx-footer__social-link{
  width:34px;height:34px;
  border-radius:8px;
  background:rgba(58,50,48,0.6);
  border:1px solid var(--border-dark);
  display:flex;align-items:center;justify-content:center;
  color:var(--on-dark-2);
  font-size:0.875rem;
  text-decoration:none;
  transition:background 180ms,color 180ms,border-color 180ms;
}

.rvlx-footer__social-link:hover{
  background:var(--ember);
  color:#fff;
  border-color:var(--ember);
}

.rvlx-footer__col-title{
  font-weight:600;
  font-size:0.8rem;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--on-dark-3);
  margin-bottom:1rem;
}

.rvlx-footer__col-links{
  display:flex;
  flex-direction:column;
  gap:0.5rem;
}

.rvlx-footer__col-link{
  font-size:0.875rem;
  color:var(--on-dark-2);
  text-decoration:none;
  transition:color 150ms;
}

.rvlx-footer__col-link:hover{color:var(--on-dark-1)}

.rvlx-footer__bottom{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding-top:1.5rem;
  flex-wrap:wrap;
}

.rvlx-footer__copy{
  font-size:0.8rem;
  color:var(--on-dark-3);
}

.rvlx-footer__cookie-pref{
  font-size:0.8rem;
  color:var(--on-dark-3);
  text-decoration:none;
  transition:color 150ms;
  cursor:pointer;
}

.rvlx-footer__cookie-pref:hover{color:var(--on-dark-2)}

/* ======================================================
   COOKIE BANNER
   ====================================================== */

.cookie-banner{
  position:fixed;
  bottom:0;left:0;right:0;
  z-index:9999;
  background:var(--ink-alt);
  border-top:1px solid var(--border-dark);
}

.cookie-banner__inner{
  max-width:var(--container);
  margin:0 auto;
  padding:1rem clamp(1rem,4vw,2.5rem);
  display:flex;
  align-items:center;
  gap:1.5rem;
  flex-wrap:wrap;
}

.cookie-banner__text{
  flex:1;
  font-size:0.85rem;
  color:var(--on-dark-2);
  line-height:1.5;
  min-width:200px;
}

.cookie-banner__text a{
  color:var(--ember-muted);
  text-decoration:underline;
}

.cookie-banner__actions{
  flex-shrink:0;
}

.cookie-banner__btn{
  padding:0.5rem 1.25rem;
  background:var(--ember);
  color:#fff;
  border:1.5px solid var(--ember);
  border-radius:8px;
  font-size:0.85rem;
  font-weight:600;
  cursor:pointer;
  font-family:'Plus Jakarta Sans',sans-serif;
  transition:background 180ms,border-color 180ms;
}

.cookie-banner__btn:hover{
  background:var(--ember-hover);
  border-color:var(--ember-hover);
}

.cookie-banner--notice{}

.cookie-banner__btn--primary{
  background:var(--ember);
  color:#fff;
  border-color:var(--ember);
}

.rvlx-toggle-label--monthly,
.rvlx-toggle-label--annual{}

.rvlx-price--monthly,
.rvlx-price--annual{}

/* ======================================================
   FADE-IN ON SCROLL
   ====================================================== */

.rvlx-fade{
  opacity:0;
  transform:translateY(20px);
  transition:opacity 500ms var(--ease),transform 500ms var(--ease);
}

.rvlx-fade.is-visible{
  opacity:1;
  transform:none;
}

/* ======================================================
   404 PAGE
   ====================================================== */

.rvlx-404{
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  background:var(--shelf);
  padding:2rem;
}

.rvlx-404__inner{
  max-width:480px;
}

.rvlx-404__num{
  font-family:'Fraunces',serif;
  font-style:italic;
  font-size:8rem;
  font-weight:700;
  color:var(--ember);
  line-height:1;
  margin-bottom:0.5rem;
}

.rvlx-404__headline{
  font-family:'Fraunces',serif;
  font-size:1.5rem;
  font-weight:700;
  color:var(--on-light-1);
  margin-bottom:0.75rem;
}

.rvlx-404__body{
  font-size:0.975rem;
  color:var(--on-light-2);
  margin-bottom:2rem;
}

.rvlx-404__actions{
  display:flex;
  gap:0.75rem;
  justify-content:center;
}

/* ======================================================
   RESPONSIVE
   ====================================================== */

@media(max-width:1024px){
  .rvlx-usecases__grid{grid-template-columns:1fr 1fr}
  .rvlx-footer__grid{grid-template-columns:1fr 1fr}
}

@media(max-width:768px){
  .rvlx-section{padding:64px 0}

  .rvlx-nav__links,
  .rvlx-nav__actions{display:none}
  .rvlx-nav__hamburger{display:flex}

  .rvlx-hero__inner{
    grid-template-columns:1fr;
    padding-top:120px;
    padding-bottom:64px;
    text-align:center;
  }
  .rvlx-hero__sub{margin:0 auto 2rem}
  .rvlx-hero__actions{justify-content:center}
  .rvlx-hero__visual{justify-content:center;margin-top:2rem}

  .rvlx-problem-bar__inner{grid-template-columns:1fr}
  .rvlx-how__inner{grid-template-columns:1fr}
  .rvlx-usecases__grid{grid-template-columns:1fr}
  .rvlx-metrics__inner{grid-template-columns:1fr}
  .rvlx-testimonials__grid{grid-template-columns:1fr}

  .rvlx-page-hero__inner{
    grid-template-columns:1fr;
    text-align:center;
  }
  .rvlx-page-hero__sub{max-width:none;margin:0 auto}
  .rvlx-page-hero__ornament{justify-content:center;margin-top:2rem}

  .rvlx-two-col{grid-template-columns:1fr}
  .rvlx-two-col--reverse{direction:ltr}

  .rvlx-pricing-grid{grid-template-columns:1fr}
  .rvlx-integrations-grid{grid-template-columns:1fr 1fr}
  .rvlx-blog-grid{grid-template-columns:1fr 1fr}

  .rvlx-case-study__detail{grid-template-columns:1fr}
  .rvlx-results-row{grid-template-columns:1fr 1fr}

  .rvlx-founder-story__inner{grid-template-columns:1fr}
  .rvlx-team-grid{grid-template-columns:1fr 1fr}
  .rvlx-values-grid{grid-template-columns:1fr}
  .rvlx-culture-grid{grid-template-columns:1fr}

  .rvlx-contact-body{grid-template-columns:1fr}

  .rvlx-footer__grid{grid-template-columns:1fr 1fr}

  .rvlx-testimonials-grid{grid-template-columns:1fr}
}

@media(max-width:480px){
  .rvlx-integrations-grid{grid-template-columns:1fr}
  .rvlx-blog-grid{grid-template-columns:1fr}
  .rvlx-team-grid{grid-template-columns:1fr}
  .rvlx-results-row{grid-template-columns:1fr}
  .rvlx-footer__grid{grid-template-columns:1fr}
  .rvlx-cta-band__actions{flex-direction:column;align-items:center}
  .rvlx-hero__actions{flex-direction:column;align-items:center}
  .rvlx-404__actions{flex-direction:column;align-items:center}
}
