/* Movement follows the geometric language of the brand. All content remains
   visible without JS; enhanced entrances are enabled only by motion.js. */
:root{--motion-ease:cubic-bezier(.16,1,.3,1)}
.reading-progress{position:fixed;inset:0 0 auto;height:3px;background:var(--yellow);z-index:40;transform-origin:left;transform:scaleX(0);pointer-events:none}
#motion-control{position:fixed;right:22px;bottom:22px;z-index:30;display:flex;align-items:center;gap:9px;min-height:44px;background:var(--ink);color:var(--paper);border:1px solid var(--line);padding:11px 14px;font-size:11px;box-shadow:0 3px 22px oklch(10% .01 95 / .15)}.motion-icon{color:var(--yellow);font-size:16px}.motion-label{max-width:140px}
.hero{isolation:isolate}.hero-copy{position:relative;z-index:3}.hero-lines{position:absolute;inset:0;width:100%;height:100%;color:var(--yellow);opacity:.07;z-index:-1;pointer-events:none;transform:translate3d(0,var(--line-y,0px),0)}.travel-line{stroke-dasharray:150 3400;animation:line-journey 14s linear infinite;opacity:1}.hero-lines g{stroke-width:.7}.title-line{display:block;overflow:hidden;padding-bottom:.08em;margin-bottom:-.08em}.title-line>span{display:block}.hero-art{z-index:2;transform:perspective(1100px) rotateX(var(--art-rx,0deg)) rotateY(var(--art-ry,0deg)) translate3d(0,var(--art-y,0px),0);will-change:transform}.art-orbit{position:absolute;inset:-23px 8% 40px -23px;border:1px solid oklch(86% .177 91 / .35);clip-path:polygon(0 0,55% 0,55% 2px,2px 2px,2px 55%,0 55%);pointer-events:none}.aperture img{transform:scale(1.72) translate3d(var(--photo-x,0px),var(--photo-y,0px),0);animation:photo-breathe 14s ease-in-out infinite alternate}.hero .eyebrow span{box-shadow:0 0 0 0 oklch(86% .177 91 / .3);animation:signal 3s ease-out infinite}.scroll-note>span{display:inline-block;animation:scroll-cue 2.5s var(--motion-ease) infinite}
.kinetic-band{overflow:hidden;background:var(--dark);color:var(--yellow);border-top:1px solid var(--line);padding:23px 0}.kinetic-track{display:flex;width:max-content;animation:ticker 32s linear infinite;will-change:transform}.kinetic-track>span{flex-shrink:0;font-size:clamp(32px,4.5vw,70px);line-height:1;font-weight:600;letter-spacing:-1px;white-space:nowrap}.kinetic-track i{display:inline-block;width:42px;height:1px;margin:0 30px 18px;background:var(--line)}.kinetic-band:hover .kinetic-track{animation-play-state:paused}
.motion-ready .title-line>span{animation:title-in 1.15s var(--motion-ease) both;animation-delay:calc(.12s + var(--title-index,0)*.12s)}.motion-ready .hero .eyebrow{animation:soft-in 1s var(--motion-ease) both}.motion-ready .hero .intro{animation:soft-in 1s .55s var(--motion-ease) both}.motion-ready .hero .actions{animation:soft-in 1s .7s var(--motion-ease) both}.motion-ready .aperture{animation:aperture-in 1.6s .2s var(--motion-ease) both}.motion-ready .art-label{animation:soft-in 1.2s .8s var(--motion-ease) both}
.motion-ready [data-reveal]{opacity:0;transform:translate3d(0,36px,0);transition:opacity .9s var(--motion-ease),transform .9s var(--motion-ease);transition-delay:var(--reveal-delay,0ms)}.motion-ready [data-reveal].is-visible{opacity:1;transform:translate3d(0,0,0)}.motion-ready .portrait[data-reveal]{transform:translate3d(-30px,0,0)}.motion-ready .portrait.is-visible{transform:translate3d(0,0,0)}
.button{position:relative;overflow:hidden;transition:transform .35s var(--motion-ease),box-shadow .35s var(--motion-ease),background .35s}.button span,.text-link span,.client-options a span{display:inline-block;transition:transform .4s var(--motion-ease)}.button:hover{transform:translateY(-3px);box-shadow:0 12px 28px oklch(10% .01 95 / .15)}.button:hover span,.text-link:hover span,.client-options a:hover span{transform:translate(4px,-4px)}nav a{position:relative;padding-bottom:5px}nav a:after{content:'';position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--yellow);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--motion-ease)}nav a:hover:after{transform:scaleX(1)}.service-grid article{transition:transform .45s var(--motion-ease)}.service-grid article:hover{transform:translateY(-7px)}.service-grid article .index{transition:color .3s}.service-grid article:hover .index{color:oklch(49% .1 80)}.service-grid a span{transition:transform .4s var(--motion-ease)}.service-grid article:hover a span{transform:translate(4px,-4px)}.segment-controls button{transition:background .3s,color .3s,transform .3s}.segment-controls button:hover{transform:translateY(-2px)}.segment-photo img{transition:transform 1.2s var(--motion-ease)}.segment-layout:hover .segment-photo img{transform:scale(1.57)}.segment-changing{animation:segment-in .55s var(--motion-ease) both}.portrait-shape{transform:translate3d(0,var(--portrait-y,0px),0)}.client-options a{transition:transform .35s var(--motion-ease),color .35s}.client-options a:hover{padding-left:0;transform:translateX(7px)}.plus{transition:transform .35s var(--motion-ease)}
@keyframes title-in{from{transform:translate3d(0,115%,0) rotate(2deg)}to{transform:translate3d(0,0,0) rotate(0)}}@keyframes soft-in{from{opacity:0;transform:translate3d(0,22px,0)}to{opacity:1;transform:translate3d(0,0,0)}}@keyframes aperture-in{from{opacity:0;clip-path:polygon(50% 40%,60% 40%,60% 50%,50% 60%,40% 60%,40% 50%)}to{opacity:1;clip-path:polygon(15% 0,100% 0,100% 78%,80% 100%,0 100%,0 19%)}}@keyframes line-journey{to{stroke-dashoffset:-3550}}@keyframes ticker{to{transform:translateX(-50%)}}@keyframes signal{60%{box-shadow:0 0 0 8px oklch(86% .177 91 / 0)}100%{box-shadow:0 0 0 8px oklch(86% .177 91 / 0)}}@keyframes scroll-cue{0%,100%{transform:translateY(0)}50%{transform:translateY(5px)}}@keyframes photo-breathe{from{scale:1}to{scale:1.045}}@keyframes segment-in{from{opacity:.2;transform:translate3d(0,12px,0)}to{opacity:1;transform:translate3d(0,0,0)}}
.motion-paused *,.motion-paused *:before,.motion-paused *:after{animation:none!important;transition:none!important}.motion-paused [data-reveal]{opacity:1!important;transform:none!important}.motion-paused .hero-art,.motion-paused .hero-lines,.motion-paused .portrait-shape{transform:none!important}.motion-paused .aperture img{transform:scale(1.72)!important}.motion-paused .title-line>span,.motion-paused .hero .intro,.motion-paused .hero .actions,.motion-paused .hero .eyebrow,.motion-paused .aperture,.motion-paused .art-label{opacity:1!important;transform:none!important}
@media(max-width:700px){#motion-control{right:12px;bottom:12px;padding:10px 12px}.motion-label{display:none}.art-orbit{inset:-12px 0 35px -12px}.kinetic-band{padding:20px 0}.hero-lines{opacity:.05}.kinetic-track i{margin:0 18px}.hero-art{will-change:auto}}
@media(prefers-reduced-motion:reduce){.hero-art,.hero-lines,.portrait-shape{transform:none!important}[data-reveal]{opacity:1!important;transform:none!important}.kinetic-track{transform:none!important}.aperture img{scale:1!important}html{scroll-behavior:auto}}
.page-hidden *{animation-play-state:paused!important}
html.motion-paused{scroll-behavior:auto}
@media(max-width:700px){.about h2 br{display:initial}.service-grid h3 br{display:initial}}
/* Links communicate through type and a quiet underline, without arrow glyphs. */
.text-link,.service-grid article>a,.footer-top>a:last-child{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:6px;text-decoration-color:currentColor}
.text-link:hover,.service-grid article>a:hover{text-decoration-thickness:2px}
.button{justify-content:center}.client-options a:hover{transform:none;color:oklch(38% .04 95)}
@media(max-width:700px){.kinetic-track i{width:24px;margin:0 20px 9px}}

.kinetic-track>span{word-spacing:.4em;padding-right:.65em}
.whatsapp-float{position:fixed;right:22px;bottom:78px;z-index:31;display:flex;align-items:center;gap:10px;padding:12px 17px;background:var(--yellow);color:var(--ink);box-shadow:0 5px 24px oklch(10% .01 95 / .18);border-radius:32px;font-size:14px;font-weight:600;transition:transform .3s var(--motion-ease),box-shadow .3s}
.whatsapp-float svg{width:30px;height:30px;flex-shrink:0}.whatsapp-float:hover{transform:translateY(-3px);box-shadow:0 9px 28px oklch(10% .01 95 / .25)}.whatsapp-button svg{width:26px;height:26px;flex-shrink:0}.whatsapp-button{gap:12px}.whatsapp-button:hover span{transform:none}
@media(max-width:700px){.whatsapp-float{right:12px;bottom:70px;padding:12px}.whatsapp-float span{display:none}}
