/* Self-hosted (no CDN): privacy-first, and no third-party font request. */
@font-face{font-family:'Instrument Sans';src:url('/assets/fonts/instrument-sans-variable.woff2') format('woff2-variations');font-weight:400 700;font-style:normal;font-display:swap}
@font-face{font-family:'Instrument Sans';src:url('/assets/fonts/instrument-sans-variable-italic.woff2') format('woff2-variations');font-weight:400 700;font-style:italic;font-display:swap}
@font-face{font-family:'Newsreader';src:url('/assets/fonts/newsreader-latin-wght-normal.woff2') format('woff2-variations');font-weight:300 700;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Newsreader';src:url('/assets/fonts/newsreader-latin-ext-wght-normal.woff2') format('woff2-variations');font-weight:300 700;font-style:normal;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Newsreader';src:url('/assets/fonts/newsreader-latin-wght-italic.woff2') format('woff2-variations');font-weight:300 700;font-style:italic;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Newsreader';src:url('/assets/fonts/newsreader-latin-ext-wght-italic.woff2') format('woff2-variations');font-weight:300 700;font-style:italic;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Spline Sans Mono';src:url('/assets/fonts/spline-sans-mono-latin-wght-normal.woff2') format('woff2-variations');font-weight:400 600;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Spline Sans Mono';src:url('/assets/fonts/spline-sans-mono-latin-ext-wght-normal.woff2') format('woff2-variations');font-weight:400 600;font-style:normal;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}

html{scroll-behavior:smooth}
html,body{margin:0;padding:0;background:#F5F0E6;color:#241B2B}
body{font-family:'Instrument Sans','Helvetica Neue',Helvetica,sans-serif;-webkit-font-smoothing:antialiased;overflow-x:clip}
a{color:#4A2952}a:hover{color:#6D4A8F}
::selection{background:#E4D4EF}
:root{--site-max:1280px;--site-gutter:clamp(22px,5vw,72px);--content-max:1280px}
.site-header{position:sticky;top:0;z-index:100;background:rgba(245,240,230,.94);border-bottom:1px solid rgba(36,27,43,.14);backdrop-filter:blur(12px)}
.header-inner{max-width:var(--site-max);margin:0 auto;padding:12px var(--site-gutter);display:flex;align-items:center;justify-content:space-between;gap:24px;box-sizing:border-box}
.brand-group,.brand{display:flex;align-items:center}.brand-group{gap:11px}.brand{gap:2px;color:#241B2B;text-decoration:none;font-family:'Newsreader',Georgia,serif;font-size:23px;font-weight:500;letter-spacing:-.01em}
.brand img{display:block;width:35px;height:27px;object-fit:contain}.beta-label{font-family:'Spline Sans Mono',monospace;font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:rgba(36,27,43,.55);border:1px solid rgba(36,27,43,.24);border-radius:999px;padding:3px 9px}
.site-nav{display:flex;align-items:center;gap:22px;font-size:14px}.site-nav a{color:#4A2952;text-decoration:none}.site-nav a[aria-current=page]{font-weight:600;text-decoration:underline;text-underline-offset:5px}.site-nav .nav-cta{padding:10px 20px;border-radius:999px;background:#38203F;color:#F5EFE4;font-weight:600;text-decoration:none;white-space:nowrap}.site-nav .nav-cta[aria-current=page]{text-decoration:none;box-shadow:0 0 0 2px rgba(109,74,143,.3)}
.site-nav a:hover,.site-nav a:focus-visible{color:#6D4A8F}.site-nav .nav-cta:hover,.site-nav .nav-cta:focus-visible{background:#241428;color:#FFF}.brand:focus-visible,.site-nav a:focus-visible{outline:2px solid #6D4A8F;outline-offset:4px}
.page-shell{max-width:var(--content-max)!important;padding-inline:var(--site-gutter)!important}
@keyframes rl-caret{0%,55%{opacity:1}56%,100%{opacity:0}}
@keyframes rl-shake{0%,100%{transform:translateX(0)}20%,60%{transform:translateX(-3px)}40%,80%{transform:translateX(3px)}}
@media (max-width:980px){
[data-mstack]{grid-template-columns:1fr !important}
[data-mhide]{display:none !important}
[data-mnb]{border-left:none !important;border-right:none !important;padding-left:0 !important;padding-right:0 !important}
[data-mtb]{border-top:1px solid rgba(36,27,43,.14) !important}
}
@media (max-width:700px){
.header-inner{padding:10px 18px;gap:12px}.brand{font-size:21px}.brand img{width:31px;height:24px}.beta-label,.site-nav>a:not(.nav-cta){display:none}.site-nav{gap:0}.site-nav .nav-cta{padding:9px 14px;font-size:13px}
}
@media (min-width:1920px){
:root{--site-max:clamp(1280px,calc(140px + 59.375vw),1660px);--content-max:clamp(1280px,calc(140px + 59.375vw),1660px);--site-gutter:clamp(72px,calc(-12px + 4.375vw),100px)}
.site-nav{font-size:clamp(14px,calc(11px + .15625vw),15px)}
.wide-hero-title{font-size:clamp(94px,calc(22px + 3.75vw),118px)!important}
.wide-hero-proposition{font-size:clamp(30px,calc(15px + .78125vw),35px)!important}
.wide-hero-grid{grid-template-columns:clamp(330px,calc(150px + 9.375vw),390px) 1fr!important}
.wide-hero-copy{font-size:clamp(17px,calc(14px + .15625vw),18px)!important}
.wrap{max-width:clamp(1280px,calc(620px + 34.375vw),1500px)!important}
.hero h1{font-size:clamp(68px,calc(32px + 1.875vw),80px)!important}
.lead{font-size:clamp(17px,calc(14px + .15625vw),18px)!important}
}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*{animation:none !important;transition:none !important}}

/* hover / focus states lifted out of style-hover / style-focus attributes */
.rl-x0:hover{background:#241428}
.rl-x0:focus-visible{outline:2px solid #6D4A8F;outline-offset:2px}
.rl-x1:focus-visible{outline:none}
.rl-x2:hover{color:#4A2952}
/* Focus ring lives on the pill wrapper, since the input itself sets outline:none. */
#rl-join-form > div:focus-within{outline:2px solid #6D4A8F;outline-offset:2px}
#rl-join-form button[type=submit][disabled]{opacity:.65;cursor:default}
/* Never let the animated demos leak a horizontal scrollbar. */
img,svg{max-width:100%}
/* Rows that visually swap columns on desktop fall back to DOM order on mobile. */
@media (max-width:980px){[data-mswap] > *{grid-column:auto !important;grid-row:auto !important}}

/* Grid items default to min-width:auto, so a stacked column still refuses to go
   below its content width and the demo mockups spill off a phone screen. Let
   them shrink; each mockup already clips its own overflow. */
@media (max-width:980px){
  [data-mstack] > *{min-width:0}
  [data-mstack] img,[data-mstack] svg{max-width:100%}
}

/* Hero headline: line one rolls through phrases, line two stays put. The clip
   box is taller than the line box so descenders are never sheared off, and the
   second line is pulled back up by exactly that overhang. */
#rl-h1-rot{display:block;overflow:hidden;height:1.24em;white-space:nowrap}
#rl-h1-line{display:inline-block;padding-bottom:.2em;
  transition:transform .55s cubic-bezier(.3,0,.2,1),opacity .55s}
#rl-h1-keep{display:block;margin-top:-.2em}

/* Launch positioning: a slower title/body pair below the pain headline. Fixed
   minimum heights keep the demonstration and CTAs from jumping between slides. */
/* Two lines exactly. The longest slide ran to three, so the demo below it
   jumped down every time that phrase came round. */
#rl-proposition{min-height:2.44em;max-width:46ch;text-wrap:balance}
#rl-hero-copy{display:inline-block;min-height:6.6em;
  transition:transform .45s cubic-bezier(.3,0,.2,1),opacity .45s}
#rl-hero-synthetic{display:none !important}
.rl-hero-video-shell{position:relative;width:100%;aspect-ratio:2978/1080;overflow:hidden;
  background:transparent}
#rl-hero-video{display:block;width:100%;height:100%;object-fit:cover;object-position:center;
  background:transparent}
.rl-hero-video-toggle{position:absolute;right:12px;bottom:12px;z-index:2;border:1px solid rgba(245,240,230,.2);
  border-radius:999px;background:rgba(42,23,48,.88);color:#F5EDDE;padding:7px 11px;
  font:500 10px/1 'Spline Sans Mono',monospace;letter-spacing:.11em;text-transform:uppercase;
  cursor:pointer;opacity:0;transform:translateY(4px);transition:opacity .25s,transform .25s;
  backdrop-filter:blur(8px)}
.rl-hero-video-shell:hover .rl-hero-video-toggle,.rl-hero-video-toggle:focus-visible{opacity:1;transform:none}
.rl-hero-video-toggle:focus-visible{outline:2px solid #6D4A8F;outline-offset:3px}
@media (hover:none){.rl-hero-video-toggle{opacity:1;transform:none}}
@media (max-width:700px){
  #rl-proposition{min-height:4em}
  #rl-hero-copy{min-height:9.5em}
}

/* Shared shell for the migrated account and policy pages. Keep their approved
   copy intact while bringing the presentation into the new light Relayne
   system: white canvas, restrained borders, and readable editorial measure. */
body:has(main) {
  background: #fff;
  color: #191b1d;
}
body:has(main) .site-header {
  background: rgba(255,255,255,.94);
  border-bottom-color: #d9dddf;
}
.doc, main > article, main > section {
  max-width: 820px;
  margin-inline: auto;
  padding: clamp(64px, 9vw, 120px) var(--site-gutter) 96px;
}
.doc h1, main h1 {
  color: #191b1d;
  letter-spacing: -.04em;
}
.doc h2, main h2 {
  color: #191b1d;
  border-top-color: #d9dddf;
}
.doc .intro, main .lead {
  color: #555b60;
}
