@import url('https://fonts.googleapis.com/css2?family=Rubik:wght@700;800;900&display=swap');
/* AFTERPARTY — glass layer. Loaded last: overrides flat panels with frosted glass, depth and photo covers. */
:root{
  --font-ui:'Inter','Onest',system-ui,Arial,sans-serif;
  --glass:rgba(255,255,255,.04);
  --glass-hover:rgba(255,255,255,.08);
  --glass-line:rgba(255,255,255,.08);
  --glass-line-strong:rgba(255,255,255,.16);
  --shadow-deep:0 10px 30px rgba(0,0,0,.5);
  --blur:blur(16px) saturate(140%);
  --bg-deep:#111311;
}
html,body{overflow-x:clip}
body{font-family:var(--font-ui)}
::selection{background:rgba(210,255,90,.3)}

/* ---------- Header ---------- */
header{position:sticky;top:0;z-index:50;background:rgba(17,19,17,.42);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border-bottom:1px solid var(--glass-line);box-shadow:0 10px 30px rgba(0,0,0,.35)}
.city{background:var(--glass);border:1px solid var(--glass-line-strong);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur)}
.outline{background:var(--glass);border:1px solid var(--glass-line-strong);color:#eef1e6;border-radius:10px;-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);transition:background .2s,transform .2s,border-color .2s}
.outline:hover{background:var(--glass-hover);border-color:rgba(255,255,255,.26);transform:translateY(-1px)}
.primary{border-radius:10px;box-shadow:0 8px 24px rgba(210,255,90,.2)}
.primary:hover{box-shadow:0 12px 30px rgba(210,255,90,.3)}

/* ---------- Hero: photo that dissolves into the page ---------- */
.hero{position:relative;isolation:isolate}
.hero-bg{position:absolute;z-index:-1;top:calc(-1 * var(--hh,84px));bottom:-48px;left:50%;width:100vw;margin-left:-50vw;overflow:hidden;pointer-events:none;-webkit-mask-image:linear-gradient(180deg,#000 72%,transparent 100%);mask-image:linear-gradient(180deg,#000 72%,transparent 100%)}
.hero-bg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:68% 38%;filter:saturate(.64) brightness(.8) contrast(1.08)}
.hero-bg:before{content:'';position:absolute;inset:0;z-index:1;background:#1c2a14;mix-blend-mode:color;opacity:.55}
.hero-bg:after{content:'';position:absolute;inset:0;z-index:2;background:
  radial-gradient(ellipse at 50% 60%,transparent 40%,rgba(17,19,17,.55) 100%),
  linear-gradient(90deg,#111311 0%,rgba(17,19,17,.94) 28%,rgba(17,19,17,.5) 52%,rgba(17,19,17,.08) 100%),
  linear-gradient(180deg,rgba(17,19,17,.75) 0%,rgba(17,19,17,0) 22%,rgba(17,19,17,0) 60%,#111311 100%)}
.hero .eyebrow{text-transform:none;font-size:13px;font-weight:500;letter-spacing:.2px;color:#d3dac8}
.hero h1{font-size:clamp(52px,6.1vw,82px);letter-spacing:-1.8px;line-height:1.04;margin:20px 0 22px}
.hero h1 span{box-shadow:0 18px 44px rgba(210,255,90,.18)}
.hero p.hero-lead{font-size:17px;line-height:1.65;color:#cdd4c3;max-width:470px}
.hero-footnote{color:#8c9783!important}
.hero-actions{margin-top:28px}
.orbit{border-color:rgba(255,255,255,.14)}
.orbit.second{border-color:rgba(255,255,255,.08)}
.mini-poster{box-shadow:0 26px 50px rgba(0,0,0,.55);border-color:rgba(255,255,255,.22);border-radius:6px}
.sticker{background:rgba(255,255,255,.09);color:#f4f2e9;border:1px solid var(--glass-line-strong);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);box-shadow:var(--shadow-deep)}
.spark{filter:drop-shadow(0 0 10px rgba(210,255,90,.6))}

/* ---------- Tape: quiet glass band ---------- */
.tape{margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);max-width:none;transform:none;background:var(--glass);color:rgba(244,242,233,.6);border:0;border-top:1px solid var(--glass-line);border-bottom:1px solid var(--glass-line);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);font-size:13px;font-weight:500;letter-spacing:.2px;padding:15px 0;margin-top:48px}

/* ---------- Search + dropdown ---------- */
.search-wrap{position:relative;margin-top:36px;z-index:20}
.search-wrap .search{margin:0;background:var(--glass);border:1px solid var(--glass-line-strong);border-radius:16px;box-shadow:var(--shadow-deep);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);transition:border-color .2s,box-shadow .2s}
.search-wrap .search:focus-within{border-color:rgba(210,255,90,.45);box-shadow:var(--shadow-deep),0 0 0 4px rgba(210,255,90,.08)}
.search select{background:transparent;border-left:1px solid var(--glass-line);color:#c6cfbd}
.search-panel{position:absolute;left:0;right:0;top:calc(100% + 10px);z-index:30;background:rgba(22,26,20,.78);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border:1px solid var(--glass-line-strong);border-radius:18px;padding:20px 22px 22px;box-shadow:0 24px 60px rgba(0,0,0,.6)}
.search-panel[hidden]{display:none}
.sp-block+.sp-block{margin-top:20px}
.sp-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;font-size:12px;font-weight:600;color:#97a38c}
.sp-clear{background:none;border:0;color:#97a38c;font-size:12px;font-weight:500;padding:0}
.sp-clear:hover{color:var(--green)}
.sp-row{display:flex;flex-wrap:wrap;gap:8px}
.sp-chip{display:inline-flex;align-items:center;gap:7px;background:var(--glass);border:1px solid var(--glass-line-strong);color:#e6eadc;border-radius:999px;padding:9px 15px;font-size:13px;font-weight:500;transition:background .2s,border-color .2s,transform .2s}
.sp-chip:hover{background:var(--glass-hover);border-color:rgba(210,255,90,.4);transform:translateY(-1px)}
.sp-chip i{font-style:normal;color:#8e9a84}

/* ---------- Social filter chips ---------- */
.social-filters{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:18px 0 22px;color:inherit}
.sf-label{font-size:12px;font-weight:600;color:#8e9a84;margin-right:4px}
.fchip{position:relative;cursor:pointer;display:inline-flex}
.fchip input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.fchip span{display:inline-flex;align-items:center;gap:8px;padding:11px 19px;border-radius:999px;background:var(--glass);border:1px solid var(--glass-line-strong);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);font-size:13px;font-weight:600;color:#eef1e6;transition:background .2s,transform .2s,box-shadow .2s,border-color .2s}
.fchip:hover span{background:var(--glass-hover);transform:translateY(-1px)}
.fchip input:checked+span{background:var(--green);border-color:var(--green);color:#16200c;box-shadow:0 8px 24px rgba(210,255,90,.28)}
.fchip input:checked+span:before{content:'✓';font-weight:800}
.fchip input:focus-visible+span{outline:3px solid #728e30;outline-offset:3px}
.social-filters .reset{margin-left:auto;background:none;border:0;color:#8e9a84;font-size:12px;font-weight:500;text-decoration:underline;text-underline-offset:3px}
.social-filters .reset:hover{color:var(--green)}

/* ---------- Category chips / segmented controls ---------- */
.chip{background:var(--glass);border:1px solid var(--glass-line-strong);color:#d3dac8;border-radius:999px;font-weight:500;-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur)}
.chip:hover{background:var(--glass-hover)}
.chip.active{background:rgba(210,255,90,.12);border-color:rgba(210,255,90,.55);color:#eaffb4;box-shadow:0 0 0 1px rgba(210,255,90,.1) inset}
.dates{background:var(--glass);border:1px solid var(--glass-line);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border-radius:12px}
.dates button{color:#b8c3aa;border-radius:9px}
.dates button.active{background:rgba(255,255,255,.14);color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.1)}
.sectionbar h2 small{color:#8e9a84}
.viewbar{border-bottom-color:var(--glass-line)}

/* system text = sentence case */
.eyebrow,.quick-label,.meta,.event-kicker,.booking-label,.block-eyebrow,.booking-fact small,.event-host small,.facts small{text-transform:none}

/* ---------- Event cards: photo cover, depth, air ---------- */
.grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:28px 24px}
.card{padding:0;overflow:hidden;background:var(--glass);border:1px solid var(--glass-line);border-radius:22px;box-shadow:var(--shadow-deep);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s,border-color .35s}
.card:hover{transform:translateY(-6px);border-color:rgba(210,255,90,.32);box-shadow:0 24px 54px rgba(0,0,0,.6)}
.poster{height:310px;border-radius:0;background:#161a14;color:#f4f2e9!important;cursor:pointer;overflow:hidden}
.poster:before{display:none!important}
.poster-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:var(--px,50%) var(--py,50%);transform:scale(var(--zoom,1));transform-origin:var(--px,50%) var(--py,50%);filter:saturate(.72) brightness(.8) contrast(1.06);transition:transform .9s cubic-bezier(.2,.7,.2,1)}
.card:hover .poster-photo{transform:scale(calc(var(--zoom,1) * 1.06))}
.poster-tint{position:absolute;inset:0;background:var(--bg);mix-blend-mode:soft-light;opacity:.5}
.poster-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,12,9,.5) 0%,rgba(10,12,9,0) 30%,rgba(10,12,9,.38) 52%,rgba(10,12,9,.94) 100%)}
.poster-top{left:22px;top:22px;max-width:52%;font-size:12px;font-weight:500;letter-spacing:.1px;line-height:1.4;color:rgba(244,242,233,.86);text-shadow:0 1px 10px rgba(0,0,0,.5)}
.poster-bottom{position:absolute;left:22px;right:22px;bottom:22px;z-index:3;display:flex;flex-direction:column;gap:16px}
.poster-title{position:static;max-width:100%;font-size:40px;line-height:1;letter-spacing:-.3px;color:#fff;text-shadow:0 4px 24px rgba(0,0,0,.5)}
.poster .badge{top:20px;right:66px;bottom:auto;left:auto;background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.22);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:6px 12px;border-radius:999px;font-size:12px;font-weight:600;line-height:1.2}
.save{top:18px;right:18px;width:38px;height:38px;display:grid;place-items:center;padding:0;background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.22);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);font-size:17px;line-height:1;transition:transform .2s,background .2s}
.save:hover{transform:scale(1.08);background:rgba(255,255,255,.2)}
.save.selected{background:var(--green);color:#17220f;border-color:var(--green)}
.friends{display:flex;align-items:center;gap:10px;font-size:12px;font-weight:500;color:rgba(244,242,233,.92);text-shadow:0 1px 8px rgba(0,0,0,.5)}
.avs{display:inline-flex}
.av{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:var(--c,#bdacff);color:#1b1730;font-size:11px;font-weight:700;border:2px solid rgba(17,19,17,.9);text-shadow:none}
.av+.av{margin-left:-8px}
.cardbody{padding:20px 22px 22px}
.cardbody .meta{margin:0 0 10px;font-size:12px;font-weight:500;letter-spacing:0;color:#aab59e}
.cardbody h3{margin:0 0 8px;font-size:19px;font-weight:650;letter-spacing:-.3px;line-height:1.3}
.titlebtn{color:inherit;transition:color .2s}
.titlebtn:hover{color:var(--green)}
.cardbody .location{margin:0 0 18px;font-size:13px;color:#8e9a84}
.cardbody .cardbottom{margin:0;border-top:1px solid var(--glass-line);padding-top:16px;font-size:13px}
.cardbody .price{color:#f1f5e8;font-size:14px}
.cardbody .tags{font-size:12px;color:#8e9a84}
.empty{background:var(--glass);border:1px dashed var(--glass-line-strong);border-radius:20px;-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur)}

/* ---------- Map block, banner, dialogs ---------- */
#mapSection{background:var(--glass);border:1px solid var(--glass-line);border-radius:22px;box-shadow:var(--shadow-deep);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur)}
#cityMap{background:#0d0f0c}
.maphead p,.mapnote{color:#8e9a84}
.banner{background:linear-gradient(135deg,rgba(189,172,255,.18),rgba(255,255,255,.04) 60%);color:var(--ink);border:1px solid var(--glass-line);border-radius:22px;padding:38px 42px;box-shadow:var(--shadow-deep);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur)}
.banner p{color:#b8c0ae}
.banner-symbol{color:var(--green);text-shadow:0 0 30px rgba(210,255,90,.45)}
.banner .primary{background:var(--green);color:#16200c;box-shadow:0 8px 24px rgba(210,255,90,.22)}
dialog{background:rgba(22,26,20,.84);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border:1px solid var(--glass-line-strong);border-radius:22px;box-shadow:0 30px 90px rgba(0,0,0,.65)}
dialog::backdrop{background:rgba(5,7,5,.62);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.toast{border-radius:12px;box-shadow:var(--shadow-deep)}

/* ---------- Event page ---------- */
.event-cover{height:380px;border-radius:22px;box-shadow:var(--shadow-deep)}
.event-cover .poster-title{font-size:68px;letter-spacing:-.8px}
.event-cover .poster-top{font-size:13px}
.event-cover .poster-bottom{left:30px;right:30px;bottom:30px}
.event-cover .poster-top{left:30px;top:28px}
.event-cover .badge{right:28px;top:26px}
.booking{top:104px;background:var(--glass);border:1px solid var(--glass-line-strong);box-shadow:var(--shadow-deep);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border-radius:20px}
.event-host{background:var(--glass);border:1px solid var(--glass-line);border-radius:18px;-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur)}
.event-tags span{background:var(--glass);border:1px solid var(--glass-line-strong);border-radius:999px;padding:9px 15px;font-size:12px;-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur)}
.community-home{background:var(--glass);border:1px solid var(--glass-line);border-radius:20px;-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur)}

/* ---------- Responsive ---------- */
@media(max-width:1000px){
  .grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:800px){
  .hero h1{font-size:clamp(46px,9.4vw,68px)}
  .hero{padding-top:190px}
  .hero-bg{bottom:-30px}
  .hero-bg img{object-position:64% 62%}
  .hero-bg:after{background:
    radial-gradient(ellipse at 50% 30%,transparent 45%,rgba(17,19,17,.5) 100%),
    linear-gradient(180deg,rgba(17,19,17,.7) 0%,rgba(17,19,17,.1) 22%,rgba(17,19,17,.55) 48%,#111311 82%)}
  .hero p.hero-lead{font-size:16px}
}
@media(max-width:620px){
  .grid{grid-template-columns:1fr;gap:20px}
  .hero h1{font-size:clamp(42px,12.2vw,60px);letter-spacing:-1.4px}
  .hero p.hero-lead{font-size:15px;line-height:1.6}
  .poster{height:280px}
  .poster-title{font-size:36px}
  .cardbody .meta{font-size:12px}
  .cardbody h3{font-size:18px}
  .cardbody .location{font-size:13px}
  .cardbody .tags{font-size:12px}
  .social-filters{gap:8px}
  .sf-label{width:100%}
  .fchip span{padding:10px 15px;font-size:12px}
  .social-filters .reset{margin-left:0}
  .search-panel{padding:16px}
  .tape{font-size:12px;padding:12px 0}
  .event-cover{height:300px}
  .event-cover .poster-title{font-size:46px}
  .banner{padding:26px}
}
@media(prefers-reduced-motion:reduce){.poster-photo,.card{transition:none!important}}

/* ---------- Polish ---------- */
.cardbody .cardbottom{flex-direction:row;flex-wrap:wrap;gap:6px 12px}
@media(max-width:620px){
  .search-wrap .search{gap:2px;padding:6px 8px}
  .search>span{padding-left:6px;font-size:20px}
  .search input{padding:10px 6px;font-size:14px}
  .search select{max-width:104px;font-size:11px;padding:10px 6px}
  .sf-label{width:auto;flex:1 0 50%}
  .social-filters .reset{margin-left:auto}
}

/* ---------- Seamless marquee (track is duplicated in glass.js; -50% = exactly one copy) ---------- */
.tape{overflow:hidden;white-space:nowrap}
.tape-track{display:flex;width:max-content;animation:tapeScroll 70s linear infinite!important}
.tape-track span{flex:none;margin:0;padding:0 26px}
@keyframes tapeScroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ---------- Partiful-style type: chunky lowercase headings, human dates, soft grey blurbs ---------- */
:root{--font-head:'Rubik','Onest',system-ui,sans-serif}
.sectionbar h2,.maphead h2,.banner h2,.community-home h2{font-family:var(--font-head);font-weight:800;letter-spacing:-.03em;text-transform:lowercase;line-height:1.1}
.sectionbar h2{font-size:36px}
.sectionbar h2 small{font-family:var(--font-ui);font-size:12px;font-weight:500;letter-spacing:0;text-transform:none}
.maphead h2{font-size:28px}
.banner h2{font-size:34px}
.cardbody h3{font-size:19px;font-weight:700;letter-spacing:-.2px;margin:0 0 6px}
.cardbody .meta{margin:0 0 4px;font-size:13px;color:#aab59e}
.cardbody .meta b{color:#f4f2e9;font-weight:700}
.cardbody .location{margin:0 0 10px}
.cardbody .blurb{margin:0 0 18px;font-size:13px;line-height:1.5;color:#8e9a84;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
@media(max-width:620px){.sectionbar h2{font-size:30px}.maphead h2{font-size:24px}.banner h2{font-size:28px}}

/* ---------- Vibe teaser button (hero) ---------- */
.vibe-row{margin:26px 0 0}
.vibe-btn{--glow:210,255,90;display:inline-flex;align-items:center;gap:14px;padding:8px 26px 8px 8px;border-radius:999px;border:1px solid transparent;color:#f4f2e9;cursor:pointer;
  background:linear-gradient(rgba(20,24,18,.72),rgba(20,24,18,.72)) padding-box,linear-gradient(120deg,#d2ff5a,#bdacff 55%,#ff855d) border-box;
  -webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);box-shadow:0 0 22px rgba(var(--glow),.28),0 12px 30px rgba(0,0,0,.5);animation:vibeGlow 2.8s ease-in-out infinite;transition:transform .25s cubic-bezier(.2,.7,.2,1),box-shadow .25s}
.vibe-btn:hover,.vibe-btn:focus-visible{transform:scale(1.05);box-shadow:0 0 38px rgba(var(--glow),.55),0 14px 36px rgba(0,0,0,.55);animation-play-state:paused}
.vibe-btn:focus-visible{outline:3px solid #d2ff5a;outline-offset:4px}
.vibe-orb{position:relative;width:78px;height:78px;flex:none;display:grid;place-items:center}
.vibe-ring{position:absolute;inset:0;width:100%;height:100%;animation:vibeSpin 16s linear infinite}
.vibe-ring text{font:700 9.4px/1 var(--font-ui);fill:#d2ff5a;letter-spacing:.2px}
.vibe-thumb{width:52px;height:52px;border-radius:50%;overflow:hidden;background:#101410;box-shadow:0 0 0 2px rgba(255,255,255,.18)}
.vibe-thumb video{width:100%;height:100%;object-fit:cover;display:block}
.vibe-play{position:absolute;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.35);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.vibe-play svg{width:14px;height:14px;fill:#fff;margin-left:2px}
.vibe-label{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left}
.vibe-label b{font-size:15px;font-weight:700;letter-spacing:-.1px}
.vibe-label small{font-size:12px;font-weight:500;color:#aab59e}
@keyframes vibeGlow{0%,100%{box-shadow:0 0 18px rgba(var(--glow),.22),0 12px 30px rgba(0,0,0,.5)}50%{box-shadow:0 0 36px rgba(var(--glow),.5),0 12px 30px rgba(0,0,0,.5)}}
@keyframes vibeSpin{to{transform:rotate(360deg)}}

/* ---------- Video lightbox ---------- */
html.vibe-lock{overflow:hidden}
.vibe-modal{position:fixed;inset:0;z-index:300;display:grid;place-items:center;padding:20px;background:rgba(8,10,8,.86);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);opacity:0;transition:opacity .3s ease}
.vibe-modal[hidden]{display:none}
.vibe-modal.open{opacity:1}
.vibe-dialog{display:flex;flex-direction:column;align-items:center;gap:16px;width:min(100%,calc((100dvh - 150px) * 9 / 16));transform:translateY(14px) scale(.97);transition:transform .35s cubic-bezier(.2,.7,.2,1)}
.vibe-modal.open .vibe-dialog{transform:none}
.vibe-stage{position:relative;width:100%;aspect-ratio:9/16;max-height:calc(100dvh - 150px);border-radius:22px;overflow:hidden;background:#000;box-shadow:0 30px 90px rgba(0,0,0,.7),0 0 0 1px rgba(255,255,255,.1)}
.vibe-video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#000;cursor:pointer}
.vibe-stage:before,.vibe-stage:after{content:'';position:absolute;left:0;right:0;z-index:2;pointer-events:none;height:90px}
.vibe-stage:before{top:0;background:linear-gradient(180deg,rgba(0,0,0,.6),transparent)}
.vibe-stage:after{bottom:0;background:linear-gradient(0deg,rgba(0,0,0,.6),transparent)}
.vibe-icon-btn{position:absolute;top:14px;z-index:4;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;padding:0;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.25);color:#fff;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:background .2s,transform .2s}
.vibe-icon-btn:hover{background:rgba(255,255,255,.26);transform:scale(1.06)}
.vibe-icon-btn:focus-visible{outline:3px solid #d2ff5a;outline-offset:2px}
.vibe-icon-btn svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.vibe-close{right:14px}
.vibe-mute{left:14px}
.vibe-mute .off{display:none}.vibe-mute[aria-pressed="true"] .on{display:none}.vibe-mute[aria-pressed="true"] .off{display:block}
.vibe-center{position:absolute;inset:0;z-index:3;display:grid;place-items:center;pointer-events:none}
.vibe-center span{width:74px;height:74px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.35);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);opacity:0;transform:scale(.8);transition:opacity .2s,transform .2s}
.vibe-center svg{width:30px;height:30px;fill:#fff;margin-left:4px}
.vibe-stage.paused .vibe-center span{opacity:1;transform:none}
.vibe-bar{position:absolute;left:16px;right:16px;bottom:14px;z-index:4;height:22px;display:flex;align-items:center;cursor:pointer;touch-action:none}
.vibe-bar:focus-visible{outline:3px solid #d2ff5a;outline-offset:2px;border-radius:6px}
.vibe-track{position:relative;width:100%;height:5px;border-radius:999px;background:rgba(255,255,255,.28);transition:height .15s}
.vibe-bar:hover .vibe-track,.vibe-bar.drag .vibe-track{height:8px}
.vibe-fill{position:absolute;left:0;top:0;bottom:0;width:0;border-radius:inherit;background:linear-gradient(90deg,#d2ff5a,#bdacff)}
.vibe-fill:after{content:'';position:absolute;right:-6px;top:50%;width:12px;height:12px;margin-top:-6px;border-radius:50%;background:#fff;box-shadow:0 0 12px rgba(210,255,90,.8)}
.vibe-end{position:absolute;inset:0;z-index:5;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:28px;text-align:center;background:rgba(10,12,9,.72);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
.vibe-end[hidden]{display:none}
.vibe-end h3{margin:0;font-family:var(--font-head);font-size:30px;font-weight:800;letter-spacing:-.03em;text-transform:lowercase;line-height:1.1}
.vibe-end p{margin:0 0 8px;color:#b8c0ae;font-size:14px}
.vibe-cta{width:100%;max-width:340px;padding:15px 22px;border-radius:14px;border:0;background:#d2ff5a;color:#16200c;font-weight:700;font-size:15px;box-shadow:0 10px 28px rgba(210,255,90,.28);transition:transform .2s,box-shadow .2s}
.vibe-cta:hover{transform:translateY(-2px);box-shadow:0 14px 34px rgba(210,255,90,.4)}
.vibe-cta:focus-visible{outline:3px solid #fff;outline-offset:3px}
.vibe-replay{background:none;border:0;color:#d3dac8;font-size:13px;text-decoration:underline;text-underline-offset:3px}
.vibe-dialog>.vibe-cta{width:100%;max-width:none}
.search-wrap{scroll-margin-top:100px}
@media(max-width:620px){
  .vibe-modal{padding:0;place-items:stretch;background:#000}
  .vibe-dialog{width:100%;height:100dvh;gap:0;justify-content:flex-start;transform:none}
  .vibe-stage{max-height:none;flex:1;aspect-ratio:auto;border-radius:0;box-shadow:none}
  .vibe-dialog>.vibe-cta{border-radius:0;max-width:none;padding:17px 22px calc(17px + env(safe-area-inset-bottom,0px))}
  .vibe-icon-btn{top:calc(14px + env(safe-area-inset-top,0px))}
  .vibe-bar{bottom:12px}
  .vibe-btn{padding-right:20px}
  .vibe-label b{font-size:14px}
}
@media(prefers-reduced-motion:reduce){.vibe-btn,.vibe-ring{animation:none}.vibe-modal,.vibe-dialog{transition:none}}

/* Real photos: keep natural colour, lighter wash than the stock crowd shot */
.poster-photo.real{filter:saturate(.95) brightness(.88) contrast(1.04)}
.poster-photo.real+.poster-tint{opacity:.16}
.poster-photo.real~.poster-shade{background:linear-gradient(180deg,rgba(10,12,9,.5) 0%,rgba(10,12,9,0) 28%,rgba(10,12,9,.3) 50%,rgba(10,12,9,.92) 100%)}

