@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--navy:#10263d;--blue:#096ab7;--ink:#152b40;--muted:#576879;--line:#dbe3ea;--pale:#eef4f8;--white:#fff;--radius:5px}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;color:var(--ink);font:16px/1.75 Manrope,Arial,sans-serif;background:#fff}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #1993e3;outline-offset:5px}img{max-width:100%;display:block}h1,h2,h3,p{margin:0}h1,h2,h3{line-height:1.18;letter-spacing:-.045em}h1{font-size:clamp(2.6rem,5vw,4.8rem);font-weight:800}h2{font-size:clamp(2rem,3.5vw,3rem)}h3{font-size:1.3rem;letter-spacing:-.025em}p{color:var(--muted)}.wrap{width:min(1240px,calc(100% - 72px));margin:auto}.topbar{background:var(--navy);color:#dfe9f3;font-size:12px;letter-spacing:.025em}.topbar .wrap{display:flex;align-items:center;justify-content:space-between;min-height:35px}.topbar a{margin-left:25px}.header{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}.nav{height:94px;display:flex;align-items:center;gap:32px}.logo{width:215px;margin-right:auto}.navlinks{display:flex;align-items:center;gap:28px;font-size:14px;font-weight:700}.navlinks a:hover,.navlinks a[aria-current=page]{color:var(--blue)}.button{display:inline-flex;align-items:center;justify-content:center;gap:22px;background:var(--blue);color:#fff;border:1px solid var(--blue);border-radius:var(--radius);padding:13px 22px;font-weight:700;font-size:14px;cursor:pointer;line-height:1.6;transition:background .2s}.button:hover{background:#07538f;border-color:#07538f}.button.light{background:transparent;color:var(--ink);border-color:#b6c5d2}.button.light:hover{background:#e9f0f7}.button.white{background:#fff;color:var(--navy);border-color:#fff}.menu-toggle{display:none;background:none;border:1px solid var(--line);padding:9px 13px;color:var(--navy);border-radius:4px}.eyebrow{text-transform:uppercase;font-size:12px;font-weight:800;letter-spacing:.16em;color:var(--blue);display:flex;align-items:center;gap:10px;margin-bottom:23px}.eyebrow:before{content:'';height:2px;width:26px;background:currentColor}.hero{background:#f2f6f9;overflow:hidden}.hero-grid{display:grid;grid-template-columns:1.13fr 1fr;gap:60px;align-items:center;padding-top:60px;padding-bottom:60px}.hero h1{max-width:680px}.hero h1 em{font-style:normal;color:var(--blue)}.hero-copy>p{font-size:17px;max-width:530px;margin:25px 0 29px;line-height:1.9}.actions{display:flex;gap:14px;flex-wrap:wrap}.hero-foot{display:flex;gap:23px;flex-wrap:wrap;margin-top:32px;color:#4c6073;font-size:12px;font-weight:600}.hero-foot span:before{content:'✓';color:var(--blue);margin-right:8px}.hero-image{height:470px;position:relative;background:var(--navy);border-radius:5px;overflow:hidden}.hero-image>img{width:100%;height:100%;object-fit:cover}.hero-image:after{content:'';position:absolute;inset:40% 0 0;background:linear-gradient(transparent,rgba(6,23,40,.85));pointer-events:none}.image-caption{position:absolute;bottom:28px;left:30px;right:30px;z-index:1;color:#fff;border-top:1px solid #ffffff50;padding-top:18px;display:flex;gap:25px;align-items:center}.image-caption small{font-size:11px;letter-spacing:.12em;opacity:.7}.image-caption strong{font-size:18px;line-height:1.4}.image-caption .number{font-size:40px;color:#70bcf5}.reference-strip{padding:27px 0;border-bottom:1px solid var(--line)}.reference-row{display:flex;align-items:center;justify-content:space-between;gap:30px}.reference-row>span{font-size:11px;letter-spacing:.12em;color:var(--muted);max-width:105px;text-transform:uppercase}.reference-name{font-weight:800;font-size:17px;color:#667380;line-height:1.2;letter-spacing:-.04em}.reference-name small{display:block;font-size:10px;letter-spacing:.1em;margin-top:5px}.section{padding:88px 0}.section-head{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:35px}.section-head p{max-width:380px;font-size:15px}.section-head .eyebrow{margin-bottom:14px}.text-link{font-size:14px;color:var(--blue);font-weight:800;white-space:nowrap}.text-link:hover{text-decoration:underline}.services{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.service{display:flex;flex-direction:column;border:1px solid var(--line);padding:30px;min-height:282px;border-radius:var(--radius);background:#fff;transition:border-color .2s,transform .2s}.service:hover{border-color:var(--blue);transform:translateY(-3px)}.service-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px}.icon{display:flex;width:44px;height:44px;align-items:center;justify-content:center;background:#edf5fb;color:var(--blue);border-radius:4px}.icon svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.service-num{color:#9babb9;font-size:12px}.service p{margin:15px 0 23px;font-size:14px;line-height:1.85}.service .text-link{margin-top:auto}.split{display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:center}.soft{background:var(--pale)}.process{list-style:none;padding:0;margin:0;counter-reset:steps}.process li{display:grid;grid-template-columns:42px 1fr;gap:16px;padding:21px 0;border-bottom:1px solid #ccd9e3;counter-increment:steps}.process li:before{content:'0' counter(steps);font-size:13px;color:var(--blue);padding-top:3px}.process h3{font-size:18px;margin-bottom:7px}.process p{font-size:14px}.split-copy>p{margin:22px 0 26px}.dark{background:var(--navy);color:#fff}.dark p{color:#c2d0dc}.dark .eyebrow{color:#74b8e9}.cta{padding:60px 0}.cta .wrap{display:flex;justify-content:space-between;gap:40px;align-items:center}.cta h2{font-size:clamp(1.8rem,3vw,2.7rem);margin-bottom:13px}.cta p{font-size:15px}.footer{padding:55px 0 25px;background:#f7f9fb}.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1.2fr;gap:65px}.footer .logo{width:200px;margin-bottom:20px}.footer p,.footer a{font-size:13px}.footer h3{font-size:14px;margin-bottom:20px;letter-spacing:0}.footer ul{list-style:none;padding:0;margin:0}.footer li{margin:8px 0}.footer a:hover{color:var(--blue)}.footer-bottom{display:flex;justify-content:space-between;gap:20px;margin-top:40px;border-top:1px solid var(--line);padding-top:22px;color:var(--muted);font-size:11px}.skip{position:absolute;left:15px;top:-80px;z-index:99;background:white;padding:12px}.skip:focus{top:10px}.page-hero{background:var(--pale);padding:50px 0 62px}.breadcrumb{font-size:12px;color:var(--muted);margin-bottom:25px}.breadcrumb a{color:var(--blue)}.page-hero h1{font-size:clamp(2.4rem,4.5vw,3.8rem);max-width:920px}.page-hero p{font-size:18px;max-width:770px;margin-top:24px}.detail-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:70px}.prose h2{font-size:28px;margin:35px 0 18px}.prose h2:first-child{margin-top:0}.prose h3{margin:24px 0 12px}.prose p{margin:15px 0}.prose li{color:var(--muted);margin:10px 0}.prose a{color:var(--blue);text-decoration:underline}.aside{background:var(--pale);padding:28px;align-self:start;border-top:3px solid var(--blue);position:sticky;top:125px}.aside h3{font-size:23px}.aside p{font-size:14px;margin:18px 0}.aside .button{width:100%}.faq{margin-top:35px}details{border-bottom:1px solid var(--line);padding:19px 0}summary{cursor:pointer;font-weight:700;line-height:1.5;padding-right:15px}details p{font-size:15px;margin:14px 0 0!important}.contact-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:80px}.contact-list{display:grid;gap:25px;margin-top:35px}.contact-list span{display:block;text-transform:uppercase;letter-spacing:.12em;font-size:11px;color:var(--muted);margin-bottom:5px}.contact-list a{font-size:22px;font-weight:700}.form{background:var(--pale);padding:35px;border-radius:5px}.form h2{font-size:25px;margin-bottom:20px}.field{margin-bottom:18px}.field label{display:block;font-size:14px;font-weight:600;margin-bottom:6px}.field input,.field textarea,.field select{width:100%;background:#fff;border:1px solid #b7c8d6;border-radius:4px;padding:12px;color:var(--ink);min-height:48px}.field textarea{resize:vertical}.form-note{font-size:12px;margin:16px 0}.form-status{font-size:14px;color:var(--blue);margin-top:16px}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.card{padding:28px;border:1px solid var(--line);border-radius:5px}.card p{font-size:14px;margin:16px 0}.card .tag{font-size:11px;color:var(--blue);text-transform:uppercase;letter-spacing:.1em;margin-bottom:18px;display:block}.article{max-width:780px;margin:auto}.article .prose{font-size:17px}.partner-list{display:flex;flex-wrap:wrap;gap:16px;margin-top:25px}.partner-list span{border:1px solid var(--line);padding:17px 25px;font-weight:700}.note{font-size:13px;color:var(--muted);margin-top:22px}.not-found{text-align:center;padding:100px 0}.not-found p{margin:25px 0}
@media(min-width:1500px){.hero-grid{padding-top:80px;padding-bottom:80px}.hero-image{height:520px}}@media(max-width:1050px){.wrap{width:calc(100% - 48px)}.nav{gap:20px}.logo{width:180px}.navlinks{gap:17px;font-size:13px}.nav>.button{padding:11px 15px}.hero-grid{gap:30px}.hero-image{height:440px}.hero h1{font-size:3.4rem}.hero-foot{gap:12px}.services{gap:14px}.service{padding:24px}.split{gap:45px}.reference-name{font-size:14px}.detail-layout{gap:35px}.contact-grid{gap:35px}}@media(max-width:800px){.topbar .wrap>span{display:none}.topbar .wrap{justify-content:center}.topbar a{margin:0 10px}.nav{height:76px}.nav>.button{margin-left:auto}.logo{margin-right:0}.menu-toggle{display:block}.navlinks{display:none;position:absolute;left:0;right:0;top:76px;padding:20px 24px;background:#fff;border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;gap:0;box-shadow:0 10px 15px #10263d12}.navlinks.open{display:flex}.navlinks a{padding:10px 0;font-size:16px}.hero-grid{padding-top:42px;padding-bottom:42px;grid-template-columns:1fr}.hero h1{font-size:clamp(2.6rem,7vw,3.6rem);max-width:640px}.hero-copy>p{max-width:600px}.hero-image{height:340px}.hero-image>img{object-position:center 45%}.hero-foot{margin-top:23px}.reference-row{flex-wrap:wrap;justify-content:center;gap:25px}.reference-row>span{max-width:none;width:100%;text-align:center}.reference-name{font-size:15px}.section{padding:60px 0}.section-head{align-items:start;gap:25px}.services,.cards{grid-template-columns:repeat(2,1fr)}.split{grid-template-columns:1fr;gap:25px}.cta .wrap{align-items:start;flex-direction:column;gap:25px}.footer-grid{gap:30px;grid-template-columns:1fr 1fr}.footer-grid>div:first-child{grid-column:1/-1;max-width:400px}.detail-layout,.contact-grid{grid-template-columns:1fr}.aside{position:static}.page-hero{padding:35px 0 45px}.page-hero p{font-size:16px}}@media(max-width:480px){.wrap{width:calc(100% - 36px)}.topbar{font-size:10px}.logo{width:151px}.nav{gap:12px}.nav>.button{font-size:12px;padding:10px 12px}.menu-toggle{padding:7px 10px;font-size:17px}.hero h1{font-size:2.75rem}.hero-copy>p{font-size:16px}.hero-image{height:310px}.hero-foot{font-size:11px}.eyebrow{font-size:10px}.services,.cards{grid-template-columns:1fr}.section-head{flex-direction:column}.service{min-height:250px}.service-top{margin-bottom:20px}.reference-name{font-size:13px}.reference-row{gap:20px}.footer-grid{grid-template-columns:1fr;gap:28px}.footer-grid>div:first-child{grid-column:auto}.footer-bottom{flex-direction:column;gap:8px}.form{padding:23px}.actions .button{padding:12px 17px}.image-caption{left:22px;right:22px}.contact-list a{font-size:20px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
.service p,.process p,.card p{font-size:16px}.contact-list a{overflow-wrap:anywhere}@media(max-width:360px){.nav{gap:8px}.logo{width:120px}.nav>.button{padding:10px;font-size:11px}}
.navlinks{gap:20px;white-space:nowrap}.logo{flex-shrink:0}.nav>.button{flex-shrink:0}@media(min-width:801px) and (max-width:1100px){.menu-toggle{display:block}.nav>.button{margin-left:auto}.navlinks{display:none;position:absolute;left:0;right:0;top:94px;padding:20px 24px;background:#fff;border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;gap:0;box-shadow:0 10px 15px #10263d12}.navlinks.open{display:flex}.navlinks a{padding:10px 0;font-size:16px}}
.partner-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px;margin-top:35px}.partner-card{margin:0;background:#fff;border:1px solid var(--line);border-radius:6px;overflow:hidden;transition:border-color .2s,box-shadow .2s}.partner-card:hover{border-color:#8ebbdc;box-shadow:0 8px 25px #10263d0a}.partner-logo{height:154px;padding:30px 24px;display:flex;align-items:center;justify-content:center}.partner-logo img{width:100%;height:100%;object-fit:contain}.partner-card figcaption{text-align:center;border-top:1px solid #edf1f5;padding:12px 10px;font-size:14px;font-weight:600;color:var(--muted);background:#fafcfd}@media(max-width:1000px){.partner-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}}@media(max-width:680px){.partner-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.partner-logo{height:124px;padding:22px 16px}}@media(max-width:360px){.partner-logo{height:108px;padding:18px 12px}.partner-card figcaption{font-size:13px}}
.language-switch{display:flex;align-items:center;gap:4px;margin-left:20px}.topbar .language-switch a{margin:0;padding:3px 8px;line-height:1.5;border-radius:3px;font-size:12px;font-weight:700}.language-switch a[aria-current=true]{background:#fff;color:var(--navy)}.topbar .wrap>span{margin-right:auto}.reference-card{padding:0;overflow:hidden}.reference-image{height:210px;padding:25px;background:#fff;display:flex;align-items:center;justify-content:center;border-bottom:1px solid var(--line)}.reference-image img{height:100%;width:100%;object-fit:contain}.reference-card-body{padding:24px}.reference-card-body h2{font-size:21px;line-height:1.4;letter-spacing:-.02em}.reference-card-body .tag{margin-bottom:10px}@media(max-width:800px){.topbar .wrap{justify-content:space-between}}@media(max-width:600px){.topbar .wrap>div>a[href^="mailto:"]{display:none}.topbar .wrap>div>a{margin-left:0;font-size:12px}.reference-image{height:185px;padding:22px}.language-switch{margin-left:auto}}html[lang=en] .hero h1{font-size:clamp(2.4rem,4.3vw,4.2rem)}@media(max-width:480px){html[lang=en] .hero h1{font-size:2.5rem}}
@media(max-width:480px){html[lang=en] .nav>.button{font-size:11px;padding:10px 9px;gap:0}html[lang=en] .nav>.button span{display:none}}
/* Shared interior page banners: brand navy, clear text and blue accents. */
.page-hero{background:linear-gradient(115deg,#10263d 0%,#163c5d 68%,#155582 100%);border-top:1px solid #24445f;border-bottom:4px solid #1689d1;color:#fff}
.page-hero h1{color:#fff}
.page-hero p{color:#dfebf4}
.page-hero .eyebrow{color:#83ceff}
.page-hero .breadcrumb{color:#c8d9e7}
.page-hero .breadcrumb a{color:#a4dcff}
.page-hero .breadcrumb a:hover{color:#fff;text-decoration:underline;text-underline-offset:4px}

.logo img{width:100%;height:auto;object-fit:contain}.footer .logo{display:block;background:#fff;padding:8px;border-radius:5px}.footer .logo img{filter:none}
/* Homepage banner aligned with the brand palette and interior banners. */
.hero{background:radial-gradient(ellipse at 85% 25%,#174d76 0%,#12334f 40%,#10263d 80%);color:#fff;border-bottom:4px solid #1689d1}
.hero h1{color:#fff}.hero h1 em{color:#76caff}
.hero .eyebrow{color:#83ceff}.hero-copy>p{color:#dfebf4}
.hero-foot{color:#d4e4f0}.hero-foot span:before{color:#83ceff}
.hero .button:not(.light){background:#0875c1;border-color:#258fd4;color:#fff}
.hero .button:not(.light):hover{background:#0965a5;border-color:#76caff}
.hero .button.light{background:#ffffff08;border-color:#8cacc5;color:#fff}
.hero .button.light:hover{background:#ffffff16;border-color:#b9dfff}
.hero-image{border:1px solid #4e7898;box-shadow:0 18px 45px #06142440}
.reference-row{display:flex;gap:28px;align-items:center}.reference-row>span{flex:0 0 145px}.reference-window{flex:1;min-width:0;overflow:hidden}.reference-track{display:flex;width:max-content;animation:reference-scroll 28s linear infinite}.reference-group{display:flex;align-items:center;gap:80px;padding-right:80px;flex-shrink:0}.reference-group .reference-name{flex-shrink:0;white-space:nowrap}.reference-window:hover .reference-track,.reference-window:focus-within .reference-track,.reference-strip.is-paused .reference-track{animation-play-state:paused}.reference-pause{flex-shrink:0;border:1px solid #dbe3ea;border-radius:4px;background:#fff;color:#10263d;width:36px;height:36px;cursor:pointer}.reference-pause[aria-pressed=true]{background:#e5f2fc;border-color:#096ab7}@keyframes reference-scroll{to{transform:translateX(-50%)}}@media(max-width:600px){.reference-row{flex-wrap:wrap;gap:16px}.reference-row>span{flex-basis:100%}.reference-window{width:calc(100% - 52px)}.reference-group{gap:45px;padding-right:45px}}@media(prefers-reduced-motion:reduce){.reference-track{animation:none}.reference-window{overflow-x:auto}.reference-group[aria-hidden=true],.reference-pause{display:none}}

.presentation{background:#10263d;border-radius:8px;overflow:hidden;margin:24px 0}.presentation-controls{display:flex;align-items:center;justify-content:center;gap:24px;padding:14px;color:#fff}.presentation-controls button{border:1px solid #7299b7;background:#163c5d;color:#fff;border-radius:5px;width:48px;height:40px;cursor:pointer}.presentation-controls button:disabled{opacity:.35;cursor:default}.presentation-slide{width:100%;height:auto;display:block}
/* Lower sections share the navy and blue palette with readable light cards. */
.section:not(.dark):not(.soft){background:#f5f9fd}
.service,.card{background:#fff;border-color:#caddeb;box-shadow:0 5px 20px #10263d05}
.service:hover{border-color:#1689d1;box-shadow:0 8px 25px #096ab712}
.soft{background:linear-gradient(115deg,#122d47,#174363);color:#fff}
.soft h2,.soft h3{color:#fff}.soft p{color:#dce8f2}
.soft .eyebrow,.soft .text-link,.soft .process li:before{color:#91d3ff}
.soft .process li{border-bottom-color:#49657c}
.reference-strip{background:#eaf3fa;border-color:#caddeb}.reference-strip .reference-name{color:#244b6b}
.dark.cta{background:linear-gradient(110deg,#096ab7,#12466d);border-top:1px solid #368ac2}.dark.cta p{color:#e5f1fa}
.footer{background:#0d2237;color:#e5edf5;border-top:1px solid #35516b}
.footer h3{color:#fff}.footer p{color:#c7d8e7}.footer a{color:#e0edf7}.footer a:hover{color:#91d3ff}
.footer-bottom{border-color:#35516b;color:#bfd0df}
/* Footer wordmark sits directly on the brand background, without a badge. */
.footer .logo{display:block;width:230px;max-width:100%;padding:0;margin:0 0 22px;background:transparent;border-radius:0}
.footer .logo img{width:100%;height:auto;filter:grayscale(1) invert(1) contrast(3);mix-blend-mode:screen}
.footer-grid>div:first-child>p{max-width:320px;font-size:14px;line-height:1.8;color:#b9cddd}
.footer-grid{align-items:start}.footer{padding-top:56px}
@media(max-width:600px){.footer .logo{width:215px;margin-bottom:18px}.footer-grid>div:first-child>p{max-width:290px}}
/* Give the presentation its own wide layout instead of the article column. */
.presentation-section{padding:28px 0 48px}
.presentation-section .presentation-wrap{width:calc(100% - 48px);max-width:1600px}
.presentation-section .prose{max-width:none;width:100%}
.presentation-section .prose>h2{font-size:22px;margin:0 0 14px}
.presentation-section .presentation{width:100%;margin:0 0 24px}
.presentation-section .presentation-slide{width:100%;max-width:none;height:auto;margin:0}
.presentation-section .prose>p{max-width:900px;font-size:15px}
main:has(.presentation-section) .page-hero{padding:24px 0}
main:has(.presentation-section) .page-hero h1{font-size:clamp(28px,3vw,42px)}
main:has(.presentation-section) .page-hero .breadcrumb{margin-bottom:12px}
main:has(.presentation-section) .page-hero .eyebrow{display:none}
main:has(.presentation-section) .page-hero p{margin-top:12px;font-size:15px}
@media(max-width:600px){.presentation-section .presentation-wrap{width:calc(100% - 16px)}.presentation-section{padding-top:18px}.presentation-section .prose>h2,.presentation-section .prose>p,.presentation-section .actions{margin-left:10px;margin-right:10px}.presentation-controls{padding:8px}}
/* Fit a complete slide and its controls inside the available screen height. */
.presentation-section .presentation{width:100%;max-width:1180px;margin:0 auto 24px}
.presentation-section .presentation-slide{display:block;width:100%;height:auto;max-height:calc(100vh - 220px);max-height:calc(100svh - 220px);object-fit:contain;background:#10263d}
.presentation-section .presentation-controls{padding:10px;min-height:60px}
@media(max-width:600px){.presentation-section .presentation-slide{max-height:calc(100svh - 180px)}.presentation-section .presentation-controls{padding:8px;min-height:56px}}
/* Device-aware width is calculated from the available height and 16:9 ratio. */
.presentation-section .presentation{max-width:100%;margin-left:auto;margin-right:auto}
.presentation-section .presentation-slide{width:100%;height:auto;max-height:none;aspect-ratio:16/9;object-fit:contain}
.presentation-controls{gap:clamp(8px,3vw,24px)}
.article-meta{display:flex;flex-wrap:wrap;gap:12px 24px;color:#526b80;font-size:13px;margin-bottom:28px}.article-toc{display:flex;flex-direction:column;gap:9px;background:#eaf3fa;border-left:3px solid #0878c4;padding:22px 26px;margin:0 0 35px}.article-toc a{font-size:14px;color:#16456b}.article-toc a:hover{text-decoration:underline}.article-sources{background:#eaf3fa;padding:24px;margin-top:35px;border-radius:6px}.article-sources h2{font-size:23px}.source-note{font-size:13px!important;border-left:2px solid #88b9db;padding-left:14px}.article-sources a,.source-note a{overflow-wrap:anywhere;text-decoration:underline}.blog-tools{max-width:600px;margin-bottom:32px}.blog-tools label{display:block;font-weight:700;margin-bottom:8px}.blog-tools input{width:100%;padding:14px 18px;border:1px solid #b7cfdf;border-radius:5px;background:#fff;color:#10263d}.blog-card[hidden]{display:none}.blog-card{border-top:3px solid #0878c4}.blog-card h3{line-height:1.4}
.article-visual{margin:0 0 30px}.article-visual svg{display:block;width:100%;height:auto}.article-visual figcaption{font-size:12px;color:#526b80;margin-top:8px}.related-articles{border-top:1px solid #bfd4e2;margin-top:36px;padding-top:24px}.related-articles ul{padding-left:22px}.related-articles li{margin:12px 0}.related-articles a{color:#075f9d;text-decoration:underline}.project-tag{display:inline-block;margin-top:14px;padding:6px 12px;border-radius:20px;background:#e4f2fc;color:#07568b;font-size:13px}
.reference-category+.reference-category{margin-top:64px}.reference-category>h2{font-size:clamp(1.6rem,3vw,2.2rem);margin:0 0 28px;border-left:4px solid #1387c9;padding-left:18px}.reference-category .reference-card h2{font-size:21px}
.reference-placeholder{font-size:23px;font-weight:600;color:#17344d;text-align:center;padding:24px}.reference-category .reference-card h3{font-size:21px}
.blog-cover{width:calc(100% + 56px);max-width:none;margin:-28px -28px 24px;aspect-ratio:16/9;object-fit:cover;border-radius:4px 4px 0 0}.article-cover{width:100%;height:auto;display:block;border-radius:12px;margin-bottom:26px}
.blog-cover{height:auto}

/* Quiet, consistent navigation icons in both languages. */
.navlinks a{display:flex;align-items:center;gap:6px}.nav-icon{width:17px;height:17px;flex:none;color:#47758f}.navlinks a:hover .nav-icon,.navlinks a[aria-current="page"] .nav-icon{color:var(--blue)}
@media(min-width:1101px){.nav{gap:18px}.navlinks{gap:14px;font-size:13px}.nav .logo{width:180px}.nav>.button{padding:11px 14px}}
@media(min-width:1101px) and (max-width:1279px){.menu-toggle{display:block}.nav>.button{margin-left:auto}.navlinks{display:none;position:absolute;left:0;right:0;top:94px;padding:20px 24px;background:#fff;border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;gap:0;box-shadow:0 10px 15px #10263d12}.navlinks.open{display:flex}.navlinks a{padding:10px 0;font-size:16px}}
/* Icon above label navigation, with a compact grid on smaller screens. */
.navlinks a{flex-direction:column;justify-content:center;gap:7px;text-align:center;line-height:1.35;padding:8px 0}
.nav-icon{width:29px;height:29px;color:#2478ac}
@media(max-width:1279px){.navlinks.open{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:16px 24px;max-height:calc(100dvh - 94px);overflow-y:auto}.navlinks a{padding:12px 5px;font-size:13px;white-space:normal;border-radius:6px}.navlinks a:hover,.navlinks a[aria-current="page"]{background:#eef6fc}}
@media(max-width:480px){.navlinks.open{grid-template-columns:repeat(2,minmax(0,1fr));padding:12px 18px;gap:4px}.nav-icon{width:27px;height:27px}}

/* Reversible technology hero experiment. Original assets saved in qa/hero-before-animation. */
.hero.technology-motion{position:relative;isolation:isolate;background:radial-gradient(ellipse at 75% 35%,#103e61 0%,#0c243c 45%,#071828 100%);color:#f4f9ff}
.technology-motion .hero-grid{position:relative;z-index:1;padding-bottom:82px}
.technology-motion .hero-copy>p{color:#c2d3e3}.technology-motion .eyebrow,.technology-motion h1 em{color:#6dceff}.technology-motion .hero-foot{color:#b6cfdf}
.technology-motion .button.light{color:#e3f3ff;border-color:#53748f;background:#102d46}.technology-motion .button.light:hover{background:#1b4260}
.technology-motion .hero-image{border:1px solid #4488af65;box-shadow:0 20px 70px #0005}
.hero-network{position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.55;overflow:hidden;mask-image:linear-gradient(90deg,#0003,#000)}
.hero-network svg{width:100%;height:100%;fill:none}.network-line{stroke:#62c7fa;stroke-width:1;opacity:.2}.network-packet{stroke:#8edfff;stroke-width:2;stroke-dasharray:24 1200;animation:network-flow 16s linear infinite;animation-delay:var(--delay)}.hero-network circle{fill:#70ceff;stroke:#70ceff;stroke-width:7;stroke-opacity:.12}
@keyframes network-flow{from{stroke-dashoffset:1224}to{stroke-dashoffset:0}}
.hero-motion-toggle{position:absolute;bottom:20px;right:0;background:#132e44;color:#bcd6e8;border:1px solid #42647a;border-radius:20px;padding:5px 12px;font-size:11px;cursor:pointer}.hero-motion-toggle:hover{background:#20445f;color:white}
.motion-paused .network-packet{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){.network-packet{animation:none}}
@media(max-width:800px){.technology-motion .hero-grid{padding-bottom:70px}.hero-network{opacity:.32}}

/* Progressive page transitions; navigation remains native and immediate. */
@view-transition{navigation:auto}
@keyframes tech-page-in{from{opacity:.65;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@keyframes tech-page-out{to{opacity:0}}
@keyframes tech-signal{0%{transform:translateX(-110%);opacity:0}20%{opacity:.8}80%{opacity:.8}100%{transform:translateX(330%);opacity:0}}
@media(prefers-reduced-motion:no-preference){
 main{animation:tech-page-in .32s ease-out both}
 body:after{content:'';position:fixed;top:0;left:0;width:32vw;height:2px;z-index:100;pointer-events:none;background:linear-gradient(90deg,transparent,#168ccc,#87e2ff,transparent);animation:tech-signal .65s ease-out both}
 ::view-transition-old(root){animation:tech-page-out .14s ease-out both}
 ::view-transition-new(root){animation:tech-page-in .28s ease-out both}
 ::view-transition-group(root){animation-duration:.28s}
}
@media(prefers-reduced-motion:reduce){::view-transition-old(root),::view-transition-new(root),::view-transition-group(root){animation:none!important}}

/* A clearly visible blue scan between internal pages. */
.page-sweep{position:fixed;inset:0;z-index:200;pointer-events:none;visibility:hidden;background:linear-gradient(110deg,#051b30f5,#0b3555f5);clip-path:inset(0 100% 0 0)}
.page-sweep:after{content:'';position:absolute;top:0;bottom:0;left:0;width:8px;background:#a7eeff;box-shadow:0 0 28px 12px #149fff,0 0 90px 35px #087aca;transform:skewX(-12deg)}
.page-sweep.is-active{visibility:visible;animation:page-sweep-cover .48s ease-in-out forwards}
.page-sweep.is-active:after{animation:page-sweep-light .48s ease-in-out forwards}
@keyframes page-sweep-cover{to{clip-path:inset(0 0 0 0)}}
@keyframes page-sweep-light{to{left:110%}}
@media(prefers-reduced-motion:reduce){.page-sweep{display:none!important}}
/* Shared ambient motion for blue page headers and the store. */
.page-hero.technology-motion,.shop-hero.technology-motion{position:relative;isolation:isolate;overflow:hidden}
.page-hero.technology-motion>.wrap,.shop-hero.technology-motion>.wrap{position:relative;z-index:1}
.page-hero.technology-motion{padding-bottom:70px}
.page-hero.technology-motion>.hero-motion-toggle,.shop-hero.technology-motion>.hero-motion-toggle{right:24px;bottom:12px;z-index:2}
.page-hero .hero-network,.shop-hero .hero-network{opacity:.65}

/* Original brand PNG, rendered as a quiet rotating watermark. */
.brand-watermark{position:relative;isolation:isolate;overflow:hidden}
.brand-watermark-image{position:absolute;z-index:-1;pointer-events:none;right:-90px;top:60px;width:clamp(300px,44vw,640px);max-width:none;height:auto;opacity:.055;mix-blend-mode:multiply;animation:kure-emblem-turn 100s linear infinite;animation-play-state:paused;user-select:none}
.emblem-running>.brand-watermark-image{animation-play-state:running}
.brand-motion-control{display:block;margin:22px 36px 0 auto;padding:5px 11px;font-size:11px;color:#43627a;background:#f4f9fd;border:1px solid #cadde9;border-radius:18px;cursor:pointer}
@keyframes kure-emblem-turn{to{transform:rotate(360deg)}}
@media(max-width:600px){.brand-watermark-image{width:330px;right:-130px;opacity:.04;animation-duration:140s}}
@media(prefers-reduced-motion:reduce){.brand-watermark-image{animation:none!important}.brand-motion-control{display:none}}

/* Stronger service symbols without changing navigation icons. */
.service .icon{width:60px;height:60px;flex-shrink:0;background:linear-gradient(145deg,#087dbd,#124582);color:#fff;border:1px solid #1066a2;border-radius:12px;box-shadow:0 5px 14px #14649a22}
.service .icon svg{width:32px;height:32px;stroke-width:1.9}
.service .service-num{color:#526c81}
@media(max-width:480px){.service .icon{width:54px;height:54px}.service .icon svg{width:29px;height:29px}}

/* Subtle logo glint; retain a stable, legible wordmark. */
.nav .logo{position:relative;display:block;overflow:hidden;border-radius:5px;isolation:isolate}
.nav .logo:after{content:'';position:absolute;inset:-15% auto -15% -70%;width:38%;pointer-events:none;background:linear-gradient(100deg,transparent,rgba(91,207,255,.3),rgba(255,255,255,.8),transparent);transform:skewX(-18deg);animation:kure-logo-glint 9s ease-in-out infinite}
@keyframes kure-logo-glint{0%,65%{left:-70%;opacity:0}69%{opacity:1}88%{left:140%;opacity:1}89%,100%{left:140%;opacity:0}}
@media(prefers-reduced-motion:reduce){.nav .logo:after{display:none;animation:none}}
/* More visible brand light sweep. */
.nav .logo:after{width:46%;background:linear-gradient(100deg,transparent,rgba(20,155,245,.55),rgba(150,235,255,.9),transparent);mix-blend-mode:multiply;animation:kure-logo-glint-visible 3s ease-in-out infinite}
@keyframes kure-logo-glint-visible{0%{left:-65%;opacity:0}10%{opacity:1}60%{left:120%;opacity:1}65%,100%{left:140%;opacity:0}}
@media(prefers-reduced-motion:reduce){.nav .logo:after{display:none;animation:none}}

/* Connected modem, router, internet, access point and server symbols. */
.hero-network .network-device-panel{fill:#0c2942;stroke:#62c7fa;stroke-width:1;opacity:.65}.network-device-symbol{fill:none;stroke:#8cddff;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;animation:device-signal 4s ease-in-out infinite;animation-delay:var(--delay)}.hero-network .network-device-symbol circle{fill:none;stroke:#8cddff;stroke-width:2.5;stroke-opacity:1}@keyframes device-signal{0%,100%{opacity:.5}50%{opacity:1}}.motion-paused .network-device-symbol{animation-play-state:paused}@media(prefers-reduced-motion:reduce){.network-device-symbol{animation:none}}

.hero-network{mask-image:none}.network-devices{position:absolute;bottom:12px;left:4%;width:65%;display:flex;align-items:center;gap:10px}.hero-network .network-devices svg{width:48px;height:48px;flex:0 0 48px}.network-devices>span{height:1px;flex:1;background:linear-gradient(90deg,#62c7fa20,#8cddff,#62c7fa20)}.hero-network .network-devices circle{fill:none;stroke-width:2.5;stroke-opacity:1}.hero-network .network-devices{opacity:1}@media(max-width:600px){.network-devices{width:68%;gap:3px}.hero-network .network-devices svg{width:32px;height:32px;flex-basis:32px}}

/* Quiet binary data streams, restricted to the empty perimeter. */
.binary-streams{position:absolute;inset:0;overflow:hidden;pointer-events:none;color:#6dceff;font:11px/1.2 Consolas,monospace;letter-spacing:5px;opacity:.32;mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.binary-streams span{position:absolute;top:14px;left:0;width:max-content;white-space:nowrap;animation:binary-drift 42s linear infinite;animation-delay:calc(var(--stream)*-12s)}
.binary-streams span:nth-child(2){top:auto;bottom:70px;left:72%;opacity:.7;animation-direction:reverse}.binary-streams span:nth-child(3){top:42%;left:auto;right:12px;writing-mode:vertical-rl;font-size:10px;opacity:.6;animation:none}
@keyframes binary-drift{from{transform:translateX(-25%)}to{transform:translateX(-50%)}}
.motion-paused .binary-streams span{animation-play-state:paused}@media(prefers-reduced-motion:reduce){.binary-streams span{animation:none}}@media(max-width:600px){.binary-streams{font-size:9px;opacity:.24}.binary-streams span:nth-child(2),.binary-streams span:nth-child(3){display:none}}

/* Matrix-style vertical binary rain. */
.binary-streams{opacity:.44;mask-image:linear-gradient(180deg,#000,transparent 25%,transparent 78%,#000)}
.binary-streams span,.binary-streams span:nth-child(2),.binary-streams span:nth-child(3){display:block;top:-110%;bottom:auto;left:var(--x);right:auto;width:12px;height:110%;overflow:hidden;writing-mode:vertical-rl;text-orientation:upright;white-space:normal;word-break:break-all;font:12px/1.4 Consolas,monospace;letter-spacing:7px;opacity:.8;color:#70ceff;animation:binary-rain var(--duration) linear infinite;animation-delay:calc(var(--stream)*-4.7s);mask-image:linear-gradient(180deg,transparent,#000 60%,#000)}
@keyframes binary-rain{from{transform:translateY(0)}to{transform:translateY(200%)}}
.motion-paused .binary-streams span{animation-play-state:paused}@media(prefers-reduced-motion:reduce){.binary-streams span{animation:none;top:0;opacity:.2}}@media(max-width:600px){.binary-streams span:nth-child(even){display:none}.binary-streams{opacity:.3}}

/* Larger, slower binary rain. */
.binary-streams span,.binary-streams span:nth-child(2),.binary-streams span:nth-child(3){width:18px;font-size:16px;letter-spacing:9px}@media(max-width:600px){.binary-streams span,.binary-streams span:nth-child(2),.binary-streams span:nth-child(3){font-size:13px;width:15px}}
