@font-face{font-family:'Inter';src:url('/assets/Inter-var.woff2') format('woff2-variations');
  font-weight:100 900;font-display:block}
*{margin:0;padding:0;box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;
  -webkit-tap-highlight-color:transparent}
body{background:#fff;color:#0A1C2D;
  font-family:'Inter',-apple-system,system-ui,'Helvetica Neue',Arial,sans-serif;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  font-feature-settings:'cv11','ss01';overflow-x:hidden}
a{color:inherit;text-decoration:none;touch-action:manipulation}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;
  touch-action:manipulation;-webkit-tap-highlight-color:transparent;
  -webkit-user-select:none;user-select:none}
img, svg{max-width:100%}
.wrap{width:min(1384px,calc(100% - clamp(36px,9vw,152px)));margin:0 auto}
/* ═══ NAV ═══ */
nav{position:sticky;top:0;z-index:60;height:calc(79px + env(safe-area-inset-top,0px));
  padding-top:env(safe-area-inset-top,0px);
  background:rgba(255,255,255,.88);
  backdrop-filter:blur(18px) saturate(180%);border-bottom:1px solid transparent;
  transition:border-color .25s,box-shadow .25s}
nav.stuck{border-bottom-color:#E7EAEE;box-shadow:0 1px 24px rgba(10,28,45,.06)}
.nav-in{height:79px;display:flex;align-items:center}
.logo{display:flex;align-items:center;gap:20px;cursor:pointer;min-height:48px}
.logo img.mark{height:64px;width:auto;display:block}
.logo .wm{display:flex;flex-direction:column;gap:1px}
.logo .wm b{font-size:27px;font-weight:800;letter-spacing:-.025em;color:#0F2034;line-height:1}
.logo .wm b i{font-style:normal;color:#F5531A}
.logo .wm s{text-decoration:none;font-size:11.5px;font-weight:700;letter-spacing:.34em;
  color:#0F2034;margin-left:1px;margin-top:3px}
.nav-links{display:flex;align-items:center;gap:30px;margin-left:64px}
/* Once 8 items (incl. Security/About) wrapped at 1280px. Security + About moved to
   the footer, and the logo→links gap was cut 155px→64px with a 36px→30px link gap,
   so the six remaining labels sit on one line with room to spare. */
.nav-links a{font-size:15.5px;font-weight:500;color:#39485A;position:relative;
  padding:6px 0;transition:color .18s}
.nav-links a::after{content:'';position:absolute;left:0;right:100%;bottom:0;height:2px;
  background:#F5531A;transition:right .24s cubic-bezier(.4,0,.2,1)}
.nav-links a.on::after{right:0}
.nav-links a.on{color:#0A1C2D;font-weight:600}
.nav-cta{margin-left:auto;display:flex;align-items:center;gap:33px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;
  border-radius:999px;font-weight:650;transition:transform .16s,box-shadow .2s,background .2s;
  white-space:nowrap}
.btn:active{transform:translateY(1px) scale(.985)}
.btn-pri{background:#F5531A;color:#fff;height:47px;padding:0 27px;font-size:15.5px;
  box-shadow:0 4px 14px rgba(245,83,26,.28)}
.btn-sgn{font-size:15.5px;font-weight:550;color:#39485A;padding:8px 4px}
/* mobile nav (hidden ≥1081px) */
.burger{display:none;width:44px;height:44px;border-radius:11px;place-items:center;
  color:#0F2034;margin-left:2px;transition:.2s}
.burger:active{background:#F1F4F7}
.burger svg{pointer-events:none}
.mnav{display:none;position:absolute;top:100%;left:0;right:0;background:#fff;
  border-bottom:1px solid #E7EAEE;box-shadow:0 20px 44px rgba(10,28,45,.13);
  padding:8px clamp(18px,4.6vw,28px)
          calc(20px + env(safe-area-inset-bottom,0px));
  flex-direction:column}
.mnav a{padding:16px 2px;font-size:17px;font-weight:600;color:#0A1C2D;
  border-bottom:1px solid #E7EAEE;min-height:52px;display:flex;align-items:center}
.mnav a:active{color:#F5531A}
.mnav .btn{width:100%;height:52px;margin-top:16px;font-size:16.5px}
.mnav .m-sign{background:#F1F4F7;color:#0F2034;box-shadow:none;margin-top:10px;
  font-weight:650}
/* ═══ HERO ═══ */
.hero{position:relative;height:570px;overflow:hidden}
.hero-media{position:absolute;inset:0}
.hero-img{position:absolute;right:0;top:0;height:570px;width:min(840px,56vw);
  background:url('/assets/hero-photo.jpg') right top/cover no-repeat;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 15%,#000 100%);
          mask-image:linear-gradient(90deg,transparent 0,#000 15%,#000 100%)}
.hero-in{position:relative;z-index:2;padding-top:16px}
.eyebrow{font-size:13px;font-weight:800;letter-spacing:.19em;color:#F5531A}
h1{font-size:clamp(38px,5.6vw,67px);font-weight:800;letter-spacing:-.035em;
  line-height:1.04;color:#0A1C2D;margin-top:19px}
h1 em{font-style:normal;color:#F5531A}
.hero p.sub{max-width:474px;margin-top:26px;font-size:17.5px;line-height:1.62;
  color:#54606E}
.hero-actions{display:flex;align-items:center;gap:34px;margin-top:34px}
.btn-lg{height:58px;padding:0 34px;font-size:17px}
.play{display:flex;align-items:center;gap:17px;text-align:left;padding:4px 6px 4px 0;
  border-radius:14px}
.play-ic{width:47px;height:47px;border-radius:50%;border:1.5px solid #D8DEE5;
  display:grid;place-items:center;transition:.2s;flex:none;background:#fff}
.play-ic svg{margin-left:2px}
.play b{display:block;font-size:15.5px;font-weight:650;color:#0A1C2D}
.play s{display:block;text-decoration:none;font-size:12.5px;color:#96A1AC;margin-top:2px}
.same{position:absolute;right:76px;top:22px;z-index:3;text-align:left}
.same b{display:block;font-size:23px;font-weight:800;letter-spacing:.005em;
  line-height:1.31;color:#0F2034;text-shadow:0 1px 14px rgba(255,255,255,.9),
  0 0 34px rgba(255,255,255,.75)}
.same i{display:block;width:74px;height:3px;background:#F5531A;margin-top:14px}
/* ═══ FEATURE STRIP ═══ */
.strip{height:127px;border-top:1px solid #E7EAEE;border-bottom:1px solid #E7EAEE;
  display:flex;align-items:center;background:#FAFBFC}
.strip-in{display:grid;grid-template-columns:repeat(4,1fr);
  width:min(1384px,calc(100% - clamp(36px,9vw,152px)));margin:0 auto}
.feat{display:flex;gap:15px;padding:0 34px;align-items:flex-start;position:relative;
  transition:.2s;border-radius:12px}
.feat:first-child{padding-left:0}
.feat:last-child{padding-right:0}
.feat+.feat::before{content:'';position:absolute;left:0;top:6px;bottom:6px;width:1px;
  background:#E7EAEE}
.fi{width:42px;height:42px;border-radius:11px;border:1px solid #E7EAEE;background:#fff;
  display:grid;place-items:center;flex:none;transition:.22s}
.fi svg{stroke:#0F2034;transition:.22s}
.feat b{display:block;font-size:15.5px;font-weight:700;color:#0A1C2D;margin-bottom:5px;
  letter-spacing:-.008em}
.feat span{display:block;font-size:13.2px;line-height:1.5;color:#7D8995}
/* ═══ INTEGRATIONS ═══ */
.ints{padding:60px 0 0;text-align:center}
.ints h2{font-size:34px;font-weight:800;letter-spacing:-.03em;color:#0A1C2D}
.ints .kicker{font-size:13px;font-weight:800;letter-spacing:.2em;color:#F5531A;
  margin-bottom:13px}
.ints p.lede{margin:13px auto 0;width:660px;font-size:16.5px;line-height:1.6;color:#54606E}
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin-top:44px;
  text-align:left}
.card{border:1px solid #E7EAEE;border-radius:17px;padding:27px 25px 24px;background:#fff;
  transition:transform .22s cubic-bezier(.4,0,.2,1),box-shadow .22s,border-color .22s;
  cursor:pointer;position:relative;overflow:hidden}
.card .top{display:flex;align-items:center;justify-content:space-between;margin-bottom:19px}
.card .glyph{width:44px;height:44px;display:grid;place-items:center}
.card b{display:block;font-size:18.5px;font-weight:700;letter-spacing:-.015em;
  color:#0A1C2D;margin-bottom:6px}
.card em{display:block;font-style:normal;font-size:13.6px;line-height:1.52;color:#7D8995}
.pill{font-size:10.5px;font-weight:800;letter-spacing:.11em;padding:5px 11px;border-radius:999px}
.pill.live{background:#E9F7EF;color:#12733F}
.pill.soon{background:#F1F3F6;color:#6B7787}
.card .open{position:absolute;right:22px;bottom:19px;font-size:12.5px;font-weight:650;
  color:#F5531A;opacity:0;transform:translateX(-5px);transition:.22s}
/* ═══ GENERIC SECTION ═══ */
section[id]{scroll-margin-top:99px}
/* keep sticky nav off the heading */
section.band{padding:104px 0}
section.band.alt{background:#FAFBFC;border-top:1px solid #E7EAEE;
  border-bottom:1px solid #E7EAEE}
.band .kicker{font-size:13px;font-weight:800;letter-spacing:.2em;color:#F5531A;
  margin-bottom:14px}
.band h2{font-size:46px;font-weight:800;letter-spacing:-.035em;line-height:1.1;color:#0A1C2D;
  max-width:640px}
.band .lede{margin-top:19px;font-size:18px;line-height:1.66;color:#54606E;max-width:660px}
.split{display:grid;grid-template-columns:1fr 1fr;gap:74px;align-items:center}
.why-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:34px;margin-top:56px}
.why{border:1px solid #E7EAEE;border-radius:16px;padding:31px 29px;background:#fff;
  transition:.24s;cursor:default}
.why .n{font-size:12px;font-weight:800;letter-spacing:.16em;color:#F5531A;
  margin-bottom:16px}
.why h3{font-size:20px;font-weight:700;letter-spacing:-.02em;color:#0A1C2D;margin-bottom:10px}
.why p{font-size:14.6px;line-height:1.62;color:#54606E}
/* steps */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:56px}
.step{border:1px solid #E7EAEE;border-radius:16px;padding:29px 26px;background:#fff;
  position:relative;transition:.24s}
.step .num{width:35px;height:35px;border-radius:50%;background:#F5531A;color:#fff;
  display:grid;place-items:center;font-size:15px;font-weight:800;margin-bottom:19px}
.step h3{font-size:18.5px;font-weight:700;letter-spacing:-.018em;color:#0A1C2D;
  margin-bottom:9px}
.step p{font-size:14.2px;line-height:1.6;color:#54606E}
.step .arw{position:absolute;right:-15px;top:50%;transform:translateY(-50%);z-index:5}
/* security list */
.sec-list{display:flex;flex-direction:column;gap:19px;margin-top:31px}
.sec-row{display:flex;gap:15px;align-items:flex-start}
.sec-row .tick{width:25px;height:25px;border-radius:50%;background:#FFF0E9;
  display:grid;place-items:center;flex:none;margin-top:1px}
.sec-row b{font-size:16px;font-weight:650;color:#0A1C2D;display:block;margin-bottom:3px}
.sec-row span{font-size:14.4px;color:#54606E;line-height:1.55}
.vault{border:1px solid #E7EAEE;border-radius:20px;background:#fff;padding:35px;
  box-shadow:0 22px 60px rgba(10,28,45,.07)}
.vault-h{display:flex;align-items:center;gap:11px;padding-bottom:20px;
  border-bottom:1px solid #E7EAEE;margin-bottom:22px}
.vault-h b{font-size:16.5px;font-weight:700;color:#0A1C2D}
.dot{width:9px;height:9px;border-radius:50%;background:#22C55E;
  box-shadow:0 0 0 4px rgba(34,197,94,.16)}
.vrow{display:flex;justify-content:space-between;align-items:center;padding:12px 0;
  border-bottom:1px dashed #EDF0F3;font-size:14.3px}
.vrow:last-child{border-bottom:0}
.vrow span{color:#7D8995}
.vrow b{font-weight:650;color:#0A1C2D;font-size:14px}
.tag{font-size:10.5px;font-weight:800;letter-spacing:.09em;padding:4px 10px;
  border-radius:999px;background:#FFF0E9;color:#F5531A}
/* pricing */
.tiers{display:grid;grid-template-columns:repeat(2,1fr);gap:26px;margin-top:52px}
.tier{border:1px solid #E7EAEE;border-radius:20px;padding:36px 34px;background:#fff;
  transition:.24s;display:flex;flex-direction:column}
.tier.feat-tier{border-color:#F5531A;box-shadow:0 18px 48px rgba(245,83,26,.13)}
.tier .lp{font-size:12px;font-weight:800;letter-spacing:.16em;color:#F5531A;
  margin-bottom:14px}
.tier h3{font-size:24px;font-weight:800;letter-spacing:-.025em;color:#0A1C2D}
.tier .price{display:flex;align-items:baseline;gap:8px;margin:19px 0 6px}
.tier .price b{font-size:48px;font-weight:800;letter-spacing:-.04em;color:#0A1C2D}
.tier .price span{font-size:15px;color:#7D8995;font-weight:500}
.tier p{font-size:14.6px;color:#54606E;line-height:1.6;margin-bottom:22px}
.tier ul{list-style:none;display:flex;flex-direction:column;gap:12px;
  margin-bottom:28px;flex:1}
/* pushes the CTA to a shared baseline */
.tier li{display:flex;gap:11px;font-size:14.6px;color:#54606E}
.tier li svg{flex:none;margin-top:3px}
.tier .btn{width:100%}
/* footer */
footer{background:#0F2034;color:#fff;padding:66px 0 34px}
.f-grid{display:grid;grid-template-columns:1.7fr 1fr 1fr 1fr 1fr;gap:40px}
.f-brand img{width:214px;display:block;margin-bottom:20px}
.f-brand p{font-size:14.4px;line-height:1.65;color:#93A1B4;max-width:310px}
.f-col b{display:block;font-size:12.5px;font-weight:800;letter-spacing:.15em;
  color:#7E8DA1;margin-bottom:17px}
.f-col a{display:block;font-size:14.4px;color:#C4CEDA;margin-bottom:11px;transition:.18s}
/* touch: give footer links a real hit area (capability-gated, not width-gated) */
@media (pointer:coarse){
  .f-col a{padding:12px 0;margin-bottom:0;min-height:44px;display:flex;align-items:center}
}
.f-bot{margin-top:52px;padding-top:26px;border-top:1px solid rgba(255,255,255,.11);
  display:flex;justify-content:space-between;font-size:13.4px;color:#7E8DA1}
/* ═══ MODAL / TOAST ═══ */
.scrim{position:fixed;inset:0;background:rgba(10,28,45,.55);backdrop-filter:blur(6px);
  z-index:200;display:grid;place-items:center;opacity:0;pointer-events:none;
  transition:opacity .22s}
.scrim.open{opacity:1;pointer-events:auto}
.sheet{width:min(560px,calc(100vw - 32px));max-height:calc(100dvh - 40px);
  overflow-y:auto;overscroll-behavior:contain;
  background:#fff;border-radius:22px;padding:42px;
  box-shadow:0 40px 90px rgba(10,28,45,.34);transform:translateY(14px) scale(.98);
  transition:transform .28s cubic-bezier(.4,0,.2,1)}
.scrim.open .sheet{transform:none}
.sheet h3{font-size:27px;font-weight:800;letter-spacing:-.03em;color:#0A1C2D}
.sheet p.m{font-size:15px;color:#54606E;margin-top:10px;line-height:1.6}
.sheet label{display:block;font-size:13px;font-weight:650;color:#0A1C2D;margin:24px 0 8px}
.sheet input{width:100%;height:51px;border:1.5px solid #E7EAEE;border-radius:12px;
  padding:0 15px;font-size:16px;transition:.18s;font-family:inherit}
.sheet input:focus{outline:0;border-color:#F5531A;box-shadow:0 0 0 4px rgba(245,83,26,.12)}
.sheet .btn{width:100%;margin-top:26px;height:53px;font-size:16.5px}
.sheet .fine{font-size:12.6px;color:#96A1AC;text-align:center;margin-top:15px}
.x{position:absolute;top:24px;right:26px;width:36px;height:36px;border-radius:50%;
  display:grid;place-items:center;color:#8A96A3;transition:.18s}
.toast{position:fixed;bottom:34px;left:50%;transform:translate(-50%,26px);z-index:300;
  background:#0A1C2D;color:#fff;padding:15px 26px;border-radius:13px;font-size:15px;
  font-weight:550;box-shadow:0 18px 44px rgba(10,28,45,.34);opacity:0;
  transition:.28s cubic-bezier(.4,0,.2,1);display:flex;align-items:center;gap:11px;
  pointer-events:none}
.toast.show{opacity:1;transform:translate(-50%,0)}
.back{position:fixed;left:22px;bottom:22px;z-index:150;background:#fff;border:1px solid
  #E7EAEE;border-radius:999px;padding:11px 19px;font-size:13.4px;font-weight:650;
  min-height:44px;color:#0F2034;box-shadow:0 8px 26px rgba(10,28,45,.13);display:flex;
  align-items:center;gap:8px;transition:.2s}
:focus-visible{outline:2.5px solid #F5531A;outline-offset:3px;border-radius:5px}
/* ══════════════════ RESPONSIVE ══════════════════ */

/* show card affordance where there is no hover to reveal it */
@media (hover:none){
  .card .open{opacity:1;transform:none}
}


@media (max-width:1200px){
  .nav-links{gap:24px;margin-left:48px}
  .nav-cta{gap:20px}
}
/* ── tablet + phone: hamburger nav, hero stacks ─────────────────────────── */
@media (max-width:1080px){
  .nav-links,.btn-sgn{display:none}
  .burger{display:grid}
  .mnav.open{display:flex}
  .nav-cta{gap:10px}
  .logo img.mark{height:52px;width:auto}
  .logo .wm b{font-size:23px}
  .logo .wm s{font-size:9.6px;letter-spacing:.28em}
  .btn-pri{height:44px;padding:0 20px;font-size:15px}

  .hero{height:auto;display:flex;flex-direction:column;overflow:visible}
  .hero-in{order:1;padding:40px 0 42px}
  .hero-media{order:2;position:relative;inset:auto;
    height:clamp(300px,54vw,430px)}
  .hero-img{position:absolute;inset:0;width:100%;height:100%;
    background-position:right center;
    -webkit-mask-image:linear-gradient(180deg,transparent 0,#000 14%,#000 100%);
            mask-image:linear-gradient(180deg,transparent 0,#000 14%,#000 100%)}
  .same{right:auto;left:clamp(18px,4.6vw,28px);top:auto;
    bottom:clamp(20px,3.6vw,30px)}
  .same b{font-size:clamp(19px,3.4vw,23px)}

  .strip{height:auto;padding:36px 0}
  .strip-in{grid-template-columns:1fr 1fr;gap:28px 0}
  .feat{padding:0 24px}
  .feat:nth-child(odd){padding-left:0}
  .feat:nth-child(even){padding-right:0;border-left:1px solid #E7EAEE}
  .feat:nth-child(n+3){border-top:1px solid #E7EAEE;padding-top:28px}
  .feat+.feat::before{display:none}

  .ints{padding:64px 0 0}
  .ints h2{font-size:clamp(26px,4vw,34px)}
  .ints p.lede{width:auto;max-width:660px;font-size:16.2px}
  .cards{grid-template-columns:1fr 1fr;gap:18px;margin-top:38px}

  section.band{padding:82px 0}
  .band h2{font-size:clamp(30px,4.6vw,46px);max-width:660px}
  .band .lede{font-size:16.8px;max-width:640px}
  .split{grid-template-columns:1fr;gap:46px}
  .why-grid{grid-template-columns:1fr;gap:18px;margin-top:42px}
  .steps{grid-template-columns:1fr 1fr;gap:18px;margin-top:42px}
  .step .arw{display:none}
  .tiers{grid-template-columns:1fr;gap:20px;margin-top:42px}
  .f-grid{grid-template-columns:1fr 1fr;gap:40px}
  /* the brand block spans the full row so the four link columns pair up evenly
     (five children in a two-column grid would otherwise orphan one) */
  .f-brand{grid-column:1/-1}
}
/* ── phone: single column ───────────────────────────────────────────────── */
@media (max-width:720px){
  .strip-in{grid-template-columns:1fr;gap:0}
  .feat{padding:24px 0 !important;border-left:0 !important}
  .feat+.feat{border-top:1px solid #E7EAEE}
  .feat:nth-child(n+3){padding-top:24px}
  .cards,.steps,.f-grid{grid-template-columns:1fr}
  .cards{gap:16px}
  .f-grid{gap:34px}

  section.band{padding:62px 0}
  .band h2{font-size:clamp(27px,7vw,36px)}
  .band .lede{font-size:16.2px}

  .hero-in{padding:32px 0 34px}
  .hero-actions{flex-direction:column;align-items:stretch;gap:18px;margin-top:30px}
  .btn-lg{width:100%;height:54px;font-size:16.5px}
  .play{min-height:52px;justify-content:center}

  .vault{padding:26px 22px}
  .tier{padding:30px 24px}

  .sheet{padding:32px 24px 28px;border-radius:20px}
  .sheet h3{font-size:24px;padding-right:34px}
  .sheet .btn{height:52px}
  .x{top:16px;right:16px;width:44px;height:44px}

  .toast{left:16px;right:16px;bottom:calc(18px + env(safe-area-inset-bottom,0px));
    transform:translateY(26px);font-size:14.5px;padding:14px 18px;
    justify-content:center;text-align:center}
  .toast.show{transform:none}
  .back{left:14px;bottom:calc(78px + env(safe-area-inset-bottom,0px));
    padding:10px 16px;font-size:13px;min-height:44px}
}
/* ── small phone ────────────────────────────────────────────────────────── */
@media (max-width:430px){
  .logo{gap:13px}
  .logo img.mark{height:43px;width:auto}
  .logo .wm b{font-size:20px}
  .logo .wm s{font-size:8.6px;letter-spacing:.23em}
  .btn-pri{height:44px;padding:0 17px;font-size:14.5px}
  .btn-lg{height:54px}   /* re-assert: .btn-pri above has equal specificity */
  .burger{width:44px;height:44px}

  h1{font-size:clamp(30px,8.4vw,36px)}
  .hero p.sub{font-size:16.4px}
  .hero-media{height:clamp(226px,56vw,270px)}

  .tier .price b{font-size:40px}
  .tier h3{font-size:22px}
  .f-bot{flex-direction:column;gap:8px;text-align:center}
  .vrow{font-size:13.6px}
}
/* ── very small phone (≤360px): nav CTA would jam against the logo ──────── */
@media (max-width:360px){
  .nav-cta .btn-pri{display:none}     /* still available in the menu and hero */
  .nav-cta{gap:6px}
  .logo{gap:11px}
}

@media (hover:hover) and (pointer:fine){
.nav-links a:hover{color:#0A1C2D}
.nav-links a:hover::after{right:0}
.btn-pri:hover{background:#E24A12;box-shadow:0 7px 22px rgba(245,83,26,.36)}
.btn-sgn:hover{color:#0A1C2D}
.play:hover .play-ic{border-color:#F5531A;background:#FFF4EF;transform:scale(1.06)}
.feat:hover{transform:translateY(-2px)}
.feat:hover .fi{background:#FFF0E9;border-color:#FBD3C1}
.feat:hover .fi svg{stroke:#F5531A}
.card:hover{transform:translateY(-4px);border-color:#D3DAE2;
  box-shadow:0 16px 40px rgba(10,28,45,.10)}
.card:hover .open{opacity:1;transform:translateX(0)}
.why:hover{transform:translateY(-4px);box-shadow:0 16px 40px rgba(10,28,45,.09);
  border-color:#D3DAE2}
.step:hover{border-color:#FBD3C1;box-shadow:0 14px 36px rgba(245,83,26,.10)}
.tier:hover{transform:translateY(-4px);box-shadow:0 18px 48px rgba(10,28,45,.10)}
.f-col a:hover{color:#F5531A}
.x:hover{background:#F1F4F7;color:#0A1C2D}
.back:hover{border-color:#F5531A;color:#F5531A;transform:translateX(-2px)}
}

/* ── Connect page ──────────────────────────────────────────────────────
   Only new class names, so nothing here can affect the homepage. */
.code{background:#0A1C2D;color:#E8EDF3;border-radius:12px;padding:15px 17px;
  font:500 13px/1.65 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  overflow-x:auto;white-space:pre;margin:0}
.code.inline{display:inline-block;background:#F1F3F6;color:#28323E;padding:3px 8px;
  border-radius:7px;font-size:12.5px;white-space:normal;vertical-align:baseline}
.nums{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-direction:column;gap:13px}
.nums li{display:flex;gap:13px;align-items:flex-start;font-size:14.6px;line-height:1.6;color:#54606E}
.nums .n{flex:0 0 auto;width:23px;height:23px;border-radius:50%;background:#FFF0E9;color:#F5531A;
  font-size:12px;font-weight:800;display:grid;place-items:center;margin-top:1px}
.nums b{color:#0A1C2D;font-weight:650}
.duo{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:26px}
.panel{border:1px solid #E7EAEE;border-radius:16px;padding:26px 25px;background:#fff}
.panel h3{font-size:19px;font-weight:700;letter-spacing:-.018em;color:#0A1C2D;margin-bottom:5px}
.panel .sub{font-size:13.4px;color:#7D8995;margin-bottom:15px}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.chip{font:600 12px/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  padding:7px 11px;border-radius:8px;background:#F1F3F6;color:#414D5C;border:1px solid #E7EAEE}
.panes{display:flex;flex-direction:column;gap:20px;margin-top:26px}
.pane{border:1px solid #E7EAEE;border-radius:17px;padding:29px 28px;background:#fff}
.pane .head{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:6px}
.pane .ico{width:42px;height:42px;border-radius:12px;background:#FFF0E9;display:grid;place-items:center;flex:0 0 auto}
.pane h3{font-size:21px;font-weight:700;letter-spacing:-.02em;color:#0A1C2D;margin:0}
.pane .sub{font-size:13.6px;color:#7D8995;margin-top:2px}
.pane .pill{margin-left:auto}
.harness{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}
.harness .h{border:1px solid #E7EAEE;border-radius:12px;padding:14px;background:#FAFBFC}
.harness .h p{font-size:13.4px;font-weight:650;color:#28323E;margin-bottom:9px}
.note{font-size:13.6px;color:#54606E;line-height:1.6}
.tickrow{display:flex;align-items:flex-start;gap:9px;font-size:14.2px;color:#54606E;margin-top:16px}
@media (max-width:1080px){
  .duo,.harness{grid-template-columns:1fr}
}
@media (max-width:640px){
  .pane{padding:23px 20px}
  .panel{padding:22px 20px}
  .code{font-size:11.6px;padding:13px 14px}
}

/* ── Connect page: narrow-screen containment ───────────────────────────
   A <pre> with white-space:pre has an intrinsic width, and a flex/grid child
   defaults to min-width:auto — so the code blocks pushed the PAGE sideways
   (scrollWidth 489 against a 320px viewport) instead of scrolling inside
   themselves. Every container in the chain needs min-width:0 to allow shrink. */
.nums li > div{min-width:0;flex:1 1 auto}
.nums li > span:last-child{min-width:0;flex:1 1 auto}
.pane,.panel,.harness,.harness .h,.duo > *{min-width:0}
.code{max-width:100%}
.harness .h .code,.nums li .code{margin-top:8px}
@media (max-width:640px){
  .nums li{font-size:14px}
  .pane .head .pill{margin-left:0}
}

/* ── Blog page ─────────────────────────────────────────────────────────
   New class names only, so nothing here can reach the homepage. */
.posts{display:flex;flex-direction:column;gap:20px;margin-top:44px}
.post{border:1px solid #E7EAEE;border-radius:17px;padding:30px 30px 27px;background:#fff;
  display:block;transition:transform .18s,border-color .18s,box-shadow .2s}
.post:hover{transform:translateY(-3px);border-color:#D3DAE2;box-shadow:0 10px 30px rgba(10,28,45,.07)}
.post .meta{display:flex;align-items:center;gap:11px;flex-wrap:wrap;margin-bottom:11px}
.post .cat{font-size:10.5px;font-weight:800;letter-spacing:.11em;padding:5px 11px;border-radius:999px;
  background:#FFF0E9;color:#F5531A}
.post .date{font-size:13px;color:#8A97A5}
.post h3{font-size:23px;font-weight:700;letter-spacing:-.024em;line-height:1.28;color:#0A1C2D;margin:0 0 10px}
.post p{font-size:15.4px;line-height:1.62;color:#54606E;margin:0}
.post .more{display:inline-flex;align-items:center;gap:8px;margin-top:15px;
  font-size:14px;font-weight:650;color:#F5531A}
.post:hover .more{gap:12px}
.post .more svg{transition:transform .18s}
/* Editorial rule for a title that runs long on one line at narrow widths. */
@media (max-width:640px){
  .post{padding:24px 21px}
  .post h3{font-size:20px}
}
.muted{color:#7D8995;font-size:15px}
.skel{border:1px solid #E7EAEE;border-radius:17px;padding:30px;background:#fff}
.skel .b{height:13px;border-radius:6px;background:#F1F3F6;margin-bottom:11px}
.skel .b.t{height:22px;width:72%;background:#EAEEF3}
.skel .b.s{width:38%}
.skel .b.x{width:94%}
.skel .b.y{width:61%}

/* Asset URLs in this file are ROOT-ABSOLUTE on purpose.
   A relative url() resolves against THIS file's location (/assets/), not the
   page's. These were written for an inline <style> sitting in /index.html,
   where 'assets/hero-photo.jpg' correctly resolved to /assets/hero-photo.jpg.
   Moving the stylesheet to /assets/site.css made the same string resolve to
   /assets/assets/hero-photo.jpg and 404'd both the hero image and the font.
   Keep the leading slash. */

/* ── Supported AI: real brand marks ────────────────────────────────────
   These are the official marks from simple-icons (titles: OpenAI, Anthropic,
   Google Gemini, Perplexity), the same files the engine site uses. The section
   previously carried hand-drawn approximations that were NOT the real logos.
   Rendered as <img> so the SVG's own artwork and default colour are used as-is;
   sizing is set here so all four read at one optical weight. */
.card .glyph img{width:30px;height:30px;object-fit:contain;display:block}

/* ── pricing page: three-up tier grid ─────────────────────────────────────
   `.tiers` ships as a 2-up grid because it was first written for the connect
   page. Pricing has three cards and needs its own column count. The two-class
   selector deliberately outranks the base `.tiers` rule — which also means the
   1080px single-column collapse has to be restated here, or `.tiers.three`
   would win on a phone and hold three narrow columns. */
.tiers.three{grid-template-columns:repeat(3,1fr)}
@media (max-width:1080px){
  .tiers.three{grid-template-columns:1fr}
}

/* Clarification callout — used where a page must name the parent platform
   (SoulPrint Engine) or point at a sibling product without making it the
   page's subject. */
.note-card{border:1px solid #E7EAEE;border-radius:18px;background:#fff;
  padding:30px 32px;max-width:790px;font-size:14.8px;line-height:1.7;color:#54606E}
.note-card b{color:#0A1C2D;font-weight:700}

/* ── Hero hint + "See it working" mock chat ─────────────────────────── */
.hero-hint{margin-top:17px;font-size:13.5px;font-weight:550;color:#7D8995}
.chat{border:1px solid #E7EAEE;border-radius:20px;background:#fff;
  box-shadow:0 22px 60px rgba(10,28,45,.08);overflow:hidden}
.chat-h{display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:15px 20px;border-bottom:1px solid #E7EAEE;background:#FAFBFC}
.chat-who{display:flex;align-items:center;gap:9px}
.chat-who img{width:20px;height:20px;object-fit:contain;display:block}
.chat-who b{font-size:14.5px;font-weight:700;color:#0A1C2D}
.sp-badge{font-size:10.5px;font-weight:800;letter-spacing:.07em;padding:5px 11px;
  border-radius:999px;background:#FFF0E9;color:#F5531A;white-space:nowrap}
.chat-body{display:flex;flex-direction:column;gap:14px;padding:22px 20px}
.msg{display:flex}
.msg.you{justify-content:flex-end}
.msg.ai{justify-content:flex-start}
.bubble{max-width:84%;padding:13px 17px;border-radius:16px;font-size:14.5px;line-height:1.6}
.msg.you .bubble{background:#F5531A;color:#fff;border-bottom-right-radius:5px}
.msg.ai .bubble{background:#F1F3F6;color:#0A1C2D;border-bottom-left-radius:5px}
.anno{margin-top:16px;font-size:13.8px;line-height:1.6;color:#54606E}
.anno b{color:#F5531A;font-weight:650}

/* ═══ FAQ ACCORDION (additive — .fq- prefixed, touches nothing existing) ═══ */
.fq-list{display:flex;flex-direction:column;gap:11px;margin-top:44px}
.fq{border:1px solid #E7EAEE;border-radius:14px;background:#fff;transition:.2s}
.fq[open]{border-color:#FBD3C1;box-shadow:0 10px 30px rgba(10,28,45,.07)}
.fq summary{display:flex;align-items:center;justify-content:space-between;gap:18px;
  cursor:pointer;list-style:none;padding:21px 24px;font-size:16.5px;font-weight:700;
  letter-spacing:-.012em;color:#0A1C2D}
.fq summary::-webkit-details-marker{display:none}
.fq summary:hover{color:#F5531A}
.fq .pm{flex:none;width:22px;height:22px;position:relative;transition:transform .22s}
.fq[open] .pm{transform:rotate(45deg)}
.fq .pm::before,.fq .pm::after{content:"";position:absolute;background:#F5531A;border-radius:2px}
.fq .pm::before{left:50%;top:2px;bottom:2px;width:2.2px;margin-left:-1.1px}
.fq .pm::after{top:50%;left:2px;right:2px;height:2.2px;margin-top:-1.1px}
.fq-a{padding:0 24px 23px;font-size:14.9px;line-height:1.72;color:#54606E;max-width:820px}
