/* A single, self-removing gesture at the header edge; never a page-covering layer. */
@media screen{
 /* Keep existing campus cards readable while they enter the viewport. */
 html[data-ag-theme] .studio-reveal.will-reveal{opacity:1;transform:translateY(4px);transition:transform .35s ease}
 html[data-ag-theme] .studio-reveal.will-reveal.is-visible{transform:none}
 .ag-theme-motion{position:fixed;inset-inline:0;height:12px;z-index:250;overflow:hidden;contain:paint;isolation:isolate;pointer-events:none!important;user-select:none;color:var(--theme-accent);animation:ag-motion-presence var(--motion-time,500ms) linear both}
 .ag-theme-motion span{position:absolute;display:block;pointer-events:none!important}
 .ag-theme-motion-track{inset:auto 0 0;height:1px;background:currentColor;opacity:.14}
 .ag-theme-motion-trace{inset:auto 0 0;height:2px;background:var(--theme-edge,linear-gradient(90deg,transparent,currentColor,transparent));transform-origin:left center;animation:ag-motion-draw var(--motion-time) cubic-bezier(.2,.7,.2,1) both}
 .ag-theme-motion-mark{bottom:0;left:0;width:32px;height:2px;background:currentColor;animation:ag-motion-pass var(--motion-time) ease-out both}

 .ag-theme-motion[data-gesture=lustre] .ag-theme-motion-trace{background:linear-gradient(90deg,transparent,var(--theme-accent),#fff2d6,transparent);height:1px;animation-name:ag-motion-lustre}
 .ag-theme-motion[data-gesture=lustre] .ag-theme-motion-mark{display:none}
 .ag-theme-motion[data-gesture=forge] .ag-theme-motion-trace{height:3px;background:repeating-linear-gradient(90deg,currentColor 0 11%,transparent 11% 12%);animation-name:ag-motion-forge}
 .ag-theme-motion[data-gesture=forge] .ag-theme-motion-mark{height:5px;width:9%;animation-name:ag-motion-forge}
 .ag-theme-motion[data-gesture=hud] .ag-theme-motion-trace{background:repeating-linear-gradient(90deg,currentColor 0 31px,transparent 31px 40px);animation-name:ag-motion-brackets}
 .ag-theme-motion[data-gesture=hud] .ag-theme-motion-mark{height:9px;width:12px;background:none;border:1px solid currentColor;border-right:0;border-bottom:0;animation-name:ag-motion-brackets}
 .ag-theme-motion[data-gesture=neon] .ag-theme-motion-trace{background:linear-gradient(90deg,#58d9e0,transparent 25%,var(--theme-accent) 65%,#ff78bf);animation-name:ag-motion-neon}
 .ag-theme-motion[data-gesture=neon] .ag-theme-motion-mark{width:8%;height:4px;background:#ff78bf;clip-path:polygon(8px 0,100% 0,calc(100% - 8px) 100%,0 100%)}
 .ag-theme-motion[data-gesture=orbit] .ag-theme-motion-trace{background:linear-gradient(90deg,transparent,#8bcdf444,currentColor,#d65d67);animation-name:ag-motion-orbit-line}
 .ag-theme-motion[data-gesture=orbit] .ag-theme-motion-mark{left:78%;bottom:-14px;width:36px;height:36px;background:none;border:1px solid currentColor;border-left-color:transparent;border-bottom-color:transparent;border-radius:50%;animation:ag-motion-orbit var(--motion-time) ease-out both}
 .ag-theme-motion[data-gesture=segments] .ag-theme-motion-trace{height:3px;background:repeating-linear-gradient(90deg,currentColor 0 6px,transparent 6px 9px,currentColor 9px 36px,transparent 36px 42px);animation-timing-function:steps(6,end)}
 .ag-theme-motion[data-gesture=segments] .ag-theme-motion-mark{height:8px;width:2px;animation-timing-function:steps(6,end)}
 .ag-theme-motion[data-gesture=cut] .ag-theme-motion-trace{height:4px;clip-path:polygon(12px 0,100% 0,calc(100% - 12px) 100%,0 100%);animation-name:ag-motion-cut}
 .ag-theme-motion[data-gesture=cut] .ag-theme-motion-mark{height:8px;transform:skewX(-35deg)}
 .ag-theme-motion[data-gesture=lamplight] .ag-theme-motion-trace{height:5px;background:radial-gradient(ellipse at center,var(--theme-accent),transparent 70%);animation-name:ag-motion-lamplight}
 .ag-theme-motion[data-gesture=lamplight] .ag-theme-motion-mark{display:none}
 .ag-theme-motion[data-gesture=pixels] .ag-theme-motion-trace{height:3px;background:repeating-linear-gradient(90deg,#f5a3d1 0 12px,#b79dea 12px 24px,#8bd3da 24px 36px,transparent 36px 40px);animation-timing-function:steps(5,end)}
 .ag-theme-motion[data-gesture=pixels] .ag-theme-motion-mark{height:7px;width:7px;box-shadow:8px -4px 0 #b79dea,16px 0 0 #8bd3da;animation-timing-function:steps(5,end)}
 .ag-theme-motion[data-gesture=route] .ag-theme-motion-trace{height:2px;background:linear-gradient(90deg,transparent 5%,currentColor 5% 92%,transparent 92%);animation-name:ag-motion-route}
 .ag-theme-motion[data-gesture=route] .ag-theme-motion-mark{width:18px;height:6px;clip-path:polygon(0 0,75% 0,100% 50%,75% 100%,0 100%,25% 50%)}
 .ag-theme-motion[data-gesture=campfire] .ag-theme-motion-trace{height:1px;background:linear-gradient(90deg,transparent,currentColor,transparent);animation-name:ag-motion-orbit-line}
 .ag-theme-motion[data-gesture=campfire] .ag-theme-motion-mark{left:65%;bottom:-25px;width:54px;height:54px;background:none;border:1px solid currentColor;border-left-color:transparent;border-bottom-color:transparent;border-radius:50%;animation:ag-motion-orbit var(--motion-time) ease-out both}
 .ag-theme-motion[data-gesture=deal] .ag-theme-motion-trace{height:2px;background:repeating-linear-gradient(90deg,currentColor 0 20px,transparent 20px 25px);transform-origin:50% 100%;animation-name:ag-motion-deal}
 .ag-theme-motion[data-gesture=deal] .ag-theme-motion-mark{left:50%;height:8px;width:18px;border:1px solid currentColor;background:var(--theme-bg);animation-name:ag-motion-deal}
 .ag-theme-motion[data-gesture=spring] .ag-theme-motion-trace{height:3px;border-radius:100%;transform-origin:center;animation-name:ag-motion-spring}
 .ag-theme-motion[data-gesture=spring] .ag-theme-motion-mark{display:none}
 .ag-theme-motion[data-gesture=band] .ag-theme-motion-trace{height:4px;background:currentColor;animation-name:ag-motion-draw}
 .ag-theme-motion[data-gesture=band] .ag-theme-motion-mark{height:7px;width:14%;opacity:.3;animation-name:ag-motion-draw}
 .ag-theme-motion[data-gesture=mist] .ag-theme-motion-trace{height:10px;background:radial-gradient(ellipse at center,var(--theme-accent),transparent 75%);animation-name:ag-motion-mist}
 .ag-theme-motion[data-gesture=mist] .ag-theme-motion-mark{display:none}
 .ag-theme-motion[data-gesture=scan] .ag-theme-motion-trace{height:1px;background:repeating-linear-gradient(90deg,currentColor 0 64px,transparent 64px 68px);animation-name:ag-motion-draw}
 .ag-theme-motion[data-gesture=scan] .ag-theme-motion-mark{width:2px;height:10px;box-shadow:0 0 5px currentColor;animation-timing-function:linear}

 @keyframes ag-motion-presence{0%,75%{opacity:1}100%{opacity:0}}
 @keyframes ag-motion-draw{from{transform:scaleX(.08);opacity:.35}to{transform:scaleX(1);opacity:.9}}
 @keyframes ag-motion-pass{from{left:0;opacity:.4}to{left:calc(100% - 32px);opacity:.9}}
 @keyframes ag-motion-lustre{from{transform:translateX(-55%);opacity:.2}to{transform:translateX(35%);opacity:.85}}
 @keyframes ag-motion-forge{from{transform:translateY(-5px) scaleX(.92);opacity:.4}to{transform:translateY(0) scaleX(1);opacity:.9}}
 @keyframes ag-motion-brackets{from{transform:scaleX(.8);opacity:.2}to{transform:scaleX(1);opacity:.9}}
 @keyframes ag-motion-neon{from{clip-path:inset(0 90% 0 0);opacity:.5}to{clip-path:inset(0);opacity:.9}}
 @keyframes ag-motion-orbit-line{from{transform:scaleX(.5);opacity:.2}to{transform:scaleX(1);opacity:.8}}
 @keyframes ag-motion-orbit{from{transform:rotate(-95deg);opacity:.1}to{transform:rotate(20deg);opacity:.85}}
 @keyframes ag-motion-cut{from{transform:translateX(-45%);opacity:.4}to{transform:translateX(0);opacity:.9}}
 @keyframes ag-motion-lamplight{from{transform:translateX(-30%) scaleX(.4);opacity:.1}to{transform:translateX(25%) scaleX(1);opacity:.75}}
 @keyframes ag-motion-route{from{clip-path:inset(0 100% 0 0);opacity:.5}to{clip-path:inset(0);opacity:.9}}
 @keyframes ag-motion-deal{from{transform:translateY(5px) rotate(-1deg) scaleX(.92);opacity:.2}to{transform:translateY(0) rotate(0) scaleX(1);opacity:.85}}
 @keyframes ag-motion-spring{0%{transform:scaleX(.7);opacity:.3}65%{transform:scaleX(1.025);opacity:.85}100%{transform:scaleX(1);opacity:.85}}
 @keyframes ag-motion-mist{from{transform:translateX(-18%);opacity:.05}to{transform:translateX(18%);opacity:.35}}
 html[data-ag-motion=reduced] .ag-theme-motion{display:none!important}
}
@media(prefers-reduced-motion:reduce){.ag-theme-motion{display:none!important;animation:none!important}.ag-theme-motion *{animation:none!important}}
@media print{.ag-theme-motion{display:none!important}}
