/* ============================================================
   EVENT PAGES — Semester Kickoff / Orientation Week landing pages
   (rotterdam-sk26, dublin-sk26, taipei-sk26 + the ow26 siblings)
   Builds on styles.css. Scoped under body.ev-page.
   Ported patterns from wf.css (hero photo, nav on dark, ticket
   cards, checkout modal) so the shared files stay untouched.
   ============================================================ */

/* dark canvas: the rubber-band area above the dark hero stays dark, not white */
html:has(body.ev-page){ background:#16110d; }

/* ---------- NAV over the dark hero ---------- */
/* the floating pill (styles.css) sits over the hero photo; it is always light, so nothing inverts */
body.ev-page .nav{ position:fixed; left:0; right:0; top:0; }
/* html already carries scroll-padding-top:80px (styles.css), enough for the fixed nav */
body.ev-page section[id]{ scroll-margin-top:0; }

/* ---------- HERO ---------- */
.ev-hero{ position:relative; overflow:hidden; padding:120px 0 64px; min-height:100svh; box-sizing:border-box;
  display:flex; flex-direction:column; justify-content:center; background:#16110d; }
.ev-hero .wrap{ position:relative; z-index:2; }
/* hero photo comes in via per-page CSS vars (--hero desktop, --hero-m phone) so
   phones fetch the small variant instead of the full desktop file */
.ev-hero-bg{ position:absolute; inset:0; z-index:0; background-color:#16110d; background-image:var(--hero); background-size:cover; background-position:center; background-repeat:no-repeat; }
@media (max-width:680px){ .ev-hero-bg{ background-image:var(--hero-m, var(--hero)); } }
.ev-hero-bg::after{ content:""; position:absolute; inset:0; background:
  linear-gradient(180deg, rgba(255,246,240,0) 84%, rgba(255,246,240,1) 100%),
  linear-gradient(180deg, rgba(14,10,8,.72) 0%, rgba(14,10,8,.6) 46%, rgba(14,10,8,.8) 100%); }

.ev-hero-grid{ display:grid; grid-template-columns:1.06fr .94fr; gap:44px; align-items:center; }
.ev-hero h1{ margin:22px 0 0; font-size:clamp(48px,7vw,98px); line-height:.9; color:#fff; }
.ev-hero h1 .yr{ color:var(--orange); }
.ev-hero .lead{ margin:24px 0 0; font-size:clamp(18px,1.4vw,21px); color:rgba(255,255,255,.92); max-width:52ch; }
.ev-hero .uni-hl{ color:#fff; font-weight:800; }
.ev-hero-actions{ display:flex; flex-wrap:wrap; gap:14px; margin-top:32px; align-items:center; }
.ev-hero .btn-primary{ color:#fff; }
.ev-hero .btn-ghost{ background:#fff; color:var(--ink); border-color:#fff; }
.ev-hero .btn-ghost:hover{ background:rgba(255,255,255,.86); color:var(--ink); border-color:#fff; }

.ev-kicker{ display:inline-flex; align-items:center; gap:10px; white-space:nowrap; font-weight:800; font-size:14px; letter-spacing:.12em;
  text-transform:uppercase; color:var(--orange); background:#fff; border:2px solid var(--ink); border-radius:100px;
  padding:9px 18px; box-shadow:4px 4px 0 var(--ink); }
.ev-kicker .dot{ width:8px; height:8px; border-radius:50%; background:var(--orange); flex:none; animation:evDotPulse 1.8s ease-out infinite; }

/* hand-drawn underline under the year (same draw-on trick as the WF page) */
.ev-yr{ position:relative; display:inline-block; white-space:nowrap; }
.ev-yr-line{ position:absolute; left:0; bottom:-.08em; width:100%; height:.2em; overflow:visible; pointer-events:none; }
.ev-yr-line path{ fill:none; stroke:#fff; stroke-width:6; stroke-linecap:round; stroke-linejoin:round; }
.has-js .ev-yr-line path{ stroke-dasharray:520; stroke-dashoffset:520; transition:stroke-dashoffset 1s ease .2s; }
.has-js .ev-yr.draw .ev-yr-line path{ stroke-dashoffset:0; }

/* ---------- the ticket stub (hero right): concert-ticket treatment ---------- */
.ev-stub-wrap{ position:relative; width:100%; max-width:420px; margin:0 auto; }
.ev-stub{ position:relative; z-index:2; background:#fff; border:3px solid var(--ink); border-radius:24px;
  box-shadow:12px 12px 0 var(--ink); transform:rotate(2.2deg); overflow:hidden; }
/* orange poster header */
.ev-stub-head{ position:relative; background:var(--orange); border-bottom:3px solid var(--ink); padding:20px 24px 18px; color:#fff; }
.ev-stub-pres{ display:block; font-weight:800; font-size:11px; letter-spacing:.22em; text-transform:uppercase; color:rgba(255,255,255,.85); }
.ev-stub-title{ display:block; font-family:var(--font-display); font-weight:900; font-size:clamp(34px,3.2vw,44px);
  line-height:.92; letter-spacing:-.02em; text-transform:uppercase; margin-top:8px; color:#fff; text-shadow:3px 3px 0 rgba(26,19,16,.35); }
.ev-stub-year{ display:inline-flex; align-items:center; gap:8px; margin-top:12px; background:#fff; color:var(--ink);
  font-family:var(--font-display); font-weight:900; font-size:13px; letter-spacing:.12em; text-transform:uppercase;
  padding:6px 13px; border-radius:100px; border:2px solid var(--ink); box-shadow:3px 3px 0 var(--ink); }
/* middle: giant date */
.ev-stub-mid{ position:relative; padding:20px 24px 18px; }
.ev-stub-date{ display:flex; align-items:center; gap:16px; }
.ev-stub-date .d{ font-family:var(--font-display); font-weight:900; font-size:clamp(64px,6vw,84px); line-height:.85;
  color:var(--ink); letter-spacing:-.04em; }
.ev-stub-date .stack{ display:flex; flex-direction:column; gap:2px; }
.ev-stub-date .stack b{ font-family:var(--font-display); font-weight:900; font-size:26px; line-height:1; color:var(--orange); letter-spacing:.02em; }
.ev-stub-date .stack i{ font-style:normal; font-weight:800; font-size:13px; color:#9a8a80; text-transform:uppercase; letter-spacing:.1em; }
.ev-stub-time{ margin-left:auto; background:var(--ink); color:#fff; font-family:var(--font-display); font-weight:900;
  font-size:14.5px; padding:9px 14px; border-radius:12px; box-shadow:3px 3px 0 rgba(26,19,16,.25); transform:rotate(-2deg); text-align:center; line-height:1.25; }
.ev-stub-time small{ display:block; font-size:9.5px; font-weight:800; letter-spacing:.16em; text-transform:uppercase; color:rgba(255,255,255,.6); }
.ev-stub-loc{ display:inline-block; margin-top:16px; background:var(--yellow); color:var(--ink); font-family:var(--font-display);
  font-weight:900; font-size:16.5px; padding:7px 14px; border-radius:10px; box-shadow:3px 3px 0 var(--ink); transform:rotate(-1.2deg); }
.ev-stub-crowd{ display:block; margin-top:12px; font-size:13px; font-weight:700; color:#9a8a80; }
.ev-stub-crowd b{ color:var(--ink); font-weight:900; }
/* barcode stub foot, torn off along a perforation */
.ev-stub-foot{ position:relative; border-top:3px dashed var(--ink); background:var(--paper-2);
  display:flex; align-items:center; justify-content:space-between; gap:14px; padding:14px 24px; }
.ev-stub-foot::before, .ev-stub-foot::after{ content:""; position:absolute; top:-14px; width:24px; height:24px; border-radius:50%;
  background:#16110d; border:3px solid var(--ink); }
.ev-stub-foot::before{ left:-14px; }
.ev-stub-foot::after{ right:-14px; }
.ev-stub-code{ display:flex; flex-direction:column; gap:4px; }
.ev-stub-code svg{ display:block; height:30px; width:auto; }
.ev-stub-code span{ font-weight:800; font-size:10px; letter-spacing:.24em; color:#9a8a80; text-transform:uppercase; }
.ev-stub-admit{ font-family:var(--font-display); font-weight:900; font-size:12.5px; letter-spacing:.18em; text-transform:uppercase;
  background:var(--orange); color:#fff; border:2px solid var(--ink); border-radius:100px; padding:8px 14px; box-shadow:3px 3px 0 var(--ink); white-space:nowrap; }
.ev-stub-note{ position:absolute; z-index:6; top:-44px; right:-6px; transform:rotate(7deg); }
/* scarcity sticker: pulsing yellow badge pinned to the ticket stub (hero) */
.ev-scarce{ position:absolute; left:-18px; bottom:-22px; z-index:7; display:inline-flex; align-items:center; gap:9px;
  background:var(--yellow); color:var(--ink); border:2.5px solid var(--ink); border-radius:100px; padding:10px 17px 10px 13px;
  font-family:var(--font-display); font-weight:900; font-size:13.5px; letter-spacing:.08em; text-transform:uppercase; white-space:nowrap;
  box-shadow:4px 4px 0 var(--ink); transform:rotate(-4deg); transform-origin:center; animation:evScarce 1.6s ease-in-out infinite; }
.ev-scarce .dot{ width:10px; height:10px; border-radius:50%; background:var(--orange); flex:none; animation:evDotPulse 1.6s ease-out infinite; }
.ev-scarce b{ font-size:20px; letter-spacing:0; line-height:1; color:var(--orange); }
@keyframes evScarce{ 0%,100%{ transform:rotate(-4deg) scale(1); } 50%{ transform:rotate(-4deg) scale(1.07); } }
/* same heartbeat on the ladder sticker */
.ev-tier-left.is-pulse{ animation:evScarceSm 1.6s ease-in-out infinite; }
@keyframes evScarceSm{ 0%,100%{ transform:rotate(-2deg) scale(1); } 50%{ transform:rotate(-2deg) scale(1.08); } }
@media (prefers-reduced-motion:reduce){ .ev-scarce, .ev-scarce .dot, .ev-tier-left.is-pulse{ animation:none; } }

/* ---------- double stub stack (orientation week: two parties, two tickets) ---------- */
.ev-stubs{ display:flex; flex-direction:column; gap:20px; width:100%; max-width:420px; margin:0 auto; position:relative; }
.ev-stub-hold{ position:relative; }
.ev-stub-hold .ev-stub{ transform:rotate(-1.6deg); }
.ev-stub-hold + .ev-stub-hold .ev-stub{ transform:rotate(1.8deg); }
.ev-stub-hold + .ev-stub-hold{ margin-top:-4px; }
.ev-stub-sm .ev-stub-head{ padding:14px 22px 13px; }
.ev-stub-sm .ev-stub-title{ font-size:clamp(24px,2.2vw,30px); margin-top:4px; }
.ev-stub-sm .ev-stub-mid{ padding:14px 22px 14px; }
.ev-stub-sm .ev-stub-date .d{ font-size:clamp(48px,4.4vw,60px); }
.ev-stub-sm .ev-stub-date .stack b{ font-size:20px; }
.ev-stub-sm .ev-stub-foot{ padding:9px 22px; }
.ev-stub-sm .ev-stub-code svg{ height:20px; }
.ev-stub-sm .ev-stub-admit{ font-size:11px; padding:6px 11px; }
.ev-stub-num{ position:absolute; top:-13px; left:-13px; z-index:5; width:44px; height:44px; display:grid; place-items:center;
  background:var(--yellow); color:var(--ink); border:2.5px solid var(--ink); border-radius:50%;
  font-family:var(--font-display); font-weight:900; font-size:17px; box-shadow:3px 3px 0 var(--ink); transform:rotate(-8deg); }
/* the white party ticket: white on white with ink accents */
.ev-stub-white .ev-stub-head{ background:#fff; color:var(--ink); }
.ev-stub-white .ev-stub-pres{ color:#9a8a80; }
.ev-stub-white .ev-stub-title{ color:var(--ink); text-shadow:3px 3px 0 var(--line); }
.ev-stub-white .ev-stub-year{ background:var(--ink); color:#fff; }
.ev-stub-white .ev-stub-foot{ background:#fff; }
.ev-stub-dress{ display:inline-block; margin-left:10px; background:#fff; color:var(--ink); font-family:var(--font-display);
  font-weight:900; font-size:12px; letter-spacing:.08em; text-transform:uppercase; padding:5px 11px; border-radius:100px;
  border:2px solid var(--ink); box-shadow:2px 2px 0 var(--ink); transform:rotate(-2deg); }

/* ---------- two-party timeline ---------- */
.ev-timeline{ max-width:980px; margin:0 auto; position:relative; display:flex; flex-direction:column; gap:40px; }
.ev-timeline::before{ content:""; position:absolute; left:37px; top:86px; bottom:90px; border-left:3px dashed var(--line); z-index:0; }
.ev-tl-item{ display:grid; grid-template-columns:76px 1fr; gap:22px; align-items:start; position:relative; z-index:1; }
.ev-tl-num{ width:76px; height:76px; display:grid; place-items:center; background:#fff; border:2.5px solid var(--ink); border-radius:20px;
  font-family:var(--font-display); font-weight:900; font-size:30px; color:var(--orange); box-shadow:5px 5px 0 var(--ink); transform:rotate(-4deg); }
.ev-tl-card{ display:grid; grid-template-columns:.85fr 1.15fr; background:#fff; border:2.5px solid var(--ink); border-radius:22px;
  overflow:hidden; box-shadow:8px 8px 0 var(--ink); }
.ev-tl-media{ position:relative; min-height:250px; background:var(--paper-2); }
.ev-tl-media image-slot{ position:absolute; inset:0; width:100%; height:100%; display:block; }
.ev-tl-body{ padding:26px 28px 24px; display:flex; flex-direction:column; align-items:flex-start; gap:12px; }
.ev-tl-date{ display:inline-flex; align-items:center; gap:8px; background:var(--ink); color:#fff; font-family:var(--font-display);
  font-weight:900; font-size:13px; letter-spacing:.1em; text-transform:uppercase; padding:8px 14px; border-radius:100px; }
.ev-tl-body h3{ margin:0; font-size:clamp(24px,2.4vw,31px); line-height:1.04; }
.ev-tl-body p{ margin:0; font-size:15px; line-height:1.55; color:#5a4d45; }
.ev-tl-chips{ display:flex; flex-wrap:wrap; gap:8px; }
.ev-tl-chips span{ font-size:12.5px; font-weight:800; color:var(--ink); background:var(--paper-2); border:1.5px solid var(--line); padding:6px 12px; border-radius:100px; }
/* white party card */
.ev-tl-white{ box-shadow:8px 8px 0 var(--line); }
.ev-tl-white .ev-tl-date{ background:#fff; color:var(--ink); border:2px solid var(--ink); }
.ev-tl-white .ev-tl-chips .ev-chip-dress{ background:var(--yellow); border-color:var(--ink); box-shadow:2px 2px 0 var(--ink); transform:rotate(-1.5deg); }

/* ---------- feature video (real story) ---------- */
.ev-featvid{ display:grid; grid-template-columns:minmax(250px,330px) 1fr; gap:52px; align-items:center; justify-content:center;
  max-width:980px; margin:0 auto; position:relative; z-index:2; }
.ev-featvid-frame{ position:relative; aspect-ratio:9/16; border-radius:24px; overflow:hidden; border:3px solid var(--ink);
  background:#000; box-shadow:10px 10px 0 var(--ink); transform:rotate(-1.4deg); }
.ev-featvid-frame video-slot{ position:absolute; inset:0; width:100%; height:100%; display:block; }
.ev-featvid-copy{ display:flex; flex-direction:column; align-items:flex-start; gap:16px; }
.ev-featvid-copy h2{ margin:0; }
.ev-featvid-copy .lead{ margin:0; }
/* the event poster peels off the video's corner, clear of the text */
.ev-featvid-media{ position:relative; }
.ev-featvid-poster{ position:absolute; right:-38px; bottom:-30px; width:152px; z-index:3;
  background:#fff; padding:6px; border-radius:16px; border:2.5px solid var(--ink);
  box-shadow:7px 7px 0 var(--ink); transform:rotate(7deg); transition:transform .18s; }
.ev-featvid-poster:hover{ transform:rotate(4deg) scale(1.04); }
.ev-featvid-poster img{ display:block; width:100%; height:auto; border-radius:10px; }

/* ---------- COUNTDOWN (the centerpiece) ---------- */
.ev-count-wrap{ margin-top:56px; position:relative; z-index:2; text-align:center; }
.ev-count-label{ display:inline-block; font-family:var(--font-hand); font-weight:700; font-size:clamp(24px,2.6vw,36px);
  color:#fff; transform:rotate(-2deg); margin-bottom:16px; }
.ev-count{ display:flex; justify-content:center; align-items:stretch; gap:14px; }
.ev-count-card{ background:#fff; border:3px solid var(--ink); border-radius:18px; box-shadow:6px 6px 0 var(--ink);
  padding:16px 10px 13px; min-width:clamp(84px,10.5vw,150px); display:flex; flex-direction:column; align-items:center; gap:2px; }
.ev-count-num{ font-family:var(--font-display); font-weight:900; font-variant-numeric:tabular-nums;
  font-size:clamp(40px,5.6vw,80px); line-height:1; color:var(--orange); letter-spacing:-.02em; overflow:hidden; }
.ev-count-num.tick{ animation:evTick .32s cubic-bezier(.2,.9,.3,1.1); }
@keyframes evTick{ 0%{ transform:translateY(-.55em); opacity:0; } 100%{ transform:none; opacity:1; } }
.ev-count-unit{ font-weight:800; font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:#8a7a70; }
.ev-count-sep{ align-self:center; display:flex; flex-direction:column; gap:10px; padding-bottom:18px; }
.ev-count-sep i{ width:9px; height:9px; border-radius:50%; background:#fff; opacity:.85; }
/* live state: the digits give way to a pulsing pill */
.ev-count-live{ display:none; }
.ev-count-wrap.is-live .ev-count,
.ev-count-wrap.is-live .ev-count-label{ display:none; }
.ev-count-wrap.is-live .ev-count-live{ display:inline-flex; align-items:center; gap:12px;
  background:#fff; border:3px solid var(--ink); border-radius:100px; box-shadow:6px 6px 0 var(--ink);
  padding:18px 30px; font-family:var(--font-display); font-weight:900; font-size:clamp(20px,2.4vw,30px); color:var(--ink); }
.ev-count-wrap.is-live .ev-count-live .dot{ width:13px; height:13px; border-radius:50%; background:var(--orange); animation:evDotPulse 1.2s ease-out infinite; }

/* ---------- MARQUEE TICKER ---------- */
.ev-ticker{ background:var(--orange); border-top:3px solid var(--ink); border-bottom:3px solid var(--ink);
  overflow:hidden; padding:13px 0; position:relative; z-index:3; }
.ev-ticker-track{ display:flex; align-items:center; gap:0; width:max-content; animation:scroll 30s linear infinite; }
.ev-ticker:hover .ev-ticker-track{ animation-play-state:paused; }
.ev-ticker span{ font-family:var(--font-display); font-weight:900; font-size:17px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--ink); white-space:nowrap; padding:0 18px; }
.ev-ticker span::after{ content:"✦"; margin-left:36px; color:#fff; }
@media (prefers-reduced-motion:reduce){ .ev-ticker-track{ animation:none; } }

/* ---------- INFO CARDS (the night) ---------- */
.ev-icards{ display:flex; flex-wrap:wrap; justify-content:center; gap:16px; position:relative; z-index:2; max-width:1000px; margin:0 auto; }
.ev-icards .ev-icard{ flex:1 1 0; min-width:230px; }
.ev-icard{ display:flex; align-items:center; text-align:left; gap:15px; background:#fff; border:2px solid var(--ink); border-radius:16px;
  padding:20px 20px; box-shadow:4px 4px 0 var(--ink); transition:transform .16s, box-shadow .16s; }
.ev-icard:hover{ transform:translate(-2px,-2px); box-shadow:7px 7px 0 var(--ink); }
.ev-icard .ico{ flex:none; width:52px; height:52px; border-radius:13px; background:var(--paper-2); border:2px solid var(--ink);
  display:grid; place-items:center; font-size:25px; line-height:1; box-shadow:2px 2px 0 var(--ink); }
.ev-icard h3{ font-size:17px; line-height:1.15; margin:0; }
.ev-icard p{ margin:4px 0 0; font-size:13.5px; line-height:1.45; color:#5a4d45; }

/* the venue, revealed: photo-print collage + copy (echoes the homepage hero collage) */
.ev-venue{ position:relative; display:grid; grid-template-columns:1.05fr .95fr; gap:56px; align-items:center;
  max-width:960px; margin:52px auto 0; z-index:2; }
.ev-venue-pics{ position:relative; aspect-ratio:10/8.6; }
.ev-vpic{ position:absolute; margin:0; background:#fff; padding:7px 7px 9px; border:2.5px solid var(--ink);
  border-radius:16px; box-shadow:8px 8px 0 var(--ink); overflow:hidden; }
.ev-vpic img{ display:block; width:100%; height:100%; object-fit:cover; border-radius:9px; }
.ev-vpic-1{ left:0; top:0; width:68%; aspect-ratio:4/3; transform:rotate(-2.6deg); z-index:1; }
.ev-vpic-2{ right:0; bottom:0; width:63%; aspect-ratio:4/3; transform:rotate(2.2deg); z-index:2; }
.ev-venue-copy{ display:flex; flex-direction:column; align-items:flex-start; gap:14px; }
.ev-venue-copy h3{ margin:0; font-size:clamp(24px,2.4vw,31px); line-height:1.04; }
.ev-venue-copy p{ margin:0; font-size:15px; line-height:1.6; color:#5a4d45; }
.ev-venue-plaque{ display:inline-flex; align-items:center; gap:7px; background:var(--yellow); color:var(--ink);
  font-family:var(--font-display); font-weight:900; font-size:15px; padding:9px 15px; border-radius:10px;
  border:2px solid var(--ink); box-shadow:3px 3px 0 var(--ink); white-space:nowrap;
  text-decoration:none; transition:transform .15s, box-shadow .15s; }
.ev-venue-plaque:hover{ transform:translate(-1px,-1px); box-shadow:4px 4px 0 var(--ink); }

/* ---------- WHAT TO EXPECT ---------- */
.ev-expect-grid{ display:flex; flex-wrap:wrap; justify-content:center; align-items:stretch; gap:16px; position:relative; z-index:2; }
.ev-expect-grid > .ev-xcard{ flex:1 1 0; min-width:180px; }
.ev-xcard{ display:flex; flex-direction:column; align-items:center; text-align:center; gap:13px; background:#fff; border:2px solid var(--ink); border-radius:16px;
  padding:26px 16px 22px; box-shadow:4px 4px 0 var(--ink); transition:transform .16s, box-shadow .16s; }
.ev-xcard:hover{ transform:translate(-2px,-2px); box-shadow:7px 7px 0 var(--ink); }
.ev-xcard .ico{ flex:none; width:52px; height:52px; border-radius:13px; background:var(--paper-2); border:2px solid var(--ink);
  display:grid; place-items:center; font-size:26px; line-height:1; box-shadow:2px 2px 0 var(--ink); }
.ev-xcard h3{ font-size:16.5px; line-height:1.15; margin:0; }
.ev-xcard p{ margin:0; font-size:13px; line-height:1.45; color:#5a4d45; }

/* City Game feature card (media column kept narrow + tall: the game video is vertical) */
.ev-game{ display:grid; grid-template-columns:minmax(240px,320px) 1fr; gap:0; margin:44px auto 0; max-width:920px; position:relative; z-index:2;
  background:#fff; border:2.5px solid var(--ink); border-radius:22px; overflow:hidden; box-shadow:8px 8px 0 var(--ink); }
.ev-game-media{ position:relative; background:#000; aspect-ratio:9/13; min-height:0; }
.ev-game-media video-slot{ position:absolute; inset:0; width:100%; height:100%; display:block; }
.ev-game-copy{ padding:34px 34px 30px; display:flex; flex-direction:column; align-items:flex-start; gap:14px; justify-content:center; }
.ev-game-copy h3{ font-size:clamp(23px,2.3vw,30px); line-height:1.05; margin:0; }
.ev-game-copy p{ margin:0; font-size:15.5px; line-height:1.55; color:#5a4d45; }
.ev-game-partner{ display:inline-flex; align-items:center; gap:10px; background:#fff; border:2px solid var(--line); border-radius:100px;
  padding:8px 16px; box-shadow:0 4px 0 rgba(40,20,10,.06); }
.ev-game-partner > span:first-child{ font-weight:800; font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:#8a7a70; }
/* Questo brand lockup: their purple, their icon, lowercase wordmark */
.ev-questo{ display:inline-flex; align-items:center; gap:8px; background:#4501E4; color:#fff; border-radius:100px;
  padding:6px 15px 6px 7px; font-weight:800; font-size:15.5px; letter-spacing:-.01em; line-height:1; }
.ev-questo img{ width:23px; height:23px; border-radius:7px; display:block; }

/* ---------- TICKETS: price ladder + All Access Pass ---------- */
.ev-tiers{ display:grid; grid-template-columns:1fr 1fr; gap:26px; align-items:stretch; max-width:940px; margin:0 auto; position:relative; z-index:2; }
.ev-ladder{ background:#fff; border:2px solid var(--ink); border-radius:22px; box-shadow:7px 7px 0 var(--ink);
  padding:26px 24px; display:flex; flex-direction:column; }
.ev-ladder-head{ margin-bottom:8px; }
.ev-ladder-head .ev-pass-tag{ background:#fff; color:var(--orange); border:1.5px solid var(--line); }
.ev-ladder-head h3{ font-size:clamp(23px,2.3vw,29px); line-height:1.05; margin:10px 0 0; }
.ev-ladder-head p{ margin:8px 0 0; font-size:14.5px; line-height:1.5; color:#5a4d45; }
.ev-tier{ position:relative; display:flex; align-items:center; gap:14px; padding:15px 14px; margin-top:14px;
  border:2px solid var(--line); border-radius:16px; background:#fff; }
.ev-tier-rail{ flex:none; width:12px; height:12px; border-radius:50%; background:var(--line); position:relative; }
.ev-tier + .ev-tier .ev-tier-rail::before{ content:""; position:absolute; left:50%; bottom:100%; transform:translateX(-50%);
  height:34px; border-left:2.5px dashed var(--line); }
.ev-tier-body{ flex:1; min-width:0; }
.ev-tier-name{ font-family:var(--font-display); font-weight:900; font-size:17px; color:var(--ink); line-height:1.1; display:flex; align-items:center; gap:9px; flex-wrap:wrap; }
.ev-tier-sub{ font-size:12.5px; font-weight:700; color:#9a8a80; margin-top:3px; }
.ev-tier-price{ font-family:var(--font-display); font-weight:900; font-size:clamp(21px,2vw,26px); color:var(--ink); white-space:nowrap; position:relative; }
.ev-tier-chip{ display:inline-flex; align-items:center; gap:6px; font-size:10.5px; font-weight:800; letter-spacing:.09em; text-transform:uppercase;
  padding:4px 10px; border-radius:100px; }
/* every round is buyable: clicking a row picks it, the CTA below opens checkout */
.ev-tier[data-tier]{ cursor:pointer; transition:transform .15s, box-shadow .15s; }
.ev-tier[data-tier]:hover{ transform:translate(-1px,-1px); box-shadow:4px 4px 0 var(--line); }
/* open rounds (not highlighted): quiet outline chip */
.ev-tier-chip.on{ background:#fff; border:1.5px solid var(--line); color:#6a5d54; }
/* live round */
.ev-tier.is-live{ border:2.5px solid var(--orange); box-shadow:5px 5px 0 var(--orange); background:#fff; }
.ev-tier.is-live[data-tier]:hover{ box-shadow:7px 7px 0 var(--orange); }
.ev-tier.is-live .ev-tier-rail{ background:var(--orange); box-shadow:0 0 0 4px var(--orange-soft); animation:evRailPing 1.4s ease-out infinite; }
.ev-tier.is-live .ev-tier-chip{ background:var(--orange); color:#fff; }
.ev-tier.is-live .ev-tier-price{ color:var(--orange); }
@keyframes evRailPing{ 0%{ box-shadow:0 0 0 4px var(--orange-soft), 0 0 0 0 rgba(255,75,41,.5); } 70%{ box-shadow:0 0 0 4px var(--orange-soft), 0 0 0 11px rgba(255,75,41,0); } 100%{ box-shadow:0 0 0 4px var(--orange-soft), 0 0 0 0 rgba(255,75,41,0); } }
@media (prefers-reduced-motion:reduce){ .ev-tier.is-live .ev-tier-rail{ animation:none; } }
/* scarcity sticker on the live round */
.ev-tier-left{ display:inline-flex; align-items:center; gap:6px; font-size:10.5px; font-weight:800; letter-spacing:.09em; text-transform:uppercase;
  padding:4px 10px; border-radius:100px; background:var(--yellow); color:var(--ink); box-shadow:2px 2px 0 var(--ink); transform:rotate(-2deg); }
/* upcoming rounds */
.ev-tier.is-coming{ opacity:.62; }
.ev-tier.is-coming .ev-tier-chip{ background:var(--paper-2); color:#8a7a70; border:1.5px solid var(--line); }
/* sold out */
.ev-tier.is-soldout{ background:var(--paper); }
.ev-tier.is-soldout .ev-tier-name, .ev-tier.is-soldout .ev-tier-sub{ color:#b3a49a; }
.ev-tier.is-soldout .ev-tier-price{ color:#b3a49a; }
.ev-tier.is-soldout .ev-tier-price::after{ content:""; position:absolute; left:-6%; right:-6%; top:52%; height:3.5px; border-radius:3px;
  background:var(--orange); transform:rotate(-7deg); }
.ev-tier.is-soldout .ev-tier-chip{ background:var(--ink); color:#fff; transform:rotate(-3deg); }
.ev-ladder .ev-tier-cta{ margin-top:18px; }
.ev-ladder .ev-tier-cta .btn{ width:100%; }
.ev-ladder-note{ margin:14px 0 0; text-align:center; font-size:12.5px; font-weight:700; color:#9a8a80; }

/* All Access Pass card (dark hero card, ported from wf-pass-best) */
.ev-pass{ position:relative; display:flex; flex-direction:column; border-radius:22px; overflow:hidden;
  border:2.5px solid var(--orange); box-shadow:9px 9px 0 var(--orange); }
.ev-pass-ribbon{ position:absolute; top:20px; right:-58px; z-index:6; transform:rotate(40deg);
  background:var(--orange); color:#fff; font-weight:800; font-size:11.5px; letter-spacing:.12em; text-transform:uppercase;
  padding:8px 64px; text-align:center; box-shadow:0 6px 16px rgba(40,20,10,.3); }
.ev-pass-head{ display:flex; flex-direction:column; padding:22px 26px 18px; background:var(--orange-soft); border-bottom:2.5px solid var(--orange); }
.ev-pass-tag{ display:inline-flex; align-items:center; gap:7px; align-self:flex-start; font-weight:800; font-size:12px;
  letter-spacing:.1em; text-transform:uppercase; padding:7px 14px; border-radius:100px; margin-bottom:14px;
  background:var(--orange); color:#fff; }
.ev-pass-head h3{ font-size:clamp(24px,2.4vw,31px); line-height:1.04; color:var(--ink); margin:0; }
.ev-pass-head .ev-pass-sub{ margin:9px 0 0; font-size:14.5px; line-height:1.5; color:#5a4d45; max-width:42ch; }
.ev-pass-price{ display:flex; align-items:baseline; gap:10px; margin-top:12px; }
.ev-pass-price .val{ font-family:var(--font-display); font-weight:900; font-size:clamp(30px,3vw,40px); color:var(--orange); line-height:1; }
.ev-pass-price .per{ font-size:13px; font-weight:700; color:#8a7a70; }
.ev-pass-box{ padding:22px 22px 22px 20px; display:flex; flex-direction:column; flex:1; color:#fff;
  background:radial-gradient(circle at 84% -10%, rgba(255,75,41,.24), transparent 55%), linear-gradient(165deg, #30251F 0%, #1B130F 72%); }
.ev-pass-sublabel{ display:block; font-size:11.5px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:var(--orange); margin:0 0 13px; }
.ev-pass-list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:13px; }
.ev-pass-list li{ display:flex; align-items:center; gap:13px; font-size:14.5px; line-height:1.4; font-weight:500; color:rgba(255,255,255,.6); }
.ev-pass-list .em{ flex:none; width:44px; height:44px; display:grid; place-items:center; font-size:25px; line-height:1;
  border-radius:13px; background:#fff; box-shadow:inset 0 0 0 1.5px rgba(255,75,41,.35); }
.ev-pass-list .em img{ width:27px; height:27px; display:block; }
.ev-pass-list .ev-hl{ font-weight:800; letter-spacing:-.01em; color:#fff; }
.ev-pass-foot{ margin-top:auto; padding-top:20px; display:flex; flex-direction:column; gap:10px; }
.ev-pass-foot .btn{ width:100%; animation:evPulse 1.8s ease-in-out infinite; }
.ev-pass-foot .btn:hover{ animation-play-state:paused; }
.ev-pass-detail{ font-size:12.5px; font-weight:700; line-height:1.4; text-align:center; color:rgba(255,255,255,.55); }
@keyframes evPulse{
  0%   { box-shadow:0 4px 0 var(--orange-deep), 0 0 0 rgba(255,75,41,0); }
  12%  { box-shadow:0 5px 0 var(--orange-deep), 0 6px 24px rgba(255,75,41,.7); }
  24%  { box-shadow:0 4px 0 var(--orange-deep), 0 4px 12px rgba(255,75,41,.25); }
  36%  { box-shadow:0 5px 0 var(--orange-deep), 0 6px 20px rgba(255,75,41,.55); }
  50%,100%{ box-shadow:0 4px 0 var(--orange-deep), 0 0 0 rgba(255,75,41,0); }
}
@media (prefers-reduced-motion:reduce){ .ev-pass-foot .btn{ animation:none; } }
.ev-tiers-trust{ display:flex; justify-content:center; gap:10px; flex-wrap:wrap; margin-top:26px; position:relative; z-index:2; }
.ev-tiers-trust span{ font-size:13px; font-weight:700; color:#6a5d54; background:#fff; border:1.5px solid var(--line); padding:8px 15px; border-radius:100px; }

/* ---------- FINAL CTA mini countdown line ---------- */
.finalcta .ev-mini-count{ font-weight:800; color:#fff; }

/* ---------- STICKY MOBILE CTA ---------- */
.ev-stickycta{ position:fixed; left:0; right:0; bottom:0; z-index:1500; display:none;
  background:rgba(255,246,240,.96); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
  border-top:2px solid var(--ink); padding:10px 16px calc(10px + env(safe-area-inset-bottom));
  transform:translateY(110%); transition:transform .3s ease; }
.ev-stickycta.show{ transform:none; }
.ev-stickycta-in{ display:flex; align-items:center; justify-content:space-between; gap:14px; }
.ev-stickycta-info b{ display:block; font-family:var(--font-display); font-weight:900; font-size:15.5px; color:var(--ink); line-height:1.15; }
.ev-stickycta-info span{ font-size:12px; font-weight:700; color:#8a7a70; }
.ev-stickycta .btn{ flex:none; padding:12px 22px; font-size:15px; }

/* ---------- TICKET CHECKOUT MODAL (ported from wf.css, recoloured ink/orange) ---------- */
body.tt-open{ overflow:hidden; }
.tt-modal{ position:fixed; inset:0; z-index:3000; display:flex; align-items:center; justify-content:center; padding:24px; }
.tt-modal[hidden]{ display:none; }
.tt-backdrop{ position:absolute; inset:0; background:rgba(16,10,7,.62); backdrop-filter:blur(3px); animation:ttFade .2s ease; }
.tt-card{ position:relative; z-index:1; display:grid; grid-template-columns:minmax(300px,38%) 1fr;
  width:min(1040px,96vw); height:min(820px,92vh); background:#fff; border:2.5px solid var(--ink);
  border-radius:24px; overflow:hidden; box-shadow:12px 12px 0 var(--ink); animation:ttPop .24s cubic-bezier(.2,.9,.3,1.2); }
@keyframes ttFade{ from{opacity:0} to{opacity:1} }
@keyframes ttPop{ from{opacity:0; transform:translateY(16px) scale(.98)} to{opacity:1; transform:none} }
.tt-x{ position:absolute; top:14px; right:14px; z-index:5; width:40px; height:40px; display:grid; place-items:center;
  border:none; border-radius:50%; background:rgba(255,255,255,.92); color:var(--ink); cursor:pointer;
  box-shadow:0 2px 10px rgba(0,0,0,.2); transition:background .14s, transform .14s; }
.tt-x:hover{ background:#fff; transform:scale(1.05); }
.tt-side{ background:#1B130F; background-image:radial-gradient(circle at 80% 8%, rgba(255,75,41,.4), transparent 55%);
  color:#fff; padding:38px 34px; overflow-y:auto; display:flex; flex-direction:column; }
.tt-eyebrow{ display:inline-flex; align-self:flex-start; width:auto; align-items:center; gap:9px; font-weight:800; font-size:12px; letter-spacing:.07em;
  text-transform:uppercase; color:var(--orange); background:#fff; border-radius:100px; padding:7px 14px; box-shadow:0 4px 14px rgba(0,0,0,.18); }
.tt-eyebrow .dot{ width:8px; height:8px; border-radius:50%; background:var(--orange); animation:evDotPulse 1.8s ease-out infinite; }
.tt-side h3{ margin:16px 0 0; font-size:clamp(25px,3vw,33px); line-height:1.05; letter-spacing:-.01em; }
.tt-pick-label{ margin:22px 0 4px; font-size:12px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:#c9a89a; }
.tt-pick{ margin:0; font-family:var(--font-display); font-weight:900; font-size:21px; color:var(--yellow,#FFD84D); line-height:1.1; }
.tt-perks{ list-style:none; margin:20px 0 0; padding:0; display:flex; flex-direction:column; gap:12px; max-height:640px; overflow:hidden; transition:max-height .32s ease, opacity .22s ease, margin .3s ease; }
.tt-side.tt-collapsed .tt-perks{ max-height:0; opacity:0; margin-top:0; }
.tt-perks li{ display:flex; align-items:flex-start; gap:12px; font-size:14.5px; line-height:1.4; color:#eaddd4; }
.tt-perks b{ color:#fff; font-weight:800; }
.tt-perk-ico{ flex:none; width:30px; height:30px; display:grid; place-items:center; font-size:17px; border-radius:9px; background:rgba(255,255,255,.1); }
.tt-wa{ width:26px; height:26px; display:block; }
.tt-reassure{ display:flex; flex-wrap:wrap; gap:8px; margin-top:auto; padding-top:24px; }
.tt-chip{ font-size:12.5px; font-weight:700; color:#fff2ec; background:rgba(255,255,255,.12); padding:7px 12px; border-radius:100px; }
.tt-note{ margin:16px 0 0; font-size:12.5px; line-height:1.5; color:#c9a89a; }
.tt-frame-catch{ display:none; }
.tt-frame-wrap{ position:relative; background:#fff; display:flex; flex-direction:column; }
.tt-frame-wrap iframe{ flex:1; width:100%; height:100%; border:0; display:block; }
.tt-loading{ position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:14px;
  background:#fff; color:#6a5d54; font-weight:700; font-size:15px; z-index:1; }
.tt-spin{ width:34px; height:34px; border-radius:50%; border:3px solid var(--line); border-top-color:var(--orange); animation:ttSpin .8s linear infinite; }
@keyframes ttSpin{ to{ transform:rotate(360deg); } }
@media (max-width:820px){
  .tt-modal{ padding:0; align-items:flex-start; }
  .tt-card{ grid-template-columns:1fr; grid-template-rows:auto 1fr; width:100vw;
    height:100vh; height:100dvh; max-height:100vh; max-height:100dvh;
    border:0; border-radius:0; box-shadow:none; }
  .tt-frame-catch{ display:block; position:absolute; inset:0; z-index:4; }
  .tt-side{ padding:22px 22px 18px; transition:padding .3s ease; }
  .tt-side.tt-collapsed{ padding-bottom:14px; }
  .tt-side h3{ font-size:22px; }
  .tt-perks{ margin:14px 0 0; gap:9px; font-size:13.5px; }
  .tt-perk-ico{ width:28px; height:28px; }
  .tt-note{ display:none; }
  .tt-reassure{ margin-top:14px; padding-top:14px; }
}

/* ---------- shared bits ---------- */
.scribble-ink svg path{ stroke:var(--ink) !important; stroke-width:3.6; }
.ev-gallery .gcard{ background:var(--paper-2); }
.ev-page .vcard video-slot{ width:100%; height:100%; display:block; }
.ev-page .vbig-item{ position:relative; }
.ev-expect-cta{ text-align:center; margin-top:40px; position:relative; z-index:2; }
@keyframes evDotPulse{ 0%{ box-shadow:0 0 0 0 rgba(255,75,41,.55); } 70%{ box-shadow:0 0 0 7px rgba(255,75,41,0); } 100%{ box-shadow:0 0 0 0 rgba(255,75,41,0); } }
@media (prefers-reduced-motion:reduce){ .ev-kicker .dot, .ev-count-num.tick{ animation:none; } }

/* ---------- responsive ---------- */
@media (max-width:1080px){
  .ev-pgdeco{ display:none; }
}
@media (max-width:980px){
  .ev-hero-grid{ grid-template-columns:1fr; gap:40px; }
  .ev-stub-wrap{ max-width:380px; }
  .ev-stubs{ max-width:380px; }
  .ev-game{ grid-template-columns:1fr; }
  .ev-game-media{ min-height:0; aspect-ratio:4/5; }
  .ev-game-media video-slot{ position:absolute; }
  .ev-tiers{ grid-template-columns:1fr; max-width:560px; }
  .ev-venue{ grid-template-columns:1fr; gap:36px; max-width:560px; }
  .ev-venue-pics{ width:min(480px,100%); margin:0 auto; }
  .ev-expect-grid > .ev-xcard{ flex-basis:calc(50% - 8px); }
  .ev-tl-card{ grid-template-columns:1fr; }
  .ev-tl-media{ min-height:0; aspect-ratio:16/9; }
  .ev-featvid{ grid-template-columns:1fr; gap:56px; justify-items:center; text-align:center; }
  .ev-featvid-frame{ width:min(300px,84vw); }
  .ev-featvid-copy{ align-items:center; }
}
@media (max-width:680px){
  .ev-scarce{ left:-2px; bottom:-18px; font-size:12px; padding:8px 13px 8px 10px; gap:7px; }
  .ev-scarce b{ font-size:17px; }
  .ev-hero{ padding:96px 0 46px; min-height:100svh; }
  /* phone order: copy first, countdown on the first screen, ticket stub below it */
  .ev-hero .wrap{ display:flex; flex-direction:column; }
  .ev-hero-grid{ display:contents; }
  .ev-hero-copy{ order:1; }
  .ev-hero .ev-count-wrap{ order:2; margin-top:34px; }
  .ev-hero .ev-stub-wrap, .ev-hero .ev-stubs{ order:3; margin-top:44px; }
  .ev-hero h1{ font-size:clamp(44px,12.5vw,72px); }
  .ev-hero-actions{ flex-direction:row; flex-wrap:nowrap; gap:10px; }
  .ev-hero-actions .btn{ flex:1 1 0; min-width:0; padding:13px 12px; font-size:14px; }
  .ev-page .section{ padding:62px 0; }
  .ev-kicker{ font-size:12px; letter-spacing:.06em; padding:8px 14px; gap:8px; }
  .ev-kicker .dot{ width:7px; height:7px; }
  .ev-count-wrap{ margin-top:38px; }
  .ev-count{ gap:8px; }
  .ev-count-card{ min-width:0; flex:1 1 0; max-width:96px; padding:12px 6px 10px; border-width:2.5px; box-shadow:4px 4px 0 var(--ink); border-radius:14px; }
  .ev-count-num{ font-size:clamp(28px,9vw,40px); }
  .ev-count-unit{ font-size:9.5px; letter-spacing:.1em; }
  .ev-count-sep{ display:none; }
  .ev-stub{ transform:rotate(1.6deg); }
  .ev-stub-head{ padding:16px 20px 15px; }
  .ev-stub-mid{ padding:16px 20px 15px; }
  .ev-stub-foot{ padding:12px 20px; }
  .ev-stub-note{ top:-40px; right:2px; }
  .ev-timeline::before{ left:26px; }
  .ev-tl-item{ grid-template-columns:54px 1fr; gap:14px; }
  .ev-tl-num{ width:54px; height:54px; font-size:22px; border-radius:15px; }
  .ev-tl-body{ padding:20px 20px 18px; }
  .ev-featvid-poster{ width:106px; right:-14px; bottom:-20px; }
  .ev-venue{ gap:30px; }
  .ev-venue-copy{ align-items:center; text-align:center; }
  .ev-ticker span{ font-size:14px; padding:0 12px; }
  .ev-ticker span::after{ margin-left:24px; }
  .ev-icards .ev-icard{ flex-basis:100%; }
  .ev-expect-grid > .ev-xcard{ flex-basis:100%; flex-direction:row; align-items:center; text-align:left; padding:16px 16px; gap:14px; }
  .ev-xcard .ico{ width:46px; height:46px; font-size:23px; }
  .ev-game-copy{ padding:24px 22px 22px; }
  .ev-tier{ padding:13px 12px; gap:11px; }
  .ev-tier-name{ font-size:15.5px; }
  .ev-stickycta{ display:block; }
  /* lift the support FAB above the sticky bar, but only while the bar is showing */
  body.ev-page:has(.ev-stickycta.show) .sw-wrap{ bottom:84px !important; }
}
@media (max-width:380px){
  .ev-count-num{ font-size:26px; }
  .ev-stub-date .d{ font-size:56px; }
}

/* ---------- hero: slow cinematic zoom on the still (desktop), looping venue video on phones ---------- */
.ev-hero-bg.has-ken{ overflow:hidden; }
.ev-hero-bg.has-ken::before{ content:""; position:absolute; inset:-4%; background-image:var(--hero); background-size:cover; background-position:center; animation:evKen 26s ease-in-out infinite alternate; will-change:transform; }
.ev-hero-bg.has-ken{ background-image:none; }
@keyframes evKen{ 0%{ transform:scale(1) translate(0,0); } 100%{ transform:scale(1.1) translate(-1.5%,1%); } }
.ev-hero-video{ display:none; }
@media (max-width:680px){
  .ev-hero-bg.has-ken::before{ animation:none; background-image:var(--hero-m, var(--hero)); inset:0; }
  .ev-hero-video{ display:block; position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; transition:opacity .8s ease; }
  .ev-hero-video.is-on{ opacity:1; }
}
@media (prefers-reduced-motion:reduce){ .ev-hero-bg.has-ken::before{ animation:none; } }

/* ---------- gallery video cards (autoplay muted when the strip scrolls into view) ---------- */
.gcard-video{ position:relative; background:#16110d; }
.gcard-video video{ width:100%; height:100%; object-fit:cover; display:block; }
.gcard-live{ position:absolute; left:12px; top:12px; display:inline-flex; align-items:center; gap:7px; background:rgba(26,19,16,.78); color:#fff;
  font-size:10.5px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; padding:6px 10px; border-radius:100px; backdrop-filter:blur(6px); }
.gcard-live i{ width:7px; height:7px; border-radius:50%; background:var(--orange); animation:evDotPulse 1.6s ease-out infinite; }

/* hero: sold-out strip + second CTA */
.ev-hero .btn-ghost.btn-lg{ box-shadow:4px 4px 0 var(--orange); }
.ev-hero-soldout{ display:inline-flex; flex-wrap:wrap; align-items:center; gap:8px; margin-top:18px; }
.ev-hero-soldout span{ display:inline-flex; align-items:center; gap:6px; font-size:11px; font-weight:800; letter-spacing:.1em; text-transform:uppercase;
  color:rgba(255,255,255,.8); background:rgba(255,255,255,.1); border:1.5px solid rgba(255,255,255,.28); border-radius:100px; padding:6px 11px; }
.ev-hero-soldout span s{ text-decoration:line-through; text-decoration-thickness:2px; text-decoration-color:var(--orange); }
.ev-hero-soldout span.on{ color:var(--ink); background:var(--yellow); border-color:var(--ink); }
@media (max-width:680px){
  .ev-hero-actions{ flex-wrap:wrap; }
  .ev-hero-actions .btn-lg{ flex:1 1 100%; width:100%; justify-content:center; text-align:center; }
  .ev-hero-soldout{ gap:6px; margin-top:14px; }
  .ev-hero-soldout span{ font-size:10.5px; padding:5px 9px; }
}

/* ---------- taipei: long headline, solid hero bottom, venue video print ---------- */
.ev-hero h1.ev-h1-long{ font-size:clamp(42px,5.6vw,80px); line-height:.94; }
.ev-hero-solid .ev-hero-bg::after{ background:linear-gradient(180deg, rgba(14,10,8,.72) 0%, rgba(14,10,8,.52) 46%, rgba(14,10,8,.86) 100%); }
.ev-vpic.ev-vpic-video{ aspect-ratio:3/4 !important; width:46% !important; }
.ev-vpic-video video{ display:block; width:100%; height:100%; object-fit:cover; border-radius:9px; background:#16110d; }
.ev-vplay{ position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); display:inline-flex; flex-direction:column; align-items:center; gap:8px;
  background:none; border:0; color:#fff; cursor:pointer; font-family:var(--font-display); font-weight:800; font-size:12px; letter-spacing:.1em; text-transform:uppercase; }
.ev-vplay svg{ width:66px; height:66px; padding:16px; box-sizing:border-box; border-radius:50%; background:var(--orange); border:2.5px solid var(--ink); box-shadow:4px 4px 0 var(--ink); transition:transform .15s; }
.ev-vplay:hover svg{ transform:scale(1.06); }
.ev-vplay span{ background:rgba(26,19,16,.78); padding:6px 10px; border-radius:100px; backdrop-filter:blur(6px); white-space:nowrap; }
.ev-vpic-video.is-playing .ev-vplay{ display:none; }
@media (max-width:680px){
  .ev-hero h1.ev-h1-long{ font-size:clamp(40px,12vw,54px); }
}

/* ---------- taipei round 3: headline breaks, clickable stub, one-row CTAs, music FAB ---------- */
.br-m{ display:none; }
.ev-hero h1.ev-h1-long{ font-size:clamp(40px,4.2vw,60px); }
.ev-stub-go{ cursor:pointer; transition:transform .18s, box-shadow .18s; }
.ev-stub-go:hover, .ev-stub-go:focus-visible{ transform:translate(-2px,-3px) rotate(-1.2deg); box-shadow:12px 12px 0 var(--ink); outline:none; }
.ev-music{ position:fixed; right:22px; bottom:22px; z-index:1200; display:inline-flex; align-items:center; gap:10px; padding:11px 18px 11px 14px;
  background:#fff; color:var(--ink); border:2.5px solid var(--ink); border-radius:100px; box-shadow:5px 5px 0 var(--ink); cursor:pointer;
  font-family:var(--font-display); font-weight:900; font-size:13.5px; letter-spacing:.06em; text-transform:uppercase; transition:transform .15s, box-shadow .15s, background .2s; }
.ev-music:hover{ transform:translate(-1px,-2px); box-shadow:7px 7px 0 var(--ink); }
.ev-music[aria-pressed="true"]{ background:var(--orange); color:#fff; }
.ev-music-eq{ display:inline-flex; align-items:flex-end; gap:3px; width:20px; height:18px; }
.ev-music-eq i{ width:3.5px; height:35%; border-radius:2px; background:currentColor; transform-origin:bottom; }
.ev-music[aria-pressed="true"] .ev-music-eq i{ animation:evEq 1s ease-in-out infinite; }
.ev-music[aria-pressed="true"] .ev-music-eq i:nth-child(2){ animation-delay:.18s; } .ev-music[aria-pressed="true"] .ev-music-eq i:nth-child(3){ animation-delay:.36s; } .ev-music[aria-pressed="true"] .ev-music-eq i:nth-child(4){ animation-delay:.54s; }
@keyframes evEq{ 0%,100%{ height:30%; } 50%{ height:100%; } }
/* The burger menu is a full screen panel at z-index 110, but the music widget sits at 1200
   and the sticky bar at 1500, so both used to float on top of the open menu. They step aside
   while it is open. This is every event page, not just the Halloween one. */
body.nav-open .ev-music,
body.nav-open .ev-stickycta{ display:none !important; }

/* only lift the widget where the sticky bar is actually visible; event.js toggles .show at
   every width, and this rule used to make the widget hop up and down on desktop */
@media (max-width:680px){ body.ev-page:has(.ev-stickycta.show) .ev-music{ bottom:84px; } }
@media (max-width:680px){
  .br-d{ display:none; } .br-m{ display:inline; }
  .ev-hero-solid .ev-hero-bg::after{ background:linear-gradient(180deg, rgba(14,10,8,.6) 0%, rgba(14,10,8,.48) 46%, rgba(14,10,8,.86) 100%); }
  .ev-hero .wrap{ width:100%; align-self:stretch; }
  .ev-hero-actions{ flex-wrap:nowrap; gap:9px; }
  .ev-hero-actions .btn-lg{ flex:1 1 0; width:auto; min-width:0; padding:13px 8px; font-size:14px; white-space:nowrap; letter-spacing:-.01em; }
  .d-only{ display:none; }
  .ev-stub-wrap{ margin-bottom:6px; text-align:center; }
  .ev-stub{ text-align:left; }
  .ev-scarce{ position:relative; left:auto; bottom:auto; display:inline-flex; margin:18px auto 0; }
  .ev-music{ right:auto; left:16px; bottom:16px; padding:10px 14px 10px 12px; font-size:12.5px; }
}
@media (prefers-reduced-motion:reduce){ .ev-music .ev-music-eq i{ animation:none !important; } }

/* ---------- taipei venue: big portrait video frame + photo print above the copy ---------- */
.ev-venue-tp{ grid-template-columns:minmax(290px,350px) 1fr; gap:60px; max-width:1040px; align-items:center; }
.ev-vframe{ position:relative; margin:0; aspect-ratio:9/16; background:#fff; padding:8px; border:3px solid var(--ink); border-radius:26px;
  box-shadow:10px 10px 0 var(--ink); transform:rotate(-1.4deg); overflow:hidden; }
.ev-vframe video{ display:block; width:100%; height:100%; object-fit:cover; border-radius:18px; background:#16110d; }
.ev-vprint{ margin:0 0 26px; background:#fff; padding:7px 7px 9px; border:2.5px solid var(--ink); border-radius:16px;
  box-shadow:8px 8px 0 var(--ink); transform:rotate(1.3deg); width:min(100%,470px); }
.ev-vprint img{ display:block; width:100%; height:auto; border-radius:9px; }
.ev-vframe .ev-vplay svg{ width:84px; height:84px; padding:22px; }
.ev-vframe .ev-vplay span{ font-size:13px; }
@media (max-width:900px){
  .ev-venue-tp{ grid-template-columns:1fr; gap:34px; max-width:560px; }
  .ev-vframe{ width:min(330px,86vw); margin:0 auto; }
  .ev-venue-tp .ev-venue-copy{ align-items:center; text-align:center; }
  .ev-vprint{ margin:0 auto 22px; }
}

/* ---------- taipei round 4: video hero everywhere, swipe gallery on phones, venue video with sound toggle, now-playing widget ---------- */
.ev-hero-bg-video .ev-hero-video{ display:block; position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 40%; opacity:0; transition:opacity .9s ease; }
.ev-hero-bg-video .ev-hero-video.is-on{ opacity:1; }
.ev-hero-solid .ev-hero-bg-video::after{ background:linear-gradient(180deg, rgba(14,10,8,.58) 0%, rgba(14,10,8,.42) 46%, rgba(14,10,8,.88) 100%); }
.ev-hero-solid h1, .ev-hero-solid .lead{ text-shadow:0 2px 18px rgba(0,0,0,.45); }
.ev-vsound{ position:absolute; right:18px; top:18px; z-index:3; display:inline-flex; align-items:center; gap:7px; padding:8px 13px 8px 10px; border-radius:100px;
  background:rgba(26,19,16,.72); color:#fff; border:2px solid rgba(255,255,255,.55); backdrop-filter:blur(8px); cursor:pointer;
  font-family:var(--font-display); font-weight:800; font-size:11.5px; letter-spacing:.1em; text-transform:uppercase; transition:background .2s, transform .15s; }
.ev-vsound:hover{ transform:scale(1.04); }
.ev-vsound .ic-on{ display:none; }
.ev-vsound[aria-pressed="true"]{ background:var(--orange); border-color:#fff; }
.ev-vsound[aria-pressed="true"] .ic-on{ display:block; } .ev-vsound[aria-pressed="true"] .ic-off{ display:none; }
/* now-playing widget */
.ev-music{ padding:6px 16px 6px 6px; gap:11px; background:#fff; }
.ev-music-cover{ position:relative; width:46px; height:46px; border-radius:50%; background-size:cover; background-position:60% 50%; border:2px solid var(--ink); flex:none; overflow:hidden; }
.ev-music-cover::after{ content:""; position:absolute; inset:0; background:rgba(14,10,8,.32); }
.ev-music-cover .ev-music-eq{ position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); z-index:2; width:20px; height:16px; color:#fff; }
.ev-music[aria-pressed="true"] .ev-music-cover{ animation:evSpin 6s linear infinite; }
.ev-music[aria-pressed="true"] .ev-music-cover .ev-music-eq{ animation:evSpinBack 6s linear infinite; }
@keyframes evSpin{ to{ transform:rotate(360deg); } }
@keyframes evSpinBack{ from{ transform:translate(-50%,-50%) rotate(0); } to{ transform:translate(-50%,-50%) rotate(-360deg); } }
.ev-music-meta{ display:flex; flex-direction:column; align-items:flex-start; line-height:1.15; text-align:left; }
.ev-music-txt{ font-size:12.5px; }
.ev-music-sub{ font-family:var(--font-body); font-weight:600; font-size:11px; letter-spacing:0; text-transform:none; color:#7a6a60; }
.ev-music[aria-pressed="true"] .ev-music-sub{ color:rgba(255,255,255,.85); }
@media (max-width:900px){
  /* phones: the throwback strip is a real swipe carousel, not a marquee */
  .ev-gallery .gallery-scroll{ overflow-x:auto; overflow-y:hidden; -webkit-overflow-scrolling:touch; scroll-snap-type:x mandatory; scrollbar-width:none; padding:10px 0 24px; -webkit-mask-image:none; mask-image:none; }
  .ev-gallery .gallery-scroll::-webkit-scrollbar{ display:none; }
  .ev-gallery .gallery-track{ animation:none !important; padding:0 20px; gap:14px; }
  .ev-gallery .gallery-track .gcard{ scroll-snap-align:center; transform:none; width:min(300px,76vw); height:auto; aspect-ratio:25/32; }
  .ev-gallery .gallery-track .gcard.is-dup{ display:none; }
  /* venue video: full width, straight, big */
  .ev-vframe{ width:100%; transform:none; border-radius:22px; }
  .ev-vframe video{ border-radius:15px; }
}
@media (max-width:680px){
  .ev-music{ left:12px; right:auto; bottom:14px; padding:5px 12px 5px 5px; gap:9px; }
  .ev-music-cover{ width:40px; height:40px; }
  .ev-music-txt{ font-size:11.5px; } .ev-music-sub{ font-size:10.5px; }
  body.ev-page:has(.ev-stickycta.show) .ev-music{ bottom:82px; }
}

/* stub CTA: shorter pill so it stays inside the ticket; phone sticker sits on the ticket corner */
.ev-stub-go .ev-stub-admit{ font-size:11px; letter-spacing:.12em; padding:7px 12px; }
@media (max-width:680px){
  .ev-stub-go .ev-stub-admit{ font-size:10.5px; padding:6px 10px; }
  .ev-stub-wrap{ text-align:left; margin-bottom:0; }
  .ev-scarce{ position:absolute; left:auto; right:-4px; top:-20px; bottom:auto; margin:0; display:inline-flex; z-index:7; }
  @keyframes evScarce{ 0%,100%{ transform:rotate(3deg) scale(1); } 50%{ transform:rotate(3deg) scale(1.07); } }
}

/* the party is over: calm "done" sticker, no pulse */
.ev-scarce.is-done{ background:#fff; color:var(--ink); animation:none; }
.ev-scarce.is-done .dot{ background:var(--ink); animation:none; }

/* extra-long venue names in the hero headline (Dublin) */
.ev-hero h1.ev-h1-xl{ font-size:clamp(36px,3.6vw,50px); }
@media (max-width:680px){ .ev-hero h1.ev-h1-xl{ font-size:clamp(36px,10.5vw,44px); } }

/* dublin phone hero: keep the whole stage + crowd in frame instead of a zoomed face */
@media (max-width:680px){
  .ev-hero-bg-dub.has-ken::before{ background-position:center 38%; }
  .ev-hero-dub .ev-hero-bg::after{ background:linear-gradient(180deg, rgba(14,10,8,.62) 0%, rgba(14,10,8,.5) 46%, rgba(14,10,8,.88) 100%); }
}

/* ---------- semester pass price drop (taipei) ---------- */
.ev-pass-price-drop{ flex-wrap:wrap; align-items:baseline; }
.ev-pass-price-drop .was{ font-family:var(--font-display); font-weight:800; font-size:clamp(18px,1.8vw,24px); color:#9a8a80; text-decoration:line-through; text-decoration-thickness:2.5px; text-decoration-color:var(--orange); }
.ev-pass-math{ margin:12px 0 0; font-size:13.5px; line-height:1.5; color:#5a4d45; max-width:44ch; background:var(--orange-soft); border-left:3px solid var(--orange); padding:8px 12px; border-radius:0 10px 10px 0; }
.ev-pass-math b{ color:var(--ink); }

/* ---------- orientation week (rotterdam): two-night diptych, dress code stamp, secret venue ---------- */
@media (max-width:680px){ .ev-hero-bg-ow.has-ken::before{ background-position:center 30%; } }
.ev-acts{ position:relative; display:grid; grid-template-columns:1fr 1fr; gap:28px; }
.ev-act{ position:relative; border:2.5px solid var(--ink); border-radius:26px; overflow:hidden; min-height:600px; display:flex; flex-direction:column; justify-content:flex-end; }
.ev-act-hot{ background:#16110d; box-shadow:10px 10px 0 var(--line); }
.ev-act-white{ background:#fff; box-shadow:10px 10px 0 var(--line); }
.ev-act-media{ position:absolute; inset:0; }
.ev-act-media img{ width:100%; height:100%; object-fit:cover; display:block; }
.ev-act-hot .ev-act-media::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(14,10,8,.12) 0%, rgba(14,10,8,.35) 42%, rgba(14,10,8,.94) 100%); }
.ev-act-white .ev-act-media{ bottom:auto; height:64%; }
.ev-act-white .ev-act-media::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(255,255,255,0) 52%, #fff 100%); }
.ev-act-top{ position:absolute; top:20px; left:22px; z-index:2; }
.ev-act-num{ font-family:var(--font-display); font-weight:900; font-size:13px; letter-spacing:.14em; text-transform:uppercase; background:var(--orange); color:#fff; border:2px solid var(--ink); border-radius:100px; padding:7px 14px; box-shadow:3px 3px 0 var(--ink); }
.ev-act-white .ev-act-num{ background:#fff; color:var(--ink); }
.ev-act-body{ position:relative; z-index:2; padding:28px 30px 30px; display:flex; flex-direction:column; align-items:flex-start; gap:12px; }
.ev-act-hot .ev-act-body{ color:#fff; }
.ev-act-date{ display:inline-flex; align-items:center; gap:8px; font-family:var(--font-display); font-weight:800; font-size:12.5px; letter-spacing:.08em; text-transform:uppercase; background:rgba(255,255,255,.14); border:1.5px solid rgba(255,255,255,.35); color:#fff; padding:6px 12px; border-radius:100px; backdrop-filter:blur(6px); }
.ev-act-white .ev-act-date{ background:var(--ink); border-color:var(--ink); }
.ev-act h3{ margin:0; font-size:clamp(30px,2.9vw,42px); line-height:1; }
.ev-act p{ margin:0; font-size:15px; line-height:1.55; max-width:46ch; }
.ev-act-hot p{ color:rgba(255,255,255,.85); }
.ev-act-white p{ color:#5a4d45; }
.ev-act-chips{ display:flex; flex-wrap:wrap; gap:8px; }
.ev-act-chips span{ font-size:12.5px; font-weight:800; padding:6px 12px; border-radius:100px; }
.ev-act-hot .ev-act-chips span{ color:#fff; background:rgba(255,255,255,.12); border:1.5px solid rgba(255,255,255,.3); }
.ev-act-white .ev-act-chips span{ color:var(--ink); background:var(--paper-2); border:1.5px solid var(--line); }
.ev-stamp{ font-family:var(--font-display); font-weight:900; font-size:clamp(15px,1.4vw,19px); letter-spacing:.1em; text-transform:uppercase; color:var(--ink); background:var(--yellow); border:3px solid var(--ink); border-radius:14px; padding:10px 16px; transform:rotate(-4deg); box-shadow:4px 4px 0 var(--ink); margin-top:4px; }
.ev-acts-vs{ position:absolute; left:50%; top:50%; transform:translate(-50%,-50%) rotate(-8deg); z-index:3; width:76px; height:76px; display:grid; place-items:center; background:var(--orange); color:#fff; border:3px solid var(--ink); border-radius:50%; font-family:var(--font-display); font-weight:900; font-size:19px; letter-spacing:.04em; text-transform:uppercase; box-shadow:5px 5px 0 var(--ink); }
.ev-secret{ margin-top:34px; display:flex; align-items:center; gap:18px; background:var(--ink); color:#fff; border-radius:22px; padding:22px 26px; border:2.5px solid var(--ink); box-shadow:8px 8px 0 var(--line); }
.ev-secret .ico{ font-size:30px; flex:none; }
.ev-secret b{ font-family:var(--font-display); font-weight:800; display:block; font-size:16.5px; margin-bottom:3px; }
.ev-secret p{ margin:0; font-size:14px; line-height:1.5; color:rgba(255,255,255,.82); }
.ev-secret .ev-redact{ display:inline-block; vertical-align:-2px; width:92px; height:14px; border-radius:4px; background:repeating-linear-gradient(45deg, rgba(255,255,255,.32) 0 7px, rgba(255,255,255,.14) 7px 14px); }
@media (max-width:900px){
  .ev-acts{ grid-template-columns:1fr; gap:20px; }
  .ev-act{ min-height:520px; }
  .ev-acts-vs{ display:none; }
}
@media (max-width:680px){
  .ev-act{ min-height:470px; }
  .ev-act-body{ padding:22px 20px 24px; gap:10px; }
  .ev-act h3{ font-size:clamp(28px,8vw,34px); }
  .ev-stamp{ font-size:14px; padding:8px 13px; }
  .ev-secret{ align-items:flex-start; padding:18px; margin-top:26px; }
}

/* ow hero: warm red grade over the greenish venue photo */
.ev-hero-solid .ev-hero-bg-ow::after{ background:linear-gradient(180deg, rgba(46,10,4,.58) 0%, rgba(40,8,4,.44) 46%, rgba(16,8,6,.92) 100%); }
@media (max-width:680px){ .ev-hero-solid .ev-hero-bg-ow::after{ background:linear-gradient(180deg, rgba(46,10,4,.5) 0%, rgba(40,8,4,.4) 46%, rgba(16,8,6,.92) 100%); } }

/* ---------- orientation week: three round cards instead of the ladder + pass ---------- */
.ev-rounds-wrap.ev-ladder{ background:none; border:0; box-shadow:none; padding:0; max-width:940px; margin:0 auto; position:relative; z-index:2; }
.ev-rounds{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; align-items:stretch; }
.ev-tier.ev-round{ flex-direction:column; align-items:flex-start; justify-content:space-between; gap:14px; margin:0; padding:22px 22px 20px; background:#fff; border:2px solid var(--ink); border-radius:20px; box-shadow:6px 6px 0 var(--line); min-height:172px; }
.ev-round-top{ display:flex; align-items:center; justify-content:space-between; gap:10px; width:100%; }
.ev-round-name{ font-family:var(--font-display); font-weight:900; font-size:19px; color:var(--ink); line-height:1; }
.ev-tier.ev-round .ev-tier-price{ font-size:clamp(34px,3.4vw,44px); line-height:1; }
.ev-tier.ev-round .ev-tier-left{ font-size:11.5px; padding:6px 11px; }
.ev-round-foot{ display:flex; align-items:center; gap:8px; min-height:26px; }
.ev-round-muted{ font-size:12.5px; font-weight:700; color:#9a8a80; }
.ev-tier.ev-round.is-live{ box-shadow:7px 7px 0 var(--orange); }
.ev-tier.ev-round.is-live .ev-round-name{ color:var(--orange); }
.ev-tier.ev-round[data-tier]:hover{ transform:translate(-1px,-2px); }
.ev-rounds-wrap .ev-tier-cta{ margin-top:24px; display:flex; justify-content:center; }
.ev-rounds-wrap .ev-tier-cta .btn{ width:auto; min-width:300px; }
@media (max-width:680px){
  .ev-rounds{ grid-template-columns:1fr; gap:12px; }
  .ev-tier.ev-round{ flex-direction:row; align-items:center; flex-wrap:wrap; min-height:0; padding:16px 16px; gap:8px 12px; }
  .ev-round-top{ width:auto; flex:1 1 auto; justify-content:flex-start; }
  .ev-tier.ev-round .ev-tier-price{ font-size:30px; margin-left:auto; }
  .ev-round-foot{ flex-basis:100%; min-height:0; }
  .ev-round-foot:empty{ display:none; }
  .ev-rounds-wrap .ev-tier-cta .btn{ width:100%; min-width:0; }
}
/* round cards: chips keep a consistent look whichever round is picked */
.ev-tier.ev-round .ev-tier-chip{ background:#fff; border:1.5px solid var(--line); color:#6a5d54; }
.ev-tier.ev-round.is-live .ev-tier-chip{ background:var(--orange); border-color:var(--orange); color:#fff; }

/* the two nights: big "+" between the cards, on phones too */
.ev-acts-plus{ transform:translate(-50%,-50%); width:78px; height:78px; font-size:46px; line-height:1; padding-bottom:5px; box-sizing:border-box; }
@media (max-width:900px){
  .ev-acts-plus{ display:grid; position:static; transform:none; margin:-4px auto; order:2; width:64px; height:64px; font-size:38px; }
  .ev-act-hot{ order:1; } .ev-act-white{ order:3; }
}

/* ---------- round cards v2: real ticket look, ink-filled picked round, sold bar ---------- */
.ev-tier.ev-round{ display:flex; flex-direction:column; gap:0; padding:0; min-height:0; overflow:hidden; }
.ev-round-main{ padding:20px 22px 16px; display:flex; flex-direction:column; align-items:flex-start; gap:10px; }
.ev-round-per{ font-size:12px; font-weight:700; color:#9a8a80; letter-spacing:.02em; margin-top:-4px; }
.ev-round-tear{ position:relative; height:0; border-top:2px dashed var(--line); margin:0 14px; }
.ev-round-tear::before, .ev-round-tear::after{ content:""; position:absolute; top:-11px; width:20px; height:20px; border-radius:50%; background:var(--paper-2); border:2px solid var(--ink); box-sizing:border-box; }
.ev-round-tear::before{ left:-25px; } .ev-round-tear::after{ right:-25px; }
.ev-round-foot{ padding:14px 22px 18px; display:flex; flex-direction:column; gap:10px; min-height:0; }
.ev-round-footrow{ display:flex; align-items:center; justify-content:space-between; gap:10px; min-height:26px; }
.ev-round-bar{ height:9px; border-radius:100px; background:var(--paper-2); border:1.5px solid var(--line); overflow:hidden; }
.ev-round-bar i{ display:block; height:100%; background:var(--orange); border-radius:100px; }
.ev-round-code{ width:46px; height:16px; opacity:.7; background:repeating-linear-gradient(90deg, var(--ink) 0 2px, transparent 2px 4px, var(--ink) 4px 5px, transparent 5px 8px, var(--ink) 8px 11px, transparent 11px 13px); }
/* picked round: ink ticket, orange price */
.ev-tier.ev-round.is-live{ background:var(--ink); border-color:var(--ink); box-shadow:7px 7px 0 var(--orange); }
.ev-tier.ev-round.is-live .ev-round-name{ color:#fff; }
.ev-tier.ev-round.is-live .ev-tier-price{ color:var(--orange); }
.ev-tier.ev-round.is-live .ev-round-per, .ev-tier.ev-round.is-live .ev-round-muted{ color:rgba(255,255,255,.72); }
.ev-tier.ev-round.is-live .ev-round-tear{ border-top-color:rgba(255,255,255,.35); }
.ev-tier.ev-round.is-live .ev-round-tear::before, .ev-tier.ev-round.is-live .ev-round-tear::after{ border-color:var(--ink); }
.ev-tier.ev-round.is-live .ev-round-bar{ background:rgba(255,255,255,.14); border-color:rgba(255,255,255,.25); }
.ev-tier.ev-round.is-live .ev-round-bar i{ background:var(--yellow); }
.ev-tier.ev-round.is-live .ev-round-code{ background:repeating-linear-gradient(90deg, #fff 0 2px, transparent 2px 4px, #fff 4px 5px, transparent 5px 8px, #fff 8px 11px, transparent 11px 13px); }
.ev-tier.ev-round.is-live[data-tier]:hover{ box-shadow:9px 9px 0 var(--orange); }
.ev-rounds-wrap .ev-tiers-trust{ margin-top:18px; }
.ev-rounds-wrap .ev-ladder-note{ margin-top:12px; }
@media (max-width:680px){
  .ev-tier.ev-round{ flex-direction:column; align-items:stretch; padding:0; gap:0; }
  .ev-round-main{ padding:16px 18px 12px; gap:8px; }
  .ev-round-top{ width:100%; justify-content:space-between; }
  .ev-tier.ev-round .ev-tier-price{ font-size:34px; margin-left:0; }
  .ev-round-foot{ padding:12px 18px 14px; flex-basis:auto; }
  .ev-round-footrow{ min-height:0; }
}
/* round cards v2: tear line + sold bar span the full card width */
.ev-tier.ev-round{ align-items:stretch; }
.ev-round-foot{ align-items:stretch; }

/* round cards: a button inside every ticket, orange on the picked one, outlined on the rest */
.ev-round-btn{ display:flex; justify-content:center; width:100%; margin-top:4px; padding:13px 14px; font-size:14.5px; }
.ev-tier.ev-round:not(.is-live) .ev-round-btn{ background:#fff; color:var(--ink); border:2px solid var(--ink); box-shadow:3px 3px 0 var(--ink); }
.ev-tier.ev-round:not(.is-live) .ev-round-btn:hover{ background:var(--paper-2); box-shadow:4px 4px 0 var(--ink); }
.ev-round-foot{ gap:12px; }
}
