:root{--ease-premium:cubic-bezier(.16,1,.3,1)}

/* Progressive enhancement: content stays visible without JavaScript. */
html:not(.js) .reveal,html:not(.js) [class*="reveal-"]{opacity:1;transform:none;filter:none}
html.js .reveal,html.js .reveal-up,html.js .reveal-left,html.js .reveal-right,html.js .reveal-scale{opacity:0;filter:blur(3px);transition:opacity .78s var(--ease-premium),transform .78s var(--ease-premium),filter .72s var(--ease-premium);transition-delay:var(--reveal-delay,0ms);will-change:transform,opacity}
html.js .reveal,html.js .reveal-up{transform:translate3d(0,28px,0)}
html.js .reveal-left{transform:translate3d(-34px,0,0)}
html.js .reveal-right{transform:translate3d(34px,0,0)}
html.js .reveal-scale{transform:scale(.975)}
html.js .is-visible{opacity:1;transform:none;filter:none;will-change:auto}

/* New logo: the authoritative bitmap is cropped by its viewport, never stretched. */
.brand{display:block;width:216px;height:50px;overflow:hidden;border-radius:5px}
.brand-logo{width:100%;height:100%;object-fit:cover;object-position:50% 48%;transform:scale(1.1);transition:transform .55s var(--ease-premium)}
.brand:hover .brand-logo{transform:scale(1.125)}
.site-header .brand{width:192px;height:54px;border-radius:0}
.site-header .brand-logo{object-fit:contain;object-position:center;transform:none}
.site-header .brand:hover .brand-logo{transform:none}
.footer-brand-logo{width:250px;height:62px;margin-left:-12px}
.site-header .nav-shell{transition:min-height .4s var(--ease-premium),background .4s ease,border-color .4s ease,box-shadow .4s ease,transform .4s var(--ease-premium)}
.site-header.is-scrolled .nav-shell{min-height:58px;background:rgba(2,8,23,.88);border-color:rgba(83,151,255,.2);box-shadow:0 14px 45px rgba(0,0,0,.25)}
.main-nav a::before{content:"";position:absolute;left:50%;right:50%;bottom:-9px;height:1px;background:linear-gradient(90deg,var(--blue),var(--cyan));transition:left .35s var(--ease-premium),right .35s var(--ease-premium)}
.main-nav a:hover::before{left:0;right:0}.nav-cta::before{content:"";position:absolute;inset:-1px;border-radius:inherit;box-shadow:0 0 24px rgba(8,102,255,.25);opacity:0;transition:opacity .3s}.nav-cta:hover::before{opacity:1}

/* Hero entrance and restrained ambient movement. */
html.js .hero-copy>*{opacity:0;transform:translate3d(0,22px,0);filter:blur(3px);transition:opacity .85s var(--ease-premium),transform .85s var(--ease-premium),filter .75s var(--ease-premium)}
html.js .hero.is-loaded .hero-copy>*{opacity:1;transform:none;filter:none}
html.js .hero-copy>*:nth-child(1){transition-delay:.08s}html.js .hero-copy>*:nth-child(2){transition-delay:.16s}html.js .hero-copy>*:nth-child(3){transition-delay:.25s}html.js .hero-copy>*:nth-child(4){transition-delay:.34s}
html.js .hero-visual{opacity:0;transform:translate3d(24px,12px,0) scale(.98);transition:opacity 1s .28s var(--ease-premium),transform 1s .28s var(--ease-premium)}html.js .hero.is-loaded .hero-visual{opacity:1;transform:none}
.hero::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(55,133,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(55,133,255,.035) 1px,transparent 1px);background-size:48px 48px;mask-image:linear-gradient(to bottom,rgba(0,0,0,.75),transparent 82%);pointer-events:none}
.hero-visual::after{content:"";position:absolute;right:-20px;top:-35px;width:125px;height:115px;background:url('/assets/images/logo/accura-symbol-2x.png') center/contain no-repeat;opacity:.07;filter:saturate(1.3);pointer-events:none}.hero-fox{display:none}
.blue-lines{transform:translate3d(0,var(--parallax-y,0),0)}.performance{transform:translate3d(0,var(--parallax-y,0),0)}
.hero.is-loaded .tablet{animation:float-subtle 6s 1.1s ease-in-out infinite}.hero.is-loaded .phone{animation:float-subtle 5.4s 1.45s ease-in-out infinite}.hero.is-loaded .performance{animation:float-subtle 7s 1.8s ease-in-out infinite}
@keyframes float-subtle{0%,100%{translate:0 0}50%{translate:0 -7px}}

/* Premium interactions. */
.trust-item>span{position:relative;transition:transform .4s var(--ease-premium),border-color .4s}.trust-item:hover>span{transform:translateY(-3px) rotate(-2deg);border-color:var(--blue)}
.trust-grid{position:relative}.trust-grid::before{content:"";position:absolute;top:24px;left:10%;right:10%;height:1px;background:linear-gradient(90deg,transparent,rgba(8,102,255,.35),transparent);transform:scaleX(0);transition:transform 1.15s .2s var(--ease-premium)}.trust-grid.is-visible::before{transform:scaleX(1)}
.service-card{position:relative}.service-card:hover{box-shadow:0 18px 48px rgba(8,102,255,.12)}.service-card .service-icon,.service-card a{transition:transform .4s var(--ease-premium),color .3s}.service-card:hover .service-icon{transform:translateY(-3px) rotate(-3deg)}.service-card:hover a{display:inline-block;transform:translateX(5px)}
.project-card{overflow:hidden;transition:transform .5s var(--ease-premium),border-color .4s,box-shadow .4s}.project-card:hover{transform:translateY(-6px);border-color:rgba(59,140,255,.8);box-shadow:0 24px 65px rgba(8,102,255,.14)}.project-preview,.laptop,.mobile{transition:transform .65s var(--ease-premium)}.project-card:hover .project-preview{transform:scale(1.015)}.project-card:hover .laptop{transform:translateY(-4px)}.project-card:hover .mobile{transform:translate3d(3px,-6px,0)}
.button{position:relative;overflow:hidden}.button::before{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 25%,rgba(255,255,255,.18),transparent 75%);transform:translateX(-120%);transition:transform .7s var(--ease-premium)}.button:hover::before{transform:translateX(120%)}.button::after{transition:transform .35s var(--ease-premium)}.button:hover::after{transform:translateX(4px)}

/* Transformation, timeline and map drawing. */
.compare-copy{position:relative}.compare-copy::after{content:"→";position:absolute;left:calc(100% + 10px);top:43%;color:rgba(8,102,255,.42);font-size:2rem;opacity:0;transform:translateX(-12px);transition:.8s .4s var(--ease-premium)}.compare-copy.is-visible::after{opacity:1;transform:none}
.steps::after{content:"";position:absolute;z-index:0;top:27px;left:6%;right:6%;height:2px;background:linear-gradient(90deg,var(--blue),var(--cyan));box-shadow:0 0 12px rgba(8,102,255,.4);transform:scaleX(0);transform-origin:left;transition:transform 1.3s .18s var(--ease-premium)}.steps.is-visible::after{transform:scaleX(1)}.step>span{transition:background .5s var(--ease-premium),transform .5s var(--ease-premium),box-shadow .5s}.step.is-visible>span{transform:scale(1.06);box-shadow:0 10px 30px rgba(8,102,255,.42)}
.normandy-map path{stroke-dasharray:1150;stroke-dashoffset:1150;transition:stroke-dashoffset 1.55s var(--ease-premium)}.normandy-map.is-visible path{stroke-dashoffset:0}.normandy-map>span i{animation:map-pulse 2.8s ease-in-out infinite}@keyframes map-pulse{50%{box-shadow:0 0 0 9px rgba(8,102,255,.08),0 0 18px rgba(56,207,255,.45)}}
.final-cta::before{content:"";position:absolute;inset:-60% 45% -60% -10%;background:url('/assets/images/logo.png') center/contain no-repeat;opacity:.045;pointer-events:none}.final-cta::after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 35%,rgba(56,207,255,.08) 50%,transparent 65%);transform:translateX(-60%);transition:transform 1.4s var(--ease-premium)}.final-cta.is-visible::after{transform:translateX(65%)}.final-cta>svg{display:none}.final-grid{position:relative;z-index:1}

@media(max-width:820px){.brand{width:176px;height:42px}.site-header .brand{width:160px;height:45px}.footer-brand-logo{width:225px;height:58px}.compare-copy::after{display:none}.hero-visual::after{width:120px;height:85px}.hero.is-loaded .tablet,.hero.is-loaded .phone,.hero.is-loaded .performance{animation:none}}
@media(max-width:540px){html.js .reveal-left,html.js .reveal-right{transform:translate3d(0,20px,0)}.trust-grid::before{display:none}.brand{width:157px;height:38px}.site-header .brand{width:160px;height:45px}.footer-brand-logo{width:210px;height:54px}}
.final-cta::before{inset:-60% 58% -60% -10%;background-image:url('/assets/images/logo/accura-symbol-2x.png');opacity:.07}

/* Ambient light system: blur stays static, only opacity and transforms move. */
.glow-section{position:relative;isolation:isolate;overflow:hidden}
.glow-section>.container{position:relative;z-index:2}
.ambient-glow{position:absolute;z-index:0;width:520px;height:520px;border-radius:50%;pointer-events:none;opacity:.12;filter:blur(32px);transition:opacity 1.2s var(--ease-premium),scale 1.2s var(--ease-premium);scale:.94;contain:layout paint}
.ambient-glow::before{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(circle,rgba(27,119,255,.34) 0%,rgba(8,102,255,.16) 34%,rgba(8,102,255,0) 72%);animation:accura-glow-breathe 8s ease-in-out infinite;animation-delay:-2s}
.ambient-glow--2::before{background:radial-gradient(circle,rgba(56,207,255,.24) 0%,rgba(19,129,255,.1) 38%,transparent 72%);animation-name:accura-glow-drift;animation-duration:11s;animation-delay:-7s}
.glow-section.section-visible>.ambient-glow{opacity:.7;scale:1}
@keyframes accura-glow-breathe{0%,100%{opacity:.48;transform:translate3d(0,0,0) scale(.94)}50%{opacity:.9;transform:translate3d(10px,-7px,0) scale(1.06)}}
@keyframes accura-glow-drift{0%,100%{opacity:.42;transform:translate3d(0,0,0) scale(.95)}33%{opacity:.76;transform:translate3d(16px,-9px,0) scale(1.02)}66%{opacity:.58;transform:translate3d(-11px,7px,0) scale(1.07)}}

/* Each dark section gets a different, restrained light composition. */
.hero>.ambient-glow--1{right:-4%;top:13%;width:680px;height:680px;filter:blur(38px)}
.hero>.ambient-glow--2{right:24%;top:26%;width:300px;height:300px;filter:blur(26px)}
.hero.section-visible>.ambient-glow--1{opacity:.76}.hero.section-visible>.ambient-glow--2{opacity:.42}
.services-home>.ambient-glow--1{left:50%;top:34%;width:760px;height:430px;translate:-50% 0;filter:blur(40px)}
.services-home.section-visible>.ambient-glow--1{opacity:.5}
.work-home>.ambient-glow--1{left:-12%;top:13%;width:570px;height:570px;filter:blur(38px)}
.work-home>.ambient-glow--2{right:-10%;bottom:5%;width:650px;height:650px;filter:blur(42px)}
.work-home.section-visible>.ambient-glow{opacity:.48}
.local>.ambient-glow--1{right:2%;top:3%;width:600px;height:470px;filter:blur(36px)}
.local.section-visible>.ambient-glow--1{opacity:.46}
.final-cta>.ambient-glow--1{left:12%;top:-160px;width:720px;height:520px;filter:blur(42px)}
.final-cta.section-visible>.ambient-glow--1{opacity:.72}

.normandy-map>span i{animation-delay:var(--marker-pulse-delay,0s)}
.button-primary{transition:transform .2s,background .2s,border-color .2s,box-shadow .32s ease}
.button-primary:hover{box-shadow:0 18px 42px rgba(8,102,255,.38),0 0 26px rgba(56,207,255,.12)}

@media(max-width:820px){.ambient-glow{width:340px;height:340px;filter:blur(25px);opacity:.1}.glow-section.section-visible>.ambient-glow{opacity:.38}.hero>.ambient-glow--1{right:-38%;top:35%;width:430px;height:430px}.hero>.ambient-glow--2,.work-home>.ambient-glow--2{display:none}.services-home>.ambient-glow--1{width:430px;height:330px}.local>.ambient-glow--1{right:-25%;width:390px;height:340px}.final-cta>.ambient-glow--1{left:-28%;top:-110px;width:480px;height:380px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.ambient-glow::before,.normandy-map>span i{animation:none!important}.reveal,.reveal-up,.reveal-left,.reveal-right,.reveal-scale,.hero-copy>*,.hero-visual{opacity:1!important;transform:none!important;filter:none!important}.normandy-map path{stroke-dashoffset:0!important}}
