/* ==========================================================================
   Event page, light concept ("ev-" components). Loaded only on event.php.
   Warm neutral ground, one red accent, a dark ticket-stub purchase card.
   The page keeps the class/id hooks main.js and checkout rely on
   (.buy-panel, #buyPanel, .tier, .qty, .poster-summary, #cd-text, #likeBtn...).
   ========================================================================== */

body.event-page{background:#F7F3F1;}

.ev{
  --ink:#1B1417; --muted:#6B6064; --muted-2:#756A6E;
  --line:#E9E1DE; --line-strong:#D9CFCB;
  --paper:#F7F3F1; --surface:#FFFFFF;
  --purple-tint:#FDEDED; --purple-tint-2:#F9D7D7; --purple-deep:#991B1B;
  background:#F7F3F1; color:var(--ink);
  font-family:'Plus Jakarta Sans',system-ui,sans-serif; line-height:1.55;
  --ev-nav:78px;
}
.ev *{box-sizing:border-box;}
.ev a{color:inherit;}
.ev button{font-family:inherit;}
.ev-wrap{max-width:1120px; margin:0 auto; padding:0 24px;}
.ev-grow{flex:1;}
.ev .sr-only{position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;}
.ev :focus-visible{outline:2px solid #DC2626; outline-offset:2px;}

/* ---------- buttons & chips ---------- */
.ev-btn{display:inline-flex; align-items:center; justify-content:center; gap:10px; font-weight:800; font-size:15px; line-height:1; padding:16px 26px; border-radius:100px; border:1.5px solid transparent; text-decoration:none; cursor:pointer; transition:background .2s ease, border-color .2s ease, transform .15s ease, box-shadow .2s ease; white-space:nowrap;}
.ev-btn:active{transform:scale(0.98);}
.ev-btn-primary{background:#DC2626; color:#fff !important; box-shadow:0 16px 30px -14px rgba(220,38,38,0.75);}
.ev-btn-primary:hover{background:#C41F1F;}
.ev-btn-sub{font-weight:600; opacity:0.92;}
.ev-btn-outline{background:#fff; color:var(--ink); border-color:var(--line-strong);}
.ev-btn-outline:hover{border-color:var(--ink);}
.ev-btn-outline[aria-pressed="true"]{background:var(--ink); border-color:var(--ink); color:#fff;}
.ev-btn-dark{background:var(--ink); color:#fff; border-color:var(--ink);}
.ev-btn-dark:hover{background:#000;}
.ev-btn-dark[aria-pressed="true"]{background:#fff; color:var(--ink);}
.ev-btn-sm{padding:10px 20px; font-size:13.5px;}
.ev-icon-btn{display:inline-flex; align-items:center; justify-content:center; gap:7px; min-width:48px; height:48px; padding:0 14px; background:#fff; color:var(--ink); border:1.5px solid var(--line-strong); border-radius:100px; cursor:pointer; font-weight:700; font-size:14px; transition:border-color .2s ease, background .2s ease;}
.ev-icon-btn:hover{border-color:var(--ink);}
.ev-icon-btn.like-btn.liked{background:#FDEDED; border-color:#DC2626; color:#991B1B;}
.ev-icon-btn.like-btn.liked svg path{fill:currentColor;}
.ev-icon-btn:disabled{opacity:.6; cursor:default;}

.ev-chip{display:inline-flex; align-items:center; gap:4px; font-size:11px; font-weight:800; letter-spacing:0.03em; border-radius:100px; padding:3px 10px; white-space:nowrap;}
.ev-chip-official{background:#DC2626; color:#fff; text-transform:uppercase; letter-spacing:0.06em;}
.ev-chip-official.ev-chip-solid-soft{background:#FDEDED; color:#991B1B;}
.ev-chip-org{background:#FDEDED; color:#991B1B;}
.ev-chip-verified{background:#fff; color:var(--muted); border:1px solid var(--line-strong); font-weight:700;}

.ev-avatar{width:44px; height:44px; flex:none; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; font-weight:800; font-size:14px;}
.ev-avatar-lg{width:48px; height:48px;}
.ev-avatar-sm{width:34px; height:34px; font-size:12px;}

/* ---------- hero ---------- */
.ev-hero{padding:44px 0 34px;}
.ev-hero-grid{display:grid; grid-template-columns:minmax(0,420px) minmax(0,1fr); gap:44px; align-items:start;}
.ev-cover{position:relative; width:100%; max-width:420px; cursor:zoom-in; border-radius:28px;}
.ev-cover img{display:block; width:100%; height:auto; max-height:700px; object-fit:contain; border-radius:28px; box-shadow:0 28px 60px -28px rgba(94,23,48,0.55), 0 0 0 1px rgba(27,20,23,0.06);}
.ev-cover-fallback{aspect-ratio:1/1; display:flex; align-items:center; justify-content:center; font-size:5rem; background:radial-gradient(110% 90% at 18% 8%, #F0806A 0%, #C23A3F 38%, #5E1730 100%); cursor:default;}
.ev-hero-text{min-width:0; padding-top:4px;}
.ev-eyebrow{display:flex; align-items:center; gap:12px; font-size:12px; font-weight:800; letter-spacing:0.12em; text-transform:uppercase;}
.ev-eyebrow-cat{color:#DC2626;}
.ev-eyebrow-state{color:var(--muted);}
.ev-eyebrow-state #cd-text{font-family:'JetBrains Mono',monospace; letter-spacing:0; color:var(--ink);}
.ev-dot{width:4px; height:4px; border-radius:50%; background:#C9BFBC;}
.ev-title{font-family:'Outfit',Georgia,serif; font-weight:700; font-size:clamp(2.1rem,4.4vw,3.4rem); line-height:1.05; letter-spacing:-0.01em; margin:14px 0 0; text-wrap:balance; color:var(--ink);}
.ev-meta{list-style:none; margin:26px 0 0; padding:0; display:flex; flex-direction:column; gap:12px; font-weight:600;}
.ev-meta li{display:flex; align-items:flex-start; gap:12px;}
.ev-meta svg{flex:none; color:#DC2626; margin-top:2px;}
.ev-org-row{display:flex; align-items:center; gap:14px; margin-top:28px; padding:14px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.ev-org-info{flex:1; min-width:0;}
.ev-org-lab{display:none}
.ev-verified{display:inline-flex; flex:none; color:#1D9BF0}
.ev-org-name{display:flex; align-items:center; gap:8px; flex-wrap:wrap; font-weight:800;}
.ev-org-name a{text-decoration:none;}
.ev-org-name a:hover{text-decoration:underline;}
.ev-org-sub{font-size:13px; color:var(--muted-2);}
.ev-actions{display:flex; gap:10px; margin-top:26px; align-items:center; flex-wrap:wrap;}
.ev-pulse{display:flex; margin-top:22px; background:#fff; border:1px solid var(--line); border-radius:18px; padding:18px 0; box-shadow:0 14px 28px -24px rgba(27,20,23,0.35);}
.ev-pulse-item{flex:1; padding:0 14px; text-align:center; border-left:1px solid var(--line);}
.ev-pulse-item:first-child{border-left:0;}
.ev-pulse-item b{display:block; font-family:'Outfit',Georgia,serif; font-size:30px; font-weight:700; line-height:1;}
.ev-pulse-item span{display:block; font-size:13px; color:var(--muted-2); margin-top:4px;}

/* ---------- tabs ---------- */
.ev-tabs{position:sticky; top:var(--ev-nav); z-index:30; background:rgba(247,243,241,0.94); backdrop-filter:blur(10px); border-bottom:1px solid var(--line);}
.ev-tabs-row{display:flex; gap:32px; overflow-x:auto; scrollbar-width:none;}
.ev-tabs-row::-webkit-scrollbar{display:none;}
.ev-tabs a{padding:15px 0; font-weight:700; color:var(--muted); text-decoration:none; border-bottom:3px solid transparent; white-space:nowrap;}
.ev-tabs a:hover{color:var(--ink);}
.ev-tabs a.is-active{color:var(--ink); border-bottom-color:#DC2626;}

/* ---------- layout ---------- */
.ev-grid{display:grid; grid-template-columns:minmax(0,1fr) 380px; gap:44px; align-items:start; padding-top:34px; padding-bottom:90px;}
.ev-main{min-width:0;}
.ev-side{display:flex; flex-direction:column; gap:24px; min-width:0; align-self:stretch;}
.ev-section{margin-bottom:56px; scroll-margin-top:calc(var(--ev-nav) + 64px);}
.ev-h2{font-family:'Outfit',Georgia,serif; font-weight:700; font-size:30px; line-height:1.15; margin:0 0 20px; color:var(--ink);}
.ev-about .about-text{font-size:17px; max-width:64ch; color:#3F3639;}

/* ---------- composer ---------- */
.ev-composer{background:#fff; border:1px solid var(--line); border-radius:20px; padding:18px 20px; margin-bottom:20px;}
.ev-composer-top{display:flex; gap:14px; align-items:flex-start;}
.ev-composer textarea{flex:1; min-width:0; resize:vertical; min-height:48px; border:0; background:var(--paper); border-radius:18px; padding:13px 18px; font:inherit; color:var(--ink);}
.ev-composer textarea::placeholder{color:var(--muted-2);}
.ev-composer-bar{display:flex; align-items:center; gap:14px; margin-top:14px; flex-wrap:wrap;}
.ev-file{position:relative; display:inline-flex; align-items:center; gap:8px; font-weight:700; font-size:13px; background:var(--paper); border-radius:100px; padding:9px 16px; cursor:pointer; max-width:100%;}
.ev-file input{position:absolute; inset:0; width:100%; height:100%; opacity:0; cursor:pointer;}
.ev-file span{overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:160px;}
.ev-check{display:inline-flex; align-items:center; gap:7px; font-weight:600; font-size:13.5px;}
.ev-composer-note{font-size:12.5px; font-weight:700; color:var(--muted-2);}
.ev-note-card{display:flex; align-items:center; gap:14px; flex-wrap:wrap; background:#fff; border:1px solid var(--line); border-radius:20px; padding:18px 22px; margin-bottom:20px;}
.ev-note-card b{display:block; width:100%; font-size:16px;}
.ev-note-card span{flex:1; min-width:200px; color:var(--muted);}

/* ---------- feed & posts ---------- */
.ev-feed{display:flex; flex-direction:column; gap:20px;}
.ev-empty{display:flex; flex-direction:column; gap:4px; align-items:center; text-align:center; background:#fff; border:1px dashed var(--line-strong); border-radius:20px; padding:36px 20px; color:var(--muted);}
.ev-empty b{color:var(--ink); font-size:16px;}
.ev-more{display:flex; justify-content:center; margin-top:24px;}
.ev-post{background:#fff; border:1px solid var(--line); border-radius:20px; scroll-margin-top:calc(var(--ev-nav) + 70px);}
.ev-post.is-official{background:#FDEDED; border-color:#F6CFCF;}
.ev-post-head{display:flex; align-items:center; gap:12px; padding:18px 20px 0;}
.ev-post-who{flex:1; min-width:0;}
.ev-author{display:flex; align-items:center; gap:8px; flex-wrap:wrap;}
.ev-author-name{font-weight:800;}
.ev-post-meta{font-size:13px; color:var(--muted-2);}
.ev-pin{font-weight:800; color:#991B1B;}
.ev-post-body{padding:14px 20px 0; font-size:16px; overflow-wrap:anywhere;}
.ev-post.is-official .ev-post-body{font-size:17px;}
.ev-post-photo{display:block; width:calc(100% - 40px); margin:14px 20px 0; padding:0; border:0; background:var(--paper); border-radius:16px; overflow:hidden; cursor:zoom-in;}
.ev-post-photo img{display:block; width:100%; height:auto; max-height:620px; object-fit:contain;}
.ev-post-stats{display:flex; align-items:center; gap:16px; padding:14px 20px; font-size:14px; color:var(--muted); min-height:20px;}
.ev-post-stats b{color:var(--ink);}
.ev-count-btn{background:none; border:0; padding:0; color:var(--muted); font-size:14px; cursor:pointer;}
.ev-count-btn:hover{color:var(--ink); text-decoration:underline;}
.ev-post-actions{display:flex; border-top:1px solid var(--line); position:relative;}
.ev-post.is-official .ev-post-actions{border-top-color:#F6CFCF;}
.ev-react-wrap{position:relative; flex:1; display:flex;}
.ev-post-actions > .ev-action, .ev-post-actions .ev-react-wrap > .ev-action{flex:1;}
.ev-action{display:flex; align-items:center; justify-content:center; gap:8px; min-height:48px; background:transparent; border:0; color:var(--ink); font-weight:700; font-size:14px; cursor:pointer; border-radius:0;}
.ev-post-actions > .ev-action, .ev-post-actions > .ev-react-wrap{border-left:1px solid var(--line);}
.ev-post-actions > :first-child{border-left:0;}
.ev-post.is-official .ev-post-actions > *{border-left-color:#F6CFCF;}
.ev-action:hover{background:rgba(27,20,23,0.04);}
.ev-action.is-on{color:#DC2626;}
.ev-react-ico{display:inline-flex; font-size:17px; line-height:1;}

/* reaction picker */
.ev-picker{position:absolute; left:8px; bottom:calc(100% + 6px); z-index:25; display:flex; gap:2px; background:#fff; border:1px solid var(--line-strong); border-radius:100px; padding:6px 8px; box-shadow:0 16px 36px -12px rgba(27,20,23,0.4);}
.ev-picker[hidden]{display:none;}
.ev-picker-btn{width:42px; height:42px; display:inline-flex; align-items:center; justify-content:center; font-size:23px; line-height:1; background:transparent; border:0; border-radius:50%; cursor:pointer; transition:transform .12s ease, background .12s ease;}
.ev-picker-btn:hover, .ev-picker-btn:focus-visible{background:#F4EEEB; transform:scale(1.18);}
.ev-comment .ev-picker{bottom:calc(100% + 2px); left:0;}

/* ⋯ menu */
.ev-menu-wrap{position:relative; flex:none;}
.ev-menu-btn{width:44px; height:44px; display:inline-flex; align-items:center; justify-content:center; background:transparent; border:0; border-radius:50%; color:var(--muted); cursor:pointer;}
.ev-menu-btn:hover{background:rgba(27,20,23,0.06); color:var(--ink);}
.ev-menu{position:absolute; right:0; top:calc(100% + 2px); z-index:26; min-width:190px; background:#fff; border:1px solid var(--line-strong); border-radius:14px; box-shadow:0 18px 40px -14px rgba(27,20,23,0.45); overflow:hidden;}
.ev-menu[hidden]{display:none;}
.ev-menu-item{display:block; width:100%; text-align:left; padding:13px 16px; background:#fff; border:0; border-bottom:1px solid var(--line); font-weight:700; font-size:14px; color:var(--ink); cursor:pointer;}
.ev-menu-item:last-child{border-bottom:0;}
.ev-menu-item:hover{background:#F7F3F1;}
.ev-menu-item.danger{color:#B91C1C;}

/* comments */
.ev-thread{background:#F7F3F1; border-top:1px solid var(--line); padding:16px 20px 18px; border-radius:0 0 20px 20px;}
.ev-post.is-official .ev-thread{background:#FBE0E0; border-top-color:#F6CFCF;}
.ev-thread[hidden]{display:none;}
.ev-comments{display:flex; flex-direction:column; gap:14px; margin-bottom:14px;}
.ev-comments:empty{display:none;}
.ev-comment{display:flex; gap:10px;}
.ev-comment-main{flex:1; min-width:0;}
.ev-bubble{background:#fff; border:1px solid var(--line); border-radius:16px; padding:9px 8px 9px 14px;}
.ev-bubble-top{display:flex; align-items:center; gap:7px; flex-wrap:wrap; font-size:14px;}
.ev-bubble-top .ev-menu-wrap{margin-left:auto;}
.ev-bubble-top .ev-menu-btn{width:30px; height:30px;}
.ev-comment-text{color:#3F3639; padding-right:6px; overflow-wrap:anywhere;}
.ev-comment-meta{display:flex; align-items:center; gap:16px; margin:5px 0 0 6px; font-size:12px; font-weight:700; color:var(--muted-2);}
.ev-link-btn{background:none; border:0; padding:6px 0; font-size:12px; font-weight:700; color:var(--muted-2); cursor:pointer;}
.ev-link-btn:hover, .ev-link-btn.is-on{color:var(--ink);}
.ev-link-btn.is-on{color:#DC2626;}
.ev-replies{display:flex; flex-direction:column; gap:12px; margin-top:12px;}
.ev-replies:empty{display:none;}
.ev-comment.is-reply .ev-avatar{width:28px; height:28px; font-size:11px;}
.ev-comment-form{display:flex; gap:8px; align-items:center;}
.ev-comment-form.is-reply{margin:10px 0 0;}
.ev-comment-form input{flex:1; min-width:0; background:#fff; border:1px solid var(--line-strong); border-radius:100px; padding:11px 16px; font:inherit;}
.ev-send{width:44px; height:44px; flex:none; border-radius:50%; background:#DC2626; color:#fff; border:0; cursor:pointer; display:inline-flex; align-items:center; justify-content:center;}
.ev-send:disabled{opacity:.55;}
.ev-login-prompt{display:inline-block; font-weight:800; color:#991B1B; text-decoration:none;}
.ev-muted-note{font-size:13px; color:var(--muted-2);}

/* modal + toast */
.ev-modal{position:fixed; inset:0; z-index:120; display:flex; align-items:center; justify-content:center; padding:20px; background:rgba(21,13,28,0.6);}
.ev-modal[hidden]{display:none;}
.ev-modal-card{width:100%; max-width:420px; max-height:90vh; overflow:auto; background:#fff; border-radius:22px; padding:24px; box-shadow:0 30px 70px -20px rgba(0,0,0,0.5);}
.ev-modal-card h3{font-family:'Outfit',Georgia,serif; font-size:22px; margin:0;}
.ev-muted-note{font-size:14px; color:var(--muted); margin:6px 0 14px;}
.ev-reasons{border:0; padding:0; margin:0 0 12px; display:flex; flex-direction:column; gap:2px;}
.ev-reasons label{display:flex; align-items:center; gap:10px; padding:10px 6px; font-weight:600; border-radius:10px; cursor:pointer;}
.ev-reasons label:hover{background:#F7F3F1;}
.ev-modal-card textarea{width:100%; border:1.5px solid var(--line); border-radius:12px; padding:10px 14px; font:inherit; resize:vertical;}
.ev-modal-actions{display:flex; justify-content:flex-end; gap:10px; margin-top:16px;}
.ev-toast{position:fixed; left:50%; bottom:92px; transform:translateX(-50%); z-index:130; background:#1B1417; color:#fff; font-weight:700; font-size:14px; padding:12px 20px; border-radius:100px; box-shadow:0 14px 30px -10px rgba(0,0,0,0.5); max-width:calc(100vw - 32px);}
.ev-toast[hidden]{display:none;}
.ev-toast.is-error{background:#991B1B;}

/* ---------- sidebar cards ---------- */
.ev-card{background:#fff; border:1px solid var(--line); border-radius:20px; padding:22px;}
.ev-card-head{display:flex; align-items:center; gap:12px;}
.ev-card-title{flex:1; min-width:0; display:flex; flex-direction:column;}
.ev-card-title a, .ev-card-title span{font-weight:800; text-decoration:none;}
.ev-card-title a:hover{text-decoration:underline;}
.ev-card-title small{font-size:13px; color:var(--muted-2);}
.ev-card-title-lg{font-weight:800; font-size:17px;}
.ev-card-text{margin:14px 0 0; color:var(--muted); font-size:14px;}
.ev-card-title-lg + .ev-card-text{margin-top:8px;}
.ev-card-sub{margin-top:16px; font-size:12px; font-weight:800; letter-spacing:0.08em; text-transform:uppercase; color:var(--muted-2);}
.ev-social{display:flex; gap:8px; margin-top:10px; flex-wrap:wrap;}
.ev-social a{width:42px; height:42px; border-radius:50%; border:1.5px solid var(--line); display:flex; align-items:center; justify-content:center; text-decoration:none; font-weight:800; font-size:12px;}
.ev-social a:hover{border-color:var(--ink);}
.ev-going-you{display:inline-flex; align-items:center; gap:6px; margin-top:10px; font-size:13px; font-weight:800; color:#991B1B; background:#FDEDED; border-radius:100px; padding:5px 12px;}

/* ---------- ticket stub (the purchase card) ---------- */
.ev-stub{--st-bg:#1B1417; --st-ink:#fff; --st-muted:rgba(255,255,255,0.72); --st-line:rgba(255,255,255,0.14); --st-ctl:rgba(255,255,255,0.35); --st-field:rgba(255,255,255,0.07);}
.buy-panel.ev-stub{background:var(--st-bg); color:var(--st-ink); border:0; border-radius:22px; box-shadow:none; overflow:hidden;}
.ev-stub-top{position:relative; height:214px; padding:26px 28px 0; overflow:hidden;}
.ev-stub-top::after{content:''; position:absolute; left:26px; right:26px; bottom:0; border-top:2px dashed var(--st-line);}
.ev-stub-label{font-size:11px; font-weight:800; letter-spacing:0.18em; color:#F0A5A5;}
.ev-stub-title{font-family:'Outfit',Georgia,serif; font-weight:700; font-size:26px; line-height:1.12; margin-top:10px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;}
.ev-stub-when{margin-top:14px; font-weight:600; font-size:14px;}
.ev-stub-where{font-size:14px; color:var(--st-muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.ev-stub .poster-tiers{padding:6px 28px 0;}
.ev-stub .tier{border-bottom:1px solid var(--st-line);}
.ev-stub .tier .tn{color:var(--st-ink); font-size:15px;}
.ev-stub .tier .td{color:var(--st-muted);}
.ev-stub .tier .tp{color:var(--st-muted); font-family:'Plus Jakarta Sans',system-ui,sans-serif; font-weight:600; margin-top:3px;}
.ev-stub .qty{border:0; gap:12px; border-radius:0; overflow:visible;}
.ev-stub .qty button{width:34px; height:34px; border-radius:50%; border:1px solid var(--st-ctl); background:transparent; color:var(--st-ink); font-size:1.05rem;}
.ev-stub .qty button:hover{border-color:var(--st-ink);}
.ev-stub .qty .n{border:0; width:auto; min-width:18px; height:auto; color:var(--st-ink);}
.ev-stub .poster-summary{background:var(--st-field); border-top:0; border-radius:14px; margin:12px 28px 0; padding:14px 18px;}
.ev-stub .poster-summary .r{color:var(--st-muted);}
.ev-stub .poster-summary .r.total{color:var(--st-ink); border-top-color:var(--st-line);}
.ev-stub .poster-foot{padding:20px 28px 26px;}
.ev-stub .secure-note{color:var(--st-muted);}
.ev-stub .alert{margin:16px 28px 0;}
.ev-stub .tag-pill{background:rgba(255,255,255,0.12); color:var(--st-ink);}
.ev-stub .waitlist-btn{border-color:var(--st-ctl); color:var(--st-ink);}
.ev-stub .waitlist-btn.primary{background:#DC2626; border-color:#DC2626;}
.ev-stub .waitlist-state{color:#F0A5A5;}
.ev-stub .btn-purple{background:#DC2626; border-radius:100px;}

@media (min-width:921px){
  .ev-stub-wrap{position:sticky; top:calc(var(--ev-nav) + 24px); filter:drop-shadow(0 26px 34px rgba(27,20,23,0.22));}
  .buy-panel.ev-stub{position:static;
    -webkit-mask:radial-gradient(circle 13px at 0 214px, #0000 97%, #000) left/51% 100% no-repeat, radial-gradient(circle 13px at 100% 214px, #0000 97%, #000) right/51% 100% no-repeat;
            mask:radial-gradient(circle 13px at 0 214px, #0000 97%, #000) left/51% 100% no-repeat, radial-gradient(circle 13px at 100% 214px, #0000 97%, #000) right/51% 100% no-repeat;}
}

/* ended panel (replaces the stub) */
.ev .ended-panel{position:static; background:#fff; border:1px solid var(--line); box-shadow:none; color:var(--ink);}
.ev .ended-panel p{color:var(--muted);}
.ev .ended-panel h3{color:var(--ink);}
.ev .ended-panel-badge{background:#FDEDED; color:#DC2626;}
.ev .ended-panel-rating{background:var(--paper); color:var(--muted);}
.ev .ended-panel-rating .avg{color:var(--ink);}
.ev .ended-panel-link{color:#991B1B;}

/* ---------- gallery & reviews (existing markup, restyled) ---------- */
.ev .gallery-section-head h3{font-family:'Outfit',Georgia,serif;}
.ev .photo-item, .ev .video-item{border-radius:14px; background:#EDE6E3; border-color:var(--line);}
.ev .photo-item.featured{border-radius:14px;}
.ev .photo-grid{gap:10px;}
.ev .review-summary .avg{color:var(--ink);}
.ev .review-form{background:#fff; border:1px solid var(--line); border-radius:20px; padding:20px;}
.ev .review-row{background:#fff; border:1px solid var(--line); border-radius:18px; padding:16px 18px; margin-bottom:12px;}
.ev .review-comment{color:#3F3639;}
.ev .organizer-avatar{border-radius:50%;}
.ev .share-popover{background:#fff; border-color:var(--line);}
.ev .alert-success{background:#FDEDED; color:#991B1B; border-color:#F6CFCF;}

/* ---------- mobile ticket bar ---------- */
@media (max-width:920px){
  .mobile-buy-bar{background:#fff; border-top:1px solid var(--line); box-shadow:0 -14px 30px -16px rgba(27,20,23,0.25);}
  .mobile-buy-bar .lbl{color:var(--muted-2);}
  .mobile-buy-bar .amt{color:var(--ink); font-family:'Plus Jakarta Sans',system-ui,sans-serif;}
  .mobile-buy-bar .btn{background:#DC2626; border-radius:100px; padding:13px 26px;}
}

/* ---------- responsive ---------- */
@media (max-width:980px){
  .ev-grid{grid-template-columns:1fr; gap:28px;}
}
@media (max-width:920px){
  /* the sheet is position:fixed, and a filter on an ancestor would trap it */
  .ev-stub-wrap{position:static; filter:none;}
  .ev-stub{--st-bg:#fff; --st-ink:#1B1417; --st-muted:#6B6064; --st-line:#E9E1DE; --st-ctl:#CFC4C0; --st-field:#F7F3F1;}
  .buy-panel.ev-stub{-webkit-mask:none; mask:none; border-radius:22px 22px 0 0;}
  .ev-stub-top{height:auto; padding:20px 56px 18px 24px;}
  .ev-stub-title{font-size:22px;}
  .ev-stub .poster-tiers{padding:6px 24px 0;}
  .ev-stub .poster-summary{margin:12px 24px 0;}
  .ev-stub .poster-foot{padding:18px 24px 24px;}
  .ev-stub .alert{margin:16px 24px 0;}
  .ev-stub-label{color:#DC2626;}
}
@media (max-width:900px){
  .ev-hero{padding:26px 0 22px;}
  .ev-hero-grid{grid-template-columns:1fr; gap:26px;}
  .ev-cover{margin:0 auto;}
  .ev-title{font-size:clamp(1.9rem,8vw,2.5rem);}
  .ev-section{margin-bottom:44px;}
  .ev-h2{font-size:25px;}
}
@media (max-width:640px){
  .ev-wrap{padding:0 16px;}
  .ev-actions{display:grid; grid-template-columns:1fr 1fr; gap:10px;}
  .ev-actions .ev-btn-primary{grid-column:1 / -1;}
  .ev-actions .ev-event-react, .ev-actions .ev-icons{display:contents;}
  .ev-actions .ev-grow, .ev-event-react #evEventReactSum{display:none;}
  .ev-actions .ev-btn, .ev-actions .ev-icon-btn, .ev-actions .share-wrap{width:100%;}
  .ev-actions .ev-btn{padding-left:12px; padding-right:12px; font-size:14px;}
  .ev-pulse{padding:14px 0;}
  .ev-pulse-item{flex:1 1 0; min-width:0; padding:0 4px;}
  .ev-pulse-item b{font-size:24px;}
  .ev-pulse-item span{font-size:12px;}
  .ev-tabs-row{gap:24px;}
  .ev-composer{padding:14px;}
  .ev-composer-top{gap:10px;}
  .ev-post-head{padding:14px 14px 0;}
  .ev-post-body{padding:12px 14px 0;}
  .ev-post-photo{width:calc(100% - 28px); margin:12px 14px 0;}
  .ev-post-stats{padding:12px 14px;}
  .ev-thread{padding:14px;}
  .ev-card{padding:18px;}
  .ev-toast{bottom:96px;}
  .ev-modal{align-items:flex-end; padding:0;}
  .ev-modal-card{border-radius:22px 22px 0 0; max-width:none;}
}
@media (prefers-reduced-motion:reduce){
  .ev *{transition:none !important;}
}

/* ==========================================================================
   Organizer public profile (body.ev-page)
   ========================================================================== */
body.ev-page{background:#F7F3F1;}
.ev-avatar-xl{width:136px; height:136px; font-family:'Outfit',Georgia,serif; font-size:48px; box-shadow:0 0 0 8px #fff, 0 20px 40px -20px rgba(94,23,48,0.6);}
.ev-org-hero{display:flex; align-items:center; gap:40px; padding-top:56px; padding-bottom:36px; flex-wrap:wrap;}
.ev-org-hero-main{flex:1 1 420px; min-width:0;}
.ev-org-hero-name{display:flex; align-items:center; gap:14px; flex-wrap:wrap;}
.ev-org-hero-name h1{font-family:'Outfit',Georgia,serif; font-weight:700; font-size:clamp(2rem,4vw,3rem); line-height:1.05; margin:0; color:var(--ink);}
.ev-org-hero-bio{margin:12px 0 0; max-width:60ch; color:var(--muted); font-size:17px;}
.ev-org-hero-actions{display:flex; align-items:center; gap:10px; margin-top:22px; flex-wrap:wrap;}
.ev-pill{display:inline-flex; align-items:center; gap:8px; min-height:44px; padding:0 16px; background:#fff; border:1.5px solid var(--line); border-radius:100px; font-weight:700; font-size:14px; text-decoration:none;}
.ev-pill b{font-size:12px;}
.ev-pill:hover{border-color:var(--ink);}
.ev-statbar{display:flex; flex-wrap:wrap; background:#fff; border:1px solid var(--line); border-radius:20px; overflow:hidden;}
.ev-stat{flex:1 1 180px; padding:22px 28px; border-left:1px solid var(--line);}
.ev-stat:first-child{border-left:0;}
.ev-stat b{display:block; font-family:'Outfit',Georgia,serif; font-size:34px; font-weight:700; line-height:1;}
.ev-stat span{display:block; margin-top:6px; font-size:13px; color:var(--muted-2);}
.ev-star{font-size:18px; color:#B7791F;}
.ev-profile-body{padding-top:44px; padding-bottom:90px;}
.ev-h2-count{font-family:'Plus Jakarta Sans',system-ui,sans-serif; font-size:15px; font-weight:700; color:var(--muted-2); margin-left:6px;}
.ev-section-note{margin:-10px 0 22px; color:var(--muted);}
.ev-egrid{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:30px 26px;}
.ev-ecard{display:flex; flex-direction:column; text-decoration:none; color:inherit; min-width:0;}
.ev-ecard-art{position:relative; display:block; aspect-ratio:1/1; border-radius:22px; overflow:hidden; background:radial-gradient(110% 90% at 18% 8%, #F0806A 0%, #C23A3F 38%, #5E1730 100%); box-shadow:0 22px 40px -26px rgba(94,23,48,0.55); transition:transform .3s ease, box-shadow .3s ease;}
.ev-ecard:hover .ev-ecard-art{transform:translateY(-4px); box-shadow:0 28px 46px -24px rgba(94,23,48,0.6);}
.ev-ecard-art img{width:100%; height:100%; object-fit:cover; display:block;}
.ev-ecard-fallback{position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-size:3.4rem;}
.ev-ecard-date{position:absolute; top:14px; left:14px; background:#fff; border-radius:14px; padding:6px 12px; text-align:center; line-height:1.1; box-shadow:0 6px 16px -8px rgba(0,0,0,0.4);}
.ev-ecard-date b{display:block; font-size:20px;}
.ev-ecard-date i{display:block; font-style:normal; font-size:11px; font-weight:800; color:#DC2626; letter-spacing:0.06em;}
.ev-ecard-pill{position:absolute; top:14px; left:14px; background:rgba(27,20,23,0.78); color:#fff; font-size:11px; font-weight:800; letter-spacing:0.08em; text-transform:uppercase; border-radius:100px; padding:5px 12px;}
.ev-ecard-title{margin-top:14px; font-weight:800; font-size:17px; line-height:1.3; overflow-wrap:anywhere;}
.ev-ecard-sub{color:var(--muted); font-size:14px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.ev-ecard-foot{margin-top:6px; font-size:14px; color:var(--muted-2); min-height:21px;}
.ev-ecard-foot b{color:var(--ink);}
.ev-ecard-foot .review-stars{font-size:0.95rem;}
@media (max-width:900px){
  .ev-egrid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .ev-org-hero{padding-top:34px; gap:24px;}
  .ev-avatar-xl{width:104px; height:104px; font-size:38px;}
}
@media (max-width:560px){
  .ev-egrid{grid-template-columns:1fr; gap:26px;}
  .ev-stat{flex:1 1 45%; padding:18px 20px;}
  .ev-stat:nth-child(odd){border-left:0;}
  .ev-stat:nth-child(n+3){border-top:1px solid var(--line);}
  .ev-stat b{font-size:28px;}
}

/* ---------- reactions on the event itself ---------- */
.ev-event-react{display:flex; align-items:center; gap:10px;}
.ev-icons{display:flex; align-items:center; gap:10px;}
.ev-event-react .ev-react-wrap{flex:none;}
.ev-event-react .ev-react-btn.is-on{border-color:#DC2626; color:#991B1B; background:#FDEDED;}
.ev-event-react .ev-picker{left:0; bottom:calc(100% + 8px);}
.ev-event-react .ev-react-ico{font-size:16px;}
.ev-event-react .ev-react-sum{display:inline-flex; align-items:center; gap:6px; font-size:14px; font-weight:600; color:var(--muted); background:#fff; border:1px solid var(--line); border-radius:100px; padding:7px 14px; white-space:nowrap;}
.ev-event-react .ev-react-sum[data-total="0"]{display:none;}
.ev-event-react .ev-react-sum b{color:var(--ink);}

/* ==========================================================================
   Motion layer for the event page. Everything here is progressive: with no JS
   the page is complete and static, and prefers-reduced-motion turns it all off.
   Hooks added by public/assets/js/event-motion.js: .ev-glow, .ev-cd, .ev-shine,
   .ev-tab-ink, .ev-w (title words), body.ev-motion.
   ========================================================================== */
.ev{--ev-ease:cubic-bezier(.16,.8,.24,1); --ev-spring:cubic-bezier(.2,1.4,.4,1);}

/* readable "Log in" on the dark button (the ".ev a" colour reset was making it black on black) */
.ev a.ev-btn-dark, .ev a.ev-btn-dark:hover{color:#fff;}

/* ---------- buttons ---------- */
.ev-btn, .ev-icon-btn{transition:background .25s ease, border-color .25s ease, color .25s ease, box-shadow .3s ease, transform .35s var(--ev-spring);}
.ev-btn:hover, .ev-icon-btn:hover{transform:translateY(-2px);}
.ev-btn:active, .ev-icon-btn:active{transform:scale(.96);}
.ev-btn-primary{position:relative; overflow:hidden; isolation:isolate;}
.ev-btn-primary::before{content:''; position:absolute; inset:0; z-index:-1; background:linear-gradient(105deg,transparent 30%,rgba(255,255,255,.4) 50%,transparent 70%); transform:translateX(-130%);}
.ev-btn-primary:hover::before, .ev-btn-primary.ev-sweep::before{animation:evSweep 1.1s var(--ev-ease);}
.ev-btn-primary:hover{box-shadow:0 22px 34px -14px rgba(220,38,38,.8);}
@keyframes evSweep{to{transform:translateX(130%);}}
.ev-icon-btn.like-btn.liked svg{animation:evHeart .55s var(--ev-spring);}
@keyframes evHeart{0%{transform:scale(1);}35%{transform:scale(1.55);}100%{transform:scale(1);}}

/* ---------- hero: glow, intro, poster tilt ---------- */
.ev-hero{position:relative; --glow:220,38,38;}
.ev-hero-grid{position:relative; z-index:1;}
.ev-glow{position:absolute; inset:-80px 0 0; overflow:hidden; pointer-events:none; z-index:0;
  -webkit-mask-image:linear-gradient(#000 55%,transparent); mask-image:linear-gradient(#000 55%,transparent);}
.ev-glow i{position:absolute; border-radius:50%; filter:blur(70px); will-change:transform;}
.ev-glow i:nth-child(1){width:520px; height:520px; left:calc(50% - 760px); top:40px; background:rgba(var(--glow),.42); animation:evDrift1 16s ease-in-out infinite alternate;}
.ev-glow i:nth-child(2){width:420px; height:420px; left:calc(50% - 180px); top:-60px; background:rgba(var(--glow),.18); animation:evDrift2 20s ease-in-out infinite alternate;}
.ev-glow i:nth-child(3){width:360px; height:360px; right:calc(50% - 680px); top:160px; background:rgba(220,38,38,.14); animation:evDrift1 24s ease-in-out infinite alternate-reverse;}
@keyframes evDrift1{to{transform:translate(70px,40px) scale(1.12);}}
@keyframes evDrift2{to{transform:translate(-60px,50px) scale(.92);}}

.ev-cover{animation:evCoverIn 1.1s var(--ev-ease) both; transform-style:preserve-3d;}
.ev-cover.is-ready{animation:none;}
.ev-cover.is-tilting{transition:transform .12s linear;}
.ev-cover:not(.is-tilting){transition:transform .5s var(--ev-ease);}
.ev-cover img{box-shadow:0 36px 70px -30px rgba(var(--glow),.7), 0 0 0 1px rgba(27,20,23,0.06);}
.ev-shine{position:absolute; inset:0; border-radius:28px; pointer-events:none; mix-blend-mode:soft-light; opacity:0; transition:opacity .3s; background:radial-gradient(circle at var(--mx,50%) var(--my,50%),#fff 0,rgba(255,255,255,0) 55%);}
.ev-cover.is-tilting .ev-shine{opacity:.75;}
@keyframes evCoverIn{from{opacity:0; transform:translateY(34px) scale(.94); filter:blur(14px);}to{opacity:1; transform:none; filter:none;}}

.ev-hero-text > *{animation:evUp .8s var(--ev-ease) both;}
.ev-hero-text > :nth-child(1){animation-delay:.25s;}
.ev-hero-text > :nth-child(2){animation-delay:.3s;}
.ev-hero-text > :nth-child(3){animation-delay:.4s;}
.ev-hero-text > :nth-child(4){animation-delay:.48s;}
.ev-hero-text > :nth-child(5){animation-delay:.56s;}
.ev-hero-text > :nth-child(6){animation-delay:.64s;}
.ev-hero-text > :nth-child(7){animation-delay:.72s;}
.ev-hero-text > :nth-child(8){animation-delay:.8s;}
.ev-hero-text > .ev-title{animation:none;}
@keyframes evUp{from{opacity:0; transform:translateY(18px);}to{opacity:1; transform:none;}}
/* title: words slide up out of a mask, staggered */
.ev-w{display:inline-block; overflow:hidden; vertical-align:top; padding-bottom:.1em; margin-bottom:-.1em;}
.ev-w > span{display:inline-block; animation:evWord .9s var(--ev-ease) both; animation-delay:calc(.12s + var(--wi,0)*55ms);}
@keyframes evWord{from{transform:translateY(112%) rotate(2deg);}to{transform:none;}}

/* live dot + countdown tiles */
.ev-live-dot{width:8px; height:8px; border-radius:50%; background:#DC2626; position:relative; display:inline-block;}
.ev-live-dot::after{content:''; position:absolute; inset:0; border-radius:50%; background:#DC2626; animation:evPing 1.8s var(--ev-ease) infinite;}
@keyframes evPing{to{transform:scale(3.2); opacity:0;}}
.ev-has-cd .ev-eyebrow-state, .ev-has-cd .ev-eyebrow .ev-dot{display:none;}
.ev-cd{display:flex; gap:10px; margin-top:22px; animation:evUp .8s var(--ev-ease) .46s both;}
.ev-cd-u{min-width:68px; padding:11px 12px 9px; background:#fff; border:1px solid var(--line); border-radius:16px; text-align:center; box-shadow:0 14px 24px -20px rgba(27,20,23,.45);}
.ev-cd-u b{display:block; font-family:'JetBrains Mono',monospace; font-weight:600; font-size:26px; line-height:1.1; height:1.1em; overflow:hidden; font-variant-numeric:tabular-nums;}
.ev-cd-u b span{display:block; animation:evRoll .45s var(--ev-ease);}
.ev-cd-u small{font-size:10.5px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--muted-2);}
.ev-cd-u.is-sec{background:var(--ink); border-color:var(--ink); color:#fff;}
.ev-cd-u.is-sec small{color:rgba(255,255,255,.55);}
@keyframes evRoll{from{transform:translateY(-70%); opacity:0;}to{transform:none; opacity:1;}}
@media (max-width:420px){.ev-cd{gap:8px;} .ev-cd-u{min-width:0; flex:1; padding:10px 6px 8px;} .ev-cd-u b{font-size:22px;}}

/* ---------- tabs: sliding line + lift shadow ---------- */
.ev-tabs{transition:box-shadow .3s ease;}
.ev-tabs.is-stuck{box-shadow:0 14px 26px -22px rgba(27,20,23,.5);}
.ev-tabs-row{position:relative;}
.ev-tabs a{transition:color .25s ease;}
.ev-tabs-row.has-ink a.is-active{border-bottom-color:transparent;}
.ev-tab-ink{position:absolute; left:0; bottom:0; height:3px; width:0; background:#DC2626; border-radius:3px 3px 0 0; transition:transform .5s var(--ev-ease), width .5s var(--ev-ease); pointer-events:none;}

/* ---------- scroll reveals (resting state is fully visible) ---------- */
@supports (animation-timeline:view()){
  body.ev-motion .ev-section:not(#community){animation:evReveal linear both; animation-timeline:view(); animation-range:entry 0% entry 30%;}
  @keyframes evReveal{from{opacity:0; transform:translateY(34px);}to{opacity:1; transform:none;}}
}

/* ---------- community polish ---------- */
.ev-post, .ev-card, .ev-note-card{transition:box-shadow .35s var(--ev-ease), transform .35s var(--ev-ease);}
.ev-post:hover, .ev-card:hover, .ev-note-card:hover{box-shadow:0 22px 40px -28px rgba(27,20,23,.4);}
.ev-post{animation:evPostIn .5s var(--ev-ease) both;}
@keyframes evPostIn{from{opacity:0; transform:translateY(12px);}to{opacity:1; transform:none;}}
.ev-empty::before{content:''; width:54px; height:54px; border-radius:50%; margin-bottom:10px; background:#FDEDED url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 24 24' fill='none' stroke='%23DC2626' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 12a8 8 0 01-11.6 7.1L3 21l1.9-6.2A8 8 0 1121 12z'/%3E%3C/svg%3E") center no-repeat; animation:evRing 2.6s ease-out infinite;}
@keyframes evRing{0%{box-shadow:0 0 0 0 rgba(220,38,38,.3);}100%{box-shadow:0 0 0 24px rgba(220,38,38,0);}}

/* reaction picker springs open, then each emoji pops in */
.ev-picker:not([hidden]){animation:evPickerIn .35s var(--ev-spring) both; transform-origin:left bottom;}
.ev-picker:not([hidden]) .ev-picker-btn{animation:evPop .5s var(--ev-spring) both;}
.ev-picker:not([hidden]) .ev-picker-btn:nth-child(2){animation-delay:35ms;}
.ev-picker:not([hidden]) .ev-picker-btn:nth-child(3){animation-delay:70ms;}
.ev-picker:not([hidden]) .ev-picker-btn:nth-child(4){animation-delay:105ms;}
.ev-picker:not([hidden]) .ev-picker-btn:nth-child(5){animation-delay:140ms;}
.ev-picker:not([hidden]) .ev-picker-btn:nth-child(6){animation-delay:175ms;}
.ev-picker:not([hidden]) .ev-picker-btn:nth-child(7){animation-delay:210ms;}
.ev-picker-btn{transition:transform .3s var(--ev-spring), background .2s ease;}
.ev-picker-btn:hover, .ev-picker-btn:focus-visible{transform:scale(1.4) translateY(-6px);}
@keyframes evPickerIn{from{opacity:0; transform:translateY(10px) scale(.9);}to{opacity:1; transform:none;}}
@keyframes evPop{from{transform:scale(0) translateY(10px);}to{transform:none;}}
.ev-burst{position:fixed; z-index:200; pointer-events:none; font-size:22px; line-height:1; animation:evFly 1s var(--ev-ease) forwards;}
@keyframes evFly{from{transform:translate(0,0) scale(.4); opacity:1;}to{transform:translate(var(--dx),var(--dy)) scale(1.3) rotate(var(--r)); opacity:0;}}
.ev-pulse-item b{font-variant-numeric:tabular-nums;}

/* ---------- ticket card ---------- */
@media (min-width:921px){
  body.ev-motion .ev-stub-wrap{animation:evStubIn 1s var(--ev-ease) .5s both;}
  @keyframes evStubIn{from{opacity:0; transform:translateY(40px) rotate(1.5deg);}to{opacity:1; transform:none;}}
}
.ev-stub .tier{transition:background .3s ease, border-color .3s ease;}
.ev-stub .tier.has{background:rgba(220,38,38,.1);}
.ev-stub .qty button{transition:background .2s ease, border-color .2s ease, color .2s ease, transform .3s var(--ev-spring);}
.ev-stub .qty button:hover{background:var(--st-ink); color:var(--st-bg); border-color:var(--st-ink);}
.ev-stub .qty button:active{transform:scale(.82);}
.ev-stub .poster-foot .btn{position:relative; overflow:hidden; isolation:isolate;}
.ev-stub .poster-foot .btn::before{content:''; position:absolute; inset:0; z-index:-1; background:linear-gradient(105deg,transparent 30%,rgba(255,255,255,.38) 50%,transparent 70%); transform:translateX(-130%);}
.ev-stub .poster-foot .btn.ev-sweep::before{animation:evSweep 1.1s var(--ev-ease);}
.ev-stub .qty .n.ev-bump{display:inline-block; animation:evRoll .35s var(--ev-ease);}

/* ---------- phone ticket bar slides up shortly after load ---------- */
@media (max-width:920px){
  body.ev-motion .mobile-buy-bar{animation:evBarIn .7s var(--ev-ease) 1s both;}
  @keyframes evBarIn{from{transform:translateY(120%);}to{transform:none;}}
}

@media (prefers-reduced-motion:reduce){
  .ev *, .ev *::before, .ev *::after{animation-duration:.001ms !important; animation-delay:0s !important; animation-iteration-count:1 !important; transition-duration:.001ms !important;}
  body.ev-motion .ev-section{animation:none !important;}
  .ev-glow i{animation:none !important;}
}

/* ---------- hosted by + attendance (main column, below About) ---------- */
.ev-hosting-grid{display:grid; grid-template-columns:minmax(0,1.45fr) minmax(0,1fr); gap:20px; align-items:stretch;}
.ev-hosting-grid.is-single{grid-template-columns:1fr;}
.ev-hosting .ev-card{display:flex; flex-direction:column; margin:0; padding:24px;}
.ev-hosting .ev-card-text{margin-top:16px; max-width:56ch;}
.ev-hosting .ev-card-head{gap:14px;}
.ev-host-card .ev-card-title a, .ev-host-card .ev-card-title span{font-size:17px;}
.ev-going-card{justify-content:center; background:linear-gradient(160deg,#fff 40%,#FDEDED);}
.ev-going-num{font-family:'Outfit',Georgia,serif; font-weight:700; font-size:52px; line-height:1; font-variant-numeric:tabular-nums;}
.ev-going-card .ev-card-title-lg{margin-top:6px; font-size:16px; color:var(--muted);}
.ev-going-card .ev-going-you{align-self:flex-start;}
@media (max-width:760px){
  .ev-hosting-grid{grid-template-columns:1fr;}
  .ev-hosting .ev-card{padding:20px;}
  .ev-going-num{font-size:44px;}
}

/* ---------- replying to: quote block, reply bar, swipe-to-reply ---------- */
.ev-bubble{position:relative; z-index:1; touch-action:pan-y;}
.ev-comment-main{position:relative;}
.ev-quote{display:block; margin:7px 8px 3px 0; padding:6px 10px; border-left:3px solid #DC2626; background:#F7F3F1; border-radius:8px; text-decoration:none; color:inherit; font-size:12.5px; line-height:1.4;}
a.ev-quote{cursor:pointer; transition:background .2s ease;}
a.ev-quote:hover{background:#F0E9E5;}
.ev-quote b{display:block; color:#991B1B; font-weight:800;}
.ev-quote span{display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; color:var(--muted); overflow-wrap:anywhere;}
.ev-quote.is-gone{border-left-color:var(--line-strong);}
.ev-quote.is-gone span{font-style:italic;}
.ev-comment.is-flash > .ev-comment-main > .ev-bubble{animation:evFlash 1.8s ease;}
@keyframes evFlash{0%,55%{background:#FDEDED; border-color:#F6CFCF;}100%{background:#fff; border-color:var(--line);}}
.ev-comment-form{flex-wrap:wrap;}
.ev-replying{flex:1 1 100%; display:flex; align-items:center; gap:10px; background:#fff; border:1px solid var(--line-strong); border-left:3px solid #DC2626; border-radius:12px; padding:7px 6px 7px 12px; animation:evUp .35s var(--ev-ease) both;}
.ev-replying-body{flex:1; min-width:0; font-size:12.5px; line-height:1.4;}
.ev-replying-body b{display:block; color:#991B1B; font-weight:800;}
.ev-replying-body span{display:block; color:var(--muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.ev-replying-x{width:30px; height:30px; flex:none; border:0; border-radius:50%; background:transparent; color:var(--muted); font-size:22px; line-height:1; cursor:pointer;}
.ev-replying-x:hover{background:rgba(27,20,23,.06); color:var(--ink);}
.ev-swipe-ico{position:absolute; left:2px; top:10px; z-index:0; width:34px; height:34px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:#fff; border:1px solid var(--line-strong); color:var(--muted); opacity:0; pointer-events:none; transition:background .2s ease, color .2s ease, border-color .2s ease;}
.ev-swipe-ico.is-armed{background:#DC2626; border-color:#DC2626; color:#fff;}

/* the floating WhatsApp button shows on the event page like everywhere else; on phones the ticket bar owns that corner */
@media (max-width:920px){body.event-page .wa-float{display:none}}
