@font-face{font-family:Manrope;src:url(fonts/manrope-400.woff2) format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Manrope;src:url(fonts/manrope-500.woff2) format('woff2');font-weight:500;font-display:swap}
@font-face{font-family:Manrope;src:url(fonts/manrope-600.woff2) format('woff2');font-weight:600;font-display:swap}
@font-face{font-family:Manrope;src:url(fonts/manrope-700.woff2) format('woff2');font-weight:700;font-display:swap}
:root{color-scheme:dark;--hero-panel:#3a5bc7;--bg:#080c14;--surface:#101724;--text:#eef2ff;--secondary:#b2bed3;--muted:#93a2bc;--accent:#9db2fa;--blue:#3a5bc7;--line:#293448;--gutter:clamp(22px,5vw,80px);--ease:cubic-bezier(.16,1,.3,1)}
:root.light{color-scheme:light;--hero-panel:#3a5bc7;--bg:#f5f7fb;--surface:#eaf0f7;--text:#152033;--secondary:#43516a;--muted:#52627c;--accent:#3350b4;--line:#c7d0df}
*{box-sizing:border-box}html{scroll-padding-top:100px}body{margin:0;background:var(--bg);color:var(--text);font:18px/1.7 Manrope,Arial,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-underline-offset:5px}button{font:inherit;cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:5px}img,svg,canvas{display:block;max-width:100%}h1,h2,h3,p,figure{margin:0}h1,h2,h3{line-height:1.12;letter-spacing:-.045em;font-weight:600;text-wrap:balance}h2{font-size:clamp(32px,4vw,54px)}h3{font-size:25px}p{max-width:65ch}::selection{background:var(--blue);color:#eef2ff}.wrap{width:min(100%,1440px);padding-inline:var(--gutter);margin-inline:auto}.section{padding-block:clamp(64px,8vw,112px)}.accent{color:var(--accent)}.eyebrow{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}.skip{position:fixed;top:-100px;left:20px;z-index:30;background:var(--text);color:var(--bg);padding:10px 18px}.skip:focus{top:16px}.header{position:sticky;top:0;z-index:20;background:var(--bg);border-bottom:1px solid var(--line)}.header-inner{min-height:80px;display:flex;align-items:center;gap:26px;justify-content:space-between}.brand{display:inline-flex;align-items:center;gap:12px;text-decoration:none;font-size:21px;letter-spacing:-.7px;white-space:nowrap}.brand img{width:36px;height:36px}.brand strong{font-weight:700}.nav{display:flex;align-items:center;gap:32px;font-size:14px}.nav a{display:inline-flex;align-items:center;min-height:44px;text-decoration:none}.nav a:hover,.nav a[aria-current]{color:var(--accent)}.theme{border:1px solid var(--line);border-radius:2px;width:44px;height:44px;display:none;place-items:center;background:transparent;color:var(--text)}.js .theme{display:grid}.theme svg{width:20px;height:20px}.nav-tools{display:flex;align-items:center;gap:24px}.menu{display:none;background:none;border:0;color:var(--text);min-height:44px;padding:8px}.button{display:inline-flex;align-items:center;justify-content:center;gap:26px;min-height:52px;background:var(--blue);color:#eef2ff;padding:13px 23px;border-radius:2px;text-decoration:none;font-size:14px;font-weight:600}.button:hover{background:#304dac}.text-link{display:inline-flex;align-items:center;gap:22px;min-height:48px;font-size:14px;text-decoration:none;border-bottom:1px solid var(--line)}.text-link:hover{border-color:var(--accent);color:var(--accent)}.actions{display:flex;flex-wrap:wrap;align-items:center;gap:20px 30px;margin-top:30px}/* The hero and the service story have separate, flat surfaces. */
.hero{display:grid;grid-template-columns:1fr 1fr;background:#101724;color:#eef2ff}.hero-copy{background:var(--hero-panel);padding:clamp(45px,6vw,90px) var(--gutter);display:flex;flex-direction:column;justify-content:center}.hero h1{font-size:clamp(32px,3.65vw,58px);line-height:1.15;letter-spacing:-.05em;margin:24px 0}.hero h1 span{display:block;white-space:nowrap}.hero-copy>p:not(.eyebrow){font-size:17px;max-width:55ch;color:#eef2ff}.hero-proof{display:flex;flex-wrap:wrap;gap:4px 0;font-size:13px;line-height:1.6;color:#eef2ff;opacity:.72;margin-top:22px;max-width:60ch}.hero-proof span+span::before{content:"·";margin-inline:9px}.hero .eyebrow{color:#eef2ff}.hero .button{background:#eef2ff;color:#152033}.hero .button:hover{background:#dce6fa}.hero .text-link{border-color:#eef2ff}.hero .text-link:hover{color:#eef2ff}.hero-art{position:relative;min-height:580px;overflow:hidden}.hero-art svg,.hero-art canvas{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.hero-art canvas{display:none}.hero-art.has-canvas canvas{display:block}.hero-art.has-canvas svg{visibility:hidden}.mobile-mosaic{display:none}
.story{position:relative;margin-block:80px}.story-stage{position:relative;padding-block:35px}.story-grid{display:block;grid-template-columns:1fr 1fr;gap:60px;align-items:center}.story-panel{position:relative;padding-block:45px;border-bottom:1px solid var(--line)}.story-panel h2{font-size:clamp(36px,4.2vw,60px);margin:22px 0}.story-panel p:not(.eyebrow){font-size:18px;color:var(--secondary)}.story-panel .service-line{font-size:25px;color:var(--text);line-height:1.4;margin-bottom:18px}.story-art{display:none;position:relative;height:min(55vh,470px)}.story-art canvas,.story-art>.mosaic{position:absolute;inset:0;width:100%;height:100%}.story-art canvas{display:none}.static-form{height:320px;margin-top:30px}.static-form svg{width:100%;height:100%}.story-controls{display:none}
@media(min-width:1024px) and (min-height:700px) and (prefers-reduced-motion:no-preference){.story.is-enhanced{height:260vh}.story.is-enhanced .story-stage{position:sticky;top:80px;height:calc(100svh - 80px);display:flex;flex-direction:column;justify-content:center;padding-block:24px}.story.is-enhanced .story-grid{display:grid;flex:1;gap:40px;min-height:0}.story.is-enhanced .story-copy{display:grid;min-width:0}.story.is-enhanced .story-panel{grid-area:1/1;padding:0;border:0;visibility:hidden;pointer-events:none}.story.is-enhanced .story-panel.is-active{visibility:visible;pointer-events:auto}.story.is-enhanced .static-form{display:none}.story.is-enhanced .story-art{display:block}.story.is-enhanced .story-art canvas{display:block;opacity:0}.story.has-canvas .story-art canvas{opacity:1}.story.has-canvas .story-art>.mosaic{visibility:hidden}.story.is-enhanced .story-controls{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding-top:12px;margin-top:20px}.story-controls button{background:none;border:0;border-bottom:2px solid transparent;color:var(--muted);display:flex;align-items:center;gap:12px;min-height:44px;padding:8px 0;font-size:13px}.story-controls button[aria-current=true]{color:var(--text);border-bottom-color:var(--accent)}.story-controls button span{font-size:11px;font-variant-numeric:tabular-nums}}
.section-heading{display:grid;grid-template-columns:1fr 1.5fr;gap:40px;margin-bottom:50px}.section-heading h2{max-width:22ch}.principles{display:grid;grid-template-columns:1fr 1fr;gap:0 60px}.principle{border-top:1px solid var(--line);padding:28px 0 36px}.principle h3{font-size:26px;margin-bottom:15px}.principle p{font-size:17px;color:var(--secondary)}.delivery{background:var(--surface)}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:35px}.step{border-top:1px solid var(--line);padding-top:20px}.step .number{color:var(--accent);font-size:12px;display:block;margin-bottom:25px}.step h3{font-size:25px;margin-bottom:15px}.step p{font-size:16px;color:var(--secondary)}.questions{display:grid;grid-template-columns:1fr 1.5fr;gap:60px}.questions h2{max-width:13ch}.faq details{border-top:1px solid var(--line);padding:23px 0}.faq details:last-child{border-bottom:1px solid var(--line)}.faq summary{font-size:18px;font-weight:500;cursor:pointer;min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:25px;list-style:none}.faq summary::-webkit-details-marker{display:none}.faq summary::after{content:'+';font-size:24px;color:var(--accent)}.faq details[open] summary::after{content:'−'}.faq details p{font-size:16px;color:var(--secondary);margin-top:16px;max-width:58ch}.contact-band{border-block:1px solid var(--line);padding-block:65px;background:var(--surface)}.contact-inner{display:grid;grid-template-columns:1.3fr 1fr;gap:65px;align-items:center}.contact-inner h2{font-size:clamp(38px,4.5vw,64px);max-width:17ch}.contact-inner p{color:var(--secondary);font-size:18px}.footer{padding:32px 0}.footer-top,.footer-bottom{display:flex;justify-content:space-between;gap:26px;align-items:center}.footer nav{display:flex;gap:25px;font-size:13px}.footer nav a{min-height:44px;display:inline-flex;align-items:center;text-decoration:none}.footer-bottom{font-size:11px;color:var(--muted);padding-top:25px}.page-hero{padding-block:70px 55px}.breadcrumb{font-size:12px;color:var(--muted);display:flex;gap:15px;align-items:center;flex-wrap:wrap}.breadcrumb a{min-height:44px;display:inline-flex;align-items:center}.page-hero h1{font-size:clamp(44px,5.6vw,80px);max-width:18ch;margin-top:24px}.lede{font-size:22px;color:var(--secondary);margin-top:25px;max-width:56ch}.page-split{display:grid;grid-template-columns:1fr 1.5fr;gap:60px;border-top:1px solid var(--line);padding-block:50px}.page-split h2{font-size:36px}.page-split p{color:var(--secondary)}.ledger{padding:0;margin:0;list-style:none}.ledger li{padding:22px 0;border-bottom:1px solid var(--line)}.ledger li:first-child{padding-top:0}.ledger h3{font-size:23px;margin-bottom:12px}.ledger p{font-size:17px}.related{display:flex;gap:25px;flex-wrap:wrap;padding-bottom:65px}.email{font-size:22px;display:inline-flex;align-items:center;gap:18px;min-height:52px;word-break:break-word}.contact-address{margin-top:30px;color:var(--secondary);font-size:14px}.contact-page{padding-bottom:70px}.preview-shell{padding:25px;background:var(--surface);min-height:100vh}.preview-bar{max-width:420px;margin:0 auto 20px;display:flex;justify-content:space-between;gap:20px;font-size:12px}.phone{width:390px;max-width:100%;height:844px;max-height:calc(100dvh - 100px);display:block;margin:auto;border:1px solid var(--line);border-radius:2px;background:var(--bg)}
@media(max-width:1023px),(max-height:699px){.story-grid{display:block}.story-panel{padding-right:45%;min-height:350px}.static-form{position:absolute;right:0;top:30px;width:40%;height:280px}.story-panel h2{font-size:40px}}
@media(max-width:800px){.header-inner{min-height:74px;gap:15px}.nav{gap:22px}.nav-tools{gap:20px}.brand{font-size:19px}.brand img{width:32px;height:32px}.hero-copy{padding-block:40px}.hero h1{font-size:clamp(25px,3.7vw,32px)}.hero-art{min-height:550px}.steps{grid-template-columns:1fr 1fr;gap:38px}.section-heading{grid-template-columns:.7fr 1.3fr}.questions{gap:35px;grid-template-columns:.8fr 1.2fr}.page-split{gap:35px}.contact-inner{gap:35px}.footer-top{align-items:flex-start}}
@media(max-width:600px){:root{--gutter:20px}body{font-size:17px}.header-inner{min-height:72px;flex-wrap:wrap;padding-block:10px;gap:8px}.brand{font-size:17px;gap:7px}.brand img{width:28px;height:28px}.nav-tools{gap:4px}.theme{width:44px;height:44px}.js .menu{display:block;font-size:13px;padding:6px}.nav{width:100%;gap:25px;order:3}.js .nav{display:none}.js .nav.is-open{display:flex;flex-direction:column;align-items:stretch;gap:0}.js .nav a{min-height:50px;font-size:18px}.hero{display:block}.hero-copy{padding-top:28px;padding-bottom:40px}.hero h1{font-size:clamp(26px,7.5vw,43px);margin:20px 0 0}.hero h1 span{white-space:normal}.hero-art{display:none}.mobile-mosaic{display:block;height:160px;margin:8px 0;color:#eef2ff;--text:#eef2ff}.mobile-mosaic svg{height:100%;width:100%}.hero-copy>p:not(.eyebrow){font-size:16px}.actions{gap:14px 22px;margin-top:24px}.button{padding:12px 18px;gap:20px}.story{margin-block:40px}.story-panel{padding:32px 0;min-height:0}.story-panel h2{font-size:36px}.story-panel p:not(.eyebrow){font-size:17px}.story-panel .service-line{font-size:23px}.static-form{position:static;width:100%;height:245px;margin-top:20px}.section-heading,.questions,.contact-inner,.page-split{grid-template-columns:1fr;gap:25px}.section-heading{margin-bottom:35px}.principles{grid-template-columns:1fr}.principle{padding-bottom:28px}.principle h3{font-size:25px}.principle p{font-size:16px}.steps{gap:30px 22px}.step h3{font-size:23px}.step p{font-size:15px}.contact-inner h2{font-size:42px}.contact-inner p{font-size:17px}.footer-top{display:block}.footer nav{margin-top:20px}.footer-bottom{flex-direction:column;align-items:flex-start;gap:12px}.page-hero{padding-top:35px;padding-bottom:40px}.page-hero h1{font-size:43px}.lede{font-size:19px}.page-split{padding-block:35px}.page-split h2{font-size:32px}.email{font-size:18px}.related{gap:14px}.related .eyebrow{flex-basis:100%}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.hero-art canvas,.story-art canvas{display:none!important}.hero-art svg{visibility:visible!important}}

.legal{font-size:12px;color:var(--secondary);max-width:none;margin-top:20px}.legal strong{font-weight:600;color:var(--text)}

.story:not(.is-enhanced) .story-panel{padding-right:45%;min-height:350px}.story:not(.is-enhanced) .static-form{position:absolute;right:0;top:30px;width:40%;height:280px}@media(max-width:600px){.story:not(.is-enhanced) .story-panel{padding-right:0;min-height:0}.story:not(.is-enhanced) .static-form{position:static;width:100%;height:245px}}
/* Hero fills the first screen on desktop; accent cells in the service forms. */
@media(min-width:601px){.hero{min-height:min(calc(100svh - 80px),860px)}.hero-art{min-height:0}}.hex-accent{fill:var(--accent)}
/* Full-bleed hero field; brand blue fades in from the left to carry the copy. */
@media(min-width:601px){.hero{position:relative;isolation:isolate}.hero-art{position:absolute;inset:0;z-index:-2;min-height:0}.hero::before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(90deg,var(--hero-panel) 0%,color-mix(in srgb,var(--hero-panel) 94%,transparent) 36%,color-mix(in srgb,var(--hero-panel) 55%,transparent) 54%,transparent 74%)}.hero-copy{background:transparent}}
/* Light theme is an option, not a feature: quiet borderless toggle. */
.theme{border-color:transparent;color:var(--muted);opacity:.7;transition:opacity .2s,color .2s}.theme:hover,.theme:focus-visible{opacity:1;color:var(--text)}.theme svg{width:17px;height:17px}
/* On the blue mobile hero the logo square needs a deeper blue to stay visible. */
.mobile-mosaic .g-c2{fill:#2a46a6}
.handoff{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:15}
/* Calls to action are plain underlined links: colour plus underline already say "press me". */
.button,.text-link{display:inline-flex;align-items:center;min-height:44px;padding:0;background:none;border:0;border-radius:0;font-size:16px;font-weight:600;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:6px;transition:color .15s,text-decoration-thickness .15s}
.button{color:var(--accent)}.text-link{color:var(--text);font-weight:500}
.button:hover,.text-link:hover{background:none;color:var(--accent);text-decoration-thickness:2px}
.hero .button,.hero .text-link,.hero .button:hover,.hero .text-link:hover{background:none;color:#eef2ff}

/* 19 Oct polish: wrapping, primary action, service-page art, tighter mobile rhythm. */
.nowrap{white-space:nowrap}
.service-line,.lede,.page-hero h1,.story-panel h2{text-wrap:balance}
.actions{row-gap:6px}
.button{gap:0}
.button::after{content:"→";margin-left:.45em;text-decoration:none;display:inline-block;transition:transform .15s}
.button:hover::after{transform:translateX(3px)}
.page-hero.has-art{display:grid;grid-template-columns:1.25fr 1fr;gap:60px;align-items:center}
.page-art{height:min(380px,32vw)}
.page-art svg{width:100%;height:100%}
.related{align-items:center}
.related .eyebrow{color:var(--muted);margin-right:6px}
@media(max-width:1023px){.story{margin-block:24px 0}
.hero::before{background:linear-gradient(90deg,var(--hero-panel) 0%,var(--hero-panel) 52%,color-mix(in srgb,var(--hero-panel) 40%,transparent) 66%,transparent 82%)}
.story:not(.is-enhanced) .story-panel:last-child{border-bottom:0}
.story-stage{padding-block:0}
#approach{padding-top:48px}
}
@media(max-width:600px){.page-hero.has-art{grid-template-columns:1fr;gap:28px}
.page-art{height:180px;justify-self:start;width:min(100%,240px)}
.story-panel{padding:28px 0}
}
@media print{.header,.hero-art,.story-art,.story-controls,.handoff{display:none!important}}

/* Delivery: five steps, no numbering. Wide: one row. Medium: ledger rows. */
.steps{grid-template-columns:repeat(5,1fr);gap:30px}
.step{padding-top:24px}
@media(max-width:1199px){.steps{grid-template-columns:1fr;gap:0}
.step{display:grid;grid-template-columns:minmax(160px,1fr) 2fr;gap:30px;padding:22px 0}
.step h3{margin:0}
}
@media(max-width:600px){.step{grid-template-columns:1fr;gap:10px}}
.story-panel .service-line{margin-top:0}
.story-panel h2:first-child{margin-top:0}

/* Anatomy figures: the live layer under the story canvas, and their idle motion (story at rest, service pages). */
.story-live{position:absolute;inset:0}.story-live svg{position:absolute;inset:0;width:100%;height:100%;visibility:hidden}.story-live svg[data-on]{visibility:visible}
.story.is-enhanced .story-art canvas{z-index:1}
@media(prefers-reduced-motion:no-preference){
.story.in-view .story-live svg[data-on],.page-art svg.pl{--run:running}
:is(.story-live svg[data-on],.page-art svg.pl) :is(.pl-tool,.pl-index,.pl-blank,.pl-flow,.pl-blink,.pl-flag,.pl-frame){animation-play-state:var(--run,paused)}
:is(.story-live svg[data-on],.page-art svg.pl) .pl-tool{animation:pl-dip 4s cubic-bezier(.45,0,.2,1) infinite}
:is(.story-live svg[data-on],.page-art svg.pl) .pl-index{animation:pl-index 4s cubic-bezier(.45,0,.25,1) infinite}
:is(.story-live svg[data-on],.page-art svg.pl) .pl-blank{animation:pl-feed 4s linear infinite}
:is(.story-live svg[data-on],.page-art svg.pl) .pl-flow{animation:pl-flow 3s linear infinite}
:is(.story-live svg[data-on],.page-art svg.pl) .pl-flow[data-step="1"]{animation-delay:-.6s}
:is(.story-live svg[data-on],.page-art svg.pl) .pl-flow[data-step="2"]{animation-delay:-1.2s}
:is(.story-live svg[data-on],.page-art svg.pl) .pl-flow[data-step="3"]{animation-delay:-1.8s}
:is(.story-live svg[data-on],.page-art svg.pl) .pl-flow[data-step="4"]{animation-delay:-2.4s}
:is(.story-live svg[data-on],.page-art svg.pl) .pl-blink{animation:pl-blink 1.8s ease-in-out infinite alternate}
:is(.story-live svg[data-on],.page-art svg.pl) .pl-flag{animation:pl-flag 2.6s ease-in-out infinite alternate}
:is(.story-live svg[data-on],.page-art svg.pl) .pl-frame{display:inline;visibility:hidden;animation:pl-frame 1.2s steps(1,end) infinite;animation-delay:calc((var(--f) - 8) * .15s)}
}
@keyframes pl-dip{0%,38%,72%,100%{transform:none}50%,60%{transform:translate(var(--dx),var(--dy))}}
@keyframes pl-index{0%{transform:none}38%,55%{transform:translate(var(--ix),var(--iy))}55.01%,100%{transform:none}}
@keyframes pl-feed{0%{opacity:0}14%,55%{opacity:1}55.01%,100%{opacity:0}}
@keyframes pl-flow{0%{transform:none;opacity:0}25%,75%{opacity:1}100%{transform:translate(var(--dx),var(--dy));opacity:0}}
@keyframes pl-blink{to{opacity:.35}}
@keyframes pl-flag{from{transform:skewY(-5deg) scaleX(.94)}to{transform:skewY(3deg)}}
@keyframes pl-frame{0%{visibility:visible}12.5%,100%{visibility:hidden}}
/* Products and Premium */
.products{display:grid;grid-template-columns:repeat(3,1fr);gap:0 48px}.product{border-top:1px solid var(--line);padding:28px 0 8px;display:flex;flex-direction:column;gap:16px}.product-head{display:flex;align-items:center;justify-content:space-between;gap:16px}.product h3{font-size:30px}.status{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);border:1px solid var(--line);border-radius:2px;padding:5px 9px;white-space:nowrap}.status.is-beta{color:var(--text);border-color:var(--accent)}.product-line{font-size:19px;line-height:1.5;color:var(--text)}.product ul{margin:0;padding:0;list-style:none;color:var(--secondary);font-size:16px;line-height:1.55}.product li{padding:10px 0;border-bottom:1px solid var(--line)}.product li:first-child{border-top:1px solid var(--line)}.product-note{font-size:13px;color:var(--muted)}.product-note a{color:var(--secondary)}.product .text-link{align-self:flex-start;margin-top:auto}
.premium-lede{color:var(--secondary);margin-top:20px;font-size:18px;max-width:52ch}.delivery .actions{margin-top:44px}
@media(max-width:1000px){.products{grid-template-columns:1fr;gap:12px}.product{padding-bottom:20px}}
.product-shot{display:block;aspect-ratio:16/10;overflow:hidden;border:1px solid var(--line);border-radius:2px;background:var(--surface);margin-bottom:6px}.product-shot img{width:100%;height:100%;object-fit:cover;object-position:top}.status.is-demo{color:var(--muted)}
