/* The build swarm (js/work/swarm.js). Temporary construction styling only; nothing here stays on the page after a run. Every clip needs html.wks-run, so removing that one class shows everything. */
html.wks-run .wks-piece:not(.wks-noclip){clip-path:var(--swarm-clip,inset(0))!important}
html.wks-run .wks-piece:not(.wks-soft){transform:translate3d(var(--swarm-x,0px),var(--swarm-y,0px),0) rotate(var(--swarm-turn,0deg)) scale(var(--swarm-scale,1))!important;transform-origin:top left;transition:none!important}
html.wks-run svg .wks-piece{transform-box:fill-box}
.wks-canvas{position:fixed;inset:0;width:100%;height:100%;z-index:1100;pointer-events:none}

/* The cover sits where the canvas will draw it, measured by preflight.js. */
html.wk-cover::after{top:var(--wk-cy,min(40vh,360px))}

/* Held until a cursor carries it in. Opacity, not visibility: a keyboard can still reach the link. */
.wks-held{opacity:0!important}
.wks-carry{position:fixed;left:0;top:0;z-index:1099;margin:0;pointer-events:none;opacity:0;will-change:transform;transform:translate3d(-200px,-200px,0);line-height:0}
#m-home .wks-carry .m-ico{animation:none!important;margin:0;border:0}
@keyframes wks-pop{0%{scale:1.34}55%{scale:.9}100%{scale:1}}
.wks-pop{animation:wks-pop .38s cubic-bezier(.3,1.5,.5,1) both}

/* The footing when its row is below the fold: a brief strip, then it lives in place. */
#m-home .wks-strip{position:fixed;left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));max-width:560px;margin:0 auto;z-index:1090;box-shadow:0 14px 34px -12px rgba(0,0,0,.65);animation:wks-strip .18s ease-out both}
#m-home .wks-strip.wks-gone{opacity:0;transition:opacity .34s linear}
@keyframes wks-strip{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
#m-home .wks-flash b{animation:wks-flash .6s ease-out both}
@keyframes wks-flash{0%{color:#7fb0ff;text-shadow:0 0 14px #7fb0ff}100%{color:#eef2f8;text-shadow:none}}

.wks-skip{position:fixed;top:calc(8px + env(safe-area-inset-top));right:10px;z-index:1200;min-height:30px;padding:4px 11px;border:1px solid rgba(255,255,255,.34);border-radius:999px;background:rgba(7,17,35,.62);color:#fff;font:500 12px/1.2 'IBM Plex Mono',ui-monospace,Consolas,monospace;letter-spacing:.04em;cursor:pointer;opacity:.72}
.wks-skip:hover,.wks-skip:focus-visible{opacity:1}
.wks-skip:focus-visible{outline:2px solid #7fb0ff;outline-offset:2px}
@media (pointer:coarse){.wks-skip{min-height:44px;min-width:44px}}
.wks-skip{top:auto;right:auto;left:12px;bottom:calc(14px + env(safe-area-inset-bottom))}
@media (prefers-reduced-motion:reduce){html.wks-run .wks-piece{clip-path:none!important;transform:none!important}.wks-canvas,.wks-carry,.wks-skip,#m-home .wks-strip{display:none}.wks-held{opacity:1!important}.wks-pop,#m-home .wks-flash b{animation:none}}
@media print{.wks-canvas,.wks-carry,.wks-skip,#m-home .wks-strip{display:none!important}html.wks-run .wks-piece{clip-path:none!important;transform:none!important}.wks-held{opacity:1!important}}
