@font-face{font-family:Cabinet;src:url('../fonts/cabinet-grotesk-800-normal.woff2') format('woff2');font-weight:800;font-display:swap}
@font-face{font-family:Cabinet;src:url('../fonts/cabinet-grotesk-500-normal.woff2') format('woff2');font-weight:500;font-display:swap}
@font-face{font-family:Chivo;src:url('../fonts/chivo-400-normal.woff2') format('woff2');font-weight:400;font-display:swap}
:root{--blue:#2B5CE6;--deep-blue:#1E3A8A;--ink:#0A0A0F;--white:#FFFFFF;--tint:#F5F7FB;--line:#E2E8F0;--body-color:#4A5568;--muted:#94A3B8;--cyan:#22D3EE;--head:Cabinet,Arial,sans-serif;--body:Chivo,Arial,sans-serif;--gutter:clamp(24px,4.65vw,72px);--header-height:94px;--content-width:1380px;color-scheme:light}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-height) + 20px)}body{margin:0;background:var(--white);color:var(--ink);font:400 14px/1.75 var(--body);-webkit-font-smoothing:antialiased}body.menu-open{overflow:hidden}::selection{background:var(--blue);color:white}
a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,select,textarea,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}button:disabled{cursor:wait;opacity:.65}a,button,summary,input,select,textarea{outline-offset:5px}a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--blue)}
h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--head);font-weight:800;line-height:1.06;letter-spacing:-.045em}h2{font-size:clamp(38px,3.65vw,56px)}h3{font-size:23px;letter-spacing:-.025em}svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.5;flex-shrink:0}img{max-width:100%;height:auto}fieldset{min-width:0;border:0;padding:0;margin:0 0 28px}legend{padding:0}ul{padding:0;list-style:none}strong{font-weight:inherit;color:var(--ink)}[hidden]{display:none!important}
.svg-library{position:absolute;width:0;height:0;overflow:hidden}.container{width:min(calc(100% - var(--gutter)*2),var(--content-width));margin-inline:auto}.section{position:relative;padding-block:112px}.section-surface{background:rgba(245,247,251,.9);border-block:1px solid var(--line)}main,.site-footer{position:relative;z-index:1}main{padding-top:var(--header-height)}.text-blue{color:var(--blue)}.text-muted{color:var(--body-color)}
.eyebrow{font-size:10px;font-weight:400;line-height:1.65;letter-spacing:.13em;display:flex;align-items:center;gap:10px;color:var(--blue);margin-bottom:23px}.status-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--blue);box-shadow:0 0 0 4px #2B5CE60B;flex-shrink:0}.body-muted{color:var(--body-color);font-size:15px;line-height:1.85}
.button{display:inline-flex;align-items:center;justify-content:center;gap:24px;min-height:54px;padding:15px 23px;border:1px solid var(--line);background:white;border-radius:6px;font-size:12px;line-height:1.4;transition:background .2s,color .2s,border-color .2s,box-shadow .2s}.button svg{width:17px;height:17px;transition:transform .2s}.button:hover svg{transform:translate(2px,-2px)}.button:hover{border-color:var(--blue);box-shadow:0 8px 24px #2b5ce60c}.button-primary{background:var(--blue);border-color:var(--blue);color:white;box-shadow:0 8px 22px #2b5ce61c}.button-primary:hover{background:var(--deep-blue);border-color:var(--deep-blue);color:white}.button-small{min-height:44px;font-size:11px;padding:12px 16px;gap:18px;background:var(--blue);color:white;border-color:var(--blue)}.button-small:hover{background:var(--deep-blue);color:white}
.text-link{display:inline-flex;align-items:center;justify-content:space-between;gap:25px;font-size:12px;line-height:1.5;min-height:44px;padding:10px 0;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--ink)}.text-link>span{font-size:20px;color:var(--blue)}.text-link:hover{color:var(--blue);border-color:var(--blue)}.skip-link{position:fixed;z-index:100;top:8px;left:8px;padding:12px;background:var(--blue);color:white;transform:translateY(-160%)}.skip-link:focus{transform:none}
/* Shared, stable header: no size or colour changes on scroll. */
.site-header{position:fixed;z-index:50;inset:0 0 auto;background:#ffffffcc;backdrop-filter:blur(20px);border-bottom:1px solid #e2e8f080;height:94px}.nav-inner{width:min(calc(100% - var(--gutter)*2),var(--content-width));margin:auto;height:100%;display:flex;align-items:center;justify-content:space-between;gap:28px}
.brand{display:inline-flex;align-items:center;flex-shrink:0;min-height:44px}.brand-crop{display:block;width:118px;aspect-ratio:1490/765;position:relative;overflow:hidden;mix-blend-mode:multiply}.brand-crop img{display:block;position:absolute;max-width:none;width:167.785235%;height:auto;left:-33.892617%;top:-128.888889%}.desktop-nav{display:flex;align-items:center;gap:24px;margin-left:auto}.desktop-nav a,.blog-link{font-size:11px;color:var(--body-color);min-height:44px;display:inline-flex;align-items:center;position:relative}.desktop-nav a:after,.blog-link:after{content:'';position:absolute;bottom:5px;left:0;right:0;height:2px;background:var(--blue);transform:scaleX(0);transform-origin:center;transition:transform .25s}.desktop-nav a:hover,.desktop-nav a[aria-current],.blog-link:hover{color:var(--blue)}.desktop-nav a:hover:after,.desktop-nav a[aria-current]:after,.blog-link:hover:after{transform:scaleX(1)}.nav-actions{display:flex;align-items:center;gap:24px}.menu-toggle{display:none;width:44px;height:44px;justify-content:center;align-items:center;flex-direction:column;gap:6px;background:white;border:1px solid var(--line);border-radius:5px}.menu-toggle span{display:block;background:var(--ink);width:20px;height:1px}
.mobile-menu{position:fixed;inset:0 0 0 auto;margin:0;border:0;border-left:1px solid var(--line);background:#fffffff5;backdrop-filter:blur(25px);width:min(430px,100%);max-width:100%;height:100%;max-height:100%;padding:24px;color:var(--ink)}.mobile-menu::backdrop{background:#1e3a8a33;backdrop-filter:blur(8px)}.mobile-menu-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.mobile-menu-top .brand-crop{width:96px}.icon-button{border:1px solid var(--line);width:44px;height:44px;background:white;font-size:30px;line-height:1;border-radius:4px}.mobile-menu nav{display:flex;flex-direction:column;margin-bottom:24px}.mobile-menu nav a{font:500 27px/1.3 var(--head);padding:9px 0;min-height:44px;border-bottom:1px solid var(--line)}.mobile-menu nav a:hover{color:var(--blue)}.mobile-menu>p{font-size:13px;color:var(--body-color);margin-bottom:20px}.mobile-menu>.button{width:100%}
/* The live canvas persists beneath every section. */
.scene-backdrop,.scene{position:fixed;inset:0;pointer-events:none;overflow:hidden}.scene-backdrop{background:radial-gradient(ellipse at 78% 38%,#EEF2FB 0%,#F5F7FB66 34%,#FFFFFF 67%)}.scene-aura{position:absolute;left:50%;top:5%;width:45vw;height:80vh;background:radial-gradient(ellipse,#22d3ee0b,transparent 68%)}.scene-grid{position:absolute;inset:0;background-image:linear-gradient(#2b5ce605 1px,transparent 1px),linear-gradient(90deg,#2b5ce605 1px,transparent 1px);background-size:90px 90px;mask-image:linear-gradient(90deg,transparent,#000)}#world{display:block;width:100%;height:100%;opacity:0;transition:opacity .5s}.scene-ready #world{opacity:1}.scene-fallback{width:100%;height:100%;object-fit:contain;display:block;pointer-events:none;transition:opacity .5s}.scene-ready .scene-fallback{opacity:0}.scene-failed .scene-fallback{opacity:1}.scene-loading{position:absolute;top:6px;right:10%;width:155px;font-size:9px;color:var(--body-color);padding:10px 12px;border-radius:5px;background:#ffffffdf;z-index:2;opacity:0}.scene-loading.is-loading{opacity:1}.scene-loading [role=progressbar]{height:2px;margin-top:8px;background:var(--line);overflow:hidden}.scene-loading i{display:block;width:15%;height:100%;background:var(--blue);transition:width .2s}
.page-progress{position:fixed;top:0;left:0;width:100%;height:2px;z-index:55;pointer-events:none}.page-progress span{display:block;width:100%;height:100%;background:var(--blue);transform:scaleX(0);transform-origin:left}
.motion-reduced{scroll-behavior:auto}.motion-reduced *,.motion-reduced *:before,.motion-reduced *:after{animation:none!important;transition:none!important}.motion-reduced #world{visibility:hidden}.motion-reduced .scene-fallback{opacity:1}
.fallback-navigation{display:none}body:not(.ui-ready) .menu-toggle{display:none}
/* The entire desktop hero, including proof points, ends at the fold. */
.hero{height:calc(100svh - var(--header-height));display:flex;flex-direction:column;position:relative;padding-top:16px;overflow:clip;min-height:0}.hero-main{flex:1;display:grid;grid-template-columns:1.04fr 1fr;align-items:center;gap:4%;min-height:0}.hero-copy{position:relative;z-index:2;padding-block:8px;min-width:0}.hero h1{font-size:clamp(56px,4.7vw,76px);line-height:1;letter-spacing:-.05em}.hero-eyebrow{font-size:9px;letter-spacing:.11em;margin-bottom:20px}.hero-description{max-width:440px;margin-top:20px;color:var(--body-color);font-size:14px;line-height:1.8}.hero-actions{display:flex;gap:28px;align-items:center;margin-top:22px}.hero-trust{display:flex;gap:12px;align-items:center;font-size:8px;line-height:1.6;letter-spacing:.09em;color:var(--body-color);margin-top:18px}.trust-line{display:block;width:22px;height:1px;background:var(--muted)}
.hero-visual{position:relative;height:100%;max-height:760px;min-width:0;align-self:center}.hero-art{position:absolute;inset:15px -10px 92px}.hero-visual-caption{position:absolute;bottom:33px;left:12%;right:8%;display:flex;align-items:center;gap:15px;background:#ffffffd9;backdrop-filter:blur(14px);border:1px solid white;border-radius:9px;padding:16px 19px;box-shadow:0 8px 30px #1e3a8a09}.caption-icon{display:grid;place-items:center;width:36px;height:36px;background:#2b5ce609;border:1px solid #2b5ce612;border-radius:7px;color:var(--blue);font-size:25px}.hero-visual-caption strong{display:block;font:500 17px var(--head);letter-spacing:-.015em}.hero-visual-caption div>span{display:block;font-size:10px;color:var(--body-color);margin-top:3px}.caption-cross{margin-left:auto;color:var(--blue);font-size:24px}.hero-orbit-label{position:absolute;bottom:4px;left:12%;font-size:7px;letter-spacing:.16em;color:var(--body-color)}
.hero-bottom-wrap{flex-shrink:0;padding-block:16px 22px;margin-top:4px}.hero-bottom{display:grid;grid-template-columns:.8fr repeat(4,1fr);align-items:center;gap:24px;padding-top:20px;border-top:1px solid var(--line)}.scroll-cue{display:flex;align-items:center;gap:14px;font-size:8px;letter-spacing:.11em;line-height:1.6;color:var(--body-color);min-height:44px}.scroll-icon{width:27px;height:42px;border:1px solid #2b5ce635;border-radius:20px;color:var(--blue);display:grid;place-items:center;font-size:18px}.hero-stat{padding-left:26px;border-left:1px solid var(--line)}.hero-stat strong{display:block;font:500 32px/1 var(--head);letter-spacing:-.04em}.hero-stat strong>span{color:var(--blue)}.hero-stat>span{display:block;margin-top:7px;font-size:9px;color:var(--body-color)}
/* Chapter headings all share the header and hero's left guide. */
.section-heading{display:grid;grid-template-columns:1.35fr .65fr;gap:80px;align-items:end;margin-bottom:55px}.section-heading>p{max-width:335px;color:var(--body-color);font-size:14px;line-height:1.85;justify-self:end;padding-bottom:4px}.section-heading>.text-link{justify-self:end;align-self:end}.about{background:#ffffffa8}.about-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:10%;align-items:center}.about-art-space{height:520px;position:relative}.art-caption{position:absolute;left:0;bottom:3%;display:flex;align-items:center;gap:15px;font-size:9px;letter-spacing:.12em;line-height:1.8;color:var(--body-color)}.tiny-cross{font-size:30px;color:var(--blue)}.about-copy .section-description{font:500 35px/1.15 var(--head);letter-spacing:-.025em}.about-copy>.body-muted{font-size:14px;margin-top:23px}.pillar-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px 24px;margin-top:34px;padding-top:31px;border-top:1px solid var(--line)}.pillar-grid>div{position:relative;padding-left:30px}.pillar-grid>div>span{position:absolute;left:0;top:-6px;color:var(--blue);font-size:24px}.pillar-grid h3{font-size:20px;font-weight:500}.pillar-grid p{font-size:12px;color:var(--body-color);margin-top:7px;line-height:1.75}.about-copy>.text-link{margin-top:30px}
/* Reveal, hover and scroll-scale have separate transform owners. */
.card-reveal{min-width:0;height:100%;perspective:1100px}.tilt-card{--tilt-x:0deg;--tilt-y:0deg;--tilt-z:0px;transform:perspective(1100px) rotateX(var(--tilt-x)) rotateY(var(--tilt-y)) translateZ(var(--tilt-z));transform-origin:center;transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;backface-visibility:hidden}.panel-frame{--panel-scale:1;transform:scale(var(--panel-scale));transform-origin:50% 50%}.reveal-pending{opacity:0;translate:0 24px}.reveal-pending.is-revealed{opacity:1;translate:0 0;transition:opacity .55s ease,translate .65s cubic-bezier(.22,1,.36,1);transition-delay:var(--reveal-delay,0ms)}.motion-reduced .reveal-pending{opacity:1;translate:none;transition:none}.motion-reduced .panel-frame,.motion-reduced .tilt-card{transform:none!important}
/* Expertise */
.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.service-card{display:flex;flex-direction:column;height:100%;min-height:320px;background:#ffffffed;padding:31px;border:1px solid var(--line);border-radius:11px}.service-card:hover{border-color:#2b5ce647;box-shadow:0 15px 38px #1e3a8a0b}.service-card-top{display:flex;align-items:center;gap:18px;margin-bottom:38px}.service-card-top>svg{color:var(--blue);width:29px;height:29px}.service-number{font-size:10px;color:var(--body-color)}.service-arrow{margin-left:auto;font-size:23px;color:var(--blue);transition:transform .2s}.service-card:hover .service-arrow{transform:translate(2px,-2px)}.service-card h3{font-size:26px;font-weight:500;margin-bottom:15px}.service-card>p{color:var(--body-color);font-size:13px;line-height:1.85;margin-bottom:24px}.service-tech{display:block;font-size:10px;color:var(--deep-blue);line-height:1.7;margin-top:auto;padding-top:12px}
.services-note{display:flex;align-items:center;gap:22px;padding:30px 0;border-bottom:1px solid var(--line);font-size:12px;color:var(--body-color)}.services-note>span{color:var(--ink)}.services-note strong{color:var(--deep-blue)}.services-note>.text-link{margin-left:auto}.stack-strip{display:flex;align-items:center;gap:65px;padding-top:46px}.stack-strip>.eyebrow{font-size:8px;line-height:1.9;color:var(--body-color);margin:0;min-width:95px}.stack-strip>div{display:flex;align-items:center;justify-content:space-between;width:100%;gap:20px;font:500 29px var(--head);color:var(--deep-blue);letter-spacing:-.03em}.stack-strip>div>span{color:var(--body-color)}
/* Work: featured result, followed by editorial case summaries. */
.work{background:#ffffffb5}.featured-case{display:grid;grid-template-columns:1fr 1fr;background:white;border:1px solid var(--line);border-radius:13px;overflow:hidden;box-shadow:0 18px 60px #1e3a8a07}.case-copy{padding:45px}.tags{display:flex;gap:8px;margin-bottom:30px}.tags>span{font-size:8px;letter-spacing:.08em;padding:5px 8px;border:1px solid var(--line);background:var(--tint);border-radius:3px;color:var(--deep-blue)}.case-copy h3{font-size:44px;line-height:1.1}.case-copy>p{font-size:13px;line-height:1.85;color:var(--body-color);margin-top:21px;max-width:400px}.case-outcomes{display:flex;flex-direction:column;gap:9px;font-size:12px;color:var(--body-color);margin:25px 0}.case-outcomes i{font-style:normal;color:var(--blue);margin-right:8px}
.case-visual{position:relative;padding:45px 40px 30px;display:flex;flex-direction:column;justify-content:center;background:radial-gradient(ellipse at 60% 40%,#22d3ee0e,transparent 70%),linear-gradient(135deg,#F5F7FB,#EEF2FB);border-left:1px solid var(--line);overflow:hidden}.case-visual>.eyebrow{font-size:8px;margin-bottom:26px}.case-metric{font:500 clamp(100px,9vw,145px)/1 var(--head);letter-spacing:-.065em;color:var(--blue)}.case-metric>span{font-size:.65em}.case-visual>p:not(.eyebrow){font-size:14px;color:var(--deep-blue);margin-top:6px}.signal-chart{display:flex;align-items:end;gap:6px;height:102px;margin-top:35px}.signal-chart i{display:block;flex:1;height:var(--bar);border-radius:3px 3px 0 0;background:linear-gradient(to top,#2b5ce60c,#2b5ce6a3)}.chart-caption{display:flex;justify-content:space-between;margin-top:16px;gap:12px;font-size:7px;letter-spacing:.07em;color:var(--deep-blue)}
.case-journey{grid-column:1/-1;display:grid;grid-template-columns:repeat(5,1fr);gap:20px;padding:25px 36px;margin:0;border-top:1px solid var(--line);list-style:none}.case-journey li>span{display:block;font-size:8px;letter-spacing:.04em;color:var(--blue);margin-bottom:9px}.case-journey li>p{font-size:11px;line-height:1.7;color:var(--body-color)}
.work-secondary{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:45px}.work-secondary article{display:flex;flex-direction:column;height:100%;border-top:2px solid var(--line);padding:25px 15px 14px 0}.work-secondary .eyebrow{font-size:8px;letter-spacing:.065em;margin-bottom:23px;color:var(--deep-blue)}.work-secondary h3{font-size:28px;font-weight:500;line-height:1.15}.work-secondary p{font-size:13px;line-height:1.85;color:var(--body-color);margin-top:18px;margin-bottom:25px}.case-result{display:block;margin-top:auto;font-size:11px;color:var(--blue)}
/* Product: the original screenshot stays at a clear, supporting size. */
.product{overflow:clip}.product-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:100px;align-items:start}.product-copy h2{font-size:clamp(50px,5vw,76px)}.product-name{font:500 28px var(--head);letter-spacing:-.02em;margin:30px 0 15px}.product-copy>.body-muted{max-width:470px;font-size:14px}.feature-list{margin:25px 0 30px}.feature-list li{padding:7px 0 7px 24px;position:relative;font-size:13px;color:var(--body-color)}.feature-list li:before{content:'↗';position:absolute;left:0;color:var(--blue)}.product-stage{position:relative;min-width:0;margin-top:60px;perspective:1100px}.product-screen{position:relative;border:1px solid #2b5ce632;border-radius:9px;overflow:hidden;box-shadow:0 25px 65px #1e3a8a12;background:white}.product-screen img{display:block;width:100%;height:auto;transition:scale .4s;transform-origin:center}.product-screen:hover img{scale:1.018}.screen-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:16px 15px;font-size:7px;letter-spacing:.08em;color:var(--deep-blue);background:white}.screen-bar>div{display:flex;gap:5px}.screen-bar i{width:5px;height:5px;display:block;border-radius:50%;background:var(--line)}.screen-bar i:first-child{background:var(--blue)}.product-orbit{position:absolute;inset:-55px -10%;border:1px solid #2b5ce614;border-radius:50%;transform:rotate(-18deg);pointer-events:none}.product-orbit:before{content:'';position:absolute;inset:45px -35px;border:1px solid #2b5ce60c;border-radius:50%}.product-label{position:relative;display:flex;align-items:center;justify-content:center;gap:10px;font-size:8px;letter-spacing:.1em;color:var(--deep-blue);margin-top:28px}
/* Delivery */
.process{background:#ffffffe0}.process-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:30px;margin-top:65px}.process-grid article{display:flex;flex-direction:column;height:100%;padding:0 12px 18px 0}.process-number{display:flex;align-items:center;gap:20px;margin-bottom:25px}.process-number>span{font:500 35px var(--head);color:var(--blue)}.process-number i{height:1px;background:var(--line);flex:1;position:relative}.process-number i:after{content:'';position:absolute;right:0;top:-3px;width:6px;height:6px;border-right:1px solid var(--blue);border-top:1px solid var(--blue);transform:rotate(45deg)}.process-grid h3{font-size:25px;font-weight:500;line-height:1.15}.process-grid p{font-size:13px;line-height:1.85;color:var(--body-color);margin-top:17px}.audience-strip{display:flex;align-items:center;gap:50px;margin-top:65px;padding-top:32px;border-top:1px solid var(--line)}.audience-strip>.eyebrow{font-size:8px;margin:0;min-width:140px}.audience-strip>div{display:flex;flex:1;justify-content:space-between;gap:20px;font:500 23px var(--head);color:var(--body-color)}
/* FAQ */
.faq-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:9%}.faq h2{font-size:clamp(42px,3.9vw,59px)}.faq .body-muted{margin-top:24px;font-size:14px}.faq .text-link{margin-top:24px}.faq-list{border-top:1px solid var(--line)}.faq-item{border-bottom:1px solid var(--line)}.faq-item summary{display:flex;align-items:center;justify-content:space-between;gap:25px;cursor:pointer;font-size:14px;line-height:1.5;padding:24px 0;min-height:60px;list-style:none}.faq-item summary::-webkit-details-marker{display:none}.faq-item summary>i{position:relative;width:16px;height:16px;flex-shrink:0}.faq-item summary>i:before,.faq-item summary>i:after{content:'';position:absolute;left:1px;top:7px;width:14px;height:1px;background:var(--blue)}.faq-item summary>i:after{transform:rotate(90deg);transition:transform .2s}.faq-item[open] summary{color:var(--blue)}.faq-item[open] summary>i:after{transform:none}.faq-answer{padding-bottom:26px;padding-right:26px}.faq-answer p{font-size:13px;line-height:1.9;color:var(--body-color)}
/* Contact */
.contact{background:linear-gradient(#ffffffab,#ffffffed)}.contact-heading{display:grid;grid-template-columns:1.35fr .65fr;align-items:end;gap:80px;margin-bottom:58px}.contact-heading h2{font-size:clamp(65px,7.5vw,112px)}.contact-heading>p{font-size:14px;line-height:1.95;color:var(--body-color);padding-bottom:8px}.contact-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:11%;align-items:start}.office-list{display:flex;flex-direction:column;gap:20px}.office-list>.card-reveal{height:auto}.office{padding:25px 26px;background:#ffffffd9;border:1px solid var(--line);border-radius:9px}.office>.eyebrow{font-size:8px;letter-spacing:.09em;margin-bottom:18px}.office h3{display:flex;justify-content:space-between;align-items:center;font-size:30px;font-weight:500}.office h3>span{font-size:24px;color:var(--blue)}.office>p{font-size:13px;line-height:1.85;color:var(--body-color);margin-top:15px}.office>a{display:inline-flex;align-items:center;min-height:44px;color:var(--blue);font-size:14px;margin-top:7px}.office>a:hover{color:var(--deep-blue);text-decoration:underline}.office>.office-hours{font-size:11px;margin-top:0}.linkedin-link{align-self:start}
.contact-form-wrap{min-width:0;padding:34px;background:white;border:1px solid var(--line);border-radius:11px;box-shadow:0 15px 55px #1e3a8a08}.form-progress{padding:0;margin:0 0 32px;list-style:none;display:flex;align-items:center;gap:22px}.form-progress li{font-size:10px;flex:1;color:var(--body-color);border-bottom:2px solid var(--line);padding-bottom:15px;white-space:nowrap}.form-progress li span{font-size:9px;margin-right:5px}.form-progress .is-active{color:var(--blue);border-color:var(--blue)}.form-progress .is-complete{color:var(--deep-blue);border-color:var(--deep-blue)}
.contact-form-wrap legend{margin-bottom:25px;font:500 28px/1.15 var(--head);letter-spacing:-.025em}.form-help{font-size:12px;line-height:1.8;color:var(--body-color);margin:12px 0 25px}.service-picker{display:grid;grid-template-columns:1fr 1fr;gap:10px}.service-picker>label{position:relative;cursor:pointer}.service-picker input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;margin:0}.service-picker>label>span{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:16px 13px;min-height:52px;border:1px solid var(--line);border-radius:5px;font-size:11px;line-height:1.4;transition:background .2s,border-color .2s}.service-picker i{font-style:normal;font-size:18px;line-height:1;color:var(--blue)}.service-picker input:checked+span{background:#2b5ce60a;border-color:var(--blue);color:var(--deep-blue)}.service-picker input:checked+span>i{transform:rotate(45deg)}.service-picker input:focus-visible+span{outline:2px solid var(--blue);outline-offset:3px}
.form-buttons{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:27px}.form-buttons .button{font-size:11px;min-height:48px;padding:13px 19px}.form-time{font-size:11px;color:var(--body-color)}.form-fields{display:grid;grid-template-columns:1fr 1fr;gap:20px 15px}.form-fields label{font-size:12px;line-height:1.5;color:var(--body-color)}.form-fields label>span{color:var(--blue)}.form-fields input,.form-fields select,.form-fields textarea{display:block;width:100%;min-width:0;min-height:48px;margin-top:8px;background:var(--tint);border:1px solid var(--line);border-radius:5px;padding:12px;color:var(--ink);font-size:13px;line-height:1.5}.form-fields textarea{resize:vertical}.form-fields input::placeholder,.form-fields textarea::placeholder{color:var(--body-color);opacity:.85}.full-width{grid-column:1/-1}.form-privacy{font-size:10px;text-align:center;color:var(--body-color);line-height:1.8;margin-top:18px}.form-privacy a{display:inline-flex;align-items:center;min-height:44px;text-decoration:underline;color:var(--blue)}.form-status:not(:empty){font-size:12px;color:var(--deep-blue);background:var(--tint);border-left:2px solid var(--blue);padding:14px;margin-top:20px}.form-success{padding:25px 0 35px}.form-success>span{font-size:40px;color:var(--blue)}.form-success h3{font-size:36px;margin-top:15px}.form-success p{font-size:14px;color:var(--body-color);margin:20px 0}.form-progress,.form-buttons [data-next],.form-buttons [data-back],.form-time{display:none}.form-enhanced .form-progress{display:flex}.form-enhanced .form-buttons [data-next]{display:inline-flex}.form-enhanced .form-buttons [data-back],.form-enhanced .form-time{display:block}.form-enhanced fieldset{margin:0}
/* Footer */
.site-footer{background:var(--tint);border-top:1px solid var(--line);padding:45px 0 25px;overflow:clip}.back-to-top{display:flex;align-items:center;gap:14px;min-height:44px;font-size:9px;letter-spacing:.1em}.back-to-top span{width:32px;height:32px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;color:var(--blue);font-size:16px}.footer-bottom{margin-top:36px;padding-top:20px;border-top:1px solid var(--line);color:var(--body-color);font-size:10px}
/* Laptop: preserve the fold, two columns and comfortable text. */
@media(min-width:981px) and (max-height:830px){.hero{padding-top:14px}.hero h1{font-size:clamp(61px,6.1vw,89px)}.hero-eyebrow{font-size:8px;margin-bottom:20px}.hero-description{font-size:13px;margin-top:21px;line-height:1.8}.hero-actions{margin-top:22px;gap:24px}.hero-trust{margin-top:22px}.hero-bottom-wrap{padding-block:12px 23px;margin-top:3px}.hero-bottom{padding-top:22px}.hero-stat strong{font-size:31px}.hero-stat>span{font-size:9px}.hero-visual-caption{bottom:26px;padding:13px 16px}.hero-art{inset:0 -6px 80px}.hero-orbit-label{bottom:1px}}
@media(max-width:1200px){.desktop-nav{gap:17px}.nav-inner{gap:22px}.nav-actions{gap:18px}.hero-actions{gap:22px}.section{padding-block:95px}.section-heading{gap:55px}.about-grid{gap:7%}.service-card{padding:26px}.service-card h3{font-size:24px}.case-copy{padding:35px}.case-copy h3{font-size:40px}.case-visual{padding:35px}.product-grid{gap:65px}.contact-grid{gap:7%}.contact-form-wrap{padding:28px}.process-grid{gap:25px}.process-grid h3{font-size:23px}.audience-strip{gap:28px}.audience-strip>div{font-size:21px}.stack-strip{gap:40px}.stack-strip>div{font-size:26px}}
@media(max-width:1100px){.desktop-nav{display:none}.menu-toggle{display:flex}.nav-actions{margin-left:auto}.nav-actions .button-small{min-width:120px}}
/* Tablet: a separate media row, rather than artwork overlapping copy. */
@media(max-width:980px){:root{--header-height:88px}.site-header{height:88px}.hero{height:auto;padding-top:48px;overflow:clip}.hero-main{display:flex;flex-direction:column;align-items:stretch;gap:10px}.hero-copy{max-width:650px;padding-block:0}.hero h1{font-size:clamp(68px,9.6vw,91px);line-height:.98}.hero-eyebrow{font-size:9px}.hero-description{max-width:490px;font-size:14px}.hero-actions{gap:28px}.hero-trust{font-size:8px;margin-top:23px}.hero-visual{height:480px;width:100%;max-width:620px;align-self:center;flex-shrink:0}.hero-art{inset:0 40px 90px}.hero-visual-caption{left:20%;right:20%;bottom:23px}.hero-orbit-label{bottom:0;left:20%}.scene-loading{right:15%;top:8px}.hero-bottom-wrap{margin-top:10px;padding-block:16px 32px}.hero-bottom{gap:20px;grid-template-columns:repeat(4,1fr);padding-top:27px}.hero-bottom>.scroll-cue{display:none}.hero-stat{padding-left:20px}.hero-stat:first-of-type{padding-left:0;border-left:0}.hero-stat strong{font-size:35px}.hero-stat>span{font-size:10px}
.section{padding-block:85px}.section-heading{grid-template-columns:1.2fr .8fr;gap:35px;margin-bottom:40px}.section-heading h2{font-size:52px}.section-heading>p{font-size:13px}.about-grid{gap:5%;grid-template-columns:1fr 1fr}.about-art-space{height:460px}.about-copy .section-description{font-size:30px}.about-copy>.body-muted{font-size:13px}.pillar-grid{gap:23px 18px}.pillar-grid>div{padding-left:25px}.pillar-grid h3{font-size:18px}.pillar-grid p{font-size:11px}.services-grid{grid-template-columns:repeat(2,1fr)}.service-card{min-height:300px;padding:28px}.service-card h3{font-size:27px}.services-note{flex-wrap:wrap;gap:5px 18px}.services-note>.text-link{margin-left:0}.stack-strip{gap:30px}.stack-strip>div{font-size:23px;flex-wrap:wrap;gap:20px 30px}
.case-copy{padding:30px}.case-copy h3{font-size:37px}.case-visual{padding:28px}.case-metric{font-size:103px}.case-journey{grid-template-columns:repeat(3,1fr);padding:24px 28px;gap:20px}.work-secondary{grid-template-columns:repeat(2,1fr);gap:30px}.work-secondary h3{font-size:27px}.product-grid{gap:45px;grid-template-columns:1.1fr .9fr}.product-copy h2{font-size:58px}.product-copy>.body-muted{font-size:13px}.feature-list li{font-size:12px}.product-name{font-size:25px}.screen-bar{font-size:6px;padding:12px}.product-label{font-size:7px;letter-spacing:.06em}.process-grid{grid-template-columns:repeat(2,1fr);gap:30px 40px;margin-top:40px}.process-grid h3{font-size:25px}.audience-strip{align-items:start}.audience-strip>div{display:grid;grid-template-columns:1fr 1fr;gap:20px;font-size:22px}.faq-grid{gap:7%;grid-template-columns:.95fr 1.05fr}.faq h2{font-size:42px}.faq-item summary{font-size:13px}.contact-heading{gap:40px;grid-template-columns:1.2fr .8fr}.contact-heading h2{font-size:76px}.contact-heading>p{font-size:13px}.contact-grid{gap:5%;grid-template-columns:.9fr 1.1fr}.contact-form-wrap{padding:24px}.contact-form-wrap legend{font-size:25px}.form-progress{gap:13px}.form-progress li{font-size:9px}.service-picker>label>span{font-size:10px;padding:15px 10px}.office{padding:24px}.office>.eyebrow{font-size:7px}.office>p{font-size:12px}.office h3{font-size:28px}}
/* Mobile: one card per row, full-width actions and no fixed controls. */
@media(max-width:600px){:root{--gutter:24px;--header-height:80px}.site-header{height:80px}.nav-inner{gap:12px}.brand-crop{width:95px}.nav-actions{gap:0}.nav-actions .blog-link{display:none}.nav-actions .button-small{min-width:0;min-height:44px;padding:12px 14px;font-size:10px;gap:16px;width:auto}.menu-toggle{flex-shrink:0}
.hero{padding-top:38px}.hero h1{font-size:clamp(51px,13.3vw,77px);line-height:.99;letter-spacing:-.052em}.hero-eyebrow{font-size:7px;letter-spacing:.08em;margin-bottom:24px;gap:9px}.hero-description{font-size:13px;line-height:1.85;margin-top:23px;max-width:390px}.hero-actions{display:flex;flex-direction:column;align-items:stretch;gap:8px;margin-top:25px}.button{width:100%;min-height:52px;font-size:12px}.hero-actions .text-link{justify-content:center;gap:20px;min-height:48px;border-bottom:0}.hero-trust{justify-content:flex-start;font-size:7px;letter-spacing:.075em;margin-top:20px}.hero-visual{height:360px;margin-top:14px}.hero-art{inset:0 -5px 88px}.hero-visual-caption{left:6%;right:6%;bottom:29px;padding:12px 15px;gap:12px}.hero-visual-caption strong{font-size:16px}.hero-visual-caption div>span{font-size:10px}.hero-orbit-label{left:6%;bottom:6px;font-size:6px}.caption-icon{width:32px;height:32px;font-size:23px}.caption-cross{font-size:21px}.scene-loading{top:0;right:0;font-size:8px;width:145px}.hero-bottom-wrap{margin-top:13px;padding-block:12px 35px}.hero-bottom{grid-template-columns:1fr 1fr;gap:26px 20px;padding-top:27px}.hero-stat{padding-left:18px}.hero-stat:first-of-type{padding-left:18px;border-left:1px solid var(--line)}.hero-stat strong{font-size:34px}.hero-stat>span{font-size:10px}
.section{padding-block:70px}.eyebrow{font-size:8px;letter-spacing:.085em;margin-bottom:21px}.section-heading{display:block;margin-bottom:35px}.section-heading h2{font-size:clamp(40px,10.2vw,55px)}.section-heading>p{margin-top:23px;font-size:13px;max-width:390px}.section-heading>.text-link{margin-top:18px}.about-grid{display:flex;flex-direction:column;gap:30px}.about-art-space{width:100%;height:320px;order:2}.about-copy{width:100%}.about-copy .section-description{font-size:32px}.about-copy>.body-muted{font-size:13px;margin-top:20px}.pillar-grid{gap:27px 20px;margin-top:28px;padding-top:27px}.pillar-grid h3{font-size:19px}.pillar-grid p{font-size:12px}.about-copy>.text-link{margin-top:24px}.art-caption{font-size:7px;gap:10px;bottom:0}.tiny-cross{font-size:26px}
.services-grid{grid-template-columns:1fr;gap:18px}.service-card{min-height:290px;padding:28px}.service-card-top{margin-bottom:31px;gap:19px}.service-card h3{font-size:29px}.service-card>p{font-size:14px;margin-bottom:22px}.service-tech{font-size:11px;padding-top:6px}.services-note{display:block;padding:26px 0;font-size:12px}.services-note>p{margin-top:5px;line-height:1.8}.services-note>.text-link{margin-top:15px}.stack-strip{display:block;padding-top:30px}.stack-strip>.eyebrow{font-size:8px;margin-bottom:25px}.stack-strip>div{display:grid;grid-template-columns:repeat(3,1fr);gap:22px 17px;font-size:24px}
.featured-case{grid-template-columns:1fr;border-radius:10px}.case-copy{padding:28px}.case-copy h3{font-size:39px}.tags{margin-bottom:25px;gap:6px}.tags>span{font-size:7px}.case-copy>p{font-size:13px}.case-outcomes{font-size:12px}.case-copy .text-link{font-size:11px;gap:15px}.case-visual{border-left:0;border-top:1px solid var(--line);padding:28px;min-height:340px}.case-visual>.eyebrow{font-size:7px;margin-bottom:20px}.case-metric{font-size:111px}.signal-chart{height:85px;gap:4px;margin-top:27px}.chart-caption{font-size:6px;letter-spacing:.03em}.case-journey{grid-template-columns:1fr;gap:19px;padding:26px 28px}.case-journey li{display:grid;grid-template-columns:120px 1fr;gap:10px}.case-journey li>span{font-size:7px;margin-bottom:0;align-self:start;padding-top:3px}.case-journey li>p{font-size:11px}.work-secondary{grid-template-columns:1fr;gap:28px;margin-top:35px}.work-secondary article{padding-top:24px;padding-right:0}.work-secondary .eyebrow{font-size:8px;margin-bottom:20px}.work-secondary h3{font-size:30px}.work-secondary p{font-size:13px;margin-top:16px;margin-bottom:21px}.case-result{font-size:11px}
.product-grid{grid-template-columns:1fr;gap:45px}.product-copy h2{font-size:clamp(55px,13vw,72px)}.product-name{font-size:27px;margin-top:27px}.product-copy>.body-muted{font-size:13px}.feature-list{margin-block:23px 28px}.feature-list li{font-size:12px;line-height:1.8}.product-stage{margin-top:0}.product-orbit{inset:-25px -4%;opacity:.7}.screen-bar{font-size:6px;padding:13px}.product-label{font-size:7px;margin-top:24px}
.process-grid{grid-template-columns:1fr;gap:28px;margin-top:38px}.process-grid article{padding:0 0 25px;border-bottom:1px solid var(--line)}.process-number{margin-bottom:17px}.process-number>span{font-size:31px}.process-grid h3{font-size:29px}.process-grid p{font-size:13px;margin-top:15px;max-width:400px}.audience-strip{display:block;margin-top:36px;padding-top:26px}.audience-strip>.eyebrow{font-size:8px}.audience-strip>div{margin-top:23px;font-size:21px;gap:21px 16px}.faq-grid{grid-template-columns:1fr;gap:35px}.faq h2{font-size:clamp(40px,10.5vw,53px)}.faq .body-muted{font-size:13px;margin-top:23px}.faq .text-link{margin-top:19px}.faq-item summary{font-size:13px;padding:22px 0;gap:22px}.faq-answer{padding-right:15px;padding-bottom:23px}.faq-answer p{font-size:13px}
.contact-heading{display:block;margin-bottom:36px}.contact-heading h2{font-size:clamp(57px,14vw,79px)}.contact-heading>p{font-size:13px;margin-top:24px;padding:0}.contact-grid{display:flex;flex-direction:column-reverse;gap:35px}.contact-form-wrap,.office-list{width:100%}.contact-form-wrap{padding:24px}.form-progress{gap:10px;margin-bottom:27px}.form-progress li{font-size:9px;white-space:normal;line-height:1.5}.form-progress li>span{display:block;font-size:9px;margin:0 0 5px}.contact-form-wrap legend{font-size:27px}.form-help{font-size:12px}.service-picker{grid-template-columns:1fr;gap:9px}.service-picker>label>span{font-size:12px;padding:15px 14px;min-height:50px}.form-buttons{flex-wrap:wrap;gap:15px;margin-top:26px}.form-buttons>.button{width:100%;font-size:12px}.form-buttons .text-link{justify-content:center;width:100%}.form-time{width:100%;text-align:center;font-size:10px}.form-fields{grid-template-columns:1fr;gap:19px}.form-fields label{font-size:12px}.form-fields input,.form-fields select,.form-fields textarea{font-size:16px;padding:13px;min-height:50px}.form-privacy{font-size:9px}.office{padding:26px}.office>.eyebrow{font-size:8px}.office h3{font-size:31px}.office>p{font-size:13px}.office>a{font-size:15px}.office>.office-hours{font-size:11px}.linkedin-link{width:100%}
.site-footer{padding:35px 0 25px}.footer-top{flex-wrap:wrap;gap:24px}.footer-top p{font-size:11px;margin-left:auto;max-width:185px}.back-to-top{width:100%;justify-content:space-between;border-top:1px solid var(--line);padding-top:22px;font-size:8px}.footer-wordmark{font-size:10.2vw;padding-bottom:24px;margin-top:28px;letter-spacing:-.055em}.footer-bottom{gap:8px 20px;font-size:9px}.footer-bottom>p{width:100%;margin-bottom:5px}.footer-bottom>span{font-size:7px;margin-left:auto}.footer-bottom>div{gap:22px}.motion-preference{width:100%;font-size:10px;margin-top:5px}
}
@media(max-width:360px){:root{--gutter:19px}.nav-inner{gap:10px}.brand-crop{width:86px}.nav-actions .button-small{font-size:9px;padding-inline:12px;gap:10px}.hero h1{font-size:49px}.hero-eyebrow{font-size:6px}.hero-description{font-size:12px}.hero-visual{height:330px}.hero-visual-caption{left:1%;right:1%}.hero-orbit-label{left:1%}.contact-form-wrap{padding:20px}.case-journey li{grid-template-columns:100px 1fr}.case-metric{font-size:101px}.footer-top p{font-size:10px;max-width:163px}.stack-strip>div{font-size:21px}}
@media(prefers-reduced-motion:reduce){html:not(.motion-user-enabled){scroll-behavior:auto}html:not(.motion-user-enabled) *,html:not(.motion-user-enabled) *:before,html:not(.motion-user-enabled) *:after{animation:none!important;transition:none!important}html:not(.motion-user-enabled) .reveal-pending{opacity:1;translate:none}html:not(.motion-user-enabled) .tilt-card,html:not(.motion-user-enabled) .panel-frame{transform:none!important}}
.about{background:#ffffff33}.about-copy{position:relative;background:#ffffffc9;border-radius:8px}
.hero-art{bottom:112px}
@media(min-width:981px) and (max-height:830px){.hero-art{bottom:100px}}
@media(max-width:980px){.hero-art{bottom:110px}}
@media(max-width:600px){.hero-art{bottom:108px}.about-copy{background:#fffffff2}}
@media(max-width:1100px){body:not(.ui-ready) .fallback-navigation{display:flex;flex-wrap:wrap;gap:0 20px;padding-block:10px}body:not(.ui-ready) .fallback-navigation a{display:inline-flex;align-items:center;min-height:44px;font-size:12px;color:var(--blue)}}
@media print{.scene,.scene-backdrop,.site-header,.page-progress,.scroll-cue,.motion-preference{display:none}main{padding-top:0}.section{padding-block:30px;background:white;break-inside:avoid}.hero{height:auto;padding:0}.hero-main{display:block}.hero h1{font-size:55px}.hero-visual{display:none}.hero-bottom-wrap{padding-block:20px}.reveal-pending{opacity:1;translate:none}.tilt-card,.panel-frame{transform:none}.contact-form-wrap{display:none}.contact-grid{display:block}}

/* Refined type scale: smaller headings keep the business layout calm and open. */
.service-card h3{font-size:23px}
.case-copy h3{font-size:38px}
.work-secondary h3{font-size:25px}
.product-copy h2{font-size:clamp(44px,4.2vw,64px)}
.product-name{font-size:25px}
.faq h2{font-size:clamp(38px,3.4vw,52px)}
.contact-heading h2{font-size:clamp(52px,5.6vw,84px)}

/* Short desktop viewports: reserve a distinct row for actions and proof points. */
@media(min-width:981px) and (max-height:830px){
  .hero{padding-top:8px}
  .hero-copy{padding-block:4px}
  .hero h1{font-size:clamp(48px,4.2vw,62px);line-height:1}
  .hero-eyebrow{margin-bottom:14px}
  .hero-description{margin-top:16px;line-height:1.7}
  .hero-actions{margin-top:18px}
  .hero-trust{margin-top:13px}
  .hero-bottom-wrap{margin-top:0;padding-block:8px 16px}
  .hero-bottom{padding-top:14px}
  .hero-stat strong{font-size:28px}
  .hero-stat>span{margin-top:6px}
  .hero-visual-caption{bottom:20px}
  .hero-orbit-label{bottom:0}
  .hero-art{bottom:90px}
}

@media(max-width:980px){
  .hero h1{font-size:clamp(52px,8vw,68px)}
  .section-heading h2{font-size:46px}
  .product-copy h2{font-size:52px}
  .contact-heading h2{font-size:64px}
}

@media(max-width:600px){
  .hero h1{font-size:clamp(42px,11.2vw,56px)}
  .section-heading h2{font-size:clamp(34px,8.8vw,43px)}
  .about-copy .section-description{font-size:28px}
  .service-card h3{font-size:24px}
  .case-copy h3{font-size:32px}
  .work-secondary h3{font-size:25px}
  .product-copy h2{font-size:clamp(43px,11vw,54px)}
  .product-name{font-size:24px}
  .process-grid h3{font-size:24px}
  .faq h2{font-size:clamp(34px,8.8vw,43px)}
  .contact-heading h2{font-size:clamp(46px,12vw,62px)}
}

@media print{.hero h1{font-size:48px}}

/* Centered hero: the persistent 3D sculpture now moves behind the message. */
.hero{
  isolation:isolate;
  padding-top:0;
  background:
    radial-gradient(ellipse 62% 48% at 50% 106%,rgba(34,211,238,.2),transparent 68%),
    radial-gradient(ellipse 58% 45% at 24% 100%,rgba(43,92,230,.13),transparent 72%),
    radial-gradient(ellipse 48% 38% at 82% 92%,rgba(30,58,138,.09),transparent 70%),
    linear-gradient(180deg,rgba(255,255,255,.18),rgba(245,247,251,.16));
}

.hero::before{
  content:"";
  position:absolute;
  z-index:-1;
  left:50%;
  top:8%;
  width:min(980px,84vw);
  height:72%;
  translate:-50% 0;
  border-radius:50%;
  background:radial-gradient(ellipse,rgba(255,255,255,.96) 0%,rgba(255,255,255,.74) 40%,transparent 74%);
  pointer-events:none;
}

.hero-main{
  position:relative;
  display:grid;
  grid-template-columns:1fr;
  place-items:center;
  width:min(calc(100% - var(--gutter)*2),var(--content-width));
  padding-block:clamp(36px,6vh,68px) clamp(30px,5vh,54px);
}

.hero-copy{
  z-index:3;
  width:min(100%,860px);
  margin-inline:auto;
  padding:0;
  text-align:center;
}

.hero-eyebrow{
  width:max-content;
  max-width:100%;
  min-height:34px;
  margin:0 auto 20px;
  padding:7px 13px;
  border:1px solid rgba(43,92,230,.12);
  border-radius:999px;
  background:rgba(255,255,255,.68);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.82),0 12px 38px rgba(30,58,138,.07);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}

.hero h1{
  max-width:850px;
  margin-inline:auto;
  font-size:clamp(52px,5vw,74px);
  line-height:.98;
  letter-spacing:-.052em;
  text-wrap:balance;
}

.hero-gradient-text{
  color:var(--blue);
  background:linear-gradient(105deg,var(--deep-blue) 2%,var(--blue) 50%,#159FCA 102%);
  background-clip:text;
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
}

.hero-description{
  max-width:620px;
  margin:22px auto 0;
  color:var(--body-color);
  font-size:15px;
  line-height:1.75;
  text-wrap:balance;
}

.hero-actions{
  justify-content:center;
  gap:12px;
  margin-top:25px;
}

.hero-actions .button{
  min-width:178px;
  min-height:52px;
  border-radius:10px;
}

.hero-actions .button-primary{
  background:linear-gradient(135deg,var(--deep-blue),var(--blue) 62%,#258CCB 130%);
  box-shadow:0 16px 38px rgba(43,92,230,.22),inset 0 1px 0 rgba(255,255,255,.22);
}

.hero-actions .button-primary:hover{
  background:linear-gradient(135deg,#172E70,var(--deep-blue) 68%,var(--blue));
  box-shadow:0 19px 44px rgba(30,58,138,.25),inset 0 1px 0 rgba(255,255,255,.2);
}

.hero-secondary{
  border-color:rgba(43,92,230,.18);
  background:rgba(255,255,255,.76);
  color:var(--deep-blue);
  box-shadow:inset 0 1px 0 white,0 12px 32px rgba(30,58,138,.07);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}

.hero-secondary:hover{
  background:white;
  color:var(--blue);
  box-shadow:inset 0 1px 0 white,0 16px 36px rgba(30,58,138,.11);
}

.hero-trust{
  justify-content:center;
  width:max-content;
  max-width:100%;
  margin-top:18px;
  margin-inline:auto;
  padding:5px 10px;
  border-radius:999px;
  background:rgba(255,255,255,.7);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}

.hero-visual{
  position:absolute;
  z-index:1;
  inset:0;
  width:100%;
  height:100%;
  max-width:none;
  max-height:none;
  pointer-events:none;
}

.hero-art{inset:30% 2% -52%}

.hero-art .scene-fallback{
  opacity:.42;
  filter:saturate(.92);
}

.scene-ready .hero-art .scene-fallback{opacity:0}
.scene-failed .hero-art .scene-fallback,
.motion-reduced .hero-art .scene-fallback{opacity:.72}
.hero-visual-caption,.hero-orbit-label{display:none}

.hero .scene-loading{
  top:auto;
  right:auto;
  bottom:18px;
  left:50%;
  translate:-50% 0;
}

.hero-bottom-wrap{
  position:relative;
  z-index:4;
  margin-top:0;
  padding-block:13px 20px;
  background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,.7));
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
}

.hero-bottom{
  grid-template-columns:repeat(4,1fr);
  gap:0;
  padding-top:17px;
}

.hero-bottom>.scroll-cue{display:none}
.hero-stat{text-align:center;padding-inline:20px}
.hero-stat:first-of-type{border-left:0}

@media(min-width:981px) and (max-height:830px){
  .hero-main{padding-block:22px 20px}
  .hero h1{font-size:clamp(48px,4.2vw,62px)}
  .hero-eyebrow{margin-bottom:14px}
  .hero-description{margin-top:16px;line-height:1.65}
  .hero-actions{margin-top:18px}
  .hero-trust{margin-top:13px}
  .hero-art{inset:25% 4% -57%}
  .hero-bottom-wrap{padding-block:8px 15px}
  .hero-bottom{padding-top:13px}
}

@media(max-width:980px){
  .hero{
    height:auto;
    min-height:calc(100svh - var(--header-height));
    padding-top:0;
  }
  .hero-main{
    min-height:520px;
    padding-block:70px 52px;
  }
  .hero-copy{max-width:720px}
  .hero h1{font-size:clamp(49px,7.4vw,66px)}
  .hero-description{max-width:560px}
  .hero-visual{position:absolute;inset:0;height:100%;margin:0;max-width:none;align-self:stretch}
  .hero-art{inset:30% -3% -42%}
  .hero-bottom-wrap{margin-top:0;padding-block:13px 28px}
  .hero-bottom{gap:0}
}

@media(max-width:600px){
  .hero::before{top:5%;width:120vw;height:68%}
  .hero-main{min-height:530px;padding-block:58px 42px}
  .hero-copy{width:100%}
  .hero-eyebrow{min-height:31px;margin-bottom:20px;padding:6px 10px;font-size:7px}
  .hero h1{font-size:clamp(42px,11.4vw,54px);line-height:1}
  .hero-description{max-width:390px;margin-top:20px;font-size:13px;line-height:1.7}
  .hero-actions{align-items:stretch;gap:9px;margin-top:24px}
  .hero-actions .button{width:100%;min-width:0}
  .hero-trust{justify-content:center;margin-top:17px}
  .hero-art{inset:36% -12% -30%}
  .hero .scene-loading{bottom:10px}
  .hero-bottom-wrap{padding-block:10px 28px}
  .hero-bottom{grid-template-columns:repeat(2,1fr);gap:0;padding-top:18px}
  .hero-stat{padding-inline:10px}
  .hero-stat:nth-of-type(odd){padding-left:10px;border-left:0}
  .hero-stat:nth-of-type(n+3){margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}
  .hero-stat strong{font-size:30px}
  .hero-stat>span{font-size:9px}
}

@media(max-width:360px){
  .hero-main{min-height:520px;padding-block:48px 34px}
  .hero h1{font-size:40px}
  .hero-description{font-size:12px}
}

/* Homepage insights: only published articles are presented as links. */
.insights{
  overflow:clip;
  background:rgba(255,255,255,.72);
}

.insights-showcase{
  display:grid;
  grid-template-columns:minmax(0,1.02fr) minmax(560px,.98fr);
  gap:20px;
  align-items:stretch;
}

.insight-frame{min-width:0;height:100%;border-radius:15px}

.insight-card{
  display:grid;
  grid-template-rows:minmax(250px,.85fr) minmax(0,1.15fr);
  height:100%;
  min-height:650px;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:15px;
  background:rgba(255,255,255,.94);
  box-shadow:0 24px 70px rgba(30,58,138,.08);
}

.insight-card:hover{
  border-color:rgba(43,92,230,.3);
  box-shadow:0 30px 78px rgba(30,58,138,.13);
}

.insight-visual{
  position:relative;
  display:grid;
  place-content:center;
  min-height:250px;
  overflow:hidden;
  isolation:isolate;
  color:white;
  text-align:center;
  background:
    radial-gradient(circle at 70% 28%,rgba(34,211,238,.72),transparent 25%),
    radial-gradient(circle at 22% 78%,rgba(43,92,230,.85),transparent 38%),
    linear-gradient(145deg,#172E70,var(--deep-blue) 46%,var(--blue));
}

.insight-visual::before{
  content:"";
  position:absolute;
  z-index:-1;
  inset:0;
  background-image:
    linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);
  background-size:46px 46px;
  mask-image:radial-gradient(circle,#000,transparent 78%);
}

.insight-visual strong{
  position:relative;
  z-index:2;
  color:#fff;
  font:800 clamp(72px,6.4vw,108px)/.9 var(--head);
  letter-spacing:-.07em;
  text-shadow:0 20px 46px rgba(10,10,15,.24);
}

.insight-visual small{
  position:relative;
  z-index:2;
  margin-top:18px;
  font-size:9px;
  line-height:1.5;
  letter-spacing:.2em;
}

.insight-orbit{
  position:absolute;
  z-index:1;
  left:50%;
  top:50%;
  border:1px solid rgba(255,255,255,.35);
  border-radius:50%;
  transition:rotate .6s cubic-bezier(.22,1,.36,1);
}

.insight-orbit-one{width:78%;height:37%;translate:-50% -50%;rotate:-18deg}
.insight-orbit-two{width:48%;height:72%;translate:-50% -50%;rotate:26deg}
.insight-card:hover .insight-orbit-one{rotate:-10deg}
.insight-card:hover .insight-orbit-two{rotate:17deg}

.insight-copy{
  display:flex;
  flex-direction:column;
  padding:clamp(30px,3vw,44px);
}

.insight-copy>.eyebrow{font-size:8px;margin-bottom:26px}
.insight-copy h3{max-width:650px;font-size:clamp(29px,2.5vw,38px);line-height:1.08}
.insight-copy>p:not(.eyebrow){max-width:610px;margin-top:22px;color:var(--body-color);font-size:14px;line-height:1.85}

.insight-link{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:25px;
  min-height:48px;
  margin-top:auto;
  padding-top:28px;
  border-top:1px solid var(--line);
  color:var(--deep-blue);
  font-size:11px;
}

.insight-link svg{width:18px;height:18px;color:var(--blue);transition:transform .2s}
.insight-card:hover .insight-link svg{transform:translate(3px,-3px)}

.insights-more{
  display:flex;
  flex-direction:column;
  min-width:0;
}

.insights-more-heading{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:20px;
  min-height:42px;
  margin-bottom:12px;
  padding:0 2px 10px;
  border-bottom:1px solid var(--line);
}

.insights-more-heading h3{font-size:22px;font-weight:500;letter-spacing:-.025em}
.insights-more-heading span{color:var(--muted);font-size:8px;letter-spacing:.11em;text-transform:uppercase}

.insights-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  grid-template-rows:repeat(2,minmax(0,1fr));
  flex:1;
  gap:12px;
}

.insights-grid>.card-reveal{height:100%}

.insight-tile{
  display:grid;
  grid-template-rows:92px minmax(0,1fr);
  height:100%;
  min-height:0;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:13px;
  background:rgba(255,255,255,.92);
}

.insight-tile:hover{
  border-color:rgba(43,92,230,.28);
  box-shadow:0 22px 58px rgba(30,58,138,.1);
}

.insight-tile-visual{
  position:relative;
  display:grid;
  place-content:center;
  overflow:hidden;
  isolation:isolate;
  min-height:92px;
  color:white;
}

.insight-tile-visual::before,
.insight-tile-visual::after{
  content:"";
  position:absolute;
  z-index:-1;
  left:50%;
  top:50%;
  width:145%;
  height:48%;
  translate:-50% -50%;
  rotate:-24deg;
  border:1px solid rgba(255,255,255,.26);
  border-radius:50%;
}

.insight-tile-visual::after{width:72%;height:120%;rotate:28deg}

.insight-tone-seo{background:linear-gradient(145deg,#172E70,#2B5CE6)}
.insight-tone-ads{background:linear-gradient(145deg,#1E3A8A,#2563EB 58%,#22D3EE)}
.insight-tone-web{background:linear-gradient(145deg,#0A0A0F,#1E3A8A 55%,#2B5CE6)}
.insight-tone-local{background:linear-gradient(145deg,#2346A2,#2B5CE6 52%,#159FCA)}

.insight-tile-visual strong{
  position:relative;
  z-index:1;
  color:#fff;
  font:800 clamp(28px,2.5vw,40px)/1 var(--head);
  letter-spacing:-.055em;
}

.insight-tile-visual>span{
  position:absolute;
  right:16px;
  bottom:14px;
  color:rgba(255,255,255,.72);
  font-size:8px;
  letter-spacing:.14em;
}

.insight-tile-copy{
  display:flex;
  flex-direction:column;
  min-width:0;
  padding:18px;
}

.insight-tile-copy>.eyebrow{font-size:6px;letter-spacing:.07em;margin-bottom:10px}
.insight-tile-copy h3{font-size:17px;line-height:1.18;letter-spacing:-.025em}
.insight-tile-copy>p:not(.eyebrow){display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;margin-top:9px;color:var(--body-color);font-size:10px;line-height:1.55}

.insight-status{
  align-self:flex-start;
  margin-top:auto;
  padding:5px 8px;
  border:1px solid rgba(43,92,230,.14);
  border-radius:999px;
  background:rgba(43,92,230,.05);
  color:var(--deep-blue);
  font-size:7px;
  letter-spacing:.08em;
  text-transform:uppercase;
}

@media(max-width:1180px){
  .insights-showcase{grid-template-columns:1fr}
  .insight-card{grid-template-columns:.85fr 1.15fr;grid-template-rows:none;min-height:360px}
  .insight-visual{min-height:360px}
  .insight-copy{padding:34px}
  .insight-copy h3{font-size:31px}
  .insights-more{margin-top:6px}
  .insights-grid{grid-template-rows:none}
  .insight-tile{grid-template-columns:125px 1fr;grid-template-rows:none;min-height:260px}
  .insight-tile-visual{min-height:100%}
  .insight-tile-copy{padding:24px}
  .insight-tile-copy h3{font-size:21px}
  .insight-tile-copy>p:not(.eyebrow){font-size:11px;line-height:1.65}
}

@media(max-width:700px){
  .insight-card{grid-template-columns:1fr;grid-template-rows:auto}
  .insight-visual{min-height:235px}
  .insight-copy{min-height:360px;padding:28px}
  .insight-copy>.eyebrow{margin-bottom:22px}
  .insight-copy h3{font-size:26px}
  .insight-copy>p:not(.eyebrow){font-size:13px;margin-top:18px}
  .insight-link{padding-top:22px}
  .insights-more-heading{margin-bottom:16px}
  .insights-grid{grid-template-columns:1fr;gap:16px}
  .insight-tile{grid-template-columns:1fr;grid-template-rows:auto;min-height:0}
  .insight-tile-visual{min-height:145px}
  .insight-tile-copy{min-height:295px;padding:25px}
  .insight-tile-copy h3{font-size:23px}
}

/* About: a single visual story that continues the centered hero language. */
.about{
  isolation:isolate;
  overflow:clip;
  padding-block:90px 112px;
  background:
    radial-gradient(circle at 18% 54%,rgba(43,92,230,.045),transparent 29%),
    radial-gradient(circle at 82% 38%,rgba(34,211,238,.04),transparent 27%),
    linear-gradient(180deg,rgba(245,247,251,.2),rgba(255,255,255,.34));
  border-bottom:1px solid rgba(226,232,240,.75);
}

.about::before{
  content:"";
  position:absolute;
  z-index:-1;
  inset:0;
  background-image:
    linear-gradient(rgba(43,92,230,.025) 1px,transparent 1px),
    linear-gradient(90deg,rgba(43,92,230,.025) 1px,transparent 1px);
  background-size:90px 90px;
  mask-image:linear-gradient(90deg,transparent 2%,#000 35%,#000 65%,transparent 98%);
  pointer-events:none;
}

.about-intro{
  position:relative;
  z-index:2;
  width:min(100%,850px);
  margin:0 auto 52px;
  text-align:center;
}

.about-intro>.eyebrow{
  width:max-content;
  max-width:100%;
  min-height:34px;
  margin:0 auto 18px;
  padding:7px 13px;
  border:1px solid rgba(43,92,230,.12);
  border-radius:999px;
  background:rgba(255,255,255,.72);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9),0 12px 38px rgba(30,58,138,.06);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}

.about-intro h2{
  max-width:820px;
  margin-inline:auto;
  font-size:clamp(48px,4.2vw,64px);
  line-height:1;
  letter-spacing:-.052em;
  text-wrap:balance;
}

.about-gradient-text{
  color:var(--blue);
  background:linear-gradient(105deg,var(--deep-blue) 3%,var(--blue) 52%,#159FCA 100%);
  background-clip:text;
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
}

.about-intro>p:not(.eyebrow){
  max-width:650px;
  margin:22px auto 0;
  color:var(--body-color);
  font-size:14px;
  line-height:1.8;
  text-wrap:balance;
}

.about-grid{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,.92fr) minmax(520px,1.08fr);
  gap:0;
  align-items:stretch;
  min-height:620px;
  overflow:hidden;
  border:1px solid rgba(43,92,230,.15);
  border-radius:24px;
  background:rgba(255,255,255,.22);
  box-shadow:0 30px 90px rgba(30,58,138,.1),inset 0 1px 0 rgba(255,255,255,.92);
}

.about-art-space{
  position:relative;
  isolation:isolate;
  min-width:0;
  height:auto;
  min-height:620px;
  overflow:hidden;
  background:
    radial-gradient(circle at 50% 52%,rgba(255,255,255,.1) 0%,rgba(238,242,251,.06) 38%,transparent 70%),
    linear-gradient(145deg,rgba(245,247,251,.07),rgba(238,242,251,.03));
}

.about-art-space::before{
  content:"";
  position:absolute;
  z-index:-1;
  inset:0;
  background-image:
    linear-gradient(rgba(43,92,230,.04) 1px,transparent 1px),
    linear-gradient(90deg,rgba(43,92,230,.04) 1px,transparent 1px);
  background-size:54px 54px;
  mask-image:radial-gradient(circle at 50% 52%,#000,transparent 74%);
}

.about-art-space::after{
  content:"";
  position:absolute;
  z-index:-1;
  inset:12% 8%;
  border:1px solid rgba(43,92,230,.1);
  border-radius:50%;
  rotate:-14deg;
}

.about-art-space>.scene-fallback{position:absolute;z-index:0;inset:0;width:100%;height:100%;object-fit:contain}

.about-locations{
  position:absolute;
  z-index:3;
  top:26px;
  left:28px;
  right:28px;
  display:flex;
  align-items:center;
  gap:13px;
  min-height:42px;
  padding:10px 12px;
  border:1px solid rgba(43,92,230,.1);
  border-radius:999px;
  background:rgba(255,255,255,.68);
  color:var(--body-color);
  font-size:8px;
  letter-spacing:.06em;
  box-shadow:inset 0 1px 0 white,0 10px 30px rgba(30,58,138,.05);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}

.about-locations span{display:flex;align-items:center;gap:7px;white-space:nowrap}
.about-locations small{color:var(--blue);font-size:7px;letter-spacing:.1em}
.about-locations i{display:block;flex:1;height:1px;background:linear-gradient(90deg,var(--line),rgba(43,92,230,.35),var(--line))}

.about .art-caption{
  z-index:3;
  left:30px;
  bottom:27px;
  padding:9px 13px;
  border:1px solid rgba(43,92,230,.1);
  border-radius:999px;
  background:rgba(255,255,255,.7);
  box-shadow:inset 0 1px 0 white,0 10px 30px rgba(30,58,138,.05);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}

.about .tiny-cross{font-size:21px}

.about-copy{
  position:relative;
  z-index:2;
  display:flex;
  flex-direction:column;
  justify-content:center;
  min-width:0;
  padding:clamp(36px,3.4vw,52px);
  border-left:1px solid rgba(43,92,230,.12);
  border-radius:0;
  background:rgba(255,255,255,.94);
}

.about-copy>.eyebrow{margin-bottom:15px;font-size:8px}
.about-copy .section-description{font:500 clamp(31px,2.5vw,39px)/1.08 var(--head);letter-spacing:-.035em;text-wrap:balance}
.about-copy>.body-muted{max-width:570px;margin-top:18px;font-size:13px;line-height:1.85}

.about .pillar-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  margin-top:25px;
  padding-top:0;
  border-top:0;
}

.about .pillar-grid>.about-pillar{
  position:relative;
  display:flex;
  flex-direction:column;
  min-height:122px;
  padding:21px;
  overflow:hidden;
  border:1px solid rgba(43,92,230,.11);
  border-radius:12px;
  background:linear-gradient(145deg,rgba(255,255,255,.86),rgba(245,247,251,.72));
}

.about .pillar-grid>.about-pillar::before{
  position:absolute;
  top:17px;
  left:20px;
  color:var(--blue);
  font-size:7px;
  line-height:1;
  letter-spacing:.1em;
}

.about .pillar-grid>.about-pillar:nth-child(1)::before{content:"01"}
.about .pillar-grid>.about-pillar:nth-child(2)::before{content:"02"}
.about .pillar-grid>.about-pillar:nth-child(3)::before{content:"03"}
.about .pillar-grid>.about-pillar:nth-child(4)::before{content:"04"}

.about .pillar-grid>.about-pillar>span{
  position:absolute;
  top:13px;
  right:17px;
  left:auto;
  color:var(--blue);
  font-size:17px;
  line-height:1;
}

.about .pillar-grid>.about-pillar h3{margin-top:24px;font-size:20px;font-weight:500;letter-spacing:-.025em}
.about .pillar-grid>.about-pillar p{margin-top:7px;color:var(--body-color);font-size:11px;line-height:1.65}

.about-cta{
  align-self:flex-start;
  min-width:225px;
  min-height:50px;
  margin-top:24px;
  border-radius:10px;
  background:linear-gradient(135deg,var(--deep-blue),var(--blue) 62%,#258CCB 130%);
  box-shadow:0 15px 34px rgba(43,92,230,.2),inset 0 1px 0 rgba(255,255,255,.2);
}

@media(max-width:1180px){
  .about{padding-block:82px 96px}
  .about-grid{grid-template-columns:minmax(0,.86fr) minmax(490px,1.14fr);min-height:590px}
  .about-art-space{min-height:590px}
  .about-copy{padding:34px}
  .about-copy .section-description{font-size:32px}
  .about .pillar-grid>.about-pillar{min-height:118px;padding:19px}
}

@media(max-width:980px){
  .about{padding-block:78px 90px}
  .about-intro{margin-bottom:44px}
  .about-intro h2{font-size:clamp(44px,6.5vw,58px)}
  .about-grid{grid-template-columns:1fr;min-height:0}
  .about-art-space{min-height:430px}
  .about-copy{min-height:0;padding:44px;border-top:1px solid rgba(43,92,230,.12);border-left:0}
  .about-copy .section-description{font-size:36px}
  .about .pillar-grid>.about-pillar{min-height:125px}
}

@media(max-width:600px){
  .about{padding-block:68px 76px}
  .about-intro{margin-bottom:34px}
  .about-intro>.eyebrow{min-height:31px;margin-bottom:17px;padding:6px 10px;font-size:7px}
  .about-intro h2{font-size:clamp(39px,10.8vw,50px);line-height:1.02}
  .about-intro>p:not(.eyebrow){margin-top:19px;font-size:13px;line-height:1.75}
  .about-grid{border-radius:18px}
  .about-art-space{min-height:330px;order:0}
  .about-locations{top:16px;left:16px;right:16px;gap:8px;min-height:38px;padding:8px 10px;font-size:7px;letter-spacing:.02em}
  .about-locations small{font-size:6px}
  .about .art-caption{left:17px;bottom:16px;padding:7px 10px;font-size:6px}
  .about .tiny-cross{font-size:18px}
  .about-copy{padding:29px 24px 26px}
  .about-copy>.eyebrow{font-size:7px;margin-bottom:13px}
  .about-copy .section-description{font-size:30px;line-height:1.1}
  .about-copy>.body-muted{margin-top:17px;font-size:13px;line-height:1.8}
  .about .pillar-grid{grid-template-columns:1fr;gap:9px;margin-top:23px}
  .about .pillar-grid>.about-pillar{min-height:108px;padding:18px 19px}
  .about .pillar-grid>.about-pillar h3{font-size:20px}
  .about .pillar-grid>.about-pillar p{font-size:12px}
  .about-cta{width:100%;margin-top:22px}
}

/* Immersive glass About: one laptop viewport with the live scene behind the content. */
.about{
  isolation:isolate;
  overflow:clip;
  padding:0;
  border-bottom:1px solid rgba(43,92,230,.1);
  background:
    radial-gradient(circle at 74% 36%,rgba(34,211,238,.13),transparent 31%),
    radial-gradient(circle at 15% 38%,rgba(43,92,230,.09),transparent 34%),
    linear-gradient(135deg,rgba(238,242,251,.58),rgba(255,255,255,.08) 60%,rgba(34,211,238,.055));
}

.about::before{
  inset:0;
  background-image:
    linear-gradient(rgba(43,92,230,.035) 1px,transparent 1px),
    linear-gradient(90deg,rgba(43,92,230,.035) 1px,transparent 1px);
  background-size:72px 72px;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 18%,#000 88%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 18%,#000 88%,transparent);
}

.about-stage{
  position:relative;
  height:calc(100svh - var(--header-height));
  min-height:560px;
}

.about-intro{
  position:absolute;
  z-index:5;
  top:clamp(54px,8vh,90px);
  left:0;
  width:min(41%,510px);
  margin:0;
  padding:26px 28px 27px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.76);
  border-radius:21px;
  background:linear-gradient(145deg,rgba(255,255,255,.6),rgba(245,247,251,.25));
  box-shadow:0 22px 60px rgba(30,58,138,.1),inset 0 1px 0 rgba(255,255,255,.94);
  -webkit-backdrop-filter:blur(14px) saturate(125%);
  backdrop-filter:blur(14px) saturate(125%);
  text-align:center;
}

.about-intro::after{
  content:"";
  position:absolute;
  right:-70px;
  bottom:-95px;
  width:190px;
  aspect-ratio:1;
  border:1px solid rgba(43,92,230,.12);
  border-radius:50%;
  pointer-events:none;
}

.about-intro>.eyebrow{
  width:max-content;
  min-height:30px;
  margin:0 auto 16px;
  padding:6px 10px;
  background:rgba(255,255,255,.38);
}

.about-intro h2{
  max-width:455px;
  margin:0 auto;
  font-size:clamp(40px,3.5vw,52px);
  line-height:1;
  text-align:center;
}

.about-intro>p:not(.eyebrow){
  max-width:430px;
  margin:19px auto 0;
  font-size:12px;
  line-height:1.75;
  text-align:left;
}

.about-grid{
  position:absolute;
  inset:0;
  display:block;
  min-height:0;
  overflow:visible;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}

.about-art-space{
  position:absolute;
  z-index:1;
  inset:0 -4% 135px 28%;
  min-height:0;
  overflow:visible;
  background:transparent;
}

.about-art-space::before{
  inset:2% 0;
  background-size:56px 56px;
  opacity:.68;
}

.about-art-space::after{
  inset:6% 2%;
  border-color:rgba(43,92,230,.14);
}

.about-art-space>.scene-fallback{object-position:61% 50%}

.about-locations{
  top:22px;
  right:2%;
  left:auto;
  flex-direction:column;
  align-items:stretch;
  gap:8px;
  width:max-content;
  max-width:220px;
  min-height:0;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  -webkit-backdrop-filter:none;
  backdrop-filter:none;
}

.about .about-locations span{
  justify-content:flex-start;
  min-width:205px;
  min-height:36px;
  padding:8px 12px;
  border:1px solid rgba(255,255,255,.76);
  border-radius:999px;
  background:rgba(255,255,255,.48);
  box-shadow:0 9px 24px rgba(30,58,138,.065),inset 0 1px 0 rgba(255,255,255,.94);
  -webkit-backdrop-filter:blur(10px);
  backdrop-filter:blur(10px);
}

.about .about-locations small{min-width:27px;font-weight:600}
.about .about-locations i{display:none}

.about .art-caption{
  left:8%;
  bottom:19px;
  padding:8px 12px;
  background:rgba(255,255,255,.45);
  -webkit-backdrop-filter:blur(10px);
  backdrop-filter:blur(10px);
}

.about-copy{
  position:absolute;
  z-index:6;
  right:0;
  bottom:18px;
  left:0;
  display:grid;
  grid-template-columns:minmax(245px,.72fr) minmax(420px,1.25fr) 225px;
  grid-template-rows:auto auto auto;
  gap:6px 24px;
  align-items:center;
  min-height:0;
  padding:18px 20px;
  border:1px solid rgba(255,255,255,.78);
  border-radius:18px;
  background:linear-gradient(120deg,rgba(255,255,255,.68),rgba(238,242,251,.43));
  box-shadow:0 22px 58px rgba(30,58,138,.11),inset 0 1px 0 rgba(255,255,255,.94);
  -webkit-backdrop-filter:blur(18px) saturate(125%);
  backdrop-filter:blur(18px) saturate(125%);
}

.about-copy>.eyebrow{grid-column:1;grid-row:1;margin:0;font-size:7px}
.about-copy .section-description{grid-column:1;grid-row:2;font:500 clamp(24px,2vw,30px)/1.04 var(--head)}
.about-copy>.body-muted{grid-column:1;grid-row:3;max-width:310px;margin:1px 0 0;font-size:9px;line-height:1.55}

.about .pillar-grid{
  grid-column:2;
  grid-row:1/4;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
  margin:0;
  padding:0;
}

.about .pillar-grid>.about-pillar{
  min-height:67px;
  padding:11px 13px;
  border:1px solid rgba(43,92,230,.11);
  border-radius:11px;
  background:linear-gradient(145deg,rgba(255,255,255,.61),rgba(238,242,251,.29));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.86);
}

.about .pillar-grid>.about-pillar:nth-child(2){background:linear-gradient(145deg,rgba(43,92,230,.1),rgba(34,211,238,.08))}
.about .pillar-grid>.about-pillar:nth-child(4){background:linear-gradient(145deg,rgba(30,58,138,.1),rgba(43,92,230,.07))}
.about .pillar-grid>.about-pillar::before{top:10px;left:12px;font-size:6px}
.about .pillar-grid>.about-pillar>span{top:9px;right:11px;font-size:13px}
.about .pillar-grid>.about-pillar h3{margin-top:18px;font-size:15px}
.about .pillar-grid>.about-pillar p{margin-top:3px;font-size:8px;line-height:1.45}

.about-cta{
  grid-column:3;
  grid-row:1/4;
  align-self:center;
  width:100%;
  min-width:0;
  min-height:48px;
  margin:0;
  padding-inline:17px;
  border-radius:12px;
}

@media(min-width:1181px) and (max-height:720px){
  .about-intro{top:42px;padding:21px 24px}
  .about-intro h2{font-size:40px}
  .about-intro>p:not(.eyebrow){margin-top:15px}
  .about-copy{bottom:13px;padding-block:14px}
  .about-art-space{bottom:125px}
}

@media(max-width:1180px){
  .about-stage{height:auto;min-height:860px}
  .about-intro{top:58px;width:min(68%,600px)}
  .about-art-space{inset:210px -9% 220px 17%}
  .about-locations{top:18px;right:5%}
  .about-copy{
    bottom:22px;
    grid-template-columns:minmax(225px,.78fr) minmax(0,1.22fr);
    gap:8px 18px;
    padding:20px;
  }
  .about .pillar-grid{grid-column:2;grid-row:1/5}
  .about-cta{grid-column:1;grid-row:4;width:100%;margin-top:8px}
}

@media(max-width:980px){
  .about-stage{min-height:940px}
  .about-intro{top:50px;width:min(100%,620px)}
  .about-art-space{inset:240px -12% 292px 8%}
  .about-locations{top:118px;right:7%}
  .about-copy{bottom:20px;grid-template-columns:minmax(215px,.8fr) minmax(0,1.2fr)}
  .about-copy .section-description{font-size:27px}
  .about-copy>.body-muted{font-size:9px}
}

@media(max-width:600px){
  .about-stage{min-height:1180px}
  .about-intro{top:36px;width:100%;padding:22px;border-radius:18px}
  .about-intro>.eyebrow{min-height:28px;margin-bottom:14px}
  .about-intro h2{font-size:clamp(34px,9.3vw,40px)}
  .about-intro>p:not(.eyebrow){margin-top:16px;font-size:12px}
  .about-art-space{inset:250px -30% auto -18%;height:370px;min-height:0}
  .about-locations{top:116px;right:24%;max-width:205px}
  .about .about-locations span{min-width:190px;min-height:34px;padding:7px 10px}
  .about .art-caption{left:22%;bottom:10px}
  .about-copy{right:0;bottom:18px;left:0;display:block;padding:21px;border-radius:17px}
  .about-copy>.eyebrow{margin-bottom:12px}
  .about-copy .section-description{font-size:28px}
  .about-copy>.body-muted{max-width:100%;margin-top:13px;font-size:11px;line-height:1.7}
  .about .pillar-grid{grid-template-columns:1fr;gap:8px;margin-top:17px}
  .about .pillar-grid>.about-pillar{min-height:67px;padding:11px 13px}
  .about .pillar-grid>.about-pillar h3{font-size:16px}
  .about .pillar-grid>.about-pillar p{font-size:9px}
  .about-cta{width:100%;margin-top:16px}
}

/* Center the introduction while the Three.js form remains the background. */
.about-intro{
  top:clamp(46px,6.5vh,70px);
  left:50%;
  width:min(100%,880px);
  max-width:880px;
  padding:0;
  overflow:visible;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  -webkit-backdrop-filter:none;
  backdrop-filter:none;
  transform:translateX(-50%);
  text-align:center;
}

/* The sculpture now sits centred behind this heading, so it uses the same
   feathered veil and halo as Projects/Process/FAQ/Contact. */
.about-intro::before{
  content:"";
  position:absolute;
  z-index:-1;
  inset:-20% -16% -14%;
  pointer-events:none;
  background:radial-gradient(ellipse 62% 62% at 50% 44%,
    rgba(255,255,255,.9),
    rgba(255,255,255,.7) 42%,
    rgba(255,255,255,.32) 64%,
    rgba(255,255,255,0) 80%);
}
.about-intro h2{text-shadow:0 0 16px rgba(255,255,255,.92),0 0 42px rgba(255,255,255,.72)}
.about-intro h2 .about-gradient-text{text-shadow:none}
.about-intro>p:not(.eyebrow),
.about-context .eyebrow,
.about-office{text-shadow:0 0 12px rgba(255,255,255,.95),0 0 26px rgba(255,255,255,.7)}

.about-intro::after{display:none}

.about-context{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
  gap:18px;
  align-items:center;
  width:100%;
  margin:0 auto 14px;
}

.about-context .eyebrow{
  justify-self:center;
  justify-content:center;
  width:max-content;
  margin:0;
  padding:7px 11px;
  border:1px solid rgba(43,92,230,.12);
  border-radius:999px;
  background:rgba(255,255,255,.66);
  color:var(--blue);
  font-size:8px;
  letter-spacing:.16em;
  white-space:nowrap;
}

.about-office{
  display:flex;
  align-items:center;
  gap:13px;
  color:#61708a;
  font-size:9px;
  font-weight:500;
  letter-spacing:.08em;
  white-space:nowrap;
}

.about-office::before,
.about-office::after{
  content:"";
  height:1px;
  background:linear-gradient(90deg,rgba(43,92,230,0),rgba(43,92,230,.28));
}

.about-office--left{justify-content:flex-end;text-align:right}
.about-office--left::before{display:none}
.about-office--left::after{width:clamp(24px,4vw,58px)}
.about-office--right{justify-content:flex-start;text-align:left}
.about-office--right::before{width:clamp(24px,4vw,58px);transform:scaleX(-1)}
.about-office--right::after{display:none}

.about-intro h2{
  max-width:780px;
  margin-inline:auto;
  font-size:clamp(43px,3.65vw,56px);
  text-align:center;
}

.about-intro>p:not(.eyebrow){
  max-width:610px;
  margin:22px auto 0;
  font-size:13px;
  line-height:1.7;
  text-align:center;
}

.about-art-space{inset:24% -10% -9% 20%}
.about-art-space>.scene-fallback{object-position:55% 52%}
.about-locations{top:calc(-30% + 22px);right:12%}

.about-copy{
  grid-template-columns:minmax(330px,.9fr) minmax(460px,1.2fr) 220px;
  gap:8px 24px;
  padding:21px 22px;
  background:linear-gradient(120deg,rgba(255,255,255,.56),rgba(238,242,251,.34));
}

.about-copy>.eyebrow{font-size:9px}
.about-copy .section-description{font-size:clamp(34px,2.65vw,42px);line-height:1.04}
.about-copy>.body-muted{max-width:385px;margin-top:5px;font-size:13px;line-height:1.65}

.about .pillar-grid{
  gap:0;
  overflow:hidden;
  border:1px solid rgba(43,92,230,.14);
  border-radius:15px;
  background:linear-gradient(120deg,rgba(255,255,255,.46),rgba(43,92,230,.045) 54%,rgba(34,211,238,.055));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.88);
}

.about .pillar-grid>.about-pillar,
.about .pillar-grid>.about-pillar:nth-child(n){
  min-height:82px;
  padding:15px 18px;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}

.about .pillar-grid>.about-pillar:nth-child(odd){border-right:1px solid rgba(43,92,230,.12)}
.about .pillar-grid>.about-pillar:nth-child(-n+2){border-bottom:1px solid rgba(43,92,230,.12)}
.about .pillar-grid>.about-pillar::before,
.about .pillar-grid>.about-pillar>span{display:none}

.about .pillar-grid>.about-pillar h3{
  display:flex;
  align-items:center;
  gap:12px;
  margin:0;
  font-size:20px;
}

.about .pillar-grid>.about-pillar h3::after{
  content:"";
  width:34px;
  height:2px;
  border-radius:999px;
  background:linear-gradient(90deg,var(--blue),var(--cyan));
  opacity:.72;
}

.about .pillar-grid>.about-pillar p{margin-top:7px;font-size:11px;line-height:1.5}

@media(hover:hover) and (pointer:fine){
  .about .pillar-grid>.about-pillar:hover{background:rgba(255,255,255,.38)}
}

@media(min-width:1181px){
  .about-intro{top:88px}
}

@media(max-width:1180px){
  .about-intro{top:48px;left:50%;width:min(100%,820px);transform:translateX(-50%)}
  .about-intro h2{font-size:clamp(42px,5vw,52px)}
  .about-art-space{inset:205px -11% 190px 9%}
  .about-locations{top:18px;right:calc(5% + 40px)}
  .about-copy{grid-template-columns:minmax(270px,.82fr) minmax(0,1.18fr);padding:22px}
  .about-copy .section-description{font-size:34px}
  .about-copy>.body-muted{font-size:12px}
}

@media(max-width:980px){
  .about-intro{top:46px;width:min(100%,680px)}
  .about-art-space{inset:205px -15% 270px 4%}
  .about-locations{top:118px;right:calc(7% + 30px)}
  .about-copy{grid-template-columns:minmax(245px,.84fr) minmax(0,1.16fr)}
  .about-copy .section-description{font-size:33px}
}

@media(max-width:600px){
  .about-intro{top:34px;width:100%;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}
  .about-context{gap:6px;margin-bottom:13px}
  .about-context .eyebrow{font-size:7px;letter-spacing:.09em}
  .about-office{gap:0;font-size:7px;letter-spacing:0}
  .about-office::before,.about-office::after{display:none}
  .about-intro h2{font-size:clamp(35px,9.5vw,41px);text-align:center}
  .about-intro>p:not(.eyebrow){max-width:330px;margin-top:15px;font-size:12px;text-align:center}
  .about-art-space{inset:215px -32% auto -20%;height:405px}
  .about-locations{top:132px;right:24%}
  .about-copy{display:block;padding:23px;background:linear-gradient(145deg,rgba(255,255,255,.61),rgba(238,242,251,.36))}
  .about-copy>.eyebrow{font-size:8px}
  .about-copy .section-description{font-size:31px}
  .about-copy>.body-muted{margin-top:14px;font-size:12px;line-height:1.7}
  .about .pillar-grid>.about-pillar,
  .about .pillar-grid>.about-pillar:nth-child(n){min-height:82px;padding:15px}
  .about .pillar-grid>.about-pillar:nth-child(odd){border-right:0}
  .about .pillar-grid>.about-pillar:not(:last-child){border-bottom:1px solid rgba(43,92,230,.12)}
  .about .pillar-grid>.about-pillar h3{font-size:19px}
  .about .pillar-grid>.about-pillar p{font-size:11px}
}

/* Expertise: a reversible horizontal chapter over the persistent Three.js scene. */
.services{
  --services-x:0px;
  --services-progress:0;
  position:relative;
  min-height:100svh;
  padding-block:90px;
  overflow:clip;
  border-block:1px solid rgba(43,92,230,.12);
  background:
    radial-gradient(circle at 76% 44%,rgba(34,211,238,.13),transparent 31%),
    radial-gradient(circle at 20% 78%,rgba(43,92,230,.1),transparent 34%),
    linear-gradient(135deg,rgba(255,255,255,.4),rgba(238,242,251,.24));
}

.services::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background-image:
    linear-gradient(rgba(43,92,230,.035) 1px,transparent 1px),
    linear-gradient(90deg,rgba(43,92,230,.035) 1px,transparent 1px);
  background-size:72px 72px;
  mask-image:linear-gradient(90deg,transparent 2%,#000 24%,#000 86%,transparent);
}

.services-sticky{position:relative;z-index:2}

.services-heading{
  display:block;
  text-align:center;
}

.services-heading .eyebrow{
  justify-content:center;
  width:max-content;
  margin:0 auto 14px;
  padding:7px 11px;
  border:1px solid rgba(43,92,230,.12);
  border-radius:999px;
  background:rgba(255,255,255,.66);
  font-size:8px;
}
.services-heading h2{font-size:clamp(41px,3.2vw,50px);line-height:.98}
.services-rail{position:relative;margin-top:38px}

/* Click to move the rail; wired up in home.js. Small, sitting above the top
   edge of the cards (over the heading/rail seam) rather than over any card's
   text. Hidden outside the click-driven horizontal layout (mobile/reduced
   motion), where the cards stack and the page just scrolls normally. */
.services-nav-next,
.services-nav-prev{
  display:none;
  z-index:6;
  width:34px;
  height:34px;
  flex-shrink:0;
  align-items:center;
  justify-content:center;
  border:0;
  border-radius:50%;
  cursor:pointer;
  background:linear-gradient(155deg,#3b6ff0,var(--deep-blue) 78%);
  box-shadow:0 10px 22px rgba(30,58,138,.3),inset 0 1px 0 rgba(255,255,255,.4),inset 0 -2px 4px rgba(10,20,60,.35);
  transition:transform .2s ease,box-shadow .2s ease;
}
.services-nav-next svg,
.services-nav-prev svg{
  position:relative;
  z-index:1;
  width:13px;
  height:13px;
  color:#fff;
}
.services-nav-next svg{transform:rotate(45deg)}
.services-nav-prev svg{transform:rotate(-135deg)}
.services-nav-ring{
  position:absolute;
  inset:-6px;
  border:1px solid rgba(43,92,230,.3);
  border-radius:50%;
  pointer-events:none;
  animation:services-nav-pulse 2.6s ease-out infinite;
}
@keyframes services-nav-pulse{
  0%{transform:scale(.86);opacity:.85}
  70%{transform:scale(1.22);opacity:0}
  100%{opacity:0}
}
.services-nav-next:hover,
.services-nav-prev:hover{transform:translateY(-2px);box-shadow:0 18px 38px rgba(30,58,138,.38),inset 0 1px 0 rgba(255,255,255,.45),inset 0 -2px 4px rgba(10,20,60,.35)}
.services-nav-next:active,
.services-nav-prev:active{transform:translateY(0) scale(.94)}
.services-nav-next:focus-visible,
.services-nav-prev:focus-visible{outline:2px solid var(--blue);outline-offset:3px}
.services-nav-next.is-hidden,
.services-nav-prev.is-hidden{display:none!important}
.motion-reduced .services-nav-ring{animation:none}

.services-track{
  position:relative;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:22px;
  width:min(calc(100% - var(--gutter)*2),var(--content-width));
  margin-inline:auto;
}

.services-track>.card-reveal{height:auto;min-width:0}

.service-card{
  position:relative;
  isolation:isolate;
  display:grid;
  grid-template-rows:60px minmax(0,1fr);
  width:100%;
  height:100%;
  min-height:340px;
  padding:6px;
  overflow:hidden;
  border:1px solid rgba(43,92,230,.2);
  border-radius:34px;
  background:linear-gradient(145deg,rgba(255,255,255,.91),rgba(234,241,252,.8));
  color:var(--ink);
  box-shadow:0 22px 54px rgba(30,58,138,.12),inset 0 1px 0 rgba(255,255,255,.96);
}

.service-card::before{
  content:"";
  position:absolute;
  z-index:0;
  inset:0;
  border-radius:inherit;
  background:
    radial-gradient(circle at 18% 0%,rgba(43,92,230,.1),transparent 34%),
    radial-gradient(circle at 92% 8%,rgba(34,211,238,.1),transparent 25%);
  pointer-events:none;
}

.service-card:hover{border-color:rgba(43,92,230,.34);box-shadow:0 28px 62px rgba(30,58,138,.16),inset 0 1px 0 rgba(255,255,255,.98)}
.service-card:focus-visible{outline:3px solid rgba(34,211,238,.9);outline-offset:4px}

.service-card-top{
  position:relative;
  z-index:1;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  min-width:0;
  padding:0 22px;
}

.service-domain{
  color:var(--deep-blue);
  font-size:8px;
  font-style:normal;
  font-weight:600;
  letter-spacing:.11em;
  text-transform:uppercase;
}

.service-arrow{
  display:grid;
  place-items:center;
  width:32px;
  height:32px;
  flex:0 0 32px;
  margin-left:auto;
  border:1px solid rgba(43,92,230,.2);
  border-radius:50%;
  background:rgba(255,255,255,.78);
  color:var(--blue);
  box-shadow:0 7px 18px rgba(30,58,138,.08);
  transition:background .2s,color .2s,transform .2s;
}

.service-arrow svg{width:14px;height:14px}
.service-card:hover .service-arrow{transform:translate(2px,-2px)}

.service-card-panel,
.service-coda-panel{
  position:relative;
  z-index:1;
  min-width:0;
  min-height:0;
  overflow:hidden;
  border:1px solid rgba(43,92,230,.14);
  border-radius:40px 40px 27px 27px;
  background:linear-gradient(155deg,rgba(255,255,255,.84) 0%,rgba(242,246,253,.76) 68%,rgba(232,241,252,.8) 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.96),inset 0 -24px 50px rgba(43,92,230,.035);
}

.service-card-panel{display:grid;grid-template-rows:58px minmax(0,1fr)}

.service-graphic{
  display:grid;
  place-items:center;
  min-height:0;
  padding-top:5px;
  color:var(--blue);
}

.service-graphic svg{
  width:clamp(36px,3vw,44px);
  height:clamp(36px,3vw,44px);
  stroke-width:.82;
  opacity:.94;
  filter:drop-shadow(0 9px 22px rgba(34,211,238,.28));
}

.service-card-copy{
  display:flex;
  flex-direction:column;
  min-height:0;
  margin:0;
  padding:6px 18px 14px;
}

.service-card h3{margin:0;color:var(--ink);font-size:clamp(21px,1.55vw,25px);font-weight:500;line-height:1.04;letter-spacing:-.035em}
.service-card-copy>p{min-height:34px;margin-top:8px;color:var(--body-color);font-size:10px;line-height:1.52}

.service-tech{
  display:block;
  min-height:0;
  margin-top:8px;
  padding:0;
  color:var(--deep-blue);
  font-size:8px;
  line-height:1.5;
  letter-spacing:.045em;
}

.service-outcome{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  min-height:41px;
  margin-top:auto;
  padding:8px 12px;
  border:1px solid rgba(255,255,255,.22);
  border-radius:13px;
  background:linear-gradient(135deg,#1e3a8a,#2b5ce6 58%,#22d3ee 135%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.28),0 9px 22px rgba(30,58,138,.22);
}

.service-outcome strong{font:500 14px/1.1 var(--head);color:white;letter-spacing:-.02em}
.service-outcome small{max-width:100px;color:rgba(255,255,255,.76);font-size:7px;line-height:1.4;text-align:right}

.service-coda{
  display:grid;
  padding:6px;
  color:var(--ink);
}

.service-coda-panel{display:flex;flex-direction:column;padding:24px 20px 17px}
.service-coda h3{font-size:clamp(25px,2vw,31px);font-weight:500;color:var(--ink)}
.service-coda h3 span{color:var(--blue)}
.service-coda-panel>p{margin-top:13px;color:var(--body-color);font-size:10px;line-height:1.62}
.service-coda .button{align-self:stretch;justify-content:space-between;min-height:44px;margin-top:auto;border-color:rgba(255,255,255,.22);background:linear-gradient(135deg,#1e3a8a,#2b5ce6 58%,#22d3ee 135%);color:white;box-shadow:inset 0 1px 0 rgba(255,255,255,.28)}

.services-footer{
  position:relative;
  display:block;
  width:100%;
  margin-top:30px;
  overflow:hidden;
  border-block:1px solid rgba(43,92,230,.13);
  background:linear-gradient(90deg,rgba(255,255,255,.38),rgba(238,242,251,.6),rgba(255,255,255,.38));
  -webkit-backdrop-filter:blur(8px);
  backdrop-filter:blur(8px);
}

.technology-marquee{
  width:100%;
  overflow:hidden;
  padding-block:13px;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);
}

.technology-marquee-track{
  display:flex;
  width:max-content;
  will-change:transform;
  animation:technology-marquee 34s linear infinite;
}

.technology-marquee-group{
  display:flex;
  flex:none;
  align-items:center;
  gap:clamp(28px,3.2vw,62px);
  margin:0;
  padding:0 clamp(28px,3.2vw,62px) 0 0;
  list-style:none;
}

.technology-marquee-group li{
  display:flex;
  align-items:center;
  gap:clamp(28px,3.2vw,62px);
  color:rgba(30,58,138,.72);
  font:500 clamp(14px,1.05vw,18px)/1 var(--head);
  letter-spacing:-.015em;
  white-space:nowrap;
}

.technology-marquee-group li::after{
  content:"";
  width:4px;
  height:4px;
  border-radius:50%;
  background:var(--cyan);
  box-shadow:0 0 12px rgba(34,211,238,.65);
}

.technology-marquee:hover .technology-marquee-track,
.technology-marquee:focus .technology-marquee-track{animation-play-state:paused}
.technology-marquee:focus-visible{outline:2px solid var(--blue);outline-offset:-3px}

@keyframes technology-marquee{
  to{transform:translate3d(-50%,0,0)}
}

/* No extra scroll runway is reserved: the section is exactly one sticky
   viewport tall, so the page scrolls straight past it like any other
   section instead of "sticking" for an extended, disorienting stretch. */
.services.is-horizontal{height:var(--services-height);min-height:0;padding:0}

.services.is-horizontal .services-sticky{
  position:sticky;
  top:var(--header-height);
  display:grid;
  grid-template-rows:auto minmax(0,1fr) auto;
  gap:16px;
  height:calc(100svh - var(--header-height));
  min-height:560px;
  padding:30px 0 17px;
  overflow:hidden;
}

.services.is-horizontal .services-rail{position:relative;display:flex;align-items:stretch;width:100%;min-width:0;min-height:0;margin-top:32px;padding-inline:clamp(50px,6vw,72px);overflow:visible}
/* Flanking the card row itself, one on each side, vertically centred on the
   rail so they read as carousel controls rather than heading decoration. The
   rail's own side padding is reserved just for them, so the track (and every
   card in it, even mid-scroll) never reaches into that space. */
.services.is-horizontal .services-nav-next,
.services.is-horizontal .services-nav-prev{
  display:flex;
  position:absolute;
  z-index:7;
  top:50%;
  translate:0 -50%;
}
.services.is-horizontal .services-nav-next{right:clamp(8px,1.6vw,20px)}
.services.is-horizontal .services-nav-prev{left:clamp(8px,1.6vw,20px)}

.services.is-horizontal .services-track{
  display:flex;
  align-items:stretch;
  gap:24px;
  width:min(100%,var(--content-width));
  height:100%;
  margin-inline:auto;
  padding-inline:0;
  overflow-x:auto;
  overflow-y:hidden;
  overscroll-behavior-x:contain;
  scroll-behavior:smooth;
  -webkit-overflow-scrolling:touch;
  scroll-snap-type:x proximity;
  /* Real native scroll (mouse wheel, shift+wheel, trackpad, touch drag) drives
     this now, not a transform — the arrows just call scrollBy/scrollTo. Hide
     the native scrollbar so it still reads as the same rail as before. */
  scrollbar-width:none;
  -ms-overflow-style:none;
}
.services.is-horizontal .services-track::-webkit-scrollbar{display:none}

.services.is-horizontal .services-track>.card-reveal{
  flex:0 0 calc((100% - 48px)/3);
  height:clamp(300px,36vh,350px);
  scroll-snap-align:start;
}

.services.is-horizontal .services-track>.card-reveal{align-self:center}
.services.is-horizontal .service-card{min-height:0}
.services.is-horizontal .services-footer{margin-top:0}

@media(max-width:1180px) and (min-width:981px){
  .services-heading{gap:35px}
  .services-heading h2{font-size:42px}
  .services.is-horizontal .services-track>.card-reveal{flex-basis:calc((100% - 48px)/3)}
  .service-card{padding:6px}
  .service-card-copy{margin:0;padding:6px 17px 14px}
  .service-card h3{font-size:21px}
  .service-card-copy>p{font-size:10px}
}

@media(max-width:980px){
  .services{min-height:0;padding-block:82px}
  .services-heading{grid-template-columns:1fr;gap:22px;text-align:center}
  .services-heading .eyebrow{justify-content:center}
  .services-rail{margin-top:40px}
  .services-track{grid-template-columns:repeat(2,minmax(0,1fr));width:min(calc(100% - var(--gutter)*2),var(--content-width));padding:0}
  .service-card{min-height:350px}
  .services-track>.card-reveal:last-child{grid-column:auto}
  .service-coda{min-height:350px}
  .services-footer{margin-top:28px}
  .services-progress{display:none}
}

@media(max-width:600px){
  .services{padding-block:70px}
  .services-heading h2{font-size:clamp(36px,9.3vw,43px)}
  .services-track{grid-template-columns:1fr;gap:16px}
  .services-track>.card-reveal:last-child{grid-column:auto}
  .service-card{min-height:350px;padding:6px;border-radius:32px}
  .service-card-copy{margin:0;padding:6px 18px 14px}
  .service-card h3{font-size:24px}
  .service-card-copy>p{min-height:0;font-size:12px}
  .service-tech{font-size:9px}
  .service-outcome strong{font-size:16px}
  .service-outcome small{font-size:8px}
  .service-coda{min-height:350px;padding:6px}
  .services-footer{margin-top:24px}
  .technology-marquee{padding-block:12px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}
  .technology-marquee-track{animation-duration:28s}
}

@media(prefers-reduced-motion:reduce){
  .technology-marquee{overflow-x:auto;-webkit-mask-image:none;mask-image:none;scrollbar-width:thin}
  .technology-marquee-track{animation:none}
  .technology-marquee-group[aria-hidden="true"]{display:none}
}

.motion-reduced .technology-marquee{overflow-x:auto;-webkit-mask-image:none;mask-image:none;scrollbar-width:thin}
.motion-reduced .technology-marquee-track{animation:none}
.motion-reduced .technology-marquee-group[aria-hidden="true"]{display:none}

/* Projects: one sticky stage preserves the complete card stack in both scroll
   directions while the persistent Three.js scene remains visible around it. */
.projects-showcase{
  position:relative;
  padding:clamp(54px,6vw,78px) 0 clamp(72px,8vw,104px);
  overflow:clip;
  border-bottom:1px solid rgba(43,92,230,.13);
  background:
    radial-gradient(circle at 14% 26%,rgba(43,92,230,.07),transparent 28%),
    radial-gradient(circle at 88% 60%,rgba(34,211,238,.08),transparent 30%),
    linear-gradient(180deg,rgba(255,255,255,.16),rgba(245,247,251,.24));
}

.projects-showcase::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background-image:
    linear-gradient(rgba(43,92,230,.03) 1px,transparent 1px),
    linear-gradient(90deg,rgba(43,92,230,.03) 1px,transparent 1px);
  background-size:72px 72px;
  -webkit-mask-image:linear-gradient(180deg,transparent,#000 12%,#000 90%,transparent);
  mask-image:linear-gradient(180deg,transparent,#000 12%,#000 90%,transparent);
}

/* Keep the live sculpture and gradients; remove the square guide pattern. */
.scene-grid,.projects-showcase::before{display:none}

.projects-heading{
  position:relative;
  z-index:2;
  max-width:720px;
  margin-bottom:clamp(28px,3.4vw,42px);
  text-align:center;
}

.projects-heading::before{
  content:"";
  position:absolute;
  z-index:-1;
  inset:-20% -16% -12%;
  pointer-events:none;
  background:radial-gradient(ellipse 62% 62% at 50% 42%,
    rgba(255,255,255,.9),
    rgba(255,255,255,.7) 42%,
    rgba(255,255,255,.32) 64%,
    rgba(255,255,255,0) 80%);
}

.projects-heading .eyebrow{justify-content:center;margin:0 auto 14px;font-size:8px}
.projects-heading h2{font-size:clamp(39px,3.7vw,56px);line-height:.96;letter-spacing:-.052em}
.projects-heading>p:not(.eyebrow){max-width:545px;margin:16px auto 0;color:var(--body-color);font-size:12px;line-height:1.7}
.projects-heading h2{text-shadow:0 0 16px rgba(255,255,255,.92),0 0 42px rgba(255,255,255,.72)}
.projects-heading .eyebrow,
.projects-heading>p:not(.eyebrow){text-shadow:0 0 12px rgba(255,255,255,.95),0 0 26px rgba(255,255,255,.7)}
.projects-heading h2 .about-gradient-text{text-shadow:none}

.project-stack{position:relative;z-index:3;isolation:isolate;max-width:1200px}
.project-stack-stage{position:relative}

.project-card{
  position:relative;
  min-height:470px;
  margin-bottom:24px;
}

.project-card:nth-child(1){z-index:1}
.project-card:nth-child(2){z-index:2}
.project-card:nth-child(3){z-index:3}
.project-card:last-child{margin-bottom:0}

.projects-showcase.is-stacked .project-stack{height:var(--projects-stack-height)}
.projects-showcase.is-stacked .project-stack-stage{
  position:sticky;
  top:var(--header-height);
  height:calc(100svh - var(--header-height));
  min-height:520px;
}
.projects-showcase.is-stacked .project-card{
  position:absolute;
  inset:0 0 auto;
  height:clamp(420px,calc(100svh - var(--header-height) - 210px),470px);
  min-height:0;
  margin:0;
  transform:translate3d(0,18px,0);
  will-change:transform;
}
.projects-showcase.is-stacked .project-card:nth-child(1){inset-inline:16px}
.projects-showcase.is-stacked .project-card:nth-child(2){inset-inline:8px}
.projects-showcase.is-stacked .project-card:nth-child(3){inset-inline:0}

.project-card-depth{height:100%;min-height:inherit;transform-origin:50% 0}

.project-card-surface{
  position:relative;
  isolation:isolate;
  display:grid;
  grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);
  width:100%;
  height:100%;
  min-height:inherit;
  overflow:hidden;
  border:1px solid rgba(43,92,230,.22);
  border-radius:clamp(22px,2.4vw,34px);
  background:linear-gradient(135deg,rgb(255 255 255 / var(--project-glass-alpha,.56)),rgb(238 244 253 / var(--project-glass-alpha,.56)));
  -webkit-backdrop-filter:blur(.6px) saturate(108%);
  backdrop-filter:blur(.6px) saturate(108%);
  box-shadow:0 28px 72px rgba(30,58,138,.13),inset 0 1px 0 rgba(255,255,255,.88);
  cursor:pointer;
}

.project-card-surface::before{
  content:"";
  position:absolute;
  z-index:-1;
  inset:-35% 48% 20% -12%;
  border-radius:50%;
  background:radial-gradient(circle,rgba(43,92,230,.1),transparent 70%);
  opacity:var(--project-content-opacity,1);
  pointer-events:none;
}

.project-card-surface::after{
  content:"";
  position:absolute;
  z-index:-1;
  inset:28% -8% -45% 44%;
  border-radius:50%;
  background:radial-gradient(circle,rgba(34,211,238,.12),transparent 68%);
  opacity:var(--project-content-opacity,1);
  pointer-events:none;
}

.project-card-surface:focus-within{border-color:rgba(43,92,230,.62);box-shadow:0 34px 90px rgba(30,58,138,.2),0 0 0 3px rgba(43,92,230,.1)}

.project-card-copy{
  position:relative;
  z-index:2;
  display:flex;
  flex-direction:column;
  min-width:0;
  padding:clamp(28px,3vw,42px);
  opacity:var(--project-content-opacity,1);
}

.project-kicker{
  color:var(--deep-blue);
  font-size:8px;
  line-height:1.45;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.project-card-copy h3{margin-top:clamp(14px,1.8vh,20px);font-size:clamp(42px,4.1vw,60px);font-weight:500;line-height:.95;letter-spacing:-.055em}
.project-tagline{max-width:490px;margin-top:14px;font:500 clamp(17px,1.5vw,22px)/1.25 var(--head);letter-spacing:-.025em}
.project-summary{max-width:510px;margin-top:12px;color:var(--body-color);font-size:11px;line-height:1.62}

.project-proof{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:0;
  margin:auto 0 0;
  padding:16px 0 0;
  border-top:1px solid rgba(43,92,230,.14);
}

.project-proof>div{min-width:0;padding:0 17px;border-left:1px solid rgba(43,92,230,.12)}
.project-proof>div:first-child{padding-left:0;border-left:0}
.project-proof dt{font:500 clamp(22px,2.1vw,31px)/1 var(--head);color:var(--deep-blue);letter-spacing:-.045em}
.project-proof dd{margin:8px 0 0;color:var(--body-color);font-size:8px;line-height:1.45}
.project-proof--words dt{font-size:clamp(16px,1.45vw,21px)}

.project-open-label{
  display:flex;
  align-items:center;
  gap:15px;
  width:max-content;
  margin-top:16px;
  padding-bottom:7px;
  border-bottom:1px solid rgba(43,92,230,.24);
  color:var(--deep-blue);
  font-size:10px;
}

.project-open-label svg{width:15px;height:15px}

.project-card-action{
  position:absolute;
  z-index:8;
  inset:0;
  width:100%;
  height:100%;
  padding:0;
  border:0;
  border-radius:inherit;
  background:transparent;
  cursor:pointer;
}

.project-card-action:focus{outline:0}

.project-card-visual{
  position:relative;
  z-index:1;
  align-self:center;
  min-width:0;
  width:auto;
  height:auto;
  aspect-ratio:2.18/1;
  margin:clamp(18px,2vw,26px);
  margin-left:0;
  overflow:hidden;
  border:1px solid rgba(43,92,230,.17);
  border-radius:clamp(16px,1.8vw,25px);
  background:#fff;
  box-shadow:0 18px 44px rgba(30,58,138,.12),inset 0 1px 0 rgba(255,255,255,.8);
  opacity:var(--project-content-opacity,1);
}

.project-card-visual::before{display:none}

.project-shot{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center top;
  backface-visibility:hidden;
  transform:translateZ(0);
}

body.project-modal-open{overflow:hidden}
html{scrollbar-gutter:stable}

.project-modal{
  --project-modal-pad:clamp(34px,4vw,52px);
  width:min(1180px,calc(100% - 34px));
  max-width:none;
  max-height:calc(100svh - 34px);
  margin:auto;
  padding:0;
  overflow:visible;
  border:0;
  background:transparent;
  color:var(--ink);
}

.project-modal::backdrop{background:rgba(10,10,15,.38);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.project-modal-shell{position:relative;max-height:calc(100svh - 34px);overflow:hidden;border:1px solid rgba(255,255,255,.72);border-radius:26px;background:linear-gradient(145deg,rgba(255,255,255,.98),rgba(238,242,251,.97));box-shadow:0 40px 120px rgba(10,10,15,.3);transform-origin:50% 58%;will-change:transform,opacity}
.project-modal-scroll{max-height:calc(100svh - 34px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:rgba(43,92,230,.45) transparent}
.project-modal-close{position:absolute;z-index:4;top:16px;right:16px;display:grid;place-items:center;width:46px;height:46px;padding:0;border:1px solid rgba(43,92,230,.18);border-radius:50%;background:rgba(255,255,255,.85);color:var(--ink);font:300 29px/1 var(--body);box-shadow:0 12px 30px rgba(30,58,138,.1);cursor:pointer}.project-modal-close:hover{background:var(--blue);color:white}.project-modal-close:focus-visible{outline:2px solid var(--blue);outline-offset:3px}

.project-modal-header{position:relative;padding:var(--project-modal-pad);padding-right:clamp(82px,8vw,104px);overflow:hidden;border-bottom:1px solid rgba(43,92,230,.13);background:radial-gradient(circle at 82% 20%,rgba(34,211,238,.2),transparent 31%),linear-gradient(125deg,rgba(255,255,255,.86),rgba(43,92,230,.08))}
.project-modal-header::after{content:"";position:absolute;right:-5%;bottom:-150px;width:390px;height:260px;border:1px solid rgba(43,92,230,.14);border-radius:50%;transform:rotate(-20deg)}
.project-modal-header h2{position:relative;z-index:1;max-width:900px;margin-top:13px;font-size:clamp(48px,5.3vw,74px);font-weight:500;line-height:.94;letter-spacing:-.058em}.project-modal-header>p:not(.project-kicker){position:relative;z-index:1;max-width:690px;margin-top:18px;color:var(--body-color);font-size:13px;line-height:1.72}
.project-modal-facts{position:relative;z-index:1;display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}.project-modal-facts span,.project-chip-list span{padding:7px 10px;border:1px solid rgba(43,92,230,.14);border-radius:999px;background:rgba(255,255,255,.76);color:var(--deep-blue);font-size:8px;line-height:1.3;letter-spacing:.04em}

.project-modal-section{padding:var(--project-modal-pad)}
.project-modal-section>.eyebrow,.project-modal-grid .eyebrow{margin-bottom:12px;font-size:7px}
.project-modal-section>h3,.project-modal-grid h3{font-size:clamp(29px,3vw,42px);font-weight:500;line-height:1.05;letter-spacing:-.035em}
.project-story{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;margin:27px 0 0;padding:0;border-block:1px solid rgba(43,92,230,.13);list-style:none}
.project-story li{min-width:0;padding:20px;border-left:1px solid rgba(43,92,230,.12)}.project-story li:first-child{border-left:0}.project-story span{color:var(--blue);font-size:8px;letter-spacing:.1em;text-transform:uppercase}.project-story p{margin-top:10px;color:var(--body-color);font-size:10px;line-height:1.65}

.project-modal-grid{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(280px,.82fr);align-items:start;gap:clamp(25px,4vw,52px);padding:0 var(--project-modal-pad) var(--project-modal-pad)}
.project-feature-list{display:grid;grid-template-columns:1fr 1fr;gap:0 24px;margin:25px 0 0;padding:0;list-style:none}.project-feature-list li{position:relative;padding:13px 0 13px 21px;border-top:1px solid rgba(43,92,230,.11);color:var(--body-color);font-size:11px;line-height:1.55}.project-feature-list li::before{content:"↗";position:absolute;left:0;color:var(--blue)}
.project-modal-aside{padding:27px;border:1px solid rgba(43,92,230,.15);border-radius:18px;background:linear-gradient(145deg,rgba(43,92,230,.08),rgba(34,211,238,.08))}.project-chip-list{display:flex;flex-wrap:wrap;gap:7px}.project-modal-aside>p:last-child{margin-top:22px;color:var(--body-color);font-size:11px;line-height:1.7}
.project-modal-actions{display:flex;flex-wrap:wrap;gap:12px;padding:20px var(--project-modal-pad);border-top:1px solid rgba(43,92,230,.13);background:rgba(255,255,255,.72)}.project-modal-actions .button{width:auto;min-width:220px}.project-modal-actions .button-secondary{background:rgba(255,255,255,.78);color:var(--deep-blue)}

@media(max-width:1180px) and (min-width:981px){
  .projects-showcase.is-stacked .project-card{height:clamp(420px,calc(100svh - var(--header-height) - 210px),470px)}
  .project-card-copy{padding:32px}
  .project-card-copy h3{font-size:47px}
  .project-tagline{font-size:19px}
  .project-summary{font-size:10px}
  .project-proof{padding-top:17px}
  .project-proof dt{font-size:22px}
  .project-proof dd{font-size:7px}
  .project-card-visual{margin:18px;margin-left:0}
}

@media(max-width:980px){
  .projects-showcase{padding-block:68px}
  .projects-heading{margin-bottom:34px}
  .project-stack-stage{height:auto}
  .project-card,.project-card:nth-child(n){position:relative;top:auto;height:auto;min-height:0;margin-bottom:24px;transform:none;will-change:auto}
  .project-card:last-child{margin-bottom:0}
  .project-card-depth{height:auto}
  .project-card-surface{display:flex;min-height:0;flex-direction:column}
  .project-card-copy{padding:30px}
  .project-card-copy h3{font-size:47px}
  .project-tagline{font-size:19px}
  .project-summary{font-size:10px}
  .project-proof{padding-top:17px}
  .project-card-visual{order:-1;flex:none;width:auto;height:auto;aspect-ratio:2.18/1;margin:18px 18px 0}
  .project-card-copy{order:2}
  .project-modal-header{padding:44px 38px 38px;padding-right:78px}
  .project-story{grid-template-columns:repeat(2,minmax(0,1fr))}
  .project-story li{border-top:1px solid rgba(43,92,230,.12)}
  .project-story li:nth-child(-n+2){border-top:0}
  .project-story li:nth-child(odd){border-left:0}
  .project-story li:last-child{grid-column:1/-1}
  .project-modal-grid{grid-template-columns:1fr}
}

@media(max-width:700px){
  .projects-showcase{padding-block:58px}
  .projects-heading h2{font-size:clamp(38px,11vw,52px)}
  .projects-heading>p:not(.eyebrow){font-size:12px}
  .project-card,.project-card:nth-child(n){min-height:0}
  .project-card-surface{display:flex;min-height:0;flex-direction:column}
  .project-card-copy{padding:26px}
  .project-card-copy h3{font-size:43px}
  .project-tagline{font-size:19px}
  .project-summary{font-size:12px}
  .project-proof{grid-template-columns:1fr;margin-top:28px;padding-top:0}
  .project-proof>div,.project-proof>div:first-child{display:grid;grid-template-columns:minmax(92px,.45fr) 1fr;align-items:center;gap:14px;padding:13px 0;border:0;border-top:1px solid rgba(43,92,230,.12)}
  .project-proof dt,.project-proof--words dt{font-size:20px}
  .project-proof dd{margin:0;font-size:9px}
  .project-open-label{margin-top:20px}
  .project-card-visual{height:auto;aspect-ratio:2.18/1;margin:14px 14px 0;border-radius:16px}
  .project-card-copy{order:2}
  .project-modal{width:calc(100% - 16px);max-height:calc(100svh - 16px)}
  .project-modal-shell,.project-modal-scroll{max-height:calc(100svh - 16px);border-radius:19px}
  .project-modal-close{top:10px;right:10px;width:44px;height:44px}
  .project-modal-header{padding:62px 24px 32px}
  .project-modal-header h2{font-size:49px}
  .project-modal-header>p:not(.project-kicker){font-size:12px}
  .project-modal-section{padding:30px 24px}
  .project-story{grid-template-columns:1fr;margin-top:24px}
  .project-story li,.project-story li:nth-child(n){grid-column:auto;padding:18px 0;border-left:0;border-top:1px solid rgba(43,92,230,.12)}
  .project-story li:first-child{border-top:0}
  .project-story p{font-size:11px}
  .project-modal-grid{padding:0 24px 30px}
  .project-feature-list{grid-template-columns:1fr}
  .project-modal-aside{padding:22px}
  .project-modal-actions{display:grid;padding:18px 24px 24px}
  .project-modal-actions .button{width:100%;min-width:0}
}

@media(prefers-reduced-motion:reduce){
  .project-card,.project-card:nth-child(n){position:relative;top:auto;height:auto;min-height:0;margin-bottom:24px}
}

.motion-reduced .project-card,.motion-reduced .project-card:nth-child(n){position:relative;top:auto;height:auto;min-height:0;margin-bottom:24px}

/* Homepage completion: compact glass sections keep the persistent scene visible. */
.process,
.insights,
.faq,
.contact{
  isolation:isolate;
  overflow:clip;
  border-bottom:1px solid rgba(43,92,230,.12);
}

/* Flagship product spotlight — sits between the Projects stack and Process.
   Same shared H2 scale, low blur, one container width, no card grid. */
.flagship{
  position:relative;
  overflow:clip;
  padding-block:clamp(56px,5vw,74px) clamp(46px,4.3vw,62px);
  border-top:1px solid rgba(43,92,230,.12);
  background:
    radial-gradient(circle at 16% 18%,rgba(34,211,238,.06),transparent 30%),
    radial-gradient(circle at 88% 78%,rgba(43,92,230,.05),transparent 28%),
    linear-gradient(180deg,rgba(255,255,255,.32),rgba(245,247,251,.36));
}
.flagship-grid{
  display:grid;
  grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr);
  gap:clamp(32px,4vw,56px);
  align-items:center;
}
.flagship-copy h3{margin:0;font-size:clamp(34px,3.2vw,46px);font-weight:500;line-height:.95;letter-spacing:-.055em}
.flagship-copy .project-tagline{margin-top:10px}
.flagship-copy>.body-muted{max-width:480px;margin-top:9px;font-size:13px;line-height:1.7}
.flagship-stats{grid-template-columns:repeat(3,minmax(0,1fr));max-width:520px;margin-top:20px}
.flagship-features{
  display:flex;
  flex-direction:column;
  gap:9px;
  max-width:480px;
  margin:18px 0 0;
  padding:0;
  list-style:none;
}
.flagship-features li{
  position:relative;
  padding-left:20px;
  color:var(--body-color);
  font-size:12px;
  line-height:1.55;
}
.flagship-features li::before{
  content:"";
  position:absolute;
  left:0;
  top:6px;
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--blue);
}
.flagship-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:22px}
.flagship-visual{
  position:relative;
  padding:22px;
  border-radius:28px;
  border:1px solid rgba(43,92,230,.12);
  background:rgba(255,255,255,.93);
  box-shadow:0 24px 60px rgba(30,58,138,.09);
}
.flagship-visual img{display:block;width:100%;height:auto;border-radius:16px}

.flagship-more{
  margin-top:clamp(56px,6vw,84px);
  padding-top:28px;
  border-top:1px solid rgba(43,92,230,.12);
}
.flagship-more-kicker{
  width:max-content;
  margin:0 auto 20px;
  padding:7px 11px;
  border:1px solid rgba(43,92,230,.12);
  border-radius:999px;
  background:rgba(255,255,255,.93);
  color:var(--blue);
  font-size:10px;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.flagship-more-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:24px;
}
.flagship-more-card{
  display:flex;
  flex-direction:column;
  height:100%;
  padding:14px;
  border-radius:22px;
  border:1px solid rgba(43,92,230,.12);
  background:rgba(255,255,255,.93);
  box-shadow:0 18px 44px rgba(30,58,138,.07);
  transition:box-shadow .2s,transform .2s;
}
.flagship-more-card:hover{
  box-shadow:0 24px 54px rgba(30,58,138,.11);
  transform:translateY(-2px);
}
.flagship-more-visual{
  display:block;
  aspect-ratio:16/10;
  overflow:hidden;
  border-radius:14px;
}
.flagship-more-visual img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 38%}
.flagship-more-copy{display:flex;flex-direction:column;padding:16px 4px 4px}
.flagship-more-copy .project-kicker{margin-bottom:8px}
.flagship-more-name{font:500 21px/1.15 var(--head);letter-spacing:-.03em;color:var(--ink)}
.flagship-more-tag{margin-top:6px;color:var(--body-color);font-size:12px;line-height:1.6}

@media(max-width:980px){
  .flagship-grid{grid-template-columns:1fr;gap:36px}
  .flagship-visual{order:-1}
  .flagship-copy .project-tagline,
  .flagship-copy>.body-muted{max-width:none}
  .flagship-stats,
  .flagship-features{max-width:none}
}

@media(max-width:700px){
  .flagship-stats{grid-template-columns:1fr}
}

@media(max-width:600px){
  .flagship-more-grid{grid-template-columns:1fr}
}

@media(max-width:600px){
  .flagship-actions{flex-direction:column;align-items:stretch}
}

.process{
  padding-block:clamp(42px,4vw,58px);
  background:
    radial-gradient(circle at 50% 42%,rgba(255,255,255,.18),transparent 32%),
    radial-gradient(circle at 84% 70%,rgba(34,211,238,.06),transparent 28%),
    linear-gradient(180deg,rgba(255,255,255,.18),rgba(240,245,253,.24));
}

.process-intro{
  position:relative;
  isolation:isolate;
  width:100%;
  max-width:720px;
  margin:0 auto clamp(20px,1.8vw,26px);
  text-align:center;
}
.process-intro .eyebrow{justify-content:center;margin:0 auto 14px;font-size:8px}
.process-intro h2{font-size:clamp(39px,3.7vw,56px);line-height:.96;letter-spacing:-.052em}
.process-intro>p:last-child{max-width:545px;margin:16px auto 0;color:var(--body-color);font-size:12px;line-height:1.7}

/* Solid and blur-free, matching the About "We see the business behind the
   technology" panel: readability wins here, the sculpture stays in the
   background around the card rather than showing through it. */
.process-journey{
  position:relative;
  overflow:hidden;
  border:1px solid rgba(43,92,230,.16);
  border-radius:28px;
  background:rgba(255,255,255,.94);
  box-shadow:0 24px 70px rgba(30,58,138,.075),inset 0 1px 0 rgba(255,255,255,.94);
}
.process-journey::after{
  content:"";
  position:absolute;
  inset:auto -6% -120px 38%;
  height:200px;
  border:1px solid rgba(34,211,238,.13);
  border-radius:50% 50% 0 0;
  pointer-events:none;
}
.process-steps{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
}
.process-steps::before{
  content:"";
  position:absolute;
  top:44px;
  left:7%;
  right:7%;
  height:1px;
  background:linear-gradient(90deg,rgba(43,92,230,.18),var(--blue) 45%,var(--cyan) 72%,rgba(34,211,238,.16));
}
.process-step{
  position:relative;
  min-width:0;
  min-height:188px;
  padding:24px clamp(22px,2vw,31px) 22px;
  border-right:1px solid rgba(43,92,230,.11);
}
.process-step:last-child{border-right:0}
.process-marker{display:flex;align-items:center;gap:11px;height:24px;margin-bottom:22px}
.process-marker i{
  position:relative;
  width:11px;
  height:11px;
  flex:0 0 11px;
  border:3px solid rgba(255,255,255,.95);
  border-radius:50%;
  background:var(--blue);
  box-shadow:0 0 0 1px rgba(43,92,230,.26),0 0 24px rgba(43,92,230,.35);
}
.process-step:nth-child(3) .process-marker i,.process-step:nth-child(4) .process-marker i{background:var(--cyan);box-shadow:0 0 0 1px rgba(34,211,238,.35),0 0 24px rgba(34,211,238,.38)}
.process-marker span{font:600 9px/1 var(--body);letter-spacing:.16em;text-transform:uppercase;color:var(--blue)}
.process-step h3{font-size:clamp(20px,1.4vw,23px);font-weight:500;line-height:1.12}
.process-step>p{max-width:270px;margin-top:11px;color:var(--body-color);font-size:11.5px;line-height:1.62}
.process-fit{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:minmax(190px,.72fr) minmax(0,2fr);
  align-items:center;
  gap:22px;
  min-height:58px;
  padding:12px 30px;
  border-top:1px solid rgba(43,92,230,.13);
  background:rgba(255,255,255,.94);
}
.process-fit strong{color:var(--deep-blue);font:500 14px/1.2 var(--head)}
.process-fit>div{display:flex;align-items:center;justify-content:space-between;gap:18px}
.process-fit span{position:relative;padding-left:14px;color:var(--body-color);font-size:11px;white-space:nowrap}
.process-fit span::before{content:"";position:absolute;left:0;top:50%;width:4px;height:4px;border-radius:50%;background:var(--cyan);transform:translateY(-50%)}

.insights{
  padding-block:clamp(46px,4.3vw,62px);
  background:
    radial-gradient(circle at 72% 28%,rgba(34,211,238,.07),transparent 28%),
    radial-gradient(circle at 24% 78%,rgba(43,92,230,.06),transparent 30%),
    linear-gradient(180deg,rgba(255,255,255,.34),rgba(245,247,251,.3));
}
.insights .section-heading{margin-bottom:38px}
.insights .section-heading h2{font-size:clamp(39px,3.7vw,56px);line-height:.96;letter-spacing:-.052em}
.insights .section-heading>p{font-size:13px;line-height:1.75}
.insights-showcase{grid-template-columns:minmax(0,1fr) minmax(540px,1fr);gap:18px}
.insight-frame{border-radius:22px}
.insight-card{
  grid-template-rows:minmax(220px,.78fr) minmax(0,1.22fr);
  min-height:580px;
  border-color:rgba(43,92,230,.16);
  border-radius:22px;
  background:rgba(255,255,255,.82);
  box-shadow:0 22px 62px rgba(30,58,138,.09);
  -webkit-backdrop-filter:blur(1px);
  backdrop-filter:blur(1px);
}
.insight-visual{min-height:220px}
.insight-copy{padding:clamp(26px,2.5vw,36px)}
.insight-copy>.eyebrow{margin-bottom:20px}
.insight-copy h3{font-size:clamp(27px,2.25vw,35px)}
.insight-copy>p:not(.eyebrow){margin-top:17px;font-size:12px;line-height:1.72}
.insight-link{padding-top:21px}
.insights-more-heading{min-height:38px;margin-bottom:10px;padding-bottom:9px}
.insight-tile{
  border-color:rgba(43,92,230,.15);
  border-radius:18px;
  background:rgba(255,255,255,.76);
  box-shadow:0 14px 38px rgba(30,58,138,.055);
  -webkit-backdrop-filter:blur(.8px);
  backdrop-filter:blur(.8px);
}
.insight-tile-copy{padding:16px}
.insight-tile-copy h3{font-size:16px}

/* Kept as light as .process so the centred sculpture reads as a solid object
   rather than a washed-out outline. */
.faq{
  padding-block:clamp(46px,4.3vw,62px);
  background:
    radial-gradient(circle at 50% 40%,rgba(255,255,255,.18),transparent 32%),
    radial-gradient(circle at 82% 72%,rgba(34,211,238,.06),transparent 28%),
    linear-gradient(180deg,rgba(255,255,255,.2),rgba(240,245,253,.26));
}
.faq-intro{
  position:relative;
  isolation:isolate;
  width:100%;
  max-width:720px;
  margin:0 auto clamp(28px,2.6vw,38px);
  text-align:center;
}
.faq-intro .eyebrow{justify-content:center;margin:0 auto 14px;font-size:8px}
.faq-intro h2{font-size:clamp(39px,3.7vw,56px);line-height:.96;letter-spacing:-.052em}
.faq-intro>p:not(.eyebrow){max-width:420px;margin:22px auto 0;color:var(--body-color);font-size:12px;line-height:1.7}
.faq-intro>.button{margin:22px auto 0}

/* The sculpture now sits centred behind these headings. A feathered veil plus a
   soft halo keeps blue text readable where it crosses the blue sculpture,
   without hiding the sculpture behind an opaque panel. */
.faq-intro::before,
.process-intro::before{
  content:"";
  position:absolute;
  z-index:-1;
  inset:-20% -16% -12%;
  pointer-events:none;
  background:radial-gradient(ellipse 62% 62% at 50% 42%,
    rgba(255,255,255,.9),
    rgba(255,255,255,.7) 42%,
    rgba(255,255,255,.32) 64%,
    rgba(255,255,255,0) 80%);
}
.faq-intro h2,
.process-intro h2{text-shadow:0 0 16px rgba(255,255,255,.92),0 0 42px rgba(255,255,255,.72)}
/* Gradient text is painted with a transparent fill, so a halo behind it bleeds
   through the glyphs and dulls the gradient. The veil covers this line instead. */
.faq-intro h2 .about-gradient-text,
.process-intro h2 .about-gradient-text{text-shadow:none}
.faq-intro .eyebrow,
.faq-intro>p:not(.eyebrow),
.process-intro .eyebrow,
.process-intro>p:last-child{text-shadow:0 0 12px rgba(255,255,255,.95),0 0 26px rgba(255,255,255,.7)}
.faq-list{
  max-width:860px;
  margin-inline:auto;
  padding:8px 24px;
  border:1px solid rgba(43,92,230,.14);
  border-radius:24px;
  background:rgba(255,255,255,.66);
  box-shadow:0 22px 62px rgba(30,58,138,.08),inset 0 1px 0 white;
  -webkit-backdrop-filter:blur(1px);
  backdrop-filter:blur(1px);
}
.faq-item summary{min-height:64px;padding:19px 0;font-size:13px}
.faq-answer{padding:0 34px 22px 0}
.faq-answer p{font-size:12px;line-height:1.75}

/* Kept as light as .process/.faq so the centred sculpture stays a visible,
   solid object rather than a backdrop hidden behind opaque panels. */
.contact{
  padding-block:clamp(46px,4.3vw,62px);
  background:
    radial-gradient(circle at 50% 8%,rgba(255,255,255,.2),transparent 30%),
    radial-gradient(circle at 82% 78%,rgba(34,211,238,.07),transparent 28%),
    linear-gradient(180deg,rgba(255,255,255,.24),rgba(240,245,253,.32));
}

.contact-intro{
  position:relative;
  isolation:isolate;
  width:100%;
  max-width:640px;
  margin:0 auto clamp(28px,2.6vw,38px);
  text-align:center;
}
/* Same pill treatment as the stable About section's eyebrow, applied here and
   to Process/FAQ/Projects so every centred intro reads as one consistent
   pattern. */
.contact-intro .eyebrow,
.process-intro .eyebrow,
.faq-intro .eyebrow,
.projects-heading .eyebrow,
.flagship-copy .project-kicker{
  width:max-content;
  margin:0 auto 14px;
  padding:7px 11px;
  border:1px solid rgba(43,92,230,.12);
  border-radius:999px;
  background:rgba(255,255,255,.66);
}
.flagship-copy .project-kicker{
  margin:0 0 12px;
  color:var(--blue);
}
.contact-intro .eyebrow{font-size:8px}
.contact-intro h2{font-size:clamp(39px,3.7vw,56px);line-height:.96;letter-spacing:-.052em}
.contact-intro::before{
  content:"";
  position:absolute;
  z-index:-1;
  inset:-20% -16% -12%;
  pointer-events:none;
  background:radial-gradient(ellipse 62% 62% at 50% 42%,
    rgba(255,255,255,.9),
    rgba(255,255,255,.7) 42%,
    rgba(255,255,255,.32) 64%,
    rgba(255,255,255,0) 80%);
}
.contact-intro h2{text-shadow:0 0 16px rgba(255,255,255,.92),0 0 42px rgba(255,255,255,.72)}
.contact-intro .eyebrow{text-shadow:none}

.contact-body{display:flex;flex-direction:column;align-items:center}

.contact-form-wrap{
  width:100%;
  max-width:680px;
  padding:30px;
  border:1px solid rgba(43,92,230,.16);
  border-radius:24px;
  background:rgba(255,255,255,.82);
  box-shadow:0 24px 68px rgba(30,58,138,.09),inset 0 1px 0 white;
  -webkit-backdrop-filter:blur(1px);
  backdrop-filter:blur(1px);
}

.office-strip{
  width:100%;
  max-width:680px;
  display:flex;
  flex-direction:column;
  gap:12px;
  margin-top:20px;
}
.office-band{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:18px 24px;
  border:1px solid rgba(43,92,230,.14);
  border-radius:16px;
  background:rgba(255,255,255,.7);
  box-shadow:0 12px 32px rgba(30,58,138,.06),inset 0 1px 0 white;
  -webkit-backdrop-filter:blur(1px);
  backdrop-filter:blur(1px);
}
.office-band-info{min-width:0}
.office-band-city{display:flex;align-items:center;gap:10px;font:500 18px/1.2 var(--head);letter-spacing:-.02em;color:var(--ink)}
.office-flag{display:block;width:24px;height:16px;flex-shrink:0;border:1px solid rgba(30,58,138,.12);border-radius:3px;object-fit:cover;box-shadow:0 4px 10px rgba(30,58,138,.1)}
.office-band-label{font:400 8px/1 var(--body);letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}
.office-band-address{margin-top:6px;font-size:11.5px;line-height:1.6;color:var(--body-color)}
.office-band-contact{flex-shrink:0;text-align:right}
.office-band-contact>a{display:block;color:var(--blue);font-size:14px;font-weight:500}
.office-band-contact>a:hover{color:var(--deep-blue)}
.office-band-contact>.office-hours{display:block;margin-top:4px;font-size:10.5px;color:var(--muted)}

.linkedin-link{align-self:center;margin-top:16px}
.form-progress{margin-bottom:27px}
.form-progress li{padding-bottom:12px}
.service-picker>label>span{border-radius:11px;background:rgba(255,255,255,.52)}
.service-picker input:checked+span{background:linear-gradient(135deg,rgba(43,92,230,.1),rgba(34,211,238,.09))}
.form-fields input,.form-fields select,.form-fields textarea{border-radius:9px;background:rgba(255,255,255,.72)}

.site-footer{
  padding:42px 0 24px;
  border-top:1px solid rgba(43,92,230,.16);
  background:
    radial-gradient(circle at 50% 0%,rgba(34,211,238,.07),transparent 34%),
    linear-gradient(180deg,rgba(239,244,252,.86),rgba(246,249,253,.93));
}
.footer-grid{
  display:grid;
  grid-template-columns:1.4fr repeat(4,1fr);
  gap:32px;
  align-items:start;
}
.footer-brand{min-width:0}
.footer-brand p{margin-top:18px;max-width:230px;font-size:12px;line-height:1.65;color:var(--body-color)}
.footer-offices{display:flex;flex-direction:column;gap:12px;margin-top:22px}
.footer-office{display:flex;align-items:center;gap:10px;min-height:0;color:var(--ink)}
.footer-office:hover strong{color:var(--blue)}
.footer-flag{display:block;flex-shrink:0;width:22px;height:15px;border:1px solid rgba(30,58,138,.12);border-radius:3px;object-fit:cover}
.footer-office small{display:block;color:var(--muted);font-size:8px;letter-spacing:.07em;text-transform:uppercase}
.footer-office strong{display:block;margin-top:2px;color:var(--deep-blue);font:500 13px/1.2 var(--head);transition:color .2s}
.footer-col h3{margin:0 0 16px;color:var(--ink);font:600 10px/1 var(--body);letter-spacing:.1em;text-transform:uppercase}
.footer-col{display:flex;flex-direction:column;gap:12px;min-width:0}
.footer-col a{min-height:0;color:var(--body-color);font-size:12px;line-height:1.4}
.footer-col a:hover{color:var(--blue)}

@media(max-width:1180px){
  .process{min-height:0}
  .process-steps{grid-template-columns:repeat(2,minmax(0,1fr))}
  .process-steps::before{display:none}
  .process-step{min-height:190px}
  .process-step:nth-child(2n){border-right:0}
  .process-step:nth-child(-n+2){border-bottom:1px solid rgba(43,92,230,.11)}
  .insights-showcase{grid-template-columns:1fr}
  .insight-card{grid-template-columns:.78fr 1.22fr;grid-template-rows:none;min-height:350px}
  .insight-visual{min-height:350px}
}

@media(max-width:980px){
  .insights,.faq,.contact{padding-block:74px}
  .process{padding-block:50px}
  .process-intro{margin-bottom:24px}
  .process-intro h2{font-size:clamp(39px,3.7vw,56px)}
  .process-fit{grid-template-columns:1fr;gap:12px;padding-block:18px}
  .footer-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 24px}
  .footer-brand{grid-column:1/-1}
  .footer-offices{flex-direction:row;flex-wrap:wrap;gap:20px 32px}
}

@media(max-width:700px){
  .insights,.faq,.contact{padding-block:62px}
  .process{padding-block:44px}
  .process-intro h2{font-size:clamp(38px,11vw,52px)}
  .insights .section-heading h2{font-size:clamp(38px,11vw,52px)}
  .faq h2{font-size:clamp(38px,11vw,52px)}
  .process-intro>p:last-child{font-size:12px}
  .process-journey{border-radius:22px}
  .process-steps{grid-template-columns:1fr}
  .process-step{min-height:0;padding:24px 20px;border-right:0;border-bottom:1px solid rgba(43,92,230,.11)}
  .process-step:nth-child(-n+3){border-bottom:1px solid rgba(43,92,230,.11)}
  .process-step:last-child{border-bottom:0}
  .process-marker{margin-bottom:19px}
  .process-step>p{max-width:100%}
  .process-fit{padding:20px}
  .process-fit>div{display:grid;grid-template-columns:1fr 1fr;gap:11px 18px}
  .insight-card{grid-template-columns:1fr;grid-template-rows:auto;min-height:0}
  .insight-visual{min-height:220px}
  .insight-copy{min-height:330px;padding:26px}
  .insight-tile-visual{min-height:120px}
  .insight-tile-copy{min-height:230px;padding:22px}
  .faq-list{padding-inline:20px;border-radius:20px}
  .contact-intro h2{font-size:clamp(38px,11vw,52px)}
  .contact-form-wrap{padding:23px;border-radius:20px}
  .office-band{flex-direction:column;align-items:flex-start;gap:12px;padding:18px 20px}
  .office-band-contact{text-align:left}
  .footer-grid{grid-template-columns:1fr;gap:26px}
}

@media(max-width:390px){
  .process-fit>div{grid-template-columns:1fr}
  .contact-form-wrap{padding:20px}
}

/* One consistent eyebrow-pill treatment, matching the About section's "THE WAY
   WE THINK" pill exactly, applied everywhere a pill eyebrow is used. */
.hero-eyebrow,
.services-heading .eyebrow,
.projects-heading .eyebrow,
.flagship-more-kicker,
.contact-intro .eyebrow,
.form-success .eyebrow{
  width:max-content;
  min-height:30px;
  margin:0 auto 16px;
  padding:6px 10px;
  border:1px solid rgba(43,92,230,.12);
  border-radius:999px;
  background:rgba(255,255,255,.38);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9),0 12px 38px rgba(30,58,138,.06);
  -webkit-backdrop-filter:blur(12px);
  backdrop-filter:blur(12px);
  color:var(--blue);
  font-size:10px;
  font-weight:400;
  letter-spacing:.13em;
  text-align:center;
  justify-content:center;
}

/* Contact form: honeypot, consent checkbox, and the submit button's
   loading / done states. */
.form-honeypot{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-consent{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-start;
  gap:10px;
  margin-top:20px;
  color:var(--body-color);
  font-size:12px;
  line-height:1.6;
}
.form-consent input{flex-shrink:0;width:16px;height:16px;margin:1px 0 0;accent-color:var(--blue)}
.form-consent>span{flex:1 1 0%;min-width:0}
.form-buttons{justify-content:flex-end}
.form-consent a{color:var(--blue);text-decoration:underline}
.form-consent.is-invalid{color:#dc2626}
.form-consent .field-error{flex-basis:100%;margin-left:26px;margin-top:-4px}
#enquiry-form .button{position:relative}
#enquiry-form .button.is-loading{pointer-events:none;color:transparent}
#enquiry-form .button.is-loading .button-label{visibility:hidden}
#enquiry-form .button.is-loading::after{
  content:"";
  position:absolute;
  top:50%;
  left:50%;
  width:16px;
  height:16px;
  margin:-8px 0 0 -8px;
  border:2px solid rgba(255,255,255,.4);
  border-top-color:#fff;
  border-radius:50%;
  animation:enquiry-spin .7s linear infinite;
}
@keyframes enquiry-spin{to{transform:rotate(360deg)}}
#enquiry-form .button.is-done{background:#16a34a;border-color:#16a34a;pointer-events:none}
.form-status.is-error{color:#b91c1c;background:#fef2f2;border-left-color:#dc2626}

/* Required-field marker and per-field inline validation state. */
.form-fields .required-mark{color:#dc2626}
.form-fields label.is-invalid input,
.form-fields label.is-invalid select,
.form-fields label.is-invalid textarea{border-color:#dc2626;background:#fef2f2}
.field-error{display:block;margin-top:6px;color:#dc2626;font-size:11px;line-height:1.5}

/* Success panel, styled to match the rest of the site (pill eyebrow, gradient
   heading, icon badge) instead of the plain placeholder it replaced. */
.form-success{padding:8px 0 4px;text-align:center}
.form-success-icon{
  display:grid;
  place-items:center;
  width:56px;
  height:56px;
  margin:0 auto 18px;
  border-radius:50%;
  background:linear-gradient(155deg,#3b6ff0,var(--deep-blue) 78%);
  box-shadow:0 10px 26px rgba(30,58,138,.28);
}
.form-success-icon svg{width:24px;height:24px;color:#fff;stroke-width:2.4}
.form-success .eyebrow{margin:0 auto 14px}
.form-success h3{font-size:clamp(30px,3vw,38px);line-height:1.08;letter-spacing:-.03em}
.form-success p{max-width:360px;margin:16px auto 26px;color:var(--body-color);font-size:14px;line-height:1.7}
.form-success .button{margin:0 auto}
