.text-rotate{white-space:pre-wrap;flex-wrap:wrap;display:inline-flex;position:relative}.text-rotate-sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.text-rotate-word{display:inline-flex}.text-rotate-lines{flex-direction:column;width:100%;display:flex}.text-rotate-element{display:inline-block}.text-rotate-space{white-space:pre}
.project-carousel-wrapper{flex-direction:column;gap:1rem;width:100%;display:flex}.project-carousel-container{background:#15151580;border:1px solid #ffffff1a;border-radius:1rem;padding:.5rem;transition:border-color .3s;position:relative;overflow:hidden}.project-carousel-container:hover{border-color:var(--color-primary)}.project-carousel-track{display:flex}.project-carousel-item{cursor:grab;background-color:#1a1a1a;border-radius:.75rem;flex-direction:column;flex-shrink:0;transition:transform .3s;display:flex;position:relative;overflow:hidden}.project-carousel-item:active{cursor:grabbing}.project-carousel-item:hover{transform:scale(1.02)}.project-browser{background:#202020;border-radius:.75rem;flex-direction:column;width:100%;display:flex;overflow:hidden}.project-browser-header{background:#252525;border-bottom:1px solid #ffffff0d;align-items:center;height:2rem;padding:0 1rem;display:flex}.browser-dots{gap:.5rem;display:flex}.browser-dots .dot{border-radius:50%;width:.625rem;height:.625rem}.browser-dots .dot.red{background:#ff5f57}.browser-dots .dot.yellow{background:#febc2e}.browser-dots .dot.green{background:#28c840}.project-preview{aspect-ratio:16/9;background:linear-gradient(135deg,#202020,#151515);justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.project-thumbnail{justify-content:center;align-items:center;width:100%;height:100%;display:flex}.project-thumbnail-img{object-fit:cover;width:100%;height:100%;transition:transform .5s}.project-carousel-item:hover .project-thumbnail-img{transform:scale(1.05)}.project-thumbnail-placeholder{background:linear-gradient(135deg,var(--color-primary)0%,var(--color-secondary)100%);justify-content:center;align-items:center;width:100%;height:100%;display:flex}.project-thumbnail-placeholder span{color:#fff;opacity:.5;font-size:4rem;font-weight:800}.project-actions{z-index:10;gap:.5rem;display:flex;position:absolute;top:1rem;right:1rem}.project-action-btn{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fffc;background:#00000080;border-radius:50%;justify-content:center;align-items:center;width:2rem;height:2rem;text-decoration:none;transition:all .3s;display:flex}.project-action-btn:hover{background:var(--color-primary);color:#fff;transform:translateY(-2px)}.project-info-overlay{background:linear-gradient(#0000,#000000e6);padding:1.5rem;position:absolute;bottom:0;left:0;right:0}.project-category{text-transform:uppercase;letter-spacing:.1em;color:var(--color-primary-light);margin-bottom:.5rem;font-size:.75rem;font-weight:700;display:inline-block}.project-title{color:#fff;margin:0 0 .25rem;font-size:1.25rem;font-weight:700}.project-description{color:#ffffffb3;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:.875rem;display:-webkit-box;overflow:hidden}.carousel-controls{justify-content:center;align-items:center;gap:1rem;display:flex}.carousel-nav-btn{color:#ffffffb3;cursor:pointer;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:50%;justify-content:center;align-items:center;width:2.5rem;height:2.5rem;transition:all .3s;display:flex}.carousel-nav-btn:hover{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.carousel-indicators{gap:.5rem;display:flex}.carousel-indicator{cursor:pointer;background:#ffffff4d;border-radius:50%;width:.5rem;height:.5rem;transition:all .3s}.carousel-indicator.active,.carousel-indicator:hover{background:var(--color-primary-light)}
.logoloop{--logoloop-gap:32px;--logoloop-logoHeight:28px;--logoloop-fadeColorAuto:#0a0a0f;position:relative;overflow:hidden}.logoloop--vertical{height:100%;display:inline-block}.logoloop--scale-hover{padding-top:calc(var(--logoloop-logoHeight)*.1);padding-bottom:calc(var(--logoloop-logoHeight)*.1)}.logoloop__track{will-change:transform;-webkit-user-select:none;user-select:none;z-index:0;width:max-content;display:flex;position:relative}.logoloop--vertical .logoloop__track{flex-direction:column;width:100%;height:max-content}.logoloop__list{align-items:center;margin:0;padding:0;list-style:none;display:flex}.logoloop--vertical .logoloop__list{flex-direction:column}.logoloop__item{margin-right:var(--logoloop-gap);font-size:var(--logoloop-logoHeight);color:var(--text-secondary);flex:none;line-height:1;transition:color .3s}.logoloop__item:hover{color:var(--color-accent-green)}.logoloop--vertical .logoloop__item{margin-right:0;margin-bottom:var(--logoloop-gap)}.logoloop__item:last-child{margin-right:var(--logoloop-gap)}.logoloop--vertical .logoloop__item:last-child{margin-right:0;margin-bottom:var(--logoloop-gap)}.logoloop__node{align-items:center;display:inline-flex}.logoloop__item img{height:var(--logoloop-logoHeight);object-fit:contain;width:auto;image-rendering:-webkit-optimize-contrast;-webkit-user-drag:none;pointer-events:none;transition:transform .3s cubic-bezier(.4,0,.2,1);display:block}.logoloop--scale-hover .logoloop__item{overflow:visible}.logoloop--scale-hover .logoloop__item:hover img,.logoloop--scale-hover .logoloop__item:hover .logoloop__node{transform-origin:50%;transform:scale(1.2)}.logoloop--scale-hover .logoloop__node{transition:transform .3s cubic-bezier(.4,0,.2,1)}.logoloop__link{color:inherit;border-radius:4px;align-items:center;text-decoration:none;transition:opacity .2s;display:inline-flex}.logoloop__link:hover{opacity:.8}.logoloop__link:focus-visible{outline-offset:2px;outline:2px solid}.logoloop--fade:before,.logoloop--fade:after{content:"";pointer-events:none;z-index:10;width:clamp(24px,8%,120px);position:absolute;top:0;bottom:0}.logoloop--fade:before{background:linear-gradient(to right,var(--logoloop-fadeColor,var(--logoloop-fadeColorAuto))0%,#0000 100%);left:0}.logoloop--fade:after{background:linear-gradient(to left,var(--logoloop-fadeColor,var(--logoloop-fadeColorAuto))0%,#0000 100%);right:0}.logoloop--vertical.logoloop--fade:before,.logoloop--vertical.logoloop--fade:after{width:100%;height:clamp(24px,8%,120px);left:0;right:0}.logoloop--vertical.logoloop--fade:before{background:linear-gradient(to bottom,var(--logoloop-fadeColor,var(--logoloop-fadeColorAuto))0%,#0000 100%);top:0;bottom:auto}.logoloop--vertical.logoloop--fade:after{background:linear-gradient(to top,var(--logoloop-fadeColor,var(--logoloop-fadeColorAuto))0%,#0000 100%);top:auto;bottom:0}.tech-stack-section{border-top:1px solid var(--border-color);margin-top:4rem;padding-top:2rem}.tech-stack-label{text-align:center;text-transform:uppercase;letter-spacing:.15em;color:var(--text-muted);margin-bottom:1.5rem;font-size:.75rem;font-weight:600}@media (prefers-reduced-motion:reduce){.logoloop__track{transform:translate(0,0)!important}.logoloop__item img,.logoloop__node{transition:none!important}}
