.references-hero{background:linear-gradient(135deg, hsl(var(--primary) / .05) 0%, hsl(var(--background)) 50%, hsl(var(--secondary) / .05) 100%)}.references-hero-title{background:linear-gradient(135deg, hsl(var(--primary)), hsl(var(--primary) / .8), hsl(var(--secondary)));-webkit-text-fill-color:transparent;background-size:200% 200%;-webkit-background-clip:text;background-clip:text;animation:3s ease-in-out infinite gradient-shift}@keyframes gradient-shift{0%,to{background-position:0%}50%{background-position:100%}}.project-card{transform-origin:50%;will-change:transform;backface-visibility:hidden;-webkit-font-smoothing:subpixel-antialiased;border-radius:.75rem;transition:transform .3s cubic-bezier(.4,0,.2,1),box-shadow .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden;transform:translateZ(0)}.project-card:before{content:"";background:linear-gradient(135deg, hsl(var(--primary) / .1) 0%, transparent 50%, hsl(var(--secondary) / .1) 100%);opacity:0;z-index:1;pointer-events:none;transition:opacity .25s;position:absolute;inset:0}.project-card:hover:before{opacity:1}.project-card:hover{box-shadow:0 20px 40px -12px hsl(var(--primary) / .2), 0 0 0 1px hsl(var(--primary) / .1);transform:translateY(-6px)translateZ(0)}.project-card-image{will-change:transform;transition:transform .4s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden;transform:translateZ(0)}.project-card:hover .project-card-image{transform:scale(1.05)translateZ(0)}.project-card .image-error{background:linear-gradient(135deg, hsl(var(--muted)) 0%, hsl(var(--muted) / .5) 100%)}.project-card .image-error:after{content:"📷";opacity:.5;font-size:2rem;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.project-card-overlay{opacity:0;background:linear-gradient(#0000 0%,#0003 40%,#0006 70%,#000c 100%);transition:opacity .25s cubic-bezier(.4,0,.2,1)}.project-card:hover .project-card-overlay{opacity:1}.project-card-actions{opacity:0;transition:transform .25s cubic-bezier(.4,0,.2,1),opacity .25s cubic-bezier(.4,0,.2,1);transform:translateY(8px)}.project-card:hover .project-card-actions{opacity:1;transform:translateY(0)}.project-action-btn{-webkit-backdrop-filter:blur(8px);transition:transform .15s cubic-bezier(.4,0,.2,1),background-color .15s;position:relative;overflow:hidden;transform:translateZ(0)}.project-action-btn:before{content:"";background:#ffffff4d;border-radius:50%;width:0;height:0;transition:width .2s,height .2s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.project-action-btn:hover:before{width:100px;height:100px}.project-action-btn:active{transform:scale(.96)translateZ(0)}.project-badge{-webkit-backdrop-filter:blur(8px);border:1px solid hsl(var(--primary) / .2);box-shadow:0 4px 6px -1px hsl(var(--primary) / .1);transition:transform .15s,box-shadow .15s}.project-badge:hover{box-shadow:0 6px 8px -1px hsl(var(--primary) / .15);transform:translateY(-1px)}.star-rating{gap:.125rem;display:flex}.star-rating .star{transform-origin:50%;transition:transform .15s}.star-rating:hover .star{transform:scale(1.08)}.star-rating .star.filled{color:#fbbf24;filter:drop-shadow(0 1px 2px #fbbf244d)}.project-list-item{border:1px solid hsl(var(--border) / .5);transition:transform .25s cubic-bezier(.4,0,.2,1),border-color .25s,box-shadow .25s cubic-bezier(.4,0,.2,1);transform:translateZ(0)}.project-list-item:hover{border-color:hsl(var(--primary) / .3);box-shadow:0 10px 25px -5px hsl(var(--primary) / .1), 0 0 0 1px hsl(var(--primary) / .05);transform:translate(3px)translateZ(0)}.filters-section{-webkit-backdrop-filter:blur(12px);border-bottom:1px solid hsl(var(--border) / .5);box-shadow:0 1px 3px 0 hsl(var(--foreground) / .1)}.filter-tabs{position:relative}.filter-tab{border-radius:.375rem;transition:all .2s;position:relative}.filter-tab[data-state=active]{background:hsl(var(--primary));color:hsl(var(--primary-foreground));box-shadow:0 2px 4px hsl(var(--primary) / .3)}.filter-tab[data-state=active]:after{content:"";background:hsl(var(--primary));border-radius:50%;width:6px;height:6px;position:absolute;bottom:-2px;left:50%;transform:translate(-50%)}.view-toggle{background:hsl(var(--muted));box-shadow:inset 0 1px 2px hsl(var(--foreground) / .1);border-radius:.5rem;padding:.25rem}.view-toggle-btn{border-radius:.25rem;transition:all .2s}.view-toggle-btn[data-active=true]{background:hsl(var(--background));box-shadow:0 1px 3px hsl(var(--foreground) / .1);transform:scale(1.05)}.search-input{border:1px solid hsl(var(--border));transition:all .2s}.search-input:focus{border-color:hsl(var(--primary));box-shadow:0 0 0 2px hsl(var(--primary) / .2), 0 1px 3px hsl(var(--foreground) / .1)}.skeleton{background:linear-gradient(90deg, hsl(var(--muted)) 25%, hsl(var(--muted) / .5) 50%, hsl(var(--muted)) 75%);background-size:200% 100%;animation:1.5s infinite skeleton-loading}@keyframes skeleton-loading{0%{background-position:200% 0}to{background-position:-200% 0}}.project-modal{-webkit-backdrop-filter:blur(8px);animation:.25s cubic-bezier(.4,0,.2,1) modal-appear}@keyframes modal-appear{0%{opacity:0;transform:scale(.96)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}.project-modal-content{scrollbar-width:thin;scrollbar-color:hsl(var(--muted)) transparent;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;max-height:90vh;overflow-y:auto}.project-modal-content::-webkit-scrollbar-track{background:0 0}.project-modal-content::-webkit-scrollbar-thumb{background:hsl(var(--muted));border-radius:3px}.fullscreen-viewer{-webkit-backdrop-filter:blur(4px);background:#000000f2;animation:.2s viewer-appear}@keyframes viewer-appear{0%{opacity:0}to{opacity:1}}.viewer-controls{-webkit-backdrop-filter:blur(8px);border-radius:.5rem;transition:background-color .2s}.viewer-controls:hover{background:#000000b3}.viewer-nav-btn{-webkit-backdrop-filter:blur(8px);will-change:transform;border-radius:50%;transition:transform .2s cubic-bezier(.4,0,.2,1),background-color .2s;transform:translateZ(0)}.viewer-nav-btn:hover{background:#000c;transform:scale(1.08)translateZ(0)}.viewer-nav-btn:active{transform:scale(.96)translateZ(0)}.zoom-controls{-webkit-backdrop-filter:blur(8px);background:#00000080;border-radius:.5rem;gap:.25rem;padding:.25rem;display:flex}.zoom-btn{color:#fff;cursor:pointer;background:0 0;border:none;border-radius:.25rem;justify-content:center;align-items:center;min-width:44px;min-height:44px;padding:.5rem;transition:transform .15s,background-color .15s;display:flex;position:relative;overflow:hidden;transform:translateZ(0)}.zoom-btn:before{content:"";background:#fff3;border-radius:50%;width:0;height:0;transition:width .2s,height .2s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.zoom-btn:hover:before{width:40px;height:40px}.zoom-btn:hover:not(:disabled){background:#fff3;transform:scale(1.05)translateZ(0)}.zoom-btn:disabled{opacity:.5;cursor:not-allowed}.zoom-btn:disabled:hover{background:0 0;transform:translateZ(0)}.pagination-dots{justify-content:center;align-items:center;gap:.5rem;display:flex}.pagination-dot{cursor:pointer;background:#ffffff80;border:none;border-radius:50%;width:.75rem;height:.75rem;transition:transform .2s cubic-bezier(.4,0,.2,1),background-color .2s;position:relative;overflow:hidden;transform:translateZ(0)}.pagination-dot:before{content:"";background:#ffffff4d;border-radius:50%;width:0;height:0;transition:width .2s,height .2s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.pagination-dot:hover:before{width:20px;height:20px}.pagination-dot.active{background:#fff;transform:scale(1.2)translateZ(0);box-shadow:0 0 8px #ffffff80}.pagination-dot:hover:not(.active){background:#ffffffbf;transform:scale(1.08)translateZ(0)}.viewer-info{-webkit-backdrop-filter:blur(8px);background:#00000080;border-radius:.5rem;max-width:70%;padding:1rem;animation:.25s slide-up}@keyframes slide-up{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.viewer-counter{-webkit-backdrop-filter:blur(8px);color:#fff;background:#00000080;border-radius:.5rem;padding:.5rem .75rem;font-size:.875rem;font-weight:500;animation:.25s slide-up}.zoom-indicator{-webkit-backdrop-filter:blur(8px);color:#fff;background:#00000080;border-radius:.5rem;padding:.5rem .75rem;font-size:.875rem;font-weight:500;animation:.25s zoom-appear}@keyframes zoom-appear{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.cta-section{background:linear-gradient(135deg, hsl(var(--primary) / .05) 0%, hsl(var(--secondary) / .05) 100%);position:relative;overflow:hidden}.cta-section:before{content:"";background:radial-gradient(circle at 30% 20%, hsl(var(--primary) / .1) 0%, transparent 50%);pointer-events:none;position:absolute;inset:0}.touch-gesture-hint{animation:2s infinite pulse}@keyframes pulse{0%,to{opacity:.6}50%{opacity:1}}.image-pannable{cursor:grab}.image-pannable:active{cursor:grabbing}.image-zoomed{cursor:move}.error-state{color:hsl(var(--destructive));background:hsl(var(--destructive) / .1);border:1px solid hsl(var(--destructive) / .2);border-radius:.5rem;padding:1rem;animation:.4s ease-in-out shake}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}.success-state{color:hsl(var(--success,142 76% 36%));background:hsl(var(--success,142 76% 36%) / .1);border:1px solid hsl(var(--success,142 76% 36%) / .2);border-radius:.5rem;padding:1rem;animation:.4s bounce-in}@keyframes bounce-in{0%{opacity:0;transform:scale(.9)}50%{transform:scale(1.03)}to{opacity:1;transform:scale(1)}}@media (max-width:640px){.project-card{margin-bottom:1rem}.project-card:hover{transform:translateY(-3px)translateZ(0)}.project-card:hover .project-card-image{transform:scale(1.03)translateZ(0)}.filter-tabs{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;scroll-behavior:smooth;overflow-x:auto}.filter-tabs::-webkit-scrollbar{display:none}.references-filter-section{z-index:10;position:relative}.references-filter-container{flex-direction:column;gap:1rem;width:100%;display:flex;position:relative}.references-search-tabs-wrapper{flex-direction:column;gap:.75rem;width:100%;display:flex;position:relative}.references-search-wrapper{width:100%;position:relative}.references-search-wrapper input{width:100%}.references-category-tabs{width:100%;position:relative}.references-tabs-list{position:relative;width:100%!important;height:auto!important;min-height:unset!important;grid-template-columns:repeat(3,1fr)!important;gap:.25rem!important;display:grid!important}.references-tabs-list button{white-space:nowrap;text-overflow:ellipsis;position:relative;overflow:hidden;justify-content:center!important;align-items:center!important;min-height:44px!important;padding:.5rem .25rem!important;font-size:.75rem!important;display:flex!important}.references-category-tabs [role=tablist]{width:100%!important;height:auto!important;min-height:unset!important;grid-template-columns:repeat(3,1fr)!important;gap:.25rem!important;display:grid!important}.references-category-tabs [role=tab]{justify-content:center!important;align-items:center!important;min-height:44px!important;padding:.5rem .25rem!important;font-size:.75rem!important;display:flex!important}.references-view-controls{flex-direction:row;justify-content:space-between;align-items:center;width:100%;margin-top:.75rem;display:flex;position:relative}.viewer-controls{padding:.5rem}.viewer-nav-btn{min-width:48px;min-height:48px;padding:.75rem}.zoom-btn{min-width:48px;min-height:48px;padding:.5rem}.pagination-dot{width:.625rem;height:.625rem;margin:-.5rem;padding:.5rem}.viewer-info{max-width:90%;padding:.75rem}.zoom-indicator{padding:.375rem .5rem;font-size:.75rem}.project-card{width:100%;max-width:100%}.references-filter-section .container{padding-left:1rem;padding-right:1rem}}@media (max-width:480px){.project-card:hover{transform:translateY(-2px)translateZ(0)}.project-card:hover .project-card-image{transform:scale(1.02)translateZ(0)}.viewer-nav-btn{min-width:44px;min-height:44px;padding:.5rem}.zoom-btn{min-width:44px;min-height:44px;padding:.375rem}.pagination-dot{width:.5rem;height:.5rem}}@media (min-width:641px) and (max-width:1024px){.project-card{width:100%}.project-card:hover{transform:translateY(-4px)translateZ(0)}}@media (prefers-color-scheme:dark){.project-card{border-color:hsl(var(--border) / .3)}.project-card:hover{border-color:hsl(var(--primary) / .4);box-shadow:0 20px 40px -12px hsl(var(--primary) / .25), 0 0 0 1px hsl(var(--primary) / .2)}.filters-section{border-bottom-color:hsl(var(--border) / .3);box-shadow:0 1px 3px 0 hsl(var(--foreground) / .05)}.viewer-nav-btn{color:#fff;background:#ffffff1a}.viewer-nav-btn:hover{background:#fff3}}@media (prefers-contrast:high){.project-card,.project-badge{border-width:2px}.filter-tab[data-state=active]{border:2px solid hsl(var(--primary))}.viewer-nav-btn,.zoom-btn,.pagination-dot{border:2px solid #ffffff80}}@media (prefers-reduced-motion:reduce){.references-hero *,.references-hero :before,.references-hero :after,.references-filter-section *,.references-filter-section :before,.references-filter-section :after,.project-card *,.project-card :before,.project-card :after,.fullscreen-viewer *,.fullscreen-viewer :before,.fullscreen-viewer :after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.project-card:hover{transform:none}.skeleton{background:hsl(var(--muted));animation:none}}@media print{.filters-section,.viewer-controls,.zoom-controls,.pagination-dots,.project-card-actions,.viewer-nav-btn,.zoom-btn{display:none!important}.project-card{break-inside:avoid;box-shadow:none;border:1px solid #ccc}.project-card:hover{transform:none}.fullscreen-viewer{display:none!important}}.project-card:focus-visible,.project-action-btn:focus-visible,.filter-tab:focus-visible,.view-toggle-btn:focus-visible,.viewer-nav-btn:focus-visible,.zoom-btn:focus-visible,.pagination-dot:focus-visible{outline:2px solid hsl(var(--primary));outline-offset:2px}.loading-shimmer{background:linear-gradient(90deg,#0000 0%,#fff6 50%,#0000 100%) 0 0/200% 100%;animation:1.5s infinite shimmer}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.project-card,.viewer-nav-btn,.zoom-btn,.pagination-dot,.project-action-btn{backface-visibility:hidden;-webkit-font-smoothing:subpixel-antialiased;contain:layout style paint;transform:translateZ(0)}.project-card img,.fullscreen-viewer img{image-rendering:auto}.references-hero-content{animation:.6s ease-out both references-hero-reveal}@keyframes references-hero-reveal{0%{opacity:0;transform:translateY(1rem)}to{opacity:1;transform:translateY(0)}}.project-modal-content::-webkit-scrollbar{width:8px}.project-modal-content::-webkit-scrollbar-track{background:hsl(var(--muted) / .3);border-radius:4px}.project-modal-content::-webkit-scrollbar-thumb{background:hsl(var(--muted));border:1px solid hsl(var(--background));border-radius:4px}.project-modal-content::-webkit-scrollbar-thumb:hover{background:hsl(var(--muted-foreground) / .7)}@media (max-width:640px){.project-card{width:100%;max-width:100%;margin-bottom:0;margin-left:auto;margin-right:auto}}.references-category-scroller{overscroll-behavior-inline:contain;scroll-snap-type:inline proximity;-webkit-mask-image:linear-gradient(90deg,#000 0 calc(100% - 1.5rem),#0000 100%);mask-image:linear-gradient(90deg,#000 0 calc(100% - 1.5rem),#0000 100%)}.references-category-scroller [role=tab]{scroll-snap-align:start}@media (hover:none) and (pointer:coarse){.project-card:hover,.project-card:hover .project-card-image{transform:none}}html{scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){.references-hero-content{animation:none}html{scroll-behavior:auto}}
