.pre{--pre-base:0.2s;--pre-step:0.04s;animation:pre-lift .9s cubic-bezier(.76,0,.24,1) 1.35s both}.pre-letter{display:inline-block;animation:pre-letter .7s cubic-bezier(.2,.8,.2,1) both}.pre-bar{transform-origin:left;animation:pre-bar 1.1s cubic-bezier(.65,0,.35,1) .15s both}@keyframes pre-lift{to{transform:translateY(-100%)}}@keyframes pre-letter{0%{transform:translateY(110%);opacity:0}}@keyframes pre-bar{0%{transform:scaleX(0)}}@media (max-width:1023px){.pre{--pre-base:0.05s;--pre-step:0.03s;animation-duration:.7s;animation-delay:.45s}.pre-letter{animation-duration:.5s}}@media (prefers-reduced-motion:reduce){.pre{display:none}}.rail-panel{transition:flex-grow .8s cubic-bezier(.65,0,.35,1),transform .4s cubic-bezier(.34,1.56,.64,1)}.rail-panel img{transition:transform 1s cubic-bezier(.2,.8,.2,1),opacity .6s}.rail-panel:hover img{transform:scale(1.04)}.rail-name{transition:color .3s}.rail-collapsed:hover .rail-name{color:var(--inv-accent)}.project-pill{transition:background .25s,color .25s}@media (hover:hover){.project-pill:hover{background:var(--inv-ink);color:var(--bg-deep)}}.on-dark .project-detail :focus-visible{outline-color:var(--accent)}@media (prefers-reduced-motion:no-preference){@supports (animation-timeline:view()){.fan{animation:linear both;animation-timeline:view();animation-range:entry 5% cover 35%}.fan-0{animation-name:fan-0}.fan-1{animation-name:fan-1}.fan-2{animation-name:fan-2}@keyframes fan-0{0%{transform:translateX(26.5%) rotate(-5deg) scale(.9)}}@keyframes fan-1{0%{transform:translateX(-150%) rotate(3deg) scale(.9)}}@keyframes fan-2{0%{transform:translateX(-255%) rotate(7deg) scale(.9)}}}}.project-snap{scroll-snap-type:x mandatory;scrollbar-width:none}.project-snap::-webkit-scrollbar{display:none}.project-snap>*{scroll-snap-align:start}.project-card{transition:border-color .3s,transform .4s cubic-bezier(.34,1.4,.64,1)}.project-card:active{transform:scale(.98)}.project-panel{transition:opacity .4s ease,visibility .4s}.detail-btn{transition:background .2s,color .2s,transform .2s}.detail-btn:active{transform:scale(.96)}@media (hover:hover){.detail-btn:hover{background:var(--detail-ink);color:var(--detail-bg)}}