/* Verva AI. Editorial grid, hairline rules, 4px radius, midnight accent. */
:root{color-scheme:light;
  --bg:#F7F4EE;--surface:#FFFFFF;--ink:#15161A;--muted:#6A6660;--line:#DED9D0;
  --primary:#0C0C38;--primary-ink:#FFFFFF;--tint:#E4E4F0;
  --dark:#121214;--dark-ink:#F3EFE8;--dark-muted:#9C968E;--dark-line:#2A2A2E;
  --font-display:"Geist","Helvetica Neue",Arial,sans-serif;
  --font-body:"Geist","Segoe UI",Roboto,Arial,sans-serif;
  --font-mono:"Geist Mono",ui-monospace,Menlo,Consolas,monospace;
  --radius:4px;
  --gutter:max(16px,env(safe-area-inset-left,0px));
  --gutter-r:max(16px,env(safe-area-inset-right,0px));
  --ease:cubic-bezier(.22,1,.36,1);
  --arrow:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E");
}
:root[data-theme="dark"]{  --bg:#141416;--surface:#1C1C1F;--ink:#F1EDE6;--muted:#A09A92;--line:#2C2C31;
  --primary:#B9B9F0;--primary-ink:#0C0C38;--tint:#1C1C34;--dark:#0C0C0E;--dark-ink:#F1EDE6;--dark-muted:#8F8982;--dark-line:#242428;color-scheme:dark}

*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased}
.wp-site-blocks>*{margin-block:0}
a{color:inherit}
img,svg,video{max-width:100%}
h1,h2,h3{font-family:var(--font-display);font-weight:500;line-height:1.08;letter-spacing:-0.03em;margin:0;text-wrap:balance}
h1{font-size:clamp(2.4rem,5.4vw,4.6rem)}
h2{font-size:clamp(1.9rem,3.6vw,3rem)}
h3{font-size:1.35rem;letter-spacing:-0.01em}
p{margin:0}
figure{margin:0}
.wrap{max-width:1240px;margin:0 auto;padding-left:var(--gutter);padding-right:var(--gutter-r)}
.label{font-family:var(--font-mono);font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.label a{text-decoration:none}
.rule{border:0;border-top:1px solid var(--line);margin:0}
:focus-visible{outline:2px solid var(--primary);outline-offset:3px}

/* Buttons: .btn in raw HTML, core Button block everywhere else */
.wp-block-buttons{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}
.wp-block-button{margin:0}
.btn,.wp-block-button__link{display:inline-flex;align-items:center;gap:.55rem;min-height:48px;padding:0 1.25rem;border-radius:var(--radius);font-family:var(--font-body);font-weight:500;font-size:1rem;line-height:1.2;text-decoration:none;border:1px solid var(--primary);background:var(--primary);color:var(--primary-ink);cursor:pointer;transition:transform .25s var(--ease),filter .18s,background .18s,color .18s,border-color .18s}
.btn:hover,.wp-block-button__link:hover{filter:brightness(1.08)}
.btn:active,.wp-block-button__link:active{transform:translateY(1px)}
.is-style-outline .wp-block-button__link,.btn-ghost{background:transparent;color:var(--ink);border-color:var(--line)}
.is-style-outline .wp-block-button__link:hover,.btn-ghost:hover{border-color:var(--ink);filter:none}
.has-arrow .wp-block-button__link::after,.btn.has-arrow::after{content:"";width:18px;height:18px;flex:none;background:currentColor;-webkit-mask:var(--arrow) center/contain no-repeat;mask:var(--arrow) center/contain no-repeat}

/* Header */
.site-header{position:sticky;top:0;z-index:9;background:color-mix(in srgb,var(--bg) 88%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);transition:transform .35s ease}
.site-header.hide{transform:translateY(-100%)}
.nav{display:flex;align-items:center;justify-content:space-between;min-height:68px;gap:1rem;position:relative}
.logo{display:flex;align-items:center;gap:.6rem;text-decoration:none;color:var(--ink)}
.logo svg{width:28px;height:28px;flex:none}
.logo .word{font-family:var(--font-display);font-weight:600;font-size:1.3rem;letter-spacing:-0.03em;line-height:1}
.logo .word span{font-family:var(--font-mono);font-weight:500;font-size:.72rem;letter-spacing:.1em;vertical-align:.45em;margin-left:.3rem;color:var(--primary)}
.nav .menu{display:flex;gap:1.75rem;list-style:none;margin:0;padding:0}
.nav .menu a{text-decoration:none;font-size:.95rem;color:var(--muted)}
.nav .menu a:hover,.nav .menu .current a{color:var(--ink)}
.nav .wp-block-button__link{min-height:42px}
.menu-toggle{display:none;width:44px;height:44px;border:1px solid var(--line);border-radius:var(--radius);background:transparent;color:var(--ink);cursor:pointer;place-items:center;padding:0}
.menu-toggle span,.menu-toggle span::before,.menu-toggle span::after{display:block;width:18px;height:1.5px;background:currentColor;position:relative;transition:transform .25s var(--ease),background .2s}
.menu-toggle span::before,.menu-toggle span::after{content:"";position:absolute;left:0}
.menu-toggle span::before{top:-6px}.menu-toggle span::after{top:6px}
.nav-open .menu-toggle span{background:transparent}
.nav-open .menu-toggle span::before{transform:translateY(6px) rotate(45deg)}
.nav-open .menu-toggle span::after{transform:translateY(-6px) rotate(-45deg)}
@media (max-width:880px){
  .nav .logo{margin-right:auto}
  .menu-toggle{display:grid}
  .primary-nav{display:none}
}
@media (max-width:420px){.nav .wp-block-button__link{padding:0 .85rem;font-size:.92rem}.logo .word{font-size:1.15rem}}

/* Sections */
:where(.wp-site-blocks,.editor-styles-wrapper) section{padding-block:clamp(3.5rem,8vw,7rem)}
.sec-head{display:grid;gap:1rem;margin-bottom:clamp(2rem,4vw,3.5rem);max-width:46em}
.sec-head p{color:var(--muted);max-width:40em}

/* Page hero (inner pages) */
.page-hero{padding-block:clamp(3rem,7vw,5.5rem) clamp(2.5rem,5vw,4rem);border-bottom:1px solid var(--line)}
.page-hero h1{max-width:18em}
.page-hero .wp-block-post-excerpt{margin-top:1.5rem}
.page-hero .lead{font-size:1.2rem;max-width:36em;color:var(--muted);margin-top:1.5rem}
.page-hero .wp-block-post-excerpt__excerpt{font-size:1.2rem;max-width:36em;color:var(--muted)}
.page-hero .wp-block-post-excerpt__more-text{display:none}
.page-intro .facts{margin-top:0;padding-top:0;border-top:0}
.page-intro .wp-block-buttons{margin-top:2rem}

/* Hero */
.hero{padding-block:clamp(3rem,7vw,6rem) clamp(3rem,6vw,5rem)}
.hero-grid{display:grid;grid-template-columns:7fr 5fr;gap:clamp(2rem,5vw,5rem);align-items:center}
.hero-grid>*{min-width:0}
.hero .label{margin-bottom:1.25rem;display:flex;align-items:center;gap:.6rem}
.hero .label::before{content:"";width:28px;height:1px;background:var(--primary)}
.hero .lead{font-size:1.2rem;max-width:34em;color:var(--muted);margin-top:1.5rem}
.hero .actions{margin-top:2.25rem}
.facts{display:flex;flex-wrap:wrap;gap:2rem;margin-top:3rem;padding-top:1.5rem;border-top:1px solid var(--line)}
.facts>*{min-width:0}
.facts .num{font-family:var(--font-display);font-weight:500;font-size:1.5rem;letter-spacing:-0.02em;line-height:1.3;font-variant-numeric:tabular-nums}
.facts .cap{color:var(--muted);font-size:.9rem}
@media (max-width:880px){.hero-grid{grid-template-columns:1fr}}

/* Chat demo */
.chat{background:var(--surface);border:1px solid var(--line);border-radius:8px;overflow:hidden;box-shadow:0 30px 60px -30px rgb(21 22 26 / .28)}
.chat-head{display:flex;align-items:center;gap:.75rem;padding:.9rem 1rem;border-bottom:1px solid var(--line)}
.chat-head .dot{width:34px;height:34px;border-radius:50%;background:var(--primary);display:grid;place-items:center;color:var(--primary-ink);font-family:var(--font-display);font-weight:600;font-size:.95rem}
.chat-head b{display:block;font-weight:500;font-size:.95rem}
.chat-head small{color:var(--muted);font-size:.8rem;display:flex;align-items:center;gap:.35rem}
.chat-head small::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--primary)}
.chat-body{padding:1rem;display:flex;flex-direction:column;gap:.6rem;min-height:330px;font-size:.93rem}
.msg{max-width:85%;padding:.65rem .85rem;border-radius:10px;line-height:1.45;opacity:0;transform:translateY(6px);animation:pop .4s ease forwards}
.msg.bot{background:var(--tint);border-bottom-left-radius:3px;align-self:flex-start}
.msg.user{background:var(--ink);color:var(--bg);border-bottom-right-radius:3px;align-self:flex-end}
.msg.typing{display:flex;gap:4px;padding:.8rem .9rem}
.msg.typing i{width:6px;height:6px;border-radius:50%;background:var(--muted);animation:blink 1s infinite}
.msg.typing i:nth-child(2){animation-delay:.15s}.msg.typing i:nth-child(3){animation-delay:.3s}
.msg .ar{display:block;direction:rtl;font-size:.98rem;margin-top:.25rem}
.chat-foot{display:flex;gap:.5rem;padding:.75rem 1rem;border-top:1px solid var(--line)}
.chat-foot input{flex:1;min-width:0;border:1px solid var(--line);border-radius:var(--radius);padding:.6rem .8rem;font:inherit;font-size:.92rem;background:var(--bg);color:var(--ink)}
.chat-foot button{border:0;background:var(--primary);color:var(--primary-ink);border-radius:var(--radius);width:44px;cursor:pointer;display:grid;place-items:center}
.chat-note{text-align:center;font-size:.8rem;color:var(--muted);margin-top:.75rem;font-family:var(--font-mono)}
@keyframes pop{to{opacity:1;transform:none}}
@keyframes blink{0%,80%,100%{opacity:.3}40%{opacity:1}}

/* Logo strip */
.strip{padding-block:1.5rem 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.strip-top{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 2rem;padding-bottom:1.25rem}
.strip .logos{display:flex;flex-wrap:wrap;gap:.75rem 2rem;align-items:center;list-style:none;margin:0;padding:0}
.strip .logos li,.marquee .row span{font-family:var(--font-display);font-weight:600;font-size:1.1rem;letter-spacing:-0.01em;color:var(--muted);white-space:nowrap}
.marquee{border-top:1px solid var(--line);padding-block:1.1rem;display:flex;align-items:center;gap:2rem;padding-left:max(var(--gutter),calc((100% - 1240px)/2 + var(--gutter)))}
.marquee .label{flex:none}
.marquee .viewport{flex:1;min-width:0;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent)}
.marquee .track{display:flex;gap:3rem;width:max-content;animation:marquee 40s linear infinite}
.marquee .row{display:flex;gap:3rem}
.marquee:hover .track{animation-play-state:paused}
@keyframes marquee{to{transform:translateX(calc(-50% - 1.5rem))}}

/* Services grid */
.services{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.svc{background:var(--bg);padding:1.75rem 1.5rem;display:flex;flex-direction:column;gap:.9rem;position:relative;min-height:300px;transition:background .25s}
.svc:hover{background:var(--surface)}
.svc::after{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--primary);transform:scaleX(0);transform-origin:left;transition:transform .3s}
.svc:hover::after{transform:scaleX(1)}
.svc .kicker{font-family:var(--font-mono);font-size:.74rem;letter-spacing:.06em;text-transform:uppercase;color:var(--primary);font-weight:500;margin-bottom:-.3rem}
.svc h3{font-weight:500;font-size:1.3rem}
.svc h3 a,.ind h3 a{text-decoration:none}
.svc h3 a::before,.ind h3 a::before{content:"";position:absolute;inset:0;z-index:1}
.svc .desc{color:var(--muted);font-size:.98rem;flex:1}
.svc .price{font-family:var(--font-mono);font-size:.85rem;color:var(--ink);border-top:1px solid var(--line);padding-top:.9rem;position:relative;padding-right:2rem}
.svc .price .sub{color:var(--muted);font-size:.74rem;margin-top:.15rem}
.svc .price::after{content:"";position:absolute;right:0;top:calc(50% + .45rem);translate:0 -50%;width:22px;height:22px;background:var(--muted);-webkit-mask:var(--arrow) center/contain no-repeat;mask:var(--arrow) center/contain no-repeat;transition:transform .25s,background .25s}
.svc:hover .price::after{transform:translateX(4px);background:var(--primary)}
@media (max-width:1000px){.services{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.services{grid-template-columns:1fr}.svc{min-height:0}}

/* Process */
.process{--primary:#A9A9F2;padding-top:clamp(8rem,18vw,14rem);background:var(--dark);color:var(--dark-ink);position:relative;overflow:hidden;isolation:isolate}
.process .bg-video{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;z-index:-2}
.process::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgb(12 12 14/.25) 0%,rgb(12 12 14/.72) 32%,rgb(12 12 14/.88) 65%)}
.process .label,.process .sec-head p{color:var(--dark-muted)}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;position:relative;padding-top:3.25rem}
.steps .rail{position:absolute;left:22px;right:calc(25% - 22px);top:21px;height:1px;background:var(--dark-line)}
.steps .rail span{display:block;height:100%;width:100%;background:var(--primary);transform-origin:left}
.step{display:flex;flex-direction:column;position:relative}
.step .node{position:absolute;top:-3.25rem;left:0;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;font-family:var(--font-mono);font-size:.8rem;color:var(--dark-ink);background:var(--dark);border:1px solid var(--primary)}
.step .card{flex:1;display:flex;flex-direction:column;gap:.9rem;padding:1.5rem;background:rgb(16 16 20/.82);border:1px solid var(--dark-line);border-radius:8px;transition:border-color .3s,transform .3s var(--ease)}
.step:hover .card{border-color:var(--primary);transform:translateY(-4px)}
.step .hd{display:grid;gap:.35rem}
.step .dur{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--primary)}
.step h3{font-size:1.6rem}
.step p{color:var(--dark-muted);font-size:.95rem}
.step .out{color:var(--dark-ink);padding-left:.8rem;border-left:2px solid var(--primary)}
.step .out strong{display:block;font-family:var(--font-mono);font-weight:400;font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--dark-muted);margin-bottom:.2rem}
.step .meta{margin-top:auto;padding-top:.9rem;border-top:1px solid var(--dark-line);font-family:var(--font-display);font-weight:500;font-size:1.1rem;color:var(--dark-ink);letter-spacing:-0.01em}
@media (max-width:1000px){.steps{grid-template-columns:1fr 1fr;padding-top:0;row-gap:1.5rem}.steps .rail{display:none}.step .node{position:static;margin-bottom:.75rem}}
@media (max-width:600px){.steps{grid-template-columns:1fr}}

/* Industries */
.inds{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.ind{background:var(--bg);padding:1.5rem;min-height:300px;display:flex;flex-direction:column;position:relative;overflow:hidden}
.ind .photo{aspect-ratio:4/3;border-radius:var(--radius);margin:0 0 1.25rem;overflow:hidden;background:var(--tint)}
.ind .photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s var(--ease)}
.ind:hover .photo img{transform:scale(1.04)}
.ind h3{font-size:1.25rem}
.ind p{color:var(--muted);font-size:.95rem;margin-top:.5rem}
.ind .go{margin-top:auto;padding-top:1.25rem;font-size:.9rem;font-weight:500;color:var(--primary)}
@media (max-width:880px){.inds{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.inds{grid-template-columns:1fr}}

/* Team */
.founder{display:grid;grid-template-columns:5fr 7fr;gap:clamp(2rem,5vw,5rem);align-items:center}
.founder>*{min-width:0}
.founder .portrait{aspect-ratio:4/5;border-radius:var(--radius);overflow:hidden;border:1px solid var(--line)}
.founder .portrait img{width:100%;height:100%;object-fit:cover;display:block}
.founder .quote{margin-top:1rem;font-family:var(--font-display);font-size:clamp(1.4rem,2.4vw,2rem);line-height:1.25;letter-spacing:-0.015em;font-weight:400}
.founder .who{margin-top:1.75rem}
.founder .name{font-weight:500}
.founder .role{color:var(--muted);font-size:.85rem}
.founder .points{list-style:none;margin:2rem 0 0;padding:0;display:grid;gap:.6rem;font-size:.98rem}
.founder .points li{display:flex;gap:.75rem;align-items:baseline;color:var(--muted)}
.founder .points li::before{content:"";width:8px;height:8px;border:1.5px solid var(--primary);border-radius:50%;flex:none;position:relative;top:-1px}
/* Codeable track-record card in the team section */
.cdb{position:relative;overflow:hidden;display:grid;gap:1.1rem;margin-top:2rem;padding:1.35rem 1.4rem;border-radius:18px;background:var(--night);color:#F3EFE8;text-decoration:none;isolation:isolate;transition:transform .45s var(--ease),box-shadow .45s var(--ease)}
.cdb::before{content:"";position:absolute;inset:-40% -20% auto auto;width:70%;aspect-ratio:1;border-radius:50%;background:radial-gradient(closest-side,rgb(109 93 245/.55),transparent);z-index:-1;transition:transform .8s var(--ease)}
.cdb:hover,.cdb:focus-visible{transform:translateY(-4px);box-shadow:0 30px 60px -30px rgb(12 12 56/.6)}
.cdb:hover::before{transform:translate(-12%,10%) scale(1.15)}
.cdb-top{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}
.cdb-k{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--lav)}
.cdb-stars{display:inline-flex;gap:3px}
.cdb-stars svg{width:15px;height:15px;fill:var(--peach)}
.js .cdb-stars svg{opacity:0;transform:scale(.4) rotate(-30deg);transition:opacity .4s,transform .5s cubic-bezier(.34,1.56,.64,1)}
.js .cdb.in .cdb-stars svg{opacity:1;transform:none}
.cdb-stars svg:nth-child(2){transition-delay:.08s}.cdb-stars svg:nth-child(3){transition-delay:.16s}.cdb-stars svg:nth-child(4){transition-delay:.24s}.cdb-stars svg:nth-child(5){transition-delay:.32s}
.cdb-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;padding-block:1rem;border-block:1px solid rgb(255 255 255/.12)}
.cdb-stats>span{display:grid;gap:.15rem}
.cdb-stats b{font-family:var(--font-display);font-weight:400;font-size:clamp(1.6rem,3vw,2.2rem);line-height:1;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.cdb-stats small{font-size:.8rem;color:#B9B4D6}
.cdb-foot{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;font-size:.85rem;color:#B9B4D6}
.cdb-go{display:inline-flex;align-items:center;gap:.4rem;color:#F3EFE8;font-weight:500}
.cdb-go .ico{width:16px;height:16px;transition:transform .3s var(--ease)}
.cdb:hover .cdb-go .ico{transform:translateX(4px) rotate(-45deg)}
@media (max-width:480px){.cdb-stats{gap:.6rem}.cdb-stats small{font-size:.72rem}}
@media (prefers-reduced-motion:reduce){.cdb,.cdb::before,.js .cdb-stars svg{transition:none}}
@media (max-width:880px){.founder{grid-template-columns:1fr}.founder .portrait{max-width:360px}}

/* Journal */
.journal{padding-top:0}
.posts{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;list-style:none;margin:0;padding:0}
.entry-card{border-top:1px solid var(--ink);padding-top:1rem;position:relative}
.entry-card .label{display:block;margin-bottom:.75rem}
.entry-card h3,.entry-card h2{font-size:1.2rem;font-weight:500;line-height:1.25;letter-spacing:-0.01em}
.entry-card h3 a,.entry-card h2 a{text-decoration:none}
.entry-card h3 a::before,.entry-card h2 a::before{content:"";position:absolute;inset:0}
.entry-card:hover h3,.entry-card:hover h2{color:var(--primary)}
.entry-card .wp-block-post-excerpt__excerpt{color:var(--muted);font-size:.95rem;margin-top:.6rem}
.entry-card .wp-block-post-excerpt__more-text{display:none}
.wp-block-query-pagination{display:flex;gap:1rem;justify-content:space-between;margin-top:3rem;font-family:var(--font-mono);font-size:.85rem}
.wp-block-query-pagination a{text-decoration:none}
@media (max-width:880px){.posts{grid-template-columns:1fr}}

/* Single post and plain pages */
.article-head{padding-block:clamp(3rem,7vw,5rem) 2rem}
.article-head h1{font-size:clamp(2.2rem,4.4vw,3.6rem);margin-top:1rem}
.article-head .wp-block-post-featured-image{margin-top:2.5rem}
.article-head .wp-block-post-featured-image img{width:100%;height:auto;border-radius:var(--radius)}
.narrow{max-width:calc(46rem + var(--gutter) + var(--gutter-r))}
.prose{padding-bottom:clamp(3.5rem,8vw,6rem);font-size:1.06rem}
.prose>*+*{margin-top:1.25em}
.prose h2{font-size:1.8rem;margin-top:2em}
.prose h3{margin-top:1.75em}
.prose ul,.prose ol{padding-left:1.25em}
.prose a{text-decoration-color:var(--primary);text-underline-offset:3px}
.prose .note{border-left:2px solid var(--primary);padding-left:1rem;color:var(--muted)}
.meta-line{display:flex;gap:.75rem;flex-wrap:wrap}

/* Pricing table */
.price-table table{width:100%;border-collapse:collapse;font-size:1rem;table-layout:auto}
.price-table thead{border-bottom:1px solid var(--ink)}
.price-table th,.price-table td{text-align:left;padding:1.1rem 1.5rem 1.1rem 0;border:0;border-bottom:1px solid var(--line);vertical-align:top}
.price-table thead th{font-family:var(--font-mono);font-weight:400;font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.price-table td:nth-child(2){font-family:var(--font-display);font-weight:500;white-space:nowrap}
.price-table td:nth-child(3){color:var(--muted)}
.price-table figcaption{margin-top:1rem;color:var(--muted);font-size:.9rem}
@media (max-width:600px){.price-table thead{display:none}.price-table tr{display:grid;padding:1rem 0;border-bottom:1px solid var(--line)}.price-table td{border:0;padding:0}}

/* CTA band */
.cta-band{--primary:#A9A9F2;background:var(--dark);color:var(--dark-ink)}
.cta-band .wrap{display:grid;grid-template-columns:7fr 5fr;gap:2rem;align-items:end}
.cta-band p{color:var(--dark-muted);font-size:1.1rem;margin-top:1rem;max-width:32em}
.cta-band .wp-block-buttons{justify-content:flex-end}
.cta-band .wp-block-button__link,.contact .btn{background:var(--dark-ink);color:var(--dark);border-color:var(--dark-ink)}
.cta-band .is-style-outline .wp-block-button__link{background:transparent;color:var(--dark-ink);border-color:var(--dark-line)}
@media (max-width:880px){.cta-band .wrap{grid-template-columns:1fr}.cta-band .wp-block-buttons{justify-content:flex-start}}

/* Contact */
.contact{--primary:#A9A9F2;background:var(--dark);color:var(--dark-ink);--panel:#1D1D22;--panel-line:#3A3A42;--field:#26262C;--field-focus:#2E2E35}
.contact .label{color:var(--dark-muted)}
.contact-title{font-size:clamp(2rem,3.6vw,3.2rem);margin:1rem 0 1.25rem}
.contact-grid{display:grid;grid-template-columns:5fr 6fr;gap:clamp(2rem,5vw,5rem);align-items:start}
.contact-grid>*{min-width:0}
.contact-lead{color:var(--dark-muted);font-size:1.1rem;max-width:30em}
.ways{margin-top:2rem;display:grid}
.way{display:grid;gap:.2rem;padding:1.25rem 0;border-top:1px solid var(--dark-line);text-decoration:none;color:inherit;transition:padding-left .25s}
.way:last-child{border-bottom:1px solid var(--dark-line)}
a.way:hover{padding-left:.5rem}
.way b{font-family:var(--font-display);font-weight:500;font-size:1.35rem;letter-spacing:-0.02em}
.way small{color:var(--dark-muted);font-size:.9rem}
.audit-form{display:grid;gap:1.75rem;background:var(--panel);padding:clamp(1.25rem,3vw,2.25rem);border:1px solid var(--panel-line);border-radius:10px}
.checks{border:0;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:.5rem;min-width:0}
.checks legend{margin-bottom:.9rem;padding:0}
.checks label{display:flex;align-items:center;gap:.7rem;min-height:48px;padding:0 .9rem;border:1px solid var(--panel-line);border-radius:6px;background:var(--field);cursor:pointer;font-size:.95rem;transition:border-color .2s,background .2s}
.checks input{appearance:none;-webkit-appearance:none;margin:0;flex:none;width:18px;height:18px;border:1.5px solid var(--dark-muted);border-radius:4px;display:grid;place-items:center;cursor:pointer;transition:background .15s,border-color .15s}
.checks input::after{content:"";width:9px;height:5px;border:2px solid var(--dark);border-top:0;border-right:0;transform:rotate(-45deg) translate(1px,-1px);opacity:0}
.checks input:checked{background:var(--dark-ink);border-color:var(--dark-ink)}
.checks input:checked::after{opacity:1}
.checks label:has(input:checked){border-color:var(--dark-ink);background:var(--field-focus)}
.checks input:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
@media (max-width:520px){.checks{grid-template-columns:1fr}}
.fields{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem 2rem}
.fields label{display:grid;gap:.35rem}
.fields label span{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--dark-muted)}
.fields .full{grid-column:1/-1}
.fields input,.fields textarea,.fields select{font:inherit;font-size:1rem;padding:.75rem .9rem;border:1px solid var(--panel-line);border-radius:6px;background:var(--field);color:var(--dark-ink);width:100%;min-width:0;transition:border-color .2s,background .2s}
.fields input::placeholder,.fields textarea::placeholder{color:var(--dark-muted)}
.fields input:focus,.fields textarea:focus,.fields select:focus{outline:0;border-color:var(--dark-ink);background:var(--field-focus)}
.fields textarea{resize:vertical;min-height:5rem}
.form-foot{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.5rem}
.form-foot small{color:var(--dark-muted);font-size:.85rem;max-width:28em}
@media (max-width:880px){.contact-grid{grid-template-columns:1fr}.fields{grid-template-columns:1fr}}

/* Footer */
.site-footer{padding-block:3rem 2rem;border-top:1px solid var(--line);font-size:.92rem;color:var(--muted)}
.foot{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:2rem}
.foot .about{margin-top:1rem;max-width:30em}
.foot ul{list-style:none;margin:.75rem 0 0;padding:0;display:grid;gap:.4rem}
.foot a{text-decoration:none}
.foot a:hover,.legal a:hover{color:var(--ink)}
.foot .label{color:var(--ink)}
.legal{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;margin-top:2.5rem;padding-top:1.25rem;border-top:1px solid var(--line);font-size:.82rem}
.legal a{text-decoration:none}
@media (max-width:880px){.foot{grid-template-columns:1fr 1fr}.foot>:first-child{grid-column:1/-1}}

/* 404 */
.not-found{min-height:50vh;display:grid;align-content:center;gap:1.5rem}
.not-found p{color:var(--muted);font-size:1.15rem}

/* Motion: CSS keyframes + IntersectionObserver, no library. .js is only set when motion is allowed. */
.js .hero .w{display:inline-block;transform:translateY(110%) rotate(2deg);animation:rise .9s var(--ease) forwards;animation-delay:calc(.08s * var(--i))}
.js .hero h1:not(.is-split){visibility:hidden;animation:failsafe 0s 2s forwards}
@keyframes failsafe{to{visibility:visible}}
.hero h1 .wm{display:inline-block;overflow:hidden;vertical-align:bottom;padding-bottom:.08em;margin-bottom:-.08em}
.js .hero .lead,.js .hero .actions,.js .hero .facts{opacity:0;animation:fadeup .8s var(--ease) forwards}
.js .hero .lead{animation-delay:.55s}.js .hero .actions{animation-delay:.7s}.js .hero .facts{animation-delay:.85s}
.js .chat{opacity:0;animation:chatin 1.1s var(--ease) .4s forwards}
.js .reveal{opacity:0;transform:translateY(28px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.js .reveal.in{opacity:1;transform:none}
.js .reveal>.svc,.js .reveal>.step,.js .reveal>.ind,.js .reveal .entry-card{opacity:0;transform:translateY(24px);transition:opacity .7s var(--ease),transform .7s var(--ease);transition-delay:calc(.09s * var(--i,0))}
.js .reveal.in>.svc,.js .reveal.in>.step,.js .reveal.in>.ind,.js .reveal.in .entry-card{opacity:1;transform:none}
.js .ind .photo img{clip-path:inset(0 0 100% 0);transition:clip-path 1s var(--ease),transform .6s var(--ease);transition-delay:calc(.1s * var(--i,0))}
.js .reveal.in .ind .photo img{clip-path:inset(0)}
.js .portrait img{clip-path:inset(0 100% 0 0);transition:clip-path 1.1s var(--ease)}
.js .reveal.in .portrait img{clip-path:inset(0)}
.js .steps .rail span{transform:scaleX(0);transition:transform 1.4s var(--ease) .2s}
.js .reveal.in .rail span{transform:scaleX(1)}
.js .step .node{transform:scale(.6);opacity:0;transition:transform .5s cubic-bezier(.34,1.56,.64,1),opacity .4s;transition-delay:calc(.3s * var(--i,0))}
.js .reveal.in .step .node{transform:none;opacity:1}
@keyframes rise{to{opacity:1;transform:none}}
@keyframes fadeup{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@keyframes chatin{from{opacity:0;transform:translateY(40px) scale(.98)}to{opacity:1;transform:none}}
@supports (animation-timeline:scroll()){.js .chat{animation:chatin 1.1s var(--ease) .4s forwards,drift linear both;animation-timeline:auto,scroll(root);animation-range:normal,0 60vh}@keyframes drift{to{translate:0 -40px}}}
@media (prefers-reduced-motion:reduce){*,::before,::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.marquee .track,.platforms .track{animation:none}.msg{opacity:1;transform:none}}

/* Editor: keep animated elements visible and stretched links clickable */
.editor-styles-wrapper .svc h3 a::before,.editor-styles-wrapper .ind h3 a::before,.editor-styles-wrapper .entry-card h3 a::before{display:none}
.editor-styles-wrapper .msg{opacity:1;transform:none}

/* ===== v2 ===== */
:root{--lav:#A9A9F2;--violet:#6D5DF5;--peach:#F7CEB5;--accent-l:#9B8CFF;--night:#0C0C38;--night-2:#15154A}

/* Bot */
.bot{display:block;overflow:visible}
.bot .vb-head,.bot .vb-torso{fill:var(--night);stroke:var(--lav);stroke-width:2}
.bot .vb-screen{fill:#1B1C5E}
.bot .vb-ear{fill:#23236A;stroke:var(--lav);stroke-width:1.5}
.bot .vb-stalk{stroke:var(--lav);stroke-width:3;stroke-linecap:round}
.bot .vb-ant{fill:var(--peach)}
.bot .vb-eye{fill:#CFD0FF}
.bot .vb-mouth{fill:none;stroke:#CFD0FF;stroke-width:3;stroke-linecap:round}
.bot .vb-arm{stroke:var(--night);stroke-width:10;stroke-linecap:round}
.bot .vb-core{fill:var(--accent-l)}
.bot .vb-glow{fill:var(--lav);opacity:.35}
.bot .vb-eyes{transform:translate(var(--ex,0px),var(--ey,0px));transition:transform .25s ease-out}
.bot .vb-eye{transform-box:fill-box;transform-origin:center;animation:vblink 5s infinite}
.bot .vb-eye+.vb-eye{animation-delay:.02s}
.bot .vb-body{animation:vbob 3.2s ease-in-out infinite}
.bot .vb-glow{transform-box:fill-box;transform-origin:center;animation:vglow 3.2s ease-in-out infinite}
.bot .vb-ant{transform-box:fill-box;transform-origin:center;animation:vpulse 1.6s ease-in-out infinite}
.bot .vb-core{animation:vcore 2.4s ease-in-out infinite}
.bot .vb-wave{transform-origin:83px 99px}
.bot.wave .vb-wave,.vbot.greet .vb-wave,.vbot-btn:hover .vb-wave{animation:vwave 1.2s ease-in-out 2}
@keyframes vblink{0%,92%,100%{transform:scaleY(1)}95%{transform:scaleY(.1)}}
@keyframes vbob{50%{transform:translateY(-6px)}}
@keyframes vglow{50%{transform:scale(.8);opacity:.2}}
@keyframes vpulse{50%{transform:scale(1.25)}}
@keyframes vcore{50%{opacity:.45}}
@keyframes vwave{0%,100%{transform:rotate(0)}25%{transform:rotate(-28deg)}60%{transform:rotate(12deg)}}

/* Floating assistant */
.vbot{position:fixed;right:18px;bottom:18px;z-index:8;width:84px}
.vbot-live{right:auto;bottom:auto;left:0;top:0;transform-origin:0 0;will-change:transform}
.vbot-btn{display:block;width:84px;height:98px;padding:0;border:0;background:none;cursor:pointer;filter:drop-shadow(0 14px 18px rgb(12 12 56/.35))}
.vbot-btn .bot{width:100%;height:100%}
.vbot-fly{animation:vfly 1.6s cubic-bezier(.22,1,.36,1) .3s both}
@keyframes vfly{0%{transform:translate(60vw,-60vh) rotate(-25deg) scale(.6)}60%{transform:translate(-20px,10px) rotate(6deg)}100%{transform:none}}
.vbot-bubble{position:fixed;right:18px;bottom:128px;z-index:9;width:min(320px,calc(100vw - 36px));background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:14px;padding:1.1rem 1.1rem 1rem;box-shadow:0 24px 50px -20px rgb(12 12 56/.4);font-size:.95rem;line-height:1.5;transform-origin:bottom right;animation:vpop .35s cubic-bezier(.34,1.56,.64,1)}
.vbot-bubble[hidden]{display:none}
.vbot-bubble p{margin:0 1.5rem .9rem 0}
.vbot-bubble .btn{min-height:40px;font-size:.9rem;padding:0 .9rem}
.vbot-actions{display:flex;flex-wrap:wrap;gap:.5rem}
.vbot-close{position:absolute;top:.5rem;right:.5rem;width:32px;height:32px;border:0;background:none;color:var(--muted);font-size:1.3rem;line-height:1;cursor:pointer;border-radius:50%}
.vbot-close:hover{background:var(--tint);color:var(--ink)}
@keyframes vpop{from{opacity:0;transform:scale(.8) translateY(10px)}}
@media (max-width:600px){.vbot{width:64px}.vbot-btn{width:64px;height:75px}.vbot-bubble{bottom:100px}}

/* Page hero (inner pages) */
.phero{position:relative;overflow:hidden;isolation:isolate;background:var(--night);color:#F3EFE8;padding-block:clamp(3.5rem,8vw,6.5rem)}
.phero-bg{position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,var(--night) 35%,#16164A)}
.phero-grid{display:grid;grid-template-columns:6fr 5fr;gap:clamp(2rem,5vw,4.5rem);align-items:center}
.phero-grid>*{min-width:0}
.phero-solo .phero-grid{grid-template-columns:1fr}
.phero .label{color:var(--lav);display:flex;align-items:center;gap:.6rem;margin-bottom:1.25rem}
.phero .label::before{content:"";width:28px;height:1px;background:var(--lav)}
.phero h1{font-size:clamp(2.3rem,4.6vw,4rem);max-width:16em}
.phero .lead{font-size:1.18rem;color:#C9C4D8;max-width:34em;margin-top:1.4rem}
.phero .actions{margin-top:2rem}
.phero .wp-block-button__link{background:#F3EFE8;color:var(--night);border-color:#F3EFE8}
.phero .is-style-outline .wp-block-button__link{background:transparent;color:#F3EFE8;border-color:rgb(255 255 255/.25)}
.phero .is-style-outline .wp-block-button__link:hover{border-color:#F3EFE8}
.phero-solo h1{max-width:20em}
@media (max-width:880px){.phero-grid{grid-template-columns:1fr}.phero-visual{max-width:440px}}
.js .phero-copy>*{opacity:0;animation:fadeup .8s var(--ease) forwards}
.js .phero-copy>:nth-child(2){animation-delay:.08s}.js .phero-copy>:nth-child(3){animation-delay:.16s}.js .phero-copy>:nth-child(4){animation-delay:.24s}
.js .phero-visual{opacity:0;animation:chatin 1.1s var(--ease) .25s forwards}

/* Visuals */
.vis{position:relative;min-height:340px;display:grid;place-items:center;font-size:.9rem}
.vcard{background:rgb(255 255 255/.06);border:1px solid rgb(255 255 255/.14);border-radius:14px;color:#F3EFE8;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.vc-main{width:min(100%,380px);padding:1rem;box-shadow:0 40px 80px -30px rgb(0 0 0/.6)}
.vc-head{display:flex;align-items:center;gap:.55rem;padding-bottom:.8rem;margin-bottom:.8rem;border-bottom:1px solid rgb(255 255 255/.12)}
.vc-head b{font-weight:500}.vc-head small{margin-left:auto;color:#A8A3BA;font-family:var(--font-mono);font-size:.72rem}
.vc-dot{width:8px;height:8px;border-radius:50%;background:var(--accent-l)}
.vc-dot.live{background:#FF7A7A;animation:vpulse 1.2s infinite}
.vc-badge{position:absolute;padding:.55rem .8rem;border-radius:10px;display:flex;align-items:center;gap:.45rem;font-size:.82rem;background:#F3EFE8;color:var(--night);border:0;box-shadow:0 18px 30px -12px rgb(0 0 0/.5);animation:float 6s ease-in-out infinite}
.vc-badge.b1{left:-4%;bottom:12%}.vc-badge.b2{right:-2%;top:6%;animation-delay:-3s}.vc-badge.b3{right:4%;bottom:-2%;animation-delay:-1.5s}
.vc-badge .ok,.pick .ok{display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--accent-l);color:var(--night)}
.vc-badge svg,.pick svg,.ticks svg{width:12px;height:12px}
.vc-badge .ar{direction:rtl;font-size:.95rem}
@keyframes float{50%{transform:translateY(-10px)}}
.vc-msgs{display:flex;flex-direction:column;gap:.5rem}
.vc-msgs .m{max-width:82%;padding:.55rem .75rem;border-radius:10px;line-height:1.4;font-size:.86rem}
.vc-msgs .u{align-self:flex-end;background:#F3EFE8;color:var(--night);border-bottom-right-radius:3px}
.vc-msgs .b{align-self:flex-start;background:rgb(169 169 242/.22);border-bottom-left-radius:3px}
.js .vc-msgs .m{opacity:0;animation:msgloop 10s infinite}
.js .vc-msgs .m:nth-child(2){animation-delay:1.2s}.js .vc-msgs .m:nth-child(3){animation-delay:2.4s}.js .vc-msgs .m:nth-child(4){animation-delay:3.6s}
.js .vc-msgs .m:nth-child(1){animation-delay:0s}
@keyframes msgloop{0%{opacity:0;transform:translateY(8px)}5%,85%{opacity:1;transform:none}92%,100%{opacity:0}}
.wave{display:flex;align-items:center;gap:3px;height:70px;margin:.25rem 0 1rem}
.wave i{flex:1;height:var(--h);background:linear-gradient(var(--lav),var(--violet));border-radius:3px;animation:wv 1.1s ease-in-out infinite alternate;animation-delay:calc(var(--d) * -1)}
@keyframes wv{from{transform:scaleY(.25)}}
.tr{font-size:.86rem;padding:.5rem 0;border-top:1px solid rgb(255 255 255/.1)}
.tr span{display:block;font-family:var(--font-mono);font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:#A8A3BA}
.tr.ai span{color:var(--lav)}
.vis-agents{aspect-ratio:4/3;width:100%;max-width:460px;place-items:stretch;justify-self:center}
.vis-agents .flow{position:absolute;inset:0;width:100%;height:100%}
.fl-base path{fill:none;stroke:rgb(255 255 255/.15);stroke-width:2}
.fl-dash path{fill:none;stroke:var(--lav);stroke-width:2.5;stroke-dasharray:6 14;animation:dash 1.2s linear infinite}
@keyframes dash{to{stroke-dashoffset:-20}}
.node{position:absolute;padding:.5rem .8rem;font-family:var(--font-mono);font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;transform:translate(-50%,-50%)}
.node.n1{left:17.5%;top:20%}.node.n2{left:17.5%;top:80%}.node.n3{left:82.5%;top:23.3%}.node.n4{left:82.5%;top:76.6%}
.node-bot{position:absolute;left:50%;top:50%;width:84px;transform:translate(-50%,-55%)}
.vis-agents .vc-badge.b1{left:50%;bottom:-6%;transform:translateX(-50%);animation:none}
.vis-custom{min-height:360px}
.doc{position:absolute;width:150px;padding:.8rem;display:grid;gap:.4rem;animation:float 7s ease-in-out infinite}
.doc b{font-weight:500;font-size:.8rem;font-family:var(--font-mono)}
.doc i{display:block;height:6px;border-radius:3px;background:rgb(255 255 255/.18)}
.doc i.hl{background:var(--peach)}
.doc.d1{left:0;top:4%}.doc.d2{right:2%;top:0;animation-delay:-3s}
.answer{margin-top:7rem;position:relative}
.answer .q{color:#A8A3BA;font-size:.85rem;margin-bottom:.6rem}
.answer .a{line-height:1.5}
.cite{display:inline-block;margin-top:.5rem;font-family:var(--font-mono);font-size:.7rem;padding:.2rem .5rem;border-radius:4px;background:rgb(247 206 181/.18);color:var(--peach)}
.bars{display:grid;gap:.7rem;margin-bottom:1rem}
.bars span{position:relative;display:block;height:30px;border-radius:6px;background:rgb(255 255 255/.06);overflow:hidden}
.bars span::before{content:"";position:absolute;inset:0;width:calc(var(--v) * 100%);background:linear-gradient(90deg,var(--violet),var(--lav));border-radius:6px;transform-origin:left;animation:grow 1.6s var(--ease) both}
.bars span:nth-child(2)::before{animation-delay:.15s}.bars span:nth-child(3)::before{animation-delay:.3s}.bars span:nth-child(4)::before{animation-delay:.45s}
.bars em{position:relative;font-style:normal;font-size:.8rem;line-height:30px;padding-left:.7rem}
@keyframes grow{from{transform:scaleX(0)}}
.pick{display:flex;align-items:center;gap:.5rem;font-weight:500}
.spark{width:100%;height:90px;margin-bottom:.75rem}
.spark path{fill:none;stroke:var(--accent-l);stroke-width:3;stroke-linecap:round;stroke-dasharray:400;animation:draw 2.4s var(--ease) both}
@keyframes draw{from{stroke-dashoffset:400}}
.ticks{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}
.ticks li{display:flex;align-items:center;gap:.55rem;font-size:.88rem}
.ticks svg{color:var(--night);background:var(--accent-l);border-radius:50%;padding:3px;width:18px;height:18px}
.vis-photo{min-height:0;display:block;padding:1.5rem 0}
.ph-frame{border-radius:12px;overflow:hidden;aspect-ratio:4/3;border:1px solid rgb(255 255 255/.15);box-shadow:0 40px 80px -30px rgb(0 0 0/.6)}
.ph-frame img{width:100%;height:100%;object-fit:cover;display:block;animation:kb 18s ease-in-out infinite alternate}
@keyframes kb{to{transform:scale(1.08)}}
.vis-photo .vc-badge{max-width:260px;line-height:1.35}
.vis-photo .vc-badge.b1{left:-6%;bottom:6%}.vis-photo .vc-badge.b2{right:-4%;top:4%}
.vis-pricing{min-height:360px}
.tag{position:absolute;padding:1.1rem 1.25rem;width:200px;display:grid;gap:.1rem;animation:float 7s ease-in-out infinite}
.tag small{font-family:var(--font-mono);font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--lav)}
.tag b{font-family:var(--font-display);font-weight:500;font-size:1.8rem;letter-spacing:-.02em}
.tag span{color:#A8A3BA;font-size:.8rem}
.tag.t1{left:2%;top:6%}.tag.t2{right:2%;top:30%;animation-delay:-2.3s;background:#F3EFE8;color:var(--night)}.tag.t2 span{color:#6A6660}.tag.t2 small{color:var(--violet)}.tag.t3{left:16%;bottom:4%;animation-delay:-4.6s}

/* Track record strip */
.trust{padding-block:clamp(2.5rem,5vw,4rem);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.trust-grid{display:grid;grid-template-columns:4fr 8fr;gap:clamp(1.5rem,4vw,4rem);align-items:center}
.trust-grid>*{min-width:0}
.trust-copy p:not(.label){margin-top:.75rem;color:var(--muted);max-width:24em}
.brands{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.brands li{background:var(--bg);min-height:96px;display:grid;place-items:center;padding:1rem .75rem;text-align:center;font-family:var(--font-display);font-weight:600;font-size:clamp(1rem,1.5vw,1.25rem);letter-spacing:-.02em;color:var(--muted);transition:color .25s,background .25s}
.brands li:hover{color:var(--ink);background:var(--surface)}
.platforms{display:flex;align-items:center;gap:1.5rem;margin-top:clamp(1.5rem,3vw,2.25rem)}
.platforms .label{flex:none}
.platforms .viewport{flex:1;min-width:0;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.platforms .track{display:flex;gap:.6rem;width:max-content;animation:pmarquee 50s linear infinite}
@keyframes pmarquee{to{transform:translateX(calc(-50% - .3rem))}}
.platforms .row{display:flex;gap:.6rem}
.platforms:hover .track{animation-play-state:paused}
.platforms .row span{display:inline-flex;align-items:center;gap:.5rem;padding:.45rem .9rem;border:1px solid var(--line);border-radius:999px;background:var(--surface);font-size:.88rem;font-weight:500;white-space:nowrap}
.platforms .row span::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--violet)}
.platforms .row span:nth-child(3n+2)::before{background:var(--peach)}.platforms .row span:nth-child(3n)::before{background:var(--accent-l)}
@media (max-width:880px){.trust-grid{grid-template-columns:1fr}.brands{grid-template-columns:repeat(3,1fr)}.brands li:nth-child(4),.brands li:nth-child(5){grid-column:span 1}}
@media (max-width:520px){.brands{grid-template-columns:1fr 1fr}.brands li{min-height:72px}.brands li:last-child{grid-column:1/-1}.platforms{flex-direction:column;align-items:flex-start;gap:.75rem}.platforms .viewport{width:100%}}

/* Team illustration */
.team-art{display:block;width:100%;height:auto;border-radius:var(--radius)}
.team-art text{font-family:var(--font-mono);font-size:13px;letter-spacing:.06em;text-transform:uppercase;fill:#C9C4D8}
.team-art text.dark{fill:#0C0C38;font-family:var(--font-body);text-transform:none;letter-spacing:0;font-size:15px;font-weight:500}
.tm-lines{opacity:.25}
.tm-flow path{stroke-dasharray:3 22;animation:dash2 1.4s linear infinite}
@keyframes dash2{to{stroke-dashoffset:-25}}
.tm-tool>g{animation:float 6s ease-in-out infinite}.tm-tool:nth-of-type(even)>g{animation-delay:-3s}
.founder .art{border-radius:var(--radius);overflow:hidden}
.js .founder .art{clip-path:inset(0 100% 0 0);transition:clip-path 1.1s var(--ease)}
.js .reveal.in .art{clip-path:inset(0)}

/* Home hero bot slot */
.hero .chat{position:relative}

/* Content sections for service and industry pages */
.band{background:var(--surface);border-block:1px solid var(--line)}
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4.5rem);align-items:start}
.split>*{min-width:0}
@media (max-width:880px){.split{grid-template-columns:1fr}}
.checklist{list-style:none;margin:0;padding:0;display:grid;gap:.75rem}
.checklist li{position:relative;padding-left:2rem;line-height:1.5}
.checklist li::before{content:"";position:absolute;left:0;top:.15em;width:1.3rem;height:1.3rem;border-radius:50%;background:var(--tint) var(--tick) center/12px no-repeat}
:root{--tick:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 8.5l3 3 7-7' fill='none' stroke='%236D5DF5' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
.faq{display:grid;gap:0;border-top:1px solid var(--line);max-width:52rem}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:1.25rem 0;font-family:var(--font-display);font-weight:500;font-size:1.12rem;letter-spacing:-.01em}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";flex:none;width:22px;height:22px;border-radius:50%;background:var(--tint);-webkit-mask:none;transition:transform .3s;background-image:linear-gradient(var(--ink),var(--ink)),linear-gradient(var(--ink),var(--ink));background-size:10px 1.6px,1.6px 10px;background-position:center;background-repeat:no-repeat}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq .ans{padding:0 0 1.4rem;color:var(--muted);max-width:44rem}
.faq-wrap{display:grid;grid-template-columns:4fr 8fr;gap:clamp(2rem,5vw,4rem)}
@media (max-width:880px){.faq-wrap{grid-template-columns:1fr}}
.svc-links{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
@media (max-width:880px){.svc-links{grid-template-columns:1fr}}
.prose-lg p+p{margin-top:1rem}
.prose-lg p{color:var(--muted);font-size:1.05rem}
.prose-lg strong{color:var(--ink);font-weight:500}

/* Pricing page */
.plans{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.plan{position:relative;display:flex;flex-direction:column;gap:.9rem;padding:1.75rem;border:1px solid var(--line);border-radius:12px;background:var(--surface);transition:border-color .25s,transform .25s var(--ease)}
.plan:hover{border-color:var(--violet);transform:translateY(-3px)}
.plan .kicker{font-family:var(--font-mono);font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;color:var(--violet)}
.plan h3{font-size:1.25rem}
.plan .amt{font-family:var(--font-display);font-size:2.2rem;font-weight:500;letter-spacing:-.03em;line-height:1}
.plan .amt small{display:block;font-size:.8rem;font-family:var(--font-mono);letter-spacing:.04em;color:var(--muted);margin-top:.5rem;font-weight:400}
.plan .checklist{font-size:.93rem;color:var(--muted);flex:1}
.plan .more{font-weight:500;font-size:.93rem;color:var(--violet);text-decoration:none}
.plan .more::after{content:" →"}
.plan.featured{background:var(--night);color:#F3EFE8;border-color:var(--night)}
.plan.featured .checklist{color:#C9C4D8}.plan.featured .kicker,.plan.featured .more{color:var(--lav)}.plan.featured .amt small{color:#A8A3BA}
.plan.featured .checklist li::before{background-color:rgb(169 169 242/.2)}
@media (max-width:1000px){.plans{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.plans{grid-template-columns:1fr}}

/* Journal */
.posts{row-gap:3rem}
.entry-card .wp-block-post-featured-image{margin:0 0 1.1rem;border-radius:8px;overflow:hidden;aspect-ratio:16/10}
.entry-card .wp-block-post-featured-image img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.entry-card:hover .wp-block-post-featured-image img{transform:scale(1.04)}
.entry-card:has(.wp-block-post-featured-image){border-top:0;padding-top:0}
.article-head .wp-block-post-featured-image{aspect-ratio:16/9;overflow:hidden;border-radius:10px}
.prose blockquote{margin:1.5em 0;padding-left:1.25rem;border-left:2px solid var(--violet);font-size:1.15rem}
.prose table{width:100%;border-collapse:collapse;font-size:.95rem}
.prose th,.prose td{text-align:left;padding:.7rem .75rem .7rem 0;border-bottom:1px solid var(--line)}
.prose figure{margin:1.5em 0}
.article-cta{margin-top:3rem;padding:1.75rem;border-radius:12px;background:var(--night);color:#F3EFE8}
.article-cta p{color:#C9C4D8;margin-top:.5rem}
.article-cta a.btn{margin-top:1rem;background:#F3EFE8;color:var(--night);border-color:#F3EFE8}

/* Form states */
.audit-form .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-msg{padding:1rem 1.1rem;border-radius:8px;font-size:.95rem}
.form-msg.ok{background:rgb(155 140 255/.14);border:1px solid rgb(155 140 255/.4);color:var(--dark-ink)}
.form-msg.err{background:rgb(255 122 122/.12);border:1px solid rgb(255 122 122/.45);color:var(--dark-ink)}
.audit-form .btn[disabled]{opacity:.6;cursor:wait}

@media (prefers-reduced-motion:reduce){.sky-line,.sky-win rect,.wave i,.vc-badge,.doc,.tag,.tm-tool,.tm-tool>g,.tm-flow path,.fl-dash path,.vc-dot.live,.ph-frame img,.bot *{animation:none!important}.js .vc-msgs .m{opacity:1}}

.faq .wp-block-details p{padding:0 0 1.4rem;color:var(--muted);max-width:44rem}
.faq .wp-block-details{margin:0}
.article .prose{padding-bottom:0}
.article-cta{margin:3rem 0 clamp(3.5rem,8vw,6rem)}
.article-cta h2{font-size:1.6rem}
.audit-form a{color:inherit}

.faq-wrap .sec-head{align-content:start}
.vis-chat .vc-badge.b1{bottom:-8%}
.plan .checklist{align-content:start}
.plan .more a{text-decoration:none}

/* ===== v3 ===== */
/* Inner hero: Dubai skyline line drawing instead of glows */
.phero{padding-bottom:clamp(6rem,12vw,9rem)}
.sky{position:absolute;left:0;right:0;bottom:0;width:100%;height:clamp(110px,16vw,210px)}
.sky-line{fill:rgb(169 169 242/.05);stroke:var(--lav);stroke-opacity:.42;stroke-width:1.2;vector-effect:non-scaling-stroke;stroke-dasharray:1;stroke-dashoffset:0}
.js .sky-line{animation:skydraw 3.2s var(--ease) .2s both}
@keyframes skydraw{from{stroke-dashoffset:1;fill-opacity:0}70%{fill-opacity:0}}
.sky-win rect{fill:var(--peach);opacity:.15;animation:twinkle 6s ease-in-out infinite;animation-delay:var(--d)}
@keyframes twinkle{40%,60%{opacity:.85}}

/* Framed illustrations */
.art-frame,.founder .art{padding:10px;background:var(--surface);border:1px solid var(--line);border-radius:24px;box-shadow:0 30px 60px -36px rgb(12 12 56/.45)}
.art-frame>svg,.founder .art>svg{display:block;width:100%;height:auto;border-radius:16px}
.js .founder .art,.js .art-frame{clip-path:inset(0 100% 0 0 round 24px);transition:clip-path 1.1s var(--ease)}
.js .reveal.in .art,.js .reveal.in .art-frame,.js .art-frame.in{clip-path:inset(0 0 0 0 round 24px)}

/* Services hub hero: six tiles light up in turn */
.vis-svc{width:100%;max-width:440px;justify-self:center}
.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:.7rem;width:100%}
.tile{position:relative;display:grid;gap:.5rem;padding:1rem .9rem;border-radius:12px;background:rgb(255 255 255/.05);border:1px solid rgb(255 255 255/.12);color:#F3EFE8;animation:tilein .7s var(--ease) both,tileon 9s ease-in-out infinite;animation-delay:calc(var(--i) * .08s + .4s),calc(var(--i) * 1.5s + 1s)}
.tile svg{width:26px;height:26px;fill:none;stroke:var(--lav);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.tile b{font-weight:500;font-size:.88rem}
.tile small{display:flex;align-items:center;gap:.35rem;font-family:var(--font-mono);font-size:.66rem;text-transform:uppercase;letter-spacing:.08em;color:#A8A3BA}
.tile small i{width:6px;height:6px;border-radius:50%;background:rgb(255 255 255/.25);animation:tiledot 9s ease-in-out infinite;animation-delay:calc(var(--i) * 1.5s + 1s)}
@keyframes tilein{from{opacity:0;transform:translateY(14px) scale(.96)}}
@keyframes tileon{0%,14%,100%{color:#F3EFE8;background:rgb(255 255 255/.05);border-color:rgb(255 255 255/.12);transform:none}4%,10%{background:#F3EFE8;border-color:#F3EFE8;color:var(--night);transform:translateY(-4px)}}
@keyframes tiledot{0%,3%{background:rgb(255 255 255/.25)}6%,100%{background:var(--accent-l)}}
.vis-svc .vc-badge.b1{left:auto;right:-3%;bottom:-12%}

/* Industries hub hero: a deck of sector conversations */
.vis-sectors{width:100%;max-width:400px;justify-self:center;min-height:360px}
.deck{position:relative;width:100%;height:290px}
.deck-card .done{margin-top:auto}
@media (max-width:480px){.deck{height:320px}}
.deck-card{position:absolute;inset:0;padding:1rem;border-radius:14px;background:#1A1A4E;border:1px solid rgb(255 255 255/.14);color:#F3EFE8;box-shadow:0 30px 60px -30px rgb(0 0 0/.7);display:flex;flex-direction:column;gap:.55rem;transform-origin:50% 0;animation:deck 12s var(--ease) infinite;animation-delay:calc(var(--i) * 3s - 12s)}
.sec-tag{align-self:flex-start;font-family:var(--font-mono);font-size:.68rem;text-transform:uppercase;letter-spacing:.1em;padding:.25rem .55rem;border-radius:999px;background:var(--peach);color:var(--night)}
.deck-card .m{max-width:85%;padding:.55rem .75rem;border-radius:10px;font-size:.86rem;line-height:1.4}
.deck-card .u{align-self:flex-end;background:#F3EFE8;color:var(--night);border-bottom-right-radius:3px}
.deck-card .b{align-self:flex-start;background:rgb(169 169 242/.22);border-bottom-left-radius:3px}
.deck-card .done{display:flex;align-items:center;gap:.45rem;font-size:.8rem;color:var(--accent-l)}
.deck-card .ok{display:grid;place-items:center;width:18px;height:18px;border-radius:50%;background:var(--accent-l);color:var(--night)}.deck-card .ok svg{width:11px;height:11px}
@keyframes deck{
0%,21%{transform:none;opacity:1;z-index:5}
25%{transform:translate(115%,24px) rotate(12deg);opacity:0;z-index:5}
25.1%{transform:translateY(-48px) scale(.85);opacity:0;z-index:1}
29%,46%{transform:translateY(-48px) scale(.85);opacity:.4;z-index:1}
50%,71%{transform:translateY(-32px) scale(.9);opacity:.6;z-index:2}
75%,96%{transform:translateY(-16px) scale(.95);opacity:.85;z-index:3}
100%{transform:none;opacity:1;z-index:4}}
.vis-sectors .deck{margin-top:60px}

/* About hero: the layers we build, from websites up to AI */
.vis-stack{width:100%;max-width:420px;justify-self:center;display:grid;gap:.7rem;place-items:stretch;padding-top:3.5rem}
.layer{position:relative;padding:.9rem 1rem;border-radius:12px;border:1px solid rgb(255 255 255/.14);background:rgb(255 255 255/.05);color:#F3EFE8;display:grid;grid-template-columns:1fr auto;align-items:center;gap:.15rem 1rem;animation:layerin .9s var(--ease) both}
.layer small{grid-column:1;font-family:var(--font-mono);font-size:.66rem;text-transform:uppercase;letter-spacing:.1em;color:var(--lav)}
.layer b{grid-column:1;font-weight:500}
.lchips{grid-column:2;grid-row:1/3;display:flex;gap:.3rem}
.lchips span{font-size:.7rem;padding:.2rem .45rem;border-radius:6px;background:rgb(255 255 255/.08)}
.layer.l3{background:#F3EFE8;color:var(--night);border-color:#F3EFE8;animation-delay:1.1s;margin-inline:0}
.layer.l3 small{color:var(--violet)}.layer.l3 .lchips span{background:rgb(12 12 56/.08)}
.layer.l2{animation-delay:.65s;margin-inline:.8rem}
.layer.l1{animation-delay:.2s;margin-inline:1.6rem}
.layer::after{content:"";position:absolute;left:50%;bottom:-.75rem;width:1px;height:.7rem;background:var(--lav);opacity:.5}
.layer.l1::after{display:none}
@keyframes layerin{from{opacity:0;transform:translateY(28px)}}
.stack-bot{position:absolute;top:-.6rem;right:8%;width:76px;animation:layerin .8s var(--ease) 1.6s both}
.stack-bot .bot{width:100%;height:auto}

/* About hero frame: the team on top, the stack we build, Dubai skyline drawing in below */
.vis-about{width:100%;max-width:520px;justify-self:center;min-height:0;display:flex;flex-direction:column;align-items:stretch;gap:0;padding:1.25rem 1.25rem 0;border-radius:24px;border:1px solid rgb(255 255 255/.12);background:linear-gradient(180deg,#12124A,#0B0B32);overflow:hidden;isolation:isolate}
.vis-about::before{content:"";position:absolute;inset:0;z-index:-2;background:linear-gradient(rgb(255 255 255/.04) 1px,transparent 1px) 0 0/28px 28px,linear-gradient(90deg,rgb(255 255 255/.04) 1px,transparent 1px) 0 0/28px 28px;mask:linear-gradient(180deg,#000 40%,transparent)}
.ab-orb{position:absolute;z-index:-1;width:70%;aspect-ratio:1;left:15%;top:-20%;border-radius:50%;background:radial-gradient(closest-side,rgb(109 93 245/.45),transparent);animation:ab-orb 9s ease-in-out infinite alternate}
@keyframes ab-orb{to{transform:translate(12%,10%) scale(1.15)}}
.ab-team{display:flex;flex-wrap:wrap;justify-content:center;gap:.45rem}
.ab-who{display:inline-flex;align-items:center;gap:.45rem;padding:.28rem .7rem .28rem .28rem;border-radius:999px;background:rgb(255 255 255/.08);border:1px solid rgb(255 255 255/.14);color:#F3EFE8;font-size:.74rem;white-space:nowrap;animation:layerin .8s var(--ease) both,float 6s ease-in-out infinite}
.ab-who svg{width:24px;height:24px;border-radius:50%}
.ab-who.w1{animation-delay:1.7s,2.6s}.ab-who.w2{animation-delay:1.85s,3.3s}.ab-who.w3{animation-delay:2s,4s}
.vis-about .vis-stack{max-width:none;padding-top:3.4rem;position:relative}
.vis-about .layer.l1,.vis-about .layer.l2{background:#17174F}
.vis-about .stack-bot{right:3%;top:-.2rem}
.ab-pin{position:absolute;z-index:2;left:1.1rem;bottom:.8rem;display:inline-flex;align-items:center;gap:.35rem;padding:.25rem .55rem;border-radius:999px;background:rgb(11 11 50/.75);font-family:var(--font-mono);font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;color:var(--lav);animation:layerin .8s var(--ease) 2.6s both}
.ab-pin .ico{width:13px;height:13px}
.ab-sky{display:block;width:calc(100% + 2.5rem);margin:-1.2rem -1.25rem 0;height:auto;position:relative;z-index:-1;opacity:.8}
.ab-sky path{fill:none;stroke:var(--lav);stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;animation:ab-draw 3.2s var(--ease) .3s forwards}
@keyframes ab-draw{to{stroke-dashoffset:0}}
.ab-win circle{fill:var(--peach);opacity:0;animation:ab-twinkle 3.6s ease-in-out infinite}
.ab-win circle:nth-child(2n){animation-delay:1.2s}.ab-win circle:nth-child(3n){animation-delay:2.1s}.ab-win circle:nth-child(5n){animation-duration:2.8s}
@keyframes ab-twinkle{0%,100%{opacity:.15}50%{opacity:1}}
@media (max-width:480px){.vis-about{padding:1rem .8rem 0}.ab-sky{width:calc(100% + 1.6rem);margin-inline:-.8rem}.ab-who{font-size:.68rem}.lchips span{font-size:.64rem}}
@media (prefers-reduced-motion:reduce){.ab-orb,.ab-sky path,.ab-win circle,.ab-who,.ab-pin{animation:none!important}.ab-sky path{stroke-dashoffset:0}.ab-win circle{opacity:.6}}

/* About: what we believe, on a night band with an illustration per principle */
.bl-sec{background:var(--night);color:#F3EFE8;position:relative;overflow:hidden;isolation:isolate}
.bl-sec::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(60% 50% at 50% 0%,rgb(109 93 245/.28),transparent 70%),radial-gradient(rgb(255 255 255/.07) 1px,transparent 1.2px) 0 0/22px 22px}
.bl-sec .label{color:var(--lav)}
.bl-sec .belief-big{color:#F3EFE8}
.bl-word{position:relative;display:inline-block;color:var(--lav)}
.bl-word svg{position:absolute;left:-2%;bottom:-.12em;width:104%;height:.32em;overflow:visible}
.bl-word path{fill:none;stroke:var(--peach);stroke-width:3;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.1s var(--ease) .5s}
.reveal.in .bl-word path,html:not(.js) .bl-word path{stroke-dashoffset:0}
.bls{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.bl{position:relative;display:grid;gap:.7rem;align-content:start;padding:1.25rem 1.25rem 1.5rem;border-radius:20px;background:rgb(255 255 255/.04);border:1px solid rgb(255 255 255/.1);transition:transform .45s var(--ease),border-color .3s,background .3s}
.bl:hover{transform:translateY(-6px);border-color:rgb(169 169 242/.45);background:rgb(255 255 255/.06)}
.js .bls .bl{opacity:0;transform:translateY(24px);transition:opacity .7s var(--ease),transform .7s var(--ease),border-color .3s,background .3s;transition-delay:calc(.12s * var(--i))}
.js .bls.in .bl{opacity:1;transform:none}
.js .bls.in .bl:hover{transform:translateY(-6px)}
.bl .n{margin:.4rem 0 0;font-family:var(--font-mono);font-size:.75rem;color:var(--lav)}
.bl h3{font-size:1.2rem;color:#F3EFE8}
.bl p:not(.n){color:#B9B4D6;font-size:.95rem}
.bl-art{height:150px;border-radius:14px;background:#14144C;border:1px solid rgb(255 255 255/.08);display:grid;place-items:center;position:relative;overflow:hidden;font-size:.78rem}
.bl-ring svg{width:112px;height:112px;transform:rotate(-90deg)}
.bl-ring circle{fill:none;stroke-width:10}
.bl-ring .trk{stroke:rgb(255 255 255/.1)}
.bl-ring .val{stroke:var(--lav);stroke-linecap:round;stroke-dasharray:0 100;transition:stroke-dasharray 1.6s var(--ease) .4s}
.bls.in .bl-ring .val,html:not(.js) .bl-ring .val{stroke-dasharray:70 100}
.bl-ring{padding-bottom:22px}
.bl-ring svg,.bl-ring span{grid-area:1/1}
.bl-ring span{display:grid;place-content:center;text-align:center}
.bl-ring b{font-family:var(--font-display);font-weight:400;font-size:1.6rem;line-height:1}
.bl-ring small{color:#B9B4D6;font-size:.68rem}
.bl-ring em{position:absolute;bottom:.55rem;font-style:normal;font-family:var(--font-mono);font-size:.62rem;letter-spacing:.06em;color:var(--peach)}
.bl-chat{display:flex;flex-direction:column;justify-content:center;align-items:stretch;gap:.4rem;padding:.8rem}
.bl-chat span{font-family:var(--font-body);text-transform:none;letter-spacing:0;max-width:86%;padding:.4rem .65rem;border-radius:12px;line-height:1.35}
.bl-chat .u{align-self:flex-end;background:var(--violet);color:#fff;border-bottom-right-radius:4px}
.bl-chat .b{align-self:flex-start;background:#F3EFE8;color:var(--night);border-bottom-left-radius:4px}
.bl-chat .h{font-family:var(--font-mono)!important;align-self:center;display:inline-flex;align-items:center;gap:.35rem;padding:.2rem .6rem;border-radius:999px;font-family:var(--font-mono);font-size:.62rem;color:var(--peach);border:1px dashed rgb(247 206 181/.5)}
.bl-chat .h i{width:6px;height:6px;border-radius:50%;background:#3DDC97;box-shadow:0 0 0 3px rgb(61 220 151/.2)}
.js .bl-chat span{opacity:0;transform:translateY(8px);transition:opacity .5s var(--ease),transform .5s var(--ease)}
.js .bls.in .bl-chat span{opacity:1;transform:none}
.js .bls.in .bl-chat .u{transition-delay:.5s}.js .bls.in .bl-chat .b{transition-delay:1.1s}.js .bls.in .bl-chat .h{transition-delay:1.7s}
.bl-bars{grid-template-rows:1fr auto;padding:1rem 1rem .6rem;place-items:stretch}
.bl-bars .bars{display:flex;align-items:flex-end;gap:7px;height:100%}
.bl-bars .bars i{flex:1;height:var(--h);border-radius:5px 5px 2px 2px;background:linear-gradient(180deg,var(--lav),rgb(109 93 245/.6));transform-origin:bottom;transform:scaleY(.08);transition:transform .9s var(--ease)}
.bl-bars .bars i:last-child{background:linear-gradient(180deg,var(--peach),rgb(247 206 181/.5))}
.bls.in .bl-bars .bars i,html:not(.js) .bl-bars .bars i{transform:none}
.bl-bars .bars i:nth-child(2){transition-delay:.08s}.bl-bars .bars i:nth-child(3){transition-delay:.16s}.bl-bars .bars i:nth-child(4){transition-delay:.24s}.bl-bars .bars i:nth-child(5){transition-delay:.32s}.bl-bars .bars i:nth-child(6){transition-delay:.4s}.bl-bars .bars i:nth-child(7){transition-delay:.48s}
.bl-bars .bl-days{display:flex;gap:7px;margin-top:.35rem}
.bl-bars .bl-days span{flex:1;text-align:center;font-family:var(--font-mono);font-size:.6rem;color:#8E89B5}

/* About: who you will work with */
.trs{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.tr{border-radius:20px;background:var(--bg);border:1px solid var(--line);overflow:hidden;display:grid;grid-template-rows:auto 1fr;transition:transform .45s var(--ease),border-color .3s,box-shadow .45s var(--ease)}
.tr:hover{transform:translateY(-6px);border-color:rgb(109 93 245/.45);box-shadow:0 30px 50px -34px rgb(12 12 56/.5)}
.js .trs .tr{opacity:0;transform:translateY(24px);transition:opacity .7s var(--ease),transform .7s var(--ease),border-color .3s,box-shadow .45s var(--ease);transition-delay:calc(.12s * var(--i))}
.js .trs.in .tr{opacity:1;transform:none}
.js .trs.in .tr:hover{transform:translateY(-6px)}
.rm{height:120px;background:var(--night);position:relative;overflow:hidden;padding:1rem;font-size:.76rem;color:#F3EFE8}
.rm>*{position:relative;z-index:1}
.rm::after{content:"";position:absolute;inset:0;z-index:0;background:radial-gradient(70% 90% at 100% 0%,rgb(109 93 245/.35),transparent 70%);pointer-events:none}
.rm-eng{display:grid;align-content:center;gap:9px}
.rm-eng i{display:block;height:7px;border-radius:4px;width:var(--w);margin-left:calc(var(--x,0) * 16px);background:rgb(169 169 242/.7);transform-origin:left;transform:scaleX(0);transition:transform .7s var(--ease)}
.rm-eng i:nth-child(2){background:var(--peach);transition-delay:.15s}.rm-eng i:nth-child(3){transition-delay:.3s;background:rgb(243 239 232/.55)}.rm-eng i:nth-child(4){transition-delay:.45s}.rm-eng i:nth-child(5){transition-delay:.6s;background:rgb(243 239 232/.55)}
.trs.in .rm-eng i,html:not(.js) .rm-eng i{transform:none}
.rm-cd{display:flex;flex-direction:column;justify-content:center;gap:.4rem}
.rm-cd span{font-family:var(--font-body);text-transform:none;letter-spacing:0;font-size:.76rem;max-width:80%;padding:.35rem .6rem;border-radius:11px}
.rm-cd .u{align-self:flex-end;background:var(--violet);border-bottom-right-radius:4px}
.rm-cd .b{align-self:flex-start;background:#F3EFE8;color:var(--night);border-bottom-left-radius:4px}
.js .rm-cd span{opacity:0;transform:translateY(8px);transition:opacity .5s var(--ease),transform .5s var(--ease)}
.js .trs.in .rm-cd span{opacity:1;transform:none}.js .trs.in .rm-cd .b{transition-delay:.7s}.js .trs.in .rm-cd .u{transition-delay:.3s}
.rm-ai{display:grid;align-content:center;gap:.4rem}
.rm-ai svg{width:100%;height:52px;overflow:visible}
.rm-ai path{fill:none;stroke:var(--lav);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.4s var(--ease) .3s}
.trs.in .rm-ai path,html:not(.js) .rm-ai path{stroke-dashoffset:0}
.rm-ai small{font-family:var(--font-mono);font-size:.62rem;color:#B9B4D6;position:relative;z-index:1}
.tr-body{padding:1.25rem 1.25rem 1.4rem;display:grid;gap:.7rem;align-content:start}
.tr-who{display:flex;align-items:center;gap:.65rem;margin-top:-2.6rem}
.tr-face{width:52px;height:52px;border-radius:50%;border:3px solid var(--bg);flex:none;position:relative;z-index:1}
.tr-who h3{font-size:1.15rem;margin-top:1.4rem}
.tr-body p{color:var(--muted);font-size:.95rem}
.tr-chips{display:flex;flex-wrap:wrap;gap:.35rem}
.tr-chips span{font-family:var(--font-body);text-transform:none;letter-spacing:0;font-size:.74rem;padding:.2rem .55rem;border-radius:999px;background:var(--tint);color:var(--ink)}
.tr-path{position:relative;display:flex;justify-content:space-between;margin-top:3.2rem;padding-top:1.2rem}
.tr-path i{position:absolute;z-index:0;top:0;left:0;right:0;height:2px;border-radius:2px;background:linear-gradient(90deg,var(--violet),var(--lav),var(--peach))}
.tr-path span{position:relative;z-index:1;font-family:var(--font-mono);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.tr-path span::before{content:"";position:absolute;left:50%;top:-1.2rem;box-sizing:border-box;width:14px;height:14px;margin:-14px 0 0 -7px;border-radius:50%;background:var(--bg);border:2px solid var(--violet)}
.tr-path span:first-child::before{left:5px}.tr-path span:nth-last-child(2)::before{left:auto;right:0}
.tr-path::after{content:"Same people at every stage";position:absolute;top:-1.9rem;left:50%;transform:translate(-50%,-50%);padding:.15rem .6rem;border-radius:999px;background:var(--bg);border:1px solid var(--line);font-size:.72rem;color:var(--ink);white-space:nowrap}
@media (max-width:860px){.bls,.trs{grid-template-columns:1fr}.bl-art{height:140px}}
@media (prefers-reduced-motion:reduce){.bl-word path,.bl-ring .val,.bl-bars .bars i,.rm-eng i,.rm-ai path{transition:none}}

/* Contact hero: booking a slot */
.vis-book .vc-main{position:relative}
.days{display:grid;grid-template-columns:repeat(5,1fr);gap:.4rem;margin-bottom:.8rem}
.days span{text-align:center;padding:.45rem 0;border-radius:8px;font-family:var(--font-mono);font-size:.72rem;background:rgb(255 255 255/.06);color:#C9C4D8}
.days span.on{background:rgb(169 169 242/.25);color:#F3EFE8}
.slots{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin-bottom:.9rem}
.slot{padding:.6rem;border-radius:8px;border:1px solid rgb(255 255 255/.16);text-align:center;font-family:var(--font-mono);font-size:.8rem}
.slot.s1{animation:slotpick 8s ease-in-out infinite}
@keyframes slotpick{0%,30%{background:transparent;color:inherit;border-color:rgb(255 255 255/.16)}36%,92%{background:#F3EFE8;color:var(--night);border-color:#F3EFE8}100%{background:transparent}}
.book-btn{position:relative;height:42px;border-radius:8px;background:var(--violet);display:grid;place-items:center;font-weight:500;font-size:.88rem;overflow:hidden}
.book-btn>span{grid-area:1/1;display:flex;align-items:center;gap:.4rem}
.book-btn svg{width:14px;height:14px}
.b-idle{animation:bidle 8s ease-in-out infinite}.b-done{opacity:0;animation:bdone 8s ease-in-out infinite;color:var(--night)}
.book-btn{animation:bbg 8s ease-in-out infinite}
@keyframes bidle{0%,52%{opacity:1;transform:none}58%,94%{opacity:0;transform:translateY(-10px)}100%{opacity:1}}
@keyframes bdone{0%,54%{opacity:0;transform:translateY(10px)}60%,92%{opacity:1;transform:none}100%{opacity:0}}
@keyframes bbg{0%,54%,100%{background:var(--violet)}60%,92%{background:var(--accent-l)}}
.cursor{position:absolute;width:18px;height:18px;left:0;top:0;border-radius:50%;background:rgb(255 255 255/.9);box-shadow:0 0 0 6px rgb(255 255 255/.18);animation:cur 8s var(--ease) infinite;pointer-events:none}
@keyframes cur{0%{transform:translate(260px,40px);opacity:0}10%{opacity:1}28%,34%{transform:translate(270px,158px)}48%,56%{transform:translate(170px,222px)}62%{transform:translate(170px,222px) scale(.8)}90%{opacity:1}100%{transform:translate(260px,40px);opacity:0}}
.vis-book .vc-badge.b1{left:-6%;bottom:-2%}.vis-book .vc-badge.b2{right:-4%;top:-6%}
@media (max-width:600px){.cursor{display:none}.vis-svc .vc-badge.b1{right:0}}


/* FAQ: plus turns into a cross with a little spring, answers ease open */
.faq summary::after{transition:transform .5s cubic-bezier(.34,1.56,.64,1),background-color .3s}
.faq details[open] summary::after{transform:none}
.faq details.is-open summary::after,html:not(.js) .faq details[open] summary::after{transform:rotate(135deg);background-color:var(--primary);background-image:linear-gradient(var(--primary-ink),var(--primary-ink)),linear-gradient(var(--primary-ink),var(--primary-ink))}
.faq summary:hover::after{transform:scale(1.12)}
.faq details.is-open summary:hover::after{transform:rotate(135deg) scale(1.12)}
.faq details.is-open>:not(summary){animation:fadeup .5s var(--ease) both}
.faq summary{transition:color .2s}.faq summary:hover{color:var(--violet)}
:where([data-theme="dark"]) .faq summary:hover{color:var(--lav)}

/* Shared bits */
.ico{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}
.mini{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:.75rem}
.kicker{font-family:var(--font-mono);font-size:.74rem;letter-spacing:.06em;text-transform:uppercase;color:var(--violet);font-weight:500}
:where([data-theme="dark"]) .kicker{color:var(--lav)}
.svc-more{display:inline-flex;align-items:center;gap:.45rem;font-weight:500;text-decoration:none;color:var(--primary)}
.svc-more::after{content:"";width:16px;height:16px;background:currentColor;-webkit-mask:var(--arrow) center/contain no-repeat;mask:var(--arrow) center/contain no-repeat;transition:transform .3s var(--ease)}
.svc-more:hover::after{transform:translateX(4px)}

/* Illustration beside copy */
.side{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,5rem);align-items:center}
.side>*{min-width:0}
.side-copy{display:grid;gap:1.1rem;align-content:center}
.side-copy>p:not(.label){color:var(--muted)}
.lead-sm{font-size:1.08rem}
.points-num{list-style:none;margin:.75rem 0 0;padding:0;display:grid;gap:1.1rem;counter-reset:pn}
.points-num li{counter-increment:pn;display:grid;grid-template-columns:2.4rem 1fr;gap:.1rem 1rem}
.points-num li::before{content:counter(pn);grid-row:1/3;display:grid;place-items:center;width:2.4rem;height:2.4rem;border-radius:50%;border:1.5px solid var(--violet);color:var(--violet);font-family:var(--font-mono);font-size:.85rem}
.points-num b{font-weight:500}.points-num span{color:var(--muted);font-size:.96rem}
.js .side .points-num li{opacity:0;transform:translateX(16px);transition:opacity .6s var(--ease),transform .6s var(--ease);transition-delay:calc(var(--i) * .15s + .5s)}
.js .side.in .points-num li{opacity:1;transform:none}
.about-facts{list-style:none;margin:.5rem 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:.75rem}
.about-facts li{display:flex;align-items:center;gap:.6rem;padding:.8rem .9rem;border:1px solid var(--line);border-radius:12px;background:var(--surface);font-size:.92rem}
.about-facts .ico{color:var(--violet)}
@media (max-width:880px){.side{grid-template-columns:1fr}.about-facts{grid-template-columns:1fr}}

/* Illustration animation */
.ap-art .t,.ws-art .t{font-family:var(--font-body);font-size:15px;fill:#F3EFE8}
.ap-art .k,.ws-art .k{font-family:var(--font-mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;fill:#A9A9F2}
.ap-art .d{font-family:var(--font-mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;fill:#0C0C38}
.ap-flow path{stroke-dasharray:3 20;animation:dash2 1.4s linear infinite}
.ap-fix rect{fill:#1A1A4E;stroke:#3A3A7A;animation:apfix 7.5s ease-in-out infinite;animation-delay:calc(var(--i) * 2.5s)}
.ap-fix .ok{fill:#3A3A7A;animation:apok 7.5s ease-in-out infinite;animation-delay:calc(var(--i) * 2.5s)}
.ap-fix .tick{fill:none;stroke:#0C0C38;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
@keyframes apfix{0%,100%{fill:#1A1A4E;stroke:#3A3A7A}8%,30%{fill:#24245E;stroke:#9B8CFF}}
@keyframes apok{0%,100%{fill:#3A3A7A}8%,30%{fill:#9B8CFF}}
.ws-win>g{animation:float 7s ease-in-out infinite}.ws-win.w2>g{animation-delay:-2.3s}.ws-win.w3>g{animation-delay:-4.6s}
.ws-code{transform-box:fill-box;transform-origin:left;animation:typeln 8s var(--ease) infinite;animation-delay:calc(var(--i) * .35s)}
@keyframes typeln{0%{transform:scaleX(0)}12%,85%{transform:scaleX(1)}95%,100%{transform:scaleX(0)}}
.ws-bar{transform-box:fill-box;transform-origin:bottom;animation:barup 8s var(--ease) infinite;animation-delay:calc(var(--i) * .12s + .4s)}
@keyframes barup{0%{transform:scaleY(0)}15%,85%{transform:scaleY(1)}100%{transform:scaleY(0)}}
.ws-msg{opacity:0;animation:wsmsg 8s ease-in-out infinite;animation-delay:calc(var(--i) * .9s + .3s)}
@keyframes wsmsg{0%{opacity:0;transform:translateY(8px)}6%,82%{opacity:1;transform:none}92%,100%{opacity:0}}

/* Services in depth: sticky index + panels */
.svc-layout{display:grid;grid-template-columns:250px 1fr;gap:clamp(1.5rem,4vw,4rem);align-items:start}
.svc-nav{position:sticky;top:96px;display:grid;gap:1rem}
.svc-nav ol{list-style:none;margin:0;padding:0;display:grid;gap:.15rem;border-left:1px solid var(--line)}
.svc-nav a{display:flex;gap:.75rem;align-items:baseline;padding:.55rem 0 .55rem 1rem;margin-left:-1px;border-left:2px solid transparent;text-decoration:none;color:var(--muted);transition:color .25s,border-color .25s,padding .3s var(--ease)}
.svc-nav a span{font-family:var(--font-mono);font-size:.72rem}
.svc-nav a:hover{color:var(--ink)}
.svc-nav a.is-active{color:var(--ink);border-color:var(--violet);padding-left:1.35rem}
.svc-nav-cta{font-size:.9rem;color:var(--primary);font-weight:500}
.svc-panels{display:grid;gap:1.5rem}
.svc-panel{scroll-margin-top:96px;background:var(--bg);border:1px solid var(--line);border-radius:18px;padding:clamp(1.4rem,3vw,2.4rem);display:grid;gap:1.1rem}
.svc-top{display:flex;align-items:center;gap:.8rem}
.svc-ico{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:var(--primary);color:var(--primary-ink)}
.svc-panel h3{font-size:clamp(1.5rem,2.4vw,2rem)}
.svc-lead{color:var(--muted);font-size:1.05rem;max-width:44em}
.svc-cols{display:grid;grid-template-columns:1fr 1fr;gap:2rem;padding-top:1.1rem;border-top:1px solid var(--line)}
.svc-steps{list-style:none;margin:0;padding:0;display:grid;gap:.6rem}
.svc-steps li{display:flex;gap:.7rem;align-items:baseline;line-height:1.45}
.svc-steps span{flex:none;display:grid;place-items:center;width:1.5rem;height:1.5rem;border-radius:50%;background:var(--tint);color:var(--violet);font-family:var(--font-mono);font-size:.72rem;position:relative;top:.15rem}
.svc-panel .checklist{gap:.55rem;font-size:.96rem}
.svc-suggest{padding:1rem 1.2rem;border-radius:12px;background:var(--tint);border-left:3px solid var(--violet)}
.svc-suggest b{font-weight:500;display:block;margin-bottom:.25rem}
.svc-suggest p{color:var(--muted);font-size:.96rem}
.svc-foot{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;padding-top:.4rem}
.svc-price b{font-family:var(--font-display);font-weight:500;font-size:1.5rem;letter-spacing:-.02em;margin-right:.6rem}
.svc-price small{font-family:var(--font-mono);font-size:.74rem;color:var(--muted)}
.js .svc-panel{opacity:0;transform:translateY(30px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.js .svc-panel.in{opacity:1;transform:none}
@media (max-width:900px){.svc-layout{grid-template-columns:1fr}.svc-nav{display:none}.svc-cols{grid-template-columns:1fr}}

/* The engagement, in detail */
.eng{list-style:none;margin:0;padding:0 0 0 72px;position:relative;display:grid;gap:clamp(1.5rem,3vw,2.5rem);--p:0}
.eng-rail{position:absolute;left:23px;top:24px;bottom:24px;width:2px;background:var(--line)}
.eng-rail span{position:absolute;inset:0 0 auto;height:calc(var(--p) * 100%);background:linear-gradient(var(--violet),var(--lav));border-radius:2px}
.eng-stage{position:relative}
.eng-dot{position:absolute;left:-72px;top:0;display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:var(--bg);border:2px solid var(--line);font-family:var(--font-mono);font-size:.8rem;color:var(--muted);transition:background .4s,border-color .4s,color .4s,transform .5s cubic-bezier(.34,1.56,.64,1)}
.eng-stage.on .eng-dot{background:var(--violet);border-color:var(--violet);color:#fff;transform:scale(1.08)}
.eng-card{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:clamp(1.3rem,3vw,2.2rem);transition:border-color .4s,box-shadow .4s}
.eng-stage.on .eng-card{border-color:rgb(109 93 245/.45);box-shadow:0 30px 60px -40px rgb(109 93 245/.5)}
.eng-hd{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap;margin-bottom:.6rem}
.eng-hd h3{font-size:clamp(1.5rem,2.4vw,2rem)}
.eng-dur{font-family:var(--font-mono);font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;padding:.25rem .6rem;border-radius:999px;background:var(--tint);color:var(--violet)}
.eng-price{margin-left:auto;font-weight:500}
.eng-sum{color:var(--muted);font-size:1.05rem;max-width:42em;margin-bottom:1.4rem}
.eng-grid{display:grid;grid-template-columns:3fr 2fr;gap:1.5rem}
.eng-todo{list-style:none;margin:0;padding:0;display:grid;gap:.6rem}
.eng-todo li{display:flex;gap:.65rem;align-items:flex-start;line-height:1.45}
.eng-todo .ico{width:18px;height:18px;color:var(--violet);margin-top:.15rem}
.eng-side{background:var(--bg);border-radius:12px;padding:1.1rem 1.2rem;display:grid;align-content:start;gap:.2rem}
.eng-side .mini{margin:0}.eng-side .mini+p{margin-bottom:.9rem;color:var(--muted);font-size:.95rem}
.eng-get{font-weight:500;color:var(--ink)!important;margin-bottom:0!important}
.js .eng-card{opacity:0;transform:translateY(24px);transition:opacity .7s var(--ease),transform .7s var(--ease),border-color .4s,box-shadow .4s}
.js .eng-stage.seen .eng-card{opacity:1;transform:none}
@media (max-width:760px){.eng{padding-left:52px}.eng-rail{left:17px}.eng-dot{left:-52px;width:36px;height:36px;font-size:.7rem}.eng-grid{grid-template-columns:1fr}.eng-price{margin-left:0;width:100%}}

/* Industries hub rows */
.ind-rows{display:grid}
.ind-row{display:grid;grid-template-columns:7fr 5fr;gap:clamp(2rem,5vw,5rem);align-items:center;padding-block:clamp(2.5rem,5vw,4rem);border-top:1px solid var(--line);scroll-margin-top:96px}
.ind-row>*{min-width:0}
.ind-row.flip .ind-demo{order:-1}
.ind-copy{display:grid;gap:1rem}
.ind-copy h3{font-size:clamp(1.8rem,3vw,2.6rem)}
.ind-cols{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}
.ind-pains{list-style:none;margin:0;padding:0;display:grid;gap:.6rem}
.ind-pains li{position:relative;padding-left:1.3rem;line-height:1.45}
.ind-pains li::before{content:"";position:absolute;left:0;top:.5em;width:8px;height:8px;border-radius:50%;background:#E8875E}
.ind-copy .checklist{gap:.55rem;font-size:.96rem}
.ind-rule{display:flex;gap:.7rem;align-items:flex-start;padding:.9rem 1rem;border-radius:12px;background:var(--surface);border:1px solid var(--line);font-size:.92rem;color:var(--muted)}
.ind-rule .ico{color:var(--violet);margin-top:.1rem}
.ind-demo{display:grid;place-items:center}
.ind-phone{width:min(100%,340px);background:var(--night);color:#F3EFE8;border-radius:22px;padding:1rem;display:flex;flex-direction:column;gap:.55rem;box-shadow:0 40px 70px -40px rgb(12 12 56/.7);min-height:290px}
.ind-ph-hd{display:flex;align-items:center;gap:.5rem;font-weight:500;font-size:.9rem;padding-bottom:.7rem;border-bottom:1px solid rgb(255 255 255/.12);margin-bottom:.3rem}
.ind-ph-hd span{width:8px;height:8px;border-radius:50%;background:var(--accent-l)}
.ind-ph-hd small{margin-left:auto;font-family:var(--font-mono);font-size:.68rem;color:#A8A3BA}
.ind-phone .m{max-width:86%;padding:.55rem .75rem;border-radius:10px;font-size:.88rem;line-height:1.4}
.ind-phone .u{align-self:flex-end;background:#F3EFE8;color:var(--night);border-bottom-right-radius:3px}
.ind-phone .b{align-self:flex-start;background:rgb(169 169 242/.22);border-bottom-left-radius:3px}
.ind-phone .typing{align-self:flex-start;display:none;gap:4px;background:rgb(169 169 242/.22)}
.ind-phone .typing i{width:6px;height:6px;border-radius:50%;background:#F3EFE8;animation:blink 1s infinite}.ind-phone .typing i:nth-child(2){animation-delay:.15s}.ind-phone .typing i:nth-child(3){animation-delay:.3s}
.ind-done{display:flex;align-items:center;gap:.45rem;font-size:.82rem;color:var(--accent-l);margin-top:auto}
.ind-done .ico{width:16px;height:16px}
.js .ind-row .m.u,.js .ind-row .m.b,.js .ind-row .ind-done{opacity:0;transform:translateY(8px)}
.js .ind-row.in .m.u{animation:pop .5s var(--ease) .3s forwards}
.js .ind-row.in .typing{display:flex;animation:typingshow 1.4s .9s both}
.js .ind-row.in .m.b{animation:pop .5s var(--ease) 2.3s forwards}
.js .ind-row.in .ind-done{animation:pop .5s var(--ease) 3s forwards}
@keyframes typingshow{0%{opacity:0;height:0;padding:0}5%,95%{opacity:1;height:auto;padding:.6rem .75rem}100%{opacity:0;height:0;padding:0;margin:-.55rem 0 0}}
@media (max-width:880px){.ind-row{grid-template-columns:1fr}.ind-row.flip .ind-demo{order:0}.ind-cols{grid-template-columns:1fr}}

/* Compliance table */

/* Card grids */
.basics{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}
.basic,.team-role,.belief,.nx{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:1.5rem;display:grid;gap:.8rem;align-content:start;transition:transform .4s var(--ease),border-color .3s}
.band .basic,.band .team-role{background:var(--bg)}
.basic:hover,.team-role:hover,.belief:hover,.nx:hover{transform:translateY(-4px);border-color:rgb(109 93 245/.4)}
.basic h3,.team-role h3,.belief h3,.nx h3{font-size:1.15rem}
.basic p,.team-role p,.belief p,.nx p:not(.n){color:var(--muted);font-size:.95rem}
.roles{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.belief .n,.nx .n{font-family:var(--font-mono);font-size:.78rem;color:var(--violet)}
.beliefs{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.beliefs-head{text-align:center;display:grid;justify-items:center;gap:1rem;margin-bottom:clamp(2rem,4vw,3.5rem)}
.belief-big{font-family:var(--font-display);font-size:clamp(2.2rem,5vw,4rem);line-height:1.05;letter-spacing:-.035em;max-width:14em;text-wrap:balance}
.nxs{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
@media (max-width:1000px){.basics{grid-template-columns:1fr 1fr}}
@media (max-width:760px){.basics,.roles,.beliefs,.nxs{grid-template-columns:1fr}}

/* About: why we started */
.why-sec{background:var(--night);color:#F3EFE8}
.why-sec .wrap{display:grid;gap:1.4rem;max-width:1000px}
.why-sec .label{color:var(--lav)}
.why-big{font-family:var(--font-display);font-size:clamp(1.7rem,3.4vw,2.8rem);line-height:1.15;letter-spacing:-.025em}
.why-sub{font-size:1.15rem;color:#C9C4D8;max-width:44em}

/* Pricing: what you pay at each stage */
.sc{list-style:none;margin:0;padding:0;position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}
.sc-track{position:absolute;left:12px;right:12px;top:11px;height:2px;background:var(--line)}
.sc-track span{position:absolute;inset:0;background:linear-gradient(90deg,var(--violet),var(--accent-l));transform-origin:left;transform:scaleX(1)}
.js .sc-track span{transform:scaleX(0);transition:transform 2.4s var(--ease) .2s}
.js .sc.in .sc-track span{transform:scaleX(1)}
.sc>li:not(.sc-track){position:relative;padding-top:2.4rem}
.sc-dot{position:absolute;left:0;top:0;width:24px;height:24px;border-radius:50%;background:var(--surface);border:2px solid var(--violet)}
.js .sc-dot{transform:scale(0);transition:transform .5s cubic-bezier(.34,1.56,.64,1);transition-delay:calc(var(--i) * .6s + .2s)}
.js .sc.in .sc-dot{transform:scale(1)}
.sc-name{font-family:var(--font-mono);font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.sc-amt{font-family:var(--font-display);font-size:clamp(1.4rem,2.4vw,1.9rem);letter-spacing:-.02em;margin:.3rem 0}
.sc-note{color:var(--muted);font-size:.92rem}
@media (max-width:760px){.sc{grid-template-columns:1fr;gap:1.5rem;padding-left:2.4rem}.sc-track{left:11px;right:auto;top:12px;bottom:12px;width:2px;height:auto}.sc-track span{transform-origin:top}.js .sc-track span{transform:scaleY(0)}.js .sc.in .sc-track span{transform:scaleY(1)}.sc>li:not(.sc-track){padding-top:0}.sc-dot{left:-2.4rem}}

/* Home: client logos and what we build on */
.trust{padding-block:clamp(3rem,6vw,5rem)}
.trust-head{text-align:center;display:grid;justify-items:center;gap:.75rem;margin-bottom:clamp(1.75rem,3.5vw,2.75rem)}
.trust-head p:not(.label){color:var(--muted);max-width:36em}
.clients{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,1fr);align-items:center}
.clients li{display:grid;place-items:center;height:72px;padding:0 1rem;border-left:1px solid var(--line)}
.clients li:first-child{border-left:0}
.clients img{max-height:40px;max-width:min(150px,100%);width:auto;height:auto;filter:grayscale(1);opacity:.65;transition:filter .3s,opacity .3s,transform .4s var(--ease)}
.clients li:hover img{filter:none;opacity:1;transform:scale(1.05)}
.wordmark{font-family:var(--font-display);font-weight:600;font-size:clamp(1.05rem,1.6vw,1.35rem);letter-spacing:-.02em;color:var(--muted);white-space:nowrap;transition:color .3s}
.clients li:hover .wordmark{color:var(--ink)}
.js .clients li{opacity:0;transform:translateY(12px);transition:opacity .6s var(--ease),transform .6s var(--ease);transition-delay:calc(var(--i) * .08s)}
.js .clients.in li{opacity:1;transform:none}
.bo{display:grid;grid-template-columns:5fr 7fr;gap:clamp(1.5rem,4vw,4rem);align-items:center;margin-top:clamp(2.5rem,5vw,4rem);padding-top:clamp(2rem,4vw,3rem);border-top:1px solid var(--line)}
.bo>*{min-width:0}
.bo-head{display:grid;gap:.75rem}
.bo-head h3{font-size:clamp(1.3rem,2vw,1.6rem)}
.bo-head p:not(.label){color:var(--muted);font-size:.95rem}
.bo-rows{display:grid;gap:.9rem}
.bo .platforms{margin:0;gap:1rem}
.bo-k{flex:none;width:6.5rem;font-family:var(--font-mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.platforms .row span::before{display:none}
.platforms .row span{gap:.5rem}
.bi{width:16px;height:16px;fill:currentColor;flex:none;opacity:.85}
.bi-dot{width:7px;height:7px;border-radius:50%;background:var(--violet);flex:none}
.platforms.rev .track{animation-direction:reverse;animation-duration:60s}
@media (max-width:880px){.clients{grid-template-columns:repeat(3,1fr);row-gap:.5rem}.clients li:nth-child(4){border-left:0}.bo{grid-template-columns:1fr}}
@media (max-width:520px){.clients{grid-template-columns:1fr 1fr}.clients li{border-left:0;height:60px}.clients li:last-child{grid-column:1/-1}.bo .platforms{flex-direction:column;align-items:flex-start;gap:.5rem}}

/* Case studies: client cards */
.client-cards{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,1fr);gap:1rem}
.client-cards li{display:grid;gap:.4rem;padding:1.5rem 1.25rem;border:1px solid var(--line);border-radius:16px;background:var(--surface);transition:transform .4s var(--ease)}
.client-cards li:hover{transform:translateY(-4px)}
.cl-logo{height:56px;display:flex;align-items:center;margin-bottom:.75rem}
.cl-logo img{max-height:40px;max-width:100%;width:auto}
.cl-sec{font-weight:500}.cl-kind{font-family:var(--font-mono);font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
@media (max-width:1000px){.client-cards{grid-template-columns:repeat(3,1fr)}}
@media (max-width:600px){.client-cards{grid-template-columns:1fr 1fr}}

@media (prefers-reduced-motion:reduce){.ap-flow path,.ap-fix rect,.ap-fix .ok,.ws-win>g,.ws-code,.ws-bar,.ws-msg,.tile,.tile small i,.deck-card,.layer,.stack-bot,.slot,.b-idle,.b-done,.book-btn,.cursor{animation:none!important}.ws-msg{opacity:1}.deck-card:not(:first-child){display:none}.b-done{display:none}.cursor{display:none}}

/* Audit form: fields fold away, a ring spins, then a tick */
.audit-form{position:relative}
.audit-form>:not(.send):not(.hp){transition:opacity .45s var(--ease),transform .55s var(--ease),filter .45s}
.audit-form.is-sending>:not(.send):not(.hp){opacity:0;transform:scale(.9) translateY(18px);filter:blur(6px);pointer-events:none}
.audit-form.is-sending>.checks{transition-delay:0s}.audit-form.is-sending>.fields{transition-delay:.08s}.audit-form.is-sending>.form-foot{transition-delay:.16s}
.audit-form .fields label{transition:transform .5s var(--ease),opacity .4s}
.audit-form.is-sending .fields label{transform:translateY(-12px) scale(.94)}
.send{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;text-align:center;gap:.6rem;padding:2rem;opacity:0;transition:opacity .4s .3s}
.send[hidden]{display:none}
.is-sending .send{opacity:1}
.send-anim{position:relative;width:120px;height:120px;margin-bottom:.6rem}
.send-ring{width:120px;height:120px;transform:rotate(-90deg)}
.sr-bg{fill:none;stroke:rgb(255 255 255/.1);stroke-width:5}
.sr-arc{fill:none;stroke:var(--lav);stroke-width:5;stroke-linecap:round;stroke-dasharray:28 72;transform-origin:60px 60px;animation:srspin .9s linear infinite;transition:stroke-dasharray .6s var(--ease),stroke .4s}
@keyframes srspin{to{transform:rotate(360deg)}}
.sr-tick{fill:none;stroke:var(--night);stroke-width:7;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;transform:rotate(90deg);transform-origin:60px 60px}
.send-ring::before{content:none}
.is-sent .sr-arc{animation:none;stroke-dasharray:100 0;stroke:var(--accent-l)}
.is-sent .send-ring{animation:srpop .6s cubic-bezier(.34,1.56,.64,1)}
.is-sent .sr-bg{fill:var(--accent-l);transition:fill .4s .25s}
.is-sent .sr-tick{stroke-dashoffset:0;transition:stroke-dashoffset .5s var(--ease) .45s}
@keyframes srpop{50%{transform:rotate(-90deg) scale(1.12)}}
.burst{position:absolute;inset:0;pointer-events:none}
.burst i{position:absolute;left:50%;top:50%;width:8px;height:8px;margin:-4px;border-radius:50%;background:var(--peach);opacity:0}
.burst i:nth-child(3n+1){background:var(--accent-l)}.burst i:nth-child(3n+2){background:var(--lav)}
.is-sent .burst i{animation:burst .9s var(--ease) .35s both}
.burst i:nth-child(1){--a:0deg}.burst i:nth-child(2){--a:45deg}.burst i:nth-child(3){--a:90deg}.burst i:nth-child(4){--a:135deg}.burst i:nth-child(5){--a:180deg}.burst i:nth-child(6){--a:225deg}.burst i:nth-child(7){--a:270deg}.burst i:nth-child(8){--a:315deg}
@keyframes burst{0%{opacity:1;transform:rotate(var(--a)) translateY(0) scale(1)}100%{opacity:0;transform:rotate(var(--a)) translateY(-92px) scale(.4)}}
.send-title{font-family:var(--font-display);font-size:clamp(1.4rem,2.4vw,1.9rem);letter-spacing:-.02em;color:var(--dark-ink)}
.send-text,.send-again{opacity:0;transform:translateY(10px);transition:opacity .5s var(--ease) .7s,transform .5s var(--ease) .7s}
.send-text{color:var(--dark-muted);max-width:28em}
.send-again{margin-top:.75rem;background:none;border:1px solid var(--panel-line,rgb(255 255 255/.2));color:var(--dark-ink);border-radius:999px;padding:.55rem 1.1rem;font:inherit;font-size:.9rem;cursor:pointer;visibility:hidden}
.is-sent .send-text,.is-sent .send-again{opacity:1;transform:none;visibility:visible}
.send-again:hover{border-color:var(--dark-ink)}

/* Bot cheers after a request is sent */
.vbot.cheer .vbot-btn{animation:vcheer .7s cubic-bezier(.34,1.56,.64,1) 1.2s 3}
@keyframes vcheer{50%{transform:translateY(-18px) rotate(-6deg)}}
.vbot.cheer .vb-wave{animation:vwave 1s ease-in-out 1.1s 3}
.vbot-bubble.custom .vbot-actions{display:none}
.vbot-bubble.custom p{margin-bottom:0}
.bo-rows{min-width:0}.bo-rows>*{min-width:0;max-width:100%}
/* Section headings rise word by word */
.js .reveal h2 .hw{display:inline-block;opacity:0;transform:translateY(.45em);transition:opacity .6s var(--ease),transform .7s var(--ease);transition-delay:calc(var(--w) * .05s + .1s)}
.js .reveal.in h2 .hw{opacity:1;transform:none}
.send-title:focus{outline:none}

/* ===== v4 ===== */
.faq summary{padding-right:6px}
.faq summary::after{margin-right:2px}
/* Send animation tick in brand violet */
.is-sent .sr-arc{stroke:var(--violet)}
.is-sent .sr-bg{fill:var(--violet)}
.sr-tick{stroke:#fff}
.burst i:nth-child(3n+1){background:var(--violet)}
/* Stage track runs from the first dot to the last */
.sc-track{left:12px;right:auto;width:calc((100% - 3rem) * .75 + 3rem)}
.js .sc-dot{background:var(--surface);transition:transform .5s cubic-bezier(.34,1.56,.64,1),background .4s;transition-delay:calc(var(--i) * .6s + .2s)}
.js .sc.in .sc-dot{background:var(--violet)}
@media (max-width:760px){.sc-track{width:2px;left:11px;top:12px;bottom:auto;height:calc(100% - 4.5rem)}}
/* Home engagement: step numbers centred over each card */
@media (min-width:1001px){.step .node{left:50%;margin-left:-22px}.steps .rail{left:calc((100% - 3rem) / 8);right:calc((100% - 3rem) / 8)}}
/* hero backgrounds, one motif per page type */
.hbg{position:absolute;left:0;right:0;bottom:0;width:100%;height:clamp(120px,17vw,230px);fill:none;stroke:var(--lav);stroke-opacity:.4;stroke-width:1.2}
.hbg *{vector-effect:non-scaling-stroke}
.hbg text{stroke:none}
.hc-grid path{stroke-opacity:.14;stroke-dasharray:4 6}
.hc-bars rect{fill:rgb(169 169 242/.07);stroke-opacity:.3;transform-box:fill-box;transform-origin:bottom}
.js .hc-bars rect{animation:hcbar 1.1s var(--ease) both,hcglow 5s ease-in-out infinite;animation-delay:calc(var(--i) * .05s + .2s),calc(var(--i) * .22s + 1.4s)}
@keyframes hcbar{from{transform:scaleY(0)}}
@keyframes hcglow{50%{fill:rgb(169 169 242/.17)}}
.hc-line{stroke:var(--accent-l);stroke-opacity:.75;stroke-width:2;stroke-dasharray:1;stroke-dashoffset:0;stroke-linejoin:round}
.js .hc-line{animation:skydraw 2.4s var(--ease) .7s both}
.hc-tag circle{fill:var(--accent-l);stroke:none}.hc-tag rect{fill:var(--night);stroke:var(--accent-l);stroke-opacity:.6}.hc-tag text{fill:var(--accent-l);font:600 10px var(--font-mono);letter-spacing:.08em}
.js .hc-tag{opacity:0;animation:hctag 8s ease-in-out infinite;animation-delay:calc(var(--i) * 2s + 2.4s)}
@keyframes hctag{0%,100%{opacity:0}8%,30%{opacity:1}40%{opacity:0}}
.hb-bubbles,.hb-icons,.hb-dots{position:absolute;inset:0;overflow:hidden}
.hb-bubbles i{position:absolute;left:var(--x);bottom:-50px;width:var(--w);height:28px;border-radius:14px 14px 14px 4px;border:1px solid rgb(169 169 242/.3);background:rgb(169 169 242/.05) radial-gradient(circle,rgb(169 169 242/.45) 2px,transparent 2.5px) 14px 50%/10px 10px repeat-x;background-clip:padding-box;animation:bubup var(--t) linear infinite;animation-delay:calc(var(--d) * -1);opacity:0}
.hb-bubbles i.me{border-radius:14px 14px 4px 14px;border-color:rgb(155 140 255/.35);background-color:rgb(155 140 255/.05)}
@keyframes bubup{0%{transform:translateY(0);opacity:0}12%{opacity:.9}80%{opacity:.6}100%{transform:translateY(-820px);opacity:0}}
.phero:has(.bg-words){padding-bottom:clamp(10rem,17vw,13rem)}
.hb-words{position:absolute;left:0;right:0;bottom:clamp(1rem,2.5vw,2rem);overflow:hidden;display:grid;gap:.2rem;pointer-events:none;-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}
.hw-row{margin:0;white-space:nowrap;font:600 clamp(2.2rem,4.8vw,4rem)/1.1 var(--font-display);letter-spacing:-.02em;color:transparent;-webkit-text-stroke:1px rgb(169 169 242/.3)}
.hw-track{display:inline-flex;animation:hwslide 60s linear infinite}
.hw-row.r1 .hw-track{animation-direction:reverse;animation-duration:75s}
.hw-row span span{padding-right:.6em}
.hw-row span span::after{content:"";display:inline-block;width:.18em;height:.18em;border-radius:50%;margin-left:.6em;vertical-align:middle;background:var(--accent-l);opacity:.6}
.hw-row.r1 span span:nth-child(3n+2){color:rgb(155 140 255/.16);-webkit-text-stroke-color:transparent}
@keyframes hwslide{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.hw-track{animation:none}}
.bg-route .hbg{height:clamp(160px,24vw,320px)}
.rt-path{stroke-dasharray:6 8;stroke-opacity:.5;animation:rtdash 1.4s linear infinite}
@keyframes rtdash{to{stroke-dashoffset:-14}}
.rt-pin path{fill:var(--violet);stroke:none}
.rt-ring{stroke:var(--accent-l);stroke-opacity:.8;transform-box:fill-box;transform-origin:center;animation:rtring 2.4s ease-out infinite}
@keyframes rtring{from{transform:scale(.4);opacity:1}to{transform:scale(2.4);opacity:0}}
.rt-plane path{fill:var(--peach);stroke:none}
@keyframes inkw{0%{transform:scaleX(0);opacity:1}18%,80%{transform:scaleX(1);opacity:1}92%,100%{transform:scaleX(1);opacity:0}}
.rl-ticks path{stroke-opacity:.35}.rl-base{stroke-opacity:.5}
.rl-fill{stroke:var(--accent-l);stroke-width:3;stroke-opacity:.85;stroke-dasharray:1;stroke-dashoffset:.97}
.rl-mark path{stroke:var(--accent-l);stroke-opacity:.9}.rl-mark circle{fill:var(--accent-l);stroke:none}
.rl-mark{transform:translateX(40px)}
.js .rl-mark{animation:rlmark 8s var(--ease) infinite}.js .rl-fill{animation:rlfill 8s var(--ease) infinite}
@keyframes rlmark{0%,8%{transform:translateX(40px)}50%,86%{transform:translateX(1180px)}100%{transform:translateX(40px)}}
@keyframes rlfill{0%,8%{stroke-dashoffset:.97}50%,86%{stroke-dashoffset:.18}100%{stroke-dashoffset:.97}}
@property --mx{syntax:'<percentage>';inherits:false;initial-value:78%}
.hb-dots{background-image:radial-gradient(rgb(169 169 242/.4) 1px,transparent 1.6px);background-size:22px 22px;-webkit-mask-image:radial-gradient(circle at var(--mx) 60%,#000,transparent 45%);mask-image:radial-gradient(circle at var(--mx) 60%,#000,transparent 45%);animation:dotsmove 12s ease-in-out infinite alternate}
@keyframes dotsmove{to{--mx:22%}}
.hb-icons span{position:absolute;left:var(--x);bottom:-80px;width:var(--s);height:var(--s);color:var(--lav);opacity:0;animation:icofloat var(--t) linear infinite;animation-delay:calc(var(--d) * -1)}
.hb-icons .ico{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}
@keyframes icofloat{0%{transform:translateY(0) rotate(-10deg);opacity:0}15%,80%{opacity:.2}100%{transform:translateY(-860px) rotate(12deg);opacity:0}}
.phero:has(.bg-dots),.phero:has(.bg-bubbles),.phero:has(.bg-icons){padding-bottom:clamp(3.5rem,8vw,6.5rem)}

/* industry scenes */
.scene{display:block;width:100%;height:100%}
.scene text{font-family:var(--font-body)}
.sc-win{fill:#3A3A7A;animation:scwin 5.5s ease-in-out infinite;animation-delay:var(--d)}
@keyframes scwin{40%,62%{fill:#F7CEB5}}
.sc-float{animation:float 6s ease-in-out infinite}
.sc-pulse{stroke-dasharray:1;stroke-dashoffset:1;animation:scdraw 4.5s ease-in-out infinite}
@keyframes scdraw{0%{stroke-dashoffset:1}40%,78%{stroke-dashoffset:0}100%{stroke-dashoffset:-1}}
.sc-pick{animation:scpick 4.5s ease-in-out infinite}
@keyframes scpick{0%,22%{fill:#E4E1F2}32%,100%{fill:#9B8CFF}}
.sc-tick{stroke-dasharray:80;stroke-dashoffset:80;animation:sctick 4.5s ease-in-out infinite}
@keyframes sctick{0%,30%{stroke-dashoffset:80}48%,100%{stroke-dashoffset:0}}
.sc-bar{transform-box:fill-box;transform-origin:bottom;animation:barup 6s var(--ease) infinite;animation-delay:calc(var(--i) * .12s)}
.sc-pin{animation:scpin 2.4s var(--ease) infinite}
@keyframes scpin{50%{transform:translateY(-12px)}}
.sc-shadow{transform-box:fill-box;transform-origin:center;animation:scshadow 2.4s var(--ease) infinite}
@keyframes scshadow{50%{transform:scale(.55)}}
.sc-coin{animation:sccoin 3s ease-in-out infinite}
@keyframes sccoin{50%{transform:translateY(-10px)}}
.sc-ding{opacity:0;animation:scding 3s ease-out infinite}
@keyframes scding{0%,55%{opacity:0}62%,80%{opacity:1}100%{opacity:0}}
.ind .scene-wrap{background:#0C0C38}
.ind .scene{transition:transform .6s var(--ease)}
.ind:hover .scene{transform:scale(1.04)}
.js .ind .scene{clip-path:inset(0 0 100% 0);transition:clip-path 1s var(--ease),transform .6s var(--ease);transition-delay:calc(.1s * var(--i,0))}
.js .reveal.in .ind .scene{clip-path:inset(0)}

/* home hero: message lanes + channels flowing into the chat */
.hero{position:relative;isolation:isolate;overflow:hidden;padding-bottom:clamp(9rem,14vw,12rem)}
.chat-col{position:relative}
.hflow{position:absolute;inset:-30% -15%;z-index:-1;pointer-events:none}
.hflow svg{width:100%;height:100%;overflow:visible}
.hf-paths path{fill:none;stroke:var(--primary);stroke-opacity:.3;stroke-width:1.5;stroke-dasharray:4 6;vector-effect:non-scaling-stroke}
.hf-dots circle{fill:var(--violet)}
.hf-rings rect{fill:none;stroke:var(--violet);stroke-opacity:.35;vector-effect:non-scaling-stroke;transform-origin:500px 400px;animation:hfring 5s ease-out infinite}
.hf-rings rect+rect{animation-delay:2.5s}
@keyframes hfring{from{transform:scale(1);opacity:.9}to{transform:scale(1.18,1.3);opacity:0}}
.hf-badges{position:absolute;inset:-30% -15%;z-index:2;pointer-events:none}
.hf-badge{position:absolute;left:var(--x);top:var(--y);transform:translate(-50%,-50%);display:flex;align-items:center;gap:.45rem;padding:.4rem .75rem .4rem .5rem;background:var(--surface);border:1px solid var(--line);border-radius:999px;font-size:.78rem;box-shadow:0 12px 26px -16px rgb(21 22 26/.45);white-space:nowrap}
.hf-badge svg{width:16px;height:16px;fill:var(--violet)}
.hf-badge .ico{fill:none;stroke:var(--violet);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.hf-badge b{font-weight:500}
.js .hf-badge{opacity:0;animation:hfin .7s var(--ease) forwards,hffloat 6s ease-in-out infinite;animation-delay:calc(var(--i) * .15s + 1.1s),calc(var(--i) * .4s + 1.8s)}
@keyframes hfin{from{opacity:0;scale:.7}to{opacity:1;scale:1}}
@keyframes hffloat{50%{translate:0 -7px}}
@media (max-width:880px){.hflow{inset:-12% -4%}.hf-badges{display:none}.hero{padding-bottom:10rem}}

/* journal hero: fanned articles */
.vis-journal{position:relative;min-height:360px;display:grid;place-items:center}
.jc{position:absolute;width:min(300px,78%);padding:1.25rem 1.25rem 1.1rem;border-radius:10px;background:#F3EFE8;color:var(--night);box-shadow:0 30px 60px -28px rgb(0 0 0/.7);display:grid;gap:.45rem;transform-origin:50% 120%}
.jc small{font:600 .7rem var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--violet)}
.jc b{font-size:1.15rem;font-weight:500;line-height:1.2;letter-spacing:-.01em}
.jc i{display:block;height:6px;border-radius:3px;background:#DDD8EC;transform-origin:left}
.jc i:nth-of-type(2){width:86%}.jc i:nth-of-type(3){width:62%}
.jc em{font-style:normal;font-size:.75rem;color:#6A6660;margin-top:.2rem}
.jc-ico{width:36px;height:36px;border-radius:8px;display:grid;place-items:center;background:var(--night);color:var(--accent-l)}
.jc-ico .ico{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.jc1{transform:rotate(-9deg) translate(-34%,4%)}.jc2{transform:rotate(7deg) translate(30%,-2%)}.jc3{transform:none;z-index:2}
.jc1 .jc-ico{background:var(--violet);color:#fff}.jc2 .jc-ico{background:var(--accent-l);color:var(--night)}
.js .jc{animation:jcin .9s var(--ease) both}.js .jc2{animation-delay:.15s}.js .jc3{animation-delay:.3s}
@keyframes jcin{from{opacity:0;transform:translateY(60px) rotate(0)}}
.js .jc3 i{animation:typeln 6s var(--ease) infinite}.js .jc3 i:nth-of-type(2){animation-delay:.3s}.js .jc3 i:nth-of-type(3){animation-delay:.6s}
.jc-pen{position:absolute;right:12%;bottom:8%;z-index:3;width:54px;height:54px;border-radius:50%;background:var(--violet);display:grid;place-items:center;color:#fff;box-shadow:0 12px 30px -10px rgb(109 93 245/.8);animation:float 4s ease-in-out infinite}
.jc-pen .ico{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
@media (max-width:880px){.vis-journal{min-height:300px;margin-inline:auto;width:100%}}
@media (prefers-reduced-motion:reduce){.hbg *,.hb-bubbles i,.hb-icons span,.hb-dots,.scene *,.hl-track,.hf-rings rect,.hf-badge,.jc,.jc i,.jc-pen{animation:none!important}.hf-dots,.rt-plane{display:none}.hb-bubbles i,.hb-icons span{display:none}.js .hf-badge{opacity:1}.js .ind .scene{clip-path:none}}
.hb-chart{height:clamp(110px,15vw,210px)}
.hb-chart .hc-line{stroke-opacity:.55}
.vis-photo .ph-frame{width:100%;background:#0C0C38}
.hb-bubbles,.hb-icons{-webkit-mask-image:linear-gradient(90deg,rgb(0 0 0/.35),rgb(0 0 0/.35) 48%,#000 68%);mask-image:linear-gradient(90deg,rgb(0 0 0/.35),rgb(0 0 0/.35) 48%,#000 68%)}
@media (max-width:880px){.hb-bubbles,.hb-icons{-webkit-mask-image:linear-gradient(180deg,rgb(0 0 0/.3) 45%,#000 70%);mask-image:linear-gradient(180deg,rgb(0 0 0/.3) 45%,#000 70%)}}

/* services: why teams choose Verva */
.wv{background:var(--night);color:#F3EFE8;position:relative;overflow:hidden;isolation:isolate}
.wv::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(rgb(169 169 242/.05) 1px,transparent 1px) 0 0/48px 48px,linear-gradient(90deg,rgb(169 169 242/.05) 1px,transparent 1px) 0 0/48px 48px;-webkit-mask-image:linear-gradient(180deg,#000,transparent 70%);mask-image:linear-gradient(180deg,#000,transparent 70%)}
.wv .label{color:var(--lav)}.wv .sec-head p{color:#C9C4D8}
.wv-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}
.wv-card{position:relative;padding:1.25rem 1.5rem 1.75rem;border:1px solid rgb(255 255 255/.12);border-radius:14px;background:rgb(255 255 255/.03);transition:transform .5s var(--ease),border-color .4s,background .4s}
.wv-card:hover{transform:translateY(-6px);border-color:rgb(169 169 242/.55);background:rgb(255 255 255/.06)}
.wv-card h3{font-size:1.4rem;margin-top:.4rem}
.wv-card>p:last-child{color:#C9C4D8;margin-top:.6rem;font-size:.97rem}
.wv-n{position:absolute;top:.9rem;right:1.1rem;font:500 3.6rem/1 var(--font-display);letter-spacing:-.04em;color:transparent;-webkit-text-stroke:1px rgb(169 169 242/.4)}
.wv-art{position:relative;height:210px;margin-bottom:1.25rem;border-radius:10px;background:rgb(12 12 56/.6);border:1px solid rgb(255 255 255/.08);overflow:hidden;display:grid;place-items:center}
.js .wv-card{opacity:0;transform:translateY(40px)}
.js .reveal.in .wv-card{opacity:1;transform:none;transition:opacity .8s var(--ease),transform .8s var(--ease),border-color .4s,background .4s;transition-delay:calc(var(--i,0) * .12s)}
.js .reveal.in .wv-card:hover{transform:translateY(-6px);transition-delay:0s}
/* quote */
.wq-paper{width:74%;background:#F3EFE8;color:var(--night);border-radius:6px;padding:.8rem .9rem;font-size:.78rem;box-shadow:0 20px 40px -20px #000;animation:wqprint 7s var(--ease) infinite}
.wq-paper small{display:block;font:600 .62rem var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--violet);margin-bottom:.35rem}
.wq-paper p{display:flex;justify-content:space-between;gap:.5rem;padding:.3rem 0;border-top:1px dashed #CFCBDD}
.wq-paper b{font-weight:600}
.wq-stamp{position:absolute;right:9%;bottom:14%;padding:.25rem .7rem;border:2px solid var(--violet);border-radius:6px;color:var(--violet);background:rgb(243 239 232/.9);font:700 .9rem var(--font-mono);letter-spacing:.14em;text-transform:uppercase;transform:rotate(-12deg);animation:wqstamp 7s var(--ease) infinite}
@keyframes wqprint{0%{transform:translateY(110%)}14%,90%{transform:translateY(6%)}100%{transform:translateY(110%)}}
@keyframes wqstamp{0%,24%{opacity:0;transform:rotate(-12deg) scale(2.2)}30%{opacity:1;transform:rotate(-12deg) scale(.92)}34%,88%{opacity:1;transform:rotate(-12deg) scale(1)}94%,100%{opacity:0;transform:rotate(-12deg) scale(1)}}
/* team */
.wv-team{grid-template-rows:auto auto auto;align-content:center;gap:.2rem}
.wt-row{display:flex;align-items:center;gap:.7rem}
.wt-row small{width:3.4rem;font:600 .62rem var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--lav)}
.wt-row i{width:40px;height:40px;border-radius:50%;background:radial-gradient(circle at 50% 38%,#F3EFE8 0 7px,transparent 7.5px),radial-gradient(ellipse at 50% 112%,#F3EFE8 0 13px,transparent 13.5px),var(--violet)}
.wt-row i:nth-of-type(2){background-color:var(--accent-l)}.wt-row i:nth-of-type(3){background-color:var(--peach)}
.wt-links{display:flex;gap:.7rem;padding-left:4.1rem;height:44px}
.wt-links b{width:40px;display:flex;justify-content:center}
.wt-links b::before{content:"";width:2px;height:100%;background:repeating-linear-gradient(180deg,var(--lav) 0 4px,transparent 4px 8px);background-size:2px 8px;animation:wtflow .8s linear infinite}
@keyframes wtflow{to{background-position:0 8px}}
.wt-row:last-of-type i{animation:wtpop 4s var(--ease) infinite}
.wt-row:last-of-type i:nth-of-type(2){animation-delay:.2s}.wt-row:last-of-type i:nth-of-type(3){animation-delay:.4s}
@keyframes wtpop{0%,20%{transform:scale(.6);opacity:.3}30%,100%{transform:none;opacity:1}}
.wt-note{position:absolute;right:.8rem;bottom:.7rem;font:600 .62rem var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--accent-l)}
/* uae */
.wu-chat{position:relative;width:78%;height:56px}
.wu-chat p{position:absolute;inset:0;display:flex;align-items:center;padding:0 1rem;border-radius:14px 14px 14px 4px;background:#F3EFE8;color:var(--night);font-size:.9rem}
.wu-ar{justify-content:flex-end;border-radius:14px 14px 4px 14px!important;background:var(--violet)!important;color:#fff!important;font-size:1rem!important}
.wu-en{animation:wuen 6s ease-in-out infinite}.wu-ar{animation:wuar 6s ease-in-out infinite}
@keyframes wuen{0%,42%{opacity:1;transform:none}50%,92%{opacity:0;transform:translateY(-8px)}100%{opacity:1;transform:none}}
@keyframes wuar{0%,42%{opacity:0;transform:translateY(8px)}50%,92%{opacity:1;transform:none}100%{opacity:0;transform:translateY(8px)}}
.wu-chip{position:absolute;display:flex;align-items:center;gap:.4rem;padding:.3rem .65rem;border-radius:999px;background:rgb(255 255 255/.08);border:1px solid rgb(255 255 255/.16);font-size:.75rem;animation:float 5s ease-in-out infinite}
.wu-chip svg{width:14px;height:14px}.wu-chip .bi{fill:var(--accent-l)}.wu-chip .ico{color:var(--accent-l)}
.wu-chip.c1{left:7%;top:12%}.wu-chip.c2{right:7%;bottom:12%;animation-delay:-1.5s}.wu-chip.c3{left:9%;bottom:14%;animation-delay:-3s;font-weight:600}
.wu-chip.c3 i{width:26px;height:14px;border-radius:7px;background:rgb(255 255 255/.2);position:relative}
.wu-chip.c3 i::after{content:"";position:absolute;top:2px;left:2px;width:10px;height:10px;border-radius:50%;background:var(--accent-l);animation:wutog 6s ease-in-out infinite}
@keyframes wutog{0%,42%{transform:none}50%,92%{transform:translateX(12px)}100%{transform:none}}
@media (max-width:1000px){.wv-grid{grid-template-columns:1fr;max-width:560px}}
@media (prefers-reduced-motion:reduce){.wv *{animation:none!important}.wu-ar{opacity:0}}
.basic-ico{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:var(--tint);color:var(--violet)}
:where([data-theme="dark"]) .basic-ico{color:var(--lav)}

/* industries: compliance cards */
.rule-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}
.rule-card{background:var(--bg);border:1px solid var(--line);border-radius:16px;padding:1.5rem 1.6rem 1.6rem;transition:transform .4s var(--ease),border-color .3s,box-shadow .4s}
.rule-card:hover{transform:translateY(-4px);border-color:rgb(109 93 245/.45);box-shadow:0 24px 50px -30px rgb(12 12 56/.45)}
.rule-card header{display:flex;align-items:center;gap:.8rem;margin-bottom:1.1rem;padding-bottom:1rem;border-bottom:1px solid var(--line)}
.rule-card h3{font-size:1.35rem}
.rule-ico{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:var(--night);color:var(--accent-l)}
.rule-card:nth-child(2) .rule-ico{color:var(--peach)}.rule-card:nth-child(3) .rule-ico{color:var(--lav)}.rule-card:nth-child(4) .rule-ico{color:#F3EFE8}
.rule-k{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0 0 .55rem}
.rule-k+.rule-chips{margin-bottom:1.15rem}
.rule-chips{display:flex;flex-wrap:wrap;gap:.4rem}
.rule-chips span{padding:.35rem .7rem;border-radius:999px;background:var(--tint);color:var(--ink);font-size:.88rem;line-height:1.3}
.rule-dos{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}
.rule-dos li{display:flex;gap:.55rem;align-items:flex-start;font-size:1rem;line-height:1.45}
.rule-dos .ico{width:20px;height:20px;padding:3px;border-radius:50%;background:var(--accent-l);color:var(--night);stroke-width:3;margin-top:.1rem}
.js .rule-card{opacity:0;transform:translateY(30px)}
.js .reveal.in .rule-card{opacity:1;transform:none;transition:opacity .7s var(--ease),transform .7s var(--ease),border-color .3s,box-shadow .4s;transition-delay:calc(var(--i) * .1s)}
.js .reveal.in .rule-card:hover{transform:translateY(-4px);transition-delay:0s}
.js .rule-chips span{opacity:0;transform:scale(.8)}
.js .reveal.in .rule-chips span{opacity:1;transform:none;transition:opacity .4s,transform .5s cubic-bezier(.34,1.56,.64,1);transition-delay:calc(var(--i) * .1s + .4s)}
.rules-note{display:flex;align-items:center;gap:1.25rem;margin-top:1rem;padding:1.4rem 1.6rem;border-radius:16px;background:var(--night);color:#C9C4D8;font-size:.98rem;line-height:1.6}
.rules-note strong{color:#F3EFE8;font-weight:500}
.rn-ico{flex:none;display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:rgb(155 140 255/.14);color:var(--accent-l)}
.rn-ico .ico{width:28px;height:28px}
@media (max-width:760px){.rule-grid{grid-template-columns:1fr}.rules-note{flex-direction:column;align-items:flex-start;gap:.8rem}}
:where([data-theme="dark"]) .rule-chips span{color:var(--ink)}

/* industries: what every sector gets */
.basic{position:relative;overflow:hidden}
.basic::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--violet);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease)}
.basic-wa::before{background:var(--accent-l)}.basic-doc::before{background:var(--peach)}.basic-hand::before{background:var(--lav)}
.basic:hover::before{transform:scaleX(1)}
.basic-art{height:120px;border-radius:12px;background:var(--night);display:grid;place-items:center;overflow:hidden;position:relative;margin-bottom:.3rem}
.ba-lang{position:relative;width:80%;height:38px}
.ba-lang span{position:absolute;inset:0;display:flex;align-items:center;padding:0 .8rem;border-radius:12px 12px 12px 3px;background:#F3EFE8;color:var(--night);font-size:.82rem;animation:wuen 6s ease-in-out infinite}
.ba-lang .ar{justify-content:flex-end;border-radius:12px 12px 3px 12px;background:var(--violet);color:#fff;font-size:.95rem;animation-name:wuar}
.ba-wa{display:flex;align-items:center;gap:.6rem}
.ba-wa .bi{width:30px;height:30px;fill:var(--accent-l)}
.bw-msg{position:relative;display:flex;align-items:center;gap:4px;height:34px;min-width:130px;padding:0 .8rem;border-radius:12px 12px 12px 3px;background:#F3EFE8;color:var(--night);font-size:.8rem}
.bw-msg i{width:6px;height:6px;border-radius:50%;background:#9C99B8;animation:wadots 6s infinite}
.bw-msg i:nth-child(2){animation-delay:.15s}.bw-msg i:nth-child(3){animation-delay:.3s}
.bw-msg b,.bw-msg em{position:absolute;opacity:0;animation:wamsg 6s infinite}
.bw-msg b{left:.8rem;font-weight:500}.bw-msg em{right:.6rem;font-style:normal;font-size:.7rem;color:#34B7F1}
@keyframes wadots{0%,40%{opacity:1;transform:translateY(0)}10%,30%{transform:translateY(-3px)}45%,100%{opacity:0}}
@keyframes wamsg{0%,45%{opacity:0}50%,92%{opacity:1}100%{opacity:0}}
.ba-doc{position:relative}
.bd-page{display:grid;gap:7px;width:76px;padding:14px 12px;border-radius:6px;background:#F3EFE8}
.bd-page i{height:5px;border-radius:3px;background:#C9C6EE;transform-origin:left;animation:typeln 5s var(--ease) infinite}
.bd-page i:nth-child(2){width:80%;animation-delay:.2s}.bd-page i:nth-child(3){animation-delay:.4s}.bd-page i:nth-child(4){width:60%;animation-delay:.6s}
.bd-seal{position:absolute;right:-18px;bottom:-12px;display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--peach);color:var(--night);animation:sealpop 5s var(--ease) infinite}
.bd-seal .ico{width:20px;height:20px}
@keyframes sealpop{0%,40%{transform:scale(0) rotate(-30deg)}48%{transform:scale(1.15)}52%,90%{transform:none}100%{transform:scale(0)}}
.ba-hand{position:relative;width:76%;height:44px;display:flex;align-items:center;justify-content:space-between}
.ba-hand::before{content:"";position:absolute;left:44px;right:44px;top:50%;border-top:2px dashed rgb(169 169 242/.4)}
.bh-bot,.bh-person{position:relative;z-index:1;width:44px;height:44px;border-radius:50%;display:grid;place-items:center}
.bh-bot{background:var(--violet);color:#fff}.bh-bot .ico{width:20px;height:20px}
.bh-person{background:radial-gradient(circle at 50% 38%,var(--night) 0 7px,transparent 7.5px),radial-gradient(ellipse at 50% 112%,var(--night) 0 14px,transparent 14.5px),var(--lav)}
.bh-doc{position:absolute;left:44px;top:50%;width:18px;height:22px;margin-top:-11px;border-radius:3px;background:#F3EFE8;animation:handoff 4s var(--ease) infinite}
@keyframes handoff{0%,15%{left:44px;opacity:0}25%{opacity:1}70%{left:calc(100% - 62px);opacity:1}80%,100%{left:calc(100% - 62px);opacity:0}}
@media (prefers-reduced-motion:reduce){.basic-art *{animation:none!important}.ba-lang .ar,.bw-msg i{opacity:0}.bw-msg b,.bw-msg em{opacity:1}}
.wq-stamp{bottom:auto;top:15%;right:12%}
.wv-n{position:static;display:block;font-size:2.6rem;margin-top:.1rem}
.bw-msg{min-width:170px}

/* pricing: what moves the price */
.pf{display:grid;grid-template-columns:1.25fr 1fr;gap:clamp(1.5rem,4vw,3.5rem);align-items:start}
.pf-list{display:grid;gap:.6rem}
.pf-btn{all:unset;box-sizing:border-box;cursor:pointer;display:grid;grid-template-columns:auto 1fr auto;gap:1rem;align-items:start;padding:1rem 1.1rem;border:1px solid var(--line);border-radius:14px;background:var(--bg);transition:border-color .3s,background .3s,transform .3s var(--ease)}
.pf-btn:hover{border-color:rgb(109 93 245/.45);transform:translateX(4px)}
.pf-btn:focus-visible{outline:2px solid var(--violet);outline-offset:2px}
.pf-btn[aria-pressed=true]{border-color:var(--violet);background:var(--surface)}
.pf-ico{display:grid;place-items:center;width:40px;height:40px;border-radius:10px;background:var(--tint);color:var(--violet);transition:background .3s,color .3s}
.pf-btn[aria-pressed=true] .pf-ico{background:var(--violet);color:#fff}
.pf-txt{display:grid;gap:.15rem}
.pf-txt b{font-weight:500;font-size:1.05rem}
.pf-txt small{font-family:var(--font-mono);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--violet)}
.pf-d{color:var(--muted);font-size:.92rem;line-height:1.5;margin-top:.2rem}
.pf-sw{width:38px;height:22px;border-radius:11px;background:var(--line);position:relative;margin-top:.5rem;transition:background .3s}
.pf-sw::after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgb(0 0 0/.25);transition:transform .35s cubic-bezier(.34,1.56,.64,1)}
.pf-btn[aria-pressed=true] .pf-sw{background:var(--violet)}
.pf-btn[aria-pressed=true] .pf-sw::after{transform:translateX(16px)}
.pq{position:sticky;top:110px;background:var(--night);color:#F3EFE8;border-radius:18px;padding:1.5rem;box-shadow:0 40px 80px -40px rgb(12 12 56/.6)}
.pq-head{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding-bottom:1rem;border-bottom:1px solid rgb(255 255 255/.12)}
.pq-head small{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--lav)}
.pq-head b{font-weight:500;font-size:.95rem;color:var(--accent-l)}
.pq-cols{display:grid;grid-template-columns:2fr 1fr;gap:1rem;margin-top:1.25rem;height:360px}
.pq-col{display:flex;flex-direction:column;min-width:0}
.pq-col>p{text-align:center;font-family:var(--font-mono);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:#9C99B8;margin-top:.6rem}
.pq-stack{flex:1;display:flex;flex-direction:column-reverse;gap:4px;padding:6px;border-radius:12px;background:rgb(255 255 255/.04);border:1px dashed rgb(255 255 255/.14)}
.pq-base,.pq-blk{border-radius:8px;display:flex;align-items:center;padding:0 .8rem;font-size:.85rem;min-height:0}
.pq-base{height:64px;flex:none;background:var(--violet);color:#fff;font-weight:500}
.pq-m .pq-base{background:rgb(169 169 242/.25);font-size:.78rem}
.pq-blk{height:0;opacity:0;overflow:hidden;background:#F3EFE8;color:var(--night);transform:translateY(-30px) scale(.9);transition:height .45s var(--ease),opacity .3s,transform .5s cubic-bezier(.34,1.56,.64,1)}
.pq-blk:nth-child(2n){background:var(--accent-l)}.pq-blk:nth-child(3n){background:var(--peach)}
.pq-blk.on{height:40px;opacity:1;transform:none}
.pq-m .pq-blk{background:var(--accent-l)}
.pq-inc{margin-top:1.1rem;padding-top:1rem;border-top:1px solid rgb(255 255 255/.12);font-size:.85rem;color:#C9C4D8;line-height:1.55}
.pq-inc b{display:block;font-family:var(--font-mono);font-weight:400;font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--lav);margin-bottom:.3rem}
.hq{margin-top:clamp(2.5rem,5vw,4rem)}
.hq-steps{list-style:none;margin:1rem 0 0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:1.25rem;position:relative}
.hq-steps::before{content:"";position:absolute;left:20px;right:20px;top:20px;height:2px;background:var(--line)}
.hq-steps::after{content:"";position:absolute;left:20px;right:20px;top:20px;height:2px;background:var(--violet);transform:scaleX(0);transform-origin:left;transition:transform 1.6s var(--ease) .2s}
.reveal.in .hq-steps::after,html:not(.js) .hq-steps::after{transform:scaleX(1)}
.hq-steps li{position:relative;z-index:1}
.hq-n{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--surface);border:2px solid var(--violet);color:var(--violet);font-weight:600;margin-bottom:.8rem;transition:background .4s,color .4s;transition-delay:calc(var(--i) * .4s + .2s)}
.reveal.in .hq-n{background:var(--violet);color:#fff}
.hq-steps p{font-size:.95rem;color:var(--muted)}
.hq-cta{margin-top:2rem}
@media (max-width:1000px){.pf{grid-template-columns:1fr}.pq{position:relative;top:0}}
@media (max-width:760px){.hq-steps{grid-template-columns:1fr;gap:1rem}.hq-steps::before,.hq-steps::after{left:19px;right:auto;top:20px;bottom:20px;width:2px;height:auto}.hq-steps::after{transform:scaleY(0);transform-origin:top}.reveal.in .hq-steps::after{transform:scaleY(1)}.hq-steps li{display:grid;grid-template-columns:40px 1fr;gap:1rem;align-items:start}.hq-n{margin:0}.pq-cols{height:300px}}
@media (prefers-reduced-motion:reduce){.pq-blk,.pf-sw::after,.hq-steps::after{transition:none}}
.pq-blk{background:#F3EFE8!important}.pq-blk[data-f="1"],.pq-blk[data-f="4"],.pq-m .pq-blk{background:var(--accent-l)!important}.pq-blk[data-f="2"],.pq-blk[data-f="5"]{background:var(--peach)!important}.pq-blk[data-f="3"]{background:var(--lav)!important}

/* about: why we started */
.why-sec{position:relative;overflow:hidden;isolation:isolate;padding-block:clamp(4rem,9vw,7rem)}
.why-sec::before{content:"\201C";position:absolute;z-index:-1;left:.02em;top:.02em;line-height:.8!important;font:500 clamp(14rem,30vw,26rem)/1 var(--font-display);color:rgb(169 169 242/.07)}
.why-sec .wrap.why-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(2rem,5vw,4.5rem);align-items:center;max-width:1240px}
.why-copy{display:grid;gap:1.4rem}
.why-strike{position:relative;white-space:nowrap;color:#9C99B8}
.why-strike::after{content:"";position:absolute;left:-2px;right:-2px;top:55%;height:3px;border-radius:2px;background:var(--peach);transform:scaleX(0);transform-origin:left;transition:transform .8s var(--ease) .6s}
.why-strike+.why-strike::after,.why-big .why-strike:last-child::after{transition-delay:1.1s}
.why-hl{background:linear-gradient(var(--accent-l),var(--accent-l)) 0 100%/0 3px no-repeat;padding-bottom:2px;color:#F3EFE8;transition:background-size 1s var(--ease) 1.5s}
.reveal.in .why-strike::after,html:not(.js) .why-strike::after{transform:scaleX(1)}
.reveal.in .why-hl,html:not(.js) .why-hl{background-size:100% 3px}
@media (max-width:640px){.why-strike{white-space:normal}}
.why-art{position:relative;display:grid;gap:.9rem;justify-items:center}
.wa-deck{width:78%;padding:1.1rem 1.2rem;border-radius:10px;background:#1A1A4E;border:1px solid rgb(255 255 255/.12);display:grid;gap:.5rem;transform:rotate(-3deg);opacity:.75}
.wa-k{font-family:var(--font-mono);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:#9C99B8}
.wa-deck b{font-weight:500;font-size:1.15rem;color:#C9C4D8}
.wa-deck i{height:7px;border-radius:4px;background:rgb(255 255 255/.12)}.wa-deck i:nth-of-type(2){width:80%}.wa-deck i:nth-of-type(3){width:55%}
.wa-x{display:flex;align-items:center;gap:.4rem;margin-top:.3rem;font-size:.8rem;color:var(--peach)}
.wa-x .ico{width:14px;height:14px;transform:rotate(45deg)}
.wa-arrow{height:44px;width:2px;position:relative;background:repeating-linear-gradient(180deg,var(--lav) 0 4px,transparent 4px 8px);animation:wtflow .8s linear infinite;background-size:2px 8px}
.wa-arrow span{position:absolute;left:50%;bottom:-2px;width:10px;height:10px;margin-left:-5px;border-right:2px solid var(--lav);border-bottom:2px solid var(--lav);transform:rotate(45deg)}
.wa-live{width:92%;border-radius:14px;background:#F3EFE8;color:var(--night);padding:1rem;display:grid;gap:.55rem;box-shadow:0 30px 60px -30px #000}
.wa-live header{display:flex;align-items:center;gap:.5rem;font-size:.85rem;font-weight:500}
.wa-live header small{margin-left:auto;font-family:var(--font-mono);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;padding:.2rem .5rem;border-radius:999px;background:var(--accent-l)}
.wa-live .m{max-width:85%;padding:.5rem .75rem;border-radius:10px;font-size:.86rem;line-height:1.4}
.wa-live .u{justify-self:end;background:var(--night);color:#fff;border-bottom-right-radius:3px}
.wa-live .b{background:var(--tint);border-bottom-left-radius:3px}
.wa-live footer{display:flex;gap:.4rem;flex-wrap:wrap;padding-top:.5rem;border-top:1px solid #DED9D0}
.wa-live footer span{font-size:.72rem;padding:.2rem .55rem;border-radius:999px;border:1px solid #C9C6EE;color:var(--violet)}
.js .why-art>*{opacity:0;transform:translateY(24px)}
.js .reveal.in .why-art>*{opacity:1;transform:none;transition:opacity .7s var(--ease),transform .7s var(--ease)}
.js .reveal.in .why-art .wa-deck{opacity:.75;transform:rotate(-3deg);transition-delay:.2s}
.js .reveal.in .why-art .wa-arrow{transition-delay:.6s}.js .reveal.in .why-art .wa-live{transition-delay:.9s}
.js .wa-live .m{opacity:0;transform:translateY(8px)}
.js .reveal.in .wa-live .m{animation:wsmsg 7s var(--ease) infinite;animation-delay:1.4s}
.js .reveal.in .wa-live .b{animation-delay:2.2s}
@media (max-width:880px){.why-sec .wrap.why-grid{grid-template-columns:1fr}.why-art{max-width:420px}}

/* about: how we work */
.hwk-rows{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.hwk-row{position:relative;display:grid;grid-template-columns:5rem 1fr 1.3fr 56px;gap:1.5rem;align-items:center;padding:1.6rem 1rem;border-bottom:1px solid var(--line);isolation:isolate;transition:color .4s}
.hwk-row::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--night);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease);border-radius:12px}
.hwk-row:hover{color:#F3EFE8}.hwk-row:hover::before{transform:scaleX(1)}
.hwk-n{font:500 2.6rem/1 var(--font-display);letter-spacing:-.04em;color:transparent;-webkit-text-stroke:1px var(--violet);transition:-webkit-text-stroke-color .4s}
.hwk-row:hover .hwk-n{-webkit-text-stroke-color:var(--accent-l)}
.hwk-row h3{font-size:clamp(1.25rem,2vw,1.6rem)}
.hwk-row p{color:var(--muted);transition:color .4s}
.hwk-row:hover p{color:#C9C4D8}
.hwk-ico{display:grid;place-items:center;width:56px;height:56px;border-radius:50%;border:1px solid var(--line);color:var(--violet);transition:transform .5s cubic-bezier(.34,1.56,.64,1),background .4s,color .4s,border-color .4s}
.hwk-row:hover .hwk-ico{transform:rotate(-12deg) scale(1.12);background:var(--accent-l);color:var(--night);border-color:var(--accent-l)}
.js .hwk-row{opacity:0;transform:translateX(-30px)}
.js .reveal.in .hwk-row{opacity:1;transform:none;transition:opacity .7s var(--ease),transform .7s var(--ease),color .4s;transition-delay:calc(var(--i) * .12s)}
@media (max-width:760px){.hwk-row{grid-template-columns:3.2rem 1fr;gap:.4rem 1rem;padding:1.3rem .5rem}.hwk-row p{grid-column:2}.hwk-ico{display:none}.hwk-n{font-size:2rem;grid-row:span 2;align-self:start}}
@media (prefers-reduced-motion:reduce){.wa-arrow,.wa-live .m{animation:none!important}.js .wa-live .m{opacity:1;transform:none}}

/* home: six things we build and run, bento cards */
.services{grid-template-columns:repeat(4,1fr);gap:1rem;background:none;border:0}
.svc{border:1px solid var(--line);border-radius:18px;overflow:hidden;isolation:isolate;transition:transform .5s var(--ease),border-color .4s,box-shadow .5s,color .4s;transform-style:preserve-3d}
.svc-wide{grid-column:span 2}
.svc::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--night);clip-path:circle(0 at var(--mx,90%) var(--my,10%));transition:clip-path .6s var(--ease)}
.svc:hover{background:var(--bg);color:#F3EFE8;border-color:var(--night);box-shadow:0 30px 60px -30px rgb(12 12 56/.55)}
.svc:hover::before{clip-path:circle(150% at var(--mx,90%) var(--my,10%))}
.svc::after{display:none}
.svc:hover .kicker{color:var(--accent-l)}.svc:hover .desc,.svc:hover .price .sub{color:#C9C4D8}.svc:hover .price{color:#F3EFE8;border-color:rgb(255 255 255/.15)}
.svc:hover .price::after{background:var(--accent-l)}
.svc-top2{display:flex;justify-content:space-between;align-items:flex-start}
.svc-ic{display:grid;place-items:center;width:48px;height:48px;border-radius:14px;background:var(--tint);color:var(--violet);transition:transform .6s cubic-bezier(.34,1.56,.64,1),background .4s,color .4s}
.svc-ic .ico{width:24px;height:24px}
.svc:hover .svc-ic{transform:rotate(-10deg) scale(1.1);background:var(--violet);color:#fff}
.svc-no{font:500 2.4rem/1 var(--font-display);letter-spacing:-.04em;color:transparent;-webkit-text-stroke:1px var(--line);transition:-webkit-text-stroke-color .4s}
.svc:hover .svc-no{-webkit-text-stroke-color:rgb(169 169 242/.5)}
.svc-chatbots .svc-ic,.svc-care .svc-ic{background:var(--violet);color:#fff}
.svc-vis{position:absolute;right:1.5rem;top:5.2rem;width:42%;pointer-events:none}
.sv-chat{display:grid;gap:.4rem}
.sv-chat i{font-style:normal;font-size:.78rem;padding:.4rem .7rem;border-radius:12px 12px 12px 3px;background:var(--tint);color:var(--ink);justify-self:start;opacity:0;animation:svmsg 7s var(--ease) infinite}
.sv-chat i:nth-child(1){justify-self:end;border-radius:12px 12px 3px 12px;background:var(--night);color:#fff}
.sv-chat i:nth-child(2){animation-delay:.9s}
.sv-chat i:nth-child(3){background:var(--accent-l);color:var(--night);animation-delay:1.8s;font-weight:500}
@keyframes svmsg{0%{opacity:0;transform:translateY(8px)}8%,80%{opacity:1;transform:none}90%,100%{opacity:0}}
.sv-care svg{width:100%;height:70px;overflow:visible}
.sv-care polyline{fill:none;stroke:var(--violet);stroke-width:2.5;stroke-linejoin:round;vector-effect:non-scaling-stroke;stroke-dasharray:1;stroke-dashoffset:1;animation:svline 6s var(--ease) infinite}
.sv-care polyline{stroke-dasharray:400;stroke-dashoffset:400}
@keyframes svline{0%{stroke-dashoffset:400}45%,85%{stroke-dashoffset:0}100%{stroke-dashoffset:0;opacity:0}}
.sv-care b{display:inline-block;margin-top:.4rem;font:500 .7rem var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--violet);padding:.25rem .55rem;border-radius:999px;background:var(--tint)}
.svc:hover .sv-care polyline{stroke:var(--accent-l)}
.svc-wide .desc{max-width:52%}
@media (max-width:1100px){.services{grid-template-columns:repeat(2,1fr)}.svc-wide{grid-column:span 2}}
@media (max-width:640px){.services{grid-template-columns:1fr}.svc-wide{grid-column:auto}.svc-vis{position:static;width:100%;margin:-.2rem 0 .2rem}.svc-wide .desc{max-width:none}}
@media (prefers-reduced-motion:reduce){.svc-vis *{animation:none!important;opacity:1!important}.sv-care polyline{stroke-dashoffset:0}}
.svc-no{position:absolute;right:1.5rem;top:1.6rem}
.svc-wide>:not(.price){max-width:calc(58% - .76rem)}
.svc-wide .svc-vis{top:50%;translate:0 -40%;width:calc(42% - 2rem);right:1.75rem}
@media (max-width:640px){.svc-wide>:not(.price){max-width:none}.svc-wide .svc-vis{translate:none}}
@media (max-width:640px){.svc-vis{display:none}}

/* footer */
.site-footer{--primary:var(--lav);--ink:#F3EFE8;--line:rgb(255 255 255/.12);--muted:#A6A2B8;background:var(--night);color:var(--muted);border-top:0;padding-block:clamp(3rem,6vw,5rem) 1.5rem;overflow:hidden;position:relative;isolation:isolate}
.site-footer::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(rgb(169 169 242/.05) 1px,transparent 1px) 0 0/56px 56px,linear-gradient(90deg,rgb(169 169 242/.05) 1px,transparent 1px) 0 0/56px 56px;-webkit-mask-image:linear-gradient(180deg,#000,transparent 60%);mask-image:linear-gradient(180deg,#000,transparent 60%)}
.foot-contact{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:clamp(2.5rem,5vw,4rem)}
.fc{display:grid;grid-template-columns:auto 1fr;column-gap:1rem;align-items:center;padding:1.3rem 1.4rem;border-radius:16px;border:1px solid rgb(255 255 255/.12);background:rgb(255 255 255/.03);text-decoration:none;color:#F3EFE8;transition:transform .4s var(--ease),border-color .3s,background .3s}
a.fc:hover{transform:translateY(-4px);border-color:var(--accent-l);background:rgb(155 140 255/.06)}
.fc-ico{grid-row:span 3;display:grid;place-items:center;width:52px;height:52px;border-radius:14px;background:rgb(155 140 255/.12);color:var(--accent-l);transition:transform .5s cubic-bezier(.34,1.56,.64,1)}
a.fc:hover .fc-ico{transform:rotate(-10deg) scale(1.08)}
.fc-ico svg{width:24px;height:24px}
.fc small{font-family:var(--font-mono);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--lav)}
.fc b{font-family:var(--font-display);font-weight:500;font-size:1.2rem;letter-spacing:-.01em;overflow-wrap:anywhere}
.fc em{font-style:normal;font-size:.82rem;color:var(--muted)}
.site-footer .foot{padding-top:2.5rem;border-top:1px solid var(--line)}
.site-footer .foot a{transition:color .25s}
.site-footer .foot li a{position:relative}
.site-footer .foot li a::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:1px;background:var(--accent-l);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
.site-footer .foot li a:hover::after{transform:scaleX(1)}
.foot-mark{display:flex;align-items:flex-start;justify-content:center;margin:clamp(2rem,5vw,3.5rem) 0 0;font:600 clamp(5.5rem,24vw,22rem)/.78 var(--font-display);letter-spacing:-.06em;user-select:none;padding-bottom:.06em}
.foot-mark span{display:inline-block;background:linear-gradient(180deg,#F3EFE8 10%,rgb(169 169 242/.25));-webkit-background-clip:text;background-clip:text;color:transparent;padding:.16em .1em .04em;margin:-.16em -.1em -.04em;transition:transform .5s cubic-bezier(.34,1.56,.64,1)}
.foot-mark span:hover{transform:translateY(-.08em)}
.foot-mark sup{font:500 clamp(1rem,3vw,2.4rem)/1 var(--font-mono);letter-spacing:.1em;color:var(--accent-l);margin:.3em 0 0 .25em}
.js .foot-mark span{transform:translateY(60%);opacity:0}
.js .foot-mark.in span{transform:none;opacity:1;transition:transform 1s var(--ease),opacity .8s;transition-delay:calc(var(--i) * .08s)}
.js .foot-mark.in span:hover{transform:translateY(-.08em);transition-delay:0s}
.site-footer .legal{border-top:1px solid var(--line)}
@media (max-width:880px){.foot-contact{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.js .foot-mark span{transform:none;opacity:1}}
/* review fixes */
@media (prefers-reduced-motion:reduce){.sc-pulse,.sc-tick{stroke-dashoffset:0}.wv *::before,.wv *::after,.basic-art *::before,.basic-art *::after{animation:none!important}}
@media (max-width:880px){.jc{width:min(260px,70%)}.jc1{transform:rotate(-7deg) translate(-16%,4%)}.jc2{transform:rotate(6deg) translate(16%,-2%)}}
.why-strike{white-space:normal;-webkit-box-decoration-break:clone;box-decoration-break:clone;background:linear-gradient(var(--peach),var(--peach)) 0 58%/0 3px no-repeat;transition:background-size .9s var(--ease) .6s}
.why-strike::after{display:none}
.why-big .why-strike+.why-strike,.why-big .why-strike:last-of-type{transition-delay:1.1s}
.reveal.in .why-strike,html:not(.js) .why-strike{background-size:100% 3px}
.pf-count{margin-top:.4rem;font-family:var(--font-mono);font-size:.78rem;letter-spacing:.04em;color:var(--violet)}
@media (max-width:1000px){.pf-count{position:sticky;bottom:12px;z-index:3;justify-self:center;padding:.55rem 1rem;border-radius:999px;background:var(--night);color:#F3EFE8;box-shadow:0 10px 30px -10px rgb(12 12 56/.6)}}
.tile small{color:inherit;opacity:.72}
/* ===== v5 ===== */
:where([data-theme="dark"]) .clients img,:where([data-theme="dark"]) .cl-logo img{filter:grayscale(1) brightness(0) invert(1);opacity:.7}:where([data-theme="dark"]) .clients li:hover img,:where([data-theme="dark"]) .cl-logo:hover img{filter:brightness(0) invert(1);opacity:1}
.rule-dos .ico{background:var(--violet);color:#fff}
.fc-ico{background:var(--violet);color:#fff}
a.fc:hover{border-color:var(--violet);background:rgb(109 93 245/.1)}
.wa-live .m.b{color:var(--night);background:#E4E1F2}
.wa-live .m.u{color:#fff}

/* home hero: mashrabiya lattice with a light sweeping across it (replaces the dots) */
.clients img[src*=marriott]{max-height:54px}.clients img[src*=dubizzle]{max-height:30px}.clients img[src*=rostamani]{max-height:38px}
.cl-logo img[src*=marriott]{max-height:52px}.cl-logo img[src*=dubizzle]{max-height:30px}
/* home industries: no frame, the illustrations carry the cards */
.inds{gap:clamp(1rem,2vw,1.75rem);background:none;border:0}
.ind{background:none;padding:0;min-height:0;overflow:visible}
.ind .scene-wrap{border-radius:16px;margin-bottom:1.1rem;transition:transform .5s var(--ease),box-shadow .5s}
.ind:hover .scene-wrap{transform:translateY(-6px);box-shadow:0 30px 50px -28px rgb(12 12 56/.55)}
.ind:hover .scene{transform:none}
.ind .go{display:inline-flex;align-items:center;gap:.4rem}
.ind .go::after{content:"";width:0;height:2px;background:currentColor;transition:width .4s var(--ease)}
.ind:hover .go::after{width:1.2rem}
/* home process: route illustration instead of the video */
.process::before{background:linear-gradient(180deg,var(--night) 0%,#101040 40%,var(--dark) 100%)}
.proc-art{position:absolute;left:0;right:0;top:clamp(1.5rem,3vw,2.5rem);height:clamp(150px,17vw,240px);z-index:-1}
.proc-art svg{width:100%;height:100%;overflow:visible}
.pa-path{fill:none;stroke:rgb(169 169 242/.3);stroke-width:2;stroke-dasharray:6 8;vector-effect:non-scaling-stroke}
.pa-done{fill:none;stroke:var(--violet);stroke-width:3;stroke-linecap:round;vector-effect:non-scaling-stroke;stroke-dasharray:1;stroke-dashoffset:1;animation:padone 8s linear infinite}
@keyframes padone{0%{stroke-dashoffset:1}92%{stroke-dashoffset:0;opacity:1}100%{stroke-dashoffset:0;opacity:0}}
.pa-ring{fill:none;stroke:rgb(169 169 242/.35);stroke-width:1.5}
.pa-dot{fill:#15154A;stroke:var(--lav);stroke-width:2;transition:fill .3s}
.pa-stop{animation:pastop 8s linear infinite;animation-delay:calc(var(--i) * 0s)}
.pa-stop .pa-dot{animation:padot 8s linear infinite}
.pa-stop[style*="--i:0"] .pa-dot{animation-delay:-6.6s}.pa-stop[style*="--i:1"] .pa-dot{animation-delay:-4.4s}.pa-stop[style*="--i:2"] .pa-dot{animation-delay:-2.2s}.pa-stop[style*="--i:3"] .pa-dot{animation-delay:-.4s}
@keyframes padot{0%,100%{fill:#15154A}2%,60%{fill:var(--violet)}}
.pa-stop text{fill:#C9C4D8;stroke:none;font:500 13px var(--font-mono);letter-spacing:.08em;text-transform:uppercase}
.pa-runner circle{fill:#F3EFE8;filter:drop-shadow(0 0 6px rgb(155 140 255/.9))}
@media (max-width:760px){.pa-stop text{font-size:22px}}
@media (prefers-reduced-motion:reduce){.pa-done,.pa-stop .pa-dot{animation:none}.pa-done{stroke-dashoffset:0}.pa-runner{display:none}}
.process{padding-top:clamp(10rem,21vw,17rem)}

/* mega menu */
.menu .mm-top{display:inline-flex;align-items:center;gap:.3rem}
.chev{width:12px;height:12px;transition:transform .35s var(--ease)}
.menu>li{position:static}
.has-mega>.mega{position:absolute;left:var(--gutter);right:var(--gutter-r);top:100%;padding-top:12px;visibility:hidden;opacity:0;transition:opacity .25s .2s,visibility 0s linear .45s;z-index:20}
.mega-in{background:var(--surface);border:1px solid var(--line);border-radius:20px;box-shadow:0 40px 80px -30px rgb(12 12 56/.35);padding:1rem;display:grid;grid-template-columns:1fr 290px;gap:1rem;clip-path:inset(0 0 100% 0 round 20px);transition:clip-path .5s var(--ease)}
.mega-ind .mega-in{grid-template-columns:1fr}
@media (min-width:881px){
  .has-mega:hover>.mega,.has-mega:has(:focus-visible)>.mega,.has-mega.open>.mega{visibility:visible;opacity:1;pointer-events:auto;transition:opacity .2s,visibility 0s}
  .has-mega:hover .mega-in,.has-mega:has(:focus-visible) .mega-in,.has-mega.open .mega-in{clip-path:inset(0 round 20px)}
  .has-mega:hover .chev,.has-mega:has(:focus-visible) .chev,.has-mega.open .chev{transform:rotate(180deg)}
  .has-mega>.mm-top{position:relative}
  .has-mega>.mm-top::after{content:"";position:absolute;left:-14px;right:-14px;top:100%;height:30px}
  .has-mega.shut>.mega{visibility:hidden!important;opacity:0!important;pointer-events:none!important}
  .menu:has(>.has-mega:hover)>.has-mega:not(:hover)>.mega{visibility:hidden;opacity:0;pointer-events:none;transition:none}
  .mega li{opacity:0;transform:translateY(10px);transition:opacity .4s var(--ease),transform .5s var(--ease)}
  .has-mega:hover .mega li,.has-mega:has(:focus-visible) .mega li,.has-mega.open .mega li{opacity:1;transform:none;transition-delay:calc(var(--i) * .04s + .08s)}
}
.mm-grid,.mm-inds{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:.35rem}
.mm-item{display:grid;grid-template-columns:auto 1fr;gap:.9rem;align-items:start;padding:.9rem;border-radius:14px;text-decoration:none;color:var(--ink);transition:background .25s}
.mm-item:hover,.mm-item:focus-visible{background:var(--tint)}
.nav .menu .mm-item,.nav .menu .mm-ind{color:var(--ink)}
.mm-ico{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:var(--tint);color:var(--violet);transition:transform .45s cubic-bezier(.34,1.56,.64,1),background .25s,color .25s}
.mm-item:hover .mm-ico{background:var(--violet);color:#fff;transform:rotate(-8deg) scale(1.06)}
.mm-txt{display:grid;gap:.1rem}
.mm-txt b{font-weight:500;font-size:1rem}
.mm-txt small{font-size:.86rem;color:var(--muted);line-height:1.4}
.mm-txt em{font-style:normal;font-family:var(--font-mono);font-size:.7rem;letter-spacing:.04em;color:var(--violet);margin-top:.2rem}
.mm-side{position:relative;overflow:hidden;border-radius:14px;background:var(--night);color:#F3EFE8;padding:1.25rem;display:flex;flex-direction:column;gap:.5rem}
.mm-side .mm-bot{width:62px;height:auto;margin-bottom:.3rem}
.mm-k{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--lav)}
.mm-h{font-family:var(--font-display);font-size:1.15rem;line-height:1.25;letter-spacing:-.01em}
.nav .menu .mm-cta{margin-top:auto;display:inline-flex;justify-content:center;padding:.7rem 1rem;border-radius:var(--radius);background:#F3EFE8;color:var(--night);font-weight:500;font-size:.92rem}
.nav .menu .mm-all{font-size:.88rem;color:var(--lav);text-align:center}
.nav .menu .mm-side a.mm-cta,.nav .menu .mm-side a.mm-cta:hover{color:var(--night)}.nav .menu .mm-side a.mm-all{color:var(--lav)}
.nav .menu .mm-side a.mm-cta:hover{background:#fff}.nav .menu .mm-side a.mm-all:hover{color:#fff}
.mm-inds{grid-template-columns:repeat(4,1fr);gap:.75rem}
.mm-ind{display:grid;gap:.15rem;padding:.6rem;border-radius:14px;text-decoration:none;transition:background .25s}
.mm-ind:hover,.mm-ind:focus-visible{background:var(--tint)}
.mm-scene{display:block;aspect-ratio:4/3;border-radius:10px;overflow:hidden;margin-bottom:.5rem;background:#0C0C38}
.mm-scene .scene{transition:transform .6s var(--ease)}
.mm-ind:hover .mm-scene .scene{transform:scale(1.06)}
.mm-ind b{font-weight:500}
.mm-ind small{font-size:.84rem;color:var(--muted)}
/* current page inside the mega menu and mobile menu */
.mm-grid li.current .mm-item,.mm-inds li.current .mm-ind{background:var(--tint);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--violet) 45%,transparent)}
.mm-grid li.current .mm-ico{background:var(--violet);color:#fff}
.mm-grid li.current .mm-txt b,.mm-inds li.current .mm-ind b{display:inline-flex;align-items:center;gap:.45rem}
.mm-grid li.current .mm-txt b::after,.mm-inds li.current .mm-ind b::after{content:"";width:6px;height:6px;border-radius:50%;background:var(--violet);box-shadow:0 0 0 3px color-mix(in srgb,var(--violet) 22%,transparent)}
.mnav-svcs li.current a,.mnav-inds li.current a{background:rgb(169 169 242/.14);border-color:var(--lav)}
@media (prefers-reduced-motion:reduce){.mega-in,.mega li{transition:none!important}}

/* closing CTA: night card with the one-page plan illustration */
.cta-band{background:var(--bg);color:var(--ink);padding-block:clamp(3rem,7vw,6rem)}
.cta-band .wrap{display:block}
.cta-card{--primary:var(--lav);position:relative;isolation:isolate;overflow:hidden;display:grid;grid-template-columns:1.25fr 1fr;gap:clamp(2rem,4vw,4rem);align-items:center;padding:clamp(2rem,5vw,4.5rem);border-radius:28px;background:var(--night);color:#F3EFE8}
.cta-card::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(rgb(169 169 242/.06) 1px,transparent 1px) 0 0/48px 48px,linear-gradient(90deg,rgb(169 169 242/.06) 1px,transparent 1px) 0 0/48px 48px;-webkit-mask-image:linear-gradient(90deg,transparent 30%,#000);mask-image:linear-gradient(90deg,transparent 30%,#000)}
.cta-card .label{color:var(--lav)}
.cta-card h2{font-size:clamp(2.1rem,4.4vw,3.6rem);margin-top:.6rem;max-width:14em}
.cta-card .cta-copy>p:not(.label){color:#C9C4D8;font-size:1.1rem;margin-top:1rem;max-width:32em}
.cta-card .wp-block-buttons{margin-top:2rem;justify-content:flex-start}
.cta-card .wp-block-button__link{background:#F3EFE8;color:var(--night);border-color:#F3EFE8}
.cta-card .is-style-outline .wp-block-button__link{background:transparent;color:#F3EFE8;border-color:rgb(255 255 255/.28)}
.cta-card .is-style-outline .wp-block-button__link:hover{border-color:#F3EFE8}
.cta-art{position:relative;min-height:320px;display:grid;place-items:center}
.cp-paper{position:relative;width:min(300px,86%);padding:1.4rem 1.4rem 1.2rem;border-radius:14px;background:#F3EFE8;color:var(--night);display:grid;gap:.55rem;transform:rotate(3deg);box-shadow:0 40px 80px -30px #000}
.cp-paper small{font:600 .66rem var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--violet)}
.cp-paper b{font-family:var(--font-display);font-weight:500;font-size:1.35rem;letter-spacing:-.02em}
.cp-paper i{height:7px;border-radius:4px;background:#DDD8EC;transform-origin:left}
.cp-paper i:nth-of-type(2){width:82%}.cp-paper i:nth-of-type(3){width:60%}
.cp-paper p{display:flex;justify-content:space-between;align-items:baseline;gap:.5rem;margin-top:.4rem;padding-top:.7rem;border-top:1px dashed #C9C6EE}
.cp-paper span{font-weight:600}.cp-paper em{font-style:normal;font-size:.78rem;color:#6A6660}
.cp-chip{position:absolute;display:flex;align-items:center;gap:.4rem;padding:.45rem .8rem;border-radius:999px;background:var(--violet);color:#fff;font-size:.82rem;box-shadow:0 14px 30px -14px rgb(0 0 0/.6)}
.cp-chip .ico{width:15px;height:15px}
.cp-chip.c1{left:0;top:16%}.cp-chip.c2{right:2%;bottom:12%;background:#F3EFE8;color:var(--night)}
.cta-art .cta-bot{position:absolute;right:6%;top:-4%;width:86px;height:auto}
.js .cta-card .cp-paper{opacity:0;transform:translateY(60px) rotate(-4deg)}
.js .cta-card.in .cp-paper{opacity:1;transform:rotate(3deg);transition:opacity .8s var(--ease) .2s,transform 1s cubic-bezier(.34,1.56,.64,1) .2s}
.js .cta-card .cp-paper i{transform:scaleX(0)}
.js .cta-card.in .cp-paper i{transform:none;transition:transform .8s var(--ease) 1s}
.js .cta-card.in .cp-paper i:nth-of-type(2){transition-delay:1.15s}.js .cta-card.in .cp-paper i:nth-of-type(3){transition-delay:1.3s}
.js .cta-card .cp-chip,.js .cta-card .cta-bot{opacity:0;scale:.6}
.js .cta-card.in .cp-chip,.js .cta-card.in .cta-bot{opacity:1;scale:1;transition:opacity .5s,scale .6s cubic-bezier(.34,1.56,.64,1);transition-delay:1.4s}
.js .cta-card.in .cp-chip.c2{transition-delay:1.6s}.js .cta-card.in .cta-bot{transition-delay:1.8s}
.cp-chip{animation:float 5s ease-in-out infinite}.cp-chip.c2{animation-delay:-2.5s}
.js .cta-card.reveal{opacity:1;transform:none}
@media (max-width:880px){.cta-card{grid-template-columns:1fr}.cta-art{min-height:280px}}
@media (prefers-reduced-motion:reduce){.cp-chip{animation:none}}

/* FAQ: dark section, questions as cards, answers as replies from Verva */
.faq-sec{background:var(--night);color:#F3EFE8;position:relative;isolation:isolate;overflow:hidden}
.faq-sec::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(rgb(169 169 242/.05) 1px,transparent 1px) 0 0/48px 48px,linear-gradient(90deg,rgb(169 169 242/.05) 1px,transparent 1px) 0 0/48px 48px;-webkit-mask-image:linear-gradient(180deg,#000,transparent 75%);mask-image:linear-gradient(180deg,#000,transparent 75%)}
.faq-sec .label{color:var(--lav)}
.faq-sec .sec-head{position:sticky;top:110px;align-self:start}
.faq-ask{display:flex;align-items:flex-end;gap:.6rem;margin-top:1.5rem}
.faq-ask .faq-bot{width:64px;height:auto;flex:none}
.faq-bubble{position:relative;padding:.8rem 1rem;border-radius:16px 16px 16px 4px;background:rgb(255 255 255/.08);border:1px solid rgb(255 255 255/.14);color:#C9C4D8;font-size:.95rem;line-height:1.45}
.faq-sec .faq-wa{display:inline-flex;align-items:center;gap:.5rem;margin-top:1.1rem;padding:.7rem 1.1rem;border-radius:var(--radius);background:#F3EFE8;color:var(--night);text-decoration:none;font-weight:500;transition:transform .3s var(--ease)}
.faq-sec .faq-wa:hover{transform:translateY(-2px)}
.faq-sec .faq-wa::after{content:"";width:16px;height:16px;background:currentColor;-webkit-mask:var(--arrow) center/contain no-repeat;mask:var(--arrow) center/contain no-repeat}
.faq-sec .faq{border-top:0;display:grid;gap:.7rem;counter-reset:q;max-width:none}
.faq-sec .faq details{counter-increment:q;border:1px solid rgb(255 255 255/.12);border-radius:16px;background:rgb(255 255 255/.03);padding:0 1.3rem;transition:border-color .3s,background .3s}
.faq-sec .faq details:hover{border-color:rgb(169 169 242/.45)}
.faq-sec .faq details.is-open,html:not(.js) .faq-sec .faq details[open]{border-color:var(--violet);background:rgb(109 93 245/.1)}
.faq-sec .faq summary{color:#F3EFE8;padding:1.2rem 0;gap:1rem}
.faq-sec .faq summary::before{content:"Q" counter(q,decimal-leading-zero);flex:none;font:500 .72rem var(--font-mono);letter-spacing:.08em;color:var(--lav);padding:.3rem .5rem;border-radius:999px;border:1px solid rgb(169 169 242/.35)}
.faq-sec .faq summary>*{flex:1}
.faq-sec .faq summary:hover{color:#fff}
.faq-sec .faq summary::after{background-color:rgb(255 255 255/.1);background-image:linear-gradient(#F3EFE8,#F3EFE8),linear-gradient(#F3EFE8,#F3EFE8)}
.faq-sec .faq details.is-open summary::after,html:not(.js) .faq-sec .faq details[open] summary::after{background-color:var(--violet);background-image:linear-gradient(#fff,#fff),linear-gradient(#fff,#fff)}
.faq-sec .faq .wp-block-details p{position:relative;margin:0 0 1.3rem 2.6rem;padding:.9rem 1.1rem;border-radius:4px 16px 16px 16px;background:#F3EFE8;color:var(--night);max-width:none;font-size:.98rem;line-height:1.55}
.faq-sec .faq .wp-block-details p::before{content:"V";position:absolute;left:-2.6rem;top:0;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--violet);color:#fff;font:600 .8rem var(--font-display)}
.faq-sec .faq .wp-block-details p a{color:var(--violet)}
@media (max-width:880px){.faq-sec .sec-head{position:static}}
@media (max-width:520px){.faq-sec .faq .wp-block-details p{margin-left:0}.faq-sec .faq .wp-block-details p::before{display:none}}
.faq-sec .faq summary{justify-content:flex-start}.faq-sec .faq summary::after{margin-left:auto}
.faq-bubble{color:#DAD6EA}
.cta-band .cp-paper p{color:var(--night);font-size:.9rem;margin-top:.4rem;max-width:none}
.cp-chip.c1{left:-2%;top:4%}

/* pricing: how we quote, as tickets */
.hq-head h3{font-size:clamp(1.4rem,2.4vw,1.9rem);margin-top:.4rem}
.tks{list-style:none;margin:1.5rem 0 0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;position:relative}
.tk{position:relative;display:grid;gap:.5rem;align-content:start;padding:1.4rem 1.3rem 1.5rem;border-radius:16px;background:var(--surface);border:1px solid var(--line);-webkit-mask:radial-gradient(circle 11px at 0 64px,#0000 98%,#000) left/51% 100% no-repeat,radial-gradient(circle 11px at 100% 64px,#0000 98%,#000) right/51% 100% no-repeat;mask:radial-gradient(circle 11px at 0 64px,#0000 98%,#000) left/51% 100% no-repeat,radial-gradient(circle 11px at 100% 64px,#0000 98%,#000) right/51% 100% no-repeat;transition:transform .45s var(--ease),background .3s}
.tk::after{content:"";position:absolute;left:16px;right:16px;top:64px;border-top:2px dashed var(--line)}
.tk:hover{transform:translateY(-6px) rotate(-1deg);background:var(--bg)}
.tk-n{position:absolute;right:1.1rem;top:1rem;font:500 2.2rem/1 var(--font-display);letter-spacing:-.04em;color:transparent;-webkit-text-stroke:1px var(--violet)}
.tk-ico{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--violet);color:#fff;margin-bottom:1.4rem}
.tk small{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--violet)}
.tk p{font-size:.98rem;line-height:1.5}
.js .tks .tk{opacity:0;transform:translateY(40px) rotate(2deg)}
.js .tks.in .tk{opacity:1;transform:none;transition:opacity .6s var(--ease),transform .8s cubic-bezier(.34,1.56,.64,1),background .3s;transition-delay:calc(var(--i) * .15s)}
.js .tks.in .tk:hover{transform:translateY(-6px) rotate(-1deg);transition-delay:0s}
.hq-steps{display:none}
@media (max-width:1000px){.tks{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.tks{grid-template-columns:1fr}}

/* pricing: what you pay at each stage, as a staircase the bot climbs */
.stairs{list-style:none;margin:0;padding:90px 0 0;display:grid;grid-template-columns:repeat(4,1fr);gap:.8rem;align-items:end;position:relative}
.st-block{display:grid;align-content:start;gap:.35rem;padding:1.3rem;border-radius:16px 16px 4px 4px;background:var(--surface);border:1px solid var(--line);min-height:calc(170px + var(--i) * 55px);transform-origin:bottom;position:relative;overflow:hidden}
.st:nth-child(4) .st-block{background:var(--night);color:#F3EFE8;border-color:var(--night)}
.st-block::after{content:"";position:absolute;left:0;right:0;bottom:0;height:4px;background:var(--violet);transform:scaleX(0);transform-origin:left;transition:transform .8s var(--ease)}
.st-ico{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;background:var(--tint);color:var(--violet);margin-bottom:.5rem}
.st:nth-child(4) .st-ico{background:rgb(255 255 255/.1);color:var(--accent-l)}
.st-name{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.st:nth-child(4) .st-name,.st:nth-child(4) .st-note{color:#C9C4D8}
.st-amt{font-family:var(--font-display);font-weight:500;font-size:clamp(1.3rem,2.2vw,1.8rem);letter-spacing:-.02em;line-height:1.1}
.st-note{color:var(--muted);font-size:.92rem}
.st-bot{position:absolute;left:0;top:0;width:25%;height:100%;pointer-events:none}
.st-bot .bot{position:absolute;left:50%;width:64px;height:auto;margin-left:-32px;bottom:calc(170px + 0px);transform:translateY(0)}
.js .stairs .st-block{transform:scaleY(.2);opacity:0}
.js .stairs.in .st-block{transform:none;opacity:1;transition:transform .9s cubic-bezier(.34,1.3,.64,1),opacity .4s;transition-delay:calc(var(--i) * .18s)}
.js .stairs.in .st-block::after{transform:scaleX(1);transition-delay:calc(var(--i) * .18s + .8s)}
.js .stairs .st-bot{opacity:0}
.js .stairs.in .st-bot{opacity:1;transition:opacity .4s 1.2s;animation:stclimb 9s var(--ease) 1.4s infinite}
@keyframes stclimb{
0%,14%{transform:translate(0,calc(var(--h0) * -1))}
20%{transform:translate(50%,calc(var(--h1) * -1 - 40px))}
25%,39%{transform:translate(100%,calc(var(--h1) * -1))}
45%{transform:translate(150%,calc(var(--h2) * -1 - 40px))}
50%,64%{transform:translate(200%,calc(var(--h2) * -1))}
70%{transform:translate(250%,calc(var(--h3) * -1 - 40px))}
75%,92%{transform:translate(300%,calc(var(--h3) * -1))}
100%{transform:translate(0,calc(var(--h0) * -1))}}
.stairs{--h0:0px;--h1:55px;--h2:110px;--h3:165px}
@media (max-width:760px){.stairs{grid-template-columns:1fr 1fr;padding-top:0}.st-block{min-height:0}.st-bot{display:none}.js .stairs .st-block{transform:none}}
@media (prefers-reduced-motion:reduce){.js .stairs.in .st-bot{animation:none}}
@media (max-width:480px){.cp-chip.c2{bottom:-4%;right:0}.cta-band .cp-paper p{display:block}.cp-paper em{display:block;margin-top:.2rem}}
.entry-content>:not(.band,.phero,.faq-sec)+.cta-band{padding-top:0}

@font-face{font-family:Caveat;src:url(../fonts/Caveat-500.woff2) format("woff2");font-weight:500;font-display:swap}
.phero:has(.bg-pen){padding-bottom:clamp(9rem,15vw,12rem)}
.hb-pen{position:absolute;left:max(var(--gutter),calc((100% - 1240px)/2 + var(--gutter)));right:var(--gutter-r);bottom:clamp(1.2rem,3vw,2.4rem);display:grid;gap:.1rem;pointer-events:none}
.pn-line{margin:0;position:relative;width:max-content;max-width:100%;font:500 clamp(1.5rem,3.2vw,2.6rem)/1.25 Caveat,cursive;color:rgb(169 169 242/.75);white-space:nowrap}
.pn-line.l1{margin-left:clamp(1rem,6vw,5rem);color:rgb(247 206 181/.7)}
.pn-text{display:block;padding-right:.25em;clip-path:inset(-.3em 100% -.35em -.3em);animation:pnwrite 3.6s linear .6s forwards}
.pn-line.l1 .pn-text{animation-duration:4.2s;animation-delay:4.4s}
.pn-hand{position:absolute;bottom:.15em;left:0;width:.55em;transform:translateX(-50%) rotate(28deg);transform-origin:50% 100%;opacity:0;animation:pnmove 3.6s linear .6s forwards}
.pn-line.l1 .pn-hand{animation:pnmove2 4.2s linear 4.4s forwards}
.pn-pencil{display:block;width:100%;height:auto;overflow:visible;animation:pnbob .28s ease-in-out 30 alternate}
.pn-line.l1 .pn-pencil{animation:pnbob .28s ease-in-out 31 alternate,pnfall 1.3s cubic-bezier(.55,0,.85,.35) 9s forwards}
.pn-line.l1 .pn-tip{transform-box:fill-box;transform-origin:50% 50%;animation:pnsnap .7s ease-out 8.75s forwards}
.pn-line.l1 .pn-hand::after{content:"";position:absolute;left:30%;bottom:-.1em;width:.5em;height:.5em;border-radius:50%;border:2px solid var(--peach);opacity:0;animation:pnpop .5s ease-out 8.75s forwards}
.pn-cap{fill:var(--accent-l)}.pn-body{fill:var(--peach)}.pn-wood{fill:#F3E2D2}.pn-tip{fill:#2A2A55}
/* Journal hero: faint ruled paper, a margin line and doodles that sketch themselves in */
.pn-paper{position:absolute;inset:0;background:linear-gradient(90deg,transparent calc(max(var(--gutter),(100% - 1240px)/2 + var(--gutter)) - 26px),rgb(247 206 181/.14) 0 calc(max(var(--gutter),(100% - 1240px)/2 + var(--gutter)) - 25px),transparent 0),repeating-linear-gradient(180deg,transparent 0 47px,rgb(169 169 242/.07) 47px 48px);-webkit-mask:linear-gradient(180deg,transparent,#000 22%,#000 80%,transparent);mask:linear-gradient(180deg,transparent,#000 22%,#000 80%,transparent)}
.pn-paper::after{content:"";position:absolute;width:46vw;height:46vw;max-width:640px;max-height:640px;right:6%;top:4%;border-radius:50%;background:radial-gradient(closest-side,rgb(109 93 245/.22),transparent);animation:pnglow 14s ease-in-out infinite alternate}
.pn-doodles{position:absolute;inset:0;pointer-events:none}
.dd{position:absolute;left:var(--x);top:var(--y);width:var(--w);height:auto;overflow:visible;fill:none;stroke:rgb(201 194 255/.4);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;animation:pnfloat 7s ease-in-out calc(var(--d) + 2s) infinite alternate}
.dd:nth-child(even){stroke:rgb(247 206 181/.36)}
.dd path{stroke-dasharray:1;stroke-dashoffset:1;animation:pndraw 1.6s ease-out var(--d) forwards}
@keyframes pndraw{to{stroke-dashoffset:0}}
@keyframes pnfloat{to{transform:translateY(-8px) rotate(-4deg)}}
@keyframes pnglow{to{transform:translate(-8%,10%) scale(1.15)}}
@media (max-width:880px){.dd0,.dd1,.dd4,.dd5{display:none}.dd2{--x:62%;--y:3%}.dd6{--x:40%}}
@media (prefers-reduced-motion:reduce){.dd,.pn-paper::after{animation:none}.dd path{animation:none;stroke-dashoffset:0}}
@keyframes pnwrite{to{clip-path:inset(-.3em -.3em -.35em -.3em)}}
@keyframes pnmove{0%{left:0;opacity:1}99.9%{left:100%;opacity:1}100%{left:100%;opacity:0}}
@keyframes pnmove2{0%{left:0;opacity:1}100%{left:100%;opacity:1}}
@keyframes pnsnap{0%{transform:none;opacity:1}100%{transform:translate(-26px,-30px) rotate(-200deg);opacity:0}}
@keyframes pnpop{0%{opacity:.9;transform:scale(.3)}100%{opacity:0;transform:scale(2.2)}}
@keyframes pnfall{0%{transform:none;opacity:1}18%{transform:rotate(-14deg) translateY(-8px);opacity:1}100%{transform:translate(40px,220px) rotate(150deg);opacity:0}}
@keyframes pnbob{to{translate:0 -3px}}
@media (max-width:640px){.pn-line{white-space:normal;width:auto}.pn-line.l1{margin-left:0}.pn-hand{display:none}.pn-text{animation:none;clip-path:none}}
@media (prefers-reduced-motion:reduce){.pn-text{animation:none;clip-path:none}.pn-hand{display:none}}
/* Contact v5.1: night card like the CTA, light form card */
.contact{background:var(--bg);color:var(--ink);padding-block:clamp(3rem,7vw,6rem)}
.contact .contact-grid{position:relative;isolation:isolate;overflow:hidden;width:calc(100% - var(--gutter) - var(--gutter-r));max-width:1208px;margin-inline:auto;padding:clamp(1.5rem,5vw,4.5rem);border-radius:28px;background:var(--night);color:#F3EFE8;grid-template-columns:1fr 1.1fr;align-items:center}
.contact .contact-grid::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(rgb(169 169 242/.06) 1px,transparent 1px) 0 0/48px 48px,linear-gradient(90deg,rgb(169 169 242/.06) 1px,transparent 1px) 0 0/48px 48px;-webkit-mask-image:radial-gradient(circle at 75% 50%,#000,transparent 70%);mask-image:radial-gradient(circle at 75% 50%,#000,transparent 70%);animation:ctgrid 18s linear infinite}
.contact .contact-grid::after{content:"";position:absolute;z-index:-1;width:520px;height:520px;right:-140px;top:-160px;border-radius:50%;background:radial-gradient(circle,rgb(109 93 245/.45),transparent 65%);animation:ctorb 12s ease-in-out infinite alternate}
@keyframes ctgrid{to{background-position:0 48px,48px 0}}
@keyframes ctorb{to{transform:translate(-120px,160px) scale(1.15)}}
.contact .label{color:var(--lav)}
.contact-lead{color:#C9C4D8}
.ways{margin-top:2rem;display:grid;gap:.6rem}
.way{grid-template-columns:auto 1fr;column-gap:1rem;row-gap:.1rem;align-items:center;padding:1rem 1.1rem;border:1px solid rgb(255 255 255/.1)!important;border-radius:16px;background:rgb(255 255 255/.03);transition:transform .35s var(--ease),background .25s,border-color .25s}
a.way:hover{padding-left:1.1rem;transform:translateX(6px);background:rgb(255 255 255/.07);border-color:rgb(155 140 255/.5)!important}
.way-ico{grid-row:span 3;display:grid;place-items:center;width:48px;height:48px;border-radius:14px;background:var(--violet);color:#fff;transition:transform .5s cubic-bezier(.34,1.56,.64,1)}
a.way:hover .way-ico{transform:rotate(-10deg) scale(1.08)}
.way-ico svg{width:22px;height:22px}
.way-ico .ico{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.way .label{font-size:.66rem}
.way b{font-size:1.15rem}
.way small{color:#A9A5BC;display:flex;align-items:center;gap:.45rem}
.way-live{width:8px;height:8px;border-radius:50%;background:var(--accent-l);box-shadow:0 0 0 0 rgb(155 140 255/.6);animation:wlive 2s infinite}
@keyframes wlive{70%{box-shadow:0 0 0 8px rgb(155 140 255/0)}100%{box-shadow:0 0 0 0 rgb(155 140 255/0)}}
.af-wrap{position:relative;padding-top:2.2rem}
.af-art{position:absolute;top:0;right:1.5rem;z-index:2;display:flex;align-items:flex-end;gap:.5rem}
.af-bot{width:64px;height:auto;animation:float 4s ease-in-out infinite}
.af-chip{order:-1;margin-bottom:2.6rem;padding:.4rem .8rem;border-radius:999px 999px 4px 999px;background:var(--violet);color:#fff;font-size:.8rem;white-space:nowrap;box-shadow:0 14px 30px -14px rgb(0 0 0/.6)}
.audit-form{--dark-ink:#0C0C38;--dark-muted:#6A6680;--dark:#F3EFE8;--panel:#F7F4EE;--panel-line:#DDD8EC;--field:#fff;--field-focus:#fff;--primary:var(--violet);background:var(--panel);color:var(--night);border:0;border-radius:22px;box-shadow:0 40px 90px -30px #000;gap:1.4rem}
.audit-form .label{color:var(--violet)}
.af-head{display:flex;align-items:flex-start;gap:.9rem;padding-bottom:1.1rem;border-bottom:1px dashed #C9C6EE}
.af-ico{flex:none;display:grid;place-items:center;width:48px;height:48px;border-radius:14px;background:var(--violet);color:#fff;transform:rotate(-6deg);box-shadow:0 12px 24px -12px rgb(109 93 245/.8)}
.af-ico .ico{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.af-title{flex:1;min-width:0}
.af-k{margin:0;font-family:var(--font-display);font-weight:500;font-size:clamp(1.35rem,2.2vw,1.7rem);line-height:1.15;letter-spacing:-.03em;color:var(--night)}
.af-k em{font-style:normal;color:var(--violet);background:linear-gradient(transparent 62%,rgb(247 206 181/.8) 62%,rgb(247 206 181/.8) 92%,transparent 92%)}
.af-sub{margin:.3rem 0 0;font-size:.88rem;color:#6A6680}
.af-time{flex:none;display:inline-flex;align-items:center;gap:.3rem;padding:.3rem .6rem;border-radius:999px;background:#ECEAF7;font-size:.75rem;color:var(--night);white-space:nowrap}
.af-time .ico{width:15px;height:15px;fill:none;stroke:var(--violet);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.audit-form .checks label{border-radius:999px;transition:border-color .2s,background .25s,color .25s,transform .35s cubic-bezier(.34,1.56,.64,1)}
.audit-form .checks label:hover{border-color:var(--violet)}
.audit-form .checks label:has(input:checked){background:var(--violet);border-color:var(--violet);color:#fff;transform:scale(1.02)}
.audit-form .checks input{border-color:#B7B2CC}
.audit-form .checks input:checked{background:#fff;border-color:#fff}
.audit-form .checks input::after{border-color:var(--violet)}
.audit-form .fields input,.audit-form .fields textarea,.audit-form .fields select{border-radius:12px}
.audit-form .fields input:focus,.audit-form .fields textarea:focus,.audit-form .fields select:focus{border-color:var(--violet);box-shadow:0 0 0 4px rgb(109 93 245/.15)}
.audit-form .sr-bg{stroke:#E4E1F2}
.js .af-wrap.reveal{opacity:1;transform:none}
.js .af-wrap .audit-form{opacity:0;transform:translateY(50px) rotate(-2deg)}
.js .af-wrap.in .audit-form{opacity:1;transform:none;transition:opacity .8s var(--ease),transform 1s cubic-bezier(.34,1.4,.64,1)}
.js .af-wrap .af-art{opacity:0;scale:.6}
.js .af-wrap.in .af-art{opacity:1;scale:1;transition:opacity .5s .9s,scale .6s cubic-bezier(.34,1.56,.64,1) .9s}
@media (max-width:880px){.contact .contact-grid{grid-template-columns:1fr}.af-art{right:.5rem}}
@media (max-width:480px){.af-chip{font-size:.72rem}.af-time{display:none}}
@media (prefers-reduced-motion:reduce){.contact .contact-grid::before,.contact .contact-grid::after,.af-bot,.way-live{animation:none}}

.mm-side a:focus-visible{outline-color:#F3EFE8}
/* The bot bubble lives in the footer markup but must use the page colours, not the footer's. */
.site-footer .vbot-bubble{--ink:#15161A;--line:#DED9D0;--muted:#6A6660;--primary:#0C0C38;--primary-ink:#FFFFFF;--tint:#E4E4F0}
:where([data-theme="dark"]) .site-footer .vbot-bubble{--ink:#F1EDE6;--line:#2C2C31;--muted:#A09A92;--primary:#B9B9F0;--primary-ink:#0C0C38;--tint:#1C1C34}

/* Home hero pills: easier to read, a touch of colour */
@media (min-width:881px) and (max-width:1279px){.hf-badge:nth-child(3){--x:79%!important;--y:6%!important}}
@media (max-width:480px){.af-head{padding-right:2.6rem}}

/* ---------- v5.2 Service and industry sections ---------- */
/* Capabilities bento */
.cxs{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.cxs-6{grid-template-columns:repeat(4,1fr)}
.cx{position:relative;padding:1.5rem 1.5rem 1.6rem;border:1px solid var(--line);border-radius:16px;background:var(--surface);overflow:hidden;isolation:isolate;transition:transform .5s var(--ease),border-color .4s,box-shadow .4s}
.cx::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:linear-gradient(90deg,var(--violet),var(--accent-l),var(--peach));transform:scaleX(0);transform-origin:left;transition:transform .6s var(--ease)}
.cx:hover{transform:translateY(-6px);border-color:rgb(109 93 245/.45);box-shadow:0 24px 40px -28px rgb(12 12 56/.45)}
.cx:hover::after{transform:scaleX(1)}
.cx-wide{grid-column:span 2;background:var(--night);border-color:var(--night);color:#F3EFE8}
.cx-wide::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(420px 220px at 100% 0,rgb(155 140 255/.28),transparent 70%),linear-gradient(rgb(255 255 255/.04) 1px,transparent 1px) 0 0/100% 24px}
.cx-ico{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;background:var(--violet);color:#fff;margin-bottom:1.6rem;transition:transform .5s cubic-bezier(.34,1.56,.64,1)}
.cx:hover .cx-ico{transform:rotate(-10deg) scale(1.1)}
.cx-wide .cx-ico{background:var(--accent-l);color:var(--night)}
.cx-n{position:absolute;top:1.1rem;right:1.3rem;font:500 2.6rem/1 var(--font-display);letter-spacing:-.04em;color:transparent;-webkit-text-stroke:1px rgb(109 93 245/.45)}
.cx-wide .cx-n{-webkit-text-stroke-color:rgb(169 169 242/.5);font-size:3.4rem}
.cx h3{font-size:1.2rem;line-height:1.25;max-width:24ch}
.cx-wide h3{font-size:clamp(1.35rem,2vw,1.65rem);max-width:22ch}
.cx p{margin-top:.6rem;color:var(--muted);font-size:.95rem;line-height:1.55}
.cx-wide p{color:#C9C4D8;max-width:52ch}
.js .cxs .cx{opacity:0;transform:translateY(36px)}
.js .reveal.in .cxs .cx{opacity:1;transform:none;transition:opacity .7s var(--ease),transform .7s var(--ease),border-color .4s,box-shadow .4s;transition-delay:calc(var(--i) * .08s)}
.js .reveal.in .cxs .cx:hover{transform:translateY(-6px);transition-delay:0s}

/* How it works timeline */
.sx-sec{background:var(--night);color:#F3EFE8;position:relative;overflow:hidden;isolation:isolate}
.sx-sec::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(600px 300px at 85% 10%,rgb(109 93 245/.3),transparent 70%),linear-gradient(rgb(255 255 255/.035) 1px,transparent 1px) 0 0/100% 28px}
.sx-sec .label{color:var(--lav)}
.sx-sec .sec-head p{color:#C9C4D8}
.sxs{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;position:relative}
.sxs::before{content:"";position:absolute;left:22px;right:22px;top:22px;height:2px;background:rgb(255 255 255/.12)}
.sxs::after{content:"";position:absolute;left:22px;right:22px;top:22px;height:2px;background:linear-gradient(90deg,var(--accent-l),var(--peach));transform:scaleX(0);transform-origin:left;transition:transform 1.4s linear .3s}
.reveal.in .sxs::after{transform:scaleX(1)}
.sx{position:relative;z-index:1;padding-top:4.2rem}
.sx-dot{position:absolute;top:0;left:0;display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:var(--night);border:2px solid var(--accent-l);z-index:1;transition:transform .5s cubic-bezier(.34,1.56,.64,1),background .4s}
.sx-dot b{font:500 1.05rem/1 var(--font-display);color:#fff}
.sx-dot::after{content:"";position:absolute;inset:-8px;border-radius:50%;border:1px solid rgb(155 140 255/.4);animation:sxpulse 2.6s ease-out infinite;animation-delay:calc(var(--i) * .6s)}
.sx:hover .sx-dot{transform:scale(1.12);background:var(--accent-l)}
.sx:hover .sx-dot b{color:var(--night)}
.sx-when{display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .65rem;border-radius:999px;border:1px solid rgb(169 169 242/.35);font-family:var(--font-mono);font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;color:var(--lav)}
.sx-when .ico{width:13px;height:13px}
.sx-none{visibility:hidden}
.sx h3{font-size:1.3rem;margin-top:.9rem;color:#fff}
.sx p{margin-top:.55rem;color:#C9C4D8;font-size:.95rem;line-height:1.55}
@keyframes sxpulse{0%{transform:scale(.8);opacity:1}80%,100%{transform:scale(1.5);opacity:0}}
/* The dot pops in as the line reaches it (no fade, so the line never shows through it); the text then rises. */
.js .sxs .sx>:not(.sx-dot){opacity:0;transform:translateY(24px)}
.js .reveal.in .sxs .sx>:not(.sx-dot){opacity:1;transform:none;transition:opacity .7s var(--ease),transform .7s var(--ease);transition-delay:calc(.4s + var(--i) * .35s)}
.js .sxs .sx-dot{transform:scale(0)}
.js .reveal.in .sxs .sx-dot{transform:none;transition:transform .5s cubic-bezier(.34,1.56,.64,1) calc(.3s + var(--i) * .35s),background .4s}
.js .reveal.in .sxs .sx:hover .sx-dot{transform:scale(1.12);transition-delay:0s}

/* Integrations */
.ig-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.3fr);gap:clamp(2rem,5vw,4.5rem);align-items:start}
.ig-head{position:sticky;top:110px}
.ig-head>p:not(.label){color:var(--muted);margin-top:.9rem;max-width:42ch}
.ig-hub{position:relative;width:260px;height:260px;margin-top:2.2rem}
.ig-hub::before,.ig-hub::after{content:"";position:absolute;border-radius:50%;border:1px dashed rgb(109 93 245/.35)}
.ig-hub::before{inset:0}
.ig-hub::after{inset:60px;border-style:solid;border-color:var(--line)}
.ig-core{position:absolute;inset:78px;display:grid;place-items:center;border-radius:50%;background:var(--night);box-shadow:0 0 0 10px rgb(109 93 245/.12)}
.ig-core .bot{width:62px}
.ig-orbit{position:absolute;inset:0;animation:igspin 40s linear infinite}
.ig-orbit span{position:absolute;left:50%;top:50%;width:44px;height:44px;margin:-22px;display:grid;place-items:center;border-radius:50%;background:var(--surface);border:1px solid var(--line);box-shadow:0 10px 20px -12px rgb(12 12 56/.35);transform:rotate(var(--a)) translateY(-130px) rotate(calc(var(--a) * -1))}
.ig-orbit span .bi{width:20px;height:20px;fill:var(--ink);animation:igspin 40s linear infinite reverse}
@keyframes igspin{to{rotate:360deg}}
.igs{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.ig{display:flex;flex-direction:column;padding:1.3rem 1.4rem;border:1px solid var(--line);border-radius:16px;background:var(--surface);transition:transform .45s var(--ease),border-color .4s}
.ig:hover{transform:translateY(-4px);border-color:rgb(109 93 245/.45)}
.ig-k{display:flex;align-items:center;gap:.65rem;font-family:var(--font-mono);font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--violet)}
.ig-ico{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:var(--tint);color:var(--violet)}
.ig-ico .ico{width:18px;height:18px}
.ig-v{margin-top:.8rem;font-size:.95rem;line-height:1.55}
.ig-logos{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:auto;padding-top:1rem}
.ig-logos span{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;border:1px solid var(--line);background:var(--bg)}
.ig-logos .bi{width:16px;height:16px;fill:var(--muted);transition:fill .3s}
.ig:hover .ig-logos .bi{fill:var(--ink)}
.js .igs .ig{opacity:0;transform:translateY(30px)}
.js .reveal.in .igs .ig{opacity:1;transform:none;transition:opacity .7s var(--ease),transform .7s var(--ease),border-color .4s;transition-delay:calc(var(--i) * .1s)}
.js .reveal.in .igs .ig:hover{transform:translateY(-4px);transition-delay:0s}

/* What's included */
.inc-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);gap:1.5rem;align-items:start}
.inc-sheet{border:1px solid var(--line);border-radius:18px;background:var(--surface);padding:.5rem 1.6rem 1.2rem;box-shadow:0 30px 50px -40px rgb(12 12 56/.45)}
.inc-top{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 0;border-bottom:2px dashed var(--line);font-family:var(--font-mono);font-size:.74rem;letter-spacing:.1em;text-transform:uppercase}
.inc-top span{display:flex;align-items:center;gap:.5rem;color:var(--violet)}
.inc-top .ico{width:18px;height:18px}
.inc-top small{color:var(--muted);font-size:inherit;letter-spacing:.06em}
.inc-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;column-gap:1.6rem}
.inc-list li{display:flex;gap:.7rem;align-items:flex-start;padding:.85rem 0;border-bottom:1px solid var(--line);font-size:.95rem;line-height:1.45}
.inc-list li.inc-grp{grid-column:1/-1;display:block;padding:1.2rem 0 .3rem;border:0;font:500 1.1rem/1.3 var(--font-display);color:var(--ink)}
.inc-ok{flex:none;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--violet);color:#fff;margin-top:.05rem}
.inc-ok .ico{width:13px;height:13px;stroke-width:3}
.inc-side{position:sticky;top:110px}
.inc-price{position:relative;padding:1.8rem 1.7rem;border-radius:18px;background:var(--night);color:#C9C4D8;overflow:hidden;isolation:isolate;font-size:.95rem}
.inc-price::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(360px 220px at 100% 0,rgb(155 140 255/.3),transparent 70%)}
.inc-price .label{color:var(--lav)}
.inc-price p+p{margin-top:.8rem}
.inc-price strong{color:#fff}
.inc-from{display:flex;flex-direction:column;margin:.8rem 0 1.2rem!important;padding-bottom:1.1rem;border-bottom:1px dashed rgb(255 255 255/.18)}
.inc-from small{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--lav)}
.inc-from b{font:500 clamp(2.2rem,4vw,3rem)/1.05 var(--font-display);letter-spacing:-.03em;color:#fff;margin-top:.3rem}
.inc-bot{position:absolute;right:1.1rem;top:1.1rem;width:58px;transform:rotate(8deg)}
.inc-btns{margin-top:1rem}
.js .inc-list li:not(.inc-grp){opacity:0;transform:translateX(-14px)}
.js .reveal.in .inc-list li:not(.inc-grp){opacity:1;transform:none;transition:opacity .5s var(--ease),transform .5s var(--ease);transition-delay:calc(.2s + var(--i) * .06s)}

/* Link cards (industries / services) */
.lks{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}
.lk{position:relative;display:flex;flex-direction:column;padding:1.4rem 1.4rem 1.5rem;border:1px solid var(--line);border-radius:16px;background:var(--surface);overflow:hidden;isolation:isolate;transition:color .4s,border-color .4s,transform .5s var(--ease)}
.lk::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--night);transform:translateY(101%);transition:transform .55s var(--ease)}
.lk:hover,.lk:focus-within{color:#F3EFE8;border-color:var(--night);transform:translateY(-4px)}
.lk:hover::before,.lk:focus-within::before{transform:none}
.lk-ico{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;background:var(--tint);color:var(--violet);transition:background .4s,color .4s}
.lk:hover .lk-ico,.lk:focus-within .lk-ico{background:var(--accent-l);color:var(--night)}
.lk-go{position:absolute;top:1.4rem;right:1.4rem;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;border:1px solid var(--line);color:var(--ink);transition:transform .5s cubic-bezier(.34,1.56,.64,1),background .4s,border-color .4s,color .4s}
.lk-go .ico{width:16px;height:16px}
.lk:hover .lk-go,.lk:focus-within .lk-go{transform:rotate(-45deg);background:var(--peach);border-color:var(--peach);color:var(--night)}
.lk h3{font-size:1.25rem;margin-top:1.4rem}
.lk h3 a{color:inherit;text-decoration:none}
.lk h3 a::after{content:"";position:absolute;inset:0}
.lk h3 a:focus-visible{outline:0}
.lk:has(a:focus-visible){outline:2px solid var(--violet);outline-offset:3px}
.lk>p{margin-top:.5rem;color:var(--muted);font-size:.93rem;line-height:1.55;transition:color .4s}
.lk:hover>p,.lk:focus-within>p{color:#C9C4D8}
.lk .lk-price{display:inline-flex;align-items:center;gap:.4rem;align-self:flex-start;margin-top:auto;padding:.35rem .7rem;border-radius:999px;background:var(--tint);color:var(--ink);font-family:var(--font-mono);font-size:.7rem;letter-spacing:.04em;transition:background .4s,color .4s}
.lk p.lk-price{margin-top:1.1rem}
.lk-price .ico{width:13px;height:13px;color:var(--violet)}
.lk:hover .lk-price,.lk:focus-within .lk-price{background:rgb(255 255 255/.1);color:#fff}
.js .lks .lk{opacity:0;transform:translateY(30px)}
.js .reveal.in .lks .lk{opacity:1;transform:none;transition:opacity .7s var(--ease),transform .7s var(--ease),color .4s,border-color .4s;transition-delay:calc(var(--i) * .1s)}
.js .reveal.in .lks .lk:hover{transform:translateY(-4px);transition-delay:0s}

/* Industry problems */
.pns{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;counter-reset:pn}
.pn{position:relative;padding:1.5rem 1.5rem 1.7rem;border:1px solid var(--line);border-radius:16px;background:var(--surface);overflow:hidden;transition:transform .5s var(--ease),border-color .4s}
.pn::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:linear-gradient(90deg,var(--violet),var(--accent-l));transform:scaleX(0);transform-origin:left;transition:transform .6s var(--ease)}
.pn:hover{transform:translateY(-6px);border-color:rgb(109 93 245/.45);box-shadow:0 24px 40px -28px rgb(12 12 56/.45)}
.pn:hover::before{transform:scaleX(1)}
.pn-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.5rem}
.pn-ico{position:relative;display:grid;place-items:center;width:46px;height:46px;border-radius:14px;background:var(--tint);color:var(--violet);transition:transform .5s cubic-bezier(.34,1.56,.64,1),background .4s,color .4s}
.pn:hover .pn-ico{transform:rotate(-10deg) scale(1.1);background:var(--violet);color:#fff}
.pn-ico::after{content:"";position:absolute;inset:-6px;border-radius:18px;border:1px solid rgb(109 93 245/.45);opacity:0;animation:pnring 2.8s ease-out infinite;animation-delay:calc(var(--i) * .7s)}
@keyframes pnring{0%{transform:scale(.85);opacity:.9}80%,100%{transform:scale(1.35);opacity:0}}
.pn-n{font:500 2.8rem/1 var(--font-display);letter-spacing:-.04em;color:transparent;-webkit-text-stroke:1px rgb(109 93 245/.45)}
.pn h3{font-size:1.25rem;line-height:1.25}
.pn p{margin-top:.6rem;color:var(--muted);font-size:.95rem;line-height:1.55}
.js .pns .pn{opacity:0;transform:translateY(36px) rotate(1.5deg)}
.js .reveal.in .pns .pn{opacity:1;transform:none;transition:opacity .7s var(--ease),transform .8s cubic-bezier(.34,1.4,.64,1),border-color .4s;transition-delay:calc(var(--i) * .14s)}
.js .reveal.in .pns .pn:hover{transform:translateY(-6px);transition-delay:0s}

/* Compliance */
.cr-sec{background:var(--night);color:#F3EFE8;position:relative;overflow:hidden;isolation:isolate}
.cr-sec::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(520px 320px at 8% 20%,rgb(109 93 245/.3),transparent 70%),linear-gradient(90deg,rgb(255 255 255/.03) 1px,transparent 1px) 0 0/28px 100%}
.cr-grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.4fr);gap:clamp(2rem,5vw,4.5rem);align-items:start}
.cr-head{position:sticky;top:110px}
.cr-head .label{color:var(--lav)}
.cr-head h2{margin-top:.4rem}
.cr-head>p:not(.label){margin-top:1rem;color:#C9C4D8}
.cr-shield{position:relative;width:96px;height:96px;margin-bottom:1.8rem;display:grid;place-items:center}
.cr-shield span{display:grid;place-items:center;width:64px;height:64px;border-radius:20px;background:var(--accent-l);color:var(--night);transform:rotate(-6deg)}
.cr-shield span .ico{width:32px;height:32px}
.cr-shield i{position:absolute;inset:0;border-radius:50%;border:1px dashed rgb(169 169 242/.5);animation:igspin 18s linear infinite}
.cr-shield i+i{inset:-14px;border-style:solid;border-color:rgb(169 169 242/.18);animation:none}
.crs{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.cr{position:relative;padding:1.3rem 1.4rem 1.4rem;border:1px solid rgb(255 255 255/.12);border-radius:14px;background:rgb(255 255 255/.03);transition:transform .5s var(--ease),border-color .4s,background .4s}
.cr:hover{transform:translateY(-4px);border-color:rgb(169 169 242/.55);background:rgb(255 255 255/.06)}
.cr-ico{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:rgb(155 140 255/.18);color:var(--accent-l);margin-bottom:1rem}
.cr-ico .ico{width:16px;height:16px;stroke-width:2.6}
.cr h3{font-size:1.08rem;line-height:1.3;color:#fff}
.cr p{margin-top:.45rem;color:#C9C4D8;font-size:.93rem;line-height:1.55}
.cr h3+p{margin-top:.45rem}
.cr>p:first-of-type:not(h3+p){margin-top:0}
.cr strong{color:#fff;font-weight:500}
.cr-note{display:flex;gap:.7rem;align-items:flex-start;margin-top:1.2rem;padding:1rem 1.2rem;border-radius:12px;border:1px dashed rgb(247 206 181/.45);color:#E8DCCF;font-size:.88rem;line-height:1.5}
.cr-note .ico{flex:none;width:18px;height:18px;color:var(--peach);margin-top:.1rem}
.js .crs .cr{opacity:0;transform:translateY(30px)}
.js .reveal.in .crs .cr{opacity:1;transform:none;transition:opacity .7s var(--ease),transform .7s var(--ease),border-color .4s,background .4s;transition-delay:calc(var(--i) * .09s)}
.js .reveal.in .crs .cr:hover{transform:translateY(-4px);transition-delay:0s}

@media (max-width:1100px){
	.cxs-6,.lks{grid-template-columns:1fr 1fr}
	.cxs:not(.cxs-6){grid-template-columns:1fr 1fr}
	.sxs{grid-template-columns:1fr 1fr;row-gap:2.5rem}
	.sxs::before,.sxs::after{display:none}
	.ig-grid,.cr-grid{grid-template-columns:1fr}
	.ig-head,.cr-head{position:static}
	.ig-hub{display:none}
	.inc-grid{grid-template-columns:1fr}
	.inc-side{position:static}
	.pns{grid-template-columns:1fr}
}
@media (max-width:640px){
	.cxs,.cxs-6,.lks,.igs,.crs,.inc-list{grid-template-columns:1fr}
	.cx-wide{grid-column:auto}
	.sxs{grid-template-columns:1fr;row-gap:0}
	.sx{padding:0 0 2rem 4.2rem}
	.sx::before{content:"";position:absolute;left:22px;top:46px;bottom:0;width:2px;background:rgb(255 255 255/.14)}
	.sx:last-child::before{display:none}
	.sx-when{margin-top:.6rem}
	.sx-none{display:none}
	.inc-sheet{padding:.4rem 1.1rem 1rem}
	.inc-top small{display:none}
	.inc-bot{width:46px}
}
@media (prefers-reduced-motion:reduce){.sx-dot::after,.ig-orbit,.ig-orbit span .bi,.pn-ico::after,.cr-shield i{animation:none!important}}

/* ---------- v5.3 Conversions ---------- */
.fields select{appearance:none;-webkit-appearance:none;cursor:pointer;padding-right:2.6rem;background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);background-position:calc(100% - 1.2rem) 55%,calc(100% - .9rem) 55%;background-size:5px 5px;background-repeat:no-repeat}
.plan-cta{display:flex;align-items:center;gap:1.1rem;flex-wrap:wrap;margin-top:.3rem}
.plan-cta .btn{min-height:44px}
.plan-more{font-weight:500;font-size:.93rem;color:var(--violet);text-decoration:none}
.plan-more::after{content:" \2192"}
.plan-more:hover{text-decoration:underline;text-underline-offset:3px}
.plan.featured .btn{background:#F3EFE8;color:var(--night);border-color:#F3EFE8}
.plan.featured .plan-more{color:var(--lav)}
.consent{position:fixed;left:18px;bottom:18px;z-index:8;width:min(400px,calc(100vw - 36px));padding:1rem 1.1rem;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--ink);box-shadow:0 24px 50px -20px rgb(12 12 56/.4);font-size:.9rem;line-height:1.5;animation:vpop .35s cubic-bezier(.34,1.56,.64,1)}
.consent[hidden]{display:none}
.consent p{margin:0}
.consent p a{color:inherit;text-underline-offset:2px}
.consent-btns{display:flex;gap:.5rem;margin-top:.8rem}
.consent .btn{min-height:44px;padding:0 1rem;font-size:.9rem}
@media (max-width:640px){.consent{left:12px;right:92px;bottom:12px;width:auto}}
.trust .wrap>.bo:first-child{margin-top:0;padding-top:0;border-top:0}
.trust-clients{border-top:0}
.trust-clients:has(+.trust){border-bottom:0;padding-bottom:0}
.trust-clients+.trust{border-top:0;padding-top:0}
.trust-clients+.trust .wrap>.bo:first-child{margin-top:clamp(2.5rem,5vw,4rem);padding-top:clamp(2rem,4vw,3rem);border-top:1px solid var(--line)}
.prose .checklist{padding-left:0}
.prose>.checklist,.prose>*+.checklist{margin-top:1.25em}

/* ---------- v5.4 Colour switch and mobile menu ---------- */
::view-transition-old(root),::view-transition-new(root){animation:none;mix-blend-mode:normal}
@media (min-width:881px){.primary-nav{flex:1;display:flex;justify-content:center}}
.theme-toggle{position:relative;flex:none;display:grid;place-items:center;width:42px;height:42px;padding:0;border:1px solid var(--line);border-radius:50%;background:transparent;color:var(--ink);cursor:pointer;overflow:hidden;transition:border-color .3s,background .3s}
.theme-toggle:hover{border-color:var(--violet);background:var(--tint)}
.theme-toggle:focus-visible,.mnav :focus-visible{outline:2px solid var(--accent-l);outline-offset:3px}
.theme-toggle .ico{position:absolute;width:19px;height:19px;transition:transform .55s cubic-bezier(.34,1.56,.64,1),opacity .3s}
:root[data-theme="dark"] .theme-toggle .ico:last-child,:root:not([data-theme="dark"]) .theme-toggle .ico:first-child{transform:rotate(90deg) scale(.4);opacity:0}

.mnav{display:none}
@media (max-width:880px){
	.theme-toggle{display:none}
	.mnav{display:block;position:fixed;inset:0;z-index:11;overflow-y:auto;overscroll-behavior:contain;background:var(--night);color:#F3EFE8;visibility:hidden;clip-path:circle(0px at var(--mx,calc(100% - 40px)) var(--my,34px));transition:clip-path .6s cubic-bezier(.65,0,.35,1),visibility 0s linear .6s}
	.mnav::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(520px 360px at 100% 0,rgb(109 93 245/.45),transparent 70%),radial-gradient(420px 320px at 0 100%,rgb(247 206 181/.12),transparent 70%),linear-gradient(rgb(255 255 255/.035) 1px,transparent 1px) 0 0/100% 28px}
	.mnav.is-open{visibility:visible;clip-path:circle(150% at var(--mx,calc(100% - 40px)) var(--my,34px));transition:clip-path .7s cubic-bezier(.65,0,.35,1)}
	.menu-lock{overflow:hidden}
	.site-header.nav-open{z-index:12;background:transparent;border-color:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;--ink:#F3EFE8;--primary:var(--lav);--line:rgb(255 255 255/.18)}
	.site-header.nav-open .wp-block-buttons{opacity:0;pointer-events:none}
	.site-header .wp-block-buttons{transition:opacity .3s}
	.nav-open .menu-toggle{border-color:rgb(255 255 255/.25)}

	.mnav::after{content:"";position:fixed;top:0;left:0;right:0;height:84px;z-index:1;pointer-events:none;background:linear-gradient(var(--night) 62%,rgb(12 12 56/0))}
	.mnav-in{min-height:100%;display:flex;flex-direction:column;padding:calc(68px + 2.4rem) var(--gutter-r) 1.6rem var(--gutter)}
	.mnav-k{margin:0 0 .7rem;font-family:var(--font-mono);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--lav)}
	.mnav ul{list-style:none;margin:0;padding:0}
	.mnav a{color:inherit;text-decoration:none}
	.mnav-svcs{display:grid;grid-template-columns:1fr 1fr;gap:.55rem;margin-bottom:1.6rem!important}
	.mnav-svcs a{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:.65rem;align-items:center;height:100%;padding:.75rem .8rem;border:1px solid rgb(255 255 255/.1);border-radius:14px;background:rgb(255 255 255/.04);transition:background .3s,border-color .3s,transform .3s}
	.mnav-svcs a:active{transform:scale(.97)}
	.mnav-svcs a:hover{background:rgb(255 255 255/.08);border-color:rgb(169 169 242/.5)}
	.mnav-ico{grid-row:span 2;display:grid;place-items:center;width:36px;height:36px;border-radius:11px;background:var(--accent-l);color:var(--night)}
	.mnav-ico .ico{width:18px;height:18px}
	.mnav-svcs b{font-weight:500;font-size:.92rem;line-height:1.2}
	.mnav-svcs small{font-family:var(--font-mono);font-size:.66rem;color:#A8A3BA;margin-top:.15rem}
	.mnav-inds{display:flex;flex-wrap:wrap;gap:.45rem;margin-bottom:1.4rem!important}
	.mnav-inds a{display:inline-flex;align-items:center;gap:.45rem;padding:.5rem .85rem .5rem .6rem;border-radius:999px;border:1px solid rgb(255 255 255/.14);font-size:.9rem;transition:background .3s,border-color .3s}
	.mnav-inds a:hover{background:rgb(255 255 255/.08);border-color:var(--lav)}
	.mnav-inds .ico{width:16px;height:16px;color:var(--peach)}
	.mnav-big{border-top:1px solid rgb(255 255 255/.12);margin-bottom:1.6rem!important}
	.mnav-big a{display:flex;align-items:center;gap:.9rem;padding:.85rem 0;border-bottom:1px solid rgb(255 255 255/.12);font:500 clamp(1.6rem,7vw,2.1rem)/1.1 var(--font-display);letter-spacing:-.02em}
	.mnav-n{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.08em;color:var(--lav);align-self:flex-start;margin-top:.5rem}
	.mnav-big .ico{margin-left:auto;width:22px;height:22px;color:var(--lav);transition:transform .4s cubic-bezier(.34,1.56,.64,1)}
	.mnav-big a:hover .ico,.mnav-big a:focus-visible .ico{transform:translateX(4px) rotate(-45deg)}
	.mnav-big li.current a{color:var(--lav)}
	.mnav-foot{margin-top:auto;display:grid;gap:.7rem}
	.mnav .mnav-cta{justify-content:center;min-height:52px;background:#F3EFE8;color:var(--night);border-color:#F3EFE8;font-size:1.02rem}
	.mnav-quick{display:grid;grid-template-columns:1fr 1fr;gap:.55rem}
	.mnav-quick a{display:flex;align-items:center;justify-content:center;gap:.5rem;min-height:48px;border-radius:var(--radius);border:1px solid rgb(255 255 255/.18);font-size:.95rem}
	.mnav-quick .bi{width:18px;height:18px;fill:currentColor}.mnav-quick .ico{width:18px;height:18px}
	.mnav-theme{position:relative;display:grid;grid-template-columns:1fr 1fr;padding:4px;border-radius:999px;background:rgb(255 255 255/.06);border:1px solid rgb(255 255 255/.12)}
	.mnav-theme::before{content:"";position:absolute;top:4px;bottom:4px;left:4px;width:calc(50% - 4px);border-radius:999px;background:var(--accent-l);transition:transform .45s cubic-bezier(.34,1.4,.64,1)}
	:root[data-theme="dark"] .mnav-theme::before{transform:translateX(100%)}
	.mnav-theme button{position:relative;display:flex;align-items:center;justify-content:center;gap:.45rem;min-height:40px;border:0;background:none;color:#C9C4D8;font:inherit;font-size:.9rem;cursor:pointer;transition:color .3s}
	.mnav-theme button[aria-pressed="true"]{color:var(--night);font-weight:500}
	.mnav-theme .ico{width:16px;height:16px}

	/* Content rises in, one item after another, once the panel has opened */
	.mnav-k,.mnav li,.mnav-foot{opacity:0;transform:translateY(18px);transition:opacity .3s,transform .3s}
	.mnav.is-open .mnav-k,.mnav.is-open li,.mnav.is-open .mnav-foot{opacity:1;transform:none;transition:opacity .55s var(--ease),transform .65s var(--ease);transition-delay:calc(.18s + var(--i,0) * .035s)}
}
@media (max-width:340px){.mnav-svcs{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.mnav,.mnav.is-open{clip-path:none!important;transition:visibility 0s!important}.mnav:not(.is-open){visibility:hidden}.mnav-k,.mnav li,.mnav-foot{opacity:1!important;transform:none!important}}

/* ---------- v5.5 Home hero: night sky over a line-drawn skyline ---------- */
.hero{min-height:min(calc(100vh - 68px),940px)}
.hero{--bg:#0A0A30;--surface:#15154A;--ink:#F3EFE8;--muted:#B9B4D6;--line:rgb(255 255 255/.13);--tint:#1F1F5A;--primary:#C9C2FF;--primary-ink:#0C0C38;color:var(--ink);background:#08082A;min-height:min(calc(100svh - 68px),940px);display:flex;flex-direction:column;justify-content:center;padding-block:clamp(2rem,5vh,4.5rem) clamp(3rem,8vh,6rem)}
.hero>.hero-grid{width:100%}
.hero .label{color:var(--primary)}
.hero .wp-block-button__link{background:#F3EFE8;color:#0C0C38;border-color:#F3EFE8;box-shadow:0 10px 30px -10px rgb(201 194 255/.55)}
.hero .is-style-outline .wp-block-button__link{background:rgb(255 255 255/.04);color:#F3EFE8;border-color:rgb(255 255 255/.25);box-shadow:none;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.hero .is-style-outline .wp-block-button__link:hover{border-color:#F3EFE8}
.hero h1{text-shadow:0 2px 40px rgb(8 8 42/.6)}
@media (min-width:881px){.hero h1{font-size:min(5.4vw,4.6rem,8.2vh)}.hero .lead{margin-top:clamp(1rem,2.6vh,1.5rem)}.hero .actions{margin-top:clamp(1.25rem,3.4vh,2.25rem)}.hero .facts{margin-top:clamp(1.5rem,4vh,3rem)}.hero .label{margin-bottom:clamp(.75rem,2vh,1.25rem)}}

.hx{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none}
.hx>*{position:absolute;inset:0}
.hx-sky{background:radial-gradient(900px 520px at 78% 18%,rgb(109 93 245/.32),transparent 70%),radial-gradient(700px 420px at 8% 0,rgb(169 169 242/.12),transparent 70%),linear-gradient(180deg,#06061F 0%,#0C0C38 55%,#1A1452 100%)}
.hx-aurora{-webkit-filter:saturate(1.2);filter:saturate(1.2);mix-blend-mode:screen;opacity:.75;transform:translate3d(calc(var(--px,0) * -14px),calc(var(--py,0) * -10px),0);transition:transform 1.2s cubic-bezier(.22,1,.36,1)}
.hx-aurora i{position:absolute;border-radius:50%;will-change:transform}
.hx-aurora i:nth-child(1){width:70vw;height:46vh;left:30%;top:-12%;background:radial-gradient(closest-side,rgb(123 108 246/.55),transparent);animation:hx-drift1 22s ease-in-out infinite alternate}
.hx-aurora i:nth-child(2){width:52vw;height:40vh;left:-10%;top:18%;background:radial-gradient(closest-side,rgb(77 160 255/.22),transparent);animation:hx-drift2 26s ease-in-out infinite alternate}
.hx-aurora i:nth-child(3){width:46vw;height:34vh;right:-8%;bottom:14%;background:radial-gradient(closest-side,rgb(247 206 181/.24),transparent);animation:hx-drift3 30s ease-in-out infinite alternate}
.hx-net{width:100%;height:100%;-webkit-mask-image:linear-gradient(90deg,rgb(0 0 0/.45),#000 60%);mask-image:linear-gradient(90deg,rgb(0 0 0/.45),#000 60%)}
.hx-horizon{top:auto;height:62%;background:radial-gradient(60% 70% at 62% 100%,rgb(247 206 181/.38),rgb(155 140 255/.22) 45%,transparent 75%);transform-origin:62% 100%}
.hx-horizon::after{content:"";position:absolute;left:0;right:0;bottom:22px;height:1px;background:linear-gradient(90deg,transparent 35%,rgb(247 206 181/.9) 62%,transparent 92%);box-shadow:0 0 18px 2px rgb(247 206 181/.45)}
.hx-city{top:auto;width:100%;height:clamp(150px,min(24vw,34vh),330px);transform:translate3d(calc(var(--px,0) * 8px),0,0);transition:transform 1.4s cubic-bezier(.22,1,.36,1)}
.hx-city path{fill:url(#hx-fill);stroke:url(#hx-edge);stroke-width:1.2;vector-effect:non-scaling-stroke;stroke-dasharray:1;stroke-dashoffset:0}
.hx-city{-webkit-mask-image:linear-gradient(90deg,rgb(0 0 0/.22),rgb(0 0 0/.22) 40%,#000 56%);mask-image:linear-gradient(90deg,rgb(0 0 0/.22),rgb(0 0 0/.22) 40%,#000 56%)}
.hero .facts .num,.hero .facts .cap{text-shadow:0 1px 12px #08082A,0 0 2px #08082A}
.hx-far path{fill:#0E0E3E;stroke:rgb(169 169 242/.28);stroke-width:1}
.hx-far{opacity:.75;transform:translateY(-34px)}
.hx-city .sp{stroke:#E6E1FF;stroke-width:1.5}
.hx-win rect{fill:#F7CEB5}
.hx-win{opacity:.85;animation:hx-twinkle 7s ease-in-out infinite;animation-delay:calc(var(--k) * -1.8s)}
.hx-win:nth-child(odd) rect{fill:#C9C2FF}

/* Hero chat: glass card that never grows past its window */
.hero .chat{background:rgb(21 21 74/.55);border-color:rgb(255 255 255/.14);border-radius:18px;-webkit-backdrop-filter:blur(18px) saturate(1.3);backdrop-filter:blur(18px) saturate(1.3);box-shadow:0 40px 80px -30px rgb(0 0 0/.7),inset 0 1px 0 rgb(255 255 255/.08)}
.hero .chat-head .dot{background:linear-gradient(135deg,#9B8CFF,#6D5DF5);color:#fff}
.hero .chat-head small::before{background:#3DDC97;box-shadow:0 0 0 3px rgb(61 220 151/.2)}
.hero .chat-body{height:clamp(220px,32vh,290px);min-height:0;justify-content:flex-end;overflow:hidden;font-size:.9rem;-webkit-mask-image:linear-gradient(transparent,#000 22%);mask-image:linear-gradient(transparent,#000 22%)}
.hero .msg{flex:none}
.hero .msg.user{background:#F3EFE8;color:#0C0C38}
.hero .msg.bot{background:rgb(255 255 255/.08);border:1px solid rgb(255 255 255/.08)}
.hero .chat-foot input{background:rgb(255 255 255/.05)}
.hero .chat-note{color:#9690B8}
.hero .hf-badge{background:rgb(21 21 74/.7);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}

/* Welcome: the sky opens from black, the horizon lights, the city draws itself in */
.js .hx-sky{animation:hx-dawn 1.6s ease-out both}
.js .hx-aurora{animation:hx-fadein 2.4s ease-out .3s both}
.js .hx-net{animation:hx-fadein 2s ease-out .5s both}
.js .hx-horizon{animation:hx-rise 2.2s cubic-bezier(.22,1,.36,1) .2s both}
.js .hx-horizon::after{animation:hx-line 1.4s cubic-bezier(.65,0,.35,1) .15s both}
.js .hx-city path{stroke-dashoffset:1;fill-opacity:0;animation:hx-draw 1.8s cubic-bezier(.65,0,.35,1) forwards,hx-fill 1s ease-out forwards;animation-delay:calc(.35s + var(--i) * .025s),calc(1.4s + var(--i) * .02s)}
.js .hx-city .sp{animation-duration:2.6s,1s}
.js .hx-win{opacity:0;animation:hx-fadein .8s ease-out 2.1s forwards,hx-twinkle 7s ease-in-out 2.9s infinite}

.hero.hx-off .hx *,.hero.hx-off .hx *::after{animation-play-state:paused}
/* Phones: draw the skyline already finished. Animating 130+ SVG paths on the main thread
   slowed first render on mobile; the sky, aurora and window twinkle still move. */
@media (max-width:880px){.js .hx-sky{animation:none}.js .hx-city path{stroke-dashoffset:0;fill-opacity:1;animation:none}.js .hx-win{opacity:.85;animation:hx-twinkle 7s ease-in-out infinite;animation-delay:calc(var(--k) * -1.8s)}}
@keyframes hx-dawn{from{filter:brightness(0)}}
@keyframes hx-fadein{from{opacity:0}}
@keyframes hx-rise{from{opacity:0;transform:scaleY(.2)}}
@keyframes hx-line{from{clip-path:inset(0 50%)}to{clip-path:inset(0 0)}}
@keyframes hx-draw{to{stroke-dashoffset:0}}
@keyframes hx-fill{to{fill-opacity:1}}
@keyframes hx-twinkle{0%,100%{opacity:.85}45%{opacity:.35}55%{opacity:1}}
@keyframes hx-drift1{to{transform:translate(-14vw,8vh) scale(1.15)}}
@keyframes hx-drift2{to{transform:translate(12vw,-6vh) scale(1.2)}}
@keyframes hx-drift3{to{transform:translate(-10vw,-8vh) scale(.9)}}

@media (max-width:880px){
	.hx-city{-webkit-mask-image:none;mask-image:none}
	.hero{min-height:0;padding-bottom:clamp(8rem,30vw,10rem)}
	.hero .chat-body{height:250px}
	.hx-net{-webkit-mask-image:linear-gradient(transparent,#000 30%,#000 70%,transparent);mask-image:linear-gradient(transparent,#000 30%,#000 70%,transparent)}
	.hx-city{height:170px}
}
@media (prefers-reduced-motion:reduce){
	.hx *,.hx-city path,.hx-win{animation:none!important}
	.js .hx-city path{stroke-dashoffset:0;fill-opacity:1}
	.js .hx-win{opacity:.85}
}
/* On phones the chat sits under the text, so it must not drift up over it while scrolling */
@media (max-width:880px){.js .hero .chat{animation:chatin 1.1s var(--ease) .4s forwards;animation-timeline:auto;animation-range:normal}}
/* Channels: one tidy row of pills above the chat card instead of scattered badges */
@media (min-width:881px){
	.hero .chat-col{display:flex;flex-direction:column}
	.hero .hf-badges{order:2;position:static;inset:auto;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:.4rem;margin:1rem 0 0}
	.hero .chat-note{order:3;margin-top:.6rem}
	.hero .hf-badge{position:static;transform:none;gap:.35rem;padding:.28rem .62rem .28rem .45rem;font-size:.74rem;box-shadow:none}
	.js .hero .hf-badge{animation:hfin .6s var(--ease) both;animation-delay:calc(var(--i) * .08s + 1s)}
	.hero .hf-paths,.hero .hf-dots{display:none}
}
@media (min-width:881px) and (max-width:1120px){.hero .hf-badges{gap:.3rem}.hero .hf-badge{gap:.3rem;padding:.24rem .5rem .24rem .38rem;font-size:.7rem}.hero .hf-badge svg{width:14px;height:14px}}
@media (min-width:881px) and (max-width:1060px){.hero .hf-badge{padding:.4rem}.hero .hf-badge b{display:none}.hero .hf-badges{gap:.5rem}.hero .hf-badge svg{width:16px;height:16px}}

/* ---------- v5.6 Header ---------- */
.site-header{background:rgb(247 244 238/.8);-webkit-backdrop-filter:blur(16px) saturate(1.4);backdrop-filter:blur(16px) saturate(1.4);border-bottom:0;transition:transform .35s ease,background .3s,box-shadow .3s}
:root[data-theme="dark"] .site-header:not(.nav-open){background:rgb(10 10 40/.74)}
.site-header::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;pointer-events:none;background:linear-gradient(90deg,var(--line) 0%,var(--line) 30%,rgb(155 140 255/.8) 45%,rgb(247 206 181/.8) 55%,var(--line) 70%,var(--line) 100%) 0 0/200% 100%;animation:hd-line 10s linear infinite}
.site-header.is-scrolled:not(.nav-open){box-shadow:0 12px 32px -20px rgb(8 8 42/.55)}
.site-header.nav-open::after{opacity:0}

/* Logo: the V redraws itself on hover */
.logo svg path{stroke-dasharray:44;stroke-dashoffset:0}
.logo:hover svg path{animation:hd-logo .9s var(--ease)}
.logo:hover svg path+path{animation-delay:.12s;animation-fill-mode:backwards}

/* The sliding pill only exists on desktop; on phones it would take a flex slot */
.nav-pill{display:none}
@media (min-width:881px){
	.nav .menu{gap:.1rem;padding:4px;border:1px solid var(--line);border-radius:999px;background:color-mix(in srgb,var(--surface) 55%,transparent)}
	.nav .menu>li>a{position:relative;z-index:1;display:inline-flex;align-items:center;padding:.42rem .95rem;border-radius:999px;transition:color .25s}
	.nav-pill{display:block;position:absolute;left:0;top:0;z-index:0;border-radius:999px;background:var(--tint);box-shadow:inset 0 0 0 1px rgb(109 93 245/.3);opacity:0;pointer-events:none;transition:transform .45s cubic-bezier(.34,1.25,.64,1),width .45s cubic-bezier(.34,1.25,.64,1),opacity .25s}
	.nav-pill.on{opacity:1}
	.has-mega>.mm-top::after{left:0;right:0}
}

/* Call to action: a light sweep every few seconds */
.site-header .wp-block-button__link{position:relative;overflow:hidden;box-shadow:0 8px 22px -10px rgb(109 93 245/.7)}
.site-header .wp-block-button__link::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(105deg,transparent 35%,rgb(255 255 255/.55) 50%,transparent 65%);transform:translateX(-120%);animation:hd-shine 6s ease-in-out 2.5s infinite}

/* Phones: a softer menu button and a CTA that never wraps */
.menu-toggle{border-radius:12px;background:color-mix(in srgb,var(--surface) 60%,transparent);transition:background .25s,border-color .25s}
.menu-toggle:hover{border-color:var(--violet)}
.nav-open .menu-toggle{background:rgb(255 255 255/.08);color:#F3EFE8}
.menu-toggle{flex:none}
@media (max-width:359px){.nav{gap:.45rem}.logo{gap:.4rem}.logo .word{font-size:1rem}.menu-toggle{width:40px;height:40px}.site-header .wp-block-button__link{padding:0 .6rem;font-size:.82rem}}
@media (max-width:420px){.site-header .wp-block-button__link{white-space:nowrap;padding:0 .75rem;font-size:.86rem;min-height:40px}.logo .word{font-size:1.08rem}.logo svg{width:24px;height:24px}.nav{gap:.6rem}}

/* Header CTA v5.7: violet pill with a calendar chip, same in both themes */
:root{--cal:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3.5' y='5' width='17' height='15' rx='3.5'/%3E%3Cpath d='M3.5 10h17M8 3v4M16 3v4M9.5 14.6l1.8 1.8 3.4-3.4'/%3E%3C/svg%3E")}
.site-header .nav .wp-block-button__link,.mnav .mnav-cta{gap:.55rem;border:0;border-radius:999px;padding:0 1.15rem 0 .4rem;min-height:44px;color:#fff;font-weight:500;background:linear-gradient(120deg,#8476FF,#6D5DF5 45%,#4F3FD9) 0 0/180% 100%;box-shadow:inset 0 1px 0 rgb(255 255 255/.28),inset 0 0 0 1px rgb(255 255 255/.12),0 10px 26px -10px rgb(109 93 245/.9);transition:background-position .5s var(--ease),transform .3s var(--ease),box-shadow .3s}
.site-header .nav .wp-block-button__link::before,.mnav .mnav-cta::before{content:"";flex:none;width:32px;height:32px;border-radius:50%;background:rgb(255 255 255/.17) var(--cal) center/17px no-repeat;transition:transform .5s cubic-bezier(.34,1.56,.64,1),background-color .3s}
.site-header .nav .wp-block-button__link:hover,.site-header .nav .wp-block-button__link:focus-visible,.mnav .mnav-cta:hover{color:#fff;background-position:100% 0;transform:translateY(-1px);box-shadow:inset 0 1px 0 rgb(255 255 255/.3),inset 0 0 0 1px rgb(255 255 255/.16),0 14px 30px -10px rgb(109 93 245/1)}
.site-header .nav .wp-block-button__link:hover::before,.mnav .mnav-cta:hover::before{transform:rotate(-12deg) scale(1.08);background-color:rgb(255 255 255/.26)}
.site-header .nav .wp-block-button__link:active{transform:translateY(0) scale(.98)}
.mnav .mnav-cta{min-height:54px;padding-right:1.3rem}
@media (max-width:420px){.site-header .nav .wp-block-button__link{padding:0 .85rem 0 .3rem;gap:.4rem;font-size:.86rem;min-height:40px}.site-header .nav .wp-block-button__link::before{width:28px;height:28px;background-size:15px}}
@media (max-width:379px){.site-header .nav .wp-block-button__link{padding:0 .8rem}.site-header .nav .wp-block-button__link::before{display:none}}
@keyframes hd-line{to{background-position:-200% 0}}
@keyframes hd-shine{0%,72%{transform:translateX(-120%)}100%{transform:translateX(120%)}}
@keyframes hd-logo{from{stroke-dashoffset:44}}
@media (prefers-reduced-motion:reduce){.site-header::after,.site-header .wp-block-button__link::after,.logo svg path{animation:none!important}.nav-pill{transition:none}}
