/* Poster-led event feature. Keep the poster intact and the practical details readable. */ .event-feature{display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1fr);gap:clamp(30px,6vw,100px);align-items:center;padding:38px 0 20px}
.event-feature[hidden]{display:none}
.event-poster{display:block;max-width:480px;position:relative}
.event-poster img{display:block;width:100%;height:auto;aspect-ratio:2550/3300;object-fit:contain;background:#181411}
.event-poster>span{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 0;min-height:44px;color:var(--muted);font:800 15px var(--dot)}
.event-poster:hover>span{color:var(--accent)}


.event-feature h3{margin:0 0 26px;overflow-wrap:anywhere}
.event-feature-date{display:grid;gap:9px;font-size:18px;line-height:1.5;margin:0 0 32px}
.event-feature-date>span{font-size:16px}
.event-feature-venue{padding:25px 0;border-block:1px solid var(--line)}
.event-feature-venue :is(h2,h4){letter-spacing:-.025em;margin:0 0 12px}
.event-feature-venue address{font-style:normal;font-size:15px;line-height:1.8;color:var(--muted)}
.event-feature-note{font:850 18px var(--dot);margin:28px 0 18px}
.event-genres{list-style:none;display:flex;flex-wrap:wrap;gap:8px 0;margin:0;padding:0;max-width:370px;color:var(--muted);font-size:14px;line-height:1.6}
.event-genres li:not(:last-child)::after{content:'/';padding:0 12px;color:#656560}
.event-feature-signoff{margin:40px 0 0;font:850 16px var(--dot);color:var(--muted)}
.event-feature-signoff span{color:var(--accent)}
@media(max-width:750px){.event-feature{grid-template-columns:minmax(0,1fr);gap:28px;padding-top:28px}.event-poster{width:100%;max-width:480px;margin-inline:auto}.event-feature-copy{grid-row:1;padding-bottom:12px}.event-poster{grid-row:2}.event-feature-date{font-size:18px}.event-feature-signoff{margin-top:30px}}
/* Flyer-specific color tokens are generated into external CSS at build time. */ [data-event-theme]{--event-accent:#8bd3cd;--event-highlight:var(--c-cream);--event-muted:#bcb7ae}
.event-feature-note,.event-feature-signoff span,.event-enter{color:var(--event-accent)}
.event-feature h3{font-family:var(--dot);font-weight:900;font-size:clamp(34px,4.5vw,62px);letter-spacing:-.065em;color:var(--event-highlight);line-height:1.13}
.event-feature h3 a:hover{color:var(--event-accent)}
.event-feature-date{color:var(--event-highlight)}
.event-feature-date>span{font:900 24px var(--dot);color:var(--event-accent)}
.event-feature-date small{font:800 16px var(--dot);white-space:nowrap}
.event-feature-venue :is(h2,h4){color:var(--event-highlight);font-family:var(--dot);font-weight:900;font-size:25px}
.event-feature-venue address,.event-genres{color:var(--event-muted)}
.event-enter{display:inline-flex;align-items:center;gap:30px;min-height:48px;margin-top:24px;font:850 18px var(--dot);border-bottom:1px solid color-mix(in srgb,var(--event-accent) 40%,transparent)}
.event-enter:hover .ui-arrow{transform:translateX(4px)}
.event-enter .ui-arrow{transition:transform 180ms ease-out}
.poster-stage{position:relative;padding:24px 15px 34px;perspective:1000px;isolation:isolate}
.poster-stage::before{content:'';position:absolute;inset:12% 2% 2%;background:radial-gradient(ellipse,color-mix(in srgb,var(--event-accent) 17%,transparent),transparent 70%);z-index:-1}
.poster-object{overflow:hidden;position:relative;transform:perspective(1000px) rotateX(2deg) rotateY(-5deg) rotateZ(-1deg);transform-style:preserve-3d;box-shadow:4px 3px 0 #40372f,7px 6px 0 #211b17,16px 22px 32px #0009;border:1px solid #c8b59433}
.poster-object img{width:100%;display:block;position:relative}
.poster-sheen{position:absolute;inset:0;pointer-events:none;overflow:hidden;background:linear-gradient(112deg,transparent 24%,#fff7e708 40%,#fff7e725 46%,#fff7e706 54%,transparent 62%);mix-blend-mode:screen;transform:translateX(-8%) rotate(-18deg)}
.poster-coordinate{position:absolute;bottom:5px;left:18px;font:800 var(--fs-xs) var(--dot);color:var(--event-muted);letter-spacing:.06em}
.event-poster .poster-caption{font-size:16px;color:var(--event-accent)}
.event-detail{background:#100e0b;color:var(--c-cream)}
.event-page-header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px var(--pad);border-bottom:1px solid #ffc14b22;min-height:86px}
.event-return{font:850 17px var(--dot);color:var(--event-accent);min-height:44px;display:flex;align-items:center}
.event-return::before{content:'←';font-family:Arial,sans-serif;margin-right:12px}
.event-wordmark{font:900 27px var(--dot);color:var(--event-highlight)}
.event-page-header .motion-toggle{font:800 14px var(--dot);color:var(--event-muted);min-height:44px}
.event-page-header .motion-toggle span{font-size:var(--fs-sm)}
.event-page-main{padding:65px var(--pad) 90px;max-width:1440px;margin:auto}
.event-file-label,.event-index-label{font:850 14px var(--dot);letter-spacing:.06em;color:var(--event-accent)}
.event-file-label span{padding-inline:12px;color:var(--event-muted)}
.event-page-intro h1{font:900 clamp(44px,8.4vw,112px)/1.1 var(--dot);letter-spacing:-.075em;color:var(--event-highlight);margin:22px 0}
.event-subtitle{font:850 17px var(--dot);color:var(--event-accent);display:flex;flex-wrap:wrap;gap:16px;margin:0 0 35px}
.event-subtitle>span:last-child{color:var(--event-muted);font-size:13px;align-self:center}
.event-detail-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.85fr);gap:clamp(30px,7vw,110px);align-items:center;border-top:1px solid #ffc14b22;padding-top:35px}
.event-detail-grid .event-poster{width:100%;max-width:560px}
.event-detail-grid .event-feature-copy{padding:25px 0}
.event-index-label{margin-bottom:30px}
.event-detail .event-feature-date{font-size:22px}
.event-detail .event-feature-date>span{font-size:32px}
.event-detail .event-feature-venue :is(h2,h4){font-size:32px}
.event-detail .event-feature-note{font-size:23px}
.event-detail .event-genres{font-size:16px}
.event-detail .event-feature-signoff{font-size:20px}
/* A separate transition snapshot keeps the code curtain moving above both pages. */ .signal-curtain{position:fixed;inset:0;z-index:9999;pointer-events:none;visibility:hidden;overflow:hidden;view-transition-name:event-signal;color:var(--event-accent,#ff9b32);background:#100e0bf5}
.cipher-stream{position:absolute;inset:-30% -3%;display:grid;grid-template-columns:repeat(16,1fr);gap:1vw;overflow:hidden;mask-image:linear-gradient(180deg,transparent,#000 18%,#000 82%,transparent)}
.cipher-stream>span{font:900 clamp(16px,2.2vw,34px)/1.18 var(--dot);text-align:center;color:currentColor;opacity:.72;text-shadow:0 -1px 8px currentColor}
.cipher-stream>span:nth-child(3n){transform:translateY(-9%);opacity:1;color:var(--event-highlight,#d0fff5)}
.cipher-stream>span:nth-child(3n+1){transform:translateY(7%);opacity:.45}
.cipher-stream>span:nth-child(4n){transform:translateY(-18%)}
.signal-status{position:absolute;left:6%;right:6%;top:45%;display:flex;justify-content:space-between;gap:12px;padding:20px 0;background:#100e0bcc;border-block:1px solid currentColor;font:900 clamp(13px,2vw,25px) var(--dot);letter-spacing:.05em}
.signal-status b{color:var(--event-highlight,#d0fff5)}
.signal-curtain::after{content:'';position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 6px,#0006 6px 8px);border-block:2px solid currentColor;opacity:.38}
@view-transition{navigation:auto}
::view-transition-group(root){animation-duration:420ms}
::view-transition-old(root){animation:event-cut-out 300ms steps(4,end) both;mix-blend-mode:normal}
::view-transition-new(root){animation:event-cut-in 420ms steps(4,end) both;mix-blend-mode:normal}
::view-transition-group(event-signal){z-index:10;animation-duration:420ms}
::view-transition-new(event-signal){animation:signal-release 420ms steps(4,end) both;mix-blend-mode:normal}
@keyframes event-cut-out{0%{opacity:1;transform:none}22%{transform:translateX(-28px) skewX(-.6deg);clip-path:polygon(0 0,100% 0,100% 19%,0 19%,0 25%,100% 25%,100% 57%,0 57%,0 65%,100% 65%,100% 91%,0 91%)}48%{opacity:.8;transform:translateX(18px);clip-path:polygon(0 12%,100% 12%,100% 39%,0 39%,0 46%,100% 46%,100% 76%,0 76%,0 84%,100% 84%,100% 100%,0 100%)}100%{opacity:0;transform:translateX(-12px)}}
@keyframes event-cut-in{0%{opacity:.4;transform:translateX(26px)}24%{opacity:1;transform:translateX(-16px);clip-path:polygon(0 0,100% 0,100% 32%,0 32%,0 39%,100% 39%,100% 69%,0 69%,0 74%,100% 74%,100% 100%,0 100%)}52%{transform:translateX(7px);clip-path:inset(0)}78%{transform:translateX(-2px)}100%{opacity:1;transform:none;clip-path:inset(0)}}
[data-event-reveal] .signal-curtain{visibility:visible}
@keyframes signal-release{0%{opacity:1;transform:translateY(-35px);clip-path:inset(0)}25%{opacity:.95;transform:translate(-22px,18px);clip-path:polygon(0 8%,100% 8%,100% 28%,0 28%,0 43%,100% 43%,100% 69%,0 69%,0 81%,100% 81%,100% 95%,0 95%)}55%{opacity:.75;transform:translate(15px,42px);clip-path:polygon(0 17%,100% 17%,100% 23%,0 23%,0 61%,100% 61%,100% 75%,0 75%)}80%{opacity:.25;transform:translateX(-5px);clip-path:inset(44% 0 47%)}100%{opacity:0;transform:none;clip-path:inset(100% 0 0)}}
@media(max-width:750px){.event-detail-grid{grid-template-columns:1fr;gap:18px}.event-detail-grid .event-feature-copy{grid-row:1}.event-detail-grid .event-poster{grid-row:2;margin-inline:auto}.event-page-main{padding-top:35px}.event-page-header{gap:12px;flex-wrap:wrap;padding-block:14px}.event-wordmark{font-size:23px}.event-page-header .motion-toggle{font-size:var(--fs-sm)}.event-subtitle{font-size:16px}.event-page-intro h1{font-size:clamp(38px,10vw,68px)}.event-feature h3{font-size:clamp(34px,9vw,52px)}.poster-stage{padding-inline:10px}.event-detail .event-feature-date{font-size:18px}}
@media(prefers-reduced-motion:reduce){@view-transition{navigation:none}::view-transition-group(root),::view-transition-old(root),::view-transition-new(root),::view-transition-group(event-signal),::view-transition-new(event-signal){animation:none!important}.poster-object{transform:none!important}.signal-curtain{display:none!important}}
[data-motion-paused] .poster-object{transform:none!important}[data-motion-paused] .signal-curtain{display:none!important}
.event-page-header,.event-page-main{padding-left:max(var(--pad),env(safe-area-inset-left));padding-right:max(var(--pad),env(safe-area-inset-right))}

/* The listing is a concise signpost; the detail page owns the full flyer and facts. */
.events-section{padding-top:44px;padding-bottom:80px;min-height:0!important}
.events-section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:20px}.events-section-heading h2{font:900 clamp(30px,5vw,48px)/1.1 var(--dot);letter-spacing:-.04em;margin:0}.events-section-heading .section-index{margin-bottom:12px}.events-count{font:700 11px var(--mono);color:var(--muted);margin:0 0 4px;white-space:nowrap}.event-list{display:grid;gap:20px}
.events-toolbar:empty{display:none}
.event-compact{display:block;padding:0;border-bottom:1px solid var(--line)}
.event-summary{display:grid;grid-template-columns:clamp(90px,28vw,145px) minmax(0,1fr) 16px;align-items:center;gap:14px;padding:20px 0;min-height:44px}
.event-banner{overflow:hidden;border-radius:3px;background:#17130e;box-shadow:0 8px 20px #0005}
.event-banner picture{display:block}
.event-banner img{display:block;width:100%;height:auto;aspect-ratio:2550/3300;object-fit:contain;transition:filter 200ms ease}
.event-summary-copy time{font:700 12px var(--mono);color:var(--event-muted);line-height:1.6}
.event-compact h3{font-size:clamp(22px,4vw,36px);margin:10px 0;letter-spacing:-.035em}
.event-summary-copy p{margin:0;color:var(--event-muted);font-size:14px}
.event-summary>.ui-arrow{width:16px;height:16px;color:var(--event-accent)}
.event-summary:hover .event-banner img{filter:brightness(1.08)}
.event-summary:focus-visible{outline:2px solid var(--event-highlight);outline-offset:5px}
@media(min-width:751px){.event-summary{grid-template-columns:170px minmax(0,1fr) 24px;gap:32px}.event-summary>.ui-arrow{width:24px;height:24px}}
@media(prefers-reduced-motion:reduce){.event-banner img{transition:none}.event-summary:hover .event-banner img{filter:none}}
html[data-motion-paused] .event-banner img{transition:none;transform:none}

/* A local share sleeve: full flyer remains the hero, QR has an untouched quiet zone. */
.event-share{margin-top:20px;border-top:1px solid var(--line)}
.event-share summary{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:52px;cursor:pointer;list-style:none;font:800 17px/1.5 var(--dot);color:var(--event-accent)}
.event-share summary::-webkit-details-marker{display:none}.event-share summary .ui-arrow{width:20px;height:20px;transition:transform 180ms ease}
.event-share[open] summary .ui-arrow{transform:rotate(90deg)}
.share-panel{padding:16px 0 8px}.share-art{display:grid;grid-template-columns:1fr 1.3fr;align-items:center;gap:22px;padding:24px;background:linear-gradient(135deg,#292018,#151310);border:1px solid color-mix(in srgb,var(--event-accent) 22%,var(--line))}
.event-poster .share-flyer{width:100%;height:auto;aspect-ratio:2550/3300;transform:rotate(-5deg);box-shadow:0 10px 22px #0008}
.share-qr{display:grid;gap:10px;justify-items:center;font:750 12px/1.5 var(--dot);color:var(--event-highlight)}
.event-poster .share-qr img{width:100%;max-width:192px;height:auto;aspect-ratio:1;background:#fffaf1;transform:none}
.share-file{font-size:11px;letter-spacing:.06em;color:var(--event-accent)}
.share-options{display:flex;flex-wrap:wrap;gap:4px 22px;margin-top:16px}.share-options :is(a,button){display:inline-flex;align-items:center;min-height:44px;padding:0;font:800 15px/1.5 var(--dot);color:var(--event-highlight)}
.share-options :is(a,button):hover{color:var(--event-accent)}
.share-link-label{display:grid;gap:8px;margin-top:10px;color:var(--event-muted);font:750 12px/1.5 var(--dot)}
.share-link-label input{width:100%;min-width:0;min-height:44px;padding:10px;border:1px solid var(--line);background:var(--c-ink);color:var(--c-cream);font:12px/1.5 var(--mono);border-radius:0}
.share-feedback{min-height:24px;margin:12px 0 0;font:750 13px/1.5 var(--dot);color:var(--event-accent)}
@media(max-width:400px){.share-art{gap:14px;padding:16px}.share-file{font-size:10px}}
@media(prefers-reduced-motion:reduce){.event-share summary .ui-arrow{transition:none}}