/* A little more life, with a quiet white-and-grey foundation. */
:root{--blue:#346ac3;--blue-light:#edf3ff;--rose:#c45473;--ease-out:cubic-bezier(.22,1,.36,1)}
body{background:radial-gradient(ellipse at 93% 3%,#eff4fa 0,transparent 28%),radial-gradient(ellipse at 0 37%,#f3f3f6 0,transparent 40%),#fff}
main{overflow:clip}
.header{position:relative;z-index:4}
.header nav a{position:relative;padding-block:5px}
.header nav a::after{content:"";position:absolute;left:0;right:0;bottom:-3px;height:2px;background:var(--blue);transform:scaleX(0);transform-origin:left;transition:transform .25s var(--ease-out)}
.header nav a:hover::after,.header nav a:focus-visible::after{transform:scaleX(1)}
.header [aria-current="page"]{border:0;color:var(--blue)}
.header [aria-current="page"]::after{transform:scaleX(1)}
.page-hero,.hero{position:relative;isolation:isolate}
.page-hero>*,.hero-copy{position:relative;z-index:1}
.page-hero>.hero-accents{position:absolute;inset:0;pointer-events:none;z-index:0;overflow:hidden}
.hero-orbit{position:absolute;border:1px solid #346ac31a;border-radius:50%;width:350px;height:350px;right:-110px;top:12px;animation:orbit-drift 13s ease-in-out infinite}
.orbit-two{width:230px;height:230px;right:-50px;top:73px;background:radial-gradient(circle,#e8f0fc50,transparent 70%);animation-delay:-6s;animation-duration:11s}
.hero-spark,.hero-heart{position:absolute;display:block;color:var(--blue);font:36px/1 Arial,sans-serif;right:38px;top:60px;opacity:.45;animation:accent-float 7s ease-in-out infinite}
.hero-heart{right:130px;top:auto;bottom:55px;font-size:45px;color:var(--rose);animation-delay:-3.5s;opacity:.65}
.split-hero .hero-spark{right:35px;top:20px}
.split-hero .hero-heart{right:43%;bottom:25px}
.hero-copy h1,.page-hero h1{animation:title-entrance .9s var(--ease-out) both}
.hero-copy .intro,.page-hero .lead{animation:title-entrance .95s var(--ease-out) .08s both}
.hero-copy h1 em,.page-hero h1 em{background-image:linear-gradient(transparent 76%,#dce8fb95 76%,#dce8fb95 95%,transparent 95%);background-size:100% 100%;box-decoration-break:clone;-webkit-box-decoration-break:clone}
.hero-copy>.eyebrow,.page-hero .eyebrow{color:#3d608b}
.split-hero figure{position:relative;isolation:isolate}
.split-hero figure::before{content:"";position:absolute;inset:18px -12px -12px 18px;background:#e4eaf1;border-radius:12px;z-index:-1;transform:rotate(2.5deg);animation:frame-sway 12s ease-in-out infinite}
.split-hero figure img{border-radius:12px;box-shadow:0 16px 45px #2433480c}
.photo-sticker{position:absolute;right:20px;bottom:20px;display:flex;align-items:center;gap:7px;background:#fffffff2;padding:13px 17px 10px;border-radius:40px;font-size:14px;box-shadow:0 7px 26px #202b411a;transform:rotate(-5deg);animation:sticker-float 6s ease-in-out infinite}
.photo-sticker b{color:var(--rose);font:18px/1 Arial,sans-serif;font-weight:400}
.photo-frame{border-radius:12px;box-shadow:0 18px 48px #26384812}
.hello-note{animation:hello-sway 9s ease-in-out infinite}
.trust-logos img{filter:none;transition:transform .35s var(--ease-out)}
.trust-logos img:hover{transform:translateY(-5px) rotate(-2deg)}
.service-list article{position:relative;transition:background .3s,padding .3s}
.service-list article:hover{background:#f1f5fb;padding-left:12px;padding-right:12px}
.service-list article>span,.detail-grid .item-number{color:var(--blue)}
.service-cards{gap:28px}
.service-card{border-radius:12px;overflow:hidden;background:#f1f2f5;transition:transform .35s var(--ease-out),box-shadow .35s,border-color .35s,background .35s}
.service-card:nth-child(2){background:#eef3fa}
.service-card:nth-child(3){background:#f5f2f4}
.service-card:nth-child(4){background:#edf1f3}
.service-card .card-arrow{background:#fff9;width:45px;height:45px;border-radius:50%;display:grid;place-items:center;font-size:26px;transition:transform .3s,background .3s,color .3s}
.service-card:hover{transform:translateY(-7px);box-shadow:0 22px 45px #20365812;border-color:#c1d1e7}
.service-card:hover .card-arrow{transform:rotate(45deg);background:var(--blue);color:#fff}
.service-card h2{transition:color .25s}
.service-card:hover h2{color:#295ba7}
.button{position:relative;transition:background .25s,transform .3s var(--ease-out),box-shadow .3s}
.button:hover{box-shadow:0 9px 22px #20354f1a;transform:translateY(-3px)}
.button span{transition:transform .25s var(--ease-out)}
.button:hover span{transform:translate(3px,-3px)}
.text-link{transition:color .2s,border-color .2s,opacity .2s}
.text-link:hover{color:var(--blue);border-color:var(--blue);opacity:1}
.project-preview{border-radius:10px;box-shadow:0 8px 20px #2937470b}
.project-preview>img{transition:transform .7s var(--ease-out)}
.project-preview:hover>img{transform:scale(1.07)}
.play-icon{transition:background .3s,box-shadow .3s;animation:play-breathe 4s ease-in-out infinite}
.project-preview:hover .play-icon{background:#ffffff55;box-shadow:0 0 0 10px #ffffff16}
.reference-info h3 a{transition:color .25s}
.reference-info h3 a:hover{color:var(--blue)}
.team-grid figure>img{border-radius:10px;transition:transform .5s var(--ease-out),box-shadow .4s}
.team-grid figure:hover>img{transform:translateY(-5px) rotate(-1deg);box-shadow:0 16px 35px #24374f12}
.customer-grid{gap:22px}
.customer-grid figure{border-radius:12px;transition:transform .4s var(--ease-out),border-color .3s,box-shadow .3s;background:#fff}
.customer-grid figure:hover{transform:translateY(-6px);border-color:#aac1e1;box-shadow:0 15px 35px #293d5912}
.customer-grid img{transition:transform .4s var(--ease-out);color-scheme:light}
.customer-grid figure:hover img{transform:scale(1.06)}
.customer-grid figure.customer-logo-dark:hover{border-color:#6d88b0}
.location-card{border-radius:12px;border:1px solid #e7eaf0;background:linear-gradient(145deg,#f1f4f8,#f4f4f5);transition:transform .35s var(--ease-out),box-shadow .35s}
.location-card:hover{transform:translateY(-5px);box-shadow:0 18px 35px #293d5910}
.location-card>img{box-shadow:0 0 0 7px #fff9}
.tag-list span{background:#f4f6fa;border-color:#dde4ed;transition:background .2s,transform .25s}
.tag-list span:hover{background:#e6eefb;transform:translateY(-3px)}
.detail-grid article{border-top-color:#b8cce6}
.detail-grid .item-number{width:38px;height:38px;border-radius:50%;background:#edf3fd;display:grid;place-items:center;letter-spacing:0}
.sector-grid article{transition:transform .3s var(--ease-out),border-color .3s}
.sector-grid article:hover{transform:translateY(-4px);border-color:var(--blue)}
.download-row{transition:background .25s,padding .3s}
.download-row:hover{background:#fff8;padding-left:12px;padding-right:12px}
.download-row>span:last-child{transition:transform .3s}
.download-row:hover>span:last-child{transform:translate(2px,-2px)}
.merch-partner-card{border-radius:12px;background:linear-gradient(135deg,#edf3fb,#f5f7fb);transition:transform .4s var(--ease-out),box-shadow .4s}
.merch-partner-card:hover{transform:translateY(-6px) rotate(-1deg);box-shadow:0 20px 35px #234b7812}
.partner-card img,.footer-partner img{transition:transform .4s var(--ease-out)}
.merch-partner-card img,.footer-partner img{mix-blend-mode:multiply}
.partner-card:hover img,.footer-partner:hover img{transform:translateY(-4px)}
.expert-symbol{color:var(--blue);display:inline-block;animation:spark-turn 12s ease-in-out infinite}
.rating-stars{animation:star-glow 5s ease-in-out infinite}
.compact-cta,.contact-section{position:relative;isolation:isolate;overflow:hidden;background:#1b2029}
.compact-cta::before,.contact-section::before{content:"";position:absolute;inset:-180px -100px -100px 40%;z-index:-1;pointer-events:none;background:radial-gradient(ellipse,#3157867a,transparent 65%);animation:cta-glow 13s ease-in-out infinite}
.compact-cta::after,.contact-section::after{content:"";position:absolute;width:420px;height:420px;border:1px solid #9ebce71f;border-radius:50%;right:-70px;bottom:-200px;z-index:-1;pointer-events:none;animation:orbit-drift 15s ease-in-out infinite}
.footer{padding-bottom:80px}
.footer a{transition:color .2s,opacity .2s}
.footer a:hover{color:var(--blue);opacity:1}
.footer-partner{border-top-color:#cbd8e7}
.in-view{animation:section-entrance .8s var(--ease-out) var(--reveal-delay,0ms) both}
.site-motion-toggle{position:fixed;bottom:17px;right:20px;z-index:8;display:flex;align-items:center;gap:8px;padding:11px 15px 9px;min-height:40px;border:1px solid #d5dce6;border-radius:30px;background:#ffffffed;backdrop-filter:blur(8px);color:#454e5e;box-shadow:0 5px 24px #24384f12;font-size:12px;cursor:pointer}
.site-motion-toggle[hidden]{display:none}
.site-motion-toggle:hover{border-color:#9bb4d7;color:#25599e;background:#fff}
.motion-control-icon{font-family:Arial,sans-serif;line-height:1}
.legal-page .hero-accents{opacity:.4}
.legal-page .hero-heart,.legal-page .hero-spark{display:none}
.legal-page .legal-copy,.legal-page .legal-layout aside{animation:none}
@keyframes title-entrance{from{opacity:.2;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes section-entrance{from{opacity:.25;translate:0 22px}to{opacity:1;translate:0 0}}
@keyframes orbit-drift{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(-22px,13px) scale(1.06)}}
@keyframes accent-float{0%,100%{transform:translateY(0) rotate(-8deg)}50%{transform:translateY(-11px) rotate(12deg)}}
@keyframes frame-sway{0%,100%{transform:rotate(2.5deg)}50%{transform:rotate(-1deg)}}
@keyframes sticker-float{0%,100%{transform:translateY(0) rotate(-5deg)}50%{transform:translateY(-7px) rotate(-2deg)}}
@keyframes hello-sway{0%,100%{transform:translateY(0) rotate(9deg)}50%{transform:translateY(-7px) rotate(4deg)}}
@keyframes play-breathe{0%,100%{box-shadow:0 0 0 0 #ffffff1f}50%{box-shadow:0 0 0 9px #ffffff00}}
@keyframes spark-turn{0%,70%,100%{transform:rotate(0)}85%{transform:rotate(90deg)}}
@keyframes star-glow{0%,100%{color:#a47726}50%{color:#be8b2f}}
@keyframes cta-glow{0%,100%{transform:translateX(0)}50%{transform:translateX(-70px)}}
.motion-paused *,.motion-paused *::before,.motion-paused *::after{animation-play-state:paused!important;transition:none!important}
.motion-paused .in-view,.motion-paused .hero-copy h1,.motion-paused .hero-copy .intro,.motion-paused .page-hero h1,.motion-paused .page-hero .lead{animation:none!important;opacity:1;translate:none;transform:none}
@media(max-width:800px){.hero-orbit{right:-160px;width:280px;height:280px}.orbit-two{width:190px;height:190px;right:-90px}.hero-spark{font-size:26px;right:20px;top:20px}.hero-heart{right:45px;bottom:18px;font-size:30px}.split-hero .hero-heart{right:45%;bottom:15px}.photo-sticker{font-size:13px;padding:11px 13px 9px;right:12px;bottom:15px}.customer-grid{gap:16px}}
@media(max-width:580px){.page-hero .hero-heart{right:22px;bottom:16px;font-size:30px}.page-hero .hero-spark{right:18px;top:14px;font-size:23px}.split-hero .hero-spark{top:8px}.split-hero .hero-heart{display:none}.split-hero figure::before{inset:12px -7px -8px 12px}.photo-sticker{font-size:14px;right:16px;bottom:18px}.customer-grid{gap:14px}.service-cards{gap:20px}.service-card .card-arrow{right:20px;top:18px;width:36px;height:36px;font-size:23px}.site-motion-toggle{right:12px;bottom:12px;font-size:12px;padding:10px 12px 8px}.footer{padding-bottom:85px}.compact-cta::after,.contact-section::after{width:290px;height:290px;right:-170px;bottom:-100px}}
@media(hover:none){.service-card:hover,.customer-grid figure:hover,.location-card:hover,.team-grid figure:hover>img,.merch-partner-card:hover{transform:none;box-shadow:none}.customer-grid figure:hover img{transform:none}.service-list article:hover{padding-left:0;padding-right:0}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.in-view{opacity:1;translate:none}.site-motion-toggle,.motion-toggle{display:none}}
@media print{.site-motion-toggle,.hero-accents,.photo-sticker{display:none}*,*::before,*::after{animation:none!important}}
