@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&display=swap');
:root{--ink:#03110b;--black:#020604;--green:#2df585;--forest:#075238;--mint:#dbfbe7;--paper:#f5f7f2;--muted:#6b7c73;--line:rgba(2,22,13,.14);--pad:clamp(22px,5vw,78px);font-family:"DM Sans",Arial,sans-serif;color:var(--ink);background:#d4d5d1;font-synthesis:none}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;background:#d4d5d1;line-height:1.5}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}.page-shell{width:min(calc(100% - 48px),1440px);margin:32px auto;border-radius:32px;overflow:hidden;background:var(--black);box-shadow:0 30px 80px rgba(0,0,0,.15)}.header{position:absolute;z-index:20;top:32px;left:50%;transform:translateX(-50%);width:min(calc(100% - 112px),1328px);height:70px;display:flex;align-items:center;justify-content:space-between;color:white}.logo{display:flex;align-items:center;gap:9px;font-weight:600;font-size:20px;letter-spacing:-.04em}.logo-mark{display:grid;place-items:center;width:28px;height:28px;border:1px solid rgba(255,255,255,.35);border-radius:50%;font-size:12px;color:var(--green);box-shadow:inset 0 0 14px rgba(45,245,133,.18)}.nav{display:flex;align-items:center;gap:16px}.nav-pill{display:flex;padding:5px;border:1px solid rgba(255,255,255,.13);border-radius:99px;background:rgba(10,20,15,.66);backdrop-filter:blur(16px)}.nav-pill a{padding:9px 15px;color:#b7c0bb;font-size:13px;border-radius:99px;transition:.2s}.nav-pill a:hover{color:#fff;background:rgba(255,255,255,.08)}.header-cta{padding:11px 16px;border-radius:10px;background:#fff;color:#08120d;font-size:13px;font-weight:600}.header-cta span{color:var(--forest);margin-left:8px}.menu-button{display:none}.dark-section{position:relative;color:white;background:var(--black)}.hero{min-height:940px;padding:190px var(--pad) 64px;display:flex;flex-direction:column;align-items:center;text-align:center;overflow:hidden;background:radial-gradient(circle at 50% 29%,rgba(23,121,75,.34),transparent 27%),linear-gradient(#020604,#010302)}.hero:after{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(65,250,143,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(65,250,143,.035) 1px,transparent 1px);background-size:54px 54px;mask-image:radial-gradient(circle at 50% 34%,#000,transparent 65%)}.hero-content{position:relative;z-index:3;max-width:950px}.kicker,.section-label{font-size:11px;font-weight:600;letter-spacing:.11em;text-transform:uppercase}.kicker{color:#b5c0ba}.kicker span{display:inline-block;width:7px;height:7px;margin-right:7px;border-radius:50%;background:var(--green);box-shadow:0 0 12px var(--green)}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(62px,7vw,108px);line-height:.9;letter-spacing:-.065em;font-weight:500;margin:30px 0}h1 em,h2 em{font-style:normal;color:var(--green)}.hero-copy{max-width:610px;margin:0 auto 30px;color:#aab7b0;font-size:17px}.primary-button{display:inline-flex;align-items:center;gap:10px;padding:6px 18px 6px 6px;border-radius:12px;background:#fff;color:#07120c;font-size:14px;font-weight:600;transition:.2s}.primary-button b{display:grid;place-items:center;width:38px;height:38px;border-radius:8px;background:var(--green)}.primary-button:hover{transform:translateY(-3px);box-shadow:0 0 35px rgba(45,245,133,.2)}.signal-card{position:relative;z-index:3;margin-top:84px;width:190px;height:138px;border:1px solid rgba(255,255,255,.12);border-radius:22px;background:rgba(7,16,11,.78);display:grid;place-items:center;box-shadow:0 0 80px rgba(45,245,133,.14)}.signal-core{display:grid;place-items:center;width:65px;height:65px;border:1px solid var(--green);border-radius:18px;color:var(--green);font-size:28px;box-shadow:inset 0 0 30px rgba(45,245,133,.12),0 0 25px rgba(45,245,133,.15)}.signal-card span,.signal-card small{position:absolute;font-size:8px;letter-spacing:.13em;color:#86948c}.signal-card span{left:12px;bottom:10px}.signal-card small{right:12px;bottom:10px;color:var(--green)}.hero-tags{position:relative;z-index:3;margin-top:auto;width:100%;display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid rgba(255,255,255,.09)}.hero-tags span{padding:24px 10px;color:#839087;font-size:11px;letter-spacing:.08em;text-transform:uppercase;border-right:1px solid rgba(255,255,255,.08)}.hero-tags span:last-child{border:0}.hero-orbit{position:absolute;z-index:2;width:900px;height:260px;top:390px;border:1px solid rgba(45,245,133,.36);border-radius:50%;filter:drop-shadow(0 0 10px rgba(45,245,133,.25));transform:rotate(-9deg);animation:float 7s ease-in-out infinite}.orbit-two{width:1100px;height:340px;top:360px;transform:rotate(11deg);opacity:.32;animation-delay:-3s}.circuit{position:absolute;z-index:1;top:470px;width:100%;height:1px;background:linear-gradient(90deg,transparent,rgba(45,245,133,.6),transparent)}.circuit i{position:absolute;width:7px;height:7px;border:1px solid var(--green);transform:rotate(45deg);top:-3px}.circuit i:nth-child(1){left:8%}.circuit i:nth-child(2){left:22%}.circuit i:nth-child(3){left:39%}.circuit i:nth-child(4){right:39%}.circuit i:nth-child(5){right:22%}.circuit i:nth-child(6){right:8%}.process{padding:130px var(--pad) 140px}.section-intro{max-width:820px;text-align:center;margin:0 auto 75px}.section-label{color:var(--forest);margin-bottom:20px}.light .section-label{color:var(--green)}h2{font-size:clamp(43px,5.2vw,76px);font-weight:500;line-height:.98;letter-spacing:-.055em;margin-bottom:22px}.intro-copy{max-width:600px;margin:0 auto;color:var(--muted)}.steps{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:60px;max-width:1100px;margin:auto}.steps:before{content:"";position:absolute;top:34px;left:16%;right:16%;border-top:1px solid rgba(45,245,133,.22)}.steps article{text-align:center;position:relative}.step-icon{position:relative;z-index:2;display:grid;place-items:center;width:68px;height:68px;margin:0 auto 30px;border:1px solid rgba(45,245,133,.4);border-radius:18px;background:#06130c;color:var(--green);font-size:25px}.steps small{color:var(--green);font-size:10px}.steps h3{font-size:19px;margin:8px 0}.steps p{color:#89978f;font-size:14px;max-width:290px;margin:auto}.light-section{background:var(--paper);padding:140px var(--pad)}.services{border-radius:32px 32px 0 0}.service-stage{display:grid;grid-template-columns:.9fr 1.1fr;max-width:1230px;margin:auto;border-radius:30px;overflow:hidden}.visual-panel{min-height:650px;padding:48px;color:white;background:radial-gradient(circle at 50% 40%,rgba(45,245,133,.16),transparent 35%),#020604;display:flex;flex-direction:column;justify-content:flex-end}.rings{position:relative;flex:1;display:grid;place-items:center}.rings span{position:absolute;width:390px;height:390px;border:1px solid rgba(45,245,133,.27);border-radius:50%;animation:pulse 4s ease-in-out infinite}.rings span:nth-child(2){width:285px;height:285px;animation-delay:-1s}.rings span:nth-child(3){width:180px;height:180px;animation-delay:-2s}.rings b{z-index:2;color:var(--green);font-size:48px;line-height:.8;letter-spacing:-.05em}.rings small{display:block;color:#8ca095;font-size:10px;line-height:1.3;text-align:center;letter-spacing:.08em;margin-top:12px;text-transform:uppercase}.visual-panel>p{font-size:12px;color:#85948c;text-align:center;text-transform:uppercase;letter-spacing:.1em}.mini-flow{display:flex;align-items:center;justify-content:center;gap:8px}.mini-flow span{padding:8px 12px;border:1px solid rgba(255,255,255,.13);border-radius:99px;font-size:10px}.mini-flow i{width:35px;height:1px;background:var(--green)}.service-list{padding:44px 55px;background:var(--mint)}.service-list article{display:grid;grid-template-columns:42px 1fr;gap:18px;padding:29px 0;border-bottom:1px solid rgba(5,82,56,.18)}.service-list article:last-child{border:0}.service-list article>span{display:grid;place-items:center;width:34px;height:34px;border:1px solid rgba(5,82,56,.3);border-radius:50%;font-size:10px;color:var(--forest)}.service-list h3{font-size:21px;letter-spacing:-.03em;margin-bottom:8px}.service-list p{color:#60786c;font-size:14px;margin:0}.web-section{padding-top:20px}.web-heading{max-width:1100px;margin:0 auto 60px}.web-card{display:grid;grid-template-columns:1.15fr .85fr;max-width:1230px;margin:auto;border-radius:28px;overflow:hidden;background:#073f2e}.browser-mock{min-height:600px;margin:36px 0 36px 36px;border-radius:18px;overflow:hidden;color:white;background:linear-gradient(135deg,#151a17,#020604);box-shadow:0 25px 60px rgba(0,0,0,.25)}.browser-bar{height:40px;display:flex;align-items:center;gap:6px;padding:0 13px;background:#dbe1dd;color:#58635d}.browser-bar i{width:7px;height:7px;border-radius:50%;background:#9ba59f}.browser-bar span{margin:auto;font-size:9px}.mock-nav{display:flex;justify-content:space-between;padding:28px;font-size:12px}.mock-nav span{color:#7c8a82;font-size:9px}.mock-title{padding:100px 30px 20px;font-size:clamp(50px,5vw,82px);line-height:.82;letter-spacing:-.07em}.mock-title b{color:var(--green);font-weight:500}.mock-chip{margin:40px 30px;width:60px;height:60px;display:grid;place-items:center;border:1px solid #456057;border-radius:50%;font-size:9px;color:#9aaba2}.web-copy{padding:70px 60px;color:white;align-self:center}.web-copy .section-label{color:var(--green)}.web-copy h3{font-size:36px;line-height:1;letter-spacing:-.045em}.web-copy p{color:#adc0b7}.web-copy ul{list-style:none;padding:18px 0;margin:24px 0;border-top:1px solid rgba(255,255,255,.13)}.web-copy li{padding:9px 0;border-bottom:1px solid rgba(255,255,255,.13);font-size:13px}.web-copy li:before{content:"＋";color:var(--green);margin-right:10px}.web-copy a{display:inline-flex;justify-content:space-between;width:100%;padding:14px 0;border-bottom:1px solid var(--green);color:var(--green);font-size:13px}.manifesto{position:relative;text-align:center;padding-top:180px;padding-bottom:200px;overflow:hidden}.manifesto>p{color:var(--muted)}.manifesto h2{margin:auto}.particle{position:absolute;width:8px;height:8px;background:var(--green);border-radius:50%;filter:blur(1px);animation:float 5s ease-in-out infinite}.p1{top:30%;left:15%}.p2{top:65%;right:17%;animation-delay:-2s}.p3{top:22%;right:30%;width:4px;height:4px;animation-delay:-3s}.contact{display:grid;grid-template-columns:.9fr 1.1fr;gap:80px;padding:140px var(--pad);color:white;background:var(--forest)}.contact-copy{align-self:center}.contact-copy .section-label{color:var(--green)}.contact-copy h2{font-size:clamp(44px,5vw,70px)}.contact-copy p{max-width:500px;color:#acd0bf}.contact-copy>a{display:inline-block;margin-top:25px;color:var(--green);border-bottom:1px solid var(--green)}.contact-form{padding:40px;border:1px solid rgba(255,255,255,.18);border-radius:24px;background:rgba(1,31,21,.35)}.contact-form label{display:block;margin-bottom:22px;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#b9d4c7}.contact-form label span{opacity:.6;text-transform:none;letter-spacing:0}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}.contact-form input,.contact-form textarea{display:block;width:100%;margin-top:8px;border:0;border-bottom:1px solid rgba(255,255,255,.22);border-radius:0;padding:11px 0;background:transparent;color:white;outline:none;resize:vertical}.contact-form input:focus,.contact-form textarea:focus{border-color:var(--green)}.contact-form input::placeholder,.contact-form textarea::placeholder{color:#83a394}.contact-form button{width:100%;display:flex;justify-content:space-between;padding:15px 18px;border:0;border-radius:9px;background:var(--green);color:#042316;font-weight:600;cursor:pointer}.form-note{font-size:10px;color:#8fb09f;margin:12px 0 0}.form-note.success{color:var(--green)}footer{display:flex;align-items:center;gap:32px;padding:38px var(--pad);color:white;background:#020604;border-top:1px solid rgba(255,255,255,.1)}footer p,footer>span{color:#76837c;font-size:12px;margin:0}footer>span{margin-left:auto}footer>a:last-child{font-size:12px;color:#a9b3ad}.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.75,.2,1)}.reveal.visible{opacity:1;transform:none}@keyframes float{50%{transform:translateY(-12px) rotate(-6deg)}}@keyframes pulse{50%{opacity:.5;transform:scale(1.025)}}
@media(max-width:900px){.page-shell{width:calc(100% - 20px);margin:10px auto;border-radius:22px}.header{top:10px;width:calc(100% - 56px)}.menu-button{display:block;width:42px;height:42px;border:1px solid rgba(255,255,255,.2);border-radius:50%;background:rgba(0,0,0,.3)}.menu-button span{display:block;width:16px;height:1px;background:white;margin:5px auto}.nav{display:none;position:absolute;top:64px;left:0;right:0;padding:14px;background:rgba(2,6,4,.95);border:1px solid rgba(255,255,255,.12);border-radius:16px}.nav.open{display:grid}.nav-pill{display:grid;border:0;background:none}.nav-pill a{padding:13px}.header-cta{text-align:center}.hero{min-height:850px}.hero-tags{grid-template-columns:repeat(2,1fr)}.steps{grid-template-columns:1fr;gap:48px}.steps:before{display:none}.service-stage,.web-card,.contact{grid-template-columns:1fr}.visual-panel{min-height:510px}.browser-mock{margin:22px}.web-copy{padding:45px}.contact{gap:45px}.field-row{grid-template-columns:1fr}footer{flex-wrap:wrap}footer>span{margin-left:0}}
@media(max-width:560px){.page-shell{width:100%;margin:0;border-radius:0}.header{width:calc(100% - 40px)}.hero{padding-top:145px;min-height:810px}h1{font-size:58px}.hero-copy{font-size:15px}.signal-card{margin-top:65px}.hero-orbit{width:560px}.hero-tags span{padding:17px 5px;font-size:8px}.process,.light-section,.contact{padding:95px 20px}.section-intro{margin-bottom:50px}h2{font-size:43px}.visual-panel{padding:25px;min-height:450px}.rings span{width:280px;height:280px}.rings span:nth-child(2){width:210px;height:210px}.rings span:nth-child(3){width:140px;height:140px}.service-list{padding:24px}.browser-mock{min-height:430px}.mock-title{padding-top:90px;font-size:51px}.web-copy{padding:35px 28px}.manifesto{padding-top:120px;padding-bottom:130px}.contact-form{padding:25px 20px}footer{padding:30px 20px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero-orbit,.rings span,.particle{animation:none}.reveal{opacity:1;transform:none;transition:none}}

/* Fullscreen cinematic layout and scroll choreography */
html,body,:root{background:#020604}body{overflow-x:hidden}.page-shell{width:100%;max-width:none;margin:0;border-radius:0;box-shadow:none}.header{top:22px;width:calc(100% - clamp(40px,11vw,176px))}.hero{min-height:100svh;padding-top:clamp(150px,18vh,210px)}.scroll-progress{position:fixed;z-index:100;top:0;left:0;width:100%;height:2px;background:var(--green);transform:scaleX(0);transform-origin:left;box-shadow:0 0 14px var(--green);pointer-events:none}.signal-wrap{position:relative;z-index:3;margin-top:78px;display:flex;align-items:center}.signal-wrap .signal-card{margin-top:0}.chip-lines{width:min(20vw,280px);display:grid;gap:17px}.chip-lines i{height:1px;background:linear-gradient(90deg,transparent,rgba(45,245,133,.8));transform:scaleX(0);transform-origin:right;animation:draw-line 1.15s 1s cubic-bezier(.16,.84,.25,1) forwards}.chip-lines i:nth-child(2){animation-delay:1.16s}.chip-lines i:nth-child(3){animation-delay:1.3s}.right-lines{transform:scaleX(-1)}.reveal{opacity:0;transform:translateY(54px);filter:blur(7px);transition:opacity .9s ease,transform 1s cubic-bezier(.16,.84,.25,1),filter .9s ease}.reveal.visible{opacity:1;transform:none;filter:none}.hero-reveal{clip-path:inset(0 0 100% 0);transform:none;filter:none;transition:clip-path 1.25s .1s cubic-bezier(.16,.84,.25,1),opacity .35s}.hero-reveal.visible{clip-path:inset(0)}.steps article{transition:transform .6s ease}.steps article.is-active .step-icon{transform:translateY(-6px);background:#092117;box-shadow:0 0 38px rgba(45,245,133,.25)}.service-stage{transform:scale(.91);transform-origin:center;transition:transform 1.1s cubic-bezier(.16,.84,.25,1)}.service-stage.expanded{transform:scale(1)}.manifesto h2 span,.manifesto h2 em{display:inline-block;will-change:transform}.services{border-radius:0}@keyframes draw-line{to{transform:scaleX(1)}}
@media(max-width:900px){.page-shell{width:100%;margin:0;border-radius:0}.header{top:10px}.chip-lines{width:14vw}.service-stage{transform:scale(.96)}}
@media(max-width:560px){.chip-lines{width:45px}.signal-wrap{margin-top:64px}.scroll-progress{height:1px}}

/* One gesture = one cinematic scene */
html{scroll-snap-type:y mandatory;overscroll-behavior-y:none}main>section{position:relative;scroll-snap-align:start;scroll-snap-stop:always;min-height:100svh;isolation:isolate}main>section:before{content:"";position:absolute;z-index:20;inset:0;pointer-events:none;background:var(--green);transform:scaleY(0);transform-origin:bottom;opacity:0}.scene-dots{position:fixed;z-index:90;right:26px;top:50%;display:grid;gap:11px;transform:translateY(-50%)}.scene-dots button{position:relative;width:7px;height:7px;padding:0;border:1px solid rgba(255,255,255,.52);border-radius:50%;background:rgba(2,6,4,.35);cursor:pointer;transition:transform .35s ease,background .35s ease,box-shadow .35s ease}.scene-dots button:after{content:"";position:absolute;inset:-8px}.scene-dots button.active{transform:scale(1.55);border-color:var(--green);background:var(--green);box-shadow:0 0 14px rgba(45,245,133,.65)}.scene-dots.on-light button{border-color:rgba(3,17,11,.45);background:rgba(3,17,11,.12)}.scene-dots.on-light button.active{background:var(--forest);border-color:var(--forest);box-shadow:0 0 13px rgba(7,82,56,.35)}main>section.scene-entering:before{animation:scene-wipe .85s cubic-bezier(.76,0,.24,1)}main>section.scene-active .section-label{animation:label-in .7s .22s both}main>section.scene-active h2{animation:title-in .9s .12s cubic-bezier(.16,.84,.25,1) both}main>section.scene-active .steps article,main>section.scene-active .service-list article{animation:item-rise .8s cubic-bezier(.16,.84,.25,1) both}main>section.scene-active .steps article:nth-child(2),main>section.scene-active .service-list article:nth-child(2){animation-delay:.1s}main>section.scene-active .steps article:nth-child(3),main>section.scene-active .service-list article:nth-child(3){animation-delay:.2s}main>section.scene-active .service-list article:nth-child(4){animation-delay:.3s}.is-snapping .hero-orbit{animation-duration:3.4s}.is-snapping main>section.scene-active .visual-panel{animation:visual-breathe 1.2s cubic-bezier(.16,.84,.25,1)}
@keyframes scene-wipe{0%{transform:scaleY(0);transform-origin:bottom;opacity:.12}45%{transform:scaleY(1);transform-origin:bottom;opacity:.08}46%{transform-origin:top}100%{transform:scaleY(0);transform-origin:top;opacity:0}}@keyframes label-in{from{opacity:0;letter-spacing:.24em;transform:translateY(12px)}to{opacity:1;letter-spacing:.11em;transform:none}}@keyframes title-in{from{opacity:0;transform:translateY(48px);filter:blur(8px)}to{opacity:1;transform:none;filter:none}}@keyframes item-rise{from{opacity:0;transform:translateY(32px)}to{opacity:1;transform:none}}@keyframes visual-breathe{0%{filter:brightness(.75);transform:scale(.985)}100%{filter:brightness(1);transform:none}}
@media(max-width:700px){html{scroll-snap-type:y proximity}.scene-dots{right:10px}.scene-dots button{width:6px;height:6px}}
@media(prefers-reduced-motion:reduce){html{scroll-snap-type:y proximity}main>section.scene-entering:before,main>section.scene-active .section-label,main>section.scene-active h2,main>section.scene-active .steps article,main>section.scene-active .service-list article{animation:none}}
html.is-snapping{scroll-snap-type:none;scroll-behavior:auto!important}

/* Keep one physical headline alive across the manifesto transition */
.manifesto.carry-active{overflow:visible}.manifesto-copy.is-carrying{position:fixed;z-index:85;top:50%;left:0;width:100%;padding-inline:var(--pad);transform:translateY(-50%);text-align:center;will-change:top,transform}.manifesto-copy.is-carrying.to-framework{animation:carry-headline-up 1.55s .04s cubic-bezier(.77,0,.18,1) forwards}html.carrying-manifesto .framework-heading{visibility:hidden}.manifesto-copy.is-carrying h2 span,.manifesto-copy.is-carrying h2 em,.manifesto-copy.is-carrying>p{opacity:1;filter:none}.manifesto-copy.is-carrying h2 span,.manifesto-copy.is-carrying h2 em{transform:none!important}.manifesto-copy.is-carrying.to-framework h2 span,.manifesto-copy.is-carrying.to-framework h2 em{animation:none}.manifesto-copy.is-carrying.to-framework>p{animation:none}.framework.scene-active .framework-panel{animation-delay:.08s}
@keyframes carry-headline-up{0%{top:50%;transform:translateY(-50%)}100%{top:clamp(44px,7vh,82px);transform:translateY(0)}}
@media(max-width:700px){.manifesto-copy.is-carrying{padding-inline:24px}.manifesto-copy.is-carrying h2{font-size:42px}@keyframes carry-headline-up{0%{top:50%;transform:translateY(-50%)}100%{top:54px;transform:translateY(0)}}}
.manifesto.carry-active{isolation:auto}

/* Organic particles, horizontal panel reveal and reversible motion */
.particle-dot{filter:blur(var(--blur));will-change:transform,opacity}.particle-dot.particle-ring{background:transparent;border:1px solid rgba(45,245,133,.75);box-shadow:0 0 16px rgba(45,245,133,.24)}.manifesto.scene-active .particle-dot{animation:particle-gather var(--duration) var(--delay) cubic-bezier(.16,.84,.25,1) both,particle-drift var(--drift-duration) var(--drift-delay) ease-in-out infinite alternate}.manifesto.scene-active .particle-dot:nth-child(3n){mix-blend-mode:multiply}.manifesto.scene-active .particle-dot:nth-child(4n){box-shadow:0 0 22px rgba(45,245,133,.5)}
@keyframes particle-drift{0%{transform:translate(0,0)}45%{transform:translate(var(--drift-x),var(--drift-y))}100%{transform:translate(-6px,5px)}}
.framework-panel{transform:none!important;clip-path:inset(0 100% 0 0 round 30px);transition:clip-path 1.5s cubic-bezier(.77,0,.18,1)!important;animation:none!important}.framework.scene-active .framework-panel{clip-path:inset(0 round 30px);transition-delay:.08s!important;animation:none!important}.framework-word,.framework-items article,.framework-axis i{transition:opacity .65s ease,transform .8s cubic-bezier(.16,.84,.25,1)}.framework-axis:before{transition:transform .75s ease}.framework.scene-active .framework-word,.framework.scene-active .framework-items article,.framework.scene-active .framework-axis i{animation:none!important;opacity:1;transform:none}.framework.scene-active .framework-axis:before{animation:none!important;transform:scaleY(1)}.framework.scene-active .framework-word{transition-delay:.58s}.framework.scene-active .framework-items article:nth-child(1),.framework.scene-active .framework-axis i:nth-child(1){transition-delay:.62s}.framework.scene-active .framework-items article:nth-child(2),.framework.scene-active .framework-axis i:nth-child(2){transition-delay:.76s}.framework.scene-active .framework-items article:nth-child(3),.framework.scene-active .framework-axis i:nth-child(3){transition-delay:.9s}.framework-word,.framework-items article,.framework-axis i,.framework-axis:before{transition-delay:0s}
.manifesto-copy.is-carrying.returning-manifesto{animation:carry-headline-down 1.55s .04s cubic-bezier(.77,0,.18,1) forwards}.manifesto-copy.is-carrying.returning-manifesto h2 span,.manifesto-copy.is-carrying.returning-manifesto h2 em,.manifesto-copy.is-carrying.returning-manifesto>p{animation:none}
@keyframes carry-headline-down{0%{top:clamp(44px,7vh,82px);transform:translateY(0)}100%{top:50%;transform:translateY(-50%)}}
@media(max-width:700px){@keyframes carry-headline-down{0%{top:54px;transform:translateY(0)}100%{top:50%;transform:translateY(-50%)}}}

/* Clean framework-to-contact handoff */
.manifesto-copy.is-carrying.parked-framework{top:var(--reverse-start-top,clamp(44px,7vh,82px));transform:translateY(0);animation:none}.contact.contact-arriving .contact-copy,.contact.contact-arriving .contact-form{animation:contact-clean-enter .9s .42s cubic-bezier(.16,.84,.25,1) both}.contact.contact-arriving:before{animation:contact-edge-in .85s .18s cubic-bezier(.16,.84,.25,1) both}
@keyframes contact-clean-enter{from{opacity:0;transform:translateY(38px);filter:blur(5px)}to{opacity:1;transform:none;filter:none}}@keyframes contact-edge-in{from{opacity:0;transform:scaleX(0)}to{opacity:.45;transform:scaleX(1)}}
@media(max-width:700px){.manifesto-copy.is-carrying.parked-framework{top:var(--reverse-start-top,54px)}}

/* Seamless handoff between the carried and in-flow headline */
.framework-heading h2{font-size:clamp(43px,5.2vw,76px);line-height:.98;letter-spacing:-.055em}.framework-heading>p{font-size:inherit;line-height:1.5}.framework-heading{width:100%}.framework-heading,.manifesto-copy{backface-visibility:hidden;-webkit-font-smoothing:antialiased}
@media(max-width:700px){.framework-heading h2{font-size:42px}}

/* Prevent the manifesto entrance animation from replaying during reverse travel */
.manifesto-copy.is-carrying>p,.manifesto-copy.is-carrying h2 span,.manifesto-copy.is-carrying h2 em{animation:none!important;opacity:1!important;filter:none!important}.manifesto-copy.is-carrying h2 span,.manifesto-copy.is-carrying h2 em{transform:none!important}

/* Neutral contact surface — green is reserved for accents */
.contact{background:#020604}.contact:after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(circle at 78% 48%,rgba(255,255,255,.035),transparent 34%)}.contact-copy p{color:#aab5af}.contact-form{background:rgba(255,255,255,.025);border-color:rgba(255,255,255,.14)}.contact-form label{color:#c4cbc7}.contact-form input::placeholder,.contact-form textarea::placeholder{color:#77817c}.form-note{color:#818b86}

/* Preserve the final reverse-animation frame after the fixed layer is released */
.manifesto.reverse-settled .manifesto-copy>p,
.manifesto.reverse-settled .manifesto-copy h2,
.manifesto.reverse-settled .manifesto-copy h2 span,
.manifesto.reverse-settled .manifesto-copy h2 em{
  animation:none!important;
  opacity:1!important;
  filter:none!important;
  transform:none!important
}

.manifesto.reverse-settled .manifesto-copy h2{
  clip-path:inset(0)!important
}
.manifesto-copy.is-carrying>p{transform:none!important}

/* Subtle scene details */
.signal-card{overflow:hidden}.signal-card:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 15%,rgba(45,245,133,.12) 50%,transparent 85%);transform:translateY(-120%);pointer-events:none}.hero.scene-active .signal-card:after{animation:signal-scan 3.8s 1.1s ease-in-out infinite}.hero.scene-active .signal-core{animation:core-breathe 3.6s 1.2s ease-in-out infinite}.hero.scene-active .circuit i{animation:circuit-ping 2.8s ease-in-out infinite}.hero.scene-active .circuit i:nth-child(2),.hero.scene-active .circuit i:nth-child(5){animation-delay:.45s}.hero.scene-active .circuit i:nth-child(3),.hero.scene-active .circuit i:nth-child(4){animation-delay:.9s}.hero-tags span{opacity:.42;transition:opacity .55s ease,color .55s ease}.hero.scene-active .hero-tags span{animation:tag-focus .7s cubic-bezier(.16,.84,.25,1) both}.hero.scene-active .hero-tags span:nth-child(2){animation-delay:.1s}.hero.scene-active .hero-tags span:nth-child(3){animation-delay:.2s}.hero.scene-active .hero-tags span:nth-child(4){animation-delay:.3s}
.steps:before{transform:scaleX(0);transform-origin:left;transition:transform 1.15s .25s cubic-bezier(.16,.84,.25,1)}.process.scene-active .steps:before{transform:scaleX(1)}.step-icon{transition:transform .6s cubic-bezier(.16,.84,.25,1),box-shadow .6s ease,border-color .6s ease}.steps article:hover .step-icon{transform:translateY(-8px) rotate(3deg);border-color:var(--green);box-shadow:0 14px 35px rgba(45,245,133,.16)}
.visual-panel{position:relative;overflow:hidden}.visual-panel:after{content:"";position:absolute;top:-20%;bottom:-20%;left:-35%;width:24%;background:linear-gradient(90deg,transparent,rgba(45,245,133,.08),transparent);transform:skewX(-14deg);pointer-events:none}.services.scene-active .visual-panel:after{animation:panel-glint 4.8s 1.2s ease-in-out infinite}.service-list article{position:relative;transition:padding-left .4s cubic-bezier(.16,.84,.25,1),background-color .4s ease}.service-list article:after{content:"";position:absolute;left:0;bottom:-1px;width:0;height:1px;background:var(--green);transition:width .55s cubic-bezier(.16,.84,.25,1)}.service-list article:hover{padding-left:8px;background:rgba(255,255,255,.16)}.service-list article:hover:after{width:100%}
.browser-mock{position:relative}.browser-mock:after{content:"";position:absolute;inset:40px 0 0;background:linear-gradient(115deg,transparent 30%,rgba(45,245,133,.065) 48%,transparent 66%);background-size:220% 100%;background-position:120% 0;pointer-events:none}.web-section.scene-active .browser-mock:after{animation:browser-sheen 4.2s .9s ease-in-out infinite}.web-section.scene-active .mock-title{animation:mock-title-in 1s .45s cubic-bezier(.16,.84,.25,1) both}.browser-bar i{transform:scale(0)}.web-section.scene-active .browser-bar i{animation:chrome-dot .38s cubic-bezier(.2,.8,.2,1) forwards}.web-section.scene-active .browser-bar i:nth-child(2){animation-delay:.12s}.web-section.scene-active .browser-bar i:nth-child(3){animation-delay:.24s}
.contact-form{transition:border-color .5s ease,box-shadow .5s ease}.contact.scene-active .contact-form{border-color:rgba(255,255,255,.2);box-shadow:0 24px 70px rgba(0,0,0,.22)}.contact-form label{transition:color .25s ease}.contact-form label:focus-within{color:var(--green)}.contact-form button span{transition:transform .3s cubic-bezier(.16,.84,.25,1)}.contact-form button:hover span{transform:translate(3px,-3px)}
@keyframes signal-scan{0%,22%{transform:translateY(-120%)}62%,100%{transform:translateY(120%)}}@keyframes core-breathe{0%,100%{box-shadow:inset 0 0 30px rgba(45,245,133,.12),0 0 20px rgba(45,245,133,.1)}50%{box-shadow:inset 0 0 38px rgba(45,245,133,.2),0 0 38px rgba(45,245,133,.22)}}@keyframes circuit-ping{0%,100%{opacity:.35;box-shadow:none}50%{opacity:1;box-shadow:0 0 12px var(--green)}}@keyframes tag-focus{from{opacity:.25;transform:translateY(8px)}to{opacity:1;transform:none;color:#9faea6}}@keyframes panel-glint{0%,28%{left:-35%}72%,100%{left:125%}}@keyframes browser-sheen{0%,25%{background-position:120% 0}70%,100%{background-position:-110% 0}}@keyframes mock-title-in{from{opacity:0;transform:translateY(24px);letter-spacing:-.1em}to{opacity:1;transform:none;letter-spacing:-.07em}}@keyframes chrome-dot{from{transform:scale(0)}to{transform:scale(1)}}
@media(prefers-reduced-motion:reduce){.hero.scene-active .signal-card:after,.hero.scene-active .signal-core,.hero.scene-active .circuit i,.hero.scene-active .hero-tags span,.services.scene-active .visual-panel:after,.web-section.scene-active .browser-mock:after,.web-section.scene-active .mock-title,.web-section.scene-active .browser-bar i{animation:none}.steps:before{transform:scaleX(1);transition:none}}

/* Process narrative: label → headline → connected steps */
.process-intro{overflow:hidden}.process-intro .section-label,.process-intro h2 span,.process-intro h2 em{display:inline-block;opacity:0;will-change:transform,opacity,filter}.process-intro .section-label{transform:translateY(14px);letter-spacing:.2em}.process-intro h2,.process.scene-active .process-intro h2{animation:none}.process-intro h2 span,.process-intro h2 em{transform:translateY(105%);filter:blur(5px)}.process.scene-active .process-intro .section-label{animation:process-label-in .65s .08s cubic-bezier(.16,.84,.25,1) forwards}.process.scene-active .process-intro h2 span{animation:process-line-in .85s .28s cubic-bezier(.16,.84,.25,1) forwards}.process.scene-active .process-intro h2 em{animation:process-line-in .9s .5s cubic-bezier(.16,.84,.25,1) forwards}
.process .steps{gap:clamp(20px,4vw,60px)}.process .steps:before{top:42px;left:12%;right:12%;border:0;height:1px;background:linear-gradient(90deg,transparent,rgba(45,245,133,.75) 12%,rgba(45,245,133,.3) 88%,transparent);box-shadow:0 0 13px rgba(45,245,133,.18);transition:none;transform:scaleX(0)}.process.scene-active .steps:before{animation:process-path-in 1.15s .72s cubic-bezier(.16,.84,.25,1) forwards}.process .steps article{min-height:270px;padding:25px 24px 28px;border:1px solid rgba(255,255,255,.075);border-radius:22px;background:linear-gradient(145deg,rgba(255,255,255,.038),rgba(255,255,255,.012));box-shadow:inset 0 1px rgba(255,255,255,.035);opacity:0;transform:translateX(-38px) scale(.975);overflow:hidden}.process .steps article:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 0,rgba(45,245,133,.09),transparent 42%);opacity:0;transition:opacity .6s ease;pointer-events:none}.process .steps article:after{content:"";position:absolute;top:0;left:-100%;width:70%;height:1px;background:linear-gradient(90deg,transparent,var(--green),transparent);opacity:.8}.process.scene-active .steps article{animation:process-step-in .85s cubic-bezier(.16,.84,.25,1) forwards}.process.scene-active .steps article:nth-child(1){animation-delay:.82s}.process.scene-active .steps article:nth-child(2){animation-delay:1.04s}.process.scene-active .steps article:nth-child(3){animation-delay:1.26s}.process.scene-active .steps article:after{animation:step-edge-scan 1.1s cubic-bezier(.16,.84,.25,1) forwards}.process.scene-active .steps article:nth-child(1):after{animation-delay:1.02s}.process.scene-active .steps article:nth-child(2):after{animation-delay:1.24s}.process.scene-active .steps article:nth-child(3):after{animation-delay:1.46s}.process .steps article:hover:before{opacity:1}.process .step-icon{width:76px;height:76px;margin-bottom:24px;background:rgba(6,19,12,.96);box-shadow:0 0 0 8px #020604}.process.scene-active .step-icon{animation:process-node-in .62s cubic-bezier(.16,.84,.25,1) both}.process.scene-active article:nth-child(1) .step-icon{animation-delay:.92s}.process.scene-active article:nth-child(2) .step-icon{animation-delay:1.14s}.process.scene-active article:nth-child(3) .step-icon{animation-delay:1.36s}.process .steps small{display:inline-flex;align-items:center;gap:7px}.process .steps small:before{content:"";width:5px;height:5px;border-radius:50%;background:var(--green);box-shadow:0 0 9px var(--green)}
@keyframes process-label-in{to{opacity:1;transform:none;letter-spacing:.11em}}@keyframes process-line-in{to{opacity:1;transform:none;filter:none}}@keyframes process-path-in{to{transform:scaleX(1)}}@keyframes process-step-in{to{opacity:1;transform:none}}@keyframes process-node-in{from{opacity:0;transform:scale(.6) rotate(-12deg);box-shadow:0 0 0 8px #020604}to{opacity:1;transform:none;box-shadow:0 0 0 8px #020604,0 0 30px rgba(45,245,133,.14)}}@keyframes step-edge-scan{to{left:130%}}
@media(max-width:900px){.process .steps article{min-height:0}.process .steps:before{display:none}.process.scene-active .steps article{animation-name:process-step-mobile}@keyframes process-step-mobile{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}}
@media(prefers-reduced-motion:reduce){.process-intro .section-label,.process-intro h2 span,.process-intro h2 em,.process .steps article{opacity:1;transform:none;filter:none}.process.scene-active .process-intro .section-label,.process.scene-active .process-intro h2 span,.process.scene-active .process-intro h2 em,.process.scene-active .steps:before,.process.scene-active .steps article,.process.scene-active .step-icon,.process.scene-active .steps article:after{animation:none}}

/* Unified premium process rail */
.process .steps{gap:0;max-width:1180px;padding:0;border:1px solid rgba(255,255,255,.085);border-radius:26px;background:linear-gradient(180deg,rgba(255,255,255,.032),rgba(255,255,255,.012));box-shadow:inset 0 1px rgba(255,255,255,.035),0 28px 70px rgba(0,0,0,.2);overflow:hidden}.process .steps:before{z-index:3;top:68px;left:9%;right:9%;height:1px}.process .steps:after{content:"";position:absolute;z-index:4;top:65px;left:9%;width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 18px var(--green);opacity:0}.process.scene-active .steps:after{animation:rail-signal 1.55s .76s cubic-bezier(.16,.84,.25,1) forwards}.process .steps article{min-height:315px;padding:31px clamp(24px,3vw,42px) 35px;border:0;border-right:1px solid rgba(255,255,255,.07);border-radius:0;background:transparent;box-shadow:none;opacity:1;transform:none;clip-path:inset(0 100% 0 0);text-align:left}.process .steps article:last-child{border-right:0}.process .steps article:before{inset:0;background:linear-gradient(110deg,rgba(45,245,133,.055),transparent 40%);opacity:0;transition:opacity .55s ease}.process .steps article:after{top:0;bottom:auto;left:0;width:100%;height:1px;background:linear-gradient(90deg,transparent,rgba(45,245,133,.7),transparent);transform:scaleX(0);transform-origin:left;opacity:.65}.process.scene-active .steps article{animation:process-column-reveal .95s cubic-bezier(.16,.84,.25,1) forwards}.process.scene-active .steps article:nth-child(1){animation-delay:.72s}.process.scene-active .steps article:nth-child(2){animation-delay:.94s}.process.scene-active .steps article:nth-child(3){animation-delay:1.16s}.process.scene-active .steps article:after{animation:column-edge-in .72s cubic-bezier(.16,.84,.25,1) forwards}.process.scene-active .steps article:nth-child(1):after{animation-delay:.94s}.process.scene-active .steps article:nth-child(2):after{animation-delay:1.16s}.process.scene-active .steps article:nth-child(3):after{animation-delay:1.38s}.process .steps article:hover{padding-left:clamp(24px,3vw,42px);background:rgba(255,255,255,.018)}.process .steps article:hover:before{opacity:1}.process .step-icon{width:72px;height:72px;margin:0 auto 35px;border-radius:50%;background:#06120c;box-shadow:0 0 0 10px #030805;color:var(--green)}.process .steps small{margin-bottom:10px;color:#779087}.process .steps h3{font-size:clamp(18px,1.55vw,22px);margin-bottom:10px;letter-spacing:-.025em}.process .steps p{max-width:330px;margin:0;color:#87958d;line-height:1.55}.process.scene-active .step-icon{animation:rail-node-in .62s cubic-bezier(.16,.84,.25,1) both}.process.scene-active article:nth-child(1) .step-icon{animation-delay:.82s}.process.scene-active article:nth-child(2) .step-icon{animation-delay:1.04s}.process.scene-active article:nth-child(3) .step-icon{animation-delay:1.26s}
@keyframes process-column-reveal{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}@keyframes column-edge-in{to{transform:scaleX(1)}}@keyframes rail-node-in{0%{opacity:0;transform:scale(.45);box-shadow:0 0 0 10px #030805}65%{opacity:1;transform:scale(1.08);box-shadow:0 0 0 10px #030805,0 0 32px rgba(45,245,133,.22)}100%{opacity:1;transform:scale(1);box-shadow:0 0 0 10px #030805,0 0 22px rgba(45,245,133,.12)}}@keyframes rail-signal{0%{left:9%;opacity:0}12%{opacity:1}88%{opacity:1}100%{left:90%;opacity:0}}
@media(max-width:900px){.process .steps{border-radius:22px}.process .steps article{min-height:0;padding:28px;border-right:0;border-bottom:1px solid rgba(255,255,255,.07);clip-path:inset(0 0 100% 0)}.process .steps article:last-child{border-bottom:0}.process.scene-active .steps article{animation-name:process-row-reveal}.process .step-icon{margin:0 0 22px}.process .steps:after{display:none}@keyframes process-row-reveal{to{clip-path:inset(0)}}}
@media(prefers-reduced-motion:reduce){.process .steps article{clip-path:inset(0)}.process.scene-active .steps article,.process.scene-active .step-icon,.process.scene-active .steps:after{animation:none}}

/* Isolate particle arrival and drift on separate DOM layers */
.particle-orbit{position:absolute;left:var(--x);top:var(--y);width:var(--size);height:var(--size);opacity:0;will-change:transform,opacity}.particle-orbit .particle-dot{position:relative;display:block;inset:auto;width:100%;height:100%;opacity:1;translate:none;scale:none;will-change:transform}.manifesto.scene-active .particle-orbit{animation:particle-shell-arrive var(--duration) var(--delay) cubic-bezier(.16,.84,.25,1) both}.manifesto.scene-active .particle-orbit .particle-dot{animation:particle-drift var(--drift-duration) var(--drift-delay) ease-in-out infinite alternate}.manifesto.scene-active .particle-orbit:nth-child(3n) .particle-dot{mix-blend-mode:multiply}.manifesto.scene-active .particle-orbit:nth-child(4n) .particle-dot{box-shadow:0 0 22px rgba(45,245,133,.5)}
@keyframes particle-shell-arrive{0%{opacity:0;transform:translate(var(--from-x),var(--from-y)) scale(.2)}35%{opacity:var(--alpha)}100%{opacity:var(--alpha);transform:translate(0,0) scale(1)}}

/* Particle depth and accent layers */
.particle-dot.particle-dust{background:#159c61;box-shadow:none}.particle-dot.particle-node{background:#42ff98;box-shadow:0 0 8px #2df585,0 0 22px rgba(45,245,133,.42)}.particle-dot.particle-node:after{content:"";position:absolute;inset:-5px;border:1px solid rgba(45,245,133,.42);border-radius:50%;animation:particle-halo 3.8s var(--pulse-delay) ease-in-out infinite}.particle-dot.particle-trail:before{content:"";position:absolute;top:50%;right:80%;width:18px;height:1px;background:linear-gradient(90deg,transparent,rgba(45,245,133,.38));transform:translateY(-50%) rotate(-12deg);transform-origin:right;opacity:.7}.particle-dot.particle-ring{background:transparent;border-color:rgba(45,245,133,.7)}
@keyframes particle-halo{0%,100%{opacity:.18;transform:scale(.72)}50%{opacity:.75;transform:scale(1.28)}}
@media(max-width:700px){.particle-orbit:nth-child(3n){display:none}.particle-dot.particle-trail:before{width:10px}}
@media(prefers-reduced-motion:reduce){.particle-dot.particle-node:after{animation:none}}

/* Efiox dusk palette — #0B0909 · #2E4540 · #408175 · #B5B9F0 */
:root{--ink:#182521;--black:#0b0909;--green:#b5b9f0;--forest:#2e4540;--mint:#dce8e5;--paper:#f4f4f1;--muted:#6c7975;--line:rgba(46,69,64,.18)}html,body,:root,.page-shell{background:#0b0909}.dark-section{background:#0b0909}.hero{background:radial-gradient(circle at 50% 29%,rgba(64,129,117,.3),transparent 28%),linear-gradient(#0b0909,#0b0909)}.hero:after{background-image:linear-gradient(rgba(181,185,240,.034) 1px,transparent 1px),linear-gradient(90deg,rgba(181,185,240,.034) 1px,transparent 1px)}.logo-mark{color:#b5b9f0;box-shadow:inset 0 0 14px rgba(181,185,240,.16)}.kicker span{background:#b5b9f0;box-shadow:0 0 13px rgba(181,185,240,.75)}h1 em,h2 em{color:#8c9fd8}.primary-button b,.contact-form button{background:#b5b9f0;color:#171820}.primary-button:hover{box-shadow:0 0 34px rgba(181,185,240,.22)}.signal-card{background:rgba(20,27,25,.82);box-shadow:0 0 80px rgba(64,129,117,.17)}.signal-core{border-color:#b5b9f0;color:#b5b9f0;box-shadow:inset 0 0 30px rgba(181,185,240,.13),0 0 25px rgba(181,185,240,.16)}.signal-card small,.light .section-label,.steps small,.framework-word,.web-copy .section-label,.web-copy a,.contact-copy .section-label,.contact-copy>a{color:#b5b9f0}.hero-orbit{border-color:rgba(181,185,240,.32);filter:drop-shadow(0 0 10px rgba(64,129,117,.3))}.circuit{background:linear-gradient(90deg,transparent,rgba(181,185,240,.6),transparent)}.circuit i{border-color:#b5b9f0}.chip-lines i{background:linear-gradient(90deg,transparent,rgba(181,185,240,.75))}.step-icon{border-color:rgba(181,185,240,.4);color:#b5b9f0;background:#131b19}.process .steps{background:linear-gradient(180deg,rgba(64,129,117,.08),rgba(255,255,255,.01));border-color:rgba(181,185,240,.11)}.process .steps:before{background:linear-gradient(90deg,transparent,rgba(181,185,240,.72) 12%,rgba(64,129,117,.42) 88%,transparent);box-shadow:0 0 13px rgba(181,185,240,.16)}.process .steps:after,.process .steps small:before{background:#b5b9f0;box-shadow:0 0 14px rgba(181,185,240,.75)}.process .steps article:before{background:linear-gradient(110deg,rgba(181,185,240,.055),transparent 40%)}.process .steps article:after{background:linear-gradient(90deg,transparent,rgba(181,185,240,.7),transparent)}.light-section{background:#f4f4f1}.service-list{background:#dce8e5}.service-list article>span{color:#2e4540;border-color:rgba(46,69,64,.3)}.service-list p{color:#5c706a}.visual-panel{background:radial-gradient(circle at 50% 40%,rgba(181,185,240,.12),transparent 35%),#0b0909}.rings span{border-color:rgba(181,185,240,.28)}.rings b{color:#b5b9f0}.mini-flow i{background:#b5b9f0}.web-card{background:#2e4540}.browser-mock{background:linear-gradient(135deg,#23302d,#0b0909)}.mock-title b{color:#b5b9f0}.web-copy li:before{color:#b5b9f0}.manifesto-copy h2 em,.framework-heading h2 em{color:#8c9fd8}.framework-panel{background:#2e4540}.framework-panel:before{background:radial-gradient(circle at 44% 50%,rgba(181,185,240,.11),transparent 28%),linear-gradient(90deg,rgba(11,9,9,.08),transparent)}.framework-axis:before{background:rgba(181,185,240,.28)}.framework-axis i{background:#408175;box-shadow:0 0 0 8px #2e4540}.framework-axis i.active{background:#b5b9f0}.framework-items h3{color:#b5b9f0}.framework-items p{color:#bfd0cb}.framework-items article.active{border-color:#b5b9f0}.contact{background:#0b0909}.contact-form label:focus-within{color:#b5b9f0}.scroll-progress{background:#b5b9f0;box-shadow:0 0 14px rgba(181,185,240,.7)}.scene-dots button.active{border-color:#b5b9f0;background:#b5b9f0;box-shadow:0 0 14px rgba(181,185,240,.55)}.particle-dot{background:#408175;box-shadow:0 0 14px rgba(64,129,117,.35)}.particle-dot.particle-dust{background:#2e4540}.particle-dot.particle-node{background:#b5b9f0;box-shadow:0 0 8px #b5b9f0,0 0 22px rgba(181,185,240,.44)}.particle-dot.particle-node:after{border-color:rgba(181,185,240,.42)}.particle-dot.particle-ring{border-color:rgba(181,185,240,.72)}.particle-dot.particle-trail:before{background:linear-gradient(90deg,transparent,rgba(181,185,240,.4))}.particle-orbit:nth-child(4n+2) .particle-dot:not(.particle-node):not(.particle-ring){background:#7d92c7}

/* Keep outgoing scenes fully composed until the scroll transition completes */
.particle-dot{will-change:translate,scale,transform,opacity}
.scene-leaving .reveal{opacity:1;transform:none;filter:none}.process.scene-leaving .process-intro .section-label,.process.scene-leaving .process-intro h2 span,.process.scene-leaving .process-intro h2 em{animation:none!important;opacity:1;transform:none;filter:none}.process.scene-leaving .steps:before{animation:none!important;transform:scaleX(1)}.process.scene-leaving .steps article{animation:none!important;opacity:1;transform:none;clip-path:inset(0)}.process.scene-leaving .step-icon{animation:none!important;opacity:1;transform:none}.process.scene-leaving .steps article:after{animation:none!important;transform:scaleX(1)}

/* Refined scene sizing and motion */
main>section:before{inset:auto 8% 0;height:1px;background:linear-gradient(90deg,transparent,var(--green),transparent);transform:scaleX(0);transform-origin:left;opacity:0}main>section.scene-entering:before{animation:line-sweep 1.15s cubic-bezier(.16,.84,.25,1)}.reveal{transform:translateY(30px);filter:blur(3px);transition-duration:.85s;transition-timing-function:cubic-bezier(.16,.84,.25,1)}.service-stage{clip-path:inset(7% 0 7% 0 round 30px);transform:scale(.975);transition:clip-path 1.05s cubic-bezier(.16,.84,.25,1),transform 1.05s cubic-bezier(.16,.84,.25,1),box-shadow 1.05s ease}.service-stage.expanded{clip-path:inset(0 round 30px);transform:scale(1);box-shadow:0 28px 70px rgba(2,28,18,.12)}.scene-active .rings span{animation-duration:5.5s}.scene-active .rings b{animation:metric-focus .9s .25s cubic-bezier(.16,.84,.25,1) both}.scene-active .mini-flow i{animation:flow-line .85s .45s cubic-bezier(.16,.84,.25,1) both}.scene-active .web-card{animation:card-focus 1s .12s cubic-bezier(.16,.84,.25,1) both}
@keyframes line-sweep{0%{transform:scaleX(0);opacity:0}25%{opacity:.75}70%{opacity:.35}100%{transform:scaleX(1);opacity:0}}@keyframes metric-focus{from{opacity:0;transform:scale(.72);filter:blur(6px)}to{opacity:1;transform:scale(1);filter:none}}@keyframes flow-line{from{transform:scaleX(0);transform-origin:left;opacity:0}to{transform:scaleX(1);opacity:1}}@keyframes card-focus{from{opacity:.65;transform:translateY(34px) scale(.985)}to{opacity:1;transform:none}}

@media(min-width:901px){.services{height:100svh;min-height:720px;padding:clamp(46px,6vh,72px) var(--pad);display:grid;grid-template-rows:auto minmax(0,1fr);align-content:center}.services>.section-intro{margin:0 auto clamp(28px,3.8vh,46px);max-width:920px}.services>.section-intro h2{font-size:clamp(38px,4.25vw,62px);margin-bottom:14px}.services>.section-intro .intro-copy{font-size:14px;line-height:1.45}.services .section-label{margin-bottom:12px}.services .service-stage{width:100%;height:min(58vh,560px);min-height:430px}.services .visual-panel{min-height:0;height:100%;padding:clamp(25px,3vw,42px)}.services .service-list{height:100%;padding:clamp(20px,2.4vw,34px) clamp(30px,3.5vw,52px);display:grid;align-content:center}.services .service-list article{padding:clamp(12px,1.65vh,20px) 0}.services .service-list h3{font-size:clamp(17px,1.45vw,21px);margin-bottom:4px}.services .service-list p{font-size:clamp(12px,.95vw,14px);line-height:1.4}.services .rings span{width:min(36vh,330px);height:min(36vh,330px)}.services .rings span:nth-child(2){width:min(27vh,245px);height:min(27vh,245px)}.services .rings span:nth-child(3){width:min(18vh,165px);height:min(18vh,165px)}.services .rings b{font-size:clamp(38px,3.5vw,50px)}}
@media(min-width:901px) and (max-height:760px){.services{min-height:100svh;padding-top:28px;padding-bottom:28px}.services>.section-intro{margin-bottom:16px}.services>.section-intro h2{font-size:40px;margin-bottom:0}.services>.section-intro .intro-copy{display:none}.services .service-stage{height:440px;min-height:0}.services .service-list article{padding:8px 0}.services .service-list p{font-size:12px}.services .visual-panel>p{margin-bottom:8px}}

/* Manifesto particle scene */
.manifesto{min-height:100svh;display:grid;place-items:center;padding:80px var(--pad);overflow:hidden}.manifesto-copy{position:relative;z-index:2;text-align:center}.manifesto-copy>p{margin-bottom:20px;color:var(--muted);opacity:0;transform:translateY(18px)}.manifesto-copy h2{margin:0}.manifesto-copy h2 span,.manifesto-copy h2 em{opacity:0;transform:translateY(44px);filter:blur(8px)}.manifesto.scene-active .manifesto-copy>p{animation:manifesto-line .75s .12s cubic-bezier(.16,.84,.25,1) forwards}.manifesto.scene-active .manifesto-copy h2 span{animation:manifesto-line .9s .35s cubic-bezier(.16,.84,.25,1) forwards}.manifesto.scene-active .manifesto-copy h2 em{animation:manifesto-line .9s .58s cubic-bezier(.16,.84,.25,1) forwards}.particle-field{position:absolute;inset:0;z-index:1;pointer-events:none}.particle-dot{position:absolute;left:var(--x);top:var(--y);width:var(--size);height:var(--size);border-radius:50%;background:var(--green);opacity:0;box-shadow:0 0 14px rgba(45,245,133,.36)}.manifesto.scene-active .particle-dot{animation:particle-gather var(--duration) var(--delay) cubic-bezier(.2,.68,.28,1) both,particle-float 4s calc(var(--delay) + var(--duration)) ease-in-out infinite alternate}
@keyframes manifesto-line{to{opacity:1;transform:none;filter:none}}@keyframes particle-gather{0%{opacity:0;translate:var(--from-x) var(--from-y);scale:.2}35%{opacity:var(--alpha)}100%{opacity:var(--alpha);translate:0 0;scale:1}}@keyframes particle-float{from{transform:translate(-5px,-7px)}to{transform:translate(7px,8px)}}

/* Efiox solution framework */
.framework{min-height:100svh;padding:clamp(50px,7vh,86px) var(--pad);display:grid;grid-template-rows:auto minmax(0,1fr);background:var(--paper)}.framework-heading{text-align:center;align-self:center;margin-bottom:clamp(28px,4vh,50px)}.framework-heading .section-label{display:inline-block;margin-bottom:14px;padding:5px 11px;border:1px solid rgba(5,82,56,.35);border-radius:99px;font-size:9px}.framework-heading h2{font-size:clamp(36px,4.5vw,62px);margin:0}.framework-panel{position:relative;display:grid;grid-template-columns:.8fr 90px 1.25fr;align-items:center;width:100%;max-width:1230px;min-height:390px;margin:auto;padding:clamp(34px,5vw,72px);border-radius:30px;background:#04543e;color:white;overflow:hidden;clip-path:inset(50% 0 50% 0 round 30px);transition:clip-path 1.05s cubic-bezier(.16,.84,.25,1)}.framework.scene-active .framework-panel{clip-path:inset(0 round 30px)}.framework-panel:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 44% 50%,rgba(45,245,133,.1),transparent 27%),linear-gradient(90deg,rgba(0,0,0,.06),transparent);pointer-events:none}.framework-word{position:relative;z-index:1;text-align:center;color:var(--green);font-size:clamp(38px,4vw,64px);font-weight:500;letter-spacing:-.055em;opacity:0;transform:translateX(-35px)}.framework.scene-active .framework-word{animation:framework-left .8s .55s cubic-bezier(.16,.84,.25,1) forwards}.framework-axis{position:relative;z-index:1;height:72%;display:flex;flex-direction:column;align-items:center;justify-content:space-between}.framework-axis:before{content:"";position:absolute;top:9px;bottom:9px;width:1px;background:rgba(45,245,133,.25);transform:scaleY(0);transform-origin:top}.framework.scene-active .framework-axis:before{animation:axis-draw .7s .62s ease forwards}.framework-axis i{position:relative;z-index:1;width:14px;height:14px;border-radius:50%;background:#22c978;box-shadow:0 0 0 8px #04543e;opacity:0;transform:scale(0)}.framework-axis i.active{width:25px;height:25px;background:var(--green)}.framework.scene-active .framework-axis i{animation:node-in .5s cubic-bezier(.2,.8,.2,1) forwards}.framework.scene-active .framework-axis i:nth-child(1){animation-delay:.72s}.framework.scene-active .framework-axis i:nth-child(2){animation-delay:.9s}.framework.scene-active .framework-axis i:nth-child(3){animation-delay:1.08s}.framework-items{position:relative;z-index:1;display:grid;gap:30px}.framework-items article{opacity:0;transform:translateX(28px)}.framework-items h3{margin:0 0 4px;color:#2be889;font-size:clamp(18px,1.8vw,27px);font-weight:500;letter-spacing:-.03em}.framework-items p{margin:0;color:#a9c9bb;font-size:13px}.framework-items article.active{padding-left:18px;border-left:2px solid var(--green)}.framework.scene-active .framework-items article{animation:framework-right .65s cubic-bezier(.16,.84,.25,1) forwards}.framework.scene-active .framework-items article:nth-child(1){animation-delay:.7s}.framework.scene-active .framework-items article:nth-child(2){animation-delay:.88s}.framework.scene-active .framework-items article:nth-child(3){animation-delay:1.06s}
@keyframes framework-left{to{opacity:1;transform:none}}@keyframes framework-right{to{opacity:1;transform:none}}@keyframes axis-draw{to{transform:scaleY(1)}}@keyframes node-in{to{opacity:1;transform:scale(1)}}
@media(max-width:700px){.framework{padding:70px 20px}.framework-panel{grid-template-columns:1fr 44px 1.5fr;min-height:480px;padding:28px 20px}.framework-word{font-size:30px}.framework-items{gap:24px}.framework-items h3{font-size:16px}.framework-items p{font-size:11px}.manifesto-copy h2{font-size:42px}}

/* Continuous manifesto-to-framework transition */
.framework{overflow:hidden}.framework-heading{position:relative;z-index:3;transform:translateY(25vh);will-change:transform}.framework-heading>p{margin:0 0 20px;color:var(--muted)}.framework-heading h2,.framework.scene-active .framework-heading h2{animation:none;opacity:1;transform:none;filter:none}.framework.scene-active .framework-heading{animation:heading-travel .95s .12s cubic-bezier(.16,.84,.25,1) forwards}.framework-panel{clip-path:inset(0 round 30px);transform:translateX(-115%);transition:none;will-change:transform}.framework.scene-active .framework-panel{clip-path:inset(0 round 30px);animation:panel-slide-right 1.05s .62s cubic-bezier(.16,.84,.25,1) forwards}.framework.scene-active .framework-word{animation-delay:1.08s}.framework.scene-active .framework-axis:before{animation-delay:1.14s}.framework.scene-active .framework-axis i:nth-child(1){animation-delay:1.22s}.framework.scene-active .framework-axis i:nth-child(2){animation-delay:1.38s}.framework.scene-active .framework-axis i:nth-child(3){animation-delay:1.54s}.framework.scene-active .framework-items article:nth-child(1){animation-delay:1.18s}.framework.scene-active .framework-items article:nth-child(2){animation-delay:1.36s}.framework.scene-active .framework-items article:nth-child(3){animation-delay:1.54s}
@keyframes heading-travel{from{transform:translateY(25vh)}to{transform:translateY(0)}}@keyframes panel-slide-right{from{transform:translateX(-115%)}to{transform:translateX(0)}}
@media(max-height:760px) and (min-width:701px){.framework{padding-top:32px;padding-bottom:32px}.framework-heading{margin-bottom:20px}.framework-heading>p{margin-bottom:8px}.framework-heading h2{font-size:38px}.framework-panel{min-height:360px}}
@media(max-width:700px){.framework-heading{transform:translateY(20vh)}.framework.scene-active .framework-heading{animation-name:heading-travel-mobile}@keyframes heading-travel-mobile{from{transform:translateY(20vh)}to{transform:translateY(0)}}}

/* Controlled easing replaces the browser's abrupt native snap */
html.is-snapping{scroll-snap-type:none}.framework.scene-active .framework-heading{animation-duration:1.55s;animation-delay:.05s;animation-timing-function:cubic-bezier(.77,0,.18,1)}.framework.scene-active .framework-panel{animation-duration:1.5s;animation-delay:.08s;animation-timing-function:cubic-bezier(.77,0,.18,1)}.framework.scene-active .framework-word{animation-delay:.72s}.framework.scene-active .framework-axis:before{animation-delay:.78s}.framework.scene-active .framework-axis i:nth-child(1){animation-delay:.84s}.framework.scene-active .framework-axis i:nth-child(2){animation-delay:1s}.framework.scene-active .framework-axis i:nth-child(3){animation-delay:1.16s}.framework.scene-active .framework-items article:nth-child(1){animation-delay:.82s}.framework.scene-active .framework-items article:nth-child(2){animation-delay:.98s}.framework.scene-active .framework-items article:nth-child(3){animation-delay:1.14s}

/* Palette-safe animated light effects */
.signal-card:after{background:linear-gradient(180deg,transparent 15%,rgba(181,185,240,.11) 50%,transparent 85%)}.visual-panel:after{background:linear-gradient(90deg,transparent,rgba(181,185,240,.075),transparent)}.browser-mock:after{background-image:linear-gradient(115deg,transparent 30%,rgba(181,185,240,.06) 48%,transparent 66%)}
@keyframes core-breathe{0%,100%{box-shadow:inset 0 0 30px rgba(181,185,240,.12),0 0 20px rgba(64,129,117,.12)}50%{box-shadow:inset 0 0 38px rgba(181,185,240,.2),0 0 38px rgba(181,185,240,.2)}}@keyframes rail-node-in{0%{opacity:0;transform:scale(.45);box-shadow:0 0 0 10px #0b0909}65%{opacity:1;transform:scale(1.08);box-shadow:0 0 0 10px #0b0909,0 0 32px rgba(181,185,240,.2)}100%{opacity:1;transform:scale(1);box-shadow:0 0 0 10px #0b0909,0 0 22px rgba(64,129,117,.18)}}

/* Final no-green pass: graphite · blue-slate · lavender */
:root{--forest:#30353b;--mint:#e3e5ee;--paper:#f4f4f2;--muted:#727780;--line:rgba(73,78,91,.18)}.hero{background:radial-gradient(circle at 50% 29%,rgba(108,116,158,.24),transparent 28%),#0b0909}.signal-card{background:rgba(26,27,32,.84);box-shadow:0 0 80px rgba(108,116,158,.14)}.hero-orbit{filter:drop-shadow(0 0 10px rgba(124,132,178,.25))}.service-list{background:#e3e5ee}.service-list article>span{color:#434956;border-color:rgba(67,73,86,.3)}.service-list p{color:#676d78}.web-card,.framework-panel{background:#30353b}.framework-panel:before{background:radial-gradient(circle at 44% 50%,rgba(181,185,240,.12),transparent 28%),linear-gradient(90deg,rgba(11,9,9,.08),transparent)}.framework-axis i{background:#717a9f;box-shadow:0 0 0 8px #30353b}.framework-items p{color:#c6c9d8}.contact-copy p{color:#abb0ba}.particle-dot{background:#747ca3;box-shadow:0 0 14px rgba(116,124,163,.35)}.particle-dot.particle-dust{background:#464c5d}.particle-orbit:nth-child(4n+2) .particle-dot:not(.particle-node):not(.particle-ring){background:#8d95c1}.process .steps{background:linear-gradient(180deg,rgba(112,120,159,.08),rgba(255,255,255,.01))}.visual-panel{background:radial-gradient(circle at 50% 40%,rgba(181,185,240,.13),transparent 35%),#0b0909}.browser-mock{background:linear-gradient(135deg,#282d35,#0b0909)}
@keyframes core-breathe{0%,100%{box-shadow:inset 0 0 30px rgba(181,185,240,.12),0 0 20px rgba(112,120,159,.12)}50%{box-shadow:inset 0 0 38px rgba(181,185,240,.2),0 0 38px rgba(181,185,240,.2)}}@keyframes rail-node-in{0%{opacity:0;transform:scale(.45);box-shadow:0 0 0 10px #0b0909}65%{opacity:1;transform:scale(1.08);box-shadow:0 0 0 10px #0b0909,0 0 32px rgba(181,185,240,.2)}100%{opacity:1;transform:scale(1);box-shadow:0 0 0 10px #0b0909,0 0 22px rgba(112,120,159,.18)}}

/* Targeted removal of legacy green active states */
.process .steps article .step-icon,.process .steps article.is-active .step-icon,.process .steps article:hover .step-icon{background:#15161c!important;border-color:rgba(181,185,240,.48)!important;color:#b5b9f0!important;box-shadow:0 0 0 10px #0b0909,0 0 28px rgba(181,185,240,.16)!important}.process .steps small{color:#9ba1c8!important}.process .steps small:before{background:#b5b9f0!important;box-shadow:0 0 10px rgba(181,185,240,.72)!important}.framework .framework-word,.framework .framework-items h3{color:#b5b9f0!important}.framework .framework-items article.active{border-color:#b5b9f0!important}.framework .framework-axis i{background:#747ca3!important;box-shadow:0 0 0 8px #30353b!important}.framework .framework-axis i.active{background:#b5b9f0!important;box-shadow:0 0 0 8px #30353b,0 0 22px rgba(181,185,240,.2)!important}.framework .framework-axis:before{background:rgba(181,185,240,.28)!important}

/* Graceful particle exit into the framework scene */
.manifesto.scene-leaving .particle-orbit{animation:particle-shell-depart 1.05s cubic-bezier(.4,0,.2,1) forwards}.manifesto.scene-leaving .particle-orbit .particle-dot{animation:particle-drift var(--drift-duration) var(--drift-delay) ease-in-out infinite alternate}.manifesto.scene-leaving .particle-orbit:nth-child(3n){animation-duration:1.2s}.manifesto.scene-leaving .particle-orbit:nth-child(4n){animation-duration:.9s}
@keyframes particle-shell-depart{0%{opacity:var(--alpha);transform:translate(0,0) scale(1)}100%{opacity:0;transform:translate(var(--depart-x),var(--depart-y)) scale(.58)}}

/* Efiox crimson palette — #F7374F · #88304E · #522546 · #2C2C2C */
:root{--ink:#30262a;--black:#2c2c2c;--green:#f7374f;--forest:#522546;--mint:#eadce1;--paper:#f6f2f3;--muted:#76686e;--line:rgba(82,37,70,.18)}html,body,:root,.page-shell{background:#2c2c2c}.dark-section{background:#2c2c2c}.hero{background:radial-gradient(circle at 50% 29%,rgba(136,48,78,.34),transparent 29%),linear-gradient(#242424,#2c2c2c)}.hero:after{background-image:linear-gradient(rgba(247,55,79,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(247,55,79,.035) 1px,transparent 1px)}.logo-mark{color:#f7374f;box-shadow:inset 0 0 14px rgba(247,55,79,.18)}.kicker span{background:#f7374f;box-shadow:0 0 13px rgba(247,55,79,.72)}h1 em,h2 em,.manifesto-copy h2 em,.framework-heading h2 em{color:#f7374f}.primary-button b,.contact-form button{background:#f7374f;color:white}.primary-button:hover{box-shadow:0 0 36px rgba(247,55,79,.25)}.signal-card{background:rgba(44,35,39,.88);box-shadow:0 0 80px rgba(136,48,78,.22)}.signal-core{border-color:#f7374f;color:#f7374f;box-shadow:inset 0 0 30px rgba(247,55,79,.14),0 0 25px rgba(247,55,79,.18)}.signal-card small,.light .section-label,.steps small,.web-copy .section-label,.web-copy a,.contact-copy .section-label,.contact-copy>a{color:#f7374f}.hero-orbit{border-color:rgba(247,55,79,.34);filter:drop-shadow(0 0 10px rgba(136,48,78,.36))}.circuit{background:linear-gradient(90deg,transparent,rgba(247,55,79,.62),transparent)}.circuit i{border-color:#f7374f}.chip-lines i{background:linear-gradient(90deg,transparent,rgba(247,55,79,.78))}.scroll-progress{background:#f7374f;box-shadow:0 0 14px rgba(247,55,79,.7)}.scene-dots button.active{border-color:#f7374f;background:#f7374f;box-shadow:0 0 14px rgba(247,55,79,.55)}.light-section{background:#f6f2f3}.service-list{background:#eadce1}.service-list article>span{color:#522546;border-color:rgba(82,37,70,.3)}.service-list p{color:#755f68}.visual-panel{background:radial-gradient(circle at 50% 40%,rgba(247,55,79,.13),transparent 35%),#2c2c2c}.rings span{border-color:rgba(247,55,79,.3)}.rings b,.framework .framework-word,.framework .framework-items h3{color:#f7374f!important}.mini-flow i{background:#f7374f}.web-card,.framework-panel{background:#522546}.browser-mock{background:linear-gradient(135deg,#3b2931,#242424)}.mock-title b{color:#f7374f}.web-copy li:before{color:#f7374f}.framework-panel:before{background:radial-gradient(circle at 44% 50%,rgba(247,55,79,.13),transparent 28%),linear-gradient(90deg,rgba(44,44,44,.12),transparent)}.framework .framework-axis i{background:#88304e!important;box-shadow:0 0 0 8px #522546!important}.framework .framework-axis i.active{background:#f7374f!important;box-shadow:0 0 0 8px #522546,0 0 22px rgba(247,55,79,.28)!important}.framework .framework-axis:before{background:rgba(247,55,79,.3)!important}.framework .framework-items article.active{border-color:#f7374f!important}.framework-items p{color:#dbc5cd}.contact{background:#242424}.contact-form label:focus-within{color:#f7374f}.process .steps{background:linear-gradient(180deg,rgba(136,48,78,.1),rgba(255,255,255,.01));border-color:rgba(247,55,79,.12)}.process .steps:before{background:linear-gradient(90deg,transparent,rgba(247,55,79,.75) 12%,rgba(136,48,78,.52) 88%,transparent);box-shadow:0 0 13px rgba(247,55,79,.18)}.process .steps:after,.process .steps small:before{background:#f7374f!important;box-shadow:0 0 14px rgba(247,55,79,.7)!important}.process .steps article:before{background:linear-gradient(110deg,rgba(247,55,79,.06),transparent 40%)}.process .steps article:after{background:linear-gradient(90deg,transparent,rgba(247,55,79,.72),transparent)}.process .steps article .step-icon,.process .steps article.is-active .step-icon,.process .steps article:hover .step-icon{background:#302a2c!important;border-color:rgba(247,55,79,.5)!important;color:#f7374f!important;box-shadow:0 0 0 10px #2c2c2c,0 0 28px rgba(247,55,79,.17)!important}.process .steps small{color:#d08a9e!important}.particle-dot{background:#88304e;box-shadow:0 0 14px rgba(136,48,78,.4)}.particle-dot.particle-dust{background:#522546}.particle-dot.particle-node{background:#f7374f;box-shadow:0 0 8px #f7374f,0 0 22px rgba(247,55,79,.46)}.particle-dot.particle-node:after{border-color:rgba(247,55,79,.46)}.particle-dot.particle-ring{border-color:rgba(247,55,79,.76)}.particle-dot.particle-trail:before{background:linear-gradient(90deg,transparent,rgba(247,55,79,.42))}.particle-orbit:nth-child(4n+2) .particle-dot:not(.particle-node):not(.particle-ring){background:#a94764}.signal-card:after{background:linear-gradient(180deg,transparent 15%,rgba(247,55,79,.12) 50%,transparent 85%)}.visual-panel:after{background:linear-gradient(90deg,transparent,rgba(247,55,79,.08),transparent)}.browser-mock:after{background-image:linear-gradient(115deg,transparent 30%,rgba(247,55,79,.07) 48%,transparent 66%)}
@keyframes core-breathe{0%,100%{box-shadow:inset 0 0 30px rgba(247,55,79,.12),0 0 20px rgba(136,48,78,.14)}50%{box-shadow:inset 0 0 38px rgba(247,55,79,.22),0 0 38px rgba(247,55,79,.22)}}@keyframes rail-node-in{0%{opacity:0;transform:scale(.45);box-shadow:0 0 0 10px #2c2c2c}65%{opacity:1;transform:scale(1.08);box-shadow:0 0 0 10px #2c2c2c,0 0 32px rgba(247,55,79,.23)}100%{opacity:1;transform:scale(1);box-shadow:0 0 0 10px #2c2c2c,0 0 22px rgba(136,48,78,.22)}}

/* Efiox ultraviolet palette — #2E073F · #7A1CAC · #AD49E1 · #EBD3F8 */
:root{--ink:#2e073f;--black:#2e073f;--green:#ad49e1;--forest:#7a1cac;--mint:#ebd3f8;--paper:#f8f1fb;--muted:#796d80;--line:rgba(122,28,172,.18)}html,body,:root,.page-shell{background:#2e073f}.dark-section{background:#2e073f}.hero{background:radial-gradient(circle at 50% 29%,rgba(122,28,172,.36),transparent 29%),linear-gradient(#260532,#2e073f)}.hero:after{background-image:linear-gradient(rgba(173,73,225,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(173,73,225,.04) 1px,transparent 1px)}.logo-mark{color:#ad49e1;box-shadow:inset 0 0 14px rgba(173,73,225,.2)}.kicker span{background:#ad49e1;box-shadow:0 0 13px rgba(173,73,225,.75)}h1 em{color:#ad49e1}h2 em,.manifesto-copy h2 em,.framework-heading h2 em{color:#7a1cac}.process h2 em{color:#ad49e1}.primary-button b,.contact-form button{background:#ad49e1;color:white}.primary-button:hover{box-shadow:0 0 36px rgba(173,73,225,.3)}.signal-card{background:rgba(46,7,63,.84);box-shadow:0 0 80px rgba(122,28,172,.25)}.signal-core{border-color:#ad49e1;color:#ad49e1;box-shadow:inset 0 0 30px rgba(173,73,225,.16),0 0 25px rgba(173,73,225,.2)}.signal-card small,.light .section-label,.steps small,.web-copy .section-label,.web-copy a,.contact-copy .section-label,.contact-copy>a{color:#ad49e1}.hero-orbit{border-color:rgba(173,73,225,.38);filter:drop-shadow(0 0 10px rgba(122,28,172,.42))}.circuit{background:linear-gradient(90deg,transparent,rgba(173,73,225,.68),transparent)}.circuit i{border-color:#ad49e1}.chip-lines i{background:linear-gradient(90deg,transparent,rgba(173,73,225,.82))}.scroll-progress{background:#ad49e1;box-shadow:0 0 14px rgba(173,73,225,.72)}.scene-dots button.active{border-color:#ad49e1;background:#ad49e1;box-shadow:0 0 14px rgba(173,73,225,.58)}.light-section{background:#f8f1fb}.service-list{background:#ebd3f8}.service-list article>span{color:#7a1cac;border-color:rgba(122,28,172,.3)}.service-list p{color:#725f7c}.visual-panel{background:radial-gradient(circle at 50% 40%,rgba(173,73,225,.16),transparent 35%),#2e073f}.rings span{border-color:rgba(173,73,225,.34)}.rings b{color:#ad49e1}.mini-flow i{background:#ad49e1}.web-card,.framework-panel{background:#7a1cac}.browser-mock{background:linear-gradient(135deg,#4a0d66,#260532)}.mock-title b{color:#ad49e1}.web-copy li:before{color:#ebd3f8}.framework-panel:before{background:radial-gradient(circle at 44% 50%,rgba(235,211,248,.14),transparent 28%),linear-gradient(90deg,rgba(46,7,63,.14),transparent)}.framework .framework-word,.framework .framework-items h3{color:#ebd3f8!important}.framework .framework-axis i{background:#ad49e1!important;box-shadow:0 0 0 8px #7a1cac!important}.framework .framework-axis i.active{background:#ebd3f8!important;box-shadow:0 0 0 8px #7a1cac,0 0 24px rgba(235,211,248,.3)!important}.framework .framework-axis:before{background:rgba(235,211,248,.35)!important}.framework .framework-items article.active{border-color:#ebd3f8!important}.framework-items p{color:#eadcf0}.contact{background:#260532}.contact-form label:focus-within{color:#ad49e1}.process .steps{background:linear-gradient(180deg,rgba(122,28,172,.14),rgba(255,255,255,.01));border-color:rgba(173,73,225,.15)}.process .steps:before{background:linear-gradient(90deg,transparent,rgba(173,73,225,.8) 12%,rgba(122,28,172,.58) 88%,transparent);box-shadow:0 0 13px rgba(173,73,225,.22)}.process .steps:after,.process .steps small:before{background:#ad49e1!important;box-shadow:0 0 14px rgba(173,73,225,.75)!important}.process .steps article:before{background:linear-gradient(110deg,rgba(173,73,225,.075),transparent 40%)}.process .steps article:after{background:linear-gradient(90deg,transparent,rgba(173,73,225,.78),transparent)}.process .steps article .step-icon,.process .steps article.is-active .step-icon,.process .steps article:hover .step-icon{background:#360849!important;border-color:rgba(173,73,225,.56)!important;color:#ad49e1!important;box-shadow:0 0 0 10px #2e073f,0 0 28px rgba(173,73,225,.22)!important}.process .steps small{color:#d99af1!important}.particle-dot{background:#7a1cac;box-shadow:0 0 14px rgba(122,28,172,.44)}.particle-dot.particle-dust{background:#5b1477}.particle-dot.particle-node{background:#ad49e1;box-shadow:0 0 8px #ad49e1,0 0 22px rgba(173,73,225,.5)}.particle-dot.particle-node:after{border-color:rgba(173,73,225,.5)}.particle-dot.particle-ring{border-color:rgba(173,73,225,.8)}.particle-dot.particle-trail:before{background:linear-gradient(90deg,transparent,rgba(173,73,225,.5))}.particle-orbit:nth-child(4n+2) .particle-dot:not(.particle-node):not(.particle-ring){background:#c779e9}.signal-card:after{background:linear-gradient(180deg,transparent 15%,rgba(173,73,225,.14) 50%,transparent 85%)}.visual-panel:after{background:linear-gradient(90deg,transparent,rgba(173,73,225,.1),transparent)}.browser-mock:after{background-image:linear-gradient(115deg,transparent 30%,rgba(235,211,248,.08) 48%,transparent 66%)}
@keyframes core-breathe{0%,100%{box-shadow:inset 0 0 30px rgba(173,73,225,.14),0 0 20px rgba(122,28,172,.18)}50%{box-shadow:inset 0 0 38px rgba(173,73,225,.25),0 0 40px rgba(173,73,225,.26)}}@keyframes rail-node-in{0%{opacity:0;transform:scale(.45);box-shadow:0 0 0 10px #2e073f}65%{opacity:1;transform:scale(1.08);box-shadow:0 0 0 10px #2e073f,0 0 32px rgba(173,73,225,.27)}100%{opacity:1;transform:scale(1);box-shadow:0 0 0 10px #2e073f,0 0 22px rgba(122,28,172,.27)}}

/* Motion stabilization: text never scales or changes rasterization */
.reveal,.process-intro .section-label,.process-intro h2 span,.process-intro h2 em,.manifesto-copy>p,.manifesto-copy h2 span,.manifesto-copy h2 em,.contact-copy,.contact-form{filter:none!important}.service-stage,.service-stage.expanded{transform:none!important}.scene-active .visual-panel{animation-name:visual-breathe-stable!important}.web-section.scene-active .web-card{animation-name:card-focus-stable!important}.web-section.scene-active .mock-title{animation-name:mock-title-stable!important}.contact.contact-arriving .contact-copy,.contact.contact-arriving .contact-form{animation-name:contact-enter-stable!important}main>section h1,main>section h2,main>section h3,main>section p,main>section a,main>section label,main>section li{font-kerning:normal;font-optical-sizing:auto}.scene-active h1,.scene-active h2,.scene-active h3,.scene-active p,.scene-leaving h1,.scene-leaving h2,.scene-leaving h3,.scene-leaving p{backface-visibility:hidden}
@keyframes title-in{from{opacity:0;transform:translateY(38px)}to{opacity:1;transform:translateY(0)}}@keyframes manifesto-line{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}@keyframes process-line-in{from{opacity:0;transform:translateY(32px)}to{opacity:1;transform:translateY(0)}}@keyframes contact-enter-stable{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes card-focus-stable{from{opacity:.7;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes visual-breathe-stable{from{filter:brightness(.88)}to{filter:brightness(1)}}@keyframes mock-title-stable{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.reveal,.process-intro .section-label,.process-intro h2 span,.process-intro h2 em,.manifesto-copy>p,.manifesto-copy h2 span,.manifesto-copy h2 em,.contact-copy,.contact-form{transform:none!important;opacity:1!important}}

/* Editorial headline reveals and full-page color handoff */
.services .section-intro h2,.web-section .web-heading h2,.contact .contact-copy h2{opacity:0;clip-path:inset(0 0 100% 0);transform:translateY(30px);will-change:clip-path,transform,opacity}.services.scene-active .section-intro h2,.web-section.scene-active .web-heading h2,.contact.scene-active .contact-copy h2{animation:editorial-headline-in 1.05s .16s cubic-bezier(.16,.84,.25,1) forwards}.services.scene-leaving .section-intro h2,.web-section.scene-leaving .web-heading h2,.contact.scene-leaving .contact-copy h2{opacity:1;clip-path:inset(0);transform:none;animation:none}.section-curtain{position:fixed;z-index:95;inset:0;pointer-events:none;opacity:0;will-change:clip-path,opacity}.section-curtain:after{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(122,28,172,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(122,28,172,.025) 1px,transparent 1px);background-size:54px 54px}.section-curtain.wipe-to-light{background:#f8f1fb;animation:curtain-rise-light 1.25s cubic-bezier(.76,0,.24,1) forwards}.section-curtain.wipe-to-dark{background:#2e073f;animation:curtain-fall-dark 1.25s cubic-bezier(.76,0,.24,1) forwards}
@keyframes editorial-headline-in{0%{opacity:0;clip-path:inset(0 0 100% 0);transform:translateY(30px)}100%{opacity:1;clip-path:inset(0);transform:translateY(0)}}@keyframes curtain-rise-light{0%{opacity:1;clip-path:inset(100% 0 0 0)}58%{opacity:1;clip-path:inset(0)}82%{opacity:1;clip-path:inset(0)}100%{opacity:0;clip-path:inset(0)}}@keyframes curtain-fall-dark{0%{opacity:1;clip-path:inset(0 0 100% 0)}58%{opacity:1;clip-path:inset(0)}82%{opacity:1;clip-path:inset(0)}100%{opacity:0;clip-path:inset(0)}}
@media(prefers-reduced-motion:reduce){.services .section-intro h2,.web-section .web-heading h2,.contact .contact-copy h2{opacity:1;clip-path:inset(0);transform:none}.section-curtain{display:none}}

/* Smooth process-to-services choreography */
.section-curtain.wipe-to-light,.section-curtain.wipe-to-dark{animation-duration:1.55s;animation-timing-function:cubic-bezier(.65,0,.2,1)}.services.color-arriving .section-label,.services.color-arriving .intro-copy,.services.color-arriving .service-stage{opacity:0}.services.color-arriving .section-label{animation:services-meta-in .65s .68s cubic-bezier(.16,.84,.25,1) forwards}.services.color-arriving .section-intro h2{animation:services-title-in .88s .76s cubic-bezier(.16,.84,.25,1) forwards}.services.color-arriving .intro-copy{animation:services-copy-in .7s .9s cubic-bezier(.16,.84,.25,1) forwards}.services.color-arriving .service-stage{animation:services-content-in .9s .72s cubic-bezier(.16,.84,.25,1) forwards}.services.color-arriving .service-list article{animation-play-state:paused}.services.color-arriving.scene-active .service-list article{animation-play-state:running}
@keyframes curtain-rise-light{0%{opacity:1;clip-path:inset(100% 0 0 0)}52%{opacity:1;clip-path:inset(0)}100%{opacity:1;clip-path:inset(0 0 100% 0)}}@keyframes curtain-fall-dark{0%{opacity:1;clip-path:inset(0 0 100% 0)}52%{opacity:1;clip-path:inset(0)}100%{opacity:1;clip-path:inset(100% 0 0 0)}}@keyframes services-meta-in{from{opacity:0;transform:translateY(12px);letter-spacing:.18em}to{opacity:1;transform:none;letter-spacing:.11em}}@keyframes services-title-in{from{opacity:0;clip-path:inset(0 0 100% 0);transform:translateY(26px)}to{opacity:1;clip-path:inset(0);transform:none}}@keyframes services-copy-in{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}@keyframes services-content-in{from{opacity:0;clip-path:inset(0 0 12% 0);transform:translateY(24px)}to{opacity:1;clip-path:inset(0);transform:none}}
@media(prefers-reduced-motion:reduce){.services.color-arriving .section-label,.services.color-arriving .intro-copy,.services.color-arriving .service-stage{opacity:1;animation:none}.services.color-arriving .section-intro h2{animation:none}}

/* Lock the completed services composition to prevent animation handoff flicker */
.services.color-settled .section-label,.services.color-settled .section-intro h2,.services.color-settled .intro-copy,.services.color-settled .service-stage,.services.color-settled .service-list article{animation:none!important;opacity:1!important;transform:none!important;filter:none!important}.services.color-settled .section-intro h2,.services.color-settled .service-stage{clip-path:inset(0)!important}.services.color-settled .section-label{letter-spacing:.11em!important}

/* Keep the curtain closed until the destination section is in place */
@keyframes curtain-rise-light{0%{opacity:1;clip-path:inset(100% 0 0 0)}48%{opacity:1;clip-path:inset(0)}82%{opacity:1;clip-path:inset(0)}100%{opacity:1;clip-path:inset(0 0 100% 0)}}@keyframes curtain-fall-dark{0%{opacity:1;clip-path:inset(0 0 100% 0)}48%{opacity:1;clip-path:inset(0)}82%{opacity:1;clip-path:inset(0)}100%{opacity:1;clip-path:inset(100% 0 0 0)}}

/* Let the new section and content travel naturally with the scroll */
.section-curtain.wipe-to-light,.section-curtain.wipe-to-dark{background:transparent;clip-path:none;opacity:1;animation:none}.section-curtain:after{display:none}.section-curtain.wipe-to-light:before,.section-curtain.wipe-to-dark:before{content:"";position:absolute;left:0;width:100%;height:42vh;pointer-events:none;will-change:transform}.section-curtain.wipe-to-light:before{background:linear-gradient(180deg,rgba(248,241,251,0),rgba(248,241,251,.82) 38%,rgba(248,241,251,.98) 58%,rgba(173,73,225,.14) 82%,transparent);animation:transition-band-up 1.55s cubic-bezier(.65,0,.2,1) forwards}.section-curtain.wipe-to-dark:before{background:linear-gradient(180deg,transparent,rgba(173,73,225,.13) 18%,rgba(46,7,63,.96) 48%,rgba(46,7,63,.78) 68%,transparent);animation:transition-band-down 1.55s cubic-bezier(.65,0,.2,1) forwards}.services.scene-active .section-label{animation-delay:.12s}.services.scene-active .section-intro h2{animation-delay:.2s}.services.scene-active .intro-copy{animation:item-rise .7s .32s cubic-bezier(.16,.84,.25,1) both}.services.scene-active .service-stage{animation:services-natural-in .9s .28s cubic-bezier(.16,.84,.25,1) both}
@keyframes transition-band-up{from{transform:translateY(115vh)}to{transform:translateY(-48vh)}}@keyframes transition-band-down{from{transform:translateY(-48vh)}to{transform:translateY(115vh)}}@keyframes services-natural-in{from{opacity:0;clip-path:inset(0 0 9% 0);transform:translateY(26px)}to{opacity:1;clip-path:inset(0);transform:none}}

/* Full-page handoff with a center-opening reveal */
.section-curtain.wipe-to-light,.section-curtain.wipe-to-dark{background:transparent;clip-path:none;opacity:1;animation:none}.section-curtain.wipe-to-light:before,.section-curtain.wipe-to-light:after,.section-curtain.wipe-to-dark:before,.section-curtain.wipe-to-dark:after{content:"";display:block;position:absolute;left:0;width:100%;height:50%;pointer-events:none;will-change:transform}.section-curtain:before{top:0}.section-curtain:after{top:auto;bottom:0;background-image:none}.section-curtain.wipe-to-light:before,.section-curtain.wipe-to-light:after{background-color:#f8f1fb}.section-curtain.wipe-to-dark:before,.section-curtain.wipe-to-dark:after{background-color:#2e073f}.section-curtain.wipe-to-light:before{animation:curtain-top-from-bottom 1.55s cubic-bezier(.65,0,.2,1) forwards}.section-curtain.wipe-to-light:after{animation:curtain-bottom-from-bottom 1.55s cubic-bezier(.65,0,.2,1) forwards}.section-curtain.wipe-to-dark:before{animation:curtain-top-from-top 1.55s cubic-bezier(.65,0,.2,1) forwards}.section-curtain.wipe-to-dark:after{animation:curtain-bottom-from-top 1.55s cubic-bezier(.65,0,.2,1) forwards}.services.scene-active .section-intro h2,.services.scene-active .section-label,.services.scene-active .intro-copy,.services.scene-active .service-stage{animation-fill-mode:both}
@keyframes curtain-top-from-bottom{0%{transform:translateY(202%)}52%,78%{transform:translateY(0)}100%{transform:translateY(-102%)}}@keyframes curtain-bottom-from-bottom{0%{transform:translateY(102%)}52%,78%{transform:translateY(0)}100%{transform:translateY(102%)}}@keyframes curtain-top-from-top{0%{transform:translateY(-102%)}52%,78%{transform:translateY(0)}100%{transform:translateY(-102%)}}@keyframes curtain-bottom-from-top{0%{transform:translateY(-202%)}52%,78%{transform:translateY(0)}100%{transform:translateY(102%)}}
@media(prefers-reduced-motion:reduce){.section-curtain.wipe-to-light:before,.section-curtain.wipe-to-light:after,.section-curtain.wipe-to-dark:before,.section-curtain.wipe-to-dark:after{display:none}}

/* Professional page takeover: the destination section is the transition */
.section-curtain{display:none!important}.services:not(.scene-active):not(.scene-leaving) .section-label,.services:not(.scene-active):not(.scene-leaving) .section-intro h2,.services:not(.scene-active):not(.scene-leaving) .intro-copy,.services:not(.scene-active):not(.scene-leaving) .service-stage{opacity:0}.services.scene-active .section-label{animation:takeover-meta-in .58s .52s cubic-bezier(.16,.84,.25,1) both!important}.services.scene-active .section-intro h2{animation:takeover-title-in .78s .6s cubic-bezier(.16,.84,.25,1) both!important}.services.scene-active .intro-copy{animation:takeover-copy-in .62s .72s cubic-bezier(.16,.84,.25,1) both!important}.services.scene-active .service-stage{animation:takeover-panel-in .82s .68s cubic-bezier(.16,.84,.25,1) both!important}.services.scene-active .service-list article{animation:takeover-item-in .62s cubic-bezier(.16,.84,.25,1) both!important}.services.scene-active .service-list article:nth-child(1){animation-delay:.9s!important}.services.scene-active .service-list article:nth-child(2){animation-delay:1s!important}.services.scene-active .service-list article:nth-child(3){animation-delay:1.1s!important}.services.scene-active .service-list article:nth-child(4){animation-delay:1.2s!important}.services.scene-leaving .section-label,.services.scene-leaving .section-intro h2,.services.scene-leaving .intro-copy,.services.scene-leaving .service-stage,.services.scene-leaving .service-list article{animation:none!important;opacity:1!important;transform:none!important;clip-path:inset(0)!important}
@keyframes takeover-meta-in{from{opacity:0;transform:translateY(10px);letter-spacing:.17em}to{opacity:1;transform:none;letter-spacing:.11em}}@keyframes takeover-title-in{from{opacity:0;transform:translateY(26px);clip-path:inset(0 0 100% 0)}to{opacity:1;transform:none;clip-path:inset(0)}}@keyframes takeover-copy-in{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes takeover-panel-in{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}@keyframes takeover-item-in{from{opacity:0;transform:translateX(18px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.services:not(.scene-active):not(.scene-leaving) .section-label,.services:not(.scene-active):not(.scene-leaving) .section-intro h2,.services:not(.scene-active):not(.scene-leaving) .intro-copy,.services:not(.scene-active):not(.scene-leaving) .service-stage{opacity:1}.services.scene-active .section-label,.services.scene-active .section-intro h2,.services.scene-active .intro-copy,.services.scene-active .service-stage,.services.scene-active .service-list article{animation:none!important}}

/* Fullscreen page cover with a top-to-bottom content reveal */
.section-curtain{display:block!important;box-shadow:0 18px 55px rgba(46,7,63,.12)}.section-curtain:before,.section-curtain:after{display:none!important}.section-curtain.wipe-to-light{background:#f8f1fb;opacity:1;clip-path:inset(100% 0 0 0);animation:page-cover-light 1.45s cubic-bezier(.65,0,.2,1) forwards}.section-curtain.wipe-to-dark{background:#2e073f;opacity:1;clip-path:inset(0 0 100% 0);animation:page-cover-dark 1.45s cubic-bezier(.65,0,.2,1) forwards}.services.scene-active .section-label{animation-delay:.78s!important}.services.scene-active .section-intro h2{animation-delay:.86s!important}.services.scene-active .intro-copy{animation-delay:.98s!important}.services.scene-active .service-stage{animation-delay:1.02s!important}.services.scene-active .service-list article:nth-child(1){animation-delay:1.08s!important}.services.scene-active .service-list article:nth-child(2){animation-delay:1.16s!important}.services.scene-active .service-list article:nth-child(3){animation-delay:1.24s!important}.services.scene-active .service-list article:nth-child(4){animation-delay:1.32s!important}
@keyframes page-cover-light{0%{clip-path:inset(100% 0 0 0)}52%,64%{clip-path:inset(0)}100%{clip-path:inset(100% 0 0 0)}}@keyframes page-cover-dark{0%{clip-path:inset(0 0 100% 0)}52%,64%{clip-path:inset(0)}100%{clip-path:inset(100% 0 0 0)}}
@media(prefers-reduced-motion:reduce){.section-curtain{display:none!important}}

/* Remove the second browser snap and sync section 02 with the curtain edge */
@media(min-width:701px){html{scroll-snap-type:none!important}}
.services.scene-active .section-label{animation:section02-meta-in .58s .9s cubic-bezier(.16,.84,.25,1) both!important}.services.scene-active .section-intro h2{animation:section02-title-in .78s .98s cubic-bezier(.16,.84,.25,1) both!important}.services.scene-active .intro-copy{animation:section02-copy-in .64s 1.1s cubic-bezier(.16,.84,.25,1) both!important}.services.scene-active .service-stage{animation:section02-panel-in .86s 1.16s cubic-bezier(.16,.84,.25,1) both!important}.services.scene-active .service-list article{animation:section02-item-in .62s cubic-bezier(.16,.84,.25,1) both!important}.services.scene-active .service-list article:nth-child(1){animation-delay:1.28s!important}.services.scene-active .service-list article:nth-child(2){animation-delay:1.38s!important}.services.scene-active .service-list article:nth-child(3){animation-delay:1.48s!important}.services.scene-active .service-list article:nth-child(4){animation-delay:1.58s!important}
@keyframes section02-meta-in{from{opacity:0}to{opacity:1}}@keyframes section02-title-in{from{opacity:0;clip-path:inset(0 0 100% 0)}to{opacity:1;clip-path:inset(0)}}@keyframes section02-copy-in{from{opacity:0}to{opacity:1}}@keyframes section02-panel-in{from{opacity:0;clip-path:inset(0 0 100% 0 round 30px)}to{opacity:1;clip-path:inset(0 round 30px)}}@keyframes section02-item-in{from{opacity:0}to{opacity:1}}
.services.scene-active .section-label,.services.scene-active .section-intro h2,.services.scene-active .intro-copy,.services.scene-active .service-stage,.services.scene-active .service-list article{transform:none!important}
html,body{overflow-anchor:none}
html{scroll-snap-type:none!important}

/* Finish scrolling before the curtain reveals section 02 */
.section-curtain.wipe-to-light{animation-duration:1.9s}.section-curtain.wipe-to-dark{animation-duration:1.9s}.services.scene-active .section-label{animation-delay:1.3s!important}.services.scene-active .section-intro h2{animation-delay:1.38s!important}.services.scene-active .intro-copy{animation-delay:1.5s!important}.services.scene-active .service-stage{animation-delay:1.52s!important}.services.scene-active .service-list article:nth-child(1){animation-delay:1.64s!important}.services.scene-active .service-list article:nth-child(2){animation-delay:1.74s!important}.services.scene-active .service-list article:nth-child(3){animation-delay:1.84s!important}.services.scene-active .service-list article:nth-child(4){animation-delay:1.94s!important}
@keyframes page-cover-light{0%{clip-path:inset(100% 0 0 0)}45%,68%{clip-path:inset(0)}100%{clip-path:inset(100% 0 0 0)}}@keyframes page-cover-dark{0%{clip-path:inset(0 0 100% 0)}45%,68%{clip-path:inset(0)}100%{clip-path:inset(100% 0 0 0)}}

/* Clear outgoing process content before the fullscreen cover reaches it */
.process.scene-leaving .process-intro,.process.scene-leaving .steps{animation:process-clean-exit .24s cubic-bezier(.4,0,1,1) forwards!important;pointer-events:none}
@keyframes process-clean-exit{from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-12px)}}
@media(prefers-reduced-motion:reduce){.process.scene-leaving .process-intro,.process.scene-leaving .steps{animation:none!important;opacity:0}}

/* Faster content response: motion begins with the scroll instead of after it */
.services.scene-active .section-label{animation-delay:.32s!important}.services.scene-active .section-intro h2{animation-delay:.38s!important}.services.scene-active .intro-copy{animation-delay:.46s!important}.services.scene-active .service-stage{animation-delay:.44s!important}.services.scene-active .service-list article:nth-child(1){animation-delay:.58s!important}.services.scene-active .service-list article:nth-child(2){animation-delay:.66s!important}.services.scene-active .service-list article:nth-child(3){animation-delay:.74s!important}.services.scene-active .service-list article:nth-child(4){animation-delay:.82s!important}
.manifesto.scene-active .manifesto-copy>p{animation-delay:.04s}.manifesto.scene-active .manifesto-copy h2 span{animation-delay:.14s}.manifesto.scene-active .manifesto-copy h2 em{animation-delay:.27s}
.framework.scene-active .framework-word{transition-delay:.28s}.framework.scene-active .framework-items article:nth-child(1),.framework.scene-active .framework-axis i:nth-child(1){transition-delay:.32s}.framework.scene-active .framework-items article:nth-child(2),.framework.scene-active .framework-axis i:nth-child(2){transition-delay:.42s}.framework.scene-active .framework-items article:nth-child(3),.framework.scene-active .framework-axis i:nth-child(3){transition-delay:.52s}.framework.scene-active .framework-axis:before{animation-delay:.3s!important}
.web-section.scene-active .web-heading h2,.contact.scene-active .contact-copy h2{animation-delay:.06s}.contact.contact-arriving .contact-copy{animation-delay:.08s!important}.contact.contact-arriving .contact-form{animation-delay:.18s!important}

/* Carry section 02 content on the moving page itself */
html.is-snapping .services.scene-active,html.is-snapping .process.scene-active{z-index:96}
.services.scene-active .section-label,.services.scene-active .section-intro h2,.services.scene-active .intro-copy,.services.scene-active .service-stage,.services.scene-active .service-list article{animation:none!important;opacity:1!important;transform:none!important;filter:none!important}
.services.scene-active .section-intro h2,.services.scene-active .service-stage{clip-path:inset(0)!important}
.services.scene-active .section-label{letter-spacing:.11em!important}
@media(prefers-reduced-motion:reduce){html.is-snapping .services.scene-active,html.is-snapping .process.scene-active{z-index:auto}}

/* Reveal the incoming content directly behind the moving page edge */
@keyframes page-cover-light{0%{clip-path:inset(100% 0 0 0)}43%,47%{clip-path:inset(0)}100%{clip-path:inset(100% 0 0 0)}}
@keyframes page-cover-dark{0%{clip-path:inset(0 0 100% 0)}43%,47%{clip-path:inset(0)}100%{clip-path:inset(100% 0 0 0)}}
.section-curtain.wipe-to-light,.section-curtain.wipe-to-dark{animation-duration:1.55s}

/* Opaque page extension prevents the outgoing purple scene flashing above section 02 */
/* Preserve the same compositing layer after scroll unlock */
.services.scene-active,.services.scene-leaving{z-index:96}

/* Symmetric 01 <-> 02 page takeover using the complete destination scene */
.section-curtain{display:none!important}
main>.services.scene-active,main>.services.scene-leaving{z-index:auto}
.scene-transition-clone{position:fixed!important;z-index:96!important;inset:0!important;width:100%!important;height:100svh!important;min-height:100svh!important;margin:0!important;overflow:hidden!important;pointer-events:none!important;will-change:transform;transition:transform 1.18s cubic-bezier(.645,.045,.355,1)!important;contain:layout paint}
.scene-transition-clone.from-bottom{transform:translate3d(0,100%,0)}.scene-transition-clone.from-top{transform:translate3d(0,-100%,0)}.scene-transition-clone.is-moving{transform:translate3d(0,0,0)}
.scene-transition-clone .process-intro,.scene-transition-clone .steps,.scene-transition-clone .section-label,.scene-transition-clone h2,.scene-transition-clone .intro-copy,.scene-transition-clone .service-stage,.scene-transition-clone .service-list article,.scene-transition-clone .step-icon{animation:none!important;opacity:1!important;transform:none!important;filter:none!important}
.scene-transition-clone h2,.scene-transition-clone .service-stage,.scene-transition-clone .steps article{clip-path:inset(0)!important}
@media(prefers-reduced-motion:reduce){.scene-transition-clone{transition:none!important;transform:none!important}}

/* True page cover: keep the outgoing scene stationary under the incoming page */
.scene-transition-outgoing{position:fixed!important;z-index:95!important;inset:0!important;width:100%!important;height:100svh!important;min-height:100svh!important;margin:0!important;overflow:hidden!important;pointer-events:none!important;contain:layout paint}
.scene-transition-outgoing .process-intro,.scene-transition-outgoing .steps,.scene-transition-outgoing .section-label,.scene-transition-outgoing h2,.scene-transition-outgoing .intro-copy,.scene-transition-outgoing .service-stage,.scene-transition-outgoing .service-list article,.scene-transition-outgoing .step-icon{animation:none!important;opacity:1!important;transform:none!important;filter:none!important}
.scene-transition-outgoing h2,.scene-transition-outgoing .service-stage,.scene-transition-outgoing .steps article{clip-path:inset(0)!important}
.scene-transition-outgoing .process-intro .section-label,.scene-transition-outgoing .process-intro h2 span,.scene-transition-outgoing .process-intro h2 em,.scene-transition-outgoing .steps:before,.scene-transition-outgoing .steps:after,.scene-transition-outgoing .steps article:after{animation:none!important;opacity:1!important;transform:none!important;filter:none!important}

/* Content inertia inside the moving page */
.scene-transition-clone.services.from-bottom .section-intro{opacity:.82;transform:translate3d(0,52px,0)!important;transition:transform .96s .06s cubic-bezier(.16,.84,.25,1),opacity .72s .06s ease!important}.scene-transition-clone.services.from-bottom .service-stage{opacity:.72!important;transform:translate3d(0,86px,0)!important;transition:transform 1.02s .11s cubic-bezier(.16,.84,.25,1),opacity .78s .11s ease!important}.scene-transition-clone.services.from-bottom.is-moving .section-intro,.scene-transition-clone.services.from-bottom.is-moving .service-stage{opacity:1!important;transform:translate3d(0,0,0)!important}
.scene-transition-clone.process.from-top .process-intro{opacity:.84!important;transform:translate3d(0,-48px,0)!important;transition:transform .96s .06s cubic-bezier(.16,.84,.25,1),opacity .72s .06s ease!important}.scene-transition-clone.process.from-top .steps{opacity:.76!important;transform:translate3d(0,-76px,0)!important;transition:transform 1.02s .11s cubic-bezier(.16,.84,.25,1),opacity .78s .11s ease!important}.scene-transition-clone.process.from-top.is-moving .process-intro,.scene-transition-clone.process.from-top.is-moving .steps{opacity:1!important;transform:translate3d(0,0,0)!important}
@media(prefers-reduced-motion:reduce){.scene-transition-clone.services.from-bottom .section-intro,.scene-transition-clone.services.from-bottom .service-stage,.scene-transition-clone.process.from-top .process-intro,.scene-transition-clone.process.from-top .steps{opacity:1!important;transform:none!important;transition:none!important}}

/* Keep the 01 section label metrically identical across composited layers */
.process .process-intro>.section-label,.scene-transition-outgoing.process .process-intro>.section-label,.scene-transition-clone.process .process-intro>.section-label{font-size:11px!important;font-weight:600!important;line-height:1.5!important;letter-spacing:.11em!important;font-optical-sizing:none!important;font-variation-settings:normal!important;text-rendering:geometricPrecision;-webkit-font-smoothing:antialiased;animation:none!important;transition:none!important;scale:none!important;filter:none!important}
.process.scene-active .process-intro>.section-label,.process.scene-leaving .process-intro>.section-label,.scene-transition-outgoing.process .process-intro>.section-label,.scene-transition-clone.process .process-intro>.section-label{opacity:1!important;transform:none!important}

/* Editorial Efiox hero */
.hero{padding:clamp(116px,14vh,156px) var(--pad) 0;justify-content:flex-start;background:radial-gradient(circle at 50% 29%,rgba(173,73,225,.22),transparent 31%),linear-gradient(180deg,#260532 0%,#2e073f 70%,#260532 100%)}.hero-content{width:100%;max-width:1240px}.hero-wordmark{position:relative;margin:0 auto;color:#f8f1fb;font-size:clamp(104px,17.2vw,264px);font-weight:500;line-height:.72;letter-spacing:-.085em;text-indent:-.045em;white-space:nowrap;opacity:0;clip-path:inset(0 0 100% 0);transform:translateY(34px);text-shadow:0 16px 65px rgba(122,28,172,.3);will-change:clip-path,transform,opacity}.hero-wordmark:after{content:"";position:absolute;inset:-8% -2%;background:linear-gradient(105deg,transparent 38%,rgba(235,211,248,.19) 49%,transparent 60%);transform:translateX(-110%);pointer-events:none}.hero.scene-active .hero-wordmark{animation:efiox-wordmark-in 1.15s .08s cubic-bezier(.16,.84,.25,1) forwards}.hero.scene-active .hero-wordmark:after{animation:efiox-wordmark-light 2.1s .9s cubic-bezier(.16,.84,.25,1) forwards}.hero-seo{max-width:760px;margin:clamp(28px,4vh,42px) auto 0;color:#cbbbd2;font-size:clamp(15px,1.2vw,18px);line-height:1.55;text-wrap:balance;opacity:0;transform:translateY(18px)}.hero.scene-active .hero-seo{animation:efiox-copy-in .8s .62s cubic-bezier(.16,.84,.25,1) forwards}.hero .kicker{margin:22px 0 0;opacity:0}.hero.scene-active .kicker{animation:efiox-copy-in .65s .78s cubic-bezier(.16,.84,.25,1) forwards}.hero h1{font-size:clamp(38px,4.4vw,66px);line-height:.94;margin:18px 0 20px}.hero-copy{display:none}.hero .primary-button{opacity:0;transform:translateY(14px)}.hero.scene-active .primary-button{animation:efiox-copy-in .7s .96s cubic-bezier(.16,.84,.25,1) forwards}.hero .signal-wrap{margin-top:clamp(28px,4vh,46px)}.hero .signal-card{width:164px;height:104px;border-radius:20px}.hero .signal-core{width:52px;height:52px;border-radius:16px;font-size:20px}.hero-tags{margin-top:auto}.logo-mark{position:relative;isolation:isolate;overflow:visible}.logo-mark:before,.logo-mark:after{content:"";position:absolute;z-index:-1;border:1px solid rgba(173,73,225,.42);border-radius:50%;inset:-6px;opacity:0}.logo-mark:after{inset:-12px;border-color:rgba(235,211,248,.18)}.header .logo-mark:before{animation:logo-orbit 3.8s .45s ease-in-out infinite}.header .logo-mark:after{animation:logo-orbit 5.2s .8s ease-in-out infinite reverse}.header .logo{animation:logo-enter .75s .12s cubic-bezier(.16,.84,.25,1) both}
@keyframes efiox-wordmark-in{to{opacity:1;clip-path:inset(0);transform:translateY(0)}}@keyframes efiox-wordmark-light{0%{transform:translateX(-110%)}100%{transform:translateX(110%)}}@keyframes efiox-copy-in{to{opacity:1;transform:translateY(0)}}@keyframes logo-orbit{0%,100%{opacity:.22;transform:rotate(0) scale(.86)}50%{opacity:.72;transform:rotate(180deg) scale(1.05)}}@keyframes logo-enter{from{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:none}}
@media(max-height:820px) and (min-width:701px){.hero{padding-top:100px}.hero-wordmark{font-size:clamp(92px,14.5vw,210px)}.hero-seo{margin-top:22px}.hero h1{font-size:42px;margin:13px 0 15px}.hero .signal-wrap{margin-top:20px}.hero .signal-card{height:88px}.hero .signal-core{width:44px;height:44px}.hero-tags span{padding-top:16px;padding-bottom:16px}}
@media(max-width:700px){.hero{padding:120px 20px 0}.hero-wordmark{font-size:clamp(76px,25vw,150px)}.hero-seo{max-width:520px;margin-top:28px;font-size:14px}.hero .kicker{margin-top:18px}.hero h1{font-size:clamp(38px,11vw,56px)}.hero .signal-wrap{margin-top:30px}.hero .chip-lines{display:none}.hero-tags{grid-template-columns:repeat(2,1fr)}}
@media(prefers-reduced-motion:reduce){.hero-wordmark,.hero-seo,.hero .kicker,.hero .primary-button,.header .logo{opacity:1;transform:none;clip-path:inset(0);animation:none}.hero-wordmark:after,.logo-mark:before,.logo-mark:after{animation:none;display:none}}

/* Final hero composition: independent from scene reveal and page-cover layers */
.hero .hero-content{display:flex;flex-direction:column;align-items:center;clip-path:none!important;opacity:1!important;transform:none!important;filter:none!important;transition:none!important}.hero .kicker{order:1;margin:0 0 clamp(22px,2.8vh,32px)}.hero .hero-wordmark{order:2}.hero h1{order:3;margin:clamp(24px,3vh,34px) 0 18px;opacity:0;transform:translateY(22px)}.hero .hero-seo{order:4;margin:0 auto 26px}.hero .primary-button{order:5}.hero.scene-active h1{animation:efiox-copy-in .78s .54s cubic-bezier(.16,.84,.25,1) forwards}.hero.scene-active .kicker{animation-delay:.12s}.hero.scene-active .hero-wordmark{animation-delay:.2s}.hero.scene-active .hero-seo{animation-delay:.72s}.hero.scene-active .primary-button{animation-delay:.9s}.hero .hero-orbit{opacity:.42}.hero .orbit-one{top:44%;animation-duration:9s}.hero .orbit-two{top:41%;opacity:.2;animation-duration:11s}.hero .circuit{top:58%;opacity:.72}.hero .signal-wrap{z-index:4}.hero .signal-card{backdrop-filter:blur(18px);background:rgba(46,7,63,.68);box-shadow:0 22px 70px rgba(20,0,28,.38),0 0 42px rgba(173,73,225,.1)}
@media(max-height:820px) and (min-width:701px){.hero .kicker{margin-bottom:16px}.hero h1{margin-top:18px;margin-bottom:12px}.hero .hero-seo{margin-bottom:16px;line-height:1.4}.hero .orbit-one,.hero .orbit-two{top:43%}.hero .circuit{top:56%}}
@media(max-width:700px){.hero .kicker{margin-bottom:18px}.hero h1{margin-top:22px}.hero .hero-seo{margin-bottom:22px}.hero .hero-orbit{top:48%}.hero .circuit{top:58%}}
@media(prefers-reduced-motion:reduce){.hero h1{opacity:1;transform:none;animation:none!important}}

/* Refined, quieter Efiox signature and cinematic hero departure */
.hero-wordmark{display:flex;justify-content:center;gap:.075em;width:max-content;font-size:clamp(72px,9.5vw,146px);font-weight:400;line-height:.82;letter-spacing:.015em;text-indent:0;color:#f5eafa;text-shadow:0 12px 45px rgba(122,28,172,.22);opacity:1;clip-path:none;transform:none}.hero-wordmark>span{display:inline-block;opacity:0;transform:translateY(34px);clip-path:inset(0 0 100% 0);will-change:transform,opacity,clip-path}.hero.scene-active .hero-wordmark{animation:none}.hero.scene-active .hero-wordmark>span{animation:efiox-letter-in .78s cubic-bezier(.16,.84,.25,1) forwards}.hero.scene-active .hero-wordmark>span:nth-child(1){animation-delay:.2s}.hero.scene-active .hero-wordmark>span:nth-child(2){animation-delay:.27s}.hero.scene-active .hero-wordmark>span:nth-child(3){animation-delay:.34s}.hero.scene-active .hero-wordmark>span:nth-child(4){animation-delay:.41s}.hero.scene-active .hero-wordmark>span:nth-child(5){animation-delay:.48s}.hero-wordmark:before{content:"";position:absolute;left:50%;bottom:-18px;width:42px;height:1px;background:#ad49e1;box-shadow:0 0 16px rgba(173,73,225,.7);opacity:0;transform:translateX(-50%) scaleX(0)}.hero.scene-active .hero-wordmark:before{animation:efiox-signature-line .72s .62s cubic-bezier(.16,.84,.25,1) forwards}.hero-wordmark:after{opacity:.45}.hero h1{font-size:clamp(44px,5vw,72px);max-width:920px}.hero .hero-seo{max-width:680px;color:#c7b7ce;font-size:clamp(14px,1.05vw,16px)}.hero.scene-leaving .hero-content{animation:hero-content-depart .92s cubic-bezier(.4,0,.2,1) forwards}.hero.scene-leaving .signal-wrap{animation:hero-detail-depart .78s .04s cubic-bezier(.4,0,.2,1) forwards}.hero.scene-leaving .hero-orbit,.hero.scene-leaving .circuit{animation:hero-ambient-depart .72s ease forwards!important}.hero.scene-leaving .hero-tags{animation:hero-tags-depart .72s ease forwards}
@keyframes efiox-letter-in{0%{opacity:0;transform:translateY(34px);clip-path:inset(0 0 100% 0)}100%{opacity:1;transform:translateY(0);clip-path:inset(0)}}@keyframes efiox-signature-line{to{opacity:1;transform:translateX(-50%) scaleX(1)}}@keyframes hero-content-depart{to{opacity:0;transform:translateY(-54px)}}@keyframes hero-detail-depart{to{opacity:0;transform:translateY(-30px)}}@keyframes hero-ambient-depart{to{opacity:0}}@keyframes hero-tags-depart{to{opacity:0;transform:translateY(18px)}}
@media(max-height:820px) and (min-width:701px){.hero-wordmark{font-size:clamp(64px,8vw,112px)}.hero h1{font-size:clamp(40px,4vw,56px)}}
@media(max-width:700px){.hero-wordmark{font-size:clamp(58px,19vw,104px);gap:.045em}.hero h1{font-size:clamp(38px,11vw,54px)}}
@media(prefers-reduced-motion:reduce){.hero-wordmark>span{opacity:1;transform:none;clip-path:inset(0);animation:none!important}.hero-wordmark:before{opacity:1;transform:translateX(-50%) scaleX(1);animation:none!important}.hero.scene-leaving .hero-content,.hero.scene-leaving .signal-wrap,.hero.scene-leaving .hero-orbit,.hero.scene-leaving .circuit,.hero.scene-leaving .hero-tags{animation:none!important}}

/* First-load stability for the complete services panel inside page-cover clones */
.scene-transition-clone.services .visual-panel,.scene-transition-clone.services .service-list,.scene-transition-outgoing.services .visual-panel,.scene-transition-outgoing.services .service-list{animation:none!important;opacity:1!important;visibility:visible!important;transform:none!important;filter:none!important;clip-path:inset(0)!important}
.scene-transition-clone.services .service-stage,.scene-transition-outgoing.services .service-stage{visibility:visible!important}
.services.scene-active .visual-panel,.services.scene-active .service-list{opacity:1!important;visibility:visible!important;transform:none!important;filter:none!important}

/* Keep the completed hero intact while its parent performs the exit choreography */
.hero.scene-leaving .hero-wordmark,.hero.scene-leaving .hero-wordmark>span,.hero.scene-leaving .kicker,.hero.scene-leaving h1,.hero.scene-leaving .hero-seo,.hero.scene-leaving .primary-button{animation:none!important;opacity:1!important;visibility:visible!important;transform:none!important;filter:none!important;clip-path:inset(0)!important}
.hero.scene-leaving .hero-wordmark:before{animation:none!important;opacity:1!important;transform:translateX(-50%) scaleX(1)!important}.hero.scene-leaving .hero-wordmark:after{animation:none!important;opacity:0!important}
.hero.scene-leaving .hero-content{animation:hero-content-depart-smooth 1.02s cubic-bezier(.4,0,.2,1) forwards!important}
@keyframes hero-content-depart-smooth{0%{opacity:1;transform:translateY(0)}38%{opacity:.94}100%{opacity:0;transform:translateY(-72px)}}

/* Contrast and palette audit */
:root{--text-dark-soft:#cbbbd2;--text-dark-muted:#b6a4bf;--text-light-soft:#66596c;--label-light:#6f258d;--label-dark:#d783ef}
.nav-pill a{color:#cbbbd2}.nav-pill a:hover,.nav-pill a:focus-visible{color:#fff}.hero .kicker{color:#d4c5da}.signal-card span{color:#b9a8c1}.signal-card small{color:#d783ef}.hero-tags span{color:#c2b2c9}
.process .process-intro>.section-label,.process .steps small{color:#d783ef!important}.process .steps h3{color:#fff}.process .steps p{color:#c8b9cf}.process .steps article:hover p{color:#e3d9e8}
.light-section .section-label,.services .section-label,.web-heading .section-label,.framework-heading .section-label{color:var(--label-light)!important}.light-section .intro-copy,.manifesto-copy>p,.framework-heading>p{color:var(--text-light-soft)}.service-list h3{color:#32123f}.service-list p{color:#625169}.service-list article>span{color:#61217b;border-color:rgba(97,33,123,.38)}
.visual-panel>p,.rings small{color:#c6b5cd}.mini-flow span{color:#f6edf9;border-color:rgba(235,211,248,.3)}.web-copy p{color:#f0e6f4}.web-copy .section-label,.web-copy a{color:#f1d9fa!important}.web-copy li{color:#fff}.mock-nav span,.mock-chip{color:#c4b2cb}.browser-bar{color:#514557}
.framework-items p{color:#f0e5f4}.framework-heading .section-label{border-color:rgba(111,37,141,.42)}
.contact-copy p{color:#d2c3d8}.contact-copy .section-label,.contact-copy>a{color:#d783ef!important}.contact-form label{color:#d8c9de}.contact-form label span{opacity:.72}.contact-form input::placeholder,.contact-form textarea::placeholder{color:#ac9ab5}.form-note{color:#b8a7c0}.contact-form button{color:#260532!important}.contact-form input,.contact-form textarea{border-bottom-color:rgba(235,211,248,.34)}
footer p,footer>span{color:#b9a9c0}footer>a:last-child{color:#d8cbdc}

/* Lift the process rail from the dark section background */
.process .steps{background:linear-gradient(135deg,#45105b 0%,#3d0b51 48%,#350844 100%)!important;border:1px solid rgba(202,112,235,.26)!important;box-shadow:0 28px 70px rgba(20,0,28,.34),inset 0 1px 0 rgba(255,255,255,.055)!important}.process .steps article{background:linear-gradient(180deg,rgba(255,255,255,.018),transparent 58%)}.process .steps article+article{border-left-color:rgba(216,145,241,.11)!important}.process .steps article:before{background:linear-gradient(110deg,rgba(216,145,241,.055),transparent 42%)}
.process .steps article{border-color:rgba(216,145,241,.11)!important}

/* Atomic framework-to-manifesto text handoff */
.manifesto-copy.is-carrying.parked-framework,.manifesto-copy.is-carrying.returning-manifesto{visibility:visible!important;opacity:1!important;backface-visibility:hidden}.manifesto-copy.is-carrying.parked-framework>p,.manifesto-copy.is-carrying.parked-framework h2 span,.manifesto-copy.is-carrying.parked-framework h2 em,.manifesto-copy.is-carrying.returning-manifesto>p,.manifesto-copy.is-carrying.returning-manifesto h2 span,.manifesto-copy.is-carrying.returning-manifesto h2 em{animation:none!important;transition:none!important;visibility:visible!important;opacity:1!important;transform:none!important;filter:none!important}

/* One symmetric motion system for manifesto <-> framework */
.manifesto-copy.is-carrying.motion-managed{animation:none!important;visibility:visible!important;opacity:1!important;backface-visibility:hidden;transform-style:flat}.manifesto-copy.is-carrying.motion-managed>p,.manifesto-copy.is-carrying.motion-managed h2 span,.manifesto-copy.is-carrying.motion-managed h2 em{animation:none!important;transition:none!important;visibility:visible!important;opacity:1!important;transform:none!important;filter:none!important}

/* Distinctive opening pair: deep editorial hero + ink-plum process scene */
.hero{background:radial-gradient(ellipse at 50% 24%,rgba(122,28,172,.24) 0%,rgba(70,10,92,.12) 28%,transparent 57%),linear-gradient(180deg,#120018 0%,#190221 48%,#21052b 100%)!important}.hero:after{background-image:linear-gradient(rgba(216,145,241,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(216,145,241,.025) 1px,transparent 1px)!important;background-size:72px 72px!important;mask-image:linear-gradient(to bottom,#000 0%,rgba(0,0,0,.72) 58%,transparent 94%)}.hero .hero-wordmark{color:#f8f1fb;text-shadow:0 18px 65px rgba(122,28,172,.22)}.hero .hero-seo{color:#cfc0d6}.hero .signal-card{background:rgba(22,1,30,.72);border-color:rgba(216,145,241,.18)}.hero .hero-tags{background:rgba(10,0,14,.14);border-top-color:rgba(216,145,241,.12)}.nav-pill{background:rgba(14,1,19,.72);border-color:rgba(216,145,241,.16)}
.process{overflow:hidden;background:radial-gradient(circle at 50% 112%,rgba(122,28,172,.2),transparent 42%),linear-gradient(145deg,#1a0824 0%,#24102f 52%,#1d0928 100%)!important}.process:after{content:"01";position:absolute;z-index:0;right:-.035em;top:-.3em;color:rgba(216,145,241,.035);font-size:clamp(300px,39vw,680px);font-weight:600;line-height:1;letter-spacing:-.11em;pointer-events:none;user-select:none}.process>.process-intro,.process>.steps{position:relative;z-index:1}.process .process-intro>.section-label{color:#dca0ef!important}.process h2 em{color:#c66ce6}.process .steps{background:linear-gradient(135deg,rgba(103,34,126,.96),rgba(77,19,96,.98))!important;border-color:rgba(225,163,246,.38)!important;box-shadow:0 38px 90px rgba(7,0,10,.46),inset 0 1px 0 rgba(255,255,255,.1)!important}.process .steps article .step-icon,.process .steps article.is-active .step-icon,.process .steps article:hover .step-icon{background:#2b0b38!important;box-shadow:0 0 0 10px rgba(31,8,41,.72),0 14px 34px rgba(15,0,20,.28)!important}.process .steps:before{background:linear-gradient(90deg,transparent,rgba(218,132,241,.88) 12%,rgba(183,92,215,.65) 88%,transparent);box-shadow:0 0 18px rgba(198,108,230,.28)}
@media(max-width:700px){.hero:after{background-size:42px 42px!important}.process:after{top:.05em;right:-.08em;font-size:70vw}.process{background:linear-gradient(160deg,#1a0824,#24102f 55%,#1d0928)!important}}

/* High-impact asymmetric hero */
@media(min-width:1101px){.hero{height:100svh;min-height:720px;padding:0 var(--pad);align-items:stretch;text-align:left}.hero .hero-content{position:absolute;left:clamp(72px,8vw,154px);top:50%;width:min(49vw,850px);max-width:850px;align-items:flex-start;text-align:left;transform:translateY(-48%)!important}.hero .hero-content:before{content:"EFIOX / DIGITAL SYSTEMS";position:absolute;left:-30px;top:4px;color:rgba(216,145,241,.58);font-size:9px;font-weight:600;letter-spacing:.18em;writing-mode:vertical-rl;transform:rotate(180deg)}.hero .kicker{margin:0 0 22px;padding-left:58px;position:relative}.hero .kicker:before{content:"";position:absolute;left:0;top:50%;width:40px;height:1px;background:linear-gradient(90deg,#ad49e1,transparent)}.hero .hero-wordmark{margin:0;font-size:clamp(68px,6.5vw,112px);gap:.055em}.hero .hero-wordmark:before{left:0;bottom:-15px;width:56px;transform:scaleX(0);transform-origin:left}.hero.scene-active .hero-wordmark:before{animation-name:efiox-signature-line-left}.hero h1{max-width:770px;margin:34px 0 20px;font-size:clamp(54px,5.3vw,88px);line-height:.9}.hero .hero-seo{max-width:650px;margin:0 0 28px;font-size:clamp(14px,1vw,17px);text-align:left;text-wrap:balance}.hero .primary-button{border-radius:999px;padding-right:24px}.hero .primary-button b{border-radius:50%}.hero .signal-wrap{position:absolute;z-index:4;right:clamp(58px,7vw,132px);top:49%;width:clamp(350px,30vw,520px);height:clamp(350px,30vw,520px);margin:0;display:flex;justify-content:center;transform:translateY(-46%);opacity:0}.hero .signal-wrap:before,.hero .signal-wrap:after{content:"";position:absolute;inset:0;border:1px solid rgba(173,73,225,.26);border-radius:50%;box-shadow:inset 0 0 80px rgba(122,28,172,.06),0 0 80px rgba(122,28,172,.08);animation:system-ring 8s linear infinite}.hero .signal-wrap:after{inset:14%;border-color:rgba(235,211,248,.14);animation-duration:11s;animation-direction:reverse}.hero.scene-active .signal-wrap{animation:hero-system-in 1.15s .42s cubic-bezier(.16,.84,.25,1) forwards}.hero .signal-wrap .chip-lines{position:relative;z-index:2;width:clamp(70px,8vw,145px)}.hero .signal-card{z-index:3;width:156px;height:116px;background:rgba(18,0,24,.8);border-color:rgba(216,145,241,.28);box-shadow:0 30px 80px rgba(5,0,8,.55),0 0 55px rgba(173,73,225,.16)}.hero .signal-core{background:rgba(173,73,225,.06)}.hero .hero-orbit{left:auto;right:clamp(10px,3vw,55px);top:50%;width:clamp(430px,37vw,700px);height:clamp(210px,17vw,320px);opacity:.2}.hero .orbit-two{right:clamp(-45px,0vw,0px);width:clamp(500px,43vw,820px);height:clamp(260px,22vw,410px);opacity:.1}.hero .circuit{top:49%;opacity:.38}.hero .hero-tags{position:absolute;left:var(--pad);right:var(--pad);bottom:0;width:auto;background:rgba(7,0,10,.18);backdrop-filter:blur(12px)}.hero .hero-tags span{text-align:center}.hero.scene-leaving .hero-content{animation:hero-editorial-out .95s cubic-bezier(.4,0,.2,1) forwards!important}.hero.scene-leaving .signal-wrap{animation:hero-system-out .82s cubic-bezier(.4,0,.2,1) forwards!important}}
@keyframes efiox-signature-line-left{to{opacity:1;transform:scaleX(1)}}@keyframes hero-system-in{from{opacity:0;transform:translate(42px,-46%)}to{opacity:1;transform:translate(0,-46%)}}@keyframes hero-system-out{to{opacity:0;transform:translate(46px,-46%)}}@keyframes hero-editorial-out{to{opacity:0;translate:0 -54px}}@keyframes system-ring{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}
@media(max-width:1100px){.hero{padding-left:24px;padding-right:24px}.hero .hero-content{max-width:900px}.hero .signal-wrap{display:none}.hero .hero-orbit{opacity:.18}.hero .circuit{opacity:.36}}
@media(prefers-reduced-motion:reduce){.hero .signal-wrap:before,.hero .signal-wrap:after{animation:none}.hero.scene-active .signal-wrap{opacity:1;transform:translateY(-46%);animation:none!important}}
.hero .signal-wrap:before{border-top-color:rgba(216,145,241,.72);border-right-color:rgba(173,73,225,.08)}.hero .signal-wrap:after{border-bottom-color:rgba(235,211,248,.42);border-left-color:rgba(173,73,225,.06)}

/* Stronger visual separation for the process panel */
.process .steps{background:linear-gradient(135deg,#65217d 0%,#58196f 48%,#4d125f 100%)!important;border-color:rgba(224,157,246,.42)!important;box-shadow:0 34px 85px rgba(18,0,25,.5),0 0 0 1px rgba(173,73,225,.08),inset 0 1px 0 rgba(255,255,255,.1)!important}.process .steps article{background:linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,.008) 52%,transparent);border-color:rgba(235,190,250,.15)!important}.process .steps article:before{background:linear-gradient(110deg,rgba(235,190,250,.085),transparent 44%)}.process .steps p{color:#e0d2e5}

/* Efiox hero v2 — automation network */
.hero-v2{--hero-x:0px;--hero-y:0px;position:relative!important;display:block!important;height:100svh!important;min-height:720px!important;padding:0!important;overflow:hidden!important;text-align:left!important;background:radial-gradient(circle at 76% 48%,rgba(147,51,234,.16),transparent 28%),radial-gradient(circle at 22% 15%,rgba(196,92,255,.08),transparent 30%),linear-gradient(135deg,#07030d 0%,#0b0312 44%,#12051d 100%)!important}.hero-v2:after{content:""!important;position:absolute;z-index:7;inset:0!important;display:block!important;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.92' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.32'/%3E%3C/svg%3E")!important;background-size:180px!important;opacity:.035!important;mix-blend-mode:screen;mask-image:none!important}.hero-network-canvas{position:absolute;z-index:1;inset:0;width:100%;height:100%;pointer-events:none;opacity:.8;transform:translate3d(calc(var(--hero-x) * .12),calc(var(--hero-y) * .12),0)}.hero-v2-grid{position:absolute;z-index:0;left:-12%;right:-12%;bottom:-31%;height:72%;opacity:.18;transform:perspective(620px) rotateX(66deg) translate3d(calc(var(--hero-x) * -.08),calc(var(--hero-y) * -.05),0);transform-origin:center top;background-image:linear-gradient(rgba(196,92,255,.2) 1px,transparent 1px),linear-gradient(90deg,rgba(196,92,255,.18) 1px,transparent 1px);background-size:58px 58px;mask-image:linear-gradient(to bottom,transparent,#000 20%,#000 68%,transparent)}.hero-v2-glow{position:absolute;z-index:0;right:3%;top:13%;width:min(54vw,900px);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(147,51,234,.14),rgba(147,51,234,.045) 34%,transparent 68%);filter:blur(15px);transform:translate3d(calc(var(--hero-x) * .2),calc(var(--hero-y) * .2),0)}.hero-v2-inner{position:relative;z-index:4;width:min(calc(100% - clamp(48px,8vw,150px)),1580px);height:100%;margin:auto;display:grid;grid-template-columns:minmax(0,42fr) minmax(0,58fr);align-items:center;gap:clamp(40px,5vw,100px);padding:104px 0 76px}.hero-v2-content{position:relative;z-index:4;display:block!important;width:auto!important;max-width:650px!important;opacity:1!important;transform:translate3d(calc(var(--hero-x) * -.06),calc(var(--hero-y) * -.05),0)!important;filter:none!important;clip-path:none!important;text-align:left!important}.hero-v2-label{margin:0 0 26px!important;color:rgba(248,247,251,.64)!important;font-size:10px!important;font-weight:600;line-height:1.4;letter-spacing:.16em;text-transform:uppercase;opacity:0;animation:hero-v2-reveal .7s .12s cubic-bezier(.16,.84,.25,1) forwards}.hero-v2-label i{display:inline-block;width:4px;height:4px;margin:0 9px;border-radius:50%;background:#c45cff;box-shadow:0 0 12px rgba(196,92,255,.7);vertical-align:middle}.hero-v2-brand{margin:0 0 22px!important;color:#f8f7fb;font-size:clamp(48px,4.8vw,82px)!important;font-weight:500;line-height:.86;letter-spacing:.105em;opacity:0;transform:translateY(24px);animation:hero-v2-brand-in .9s .22s cubic-bezier(.16,.84,.25,1) forwards}.hero-v2 h1{display:grid!important;gap:4px;max-width:720px!important;margin:0 0 25px!important;color:#f8f7fb;font-size:clamp(58px,5.4vw,94px)!important;font-weight:600!important;line-height:.92!important;letter-spacing:-.064em!important;opacity:1!important;transform:none!important}.hero-v2 h1 span,.hero-v2 h1 em{display:block;opacity:0;transform:translateY(42px);clip-path:inset(0 0 100% 0)}.hero-v2 h1 span{animation:hero-v2-title-in .9s .4s cubic-bezier(.16,.84,.25,1) forwards}.hero-v2 h1 em{font-style:normal;background:linear-gradient(100deg,#9333ea 0%,#c45cff 52%,#e879f9 105%);background-clip:text;-webkit-background-clip:text;color:transparent!important;animation:hero-v2-title-in .95s .53s cubic-bezier(.16,.84,.25,1) forwards}.hero-v2-copy{max-width:570px;margin:0 0 34px!important;color:rgba(248,247,251,.68)!important;font-size:clamp(15px,1.05vw,18px)!important;line-height:1.65;text-wrap:balance;opacity:0;transform:translateY(18px);animation:hero-v2-reveal .75s .72s cubic-bezier(.16,.84,.25,1) forwards}.hero-v2-actions{display:flex;align-items:center;gap:26px;opacity:0;transform:translateY(16px);animation:hero-v2-reveal .72s .88s cubic-bezier(.16,.84,.25,1) forwards}.hero-v2-primary{display:inline-flex;align-items:center;justify-content:center;gap:22px;height:54px;padding:0 20px 0 24px;border:1px solid rgba(255,255,255,.68);border-radius:16px;background:#f8f7fb;color:#16031f;font-size:14px;font-weight:600;box-shadow:0 12px 38px rgba(0,0,0,.28),0 0 0 rgba(196,92,255,0);transition:transform .35s cubic-bezier(.16,.84,.25,1),box-shadow .35s ease,background .35s ease}.hero-v2-primary span{font-size:18px;transition:transform .35s cubic-bezier(.16,.84,.25,1)}.hero-v2-primary:hover,.hero-v2-primary:focus-visible{transform:translateY(-3px);background:#fff;box-shadow:0 16px 44px rgba(0,0,0,.34),0 0 28px rgba(196,92,255,.2)}.hero-v2-primary:hover span,.hero-v2-primary:focus-visible span{transform:translate(3px,-3px)}.hero-v2-secondary{display:inline-flex;align-items:center;gap:10px;padding:12px 0;color:rgba(248,247,251,.72);font-size:13px;font-weight:500;border-bottom:1px solid rgba(196,92,255,.24);transition:color .3s ease,border-color .3s ease}.hero-v2-secondary:hover,.hero-v2-secondary:focus-visible{color:#fff;border-color:#c45cff}.hero-v2-secondary span{color:#c45cff}.hero-v2-visual{position:relative;z-index:3;width:min(54vw,760px);aspect-ratio:1;justify-self:end;transform:translate3d(calc(var(--hero-x) * .34),calc(var(--hero-y) * .3),0);opacity:0;animation:hero-v2-visual-in 1.2s .3s cubic-bezier(.16,.84,.25,1) forwards;will-change:transform}.hero-v2-paths{position:absolute;inset:0;width:100%;height:100%;overflow:visible;filter:drop-shadow(0 0 9px rgba(196,92,255,.16))}.hero-v2-paths path{fill:none;stroke:rgba(196,92,255,.22);stroke-width:1.1;stroke-dasharray:3 8;vector-effect:non-scaling-stroke}.flow-pulse{fill:#e879f9;filter:drop-shadow(0 0 8px #c45cff)}.hero-v2-orbit{position:absolute;left:50%;top:50%;border:1px solid rgba(196,92,255,.19);border-radius:50%;transform:translate(-50%,-50%) rotate(-12deg);box-shadow:inset 0 0 70px rgba(147,51,234,.025)}.hero-v2-orbit:before,.hero-v2-orbit:after{content:"";position:absolute;width:7px;height:7px;border-radius:50%;background:#c45cff;box-shadow:0 0 13px rgba(196,92,255,.8)}.hero-v2-orbit:before{left:11%;top:22%}.hero-v2-orbit:after{right:13%;bottom:18%}.orbit-a{width:72%;height:42%;animation:hero-v2-orbit-a 14s linear infinite}.orbit-b{width:55%;height:68%;transform:translate(-50%,-50%) rotate(31deg);border-color:rgba(232,121,249,.13);animation:hero-v2-orbit-b 18s linear infinite reverse}.orbit-c{width:88%;height:78%;transform:translate(-50%,-50%) rotate(-28deg);border-color:rgba(147,51,234,.12);animation:hero-v2-orbit-c 23s linear infinite}.hero-v2-core{position:absolute;left:50%;top:50%;width:35%;aspect-ratio:1;transform:translate(-50%,-50%);filter:drop-shadow(0 0 35px rgba(147,51,234,.32));animation:hero-v2-core-float 7s ease-in-out infinite}.core-layer{position:absolute;inset:0;border:1px solid rgba(232,121,249,.2);background:radial-gradient(circle at 35% 28%,rgba(255,255,255,.22),transparent 12%),radial-gradient(circle at 50% 52%,rgba(196,92,255,.38),rgba(74,17,103,.42) 45%,rgba(11,3,18,.9) 75%);box-shadow:inset -22px -30px 50px rgba(7,3,13,.68),inset 18px 16px 35px rgba(232,121,249,.11),0 0 45px rgba(147,51,234,.18);backdrop-filter:blur(12px)}.layer-a{border-radius:43% 57% 55% 45%/46% 42% 58% 54%;animation:hero-v2-morph-a 11s ease-in-out infinite}.layer-b{inset:9%;border-radius:57% 43% 42% 58%/51% 62% 38% 49%;opacity:.72;animation:hero-v2-morph-b 9s ease-in-out infinite reverse}.layer-c{inset:22%;border-radius:45% 55% 62% 38%/61% 44% 56% 39%;background:radial-gradient(circle at 40% 35%,rgba(255,255,255,.28),rgba(196,92,255,.35) 28%,rgba(36,8,55,.82) 70%);animation:hero-v2-morph-c 7.5s ease-in-out infinite}.core-light{position:absolute;left:50%;top:50%;width:24%;height:24%;border-radius:50%;background:#e879f9;box-shadow:0 0 16px #e879f9,0 0 45px rgba(196,92,255,.85),0 0 90px rgba(147,51,234,.45);transform:translate(-50%,-50%);animation:hero-v2-core-pulse 3.8s ease-in-out infinite}.hero-v2-node{position:absolute;display:flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid rgba(196,92,255,.16);border-radius:99px;background:rgba(18,5,29,.62);backdrop-filter:blur(12px);color:rgba(248,247,251,.55);font-size:8px;font-weight:600;letter-spacing:.12em;box-shadow:0 8px 28px rgba(0,0,0,.24)}.hero-v2-node i{width:6px;height:6px;border-radius:50%;background:#9333ea;box-shadow:0 0 10px rgba(196,92,255,.75);animation:hero-v2-node-pulse 3s ease-in-out infinite}.node-a{left:7%;top:22%}.node-b{right:4%;top:31%}.node-c{left:10%;bottom:20%}.node-d{right:11%;bottom:14%}.node-b i{animation-delay:-.8s}.node-c i{animation-delay:-1.6s}.node-d i{animation-delay:-2.3s}.hero-v2-scroll{position:absolute;z-index:5;left:clamp(28px,4vw,76px);bottom:28px;display:flex;align-items:center;gap:12px;color:rgba(248,247,251,.34);font-size:8px;font-weight:600;letter-spacing:.16em}.hero-v2-scroll span{width:42px;height:1px;background:linear-gradient(90deg,#9333ea,transparent);animation:hero-v2-scroll-line 2.6s ease-in-out infinite}.hero-v2.scene-leaving .hero-v2-content{animation:hero-v2-exit-left .92s cubic-bezier(.4,0,.2,1) forwards!important}.hero-v2.scene-leaving .hero-v2-visual{animation:hero-v2-exit-right .92s cubic-bezier(.4,0,.2,1) forwards!important}
@keyframes hero-v2-reveal{to{opacity:1;transform:translateY(0)}}@keyframes hero-v2-brand-in{to{opacity:1;transform:translateY(0)}}@keyframes hero-v2-title-in{to{opacity:1;transform:translateY(0);clip-path:inset(0)}}@keyframes hero-v2-visual-in{from{opacity:0;translate:38px 0}to{opacity:1;translate:0 0}}@keyframes hero-v2-core-float{0%,100%{translate:0 -5px}50%{translate:0 7px}}@keyframes hero-v2-core-pulse{0%,100%{opacity:.72;scale:.85}50%{opacity:1;scale:1.08}}@keyframes hero-v2-morph-a{0%,100%{border-radius:43% 57% 55% 45%/46% 42% 58% 54%;rotate:0deg}50%{border-radius:58% 42% 39% 61%/41% 57% 43% 59%;rotate:7deg}}@keyframes hero-v2-morph-b{0%,100%{border-radius:57% 43% 42% 58%/51% 62% 38% 49%;rotate:0deg}50%{border-radius:39% 61% 58% 42%/62% 39% 61% 38%;rotate:-11deg}}@keyframes hero-v2-morph-c{0%,100%{border-radius:45% 55% 62% 38%/61% 44% 56% 39%;rotate:0deg}50%{border-radius:62% 38% 43% 57%/39% 58% 42% 61%;rotate:15deg}}@keyframes hero-v2-orbit-a{to{rotate:360deg}}@keyframes hero-v2-orbit-b{to{rotate:360deg}}@keyframes hero-v2-orbit-c{to{rotate:-360deg}}@keyframes hero-v2-node-pulse{0%,100%{opacity:.45;scale:.8}50%{opacity:1;scale:1.1}}@keyframes hero-v2-scroll-line{0%,100%{opacity:.35;transform:scaleX(.55);transform-origin:left}50%{opacity:1;transform:scaleX(1)}}@keyframes hero-v2-exit-left{to{opacity:0;translate:-54px -28px}}@keyframes hero-v2-exit-right{to{opacity:0;translate:62px 12px}}
@media(max-width:1100px){.hero-v2{min-height:760px!important}.hero-v2-inner{width:min(calc(100% - 48px),900px);grid-template-columns:1fr;place-items:center;padding:118px 0 72px}.hero-v2-content{max-width:720px!important;text-align:center!important;transform:none!important;align-self:start}.hero-v2-label{margin-bottom:20px!important}.hero-v2-brand{font-size:clamp(42px,7vw,68px)!important;margin-bottom:18px!important}.hero-v2 h1{font-size:clamp(54px,8.4vw,82px)!important;margin-inline:auto!important}.hero-v2-copy{margin-inline:auto!important}.hero-v2-actions{justify-content:center}.hero-v2-visual{position:absolute;z-index:1;left:50%;top:55%;width:min(75vw,620px);transform:translate(-50%,-50%);opacity:.26!important;animation:none}.hero-v2-content{z-index:4}.hero-v2-glow{right:50%;translate:50% 0;width:80vw}.hero-v2-scroll{display:none}}
@media(max-width:700px){.hero-v2{height:auto!important;min-height:100svh!important}.hero-v2-inner{width:100%;min-height:100svh;padding:112px 22px 44px;display:flex;align-items:center}.hero-v2-content{align-self:auto}.hero-v2-label{font-size:8px!important;letter-spacing:.12em}.hero-v2-label i{margin-inline:6px}.hero-v2-brand{font-size:42px!important;letter-spacing:.1em}.hero-v2 h1{font-size:clamp(46px,14vw,66px)!important;line-height:.94!important}.hero-v2-copy{max-width:500px;font-size:14px!important;line-height:1.55}.hero-v2-actions{flex-direction:column;gap:8px}.hero-v2-primary{width:min(100%,280px);height:54px}.hero-v2-secondary{border-bottom:0}.hero-v2-visual{top:59%;width:112vw;opacity:.18!important}.hero-network-canvas{opacity:.38}.hero-v2-grid{opacity:.1;background-size:40px 40px}.hero-v2-node{display:none}.flow-pulse{display:none}}
@media(prefers-reduced-motion:reduce){.hero-network-canvas{opacity:.42}.hero-v2-label,.hero-v2-brand,.hero-v2 h1 span,.hero-v2 h1 em,.hero-v2-copy,.hero-v2-actions,.hero-v2-visual{animation:none!important;opacity:1!important;transform:none!important;translate:none!important;clip-path:inset(0)!important}.hero-v2-orbit,.core-layer,.core-light,.hero-v2-node i,.hero-v2-scroll span{animation:none!important}.flow-pulse{display:none}.hero-v2{--hero-x:0px!important;--hero-y:0px!important}}

/* Isolate the new composition from legacy hero title and focus rules. */
.hero-v2.scene-active>div .hero-v2-title{animation:none!important}
.hero-v2-primary:focus-visible,.hero-v2-secondary:focus-visible{outline:2px solid #e879f9;outline-offset:4px}

/* Persistent scene navigation: always above cover-scroll clones and curtains. */
.scene-dots{
  z-index:2147483000!important;
  visibility:visible!important;
  opacity:1!important;
  isolation:isolate;
  translate:0 0!important;
  filter:none!important;
  animation:none!important;
  will-change:transform;
  backface-visibility:hidden;
  transform:translate3d(0,-50%,0)!important;
}
.scene-dots button,
.scene-dots.on-light button{
  visibility:visible!important;
  opacity:1!important;
  border-color:rgba(173,73,225,.72)!important;
  background:rgba(235,211,248,.5)!important;
  box-shadow:0 1px 5px rgba(7,3,13,.38),0 0 0 1px rgba(255,255,255,.2)!important;
}
.scene-dots button.active,
.scene-dots.on-light button.active{
  border-color:#ad49e1!important;
  background:#ad49e1!important;
  box-shadow:0 0 0 3px rgba(173,73,225,.16),0 0 15px rgba(173,73,225,.72)!important;
}

/* Header brand asset */
.header .logo{
  display:flex;
  width:clamp(118px,8.2vw,138px);
  height:58px;
  align-items:center;
  overflow:visible;
}
.header .logo img{
  display:block;
  width:100%;
  height:auto;
  object-fit:contain;
  filter:drop-shadow(0 8px 18px rgba(0,0,0,.18));
}
@media(max-width:700px){
  .header .logo{width:112px;height:52px}
}

/* Efiox brand system: restrained lime, cyan and teal accents. */
:root{--brand-lime:#b7ff19;--brand-cyan:#43ded8;--brand-teal:#35aaa4}
.header .logo{width:64px;height:54px}
.header .logo img{width:64px;filter:drop-shadow(0 7px 16px rgba(0,0,0,.22))}
.hero-v2-brand{
  position:relative;
  width:clamp(300px,24vw,410px)!important;
  height:clamp(88px,7vw,112px);
  margin:0 0 19px!important;
  overflow:hidden;
  opacity:0;
  transform:translateY(24px);
  animation:hero-v2-brand-in .9s .22s cubic-bezier(.16,.84,.25,1) forwards;
}
.hero-v2-brand img{
  position:absolute;
  left:0;
  top:50%;
  display:block;
  width:100%;
  height:auto;
  transform:translateY(-50%);
  filter:drop-shadow(0 14px 30px rgba(0,0,0,.2));
}
.hero-v2{background:radial-gradient(circle at 78% 45%,rgba(67,222,216,.095),transparent 25%),radial-gradient(circle at 70% 61%,rgba(183,255,25,.035),transparent 24%),radial-gradient(circle at 22% 15%,rgba(196,92,255,.08),transparent 30%),linear-gradient(135deg,#07030d 0%,#0b0312 44%,#12051d 100%)!important}
.hero-v2-label i:first-of-type{background:var(--brand-lime);box-shadow:0 0 12px rgba(183,255,25,.55)}
.hero-v2-label i:last-of-type{background:var(--brand-cyan);box-shadow:0 0 12px rgba(67,222,216,.55)}
.hero-v2 h1 em{background:linear-gradient(102deg,var(--brand-teal) 0%,var(--brand-cyan) 52%,#76ed9b 78%,var(--brand-lime) 108%);background-clip:text;-webkit-background-clip:text}
.hero-v2-grid{background-image:linear-gradient(rgba(67,222,216,.075) 1px,transparent 1px),linear-gradient(90deg,rgba(173,73,225,.12) 1px,transparent 1px)}
.hero-v2-paths path{stroke:rgba(67,222,216,.23)}
.flow-pulse{fill:var(--brand-lime);filter:drop-shadow(0 0 8px rgba(183,255,25,.8))}
.core-light{background:var(--brand-cyan);box-shadow:0 0 16px var(--brand-cyan),0 0 45px rgba(67,222,216,.72),0 0 90px rgba(173,73,225,.35)}
.layer-c{background:radial-gradient(circle at 40% 35%,rgba(255,255,255,.3),rgba(67,222,216,.28) 28%,rgba(54,13,73,.84) 72%)}
.hero-v2-node i{background:var(--brand-teal);box-shadow:0 0 10px rgba(67,222,216,.7)}
.hero-v2-node.node-a i,.hero-v2-node.node-d i{background:var(--brand-lime);box-shadow:0 0 10px rgba(183,255,25,.58)}
.hero-v2-primary span,.hero-v2-secondary span{color:#168f89}
.scroll-progress{background:linear-gradient(90deg,#ad49e1,var(--brand-cyan),var(--brand-lime));box-shadow:0 0 14px rgba(67,222,216,.55)}
.scene-dots button.active,.scene-dots.on-light button.active{border-color:var(--brand-cyan)!important;background:var(--brand-cyan)!important;box-shadow:0 0 0 3px rgba(67,222,216,.14),0 0 15px rgba(67,222,216,.58)!important}
.process .steps:before{background:linear-gradient(90deg,transparent,var(--brand-teal) 15%,#ad49e1 52%,var(--brand-cyan) 86%,transparent)}
@media(max-width:700px){
  .header .logo,.header .logo img{width:54px}
  .header .logo{height:48px}
  .hero-v2-brand{width:min(78vw,310px)!important;height:78px;margin:0 auto 16px!important}
}

/* Type calibration for the updated Slovak copy. */
.hero-v2 h1{max-width:720px!important;font-size:clamp(52px,4.45vw,76px)!important;line-height:.95!important}
.hero-v2-copy{max-width:620px;font-size:clamp(14px,1vw,17px)!important;line-height:1.6}
.framework-word{max-width:280px;margin-inline:auto;font-size:clamp(34px,3.35vw,52px);line-height:1.02}
.framework-items p{max-width:520px;line-height:1.5}
@media(max-width:1100px){
  .hero-v2 h1{font-size:clamp(48px,6.3vw,68px)!important}
}
@media(max-width:700px){
  .hero-v2 h1{font-size:clamp(40px,11vw,54px)!important;line-height:.98!important}
  .hero-v2-copy{font-size:13px!important;line-height:1.55}
  .framework-word{max-width:120px;font-size:26px;line-height:1.05}
}

/* Final logo placement: full wordmark in navbar, EX mark reserved for favicon. */
.header .logo{width:clamp(124px,8.5vw,142px);height:58px}
.header .logo img{width:100%;height:auto;object-fit:contain;filter:drop-shadow(0 7px 16px rgba(0,0,0,.2))}
@media(max-width:700px){
  .header .logo{width:112px;height:52px}
  .header .logo img{width:100%}
}

/* Preserve descenders in the masked hero-title reveal. */
.hero-v2 h1{gap:8px!important;margin-bottom:32px!important;line-height:1!important;overflow:visible}
.hero-v2 h1 span,.hero-v2 h1 em{padding-bottom:.14em;overflow:visible}
@media(max-width:700px){
  .hero-v2 h1{gap:5px!important;margin-bottom:26px!important;line-height:1.02!important}
}

/* Keep the process rail behind its nodes instead of crossing their glyphs. */
.process .steps:before{
  z-index:1!important;
  opacity:.58;
  background:linear-gradient(90deg,transparent 0%,rgba(53,170,164,.5) 12%,rgba(173,73,225,.7) 48%,rgba(67,222,216,.55) 88%,transparent 100%)!important;
  box-shadow:0 0 10px rgba(67,222,216,.12)!important;
}
.process .steps article{z-index:2}
.process .step-icon{z-index:3!important}
.process .steps:after{z-index:4!important}

/* Unified line-icon language for the three process steps. */
.process .step-icon svg{
  width:27px;
  height:27px;
  overflow:visible;
  fill:none;
  stroke:currentColor;
  stroke-width:1.55;
  stroke-linecap:round;
  stroke-linejoin:round;
  filter:drop-shadow(0 0 7px rgba(173,73,225,.28));
}
.process .steps article:nth-child(1) .step-icon{color:var(--brand-teal)!important}
.process .steps article:nth-child(2) .step-icon{color:#c77bea!important}
.process .steps article:nth-child(3) .step-icon{color:var(--brand-cyan)!important}

/* Services automation demo — replaces the generic time-saved rings. */
.services .automation-panel{
  position:relative;
  display:flex;
  justify-content:center;
  padding:clamp(28px,3.6vw,52px)!important;
  background:radial-gradient(circle at 50% 42%,rgba(67,222,216,.12),transparent 38%),radial-gradient(circle at 20% 85%,rgba(173,73,225,.16),transparent 35%),linear-gradient(145deg,#0b0711,#16091e 62%,#100615)!important;
}
.automation-panel:before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  opacity:.16;
  background-image:linear-gradient(rgba(67,222,216,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(173,73,225,.08) 1px,transparent 1px);
  background-size:38px 38px;
  mask-image:linear-gradient(to bottom,transparent,#000 25%,#000 75%,transparent);
}
.automation-demo{position:relative;z-index:1;width:100%;max-width:570px;margin:auto}
.automation-status{display:flex;align-items:center;justify-content:space-between;margin-bottom:clamp(28px,4vh,42px);color:#cfc0d6;font-size:9px;font-weight:600;letter-spacing:.12em;text-transform:uppercase}
.automation-status span,.automation-status b{display:flex;align-items:center;gap:8px}
.automation-status b{padding:7px 10px;border:1px solid rgba(67,222,216,.18);border-radius:99px;background:rgba(67,222,216,.055);color:#75e7e2;font-size:8px;font-weight:600}
.automation-status i{width:7px;height:7px;border-radius:50%;background:var(--brand-lime);box-shadow:0 0 12px rgba(183,255,25,.7);animation:automation-live 2.4s ease-in-out infinite}
.automation-heading h3{margin:0;color:#fff;font-size:clamp(28px,3vw,43px);font-weight:500;line-height:1.02;letter-spacing:-.045em}
.automation-heading h3 em{font-style:normal;color:var(--brand-cyan)}
.automation-heading p{max-width:500px;margin:16px 0 0;color:#aa9eb0;font-size:13px;line-height:1.55}
.automation-pipeline{display:grid;grid-template-columns:1fr 34px 1fr 34px 1fr;align-items:center;margin-top:clamp(30px,4.5vh,48px)}
.pipeline-card{min-width:0;padding:15px 13px;border:1px solid rgba(235,211,248,.14);border-radius:14px;background:rgba(255,255,255,.035);box-shadow:inset 0 1px rgba(255,255,255,.035)}
.pipeline-card>span{display:block;margin-bottom:18px;color:#8e7a97;font-size:8px;letter-spacing:.12em}
.pipeline-card strong,.pipeline-card small{display:block}
.pipeline-card strong{color:#f7f0fa;font-size:12px;font-weight:600;line-height:1.25}
.pipeline-card small{margin-top:5px;color:#8f8196;font-size:9px;line-height:1.35}
.pipeline-card.is-core{border-color:rgba(67,222,216,.35);background:linear-gradient(145deg,rgba(67,222,216,.1),rgba(173,73,225,.09));box-shadow:0 0 30px rgba(67,222,216,.08),inset 0 1px rgba(255,255,255,.06)}
.pipeline-card.is-core>span{color:var(--brand-cyan)}
.pipeline-link{position:relative;height:1px;background:linear-gradient(90deg,rgba(173,73,225,.22),rgba(67,222,216,.75),rgba(173,73,225,.22))}
.pipeline-link b{position:absolute;top:50%;left:0;width:5px;height:5px;border-radius:50%;background:var(--brand-lime);box-shadow:0 0 9px rgba(183,255,25,.75);transform:translateY(-50%);animation:pipeline-travel 2.8s ease-in-out infinite}
.automation-benefits{display:flex;gap:24px;margin-top:24px;padding-top:18px;border-top:1px solid rgba(235,211,248,.1);color:#b9abbf;font-size:10px}
.automation-benefits span{display:flex;align-items:center;gap:8px}
.automation-benefits i{width:5px;height:5px;border-radius:50%;background:var(--brand-teal)}
@keyframes automation-live{50%{opacity:.45;scale:.76}}
@keyframes pipeline-travel{0%{left:0;opacity:0}18%,82%{opacity:1}100%{left:calc(100% - 5px);opacity:0}}
@media(max-width:560px){
  .services .automation-panel{min-height:500px!important}
  .automation-status{margin-bottom:26px}.automation-status b{display:none}
  .automation-pipeline{grid-template-columns:1fr;gap:8px;margin-top:26px}
  .pipeline-link{width:1px;height:16px;margin:auto;background:linear-gradient(rgba(173,73,225,.22),rgba(67,222,216,.75))}
  .pipeline-link b{display:none}
  .pipeline-card{padding:12px 14px}.pipeline-card>span{float:right;margin:0}
  .automation-benefits{justify-content:space-between;gap:12px}
}
@media(prefers-reduced-motion:reduce){.automation-status i,.pipeline-link b{animation:none!important}}

/* Minimal service visual: one message and one continuous process line. */
.automation-demo{max-width:500px}
.automation-status{justify-content:flex-start;margin-bottom:clamp(34px,6vh,58px)}
.automation-heading h3{font-size:clamp(34px,3.6vw,52px);line-height:.98}
.automation-heading p{max-width:430px;margin-top:20px;font-size:14px}
.automation-simple-flow{display:grid;grid-template-columns:auto minmax(28px,1fr) auto minmax(28px,1fr) auto;align-items:center;margin-top:clamp(48px,8vh,78px)}
.automation-simple-flow>span{color:#aa9caf;font-size:9px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap}
.automation-simple-flow>span.active{color:var(--brand-cyan)}
.automation-simple-flow>i{position:relative;height:1px;margin-inline:10px;background:linear-gradient(90deg,rgba(173,73,225,.22),rgba(67,222,216,.58))}
.automation-simple-flow>i b{position:absolute;top:50%;left:0;width:5px;height:5px;border-radius:50%;background:var(--brand-lime);box-shadow:0 0 9px rgba(183,255,25,.72);transform:translateY(-50%);animation:pipeline-travel 3s ease-in-out infinite}
.automation-simple-flow>i:nth-of-type(2) b{animation-delay:-1.5s}
.service-list .service-open{grid-template-columns:minmax(0,1fr);margin-top:0;padding:11px 13px;border:1px solid rgba(67,222,216,.25);border-radius:14px;background:linear-gradient(105deg,rgba(67,222,216,.09),rgba(173,73,225,.035))}
.service-list .service-open>div{grid-column:1 / -1}
.service-open a{display:inline-flex;align-items:center;gap:8px;margin-top:8px;color:#218f91;font-size:11px;font-weight:700;letter-spacing:.035em;text-decoration:none;transition:gap .26s ease,color .26s ease}
.service-open a b{font-size:13px;font-weight:500}.service-open a:hover{gap:12px;color:#176f72}
.services.scene-active .service-list article:nth-child(5){animation-delay:.9s!important}
@media(min-width:901px){
  .services .service-stage{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}
  .services .service-list{
    grid-template-rows:repeat(4,minmax(0,1fr)) auto;
    align-content:stretch;
    padding:22px 34px;
  }
  .services .service-list article{
    min-height:0;
    align-items:center;
    padding:8px 0;
  }
  .services .service-list .service-open{
    grid-template-columns:minmax(0,1fr);
    gap:0;
    margin-top:8px;
    padding:11px 13px;
  }
  .service-open>div{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    column-gap:18px;
    align-items:center;
  }
  .service-open h3{grid-column:1;margin-bottom:2px!important}
  .service-open p{grid-column:1}
  .service-open a{
    grid-column:2;
    grid-row:1 / span 2;
    margin-top:0;
    white-space:nowrap;
  }
}
@media(max-width:560px){
  .services .automation-panel{min-height:400px!important}
  .automation-status{margin-bottom:34px}
  .automation-heading h3{font-size:36px}
  .automation-heading p{font-size:13px}
  .automation-simple-flow{margin-top:44px;grid-template-columns:auto 1fr auto 1fr auto}
  .automation-simple-flow>span{font-size:7px;letter-spacing:.06em}
  .automation-simple-flow>i{margin-inline:7px}
}
@media(prefers-reduced-motion:reduce){.automation-simple-flow>i b{animation:none!important}}

/* Restrained Efiox logo accents on the central framework nodes only. */
.framework .framework-axis i:nth-child(1){
  background:var(--brand-lime)!important;
  box-shadow:0 0 0 8px #7a1cac,0 0 13px rgba(183,255,25,.22)!important;
}
.framework .framework-axis i:nth-child(2){
  background:#8df4ef!important;
  box-shadow:0 0 0 8px #7a1cac,0 0 18px rgba(67,222,216,.28)!important;
}
.framework .framework-axis i:nth-child(3){
  background:var(--brand-teal)!important;
  box-shadow:0 0 0 8px #7a1cac,0 0 13px rgba(53,170,164,.22)!important;
}

/* Match the contact emphasis to the process-section accent. */
.contact .contact-copy h2 em{color:#c66ce6!important}
.automation-heading h3 em{color:#c66ce6!important}

/* Persistent navigation with one consistent composition across every scene. */
.header{
  position:fixed!important;
  z-index:120!important;
  top:18px!important;
  transition:none!important;
}
.header.header-floating{
  width:calc(100% - clamp(40px,11vw,176px))!important;
  height:70px;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  -webkit-backdrop-filter:none;
  backdrop-filter:none;
}
@media(max-width:900px){
  .header{top:10px!important}
  .header.header-floating{
    width:calc(100% - 56px)!important;
    height:70px;
  }
}

/* Structured Efiox footer and compact legal overlays. */
.site-footer-scene{
  display:grid;
  min-height:100svh;
  padding:clamp(110px,14vh,160px) var(--pad) 38px;
  color:#fff;
  background:
    radial-gradient(circle at 12% 15%,rgba(67,222,216,.08),transparent 25%),
    radial-gradient(circle at 88% 82%,rgba(183,255,25,.035),transparent 24%),
    linear-gradient(145deg,#100216,#190321 55%,#21052b);
}
.site-footer{
  display:grid;
  grid-template-columns:minmax(280px,1.55fr) repeat(3,minmax(140px,.7fr));
  gap:clamp(34px,5vw,82px);
  align-self:end;
  width:100%;
  max-width:1380px;
  margin:auto;
  padding:0;
  border:0;
  background:transparent;
}
.footer-lead{max-width:390px}
.footer-logo{display:block;width:clamp(132px,11vw,172px);margin-bottom:30px}
.footer-logo img{display:block;width:100%;height:auto}
.footer-lead>p{max-width:350px;margin-bottom:32px;color:#bdaec4;font-size:clamp(20px,1.75vw,27px);line-height:1.35;letter-spacing:-.025em}
.footer-mail{display:inline-flex;gap:12px;padding-bottom:7px;border-bottom:1px solid rgba(67,222,216,.42);color:var(--brand-cyan);font-size:17px}
.footer-mail span{transition:transform .3s ease}.footer-mail:hover span{transform:translate(3px,-3px)}
.footer-column{display:flex;flex-direction:column;align-items:flex-start;gap:15px}
.footer-column>p{margin:0 0 13px;color:#97899e;font-size:11px;font-weight:600;letter-spacing:.15em;text-transform:uppercase}
.footer-column a,.footer-column button,.footer-column>span{padding:0;border:0;background:none;color:#e2d7e7;font-size:16px;line-height:1.5;text-align:left;cursor:pointer;transition:color .25s ease,transform .25s ease}
.footer-column a:hover,.footer-column button:hover{color:var(--brand-cyan);transform:translateX(3px)}
.footer-socials>span{display:flex;align-items:center;gap:9px;color:#a99caf;cursor:default}
.footer-socials small{padding:3px 7px;border:1px solid rgba(67,222,216,.2);border-radius:99px;color:#78d8d3;font-size:9px;letter-spacing:.08em;text-transform:uppercase}
.footer-instagram{
  display:inline-flex!important;
  align-items:center;
  gap:11px;
  color:#e9dff0!important;
}
.footer-instagram-icon{
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  border:1px solid rgba(67,222,216,.3);
  border-radius:11px;
  color:var(--brand-cyan);
  background:linear-gradient(145deg,rgba(67,222,216,.09),rgba(173,73,225,.1));
  transition:border-color .3s ease,background .3s ease,transform .3s ease;
}
.footer-instagram-icon svg{
  width:18px;
  height:18px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.55;
}
.footer-instagram-icon .instagram-dot{fill:currentColor;stroke:none}
.footer-instagram>b{color:var(--brand-lime);font-size:13px;font-weight:500;transition:transform .3s ease}
.footer-instagram:hover .footer-instagram-icon{
  border-color:rgba(183,255,25,.48);
  background:linear-gradient(145deg,rgba(67,222,216,.15),rgba(173,73,225,.16));
  transform:rotate(-4deg);
}
.footer-instagram:hover>b{transform:translate(2px,-2px)}
.language-switcher{display:flex;align-items:center;gap:2px;margin-left:2px;padding:3px;border:1px solid rgba(235,211,248,.14);border-radius:999px;background:rgba(14,1,19,.72)}
.language-switcher a{display:grid;place-items:center;width:30px;height:27px;border-radius:999px;filter:saturate(.72);opacity:.55;transition:opacity .25s ease,filter .25s ease,background .25s ease,transform .25s ease}
.language-switcher svg{display:block;width:18px;height:auto;border-radius:2px;box-shadow:0 0 0 1px rgba(255,255,255,.16),0 2px 6px rgba(0,0,0,.24)}
.language-switcher a:hover{opacity:1;filter:saturate(1);transform:translateY(-1px)}
.language-switcher a.active{opacity:1;filter:saturate(1);background:rgba(255,255,255,.11);box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}
@media(max-width:900px){.language-switcher{justify-self:start;margin:4px 8px 8px}}
.footer-bottom{grid-column:1 / -1;display:flex;align-items:center;gap:30px;margin-top:clamp(70px,13vh,130px);padding-top:24px;border-top:1px solid rgba(235,211,248,.11);color:#95899b;font-size:13px;letter-spacing:.025em}
.footer-bottom span:nth-child(2){margin-left:auto}.footer-bottom a{color:#bdb0c4}.footer-bottom b{margin-left:8px;color:var(--brand-cyan)}
.legal-dialog{
  width:min(calc(100% - 36px),860px);
  max-height:88svh;
  padding:0 38px 38px;
  border:1px solid rgba(235,211,248,.17);
  border-radius:24px;
  color:#f8f1fb;
  background:linear-gradient(145deg,#21062c,#15031d);
  box-shadow:0 35px 110px rgba(13,0,18,.58);
  scrollbar-color:rgba(67,222,216,.45) transparent;
}
.legal-dialog::backdrop{background:rgba(10,1,14,.68);backdrop-filter:blur(9px)}
.legal-dialog-head{position:sticky;z-index:2;top:0;display:flex;align-items:center;justify-content:space-between;margin:0 -8px 30px;padding:24px 8px 15px;background:linear-gradient(180deg,#20062b 72%,transparent)}
.legal-dialog-head p{margin:0;color:#9f91a6;font-size:11px;letter-spacing:.14em}
.legal-dialog-head button{display:grid;place-items:center;width:34px;height:34px;border:1px solid rgba(235,211,248,.16);border-radius:50%;background:transparent;color:#fff;font-size:21px;cursor:pointer}
.legal-dialog h2{margin-bottom:24px;font-size:clamp(32px,4vw,48px);letter-spacing:-.045em}
.legal-dialog h3{margin:25px 0 8px;color:#e5d9ea;font-size:17px}
.legal-dialog>p{color:#c7b9cc;font-size:15px;line-height:1.65}
.legal-dialog a{color:var(--brand-cyan)}
.legal-dialog .legal-note{margin-top:28px;padding-top:18px;border-top:1px solid rgba(235,211,248,.11);color:#9b8ca2;font-size:12px}
.legal-document{color:#c7b9cc;font-size:15px;line-height:1.72}
.legal-document h2{color:#fff;line-height:1.02}
.legal-document h3{margin-top:0;color:#f0e6f4;font-size:20px;line-height:1.25}
.legal-document h4{margin:23px 0 7px;color:#ded0e4;font-size:15px}
.legal-document p{margin:0 0 15px}
.legal-document ul{display:grid;gap:7px;margin:4px 0 20px;padding-left:21px}
.legal-document li::marker{color:var(--brand-cyan)}
.legal-document section{margin-top:35px;padding-top:27px;border-top:1px solid rgba(235,211,248,.11)}
.legal-document address{margin:15px 0 20px;padding:17px 19px;border-left:2px solid var(--brand-cyan);border-radius:0 12px 12px 0;background:rgba(67,222,216,.045);color:#ded2e3;font-style:normal}
.legal-effective{display:inline-flex;margin:-8px 0 27px!important;padding:7px 11px;border:1px solid rgba(67,222,216,.2);border-radius:99px;color:#8ce0dc;font-size:11px}
.legal-technology{margin:15px 0;padding:18px;border:1px solid rgba(235,211,248,.11);border-radius:14px;background:rgba(255,255,255,.025)}
.legal-technology h4{margin-top:0}
.legal-technology code{color:var(--brand-lime);font-size:.92em}
.cookie-preferences{margin-top:40px;padding:24px;border:1px solid rgba(67,222,216,.22);border-radius:18px;background:rgba(67,222,216,.055)}
.cookie-preferences h3{margin:0}
.cookie-setting{display:flex;align-items:center;justify-content:space-between;gap:28px;margin:28px 0;padding:18px;border:1px solid rgba(67,222,216,.15);border-radius:14px;background:rgba(67,222,216,.045)}
.cookie-setting span{display:grid;gap:5px}.cookie-setting b{font-size:15px}.cookie-setting small{color:#a99bad;font-size:12px}.cookie-setting strong{color:var(--brand-cyan);font-size:11px;white-space:nowrap}
.legal-confirm{width:100%;padding:13px;border:0;border-radius:11px;background:#fff;color:#21052b;font-weight:600;cursor:pointer}
.cookie-banner[hidden]{display:none}
.cookie-banner{
  position:fixed;
  z-index:180;
  right:clamp(16px,3vw,42px);
  bottom:clamp(16px,3vw,38px);
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:19px 20px;
  width:min(calc(100% - 32px),610px);
  padding:24px;
  border:1px solid rgba(235,211,248,.2);
  border-radius:22px;
  color:#fff;
  background:linear-gradient(145deg,rgba(17,3,24,.97),rgba(36,7,47,.98));
  box-shadow:0 28px 90px rgba(6,0,9,.5),inset 0 1px rgba(255,255,255,.07);
  animation:cookie-banner-in .65s cubic-bezier(.16,.84,.25,1) both;
}
.cookie-banner-mark{display:grid;gap:4px;width:34px;padding-top:5px}
.cookie-banner-mark span{display:block;height:6px;border-radius:0 7px 7px 0}
.cookie-banner-mark span:nth-child(1){width:31px;background:var(--brand-lime)}
.cookie-banner-mark span:nth-child(2){width:24px;background:var(--brand-cyan)}
.cookie-banner-mark span:nth-child(3){width:28px;background:var(--brand-teal)}
.cookie-banner-copy{min-width:0}
.cookie-banner-label{margin:0 0 6px;color:var(--brand-cyan);font-size:9px;font-weight:700;letter-spacing:.15em}
.cookie-banner h2{margin:0 0 8px;font-size:clamp(21px,2vw,27px);line-height:1.12;letter-spacing:-.035em}
.cookie-banner-copy>p:last-child{margin:0;color:#bfaec7;font-size:13px;line-height:1.55}
.cookie-banner-actions{grid-column:1/-1;display:grid;grid-template-columns:1fr 1.25fr;gap:9px}
.cookie-button,.cookie-settings-link{min-height:44px;border-radius:11px;font-size:13px;font-weight:600;cursor:pointer}
.cookie-button{border:1px solid rgba(235,211,248,.22)}
.cookie-reject{color:#e8deec;background:rgba(255,255,255,.045)}
.cookie-accept{border-color:transparent;color:#16031f;background:linear-gradient(100deg,var(--brand-cyan),var(--brand-lime))}
.cookie-settings-link{grid-column:1/-1;min-height:auto;padding:5px;border:0;color:#a99bad;background:none;text-decoration:underline;text-underline-offset:3px}
.cookie-setting-toggle{position:relative;cursor:pointer}
.cookie-setting-toggle input{position:absolute;width:1px;height:1px;opacity:0}
.cookie-setting-toggle>i{position:relative;flex:0 0 auto;width:46px;height:26px;border:1px solid rgba(235,211,248,.25);border-radius:99px;background:#2d1635;transition:.25s}
.cookie-setting-toggle>i:after{content:"";position:absolute;left:3px;top:3px;width:18px;height:18px;border-radius:50%;background:#c7bacd;transition:.25s}
.cookie-setting-toggle input:checked+i{border-color:rgba(67,222,216,.55);background:rgba(67,222,216,.22)}
.cookie-setting-toggle input:checked+i:after{transform:translateX(20px);background:var(--brand-cyan)}
.cookie-setting-toggle input:focus-visible+i{outline:2px solid var(--brand-cyan);outline-offset:3px}
@keyframes cookie-banner-in{from{opacity:0;transform:translateY(22px) scale(.98)}to{opacity:1;transform:none}}
@media(max-width:850px){
  .site-footer-scene{min-height:auto;padding-top:110px}
  .site-footer{grid-template-columns:1fr 1fr}
  .footer-lead{grid-column:1 / -1}
  .footer-bottom{flex-wrap:wrap;margin-top:55px}
  .footer-bottom span:nth-child(2){margin-left:0}
  .footer-bottom a{margin-left:auto}
}
@media(max-width:520px){
  .site-footer{grid-template-columns:1fr;gap:34px}
  .footer-lead,.footer-bottom{grid-column:1}
  .footer-bottom{display:grid;gap:10px}
  .footer-bottom a{margin:8px 0 0}
  .legal-dialog{padding:0 20px 24px}
  .legal-dialog-head{padding-top:18px}
  .legal-document{font-size:14px;line-height:1.65}
  .legal-document h3{font-size:18px}
  .cookie-preferences{padding:17px}
  .cookie-setting{align-items:flex-start;flex-direction:column}
  .cookie-banner{right:12px;bottom:12px;width:calc(100% - 24px);padding:19px;border-radius:18px}
  .cookie-banner-actions{grid-template-columns:1fr}
  .cookie-settings-link{grid-column:1}
  .cookie-setting-toggle{align-items:center;flex-direction:row}
}

/* Final responsive system — natural touch scrolling and reflowed compositions. */
@media(max-width:1024px){
  :root{--pad:clamp(22px,5vw,48px)}
  html{scroll-snap-type:none!important;overscroll-behavior-y:auto}
  body{overflow-x:hidden}
  main>section{
    min-height:0;
    scroll-snap-align:none;
    scroll-snap-stop:normal;
    scroll-margin-top:84px;
    overflow:hidden;
  }
  .scene-dots{display:none!important}
  .section-curtain,.scene-transition-clone,.scene-transition-outgoing{display:none!important}

  .header,.header.header-floating{
    top:10px!important;
    width:calc(100% - 32px)!important;
    height:64px;
  }
  .header .logo,.header.header-floating .logo{width:116px;height:48px}
  .header.header-on-light .logo{
    width:128px;
    padding:4px 7px;
    border:1px solid rgba(235,211,248,.12);
    border-radius:12px;
    background:rgba(20,4,29,.76);
    box-shadow:0 8px 24px rgba(20,4,29,.16);
    backdrop-filter:blur(12px);
  }
  .menu-button{
    display:block;
    width:46px;
    height:46px;
    border-color:rgba(235,211,248,.2);
    background:rgba(20,4,29,.7);
    backdrop-filter:blur(16px);
  }
  .nav,.header.header-floating .nav{
    display:none;
    position:absolute;
    top:69px;
    left:0;
    right:0;
    gap:10px;
    padding:12px;
    border:1px solid rgba(235,211,248,.16);
    border-radius:18px;
    background:rgba(20,4,29,.95);
    box-shadow:0 20px 55px rgba(10,0,14,.35);
    backdrop-filter:blur(20px);
  }
  .header .nav.open,.header.header-floating .nav.open{display:grid!important}
  .nav-pill,.header.header-floating .nav-pill{
    display:grid;
    padding:0;
    border:0;
    background:transparent;
  }
  .nav-pill a,.header.header-floating .nav-pill a{
    min-height:46px;
    display:flex;
    align-items:center;
    padding:10px 13px;
    color:#ded2e3;
  }
  .header-cta,.header.header-floating .header-cta{
    min-height:46px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:11px 14px;
  }

  .hero-v2{
    height:auto!important;
    min-height:max(100svh,760px)!important;
  }
  .hero-v2-inner{
    width:min(calc(100% - 48px),760px);
    min-height:max(100svh,760px);
    padding:116px 0 70px;
    display:flex;
    align-items:center;
    justify-content:center;
  }
  .hero-v2-content{
    width:100%!important;
    max-width:680px!important;
    text-align:center!important;
    transform:none!important;
  }
  .hero-v2 h1{
    max-width:680px!important;
    margin-inline:auto!important;
    font-size:clamp(48px,7.2vw,68px)!important;
  }
  .hero-v2-copy{max-width:590px;margin-inline:auto!important}
  .hero-v2-actions{justify-content:center}
  .hero-v2-visual{
    left:50%;
    top:55%;
    width:min(82vw,650px);
    transform:translate(-50%,-50%);
    opacity:.18!important;
  }
  .hero-v2-grid{bottom:-18%;height:60%}

  .process{
    min-height:auto!important;
    padding:112px var(--pad) 90px!important;
  }
  .process:after{font-size:min(62vw,520px)}
  .process-intro{margin-bottom:44px}
  .process-intro h2{font-size:clamp(42px,7vw,62px)}
  .process-intro .section-label,
  .process-intro h2 span,
  .process-intro h2 em{
    opacity:1!important;
    transform:none!important;
    filter:none!important;
    animation:none!important;
  }
  .process .steps{
    grid-template-columns:1fr;
    max-width:720px;
    border-radius:24px;
  }
  .process .steps:before,.process .steps:after{display:none}
  .process .steps article{
    display:grid;
    grid-template-columns:72px minmax(0,1fr);
    grid-template-rows:auto auto auto;
    column-gap:24px;
    min-height:0;
    padding:28px;
    border-right:0;
    border-bottom:1px solid rgba(235,211,248,.12);
    clip-path:inset(0 0 100% 0);
  }
  .process .steps article:last-child{border-bottom:0}
  .process .step-icon{
    grid-column:1;
    grid-row:1 / span 3;
    width:62px;
    height:62px;
    margin:0;
    opacity:1!important;
    transform:none!important;
    animation:none!important;
  }
  .process .steps small,.process .steps h3,.process .steps p{grid-column:2}
  .process .steps small{margin-bottom:4px}
  .process .steps h3{margin:0 0 7px}
  .process.scene-active .steps article{animation-name:process-row-reveal}
  .process .steps article{
    opacity:1!important;
    clip-path:inset(0)!important;
    transform:none!important;
    animation:none!important;
  }

  .services{
    height:auto!important;
    min-height:0!important;
    display:block!important;
    padding:100px var(--pad)!important;
  }
  .services>.section-intro{
    max-width:760px;
    margin:0 auto 46px;
  }
  .services .section-label,
  .services .section-intro h2,
  .services .intro-copy,
  .services .service-stage,
  .services .service-list article{
    opacity:1!important;
    transform:none!important;
    filter:none!important;
    clip-path:inset(0)!important;
    animation:none!important;
  }
  .services>.section-intro h2{font-size:clamp(40px,7vw,60px)}
  .services .service-stage{
    grid-template-columns:1fr;
    width:min(100%,760px);
    height:auto;
    min-height:0;
    border-radius:24px;
  }
  .services .automation-panel{
    min-height:340px!important;
    height:auto;
    padding:38px!important;
  }
  .automation-demo{width:100%;max-width:600px}
  .automation-status{margin-bottom:40px}
  .automation-heading h3{font-size:clamp(38px,7vw,52px)}
  .automation-simple-flow{margin-top:54px}
  .services .service-list{
    height:auto;
    padding:22px 30px 28px;
    display:block;
  }
  .services .service-list article{padding:22px 0}
  .services .service-list .service-open{margin-top:8px;padding:18px}
  .service-open>div{display:block}
  .service-open a{margin-top:10px}

  .web-section{
    min-height:auto!important;
    padding:100px var(--pad)!important;
  }
  .web-heading{max-width:760px;margin-bottom:44px}
  .web-heading h2{font-size:clamp(42px,7vw,62px)}
  .web-heading h2,.web-card{
    opacity:1!important;
    transform:none!important;
    filter:none!important;
    clip-path:inset(0)!important;
    animation:none!important;
  }
  .web-card{
    grid-template-columns:1fr;
    max-width:760px;
    border-radius:24px;
  }
  .browser-mock{min-height:440px;margin:24px 24px 0}
  .mock-title{padding-top:90px;font-size:clamp(52px,10vw,78px)}
  .web-copy{padding:46px}

  .manifesto{
    min-height:82svh!important;
    padding:110px var(--pad)!important;
    display:grid;
    place-items:center;
  }
  .manifesto-copy{position:relative;z-index:2;width:100%}
  .manifesto-copy h2{font-size:clamp(44px,7.5vw,66px)}
  .manifesto-copy.is-carrying,.manifesto-copy.is-carrying.parked-framework{
    position:relative!important;
    inset:auto!important;
    width:100%!important;
    padding:0!important;
    transform:none!important;
  }
  html.carrying-manifesto .framework-heading{visibility:visible}

  .framework{
    min-height:auto!important;
    padding:90px var(--pad)!important;
    display:block;
  }
  .framework-heading{display:none}
  .framework-panel{
    max-width:760px;
    min-height:430px;
    margin:auto;
    padding:44px 34px;
    grid-template-columns:minmax(180px,.72fr) 64px minmax(0,1.4fr);
    border-radius:24px;
    transform:none!important;
    clip-path:inset(0 round 24px)!important;
  }
  .framework.scene-active .framework-panel{animation:none!important}
  .framework-word{opacity:1;transform:none;font-size:clamp(34px,5vw,46px)}
  .framework-axis i,.framework-items article{opacity:1;transform:none}
  .framework-axis:before{transform:scaleY(1)}

  .contact{
    min-height:auto!important;
    grid-template-columns:1fr;
    gap:52px;
    padding:110px var(--pad)!important;
  }
  .contact-copy,.contact-form{width:min(100%,720px);margin:auto}
  .contact-copy h2{font-size:clamp(44px,7vw,62px)}
  .contact-copy,.contact-form,.contact-copy h2{
    opacity:1!important;
    transform:none!important;
    filter:none!important;
    clip-path:inset(0)!important;
    animation:none!important;
  }
  .contact-form{padding:34px}
  .contact-form input,.contact-form textarea{font-size:16px}
  .contact-form button{min-height:50px}

  .site-footer-scene{min-height:auto;padding:110px var(--pad) 36px}
  .site-footer{grid-template-columns:1.2fr 1fr 1fr;gap:50px 36px;align-self:auto}
  .footer-lead{grid-column:1 / -1}
  .footer-bottom{margin-top:42px}
}

.hero-mobile-logo{display:none}

@media(max-width:700px){
  :root{--pad:20px}
  .header,.header.header-floating{width:calc(100% - 28px)!important}
  .header,.header.header-floating{justify-content:flex-end}
  .header .logo,.header.header-floating .logo{display:none}

  .hero-v2{min-height:max(100svh,700px)!important}
  .hero-v2-inner{
    width:100%;
    min-height:max(100svh,700px);
    padding:100px 20px 48px;
  }
  .hero-v2 h1{
    gap:2px!important;
    margin-bottom:22px!important;
    font-size:clamp(36px,10.7vw,50px)!important;
    line-height:1.02!important;
    letter-spacing:-.05em!important;
  }
  .hero-mobile-logo{
    display:block;
    width:92px;
    height:auto;
    margin:0 auto 24px;
    opacity:0;
    transform:translateY(10px);
    filter:drop-shadow(0 9px 22px rgba(0,0,0,.2));
  }
  .hero-v2.scene-active .hero-mobile-logo{
    animation:efiox-copy-in .7s .08s cubic-bezier(.16,.84,.25,1) forwards;
  }
  .hero-v2-copy{font-size:14px!important;line-height:1.55}
  .hero-v2-actions{width:100%;flex-direction:column;gap:8px}
  .hero-v2-primary{width:min(100%,320px)}
  .hero-v2-secondary{min-height:44px}
  .hero-v2-visual{top:57%;width:126vw;opacity:.14!important}
  .hero-v2-grid{bottom:-8%;height:46%}

  .process{padding:94px 20px 72px!important}
  .process-intro{margin-bottom:34px}
  .process-intro .section-label{font-size:9px!important}
  .process-intro h2{font-size:clamp(36px,10vw,48px);line-height:1.02}
  .process .steps article{
    grid-template-columns:52px minmax(0,1fr);
    column-gap:16px;
    padding:24px 20px;
  }
  .process .step-icon{width:48px;height:48px;box-shadow:0 0 0 6px rgba(31,8,41,.72)!important}
  .process .step-icon svg{width:22px;height:22px}
  .process .steps h3{font-size:18px}
  .process .steps p{font-size:13px;line-height:1.5}

  .services{padding:86px 20px!important}
  .services>.section-intro{margin-bottom:34px;text-align:left}
  .services>.section-intro h2{font-size:clamp(36px,10vw,48px);line-height:1.03}
  .services>.section-intro .intro-copy{font-size:14px}
  .services .service-stage{border-radius:20px}
  .services .automation-panel{
    min-height:300px!important;
    padding:30px 24px!important;
  }
  .automation-status{margin-bottom:32px}
  .automation-heading h3{font-size:40px}
  .automation-simple-flow{margin-top:42px}
  .automation-simple-flow>span{font-size:7px;letter-spacing:.055em}
  .automation-simple-flow>i{margin-inline:6px}
  .services .service-list{padding:12px 20px 22px}
  .services .service-list article{
    grid-template-columns:36px minmax(0,1fr);
    gap:12px;
    padding:19px 0;
  }
  .services .service-list article>span{width:30px;height:30px}
  .services .service-list h3{font-size:18px}
  .services .service-list p{font-size:13px}
  .services .service-list .service-open{display:block;padding:17px}

  .web-section{padding:86px 20px!important}
  .web-heading{margin-bottom:32px}
  .web-heading h2{font-size:clamp(36px,10vw,48px);line-height:1.03}
  .web-card{border-radius:20px}
  .browser-mock{min-height:350px;margin:14px 14px 0}
  .mock-nav{padding:20px}
  .mock-title{padding:72px 20px 16px;font-size:clamp(46px,15vw,64px)}
  .mock-chip{margin:28px 20px}
  .web-copy{padding:34px 24px 38px}
  .web-copy h3{font-size:30px}

  .manifesto{min-height:72svh!important;padding:90px 20px!important}
  .manifesto-copy>p{font-size:13px}
  .manifesto-copy h2{font-size:clamp(37px,10.5vw,48px);line-height:1.03}

  .framework{padding:72px 20px!important}
  .framework-panel{
    min-height:0;
    padding:34px 24px;
    display:block;
    border-radius:20px;
    clip-path:inset(0 round 20px)!important;
  }
  .framework-word{
    max-width:none;
    margin:0 0 34px;
    text-align:left;
    font-size:34px;
  }
  .framework-axis{display:none}
  .framework-items{gap:0}
  .framework-items article{
    padding:22px 0;
    border-top:1px solid rgba(235,211,248,.14);
  }
  .framework-items article.active{
    padding:22px 0;
    border-left:0;
    border-top-color:rgba(67,222,216,.38)!important;
  }
  .framework-items h3{font-size:20px}
  .framework-items p{font-size:13px;line-height:1.55}

  .contact{gap:42px;padding:88px 20px!important}
  .contact-copy h2{font-size:clamp(38px,10vw,50px);line-height:1.02}
  .contact-copy>p{font-size:14px}
  .contact-form{padding:26px 20px;border-radius:20px}
  .field-row{grid-template-columns:1fr;gap:0}
  .contact-form label{margin-bottom:20px}

  .site-footer-scene{padding:90px 20px 28px}
  .site-footer{grid-template-columns:1fr;gap:38px}
  .footer-lead,.footer-bottom{grid-column:1}
  .footer-lead>p{font-size:22px}
  .footer-column a,.footer-column button,.footer-column>span{min-height:32px;font-size:16px}
  .footer-bottom{display:grid;gap:12px;margin-top:28px;font-size:12px}
  .footer-bottom span:nth-child(2),.footer-bottom a{margin:0}
  .legal-dialog{width:calc(100% - 24px);max-height:88svh;padding:24px 20px;border-radius:20px}
  .legal-dialog h2{font-size:34px}
}

@media(max-width:390px){
  .hero-v2 h1{font-size:35px!important}
  .automation-heading h3{font-size:36px}
  .process .steps article{grid-template-columns:1fr}
  .process .step-icon{grid-column:1;grid-row:auto;margin-bottom:18px}
  .process .steps small,.process .steps h3,.process .steps p{grid-column:1}
}

@media(max-width:1024px) and (orientation:landscape) and (max-height:620px){
  .hero-v2,.hero-v2-inner{min-height:680px!important}
  .hero-v2-inner{padding-top:92px}
  .hero-v2-visual{opacity:.1!important}
  .manifesto{min-height:620px!important}
}

@media(hover:none) and (pointer:coarse){
  .service-list article:hover,
  .primary-button:hover,
  .hero-v2-primary:hover,
  .footer-column a:hover,
  .footer-column button:hover{transform:none!important}
  .service-list article:hover{padding-left:0;background:transparent}
}

/* Adaptive performance mode for lower-powered hardware. */
.performance-lite .hero-v2-glow{filter:none}
.performance-lite .hero-v2-paths,
.performance-lite .hero-v2-core{filter:none}
.performance-lite .core-layer,
.performance-lite .hero-v2-node,
.performance-lite .nav-pill,
.performance-lite .header.header-floating,
.performance-lite .legal-dialog::backdrop{
  -webkit-backdrop-filter:none!important;
  backdrop-filter:none!important;
}
.performance-lite .hero-v2-orbit,
.performance-lite .core-layer,
.performance-lite .core-light,
.performance-lite .hero-v2-node i{
  animation:none!important;
}
.performance-lite .reveal{filter:none!important}
.performance-lite .particle-orbit:nth-child(3n){display:none}
.performance-lite .page-shell{box-shadow:none}
.form-honeypot{
  position:absolute!important;
  left:-10000px!important;
  width:1px!important;
  height:1px!important;
  overflow:hidden!important;
}
.contact-form button:disabled{cursor:wait;opacity:.72}
.form-note.error{color:#ffb4c0}

/* Compositor-only hero motion: avoids repainting blurred organic layers. */
.core-layer,
.hero-v2-node{
  -webkit-backdrop-filter:none!important;
  backdrop-filter:none!important;
}
.core-layer{will-change:transform}
.layer-a{animation:hero-layer-drift-a 11s ease-in-out infinite!important}
.layer-b{animation:hero-layer-drift-b 9s ease-in-out infinite reverse!important}
.layer-c{animation:hero-layer-drift-c 7.5s ease-in-out infinite!important}
@keyframes hero-layer-drift-a{
  0%,100%{transform:rotate(0deg) scale(1)}
  50%{transform:rotate(7deg) scale(1.025)}
}
@keyframes hero-layer-drift-b{
  0%,100%{transform:rotate(0deg) scale(1)}
  50%{transform:rotate(-10deg) scale(.975)}
}
@keyframes hero-layer-drift-c{
  0%,100%{transform:rotate(0deg) scale(1)}
  50%{transform:rotate(13deg) scale(1.035)}
}
@media(prefers-reduced-motion:reduce){
  .layer-a,.layer-b,.layer-c{animation:none!important}
}

/* Keep the hero exit on the compositor. Decorative layers are visually static
   for the short page handoff, so the browser only has to move two large groups. */
.hero-v2{
  contain:layout paint;
}
.hero-v2-content,
.hero-v2-visual{
  backface-visibility:hidden;
}
.hero-v2.scene-leaving .hero-v2-content,
.hero-v2.scene-leaving .hero-v2-visual{
  will-change:transform,opacity;
}
.hero-v2-glow,
.hero-v2-paths,
.hero-v2-core,
.flow-pulse{
  filter:none!important;
}
html.is-snapping .hero-v2.scene-leaving .hero-v2-orbit,
html.is-snapping .hero-v2.scene-leaving .core-layer,
html.is-snapping .hero-v2.scene-leaving .core-light,
html.is-snapping .hero-v2.scene-leaving .hero-v2-node i,
html.is-snapping .hero-v2.scene-leaving .hero-v2-scroll span{
  animation-play-state:paused!important;
}
html.is-snapping .hero-v2.scene-leaving .hero-v2-paths,
html.is-snapping .hero-v2.scene-leaving .hero-v2-core,
html.is-snapping .hero-v2.scene-leaving .hero-v2-glow{
  filter:none!important;
}
html.is-snapping .hero-v2.scene-leaving:after{
  opacity:0!important;
}
html.is-snapping .hero-v2.scene-leaving .hero-network-canvas{
  opacity:.42;
  transition:opacity .32s ease;
}

/* Consent and bot protection inside the contact form. */
.contact-form .privacy-consent{
  display:grid;
  margin:2px 0 20px;
  color:#cfc0d6;
  font-size:11px;
  line-height:1.55;
  letter-spacing:0;
  text-transform:none;
}
.privacy-consent input{position:absolute;width:1px!important;height:1px;opacity:0}
.privacy-consent label{
  display:grid;
  grid-template-columns:20px 1fr;
  align-items:start;
  gap:11px;
  margin:0;
  color:inherit;
  font:inherit;
  letter-spacing:0;
  text-transform:none;
  cursor:pointer;
}
.privacy-consent label>span:first-of-type{
  position:relative;
  width:19px;
  height:19px;
  margin-top:1px;
  border:1px solid rgba(235,211,248,.35);
  border-radius:6px;
  background:rgba(255,255,255,.04);
  transition:.25s;
}
.privacy-consent label>span:first-of-type:after{
  content:"";
  position:absolute;
  left:5px;
  top:2px;
  width:5px;
  height:9px;
  border:solid #16031f;
  border-width:0 2px 2px 0;
  opacity:0;
  transform:rotate(45deg) scale(.7);
  transition:.2s;
}
.privacy-consent input:checked+label span:first-of-type{border-color:var(--brand-cyan);background:var(--brand-cyan)}
.privacy-consent input:checked+label span:first-of-type:after{opacity:1;transform:rotate(45deg) scale(1)}
.privacy-consent input:focus-visible+label span:first-of-type{outline:2px solid var(--brand-cyan);outline-offset:3px}
.privacy-consent button{
  display:inline!important;
  width:auto!important;
  justify-self:start;
  margin:4px 0 0 31px;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  color:var(--brand-cyan)!important;
  background:none!important;
  font:inherit;
  text-decoration:underline;
  text-underline-offset:3px;
}
.recaptcha-field{min-height:80px;margin:0 0 18px}
.recaptcha-field>[data-recaptcha-widget]{min-height:0}
.recaptcha-field>p{margin:7px 0 0;color:#a99bad;font-size:10px}
.recaptcha-field.is-ready>p{display:none}
.recaptcha-field.is-error>p{color:#ffb4c0}
.recaptcha-field iframe{max-width:100%}

/* Give the English descender in “grow” enough room without changing SK layout. */
html[lang="en"] .services .section-intro h2 em{
  display:inline-block;
  padding-bottom:.09em;
  line-height:1.04;
}

/* Keep the web showcase fully visible on common laptop-height displays. */
@media(min-width:1025px) and (max-height:1050px){
  .web-section{
    height:100svh!important;
    min-height:650px!important;
    padding:76px var(--pad) 24px!important;
    overflow:hidden;
  }
  .web-heading{
    margin:0 auto 20px;
  }
  .web-heading .section-label{margin-bottom:10px}
  .web-heading h2{
    margin-bottom:0;
    font-size:clamp(42px,4vw,58px);
    line-height:.96;
  }
  .web-card{
    height:clamp(430px,calc(100svh - 240px),550px);
    min-height:0;
  }
  .browser-mock{
    height:calc(100% - 36px);
    min-height:0;
    margin:18px 0 18px 18px;
  }
  .mock-nav{padding:20px 24px}
  .mock-title{
    padding:clamp(48px,7vh,70px) 26px 14px;
    font-size:clamp(48px,4.5vw,68px);
  }
  .mock-chip{margin:24px 26px}
  .web-copy{padding:30px 42px}
  .web-copy h3{font-size:31px;margin-bottom:14px}
  .web-copy p{font-size:14px;line-height:1.55}
  .web-copy ul{margin:16px 0;padding:12px 0}
  .web-copy li{padding:7px 0}
}

/* Stable framework -> manifesto reverse handoff without a one-frame reset. */
html.reverse-manifesto-transition .framework.scene-leaving .framework-panel{
  opacity:1!important;
  clip-path:inset(0 round 30px)!important;
  transform:none!important;
  animation:none!important;
  transition:none!important;
}
html.reverse-manifesto-transition .framework.scene-leaving .framework-word,
html.reverse-manifesto-transition .framework.scene-leaving .framework-items article,
html.reverse-manifesto-transition .framework.scene-leaving .framework-axis i{
  opacity:1!important;
  transform:none!important;
  animation:none!important;
  transition:none!important;
}
html.reverse-manifesto-transition .framework.scene-leaving .framework-axis:before{
  transform:scaleY(1)!important;
  animation:none!important;
  transition:none!important;
}
html.reverse-manifesto-transition .manifesto-copy.is-carrying>p,
html.reverse-manifesto-transition .manifesto-copy.is-carrying h2 span,
html.reverse-manifesto-transition .manifesto-copy.is-carrying h2 em{
  opacity:1!important;
  visibility:visible!important;
  transform:none!important;
  filter:none!important;
  animation:none!important;
  transition:none!important;
}
html.reverse-manifesto-transition .manifesto-copy.is-carrying h2{
  opacity:1!important;
  clip-path:inset(0)!important;
  animation:none!important;
  transition:none!important;
}

/* Contact form delivery feedback */
.form-toast{
  position:fixed;
  z-index:190;
  top:clamp(18px,3vw,34px);
  right:clamp(16px,3vw,38px);
  display:grid;
  grid-template-columns:40px minmax(0,1fr);
  gap:13px;
  align-items:center;
  width:min(420px,calc(100% - 32px));
  padding:15px 18px;
  overflow:hidden;
  color:#fff;
  background:linear-gradient(135deg,rgba(28,6,38,.97),rgba(48,8,64,.97));
  border:1px solid rgba(255,255,255,.16);
  border-radius:17px;
  box-shadow:0 18px 55px rgba(20,3,29,.28);
  opacity:0;
  pointer-events:none;
  transform:translate3d(0,-16px,0) scale(.98);
  transition:opacity .28s ease,transform .46s cubic-bezier(.22,1,.36,1);
  will-change:transform,opacity;
}
.form-toast.is-visible{
  opacity:1;
  transform:translate3d(0,0,0) scale(1);
}
.form-toast>span{
  display:grid;
  place-items:center;
  width:40px;
  height:40px;
  border:1px solid rgba(255,255,255,.2);
  border-radius:50%;
  font-size:20px;
  font-weight:700;
}
.form-toast>span::before{content:"✓"}
.form-toast.is-success>span{
  color:#0e302d;
  background:linear-gradient(135deg,#b6ff19,#3de0d5);
  box-shadow:0 0 24px rgba(61,224,213,.22);
}
.form-toast.is-error>span{
  color:#fff;
  background:linear-gradient(135deg,#ad49e1,#7a1cac);
}
.form-toast.is-error>span::before{content:"×"}
.form-toast strong{
  display:block;
  margin-bottom:3px;
  font-size:14px;
  line-height:1.2;
  letter-spacing:.01em;
}
.form-toast p{
  margin:0;
  color:rgba(255,255,255,.72);
  font-size:12px;
  line-height:1.45;
}

@media(max-width:520px){
  .form-toast{
    top:12px;
    right:12px;
    width:calc(100% - 24px);
    padding:13px 15px;
  }
}

@media(prefers-reduced-motion:reduce){
  .form-toast{transition:none}
}

/* Stable manifesto reveal on touch devices.
   The desktop fixed-position headline handoff is intentionally disabled here. */
@media(max-width:1024px){
  html.carrying-manifesto,
  html.reverse-manifesto-transition{
    overflow:auto!important;
  }
  .manifesto.carry-active{overflow:hidden!important}
  .manifesto-copy.is-carrying,
  .manifesto-copy.is-carrying.parked-framework,
  .manifesto-copy.is-carrying.returning-manifesto{
    position:relative!important;
    inset:auto!important;
    width:100%!important;
    padding:0!important;
    opacity:1!important;
    visibility:visible!important;
    transform:none!important;
    animation:none!important;
  }
  .manifesto.scene-active .manifesto-copy>p,
  .manifesto.scene-active .manifesto-copy h2 span,
  .manifesto.scene-active .manifesto-copy h2 em{
    visibility:visible!important;
    animation-name:manifesto-mobile-line!important;
    animation-duration:.72s!important;
    animation-timing-function:cubic-bezier(.16,.84,.25,1)!important;
    animation-fill-mode:both!important;
  }
  .manifesto.scene-active .manifesto-copy>p{animation-delay:.04s!important}
  .manifesto.scene-active .manifesto-copy h2 span{animation-delay:.13s!important}
  .manifesto.scene-active .manifesto-copy h2 em{animation-delay:.24s!important}
}

@keyframes manifesto-mobile-line{
  from{opacity:0;transform:translate3d(0,20px,0)}
  to{opacity:1;transform:translate3d(0,0,0)}
}

.form-note:empty{display:none}

@media(max-width:700px){
  .scroll-progress{display:none!important}
}

.contact-copy h2{
  line-height:1.06;
  padding-bottom:.08em;
}

/* Compact desktop viewport: 16-inch laptops at 125–150% OS/browser scaling. */
@media (min-width:1025px) and (max-height:900px){
  .header{
    top:10px;
    height:58px;
  }
  .header-logo-img{max-height:42px}
  .nav-pill a{padding:8px 13px}
  .header-cta{padding:10px 15px}

  .hero-v2{
    height:100svh!important;
    min-height:0!important;
  }
  .hero-v2-inner{
    height:100%;
    padding:76px 0 30px;
    align-items:center;
  }
  .hero-v2-content{
    align-self:center;
  }
  .hero-v2 h1{
    margin-bottom:18px!important;
    font-size:clamp(46px,4.35vw,62px)!important;
    line-height:.96!important;
  }
  .hero-v2 h1 span,.hero-v2 h1 em{
    padding-bottom:.09em;
  }
  .hero-v2-copy{
    max-width:540px;
    margin-bottom:21px!important;
    font-size:13px!important;
    line-height:1.48;
  }
  .hero-v2-actions{gap:20px}
  .hero-v2-primary{height:48px}
  .hero-v2-visual{width:min(48vw,590px)}
  .hero-v2-scroll{bottom:14px}

  .process{
    height:100svh;
    min-height:680px;
    padding:78px var(--pad) 22px;
  }
  .process-intro{margin-bottom:clamp(52px,10vh,86px)}
  .process-intro .section-label{margin-bottom:6px}
  .process-intro h2{
    margin-bottom:0;
    font-size:clamp(42px,4vw,54px);
    line-height:.94;
  }
  .process .steps{
    min-height:0;
    height:318px;
  }
  .process .step-icon{
    width:58px;
    height:58px;
    margin-bottom:20px;
  }

  .services{
    height:100svh;
    min-height:680px;
    padding:76px var(--pad) 22px;
  }
  .services>.section-intro{margin-bottom:12px}
  .services>.section-intro h2{
    font-size:38px;
    line-height:.94;
  }
  .services .service-stage{
    height:440px;
    min-height:0;
  }
  .services .service-list{
    padding:16px 30px 18px!important;
  }
  .services .service-list article{
    padding:6px 0!important;
  }
  .services .service-list h3{
    margin-bottom:4px;
    font-size:19px;
    line-height:1.12;
  }
  .services .service-list p{
    font-size:12px;
    line-height:1.35;
  }
  .services .service-list .service-open{
    min-height:0;
    margin-top:5px;
    padding:9px 12px!important;
  }
  .services .service-open a{
    margin-top:0;
  }
  /* A 2K notebook at 175–200% OS scaling exposes a wide but short CSS
     viewport. Keep the right column inside the clipped card at every frame:
     the stage itself still reveals, but its content never travels below it. */
  .services .service-list.reveal{
    opacity:1!important;
    transform:none!important;
    filter:none!important;
    transition:opacity .35s ease!important;
  }
  .services .service-list .service-open,
  .services.scene-active .service-list .service-open{
    transform:none!important;
    filter:none!important;
    clip-path:inset(0)!important;
  }

  /* On low desktop viewports the heading must never travel through the panel. */
  .framework-heading{
    transform:none!important;
    opacity:1;
  }
  .framework.scene-active .framework-heading{
    animation:compact-framework-heading-in .55s .04s cubic-bezier(.16,.84,.25,1) both!important;
  }
  .framework.scene-active .framework-panel{
    animation-delay:.2s!important;
  }

  .web-section{
    height:100svh!important;
    min-height:680px!important;
    padding:78px var(--pad) 20px!important;
  }
  .web-heading{margin-bottom:12px}
  .web-heading .section-label{margin-bottom:5px}
  .web-heading h2{
    font-size:44px;
    line-height:.94;
  }
  .web-card{
    height:calc(100svh - 224px);
    min-height:468px;
  }
  .browser-mock{
    height:calc(100% - 28px);
    margin:14px 0 14px 14px;
  }
  .mock-nav{padding:15px 22px}
  .mock-title{
    padding:42px 24px 10px;
    font-size:54px;
  }
  .mock-chip{margin:18px 24px}
  .web-copy{padding:24px 36px}
  .web-copy h3{font-size:28px;margin-bottom:10px}
  .web-copy p{font-size:13px;line-height:1.45}
  .web-copy ul{margin:10px 0;padding:8px 0}
  .web-copy li{padding:5px 0}
  .web-copy a{padding:10px 0}

  .contact{
    height:100svh;
    min-height:680px;
    gap:42px;
    padding:82px var(--pad) 18px;
  }
  .contact-copy h2{
    margin-bottom:16px;
    font-size:clamp(44px,4.25vw,58px);
  }
  .contact-copy p{margin-bottom:12px}
  .contact-copy>a{margin-top:12px}
  .contact-form{
    padding:27px 32px;
    border-radius:20px;
  }
  .contact-form label{margin-bottom:14px}
  .contact-form textarea{min-height:70px}
  .privacy-consent{margin-bottom:10px}
  .recaptcha-field{min-height:68px;margin-bottom:10px}
  .contact-form button{padding:13px 18px}

  .cookie-banner{
    right:18px;
    bottom:18px;
    gap:12px 15px;
    width:min(calc(100% - 36px),520px);
    padding:18px;
    border-radius:18px;
  }
  .cookie-banner h2{margin-bottom:5px;font-size:22px}
  .cookie-banner-copy>p:last-child{font-size:12px;line-height:1.4}
  .cookie-button{min-height:40px}
}

@keyframes compact-framework-heading-in{
  from{opacity:0;transform:translate3d(0,14px,0)}
  to{opacity:1;transform:translate3d(0,0,0)}
}

/* Universal safety: never render the fixed duplicate over the framework. */
@media (max-width:1024px), (hover:none) and (pointer:coarse){
  html.carrying-manifesto .manifesto-copy.is-carrying{
    opacity:0!important;
    visibility:hidden!important;
    pointer-events:none!important;
  }
  html.carrying-manifesto .framework-heading{
    visibility:visible!important;
  }
}

@media (min-width:1025px) and (max-height:900px){
  .framework{
    padding:88px var(--pad) 24px;
  }
}

/* The destination headline reveals in place on every desktop height. */
.framework-heading{
  transform:none!important;
}
.framework.scene-active .framework-heading{
  animation:compact-framework-heading-in .62s .05s cubic-bezier(.16,.84,.25,1) both!important;
}

/* Landscape tablets can be wider than the usual tablet breakpoint. */
@media (hover:none) and (pointer:coarse) and (min-width:701px){
  .services{
    height:auto!important;
    min-height:100svh!important;
    overflow:visible!important;
    display:block!important;
    padding:100px var(--pad)!important;
  }
  .services>.section-intro{
    margin:0 auto 42px!important;
  }
  .services .service-stage{
    width:min(100%,1230px);
    height:auto!important;
    min-height:0!important;
    overflow:hidden;
  }
  .services .automation-panel{
    height:auto!important;
    min-height:520px!important;
  }
  .services .service-list{
    height:auto!important;
    min-height:520px;
  }
  .services .service-list article{
    opacity:1!important;
    transform:none!important;
    filter:none!important;
    clip-path:inset(0)!important;
  }

  .manifesto{
    height:auto!important;
    min-height:100svh!important;
  }
  .framework{
    height:auto!important;
    min-height:100svh!important;
    padding:100px var(--pad)!important;
    display:flex!important;
    align-items:center;
  }
  .framework-heading{
    display:none!important;
  }
  .framework-panel{
    width:min(100%,1230px);
    margin:auto;
    transform:none!important;
    clip-path:inset(0 round 30px)!important;
  }
  .framework.scene-active .framework-panel{
    animation:none!important;
  }
  .framework-word,
  .framework-axis i,
  .framework-items article{
    opacity:1!important;
    transform:none!important;
  }
  .framework-axis:before{transform:scaleY(1)!important}
}

/* Use the additional vertical room on tall displays without affecting laptops. */
@media (min-width:1025px) and (min-height:1000px){
  .process-intro{margin-bottom:96px}
}

/* Full-HD laptops rendered as ~1280 × 600 CSS px at 150% Windows scaling. */
@media (min-width:1025px) and (max-height:680px){
  .header{
    top:8px;
    height:54px;
  }
  .header-logo-img{max-height:38px}
  .nav-pill a{padding:7px 12px}
  .header-cta{padding:9px 14px}
  .header.header-floating .logo{
    visibility:hidden;
    opacity:0;
    pointer-events:none;
  }

  main>section{
    height:100svh;
    min-height:0!important;
  }

  .hero-v2{
    height:100svh!important;
    min-height:0!important;
  }
  .hero-v2-inner{
    height:100%;
    padding:68px 0 22px;
  }
  .hero-v2 h1{
    margin-bottom:14px!important;
    font-size:clamp(44px,4.2vw,54px)!important;
    line-height:.96!important;
  }
  .hero-v2 h1 span,.hero-v2 h1 em{padding-bottom:.08em}
  .hero-v2-copy{
    max-width:520px;
    margin-bottom:17px!important;
    font-size:13px!important;
    line-height:1.45;
  }
  .hero-v2-actions{gap:18px}
  .hero-v2-primary{height:48px}
  .hero-v2-visual{width:min(50vw,610px)}
  .hero-v2-scroll{bottom:12px}

  .process{
    height:100svh;
    min-height:0!important;
    padding:94px var(--pad) 10px;
  }
  .process-intro{margin-bottom:clamp(24px,5vh,32px)}
  .process-intro .section-label{margin-bottom:3px}
  .process-intro h2{
    font-size:40px;
    line-height:.92;
  }
  .process .steps{
    height:290px;
    min-height:0;
  }
  .process .step-icon{
    width:54px;
    height:54px;
    margin-bottom:16px;
  }
  .process .steps h3{font-size:18px}
  .process .steps p{font-size:12px;line-height:1.45}

  .services{
    height:100svh;
    min-height:0!important;
    padding:94px var(--pad) 8px;
  }
  .services>.section-intro{margin-bottom:8px}
  .services .section-label{margin-bottom:3px}
  .services>.section-intro h2{
    margin-bottom:0;
    font-size:34px;
    line-height:.92;
  }
  .services>.section-intro .intro-copy{display:none}
  .services .service-stage{
    height:360px;
    min-height:0;
  }
  .services .automation-panel{padding:24px!important}
  .automation-status{margin-bottom:20px}
  .automation-heading h3{font-size:40px}
  .automation-simple-flow{margin-top:34px}
  .services .service-list{padding:10px 28px}
  .services .service-list article{padding:6px 0}
  .services .service-list h3{font-size:17px}
  .services .service-list p{font-size:11px;line-height:1.3}
  .services .service-list .service-open{padding:10px 12px}

  .web-section{
    height:100svh!important;
    min-height:0!important;
    padding:64px var(--pad) 12px!important;
  }
  .web-heading{margin-bottom:8px}
  .web-heading .section-label{margin-bottom:2px}
  .web-heading h2{
    font-size:38px;
    line-height:.92;
  }
  .web-card{
    height:calc(100svh - 190px);
    min-height:0;
  }
  .browser-mock{
    height:calc(100% - 20px);
    margin:10px 0 10px 10px;
  }
  .browser-bar{height:34px}
  .mock-nav{padding:12px 18px}
  .mock-title{
    padding:30px 20px 8px;
    font-size:48px;
  }
  .mock-chip{
    width:52px;
    height:52px;
    margin:14px 20px;
  }
  .web-copy{padding:18px 30px}
  .web-copy h3{font-size:25px}
  .web-copy p{font-size:12px;line-height:1.4}
  .web-copy ul{margin:7px 0;padding:5px 0}
  .web-copy li{padding:4px 0;font-size:12px}
  .web-copy a{padding:7px 0}

  .manifesto{
    height:100svh!important;
    min-height:0!important;
    padding:64px var(--pad)!important;
  }
  .manifesto-copy h2,
  .manifesto-copy.is-carrying h2,
  .framework-heading h2{
    font-size:42px!important;
    line-height:.94!important;
    transition:none!important;
  }

  .framework{
    height:100svh;
    min-height:0!important;
    padding:94px var(--pad) 12px;
  }
  .framework-heading{margin-bottom:12px}
  .framework-heading>p{display:none}
  .framework-panel{
    min-height:0;
    height:310px;
    padding:22px 40px;
  }
  .framework-items{gap:20px}
  .manifesto-copy.is-carrying.parked-framework{
    top:100px;
  }
  @keyframes carry-headline-up{
    0%{top:50%;transform:translateY(-50%)}
    100%{top:100px;transform:translateY(0)}
  }
  @keyframes carry-headline-down{
    0%{top:100px;transform:translateY(0)}
    100%{top:50%;transform:translateY(-50%)}
  }

  .contact{
    height:100svh;
    min-height:0!important;
    gap:34px;
    padding:76px var(--pad) 6px;
  }
  .contact-copy h2{
    margin-bottom:10px;
    font-size:clamp(40px,4vw,50px);
  }
  .contact-copy p{font-size:14px;line-height:1.45}
  .contact-copy>a{margin-top:8px}
  .contact-form{
    padding:14px 24px;
    border-radius:18px;
  }
  .contact-form label{margin-bottom:9px}
  .contact-form input,.contact-form textarea{
    margin-top:4px;
    padding:7px 0;
  }
  .contact-form textarea{min-height:44px}
  .privacy-consent{margin-bottom:6px}
  .privacy-consent button{margin-top:2px}
  .recaptcha-field{
    min-height:52px;
    margin-bottom:6px;
    transform:scale(.88);
    transform-origin:left center;
  }
  .contact-form button{padding:11px 16px}

  .cookie-banner{
    width:min(calc(100% - 28px),470px);
    padding:14px 16px;
    gap:9px 12px;
  }
  .cookie-banner-mark{width:28px}
  .cookie-banner h2{font-size:19px}
  .cookie-banner-copy>p:last-child{font-size:11px}
  .cookie-button{min-height:36px}
}

/* Touch tablets scroll naturally. Keep every section ready before it enters the
   viewport so the user can never stop in an empty transition frame. */
@media (hover:none) and (pointer:coarse){
  html{
    scroll-snap-type:none!important;
    overscroll-behavior-y:auto;
  }
  main>section{
    scroll-snap-align:none!important;
    scroll-snap-stop:normal!important;
  }

  .reveal,
  .process-intro .section-label,
  .process-intro h2 span,
  .process-intro h2 em,
  .process .steps,
  .process .steps article,
  .services .section-label,
  .services .section-intro h2,
  .services .intro-copy,
  .services .service-stage,
  .services .service-list article,
  .web-heading,
  .web-heading h2,
  .web-card,
  .manifesto-copy,
  .manifesto-copy h2,
  .manifesto-copy>p,
  .manifesto-copy h2 span,
  .manifesto-copy h2 em,
  .framework-panel,
  .framework-word,
  .framework-axis i,
  .framework-items article,
  .contact-copy,
  .contact-copy h2,
  .contact-form{
    opacity:1!important;
    visibility:visible!important;
    transform:none!important;
    filter:none!important;
    clip-path:inset(0)!important;
    animation:none!important;
    transition:none!important;
  }

  .manifesto{
    height:auto!important;
    min-height:0!important;
    padding:clamp(112px,14vh,150px) var(--pad) clamp(64px,8vh,90px)!important;
  }
  .framework{
    height:auto!important;
    min-height:0!important;
    padding:clamp(38px,5vh,58px) var(--pad) clamp(96px,12vh,132px)!important;
  }
  .framework-panel{
    margin:0 auto!important;
  }
}

/* Mobile/tablet framework dividers use one shared full-width geometry.
   The active state changes content emphasis, never the separator length. */
@media (max-width:700px){
  .framework-items{
    width:100%;
  }
  .framework-items article,
  .framework-items article.active{
    position:relative;
    width:100%;
    max-width:none;
    margin:0!important;
    padding:22px 0!important;
    border:0!important;
  }
  .framework-items article::before{
    content:"";
    position:absolute;
    top:0;
    right:0;
    left:0;
    height:1px;
    background:rgba(235,211,248,.2);
    pointer-events:none;
  }
}

/* Both DOM copies of the manifesto title must share the same desktop metric.
   Contact -> framework shows .framework-heading; framework -> manifesto shows
   .manifesto-copy, so different base sizes caused a visible jump. */
.framework-heading h2{
  font-size:clamp(43px,5.2vw,76px);
  line-height:.98;
  letter-spacing:-.055em;
}

/* Laptop displays have desktop width but considerably less vertical room.
   Use one restrained headline size for the whole manifesto handoff. */
@media (min-width:1025px) and (min-height:681px) and (max-height:900px) and (hover:hover) and (pointer:fine){
  .nav{gap:10px}
  .nav-pill a{padding:7px 10px;font-size:12px}
  .header-cta{padding:9px 13px;font-size:12px}
  .manifesto-copy h2,
  .manifesto-copy.is-carrying h2,
  .manifesto-copy.is-carrying.parked-framework h2,
  .manifesto-copy.is-carrying.returning-manifesto h2,
  .framework-heading h2{
    font-size:clamp(52px,7.5vh,62px)!important;
    line-height:1!important;
    transform:none!important;
    scale:none!important;
    transition:none!important;
  }
  .framework{
    padding-top:94px!important;
  }
  .framework-heading{
    margin-bottom:18px!important;
  }
}

/* Ultra-wide displays at 175–200% OS scaling expose a wide but very short
   CSS viewport. Fit the complete services card, including the final CTA. */
@media (min-width:1025px) and (max-height:580px){
  .services{
    height:100svh!important;
    min-height:0!important;
    padding:70px var(--pad) 7px!important;
    overflow:hidden!important;
  }
  .services>.section-intro{
    margin-bottom:5px!important;
  }
  .services .section-label{
    margin-bottom:1px!important;
    font-size:9px;
  }
  .services>.section-intro h2{
    margin-bottom:0!important;
    font-size:clamp(27px,2.25vw,32px)!important;
    line-height:.9!important;
  }
  .services .service-stage{
    height:calc(100svh - 148px)!important;
    min-height:0!important;
  }
  .services .automation-panel{
    min-height:0!important;
    padding:18px 24px!important;
  }
  .services .automation-status{margin-bottom:13px!important}
  .services .automation-heading h3{
    font-size:clamp(30px,3vw,38px)!important;
    line-height:.94!important;
  }
  .services .automation-simple-flow{margin-top:22px!important}
  .services .service-list{
    height:100%!important;
    min-height:0!important;
    padding:7px 24px!important;
    display:grid!important;
    grid-template-rows:repeat(4,minmax(0,1fr)) auto;
  }
  .services .service-list article{
    min-height:0!important;
    padding:3px 0!important;
    grid-template-columns:28px minmax(0,1fr)!important;
    gap:11px!important;
    align-items:center;
  }
  .services .service-list article>span{
    width:25px!important;
    height:25px!important;
    font-size:8px!important;
  }
  .services .service-list h3{
    margin-bottom:2px!important;
    font-size:15px!important;
    line-height:1.05!important;
  }
  .services .service-list p{
    font-size:10px!important;
    line-height:1.22!important;
  }
  .services .service-list .service-open{
    min-height:50px!important;
    padding:7px 10px!important;
  }
  .services .service-open h3{font-size:15px!important}
  .services .service-open p{padding-right:120px}
  .services .service-open a{font-size:10px}
}

/* The manifesto headline only changes position during the desktop handoff.
   Its type size is intentionally invariant, independent of scroll direction. */
.manifesto-copy.is-carrying h2,
.manifesto-copy.is-carrying.parked-framework h2,
.manifesto-copy.is-carrying.returning-manifesto h2{
  transform:none!important;
  transform-origin:center!important;
}

/* Tablet/mobile process rows have a wide text column. Do not retain the
   290px desktop card measure, which caused unnecessarily early wrapping. */
@media (max-width:1024px){
  .process .steps p{
    width:100%;
    max-width:none!important;
    margin:0!important;
  }
}

/* Wide tablets: one stable headline metric in every scroll state, with enough
   room below the persistent navigation and above the framework panel. */
@media (hover:none) and (pointer:coarse) and (min-width:701px){
  .manifesto{
    scroll-margin-top:88px;
    padding-top:clamp(150px,18vh,190px)!important;
    padding-bottom:clamp(72px,9vh,100px)!important;
  }
  .manifesto-copy{
    width:100%!important;
    max-width:1040px;
    margin-inline:auto;
  }
  .manifesto-copy>p{
    margin-bottom:14px!important;
  }
  .manifesto-copy h2,
  .manifesto-copy.is-carrying h2,
  .manifesto-copy.is-carrying.parked-framework h2,
  .manifesto-copy.is-carrying.returning-manifesto h2{
    width:100%!important;
    max-width:1040px;
    margin-inline:auto!important;
    font-size:clamp(44px,min(5.5vw,7vh),56px)!important;
    line-height:1.02!important;
    letter-spacing:-.052em!important;
    transform:none!important;
    scale:none!important;
    animation:none!important;
    transition:none!important;
  }
}

/* A wide touch tablet must never inherit the scaled desktop carry headline.
   Keep the larger tablet title identical in both scroll directions. */
@media (hover:none) and (pointer:coarse) and (min-width:701px){
  .manifesto{
    padding-bottom:0!important;
  }
  .framework{
    padding-top:14px!important;
  }
  .manifesto-copy,
  .manifesto-copy.is-carrying,
  .manifesto-copy.is-carrying.parked-framework,
  .manifesto-copy.is-carrying.returning-manifesto{
    position:relative!important;
    inset:auto!important;
    width:100%!important;
    transform:none!important;
    transform-origin:center!important;
  }
  .manifesto-copy h2,
  .manifesto-copy.is-carrying h2{
    font-size:clamp(44px,7vh,56px)!important;
    line-height:1.02!important;
    transform:none!important;
    transform-origin:center!important;
    animation:none!important;
    transition:none!important;
  }
}
