/* GS SUPPORT / V2 — Motion language
   This layer contains all additional animation and progressive enhancements.
   Existing layout and brand tokens remain in tailwind.css and effects.css.
   All motion is disabled for prefers-reduced-motion and heavy effects are desktop-only. */

/* 01 / Hero: staggered cinematic typography, atmospheric lighting, orbital movements */
.hero{isolation:isolate}
.hero-light-streak{position:absolute;inset:0;pointer-events:none;z-index:0;background:linear-gradient(111deg,transparent 30%,rgba(155,48,55,.04) 42%,rgba(221,77,83,.14) 49%,transparent 60%);transform:translate3d(-110%,0,0) skewX(-14deg);animation:hero-beam 11s 2.5s ease-in-out infinite}
.hero-glint{position:absolute;right:14%;top:15%;height:700px;width:700px;pointer-events:none;border-radius:50%;background:radial-gradient(circle,rgba(174,58,66,.22),rgba(150,32,42,.025) 48%,transparent 67%);filter:blur(9px);opacity:.75;animation:glint-breathe 9s ease-in-out infinite alternate}
.hero-title .hero-line{display:block;overflow:hidden;padding-bottom:.07em;margin-bottom:-.07em;line-height:1.19;white-space:nowrap}
.hero-title .hero-line>span{display:inline-block;transform:translate3d(0,120%,0);animation:line-rise 1.22s cubic-bezier(.17,1,.3,1) forwards}
.hero-title .hero-line:nth-child(1)>span{animation-delay:.24s}
.hero-title .hero-line:nth-child(2)>span{animation-delay:.40s}
.hero-title .hero-line:nth-child(3)>span{animation-delay:.57s}
.hero-art{will-change:transform}
.orbital-arc{position:absolute;pointer-events:none;inset:11%;border-radius:50%;border:1px dashed rgba(225,98,102,.15);animation:slow-rotate 65s linear infinite}
.orbital-arc-a:before,.orbital-arc-b:before{content:'';position:absolute;top:16%;left:16%;height:7px;width:7px;border-radius:50%;background:#dd7575;box-shadow:0 0 18px #db545e}
.orbital-arc-b{inset:19%;border:1px solid rgba(194,78,85,.11);animation-duration:48s;animation-direction:reverse}
.orbital-arc-b:before{height:5px;width:5px;background:#e8b9b9}
.hero-art .orbit-img{animation:orbit-breathe 7s ease-in-out infinite alternate,slow-rotate 140s linear infinite}
.hero-foot .scroll-line i{animation:scroll-cue 2.2s ease-in-out infinite}
.hero .eyebrow-pill{position:relative;overflow:hidden}
.hero .eyebrow-pill:after{content:'';position:absolute;inset:0;width:42%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.12),transparent);transform:skewX(-18deg) translateX(-300%);animation:badge-shimmer 7.8s 2.5s infinite}
@keyframes line-rise{to{transform:translate3d(0,0,0)}}
@keyframes slow-rotate{to{transform:rotate(360deg)}}
@keyframes glint-breathe{to{transform:translate3d(-50px,30px,0) scale(1.17);opacity:.35}}
@keyframes hero-beam{0%,19%{transform:translate3d(-110%,0,0) skewX(-14deg)}42%,100%{transform:translate3d(125%,0,0) skewX(-14deg)}}
@keyframes scroll-cue{0%{transform:translateY(-100%)}70%,100%{transform:translateY(150%)}}
@keyframes badge-shimmer{0%,76%{transform:translateX(-320%) skewX(-18deg)}95%,100%{transform:translateX(530%) skewX(-18deg)}}

/* 02 / New motion ticker. Repeated content is visual only, accessible label on wrapper. */
.motion-marquee{height:78px;display:flex;align-items:center;overflow:hidden;background:#7b2025;color:#f6e9e7;border-top:1px solid rgba(255,255,255,.09);border-bottom:1px solid rgba(255,255,255,.09);position:relative;z-index:2}
.motion-marquee:before,.motion-marquee:after{content:'';position:absolute;top:0;bottom:0;width:110px;z-index:2;pointer-events:none}
.motion-marquee:before{left:0;background:linear-gradient(90deg,#7b2025,transparent)}
.motion-marquee:after{right:0;background:linear-gradient(-90deg,#7b2025,transparent)}
.motion-marquee-track{display:flex;align-items:center;flex:0 0 auto;width:max-content;white-space:nowrap;animation:marquee-flow 32s linear infinite}
.motion-marquee-track span{display:inline-block;padding:0 28px;font:800 clamp(17px,2vw,25px)/1 'Manrope',sans-serif;letter-spacing:-.05em}
.motion-marquee-track b{font-size:19px;color:#e8a6a3;font-weight:400;padding-inline:20px}
@keyframes marquee-flow{to{transform:translateX(-50%)}}

/* 03 / About: controlled counters + editorial underline */
.about-heading .display-heading span{position:relative}
.about-heading .display-heading span:after{content:'';height:3px;width:0;position:absolute;left:0;bottom:-8px;border-radius:5px;background:#aa4045;transition:width 1.6s .2s cubic-bezier(.12,.74,.14,1)}
.about-heading.visible .display-heading span:after{width:95%}
.stat-tile{position:relative;overflow:hidden;transition:background .35s ease}
.stat-tile:before{content:'';position:absolute;left:0;bottom:0;height:3px;width:0;background:#a33d44;transition:width 1s cubic-bezier(.2,.7,.2,1)}
.about-stat-grid.visible .stat-tile:before{width:100%}
.about-stat-grid.visible .stat-tile:nth-child(2):before{transition-delay:.16s}
.about-stat-grid.visible .stat-tile:nth-child(3):before{transition-delay:.32s}
.about-stat-grid.visible .stat-tile:nth-child(4):before{transition-delay:.48s}
.stat-tile .count-number{color:#7d2a31}
.stat-tile:hover{background:rgba(125,42,49,.045)}
.stat-tile>strong{font-variant-numeric:tabular-nums}

/* 04 / Solutions: image-shutter + staggered content on deliberate tab changes */
.pillar-feature{position:relative;isolation:isolate}
.pillar-switch-overlay{position:absolute;inset:0;background:linear-gradient(110deg,transparent,rgba(205,78,85,.23),transparent);z-index:5;pointer-events:none;opacity:0;transform:translateX(-100%)}
.pillar-feature.switch-in .pillar-switch-overlay{animation:pillar-wipe .75s cubic-bezier(.22,.82,.29,1) both}
.pillar-feature.switch-in .pillar-photo{animation:photo-appear .76s cubic-bezier(.19,1,.22,1) both}
.pillar-feature.switch-in .pillar-content>*{animation:content-stagger .55s both}
.pillar-feature.switch-in .pillar-content>*:nth-child(1){animation-delay:.09s}
.pillar-feature.switch-in .pillar-content>*:nth-child(2){animation-delay:.15s}
.pillar-feature.switch-in .pillar-content>*:nth-child(3){animation-delay:.23s}
.pillar-feature.switch-in .pillar-content>*:nth-child(4){animation-delay:.30s}
.pillar-feature.switch-in .pillar-content>*:nth-child(5){animation-delay:.36s}
.pillar-tab{position:relative;overflow:hidden}
.pillar-tab:after{content:'';position:absolute;bottom:0;left:0;width:100%;height:1px;background:linear-gradient(90deg,transparent,#c65f64,transparent);transform:translateX(-100%);transition:transform .5s ease}
.pillar-tab:hover:after,.pillar-tab.active:after{transform:translateX(0)}
.pillar-tab .tab-arrow{transition:transform .36s ease,color .3s}
.pillar-tab:hover .tab-arrow,.pillar-tab.active .tab-arrow{transform:rotate(45deg) translate(2px,-2px)}
@keyframes pillar-wipe{0%{transform:translateX(-100%);opacity:0}24%{opacity:1}100%{transform:translateX(100%);opacity:0}}
@keyframes photo-appear{from{filter:brightness(.5);background-size:110%}to{filter:brightness(1);background-size:cover}}
@keyframes content-stagger{from{opacity:0;transform:translate3d(0,17px,0)}to{opacity:1;transform:translate3d(0,0,0)}}

/* 05 / Capabilities: individual scroll stagger + glowing pointer spotlight */
.cap-grid .cap-card.reveal:not(.visible){transform:translateY(46px) scale(.965);filter:blur(5px)}
.cap-grid .cap-card.reveal.visible{transform:translateY(0) scale(1);filter:blur(0)}
.cap-grid .cap-card:nth-child(2){transition-delay:.09s}
.cap-grid .cap-card:nth-child(3){transition-delay:.17s}
.cap-grid .cap-card:nth-child(4){transition-delay:.25s}
.cap-card{isolation:isolate;transition:box-shadow .4s,transform .55s cubic-bezier(.2,.8,.2,1),opacity .75s,filter .75s}
.cap-card::after{content:'';pointer-events:none;position:absolute;inset:0;border-radius:inherit;background:radial-gradient(280px circle at var(--glow-x,50%) var(--glow-y,50%),rgba(255,255,255,.21),transparent 65%);opacity:0;z-index:4;transition:opacity .4s}
.cap-card:hover:after{opacity:1}
.cap-card:hover{box-shadow:0 24px 55px rgba(83,24,30,.12)}
.cap-card-photo:hover .cap-photo{transform:scale(1.10)}
.cap-card .cap-icon{transition:transform .45s cubic-bezier(.2,.8,.2,1)}
.cap-card:hover .cap-icon{transform:translateY(-6px) rotate(-7deg)}
.cap-shield-graphic{transition:transform .65s cubic-bezier(.2,.8,.2,1)}
.cap-card:hover .cap-shield-graphic{transform:scale(1.07) rotate(-5deg)}

/* 06 / Live ecosystem: animated topology, accessible tap and click selection */
.ecosystem{position:relative;overflow:hidden;background:#110e13;color:#f8f1f1;padding:clamp(85px,9vw,145px) 0;isolation:isolate}
.eco-atmosphere{position:absolute;inset:-10%;background:radial-gradient(ellipse at 76% 46%,rgba(143,39,53,.23),transparent 51%),radial-gradient(ellipse at 2% 95%,rgba(115,40,51,.16),transparent 50%);pointer-events:none;z-index:-1}
.ecosystem-layout{display:grid;grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);gap:clamp(34px,6vw,100px);align-items:center}
.ecosystem-copy{max-width:510px}.ecosystem .display-heading{font-size:clamp(48px,5vw,72px);line-height:1.1;letter-spacing:-.07em;margin:28px 0 26px}
.ecosystem .display-heading span{color:#de8281}.eco-intro{font-size:15px;color:#b2a3aa;line-height:1.85;max-width:430px;margin:0 0 36px}
.eco-selector{border-top:1px solid rgba(255,255,255,.12);max-width:465px}
.eco-choice{width:100%;padding:15px 8px;display:grid;align-items:center;grid-template-columns:45px 1fr 30px;gap:14px;color:#ab979e;background:none;border:0;border-bottom:1px solid rgba(255,255,255,.11);cursor:pointer;text-align:left;font-family:Manrope,system-ui,sans-serif;font-size:17px;font-weight:700;transition:padding .3s,color .25s,background .25s}
.eco-choice-index{font-size:10px;letter-spacing:.1em;color:#b66e72}.eco-choice-arrow{font-size:18px;justify-self:end;opacity:.4;transform:rotate(0);transition:transform .3s,opacity .3s}
.eco-choice:hover,.eco-choice.is-selected{color:#fff;background:linear-gradient(90deg,rgba(137,40,51,.3),transparent);padding-left:17px}
.eco-choice.is-selected .eco-choice-arrow{opacity:1;transform:rotate(45deg)}
.eco-choice:focus-visible,.eco-node:focus-visible{outline:2px solid #f09b9f;outline-offset:4px}
.eco-detail{min-height:102px;padding-top:23px;max-width:390px}
.eco-detail-kicker{font-size:10px;color:#e39a9a;font-weight:800;letter-spacing:.17em}
.eco-detail p{font-size:14px;line-height:1.8;color:#bbaeb4;margin:9px 0 0}
.eco-detail.is-changing{animation:eco-copy .48s both}
@keyframes eco-copy{from{opacity:.25;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.eco-stage{width:min(100%,610px);aspect-ratio:1;margin-inline:auto;position:relative;display:grid;place-items:center;isolation:isolate}
.eco-stage-grid{position:absolute;inset:0;z-index:-1;background-image:linear-gradient(rgba(190,113,121,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(190,113,121,.06) 1px,transparent 1px);background-size:31px 31px;mask-image:radial-gradient(circle,#000 37%,transparent 75%)}
.eco-orbit{position:absolute;left:50%;top:50%;border:1px solid rgba(180,92,102,.21);border-radius:50%;transform:translate(-50%,-50%);pointer-events:none}
.eco-orbit-one{width:51.7%;aspect-ratio:1;box-shadow:0 0 50px rgba(187,58,73,.05) inset}
.eco-orbit-two{width:75.3%;aspect-ratio:1;border-style:dashed;opacity:.75;animation:rotate-orbit 70s linear infinite}
.eco-orbit-three{width:93%;aspect-ratio:1;border-color:rgba(180,92,102,.07)}
.eco-lines{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;opacity:.66}
.eco-lines path,.eco-lines circle{fill:none;stroke:#a75860;stroke-width:1.35;stroke-dasharray:5 10;animation:path-travel 17s linear infinite}
.eco-lines circle{stroke-width:1;stroke:rgba(225,96,110,.33);stroke-dasharray:1 13;animation-duration:26s}
.eco-center{width:32%;aspect-ratio:1;display:flex;align-items:center;justify-content:center;flex-direction:column;border-radius:50%;background:radial-gradient(circle at 35% 25%,#903441,#371920 66%,#170f15 100%);border:1px solid rgba(235,143,150,.57);box-shadow:0 0 0 15px rgba(135,46,59,.07),0 0 0 31px rgba(135,46,59,.03),0 10px 80px rgba(183,47,65,.25),inset 0 0 40px rgba(226,138,144,.13);position:relative;z-index:3;animation:core-glow 5s ease-in-out infinite alternate}
.eco-center strong{font:800 clamp(43px,6vw,83px)/1 Manrope,system-ui,sans-serif;letter-spacing:-.12em;margin-right:.12em}.eco-center strong span{color:#f09b99}
.eco-center-caption,.eco-center small{font-size:clamp(7px,.65vw,10px);letter-spacing:.18em;color:#e4b9bd;font-weight:700;text-align:center}
.eco-center small{font-size:clamp(6px,.58vw,8px);color:#d5a8b0}
.eco-node{position:absolute;z-index:4;width:96px;height:96px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:7px;color:#f3c6c9;border:1px solid rgba(230,143,153,.37);border-radius:20px;background:#27191f;box-shadow:0 12px 35px rgba(0,0,0,.27);cursor:pointer;transition:color .3s,border-color .3s,background .3s,box-shadow .3s,scale .35s}
.eco-node .ico{width:27px;height:27px;position:relative;z-index:2}.eco-node small{font-size:7px;font-weight:800;letter-spacing:.07em;position:relative;z-index:2;text-align:center}
.eco-node-ring{position:absolute;inset:-8px;opacity:0;border:1px solid #de6e78;border-radius:25px;transition:opacity .3s}
.eco-node.is-selected,.eco-node:hover{color:#fff;border-color:#ef9299;background:#8a303e;box-shadow:0 12px 34px rgba(178,53,70,.26);scale:1.08}
.eco-node.is-selected .eco-node-ring{opacity:1;animation:selected-ring 2.3s ease-out infinite}
.eco-node-top{top:6.2%;left:50%;transform:translateX(-50%)}
.eco-node-right{right:5.9%;top:50%;transform:translateY(-50%)}
.eco-node-bottom{bottom:6.2%;left:50%;transform:translateX(-50%)}
.eco-node-left{left:5.9%;top:50%;transform:translateY(-50%)}
.eco-orbit-signal{position:absolute;width:7px;height:7px;border-radius:50%;background:#f5b1b2;box-shadow:0 0 0 4px rgba(214,84,97,.16),0 0 19px #eb626f;pointer-events:none;top:50%;left:50%;z-index:3;animation:signal-ring 13s linear infinite}
.eco-orbit-signal-b{animation-delay:-6.5s;animation-direction:reverse;background:#db777f}
.eco-stage-index{position:absolute;bottom:2%;right:0;font-size:9px;letter-spacing:.23em;color:#8f656e}
@keyframes rotate-orbit{from{rotate:0deg}to{rotate:360deg}}
@keyframes path-travel{to{stroke-dashoffset:-240}}
@keyframes core-glow{to{box-shadow:0 0 0 19px rgba(135,46,59,.06),0 0 0 37px rgba(135,46,59,.02),0 10px 110px rgba(194,60,74,.34),inset 0 0 60px rgba(226,138,144,.25)}}
@keyframes selected-ring{0%{opacity:.8;scale:.94}70%,100%{opacity:0;scale:1.24}}
@keyframes signal-ring{from{transform:rotate(0deg) translateX(157px) rotate(0deg)}to{transform:rotate(360deg) translateX(157px) rotate(-360deg)}}

/* 07 / Story: parallax and curtain reveal */
.story-motion{overflow:hidden;isolation:isolate}
.story-motion .story-img{background-position:center calc(50% + var(--story-shift,0px));clip-path:inset(0 12% 0 0);opacity:.72;transition:clip-path 1.6s cubic-bezier(.14,.82,.15,1),opacity 1.6s}
.story-motion.is-in-view .story-img{clip-path:inset(0 0 0 0);opacity:1}
.story-motion .story-content> :not(.story-ref){opacity:.65;transform:translateY(20px);transition:opacity 1.1s,transform 1.1s}
.story-motion.is-in-view .story-content> :not(.story-ref){opacity:1;transform:translateY(0)}
.story-motion .story-content>*:nth-child(2){transition-delay:.12s}
.story-motion .story-content>*:nth-child(3){transition-delay:.23s}
.story-motion .story-content>*:nth-child(4){transition-delay:.32s}

/* 08 / Process: a vertical journey that fills as you scroll */
.process-list{--journey:0%;position:relative;isolation:isolate}
.process-list:before,.process-list:after{content:'';position:absolute;left:10px;top:20px;width:2px;height:calc(100% - 40px);pointer-events:none;z-index:0}
.process-list:before{background:#dec6c5}
.process-list:after{background:#9d3a43;transform-origin:top;transform:scaleY(var(--journey,0));transition:transform .2s ease-out}
.process-step{position:relative;z-index:1}
.process-step:after{content:'';position:absolute;left:5px;top:50%;width:12px;height:12px;background:#efe7e5;border:2px solid #c2a9a7;border-radius:50%;transform:translateY(-50%);transition:background .45s,box-shadow .45s,border-color .45s}
.process-step.is-current:after,.process-step.is-passed:after{background:#9d3a43;border-color:#9d3a43;box-shadow:0 0 0 5px #edd3d2}
.process-step.is-current{background:linear-gradient(90deg,rgba(138,45,54,.09),transparent 90%)}
.process-step.is-current .step-icon{background:#8b3038;color:#fff;border-color:#8b3038;transform:scale(1.09)}
.step-icon{transition:transform .4s cubic-bezier(.15,.85,.2,1),color .4s,border-color .4s,background .4s}
.process-step.is-current .step-index{color:#7c202a;font-weight:800}

/* 09 / FAQ, forms and finishing touches */
.faq-list details[open] .faq-answer{animation:faq-drop .36s ease-out both}
.faq-list summary:hover{color:#8c3039}
@keyframes faq-drop{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
.contact-form-wrap{position:relative;overflow:hidden;transition:transform .5s cubic-bezier(.15,.85,.22,1),box-shadow .5s}
.contact-form-wrap:before{content:'';position:absolute;inset:-30%;z-index:0;pointer-events:none;background:radial-gradient(300px circle at var(--form-x,60%) var(--form-y,10%),rgba(155,57,64,.075),transparent 75%);opacity:.8}
.contact-form-wrap:hover{box-shadow:0 32px 95px rgba(0,0,0,.19)}
.contact-form-wrap> *{position:relative}
#contact-form input:focus-visible,#contact-form select:focus-visible,#contact-form textarea:focus-visible{outline:2px solid #9c414a;outline-offset:2px}
.site-footer .back-top .ico,.btn .ico{transition:transform .3s cubic-bezier(.2,.8,.2,1)}
.site-footer .back-top:hover .ico,.btn:hover .ico{transform:translate(3px,-3px)}

/* Responsive & energy-conscious fallbacks */
@media(max-width:1100px){.ecosystem-layout{grid-template-columns:1fr 1fr;gap:20px}.eco-node{width:75px;height:75px;border-radius:16px}.eco-node small{font-size:6px}.eco-node .ico{width:22px;height:22px}.eco-center-caption,.eco-center small{font-size:6px}}
@media(max-width:820px){.motion-marquee{height:59px}.motion-marquee-track span{font-size:18px}.ecosystem-layout{grid-template-columns:1fr}.ecosystem-copy{max-width:100%}.ecosystem .display-heading{font-size:clamp(48px,8vw,64px)}.eco-selector{display:grid;grid-template-columns:1fr 1fr;max-width:none;gap:0 15px}.eco-choice{font-size:14px;grid-template-columns:26px 1fr 20px;gap:7px}.eco-choice:hover,.eco-choice.is-selected{padding-left:8px}.eco-detail{min-height:80px}.eco-stage{width:min(100%,520px)}.story-motion .story-img{clip-path:none}.process-list:before,.process-list:after{left:5px}.process-step:after{left:0;width:12px;height:12px}.hero-light-streak{opacity:.45}}
@media(max-width:530px){.hero-title .hero-line{line-height:1.17}.motion-marquee-track span{padding:0 16px}.motion-marquee-track b{padding:0 8px}.ecosystem{padding:80px 0 70px}.eco-stage{width:calc(100% + 24px);margin-left:-12px}.eco-node{height:58px;width:62px;border-radius:13px;gap:2px}.eco-node .ico{width:21px;height:21px}.eco-node small{font-size:5.3px;letter-spacing:0}.eco-node-top{top:4%}.eco-node-bottom{bottom:4%}.eco-node-left{left:2%}.eco-node-right{right:2%}.eco-orbit-signal{display:none}.eco-center{width:30%}.eco-center strong{font-size:40px}.eco-center-caption{font-size:5px}.eco-center small{font-size:5px}.eco-stage-index{right:5%;bottom:0;font-size:7px}.eco-choice{font-size:13px}.hero-glint{width:450px;height:450px;right:-60%}.process-step:after{top:39px}.process-step.is-current .step-icon{transform:none}}
@media(hover:none),(pointer:coarse){.cap-card:after{display:none}.cap-card:hover .cap-icon,.cap-card:hover .cap-shield-graphic{transform:none}.eco-node:hover:not(.is-selected){scale:1;box-shadow:0 12px 35px rgba(0,0,0,.27)}}
@media(prefers-reduced-motion:reduce){
 *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
 .hero-title .hero-line>span{transform:none!important}.hero-light-streak,.hero-glint{display:none!important}
 .motion-marquee-track{animation:none!important}
 .process-list:after{transform:scaleY(1)!important}
 .story-motion .story-img{clip-path:none!important;opacity:1!important;background-position:center!important}
 .story-motion .story-content>*{opacity:1!important;transform:none!important}
 .eco-lines{opacity:.65}.eco-node-ring{display:none!important}
 .cap-card.reveal{filter:none!important;transform:none!important;opacity:1!important}
 .pillar-feature.switch-in .pillar-content>*{opacity:1!important;transform:none!important}
}

/* Keep the long editorial accent on one legible line at large desktop widths. */
@media(min-width:1281px){.hero-title .hero-line:nth-child(3){font-size:.82em}}
