
.portal-progress{gap:18px;pointer-events:none}
.portal-progress button{pointer-events:auto;cursor:pointer}
.portal-dots{gap:2px;align-items:center}
.portal-dots button{position:relative;display:block;width:25px;height:44px;background:none;border:0;padding:0;transition:width .3s ease}
.portal-dots button::after{content:'';position:absolute;left:4px;right:4px;top:21px;height:2px;background:#ffffff55;transition:background .3s ease}
.portal-dots button.active{width:44px}.portal-dots button.active::after{background:var(--portal-accent)}
.portal-dots button:hover::after{background:#fff}
.portal-swipe-copy{display:flex;align-items:center;gap:10px;background:none;border:0;padding:8px 0;min-height:44px;color:#ddd;font-size:9px;letter-spacing:.16em;white-space:nowrap}
.vs-left-arrows{display:flex;gap:0;align-items:center;color:#e7e4de}
.vs-left-arrows i{display:inline-block;font:300 25px/1 Arial,sans-serif;opacity:.3;animation:vs-left-pulse 3.8s ease-in-out infinite}
.vs-left-arrows i:nth-child(1){animation-delay:.32s}.vs-left-arrows i:nth-child(2){animation-delay:.16s}
@keyframes vs-left-pulse{0%,48%,100%{opacity:.3;transform:translateX(0)}20%{opacity:.8;transform:translateX(-4px)}}
.portal-swipe-copy:disabled{cursor:default;opacity:.5}.portal-swipe-copy:disabled .vs-left-arrows{visibility:hidden}
.vs-product-nav{display:none;gap:8px}
.vs-product-nav button{display:grid;place-items:center;width:46px;height:46px;border:1px solid #ffffff55;border-radius:50%;color:#eee;background:#08080880;backdrop-filter:blur(10px);font-size:20px;transition:background .25s,border-color .25s}
.vs-product-nav button:hover:not(:disabled){background:#ffffff18;border-color:#ddd}
.vs-product-nav button:disabled{opacity:.25;cursor:default}
.portal-progress button:focus-visible,#projectScroller:focus-visible{outline:1px solid #eee;outline-offset:5px}
@media(any-pointer:fine){.vs-product-nav{display:flex}#projectScroller{cursor:grab}#projectScroller.vs-mouse-dragging,#projectScroller.vs-mouse-dragging *{cursor:grabbing!important;user-select:none!important}.enter-project,a,button,[role=button],[role=link]{cursor:pointer}}
#projectScroller.vs-mouse-dragging{scroll-snap-type:none!important;scroll-behavior:auto!important}
@media(max-width:600px){.portal-progress{gap:6px;flex-wrap:wrap}.portal-dots button{width:23px}.portal-dots button.active{width:36px}.vs-product-nav{margin-left:auto}.portal-swipe-copy{font-size:8px;gap:5px}}
@media(prefers-reduced-motion:reduce){.vs-left-arrows i{animation:none;opacity:.65}}
