/* Light, readable effects; the 3D island keeps its own rendering loop. */
.hero,.home-hero,.home-system,.comparison,.process,.faq{position:relative;isolation:isolate}
.hero:after,.home-hero:after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:repeating-linear-gradient(0deg,transparent 0 5px,#caff0005 6px),radial-gradient(ellipse at 90% 40%,#adff0013,transparent 55%);opacity:.6;transform:translateY(var(--section-drift,0px))}
.hero>*{position:relative;z-index:1}.hero .hero-number{position:absolute}
.section-heading h2{position:relative}.section-heading h2:after{content:"";display:block;margin-top:18px;height:2px;width:75px;background:linear-gradient(90deg,var(--lime),transparent);transform:scaleX(.12);transform-origin:left;transition:transform 1s cubic-bezier(.16,1,.3,1)}
.fx-in-view .section-heading h2:after{transform:scaleX(1)}
.fx-card{position:relative;isolation:isolate;transform-style:preserve-3d}
.fx-card:after{content:"";position:absolute;inset:0;pointer-events:none;z-index:2;background:radial-gradient(320px circle at var(--spot-x,50%) var(--spot-y,50%),#adff0016,transparent 70%);opacity:0;transition:opacity .35s}
.fx-card.fx-hover:after{opacity:1}.fx-card.fx-hover.is-visible,.fx-card.fx-hover:not(.reveal){transform:perspective(1000px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg)) translateY(-4px)}
.steps article{padding:24px;border:1px solid #adff0026;background:linear-gradient(145deg,#101a0c,#050805);transition:border-color .3s,transform .4s}.steps article.fx-hover{border-color:#adff0070}
.licenses span{transition:border-color .25s,background .25s,box-shadow .25s}.licenses span:hover{background:#17270b;border-color:#adff0070;box-shadow:0 0 20px #adff0018}
.table-wrap tbody tr{transition:background .25s}.table-wrap tbody tr:hover{background:#adff000c}.table-wrap td,.table-wrap th{transition:color .25s}.table-wrap tbody tr:hover td{color:#d5ff9b}
.questions details{position:relative;transition:border-color .3s,background .3s;padding-left:15px;padding-right:15px;border-left:2px solid transparent}
.questions details:hover{background:#adff0005}.questions details[open]{border-left-color:var(--lime);background:linear-gradient(90deg,#adff000b,transparent)}
.questions summary:after{transition:transform .3s}.questions details[open] summary:after{transform:rotate(180deg)}
.signal-flow span{position:relative;overflow:hidden}.signal-flow span:after{content:"";position:absolute;inset:-1px;background:linear-gradient(110deg,transparent 25%,#adff0025 50%,transparent 75%);transform:translateX(-150%)}
.fx-in-view .signal-flow span:after{animation:signalPass 5s ease-in-out infinite}.signal-flow span:nth-of-type(2):after{animation-delay:.35s}.signal-flow span:nth-of-type(3):after{animation-delay:.7s}.signal-flow span:nth-of-type(4):after{animation-delay:1.05s}
.contact{position:relative;isolation:isolate}.contact:before{content:"";position:absolute;inset:-100%;z-index:-1;background:linear-gradient(110deg,transparent 35%,#eaffae30 50%,transparent 65%);transform:translateX(-75%);pointer-events:none}.contact.fx-in-view:before{animation:contactLight 9s ease-in-out infinite}
.button,.detail-button{position:relative;overflow:hidden;isolation:isolate}.fx-ripple{position:absolute;pointer-events:none;width:20px;height:20px;border-radius:50%;background:currentColor;opacity:.22;transform:translate(-50%,-50%);animation:buttonRipple .65s ease-out forwards}
dialog[open]{animation:dialogEnter .35s cubic-bezier(.16,1,.3,1)}dialog::backdrop{backdrop-filter:blur(8px);background:#000b}
.home-system>img{transform:translateY(var(--section-drift,0px));transition:transform .15s linear;box-shadow:0 20px 70px #adff0009}
@keyframes signalPass{0%,35%{transform:translateX(-150%)}65%,100%{transform:translateX(150%)}}
@keyframes contactLight{0%,45%{transform:translateX(-75%)}75%,100%{transform:translateX(75%)}}
@keyframes buttonRipple{to{transform:translate(-50%,-50%) scale(25);opacity:0}}
@keyframes dialogEnter{from{opacity:0;transform:translateY(20px) scale(.97)}to{opacity:1;transform:none}}
@media(hover:none){.fx-card{transform-style:flat}.fx-card:after{display:none}}
@media(prefers-reduced-motion:reduce){.fx-card,.questions details,.questions summary:after,.section-heading h2:after,.home-system>img{transition:none;transform:none!important}.section-heading h2:after{transform:scaleX(1)!important}.signal-flow span:after,.contact:before,.fx-ripple,.hero:after,.home-hero:after{animation:none!important;display:none}dialog[open]{animation:none}dialog::backdrop{backdrop-filter:none}}
