/* Story sections: countdown board and festival poster.
   Loaded after styles.css. ID-scoped selectors (#countdown, #festival) deliberately out-rank the
   older generic rules and their media-query copies in styles.css. */

:root{
  --story-torn-top:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 260 16' preserveAspectRatio='none'%3E%3Cpath d='M0 16V4.6L12 7.1L25 3.4L37 3.7L49 4.3L62 1.5L70 2.3L77 7.7L90 5.4L102 6.7L109 10.4L115 2.3L127 3.9L136 8.7L143 6.4L149 1.8L162 6.8L167 2.5L178 2.5L190 4.3L197 2.1L202 1.7L215 8L221 3.5L226 10.3L231 2L239 5.1L247 8.2L252 5.5L260 4.6V16Z'/%3E%3C/svg%3E");
  --story-torn-bottom:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 260 16' preserveAspectRatio='none'%3E%3Cpath d='M0 0V11.4L12 8.9L25 12.6L37 12.3L49 11.7L62 14.5L70 13.7L77 8.3L90 10.6L102 9.3L109 5.6L115 13.7L127 12.1L136 7.3L143 9.6L149 14.2L162 9.2L167 13.5L178 13.5L190 11.7L197 13.9L202 14.3L215 8L221 12.5L226 5.7L231 14L239 10.9L247 7.8L252 10.5L260 11.4V0Z'/%3E%3C/svg%3E");
  --story-burn-noise:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='520' height='90'%3E%3Cfilter id='n' x='0' y='0' width='100%25' height='100%25'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.014 .08' numOctaves='3' seed='4' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 0 0 0 -1.1'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  --story-char-top:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 330 30' preserveAspectRatio='none'%3E%3Cfilter id='b'%3E%3CfeGaussianBlur stdDeviation='.5'/%3E%3C/filter%3E%3Cpath filter='url(%23b)' fill='%23170904' d='M0 0L0 21.2 6 21.9 10 23.0 17 19.3 21 17.6 28 18.3 35 20.7 42 19.0 48 21.1 51 17.8 56 20.3 60 21.1 67 18.1 70 19.4 74 15.9 77 14.8 81 10.9 86 9.8 90 10.3 95 13.3 101 11.0 104 12.6 110 13.2 114 14.2 117 13.4 124 16.5 128 17.8 133 18.2 137 15.0 141 16.2 146 16.3 150 17.3 153 15.4 157 19.0 163 16.5 169 17.3 174 19.4 178 22.2 182 22.3 185 25.3 188 24.6 192 23.6 196 22.3 200 20.4 204 19.0 208 18.6 212 20.0 216 20.3 222 15.6 229 12.5 236 15.3 240 15.0 244 15.8 251 15.7 255 16.0 260 15.4 264 13.6 267 13.5 271 12.5 276 15.1 280 11.6 284 11.8 288 11.9 291 9.4 295 12.0 299 14.5 305 16.8 311 19.4 314 17.6 320 19.2 327 19.7 330 21.2L330 0Z'/%3E%3C/svg%3E");
  --story-char-bottom:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 330 30' preserveAspectRatio='none'%3E%3Cfilter id='b'%3E%3CfeGaussianBlur stdDeviation='.5'/%3E%3C/filter%3E%3Cpath filter='url(%23b)' fill='%23170904' d='M0 30L0 8.8 6 8.1 10 7.0 17 10.7 21 12.4 28 11.7 35 9.3 42 11.0 48 8.9 51 12.2 56 9.7 60 8.9 67 11.9 70 10.6 74 14.1 77 15.2 81 19.1 86 20.2 90 19.7 95 16.7 101 19.0 104 17.4 110 16.8 114 15.8 117 16.6 124 13.5 128 12.2 133 11.8 137 15.0 141 13.8 146 13.7 150 12.7 153 14.6 157 11.0 163 13.5 169 12.7 174 10.6 178 7.8 182 7.7 185 4.7 188 5.4 192 6.4 196 7.7 200 9.6 204 11.0 208 11.4 212 10.0 216 9.7 222 14.4 229 17.5 236 14.7 240 15.0 244 14.2 251 14.3 255 14.0 260 14.6 264 16.4 267 16.5 271 17.5 276 14.9 280 18.4 284 18.2 288 18.1 291 20.6 295 18.0 299 15.5 305 13.2 311 10.6 314 12.4 320 10.8 327 10.3 330 8.8L330 30Z'/%3E%3C/svg%3E");
  --story-glow-top:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 330 30' preserveAspectRatio='none'%3E%3Cfilter id='g' x='-10%' y='-50%' width='120%' height='200%'%3E%3CfeGaussianBlur stdDeviation='1.6'/%3E%3C/filter%3E%3Cg fill='none' stroke-linecap='round' stroke-dasharray='22 31 7 44 36 19 12 58 26 75'%3E%3Cpath filter='url(%23g)' stroke='%23ff6a1f' stroke-width='3.2' d='M0 21.2 6 21.9 10 23.0 17 19.3 21 17.6 28 18.3 35 20.7 42 19.0 48 21.1 51 17.8 56 20.3 60 21.1 67 18.1 70 19.4 74 15.9 77 14.8 81 10.9 86 9.8 90 10.3 95 13.3 101 11.0 104 12.6 110 13.2 114 14.2 117 13.4 124 16.5 128 17.8 133 18.2 137 15.0 141 16.2 146 16.3 150 17.3 153 15.4 157 19.0 163 16.5 169 17.3 174 19.4 178 22.2 182 22.3 185 25.3 188 24.6 192 23.6 196 22.3 200 20.4 204 19.0 208 18.6 212 20.0 216 20.3 222 15.6 229 12.5 236 15.3 240 15.0 244 15.8 251 15.7 255 16.0 260 15.4 264 13.6 267 13.5 271 12.5 276 15.1 280 11.6 284 11.8 288 11.9 291 9.4 295 12.0 299 14.5 305 16.8 311 19.4 314 17.6 320 19.2 327 19.7 330 21.2'/%3E%3Cpath stroke='%23ffc56b' stroke-width='.9' d='M0 21.2 6 21.9 10 23.0 17 19.3 21 17.6 28 18.3 35 20.7 42 19.0 48 21.1 51 17.8 56 20.3 60 21.1 67 18.1 70 19.4 74 15.9 77 14.8 81 10.9 86 9.8 90 10.3 95 13.3 101 11.0 104 12.6 110 13.2 114 14.2 117 13.4 124 16.5 128 17.8 133 18.2 137 15.0 141 16.2 146 16.3 150 17.3 153 15.4 157 19.0 163 16.5 169 17.3 174 19.4 178 22.2 182 22.3 185 25.3 188 24.6 192 23.6 196 22.3 200 20.4 204 19.0 208 18.6 212 20.0 216 20.3 222 15.6 229 12.5 236 15.3 240 15.0 244 15.8 251 15.7 255 16.0 260 15.4 264 13.6 267 13.5 271 12.5 276 15.1 280 11.6 284 11.8 288 11.9 291 9.4 295 12.0 299 14.5 305 16.8 311 19.4 314 17.6 320 19.2 327 19.7 330 21.2'/%3E%3C/g%3E%3C/svg%3E");
  --story-glow-bottom:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 330 30' preserveAspectRatio='none'%3E%3Cfilter id='g' x='-10%' y='-50%' width='120%' height='200%'%3E%3CfeGaussianBlur stdDeviation='1.6'/%3E%3C/filter%3E%3Cg fill='none' stroke-linecap='round' stroke-dasharray='22 31 7 44 36 19 12 58 26 75'%3E%3Cpath filter='url(%23g)' stroke='%23ff6a1f' stroke-width='3.2' d='M0 8.8 6 8.1 10 7.0 17 10.7 21 12.4 28 11.7 35 9.3 42 11.0 48 8.9 51 12.2 56 9.7 60 8.9 67 11.9 70 10.6 74 14.1 77 15.2 81 19.1 86 20.2 90 19.7 95 16.7 101 19.0 104 17.4 110 16.8 114 15.8 117 16.6 124 13.5 128 12.2 133 11.8 137 15.0 141 13.8 146 13.7 150 12.7 153 14.6 157 11.0 163 13.5 169 12.7 174 10.6 178 7.8 182 7.7 185 4.7 188 5.4 192 6.4 196 7.7 200 9.6 204 11.0 208 11.4 212 10.0 216 9.7 222 14.4 229 17.5 236 14.7 240 15.0 244 14.2 251 14.3 255 14.0 260 14.6 264 16.4 267 16.5 271 17.5 276 14.9 280 18.4 284 18.2 288 18.1 291 20.6 295 18.0 299 15.5 305 13.2 311 10.6 314 12.4 320 10.8 327 10.3 330 8.8'/%3E%3Cpath stroke='%23ffc56b' stroke-width='.9' d='M0 8.8 6 8.1 10 7.0 17 10.7 21 12.4 28 11.7 35 9.3 42 11.0 48 8.9 51 12.2 56 9.7 60 8.9 67 11.9 70 10.6 74 14.1 77 15.2 81 19.1 86 20.2 90 19.7 95 16.7 101 19.0 104 17.4 110 16.8 114 15.8 117 16.6 124 13.5 128 12.2 133 11.8 137 15.0 141 13.8 146 13.7 150 12.7 153 14.6 157 11.0 163 13.5 169 12.7 174 10.6 178 7.8 182 7.7 185 4.7 188 5.4 192 6.4 196 7.7 200 9.6 204 11.0 208 11.4 212 10.0 216 9.7 222 14.4 229 17.5 236 14.7 240 15.0 244 14.2 251 14.3 255 14.0 260 14.6 264 16.4 267 16.5 271 17.5 276 14.9 280 18.4 284 18.2 288 18.1 291 20.6 295 18.0 299 15.5 305 13.2 311 10.6 314 12.4 320 10.8 327 10.3 330 8.8'/%3E%3C/g%3E%3C/svg%3E");
  --story-grain:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23171716' filter='url(%23g)' d='M0 0h180v180H0z'/%3E%3C/svg%3E");
}

/* ============================================================
   1. Countdown strip: a split-flap board on a torn red band
   ============================================================ */
.countdown-strip{
  --flap:clamp(4.4rem,8.4vw,8.6rem);
  position:relative;z-index:1;isolation:isolate;overflow:clip;
  display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;
  gap:clamp(24px,4vw,72px);
  padding:clamp(52px,5.6vw,82px) 6%;
  background:var(--red);color:var(--paper);
  box-shadow:inset 0 24px 22px -16px #2a0905,inset 0 -24px 22px -16px #2a0905;
  -webkit-mask:var(--story-torn-top) 0 0/260px 16px repeat-x,linear-gradient(#000 0 0) 0 15px/100% calc(100% - 30px) no-repeat,var(--story-torn-bottom) 0 100%/260px 16px repeat-x;
  mask:var(--story-torn-top) 0 0/260px 16px repeat-x,linear-gradient(#000 0 0) 0 15px/100% calc(100% - 30px) no-repeat,var(--story-torn-bottom) 0 100%/260px 16px repeat-x;
}
/* risograph halftone at the edges + a dark pool behind the board */
.countdown-strip::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(circle,#1a0a0640 0 1.1px,transparent 1.7px) 0 0/6px 6px;-webkit-mask:linear-gradient(90deg,#000,transparent 34%,transparent 66%,#000);mask:linear-gradient(90deg,#000,transparent 34%,transparent 66%,#000)}
.countdown-strip::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse 34% 95% at 50% 52%,#4d120dcc,#65181300 72%),var(--story-grain) 0 0/180px;opacity:.9;mix-blend-mode:multiply}

.countdown-meta{display:grid;gap:12px;justify-items:start;min-width:0}
.countdown-strip .countdown-meta .eyebrow{margin:0;font-size:.75rem;letter-spacing:.18em;color:var(--paper);opacity:.86}
.countdown-sub{font-family:var(--serif);font-size:clamp(1.35rem,2.1vw,2.1rem);line-height:1.02;text-transform:uppercase;letter-spacing:.01em;color:var(--paper)}

#countdown{display:flex;justify-content:center;align-items:center;flex-wrap:nowrap;gap:clamp(14px,2vw,30px);min-width:0}
#countdown p{display:flex;align-items:center;gap:clamp(12px,1.4vw,22px);margin:0}
#countdown strong{display:block;font-family:var(--serif);font-size:var(--flap);font-weight:400;line-height:1;letter-spacing:0;color:var(--paper)}
#countdown p>span{display:block;width:min-content;font-family:var(--serif);font-size:calc(var(--flap)*.255);font-weight:400;line-height:.98;letter-spacing:.03em;text-transform:uppercase;color:var(--paper)}
#countdown .countdown-message{display:block;font-family:var(--serif);font-size:clamp(1.8rem,4vw,3.4rem);font-weight:400;line-height:1;text-transform:uppercase;text-align:center;color:var(--paper)}
/* Without JS the number is still a single printed tile with a seam */
#countdown strong:not(.is-flapped){padding:.06em .1em .02em;border-radius:.05em;background:linear-gradient(180deg,#2b1e16 0 49.4%,#070403 49.4% 50.8%,#1a110c 50.8%);box-shadow:0 .045em 0 #3a0e09,0 .16em .22em -.08em #000c}

/* the board (built by js/story.mjs; aria-hidden, the real value sits beside it in .sr-only) */
#countdown .flap-board{position:relative;display:inline-flex;gap:.06em;font-size:inherit;letter-spacing:0;opacity:1;translate:none;transition:none}
#countdown .flap-glow{position:absolute;inset:-35% -25%;z-index:-1;border-radius:50%;background:radial-gradient(closest-side,#ff6a1fd9,#ff6a1f40 55%,#ff6a1f00);opacity:0;pointer-events:none}
#countdown .flap{position:relative;display:block;width:.68em;height:1.04em;perspective:3.4em;font-style:normal;border-radius:.06em;background:#120c09;box-shadow:0 .045em 0 #3a0e09,0 .16em .22em -.08em #000c,inset 0 0 0 1px #ffffff0a}
#countdown .flap i{font-style:normal}
#countdown .flap-half,#countdown .flap-face{position:absolute;left:0;right:0;overflow:hidden}
#countdown .flap-top{top:0;height:50%;border-radius:.06em .06em 0 0;background:linear-gradient(180deg,#2d1f17,#22170f)}
#countdown .flap-bottom{bottom:0;height:50%;border-radius:0 0 .06em .06em;background:linear-gradient(180deg,#1b120d,#120c09)}
#countdown .flap-leaf{position:absolute;left:0;right:0;top:0;height:50%;z-index:2;transform-origin:50% 100%;transform-style:preserve-3d;will-change:transform}
#countdown .flap-face{inset:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}
#countdown .flap-front{border-radius:.06em .06em 0 0;background:linear-gradient(180deg,#2d1f17,#22170f)}
#countdown .flap-back{border-radius:0 0 .06em .06em;background:linear-gradient(180deg,#1b120d,#120c09);transform:rotateX(180deg)}
#countdown .flap b{position:absolute;left:0;right:0;top:0;height:200%;display:flex;align-items:center;justify-content:center;font-weight:400;line-height:1;padding-top:.035em;color:var(--paper);text-shadow:0 .015em 0 #0008}
#countdown .flap-bottom b,#countdown .flap-back b{top:-100%}
#countdown .flap-shade{position:absolute;inset:0;background:#050302;opacity:0;pointer-events:none}
/* seam + hinge pins */
#countdown .flap::after{content:"";position:absolute;left:0;right:0;top:50%;z-index:3;height:max(2px,.018em);transform:translateY(-50%);background:#070403;box-shadow:0 1px 0 #ffffff14}
#countdown .flap::before{content:"";position:absolute;z-index:4;top:50%;left:-.03em;right:-.03em;height:.1em;transform:translateY(-50%);pointer-events:none;background:radial-gradient(circle at .03em 50%,#5a4030 0 .022em,#0a0605 .026em .036em,transparent .042em),radial-gradient(circle at calc(100% - .03em) 50%,#5a4030 0 .022em,#0a0605 .026em .036em,transparent .042em)}

/* right side: date code + VU ladder */
.countdown-side{display:grid;justify-items:end;gap:18px;min-width:0}
.countdown-strip .countdown-date{display:block;font-family:var(--serif);font-size:clamp(1.5rem,2.5vw,2.5rem);line-height:1;letter-spacing:.06em;color:var(--paper);white-space:nowrap}
.countdown-vu{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto auto;column-gap:10px;row-gap:6px;align-items:center;width:min(100%,250px)}
.vu-cap{grid-row:1/3;padding:4px 6px 3px;border:1px solid #ead7b166;font-size:.6rem;line-height:1;letter-spacing:.16em;color:var(--paper)}
.vu-meter{position:relative;display:block;height:14px;background:repeating-linear-gradient(90deg,#2a0b07 0 8px,transparent 8px 11px)}
.vu-lit{position:absolute;inset:0;background:linear-gradient(90deg,var(--paper) 0 58%,var(--yellow) 58% 80%,var(--ember) 80%);-webkit-mask:repeating-linear-gradient(90deg,#000 0 8px,transparent 8px 11px);mask:repeating-linear-gradient(90deg,#000 0 8px,transparent 8px 11px);clip-path:inset(0 40% 0 0)}
.vu-peak{position:absolute;top:-3px;bottom:-3px;left:calc(64% - 4px);width:8px;background:#fff2c9;box-shadow:0 0 10px var(--ember),0 0 2px #fff}
.vu-ticks{display:flex;justify-content:space-between;font-size:.56rem;line-height:1;letter-spacing:.04em;color:#ead7b1b8}
.vu-ticks i{font-style:normal}

/* time mode (only if a start time is ever confirmed): four smaller groups */
#countdown:has(p+p){--flap:clamp(2.6rem,5.4vw,5rem);flex-wrap:wrap}
#countdown:has(p+p) p{flex-direction:column;gap:10px}
#countdown:has(p+p) p>span{width:auto;font-size:.75rem;font-family:var(--sans);letter-spacing:.14em}

@media(max-width:1080px){
  .countdown-strip{--flap:clamp(4.2rem,9vw,6.8rem);gap:28px}
}
@media(max-width:900px){
  .countdown-strip{--flap:clamp(5rem,14vw,8rem);grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"board board" "meta side";row-gap:34px;padding-block:58px 54px}
  #countdown{grid-area:board}
  .countdown-meta{grid-area:meta}
  .countdown-side{grid-area:side}
  .countdown-strip .countdown-date{display:block}
}
@media(max-width:600px){
  .countdown-strip{--flap:clamp(4.4rem,25vw,6.6rem);padding:54px 7% 50px;row-gap:30px;column-gap:18px}
  .countdown-sub{font-size:1.25rem}
  .countdown-strip .countdown-date{display:none}
  .countdown-side{align-self:end}
  .countdown-vu{width:100%;max-width:220px}
  #countdown:has(p+p){--flap:clamp(2.2rem,11vw,3.2rem);gap:14px 18px}
}
@media(max-width:380px){
  .countdown-strip{grid-template-columns:1fr;grid-template-areas:"board" "meta" "side";row-gap:24px}
  .countdown-side{justify-items:start}
  .countdown-vu{max-width:none}
}

/* ============================================================
   2. Festival poster: scorched paper, stamped words, LOUD. speaker
   ============================================================ */
.gig-notice{position:relative}
/* the sheet: fixed-depth torn edges (a mask, not a %-polygon) so the burn reads the same at every size */
.gig-paper{clip-path:none;-webkit-mask:var(--story-torn-top) 90px 0/260px 16px repeat-x,linear-gradient(#000 0 0) 0 15px/100% calc(100% - 30px) no-repeat,var(--story-torn-bottom) 170px 100%/260px 16px repeat-x;mask:var(--story-torn-top) 90px 0/260px 16px repeat-x,linear-gradient(#000 0 0) 0 15px/100% calc(100% - 30px) no-repeat,var(--story-torn-bottom) 170px 100%/260px 16px repeat-x}
/* scorched edges: a charred rim, then a blotchy singe stain fading into the paper */
.gig-scorch{position:absolute;left:0;right:0;z-index:4;height:clamp(64px,7vw,104px);pointer-events:none}
.gig-scorch--top{top:0}
.gig-scorch--bottom{bottom:0}
.gig-scorch::before{content:"";position:absolute;z-index:1;left:0;right:0;height:30px;background-repeat:repeat-x;background-size:330px 30px}
.gig-scorch--top::before{top:0;background-image:var(--story-char-top)}
.gig-scorch--bottom::before{bottom:0;background-image:var(--story-char-bottom);background-position:120px 0}
.gig-scorch::after{content:"";position:absolute;inset:0;mix-blend-mode:multiply}
.gig-scorch--top::after{background:linear-gradient(180deg,#4a1d0a 0 14px,#7e3d15b3 24px,#a8652f66 48%,#c99a5a00);-webkit-mask:linear-gradient(180deg,#000 0 20px,#0000 42px),var(--story-burn-noise) 0 0/520px 100%;mask:linear-gradient(180deg,#000 0 20px,#0000 42px),var(--story-burn-noise) 0 0/520px 100%}
.gig-scorch--bottom::after{background:linear-gradient(0deg,#4a1d0a 0 14px,#7e3d15b3 24px,#a8652f66 48%,#c99a5a00);-webkit-mask:linear-gradient(0deg,#000 0 20px,#0000 42px),var(--story-burn-noise) 260px 0/520px 100%;mask:linear-gradient(0deg,#000 0 20px,#0000 42px),var(--story-burn-noise) 260px 0/520px 100%}
/* smouldering: a broken ember line traced along the char boundary, flickering */
.gig-embers{position:absolute;inset:0;z-index:5;pointer-events:none}
.gig-embers::before,.gig-embers::after{content:"";position:absolute;left:0;right:0;height:30px;background-size:330px 30px;background-repeat:repeat-x;mix-blend-mode:screen}
.gig-embers::before{top:0;background-image:var(--story-glow-top);animation:story-ember 2.7s ease-in-out infinite alternate}
.gig-embers::after{bottom:0;background-image:var(--story-glow-bottom);background-position:120px 0;opacity:.7;animation:story-ember 3.5s ease-in-out -1.6s infinite alternate}
@keyframes story-ember{0%{opacity:.3}38%{opacity:1}62%{opacity:.55}100%{opacity:.9}}

.gig-word{position:relative;display:inline-block;will-change:transform}
.gig-hindustani{display:block}
.gig-ink{display:inline-block;transform-origin:50% 62%}
.gig-loud{transform:none;margin-left:.5%}
.gig-loud .gig-ink{translate:0 13px;rotate:1.5deg}
.gig-hindi{transform:none;background:none;clip-path:none;padding:0;rotate:8deg;translate:0 -18%}
.gig-hindi .gig-ink{display:block;background:var(--yellow);padding:0 19px 2px;clip-path:polygon(2% 3%,98% 0,100% 91%,96% 100%,0 95%)}
/* the printed speaker cone behind LOUD. */
.gig-cone{position:absolute;left:50%;top:56%;z-index:-1;width:1.55em;height:1.55em;margin:-.775em 0 0 -.775em;border-radius:50%;pointer-events:none;background:radial-gradient(circle,#9b2a1c33 0 .07em,transparent .075em),repeating-radial-gradient(circle,transparent 0 .085em,#9b2a1c24 .085em .1em);-webkit-mask:radial-gradient(circle,#000 55%,transparent 71%);mask:radial-gradient(circle,#000 55%,transparent 71%)}
.gig-cone i{position:absolute;inset:6%;border-radius:50%;border:.03em solid var(--red);opacity:0;transform:scale(.4)}

/* stamp / slam entrance (armed by JS only when motion is allowed) */
.gig-notice.is-armed .gig-ink{opacity:0}
.gig-notice.is-stamped .gig-ink{opacity:1;animation:story-slam .62s both;animation-delay:var(--d,0s)}
.gig-notice.is-stamped .gig-hindi .gig-ink{animation-name:story-slam-hi;animation-duration:.72s}
@keyframes story-slam{
  0%{opacity:0;transform:scale(2.3) rotate(-4deg);filter:blur(5px);animation-timing-function:cubic-bezier(.55,0,.9,.4)}
  46%{opacity:1;transform:scale(.93) rotate(.4deg);filter:blur(0);animation-timing-function:cubic-bezier(.2,.7,.3,1)}
  66%{transform:scale(1.035) rotate(-.2deg)}
  84%{transform:scale(.995)}
  100%{opacity:1;transform:none;filter:none}
}
@keyframes story-slam-hi{
  0%{opacity:0;transform:scale(2.8) rotate(-28deg);animation-timing-function:cubic-bezier(.55,0,.9,.4)}
  48%{opacity:1;transform:scale(.9) rotate(3deg);animation-timing-function:cubic-bezier(.2,.7,.3,1)}
  70%{transform:scale(1.05) rotate(-1deg)}
  100%{opacity:1;transform:none}
}

/* ticket stub: base tilt moves to `rotate` so JS can own `transform` for the 3D spring */
.gig-ticket{transform:none;rotate:2deg}
:root[data-motion="full"].js .gig-ticket[data-reveal]:not(.is-in){rotate:9deg}
.gig-ticket dd span{display:inline-block;margin-top:2px;font-size:.75rem;line-height:1.5}
.gig-glare{position:absolute;inset:0;z-index:3;overflow:hidden;pointer-events:none;mix-blend-mode:soft-light}
.gig-glare i{position:absolute;left:-50%;top:-50%;width:200%;height:200%;background:radial-gradient(circle at 50% 50%,#ffffffe0 0,#ffffff50 15%,#fff0 38%);opacity:0}

@media(max-width:700px){
  .gig-loud{margin-left:4%}
  .gig-loud .gig-ink{translate:0 9px}
  .gig-hindi{rotate:7deg;translate:none}
  .gig-hindi .gig-ink{padding:0 12px}
  .gig-ticket{rotate:1.4deg}
  .gig-scorch{height:58px}
}

/* ============================================================
   Reduced motion: static, finished states (the global rule in styles.css stops every animation)
   ============================================================ */
:root[data-motion="reduce"] .gig-ink{opacity:1}
:root[data-motion="reduce"] .gig-embers::before{opacity:.8}
:root[data-motion="reduce"] .gig-embers::after{opacity:.6}
