/* Propulsite motion: progressive enhancement, no hidden-content dependency. */
:root{--motion-ease:cubic-bezier(.22,1,.36,1)}
.site-header{transition:background .25s,box-shadow .25s,border-color .25s}
.site-header.is-scrolled{background:#fbfdfff7;box-shadow:0 7px 30px #13243b09;border-color:#cddaf0}
.reading-progress{position:absolute;inset:auto 0 -1px;height:2px;background:var(--blue);transform:scaleX(0);transform-origin:left;pointer-events:none}
.navigation a:not(.nav-contact){position:relative;padding-block:8px}
.navigation a:not(.nav-contact)::after{content:'';position:absolute;left:0;right:0;bottom:1px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .35s var(--motion-ease)}
.navigation a:hover::after,.navigation a:focus-visible::after,.navigation a[aria-current=page]::after{transform:scaleX(1);transform-origin:left}
.button{transition:transform .28s var(--motion-ease),background .2s,border-color .2s,box-shadow .28s}
.button>span[aria-hidden],.text-link>span[aria-hidden]{display:inline-block;transition:transform .3s var(--motion-ease)}
.button:hover>span[aria-hidden],.button:focus-visible>span[aria-hidden]{transform:translate(3px,-3px)}
.text-link:hover>span[aria-hidden],.text-link:focus-visible>span[aria-hidden]{transform:translateX(5px)}
.button:hover{box-shadow:0 9px 24px #123ee71c}
.hero-kicker{display:inline-flex;align-items:center;gap:10px;font-size:.68rem;letter-spacing:.13em;color:var(--muted);text-transform:uppercase;font-weight:750;margin-bottom:22px}
.hero-kicker::before{content:'';width:7px;height:7px;border-radius:50%;background:var(--blue);box-shadow:0 0 0 5px #123ee70b;flex:none}
.hero-copy h1>span{position:relative;display:inline-block}
.hero-copy h1>span::after{content:'';height:2px;border-radius:50%;background:linear-gradient(90deg,var(--blue),#123ee714);position:absolute;left:1px;right:-5px;bottom:-5px;transform:scaleX(.92);transform-origin:left}
.hero-art{isolation:isolate;min-width:0;perspective:1000px;overflow:clip}
.hero-sculpture{width:100%;position:relative;z-index:1;transform:translate3d(var(--hero-x,0px),var(--hero-y,0px),0);transition:transform 1s var(--motion-ease);pointer-events:none}
.hero-art .hero-sculpture img{width:100%;min-height:480px;object-fit:cover;object-position:61% center;border-radius:120px 20px 120px 20px;mix-blend-mode:multiply}
.hero-halo{position:absolute;z-index:-1;inset:4% -3%;border-radius:50%;background:radial-gradient(ellipse,#cbd9ff 0,#e8efff 38%,#f5f9ff00 72%);pointer-events:none}
.hero-orbit{position:absolute;inset:8% 1%;z-index:2;border:1px solid #5071c52b;border-radius:50%;transform:rotate(-28deg);pointer-events:none}
.hero-orbit::after{content:'';position:absolute;width:9px;height:9px;top:13%;left:14%;border-radius:50%;background:var(--blue);box-shadow:0 0 0 6px #123ee70a}
.hero-orbit-secondary{inset:17% -6%;border-style:dashed;opacity:.55;transform:rotate(32deg)}
.hero-orbit-secondary::after{top:auto;left:auto;right:12%;bottom:15%;width:5px;height:5px;box-shadow:none}
.hero-tag{position:absolute;z-index:3;display:inline-flex;align-items:center;gap:10px;padding:12px 16px;background:#ffffffef;border:1px solid #cfdcf5;border-radius:15px;box-shadow:0 14px 35px #1d42a00c;font-size:.71rem;font-weight:700;line-height:1.3;pointer-events:none}
.hero-tag span{width:24px;height:24px;display:grid;place-items:center;background:#edf2ff;color:var(--blue);border-radius:8px;font-size:15px}
.hero-tag-design{top:10%;left:8px;transform:rotate(-5deg)}
.hero-tag-tools{right:8px;bottom:16%;transform:rotate(4deg)}
.hero-orbit,.hero-halo,.hero-tag,.hero-sculpture img,.expertise-track,.final-cta::before{animation-play-state:paused}
html.motion-ready:not(.motion-reduced) .hero-art.is-in-view .hero-halo{animation:halo-breathe 9s ease-in-out infinite}
html.motion-ready:not(.motion-reduced) .hero-art.is-in-view .hero-orbit{animation:orbit-turn 34s linear infinite}
html.motion-ready:not(.motion-reduced) .hero-art.is-in-view .hero-orbit-secondary{animation:orbit-turn-reverse 42s linear infinite}
html.motion-ready:not(.motion-reduced) .hero-art.is-in-view .hero-tag-design{animation:tag-drift-left 7s ease-in-out infinite}
html.motion-ready:not(.motion-reduced) .hero-art.is-in-view .hero-tag-tools{animation:tag-drift-right 8s ease-in-out infinite}
html.motion-ready:not(.motion-reduced) .hero-art.is-in-view .hero-sculpture img{animation:sculpture-breathe 9s ease-in-out infinite}
.expertise-ribbon{overflow:hidden;background:#eaf0ff;border-block:1px solid #cedbf6;padding-block:22px;margin-top:12px;color:var(--blue)}
.expertise-track{display:flex;width:max-content;transform:translateX(0)}
.expertise-sequence{display:flex;align-items:center;gap:36px;padding-inline:18px;white-space:nowrap}
.expertise-sequence span{font-size:clamp(1.1rem,2.1vw,1.6rem);font-weight:550;letter-spacing:-.035em}
.expertise-sequence i{font-size:1.6rem;font-style:normal;line-height:1;color:#5374df}
html.motion-ready:not(.motion-reduced) .expertise-ribbon.is-in-view .expertise-track{animation:expertise-travel 42s linear infinite}
.expertise-ribbon:hover .expertise-track{animation-play-state:paused!important}
.demo-image,.project-shot{transition:box-shadow .4s,border-color .3s;isolation:isolate}
.demo-image img,.project-shot img{transition:transform .65s var(--motion-ease)}
.demo-arrow{transition:transform .35s var(--motion-ease),background .25s,color .25s}
.demo-card:hover .demo-arrow,.demo-card:focus-within .demo-arrow{background:var(--blue);color:white;transform:rotate(45deg)}
.demo-card-head h2,.demo-card-head h3,.project-card h3{transition:color .25s}
.demo-card:hover .demo-card-head h2,.demo-card:hover .demo-card-head h3,.demo-card:focus-within .demo-card-head h2,.demo-card:focus-within .demo-card-head h3,.project-card:hover h3{color:var(--blue)}
.price-card,.info-card{transition:border-color .3s,box-shadow .35s,background .3s}
.price-card:hover,.price-card:focus-within,.info-card:hover{border-color:#8ba6ea;box-shadow:0 20px 50px #1338630d}
.intro-item{position:relative}
.intro-item::after{content:'';position:absolute;left:0;right:0;top:-1px;height:2px;background:var(--blue);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--motion-ease)}
.intro-item:hover::after,.intro-item:focus-within::after{transform:scaleX(1)}
.steps li{transition:border-color .35s}
.steps li:hover{border-color:var(--blue)}
.final-cta{position:relative;isolation:isolate;overflow:hidden;background:linear-gradient(120deg,#123ee7 0%,#234fe9 60%,#1539bf 100%)}
.final-cta::before{content:'';position:absolute;z-index:-1;width:520px;height:520px;right:-100px;top:-190px;border:1px solid #ffffff24;box-shadow:0 0 0 65px #ffffff05,0 0 0 130px #ffffff05;border-radius:44% 56% 58% 42%;transform:rotate(-15deg);pointer-events:none}
html.motion-ready:not(.motion-reduced) .final-cta.is-in-view::before{animation:cta-turn 28s linear infinite}
.motion-control{position:fixed;z-index:90;right:18px;bottom:16px;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;max-width:calc(100vw - 32px);padding:9px 14px;border:1px solid #ccd8ed;border-radius:30px;background:#fffffff5;color:#233d69;font-size:.69rem;font-weight:650;box-shadow:0 3px 20px #13243b0b;cursor:pointer}
.motion-control svg{width:14px;height:14px;flex:none}
.motion-control[aria-pressed=true]{background:#edf2ff;border-color:#9eb3e5}
.motion-control:disabled{cursor:default;opacity:1}
.motion-control .motion-system{display:none}
.motion-control.is-system .motion-default{display:none}
.motion-control.is-system .motion-system{display:inline}
.site-footer{padding-bottom:75px}
html.motion-offscreen .hero-orbit,html.motion-offscreen .hero-halo,html.motion-offscreen .hero-tag,html.motion-offscreen .hero-sculpture img,html.motion-offscreen .expertise-track,html.motion-offscreen .final-cta::before{animation-play-state:paused!important}
@media(hover:hover) and (pointer:fine){
 html.motion-ready:not(.motion-reduced) .demo-image:hover img,html.motion-ready:not(.motion-reduced) .project-shot:hover img{transform:perspective(800px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg)) scale(1.055)}
 .demo-image:hover,.project-shot:hover{box-shadow:0 15px 34px #13386317}
}
@media(max-width:1100px){.hero-tag{font-size:.65rem;padding:10px 12px}.hero-tag-design{left:8px;top:14%}.hero-tag-tools{right:8px;bottom:19%}.hero-orbit-secondary{inset:17% 0}.hero-halo{inset:4% 0}}
@media(max-width:800px){.hero-art .hero-sculpture img{min-height:330px}.hero-tag-design{top:8%}.hero-tag-tools{bottom:8%}.hero-kicker{font-size:.63rem;margin-bottom:18px}.expertise-ribbon{padding-block:17px}.expertise-sequence{gap:24px;padding-inline:12px}}
@media(max-width:560px){.hero-art{min-height:270px;max-height:none;overflow:clip;border-radius:0;margin-top:36px;align-self:stretch}.hero-art .hero-sculpture img{height:270px;min-height:270px;border-radius:80px 16px 80px 16px;object-position:61% center}.hero-orbit{inset:0 8%}.hero-orbit-secondary{inset:10% 1%}.hero-tag{font-size:.62rem;padding:9px 11px;border-radius:12px}.hero-tag span{width:21px;height:21px;font-size:13px}.hero-tag-design{top:8px;left:8px}.hero-tag-tools{bottom:8px;right:8px}.hero-kicker{font-size:.6rem;letter-spacing:.1em}.expertise-ribbon{margin-top:0}.motion-control{right:12px;bottom:12px;min-height:38px;padding:8px 11px;font-size:.65rem}.final-cta::before{width:360px;height:360px;right:-190px;top:-60px}}
@keyframes halo-breathe{0%,100%{transform:scale(.96);opacity:.7}50%{transform:scale(1.05);opacity:1}}
@keyframes orbit-turn{from{transform:rotate(-28deg)}to{transform:rotate(332deg)}}
@keyframes orbit-turn-reverse{from{transform:rotate(32deg)}to{transform:rotate(-328deg)}}
@keyframes tag-drift-left{0%,100%{transform:translateY(0) rotate(-5deg)}50%{transform:translateY(-10px) rotate(-2deg)}}
@keyframes tag-drift-right{0%,100%{transform:translateY(0) rotate(4deg)}50%{transform:translateY(10px) rotate(1deg)}}
@keyframes sculpture-breathe{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-7px) scale(1.012)}}
@keyframes expertise-travel{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes cta-turn{from{transform:rotate(-15deg)}to{transform:rotate(345deg)}}
/* A user pause stops both automatic movement and decorative interactions. */
html.motion-reduced{scroll-behavior:auto!important}
html.motion-reduced *,html.motion-reduced *::before,html.motion-reduced *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
html.motion-reduced .hero-sculpture,html.motion-reduced .demo-image img,html.motion-reduced .project-shot img,html.motion-reduced .button:hover,html.motion-reduced .button>span,html.motion-reduced .text-link>span{transform:none!important}
html.motion-reduced .reading-progress{display:none}
html:not(.motion-ready) .expertise-track,html.motion-no-observer .expertise-track,html.motion-reduced .expertise-track{width:100%}
html:not(.motion-ready) .expertise-sequence:first-child,html.motion-no-observer .expertise-sequence:first-child,html.motion-reduced .expertise-sequence:first-child{width:100%;flex-wrap:wrap;justify-content:center;white-space:normal;gap:10px 24px}
html:not(.motion-ready) .expertise-sequence:nth-child(2),html.motion-no-observer .expertise-sequence:nth-child(2),html.motion-reduced .expertise-sequence:nth-child(2){display:none}
@media(prefers-reduced-motion:reduce){
 html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
 .hero-sculpture,.demo-image img,.project-shot img,.button:hover,.button>span,.text-link>span{transform:none!important}
 .reading-progress{display:none}.expertise-track{width:100%}.expertise-sequence:first-child{width:100%;flex-wrap:wrap;justify-content:center;white-space:normal;gap:10px 24px}.expertise-sequence:nth-child(2){display:none}
}
@media print{.motion-control,.reading-progress,.hero-orbit,.hero-tag{display:none!important}.expertise-track{width:100%}.expertise-sequence:first-child{flex-wrap:wrap;white-space:normal}.expertise-sequence:nth-child(2){display:none}*,*::before,*::after{animation:none!important;transform:none!important;box-shadow:none!important}}

/* Small interactions stay inside fixed, accessible hit targets. */
.brand img{object-fit:contain;transform-origin:50% 50%;transition:transform .4s var(--motion-ease)}
@media(hover:hover) and (pointer:fine){
 html.motion-ready:not(.motion-reduced) .brand:hover img{transform:translate(2px,-2px) rotate(-5deg)}
}
html.motion-ready:not(.motion-reduced) .brand:focus-visible img{transform:translate(2px,-2px) rotate(-5deg)}
.button{position:relative;overflow:hidden;isolation:isolate}
.button::after{content:'';position:absolute;pointer-events:none;inset:-25% auto -25% -40%;width:30%;background:linear-gradient(90deg,transparent,#ffffff32,transparent);transform:translateX(-100%) skewX(-18deg);opacity:0}
html.motion-ready:not(.motion-reduced) .button:hover::after,html.motion-ready:not(.motion-reduced) .button:focus-visible::after{animation:button-light-pass .65s ease-out}
.steps li{position:relative}
.steps li::after{content:'';position:absolute;pointer-events:none;height:1px;left:0;right:0;bottom:-1px;background:var(--blue);transform:scaleX(0);transform-origin:left;transition:transform .65s var(--motion-ease)}
html.motion-ready:not(.motion-reduced) .steps li:hover::after,html.motion-ready:not(.motion-reduced) .steps li:focus-within::after{transform:scaleX(1)}
.offer-shortcuts{display:flex;flex-wrap:wrap;gap:9px;margin:0 0 28px}
.offer-shortcuts a{display:inline-flex;align-items:center;min-height:39px;padding:9px 15px;border:1px solid #cbd8f0;border-radius:30px;font-size:.77rem;font-weight:650;line-height:1.4;text-decoration:none;color:var(--blue);transition:background .2s,border-color .2s}
.offer-shortcuts a:hover,.offer-shortcuts a:focus-visible{background:#eaf0ff;border-color:#8ca5e6}
.about-portrait-row{align-items:center;gap:80px}
.about-portrait{width:100%;max-width:520px;margin:0;scroll-margin-top:110px}
.about-portrait img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;border-radius:110px 20px 110px 20px;background:#e6edf6}
.about-portrait figcaption{margin-top:15px;color:var(--muted);font-size:.74rem;line-height:1.6}
@keyframes button-light-pass{0%{transform:translateX(-100%) skewX(-18deg);opacity:0}15%{opacity:1}100%{transform:translateX(650%) skewX(-18deg);opacity:0}}
html.motion-reduced .brand img{transform:none!important}
html.motion-reduced .button::after,html.motion-reduced .steps li::after{display:none}
@media(max-width:800px){.about-portrait-row{grid-template-columns:1fr;gap:35px}.about-portrait{max-width:500px;margin-inline:auto}.about-portrait img{border-radius:85px 16px 85px 16px}}
@media(max-width:560px){.offer-shortcuts{gap:7px}.offer-shortcuts a{font-size:.72rem;padding:8px 12px}.about-portrait img{border-radius:70px 14px 70px 14px}}
@media(prefers-reduced-motion:reduce){.brand img{transform:none!important}.button::after,.steps li::after{display:none}}
