*{margin:0;padding:0;box-sizing:border-box}:root{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;line-height:1.6;font-weight:400;--color-bg-primary: #0f0f0f;--color-bg-secondary: #1a1a1a;--color-bg-tertiary: #2a2a2a;--color-bg-card: #1e1e1e;--color-bg-modal: rgba(0, 0, 0, .85);--color-text-primary: #ffffff;--color-text-secondary: #b3b3b3;--color-text-tertiary: #808080;--color-text-muted: #666666;--color-border-primary: #333333;--color-border-secondary: #404040;--color-border-hover: #555555;--color-border-focus: #ffffff;--color-accent: #ffffff;--color-accent-hover: #f0f0f0;--primary-color: #000000;--primary-hover: #1a1a1a;--primary-gradient: linear-gradient(135deg, #000000 0%, #1a1a1a 100%);--primary-gradient-hover: linear-gradient(135deg, #1a1a1a 0%, #333333 100%);--secondary-color: #1a1a1a;--accent-color: #333333;--background-primary: var(--color-bg-primary);--background-secondary: var(--color-bg-secondary);--background-tertiary: var(--color-bg-tertiary);--text-primary: var(--color-text-primary);--text-secondary: var(--color-text-secondary);--text-muted: var(--color-text-muted);--text-inverse: #000000;--border-color: var(--color-border-primary);--border-hover: var(--color-border-hover);--error-color: #ffffff;--success-color: #ffffff;--warning-color: #ffffff;--info-color: #ffffff;--shadow-xs: 0 1px 2px rgba(255, 255, 255, .1);--shadow-sm: 0 1px 3px rgba(255, 255, 255, .1);--shadow-md: 0 4px 6px rgba(255, 255, 255, .1);--shadow-lg: 0 10px 25px rgba(255, 255, 255, .1);--shadow-xl: 0 20px 25px rgba(255, 255, 255, .1);--shadow-2xl: 0 25px 50px rgba(255, 255, 255, .1);--shadow-inner: inset 0 2px 4px rgba(255, 255, 255, .1);--shadow-colored: 0 10px 25px rgba(255, 255, 255, .1);--radius-xs: 2px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-2xl: 20px;--radius-3xl: 24px;--radius-full: 9999px;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--spacing-3xl: 4rem;--transition-fast: .15s ease;--transition-normal: .2s ease;--transition-slow: .3s ease;--transition-all: all .2s ease;--transition-bounce: all .3s cubic-bezier(.68, -.55, .265, 1.55);--transition-smooth: all .4s cubic-bezier(.25, .46, .45, .94);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;min-height:100vh;background:var(--color-bg-primary);background-image:radial-gradient(circle at 1px 1px,rgba(255,255,255,.03) 1px,transparent 0);background-size:20px 20px;color:var(--color-text-primary);font-family:inherit;line-height:inherit}a{color:var(--primary-color);text-decoration:none;transition:color .2s ease}a:hover{color:#5a67d8;text-decoration:underline}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.2;color:var(--text-primary)}h1{font-size:2.5rem}h2{font-size:2rem}h3{font-size:1.5rem}h4{font-size:1.25rem}p{line-height:1.6;color:var(--text-secondary)}input,textarea,select{font-family:inherit;font-size:1rem}button{font-family:inherit;font-size:1rem;cursor:pointer;border:none;outline:none;transition:all .2s ease}button:disabled{cursor:not-allowed;opacity:.6}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--background-secondary);border-radius:4px}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--border-hover)}img{max-width:100%;height:auto}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);border:none;border-radius:var(--radius-md);font-family:inherit;font-size:1rem;font-weight:600;text-decoration:none;cursor:pointer;transition:var(--transition-all);position:relative;overflow:hidden}.btn:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.btn-primary{background:var(--primary-gradient);color:var(--text-inverse);box-shadow:var(--shadow-md)}.btn-primary:hover:not(:disabled){background:var(--primary-gradient-hover);transform:translateY(-2px);box-shadow:var(--shadow-colored)}.btn-secondary{background:var(--background-primary);color:var(--primary-color);border:2px solid var(--primary-color);box-shadow:var(--shadow-sm)}.btn-secondary:hover:not(:disabled){background:var(--primary-color);color:var(--text-inverse);transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-outline{background:transparent;color:var(--primary-color);border:2px solid var(--border-color)}.btn-outline:hover:not(:disabled){border-color:var(--primary-color);background:var(--primary-color);color:var(--text-inverse);transform:translateY(-1px)}.btn-ghost{background:transparent;color:var(--text-secondary);border:none;box-shadow:none}.btn-ghost:hover:not(:disabled){background:var(--background-tertiary);color:var(--text-primary)}.btn-sm{padding:var(--spacing-xs) var(--spacing-md);font-size:.875rem}.btn-lg{padding:var(--spacing-md) var(--spacing-xl);font-size:1.125rem}.btn-full{width:100%}.card{background:var(--background-primary);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);border:1px solid var(--border-color);overflow:hidden;transition:var(--transition-all)}.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-xl)}.card-header{padding:var(--spacing-xl);border-bottom:1px solid var(--border-color)}.card-body{padding:var(--spacing-xl)}.card-footer{padding:var(--spacing-xl);border-top:1px solid var(--border-color);background:var(--background-secondary)}.form-label{display:block;margin-bottom:var(--spacing-sm);font-weight:600;color:var(--text-primary);font-size:.875rem}.form-input{width:100%;padding:var(--spacing-sm) var(--spacing-md);border:2px solid var(--border-color);border-radius:var(--radius-md);font-size:1rem;transition:var(--transition-all);background:var(--background-primary)}.form-input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #0000001a}.form-input:hover{border-color:var(--border-hover)}.form-textarea{resize:vertical;min-height:100px}.loading-spinner{display:inline-block;width:20px;height:20px;border:2px solid var(--border-color);border-radius:50%;border-top-color:var(--primary-color);animation:spin 1s ease-in-out infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-dots{display:inline-flex;gap:4px}.loading-dots span{width:6px;height:6px;border-radius:50%;background:var(--primary-color);animation:bounce 1.4s ease-in-out infinite both}.loading-dots span:nth-child(1){animation-delay:-.32s}.loading-dots span:nth-child(2){animation-delay:-.16s}@keyframes bounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-4{gap:1rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-4{padding:1rem}.rounded{border-radius:var(--radius-md)}.rounded-lg{border-radius:var(--radius-lg)}.shadow{box-shadow:var(--shadow-md)}.shadow-lg{box-shadow:var(--shadow-lg)}.text-xs{font-size:.75rem}.text-sm{font-size:.875rem}.text-base{font-size:1rem}.text-lg{font-size:1.125rem}.text-xl{font-size:1.25rem}.text-2xl{font-size:1.5rem}.text-3xl{font-size:1.875rem}.text-primary{color:var(--text-primary)}.text-secondary{color:var(--text-secondary)}.text-muted{color:var(--text-muted)}.text-error{color:var(--error-color)}.text-success{color:var(--success-color)}.text-warning{color:var(--warning-color)}.font-light{font-weight:300}.font-normal{font-weight:400}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.bg-primary{background-color:var(--primary-color)}.bg-secondary{background-color:var(--secondary-color)}.bg-white{background-color:#fff}.bg-transparent{background-color:transparent}.border{border:1px solid var(--border-color)}.border-primary{border-color:var(--primary-color)}.border-error{border-color:var(--error-color)}.border-success{border-color:var(--success-color)}.transition-colors{transition:color .2s ease,background-color .2s ease,border-color .2s ease}.transition-all{transition:all .2s ease}.transition-transform{transition:transform .2s ease}.hover\:text-primary:hover{color:var(--primary-color)}.hover\:bg-primary:hover{background-color:var(--primary-color)}.hover\:transform:hover{transform:translateY(-2px)}.hidden{display:none}.block{display:block}.inline{display:inline}.inline-block{display:inline-block}.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}.sticky{position:sticky}.w-full{width:100%}.h-full{height:100%}.min-h-screen{min-height:100vh}.overflow-hidden{overflow:hidden}.overflow-auto{overflow:auto}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}@media (max-width: 767px){:root{font-size:14px}body{padding:0}h1{font-size:2rem}h2{font-size:1.75rem}h3{font-size:1.25rem}.mobile-hidden{display:none!important}.mobile-full-width{width:100%!important}.mobile-text-center{text-align:center!important}.mobile-flex-col{flex-direction:column!important}.mobile-gap-2{gap:.5rem!important}.mobile-p-4{padding:1rem!important}.mobile-mt-2{margin-top:.5rem!important}.mobile-mb-2{margin-bottom:.5rem!important}}@media (min-width: 768px) and (max-width: 1023px){.tablet-hidden{display:none!important}.tablet-flex-col{flex-direction:column!important}.tablet-gap-3{gap:.75rem!important}}@media (min-width: 1024px){.desktop-hidden{display:none!important}.desktop-flex-row{flex-direction:row!important}.desktop-gap-4{gap:1rem!important}}.container{width:100%;max-width:1200px;margin:0 auto;padding:0 1rem}@media (min-width: 768px){.container{padding:0 2rem}}@media (min-width: 1024px){.container{padding:0 3rem}}.grid{display:grid;gap:1rem}.grid-cols-1{grid-template-columns:repeat(1,1fr)}.grid-cols-2{grid-template-columns:repeat(2,1fr)}.grid-cols-3{grid-template-columns:repeat(3,1fr)}.grid-cols-4{grid-template-columns:repeat(4,1fr)}@media (min-width: 768px){.md\:grid-cols-2{grid-template-columns:repeat(2,1fr)}.md\:grid-cols-3{grid-template-columns:repeat(3,1fr)}.md\:grid-cols-4{grid-template-columns:repeat(4,1fr)}}@media (min-width: 1024px){.lg\:grid-cols-3{grid-template-columns:repeat(3,1fr)}.lg\:grid-cols-4{grid-template-columns:repeat(4,1fr)}.lg\:grid-cols-5{grid-template-columns:repeat(5,1fr)}.lg\:grid-cols-6{grid-template-columns:repeat(6,1fr)}}@media (hover: none) and (pointer: coarse){button,a,input[type=button],input[type=submit],.clickable{min-height:44px;min-width:44px}*:hover{transform:none!important}}@media (prefers-contrast: high){:root{--border-color: #000;--text-secondary: #000}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@media (prefers-color-scheme: dark){:root{--primary-color: #000000;--secondary-color: #1a1a1a;--text-primary: #ffffff;--text-secondary: #cccccc;--text-muted: #999999;--border-color: #333333;--error-color: #ffffff;--success-color: #ffffff;--warning-color: #ffffff}body{background-color:#000;color:var(--text-primary)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes fadeInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes slideInUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes slideInDown{0%{transform:translateY(-100%)}to{transform:translateY(0)}}@keyframes bounce{0%,20%,53%,80%,to{transform:translateZ(0)}40%,43%{transform:translate3d(0,-8px,0)}70%{transform:translate3d(0,-4px,0)}90%{transform:translate3d(0,-2px,0)}}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}@keyframes shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-5px)}20%,40%,60%,80%{transform:translate(5px)}}@keyframes shimmer{0%{background-position:-200px 0}to{background-position:calc(200px + 100%) 0}}.animate-fade-in{animation:fadeIn .5s ease-out}.animate-fade-in-up{animation:fadeInUp .6s ease-out}.animate-fade-in-down{animation:fadeInDown .6s ease-out}.animate-fade-in-left{animation:fadeInLeft .6s ease-out}.animate-fade-in-right{animation:fadeInRight .6s ease-out}.animate-scale-in{animation:scaleIn .4s ease-out}.animate-slide-in-up{animation:slideInUp .5s ease-out}.animate-slide-in-down{animation:slideInDown .5s ease-out}.animate-bounce{animation:bounce 1s ease-in-out}.animate-pulse{animation:pulse 2s infinite}.animate-shake{animation:shake .5s ease-in-out}.animate-spin{animation:spin 1s linear infinite}.animate-delay-100{animation-delay:.1s}.animate-delay-200{animation-delay:.2s}.animate-delay-300{animation-delay:.3s}.animate-delay-500{animation-delay:.5s}.hover-lift{transition:var(--transition-smooth)}.hover-lift:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.hover-scale{transition:var(--transition-bounce)}.hover-scale:hover{transform:scale(1.05)}.hover-glow{transition:var(--transition-normal)}.hover-glow:hover{box-shadow:0 0 20px #0006}.loading-skeleton{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0,#f0f0f0 75%);background-size:200px 100%;animation:shimmer 1.5s infinite}.loading-dots{display:inline-block}.loading-dots:after{content:".";animation:dots 1.5s steps(5,end) infinite}@keyframes dots{0%,20%{color:#0000;text-shadow:.25em 0 0 rgba(0,0,0,0),.5em 0 0 rgba(0,0,0,0)}40%{color:#000;text-shadow:.25em 0 0 rgba(0,0,0,0),.5em 0 0 rgba(0,0,0,0)}60%{text-shadow:.25em 0 0 black,.5em 0 0 rgba(0,0,0,0)}80%,to{text-shadow:.25em 0 0 black,.5em 0 0 black}}.header{position:fixed;top:0;left:0;right:0;background:#000;box-shadow:0 1px 10px #0000004d;z-index:9999}.header-container{max-width:1400px;margin:0 auto;padding:0 var(--spacing-md);display:flex;align-items:center;justify-content:space-between;height:64px}.brand-section{flex-shrink:0}.brand-logo{display:flex;align-items:center;gap:var(--spacing-sm);text-decoration:none;color:var(--color-text-primary);transition:var(--transition-fast);padding:var(--spacing-xs) 0}.brand-logo:hover{color:var(--color-accent-hover)}.brand-icon{color:var(--color-accent);flex-shrink:0}.brand-name{font-size:1.5rem;font-weight:700;letter-spacing:-.02em}.brand-tagline{font-size:.75rem;color:var(--color-text-tertiary);font-weight:300;margin-left:var(--spacing-xs)}.desktop-nav{display:flex;align-items:center;gap:var(--spacing-lg)}.nav-link{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md);border:1px solid transparent;border-radius:var(--radius-md);color:var(--color-text-secondary);text-decoration:none;font-size:.875rem;font-weight:500;transition:all var(--transition-normal);position:relative}.nav-link:hover{color:var(--color-text-primary);border-color:var(--color-border-hover);background:#ffffff0d;transform:translateY(-1px)}.nav-link svg{flex-shrink:0;opacity:.7;transition:var(--transition-fast)}.nav-link:hover svg{opacity:1}.user-section{position:relative;display:flex;align-items:center}.user-menu-btn{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);background:transparent;color:var(--color-text-primary);cursor:pointer;transition:all var(--transition-normal);font-size:.875rem}.user-menu-btn:hover{border-color:var(--color-border-hover);background:#ffffff0d}.user-avatar{width:32px;height:32px;border-radius:50%;background:var(--color-bg-tertiary);display:flex;align-items:center;justify-content:center;border:1px solid var(--color-border-primary)}.user-name{font-weight:500;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chevron{transition:var(--transition-fast)}.chevron.open{transform:rotate(180deg)}.user-dropdown{position:absolute;top:calc(100% + var(--spacing-xs));right:0;min-width:200px;background:var(--color-bg-modal);border:1px solid var(--color-border-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);backdrop-filter:blur(10px);padding:var(--spacing-sm);z-index:var(--z-dropdown);animation:fadeIn .2s ease-out}.dropdown-item{display:flex;align-items:center;gap:var(--spacing-sm);width:100%;padding:var(--spacing-sm) var(--spacing-md);border:none;border-radius:var(--radius-md);background:transparent;color:var(--color-text-secondary);text-decoration:none;font-size:.875rem;cursor:pointer;transition:var(--transition-fast)}.dropdown-item:hover{color:var(--color-text-primary);background:#ffffff1a}.dropdown-item.logout-btn{color:var(--color-text-muted);border-top:1px solid var(--color-border-primary);margin-top:var(--spacing-xs);padding-top:var(--spacing-md)}.dropdown-item.logout-btn:hover{color:var(--color-text-primary)}.mobile-menu-btn{display:none;flex-direction:column;justify-content:center;align-items:center;width:40px;height:40px;border:1px solid var(--color-border-primary);border-radius:var(--radius-md);background:transparent;cursor:pointer;transition:var(--transition-normal)}.mobile-menu-btn:hover{border-color:var(--color-border-hover);background:#ffffff0d}.hamburger{position:relative;width:20px;height:16px}.hamburger span{position:absolute;left:0;width:100%;height:2px;background:var(--color-text-primary);border-radius:1px;transition:var(--transition-normal)}.hamburger span:nth-child(1){top:0}.hamburger span:nth-child(2){top:50%;transform:translateY(-50%)}.hamburger span:nth-child(3){bottom:0}.hamburger.active span:nth-child(1){top:50%;transform:translateY(-50%) rotate(45deg)}.hamburger.active span:nth-child(2){opacity:0}.hamburger.active span:nth-child(3){bottom:50%;transform:translateY(50%) rotate(-45deg)}.mobile-nav{position:absolute;top:100%;left:0;right:0;background:var(--color-bg-modal);border-bottom:1px solid var(--color-border-primary);backdrop-filter:blur(10px);transform:translateY(-100%);opacity:0;visibility:hidden;transition:all var(--transition-normal);z-index:var(--z-modal)}.mobile-nav.active{transform:translateY(0);opacity:1;visibility:visible}.mobile-nav-content{padding:var(--spacing-lg) var(--spacing-md);max-height:calc(100vh - 64px);overflow-y:auto}.mobile-user-info{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);margin-bottom:var(--spacing-lg);border:1px solid var(--color-border-primary);border-radius:var(--radius-lg);background:#ffffff05}.mobile-user-avatar{width:40px;height:40px;border-radius:50%;background:var(--color-bg-tertiary);display:flex;align-items:center;justify-content:center;border:1px solid var(--color-border-primary)}.mobile-user-name{font-weight:600;color:var(--color-text-primary)}.mobile-nav-link{display:flex;align-items:center;gap:var(--spacing-md);width:100%;padding:var(--spacing-md);margin-bottom:var(--spacing-sm);border:1px solid transparent;border-radius:var(--radius-lg);background:transparent;color:var(--color-text-secondary);text-decoration:none;font-size:1rem;font-weight:500;cursor:pointer;transition:all var(--transition-normal)}.mobile-nav-link:hover{color:var(--color-text-primary);border-color:var(--color-border-hover);background:#ffffff0d}.mobile-nav-link.logout-btn{color:var(--color-text-muted);border-top:1px solid var(--color-border-primary);margin-top:var(--spacing-lg);padding-top:var(--spacing-lg)}.mobile-nav-link.logout-btn:hover{color:var(--color-text-primary)}.mobile-nav-link svg{flex-shrink:0;opacity:.7}.mobile-nav-link:hover svg{opacity:1}.header-overlay{position:fixed;inset:0;background:#00000080;z-index:calc(var(--z-modal) - 1);animation:fadeIn .2s ease-out}@media (max-width: 768px){.desktop-nav,.user-section{display:none}.mobile-menu-btn{display:flex}.brand-name{font-size:1.25rem}.brand-tagline{display:none}.header-container{padding:0 var(--spacing-sm);height:56px}}@media (max-width: 480px){.brand-name{font-size:1.125rem}.mobile-nav-content{padding:var(--spacing-md) var(--spacing-sm)}.mobile-nav-link{padding:var(--spacing-sm) var(--spacing-md)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){.header *,.header *:before,.header *:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media (prefers-contrast: high){.nav-link,.mobile-nav-link,.user-avatar{border-color:var(--color-text-primary)}}.nav-link:focus-visible,.mobile-nav-link:focus-visible,.user-menu-btn:focus-visible,.mobile-menu-btn:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}.nav-link.active,.mobile-nav-link.active{color:var(--color-text-primary);background:#ffffff1a;border-color:var(--color-border-focus)}.language-section{position:relative;margin-right:var(--spacing-md)}.language-btn{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md);background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary);font-size:.875rem;font-weight:500;cursor:pointer;transition:all var(--transition-normal)}.language-btn:hover{color:var(--color-text-primary);border-color:var(--color-border-hover);background:#ffffff0d;transform:translateY(-1px)}.language-btn svg{flex-shrink:0;opacity:.7;transition:var(--transition-fast)}.language-btn:hover svg{opacity:1}.language-btn .chevron{transition:transform var(--transition-normal)}.language-btn .chevron.open{transform:rotate(180deg)}.language-dropdown{position:absolute;top:calc(100% + var(--spacing-xs));right:0;min-width:120px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);overflow:hidden;z-index:1000}.language-dropdown .dropdown-item{display:flex;align-items:center;gap:var(--spacing-sm);width:100%;padding:var(--spacing-sm) var(--spacing-md);background:transparent;border:none;color:var(--color-text-secondary);font-size:.875rem;text-align:left;cursor:pointer;transition:var(--transition-fast)}.language-dropdown .dropdown-item:hover{background:var(--color-surface-hover);color:var(--color-text-primary)}.language-dropdown .dropdown-item.active{background:var(--color-accent);color:#fff}.language-dropdown .dropdown-item.active:hover{background:var(--color-accent-hover)}@media (max-width: 768px){.language-section{display:none}}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:200px;gap:1rem;padding:2rem}.loading-fullscreen{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:rgba(var(--color-bg-primary-rgb),.9);backdrop-filter:blur(8px);z-index:9999;gap:1.5rem}.loading-spinner{position:relative;display:inline-block;will-change:transform}.loading-spinner-small{width:32px;height:32px}.loading-spinner-medium{width:48px;height:48px}.loading-spinner-large{width:64px;height:64px}.spinner-ring{position:absolute;top:0;left:0;width:100%;height:100%;border:3px solid transparent;border-radius:50%;animation:spin 2s linear infinite;will-change:transform}.spinner-ring:nth-child(1){border-top-color:var(--color-accent);animation-duration:1.5s}.spinner-ring:nth-child(2){border-right-color:var(--color-primary);animation-duration:2s;animation-direction:reverse}.spinner-ring:nth-child(3){border-bottom-color:var(--color-secondary);animation-duration:2.5s}.loading-spinner-small .spinner-ring{border-width:2px}.loading-spinner-large .spinner-ring{border-width:4px}.loading-text{color:var(--color-text-secondary);font-size:.875rem;font-weight:500;margin:0;text-align:center;opacity:.8}.loading-fullscreen .loading-text{font-size:1rem;color:var(--color-text-primary)}@media (max-width: 480px){.loading-container{min-height:150px;padding:1.5rem;gap:.75rem}.loading-fullscreen{gap:1rem}.loading-spinner-medium{width:40px;height:40px}.loading-spinner-large{width:56px;height:56px}.loading-text{font-size:.8rem}.loading-fullscreen .loading-text{font-size:.9rem}}@media (prefers-color-scheme: dark){.loading-fullscreen{background:#000c}}.home-container{min-height:100vh;background:var(--color-bg-primary);color:var(--color-text-primary)}.hero-section{padding:var(--spacing-3xl) 0;text-align:center;position:relative;overflow:hidden}.hero-section:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 50%,rgba(255,255,255,.02) 0%,transparent 70%);pointer-events:none}.hero-content{max-width:800px;margin:0 auto;padding:0 var(--spacing-md);position:relative;z-index:1}.brand-showcase{margin-bottom:var(--spacing-3xl)}.brand-icon-large{display:inline-flex;align-items:center;justify-content:center;width:120px;height:120px;border:2px solid var(--color-border-primary);border-radius:50%;background:var(--color-bg-secondary);color:var(--color-accent);margin-bottom:var(--spacing-xl);transition:all var(--transition-normal);position:relative}.brand-icon-large:before{content:"";position:absolute;inset:-2px;border-radius:50%;background:linear-gradient(135deg,rgba(255,255,255,.1) 0%,transparent 50%);z-index:-1}.brand-icon-large:hover{transform:scale(1.05);box-shadow:var(--shadow-glow);border-color:var(--color-border-hover)}.brand-title{font-size:3.5rem;font-weight:700;color:var(--color-text-primary);margin-bottom:var(--spacing-md);letter-spacing:-.02em;line-height:1.1}.brand-tagline{font-size:1.5rem;color:var(--color-text-secondary);font-weight:300;margin-bottom:var(--spacing-lg);letter-spacing:.02em}.brand-description{font-size:1.125rem;color:var(--color-text-tertiary);line-height:1.6;max-width:600px;margin:0 auto}.action-section{display:flex;justify-content:center;gap:var(--spacing-md);flex-wrap:wrap}.user-actions,.guest-actions{display:flex;gap:var(--spacing-md);flex-wrap:wrap;justify-content:center}.action-btn{display:inline-flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-xl);border:1px solid var(--color-border-primary);border-radius:var(--radius-lg);background:transparent;color:var(--color-text-secondary);text-decoration:none;font-size:1rem;font-weight:500;transition:all var(--transition-normal);position:relative;overflow:hidden;min-width:160px;justify-content:center}.action-btn:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.1),transparent);transition:var(--transition-normal)}.action-btn:hover:before{left:100%}.action-btn:hover{color:var(--color-text-primary);border-color:var(--color-border-hover);background:#ffffff0d;transform:translateY(-2px);box-shadow:var(--shadow-md)}.action-btn-primary{background:var(--color-accent);color:var(--color-bg-primary);border-color:var(--color-accent)}.action-btn-primary:hover{background:var(--color-accent-hover);border-color:var(--color-accent-hover);color:var(--color-bg-primary);box-shadow:var(--shadow-glow)}.action-btn svg{flex-shrink:0;opacity:.8;transition:var(--transition-fast)}.action-btn:hover svg{opacity:1}.features-section{padding:var(--spacing-3xl) 0}.features-container{max-width:1200px;margin:0 auto;padding:0 var(--spacing-md)}.features-title{font-size:2.5rem;font-weight:700;color:var(--color-text-primary);text-align:center;margin-bottom:var(--spacing-3xl);position:relative}.features-title:after{content:"";position:absolute;bottom:-var(--spacing-md);left:50%;transform:translate(-50%);width:80px;background:var(--color-accent);border-radius:1px}.features-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--spacing-xl);margin-top:var(--spacing-2xl)}.feature-card{background:var(--color-bg-card);border:1px solid var(--color-border-primary);border-radius:var(--radius-xl);padding:var(--spacing-2xl);text-align:center;transition:all var(--transition-normal);position:relative;overflow:hidden}.feature-card:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.02) 0%,transparent 50%);pointer-events:none}.feature-card:hover{border-color:var(--color-border-hover);transform:translateY(-4px);box-shadow:var(--shadow-lg)}.feature-icon{display:inline-flex;align-items:center;justify-content:center;width:80px;height:80px;border:1px solid var(--color-border-primary);border-radius:50%;background:var(--color-bg-tertiary);color:var(--color-accent);margin-bottom:var(--spacing-lg);transition:all var(--transition-normal)}.feature-card:hover .feature-icon{border-color:var(--color-border-hover);background:#ffffff1a;transform:scale(1.1)}.feature-title{font-size:1.5rem;font-weight:600;color:var(--color-text-primary);margin-bottom:var(--spacing-md)}.feature-description{color:var(--color-text-secondary);line-height:1.6;font-size:1rem}.stats-section{padding:var(--spacing-3xl) 0}.stats-container{max-width:800px;margin:0 auto;padding:0 var(--spacing-md);display:flex;justify-content:space-around;gap:var(--spacing-xl)}.stat-item{text-align:center;flex:1}.stat-number{display:block;font-size:3rem;font-weight:700;color:var(--color-text-primary);margin-bottom:var(--spacing-sm);background:linear-gradient(135deg,var(--color-accent) 0%,var(--color-text-primary) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.stat-label{font-size:.875rem;color:var(--color-text-muted);font-weight:500;text-transform:uppercase;letter-spacing:.05em}@media (max-width: 768px){.hero-section{padding:var(--spacing-2xl) 0}.brand-icon-large{width:100px;height:100px}.brand-title{font-size:2.5rem}.brand-tagline{font-size:1.25rem}.brand-description{font-size:1rem}.action-section{flex-direction:column;align-items:center}.user-actions,.guest-actions{flex-direction:column;width:100%;max-width:300px}.action-btn{width:100%}.features-grid{grid-template-columns:1fr;gap:var(--spacing-lg)}.feature-card{padding:var(--spacing-lg)}.feature-icon{width:60px;height:60px}.features-title{font-size:2rem}.stats-container{flex-direction:column;gap:var(--spacing-lg)}.stat-number{font-size:2.5rem}}@media (max-width: 480px){.hero-content{padding:0 var(--spacing-sm)}.brand-icon-large{width:80px;height:80px}.brand-title{font-size:2rem}.brand-tagline{font-size:1.125rem}.brand-description{font-size:.875rem}.action-btn{padding:var(--spacing-sm) var(--spacing-lg);font-size:.875rem}.features-container{padding:0 var(--spacing-sm)}.feature-card{padding:var(--spacing-md)}.feature-icon{width:50px;height:50px}.feature-title{font-size:1.25rem}.feature-description{font-size:.875rem}.stat-number{font-size:2rem}.info-links{flex-direction:column;gap:var(--spacing-sm)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.brand-icon-large{animation:float 6s ease-in-out infinite}.feature-card{animation:fadeIn .6s ease-out}.feature-card:nth-child(1){animation-delay:.1s}.feature-card:nth-child(2){animation-delay:.2s}.feature-card:nth-child(3){animation-delay:.3s}@media (prefers-reduced-motion: reduce){.brand-icon-large,.feature-card{animation:none}.action-btn:before{display:none}}@media (prefers-contrast: high){.feature-card,.action-btn,.brand-icon-large,.feature-icon{border-width:2px}}.action-btn:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}.info-link:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px;border-radius:var(--radius-sm)}.auth-container{min-height:100vh;background:#0a0a0a;color:#fff;display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.auth-header{padding:1.5rem 2rem;border-bottom:1px solid #1a1a1a}.auth-logo{display:flex;align-items:center;gap:.5rem;text-decoration:none;color:#fff;font-weight:600}.logo-icon{font-size:1.5rem}.logo-text{font-size:1.2rem}.auth-main{flex:1;display:flex;align-items:center;justify-content:center;padding:2rem}.auth-card{background:#111;border:1px solid #1a1a1a;border-radius:12px;padding:2.5rem;width:100%;max-width:400px;box-shadow:0 4px 20px #0000004d}.auth-title{text-align:center;margin-bottom:2rem}.auth-title h1{font-size:1.8rem;font-weight:700;margin-bottom:.5rem;color:#fff}.auth-title p{font-size:.9rem;color:#888;margin:0}.error-message{background:#2a1a1a;border:1px solid #3a2a2a;color:#ff6b6b;padding:.8rem 1rem;border-radius:6px;margin-bottom:1.5rem;font-size:.85rem;text-align:center}.success-message{background:#1a2a1a;border:1px solid #2a3a2a;color:#51cf66;padding:.8rem 1rem;border-radius:6px;margin-bottom:1.5rem;font-size:.85rem;text-align:center}.auth-form{margin-bottom:1.5rem}.form-group{margin-bottom:1rem}.form-input{width:100%;padding:.8rem 1rem;background:#1a1a1a;border:1px solid #2a2a2a;border-radius:6px;color:#fff;font-size:.9rem;transition:border-color .2s ease;box-sizing:border-box}.form-input:focus{outline:none;border-color:#3a3a3a}.form-input::placeholder{color:#666}.auth-btn{width:100%;padding:.9rem 1rem;background:#fff;color:#000;border:none;border-radius:6px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:.5rem}.auth-btn:hover:not(:disabled){background:#f0f0f0;transform:translateY(-1px)}.auth-btn:disabled{opacity:.6;cursor:not-allowed}.loading-spinner{width:16px;height:16px;border:2px solid #666666;border-top:2px solid #000000;border-radius:50%;animation:spin 1s linear infinite}.divider{text-align:center;margin:1.5rem 0;position:relative}.divider:before{content:"";position:absolute;top:50%;left:0;right:0;height:1px;background:#2a2a2a}.divider span{background:#111;padding:0 1rem;color:#666;font-size:.8rem;position:relative;z-index:1}.oauth-buttons{display:flex;gap:.8rem;margin-bottom:1.5rem}.oauth-btn{flex:1;padding:.8rem 1rem;background:#1a1a1a;border:1px solid #2a2a2a;border-radius:6px;color:#fff;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:.5rem}.oauth-btn:hover{background:#2a2a2a;border-color:#3a3a3a;transform:translateY(-1px)}.auth-footer{text-align:center}.auth-footer p{margin:0;font-size:.85rem;color:#888}.auth-link{color:#fff;text-decoration:none;font-weight:500;margin-left:.3rem;transition:color .2s ease}.auth-link:hover{color:#ccc}@media (max-width: 480px){.auth-main{padding:1rem}.auth-card{padding:2rem 1.5rem}.auth-title h1{font-size:1.5rem}.oauth-buttons{flex-direction:column}.oauth-btn{justify-content:center}}.dashboard-container{min-height:calc(100vh - 64px);padding:var(--spacing-xl) 0;background:var(--color-bg-primary)}.dashboard-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-2xl);padding:0 var(--spacing-md);max-width:1400px;margin-left:auto;margin-right:auto}.dashboard-header-buttons{display:flex;gap:var(--spacing-md);align-items:center}.dashboard-header h1{font-size:2.5rem;font-weight:700;color:var(--color-text-primary);margin:0;position:relative}.dashboard-header h1:after{content:"";position:absolute;bottom:-var(--spacing-sm);left:0;width:60px;background:var(--color-accent);border-radius:1px}.dashboard-btn{display:inline-flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);border:1px solid var(--color-border-primary);border-radius:var(--radius-lg);background:transparent;color:var(--color-text-secondary);text-decoration:none;font-size:.875rem;font-weight:500;cursor:pointer;transition:all var(--transition-normal);position:relative;overflow:hidden}.dashboard-btn:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.1),transparent);transition:var(--transition-normal)}.dashboard-btn:hover:before{left:100%}.dashboard-btn:hover{color:var(--color-text-primary);border-color:var(--color-border-hover);background:#ffffff0d;transform:translateY(-1px);box-shadow:var(--shadow-md)}.dashboard-btn-primary{background:linear-gradient(135deg,#000,#1a1a1a);color:#fff;border:2px solid #555555;box-shadow:0 4px 15px #0000004d;position:relative;overflow:hidden}.dashboard-btn-primary:after{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s}.dashboard-btn-primary:hover{background:#333;border-color:#777;color:#fff;transform:translateY(-2px);box-shadow:0 8px 25px #0006}.dashboard-btn-primary:hover:after{left:100%}.dashboard-btn-secondary{border-color:var(--color-border-secondary);color:var(--color-text-tertiary)}.dashboard-btn-danger{border-color:#ff64644d;color:#ff6464cc}.dashboard-btn-danger:hover{border-color:#ff646499;color:#ff6464;background:#ff64641a}.dashboard-btn svg{flex-shrink:0;opacity:.8;transition:var(--transition-fast)}.dashboard-btn:hover svg{opacity:1}.error-message{background:#ff64641a;border:1px solid rgba(255,100,100,.3);border-radius:var(--radius-lg);padding:var(--spacing-md);color:#ff6464e6;margin-bottom:var(--spacing-lg);font-size:.875rem;max-width:1400px;margin-left:auto;margin-right:auto}.modal-overlay{position:fixed;inset:0;background:var(--color-bg-modal);backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;z-index:var(--z-modal);animation:fadeIn .2s ease-out}.modal-content{background:var(--color-bg-card);border:1px solid var(--color-border-primary);border-radius:var(--radius-xl);padding:0;max-width:500px;width:90%;max-height:90vh;overflow:hidden;position:relative;animation:slideUp .3s ease-out}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-lg) var(--spacing-xl);border-bottom:1px solid var(--color-border-primary);background:var(--color-bg-secondary)}.modal-header h2{font-size:1.25rem;font-weight:600;color:var(--color-text-primary);margin:0}.close-btn{background:none;border:none;color:var(--color-text-secondary);font-size:1.5rem;cursor:pointer;padding:var(--spacing-xs);border-radius:var(--radius-sm);transition:var(--transition-fast);line-height:1}.close-btn:hover{color:var(--color-text-primary);background:#ffffff1a}.modal-content form{padding:var(--spacing-xl)}.form-group{margin-bottom:var(--spacing-lg)}.form-group input,.form-group textarea{width:100%;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);background:var(--color-bg-secondary);color:var(--color-text-primary);font-size:.875rem;transition:var(--transition-normal);resize:vertical}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--color-border-focus);box-shadow:0 0 0 2px #ffffff1a}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--color-text-muted)}.modal-actions{display:flex;justify-content:flex-end;gap:var(--spacing-md);padding-top:var(--spacing-lg);border-top:1px solid var(--color-border-primary);margin-top:var(--spacing-lg)}.albums-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--spacing-xl);padding:0 var(--spacing-md);max-width:1400px;margin:0 auto}.album-card{background:var(--color-bg-card);border:1px solid var(--color-border-primary);border-radius:var(--radius-xl);overflow:hidden;transition:all var(--transition-normal);position:relative;display:flex;flex-direction:column;height:100%}.album-card:hover{border-color:var(--color-border-hover);transform:translateY(-4px);box-shadow:var(--shadow-lg)}.album-cover{height:200px;background:var(--color-bg-tertiary);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.album-cover-image{width:100%;height:100%;object-fit:cover;transition:var(--transition-normal)}.album-cover:hover .album-cover-image{transform:scale(1.05)}.album-placeholder{font-size:4rem;opacity:.3;color:var(--color-text-muted);display:flex;align-items:center;justify-content:center;width:100%;height:100%}.album-info{padding:var(--spacing-lg);flex:1;display:flex;flex-direction:column;position:relative;z-index:2;margin-left:var(--spacing-md)}.album-info h3{font-size:1.25rem;font-weight:600;color:var(--color-text-primary);margin-bottom:var(--spacing-sm);line-height:1.3}.album-description{color:var(--color-text-secondary);font-size:.875rem;line-height:1.5;margin-bottom:var(--spacing-md);flex:1}.album-meta{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-sm);margin-top:auto}.visibility-badge{padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em}.visibility-badge.public{background:#64ff641a;color:#64ff64e6;border:1px solid rgba(100,255,100,.3)}.visibility-badge.private{background:#ffc8641a;color:#ffc864e6;border:1px solid rgba(255,200,100,.3)}.joined-badge{padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em;background:#64c8ff1a;color:#64c8ffe6;border:1px solid rgba(100,200,255,.3)}.created-date{font-size:.75rem;color:var(--color-text-muted)}.album-actions{display:flex;gap:var(--spacing-xs);padding:var(--spacing-md) var(--spacing-lg);border-top:1px solid var(--color-border-primary);position:relative;z-index:2}.album-btn{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);background:transparent;color:var(--color-text-secondary);text-decoration:none;font-size:.75rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast);flex:1;justify-content:center}.album-btn:hover{color:var(--color-text-primary);border-color:var(--color-border-hover);background:#ffffff0d}.album-btn-primary{border-color:var(--color-accent);color:var(--color-accent)}.album-btn-primary:hover{background:var(--color-accent);color:var(--color-bg-primary)}.album-btn-secondary{border-color:var(--color-border-secondary);color:var(--color-text-tertiary)}.album-btn-danger{border-color:#ff64644d;color:#ff6464cc}.album-btn-danger:hover{border-color:#ff646499;background:#ff64641a;color:#ff6464}.album-btn svg{flex-shrink:0;opacity:.8}.album-btn:hover svg{opacity:1}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;text-align:center;padding:var(--spacing-3xl) var(--spacing-md);grid-column:1 / -1}.empty-icon{font-size:5rem;opacity:.2;margin-bottom:var(--spacing-xl)}.empty-state h3{font-size:1.5rem;font-weight:600;color:var(--color-text-primary);margin-bottom:var(--spacing-md)}.empty-state p{color:var(--color-text-secondary);margin-bottom:var(--spacing-xl);max-width:400px;line-height:1.6}.loading-spinner{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:var(--spacing-md)}.spinner{width:40px;height:40px;border:3px solid var(--color-border-primary);border-top:3px solid var(--color-accent);border-radius:50%;animation:spin 1s linear infinite}.loading-spinner p{color:var(--color-text-secondary);font-size:.875rem}.loading-spinner-small{width:16px;height:16px;border:2px solid var(--color-border-primary);border-top:2px solid var(--color-accent);border-radius:50%;animation:spin 1s linear infinite;margin-right:var(--spacing-xs)}@media (max-width: 1200px){.albums-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--spacing-lg)}}@media (max-width: 768px){.dashboard-container{padding:var(--spacing-lg) 0}.dashboard-header{flex-direction:column;gap:var(--spacing-lg);align-items:flex-start;padding:0 var(--spacing-sm)}.dashboard-header h1{font-size:2rem}.albums-grid{grid-template-columns:1fr;gap:var(--spacing-md);padding:0 var(--spacing-sm)}.album-cover{height:160px}.album-info{padding:var(--spacing-md)}.album-actions{padding:var(--spacing-sm) var(--spacing-md);flex-wrap:wrap}.album-btn{flex:1;min-width:calc(50% - var(--spacing-xs) / 2)}.modal-content{width:95%;margin:var(--spacing-md)}.modal-header{padding:var(--spacing-md) var(--spacing-lg)}.modal-content form{padding:var(--spacing-lg)}}@media (max-width: 480px){.dashboard-header h1{font-size:1.75rem}.album-cover{height:140px}.album-info{padding:var(--spacing-sm)}.album-actions{flex-direction:column;gap:var(--spacing-xs)}.album-btn{width:100%}.modal-header{padding:var(--spacing-sm) var(--spacing-md)}.modal-content form{padding:var(--spacing-md)}.empty-state{padding:var(--spacing-xl) var(--spacing-sm)}.empty-icon{font-size:4rem}}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){.album-card,.dashboard-btn,.album-btn{transition:none}.spinner,.loading-spinner-small,.modal-content{animation:none}}@media (prefers-contrast: high){.album-card,.dashboard-btn,.album-btn,.visibility-badge{border-width:2px}}.dashboard-btn:focus-visible,.album-btn:focus-visible,.close-btn:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}.form-group input:focus-visible,.form-group textarea:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}.album-view-container{max-width:1200px;margin:0 auto;padding:2rem;background:#000;color:#fff;min-height:calc(100vh - 80px)}.album-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:2px solid #333333}.album-info h1{font-size:2.5rem;font-weight:700;color:#fff;margin:0 0 .5rem}.album-info p{color:#888;font-size:1.1rem;margin:0 0 1rem;line-height:1.6}.album-meta{display:flex;gap:1rem;align-items:center}.visibility-badge{padding:.25rem .75rem;border-radius:20px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.visibility-badge.public{background:#1a1a1a;color:#4ade80}.visibility-badge.private{background:#1a1a1a;color:#fff}.image-count{color:#888;font-size:.9rem}.album-actions{display:flex;gap:1rem;align-items:center}.upload-btn{cursor:pointer}.error-state h2{color:#fff;margin-bottom:2rem}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal-content{background:#1a1a1a;border-radius:16px;padding:2rem;width:100%;max-width:500px;max-height:90vh;overflow-y:auto;border:1px solid #333333}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.modal-header h2{margin:0;color:#fff}.close-btn{background:none;border:none;font-size:2rem;color:#888;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s ease}.close-btn:hover{background:#333;color:#fff}.share-content p{margin-bottom:1rem;color:#fff}.share-link{display:flex;gap:.5rem;align-items:center}.share-link input{flex:1;padding:.75rem 1rem;border:2px solid #333333;border-radius:8px;font-size:.9rem;background:#2a2a2a;color:#fff}.album-view-btn{padding:.75rem 1.5rem;border-radius:12px;text-decoration:none;font-weight:600;transition:all .3s cubic-bezier(.4,0,.2,1);border:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font-size:.95rem;position:relative;overflow:hidden}.album-view-btn:disabled{opacity:.6;cursor:not-allowed}.album-view-btn:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s}.album-view-btn:hover:before{left:100%}.album-view-btn-primary{background:linear-gradient(135deg,#000,#1a1a1a);color:#fff;box-shadow:0 4px 15px #0000004d}.album-view-btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 25px #0006}.album-view-btn-secondary{background:#ffffffe6;color:#495057;border:2px solid rgba(0,0,0,.2);backdrop-filter:blur(10px)}.album-view-btn-secondary:hover:not(:disabled){background:#0000001a;border-color:#0006;color:#000;transform:translateY(-1px)}.album-view-btn-danger{background:linear-gradient(135deg,#000,#1a1a1a);color:#fff;box-shadow:0 4px 15px #0000004d}.album-view-btn-danger:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 20px #0006}.album-view-btn-sm{padding:.5rem 1rem;font-size:.875rem}.empty-icon{font-size:4rem;margin-bottom:1rem}.empty-state h3{font-size:1.5rem;color:#2d3748;margin-bottom:.5rem}.empty-state p{margin-bottom:2rem;font-size:1.1rem}.image-card{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 4px 6px #0000000d;transition:all .3s ease;border:1px solid #e2e8f0}.image-card:hover{transform:translateY(-2px);box-shadow:0 10px 25px #0000001a}.image-info h4{margin:0 0 .5rem;font-size:1rem;font-weight:600;color:#2d3748;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.image-info p{margin:0;color:#718096;font-size:.875rem;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.lightbox-overlay{position:fixed;inset:0;background:#000000e6;display:flex;align-items:center;justify-content:center;z-index:2000;padding:2rem}.lightbox-close{position:absolute;top:-3rem;right:0;background:none;border:none;color:#fff;font-size:2rem;cursor:pointer;padding:.5rem;border-radius:50%;transition:background .2s ease}.lightbox-close:hover{background:#ffffff1a}.lightbox-content img{max-width:100%;max-height:80vh;object-fit:contain;border-radius:8px}.lightbox-info{background:#fff;padding:1.5rem;border-radius:8px;margin-top:1rem;text-align:center;max-width:500px}.lightbox-info h3{margin:0 0 .5rem;color:#2d3748}.lightbox-info p{margin:0;color:#718096;line-height:1.5}@media (max-width: 768px){.album-view-container{padding:1rem}.album-header{flex-direction:column;gap:1rem;align-items:stretch}.album-info h1{font-size:2rem}.album-actions{justify-content:center}.images-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}.modal-content{padding:1.5rem;margin:1rem}.share-link{flex-direction:column}.lightbox-overlay{padding:1rem}.lightbox-close{top:-2rem;right:-1rem}}.image-gallery{padding:var(--spacing-lg) 0}.gallery-container{max-width:1400px;margin:0 auto;padding:0 var(--spacing-md)}.gallery-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-xl);padding-bottom:var(--spacing-lg);border-bottom:1px solid var(--color-border-primary)}.gallery-title{font-size:1.5rem;font-weight:600;color:var(--color-text-primary);margin:0}.gallery-meta{display:flex;align-items:center;gap:var(--spacing-lg);color:var(--color-text-secondary);font-size:.875rem}.image-count{display:flex;align-items:center;gap:var(--spacing-xs)}.view-toggle{display:flex;gap:var(--spacing-xs);background:var(--color-bg-secondary);border-radius:var(--radius-md);padding:var(--spacing-xs);border:1px solid var(--color-border-primary)}.view-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-tertiary);cursor:pointer;transition:all var(--transition-fast)}.view-btn:hover{color:var(--color-text-primary);background:#ffffff1a}.view-btn.active{color:var(--color-text-primary);background:var(--color-accent)}.view-btn.active:hover{background:var(--color-accent-hover)}.images-grid{display:grid;gap:var(--spacing-md);transition:all var(--transition-normal)}.images-grid.grid-view{grid-template-columns:repeat(3,1fr)}@media (max-width: 768px){.images-grid.grid-view{grid-template-columns:repeat(2,1fr)}}@media (max-width: 480px){.images-grid.grid-view{grid-template-columns:1fr}}.images-grid.list-view{grid-template-columns:1fr;gap:var(--spacing-sm)}.images-grid.large-view{grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:var(--spacing-lg)}.image-item{position:relative;background:var(--color-bg-card);border-radius:var(--radius-lg);overflow:hidden;transition:all var(--transition-normal);cursor:pointer;group:image-item}.image-item:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.02) 0%,transparent 50%);pointer-events:none;z-index:1}.image-frame{position:relative;width:100%;aspect-ratio:1;border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-md);overflow:hidden;transition:all var(--transition-normal);background:var(--color-bg-tertiary)}.image-frame img{width:100%;height:100%;object-fit:cover;transition:all var(--transition-normal);filter:brightness(.9)}.image-frame:hover img{filter:brightness(1);transform:scale(1.05)}.image-loading{display:flex;align-items:center;justify-content:center;width:100%;height:100%;background:var(--color-bg-tertiary);color:var(--color-text-muted)}.image-loading-spinner{width:24px;height:24px;border:2px solid var(--color-border-primary);border-top:2px solid var(--color-accent);border-radius:50%;animation:spin 1s linear infinite}.image-overlay{position:absolute;inset:0;background:linear-gradient(to bottom,transparent 0%,rgba(0,0,0,.7) 100%);opacity:0;transition:all var(--transition-normal);display:flex;flex-direction:column;justify-content:flex-end;padding:var(--spacing-md);z-index:2;pointer-events:none}.image-item:hover .image-overlay{opacity:1}.image-info{color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.5)}.image-title{font-size:.875rem;font-weight:600;margin-bottom:var(--spacing-xs);line-height:1.3}.image-description{font-size:.75rem;opacity:.9;line-height:1.4;margin-bottom:var(--spacing-sm)}.image-meta{display:flex;justify-content:space-between;align-items:center;font-size:.75rem;opacity:.8}.image-size,.image-date{color:#fffc}.image-actions{position:absolute;top:var(--spacing-sm);right:var(--spacing-sm);display:flex;gap:var(--spacing-xs);opacity:0;transition:all var(--transition-normal);z-index:3;pointer-events:auto}.image-item:hover .image-actions{opacity:1}.image-action-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid rgba(255,255,255,.3);border-radius:var(--radius-sm);background:#00000080;color:#fff;cursor:pointer;transition:all var(--transition-fast);backdrop-filter:blur(10px)}.image-action-btn:hover{border-color:#fff9;background:#000000b3;transform:scale(1.1)}.image-action-btn.danger{border-color:#ff646480;background:#ff646433}.image-action-btn.danger:hover{border-color:#ff6464cc;background:#ff64644d}.list-view .image-item{display:flex;align-items:center;padding:var(--spacing-md);border:1px solid var(--color-border-primary);border-radius:var(--radius-lg)}.list-view .image-frame{width:80px;height:80px;aspect-ratio:1;flex-shrink:0;margin-right:var(--spacing-md)}.list-view .image-overlay{position:static;background:none;opacity:1;padding:0;flex:1;justify-content:center}.list-view .image-info{color:var(--color-text-primary);text-shadow:none}.list-view .image-title{color:var(--color-text-primary);font-size:1rem}.list-view .image-description{color:var(--color-text-secondary);font-size:.875rem}.list-view .image-meta{color:var(--color-text-tertiary)}.list-view .image-actions{position:static;opacity:1;margin-left:var(--spacing-md)}.gallery-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;text-align:center;padding:var(--spacing-3xl) var(--spacing-md)}.gallery-empty-icon{font-size:5rem;opacity:.2;margin-bottom:var(--spacing-xl)}.gallery-empty h3{font-size:1.5rem;font-weight:600;color:var(--color-text-primary);margin-bottom:var(--spacing-md)}.gallery-empty p{color:var(--color-text-secondary);margin-bottom:var(--spacing-xl);max-width:400px;line-height:1.6}.load-more{display:flex;justify-content:center;margin-top:var(--spacing-xl)}.load-more-btn{display:inline-flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-xl);border:1px solid var(--color-border-primary);border-radius:var(--radius-lg);background:transparent;color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-normal);font-size:.875rem;font-weight:500}.load-more-btn:hover{color:var(--color-text-primary);border-color:var(--color-border-hover);background:#ffffff0d;transform:translateY(-1px)}.load-more-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.fullscreen-modal{position:fixed;inset:0;background:#000000f2;backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;z-index:var(--z-modal);animation:fadeIn .3s ease-out}.fullscreen-content{position:relative;max-width:90vw;max-height:90vh;display:flex;align-items:center;justify-content:center}.fullscreen-image{max-width:100%;max-height:100%;object-fit:contain;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}.fullscreen-controls{position:absolute;top:var(--spacing-lg);right:var(--spacing-lg);display:flex;gap:var(--spacing-sm)}.fullscreen-btn{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border:1px solid rgba(255,255,255,.3);border-radius:var(--radius-md);background:#00000080;color:#fff;cursor:pointer;transition:all var(--transition-fast);backdrop-filter:blur(10px)}.fullscreen-btn:hover{border-color:#fff9;background:#000000b3;transform:scale(1.05)}.fullscreen-nav{position:absolute;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:48px;height:48px;border:1px solid rgba(255,255,255,.3);border-radius:var(--radius-md);background:#00000080;color:#fff;cursor:pointer;transition:all var(--transition-fast);backdrop-filter:blur(10px)}.fullscreen-nav:hover{border-color:#fff9;background:#000000b3;transform:translateY(-50%) scale(1.05)}.fullscreen-nav.prev{left:var(--spacing-lg)}.fullscreen-nav.next{right:var(--spacing-lg)}.fullscreen-nav:disabled{opacity:.3;cursor:not-allowed;transform:translateY(-50%)}@media (max-width: 1200px){.images-grid.grid-view{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.images-grid.large-view{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}}@media (max-width: 768px){.gallery-container{padding:0 var(--spacing-sm)}.gallery-header{flex-direction:column;gap:var(--spacing-md);align-items:flex-start}.gallery-meta{width:100%;justify-content:space-between}.images-grid.grid-view{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--spacing-sm)}.images-grid.large-view{grid-template-columns:1fr}.image-overlay{padding:var(--spacing-sm)}.image-actions{top:var(--spacing-xs);right:var(--spacing-xs)}.image-action-btn{width:28px;height:28px}.list-view .image-frame{width:60px;height:60px;margin-right:var(--spacing-sm)}.fullscreen-controls{top:var(--spacing-sm);right:var(--spacing-sm)}.fullscreen-btn,.fullscreen-nav{width:40px;height:40px}.fullscreen-nav.prev{left:var(--spacing-sm)}.fullscreen-nav.next{right:var(--spacing-sm)}}@media (max-width: 480px){.images-grid.grid-view{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.gallery-title{font-size:1.25rem}.view-toggle{display:none}.image-overlay{padding:var(--spacing-xs)}.image-title{font-size:.75rem}.image-description{font-size:.7rem}.list-view .image-item{padding:var(--spacing-sm)}.list-view .image-frame{width:50px;height:50px}.fullscreen-content{max-width:95vw;max-height:95vh}}.lightbox-overlay{position:fixed;inset:0;background:#000000f2;backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;z-index:var(--z-modal);animation:fadeIn .3s ease-out}.lightbox-container{position:relative;max-width:90vw;max-height:90vh;background:var(--color-bg-card);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-lg)}.lightbox-close{position:absolute;top:var(--spacing-md);right:var(--spacing-md);width:40px;height:40px;border:none;border-radius:var(--radius-md);background:#00000080;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1.2rem;z-index:10;transition:all var(--transition-fast)}.lightbox-close:hover{background:#000000b3;transform:scale(1.1)}.lightbox-content{display:flex;height:90vh;max-height:90vh}.lightbox-image-container{position:relative;flex:1;display:flex;align-items:center;justify-content:center;background:var(--color-bg-tertiary);overflow:hidden}.lightbox-image-container img{max-width:100%;max-height:100%;object-fit:contain}.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;border:1px solid rgba(255,255,255,.3);border-radius:var(--radius-md);background:#00000080;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1.5rem;transition:all var(--transition-fast);backdrop-filter:blur(10px)}.lightbox-nav:hover{background:#000000b3;border-color:#fff9;transform:translateY(-50%) scale(1.1)}.lightbox-nav:disabled{opacity:.3;cursor:not-allowed;transform:translateY(-50%)}.lightbox-prev{left:var(--spacing-md)}.lightbox-next{right:var(--spacing-md)}.lightbox-info{width:350px;min-width:350px;flex-shrink:0;padding:var(--spacing-xl);border-left:1px solid var(--color-border-primary);overflow-y:auto}.lightbox-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-lg)}.lightbox-header h3{color:var(--color-text-primary);font-size:1.25rem;font-weight:600;margin:0;flex:1;margin-right:var(--spacing-md)}.lightbox-counter{color:var(--color-text-tertiary);font-size:.875rem;background:var(--color-bg-tertiary);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm)}.lightbox-description{color:var(--color-text-secondary);line-height:1.6;margin-bottom:var(--spacing-lg)}.lightbox-meta{display:flex;flex-direction:column;gap:var(--spacing-md)}.meta-item{display:flex;flex-direction:column;gap:var(--spacing-xs)}.meta-label{color:var(--color-text-tertiary);font-size:.875rem;font-weight:500}.meta-value{color:var(--color-text-primary);font-size:.875rem;word-break:break-all}.meta-link{display:flex;gap:var(--spacing-xs);align-items:center}.link-input{flex:1;padding:var(--spacing-sm);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);background:var(--color-bg-tertiary);color:var(--color-text-primary);font-size:.875rem;font-family:monospace;cursor:pointer;transition:all var(--transition-fast)}.link-input:hover{border-color:var(--color-border-hover);background:var(--color-bg-card)}.link-input:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 2px #4ade8033}.copy-btn{padding:var(--spacing-sm);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);background:var(--color-bg-tertiary);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast);display:flex;align-items:center;justify-content:center;min-width:36px;height:36px}.copy-btn:hover{background:var(--color-accent);color:var(--color-bg-primary);border-color:var(--color-accent);transform:scale(1.05)}.lightbox-actions{margin-top:var(--spacing-xl);display:flex;gap:var(--spacing-md);padding-top:var(--spacing-lg);border-top:1px solid var(--color-border-primary)}.edit-modal-overlay{position:fixed;inset:0;background:#000c;backdrop-filter:blur(5px);display:flex;align-items:center;justify-content:center;z-index:var(--z-modal);animation:fadeIn .3s ease-out}.edit-modal{background:var(--color-bg-card);border-radius:var(--radius-lg);width:90vw;max-width:600px;max-height:80vh;overflow:hidden;box-shadow:var(--shadow-lg)}.edit-modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-lg);border-bottom:1px solid var(--color-border-primary)}.edit-modal-header h3{color:var(--color-text-primary);margin:0;font-size:1.25rem;font-weight:600}.modal-close{width:32px;height:32px;border:none;border-radius:var(--radius-md);background:transparent;color:var(--color-text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.modal-close:hover{background:var(--color-bg-tertiary);color:var(--color-text-primary)}.edit-modal-content{display:flex;max-height:60vh}.edit-preview{flex:1;display:flex;align-items:center;justify-content:center;background:var(--color-bg-tertiary);padding:var(--spacing-lg)}.edit-preview img{max-width:100%;max-height:300px;object-fit:contain;border-radius:var(--radius-md)}.edit-form{width:300px;padding:var(--spacing-lg);background:var(--color-bg-secondary);border-left:1px solid var(--color-border-primary)}.edit-form .form-group{margin-bottom:var(--spacing-lg)}.edit-form label{display:block;color:var(--color-text-secondary);font-size:.875rem;font-weight:500;margin-bottom:var(--spacing-xs)}.edit-form input,.edit-form textarea{width:100%;padding:var(--spacing-sm);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);background:var(--color-bg-tertiary);color:var(--color-text-primary);font-size:.875rem;transition:all var(--transition-fast);resize:vertical}.edit-form input:focus,.edit-form textarea:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 2px #4ade8033}.edit-modal-actions{display:flex;justify-content:flex-end;gap:var(--spacing-md);padding:var(--spacing-lg);border-top:1px solid var(--color-border-primary)}@media (max-width: 768px){.lightbox-container{max-width:95vw;max-height:95vh}.lightbox-content{flex-direction:column;height:95vh}.lightbox-image-container{flex:1;min-height:0}.lightbox-info{width:100%;min-width:100%;height:auto;max-height:35vh;flex-shrink:0;border-left:none;border-top:1px solid var(--color-border-primary)}.lightbox-image-container img{max-height:100%}.edit-modal-content{flex-direction:column}.edit-form{width:100%;border-left:none;border-top:1px solid var(--color-border-primary)}}.image-item{animation:fadeIn .5s ease-out}.image-item:nth-child(1){animation-delay:.1s}.image-item:nth-child(2){animation-delay:.2s}.image-item:nth-child(3){animation-delay:.3s}.image-item:nth-child(4){animation-delay:.4s}.image-item:nth-child(5){animation-delay:.5s}.image-item:nth-child(6){animation-delay:.6s}@media (prefers-reduced-motion: reduce){.image-frame,.image-frame img,.image-overlay,.image-actions,.image-action-btn{transition:none}.image-item,.image-loading-spinner{animation:none}}@media (prefers-contrast: high){.image-frame,.image-action-btn,.fullscreen-btn,.fullscreen-nav{border-width:2px}}.image-item:focus-visible,.image-action-btn:focus-visible,.view-btn:focus-visible,.load-more-btn:focus-visible,.fullscreen-btn:focus-visible,.fullscreen-nav:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}.image-item.selected{border-color:var(--color-border-focus);box-shadow:0 0 0 2px #fff3}.image-item.selected .image-frame{border-color:var(--color-border-focus);box-shadow:var(--shadow-glow)}.shared-album-container{max-width:1200px;margin:0 auto;padding:2rem;min-height:calc(100vh - 80px);background:#000;color:#fff}.shared-album-header{text-align:center;margin-bottom:3rem;padding-bottom:2rem;border-bottom:2px solid #333333}.album-info h1{font-size:3rem;font-weight:700;color:#fff;margin:0 0 1rem}.album-description{color:#888;font-size:1.2rem;margin:0 0 1.5rem;line-height:1.6;max-width:600px;margin-left:auto;margin-right:auto}.album-meta{display:flex;justify-content:center;gap:2rem;align-items:center;flex-wrap:wrap}.image-count,.share-info{color:#fff;font-weight:600;font-size:1rem}.loading-spinner{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;color:#888}.spinner{width:50px;height:50px;border:4px solid #333333;border-top:4px solid #ffffff;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:1rem}.error-icon{font-size:4rem;margin-bottom:1rem}.error-state h2{color:#fff;margin-bottom:1rem;font-size:2rem}.error-state p{font-size:1.1rem;line-height:1.6}.images-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1.5rem;margin-bottom:2rem}.empty-state{grid-column:1 / -1;text-align:center;padding:4rem 2rem;color:#718096}.empty-icon{font-size:5rem;margin-bottom:1.5rem}.empty-state h3{font-size:1.8rem;color:#2d3748;margin-bottom:.5rem}.empty-state p{margin-bottom:2rem;font-size:1.2rem}.image-card{background:#1a1a1a;border-radius:12px;overflow:hidden;box-shadow:0 4px 6px #0000004d;transition:all .3s ease;border:1px solid #333333}.image-container{position:relative;aspect-ratio:1;overflow:hidden}.image-container img{width:100%;height:100%;object-fit:cover;cursor:pointer;transition:transform .3s ease}.image-container:hover img{transform:scale(1.05)}.image-overlay{position:absolute;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s ease}.image-container:hover .image-overlay{opacity:1}.view-btn{background:#fff;color:#2d3748;border:none;padding:.75rem 1.5rem;border-radius:8px;font-weight:600;cursor:pointer;transition:all .2s ease}.view-btn:hover{background:#f7fafc;transform:translateY(-1px)}.image-info{padding:1rem}.image-info h4{margin:0 0 .5rem;font-size:1rem;font-weight:600;color:#fff;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.image-info p{margin:0;color:#888;font-size:.875rem;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.lightbox-overlay{position:fixed;inset:0;background:#000000f2;display:flex;align-items:center;justify-content:center;z-index:2000;padding:1rem}.lightbox-content{position:relative;max-width:95vw;max-height:95vh;display:flex;flex-direction:column}.lightbox-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;color:#fff}.image-counter{background:#ffffff1a;padding:.5rem 1rem;border-radius:20px;font-weight:600}.lightbox-close{background:#ffffff1a;border:none;color:#fff;font-size:2rem;cursor:pointer;padding:.5rem;border-radius:50%;width:48px;height:48px;display:flex;align-items:center;justify-content:center;transition:background .2s ease}.lightbox-image-container{position:relative;display:flex;align-items:center;justify-content:center;flex:1}.lightbox-image{max-width:100%;max-height:70vh;object-fit:contain;border-radius:8px}.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);background:#ffffff1a;border:none;color:#fff;font-size:3rem;cursor:pointer;padding:1rem;border-radius:50%;width:60px;height:60px;display:flex;align-items:center;justify-content:center;transition:all .2s ease;backdrop-filter:blur(10px)}.lightbox-info{background:#fff;padding:2rem;border-radius:12px;margin-top:1rem;text-align:center;max-width:600px;margin-left:auto;margin-right:auto}.lightbox-info h3{margin:0 0 .5rem;color:#2d3748;font-size:1.5rem}.lightbox-info p{margin:0;color:#718096;line-height:1.6;font-size:1rem}.shared-footer{text-align:center;padding:2rem 0;border-top:1px solid #e2e8f0;color:#a0aec0;font-size:.9rem}@media (max-width: 768px){.shared-album-container{padding:1rem}.album-info h1{font-size:2rem}.album-description{font-size:1rem}.album-meta{flex-direction:column;gap:1rem}.images-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}.lightbox-nav{font-size:2rem;width:50px;height:50px;padding:.5rem}.lightbox-prev{left:-60px}.lightbox-next{right:-60px}.lightbox-info{padding:1.5rem}.lightbox-info h3{font-size:1.25rem}}@media (max-width: 480px){.lightbox-nav{position:fixed;top:auto;bottom:100px;transform:none}.lightbox-prev{left:20px}.lightbox-next{right:20px}.lightbox-image{max-height:60vh}}.album-actions{margin-top:1.5rem;display:flex;justify-content:center;align-items:center}.join-album-btn{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 15px #667eea4d}.join-album-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #667eea66;background:linear-gradient(135deg,#5a6fd8,#6a4190)}.join-album-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.owner-badge,.joined-badge{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;border-radius:8px;font-size:1rem;font-weight:600}.owner-badge{background:linear-gradient(135deg,#f093fb,#f5576c);color:#fff;box-shadow:0 4px 15px #f093fb4d}.joined-badge{background:linear-gradient(135deg,#4facfe,#00f2fe);color:#fff;box-shadow:0 4px 15px #4facfe4d}.login-prompt{display:flex;justify-content:center}.login-link{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;background:linear-gradient(135deg,#ffecd2,#fcb69f);color:#333;text-decoration:none;border-radius:8px;font-size:1rem;font-weight:600;transition:all .3s ease;box-shadow:0 4px 15px #ffecd24d}.login-link:hover{transform:translateY(-2px);box-shadow:0 6px 20px #ffecd266;background:linear-gradient(135deg,#fde2c0,#fa9f8d);color:#333}.loading-spinner-small{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top:2px solid #ffffff;border-radius:50%;animation:spin 1s linear infinite}@media (max-width: 768px){.album-actions{margin-top:1rem}.join-album-btn,.owner-badge,.joined-badge,.login-link{padding:.6rem 1.2rem;font-size:.9rem}}@media (max-width: 480px){.join-album-btn,.owner-badge,.joined-badge,.login-link{padding:.5rem 1rem;font-size:.85rem}}.profile-container{max-width:1000px;margin:0 auto;padding:2rem}.profile-header{text-align:center;margin-bottom:3rem;padding-bottom:2rem;border-bottom:2px solid #e2e8f0}.profile-header h1{font-size:2.5rem;font-weight:700;color:#2d3748;margin:0 0 .5rem}.profile-header p{color:#718096;font-size:1.1rem;margin:0}.loading-spinner{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;color:#718096}.spinner{width:40px;height:40px;border:4px solid #e2e8f0;border-top:4px solid #000000;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:1rem}.profile-content{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:start}.profile-card{background:#fff;border-radius:16px;padding:2rem;box-shadow:0 4px 6px #0000000d;border:1px solid #e2e8f0}.profile-avatar{display:flex;align-items:center;gap:1.5rem;margin-bottom:2rem;padding-bottom:2rem;border-bottom:1px solid #e2e8f0}.avatar-container{position:relative;width:80px;height:80px;flex-shrink:0}.avatar-image{width:80px;height:80px;border-radius:50%;object-fit:cover;border:3px solid #e2e8f0;transition:all .3s ease}.avatar-placeholder{width:80px;height:80px;border-radius:50%;background:linear-gradient(135deg,#000,#1a1a1a);display:flex;align-items:center;justify-content:center;color:#fff;font-size:2rem;font-weight:700;flex-shrink:0}.avatar-overlay{position:absolute;inset:0;border-radius:50%;background:#00000080;display:flex;align-items:center;justify-content:center;gap:.5rem;opacity:0;transition:opacity .3s ease}.avatar-container:hover .avatar-overlay{opacity:1}.avatar-upload-btn,.avatar-remove-btn{background:#ffffffe6;border:none;border-radius:50%;width:28px;height:28px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:.8rem;transition:all .2s ease}.avatar-upload-btn:hover,.avatar-remove-btn:hover{background:#fff;transform:scale(1.1)}.avatar-remove-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.avatar-actions{display:flex;gap:.5rem;margin-top:1rem;flex-wrap:wrap}.btn-sm{padding:.5rem 1rem;font-size:.875rem}.avatar-info h3{margin:0 0 .5rem;font-size:1.5rem;font-weight:600;color:#2d3748}.avatar-info p{margin:0;color:#718096;font-size:1rem}.profile-form{display:flex;flex-direction:column;gap:1.5rem}.form-group{display:flex;flex-direction:column}.form-group label{margin-bottom:.5rem;font-weight:600;color:#000}.form-group input,.form-group textarea{padding:.75rem 1rem;border:2px solid #e2e8f0;border-radius:8px;font-size:1rem;transition:all .2s ease;font-family:inherit;background-color:#000;color:#fff}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:#000;box-shadow:0 0 0 3px #0000001a;background-color:#000;color:#fff}.form-group input::placeholder,.form-group textarea::placeholder{color:#fff;opacity:.7}#displayName,#bio{background-color:#000!important;color:#fff!important;border:2px solid #e2e8f0}#displayName:focus,#bio:focus{background-color:#000!important;color:#fff!important;border-color:#000;box-shadow:0 0 0 3px #0000001a}#displayName::placeholder,#bio::placeholder{color:#fff!important;opacity:.7}label[for=displayName],label[for=bio]{color:#000!important;font-weight:600}.form-group textarea{resize:vertical;min-height:100px}.profile-actions{display:flex;flex-direction:column;gap:1.5rem}.action-card{background:#fff;border-radius:16px;padding:2rem;box-shadow:0 4px 6px #0000000d;border:1px solid #e2e8f0}.action-card.danger{border-color:#feb2b2;background:snow}.action-card h3{margin:0 0 .5rem;font-size:1.25rem;font-weight:600;color:#2d3748}.action-card p{margin:0 0 1.5rem;color:#718096;line-height:1.5}.password-form-card{background:#f7fafc;border-radius:12px;padding:1.5rem;margin-top:1rem;border:1px solid #e2e8f0}.password-form-card form{display:flex;flex-direction:column;gap:1rem}.btn{padding:.75rem 1.5rem;border-radius:8px;text-decoration:none;font-weight:600;transition:all .3s ease;border:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font-size:1rem}.btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 10px 25px #0000004d}.btn-secondary{background:#f7fafc;color:#2d3748;border:2px solid #e2e8f0}.btn-secondary:hover{background:#edf2f7;border-color:#cbd5e0}.btn-danger{background:#000;color:#fff}.btn-danger:hover{background:#1a1a1a;transform:translateY(-1px)}.error-message{background:#e0e0e0;color:#000;padding:1rem 1.5rem;border-radius:8px;margin-bottom:2rem;border:1px solid #feb2b2}.success-message{background:#f0f0f0;color:#2f855a;padding:1rem 1.5rem;border-radius:8px;margin-bottom:2rem;border:1px solid #9ae6b4}@media (max-width: 768px){.profile-container{padding:1rem}.profile-header h1{font-size:2rem}.profile-content{grid-template-columns:1fr;gap:2rem}.profile-card,.action-card{padding:1.5rem}.profile-avatar{flex-direction:column;text-align:center}.avatar-container{width:100px;height:100px}.avatar-image,.avatar-placeholder{width:100px;height:100px;font-size:2.5rem}.avatar-actions{justify-content:center}}.share-modal-overlay{position:fixed;inset:0;background:var(--color-bg-modal);backdrop-filter:blur(15px);-webkit-backdrop-filter:blur(15px);display:flex;align-items:center;justify-content:center;z-index:9999;animation:fadeIn .3s ease-out;padding:var(--spacing-md)}.share-modal{background:var(--color-bg-card);border:1px solid var(--color-border-primary);border-radius:var(--radius-xl);width:100%;max-width:600px;max-height:90vh;overflow:hidden;position:relative;animation:slideUp .4s ease-out;box-shadow:var(--shadow-lg)}.share-modal:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.03) 0%,transparent 50%);pointer-events:none;z-index:1}.share-modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-xl) var(--spacing-xl) var(--spacing-lg);border-bottom:1px solid var(--color-border-primary);background:var(--color-bg-secondary);position:relative;z-index:2}.share-modal-header h3{font-size:1.5rem;font-weight:600;color:var(--color-text-primary);margin:0;display:flex;align-items:center;gap:var(--spacing-sm)}.share-modal-header h3:before{content:"";width:24px;height:24px;background:var(--color-accent);border-radius:50%;display:inline-block;position:relative}.share-modal-header h3:after{content:"🔗";position:absolute;left:6px;top:50%;transform:translateY(-50%);font-size:12px}.modal-close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid var(--color-border-primary);border-radius:var(--radius-md);background:transparent;color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast);font-size:1.25rem;line-height:1}.modal-close:hover{color:var(--color-text-primary);border-color:var(--color-border-hover);background:#ffffff1a;transform:scale(1.05)}.share-modal-content{padding:var(--spacing-xl);max-height:calc(90vh - 120px);overflow-y:auto;position:relative;z-index:2}.album-info{margin-bottom:var(--spacing-xl);padding:var(--spacing-lg);background:var(--color-bg-tertiary);border:1px solid var(--color-border-primary);border-radius:var(--radius-lg);position:relative;overflow:hidden}.album-info:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.02) 0%,transparent 50%);pointer-events:none}.album-info h4{font-size:1.125rem;font-weight:600;color:var(--color-text-primary);margin:0 0 var(--spacing-sm) 0;position:relative;z-index:1}.album-info p{color:var(--color-text-secondary);margin:0;line-height:1.5;position:relative;z-index:1}.error-message{background:#ff64641a;border:1px solid rgba(255,100,100,.3);border-radius:var(--radius-lg);padding:var(--spacing-md);color:#ff6464e6;margin-bottom:var(--spacing-lg);font-size:.875rem;display:flex;align-items:center;gap:var(--spacing-sm)}.error-message:before{content:"⚠️";font-size:1rem}.create-share-section{margin-bottom:var(--spacing-2xl)}.create-share-section h5{font-size:1rem;font-weight:600;color:var(--color-text-primary);margin:0 0 var(--spacing-lg) 0;display:flex;align-items:center;gap:var(--spacing-sm)}.create-share-section h5:before{content:"+";display:flex;align-items:center;justify-content:center;width:20px;height:20px;background:var(--color-accent);color:var(--color-bg-primary);border-radius:50%;font-size:.875rem;font-weight:700}.create-share-form{display:flex;gap:var(--spacing-md);align-items:flex-end}.form-group{flex:1}.form-group label{display:block;font-size:.875rem;font-weight:500;color:var(--color-text-secondary);margin-bottom:var(--spacing-sm)}.form-group select{width:100%;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);background:var(--color-bg-secondary);color:var(--color-text-primary);font-size:.875rem;transition:var(--transition-normal);cursor:pointer}.form-group select:focus{outline:none;border-color:var(--color-border-focus);box-shadow:0 0 0 2px #ffffff1a}.btn{display:inline-flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);border:1px solid var(--color-border-primary);border-radius:var(--radius-lg);background:transparent;color:var(--color-text-secondary);text-decoration:none;font-size:.875rem;font-weight:500;cursor:pointer;transition:all var(--transition-normal);position:relative;overflow:hidden;white-space:nowrap}.btn:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.1),transparent);transition:var(--transition-normal)}.btn:hover{color:var(--color-text-primary);border-color:var(--color-border-hover);background:#ffffff0d;transform:translateY(-1px)}.btn-primary{background:var(--color-accent);color:var(--color-bg-primary);border-color:var(--color-accent)}.btn-primary:hover{background:var(--color-accent-hover);border-color:var(--color-accent-hover);color:var(--color-bg-primary);box-shadow:var(--shadow-glow)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn:disabled:before{display:none}.share-links-section{margin-bottom:var(--spacing-lg)}.share-links-section h5{font-size:1rem;font-weight:600;color:var(--color-text-primary);margin:0 0 var(--spacing-lg) 0;display:flex;align-items:center;gap:var(--spacing-sm)}.share-links-section h5:before{content:"📋";font-size:1rem}.loading{display:flex;align-items:center;justify-content:center;padding:var(--spacing-xl);color:var(--color-text-secondary);font-size:.875rem}.loading:before{content:"";width:16px;height:16px;border:2px solid var(--color-border-primary);border-top:2px solid var(--color-accent);border-radius:50%;animation:spin 1s linear infinite;margin-right:var(--spacing-sm)}.empty-state{text-align:center;padding:var(--spacing-2xl);color:var(--color-text-tertiary)}.empty-state p{margin:0;font-size:.875rem}.share-links-list{display:flex;flex-direction:column;gap:var(--spacing-md)}.share-link-item{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--spacing-md);padding:var(--spacing-lg);background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-lg);transition:all var(--transition-normal);position:relative;overflow:hidden}.share-link-item:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.02) 0%,transparent 50%);pointer-events:none}.share-link-item:hover{border-color:var(--color-border-hover);background:#ffffff05}.share-link-item.disabled{opacity:.6;background:var(--color-bg-tertiary)}.share-link-item.disabled .share-link-actions{opacity:1}.share-link-item .btn{pointer-events:auto!important;cursor:pointer!important}.share-link-item .btn:disabled{pointer-events:auto!important;cursor:pointer!important;opacity:1!important}.share-link-item.expired{border-color:#ff64644d;background:#ff64640d}.share-link-info{flex:1;min-width:0;position:relative;z-index:1}.share-code{display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-sm)}.code-label{font-size:.75rem;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.05em;font-weight:500}.code-value{font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:1rem;font-weight:600;color:var(--color-text-primary);background:var(--color-bg-tertiary);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);border:1px solid var(--color-border-primary)}.share-meta{display:flex;flex-direction:column;gap:var(--spacing-xs);margin-bottom:var(--spacing-sm)}.share-meta span{font-size:.75rem;color:var(--color-text-secondary)}.expired-text{color:#ff6464e6!important;font-weight:500}.share-url{background:var(--color-bg-tertiary);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);padding:var(--spacing-sm)}.url-text{font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.75rem;color:var(--color-text-tertiary);word-break:break-all;line-height:1.4}.share-link-actions{display:flex;flex-direction:column;gap:var(--spacing-xs);flex-shrink:0;position:relative;z-index:1}.btn-sm{padding:var(--spacing-xs) var(--spacing-sm);font-size:.75rem;min-width:80px;justify-content:center}.btn-secondary{border-color:var(--color-border-secondary);color:var(--color-text-tertiary)}.btn-success{border-color:#64ff644d;color:#64ff64e6;background:#64ff640d}.btn-success:hover{border-color:#64ff6499;background:#64ff641a}.btn-warning{border-color:#ffc8644d;color:#ffc864e6;background:#ffc8640d}.btn-warning:hover{border-color:#ffc86499;background:#ffc8641a}.btn-danger{border-color:#ff64644d;color:#ff6464cc;background:#ff64640d}.btn-danger:hover{border-color:#ff646499;background:#ff64641a;color:#ff6464}@media (max-width: 768px){.share-modal{max-width:95vw;margin:var(--spacing-sm)}.share-modal-header,.share-modal-content{padding:var(--spacing-lg) var(--spacing-md)}.create-share-form{flex-direction:column;align-items:stretch}.share-link-item{flex-direction:column;align-items:stretch;gap:var(--spacing-md)}.share-link-actions{flex-direction:row;justify-content:space-between}.btn-sm{flex:1}}@media (max-width: 480px){.share-modal-header h3{font-size:1.25rem}.album-info,.share-link-item{padding:var(--spacing-md)}.share-link-actions{flex-direction:column}.code-value{font-size:.875rem}.url-text{font-size:.7rem}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(30px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.share-link-item{animation:slideIn .3s ease-out}@keyframes slideIn{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}@media (prefers-reduced-motion: reduce){.share-modal,.share-link-item,.btn{animation:none;transition:none}.loading:before{animation:none}.btn:before{display:none}}@media (prefers-contrast: high){.share-modal,.album-info,.share-link-item,.btn,.code-value,.share-url{border-width:2px}}.modal-close:focus-visible,.btn:focus-visible,.form-group select:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}.copy-success{position:relative}.copy-success:after{content:"已复制!";position:absolute;top:-30px;left:50%;transform:translate(-50%);background:var(--color-bg-modal);color:var(--color-text-primary);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);font-size:.75rem;white-space:nowrap;animation:fadeInOut 2s ease-out;pointer-events:none;z-index:1000}@keyframes fadeInOut{0%,to{opacity:0;transform:translate(-50%) translateY(-5px)}20%,80%{opacity:1;transform:translate(-50%) translateY(0)}}.share-stats{display:flex;justify-content:center;gap:var(--spacing-xl);margin-top:var(--spacing-lg);padding:var(--spacing-md);background:var(--color-bg-secondary);border-radius:var(--radius-lg);border:1px solid var(--color-border-primary)}@media (max-width: 640px){.share-stats{flex-direction:column;gap:var(--spacing-md)}}.albums-container{min-height:calc(100vh - 80px);background:var(--color-bg-primary);color:var(--color-text-primary);padding:var(--spacing-xl) 0}.albums-header{max-width:1200px;margin:0 auto;padding:0 var(--spacing-md);display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:var(--spacing-3xl);position:relative}.albums-header:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 30% 50%,rgba(255,255,255,.02) 0%,transparent 70%);pointer-events:none}.header-content{position:relative;z-index:1}.header-content h1{color:var(--color-text-primary);margin:0 0 var(--spacing-sm) 0;font-size:3rem;font-weight:700;letter-spacing:-.02em;line-height:1.1}.header-content p{color:var(--color-text-secondary);margin:0;font-size:1.25rem;font-weight:300;letter-spacing:.01em}.error-message{background-color:#ef444433;color:#ff6b6b;padding:1rem;border-radius:8px;margin-bottom:1rem;border:1px solid #ff6b6b}.album-form-card{max-width:1200px;margin:0 auto var(--spacing-3xl) auto;padding:0 var(--spacing-md)}.album-form-inner{background:var(--color-bg-card);border:1px solid var(--color-border-primary);border-radius:var(--radius-xl);padding:var(--spacing-2xl);position:relative;overflow:hidden;transition:all var(--transition-normal)}.album-form-inner:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.02) 0%,transparent 50%);pointer-events:none}.album-form-inner:hover{border-color:var(--color-border-hover);transform:translateY(-2px);box-shadow:var(--shadow-lg)}.album-form-card h3{margin:0 0 var(--spacing-xl) 0;color:var(--color-text-primary);font-size:2rem;font-weight:600;letter-spacing:-.01em;position:relative;z-index:1}.form-group{margin-bottom:var(--spacing-xl);position:relative;z-index:1}.form-group label{display:block;margin-bottom:var(--spacing-sm);color:var(--color-text-primary);font-weight:500;font-size:1rem;letter-spacing:.01em}.form-group input,.form-group textarea{width:100%;padding:var(--spacing-md);border:1px solid var(--color-border-primary);border-radius:var(--radius-lg);font-size:1rem;transition:all var(--transition-normal);font-family:inherit;background:var(--color-bg-secondary);color:var(--color-text-primary);box-sizing:border-box}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--color-border-hover);background:#ffffff0d;box-shadow:var(--shadow-md)}.form-group textarea{resize:vertical;min-height:80px}.checkbox-group{margin-bottom:1.5rem}.checkbox-label{display:flex;align-items:center;cursor:pointer;font-size:.95rem;color:#fff}.checkbox-label input[type=checkbox]{width:auto;margin-right:.75rem;transform:scale(1.2)}.cover-preview{margin-top:.75rem}.cover-preview img{border:2px solid var(--color-border-primary);transition:border-color .3s ease}.cover-preview img:hover{border-color:var(--color-border-hover)}.form-actions{display:flex;justify-content:center;align-items:center;gap:1rem;margin-top:2rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-xl);border:1px solid var(--color-border-primary);border-radius:var(--radius-lg);background:linear-gradient(135deg,#ffffff0d,#ffffff05);backdrop-filter:blur(10px);color:var(--color-text-secondary);text-decoration:none;font-size:1rem;font-weight:500;cursor:pointer;transition:all var(--transition-normal);position:relative;overflow:hidden;min-width:140px;box-shadow:0 2px 8px #0000001a,inset 0 1px #ffffff1a}.btn:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.15),transparent);transition:var(--transition-fast);z-index:1}.btn:after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.1) 0%,transparent 50%,rgba(255,255,255,.05) 100%);opacity:0;transition:opacity var(--transition-normal);z-index:0}.btn:hover:before{left:100%}.btn:hover:after{opacity:1}.btn:hover:not(:disabled){color:var(--color-text-primary);border-color:var(--color-border-hover);background:linear-gradient(135deg,#ffffff1a,#ffffff0d);transform:translateY(-3px);box-shadow:0 8px 25px #0003,inset 0 1px #fff3}.btn:active:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #00000026,inset 0 1px #ffffff1a}.btn:disabled{opacity:.4;cursor:not-allowed;transform:none;box-shadow:none}.btn-primary{background:linear-gradient(135deg,var(--color-accent) 0%,#3b82f6 100%);color:var(--color-bg-primary);border-color:var(--color-accent);box-shadow:0 4px 15px #3b82f64d,inset 0 1px #fff3}.btn-primary:after{background:linear-gradient(135deg,rgba(255,255,255,.2) 0%,transparent 50%,rgba(255,255,255,.1) 100%)}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,var(--color-accent-hover) 0%,#2563eb 100%);box-shadow:0 8px 30px #3b82f666,inset 0 1px #ffffff4d;transform:translateY(-3px)}.btn-primary:active:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 20px #3b82f64d,inset 0 1px #fff3;border-color:var(--color-accent-hover);color:var(--color-bg-primary);box-shadow:var(--shadow-glow)}.btn-secondary{background:linear-gradient(135deg,var(--color-bg-secondary) 0%,rgba(255,255,255,.03) 100%);color:var(--color-text-primary);border-color:var(--color-border-primary);box-shadow:0 2px 8px #00000014,inset 0 1px #ffffff14}.btn-secondary:after{background:linear-gradient(135deg,rgba(255,255,255,.08) 0%,transparent 50%,rgba(255,255,255,.04) 100%)}.btn-secondary:hover:not(:disabled){background:linear-gradient(135deg,#ffffff14,#ffffff0a);border-color:var(--color-border-hover);box-shadow:0 6px 20px #00000026,inset 0 1px #ffffff26;transform:translateY(-2px)}.btn-secondary:active:not(:disabled){transform:translateY(-1px);box-shadow:0 3px 10px #0000001a,inset 0 1px #ffffff1a}.btn-sm{padding:var(--spacing-sm) var(--spacing-md);font-size:.9rem;min-width:100px}.btn-icon{padding:var(--spacing-sm);border:1px solid var(--color-border-primary);background:linear-gradient(135deg,#ffffff08,#ffffff03);backdrop-filter:blur(10px);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-normal);color:var(--color-text-tertiary);position:relative;overflow:hidden;min-width:40px;min-height:40px;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 2px 6px #00000014}.btn-icon:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.1),transparent);transition:var(--transition-fast)}.btn-icon:hover:before{left:100%}.btn-icon:hover{background:linear-gradient(135deg,#ffffff14,#ffffff0a);color:var(--color-text-primary);border-color:var(--color-border-hover);transform:translateY(-2px);box-shadow:0 6px 15px #0000001f}.btn-icon:active{transform:translateY(0);box-shadow:0 2px 8px #0000001a}.btn-icon.btn-danger{color:#ef4444;border-color:#ef44444d;background:linear-gradient(135deg,#ef44440d,#ef444405)}.btn-icon.btn-danger:hover{background:linear-gradient(135deg,#ef444426,#ef444414);color:#f87171;border-color:#ef444480;box-shadow:0 6px 20px #ef444433}.btn-icon.btn-danger:active{box-shadow:0 3px 12px #ef444426}.albums-grid{max-width:1200px;margin:0 auto;padding:0 var(--spacing-md);display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--spacing-xl);margin-top:var(--spacing-2xl)}.empty-state{grid-column:1 / -1;text-align:center;padding:var(--spacing-3xl) var(--spacing-xl);color:var(--color-text-tertiary);position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center}.empty-state:before{content:"";position:absolute;top:0;left:50%;transform:translate(-50%);width:200px;height:200px;background:radial-gradient(circle,rgba(255,255,255,.02) 0%,transparent 70%);pointer-events:none}.empty-icon{margin-bottom:var(--spacing-xl);opacity:.6;position:relative;z-index:1}.empty-state h3{margin:0 0 var(--spacing-sm) 0;color:var(--color-text-primary);font-size:1.75rem;font-weight:600;position:relative;z-index:1}.empty-state p{margin:0 0 var(--spacing-xl) 0;font-size:1.125rem;color:var(--color-text-secondary);position:relative;z-index:1}.album-card{background:var(--color-bg-card);border:1px solid var(--color-border-primary);border-radius:var(--radius-xl);overflow:hidden;transition:all var(--transition-normal);position:relative}.album-card:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.02) 0%,transparent 50%);pointer-events:none;z-index:1}.album-card:hover{transform:translateY(-4px);border-color:var(--color-border-hover);box-shadow:var(--shadow-lg)}.album-cover{position:relative;height:220px;background:var(--color-bg-secondary);overflow:hidden;z-index:2}.album-cover img,.album-cover-image{width:100%;height:100%;object-fit:cover;transition:transform var(--transition-normal)}.album-card:hover .album-cover img,.album-card:hover .album-cover-image{transform:scale(1.05)}.album-placeholder{display:flex;align-items:center;justify-content:center;height:100%;color:var(--color-text-tertiary);background:linear-gradient(135deg,var(--color-bg-secondary) 0%,var(--color-bg-tertiary) 100%)}.album-overlay{position:absolute;inset:0;background:#0009;backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;opacity:0;transition:all var(--transition-normal);z-index:3}.album-card:hover .album-overlay{opacity:1}.album-overlay-btn{display:inline-flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-lg);color:var(--color-text-primary);text-decoration:none;font-size:.9rem;font-weight:500;transition:all var(--transition-fast);backdrop-filter:blur(10px)}.album-overlay-btn:hover{background:#fff3;border-color:#ffffff4d;transform:translateY(-1px)}.album-info{padding:var(--spacing-xl) var(--spacing-lg) var(--spacing-lg) var(--spacing-lg);position:relative;z-index:2}.album-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-md)}.album-title{margin:0;color:var(--color-text-primary);font-size:1.375rem;font-weight:600;line-height:1.3;flex:1;margin-right:var(--spacing-md);margin-left:var(--spacing-md);transition:color var(--transition-fast)}.album-card:hover .album-title{color:var(--color-accent-primary)}.album-actions{display:flex;gap:var(--spacing-sm);flex-shrink:0}.album-description{margin:0;color:var(--color-text-secondary);font-size:1rem;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-left:var(--spacing-md);margin-right:var(--spacing-md)}.album-meta{display:flex;align-items:center;gap:var(--spacing-md);font-size:.9rem;color:var(--color-text-tertiary);flex-wrap:wrap;margin-bottom:var(--spacing-md);margin-left:var(--spacing-md);margin-right:var(--spacing-md)}.image-count,.public-badge,.created-date{display:flex;align-items:center;gap:var(--spacing-xs)}.public-badge{color:var(--color-accent-primary);font-weight:500;padding:var(--spacing-xs) var(--spacing-sm);background:#4ade801a;border:1px solid rgba(74,222,128,.2);border-radius:var(--radius-md);font-size:.8rem}.albums-btn{display:inline-flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);border:none;border-radius:var(--radius-lg);background:transparent;color:var(--color-text-secondary);text-decoration:none;font-size:.875rem;font-weight:500;cursor:pointer;transition:all var(--transition-normal);position:relative;overflow:hidden}.albums-btn:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.1),transparent);transition:var(--transition-normal)}.albums-btn:hover:before{left:100%}.albums-btn-primary{background:linear-gradient(135deg,#000,#1a1a1a);color:#fff;border:2px solid #555555;box-shadow:0 4px 15px #0000004d;position:relative;overflow:hidden}.albums-btn-primary:after{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s}.albums-btn-primary:hover{background:#333;border-color:#777;color:#fff;transform:translateY(-2px);box-shadow:0 8px 25px #0006}.albums-btn-primary:hover:after{left:100%}.albums-btn-secondary{background:#2a2a2a;color:#fff;border:2px solid #555555}.albums-btn-secondary:hover{background:#333;border-color:#777;transform:translateY(-2px);box-shadow:0 8px 25px #0006}@media (max-width: 480px){.albums-container{padding:.75rem}.albums-header{flex-direction:column;align-items:flex-start;gap:1rem;margin-bottom:1.5rem}.header-content h1{font-size:1.75rem;margin-bottom:.5rem}.header-content p{font-size:.9rem}.header-actions{width:100%}.btn{width:100%;justify-content:center;padding:.75rem 1rem;font-size:.9rem}.albums-grid{grid-template-columns:1fr;gap:1rem}.album-card{border-radius:16px}.album-cover{height:160px}.album-placeholder{font-size:2.5rem}.album-info{padding:var(--spacing-lg) var(--spacing-md) var(--spacing-md) var(--spacing-md)}.album-header{flex-direction:row;gap:.75rem;align-items:flex-start;justify-content:space-between}.album-title{font-size:1.125rem;margin-right:var(--spacing-md);text-align:left;flex:1}.album-actions{gap:.5rem;flex-shrink:0}.btn-icon{padding:.5rem;min-width:40px}.album-description{font-size:.875rem;-webkit-line-clamp:3;margin-right:var(--spacing-md);margin-left:var(--spacing-md)}.album-meta{flex-direction:row;align-items:center;gap:.5rem;font-size:.8rem;flex-wrap:wrap}.album-form-card{padding:1.25rem;border-radius:16px}.form-actions{flex-direction:column;gap:.75rem}.form-actions .btn{width:100%}.empty-state{padding:2rem 1rem}.empty-icon{font-size:3rem}.empty-state h3{font-size:1.25rem}.empty-state p{font-size:1rem}}@media (min-width: 481px) and (max-width: 767px){.albums-container{padding:1rem}.albums-header{flex-direction:column;align-items:flex-start;gap:1rem}.header-content h1{font-size:2rem}.albums-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.25rem}.album-cover{height:180px}.album-form-card{padding:1.5rem}.form-actions{flex-direction:row;justify-content:flex-end}.album-meta{flex-direction:row;flex-wrap:wrap;gap:1rem}}@media (min-width: 768px) and (max-width: 1023px){.albums-container{padding:1.5rem}.albums-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1.5rem}.album-cover{height:200px}}@media (min-width: 1024px){.albums-container{padding:2rem}.albums-grid{grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:2rem}.album-cover{height:220px}.album-card:hover{transform:translateY(-6px)}}.image-upload{padding:var(--spacing-lg) 0}.upload-dropzone{position:relative;border:2px dashed var(--color-border-primary);border-radius:var(--radius-xl);padding:var(--spacing-3xl) var(--spacing-xl);text-align:center;cursor:pointer;transition:all var(--transition-normal);background:var(--color-bg-card);overflow:hidden}.upload-dropzone:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.02) 0%,transparent 50%);pointer-events:none}.upload-dropzone:hover{border-color:var(--color-border-hover);background:#ffffff05;transform:translateY(-2px);box-shadow:var(--shadow-md)}.upload-dropzone.dragging{border-color:var(--color-accent);background:#ffffff0d;box-shadow:var(--shadow-glow);transform:scale(1.02)}.upload-dropzone.dragging:after{content:"";position:absolute;inset:0;background:linear-gradient(45deg,transparent 25%,rgba(255,255,255,.05) 25%,rgba(255,255,255,.05) 50%,transparent 50%,transparent 75%,rgba(255,255,255,.05) 75%);background-size:20px 20px;animation:moveStripes 1s linear infinite;pointer-events:none}.upload-icon{display:inline-flex;align-items:center;justify-content:center;width:80px;height:80px;border:2px solid var(--color-border-primary);border-radius:50%;background:var(--color-bg-tertiary);color:var(--color-accent);font-size:2rem;margin-bottom:var(--spacing-lg);transition:all var(--transition-normal);position:relative}.upload-icon:before{content:"";position:absolute;inset:-2px;border-radius:50%;background:linear-gradient(135deg,rgba(255,255,255,.1) 0%,transparent 50%);z-index:-1}.upload-dropzone:hover .upload-icon{border-color:var(--color-border-hover);background:#ffffff1a;transform:scale(1.1)}.upload-dropzone.dragging .upload-icon{border-color:var(--color-accent);background:#ffffff26;transform:scale(1.2);box-shadow:var(--shadow-glow)}.upload-text{position:relative;z-index:1}.upload-text p{margin:0;color:var(--color-text-primary);font-size:1.125rem;font-weight:500;margin-bottom:var(--spacing-sm)}.upload-hint{color:var(--color-text-tertiary);font-size:.875rem;margin:0}.upload-dropzone.dragging .upload-text p{color:var(--color-accent)}.upload-progress{margin-top:var(--spacing-xl);background:var(--color-bg-card);border:1px solid var(--color-border-primary);border-radius:var(--radius-xl);padding:var(--spacing-lg);position:relative;overflow:hidden}.upload-progress:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.02) 0%,transparent 50%);pointer-events:none}.upload-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-lg);position:relative;z-index:1}.upload-header h4{font-size:1.125rem;font-weight:600;color:var(--color-text-primary);margin:0}.clear-btn{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);border:1px solid var(--color-border-secondary);border-radius:var(--radius-md);background:transparent;color:var(--color-text-tertiary);font-size:.75rem;cursor:pointer;transition:all var(--transition-fast)}.clear-btn:hover:not(:disabled){color:var(--color-text-primary);border-color:var(--color-border-hover);background:#ffffff0d}.clear-btn:disabled{opacity:.3;cursor:not-allowed}.upload-list{display:flex;flex-direction:column;gap:var(--spacing-md);position:relative;z-index:1}.upload-item{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);border:1px solid var(--color-border-primary);border-radius:var(--radius-lg);background:var(--color-bg-secondary);transition:all var(--transition-normal);position:relative;overflow:hidden}.upload-item:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.02) 0%,transparent 50%);pointer-events:none}.upload-item.pending{border-color:var(--color-border-secondary)}.upload-item.uploading{border-color:var(--color-accent);background:#ffffff05}.upload-item.success{border-color:#64ff644d;background:#64ff640d}.upload-item.error{border-color:#ff64644d;background:#ff64640d}.upload-preview{width:60px;height:60px;border-radius:var(--radius-md);overflow:hidden;flex-shrink:0;border:1px solid var(--color-border-primary);background:var(--color-bg-tertiary)}.upload-preview img{width:100%;height:100%;object-fit:cover}.upload-info{flex:1;min-width:0}.file-name{font-size:.875rem;font-weight:500;color:var(--color-text-primary);margin-bottom:var(--spacing-xs);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-size{font-size:.75rem;color:var(--color-text-tertiary);margin-bottom:var(--spacing-xs)}.progress-bar{width:100%;height:4px;background:var(--color-bg-tertiary);border-radius:2px;overflow:hidden;position:relative}.progress-fill{height:100%;background:linear-gradient(90deg,var(--color-accent) 0%,var(--color-accent-hover) 100%);border-radius:2px;transition:width var(--transition-normal);position:relative}.progress-fill:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.3) 50%,transparent 100%);animation:shimmer 2s infinite}.error-message{font-size:.75rem;color:#ff6464e6;margin-top:var(--spacing-xs);line-height:1.4}.upload-status{display:flex;align-items:center;gap:var(--spacing-xs);font-size:.75rem;font-weight:500;min-width:80px;justify-content:center}.status-pending{color:var(--color-text-tertiary)}.status-uploading{color:var(--color-accent);display:flex;align-items:center;gap:var(--spacing-xs)}.status-uploading:before{content:"";width:12px;height:12px;border:2px solid var(--color-border-primary);border-top:2px solid var(--color-accent);border-radius:50%;animation:spin 1s linear infinite}.status-success{color:#64ff64e6}.status-error{color:#ff6464e6}.remove-btn{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border:1px solid var(--color-border-secondary);border-radius:var(--radius-sm);background:transparent;color:var(--color-text-tertiary);cursor:pointer;transition:all var(--transition-fast);font-size:.875rem;line-height:1}.remove-btn:hover{border-color:#ff646480;background:#ff64641a;color:#ff6464e6;transform:scale(1.1)}.batch-actions{display:flex;justify-content:space-between;align-items:center;margin-top:var(--spacing-lg);padding-top:var(--spacing-lg);border-top:1px solid var(--color-border-primary)}.batch-info{font-size:.875rem;color:var(--color-text-secondary)}.batch-buttons{display:flex;gap:var(--spacing-sm)}.batch-btn{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);background:transparent;color:var(--color-text-secondary);font-size:.75rem;cursor:pointer;transition:all var(--transition-fast)}.batch-btn:hover:not(:disabled){color:var(--color-text-primary);border-color:var(--color-border-hover);background:#ffffff0d}.batch-btn:disabled{opacity:.3;cursor:not-allowed}.batch-btn.danger{border-color:#ff64644d;color:#ff6464cc}.batch-btn.danger:hover:not(:disabled){border-color:#ff646499;background:#ff64641a;color:#ff6464}.upload-stats{display:flex;justify-content:center;gap:var(--spacing-xl);margin-top:var(--spacing-lg);padding:var(--spacing-md);background:var(--color-bg-secondary);border-radius:var(--radius-lg);border:1px solid var(--color-border-primary)}.stat-number{display:block;font-size:1.25rem;font-weight:700;color:var(--color-text-primary);margin-bottom:var(--spacing-xs)}.stat-label{font-size:.75rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}@media (max-width: 768px){.upload-dropzone{padding:var(--spacing-xl) var(--spacing-md)}.upload-icon{width:60px;height:60px;font-size:1.5rem}.upload-text p{font-size:1rem}.upload-hint{font-size:.8rem}.upload-item{padding:var(--spacing-sm);gap:var(--spacing-sm)}.upload-preview{width:50px;height:50px}.batch-actions{flex-direction:column;gap:var(--spacing-md);align-items:stretch}.batch-buttons{justify-content:center}.upload-stats{flex-direction:column;gap:var(--spacing-md)}}@media (max-width: 480px){.upload-dropzone{padding:var(--spacing-lg) var(--spacing-sm)}.upload-icon{width:50px;height:50px;font-size:1.25rem}.upload-text p{font-size:.875rem}.upload-hint{font-size:.75rem}.upload-item{flex-direction:column;align-items:flex-start;gap:var(--spacing-sm)}.upload-preview{width:40px;height:40px}.upload-info{width:100%}.upload-status,.remove-btn{align-self:flex-end}}@keyframes moveStripes{0%{background-position:0 0}to{background-position:20px 20px}}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.upload-dropzone.dragging{animation:pulse 1.5s ease-in-out infinite}.upload-item{animation:slideIn .3s ease-out}@keyframes slideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){.upload-dropzone,.upload-icon,.upload-item,.progress-fill,.remove-btn{transition:none}.upload-dropzone.dragging,.upload-item{animation:none}.progress-fill:after{animation:none}.status-uploading:before{animation:none}}@media (prefers-contrast: high){.upload-dropzone,.upload-item,.upload-preview{border-width:2px}.upload-icon{border-width:3px}}.upload-dropzone:focus-visible,.clear-btn:focus-visible,.remove-btn:focus-visible,.batch-btn:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}.file-type-indicator{position:absolute;top:var(--spacing-xs);left:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);background:#000000b3;color:#fff;font-size:.7rem;border-radius:var(--radius-sm);text-transform:uppercase;font-weight:500;backdrop-filter:blur(5px)}.quality-settings{margin-top:var(--spacing-lg);padding:var(--spacing-md);background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-lg)}.quality-title{font-size:.875rem;font-weight:500;color:var(--color-text-primary);margin-bottom:var(--spacing-sm)}.quality-options{display:flex;gap:var(--spacing-sm);flex-wrap:wrap}.quality-option{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);background:transparent;color:var(--color-text-secondary);font-size:.75rem;cursor:pointer;transition:all var(--transition-fast)}.quality-option:hover{border-color:var(--color-border-hover);background:#ffffff0d}.quality-option.active{border-color:var(--color-accent);background:#ffffff1a;color:var(--color-text-primary)}.quality-option input[type=radio]{margin:0;width:12px;height:12px}.album-detail-container{max-width:1200px;margin:0 auto;padding:2rem;min-height:calc(100vh - 80px);background:#000;color:#fff}.album-header,.header-nav{margin-bottom:2rem}.back-link{display:inline-flex;align-items:center;gap:.5rem;color:#888;text-decoration:none;font-size:.95rem;transition:color .3s ease}.back-link:hover{color:#fff}.album-info{top:2rem;margin-bottom:2rem;padding:0;background:none;border:none}.album-cover-display{margin-bottom:1.5rem}.album-cover-image{width:100%;max-width:400px;height:250px;object-fit:cover;border-radius:12px;box-shadow:0 8px 32px #0000004d;transition:transform .3s ease}.album-cover-image:hover{transform:scale(1.02)}.album-info h1{color:#fff;margin:0 0 1rem;font-size:2.8rem;font-weight:300;letter-spacing:-.02em;line-height:1.2}.album-description{color:#ccc;font-size:1.2rem;margin:0 0 1.5rem;line-height:1.6;font-weight:300;max-width:800px}.album-meta{display:flex;align-items:center;gap:2rem;font-size:1rem;color:#999;flex-wrap:wrap;margin-top:1rem}.image-count{font-weight:400;color:#fff;font-size:1.1rem}.public-badge{background:none;color:#6f6;padding:0;border-radius:0;font-size:1rem;font-weight:400;position:relative}.public-badge:before{content:"●";margin-right:.5rem;color:#6f6}.created-date{color:#888;font-weight:300}.header-actions{display:flex;gap:1rem}.loading-spinner{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px}.spinner{width:40px;height:40px;border:4px solid #333333;border-top:4px solid #ffffff;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:1rem}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.error-state{text-align:center;padding:4rem 2rem;color:#888}.error-state h2{color:#ff6b6b;margin-bottom:1rem}.toggle-upload-btn{padding:.5rem 1rem;border:1px solid #ffffff;border-radius:6px;background:#1a1a1a;color:#fff;cursor:pointer;font-size:.9rem;transition:all .2s ease;display:flex;align-items:center;gap:.5rem}.toggle-upload-btn:hover{background-color:#333;color:#fff}.upload-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.upload-header h3{margin:0;color:#fff;font-size:1.25rem}.album-detail-btn{padding:.75rem 1.5rem;border:none;border-radius:12px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;position:relative;overflow:hidden}.album-detail-btn:disabled{opacity:.6;cursor:not-allowed}.album-detail-btn:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s}.album-detail-btn:hover:before{left:100%}.album-detail-btn-primary{background:linear-gradient(135deg,#000,#1a1a1a);color:#fff;border:2px solid #555555;box-shadow:0 4px 15px #0000004d}.album-detail-btn-primary:hover:not(:disabled){background:#333;border-color:#777;transform:translateY(-2px);box-shadow:0 8px 25px #0006}.album-detail-btn-secondary{background:#2a2a2a;color:#fff;border:2px solid #555555}.album-detail-btn-secondary:hover:not(:disabled){background:#333;border-color:#666;color:#fff;transform:translateY(-1px)}.btn{padding:.75rem 1.5rem;border:none;border-radius:8px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .3s ease;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:.5rem}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:linear-gradient(135deg,#000,#1a1a1a);color:#fff}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #0006}.btn-secondary{background:#2a2a2a;color:#fff;border:2px solid #555555}.btn-secondary:hover:not(:disabled){background:#333;border-color:#666}.btn-icon{padding:.5rem;border:none;background:transparent;border-radius:6px;cursor:pointer;transition:all .3s ease;color:#888}.btn-icon:hover{background:#333;color:#fff}.btn-icon.btn-danger{color:#ff6b6b}.btn-icon.btn-danger:hover{background:#2a1a1a;color:#ff6b6b}.upload-btn,.share-btn{background:#000;color:#fff;border:none;padding:10px 20px;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;transition:background-color .2s ease;display:inline-flex;align-items:center;gap:8px}.upload-btn:hover,.share-btn:hover{background:#1a1a1a}.share-btn{background:#000}.share-btn:hover{background:#1a1a1a}.images-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1.5rem}.empty-state{grid-column:1 / -1;text-align:center;padding:4rem 2rem;color:#888}.empty-icon{margin-bottom:1.5rem;opacity:.5}.empty-state h3{margin:0 0 .5rem;color:#fff;font-size:1.5rem}.empty-state p{margin:0 0 2rem;font-size:1.1rem}.image-card{background:#1a1a1a;border-radius:12px;overflow:hidden;border:1px solid #333333;transition:all .3s ease}.image-card:hover{transform:translateY(-4px);border-color:#555}.image-wrapper{position:relative;aspect-ratio:1;overflow:hidden;cursor:pointer}.image-wrapper img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.image-card:hover .image-wrapper img{transform:scale(1.05)}.image-overlay{position:absolute;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s ease}.image-card:hover .image-overlay{opacity:1}.view-btn{background:#ffffffe6;border:none;border-radius:50%;width:48px;height:48px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s ease;color:#000}.view-btn:hover{background:#fff;transform:scale(1.1);color:#000}.image-info{padding:1rem;display:flex;justify-content:space-between;align-items:center}.image-info h4{margin:0;color:#fff;font-size:.95rem;font-weight:500;flex:1;margin-right:.5rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lightbox{position:fixed;inset:0;background:#000000e6;display:flex;align-items:center;justify-content:center;z-index:1000;padding:2rem}.lightbox-content{position:relative;max-width:90vw;max-height:90vh;display:flex;flex-direction:column;align-items:center}.lightbox-content img{max-width:100%;max-height:calc(90vh - 100px);object-fit:contain;border-radius:8px}.lightbox-close{position:absolute;top:-50px;right:0;background:#ffffff1a;border:none;border-radius:50%;width:40px;height:40px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#fff;transition:background .3s ease}.lightbox-close:hover{background:#fff3}.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);background:#ffffff1a;border:none;border-radius:50%;width:48px;height:48px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#fff;transition:all .3s ease}.lightbox-nav:hover{background:#fff3;transform:translateY(-50%) scale(1.1)}.lightbox-prev{left:-80px}.lightbox-next{right:-80px}.lightbox-info{margin-top:1rem;text-align:center;color:#fff;max-width:600px}.lightbox-info h3{margin:0 0 .5rem;font-size:1.25rem}.lightbox-info p{margin:0;opacity:.8;line-height:1.5}@media (max-width: 768px){.album-detail-container{padding:1rem}.album-info h1{font-size:2rem}.album-meta{flex-direction:column;align-items:flex-start;gap:.75rem}.header-actions{margin-top:1rem}.images-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}.upload-form-card{padding:1.5rem}.file-label{padding:2rem 1rem}.form-actions{flex-direction:column}.lightbox{padding:1rem}.lightbox-nav{display:none}.lightbox-close{top:-40px;right:-10px}}@media (max-width: 480px){.album-detail-container{padding:.5rem}.images-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.upload-form-card{padding:1rem}.album-info h1{font-size:1.75rem}}.app{min-height:100vh;display:flex;flex-direction:column;background:var(--color-bg-primary)}.app-header{position:sticky;top:0;z-index:99;background:#0f0f0ff2;backdrop-filter:blur(10px);border-bottom:1px solid var(--color-border-primary)}.app-main{flex:1;width:100%;max-width:1400px;margin:80px auto 0;padding:var(--spacing-lg) var(--spacing-md)}.page-container{max-width:1200px;margin:0 auto;padding:var(--spacing-xl) 0}.page-title{font-size:2.5rem;font-weight:700;color:var(--color-text-primary);text-align:center;margin-bottom:var(--spacing-2xl);position:relative}.page-title:after{content:"";position:absolute;bottom:-var(--spacing-md);left:50%;transform:translate(-50%);width:60px;height:2px;background:var(--color-accent);border-radius:1px}.page-subtitle{font-size:1.125rem;color:var(--color-text-secondary);text-align:center;margin-bottom:var(--spacing-2xl);max-width:600px;margin-left:auto;margin-right:auto}.card{background:var(--color-bg-card);border:1px solid var(--color-border-primary);border-radius:var(--radius-lg);padding:var(--spacing-lg);transition:all var(--transition-normal);position:relative;overflow:hidden}.card:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.02) 0%,transparent 50%);pointer-events:none}.card:hover{border-color:var(--color-border-hover);box-shadow:var(--shadow-md);transform:translateY(-2px)}.card-header{margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--color-border-primary)}.card-title{font-size:1.25rem;font-weight:600;color:var(--color-text-primary);margin-bottom:var(--spacing-sm)}.card-description{color:var(--color-text-secondary);line-height:1.6}.card-content{margin-bottom:var(--spacing-lg)}.card-footer{padding-top:var(--spacing-md);border-top:1px solid var(--color-border-primary);display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-md)}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:var(--spacing-md)}.loading-spinner{width:40px;height:40px;border:3px solid var(--color-border-primary);border-top:3px solid var(--color-accent);border-radius:50%;animation:spin 1s linear infinite}.loading-text{color:var(--color-text-secondary);font-size:.875rem}.error-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:var(--spacing-md);text-align:center}.error-icon{width:64px;height:64px;color:var(--color-text-muted)}.error-title{font-size:1.5rem;font-weight:600;color:var(--color-text-primary);margin-bottom:var(--spacing-sm)}.error-message{color:var(--color-text-secondary);margin-bottom:var(--spacing-lg);max-width:400px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:40vh;gap:var(--spacing-md);text-align:center;padding:var(--spacing-2xl)}.empty-icon{font-size:4rem;opacity:.3;margin-bottom:var(--spacing-md)}.empty-title{font-size:1.25rem;font-weight:600;color:var(--color-text-primary);margin-bottom:var(--spacing-sm)}.empty-description{color:var(--color-text-secondary);margin-bottom:var(--spacing-lg);max-width:400px}.app-footer{margin-top:auto;padding:var(--spacing-2xl) 0;border-top:1px solid var(--color-border-primary);background:var(--color-bg-secondary)}.app-footer .container{max-width:1200px;margin:0 auto;padding:0 var(--spacing-md);text-align:center}.app-footer .footer-content{margin-bottom:var(--spacing-md)}.app-footer .footer-text{color:var(--color-text-muted);margin-bottom:var(--spacing-md);font-size:.875rem}.app-footer .footer-text strong{color:var(--color-text-secondary)}.app-footer .footer-links{display:flex;align-items:center;justify-content:center;gap:var(--spacing-md);flex-wrap:wrap}.app-footer .footer-link{display:inline-flex;align-items:center;gap:var(--spacing-xs);color:var(--color-text-tertiary);text-decoration:none;font-size:.875rem;transition:var(--transition-fast)}.app-footer .footer-link:hover{color:var(--color-text-primary)}.app-footer .footer-separator{color:var(--color-text-muted);font-size:.875rem}.app-footer .footer-version{color:var(--color-text-muted);font-size:.875rem;font-family:Monaco,Menlo,Ubuntu Mono,monospace}@media (max-width: 768px){.app-main{padding:var(--spacing-md) var(--spacing-sm)}.page-title{font-size:2rem}.page-subtitle{font-size:1rem}.card{padding:var(--spacing-md)}.card-footer{flex-direction:column;align-items:stretch}.empty-state{padding:var(--spacing-lg)}.empty-icon{font-size:3rem}}@media (max-width: 480px){.page-title{font-size:1.75rem}.app-footer{padding:var(--spacing-lg) 0}.app-footer .footer-links{flex-direction:column;gap:var(--spacing-sm)}.card{padding:var(--spacing-sm)}}.page-enter{opacity:0;transform:translateY(20px)}.page-enter-active{opacity:1;transform:translateY(0);transition:all var(--transition-normal)}.page-exit{opacity:1;transform:translateY(0)}.page-exit-active{opacity:0;transform:translateY(-20px);transition:all var(--transition-normal)}.focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}.selected{background:#ffffff1a;border-color:var(--color-border-focus)}.disabled{opacity:.5;pointer-events:none;cursor:not-allowed}.image-frame{border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-sm);overflow:hidden;transition:all var(--transition-normal)}.image-frame:hover{border-color:#ffffff4d;box-shadow:var(--shadow-glow);transform:scale(1.02)}.button-group{display:flex;gap:var(--spacing-sm);align-items:center}.button-group button{flex:1}@media (max-width: 480px){.button-group{flex-direction:column}.button-group button{width:100%}}.responsive-grid{display:grid;gap:var(--spacing-md);grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}@media (max-width: 640px){.responsive-grid{grid-template-columns:1fr;gap:var(--spacing-sm)}}.brand-section{text-align:center;padding:var(--spacing-3xl) 0}.brand-title{font-size:3rem;font-weight:700;color:var(--color-text-primary);margin-bottom:var(--spacing-sm);letter-spacing:-.02em}.brand-tagline{font-size:1.125rem;color:var(--color-text-secondary);font-weight:300}@media (max-width: 768px){.brand-title{font-size:2.5rem}.brand-tagline{font-size:1rem}}.stats-section{display:flex;justify-content:center;gap:var(--spacing-2xl);padding:var(--spacing-xl) 0;border-top:1px solid var(--color-border-primary)}.stat-item{text-align:center}.stat-number{font-size:2rem;font-weight:700;color:var(--color-text-primary);display:block}.stat-label{font-size:.875rem;color:var(--color-text-muted);margin-top:var(--spacing-xs)}@media (max-width: 640px){.stats-section{flex-direction:column;gap:var(--spacing-lg)}.stat-number{font-size:1.5rem}}
