:root{--motion-ease:cubic-bezier(.22,.78,.24,1)}
html{scroll-behavior:smooth}
button,a,input,select,textarea{transition:background-color .22s ease,color .22s ease,border-color .22s ease,box-shadow .3s var(--motion-ease)}
button:active,.button:active{transform:scale(.96);transition-duration:.1s}
.motion-ready .reveal{opacity:0;transform:translateY(16px);transition:opacity .6s var(--motion-ease) var(--reveal-delay,0ms),transform .6s var(--motion-ease) var(--reveal-delay,0ms),box-shadow .3s ease,border-color .3s ease}
.motion-ready .reveal.is-visible{opacity:1;transform:translateY(0)}
.experiment-card,.feature-tile,.intent-tile{transform-style:preserve-3d;isolation:isolate;position:relative}
@media(hover:hover) and (pointer:fine){.motion-ready .experiment-card.is-visible:hover,.motion-ready .feature-tile.is-visible:hover,.motion-ready .intent-tile.is-visible:hover{transform:perspective(1200px) translateY(-5px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));transition-delay:0ms;transition-duration:.3s}}
.feature-tile::after,.intent-tile::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:4;border-radius:inherit;background:radial-gradient(300px circle at var(--pointer-x,50%) var(--pointer-y,50%),#ffffff16,transparent 65%);opacity:0;transition:opacity .3s}
.feature-tile:hover::after,.intent-tile:hover::after{opacity:1}
.tile-image>.scene,.card-image>.scene{transition:transform .75s var(--motion-ease),opacity .5s ease;backface-visibility:hidden}
.feature-tile:hover .tile-image>.scene,.experiment-card:hover .card-image>.scene{transform:scale(1.055)}
.is-loading{overflow:hidden}.is-loading::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(100deg,transparent,#ffffff12,transparent);transform:translateX(-100%);animation:loading-sheen 1.4s ease-in-out infinite}
@keyframes loading-sheen{to{transform:translateX(100%)}}
.stage-overlay{animation:stage-reveal .48s var(--motion-ease) both}.stage-overlay[hidden]{animation:none}
@keyframes stage-reveal{from{opacity:0;transform:translateY(7px) scale(1.01)}to{opacity:1;transform:none}}
.info-dialog[open]{animation:dialog-reveal .38s var(--motion-ease) both}
@keyframes dialog-reveal{from{opacity:0;transform:translateY(15px) scale(.97)}to{opacity:1;transform:none}}
.route-art-ghost{position:fixed;z-index:90;pointer-events:none;overflow:hidden;border-radius:13px;transform-origin:0 0;box-shadow:0 18px 60px #15102c25;contain:layout style;will-change:transform,opacity}.route-art-ghost>*{display:block!important;position:absolute!important;inset:0!important;width:100%!important;height:100%!important;transform:none!important;border-radius:inherit}.route-art-ghost .scene{width:100%;height:100%;object-fit:cover}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.motion-ready .reveal{opacity:1!important;transform:none!important;transition:none!important}.feature-tile::after,.intent-tile::after{display:none}.is-loading::before{animation:none}::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}.stage-overlay,.info-dialog[open]{animation:none!important}}
