.projects-index{background:#080f12}.projects-index .portfolio-intro{background:radial-gradient(ellipse at 85% 50%,#00efdf14,transparent 60%)}.projects-index .collection-intro-link,.collection-toolbar #collection-count{color:#00efdf}.collection-guide>span:first-child{color:#e7fffc}.collection-filters button[aria-pressed=true]{background:#00efdf;border-color:#00efdf;color:#052928}.collection-filters button:hover{border-color:#00efdf}.collection-toolbar,.collection-caption>div>span{color:#91b6bb}.collection-arrow{color:#00efdf;border-color:#00efdf55}.collection-arrow:hover,.collection-flip[aria-pressed=true]{background:#00efdf;color:#052928}.collection-flip,.collection-open-label{background:#081b22e8;border-color:#8ab5bc66}.collection-caption p{color:#a8c1c6}.journey-controls{display:none}.project-journey .collection-card{opacity:1;translate:none}.project-journey .collection-media{border-radius:0;transform:none;box-shadow:none}.project-journey .collection-number{background:#071c24cc;color:#00efdf}.project-journey .collection-caption h2{color:#f4fffd}.project-journey .collection-open img{object-fit:contain}.project-journey .collection-media:after{border-radius:0}.journey-active{position:relative;margin-left:-7vw;margin-right:-7vw}.journey-active .journey-viewport{position:sticky;top:0;height:100svh;overflow:hidden;background:radial-gradient(ellipse at 50% 90%,#00efdf0a,transparent 70%),#080f12}.journey-active .collection-grid{display:flex;gap:7vw;align-items:center;position:absolute;top:7vh;left:0;height:78vh;padding:0 12vw;width:max-content;will-change:transform}.journey-active .collection-card{flex:0 0 67vw;width:67vw;perspective:none;transform:translateY(var(--jy,0px)) scale(var(--js,1));opacity:var(--jo,1);transform-origin:center;transition:none}.journey-active .collection-media,.journey-active .collection-card:nth-child(-n+2) .collection-media{height:54vh;max-height:650px;width:100%;clip-path:inset(0 var(--jc,0%) 0 0);transition:clip-path .12s linear}.journey-active .collection-caption{padding-top:20px;align-items:center}.journey-active .collection-caption h2{font-size:clamp(30px,3vw,55px);margin:8px 0}.journey-active .collection-caption p{font-size:13px}.journey-active .collection-caption>div>span{font-size:9px;letter-spacing:.15em}.journey-active .collection-arrow{margin-top:0;width:52px;height:52px}.journey-active .journey-controls{display:flex;position:absolute;bottom:5vh;left:7vw;right:7vw;gap:18px;align-items:center;color:#c9dfdf;font:10px/1.3 Arial;letter-spacing:.1em}.journey-hint{margin-right:20px;font-size:8px;color:#8db2ba}.journey-position{white-space:nowrap;font-variant-numeric:tabular-nums}.journey-position b{font-weight:400;color:#00efdf}.journey-progress{height:1px;background:#ffffff22;flex:1}.journey-progress i{display:block;width:100%;height:1px;transform:scaleX(var(--jp,0));transform-origin:left;background:#00efdf;box-shadow:0 0 7px #00efdf}.journey-controls button{background:none;border:1px solid #00efdf44;border-radius:50%;width:44px;height:44px;display:grid;place-items:center;color:#00efdf;font-size:20px;cursor:pointer}.journey-controls button:disabled{opacity:.25}.journey-controls a{font-size:9px;text-decoration:underline;text-underline-offset:5px}.journey-controls button:focus-visible,.journey-controls a:focus-visible{outline:2px solid #00efdf;outline-offset:4px}.journey-active .collection-card:focus-within{opacity:1}.project-journey:not(.journey-active) .collection-card{transition:opacity .6s,translate .7s}.project-journey:not(.journey-active) .collection-card.journey-waiting{opacity:.15;translate:0 35px}.project-journey:not(.journey-active) .collection-card.is-visible{opacity:1;translate:0 0}@media(max-width:900px){.project-journey .collection-grid{display:grid;grid-template-columns:1fr;gap:55px}.project-journey .collection-card{grid-column:auto}.project-journey .collection-media,.project-journey .collection-card:first-child .collection-media,.project-journey .collection-card:nth-child(-n+2) .collection-media{height:auto;aspect-ratio:1.25}.project-journey .collection-caption{padding-top:18px}.collection-guide{align-items:flex-start;flex-direction:column;gap:10px}.collection-filters{flex-wrap:nowrap;overflow-x:auto;padding-bottom:12px}.collection-filters button{flex-shrink:0;white-space:nowrap}.project-journey .collection-media{clip-path:inset(var(--mobile-inset,0%) 0 0 0);transition:clip-path .7s}.project-journey .journey-waiting .collection-media{--mobile-inset:10%}}@media(prefers-reduced-motion:reduce){.project-journey *{animation:none!important;transition:none!important}.project-journey .collection-card.journey-waiting{opacity:1;translate:none}}
.journey-controls button svg{width:19px;height:19px}
/* Scroll-driven reveal: a framed image unfolds into its full plane. */
.project-journey .collection-media,.project-journey .collection-media:after,.project-journey .collection-open{border-radius:20px}.journey-active .collection-grid{perspective:1800px;perspective-origin:50vw 45%;transform-style:preserve-3d}.journey-active .collection-card{transform:translateY(var(--jy,0px)) rotateY(var(--jr,0deg)) rotateZ(var(--jz,0deg)) scale(var(--js,1));transform-style:preserve-3d;backface-visibility:hidden}.journey-active .collection-media,.journey-active .collection-card:nth-child(-n+2) .collection-media{clip-path:inset(0 var(--jc,0%) 0 var(--jc,0%) round 20px);transition:none;box-shadow:0 25px 60px #0004}.journey-active .collection-caption{transform:translateY(var(--caption-y,0px));transition:none}.journey-active .collection-media:after{background:linear-gradient(115deg,#ffffff12,transparent 40%,#00000008);border:1px solid #ffffff18}.project-journey:not(.journey-active) .collection-card{transform-origin:center top;transition:opacity .8s,translate .9s,transform .9s cubic-bezier(.16,1,.3,1)}.project-journey:not(.journey-active) .collection-card.journey-waiting{opacity:.08;translate:0 65px;transform:perspective(1000px) rotateX(9deg) scale(.92)}.project-journey:not(.journey-active) .collection-card.is-visible{transform:perspective(1000px) rotateX(0) scale(1)}@media(max-width:900px){.project-journey .collection-media{clip-path:inset(var(--mobile-inset,0%) 0 0 0 round 16px);border-radius:16px}.project-journey .collection-media:after,.project-journey .collection-open{border-radius:16px}.project-journey .journey-waiting .collection-media{--mobile-inset:18%}}@media(prefers-reduced-motion:reduce){.project-journey .collection-card.journey-waiting{transform:none;translate:none;opacity:1}.project-journey .collection-media{clip-path:none!important}}
/* Each card owns its perspective; the moving rail must stay a flat plane. */
.journey-active{width:100vw;margin-left:calc(50% - 50vw);margin-right:0}.journey-active .collection-grid{perspective:none;transform-style:flat;gap:clamp(40px,7vw,130px);padding-left:calc((100vw - min(67vw,1050px))/2);padding-right:calc((100vw - min(67vw,1050px))/2)}.journey-active .collection-card{width:min(67vw,1050px);flex-basis:min(67vw,1050px);transform:perspective(1600px) translateY(var(--jy,0px)) rotateY(var(--jr,0deg)) rotateZ(var(--jz,0deg)) scale(var(--js,1));transform-style:flat;backface-visibility:visible}.journey-active .collection-media,.journey-active .collection-card:nth-child(-n+2) .collection-media{height:min(54vh,650px)}.journey-active .journey-controls{z-index:4}.journey-active .collection-caption{max-width:100%}
