/* Bundles marketing site — shares the DKN / Hooked / e-Com GOD design language.
   Same tokens, same class naming, scoped to what this page actually uses. */
:root{
  --bg:#030507; --border:rgba(255,255,255,.1); --text:#f8fafc; --muted:#a8b3c5; --dim:#687386;
  --cyan:#67e8f9; --cyan-bright:#cffafe; --teal:#2dd4bf; --blue:#38bdf8; --violet:#8b5cf6; --coral:#fb7185;
  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Roboto,sans-serif;
  --mono:ui-monospace,"JetBrains Mono",SFMono-Regular,Menlo,Consolas,monospace;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;overflow-x:hidden;max-width:100%}
body{min-height:100vh;color:var(--text);font-family:var(--sans);line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden;
  background:radial-gradient(circle at 82% 2%,rgba(34,211,238,.15),transparent 28%),radial-gradient(circle at 8% 25%,rgba(139,92,246,.1),transparent 24%),var(--bg)}
body::before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.11;
  background-image:linear-gradient(rgba(255,255,255,.2) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.2) 1px,transparent 1px);
  background-size:50px 50px;-webkit-mask-image:linear-gradient(to bottom,black,transparent 88%);mask-image:linear-gradient(to bottom,black,transparent 88%)}
h1,h2,h3{letter-spacing:-.04em;line-height:1.1}
a{color:var(--cyan-bright)}
img,svg{display:block;max-width:100%}

/* ── Loading screen ──────────────────────────────────────────────────────────
   Covers the page until the window load event, then fades out and is removed
   from the accessibility tree. It is opt-in via .is-loading on <html>, set by an
   inline script, so the page still renders if JavaScript never runs. */
.page-loader{position:fixed;inset:0;z-index:999;display:grid;place-items:center;gap:26px;
  background:radial-gradient(circle at 50% 42%,rgba(34,211,238,.12),transparent 46%),var(--bg);
  transition:opacity .5s ease,visibility .5s}
html:not(.is-loading) .page-loader{opacity:0;visibility:hidden;pointer-events:none}
.page-loader-inner{display:grid;justify-items:center;gap:22px}
/* The mark sits on its own plate so the wipe has a hard edge to run against. */
.splash-plate{display:grid;place-items:center;width:84px;height:84px;border-radius:22px;background:#000;overflow:hidden;
  box-shadow:0 0 0 1px rgba(255,255,255,.08),0 18px 60px rgba(0,0,0,.55)}
/* The mark fills from the bottom up, the way a box fills, then breathes. */
.splash-mark{width:84px;height:84px;color:#fff;
  animation:bx-reveal .78s cubic-bezier(.45,.05,.3,1) .08s both,bx-halo 1.8s ease-in-out .86s infinite}
@keyframes bx-reveal{from{clip-path:inset(100% 0 0 0)}to{clip-path:inset(0 0 0 0)}}
@keyframes bx-halo{0%,100%{filter:drop-shadow(0 0 0 rgba(103,232,249,0))}50%{filter:drop-shadow(0 0 18px rgba(103,232,249,.55))}}
.page-loader-bar{width:172px;height:2px;border-radius:99px;background:rgba(255,255,255,.09);overflow:hidden}
.page-loader-bar i{display:block;width:40%;height:100%;border-radius:99px;background:linear-gradient(90deg,transparent,var(--cyan),transparent);animation:bx-sweep 1.15s ease-in-out infinite}
@keyframes bx-sweep{0%{transform:translateX(-110%)}100%{transform:translateX(360%)}}
.page-loader small{color:var(--dim);font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase}
/* Respect reduced-motion: keep the cover, drop the movement. */
@media(prefers-reduced-motion:reduce){
  .splash-mark,.page-loader-bar i{animation:none}
  .page-loader{transition:none}
}

/* ── Shared atoms ────────────────────────────────────────────────────────────*/
.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 22px;border:1px solid transparent;border-radius:12px;font-size:13.5px;font-weight:700;text-decoration:none;cursor:pointer;transition:.18s;font-family:var(--sans)}
.button-primary{color:#001018;background:linear-gradient(135deg,#67e8f9,#a5f3fc);box-shadow:0 0 36px rgba(103,232,249,.22)}
.button-primary:hover{transform:translateY(-1px);background:linear-gradient(135deg,#a5f3fc,#cffafe);box-shadow:0 0 46px rgba(103,232,249,.34)}
.button-ghost{color:var(--text);border-color:var(--border);background:rgba(255,255,255,.025)}
.button-ghost:hover{border-color:rgba(255,255,255,.38)}
.button-large{min-height:52px;padding:0 28px;font-size:14.5px}
.eyebrow{display:inline-flex;align-items:center;gap:8px;color:var(--cyan-bright);font-family:var(--mono);font-size:12px;font-weight:600;letter-spacing:.11em;text-transform:uppercase}
.eyebrow i{width:6px;height:6px;border-radius:99px;background:var(--cyan);box-shadow:0 0 16px rgba(103,232,249,.6)}
.brand-lockup{display:inline-flex;align-items:center;gap:11px;color:var(--text);text-decoration:none}
.brand-lockup b{font-size:17px;letter-spacing:-.02em}
.brand-lockup b em{color:var(--cyan-bright);font-style:normal}
.brand-lockup small{color:var(--dim);font-family:var(--mono);font-size:9px;letter-spacing:.15em;text-transform:uppercase;display:block}
.brand-mark{display:grid;place-items:center;width:30px;height:30px;color:#fff;filter:drop-shadow(0 0 18px rgba(255,255,255,.12))}

/* ── Nav ─────────────────────────────────────────────────────────────────────*/
.marketing-header{position:relative;z-index:90;width:min(1240px,calc(100% - 32px));margin:16px auto 0}
.marketing-nav{height:72px;padding:0 16px 0 14px;display:flex;align-items:center;gap:25px;border:1px solid var(--border);border-radius:20px;background:rgba(3,7,12,.72);box-shadow:0 18px 55px rgba(0,0,0,.22),inset 0 1px rgba(255,255,255,.035);backdrop-filter:blur(22px)}
.marketing-brand{flex:1;display:flex;text-decoration:none}
.marketing-nav-links{display:flex;align-items:center;gap:5px}
.marketing-nav-links a{padding:8px 11px;border-radius:99px;color:var(--muted);font-size:13px;letter-spacing:.04em;text-decoration:none;transition:.18s}
.marketing-nav-links a:hover{color:var(--text);background:rgba(255,255,255,.04)}
.marketing-nav-actions{display:flex;align-items:center;gap:7px}
.marketing-menu-button{display:none;width:40px;height:40px;border:1px solid var(--border);border-radius:12px;background:rgba(255,255,255,.025);cursor:pointer}
.marketing-menu-button span{width:17px;height:1px;display:block;margin:5px auto;background:var(--text)}
.marketing-mobile-menu{position:absolute;top:78px;left:0;right:0;padding:12px;display:none;flex-direction:column;gap:3px;border:1px solid var(--border);border-radius:18px;background:rgba(4,8,14,.97);box-shadow:0 30px 70px rgba(0,0,0,.45);backdrop-filter:blur(24px)}
.marketing-mobile-menu.open{display:flex}
.marketing-mobile-menu>a:not(.button){padding:12px;color:var(--muted);text-decoration:none}

/* ── Hero ────────────────────────────────────────────────────────────────────*/
.marketing-hero{position:relative;z-index:1;width:min(1240px,calc(100% - 40px));margin:auto;padding:84px 0 96px;display:grid;grid-template-columns:minmax(0,.92fr) minmax(460px,1.08fr);align-items:center;gap:58px}
.marketing-glow{position:absolute;pointer-events:none;border-radius:50%;filter:blur(12px)}
.glow-one{width:620px;height:560px;left:-390px;top:30px;background:radial-gradient(circle,rgba(255,255,255,.08),transparent 66%)}
.glow-two{width:600px;height:500px;right:-260px;top:0;background:radial-gradient(circle,rgba(34,211,238,.16),transparent 66%)}
.marketing-hero-copy{position:relative;z-index:2;min-width:0}
.marketing-hero-copy h1{margin:24px 0;font-size:clamp(44px,4.8vw,70px);font-weight:600;line-height:.99;letter-spacing:-.055em}
.marketing-hero-copy h1 em{color:var(--cyan-bright);font-style:normal;text-shadow:0 0 42px rgba(103,232,249,.16)}
.marketing-hero-copy>p{max-width:620px;color:var(--muted);font-size:17px;line-height:1.75}
.hero-actions{display:flex;gap:10px;flex-wrap:wrap;margin:30px 0 16px}
.marketing-hero-copy>small{color:var(--dim);font-family:var(--mono);font-size:11px}

/* Order-page comparison — the entire product argument in one image */
.order-compare{position:relative;min-width:0;padding:20px;border:1px solid rgba(255,255,255,.18);border-radius:28px;
  background:radial-gradient(circle at 88% 0,rgba(34,211,238,.14),transparent 34%),linear-gradient(145deg,rgba(11,17,28,.94),rgba(3,7,12,.97));
  box-shadow:0 50px 110px rgba(0,0,0,.48),0 0 70px rgba(255,255,255,.035),inset 0 1px rgba(255,255,255,.05)}
.order-compare>header{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:16px;color:var(--muted);font-size:11px}
.order-compare>header b{color:var(--text);font-size:13px}
.demo-badge{display:inline-flex;align-items:center;gap:6px;padding:5px 8px;border:1px solid rgba(255,255,255,.16);border-radius:99px;color:var(--cyan-bright);background:rgba(255,255,255,.05);font-size:10px}
.demo-badge i{width:5px;height:5px;border-radius:50%;background:var(--teal);box-shadow:0 0 10px var(--teal)}
.order-pane{padding:15px;border:1px solid var(--border);border-radius:16px;background:rgba(255,255,255,.02)}
.order-pane+.order-pane{margin-top:10px}
.order-pane.after{border-color:rgba(103,232,249,.3);background:rgba(34,211,238,.055)}
.order-pane>span{display:flex;align-items:center;gap:7px;margin-bottom:12px;color:var(--dim);font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase}
.order-pane.after>span{color:var(--teal)}
/* min-width:0 on the text cell: without it the grid track refuses to shrink
   below its longest word and the whole card overflows a narrow viewport. */
.order-line{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:11px;padding:7px 0}
.order-line>b{min-width:0;overflow-wrap:anywhere}
.order-line+.order-line{border-top:1px solid rgba(255,255,255,.05)}
.order-thumb{width:34px;height:34px;border-radius:8px;border:1px solid var(--border);background:linear-gradient(140deg,rgba(255,255,255,.16),rgba(34,211,238,.15))}
.order-thumb.blank{background:rgba(255,255,255,.03);border-style:dashed}
.order-line b{display:block;font-size:12.5px;font-weight:600;line-height:1.35}
/* The SKU sits under the product name — without display:block it runs straight
   on from the title, e.g. "Mango MadnessGL-MANGO". */
.order-line small{display:block;color:var(--dim);font-family:var(--mono);font-size:10px;font-weight:400}
/* .order-qty, not .order-line>span — the thumbnail is a span too, and a
   descendant selector would drag it out of its own grid column. */
.order-qty{color:var(--muted);font-family:var(--mono);font-size:11px;white-space:nowrap}
.order-props{margin-top:9px;padding:10px 12px;border-radius:10px;background:rgba(255,255,255,.03);color:var(--dim);font-family:var(--mono);font-size:10.5px;line-height:1.85}
.order-total{display:flex;align-items:center;justify-content:space-between;margin-top:12px;padding-top:11px;border-top:1px solid var(--border);font-size:12px}
.order-total b{font-family:var(--mono);font-size:14px}
.order-total em{color:var(--teal);font-style:normal;font-size:10.5px}

/* ── Trust strip + sections ──────────────────────────────────────────────────*/
.trust-strip{position:relative;z-index:2;width:min(1240px,calc(100% - 40px));min-height:68px;margin:auto;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:28px;border-block:1px solid var(--border);color:var(--dim);font-family:var(--mono);font-size:11px;letter-spacing:.13em;text-transform:uppercase;text-align:center}
.trust-strip i{width:3px;height:3px;border-radius:50%;background:var(--cyan);box-shadow:0 0 10px var(--cyan)}
.marketing-section{position:relative;z-index:1;width:min(1240px,calc(100% - 40px));margin:auto;padding:104px 0}
.section-heading{max-width:760px;margin-bottom:52px}
.section-heading h2{margin:14px 0 16px;font-size:clamp(34px,3.8vw,52px);line-height:1.05;letter-spacing:-.05em}
.section-heading>p{color:var(--muted);font-size:16px;line-height:1.7}

/* Workflow */
.workflow-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.workflow-card{position:relative;min-height:262px;padding:25px;border:1px solid var(--border);border-radius:22px;background:linear-gradient(145deg,rgba(255,255,255,.03),rgba(255,255,255,.012));backdrop-filter:blur(14px)}
.workflow-step{display:block;color:var(--cyan-bright);font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase}
.workflow-icon{width:48px;height:48px;margin:28px 0 20px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.17);border-radius:15px;color:var(--cyan);background:rgba(255,255,255,.045)}
.workflow-icon svg{width:23px;height:23px}
/* Each step carries a small illustration built from parts the page already
   uses, so nothing new has to be drawn or downloaded. */
.workflow-visual{margin-top:18px;padding-top:16px;border-top:1px solid rgba(255,255,255,.06)}
.wf-frame{display:flex;gap:5px;margin-bottom:9px}
.wf-frame i{width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,.16)}
.wf-slot{padding:11px 13px;border:1px dashed rgba(103,232,249,.4);border-radius:11px;color:var(--cyan);font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase}
.wf-lines{display:grid;gap:7px}
.wf-lines span{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:8px 11px;border-radius:10px;background:rgba(255,255,255,.035)}
.wf-lines b{font-size:12px;font-weight:600}
.wf-lines small{color:var(--dim);font-family:var(--mono);font-size:10px}
.workflow-card h3{margin-bottom:10px;font-size:19px}
.workflow-card p{color:var(--muted);line-height:1.65;font-size:14px}
.workflow-card::after{content:"";position:absolute;top:48%;right:-13px;width:13px;border-top:1px dashed rgba(255,255,255,.24)}
.workflow-card:last-child::after{display:none}

/* Feature showcase */
.showcase-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.showcase-card{min-height:300px;padding:28px;border:1px solid var(--border);border-radius:23px;background:linear-gradient(145deg,rgba(255,255,255,.028),rgba(255,255,255,.012));overflow:hidden}
.showcase-card.large{grid-column:span 2}
.showcase-card.wide{min-height:0;grid-column:span 3}
.showcase-card h3{margin:20px 0 12px;font-size:24px;letter-spacing:-.035em}
.showcase-card p{color:var(--muted);line-height:1.65;font-size:14px}
.feature-index{color:var(--cyan-bright);font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase}
.byob-grid{margin-top:26px;display:grid;grid-template-columns:repeat(6,1fr);gap:5px}
.byob-grid i{aspect-ratio:1;border-radius:5px;background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.22)}
.byob-grid i.on{background:var(--cyan);border-color:var(--cyan);box-shadow:0 0 14px rgba(103,232,249,.4)}
.ops-chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}
.ops-chips span{padding:10px 13px;display:flex;align-items:center;gap:8px;border:1px solid var(--border);border-radius:99px;color:var(--muted);font-size:11px}
.ops-chips i{width:6px;height:6px;border-radius:50%;background:var(--teal)}
.stat-row{display:flex;flex-wrap:wrap;gap:34px;margin-top:6px}
.stat-row div{min-width:140px}
.stat-row strong{display:block;color:var(--cyan-bright);font-family:var(--mono);font-size:26px;letter-spacing:-.02em}
.stat-row small{color:var(--muted);font-size:12px}

/* The operations promise */
.operations-panel{position:relative;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(400px,.95fr);gap:54px;align-items:center;padding:46px;border:1px solid rgba(103,232,249,.2);border-radius:28px;overflow:hidden;
  background:radial-gradient(circle at 8% 0,rgba(103,232,249,.12),transparent 38%),linear-gradient(145deg,rgba(12,20,30,.96),rgba(5,9,15,.94));box-shadow:0 30px 80px rgba(0,0,0,.28),inset 0 1px rgba(255,255,255,.045)}
.operations-panel::before{content:"";position:absolute;inset:0 auto auto 0;width:46%;height:1px;background:linear-gradient(90deg,var(--cyan),transparent);opacity:.8}
.operations-copy{max-width:570px}
.operations-kicker{display:block;margin-bottom:16px;color:var(--cyan);font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.operations-copy h3{max-width:520px;margin-bottom:18px;font-size:clamp(27px,3vw,40px);letter-spacing:-.045em}
.operations-copy p{color:var(--muted);font-size:15px;line-height:1.75}
.operations-benefits{display:grid;gap:10px}
.operations-benefit{display:grid;grid-template-columns:42px minmax(0,1fr);gap:15px;align-items:start;padding:17px 18px;border:1px solid rgba(255,255,255,.08);border-radius:16px;background:rgba(255,255,255,.025)}
.operations-benefit>span{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;color:var(--cyan-bright);background:rgba(103,232,249,.09);font-family:var(--mono);font-size:10px;font-weight:700}
.operations-benefit b{display:block;margin:1px 0 4px;font-size:14px;letter-spacing:-.01em}
.operations-benefit small{display:block;color:var(--muted);font-size:12.5px;line-height:1.55}

/* ── CTA ─────────────────────────────────────────────────────────────────────*/
.marketing-cta{position:relative;z-index:1;width:min(1240px,calc(100% - 40px));margin:10px auto 96px;padding:80px 35px;border:1px solid rgba(255,255,255,.17);border-radius:30px;text-align:center;overflow:hidden;
  background:radial-gradient(circle at 50% 0,rgba(103,232,249,.12),transparent 42%),radial-gradient(circle at 90% 80%,rgba(139,92,246,.12),transparent 30%),#060b12}
.marketing-cta .brand-mark{width:52px;height:52px;margin:0 auto 20px;filter:drop-shadow(0 0 24px rgba(255,255,255,.2))}
.marketing-cta h2{margin:16px 0;font-size:clamp(34px,4.4vw,58px);line-height:1.03;letter-spacing:-.055em}
.marketing-cta p{max-width:660px;margin:0 auto 28px;color:var(--muted);line-height:1.7}
.install-form{display:flex;gap:10px;max-width:540px;margin:0 auto;flex-wrap:wrap;justify-content:center}
.install-form input{flex:1;min-width:250px;min-height:52px;background:rgba(255,255,255,.03);border:1px solid var(--border);border-radius:12px;padding:0 18px;color:var(--text);font-size:14px;outline:none;font-family:var(--sans)}
.install-form input:focus{border-color:rgba(255,255,255,.5)}
.marketing-cta .install-note{margin:30px auto 0;color:var(--dim);font-family:var(--mono);font-size:11px;letter-spacing:.035em}

/* ── Footer ──────────────────────────────────────────────────────────────────*/
.marketing-footer{position:relative;z-index:1;border-top:1px solid var(--border);background:rgba(2,4,7,.72)}
.marketing-footer-main{width:min(1240px,calc(100% - 40px));margin:auto;padding:62px 0;display:grid;grid-template-columns:1.7fr repeat(3,1fr);gap:52px}
.marketing-footer-main>div:not(:first-child){display:flex;flex-direction:column;align-items:start;gap:10px}
.marketing-footer h2{margin:5px 0 10px;color:var(--text);font-family:var(--mono);font-size:11px;letter-spacing:.13em;text-transform:uppercase}
.marketing-footer-main a,.marketing-footer-main span{color:var(--muted);font-size:12px;line-height:1.5;text-decoration:none}
.marketing-footer-main a:hover{color:var(--cyan-bright)}
.marketing-footer-brand>p{max-width:370px;margin:20px 0;color:var(--muted);line-height:1.7;font-size:13px}
.powered-by{display:inline-flex;padding:9px 12px;border:1px solid var(--border);border-radius:99px;gap:4px;font-size:12px;color:var(--muted);text-decoration:none}
.powered-by b{color:var(--text)}
.marketing-footer-bottom{min-height:65px;width:min(1240px,calc(100% - 40px));margin:auto;padding:14px 0;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;border-top:1px solid var(--border);color:var(--dim);font-size:10px}

/* ── Responsive ──────────────────────────────────────────────────────────────*/
@media(max-width:1080px){
  .workflow-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .workflow-card::after{display:none}
  .showcase-grid{grid-template-columns:1fr}
  .showcase-card.large,.showcase-card.wide{grid-column:span 1}
  .marketing-footer-main{grid-template-columns:1fr 1fr;gap:36px}
}
@media(max-width:900px){
  .marketing-nav{gap:12px}
  .marketing-nav-links,.marketing-nav-actions>[data-rb="magnet"],.marketing-nav-actions>.rb-magnet{display:none}
  .marketing-menu-button{display:block}
  /* The hero's second column is min 460px wide; without collapsing the track to
     minmax(0,1fr) the grid stays wider than a phone viewport and the whole page
     scrolls sideways. */
  .marketing-hero{grid-template-columns:minmax(0,1fr);padding:56px 0 70px;gap:42px}
  .marketing-hero-copy h1{font-size:clamp(34px,8.5vw,52px)}
  .marketing-section{padding:74px 0}
  .marketing-cta{padding:60px 22px}
  .operations-panel{grid-template-columns:minmax(0,1fr);gap:30px;padding:34px}
}
@media(max-width:560px){
  .workflow-grid{grid-template-columns:1fr}
  .marketing-footer-main{grid-template-columns:1fr}
  .marketing-hero-copy h1{letter-spacing:-.04em}
  .brand-lockup small{display:none}
  .marketing-nav{height:64px;padding:0 12px}
  .order-compare{padding:14px;border-radius:20px}
  .order-line{grid-template-columns:28px minmax(0,1fr);row-gap:2px}
  .order-qty{grid-column:2;text-align:left}
  .trust-strip{gap:14px;font-size:10px;padding:18px 0}
  .install-form{display:grid;grid-template-columns:minmax(0,1fr);width:100%;max-width:100%;gap:12px}
  .install-form input,.install-form [data-rb="star-border"],.install-form .star-border-container,.install-form .star-border-container .inner-content,.install-form .button{width:100%;min-width:0}
  .operations-panel{padding:26px 22px;border-radius:22px}
  .operations-benefit{padding:15px 14px}
}

/* Public policy and support pages */
.legal-shell{width:min(920px,calc(100% - 40px));margin:70px auto 100px}
.legal-hero{padding:44px;border:1px solid var(--border);border-radius:26px;background:linear-gradient(145deg,rgba(255,255,255,.045),rgba(255,255,255,.015));box-shadow:0 30px 80px rgba(0,0,0,.3)}
.legal-hero h1{margin:15px 0 12px;font-size:clamp(38px,7vw,62px);letter-spacing:-.055em}
.legal-hero p{max-width:720px;color:var(--muted)}
.legal-meta{margin-top:18px;color:var(--dim);font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.1em}
.legal-content{margin-top:20px;padding:42px;border:1px solid var(--border);border-radius:24px;background:rgba(5,8,12,.82)}
.legal-content h2{margin:34px 0 10px;font-size:22px;letter-spacing:-.025em}
.legal-content h2:first-child{margin-top:0}
.legal-content h3{margin:24px 0 8px;font-size:17px}
.legal-content p,.legal-content li{color:var(--muted);font-size:14px;line-height:1.75}
.legal-content p+p{margin-top:12px}
.legal-content ul,.legal-content ol{margin:10px 0 14px 22px}
.legal-content li+li{margin-top:6px}
.legal-content strong{color:var(--text)}
.legal-callout{margin:20px 0;padding:18px 20px;border-left:3px solid var(--cyan);border-radius:0 13px 13px 0;background:rgba(255,255,255,.035)}
.legal-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}
@media(max-width:560px){.legal-shell{margin-top:40px}.legal-hero,.legal-content{padding:26px 21px}.legal-hero h1{font-size:38px}}


/* ── React Bits islands ──────────────────────────────────────────────────────
   Everything below applies only once /rb/marketing.js has mounted an island.
   None of these classes exist in the static page, so a visitor without
   JavaScript never reaches any of it. */

/* Markup that moves under a React root must not gain a box of its own, or the
   flex and grid contexts it was written for break. */
.rb-raw{display:contents}

/* MagicBento's stylesheet loads after this file and declares its own :root.
   html:root outranks it without needing an override flag. */
html:root{color-scheme:dark}

/* Aurora: the one WebGL surface, under everything. body::before still paints
   its grid overlay on top. */
.rb-aurora{position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.42;
  -webkit-mask-image:linear-gradient(to bottom,#000,rgba(0,0,0,.35) 60%,transparent);
  mask-image:linear-gradient(to bottom,#000,rgba(0,0,0,.35) 60%,transparent)}
.rb-aurora .aurora-container{width:100%;height:100%}
.marketing-hero,.marketing-cta,.marketing-footer{position:relative;z-index:1}

/* Nav: PillNav ships a logo and a hamburger of its own. The header already has
   a brand lockup, and mobile belongs to StaggeredMenu, so both are hidden. */
.marketing-nav-links .pill-logo,.marketing-nav-links .mobile-menu-button,.marketing-nav-links .mobile-menu-popover{display:none}
.marketing-nav-links .pill-nav-container{position:static;z-index:auto}
.marketing-nav-links .pill-nav{width:auto;--nav-h:38px}
.marketing-nav-links .pill-nav-items{background:transparent}
.marketing-nav-links .pill-list{padding:0;gap:4px}
.marketing-nav-links .pill{padding:0 15px;font-size:13px;font-weight:500;letter-spacing:.04em;text-transform:none}

/* StaggeredMenu is a whole header, not a drawer, so on narrow screens it
   replaces .marketing-header rather than sitting under it. The rb-staggered
   class is set by the island, so without JavaScript the static header and its
   own #mobile-menu toggle are what a visitor gets. */
.rb-menu .staggered-menu-header{padding:26px 22px}
.rb-menu .sm-logo-img{height:30px;border-radius:8px}
@media(min-width:901px){.rb-menu{display:none}}
@media(max-width:900px){html.rb-staggered .marketing-header{display:none}}

/* SpotlightCard brings its own dark card treatment. Stripped back to the glow
   so the order card keeps the styling it already had. */
.rb-spotlight-bare{border:0;border-radius:inherit;background:none;padding:0;overflow:visible}
.rb-spotlight-bare::before{border-radius:inherit;overflow:hidden}

/* Trust strip marquee. */
.trust-strip .rb-trust-loop{width:100%}
.rb-trust-item{color:var(--dim);font-family:var(--mono);font-size:11px;letter-spacing:.13em;text-transform:uppercase;white-space:nowrap}

/* Text islands inherit the type they replaced instead of bringing their own. */
.rb-split{display:inline}
.rb-blur-text{flex-wrap:wrap}
.rb-blur-text>span{display:inline-block;will-change:transform,filter,opacity}
.rb-scroll-reveal.scroll-reveal{display:inline;margin:0}
.rb-scroll-reveal .rb-scroll-reveal-text{font-size:inherit;font-weight:inherit;line-height:inherit}
.rb-scroll-reveal .word{display:inline-block}
.rb-count{font:inherit;letter-spacing:inherit}

/* Magnet wraps a button, so it must not become a block in a flex row. */
.rb-magnet,.rb-magnet-inner{display:inline-flex}

/* StarBorder wraps the install submit button. */
.install-form [data-rb="star-border"]{display:inline-flex}
.install-form .star-border-container{border-radius:14px}
.install-form .star-border-container .inner-content{padding:0;border:0;border-radius:12px;background:linear-gradient(135deg,#67e8f9,#a5f3fc);color:#001018}

/* ── How it works: the scroll stack ─────────────────────────────────────────
   The static grid stays exactly as authored and is what renders without
   JavaScript, under reduced motion, and on narrow screens. */
.rb-stack-host{display:grid;grid-template-columns:58px minmax(0,1fr);gap:24px;align-items:start}
.rb-stack-rail{position:sticky;top:118px;list-style:none;display:grid;gap:12px;padding:0;margin:0;
  color:var(--dim);font-family:var(--mono);font-size:11px;letter-spacing:.13em}
.rb-stack-rail li{position:relative;padding-left:15px;transition:color .3s ease}
.rb-stack-rail li::before{content:"";position:absolute;left:0;top:7px;width:6px;height:6px;border-radius:50%;
  background:rgba(255,255,255,.18);transition:.3s ease}
.rb-stack-rail li.is-active{color:var(--cyan-bright)}
.rb-stack-rail li.is-active::before{background:var(--cyan);box-shadow:0 0 12px var(--cyan)}

/* Upstream ScrollStack owns its own scroller and card box. Here the window is
   the scroller and .workflow-card is the box, so both are handed back. */
.rb-stack.scroll-stack-scroller{height:auto;overflow:visible;transform:none;will-change:auto;scroll-behavior:auto}
.rb-stack .scroll-stack-inner{padding:4vh 0 22vh;min-height:0}
.rb-stack .scroll-stack-card{height:auto;width:100%;margin:0;padding:32px;border-radius:22px;box-shadow:0 26px 70px rgba(0,0,0,.45)}
.rb-stack .workflow-card{min-height:0;background:linear-gradient(145deg,rgba(12,18,26,.98),rgba(6,10,16,.98));
  -webkit-backdrop-filter:none;backdrop-filter:none;transform-style:flat;will-change:transform}
.rb-stack .workflow-card::after{display:none}
.rb-stack .workflow-card h3{font-size:clamp(21px,2.2vw,28px)}
.rb-stack .workflow-card p{max-width:56ch;font-size:15px}
.rb-stack .workflow-card{display:grid;grid-template-columns:minmax(0,1fr) 300px;column-gap:40px;align-content:start}
.rb-stack .workflow-step,.rb-stack .workflow-icon,.rb-stack .workflow-card h3,.rb-stack .workflow-card p{grid-column:1}
.rb-stack .workflow-icon{margin:18px 0 16px}
.rb-stack .workflow-visual{grid-column:2;grid-row:1/-1;align-self:center;margin:0;padding:0;border:0}
.rb-stack .byob-grid{margin-top:0}

/* MagicBento decorates the existing showcase cards; its own grid, aspect ratio
   and card surface are replaced by the ones the page already defines. */
.rb-bento-host{display:block}
.rb-bento-grid.card-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:0;max-width:none;font-size:inherit}
.rb-bento-grid .showcase-card.large{grid-column:span 2}
.rb-bento-grid .magic-bento-card{aspect-ratio:auto;padding:28px;border-radius:23px;font-weight:inherit;
  border:1px solid var(--border);background:linear-gradient(145deg,rgba(255,255,255,.028),rgba(255,255,255,.012))}
.rb-bento-grid .magic-bento-card__content{display:block;color:inherit}
/* A bento card is up to twice the width it was drawn for, so the illustration
   inside it needs a ceiling or the squares read as buttons. */
.rb-bento-grid .byob-grid{max-width:430px}

@media(max-width:1080px){
  .rb-bento-grid.card-grid{grid-template-columns:1fr}
  .rb-bento-grid .showcase-card.large{grid-column:span 1}
  .rb-stack .workflow-card{grid-template-columns:minmax(0,1fr)}
  .rb-stack .workflow-visual{grid-column:1;grid-row:auto;max-width:340px;margin-top:20px;padding-top:16px;border-top:1px solid rgba(255,255,255,.06)}
}
@media(max-width:900px){
  .rb-stack-host{grid-template-columns:minmax(0,1fr)}
  .rb-stack-rail{display:none}
  .rb-stack .scroll-stack-card{padding:24px}
}

/* Reduced motion is handled per island in JavaScript, but the decorative
   surfaces are removed here too in case one mounts before the check. */
@media(prefers-reduced-motion:reduce){
  .rb-aurora{display:none}
  .rb-stack .scroll-stack-card{transform:none;filter:none}
}
