/* Motion accents. Layout and content remain usable with these effects disabled. */
.flow-field{position:absolute;inset:0;width:100%;height:100%;opacity:0;pointer-events:none}
.flow-ready .flow-field{opacity:1}
.flow-ready>img{opacity:0!important}
.hero-art{will-change:transform}
.hero-description{text-shadow:0 2px 14px #06070b}
.hero-buttons .btn-ghost{background:#111319e6}
.hero-assurance{width:fit-content;margin-inline:auto;padding:8px 14px;border:1px solid #ffffff16;border-radius:30px;background:#0b0d15bf;backdrop-filter:blur(8px)}
.hero h1 em{background-size:200% 100%;animation:title-light 7s ease-in-out infinite alternate}
.hero-kicker .status-dot{animation:status-pulse 2.8s ease-in-out infinite}
.hero-buttons .btn-orange{overflow:hidden}
.hero-buttons .btn-orange::before{content:'';position:absolute;inset:-60% auto -60% -70%;width:32%;background:linear-gradient(90deg,transparent,#fff8,transparent);transform:rotate(22deg);animation:button-glint 6s ease-in-out infinite;pointer-events:none}
.btn .button-arrow,.panel-link>span:last-child{transition:translate .3s var(--ease)}
.btn:hover .button-arrow,.panel-link:hover>span:last-child{translate:3px -3px}
.technology-strip>.container{overflow:hidden}
.technology-marquee{display:flex;width:100%;overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}
.technology-marquee .technology-list{display:flex;flex:none;flex-wrap:nowrap;justify-content:flex-start;gap:64px;padding-right:64px;min-width:100%;animation:topic-travel 30s linear infinite}
.technology-marquee .technology-list>span{white-space:nowrap}
.technology-marquee:hover .technology-list{animation-play-state:paused}
.technology-marquee .technology-list b{color:#bf9e89}
.interactive-surface{position:relative;isolation:isolate;transform-style:preserve-3d;transition:transform .35s var(--ease),border-color .3s}
.interactive-surface::before{content:'';position:absolute;z-index:2;inset:0;border-radius:inherit;pointer-events:none;background:radial-gradient(380px circle at var(--glow-x,50%) var(--glow-y,50%),#ffa66619,transparent 65%);opacity:0;transition:opacity .4s}
@media(hover:hover) and (pointer:fine){
  .interactive-surface:hover{transform:perspective(950px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg)) translateY(-4px);border-color:#ffbb8150}
  .interactive-surface:hover::before{opacity:1}
}
.skill-node,.art-cube{animation:node-float 6s ease-in-out infinite}
.skill-ai{animation-delay:-2s}.skill-code{animation-delay:-4s}
.figure-note{animation:note-float 7s ease-in-out infinite}
.art-ring{animation:orbit-turn 24s linear infinite}
.ring-b{animation-duration:36s;animation-direction:reverse;border-color:#b99be928}
.art-ring::after{content:'';position:absolute;left:50%;top:-3px;width:5px;height:5px;border-radius:50%;background:var(--module-accent);box-shadow:0 0 16px var(--module-accent)}
.ring-b::after{width:3px;height:3px;opacity:.65}
.module-art .diagram-flow{stroke-width:1.6;stroke-dasharray:8 110;animation-duration:7s}
.map-dot{animation:status-pulse 3s ease-in-out infinite}
.map-core{animation:core-glow 5s ease-in-out infinite}
.lab-terminal{overflow:hidden}
.lab-terminal::after{content:'';position:absolute;left:0;right:0;top:0;height:2px;background:linear-gradient(90deg,transparent,#b697ed45,transparent);box-shadow:0 0 25px #aa84ee22;animation:terminal-scan 7s ease-in-out infinite;pointer-events:none}
.callout-orbit{animation:orbit-breathe 9s ease-in-out infinite}
.callout::before{animation:ambient-breathe 8s ease-in-out infinite alternate}
.gallery-photo.is-visible>img{animation:photo-arrive 1.4s var(--ease) both}
.animation-offscreen,.animation-offscreen::before,.animation-offscreen::after{animation-play-state:paused!important}
.motion-paused .interactive-surface:hover{transform:none}
.motion-paused .technology-copy{display:none}
.motion-paused .technology-marquee{mask-image:none}
.motion-paused .technology-marquee .technology-list{transform:none;justify-content:center;flex-wrap:wrap;gap:24px 45px;padding:0;min-width:0;width:100%}
.motion-paused .gallery-photo.is-visible>img{animation:none}
@keyframes title-light{from{background-position:0 50%}to{background-position:100% 50%}}
@keyframes status-pulse{0%,100%{box-shadow:0 0 8px #ff985c66;opacity:.65}50%{box-shadow:0 0 22px #ff985cbb;opacity:1}}
@keyframes button-glint{0%,65%{left:-70%}95%,100%{left:150%}}
@keyframes topic-travel{to{transform:translateX(-100%)}}
@keyframes node-float{0%,100%{translate:0 0}50%{translate:0 -9px}}
@keyframes note-float{0%,100%{translate:0 0}50%{translate:0 -6px}}
@keyframes orbit-turn{to{rotate:360deg}}
@keyframes core-glow{0%,100%{box-shadow:0 0 25px #8054e414}50%{box-shadow:0 0 55px #8054e43b}}
@keyframes terminal-scan{0%,15%{translate:0 20px;opacity:0}25%{opacity:1}80%,100%{translate:0 210px;opacity:0}}
@keyframes orbit-breathe{0%,100%{scale:1;opacity:.7}50%{scale:1.07;opacity:1}}
@keyframes ambient-breathe{to{opacity:.5;scale:1.15}}
@keyframes photo-arrive{from{scale:1.09;filter:saturate(.4)}to{scale:1;filter:saturate(.85)}}
@media(max-width:700px){.technology-marquee .technology-list{gap:34px;padding-right:34px;animation-duration:26s}.technology-strip>.container{width:100%}.technology-marquee .technology-list>span{font-size:13px}.technology-marquee{mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}}
@media(prefers-reduced-motion:reduce){
  .flow-field{display:none}.flow-ready>img{opacity:.88!important}
  .technology-copy{display:none}.technology-marquee{mask-image:none}
  .technology-marquee .technology-list{transform:none;justify-content:center;flex-wrap:wrap;gap:24px 35px;padding:0 20px;min-width:0;width:100%}
  .interactive-surface:hover{transform:none}
}
