/* Adapted G:/ui Originkit effects. Exact sources and placements: design/effects-provenance.json. */
@property --prism-angle{syntax:'<angle>';initial-value:0deg;inherits:false}
.magnetic{translate:var(--pull-x,0px) var(--pull-y,0px);transition:translate .25s ease-out}
.neon:hover,.neon:focus-visible{box-shadow:0 0 0 1px #d9f7b8,0 0 25px #b7eda532}
.keycap{box-shadow:0 3px 0 #020805,inset 0 1px 0 #ffffff15;transition:transform .18s,box-shadow .18s}.keycap:active{transform:translateY(2px);box-shadow:0 1px 0 #020805}
.prism:before{content:'';position:absolute;inset:-1px;border-radius:inherit;padding:1px;background:conic-gradient(from var(--prism-angle),#76bdb433,#caf2b2,#87b5db,#76bdb433 70%);mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask-composite:exclude;pointer-events:none;animation:prism 8s linear infinite}
.constellation circle{animation:twinkle 5s ease-in-out infinite}.constellation circle:nth-child(2n){animation-delay:-2s}
.network-links path{stroke-dasharray:6 4;animation:network 12s linear infinite}.network-links circle{animation:signal 4s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
.flow-bands{stroke-dasharray:80 12;animation:network 20s linear infinite}
.orbit-cage{transform-origin:center;animation:orbit 100s linear infinite}
.model-grid:has(.model-card:hover) .model-card:not(:hover){opacity:.8}
.model-grid:has(.model-card:focus-visible) .model-card:not(:focus-visible){opacity:.8}
.card-visual .sharp-lens{position:absolute;inset:0;opacity:0;filter:none!important;clip-path:circle(85px at var(--mx,50%) var(--my,50%));transition:opacity .3s}
.model-card:hover .sharp-lens{opacity:.95}.model-card .card-visual:before{content:'';position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,transparent 40%,#c4efcf35 49%,#d8f4cf90 50%,transparent 51%);transform:translateY(-100%);pointer-events:none}.model-card:hover .card-visual:before{animation:scan 1.4s ease-out}
.rising-lines{position:absolute;inset:20% 0 0;opacity:.32;overflow:hidden;pointer-events:none}.rising-lines i{position:absolute;bottom:-50px;width:1px;height:50px;background:linear-gradient(transparent,#cce3bf);animation:rise 4s linear infinite}
.spotlight-text{--mx:50%;--my:50%;color:#c8dec0;background:radial-gradient(circle 130px at var(--mx) var(--my),#f8ffeb,#99b393 80%);background-clip:text;-webkit-text-fill-color:transparent}
.text-lift{transition:transform .35s,text-shadow .35s}.text-lift:hover{transform:translateY(-3px);text-shadow:0 2px #486d46,0 4px #284b33,0 6px #152a1e}
.fx-reveal{animation:reveal .9s cubic-bezier(.2,.7,.2,1) both}.fx-reveal>span{animation:reveal 1.1s cubic-bezier(.2,.7,.2,1) both}
.highlight-word{color:#9bac97;transition:color .5s}.highlight-word.lit{color:#e2efce}
@keyframes prism{to{--prism-angle:360deg}}@keyframes signal{50%{opacity:.4;scale:1.2}}@keyframes twinkle{50%{opacity:.35}}@keyframes network{to{stroke-dashoffset:-120}}@keyframes orbit{to{transform:rotate(360deg)}}@keyframes scan{to{transform:translateY(100%)}}@keyframes rise{to{transform:translateY(-260px);opacity:0}}@keyframes reveal{from{opacity:.2;transform:translateY(20px);filter:blur(5px)}to{opacity:1;transform:none;filter:none}}
.motion-paused *, .motion-paused *:before,.motion-paused *:after{animation-play-state:paused!important;transition:none!important}.motion-paused .fx-reveal{animation:none!important;opacity:1;transform:none;filter:none}.motion-paused .magnetic{translate:none}.motion-paused .hero-visual{transform:none!important}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*:before,*:after{animation:none!important;transition:none!important}.fx-reveal{opacity:1;transform:none;filter:none}.hero-visual{transform:none!important}.magnetic{translate:none}.highlight-word{color:#e2efce}}
@media(hover:none){.magnetic{translate:none}.model-grid .model-card{opacity:1!important}.hero-visual{transform:none!important}}
