/* Motion follows the geometry of the Isham mark: orbit, assemble, reveal. */
.reading-progress{position:fixed;inset:0 0 auto;height:3px;z-index:180;pointer-events:none;direction:rtl}.reading-progress span{display:block;width:100%;height:100%;background:linear-gradient(90deg,#b6c995,#123f39);transform:scaleX(0);transform-origin:right}
.site-header{transition:background .3s,box-shadow .3s,border-color .3s}.site-header.is-scrolled{background:#f7f8f3f2;border-color:#d7dfcf;box-shadow:0 8px 30px #183f3709}
.main-nav a{position:relative}.main-nav a::after{transition:width .25s,opacity .25s,transform .25s}.main-nav a:not(.active):hover{color:var(--green)}
.motion-enabled .hero-copy>*{animation:isham-enter .85s cubic-bezier(.22,1,.36,1) both}.motion-enabled .hero-copy>.eyebrow{animation-delay:.02s}.motion-enabled .hero-copy>h1{animation-delay:.12s}.motion-enabled .hero-copy>p{animation-delay:.23s}.motion-enabled .hero-copy>.hero-actions{animation-delay:.32s}.motion-enabled .hero-copy>.hero-promise{animation-delay:.41s}
.motion-enabled .hero-emphasis svg path{stroke-dasharray:700;animation:isham-draw 1.3s cubic-bezier(.22,1,.36,1) .45s both}
.hero-art{--scene-x:0px;--scene-y:0px;perspective:1100px}.hero-orbit::before,.hero-orbit::after{content:"";position:absolute;left:50%;border-radius:50%;background:#123f39}.hero-orbit::before{width:10px;height:10px;top:-5px;box-shadow:0 0 0 7px #c6d4b540}.hero-orbit::after{width:6px;height:6px;bottom:-3px;background:#b4c892}
.motion-enabled .hero-orbit{animation:isham-orbit 32s linear infinite;animation-play-state:var(--hero-play,paused)}
.motion-enabled .browser-mockup{animation:isham-browser-float 7s ease-in-out infinite;animation-play-state:var(--hero-play,paused)}
.motion-enabled .phone-mockup{animation:isham-phone-float 6s ease-in-out -.9s infinite;animation-play-state:var(--hero-play,paused)}
.motion-enabled .label-design{animation:isham-label-float 6.5s ease-in-out -.6s infinite;animation-play-state:var(--hero-play,paused)}
.motion-enabled .label-code{animation:isham-label-float 7.5s ease-in-out -3s infinite;animation-play-state:var(--hero-play,paused)}
.hero.motion-in-view{--hero-play:running}.hero:not(.motion-in-view){--hero-play:paused}
.hero-bottom>.expertise-marquee{display:block;width:min(55%,520px);overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}.expertise-track{display:flex;width:max-content;direction:ltr}.expertise-track>div{display:flex;align-items:center;flex-shrink:0;gap:26px;padding-inline-end:26px}.expertise-track i{font-size:18px;color:#9bae86;font-style:normal}.motion-enabled .expertise-track{animation:isham-marquee 24s linear infinite;animation-play-state:var(--hero-play,paused)}.expertise-marquee:hover .expertise-track{animation-play-state:paused}
.js-reveal{transition:opacity .75s cubic-bezier(.22,1,.36,1),transform .75s cubic-bezier(.22,1,.36,1);transition-delay:var(--reveal-delay,0ms);transform:translateY(30px)}.js-reveal.is-visible{opacity:1;transform:translateY(0)}
.service-card{position:relative;transition:translate .3s}.service-card::after{content:"";position:absolute;inset:auto 25px -18px;height:2px;background:linear-gradient(90deg,transparent,#b4c891,#123f39);transform:scaleX(0);transform-origin:right;transition:transform .4s}.service-icon{transition:rotate .35s,background .35s,border-color .35s}.service-link .icon{transition:translate .25s}
.process-step::before{content:"";position:absolute;top:-1px;right:0;width:100%;height:2px;background:linear-gradient(90deg,#b4c891,#123f39);transform:scaleX(0);transform-origin:right;transition:transform .9s cubic-bezier(.22,1,.36,1);transition-delay:var(--reveal-delay,0ms)}.process-step.is-visible::before{transform:scaleX(1)}
.project-visual{--tilt-x:0deg;--tilt-y:0deg;transform:perspective(1000px) rotateX(var(--tilt-x)) rotateY(var(--tilt-y));transition:transform .32s cubic-bezier(.22,1,.36,1),box-shadow .32s;isolation:isolate}.project-visual::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:4;border-radius:inherit;background:radial-gradient(circle at var(--light-x,50%) var(--light-y,50%),#ffffff70,transparent 65%);opacity:0;transition:opacity .35s}.project-visual.is-pointed::after{opacity:.65}.project-phone{transition:transform .5s,translate .45s,rotate .45s,box-shadow .45s}.project-info h3 a{background:linear-gradient(currentColor,currentColor) 100% 100%/0% 1px no-repeat;transition:background-size .35s}
.hero-actions>.btn,.header-cta,.contact-orb{translate:var(--magnet-x,0px) var(--magnet-y,0px);transition:translate .22s cubic-bezier(.22,1,.36,1),transform .25s,background .25s,box-shadow .25s}.btn>.icon,.text-link>.icon,.text-link>span,.contact-orb>.icon{transition:translate .3s,rotate .3s}.brand-mark{transition:rotate .5s cubic-bezier(.22,1,.36,1)}
.motion-enabled .request-dialog[open]{animation:isham-panel .3s cubic-bezier(.22,1,.36,1)}.motion-enabled .request-dialog[open]::backdrop{animation:isham-fade .25s ease}.motion-enabled .chat-panel:not([hidden]){animation:isham-panel .3s cubic-bezier(.22,1,.36,1)}
.motion-paused .expertise-track,.motion-paused .hero-orbit,.motion-paused .browser-mockup,.motion-paused .phone-mockup,.motion-paused .floating-label{animation-play-state:paused!important}
@media(hover:hover) and (pointer:fine){
.brand:hover .brand-mark{rotate:-8deg}.btn-dark:hover{box-shadow:0 8px 20px #123f3926}.btn:hover>.icon,.text-link:hover>.icon{translate:-3px -3px}.text-link:hover>span{rotate:-15deg}.contact-orb:hover>.icon{translate:-4px -4px}
.service-card:hover,.service-card:focus-within{translate:0 -6px}.service-card:hover::after,.service-card:focus-within::after{transform:scaleX(1)}.service-card:hover .service-icon,.service-card:focus-within .service-icon{rotate:-9deg;background:#e9efdf;border-color:#bdcdae}.service-link:hover .icon{translate:-4px -2px}
.project-visual:hover{box-shadow:0 18px 35px #183e3818}.project-visual:hover .project-phone.is-main{translate:0 -8px}.project-visual:hover .project-phone.is-side-1{translate:-6px 1px;rotate:-2deg}.project-visual:hover .project-phone.is-side-2{translate:6px 1px;rotate:2deg}.project-visual:hover .project-phone.is-web-preview{translate:0 -8px;rotate:-2deg}.project-info h3 a:hover{background-size:100% 1px}
}
@media(hover:none){.project-visual:active,.btn:active{scale:.985;transition:scale .15s}}
@media(max-width:650px){.hero-bottom>.expertise-marquee{width:calc(100% - 90px)}.expertise-track>div{gap:17px;padding-inline-end:17px}.expertise-track i{font-size:13px}.expertise-track{font-size:8px}.reading-progress{height:2px}.js-reveal{transform:translateY(20px)}.js-reveal.is-visible{transform:translateY(0)}.service-card::after{inset-inline:17px}}
@keyframes isham-enter{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}
@keyframes isham-draw{from{stroke-dashoffset:700;opacity:0}to{stroke-dashoffset:0;opacity:1}}
@keyframes isham-orbit{to{rotate:360deg}}
@keyframes isham-browser-float{0%,100%{translate:calc(var(--scene-x)*.45) calc(var(--scene-y)*.45)}50%{translate:calc(var(--scene-x)*.45) calc(var(--scene-y)*.45 - 10px)}}
@keyframes isham-phone-float{0%,100%{translate:calc(var(--scene-x)*.9) calc(var(--scene-y)*.9)}50%{translate:calc(var(--scene-x)*.9) calc(var(--scene-y)*.9 + 9px)}}
@keyframes isham-label-float{0%,100%{translate:calc(var(--scene-x)*1.2) calc(var(--scene-y)*1.2)}50%{translate:calc(var(--scene-x)*1.2) calc(var(--scene-y)*1.2 - 7px)}}
@keyframes isham-marquee{to{transform:translateX(-50%)}}
@keyframes isham-panel{from{opacity:0;translate:0 14px;scale:.98}to{opacity:1;translate:0 0;scale:1}}
@keyframes isham-fade{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){
.reading-progress{display:none}.hero-copy>*,.hero-emphasis svg path,.hero-orbit,.browser-mockup,.phone-mockup,.floating-label,.expertise-track,.request-dialog,.chat-panel{animation:none!important}.expertise-track>div[aria-hidden]{display:none}.hero-bottom>.expertise-marquee{mask-image:none}.expertise-track>div{gap:12px;padding-inline-end:0}.expertise-track{font-size:9px}.js-reveal{opacity:1;transform:none}.project-visual{transform:none}.hero-actions>.btn,.header-cta,.contact-orb,.service-card{translate:none}.project-phone{translate:none;rotate:none}.process-step::before{transform:scaleX(1)}
}
