*,:before,:after{box-sizing:border-box}html,body{margin:0;padding:0}
:root{--color-primary:#e600ff;--color-primary-light:#f540ff;--color-primary-dark:#b800cc;--color-primary-rgb:230,0,255;--color-secondary:#00c8ff;--color-secondary-light:#40d4ff;--color-secondary-dark:#00a0cc;--color-secondary-rgb:0,200,255;--color-accent-gold:gold;--color-accent-gold-light:#ffe44d;--color-accent-gold-dark:#ccac00;--color-accent-coral:#ff6b6b;--color-accent-mint:#0f8;--color-accent-lavender:#a855f7;--color-success:#0f8;--color-success-bg:rgba(0,255,136,.15);--color-warning:#ffb300;--color-warning-bg:rgba(255,179,0,.15);--color-error:#ff4757;--color-error-bg:rgba(255,71,87,.15);--color-info:#00c8ff;--color-info-bg:rgba(0,200,255,.15);--bg-primary:#0a0a0f;--bg-secondary:#12121a;--bg-tertiary:#1a1a2e;--bg-card:#1e1e32;--bg-card-hover:#252542;--bg-elevated:#2a2a45;--bg-overlay:rgba(10,10,15,.85);--glass-bg:rgba(30,30,50,.6);--glass-bg-light:rgba(40,40,65,.4);--glass-border:rgba(255,255,255,.08);--glass-blur:blur(20px);--text-primary:#fff;--text-secondary:rgba(255,255,255,.75);--text-tertiary:rgba(255,255,255,.5);--text-muted:rgba(255,255,255,.35);--text-accent:var(--color-primary);--gradient-primary:linear-gradient(135deg,var(--color-primary),var(--color-secondary));--gradient-primary-reverse:linear-gradient(135deg,var(--color-secondary),var(--color-primary));--gradient-glow:linear-gradient(135deg,rgba(230,0,255,.4),rgba(0,200,255,.4));--gradient-card:linear-gradient(180deg,var(--bg-card)0%,var(--bg-tertiary)100%);--gradient-header:linear-gradient(180deg,var(--bg-primary)0%,transparent 100%);--gradient-mesh:radial-gradient(ellipse at 20% 0%,rgba(230,0,255,.15) 0%,transparent 50%),radial-gradient(ellipse at 80% 100%,rgba(0,200,255,.1) 0%,transparent 50%);--gradient-shine:linear-gradient(120deg,transparent 30%,rgba(255,255,255,.1) 50%,transparent 70%);--border-subtle:1px solid rgba(255,255,255,.06);--border-default:1px solid rgba(255,255,255,.1);--border-accent:1px solid rgba(230,0,255,.3);--border-glow:1px solid rgba(230,0,255,.5);--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:24px;--radius-2xl:32px;--radius-full:9999px;--shadow-sm:0 2px 8px rgba(0,0,0,.3);--shadow-md:0 4px 16px rgba(0,0,0,.4);--shadow-lg:0 8px 32px rgba(0,0,0,.5);--shadow-xl:0 16px 48px rgba(0,0,0,.6);--shadow-glow-sm:0 0 20px rgba(230,0,255,.2);--shadow-glow-md:0 0 40px rgba(230,0,255,.3);--shadow-glow-lg:0 8px 40px rgba(230,0,255,.4);--shadow-glow-intense:0 0 60px rgba(230,0,255,.5);--shadow-card:0 4px 20px rgba(0,0,0,.3),0 0 40px rgba(230,0,255,.05);--shadow-card-hover:0 12px 40px rgba(0,0,0,.4),0 0 60px rgba(230,0,255,.15);--font-family:"Inter","Montserrat",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-family-display:"Montserrat","Inter",sans-serif;--font-family-mono:"JetBrains Mono","Fira Code",monospace;--font-size-xs:.75rem;--font-size-sm:.875rem;--font-size-base:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:1.875rem;--font-size-4xl:2.25rem;--font-size-5xl:3rem;--font-size-6xl:3.75rem;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--line-height-tight:1.2;--line-height-normal:1.5;--line-height-relaxed:1.7;--letter-spacing-tight:-.02em;--letter-spacing-normal:0;--letter-spacing-wide:.05em;--letter-spacing-wider:.1em;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--space-24:6rem;--z-dropdown:100;--z-sticky:200;--z-fixed:300;--z-modal-backdrop:400;--z-modal:500;--z-popover:600;--z-tooltip:700;--z-toast:800;--transition-fast:.15s ease;--transition-base:.25s ease;--transition-slow:.35s ease;--transition-slower:.5s ease;--ease-out-expo:cubic-bezier(.16,1,.3,1);--ease-out-back:cubic-bezier(.34,1.56,.64,1);--ease-in-out-circ:cubic-bezier(.85,0,.15,1);--ease-spring:cubic-bezier(.34,1.2,.64,1);--header-height:72px;--header-height-mobile:64px;--bottom-nav-height:72px;--sidebar-width:280px;--container-max:1400px;--container-narrow:800px;--safe-area-top:env(safe-area-inset-top);--safe-area-bottom:env(safe-area-inset-bottom);--safe-area-left:env(safe-area-inset-left);--safe-area-right:env(safe-area-inset-right)}.text-gradient{background:var(--gradient-primary);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.glow{box-shadow:var(--shadow-glow-md)}.glow-text{text-shadow:0 0 20px rgba(230,0,255,.5)}.glass{background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);border:var(--glass-border)}.shimmer{position:relative;overflow:hidden}.shimmer:after{content:"";background:var(--gradient-shine);width:100%;height:100%;animation:2s infinite shimmer;position:absolute;top:0;left:-100%}@keyframes shimmer{to{left:100%}}.pulse-glow{animation:2s ease-in-out infinite pulseGlow}@keyframes pulseGlow{0%,to{box-shadow:0 0 20px rgba(230,0,255,.3)}50%{box-shadow:0 0 40px rgba(230,0,255,.6)}}.float{animation:3s ease-in-out infinite float}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.fade-in-up{animation:fadeInUp .5s var(--ease-out-expo)forwards}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.scale-in{animation:scaleIn .3s var(--ease-out-back)forwards}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.slide-in-right{animation:slideInRight .4s var(--ease-out-expo)forwards}@keyframes slideInRight{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:translate(0)}}.gradient-border{background:var(--bg-card);border-radius:var(--radius-lg);position:relative}.gradient-border:before{content:"";border-radius:inherit;background:var(--gradient-primary);-webkit-mask-composite:xor;pointer-events:none;padding:1px;position:absolute;top:0;bottom:0;left:0;right:0;-webkit-mask-image:linear-gradient(#fff 0,#fff 0),linear-gradient(#fff 0,#fff 0);mask-image:linear-gradient(#fff 0,#fff 0),linear-gradient(#fff 0,#fff 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.shimmer:after,.pulse-glow,.float{animation:none}}
.stagger-item{opacity:0;animation:staggerFadeIn .5s var(--ease-out-expo)forwards}.stagger-item:first-child{animation-delay:50ms}.stagger-item:nth-child(2){animation-delay:.1s}.stagger-item:nth-child(3){animation-delay:.15s}.stagger-item:nth-child(4){animation-delay:.2s}.stagger-item:nth-child(5){animation-delay:.25s}.stagger-item:nth-child(6){animation-delay:.3s}.stagger-item:nth-child(7){animation-delay:.35s}.stagger-item:nth-child(8){animation-delay:.4s}.stagger-item:nth-child(9){animation-delay:.45s}.stagger-item:nth-child(10){animation-delay:.5s}.stagger-item:nth-child(n+11){animation-delay:.55s}@keyframes staggerFadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.page-enter{animation:pageEnter .4s var(--ease-out-expo)forwards}@keyframes pageEnter{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.hover-lift{transition:transform var(--transition-base)var(--ease-out-expo),box-shadow var(--transition-base)}.hover-lift:hover{transform:translateY(-6px)}.hover-scale{transition:transform var(--transition-fast)var(--ease-out-back)}.hover-scale:hover{transform:scale(1.05)}.hover-glow{transition:box-shadow var(--transition-base)}.hover-glow:hover{box-shadow:var(--shadow-glow-md)}.hover-underline{position:relative}.hover-underline:after{content:"";background:var(--gradient-primary);width:0;height:2px;transition:width var(--transition-base)var(--ease-out-expo);position:absolute;bottom:-2px;left:0}.hover-underline:hover:after{width:100%}.ripple{position:relative;overflow:hidden}.ripple:after{content:"";opacity:0;background:rgba(255,255,255,.3);border-radius:50%;width:0;height:0;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.ripple:active:after{animation:.6s ease-out rippleEffect}@keyframes rippleEffect{0%{opacity:.5;width:0;height:0}to{opacity:0;width:200%;height:200%}}.press-effect{transition:transform var(--transition-fast)}.press-effect:active{transform:scale(.97)}.skeleton{background:linear-gradient(90deg,var(--bg-tertiary)25%,var(--bg-elevated)50%,var(--bg-tertiary)75%);border-radius:var(--radius-md);background-size:200% 100%;animation:1.5s ease-in-out infinite skeletonWave}@keyframes skeletonWave{0%{background-position:200% 0}to{background-position:-200% 0}}.pulse-loading{animation:1.5s ease-in-out infinite pulseLoading}@keyframes pulseLoading{0%,to{opacity:1}50%{opacity:.5}}.dots-loading{gap:4px;display:inline-flex}.dots-loading span{background:var(--color-primary);border-radius:50%;width:8px;height:8px;animation:1.4s ease-in-out infinite dotBounce}.dots-loading span:first-child{animation-delay:0s}.dots-loading span:nth-child(2){animation-delay:.2s}.dots-loading span:nth-child(3){animation-delay:.4s}@keyframes dotBounce{0%,80%,to{opacity:.5;transform:scale(.6)}40%{opacity:1;transform:scale(1)}}.slide-in-right{animation:slideInRight .4s var(--ease-out-expo)forwards}@keyframes slideInRight{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.slide-out-right{animation:slideOutRight .3s var(--ease-in-out-circ)forwards}@keyframes slideOutRight{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100%)}}.pop-in{animation:popIn .4s var(--ease-out-back)forwards}@keyframes popIn{0%{opacity:0;transform:scale(.5)}70%{transform:scale(1.1)}to{opacity:1;transform:scale(1)}}.pulse-attention{animation:2s ease-in-out infinite pulseAttention}@keyframes pulseAttention{0%,to{box-shadow:0 0 0 0 rgba(var(--color-primary-rgb),.4)}50%{box-shadow:0 0 0 10px rgba(var(--color-primary-rgb),0)}}.shake{animation:.5s ease-in-out shake}@keyframes shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-5px)}20%,40%,60%,80%{transform:translate(5px)}}.bounce-success{animation:bounceSuccess .6s var(--ease-out-back)}@keyframes bounceSuccess{0%{transform:scale(1)}30%{transform:scale(1.15)}50%{transform:scale(.95)}70%{transform:scale(1.05)}to{transform:scale(1)}}.heart-beat{animation:.3s ease-in-out heartBeat}@keyframes heartBeat{0%{transform:scale(1)}25%{transform:scale(1.3)}50%{transform:scale(.9)}75%{transform:scale(1.1)}to{transform:scale(1)}}.spin-icon{animation:1s linear infinite spinIcon}@keyframes spinIcon{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.count-up{animation:countUp .5s var(--ease-out-expo)}@keyframes countUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.reveal-on-scroll{opacity:0;transition:opacity .6s var(--ease-out-expo),transform .6s var(--ease-out-expo);transform:translateY(30px)}.reveal-on-scroll.revealed{opacity:1;transform:translateY(0)}.parallax-subtle{transition:transform .1s linear}@media (prefers-reduced-motion:reduce){.stagger-item,.page-enter,.hover-lift,.hover-scale,.hover-glow,.hover-underline:after,.ripple:after,.press-effect,.skeleton,.pulse-loading,.dots-loading span,.slide-in-right,.slide-out-right,.pop-in,.pulse-attention,.shake,.bounce-success,.heart-beat,.spin-icon,.count-up,.reveal-on-scroll{transition:none!important;animation:none!important}.reveal-on-scroll{opacity:1;transform:none}}
*,:before,:after{box-sizing:border-box}.skip-link{background:var(--gradient-primary);color:var(--text-primary);padding:var(--space-3)var(--space-6);border-radius:0 0 var(--radius-md)var(--radius-md);z-index:10001;font-weight:var(--font-weight-semibold);transition:top var(--transition-base);text-decoration:none;position:absolute;top:-70px;left:50%;transform:translate(-50%)}.skip-link:focus{outline:3px solid var(--text-primary);outline-offset:2px;top:0}:focus-visible{outline:3px solid var(--color-primary);outline-offset:2px}:focus:not(:focus-visible){outline:none}a:focus-visible{outline:3px solid var(--color-primary);outline-offset:2px;box-shadow:0 0 0 6px rgba(var(--color-primary-rgb),.2)}button:focus-visible{outline:3px solid var(--color-primary);outline-offset:2px;box-shadow:0 0 0 6px rgba(var(--color-primary-rgb),.2)}input:focus-visible{outline:3px solid var(--color-primary);outline-offset:2px;box-shadow:0 0 0 6px rgba(var(--color-primary-rgb),.2)}select:focus-visible{outline:3px solid var(--color-primary);outline-offset:2px;box-shadow:0 0 0 6px rgba(var(--color-primary-rgb),.2)}textarea:focus-visible{outline:3px solid var(--color-primary);outline-offset:2px;box-shadow:0 0 0 6px rgba(var(--color-primary-rgb),.2)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (prefers-contrast:high){.festival-card{border:2px solid var(--text-primary)}.genre-tag{border:1px solid var(--text-primary)}.nav-links li a{color:var(--text-primary)}.nav-links li a:hover,.nav-links li.active a{text-decoration:underline}}@media (pointer:coarse){button,a,input,select{min-width:44px;min-height:44px}}html{background:var(--bg-primary);min-height:100vh;min-height:100dvh;min-height:-webkit-fill-available;margin:0;padding:0}body{background:var(--bg-primary);color:var(--text-primary);font-family:var(--font-family);min-height:100vh;min-height:100dvh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overscroll-behavior-y:none;min-height:-webkit-fill-available;margin:0;padding:0}:root{--vh:1vh}.app-bg{min-height:100vh;min-height:calc(var(--vh,1vh)*100);background:var(--bg-primary);background-image:var(--gradient-mesh);background-attachment:fixed;min-height:100dvh}.app-header{padding:var(--space-5)0 var(--space-4)0;text-align:center;position:relative}.fixed-header{background:var(--glass-bg);width:100%;-webkit-backdrop-filter:var(--glass-blur);box-shadow:var(--shadow-lg);z-index:var(--z-fixed);transition:all var(--transition-base);border-bottom:var(--border-subtle);padding:1rem 0;position:fixed;top:0;left:0}.fixed-header:before{content:"";background:var(--gradient-primary);opacity:.5;height:1px;position:absolute;bottom:0;left:0;right:0}.header-content{max-width:var(--container-max);padding:0 var(--space-8);height:var(--header-height);justify-content:space-between;align-items:center;margin:0 auto;display:flex;position:relative}.header-titles h2{font-size:max(1rem,min(1.5vw,2.5rem));font-weight:var(--font-weight-extrabold);margin-bottom:var(--space-5);background:var(--gradient-primary);-webkit-text-fill-color:transparent;background-size:200% 200%;-webkit-background-clip:text;background-clip:text;animation:3s ease-in-out infinite gradientShift}.festivals-list-container{padding-top:2rem}@keyframes gradientShift{0%,to{background-position:0%}50%{background-position:100%}}.logo-image{transition:transform .3s}.logo-image:hover{transform:scale(1.05)}.header-titles{flex-direction:column;display:flex}.header-nav{align-items:center;display:flex}.nav-links{gap:var(--space-6);margin:0;padding:0;list-style:none;display:flex}.nav-links li{position:relative}.nav-links li a{color:var(--text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);letter-spacing:var(--letter-spacing-wide);padding:var(--space-2)var(--space-3);transition:all var(--transition-fast);cursor:pointer;text-transform:uppercase;border-radius:var(--radius-sm);text-decoration:none;position:relative}.nav-links li a:hover{color:var(--color-primary);background:rgba(var(--color-primary-rgb),.1)}.nav-links li.active a{color:var(--color-primary)}.hamburger-menu-button{cursor:pointer;z-index:10;background:0 0;border:none;border-radius:8px;padding:8px;transition:background-color .3s;display:none}.hamburger-menu-button svg{width:24px;height:24px}.hamburger-menu-button svg path{stroke:#fff;transition:stroke .3s}.hamburger-menu-button:hover svg path{stroke:#e600ff}.desktop-only{display:flex}.mobile-only{display:none}.hamburger-menu-button{cursor:pointer;z-index:10;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;margin-left:auto;padding:8px;transition:background-color .3s;display:none}.hamburger-menu-button:hover{background-color:rgba(230,0,255,.2)}@media (max-width:768px){.filter-section{border-radius:16px;margin:0 0 16px;box-sizing:border-box!important;width:100%!important;max-width:100%!important;padding:16px!important;overflow:hidden!important}.search-container{margin-bottom:16px;box-sizing:border-box!important;width:100%!important;max-width:100%!important}.search-input-wrapper{box-sizing:border-box!important;width:100%!important;max-width:100%!important}.search-input-filters{border-radius:14px;padding:16px 50px 16px 20px;font-size:16px;box-sizing:border-box!important;width:100%!important;max-width:100%!important}.filters-container{flex-direction:column;align-items:stretch;gap:16px;box-sizing:border-box!important;width:100%!important;max-width:100%!important;margin:0!important;padding:0!important}.filter-group{flex-direction:column;align-items:stretch;gap:12px;box-sizing:border-box!important;width:100%!important;max-width:100%!important;margin:0!important;padding:0!important}.filter-dropdown{flex-direction:column;display:flex;position:relative;box-sizing:border-box!important;width:100%!important;max-width:100%!important}.filter-dropdown:after{content:"";pointer-events:none;z-index:2;border-top:7px solid #e600ff;border-left:7px solid transparent;border-right:7px solid transparent;width:0;height:0;position:absolute;top:50%;right:18px;transform:translateY(-50%)}.filter-select-home{text-align:left;text-overflow:ellipsis;white-space:nowrap;height:auto;min-height:56px;line-height:1.4;overflow:hidden;color:#fff!important;-webkit-appearance:none!important;-moz-appearance:none!important;appearance:none!important;box-sizing:border-box!important;background:rgba(255,255,255,.08)!important;border:1px solid rgba(255,255,255,.15)!important;border-radius:14px!important;width:100%!important;min-width:0!important;max-width:100%!important;padding:16px 52px 16px 18px!important;font-size:16px!important}.filter-select-home:focus{background:rgba(255,255,255,.1)!important;border-color:rgba(230,0,255,.5)!important;outline:none!important;box-shadow:0 0 0 3px rgba(230,0,255,.15)!important}.filter-label{display:none}.clear-search-btn{width:36px;height:36px;font-size:16px;right:12px}.view-toggle{justify-content:center;width:100%;margin-top:16px}.toggle-btn{border-radius:10px;flex:1;max-width:70px;height:48px;font-size:18px}.date-filter-toggle{justify-content:center;width:100%;min-height:54px;padding:16px 18px}.date-filter-group,.upcoming-filter{width:100%}.upcoming-filter .toggle-switch{justify-content:space-between;width:100%;min-height:54px;padding:16px 18px}.upcoming-filter .toggle-label{flex:1;font-size:15px}.header-nav,.user-section,.header-titles{display:none!important}.header-content{justify-content:space-between;padding:0 1rem}.logo-image{width:100px!important}.hamburger-button{justify-content:center;align-items:center;display:flex!important}.fixed-header{padding:.5rem 0}.header-content{height:60px}.logo-section{align-items:center;display:flex}}.nav-links li.active:after{content:"";background:var(--gradient-primary);border-radius:var(--radius-full);width:24px;height:3px;box-shadow:var(--shadow-glow-sm);position:absolute;bottom:-2px;left:50%;transform:translate(-50%)}.logo-section{align-items:center;gap:1.5rem;display:flex}.user-section{justify-content:flex-end;align-items:center;min-width:200px;display:flex}.content-with-fixed-header{max-width:1200px;margin:0 auto;padding-top:120px;padding-left:1rem;padding-right:1rem}.app-header h1{color:#e600ff;letter-spacing:2px;text-shadow:0 0 10px rgba(230,0,255,.3);margin:0;font-size:2.2rem;font-weight:700}.festival-filters{flex-wrap:wrap;justify-content:center;gap:1rem;margin:2rem 0 .5rem;display:flex}.festival-filters input,.festival-filters select{color:#fff;background:#23234b;border:1.5px solid rgba(230,0,255,.4);border-radius:8px;outline:none;padding:.55rem 1rem;font-size:1.08rem;transition:border .2s}.festival-filters input:focus,.festival-filters select:focus{border:1.5px solid #e600ff}.festival-controls{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:28px;display:flex}.festival-filters{flex-direction:column;flex:1;gap:16px;display:flex}.festival-list-container{max-width:1400px;margin:0 auto;padding:0 1.5rem}.filter-section{margin-bottom:var(--space-8);padding:var(--space-6);border-radius:var(--radius-xl);z-index:9;box-sizing:border-box;background:linear-gradient(145deg,#1a1a2e 0%,#16213e 100%);border:1px solid rgba(255,255,255,.08);max-width:100%;position:relative;overflow:hidden;box-shadow:0 10px 40px rgba(0,0,0,.4)}.search-container{box-sizing:border-box;width:100%;max-width:400px;margin-bottom:1.25rem;position:relative}@media (max-width:768px){.search-container{max-width:100%}}.search-input-wrapper{align-items:center;display:flex;position:relative}.search-input-filters{color:#fff;border-radius:var(--radius-full);font-size:var(--font-size-base);font-family:var(--font-family);box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);width:100%;padding:14px 20px 14px 48px;transition:all .3s}.search-input-filters:focus{background:rgba(255,255,255,.08);border-color:rgba(230,0,255,.5);outline:none;box-shadow:0 0 0 3px rgba(230,0,255,.12)}.search-input-filters::placeholder{color:rgba(255,255,255,.4)}.clear-search-btn{color:rgba(255,255,255,.6);cursor:pointer;background:rgba(255,255,255,.1);border:none;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:18px;transition:all .2s;display:flex;position:absolute;top:50%;right:16px;transform:translateY(-50%)}.clear-search-btn:hover{color:#e600ff;background:rgba(230,0,255,.2)}.filters-container{box-sizing:border-box;flex-wrap:wrap;align-items:center;gap:16px;max-width:100%;display:flex}.filter-group{box-sizing:border-box;flex-wrap:wrap;align-items:center;gap:12px;max-width:100%;display:flex}.filter-label{color:rgba(255,255,255,.6);text-transform:uppercase;letter-spacing:.8px;white-space:nowrap;font-size:11px;font-weight:600}.filter-dropdown{flex-direction:column;width:auto;display:flex;position:relative}.filter-dropdown:after{content:"";pointer-events:none;z-index:2;border-top:6px solid #e600ff;border-left:6px solid transparent;border-right:6px solid transparent;width:0;height:0;position:absolute;top:50%;right:16px;transform:translateY(-50%)}.filter-select-home{-webkit-appearance:none;-moz-appearance:none;appearance:none;color:#fff;min-width:160px;font-size:14px;font-family:var(--font-family);cursor:pointer;text-overflow:ellipsis;white-space:nowrap;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:14px 48px 14px 16px;transition:all .3s;overflow:hidden}.filter-select-home:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.2)}.filter-select-home:focus{border-color:rgba(230,0,255,.5);outline:none;box-shadow:0 0 0 3px rgba(230,0,255,.12)}.filter-select-home option{color:#fff;background:#1a1a2e;padding:12px}.view-toggle{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);border-radius:12px;gap:4px;padding:4px;display:flex}.toggle-btn{color:rgba(255,255,255,.5);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;padding:10px 14px;font-size:16px;transition:all .2s;display:flex}.toggle-btn:hover{color:#e600ff;background:rgba(230,0,255,.1)}.toggle-btn.active{color:#fff;background:linear-gradient(135deg,#e600ff 0%,#9333ea 100%);box-shadow:0 4px 15px rgba(230,0,255,.3)}.grid-icon,.list-icon{font-size:1.2rem}.festival-list{box-sizing:border-box;grid-template-columns:repeat(auto-fill,minmax(min(320px,100%),1fr));gap:2rem;width:100%;margin-top:1rem;transition:all .3s;display:grid}.festival-list-view{grid-template-columns:1fr}.festival-list-view .festival-card{flex-direction:row;max-width:100%;height:auto}.festival-list-view .festival-image-container{border-radius:16px 0 0 16px;width:250px;min-width:250px;height:100%}.festival-list-view .festival-content{flex:1}.festival-list-view .festival-description{max-width:600px}.festival-card{background:var(--gradient-card);border-radius:var(--radius-xl);box-shadow:var(--shadow-card);min-width:280px;max-width:100%;height:auto;min-height:460px;transition:all var(--transition-base)var(--ease-out-expo);border:1px solid var(--glass-border);cursor:pointer;flex-direction:column;display:flex;position:relative;overflow:hidden}.festival-card:before{content:"";border-radius:inherit;background:linear-gradient(135deg,rgba(var(--color-primary-rgb),.3),transparent 50%);-webkit-mask-composite:xor;opacity:0;transition:opacity var(--transition-base);padding:1px;position:absolute;top:0;bottom:0;left:0;right:0;-webkit-mask-image:linear-gradient(#fff 0,#fff 0),linear-gradient(#fff 0,#fff 0);mask-image:linear-gradient(#fff 0,#fff 0),linear-gradient(#fff 0,#fff 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.festival-card:hover,.festival-card-hover{box-shadow:var(--shadow-card-hover);transform:translateY(-8px)scale(1.02)}.festival-card:hover:before{opacity:1}.favorite-festival{border-color:var(--color-accent-gold);box-shadow:0 4px 24px rgba(255,215,0,.2)}.favorite-festival:before{opacity:1;background:linear-gradient(135deg,rgba(255,215,0,.4),transparent 50%)}.favorite-festival:hover{border-color:var(--color-accent-gold);box-shadow:0 8px 32px rgba(255,215,0,.35)}.festival-image-container{background:var(--bg-tertiary);width:100%;height:220px;position:relative;overflow:hidden}.festival-image-container:after{content:"";background:linear-gradient(to top,var(--bg-card),transparent);pointer-events:none;height:80px;position:absolute;bottom:0;left:0;right:0}.festival-image{object-fit:cover;object-position:center;width:100%;height:220px;transition:transform var(--transition-slower)var(--ease-out-expo);display:block}.festival-card:hover .festival-image{transform:scale(1.08)}.festival-date-badge{top:var(--space-4);left:var(--space-4);background:var(--gradient-primary);color:var(--text-primary);border-radius:var(--radius-md);padding:var(--space-2)var(--space-3);text-align:center;font-weight:var(--font-weight-bold);box-shadow:var(--shadow-md);z-index:2;flex-direction:column;min-width:50px;display:flex;position:absolute}.date-month{font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:var(--letter-spacing-wide);opacity:.9}.date-day{font-size:var(--font-size-xl);font-weight:var(--font-weight-extrabold);line-height:1}.favorite-btn{top:var(--space-4);right:var(--space-4);background:var(--glass-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--text-primary);border:var(--border-subtle);border-radius:var(--radius-full);cursor:pointer;width:44px;height:44px;transition:all var(--transition-fast)var(--ease-out-back);z-index:2;justify-content:center;align-items:center;font-size:1.3rem;display:flex;position:absolute}.favorite-btn:hover{background:rgba(var(--color-primary-rgb),.2);border-color:var(--color-primary);transform:scale(1.1)}.favorite-btn.is-favorite{background:var(--color-accent-gold);color:var(--bg-primary);border-color:var(--color-accent-gold);box-shadow:0 0 20px rgba(255,215,0,.4)}.compare-btn{color:#fff;cursor:pointer;z-index:2;background:rgba(25,25,40,.7);border:none;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:1.2rem;transition:all .2s;display:flex;position:absolute;top:12px;right:60px}.compare-btn:hover:not(:disabled){background:rgba(230,0,255,.8);transform:scale(1.1)}.compare-btn.in-compare{color:#fff;background:#e600ff}.compare-btn:disabled{opacity:.4;cursor:not-allowed}.festival-badge{z-index:1;border-radius:6px;padding:6px 12px;font-size:.8rem;font-weight:700;position:absolute;top:12px;right:104px;box-shadow:0 2px 8px rgba(0,0,0,.2)}.festival-badge.upcoming{color:#fff;background:#00c8ff}.festival-badge.pending{color:#fff;background:#ff9800}.festival-content{padding:var(--space-5)var(--space-6);flex-direction:column;flex-grow:1;justify-content:flex-end;display:flex;position:relative}.festival-title{margin:0 0 var(--space-3)0;font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--text-primary);line-height:var(--line-height-tight);transition:color var(--transition-fast)}.festival-card:hover .festival-title{color:var(--color-primary)}.festival-location{align-items:center;gap:var(--space-2);color:var(--text-secondary);margin-bottom:var(--space-2);font-size:var(--font-size-sm);display:flex}.location-icon{color:var(--color-primary);font-size:1rem}.festival-dates{align-items:center;gap:var(--space-2);color:var(--text-secondary);margin-bottom:var(--space-3);font-size:var(--font-size-sm);display:flex}.dates-icon{color:var(--color-secondary)}.festival-description{margin:0 0 var(--space-4)0;color:var(--text-tertiary);line-height:var(--line-height-relaxed);font-size:var(--font-size-sm);-webkit-line-clamp:3;-webkit-box-orient:vertical;flex-grow:1;display:-webkit-box;overflow:hidden}.festival-meta-ratings{justify-content:space-between;align-items:center;margin:12px 0;display:flex}.rating-stars{align-items:center;gap:2px;display:flex}.star-filled{color:#e600ff;font-size:1.1rem}.star-empty{color:#555;font-size:1.1rem}.rating-value{color:#fff;margin-left:5px;font-size:.9rem;font-weight:500}.comments-count{color:#a1a1ff;align-items:center;gap:5px;font-size:.9rem;display:flex}.comments-icon{color:#e600ff}.festival-genres,.festival-detail-genres{flex-wrap:wrap;align-items:center;gap:6px;min-height:50px;margin:.5rem 0 1rem;display:flex}.genre-tag{color:#e600ff;background:rgba(230,0,255,.2);border-radius:7px;height:-moz-fit-content;height:fit-content;margin-right:.5rem;padding:.15rem .7rem;font-size:.95rem;font-weight:600}.festival-link{color:#2f37a6;font-size:1.04rem;font-weight:600;text-decoration:underline}.loading{color:#e600ff;text-align:center;margin-top:4rem;font-size:1.2rem}.festival-detail-page{width:100%;max-width:1200px;margin:0 auto 3rem;position:relative}.festival-hero{background-position:50%;background-size:cover;border-radius:20px;width:100%;height:380px;margin-bottom:2rem;position:relative;overflow:hidden;box-shadow:0 10px 30px rgba(0,0,0,.3)}.festival-hero-content{color:#fff;background:linear-gradient(transparent,rgba(20,20,40,.9));width:100%;padding:2rem;position:absolute;bottom:0;left:0}.festival-header-content{max-width:850px}.festival-detail-title{color:#fff;text-shadow:0 2px 12px rgba(0,0,0,.7);margin:0 0 1rem;font-size:2.8rem;font-weight:800}.festival-detail-meta{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.festival-detail-location{color:rgba(255,255,255,.9);text-shadow:0 1px 6px rgba(0,0,0,.7);align-items:center;gap:.5rem;font-size:1.2rem;display:flex}.detail-date{background:#e600ff;position:relative;top:0;left:auto;right:0;box-shadow:0 4px 15px rgba(230,0,255,.4)}.back-btn{color:#fff;cursor:pointer;z-index:10;background:rgba(24,24,47,.9);border:none;border-radius:8px;align-items:center;gap:8px;padding:.6rem 1.3rem;font-size:1.08rem;font-weight:700;transition:all .15s;display:flex;position:absolute;top:1.5rem;left:1.5rem;box-shadow:0 2px 10px rgba(0,0,0,.4)}.back-btn:hover{color:#fff;background:#e600ff;transform:translateY(-2px);box-shadow:0 4px 12px rgba(230,0,255,.4)}.back-icon{font-size:1.2rem}.festival-actions-bar{flex-wrap:wrap;gap:1rem;display:flex}.favorite-action-btn,.website-action-btn,.edit-btn,.delete-btn{cursor:pointer;border:none;border-radius:10px;align-items:center;gap:8px;padding:.7rem 1.2rem;font-size:.95rem;font-weight:600;transition:all .2s;display:flex;box-shadow:0 3px 10px rgba(0,0,0,.2)}.favorite-action-btn{color:#fff;background:#333}.favorite-action-btn.is-favorite{color:#333;background:gold}.favorite-action-btn:hover{transform:translateY(-2px);box-shadow:0 4px 15px rgba(0,0,0,.3)}.website-action-btn{color:#fff;background:#2f37a6;text-decoration:none}.website-action-btn:hover{background:#3643c4;transform:translateY(-2px);box-shadow:0 4px 15px rgba(47,55,166,.4)}.admin-actions{gap:10px;display:flex}.edit-btn{color:#fff;background:#e600ff}.edit-btn:hover{background:#f0e;transform:translateY(-2px);box-shadow:0 4px 15px rgba(230,0,255,.4)}.delete-btn{color:#fff;background:#ff3860}.delete-btn:hover{background:#ff1f4b;transform:translateY(-2px);box-shadow:0 4px 15px rgba(255,56,96,.4)}.delete-btn:disabled{cursor:not-allowed;box-shadow:none;background:#ccc;transform:none}.success-message{color:#0f9;background:rgba(0,255,153,.1);border-left:4px solid #0f9;border-radius:10px;margin:1rem 0;padding:12px 20px;font-weight:600}.error-message{color:#f05;background:rgba(255,0,85,.1);border-left:4px solid #f05;border-radius:10px;margin:1rem 0;padding:12px 20px;font-weight:600}.festival-detail-genres{margin-bottom:1.2rem}.festival-detail-desc{color:#eee;margin-bottom:1.5rem;font-size:1.12rem;line-height:1.7}.rating-section{border-bottom:1px solid rgba(230,0,255,.2);margin:2.2rem 0 1.5rem;padding-bottom:.5rem}.festival-detail-tabs{gap:5px;margin:2rem 0 1.5rem;padding-bottom:5px;display:flex;overflow-x:auto}.tab-button{background:var(--bg-tertiary);color:var(--text-tertiary);border:var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-3)var(--space-5);font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.tab-button:hover{background:var(--bg-elevated);color:var(--color-primary);border-color:rgba(var(--color-primary-rgb),.3)}.tab-button.active{background:var(--gradient-primary);color:var(--text-primary);box-shadow:var(--shadow-glow-md);border-color:transparent}.festival-detail-content{margin-top:2rem}.detail-section{margin-bottom:3rem;scroll-margin-top:120px}.section-main-title{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--text-primary);margin-bottom:var(--space-6);padding-bottom:var(--space-4);position:relative}.section-main-title:after{content:"";background:var(--gradient-primary);border-radius:var(--radius-full);width:60px;height:3px;position:absolute;bottom:0;left:0}.festival-details-card{background:var(--bg-card);border-radius:var(--radius-xl);box-shadow:var(--shadow-card);padding:var(--space-8);margin-bottom:var(--space-8);border:var(--border-subtle)}.festival-info-container{flex-direction:column;gap:3rem;display:flex}.festival-info-col{flex:1;min-width:300px}.section-title{color:#e600ff;border-bottom:1px solid rgba(230,0,255,.2);margin-bottom:1.2rem;padding-bottom:.5rem;font-size:1.4rem;font-weight:600}.description-title{margin-top:2rem}.info-group{flex-direction:column;gap:5px;margin-bottom:1rem;display:flex}.info-label{color:#a1a1ff;font-size:.95rem;font-weight:600}.info-value{color:#fff;font-size:1.05rem}.loading-container{color:#e600ff;flex-direction:column;justify-content:center;align-items:center;gap:1rem;margin:5rem 0;font-size:1.2rem;display:flex}.loading-spinner{border:3px solid rgba(var(--color-primary-rgb),.2);border-radius:var(--radius-full);border-top-color:var(--color-primary);border-right-color:var(--color-secondary);width:48px;height:48px;animation:.8s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.not-found-message{text-align:center;color:#aaa;margin:5rem 0;font-size:1.2rem}.back-link{color:#fff;cursor:pointer;background:#e600ff;border:none;border-radius:8px;margin-top:1rem;padding:.6rem 1.2rem;font-weight:600;transition:all .2s;display:inline-block}.back-link:hover{background:#f0e;transform:translateY(-2px);box-shadow:0 4px 12px rgba(230,0,255,.4)}.rating-bar{flex-wrap:wrap;align-items:center;gap:1.5rem;margin-top:.5rem;display:flex}.average-rating{color:#e600ff;margin-right:1.5rem;font-size:1.13rem;font-weight:700}.stars{align-items:center;gap:.18rem;display:flex}.star{color:#bbb;font-size:2rem;transition:color .18s,transform .12s}.star.filled{color:#e600ff;text-shadow:0 0 10px rgba(230,0,255,.467);transform:scale(1.13)}.star:hover{color:#fff;transform:scale(1.18)}.media-section{margin:2.2rem 0 1.5rem}.media-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1.3rem;margin-top:1rem;display:grid}.media-item{background:#18182f;border-radius:12px;flex-direction:column;align-items:center;padding:.5rem .5rem .7rem;display:flex;box-shadow:0 2px 8px rgba(230,0,255,.133)}.media-item img,.media-item video{border-radius:8px;max-width:100%;max-height:180px;margin-bottom:.5rem;box-shadow:0 2px 8px rgba(0,0,0,.333)}.media-caption{color:#e600ff;text-align:center;text-shadow:0 0 8px rgba(230,0,255,.267);margin-top:.2rem;font-size:1.01rem}.comments-section{margin:2rem 0 0}.comment-form{flex-direction:column;gap:.7rem;margin-bottom:1.5rem;display:flex}.comment-form textarea{border-radius:var(--radius-lg);background:var(--bg-tertiary);color:var(--text-primary);padding:var(--space-4);font-size:var(--font-size-base);font-family:var(--font-family);resize:vertical;min-height:80px;max-height:200px;transition:all var(--transition-fast);border:2px solid transparent}.comment-form textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 4px rgba(var(--color-primary-rgb),.15);outline:none}.comment-form button{background:var(--gradient-primary);color:var(--text-primary);border-radius:var(--radius-md);padding:var(--space-3)var(--space-6);font-weight:var(--font-weight-semibold);font-size:var(--font-size-base);cursor:pointer;box-shadow:var(--shadow-glow-sm);transition:all var(--transition-fast);border:none;align-self:flex-end}.comment-form button:hover{box-shadow:var(--shadow-glow-md);transform:translateY(-2px)}.comments-list{margin:0;padding:0;list-style:none}.comment-item{background:var(--bg-tertiary);border-radius:var(--radius-lg);margin-bottom:var(--space-4);padding:var(--space-4)var(--space-5);border:var(--border-subtle);transition:border-color var(--transition-fast)}.comment-item:hover{border-color:rgba(var(--color-primary-rgb),.2)}.comment-header{align-items:center;gap:var(--space-3);margin-bottom:var(--space-3);display:flex}.comment-avatar{border-radius:var(--radius-full);object-fit:cover;border:2px solid var(--color-primary);width:40px;height:40px;box-shadow:0 0 0 3px rgba(var(--color-primary-rgb),.2)}.comment-user{color:var(--text-primary);font-weight:var(--font-weight-semibold);font-size:var(--font-size-base)}.comment-date{color:var(--text-muted);font-size:var(--font-size-sm);margin-left:auto}.delete-comment-btn{color:#ff3e3e;cursor:pointer;opacity:.6;background:0 0;border:none;border-radius:6px;margin-left:.7rem;padding:2px 7px;font-size:1.13rem;transition:background .15s,opacity .18s}.delete-comment-btn:hover{opacity:1;background:rgba(255,62,62,.133)}.comment-text{color:#fff;margin-left:.2rem;font-size:1.08rem}.form-error{color:#ff3e3e;margin-top:.2rem;font-size:1.01rem}.form-success{color:#00ffb6;margin-top:.2rem;font-size:1.01rem}.login-to-comment,.login-to-rate{color:#e600ff;text-align:center;margin:1rem 0 .5rem;font-size:1.05rem}@media (max-width:900px){.festival-list{grid-template-columns:1fr;gap:1.2rem}.festival-card{width:100%;min-width:0;max-width:100%;height:auto;margin:0 auto}.festival-image-container{height:180px}.festival-content{padding:1rem 1.2rem}.festival-controls,.filter-options{flex-direction:column;align-items:stretch}.filter-label{justify-content:space-between}.view-toggle{align-self:center;margin-top:10px}.festival-list-view .festival-card{flex-direction:column}.festival-list-view .festival-image-container{border-radius:16px 16px 0 0;width:100%}.festival-hero{height:300px}.festival-detail-title{font-size:2rem}.festival-info-container{flex-direction:column;gap:1.5rem}.festival-details-card{padding:1.5rem}}@media (max-width:600px){.festival-filters{flex-direction:column;gap:.7rem;margin:1.3rem 0 .5rem}.app-header{padding:.8rem 0}.back-btn{padding:.4rem .8rem;font-size:.98rem;top:.5rem;left:.5rem}.header-content{padding:0 1rem}.logo-section{text-align:center;margin-bottom:.5rem}.content-with-fixed-header{padding:6rem 0 0}.festival-detail-container.content-with-fixed-header{padding:1rem 0}.festival-hero{border-radius:0;height:250px}.festival-hero-content{padding:1rem}.festival-detail-title{font-size:1.5rem}.back-text{display:none}.festival-actions-bar{flex-direction:column;align-items:stretch}.admin-actions{flex-direction:column}.festival-detail-tabs{margin:1.5rem 0 1rem}.tab-button{padding:.6rem 1rem;font-size:.9rem}.detail-section{margin-bottom:2rem}.info-group{margin-bottom:.8rem}.section-title{font-size:1.2rem}.section-main-title{font-size:1.5rem}}.genre-tag{background:rgba(var(--color-primary-rgb),.15);color:var(--color-primary);border-radius:var(--radius-full);font-size:var(--font-size-xs);padding:var(--space-1)var(--space-3);font-weight:var(--font-weight-semibold);border:1px solid rgba(var(--color-primary-rgb),.3);transition:all var(--transition-fast);display:inline-block}.genre-tag:hover{background:var(--color-primary);color:var(--text-primary);box-shadow:var(--shadow-glow-sm);transform:translateY(-2px)}.more-genres{background:var(--bg-elevated);color:var(--text-tertiary);border-radius:var(--radius-full);font-size:var(--font-size-xs);padding:var(--space-1)var(--space-3);font-weight:var(--font-weight-medium);transition:all var(--transition-fast);height:-moz-fit-content;height:fit-content;display:inline-block}.festival-actions{justify-content:space-between;gap:10px;margin-top:.6rem;display:flex}.festival-link{color:var(--text-secondary);background:var(--bg-elevated);border-radius:var(--radius-md);padding:var(--space-3)var(--space-4);font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);transition:all var(--transition-fast)var(--ease-out-back);text-align:center;border:var(--border-subtle);flex:1;justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.festival-link:hover{background:var(--color-primary);color:var(--text-primary);box-shadow:var(--shadow-glow-md);border-color:var(--color-primary);transform:translateY(-2px)}.link-icon{flex-shrink:0;font-size:1.3rem}.website-link{background:var(--bg-elevated);justify-content:center;align-items:center;gap:var(--space-2);display:flex}.details-link{background:var(--gradient-primary);color:var(--text-primary);cursor:pointer;border:none}.loading{color:#e600ff;text-align:center;margin:4rem 0;font-size:1.3rem}.breadcrumbs{z-index:999;background:#1a1b27;width:100%;padding:.7rem 0;position:fixed;top:4.2rem;left:0;box-shadow:0 2px 8px rgba(0,0,0,.15)}.breadcrumbs ul{max-width:1200px;margin:0 auto;padding:0 2rem;list-style:none;display:flex}.breadcrumbs li{align-items:center;display:flex}.breadcrumbs a{color:#a1a1ff;cursor:pointer;font-size:.95rem;text-decoration:none;transition:color .2s}.breadcrumbs .home-crumb a{color:#e600ff;font-weight:600}.breadcrumbs a:hover{color:#e600ff}.breadcrumbs .separator{color:#888;margin:0 10px;font-size:1.2rem}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.toast-enter{animation:.3s forwards fadeInUp}.toast-exit{animation:.3s forwards fadeOut}.media-item{transition:transform .2s,box-shadow .3s;position:relative;overflow:hidden}.media-item:hover{transform:translateY(-5px);box-shadow:0 8px 20px rgba(230,0,255,.25)}.media-hover-overlay{opacity:0;background:rgba(30,25,50,.7);border-radius:8px;justify-content:center;align-items:center;width:100%;height:100%;transition:opacity .3s;display:flex;position:absolute;top:0;left:0}.media-item:hover .media-hover-overlay{opacity:1}.media-thumb-vote{flex-direction:column;align-items:center;margin-top:8px;display:flex}.vote-star{transition:transform .2s,color .2s}.vote-star:hover{transform:scale(1.2)}.vote-animation{text-shadow:0 0 10px rgba(255,215,0,.7);color:gold!important}.rating-display{justify-content:center;gap:8px;width:100%;margin-top:5px;font-size:.9rem;display:flex}.avg-rating{color:#e600ff;font-weight:600}.user-rating{color:#a1a1ff;position:relative}.user-rating:before{content:"•";color:#555;position:absolute;left:-6px}.gallery-lightbox-vote{flex-direction:column;align-items:center;display:flex}.rating-values{gap:15px;margin-top:10px;font-size:1.1rem;display:flex}.average-rating-display{color:#e600ff;align-items:center;gap:6px;font-weight:600;display:flex}.average-rating-icon{color:gold;font-size:1.2rem}.user-rating-display{color:#fff;align-items:center;gap:6px;display:flex}.user-rating-icon{color:#a1a1ff;font-size:1.2rem}.breadcrumbs{display:none}@media (max-width:768px){.festivals-list-container{padding-top:0}html,body{max-width:100vw!important;overflow-x:hidden!important}.content-with-fixed-header{box-sizing:border-box!important;max-width:100vw!important;padding:70px 16px 0!important;overflow-x:hidden!important}.festival-list-container{box-sizing:border-box!important;max-width:100vw!important;padding-left:16px!important;padding-right:16px!important;overflow-x:hidden!important}}.upcoming-filter .toggle-label{color:rgba(255,255,255,.8);font-size:14px;font-weight:500}.upcoming-filter input:checked+.toggle-slider+.toggle-label{color:#e600ff}.date-filter-toggle{color:rgba(255,255,255,.8);cursor:pointer;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:12px;align-items:center;gap:10px;padding:14px 18px;font-size:14px;font-weight:500;transition:all .3s;display:flex;position:relative}.date-filter-toggle .filter-icon{color:#e600ff;font-size:18px;display:flex}.date-filter-toggle:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.2)}.date-filter-toggle.active{color:#fff;background:rgba(230,0,255,.15);border-color:rgba(230,0,255,.4)}.date-filter-toggle.has-dates{background:rgba(230,0,255,.1);border-color:#e600ff;box-shadow:0 4px 15px rgba(230,0,255,.15)}.active-filter-indicator{color:#e600ff;margin-left:4px;font-size:10px;animation:2s infinite pulse-dot}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.5}}.date-filter-status{color:rgba(255,255,255,.8);background:rgba(230,0,255,.1);border:1px solid rgba(230,0,255,.3);border-radius:10px;margin-bottom:16px;padding:12px 16px}.date-filter-warning{color:#f59e0b;background:rgba(245,158,11,.1);border:1px solid rgba(245,158,11,.3);border-radius:10px;margin-bottom:16px;padding:12px 16px}.date-filter-panel{z-index:100;background:linear-gradient(145deg,#1a1a2e 0%,#16213e 100%);border:1px solid rgba(255,255,255,.1);border-radius:16px;min-width:320px;padding:24px;animation:.3s slideDown;position:absolute;top:calc(100% + 12px);left:0;box-shadow:0 15px 40px rgba(0,0,0,.5)}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.date-filter-title{color:#fff;margin:0 0 20px;font-size:16px;font-weight:600}.date-inputs{flex-direction:column;gap:16px;margin-bottom:20px;display:flex}.date-input-group{flex-direction:column;gap:8px;display:flex}.date-input-group label{color:rgba(255,255,255,.6);text-transform:uppercase;letter-spacing:.5px;font-size:12px;font-weight:600}.date-input{color:#fff;box-sizing:border-box;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:10px;width:100%;padding:12px 14px;font-size:14px;transition:all .3s}.date-input:focus{background:rgba(255,255,255,.08);border-color:rgba(230,0,255,.5);outline:none;box-shadow:0 0 0 3px rgba(230,0,255,.12)}.date-input:not(:placeholder-shown),.date-input:not([value=""]){background:rgba(230,0,255,.05);border-color:rgba(230,0,255,.4)}.date-input::-webkit-calendar-picker-indicator{filter:invert();opacity:.6;cursor:pointer}.date-filter-actions{justify-content:flex-end;display:flex}.clear-dates-btn{color:#ef4444;cursor:pointer;background:rgba(239,68,68,.15);border:1px solid rgba(239,68,68,.25);border-radius:10px;align-items:center;gap:8px;padding:10px 16px;font-size:13px;font-weight:500;transition:all .2s;display:flex}.clear-dates-btn:hover:not(:disabled){background:rgba(239,68,68,.25);border-color:rgba(239,68,68,.4)}.clear-dates-btn:disabled{opacity:.4;cursor:not-allowed}.clear-dates-btn .btn-icon{font-size:14px}.upcoming-filter .toggle-switch{cursor:pointer;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:12px;align-items:center;gap:12px;padding:10px 16px;transition:all .2s;display:flex}.upcoming-filter .toggle-switch:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.15)}.upcoming-filter .toggle-switch input{display:none}.upcoming-filter .toggle-slider{background:rgba(255,255,255,.15);border-radius:12px;flex-shrink:0;width:44px;height:24px;transition:all .3s;position:relative}.upcoming-filter .toggle-slider:after{content:"";background:#fff;border-radius:50%;width:18px;height:18px;transition:all .3s;position:absolute;top:3px;left:3px;box-shadow:0 2px 4px rgba(0,0,0,.2)}.upcoming-filter input:checked+.toggle-slider{background:linear-gradient(135deg,#e600ff 0%,#9333ea 100%);box-shadow:0 4px 15px rgba(230,0,255,.3)}.upcoming-filter input:checked+.toggle-slider:after{transform:translate(20px)}.active-filters-badge{color:#fff;background:linear-gradient(135deg,#e600ff 0%,#9333ea 100%);border-radius:12px;padding:4px 10px;font-size:12px;font-weight:700;animation:none}@media (max-width:768px){.date-filter-panel{width:90%;max-width:360px;min-width:unset;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes slideDown{0%{opacity:0;transform:translate(-50%,-50%)scale(.95)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}.date-inputs{gap:12px}.date-input{font-size:16px}.active-filter-indicator{margin-left:4px;font-size:8px}}.filter-group{position:relative}.filter-group:before{content:"";background:linear-gradient(#e600ff 0%,#9333ea 100%);border-radius:2px;width:3px;height:0;transition:height .3s;position:absolute;top:50%;left:-8px;transform:translateY(-50%)}.filter-group:has(input:checked):before{height:60%}.filter-group:has(select:not([value=""])):before{height:60%}.filter-group:has(input[type=text]:not([value=""])):before{height:60%}.filter-group:has(.has-dates):before{height:60%}.filter-group{color:#333;margin-bottom:0;font-size:1.1em;font-weight:600}.page-loader{flex-direction:column;justify-content:center;align-items:center;min-height:50vh;padding:2rem;display:flex}.page-loader-spinner{margin-bottom:1.5rem}.page-loader-text{color:#e600ff;font-size:1.1rem;font-weight:500;animation:1.5s ease-in-out infinite pulse-text}@keyframes pulse-text{0%,to{opacity:1}50%{opacity:.5}}
.hamburger-button{display:none}@media screen and (max-width:768px){.header-nav,.user-section,.header-titles{display:none!important}.hamburger-button{justify-content:center;align-items:center;display:flex!important}.header-content{padding:0 var(--space-4);height:60px}.logo-image{width:100px!important}.mobile-menu{background:linear-gradient(135deg,rgba(var(--bg-tertiary-rgb,35,35,75),.98)0%,rgba(var(--bg-secondary-rgb,25,25,50),.98)100%);width:80%;max-width:320px;height:100vh;z-index:var(--z-modal);transition:right .3s var(--ease-out-expo);padding:var(--space-5);flex-direction:column;display:flex;position:fixed;top:0;right:-100%;overflow-y:auto;box-shadow:-5px 0 20px rgba(0,0,0,.5)}.mobile-menu.open{right:0}.mobile-menu-overlay{width:100%;height:100%;z-index:calc(var(--z-modal) - 1);opacity:0;visibility:hidden;transition:opacity .3s var(--ease-out-expo),visibility .3s;background:rgba(0,0,0,.7);position:fixed;top:0;left:0}.mobile-menu-overlay.active{opacity:1;visibility:visible}.mobile-menu-header{margin-bottom:var(--space-8);border-bottom:1px solid rgba(var(--color-primary-rgb),.1);padding-bottom:var(--space-4);justify-content:space-between;align-items:center;display:flex}.mobile-menu-header img{width:100px}.close-menu-btn{color:var(--text-primary);font-size:var(--font-size-2xl);cursor:pointer;transition:color var(--transition-fast);background:0 0;border:none}.close-menu-btn:hover{color:var(--color-primary)}.mobile-nav-links{margin:0 0 var(--space-8)0;padding:0;list-style:none}.mobile-nav-links li{margin-bottom:var(--space-4)}.mobile-nav-links li a{align-items:center;gap:var(--space-4);color:var(--text-primary);font-size:var(--font-size-base);padding:var(--space-3);border-radius:var(--radius-md);transition:all var(--transition-fast);text-decoration:none;display:flex}.mobile-nav-links li a:hover,.mobile-nav-links li.active a{background:rgba(var(--color-primary-rgb),.2);color:var(--color-primary)}.mobile-user-section{padding-top:var(--space-5);border-top:1px solid rgba(var(--color-primary-rgb),.1)}}@media (prefers-reduced-motion:reduce){.mobile-menu,.mobile-menu-overlay,.close-menu-btn,.mobile-nav-links li a{transition:none}}
