/* Shared web system: no font downloads, no shadows, visible without JavaScript. */
:root{--ink:#102c40;--paper:#fbfcfd;--paper-2:#eef4f7;--white:#fff;--orange:#b4e1f2;--green:#b4e1f2;--muted:#526675;--line:#d8e3e9;--blue:#216282;--blue-deep:#102c40;--max:1200px;--radius:16px;--radius-sm:12px;--radius-lg:28px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:1rem;line-height:1.65;-webkit-font-smoothing:antialiased}img{display:block;max-width:100%;height:auto}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button{cursor:pointer}h1,h2,h3,p,figure{margin-top:0}h1,h2,h3{line-height:1.12;letter-spacing:-.04em;text-wrap:balance;overflow-wrap:break-word;hyphens:auto}h1{font-size:clamp(2.6rem,5.6vw,5.4rem);font-weight:650;margin-bottom:1.6rem}h2{font-size:clamp(2rem,3.6vw,3.5rem);font-weight:600;margin-bottom:1.4rem}h3{font-size:1.4rem;font-weight:600;letter-spacing:-.025em}p{margin-bottom:1.25rem}::selection{background:#b4e1f2;color:#102c40}:focus-visible{outline:3px solid #23789f;outline-offset:5px}.container{width:min(calc(100% - 64px),var(--max));margin-inline:auto}.section{padding:clamp(4.5rem,8vw,8rem) 0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;top:12px;left:12px;z-index:400;padding:12px 18px;background:white;color:var(--ink);border-radius:10px;transform:translateY(-160%)}.skip-link:focus{transform:none}.eyebrow{display:flex;align-items:center;gap:.65rem;color:var(--blue);font-size:.75rem;font-weight:650;letter-spacing:.1em;text-transform:uppercase;margin-bottom:1.25rem}.eyebrow>span{width:6px;height:6px;background:currentColor;border-radius:50%;flex:none}.eyebrow-light{color:var(--orange)}
.button{display:inline-flex;align-items:center;justify-content:center;gap:1.2rem;min-height:50px;padding:.85rem 1.4rem;max-width:100%;border:1px solid transparent;border-radius:999px;font-size:.95rem;font-weight:600;line-height:1.4;text-align:center;transition:background-color .18s,color .18s}.button-primary{background:var(--ink);color:white}.button-primary:hover{background:var(--blue)}.button-light{background:white;color:var(--ink)}.button-light:hover{background:var(--orange)}.button span{flex:none}.text-link{display:inline-flex;align-items:center;gap:.8rem;padding:.7rem 0;border-bottom:1px solid currentColor;font-size:.94rem;font-weight:600}.text-link:hover{color:var(--blue)}
.site-header{position:fixed;inset:0 0 auto;z-index:100;background:rgba(251,252,253,.96);border-bottom:1px solid var(--line);color:var(--ink)}.header-inner{display:flex;align-items:center;justify-content:space-between;gap:2rem;min-height:80px}.brand{display:flex;align-items:center;gap:.7rem;flex:none}.brand-mark{display:grid;place-items:center;width:40px;aspect-ratio:1;border-radius:13px;background:var(--ink);color:white;font-size:.8rem;font-weight:650}.brand strong,.brand small{display:block;line-height:1.3}.brand strong{font-size:.9rem;letter-spacing:-.025em}.brand small{margin-top:.15rem;color:var(--muted);font-size:.62rem;letter-spacing:.08em;text-transform:uppercase}.main-nav{display:flex;align-items:center;gap:1.8rem;font-size:.82rem;font-weight:550}.main-nav a{padding:.65rem 0}.main-nav a:hover{text-decoration:underline;text-underline-offset:6px}.main-nav a:last-child{padding:.6rem 1.1rem;border-radius:999px;background:var(--ink);color:white}.menu-toggle{display:none;min-width:44px;min-height:44px;padding:7px;border:0;border-radius:10px;background:var(--paper-2);color:var(--ink)}.menu-toggle span:not(.sr-only){display:block;width:23px;height:2px;margin:5px auto;background:currentColor}
.hero{padding:clamp(8.5rem,12vw,11rem) 0 5rem;background:var(--paper);color:var(--ink)}.hero-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(2.5rem,5vw,5rem);align-items:center}.hero h1 em{font-style:normal;color:var(--blue)}.hero-lead{max-width:34rem;font-size:1.13rem;color:var(--muted);line-height:1.7}.hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.8rem;margin:2rem 0 1.7rem}.trust-list{display:flex;flex-wrap:wrap;gap:.6rem 1.5rem;margin:0;padding:0;list-style:none;color:var(--muted);font-size:.78rem}.trust-list span{color:var(--blue)}.hero-visual{position:relative;margin:0;padding-top:1.5rem}.hero-art{margin:0;border-radius:32px;background:var(--ink);overflow:hidden}.hero-art img{width:100%;aspect-ratio:4/4.3;object-fit:cover}.hero-art figcaption{padding:1rem 1.35rem;color:#c3dce9;font-size:.72rem;line-height:1.5}.hero-person{display:flex;align-items:center;gap:.9rem;padding:1.4rem 0 0}.hero-person img{width:46px;height:46px;object-fit:cover;border-radius:50%}.hero-person strong,.hero-person span{display:block;font-size:.82rem}.hero-person span{color:var(--muted);font-size:.76rem}.hero-person a{text-decoration:underline;text-underline-offset:4px}.hero-ruler,.service-line{display:none}
.section-heading{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:clamp(2rem,7vw,7rem);align-items:end;margin-bottom:3.5rem}.section-heading h2{margin-bottom:0}.section-heading>p{color:var(--muted);margin-bottom:0}.services{background:var(--paper-2)}.service-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3rem 5rem}.service-item{padding-top:1.6rem;border-top:1px solid #bfd0db}.service-kicker{font-size:.73rem;font-weight:600;color:var(--blue);margin-bottom:.85rem}.service-item h3{font-size:clamp(1.5rem,2.3vw,2rem)}.service-item>p:not(.service-kicker){color:var(--muted);max-width:32rem}.service-item ul{display:flex;flex-wrap:wrap;gap:.5rem 1.1rem;margin:1rem 0;padding:0;list-style:none;color:var(--muted);font-size:.78rem}.service-item li::before{content:'·';margin-right:.5rem}.service-item .text-link{font-size:.86rem}
.home-showcase{padding:clamp(4.5rem,8vw,8rem) 0;background:var(--paper)}.showcase-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem}.showcase-card{display:block;min-width:0}.showcase-card picture{display:block;overflow:hidden;border-radius:var(--radius-lg);background:var(--ink)}.showcase-card img{width:100%;aspect-ratio:1.5;object-fit:cover;transition:transform .4s}.showcase-copy{display:flex;justify-content:space-between;gap:1.2rem;padding:1.2rem 0}.showcase-copy>span:first-child{min-width:0;flex:1}.showcase-copy>span:last-child{flex:none;color:var(--blue);font-size:1.5rem}.showcase-copy small{display:block;margin-bottom:.35rem;color:var(--muted);font-size:.75rem}.showcase-copy strong{display:block;font-size:clamp(1.15rem,2vw,1.5rem);line-height:1.3;letter-spacing:-.025em;overflow-wrap:anywhere;hyphens:auto}.ai-note{display:block;margin:.65rem 0 0;color:var(--muted);font-size:.7rem}.showcase-card:hover strong{text-decoration:underline;text-underline-offset:5px}
.custom{background:var(--ink);color:white}.custom-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(3rem,8vw,7rem)}.custom-copy{align-self:start;position:sticky;top:120px}.lead-light{color:#c0d3df;font-size:1.05rem}.solution-list{border-top:1px solid #446175}.solution-list article{padding:1.6rem 0;border-bottom:1px solid #446175}.solution-label{font-size:.73rem;color:var(--orange);margin-bottom:.65rem}.solution-list h3{font-size:1.5rem}.solution-list article>p:last-child{margin:0;color:#c0d3df}.solution-list a{text-decoration:underline;text-underline-offset:4px;color:var(--orange)}
.process-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2rem;list-style:none;margin:0;padding:0}.process-grid li{border-top:1px solid var(--line);padding-top:1.4rem}.process-grid span{display:block;margin-bottom:2rem;color:var(--blue);font-size:.78rem}.process-grid h3{font-size:1.2rem}.process-grid p{color:var(--muted);font-size:.94rem}.about{background:var(--paper-2)}.about-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(3rem,8vw,7rem);align-items:center}.portrait{position:relative;margin:0}.portrait picture{display:block}.portrait img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:var(--radius-lg)}.portrait-label{padding:1rem 0;display:flex;flex-direction:column}.portrait-label span{font-size:.8rem;color:var(--muted)}.about-copy>p:not(.eyebrow){color:var(--muted)}.tech-stack{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.8rem}.tech-stack span{padding:.4rem .8rem;border:1px solid #c1d1db;border-radius:999px;font-size:.75rem}
.faq-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(3rem,7vw,6rem)}.faq-grid>div>p:last-child{color:var(--muted)}.faq-list{border-top:1px solid var(--line)}.faq-list details{border-bottom:1px solid var(--line)}.faq-list summary{display:flex;justify-content:space-between;align-items:center;gap:1.2rem;min-height:64px;padding:1.4rem 0;cursor:pointer;font-weight:550;list-style:none;line-height:1.5}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary span{display:grid;place-items:center;width:28px;height:28px;flex:none;border-radius:50%;background:var(--paper-2)}.faq-list details[open] summary span{transform:rotate(45deg)}.faq-list details p{color:var(--muted);padding-right:2rem}
.contact,.landing-contact{background:#e0eff6}.contact-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(2.5rem,6vw,5rem);align-items:start}.contact .eyebrow-light{color:var(--blue)}.contact-copy>p:not(.eyebrow){color:var(--muted)}.contact-direct{display:grid;gap:1.2rem;margin-top:2rem}.contact-direct a{display:flex;flex-direction:column;align-items:flex-start}.contact-direct small{color:var(--muted);font-size:.73rem}.contact-direct strong{font-size:1rem;font-weight:550;overflow-wrap:anywhere}.contact-direct a:hover strong{text-decoration:underline;text-underline-offset:4px}.contact-form{padding:clamp(1.3rem,3vw,2.5rem);border-radius:var(--radius-lg);background:white}.form-intro{font-size:.85rem;color:var(--muted);margin-bottom:1.6rem}.field-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.contact-form label{display:block;margin-bottom:1.2rem;font-size:.85rem;font-weight:550;color:var(--ink)}.contact-form input,.contact-form textarea,.contact-form select{display:block;width:100%;min-width:0;margin-top:.5rem;padding:.8rem .9rem;border:1px solid #9cb1be;border-radius:var(--radius-sm);background:var(--paper);color:var(--ink);font-size:1rem;line-height:1.5}.contact-form textarea{resize:vertical;min-height:150px}.contact-form :is(input,textarea,select):focus-visible{outline:2px solid var(--blue);outline-offset:2px}.contact-form ::placeholder{color:#647785;opacity:1}.field-hint{display:block;margin-top:.5rem;color:var(--muted);font-size:.75rem;font-weight:400}.honeypot{position:absolute!important;left:-10000px!important;width:1px;height:1px;overflow:hidden}.form-footer{display:flex;flex-direction:column;align-items:stretch;gap:1.25rem}.form-footer p{margin:0;color:var(--muted);font-size:.75rem}.form-footer a{text-decoration:underline;text-underline-offset:3px}.contact-form .button{background:var(--ink);color:white}.contact-form .button:hover{background:var(--blue)}.contact-form button:disabled{opacity:.65;cursor:wait}.form-status{margin:1rem 0 0;font-size:.85rem}.form-status:empty{display:none}.form-status.is-error{color:#963e3e}.form-status.is-success{color:#216048}.form-status a{text-decoration:underline}.contact-assurance{padding-left:1.1rem;color:var(--muted);font-size:.85rem}.contact-assurance li{margin:.4rem 0}
.site-footer{padding:4rem 0 1.5rem;background:var(--ink);color:white}.footer-inner{display:grid;grid-template-columns:minmax(0,1.5fr) repeat(2,minmax(0,1fr));gap:3rem;padding-bottom:3rem}.footer-brand{margin-bottom:1.5rem}.footer-brand .brand-mark{background:var(--orange);color:var(--ink)}.footer-brand small{color:#bdd1df}.footer-inner>div>p{color:#bdd1df;font-size:.85rem}.footer-inner nav{display:flex;flex-direction:column;align-items:flex-start;gap:.65rem;color:#bdd1df;font-size:.82rem}.footer-inner nav strong{color:white;margin-bottom:.5rem}.footer-inner nav a{overflow-wrap:anywhere}.footer-inner nav a:hover{text-decoration:underline;text-underline-offset:4px}.footer-bottom{display:flex;justify-content:space-between;gap:1rem;border-top:1px solid #426074;padding-top:1.5rem;color:#bdd1df;font-size:.73rem}.cookie-settings-link{padding:0;border:0;background:none;color:inherit;text-align:left;font:inherit;text-decoration:underline;text-underline-offset:4px}
.reveal{opacity:1;transform:none}.hero-grid>*,.custom-grid>*,.about-grid>*,.faq-grid>*,.contact-grid>*,.section-heading>*{min-width:0}
html.consent-open{overflow:hidden}.consent-layer{position:fixed;inset:0;z-index:300;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(16,44,64,.5)}.consent-layer[hidden]{display:none}.consent-dialog{width:min(600px,100%);max-height:calc(100svh - 48px);overflow:auto;padding:clamp(1.5rem,4vw,2.5rem);border-radius:24px;background:var(--paper);color:var(--ink)}.consent-eyebrow{color:var(--blue);font-size:.73rem;font-weight:600;margin-bottom:1rem}.consent-dialog h2{font-size:clamp(1.8rem,4vw,2.5rem)}.consent-heading>p:last-child{color:var(--muted);font-size:.9rem}.consent-details-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:48px;margin-top:1.3rem;padding:.8rem 0;border:0;border-block:1px solid var(--line);background:none;color:var(--ink);font-weight:550;text-align:left}.consent-category{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 0;border-bottom:1px solid var(--line)}.consent-category p{margin:.3rem 0 0;color:var(--muted);font-size:.8rem}.consent-required{flex:none;font-size:.72rem;color:var(--blue)}.consent-switch{flex:none}.consent-switch input{width:24px;height:24px;accent-color:var(--blue)}.consent-save{margin-top:1rem;background:var(--paper-2);color:var(--ink);border:1px solid var(--line);border-radius:999px;padding:.8rem 1.2rem}.consent-actions{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-top:1.5rem}.consent-actions button{min-height:50px;padding:.8rem 1rem;border:0;border-radius:999px;background:var(--ink);color:white;font-weight:550}.consent-actions button:hover{background:var(--blue)}.consent-links{display:flex;gap:1rem;margin:1rem 0 0;color:var(--muted);font-size:.8rem}.consent-links a{text-decoration:underline}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.showcase-card:hover img{transform:scale(1.025)}}
@media(max-width:1000px){.main-nav{gap:1.1rem}.hero-grid{gap:2rem}.hero h1{font-size:clamp(2.6rem,5.7vw,4rem)}}
@media(max-width:900px){.menu-toggle{display:block}.main-nav{position:absolute;top:80px;left:0;right:0;display:none;flex-direction:column;align-items:stretch;padding:1rem 32px 1.5rem;background:var(--paper);border-bottom:1px solid var(--line);max-height:calc(100svh - 80px);overflow:auto}.main-nav.is-open{display:flex}.main-nav a{padding:.65rem 0}.main-nav a:last-child{text-align:center}.hero-grid,.custom-grid,.about-grid,.faq-grid,.contact-grid,.section-heading{grid-template-columns:minmax(0,1fr)}.hero-grid{gap:2.5rem}.hero h1{max-width:42rem;font-size:clamp(2.6rem,7vw,4.6rem)}.hero-art img{aspect-ratio:16/9;object-position:center}.hero-visual{padding-top:0}.hero-person{padding-top:1rem}.hero-lead{max-width:42rem}.custom-copy{position:static}.process-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portrait{max-width:440px}.section-heading{gap:1.5rem}.service-grid{gap:2.5rem}.footer-inner{grid-template-columns:minmax(0,1.3fr) repeat(2,minmax(0,1fr));gap:2rem}}
@media(max-width:600px){.container{width:calc(100% - 40px)}.header-inner{min-height:72px}.main-nav{top:72px;max-height:calc(100svh - 72px);padding-inline:20px}.hero{padding:7.5rem 0 3.5rem}.hero h1{font-size:clamp(2.5rem,10.4vw,3.7rem)}.hero-lead{font-size:1rem}.hero-actions{align-items:stretch;flex-direction:column;gap:.8rem}.hero-actions .text-link{align-self:flex-start}.hero-art{border-radius:22px}.hero-art img{aspect-ratio:4/3}.trust-list{gap:.45rem 1rem}.service-grid,.showcase-grid,.field-row{grid-template-columns:minmax(0,1fr)}.service-grid{gap:2.5rem}.section-heading{margin-bottom:2.5rem}.showcase-grid{gap:2rem}.contact-form{border-radius:22px}.faq-list details p{padding-right:0}.footer-inner{grid-template-columns:repeat(2,minmax(0,1fr))}.footer-inner>div{grid-column:1/-1}.footer-bottom{flex-direction:column}.consent-layer{padding:12px}.consent-dialog{max-height:calc(100svh - 24px)}.consent-actions{grid-template-columns:1fr}.consent-category{align-items:flex-start}}
@media(max-width:380px){.container{width:calc(100% - 32px)}.process-grid,.footer-inner{grid-template-columns:minmax(0,1fr)}.hero h1{font-size:2.4rem}.brand small{font-size:.6rem}.button{font-size:.9rem}.consent-category{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
@media(forced-colors:active){.button,.brand-mark,.menu-toggle,.consent-actions button{border:1px solid ButtonText}}
[hidden]{display:none!important}.consent-actions{grid-template-columns:1fr}
