:root{--pink: #fe019c;--pink-deep: #9e0060;--sky: #2b78f0;--sky-light: #9cd0ff;--grass: #3fb83a;--grass-dark: #23801f;--black: #000;--white: #fff;--pad: 20px;--stamp: "Rubik Mono One", "Unbounded", sans-serif;--display: "Unbounded", "Montserrat", sans-serif;--sans: "Montserrat", system-ui, sans-serif}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{min-height:100dvh;color:var(--black);font-family:var(--sans);line-height:1.4;-webkit-font-smoothing:antialiased;background:var(--sky);overflow-x:hidden}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;background:radial-gradient(ellipse 38% 7% at 18% 22%,#fff 60%,transparent 62%),radial-gradient(ellipse 22% 9% at 28% 19%,#fff 60%,transparent 62%),radial-gradient(ellipse 30% 6% at 82% 48%,#fff 60%,transparent 62%),radial-gradient(ellipse 18% 8% at 74% 45%,#fff 60%,transparent 62%),radial-gradient(ellipse 34% 6% at 30% 78%,rgb(255 255 255 / .85) 60%,transparent 62%),linear-gradient(var(--sky) 0%,var(--sky-light) 100%)}a{color:inherit}button{font:inherit;color:inherit}:focus-visible{outline:4px solid var(--pink);outline-offset:3px}.stamp{font-family:var(--stamp);font-weight:400;text-transform:uppercase;letter-spacing:-.03em;word-spacing:-.3em}.topbar{display:flex;align-items:center;justify-content:space-between;padding:max(12px,env(safe-area-inset-top)) var(--pad) 0}.topbar-logo{width:44px;height:44px;border-radius:12px;border:3px solid var(--white)}.topbar a{padding:8px 14px;border-radius:99px;background:var(--white);font-weight:800;text-decoration:none}.hero{position:relative;padding:8px var(--pad) 0;text-align:center}.wordmark{font-family:var(--display);font-size:clamp(2.8rem,16.5vw,9rem);font-weight:900;line-height:.95;letter-spacing:-.03em;text-transform:uppercase;white-space:nowrap;color:transparent;background:linear-gradient(105deg,transparent 42%,rgb(255 255 255 / .95) 50%,transparent 58%) 250% 0 / 200% 100% no-repeat,linear-gradient(180deg,#fff 0%,#ffc2e6 22%,var(--pink) 48%,#ff5cbf 60%,var(--pink-deep) 100%);animation:shine 1.4s ease-in-out .5s 1 both;-webkit-background-clip:text;background-clip:text;filter:drop-shadow(0 3px 0 var(--pink-deep)) drop-shadow(0 3px 0 #5a0037) drop-shadow(0 12px 14px rgb(0 0 0 / .3))}@keyframes shine{0%{background-position:250% 0,0 0}to{background-position:-150% 0,0 0}}.sparkles span{position:absolute;color:var(--white);font-size:1.6rem;text-shadow:0 0 10px var(--pink);animation:twinkle 2.4s ease-in-out infinite;pointer-events:none}.sparkles span:nth-child(1){top:0;left:6%}.sparkles span:nth-child(2){top:18%;right:5%;font-size:2.2rem;animation-delay:.6s}.sparkles span:nth-child(3){bottom:18%;left:2%;font-size:1.1rem;animation-delay:1.2s}.sparkles span:nth-child(4){top:-6%;right:30%;font-size:1rem;animation-delay:1.8s}.sparkles span:nth-child(5){bottom:6%;right:12%;color:var(--pink);text-shadow:0 0 8px #fff;animation-delay:.9s}@keyframes twinkle{0%,to{transform:scale(1) rotate(0);opacity:1}50%{transform:scale(.5) rotate(45deg);opacity:.4}}.next{display:grid;padding:26px var(--pad) 40px;max-width:1040px;margin:0 auto}.next .ticket{margin-top:20px}@media(min-width:760px){.next{grid-template-columns:minmax(0,400px) minmax(0,460px);justify-content:center;align-items:center}.next .ticket{margin:0 0 0 32px;justify-self:start}}.poster-button{all:unset;position:relative;display:block;cursor:zoom-in;justify-self:center;width:min(84%,420px)}.poster{display:block;width:100%;aspect-ratio:3 / 4;object-fit:cover;background:var(--pink);border:6px solid var(--white);outline:3px solid var(--black);box-shadow:8px 10px #00000059}.tilt{transform:rotate(-2deg)}.poster-button:focus-visible .poster{outline-color:var(--pink);outline-width:5px}.sticker{position:absolute;top:-14px;right:-8px;padding:10px 14px;background:var(--accent, var(--pink));color:var(--accent-text, var(--black));border:3px solid var(--black);font-family:var(--stamp);font-weight:400;font-size:.95rem;letter-spacing:-.03em;word-spacing:-.3em;text-transform:uppercase;transform:rotate(6deg);box-shadow:4px 4px #0000004d}.next-name{font-family:var(--display);display:inline-block;margin-top:16px;padding:6px 12px;background:var(--black);color:var(--pink);font-size:clamp(1.1rem,5.2vw,1.8rem);font-weight:900;line-height:1.1;text-transform:uppercase}.desc{margin:12px auto 0;max-width:42ch;font-size:1.05rem;font-weight:600}.ticket{justify-self:center;width:min(100%,460px);transform:rotate(1.2deg);--card: var(--white);--ink: #1e1e1e;--accent: var(--pink);--accent-text: var(--black);filter:drop-shadow(1.5px 0 0 var(--ink)) drop-shadow(-1.5px 0 0 var(--ink)) drop-shadow(0 1.5px 0 var(--ink)) drop-shadow(0 -1.5px 0 var(--ink)) drop-shadow(8px 10px 0 rgb(0 0 0 / .3))}.ticket-main,.ticket-stub{background:var(--card);color:var(--ink);-webkit-mask:var(--mask);mask:var(--mask)}.ticket-main{padding:18px 18px 20px;border-radius:14px 14px 0 0;--mask: radial-gradient(circle 13px at 0 100%, transparent 97%, #000) left / 51% 100% no-repeat, radial-gradient(circle 13px at 100% 100%, transparent 97%, #000) right / 51% 100% no-repeat}.ticket-stub{display:flex;align-items:center;gap:14px;padding:16px 18px;border-radius:0 0 14px 14px;background:linear-gradient(90deg,var(--ink) 50%,transparent 0) top / 14px 2px repeat-x,var(--card);--mask: radial-gradient(circle 13px at 0 0, transparent 97%, #000) left / 51% 100% no-repeat, radial-gradient(circle 13px at 100% 0, transparent 97%, #000) right / 51% 100% no-repeat}.ticket-stub .button{flex:1;border-color:var(--ink);box-shadow:3px 4px #00000040}.ticket-stub .button:not(.ghost){background:var(--accent);color:var(--accent-text)}.barcode{flex:none;width:64px;height:44px;background:repeating-linear-gradient(90deg,var(--ink) 0 2px,transparent 2px 4px,var(--ink) 4px 7px,transparent 7px 8px,var(--ink) 8px 9px,transparent 9px 12px)}.ticket-head{display:flex;gap:16px;align-items:flex-start}.calendar{flex:none;display:grid;width:96px;text-align:center;border:3px solid var(--ink);border-radius:8px;overflow:hidden;background:var(--white);transform:rotate(-4deg);box-shadow:3px 4px #00000040}.cal-month{background:var(--accent);color:var(--accent-text);font-size:.95rem;padding:4px 0 3px;border-bottom:3px solid var(--ink)}.cal-day{font-size:2.4rem;line-height:1.1;padding-top:4px}.cal-weekday{font-size:.68rem;font-weight:800;letter-spacing:-.02em;padding:0 3px 6px}.ticket-title{min-width:0}.ticket-name{font-family:var(--display);font-size:clamp(1.15rem,5.4vw,1.6rem);font-weight:900;line-height:1.05;text-transform:uppercase;overflow-wrap:anywhere}.ticket-line{display:flex;align-items:center;gap:6px;margin-top:8px;font-weight:800;font-size:1rem;line-height:1.2}.ticket-line a{color:inherit;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px;text-decoration-color:var(--accent)}.ticket-line a:hover{text-decoration-color:var(--ink)}.icon{flex:none;width:20px;height:20px;fill:none;stroke:var(--ink);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}.icon-pin path{fill:var(--accent)}.icon-pin circle{fill:var(--white)}.icon-clock circle{fill:var(--accent)}.lineup-tags{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin-top:16px}.lineup-tags li{padding:4px 10px;background:var(--ink);color:var(--card);font-weight:800;font-size:.85rem;text-transform:uppercase}.lineup-tags li:nth-child(3n+2){transform:rotate(-2deg)}.lineup-tags li:nth-child(3n){transform:rotate(1.5deg)}.ticket-desc{margin-top:14px;max-width:46ch;font-weight:600;font-size:1rem}.card-ticket{display:inline-block;margin-top:8px;padding:6px 14px;border:3px solid var(--black);border-radius:99px;background:var(--pink);color:var(--black);font-weight:900;font-size:.9rem;text-decoration:none;box-shadow:3px 3px #0000004d}.card-ticket:active{transform:translate(2px,2px);box-shadow:1px 1px #0000004d}.button{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:12px 24px;border:3px solid var(--black);border-radius:99px;background:var(--pink);color:var(--black);font-weight:900;font-size:1.1rem;text-decoration:none;box-shadow:4px 4px #0000004d;transition:transform .08s,box-shadow .08s}.button:active{transform:translate(3px,3px);box-shadow:1px 1px #0000004d}.button.ghost{background:var(--white);color:var(--black)}.button.wide{width:100%;max-width:420px;margin-top:20px}.shelf{padding:8px 0 36px;max-width:1040px;margin:0 auto}.shelf-title{font-family:var(--display);margin:0 var(--pad) 14px;display:inline-block;padding:4px 10px;background:var(--white);font-weight:900;font-size:1.15rem;border:3px solid var(--black);box-shadow:3px 3px #0000004d;transform:rotate(-1deg);position:relative;z-index:1}.rail{list-style:none;display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding:0 var(--pad);padding:8px var(--pad) 16px;scrollbar-width:none}.rail::-webkit-scrollbar{display:none}.rail li{flex:0 0 min(64vw,260px);scroll-snap-align:start}.grid{list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:40px 14px;padding:40px var(--pad) 0}.card{all:unset;position:relative;display:block;width:100%;cursor:pointer}.card .poster{border-width:4px;box-shadow:5px 6px #0000004d}.card:nth-child(odd) .poster,.grid li:nth-child(odd) .poster{transform:rotate(-1.5deg)}.grid li:nth-child(2n) .poster{transform:rotate(1.5deg)}.archive .poster{filter:saturate(.85)}.card:focus-visible .poster{outline:5px solid var(--pink)}.chip{position:absolute;top:8px;left:-4px;padding:4px 8px;background:var(--black);color:var(--white);font-size:.85rem}.card-name{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;padding:0 2px 2px;font-family:var(--display);margin-top:12px;font-weight:800;font-size:1.05rem;line-height:1.15;color:var(--white);-webkit-text-stroke:4px var(--black);paint-order:stroke fill}.card-meta{display:block;font-weight:700;font-size:.88rem;color:var(--white);-webkit-text-stroke:4px var(--black);paint-order:stroke fill}.card-photos{position:absolute;right:-6px;bottom:-10px;padding:4px 8px;background:var(--pink);color:var(--black);border:3px solid var(--black);box-shadow:3px 3px #0000004d;font-size:.75rem;transform:rotate(-5deg)}.footer{position:relative;margin-top:40px;padding:36px var(--pad) calc(110px + env(safe-area-inset-bottom));text-align:center;background:linear-gradient(var(--grass),var(--grass-dark));color:var(--white);font-weight:800}.footer:before{content:"";position:absolute;left:0;right:0;top:-18px;height:20px;background:linear-gradient(135deg,transparent 50%,var(--grass) 50%) 0 0 / 18px 20px repeat-x,linear-gradient(225deg,transparent 50%,var(--grass) 50%) 0 0 / 18px 20px repeat-x}.footer p{margin-top:18px}.ticket-bar{position:fixed;left:10px;right:10px;bottom:max(10px,env(safe-area-inset-bottom));z-index:5;display:flex;align-items:center;justify-content:space-between;gap:12px;max-width:560px;margin:0 auto;padding:8px 8px 8px 16px;border:3px solid var(--black);border-radius:99px;background:var(--white);box-shadow:4px 4px #0000004d;transform:translateY(150%);transition:transform .25s ease-out}.ticket-bar.show{transform:none}.ticket-bar .button{min-height:44px;padding:8px 18px;font-size:1rem;box-shadow:none;flex:none}.bar-info{display:grid;min-width:0;line-height:1.15}.bar-info .stamp{font-size:.85rem}.bar-name{font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sheet{width:min(560px,100%);max-width:100%;max-height:94dvh;margin:auto auto 0;padding:10px var(--pad) calc(32px + env(safe-area-inset-bottom));border:4px solid var(--black);border-bottom:0;border-radius:22px 22px 0 0;background:radial-gradient(ellipse 45% 5% at 85% 30%,#fff 60%,transparent 62%),radial-gradient(ellipse 40% 4% at 10% 62%,rgb(255 255 255 / .8) 60%,transparent 62%),linear-gradient(var(--sky),var(--sky-light));color:var(--black);overscroll-behavior:contain}.sheet[open]{animation:sheet-up .22s ease-out}@keyframes sheet-up{0%{transform:translateY(40px);opacity:0}}.sheet::backdrop{background:#0000008c}@media(min-width:700px){.sheet{margin:auto;border-bottom:4px solid var(--black);border-radius:22px}}.sheet.past{width:min(920px,100%)}.sheet.past .ticket{max-width:520px;margin-inline:auto}@media(min-width:760px){.sheet.past .gallery{columns:3}}@media(min-width:760px){.sheet.past .gallery.count-2{columns:2}}@media(min-width:760px){.sheet.past .gallery.count-1{columns:1}}.grabber{display:block;width:52px;height:6px;margin:0 auto 6px;border-radius:99px;background:var(--black);opacity:.6}@media(min-width:700px){.grabber{display:none}}.close{position:sticky;top:0;float:right;z-index:3;width:46px;height:46px;margin-bottom:-46px;border:3px solid var(--black);border-radius:50%;background:var(--pink);color:var(--black);font:900 1.7rem/1 var(--sans);cursor:pointer;box-shadow:3px 3px #0000004d}.sheet-poster{all:unset;position:relative;display:block;width:min(70%,300px);margin:18px auto 0;cursor:zoom-in}.sheet-poster img{display:block;width:100%;aspect-ratio:3 / 4;object-fit:cover;border:5px solid var(--white);outline:3px solid var(--black);transform:rotate(-2deg);box-shadow:6px 8px #00000059}.sheet-poster .sticker{font-size:.85rem}.sheet-poster:focus-visible img{outline-color:var(--pink);outline-width:5px}.sheet-poster.small{width:min(44%,190px)}.sheet .ticket{width:100%;margin-top:22px}.used-stamp{flex:none;padding:2px 10px;border:4px solid var(--ink);border-radius:8px;color:var(--ink);font-family:var(--stamp);font-size:1.3rem;text-transform:uppercase;transform:rotate(-10deg)}.stub-note{flex:1;font-weight:800}.sheet-gallery{margin-top:34px}.gallery{list-style:none;columns:2;column-gap:10px}@media(min-width:520px){.gallery.count-3{columns:3}}.gallery.count-1{columns:1;width:min(80%,360px);margin:0 auto}.gallery li{break-inside:avoid;margin-bottom:10px}.gallery button{all:unset;position:relative;display:block;width:100%;cursor:zoom-in}.gallery img{display:block;width:100%;height:auto;min-height:80px;background:#eee;border:4px solid var(--white);outline:2px solid var(--black)}.gallery li:nth-child(3n+1) button{transform:rotate(-1.2deg)}.gallery li:nth-child(3n+2) button{transform:rotate(1deg)}.gallery button:focus-visible{outline:3px solid var(--pink);outline-offset:2px}.viewer{width:100%;max-width:none;height:100dvh;max-height:none;margin:0;padding:0;border:0;background:var(--black);color:var(--white);overflow:hidden}.viewer::backdrop{background:var(--black)}.viewer-top{position:absolute;top:0;left:0;right:0;z-index:2;display:flex;align-items:center;gap:12px;padding:max(12px,env(safe-area-inset-top)) 12px 12px 16px;background:linear-gradient(rgb(0 0 0 / .7),transparent)}.viewer-top .stamp{color:var(--pink)}.viewer-title{font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.viewer-top .close{float:none;position:static;margin:0 0 0 auto;flex:none}.viewer-track{list-style:none;display:flex;height:100%;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior:contain;scrollbar-width:none}.viewer-track::-webkit-scrollbar{display:none}.viewer-track li{flex:0 0 100%;height:100%;display:flex;align-items:center;justify-content:center;padding:calc(70px + env(safe-area-inset-top)) 16px calc(28px + env(safe-area-inset-bottom));scroll-snap-align:center;scroll-snap-stop:always}@media(min-width:700px){.viewer-track li{padding-inline:90px}}.viewer-track img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;min-width:0;min-height:0;object-fit:contain;border:4px solid var(--white)}.nav{position:absolute;top:50%;z-index:2;width:52px;height:52px;margin-top:-26px;border:3px solid var(--black);border-radius:50%;background:var(--white);color:var(--black);padding:0;cursor:pointer;display:none}.nav.prev{left:16px}.nav.next{right:16px}@media(hover:hover)and (pointer:fine){.nav{display:grid;place-items:center}}.poster-wrap{position:relative;display:block}.peek{position:absolute;top:-11%;left:30%;width:72%;height:56%;object-fit:cover;border:4px solid var(--white);transform:rotate(9deg);box-shadow:3px 4px #0000004d}.card .poster{position:relative}.ticket.pass{position:relative;transform:rotate(-1.5deg)}.pass .ticket-main,.pass .ticket-stub{-webkit-mask:none;mask:none}.pass .ticket-main{border-radius:20px 20px 0 0;padding-top:14px}.pass .ticket-stub{border-radius:0 0 20px 20px;border-top:2px dashed rgb(0 0 0 / .22);background:var(--card)}.pass .ticket-main:before{content:"";display:block;width:60px;height:11px;margin:-2px auto 14px;border-radius:99px;background:#000000c7;box-shadow:inset 0 2px 3px #0009}.ticket-band{margin:-4px -18px 16px;padding:7px 14px 6px;border-block:2px solid var(--ink);background:var(--ink);color:var(--white);font-family:var(--display);font-weight:900;font-size:.78rem;letter-spacing:.08em;line-height:1.25;text-align:center;text-transform:uppercase;overflow-wrap:anywhere}.lineup-label{margin-top:16px;font-size:.72rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase;opacity:.6}.lineup-label+.lineup-tags{margin-top:6px}html.has-bg body:before{background:linear-gradient(#0000001f,#0000001f),var(--bg) center / cover no-repeat}@media(max-width:700px){html.has-bg body:before{background-image:linear-gradient(#0000001f,#0000001f),var(--bg-mobile, var(--bg))}}@media(min-width:760px){.shelf{text-align:center}.shelf li{text-align:left}.rail{justify-content:safe center}.grid{grid-template-columns:repeat(auto-fit,minmax(190px,230px));justify-content:center;gap:52px 30px}}.ticker-wrap{overflow:hidden;margin-top:8px;padding:14px 0}.ticker{display:flex;flex-wrap:wrap;justify-content:center;width:110%;margin:0 -5%;padding:9px 5% 8px;background:var(--pink);border-block:3px solid var(--black);box-shadow:0 5px #00000040;transform:rotate(-1.5deg);font-family:var(--display);font-weight:900;font-size:clamp(.8rem,3.2vw,1.05rem);text-transform:uppercase;white-space:nowrap}.ticker b{margin:0 clamp(8px,2vw,18px);font-weight:400}@media(max-width:560px){.ticker{font-size:.9rem;row-gap:2px}.ticker span:last-child{flex-basis:100%;text-align:center}.ticker span:last-child b{display:none}}.gallery button:after{content:"";position:absolute;top:4px;right:4px;bottom:4px;left:4px;pointer-events:none;background:radial-gradient(circle at 16% 12%,rgb(255 255 255 / .35),transparent 40%);mix-blend-mode:screen}.cam-date{position:absolute;right:14px;bottom:11px;font:600 .85rem/1 Orbitron,ui-monospace,monospace;letter-spacing:.08em;color:#ffa033;text-shadow:0 0 2px #ff5a00,0 0 8px rgb(255 90 0 / .7);opacity:.92;pointer-events:none}.gallery-head{display:flex;align-items:center;gap:14px;margin-bottom:16px}.gallery-head .shelf-title{margin:0;box-shadow:4px 5px #0000004d}.share{position:relative;flex:none;display:grid;place-items:center;width:46px;height:46px;padding:0;border:3px solid var(--black);border-radius:50%;background:var(--white);color:var(--black);box-shadow:4px 5px #0000004d;cursor:pointer}.share svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}.share:active{transform:translate(2px,2px);box-shadow:2px 2px #0000004d}.share-note{position:absolute;right:0;top:calc(100% + 8px);padding:4px 10px;border-radius:99px;background:var(--black);color:var(--white);font-weight:800;font-size:.8rem;white-space:nowrap}.sheet.accented{background:radial-gradient(ellipse 45% 5% at 85% 30%,rgb(255 255 255 / .7) 60%,transparent 62%),linear-gradient(var(--sky),color-mix(in srgb,var(--accent) 55%,var(--sky-light)))}@media(hover:hover)and (pointer:fine){.poster,.peek,.gallery button{transition:transform .2s ease,box-shadow .2s ease,filter .2s}.shelf li .card:hover .poster{transform:rotate(0) translateY(-6px) scale(1.03);box-shadow:9px 12px #0000004d;filter:none}.shelf li .card:hover .peek{transform:rotate(14deg) translate(10px,-14px)}.poster-button:hover .tilt{transform:rotate(-3.5deg) translateY(-6px)}.gallery li button:hover{transform:rotate(0) scale(1.03)}}@media(prefers-reduced-motion:reduce){.wordmark,.sparkles span,.sheet[open]{animation:none}.ticket-bar,.button{transition:none}}
