/* Portfolio Swarm V9: DOM snapshot reconstruction. */
#portfolioSwarm{position:fixed;inset:0;z-index:250;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .35s ease,visibility .35s;isolation:isolate;}
#portfolioSwarm.ps-on{opacity:1;visibility:visible;}
#portfolioSwarm.ps-exit{opacity:0;}
#portfolioSwarm .ps-backdrop{position:absolute;inset:0;background:#09090b;}
#portfolioSwarm .ps-stage{position:absolute;inset:0;overflow:hidden;}
#portfolioSwarm .ps-canvas{position:absolute;inset:0;width:100%;height:100%;}
#portfolioSwarm .ps-item{position:absolute;overflow:hidden;opacity:0;visibility:hidden;contain:layout paint;}
#portfolioSwarm .ps-item.ps-appeared{opacity:1;visibility:visible;}
#portfolioSwarm .ps-item, #portfolioSwarm .ps-item *{animation:none!important;transition:none!important;pointer-events:none!important;}
#portfolioSwarm .ps-item>*{transform:none!important;opacity:1!important;}
#portfolioSwarm .ps-guide{position:absolute;pointer-events:none;opacity:0;transition:opacity .25s;}
#portfolioSwarm .ps-guide.ps-show{opacity:.75;}
#portfolioSwarm .ps-guide-x{left:0;right:0;height:1px;border-top:1px dashed rgba(255,83,71,.65);}
#portfolioSwarm .ps-guide-y{top:0;bottom:0;width:1px;border-left:1px dashed rgba(255,83,71,.65);}
#portfolioSwarm .ps-status{position:absolute;bottom:20px;left:26px;font:700 10px/1.5 monospace;letter-spacing:.2em;color:#f45f54;}
@media(prefers-reduced-motion:reduce),(pointer:coarse){#portfolioSwarm{display:none!important;}}

/* Deconflict legacy particles and cursor layers while swarm is rendering. */
html:has(#portfolioSwarm.ps-on) #motionCanvas,
html:has(#portfolioSwarm.ps-on) #motionCursorRing,
html:has(#portfolioSwarm.ps-on) #motionCursorDot,
html:has(#portfolioSwarm.ps-on) #cinematicGuide,
html:has(#portfolioSwarm.ps-on) #pointerGlow{visibility:hidden!important;}
