:root{--ink:#030304;--white:#f5f2ef;--purple:#a855ff;--red:#ff214f;--line:rgba(255,255,255,.16)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ink);color:var(--white);font-family:Arial,Helvetica,sans-serif;overflow-x:hidden}a{color:inherit;text-decoration:none}.cinema-nav{position:fixed;inset:0 0 auto;z-index:50;height:82px;padding:0 3.5vw;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:linear-gradient(#050506d9,transparent);backdrop-filter:blur(10px);text-transform:uppercase;font-size:10px;letter-spacing:.22em}.cinema-wordmark{font-size:18px;font-weight:900;letter-spacing:.2em}.cinema-wordmark span{color:var(--purple);text-shadow:0 0 16px var(--purple)}.cinema-nav nav{display:flex;gap:34px}.cinema-nav nav a{transition:.2s}.cinema-nav nav a:hover{color:var(--purple);text-shadow:0 0 12px var(--purple)}.signal-button{padding:13px 16px;border:1px solid var(--red);box-shadow:0 0 18px #ff214f30}.portal{height:225vh;position:relative}.portal-sticky{position:sticky;top:0;height:100vh;overflow:hidden;background:#000;perspective:900px}.portal-sticky:after{content:"";position:absolute;inset:0;z-index:10;pointer-events:none;background:radial-gradient(circle at center,transparent 10%,rgba(0,0,0,.18) 48%,rgba(0,0,0,.94) 100%),linear-gradient(180deg,rgba(0,0,0,.4),transparent 30%,rgba(0,0,0,.5));box-shadow:inset 0 0 120px #000}.stage-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:contrast(1.08) brightness(.72) saturate(.82);transform:scale(1.015);will-change:contents}.portal-sticky:before{content:"";position:absolute;inset:0;z-index:2;background:radial-gradient(circle at 28% 58%,rgba(168,85,255,.23),transparent 26%),radial-gradient(circle at 73% 47%,rgba(255,33,79,.19),transparent 22%);mix-blend-mode:screen}.tunnel{position:absolute;inset:0;z-index:4;transform-style:preserve-3d;transform:translateZ(var(--tunnel-z,0px)) scale(var(--tunnel-scale,1));will-change:transform}.tunnel:before,.tunnel:after{content:"";position:absolute;top:-15%;bottom:-15%;width:36%;background:linear-gradient(90deg,#020203,rgba(6,6,8,.94));border-right:2px solid var(--purple);box-shadow:20px 0 50px #a855ff3d;transform-origin:right}.tunnel:before{left:-3%;transform:rotateY(54deg)}.tunnel:after{right:-3%;transform:rotateY(-54deg);border-right:0;border-left:2px solid var(--red);box-shadow:-20px 0 50px #ff214f35;transform-origin:left}.beam{position:absolute;z-index:5;height:2px;width:55vw;top:42%;background:linear-gradient(90deg,transparent,var(--purple),transparent);box-shadow:0 0 18px 3px var(--purple);opacity:.65}.beam-a{left:-12%;transform:rotate(23deg)}.beam-b{right:-12%;transform:rotate(-23deg);background:linear-gradient(90deg,transparent,var(--red),transparent);box-shadow:0 0 18px 3px var(--red)}.beam-c{left:-18%;top:66%;transform:rotate(-16deg)}.beam-d{right:-18%;top:68%;transform:rotate(16deg);background:linear-gradient(90deg,transparent,var(--red),transparent);box-shadow:0 0 18px 3px var(--red)}.door{position:absolute;left:50%;top:50%;width:26vw;height:58vh;transform:translate(-50%,-46%);border:1px solid rgba(255,255,255,.22);box-shadow:0 0 35px #a855ff2e,inset 0 0 70px #000;overflow:hidden}.door:before,.door:after{content:"";position:absolute;top:0;bottom:0;width:50%;background:#050506;transition:none;will-change:transform}.door:before{left:0;transform:translateX(calc(var(--door-open,0) * -110%));border-right:1px solid var(--purple)}.door:after{right:0;transform:translateX(calc(var(--door-open,0) * 110%));border-left:1px solid var(--red)}.door span{position:absolute;inset:0;background:radial-gradient(circle,#fff 0 1%,#a855ff 4%,#ff214f 14%,transparent 58%);opacity:calc(var(--door-open,0) * .85);filter:blur(5px)}#atmosphere{position:absolute;inset:0;width:100%;height:100%;z-index:6;opacity:.75;pointer-events:none}.opening-copy{position:absolute;z-index:12;left:5vw;bottom:8vh;transform:translateY(var(--copy-y,0));opacity:var(--copy-opacity,1);will-change:transform,opacity}.opening-copy>p,.chapter{font-size:10px;letter-spacing:.33em;text-transform:uppercase}.opening-copy>p{color:#c1bdc7}.opening-copy h1{font-size:clamp(76px,13vw,190px);line-height:.76;letter-spacing:-.07em;margin:18px 0 45px}.scroll-cue{display:inline-flex;gap:24px;align-items:center;border-bottom:1px solid var(--purple);padding:0 0 12px;text-transform:uppercase;font-size:9px;letter-spacing:.25em}.scroll-cue b{color:var(--red);font-size:18px}.brand-reveal{position:absolute;z-index:13;left:50%;top:50%;width:min(65vw,720px);text-align:center;transform:translate(-50%,-40%) scale(var(--brand-scale,.76));opacity:var(--brand-opacity,0);filter:blur(var(--brand-blur,12px));will-change:transform,opacity,filter}.brand-reveal img{width:min(56vw,590px);height:auto;filter:drop-shadow(0 0 30px #a855ff6e)}.brand-reveal p{font-size:10px;letter-spacing:.55em;margin-top:25px}.chapter-count{position:absolute;z-index:15;right:3vw;bottom:4vh;font-size:9px;letter-spacing:.25em;color:#8b8790}.chapter-count span{color:var(--red)}.transmission{min-height:100vh;display:grid;grid-template-columns:57% 43%;border-block:1px solid var(--line)}.transmission-photo{min-height:760px;background:linear-gradient(90deg,transparent 45%,#030304),linear-gradient(0deg,#030304,transparent 36%),url('assets/empty-venue.webp') center/cover;filter:grayscale(1) contrast(1.25)}.transmission-copy{padding:14vh 5vw;display:flex;flex-direction:column;justify-content:center;background:radial-gradient(circle at 0 50%,#a855ff2e,transparent 37%)}.chapter{color:#817d87}.live-status{margin-top:20vh;font-size:9px;letter-spacing:.25em;text-transform:uppercase}.live-status i{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:12px;background:var(--red);box-shadow:0 0 18px var(--red)}.transmission h2,.archive h2,.frequency h2{font-size:clamp(64px,8vw,128px);line-height:.82;letter-spacing:-.065em;margin:30px 0}.location{font-size:10px;letter-spacing:.3em;color:#96929b}.transmission-copy>a,.frequency>a{margin-top:45px;padding:20px;border:1px solid var(--purple);font-size:10px;letter-spacing:.22em;text-transform:uppercase;box-shadow:0 0 18px #a855ff2b;display:flex;justify-content:space-between}.transmission-copy>a:after,.frequency>a:after{content:"↗";color:var(--red)}.archive{padding:13vh 5vw}.archive-heading{display:grid;grid-template-columns:30% 1fr;align-items:start}.archive-heading h2{margin-top:0}.archive-heading em{font-style:normal;color:transparent;-webkit-text-stroke:1px var(--purple);filter:drop-shadow(0 0 9px #a855ff90)}.show-card{margin-top:8vh;display:grid;grid-template-columns:55% 45%;min-height:75vh;border:1px solid var(--line);position:relative;overflow:hidden}.show-card:after{content:"";position:absolute;inset:0;border:1px solid transparent;transition:.3s;pointer-events:none}.show-card:hover:after{border-color:var(--purple);box-shadow:inset 0 0 40px #a855ff26}.show-card img{width:100%;height:75vh;object-fit:cover;object-position:center 35%;filter:grayscale(.75) contrast(1.12);transition:.7s}.show-card:hover img{filter:grayscale(.15) contrast(1.1);transform:scale(1.025)}.show-meta{padding:6vw;display:flex;flex-direction:column;justify-content:center;background:radial-gradient(circle at 0 40%,#ff214f1c,transparent 45%)}.show-meta span,.show-meta p{font-size:9px;letter-spacing:.24em;color:#aaa}.show-meta h3{font-size:clamp(58px,8vw,130px);letter-spacing:-.06em;margin:4vh 0 0}.show-meta b{font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--purple);margin-top:12vh}.frequency{min-height:85vh;padding:10vh 5vw;display:flex;align-items:end;justify-content:space-between;background:linear-gradient(90deg,#030304 45%,transparent),url('assets/merch-hoodie-drop.webp') 83% 40%/48% auto no-repeat;border-top:1px solid var(--line)}.frequency h2{margin-bottom:0}.frequency>a{width:340px;margin-bottom:2vh}footer{min-height:90px;padding:0 5vw;display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);font-size:8px;letter-spacing:.24em;color:#8d8991}
@media(max-width:800px){.cinema-nav{height:70px}.cinema-nav nav{display:none}.signal-button{font-size:7px}.portal{height:210vh}.door{width:62vw;height:53vh}.opening-copy{bottom:12vh}.opening-copy h1{font-size:23vw}.brand-reveal{width:88vw}.brand-reveal img{width:84vw}.transmission{grid-template-columns:1fr}.transmission-photo{min-height:62vh}.transmission-copy{min-height:78vh}.live-status{margin-top:16vh}.archive-heading{grid-template-columns:1fr}.archive-heading h2{margin-top:8vh}.show-card{grid-template-columns:1fr}.show-card img{height:64vh}.show-meta{min-height:52vh;padding:9vw}.frequency{min-height:85vh;display:block;padding-top:45vh;background:linear-gradient(0deg,#030304 45%,transparent 78%),url('assets/merch-hoodie-drop.webp') center top/100% auto no-repeat}.frequency>a{width:100%}footer{gap:20px;flex-wrap:wrap}}
/* Three-product merch storefront */
.frequency.merch-store{min-height:auto;padding:12vh 5vw;display:block;background:#0b0b0e;border-top:1px solid var(--line)}
.merch-store-head{display:flex;align-items:end;justify-content:space-between}
.merch-store-head h2{margin-bottom:0}
.product-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;margin-top:70px;background:#34343a;border:1px solid #34343a}
.product{min-width:0;background:#17171b;color:#f5f5f5}
.product.purple{border-top:4px solid var(--purple)}.product.red{border-top:4px solid var(--red)}.product.split{border-top:4px solid transparent;border-image:linear-gradient(90deg,var(--purple),var(--red)) 1}
.product-image{display:block;width:100%;padding:0;border:0;background:#111;overflow:hidden;cursor:pointer;aspect-ratio:1;color:#fff}
.product-image img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .45s ease,filter .45s ease}
.product-image:hover img,.product-image:focus-visible img{transform:scale(1.025);filter:contrast(1.08)}
.product-info{display:flex;justify-content:space-between;align-items:end;gap:14px;padding:20px 18px 16px;border-bottom:1px solid #36363d}
.product-info h3{font-size:14px;letter-spacing:.12em;margin:4px 0 0}.product-info p,.product-config>p{font-size:10px;color:#92929b;text-transform:uppercase;letter-spacing:.1em;margin:0}.product-info>p{text-align:right;white-space:nowrap}
.product-config{padding:16px 18px 20px}.product-config>p{margin-bottom:10px;letter-spacing:.18em}.size-options{display:flex;flex-wrap:wrap;gap:6px}
.size-options button{border:1px solid #505058;background:#111115;color:#d9d9df;min-width:42px;height:36px;padding:0 10px;font:700 11px Arial;cursor:pointer}.size-options button:hover{border-color:#fff;background:#27272d;color:#fff}.purple .size-options button.selected{border-color:var(--purple);background:var(--purple);color:#fff;box-shadow:0 0 14px rgba(168,85,255,.38)}.red .size-options button.selected{border-color:var(--red);background:var(--red);color:#fff;box-shadow:0 0 14px rgba(255,33,79,.32)}.split .size-options button.selected{border-color:var(--purple);background:linear-gradient(90deg,var(--purple),var(--red));color:#fff}
.buy-button{margin-top:14px;width:100%;min-height:46px;padding:12px 14px;border:1px solid #4a4a52;background:#242429;color:#fff;display:flex;justify-content:space-between;align-items:center;font:700 10px Arial;letter-spacing:.17em;cursor:pointer}.buy-button:hover{background:#303036}.buy-button.ready{border-color:var(--purple);box-shadow:0 0 14px rgba(168,85,255,.24)}
.product-image:focus-visible,.size-options button:focus-visible,.buy-button:focus-visible{outline:3px solid var(--purple);outline-offset:-3px}.shop-status{min-height:22px;margin:20px 0 0;font-size:12px;letter-spacing:.08em;text-align:right;color:#92929b}
@media(max-width:800px){.product-grid{grid-template-columns:1fr}.product-image{aspect-ratio:1.05}.shop-status{text-align:left}}

/* Contact and social channel */
.contact-channel{padding:12vh 5vw 9vh;border-top:1px solid var(--line);background:radial-gradient(circle at 75% 25%,rgba(168,85,255,.15),transparent 32%),#030304}
.contact-kicker{margin:10vh 0 12px;color:var(--red);font-size:10px;letter-spacing:.34em}
.instagram-link{display:flex;align-items:center;justify-content:space-between;padding:0 0 28px;border-bottom:1px solid var(--purple);font-size:clamp(48px,9vw,145px);font-weight:900;letter-spacing:-.065em;transition:.25s}
.instagram-link b{color:var(--purple);font-size:.52em}.instagram-link:hover{color:var(--purple);text-shadow:0 0 30px rgba(168,85,255,.35)}
.contact-people{display:grid;grid-template-columns:1fr 1fr;gap:5vw;margin-top:65px}
.contact-people a{padding:8px 20px;border-left:2px solid var(--red);font-size:13px;letter-spacing:.1em}
.contact-people small{display:block;margin-bottom:12px;color:#888;font-size:8px;letter-spacing:.22em}
@media(max-width:800px){.instagram-link{font-size:12vw}.contact-people{grid-template-columns:1fr;gap:34px}.contact-people a{font-size:11px;overflow-wrap:anywhere}}

/* Scroll-synced narrative typography */
.journey-type{position:absolute;inset:0;z-index:13;pointer-events:none;text-transform:uppercase}
.bass-line{position:absolute;left:50%;top:50%;margin:0;transform:translate(-50%,calc(-50% + var(--bass-shift,55px)));opacity:var(--bass-opacity,0);font-weight:900;font-size:clamp(72px,13vw,190px);line-height:.72;letter-spacing:-.075em;white-space:nowrap;text-align:center;text-shadow:0 0 30px rgba(168,85,255,.35)}
.bass-line span{color:transparent;-webkit-text-stroke:1.5px var(--purple);filter:drop-shadow(0 0 9px rgba(168,85,255,.8))}
.arrival-line{position:absolute;left:5vw;right:5vw;bottom:7vh;opacity:var(--arrival-opacity,0);transform:scale(var(--arrival-scale,.92));transform-origin:left bottom}
.arrival-line small{display:block;margin-bottom:18px;color:var(--red);font-size:9px;letter-spacing:.4em}
.arrival-line p{margin:0;font-weight:900;font-size:clamp(70px,12vw,170px);line-height:.73;letter-spacing:-.07em;text-shadow:0 0 34px rgba(0,0,0,.8)}
.arrival-line p span{color:transparent;-webkit-text-stroke:1.5px #fff}
@media(max-width:800px){.bass-line{font-size:18vw}.arrival-line{bottom:11vh}.arrival-line p{font-size:18vw;line-height:.78}.arrival-line small{letter-spacing:.25em}}
/* A longer runway keeps the 15-second film smooth on wheels and trackpads. */
.portal{height:650vh}
@media(max-width:800px){.portal{height:560vh}}
@media(prefers-reduced-motion:reduce){.portal{height:100vh}.portal-sticky{position:relative}.tunnel{display:none}.opening-copy{opacity:1}.journey-type{display:none}.stage-video{transform:none}.show-card img{transition:none}}
