*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0a0a0a;--bg-elev:#161616;--bg-card:#1a1a1a;--bg-hover:#232323;--text:#f5f5f5;--text-dim:#888;--text-faint:#555;--accent:#e63946;--border:#262626;--border-strong:#333;--gap:4px}body,html{height:100%}body{font-family:-apple-system,BlinkMacSystemFont,Inter,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden}button{font:inherit;cursor:pointer;border:none;background:none}a,button{color:inherit}a{text-decoration:none}header{position:-webkit-sticky;position:sticky;top:0;z-index:100;background:rgba(10,10,10,.92);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border);padding:16px 24px}.header-top{gap:24px;flex-wrap:wrap;margin-bottom:12px}.header-top,.logo{display:flex;align-items:center}.logo{gap:14px;-webkit-user-select:none;-moz-user-select:none;user-select:none;flex-shrink:0;color:var(--text)}.logo-stack{display:flex;flex-direction:column;font-weight:900;font-size:34px;letter-spacing:-.02em;line-height:.92;color:var(--text)}.logo-region{color:var(--text-dim);font-weight:400;font-size:22px}.header-spacer{flex:1 1}.upload-btn{padding:10px 20px;background:var(--accent);color:white;font-weight:600;border-radius:999px;font-size:13px;transition:transform .15s;white-space:nowrap}.upload-btn:hover{transform:translateY(-1px)}.filter-row{display:grid;grid-template-columns:repeat(4,1fr) auto;grid-gap:8px;gap:8px;align-items:center}@media (max-width:900px){.filter-row{grid-template-columns:1fr 1fr}.filter-row .reset-btn{grid-column:1/-1}}@media (max-width:480px){.filter-row{grid-template-columns:1fr}}.dropdown{position:relative}.dropdown-trigger{width:100%;padding:10px 14px;background:var(--bg-elev);border:1px solid var(--border);border-radius:10px;display:flex;align-items:center;gap:10px;text-align:left;transition:all .15s;min-height:50px}.dropdown-trigger:hover{background:var(--bg-hover);border-color:var(--border-strong)}.dropdown.open .dropdown-trigger{background:var(--bg-hover);border-color:var(--accent)}.dropdown-trigger .dropdown-label{font-size:10px;font-weight:600;color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em;white-space:nowrap}.dropdown-trigger .dropdown-value{font-size:14px;font-weight:500;color:var(--text);flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown-trigger .dropdown-chevron{color:var(--text-dim);transition:transform .2s;flex-shrink:0}.dropdown.open .dropdown-chevron{transform:rotate(180deg)}.dropdown-trigger-content{display:flex;flex-direction:column;flex:1 1;min-width:0}.dropdown-panel{position:absolute;top:calc(100% + 6px);left:0;right:0;background:var(--bg-card);border:1px solid var(--border-strong);border-radius:10px;padding:6px;max-height:320px;overflow-y:auto;z-index:200;display:none;box-shadow:0 12px 32px rgba(0,0,0,.5)}.dropdown.open .dropdown-panel{display:block}.dropdown-option{width:100%;padding:10px 12px;border-radius:6px;display:flex;justify-content:space-between;align-items:center;font-size:14px;font-weight:500;color:var(--text);transition:background .1s;text-align:left}.dropdown-option:hover{background:var(--bg-hover)}.dropdown-option.active{background:var(--accent);color:white}.dropdown-option .count{font-size:11px;color:var(--text-dim);background:var(--bg-elev);padding:2px 8px;border-radius:999px;font-weight:600}.dropdown-option.active .count{background:rgba(255,255,255,.2);color:white}.reset-btn{padding:10px 16px;background:transparent;border:1px solid var(--border);border-radius:10px;font-size:13px;font-weight:500;color:var(--text-dim);transition:all .15s;min-height:50px;white-space:nowrap}.reset-btn:hover:not(:disabled){color:var(--text);border-color:var(--border-strong)}.reset-btn:disabled{opacity:.4;cursor:not-allowed}.intro{padding:36px 24px 24px;text-align:center;max-width:720px;margin:0 auto}.intro h1{font-size:clamp(26px,4.5vw,42px);font-weight:900;letter-spacing:-.03em;line-height:1.1;margin-bottom:12px}.intro h1 span{color:var(--accent)}.intro p{color:var(--text-dim);font-size:15px;max-width:520px;margin:0 auto}.result-count{margin-top:16px;font-size:13px;color:var(--text-dim)}.result-count strong{color:var(--text);font-weight:600}.wall{min-height:80vh;background-color:#2a2620;background-image:url(/wall.webp);background-size:cover;background-position:top;background-repeat:no-repeat}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));grid-gap:var(--gap);gap:var(--gap);padding:0 var(--gap) var(--gap)}.poster{position:relative;aspect-ratio:3/4;cursor:pointer;overflow:hidden;background:var(--bg-card);filter:drop-shadow(0 5px 12px rgba(0,0,0,.5)) drop-shadow(0 1px 3px rgba(0,0,0,.4));transition:transform .25s ease,filter .25s ease,z-index .01s .25s;will-change:transform}.poster:hover{transform:scale(1.03);filter:drop-shadow(0 14px 26px rgba(0,0,0,.6)) drop-shadow(0 3px 7px rgba(0,0,0,.5));z-index:2;transition:transform .25s ease,filter .25s ease,z-index 0s}.poster.size-large{grid-column:span 2;grid-row:span 2;aspect-ratio:1/1}.poster.size-wide{grid-column:span 2;aspect-ratio:6/4}.poster-inner{position:absolute;inset:0;padding:20px;display:flex;flex-direction:column;justify-content:space-between}.poster-tag-date{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;opacity:.85}.poster-tag-venue{font-size:11px;font-weight:500;opacity:.8;letter-spacing:.04em}.poster-title{font-size:clamp(18px,3vw,32px);font-weight:900;letter-spacing:-.02em;line-height:1;white-space:pre-line}.poster-subtitle{font-size:13px;font-weight:500;opacity:.85;margin-top:6px;line-height:1.3}.poster-type-tag{position:absolute;top:12px;right:12px;font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:4px 8px;background:rgba(0,0,0,.4);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-radius:4px;z-index:5}.v-radiohead{background:#0d0d0d;color:#fff}.v-radiohead .poster-title{font-family:Courier New,monospace;letter-spacing:.05em;word-spacing:.5em}.v-radiohead:before{content:"";position:absolute;inset:30% 10%;background:var(--accent);transform:skewX(-12deg);opacity:.85;box-shadow:0 0 60px var(--accent)}.v-radiohead .poster-inner{z-index:1}.v-radiohead .poster-title{mix-blend-mode:difference;color:white}.v-pumas{background:linear-gradient(135deg,#ff6b35,#f7931e 50%,#ffcd3c);color:#1a0e0a}.v-pumas .poster-title{font-family:Georgia,serif;font-style:italic}.v-pinkpop{background:#ff1f8f;color:#fff}.v-pinkpop:after{content:"";position:absolute;bottom:0;right:0;width:70%;height:30%;background:#000}.v-pinkpop .poster-title{font-size:clamp(28px,5vw,48px)}.v-jazz{background:#0a1d3a;color:#f5d76e}.v-jazz .poster-title{font-family:Playfair Display,Georgia,serif;font-style:italic}.v-jazz:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:140%;height:140%;background:radial-gradient(ellipse at center,rgba(245,215,110,.15),transparent 60%)}.v-metal{background:#000;color:#fff}.v-metal .poster-title{font-family:Impact,sans-serif;text-transform:uppercase;letter-spacing:.02em;transform:skewY(-3deg)}.v-metal:after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(45deg,transparent,transparent 4px,rgba(255,255,255,.03) 0,rgba(255,255,255,.03) 5px);pointer-events:none}.v-carnaval{background:linear-gradient(45deg,#ff006e,#fb5607,#ffbe0b,#8338ec,#3a86ff);color:#fff}.v-carnaval .poster-title{text-shadow:3px 3px 0 #000;transform:rotate(-2deg)}.v-electro{background:radial-gradient(circle at 30% 20%,#6c1ad8,#1a0033 70%);color:#00ffd1}.v-electro .poster-title{text-shadow:0 0 20px currentColor,0 0 40px currentColor;font-weight:900;letter-spacing:.02em}.v-comedy{background:#fefef8;color:#111}.v-comedy .poster-title{font-family:Helvetica Neue,sans-serif;font-weight:900}.v-comedy:before{content:"";position:absolute;right:16%;top:30%;width:60px;height:60px;border-radius:50%;background:var(--accent)}.v-dance{background:#001100;color:#00ff66}.v-dance:before{content:"";position:absolute;inset:25% 15%;border:4px solid;box-shadow:0 0 30px #00ff66}.v-dance .poster-inner{z-index:1}.v-dance .poster-title{font-family:monospace}.v-folk{background:#d9c8a4;color:#4a2e0e}.v-folk .poster-title{font-family:Georgia,serif}.v-folk:after{content:"";position:absolute;bottom:0;left:0;right:0;height:50%;background:linear-gradient(0deg,rgba(74,46,14,.35),transparent)}.v-bospop{background:linear-gradient(180deg,#8ecae6,#219ebc 60%,#023047);color:#ffd166}.v-bospop .poster-title{font-family:Impact,sans-serif;-webkit-text-stroke:2px #023047}.v-solar{background:radial-gradient(circle at 50% 100%,#ff5e3a,#d62246 50%,#2c003e 100%);color:#fff7e6}.v-solar:before{content:"";position:absolute;bottom:20%;left:50%;transform:translateX(-50%);width:60%;aspect-ratio:1;border-radius:50%;background:#ffd166;box-shadow:0 0 80px #ffd166}.v-solar .poster-inner{z-index:1}.v-classical{background:#f5edd6;color:#3d2914}.v-classical .poster-title{font-family:Playfair Display,Georgia,serif;font-weight:900}.v-classical:before{content:"";position:absolute;top:50%;left:8%;right:8%;border-top:1px solid}.v-punk{background:#fff;color:#000}.v-punk .poster-title{font-family:Impact,sans-serif;text-transform:uppercase;background:#000;color:#fff;display:inline-block;padding:4px 8px;transform:rotate(-2deg)}.v-punk:after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent,transparent 3px,rgba(0,0,0,.05) 0,rgba(0,0,0,.05) 4px);pointer-events:none}.v-hiphop{background:#ff6b00;color:#000}.v-hiphop .poster-title{font-family:Impact,sans-serif;font-size:clamp(32px,6vw,56px);line-height:.9;text-transform:uppercase}.v-hiphop:before{content:"";position:absolute;bottom:20%;left:-10%;right:-10%;height:12px;background:#000}.v-drama{background:#4a0e0e;color:#f5e6d3}.v-drama .poster-title{font-family:Playfair Display,Georgia,serif;font-style:italic;font-weight:900}.v-drama:before{content:"";position:absolute;left:0;top:0;bottom:0;width:100%;background:linear-gradient(90deg,rgba(0,0,0,.4) 0,transparent 30%,transparent 70%,rgba(0,0,0,.4));pointer-events:none}.v-musical{background:linear-gradient(135deg,#ff4d8d,#c9184a 60%,#590d22);color:#ffd700}.v-musical .poster-title{font-family:Playfair Display,Georgia,serif;text-shadow:2px 2px 0 #590d22}.v-kids{background:linear-gradient(45deg,#ffd60a,#ff6b6b,#4ecdc4);color:#1a1a1a}.v-kids .poster-title{font-family:Comic Sans MS,Marker Felt,sans-serif;transform:rotate(-1deg)}.v-expo{background:#f8f7f2;color:#1a1a1a}.v-expo .poster-title{font-family:Helvetica Neue,sans-serif;font-weight:300;letter-spacing:-.04em;font-size:clamp(24px,4vw,40px)}.v-expo:before{content:"";position:absolute;top:30%;left:50%;transform:translate(-50%,-50%);width:50%;aspect-ratio:1;background:linear-gradient(45deg,var(--accent),#ff8c42);border-radius:50% 30% 60% 40%;opacity:.85}.v-expo .poster-inner{z-index:1}.v-opendag{background:linear-gradient(160deg,#1d4ed8,#1e3a8a 80%);color:#fff}.v-opendag .poster-title{font-weight:900;letter-spacing:-.02em}.v-opendag:after{content:"";position:absolute;bottom:30%;right:-20%;width:200px;height:200px;border:30px solid rgba(255,255,255,.1);border-radius:50%}.v-markt{background:linear-gradient(180deg,#fff3e0,#ffb74d 100%);color:#4a2c00}.v-markt .poster-title{font-family:Georgia,serif;font-weight:900}.v-markt:before{content:"";position:absolute;top:30%;left:10%;right:10%;height:2px;background:repeating-linear-gradient(90deg,currentColor,currentColor 6px,transparent 0,transparent 12px);opacity:.4}.v-film{background:#0a0a0a;color:#fff}.v-film .poster-title{font-family:Bebas Neue,Impact,sans-serif;text-transform:uppercase;letter-spacing:.02em}.v-film:before{left:0}.v-film:after,.v-film:before{content:"";position:absolute;top:0;bottom:0;width:8%;background:repeating-linear-gradient(0deg,transparent 0,transparent 8px,var(--accent) 8px,var(--accent) 18px)}.v-film:after{right:0}.v-lezing{background:#ede4d3;color:#1a1a1a}.v-lezing .poster-title{font-family:Playfair Display,Georgia,serif}.v-lezing:before{top:12%}.v-lezing:after,.v-lezing:before{content:"";position:absolute;left:50%;transform:translateX(-50%);width:60%;height:1px;background:currentColor;opacity:.3}.v-lezing:after{bottom:12%}.v-workshop{background:#f5f1e8;color:#2d4a2b}.v-workshop .poster-title{font-family:Marker Felt,Comic Sans MS,sans-serif}.v-workshop:before{content:"";position:absolute;top:40%;right:15%;width:80px;height:80px;border:3px dashed;transform:rotate(15deg);border-radius:8px}.v-food{background:linear-gradient(135deg,#ff7b1c,#cc2936);color:#fff7e6}.v-food .poster-title{font-family:Georgia,serif;font-style:italic;font-weight:900}.v-food:after{content:"";position:absolute;bottom:0;left:0;right:0;height:35%;background:linear-gradient(0deg,rgba(0,0,0,.4),transparent)}.v-sport{background:#001f3f;color:#00ff88}.v-sport .poster-title{font-family:Impact,sans-serif;text-transform:uppercase}.v-sport:before{content:"";position:absolute;inset:50% 0 0 0;background:linear-gradient(135deg,rgba(0,255,136,.15),transparent)}.poster-paste{position:absolute;inset:0;pointer-events:none;z-index:7;background-size:100% 100%;mix-blend-mode:overlay}.paste-1 .poster-paste{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='320' height='420'%3E%3Cfilter id='w' x='0' y='0' width='100%' height='100%'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.011' numOctaves='3' seed='1' result='n'/%3E%3CfeDiffuseLighting in='n' surfaceScale='3' diffuseConstant='1' lighting-color='#808080' result='d'%3E%3CfeDistantLight azimuth='215' elevation='45'/%3E%3C/feDiffuseLighting%3E%3CfeSpecularLighting in='n' surfaceScale='3' specularConstant='0.85' specularExponent='17' lighting-color='#ffffff' result='s'%3E%3CfeDistantLight azimuth='215' elevation='62'/%3E%3C/feSpecularLighting%3E%3CfeComposite in='s' in2='d' operator='over' result='c'/%3E%3CfeComponentTransfer in='c'%3E%3CfeFuncA type='linear' slope='0.42'/%3E%3C/feComponentTransfer%3E%3C/filter%3E%3Crect width='320' height='420' filter='url(%23w)'/%3E%3C/svg%3E")}.paste-2 .poster-paste{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='320' height='420'%3E%3Cfilter id='w' x='0' y='0' width='100%' height='100%'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.009' numOctaves='3' seed='2' result='n'/%3E%3CfeDiffuseLighting in='n' surfaceScale='3' diffuseConstant='1' lighting-color='#808080' result='d'%3E%3CfeDistantLight azimuth='238' elevation='45'/%3E%3C/feDiffuseLighting%3E%3CfeSpecularLighting in='n' surfaceScale='3' specularConstant='0.85' specularExponent='17' lighting-color='#ffffff' result='s'%3E%3CfeDistantLight azimuth='238' elevation='62'/%3E%3C/feSpecularLighting%3E%3CfeComposite in='s' in2='d' operator='over' result='c'/%3E%3CfeComponentTransfer in='c'%3E%3CfeFuncA type='linear' slope='0.42'/%3E%3C/feComponentTransfer%3E%3C/filter%3E%3Crect width='320' height='420' filter='url(%23w)'/%3E%3C/svg%3E")}.paste-3 .poster-paste{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='320' height='420'%3E%3Cfilter id='w' x='0' y='0' width='100%' height='100%'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.013' numOctaves='3' seed='3' result='n'/%3E%3CfeDiffuseLighting in='n' surfaceScale='3' diffuseConstant='1' lighting-color='#808080' result='d'%3E%3CfeDistantLight azimuth='258' elevation='45'/%3E%3C/feDiffuseLighting%3E%3CfeSpecularLighting in='n' surfaceScale='3' specularConstant='0.85' specularExponent='17' lighting-color='#ffffff' result='s'%3E%3CfeDistantLight azimuth='258' elevation='62'/%3E%3C/feSpecularLighting%3E%3CfeComposite in='s' in2='d' operator='over' result='c'/%3E%3CfeComponentTransfer in='c'%3E%3CfeFuncA type='linear' slope='0.42'/%3E%3C/feComponentTransfer%3E%3C/filter%3E%3Crect width='320' height='420' filter='url(%23w)'/%3E%3C/svg%3E")}.poster.paste-3{box-shadow:inset 0 0 0 2px rgba(0,0,0,.5)}.paste-4 .poster-paste{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='320' height='420'%3E%3Cfilter id='w' x='0' y='0' width='100%' height='100%'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.01' numOctaves='3' seed='4' result='n'/%3E%3CfeDiffuseLighting in='n' surfaceScale='3' diffuseConstant='1' lighting-color='#808080' result='d'%3E%3CfeDistantLight azimuth='202' elevation='45'/%3E%3C/feDiffuseLighting%3E%3CfeSpecularLighting in='n' surfaceScale='3' specularConstant='0.85' specularExponent='17' lighting-color='#ffffff' result='s'%3E%3CfeDistantLight azimuth='202' elevation='62'/%3E%3C/feSpecularLighting%3E%3CfeComposite in='s' in2='d' operator='over' result='c'/%3E%3CfeComponentTransfer in='c'%3E%3CfeFuncA type='linear' slope='0.42'/%3E%3C/feComponentTransfer%3E%3C/filter%3E%3Crect width='320' height='420' filter='url(%23w)'/%3E%3C/svg%3E")}.paste-5 .poster-paste{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='320' height='420'%3E%3Cfilter id='w' x='0' y='0' width='100%' height='100%'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.012' numOctaves='3' seed='5' result='n'/%3E%3CfeDiffuseLighting in='n' surfaceScale='3' diffuseConstant='1' lighting-color='#808080' result='d'%3E%3CfeDistantLight azimuth='246' elevation='45'/%3E%3C/feDiffuseLighting%3E%3CfeSpecularLighting in='n' surfaceScale='3' specularConstant='0.85' specularExponent='17' lighting-color='#ffffff' result='s'%3E%3CfeDistantLight azimuth='246' elevation='62'/%3E%3C/feSpecularLighting%3E%3CfeComposite in='s' in2='d' operator='over' result='c'/%3E%3CfeComponentTransfer in='c'%3E%3CfeFuncA type='linear' slope='0.42'/%3E%3C/feComponentTransfer%3E%3C/filter%3E%3Crect width='320' height='420' filter='url(%23w)'/%3E%3C/svg%3E")}.paste-6 .poster-paste{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='320' height='420'%3E%3Cfilter id='w' x='0' y='0' width='100%' height='100%'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.008' numOctaves='3' seed='6' result='n'/%3E%3CfeDiffuseLighting in='n' surfaceScale='3' diffuseConstant='1' lighting-color='#808080' result='d'%3E%3CfeDistantLight azimuth='224' elevation='45'/%3E%3C/feDiffuseLighting%3E%3CfeSpecularLighting in='n' surfaceScale='3' specularConstant='0.85' specularExponent='17' lighting-color='#ffffff' result='s'%3E%3CfeDistantLight azimuth='224' elevation='62'/%3E%3C/feSpecularLighting%3E%3CfeComposite in='s' in2='d' operator='over' result='c'/%3E%3CfeComponentTransfer in='c'%3E%3CfeFuncA type='linear' slope='0.42'/%3E%3C/feComponentTransfer%3E%3C/filter%3E%3Crect width='320' height='420' filter='url(%23w)'/%3E%3C/svg%3E")}.poster.paste-6{box-shadow:inset 0 0 0 2px rgba(0,0,0,.5)}.paste-7 .poster-paste{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='320' height='420'%3E%3Cfilter id='w' x='0' y='0' width='100%' height='100%'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.014' numOctaves='3' seed='7' result='n'/%3E%3CfeDiffuseLighting in='n' surfaceScale='3' diffuseConstant='1' lighting-color='#808080' result='d'%3E%3CfeDistantLight azimuth='262' elevation='45'/%3E%3C/feDiffuseLighting%3E%3CfeSpecularLighting in='n' surfaceScale='3' specularConstant='0.85' specularExponent='17' lighting-color='#ffffff' result='s'%3E%3CfeDistantLight azimuth='262' elevation='62'/%3E%3C/feSpecularLighting%3E%3CfeComposite in='s' in2='d' operator='over' result='c'/%3E%3CfeComponentTransfer in='c'%3E%3CfeFuncA type='linear' slope='0.42'/%3E%3C/feComponentTransfer%3E%3C/filter%3E%3Crect width='320' height='420' filter='url(%23w)'/%3E%3C/svg%3E")}.paste-8 .poster-paste{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='320' height='420'%3E%3Cfilter id='w' x='0' y='0' width='100%' height='100%'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.0095' numOctaves='3' seed='8' result='n'/%3E%3CfeDiffuseLighting in='n' surfaceScale='3' diffuseConstant='1' lighting-color='#808080' result='d'%3E%3CfeDistantLight azimuth='209' elevation='45'/%3E%3C/feDiffuseLighting%3E%3CfeSpecularLighting in='n' surfaceScale='3' specularConstant='0.85' specularExponent='17' lighting-color='#ffffff' result='s'%3E%3CfeDistantLight azimuth='209' elevation='62'/%3E%3C/feSpecularLighting%3E%3CfeComposite in='s' in2='d' operator='over' result='c'/%3E%3CfeComponentTransfer in='c'%3E%3CfeFuncA type='linear' slope='0.42'/%3E%3C/feComponentTransfer%3E%3C/filter%3E%3Crect width='320' height='420' filter='url(%23w)'/%3E%3C/svg%3E")}.paste-9 .poster-paste{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='320' height='420'%3E%3Cfilter id='w' x='0' y='0' width='100%' height='100%'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.0115' numOctaves='3' seed='9' result='n'/%3E%3CfeDiffuseLighting in='n' surfaceScale='3' diffuseConstant='1' lighting-color='#808080' result='d'%3E%3CfeDistantLight azimuth='241' elevation='45'/%3E%3C/feDiffuseLighting%3E%3CfeSpecularLighting in='n' surfaceScale='3' specularConstant='0.85' specularExponent='17' lighting-color='#ffffff' result='s'%3E%3CfeDistantLight azimuth='241' elevation='62'/%3E%3C/feSpecularLighting%3E%3CfeComposite in='s' in2='d' operator='over' result='c'/%3E%3CfeComponentTransfer in='c'%3E%3CfeFuncA type='linear' slope='0.42'/%3E%3C/feComponentTransfer%3E%3C/filter%3E%3Crect width='320' height='420' filter='url(%23w)'/%3E%3C/svg%3E")}.poster.paste-9{box-shadow:inset 0 0 0 2px rgba(0,0,0,.5)}.paste-10 .poster-paste{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='320' height='420'%3E%3Cfilter id='w' x='0' y='0' width='100%' height='100%'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.0105' numOctaves='3' seed='10' result='n'/%3E%3CfeDiffuseLighting in='n' surfaceScale='3' diffuseConstant='1' lighting-color='#808080' result='d'%3E%3CfeDistantLight azimuth='230' elevation='45'/%3E%3C/feDiffuseLighting%3E%3CfeSpecularLighting in='n' surfaceScale='3' specularConstant='0.85' specularExponent='17' lighting-color='#ffffff' result='s'%3E%3CfeDistantLight azimuth='230' elevation='62'/%3E%3C/feSpecularLighting%3E%3CfeComposite in='s' in2='d' operator='over' result='c'/%3E%3CfeComponentTransfer in='c'%3E%3CfeFuncA type='linear' slope='0.42'/%3E%3C/feComponentTransfer%3E%3C/filter%3E%3Crect width='320' height='420' filter='url(%23w)'/%3E%3C/svg%3E")}.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.85);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:1000;display:none;align-items:center;justify-content:center;padding:24px;animation:fadeIn .2s}.modal-backdrop.active{display:flex}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal{background:var(--bg-card);border-radius:16px;max-width:1000px;width:100%;height:92vh;display:grid;grid-template-columns:1fr 1fr}.modal,.modal-poster{position:relative;overflow:hidden}.modal-poster{height:100%}.modal-poster .poster-image{object-fit:contain}.modal-content{padding:32px;display:flex;flex-direction:column;gap:16px;overflow-y:auto}@media (max-width:720px){.modal{grid-template-columns:1fr;height:auto;max-height:95vh;overflow-y:auto}.modal-poster{height:auto;aspect-ratio:auto}.modal-poster:not(.has-image){min-height:50vh;aspect-ratio:auto}.modal-poster .poster-image{position:relative;width:100%;height:auto;max-height:60vh;display:block}.modal-content{overflow:visible;padding:20px}}.modal-close{position:absolute;top:16px;right:16px;z-index:10;width:40px;height:40px;border-radius:50%;background:rgba(0,0,0,.6);color:white;font-size:20px;display:flex;align-items:center;justify-content:center;transition:background .15s}.modal-close:hover{background:var(--accent)}.modal h2{font-size:32px;font-weight:900;letter-spacing:-.02em;line-height:1.1}.modal-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:-4px}.modal-tag{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:4px 10px;background:var(--bg-elev);border-radius:999px;color:var(--text-dim)}.modal-meta{display:grid;grid-gap:12px;gap:12px;padding:16px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.meta-row{display:grid;grid-template-columns:100px 1fr;grid-gap:12px;gap:12px;align-items:baseline}.meta-label{color:var(--text-dim);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.meta-value{font-size:15px;font-weight:500}.meta-value a{color:var(--accent);border-bottom:1px solid}.modal-desc{color:var(--text-dim);font-size:14px;line-height:1.6}.modal-artists{display:flex;gap:12px;flex-wrap:wrap}.artist-chip{padding:8px 14px;background:var(--bg-elev);border-radius:999px;font-size:13px;font-weight:500;display:flex;align-items:center;gap:6px}.modal-actions{display:flex;gap:8px;flex-wrap:wrap}.btn{padding:12px 20px;border-radius:999px;font-size:13px;font-weight:600;transition:all .15s;display:inline-flex;align-items:center;gap:8px}.btn-primary{background:var(--accent);color:white}.btn-primary:hover{transform:translateY(-1px)}.btn-secondary{background:var(--bg-elev);color:var(--text)}.btn-secondary:hover{background:var(--border)}.event-map{margin-top:8px;border-radius:8px;overflow:hidden;border:1px solid var(--border)}.event-map iframe{display:block;width:100%;height:200px;border:0}.map-actions{margin-top:10px;flex-wrap:wrap}.map-actions,.map-qr{display:flex;gap:8px;align-items:center}.map-qr{margin-left:auto;font-size:11px;color:var(--text-dim);line-height:1.3}.map-qr img{border-radius:6px;background:#fff;padding:4px}@media (max-width:640px){.map-qr{display:none}}footer{margin-top:48px;padding:32px 24px;border-top:1px solid var(--border);font-size:13px}.empty,footer{text-align:center;color:var(--text-dim)}.empty{grid-column:1/-1;padding:80px 24px}.empty h3{font-size:24px;color:var(--text);margin-bottom:8px}@media (max-width:640px){header{padding:12px 16px}.header-top{gap:12px;margin-bottom:10px}.logo{gap:10px}.logo-stack{font-size:22px}.logo-region{font-size:14px}.upload-btn{padding:8px 14px;font-size:12px}.grid{grid-template-columns:repeat(2,1fr);gap:4px;padding:4px}.poster.size-large,.poster.size-wide{grid-column:span 2;aspect-ratio:3/4}.poster-inner{padding:12px}.poster-title{font-size:16px}.poster-tag-date,.poster-tag-venue{font-size:9px}.modal-content{padding:20px}.modal h2{font-size:24px}.meta-row{grid-template-columns:80px 1fr}.upload-wrap{padding:24px 16px 48px}.upload-row{grid-template-columns:1fr}}.upload-wrap{max-width:680px;margin:0 auto;padding:40px 24px 64px}.upload-back{display:inline-block;font-size:13px;color:var(--text-dim);margin-bottom:24px;transition:color .15s}.upload-back:hover{color:var(--text)}.upload-header h1{font-size:clamp(28px,5vw,40px);font-weight:900;letter-spacing:-.03em;margin-bottom:10px}.upload-header p{color:var(--text-dim);font-size:15px;margin-bottom:32px}.poster-upload-dropzone{display:flex;align-items:center;justify-content:center;text-align:center;background:var(--bg-elev);border:2px dashed var(--border-strong);border-radius:10px;padding:32px 16px;cursor:pointer;transition:all .15s;min-height:140px}.poster-upload-dropzone:hover{background:var(--bg-hover);border-color:var(--accent)}.poster-upload-dropzone b{font-size:14px;color:var(--text);font-weight:600}.poster-upload-dropzone small{color:var(--text-dim);font-size:12px}.poster-upload-preview{display:flex;flex-direction:column;gap:10px;align-items:flex-start}.poster-upload-preview img{max-width:100%;max-height:400px;border-radius:8px;border:1px solid var(--border);display:block}.poster-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;display:block}.poster.has-image:before{display:none}.poster.has-image:after{content:"";display:block;position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.55) 0,rgba(0,0,0,.15) 22%,transparent 50%,rgba(0,0,0,.2) 78%,rgba(0,0,0,.6));z-index:1;pointer-events:none}.poster.has-image .poster-inner{z-index:2;color:#fff}.poster.has-image .poster-title{display:none}.poster.has-image .poster-subtitle,.poster.has-image .poster-tag-date,.poster.has-image .poster-tag-venue{color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.6)}.modal-poster.has-image{background:#0a0a0a}.modal-poster.has-image .poster-inner,.modal-poster.has-image .poster-type-tag,.modal-poster.has-image:after,.modal-poster.has-image:before{display:none}.upload-form{display:flex;flex-direction:column;gap:18px}.upload-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));grid-gap:18px;gap:18px}.upload-field{display:flex;flex-direction:column;gap:6px}.upload-field>span{font-size:13px;font-weight:600;color:var(--text)}.upload-field>span b{color:var(--accent)}.upload-field>span small{color:var(--text-dim);font-weight:400}.upload-field input,.upload-field select,.upload-field textarea{background:var(--bg-elev);border:1px solid var(--border);border-radius:10px;padding:12px 14px;font-size:14px;color:var(--text);font-family:inherit;transition:border-color .15s}.upload-field input::placeholder,.upload-field textarea::placeholder{color:var(--text-faint)}.upload-field input:focus,.upload-field select:focus,.upload-field textarea:focus{outline:none;border-color:var(--accent)}.upload-field textarea{resize:vertical}.upload-submit{margin-top:8px;justify-content:center;padding:14px 24px;font-size:14px}.upload-submit:disabled{opacity:.6;cursor:not-allowed}.upload-note{font-size:12px;color:var(--text-dim);text-align:center}.upload-note b{color:var(--accent)}.upload-error{background:rgba(230,57,70,.12);border:1px solid var(--accent);color:#ff8a93;border-radius:10px;padding:12px 14px;font-size:13px}.upload-done{text-align:center;padding:64px 0}.upload-done h1{font-size:clamp(32px,6vw,48px);font-weight:900;letter-spacing:-.03em;margin-bottom:12px}.upload-done p{color:var(--text-dim);font-size:16px;margin-bottom:28px}.upload-done-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.upload-artists{display:flex;flex-direction:column;gap:12px}.upload-artists-label{font-size:13px;font-weight:600;color:var(--text)}.artist-input-row{background:var(--bg-elev);border:1px solid var(--border);border-radius:10px;padding:12px;flex-direction:column}.artist-input-head,.artist-input-row{display:flex;gap:8px}.artist-input-head input{flex:1 1;background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:10px 12px;font-size:14px;color:var(--text);font-family:inherit}.artist-input-head input:focus{outline:none;border-color:var(--accent)}.artist-remove{flex-shrink:0;width:38px;border-radius:8px;background:var(--bg);border:1px solid var(--border);color:var(--text-dim);font-size:13px;transition:all .15s}.artist-remove:hover{background:var(--accent);color:white;border-color:var(--accent)}.artist-input-links{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:8px;gap:8px}.artist-input-links input{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:9px 11px;font-size:13px;color:var(--text);font-family:inherit}.artist-input-links input::placeholder{color:var(--text-faint)}.artist-input-links input:focus{outline:none;border-color:var(--accent)}.artist-add{align-self:flex-start;font-size:13px;font-weight:600;color:var(--accent);padding:8px 4px}.artist-add:hover{text-decoration:underline}.upload-links-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));grid-gap:8px;gap:8px}.upload-links-grid input{background:var(--bg-elev);border:1px solid var(--border);border-radius:10px;padding:11px 13px;font-size:13px;color:var(--text);font-family:inherit}.upload-links-grid input::placeholder{color:var(--text-faint)}.upload-links-grid input:focus{outline:none;border-color:var(--accent)}.artist-link{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;margin-left:4px;border-radius:5px;background:var(--bg);color:var(--text-dim);font-size:11px;transition:all .15s}.artist-link:hover{background:var(--accent);color:white}.event-links{display:flex;gap:8px;flex-wrap:wrap}.event-link{padding:8px 14px;background:var(--bg-elev);border-radius:999px;font-size:13px;font-weight:500;color:var(--text);transition:background .15s}.event-link:hover{background:var(--border)}.artist-cards{gap:14px}.artist-card,.artist-cards{display:flex;flex-direction:column}.artist-card{gap:8px;background:var(--bg-elev);border:1px solid var(--border);border-radius:10px;padding:12px}.artist-card-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.artist-card-name{font-size:14px;font-weight:600;color:var(--text);flex:1 1;min-width:0}.media-section{display:flex;flex-direction:column;gap:10px}.youtube-embed iframe{display:block;width:100%;aspect-ratio:16/9;border:0;border-radius:10px;background:#000}.spotify-embed iframe{display:block;width:100%;height:152px;border:0;border-radius:12px}@media (max-width:640px){.artist-input-links{grid-template-columns:1fr}}.header-login-btn{padding:10px 18px;font-size:13px;font-weight:600;color:var(--text);border:1px solid var(--border-strong);border-radius:999px;transition:all .15s;white-space:nowrap}.header-login-btn:hover{background:var(--bg-elev)}.account-status{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--text-dim)}.account-status button{font-size:12px;color:var(--text-dim);text-decoration:underline;cursor:pointer}.account-status button:hover{color:var(--text)}@media (max-width:640px){.account-status span{display:none}}.login-tabs{display:flex;gap:4px;padding:4px;background:var(--bg-elev);border-radius:999px;margin-bottom:24px;width:-moz-fit-content;width:fit-content}.login-tab{padding:8px 18px;border-radius:999px;font-size:13px;font-weight:600;color:var(--text-dim);transition:all .15s}.login-tab.active{background:var(--text);color:var(--bg)}.login-tab:hover:not(.active){color:var(--text)}.login-checkbox{display:flex;gap:10px;align-items:flex-start;padding:12px;background:var(--bg-elev);border:1px solid var(--border);border-radius:10px;cursor:pointer}.login-checkbox input{margin-top:2px}.login-checkbox span{font-size:14px;color:var(--text)}.login-filters{background:var(--bg-elev);border-radius:10px;padding:14px;display:flex;flex-direction:column;gap:14px}.login-chips{display:flex;gap:6px;flex-wrap:wrap}.login-chip{padding:6px 12px;border-radius:999px;background:var(--bg);border:1px solid var(--border);font-size:12px;font-weight:500;color:var(--text-dim);transition:all .15s}.login-chip:hover{color:var(--text);border-color:var(--border-strong)}.login-chip.active{background:var(--accent);color:white;border-color:var(--accent)}.modal-uploader{font-size:13px;color:var(--text-dim);padding:10px 12px;background:var(--bg-elev);border-radius:8px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.modal-uploader strong{color:var(--text)}.verified-badge{font-size:11px;font-weight:700;color:white;background:#2eb88a;padding:2px 8px;border-radius:999px;margin-left:4px}.admin-wrap{max-width:760px;margin:0 auto;padding:40px 24px 64px}.admin-muted{color:var(--text-dim);font-size:14px}.admin-login h1{font-size:clamp(26px,5vw,36px);font-weight:900;letter-spacing:-.03em;margin:8px 0 6px}.admin-login p{margin-bottom:24px}.admin-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:28px}.admin-header h1{font-size:clamp(24px,4vw,34px);font-weight:900;letter-spacing:-.03em;margin:8px 0 4px}.admin-list{display:flex;flex-direction:column;gap:8px}.admin-row{display:flex;align-items:center;justify-content:space-between;gap:16px;background:var(--bg-elev);border:1px solid var(--border);border-radius:10px;padding:14px 16px}.admin-row-past{opacity:.55}.admin-row-main{min-width:0}.admin-row-title{font-size:14px;font-weight:600;color:var(--text);margin-bottom:3px}.admin-row-meta{font-size:12px;color:var(--text-dim);display:flex;align-items:center;gap:8px;flex-wrap:wrap}.admin-tag-past{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;background:var(--border);color:var(--text-dim);padding:2px 7px;border-radius:999px}.admin-delete{flex-shrink:0;padding:8px 14px;border-radius:8px;font-size:12px;font-weight:600;color:#ff8a93;background:rgba(230,57,70,.12);border:1px solid rgba(230,57,70,.4);transition:all .15s}.admin-delete:hover{background:var(--accent);color:white}@media (max-width:640px){.admin-wrap{padding:24px 16px 48px}.admin-row{flex-direction:column;align-items:stretch}.admin-delete{align-self:flex-end}}