:root{--theme-primary: #C41E3A;--theme-secondary: #FFD700;--theme-accent: #FF4500;--theme-primary-rgb: 196, 30, 58;--theme-secondary-rgb: 255, 215, 0;--bg-dark: #2D0A0A;--bg-darker: #1A0505;--bg-darkest: #3D1111;--text-light: rgba(255, 255, 255, .9);--text-muted: rgba(255, 215, 0, .7);--text-dim: rgba(255, 215, 0, .4);--glass-bg: rgba(60, 10, 10, .85);--glass-border: rgba(255, 215, 0, .15);--glass-shadow: rgba(139, 0, 0, .3);--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--radius-sm: .5rem;--radius-md: 1rem;--radius-lg: 1.5rem;--radius-xl: 2rem;--radius-full: 9999px;--transition-fast: .15s ease;--transition-normal: .3s ease;--transition-slow: .5s ease;--transition-bounce: .4s cubic-bezier(.68, -.55, .265, 1.55);--font-display: "Cinzel", serif;--font-chinese: "Noto Serif SC", serif;--font-body: "Inter", sans-serif}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:#0000001a;border-radius:3px}::-webkit-scrollbar-thumb{background:linear-gradient(180deg,var(--theme-primary),var(--theme-secondary));border-radius:3px;transition:background .3s ease}::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,var(--theme-secondary),var(--theme-primary))}.scrollbar-hide{-ms-overflow-style:none;scrollbar-width:none}.scrollbar-hide::-webkit-scrollbar{display:none}.glass-panel{background:var(--glass-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:0 8px 32px var(--glass-shadow)}.glass-button{background:#8b000033;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,215,0,.2);border-radius:var(--radius-lg);box-shadow:0 4px 20px #8b000040,inset 0 1px #ffd7001a;color:var(--text-light);cursor:pointer;transition:all var(--transition-normal);position:relative;overflow:hidden}.glass-button:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.1),transparent);transition:left .5s ease}.glass-button:hover:before{left:100%}.glass-button:hover{transform:translateY(-2px) scale(1.02);box-shadow:0 8px 30px #0003,inset 0 1px #ffffff26;border-color:#ffffff4d;background:#ffffff1f}.glass-button:active{transform:translateY(0) scale(.98)}.btn-glass-warm{background:#ffffff14;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.15);box-shadow:0 4px 20px #00000026,inset 0 1px #ffffff1a;transition:all var(--transition-normal);position:relative;overflow:hidden}.btn-glass-warm:after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,#e07a5f1a,#f5c75d1a);opacity:0;transition:opacity var(--transition-normal)}.btn-glass-warm:hover:after{opacity:1}.btn-glass-warm:hover{transform:translateY(-2px);box-shadow:0 8px 30px #0003,inset 0 1px #ffffff26;border-color:#ffffff4d;background:#ffffff1f}.soft-glow{position:relative}.soft-glow:before{content:"";position:absolute;inset:-2px;border-radius:inherit;background:linear-gradient(135deg,#e07a5f4d,#f5c75d33);opacity:0;transition:opacity var(--transition-normal);z-index:-1;filter:blur(8px)}.soft-glow:hover:before{opacity:1}.gradient-text{background:linear-gradient(135deg,var(--theme-primary),var(--theme-secondary));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.shimmer-text{background:linear-gradient(135deg,var(--theme-secondary),var(--theme-primary),var(--theme-secondary));background-size:200% auto;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:shimmer 3s linear infinite}.text-shimmer{background:linear-gradient(90deg,#c41e3a,gold,#ff4500,gold,#c41e3a);background-size:200% auto;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:textShimmer 4s ease-in-out infinite}@keyframes shimmer{0%{background-position:-200% center}to{background-position:200% center}}@keyframes textShimmer{0%,to{background-position:0% center}50%{background-position:100% center}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes floatRotate{0%,to{transform:translateY(0) rotate(0)}25%{transform:translateY(-5px) rotate(1deg)}50%{transform:translateY(-10px) rotate(0)}75%{transform:translateY(-5px) rotate(-1deg)}}@keyframes pulse-glow{0%,to{box-shadow:0 0 rgba(var(--theme-primary-rgb),.4)}50%{box-shadow:0 0 0 15px rgba(var(--theme-primary-rgb),0)}}@keyframes breathe{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.05);opacity:.9}}@keyframes lanternSway{0%,to{transform:rotate(-3deg) translateY(0)}50%{transform:rotate(3deg) translateY(-4px)}}.lantern-sway{transform-origin:top center;animation:lanternSway 4s ease-in-out infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes slideInRight{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 bounceIn{0%{opacity:0;transform:scale(.3)}50%{transform:scale(1.05)}70%{transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes modalBackdrop{0%{opacity:0;-webkit-backdrop-filter:blur(0);backdrop-filter:blur(0)}to{opacity:1;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}}@keyframes modalPanel{0%{opacity:0;transform:scale(.95) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes ripple{0%{transform:scale(0);opacity:.5}to{transform:scale(4);opacity:0}}@keyframes glow{0%,to{filter:drop-shadow(0 0 5px rgba(var(--theme-primary-rgb),.5))}50%{filter:drop-shadow(0 0 20px rgba(var(--theme-primary-rgb),.8))}}@keyframes loading-spinner{to{transform:rotate(360deg)}}.loading-spinner{animation:loading-spinner 1s linear infinite}@keyframes loading-pulse{0%,to{opacity:1}50%{opacity:.5}}.loading-pulse{animation:loading-pulse 1.5s ease-in-out infinite}.animate-float{animation:float 3s ease-in-out infinite}.animate-float-rotate{animation:floatRotate 4s ease-in-out infinite}.animate-pulse-glow{animation:pulse-glow 2s ease-in-out infinite}.animate-breathe{animation:breathe 3s ease-in-out infinite}.animate-spin{animation:spin 1s linear infinite}.animate-fadeIn{animation:fadeIn .5s ease-out}.animate-fadeInUp{animation:fadeInUp .5s ease-out}.animate-slideUp{animation:slideUp .4s ease-out}.animate-slideIn{animation:slideIn .3s ease-out}.animate-slideInRight{animation:slideInRight .3s ease-out}.animate-scaleIn{animation:scaleIn .3s ease-out}.animate-bounceIn{animation:bounceIn .6s ease-out}.animate-modalBackdrop{animation:modalBackdrop .3s ease-out forwards}.animate-modalPanel{animation:modalPanel .4s cubic-bezier(.34,1.56,.64,1) forwards}.animate-glow{animation:glow 2s ease-in-out infinite}.modal-warm{background:linear-gradient(165deg,#fdf6e8fa,#fffaf0f2);border:1px solid rgba(224,122,95,.2);box-shadow:0 25px 80px #00000026,0 0 0 1px #ffffff80 inset}.photo-card{transition:all var(--transition-normal);box-shadow:0 4px 15px #0000001a}.photo-card:hover{transform:translateY(-4px) scale(1.02);box-shadow:0 12px 30px #e07a5f33}.photo-card.dragging{opacity:.5;transform:scale(.95)}.tooltip{position:relative}.tooltip:after{content:attr(data-tooltip);position:absolute;bottom:100%;left:50%;transform:translate(-50%) translateY(-8px);padding:6px 12px;background:var(--bg-dark);color:var(--text-light);font-size:12px;border-radius:var(--radius-sm);white-space:nowrap;opacity:0;visibility:hidden;transition:all var(--transition-fast);pointer-events:none;z-index:100}.tooltip:hover:after{opacity:1;visibility:visible;transform:translate(-50%) translateY(-4px)}.ripple-effect{position:relative;overflow:hidden}.ripple-effect:after{content:"";position:absolute;width:100%;height:100%;top:50%;left:50%;pointer-events:none;background:radial-gradient(circle,rgba(255,255,255,.3) 0%,transparent 60%);transform:translate(-50%,-50%) scale(0);opacity:0}.ripple-effect:active:after{animation:ripple .6s ease-out}@media(max-width:768px){:root{--spacing-lg: 1rem;--spacing-xl: 1.5rem}.hide-mobile{display:none!important}}@media(min-width:769px){.hide-desktop{display:none!important}}@media(hover:none)and (pointer:coarse){.glass-button{min-height:44px;min-width:44px}.touch-target{min-height:48px;min-width:48px;padding:12px}.glass-button:hover{transform:none}.glass-button:active{transform:scale(.95)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}:focus-visible{outline:2px solid var(--theme-primary);outline-offset:2px}button:focus-visible,a:focus-visible{outline:2px solid var(--theme-secondary);outline-offset:2px}@media print{.no-print{display:none!important}}::selection{background:rgba(var(--theme-primary-rgb),.3);color:inherit}.btn-enhanced{position:relative;transition:all .4s cubic-bezier(.25,.8,.25,1)}.btn-enhanced:before{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(135deg,#e07a5f33,#f5c75d26);opacity:0;transition:opacity .3s ease}.btn-enhanced:hover{transform:translateY(-3px) scale(1.02);filter:brightness(1.1)}.btn-enhanced:hover:before{opacity:1}.glow-border{position:relative}.glow-border:after{content:"";position:absolute;inset:-3px;border-radius:inherit;background:linear-gradient(135deg,var(--theme-primary),var(--theme-secondary));opacity:0;transition:opacity .3s ease;z-index:-1;filter:blur(10px)}.glow-border:hover:after{opacity:.6}.mode-btn{position:relative;padding:12px 16px;border-radius:16px;background:#0000004d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1);transition:all .4s cubic-bezier(.34,1.56,.64,1)}.mode-btn:hover{transform:translateY(-3px) scale(1.02);box-shadow:0 10px 30px #0000004d;border-color:#fff3}.mode-btn.active{background:linear-gradient(135deg,rgba(var(--theme-primary-rgb),.3),rgba(var(--theme-secondary-rgb),.2));border-color:rgba(var(--theme-primary-rgb),.5);box-shadow:0 0 20px rgba(var(--theme-primary-rgb),.3),inset 0 1px #ffffff1a}.progress-bar-enhanced{position:relative;height:8px;border-radius:4px;background:#0000004d;overflow:hidden}.progress-bar-enhanced:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);animation:progressShine 2s ease-in-out infinite}.progress-bar-enhanced .fill{height:100%;border-radius:4px;background:linear-gradient(90deg,var(--theme-primary),var(--theme-secondary));box-shadow:0 0 10px rgba(var(--theme-primary-rgb),.5);transition:width .3s ease}@keyframes progressShine{0%{transform:translate(-100%)}to{transform:translate(100%)}}.card-float{transition:all .4s cubic-bezier(.25,.8,.25,1)}.card-float:hover{transform:translateY(-8px) rotateX(2deg);box-shadow:0 20px 40px #0003,0 0 0 1px #ffffff1a}.title-glow{text-shadow:0 0 10px rgba(var(--theme-primary-rgb),.5),0 0 20px rgba(var(--theme-primary-rgb),.3),0 0 40px rgba(var(--theme-primary-rgb),.2);animation:titlePulse 3s ease-in-out infinite}@keyframes titlePulse{0%,to{text-shadow:0 0 10px rgba(var(--theme-primary-rgb),.5),0 0 20px rgba(var(--theme-primary-rgb),.3),0 0 40px rgba(var(--theme-primary-rgb),.2)}50%{text-shadow:0 0 15px rgba(var(--theme-primary-rgb),.7),0 0 30px rgba(var(--theme-primary-rgb),.5),0 0 60px rgba(var(--theme-primary-rgb),.3)}}.icon-spin-hover{transition:transform .5s cubic-bezier(.68,-.55,.265,1.55)}.icon-spin-hover:hover{transform:rotate(180deg) scale(1.1)}.badge-bounce{animation:badgeBounce 2s ease-in-out infinite}@keyframes badgeBounce{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.bottom-controls{background:linear-gradient(180deg,#0000,#0000004d);padding-top:40px;margin-top:-40px}.thumbnail-enhanced{position:relative;border-radius:12px;overflow:hidden;transition:all .3s ease}.thumbnail-enhanced:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 50%,rgba(0,0,0,.5) 100%);opacity:0;transition:opacity .3s ease}.thumbnail-enhanced:hover:before{opacity:1}.thumbnail-enhanced:hover{transform:scale(1.08);box-shadow:0 8px 25px #0000004d}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(30px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-enhanced{animation:modalSlideUp .4s cubic-bezier(.34,1.56,.64,1) forwards}.status-pulse{position:relative}.status-pulse:after{content:"";position:absolute;inset:-4px;border-radius:50%;background:currentColor;opacity:0;animation:statusPulse 2s ease-out infinite}@keyframes statusPulse{0%{transform:scale(.8);opacity:.5}to{transform:scale(2);opacity:0}}.glass-panel-enhanced{background:linear-gradient(135deg,#8b000026,#3c0a0a1a);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,215,0,.15);border-radius:20px;box-shadow:0 8px 32px #8b000033,inset 0 1px #ffd7001a}.ripple-enhanced{position:relative;overflow:hidden}.ripple-enhanced:after{content:"";position:absolute;width:100%;height:100%;top:0;left:0;pointer-events:none;background-image:radial-gradient(circle,rgba(255,255,255,.4) 10%,transparent 10.01%);background-repeat:no-repeat;background-position:50%;transform:scale(10);opacity:0;transition:transform .5s,opacity .5s}.ripple-enhanced:active:after{transform:scale(0);opacity:.3;transition:0s}.lil-gui{--background-color: rgba(255, 255, 255, .06) !important;--widget-color: rgba(255, 255, 255, .08) !important;--focus-color: rgba(255, 255, 255, .15) !important;--hover-color: rgba(255, 255, 255, .12) !important;--font-family: var(--font-body), system-ui, sans-serif !important;--font-size: 11px !important;--number-color: #FFD700 !important;--string-color: #FF4500 !important;--title-background-color: rgba(255, 255, 255, .08) !important;--title-text-color: rgba(255, 255, 255, .9) !important;--text-color: rgba(255, 255, 255, .8) !important;backdrop-filter:blur(20px)!important;-webkit-backdrop-filter:blur(20px)!important;border:1px solid rgba(255,255,255,.12)!important;border-radius:16px!important;box-shadow:0 8px 32px #0003,inset 0 1px #ffffff14!important;overflow:hidden!important;z-index:15!important}.lil-gui .title{backdrop-filter:blur(10px)!important;-webkit-backdrop-filter:blur(10px)!important;border-bottom:1px solid rgba(255,255,255,.08)!important}.lil-gui .children{background:transparent!important}.lil-gui .controller{border-bottom:1px solid rgba(255,255,255,.04)!important}.lil-gui .controller:hover{background:#ffffff0f!important}.lil-gui .lil-gui{border:none!important;border-radius:0!important;box-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;background:transparent!important}.lil-gui .lil-gui>.title{background:#ffffff0d!important;border-radius:0!important}.lil-gui input,.lil-gui select,.lil-gui button{background:#ffffff14!important;border:1px solid rgba(255,255,255,.1)!important;border-radius:6px!important;color:#ffffffe6!important}.lil-gui input:hover,.lil-gui select:hover,.lil-gui button:hover{background:#ffffff1f!important;border-color:#fff3!important}.lil-gui input:focus,.lil-gui select:focus{background:#ffffff26!important;border-color:#ffd70066!important;outline:none!important}.lil-gui select option{background:#2d0a0a!important;color:#ffffffe6!important}.lil-gui .slider{background:#ffffff0f!important;border-radius:4px!important}.lil-gui .fill{background:linear-gradient(90deg,#c41e3a99,#ffd70099)!important;border-radius:4px!important}@media(orientation:landscape)and (max-height:500px){.modal-warm{max-height:95vh!important}.modal-warm .p-6{padding:.75rem!important}.modal-warm .p-5{padding:.5rem .75rem!important}}
