/* ==========================================================================
   Moments: 9:16 photos and videos. Event page shelf + full-screen viewer (.mv-*),
   and the organizer's upload widget (.mu-*). Everything is 9:16.
   ========================================================================== */
:root{--mv-night:#120A0E; --mv-line:rgba(255,255,255,.12); --mv-ease:cubic-bezier(.16,.8,.24,1); --mv-spring:cubic-bezier(.2,1.4,.4,1);}

/* ---------- shelf on the event page ---------- */
.ev-moments{margin-bottom:56px;}
.mv-band{position:relative; background:var(--mv-night); color:#fff; border-radius:30px; padding:28px 0 30px; overflow:hidden; isolation:isolate; container-type:inline-size;}
.mv-band::before{content:''; position:absolute; inset:-30% -10% auto; height:70%; z-index:-1; background:radial-gradient(50% 60% at 30% 40%,rgba(255,77,154,.28),transparent 70%), radial-gradient(40% 50% at 75% 30%,rgba(124,58,255,.22),transparent 70%);}
.mv-head{display:flex; align-items:flex-end; justify-content:space-between; gap:14px; flex-wrap:wrap; padding:0 28px; margin-bottom:18px;}
.mv-head .ev-h2{color:#fff; margin:0;}
.mv-head p{margin:4px 0 0; color:rgba(255,255,255,.62); font-size:14px;}
.mv-chips{display:flex; gap:8px;}
.mv-chips button{border:1px solid var(--mv-line); background:rgba(255,255,255,.06); color:#fff; border-radius:100px; padding:8px 15px; font-weight:700; font-size:13px; cursor:pointer; transition:background .2s ease, color .2s ease;}
.mv-chips button[aria-pressed="true"]{background:#fff; color:#1B1417; border-color:#fff;}
.mv-stripwrap{position:relative;}
.mv-strip{display:flex; gap:14px; overflow-x:auto; scroll-snap-type:x mandatory; padding:6px 28px 14px; scroll-padding-left:28px; scrollbar-width:none;}
.mv-strip::-webkit-scrollbar{display:none;}
.mv-nav{position:absolute; top:42%; z-index:3; width:44px; height:44px; border-radius:50%; border:1px solid var(--mv-line); background:rgba(18,10,14,.82); backdrop-filter:blur(8px); color:#fff; display:flex; align-items:center; justify-content:center; cursor:pointer; transition:transform .3s var(--mv-spring);}
.mv-nav:hover{transform:scale(1.1);}
.mv-prev{left:10px;} .mv-next{right:10px;}
@container (max-width:700px){.mv-nav{display:none;}}
.mv-card{position:relative; flex:0 0 clamp(160px,22%,224px); aspect-ratio:9/16; border-radius:22px; overflow:hidden; border:0; padding:0; text-align:left; color:#fff; scroll-snap-align:start; background:#241520; cursor:pointer; font:inherit; transition:transform .45s var(--mv-ease), box-shadow .45s var(--mv-ease);}
.mv-card:hover{transform:translateY(-8px) scale(1.02); box-shadow:0 30px 50px -22px rgba(255,77,154,.5);}
.mv-card[hidden]{display:none;}
.mv-card img, .mv-card video{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block;}
.mv-card.is-fit::before{content:''; position:absolute; inset:-20px; background:var(--mv-bg, #241520) center/cover; filter:blur(18px) brightness(.75);}
.mv-card.is-fit img, .mv-card.is-fit video{object-fit:contain;}
.mv-shade{position:absolute; inset:0; background:linear-gradient(180deg,rgba(0,0,0,.35),transparent 28%,transparent 46%,rgba(0,0,0,.82));}
.mv-tag{position:absolute; z-index:2; top:12px; left:12px; display:flex; align-items:center; gap:6px; background:rgba(0,0,0,.5); backdrop-filter:blur(8px); border-radius:100px; padding:4px 10px; font-size:12px; font-weight:800;}
.mv-tag.is-photo{background:rgba(255,255,255,.22);}
.mv-info{position:absolute; z-index:2; left:12px; right:12px; bottom:12px; display:block;}
.mv-cap{display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; font-size:13.5px; font-weight:700; line-height:1.3; margin-bottom:8px;}
.mv-by{display:flex; align-items:center; gap:7px; font-size:12px; font-weight:700; opacity:.92;}
.mv-by i{width:20px; height:20px; border-radius:50%; background:#DC2626; display:inline-flex; align-items:center; justify-content:center; font-style:normal; font-size:9px; font-weight:800;}
.mv-stats{display:flex; gap:11px; margin-top:7px; font-size:12px; font-weight:700;}

/* ---------- full-screen viewer ---------- */
body.mv-open{overflow:hidden;}
.mv-viewer{position:fixed; inset:0; z-index:125; background:var(--mv-night); color:#fff; display:flex; align-items:center; justify-content:center; font-family:'Plus Jakarta Sans',system-ui,sans-serif; isolation:isolate; animation:mvIn .35s var(--mv-ease) both;}
.mv-viewer[hidden]{display:none;}
@keyframes mvIn{from{opacity:0; transform:scale(1.02);}to{opacity:1; transform:none;}}
.mv-amb{position:absolute; inset:-20%; z-index:-1; filter:blur(80px) saturate(1.4); opacity:.5; transition:background .6s ease; background:radial-gradient(60% 50% at 50% 40%,rgba(255,77,154,.8),transparent 70%);}
.mv-close{position:absolute; z-index:12; top:16px; right:16px; width:44px; height:44px; border-radius:50%; border:1px solid var(--mv-line); background:rgba(255,255,255,.1); color:#fff; font-size:24px; line-height:1; cursor:pointer; backdrop-filter:blur(8px);}
.mv-wrap{display:flex; align-items:stretch; justify-content:center; height:100%; max-height:100%; padding:20px 24px; gap:20px;}
.mv-deck{position:relative; height:100%; max-height:920px; aspect-ratio:9/16; flex:none; margin:0 84px 0 64px;}
.mv-stage{position:absolute; inset:0; border-radius:22px; overflow:hidden; background:#000; box-shadow:0 30px 70px -30px rgba(0,0,0,.9);}
.mv-reel{height:100%; overflow-y:auto; scroll-snap-type:y mandatory; scrollbar-width:none; overscroll-behavior:contain;}
.mv-reel::-webkit-scrollbar{display:none;}
.mv-clip{position:relative; height:100%; scroll-snap-align:start; scroll-snap-stop:always; overflow:hidden; background:#000;}
.mv-clip img, .mv-clip video{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; user-select:none; -webkit-user-drag:none;}
.mv-clip.is-fit::before{content:''; position:absolute; inset:-30px; background:var(--mv-bg,#000) center/cover; filter:blur(24px) brightness(.7);}
.mv-clip.is-fit img, .mv-clip.is-fit video{object-fit:contain;}
.mv-clip img.is-photo{animation:mvKb 14s ease-in-out infinite alternate;}
@keyframes mvKb{to{transform:scale(1.07);}}
.mv-clip .mv-clipshade{position:absolute; inset:0; background:linear-gradient(180deg,rgba(0,0,0,.5),transparent 22%,transparent 52%,rgba(0,0,0,.82)); pointer-events:none;}
.mv-pz{position:absolute; inset:0; display:flex; align-items:center; justify-content:center; pointer-events:none; opacity:0; transition:opacity .25s ease;}
.mv-clip.is-paused .mv-pz{opacity:1;}
.mv-pz i{width:80px; height:80px; border-radius:50%; background:rgba(0,0,0,.45); backdrop-filter:blur(6px); display:flex; align-items:center; justify-content:center;}
.mv-top{position:absolute; z-index:4; top:0; left:0; right:0; display:flex; justify-content:space-between; align-items:center; padding:14px;}
.mv-top .t{font-weight:800; font-size:13px; text-shadow:0 1px 8px rgba(0,0,0,.6);}
.mv-round{width:40px; height:40px; border-radius:50%; border:0; background:rgba(0,0,0,.4); backdrop-filter:blur(8px); color:#fff; display:flex; align-items:center; justify-content:center; cursor:pointer; transition:transform .3s var(--mv-spring), background .2s ease;}
.mv-round:active{transform:scale(.88);}
.mv-round.is-on{background:rgba(220,38,38,.92);}
.mv-cp{position:absolute; z-index:4; left:16px; right:16px; bottom:30px; text-shadow:0 1px 10px rgba(0,0,0,.65);}
.mv-cp .nm{display:flex; align-items:center; gap:8px; font-weight:800; font-size:15px;}
.mv-cp .chip{font-size:10.5px; font-weight:800; background:#DC2626; border-radius:100px; padding:2px 8px; letter-spacing:.04em;}
.mv-cp p{color:#fff; margin:6px 0 0; font-size:14px; line-height:1.4; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; overflow-wrap:anywhere;}
.mv-cp .vm{color:#fff; margin-top:6px; font-size:12px; opacity:.85; font-weight:600;}
.mv-pg{position:absolute; z-index:5; left:0; right:0; bottom:0; height:3px; background:rgba(255,255,255,.25);}
.mv-pg i{display:block; height:100%; width:0; background:#fff;}
.mv-hb{position:absolute; z-index:8; font-size:96px; line-height:1; pointer-events:none; animation:mvHb .9s var(--mv-ease) forwards;}
@keyframes mvHb{0%{transform:translate(-50%,-50%) scale(.3); opacity:0;}25%{transform:translate(-50%,-62%) scale(1.15); opacity:1;}100%{transform:translate(-50%,-130%) scale(1); opacity:0;}}
.mv-hint{position:absolute; z-index:7; left:50%; top:46%; transform:translateX(-50%); background:rgba(0,0,0,.55); backdrop-filter:blur(8px); border-radius:100px; padding:9px 16px; font-size:13px; font-weight:700; white-space:nowrap; animation:mvHint 4s .6s both; pointer-events:none;}
@keyframes mvHint{0%,70%{opacity:1;}100%{opacity:0; visibility:hidden;}}

/* action rail: beside the stage on desktop, over it on a phone */
.mv-rail{position:absolute; z-index:6; left:calc(100% + 16px); bottom:6px; display:flex; flex-direction:column; align-items:center; gap:16px;}
.mv-act{display:flex; flex-direction:column; align-items:center; gap:4px; background:none; border:0; color:#fff; font:inherit; font-size:12px; font-weight:800; cursor:pointer;}
.mv-act .ic{width:52px; height:52px; border-radius:50%; background:rgba(255,255,255,.12); border:1px solid var(--mv-line); display:flex; align-items:center; justify-content:center; font-size:25px; line-height:1; transition:transform .3s var(--mv-spring), background .25s ease;}
.mv-act:hover .ic{background:rgba(255,255,255,.2);}
.mv-act:active .ic{transform:scale(.86);}
.mv-act.on .ic{background:#DC2626; border-color:#DC2626;}
.mv-act.pop .ic{animation:mvPop .5s var(--mv-spring);}
@keyframes mvPop{0%{transform:scale(1);}40%{transform:scale(1.35);}100%{transform:scale(1);}}
.mv-ava{position:relative; width:52px; height:52px; border-radius:50%; background:#DC2626; border:2px solid #fff; display:flex; align-items:center; justify-content:center; font-weight:800; font-size:15px; color:#fff; margin-bottom:8px; cursor:pointer; padding:0; font-family:inherit;}
.mv-ava b{position:absolute; bottom:-9px; width:22px; height:22px; border-radius:50%; background:#DC2626; border:2px solid #fff; display:flex; align-items:center; justify-content:center; font-size:15px; line-height:1;}
.mv-ava.is-following b{display:none;}
.mv-picker{position:absolute; z-index:9; right:calc(100% + 10px); bottom:150px; display:flex; gap:2px; background:rgba(255,255,255,.97); border-radius:100px; padding:6px 8px; box-shadow:0 20px 40px -12px rgba(0,0,0,.7); opacity:0; transform:translateX(14px) scale(.92); pointer-events:none; transition:opacity .2s ease, transform .35s var(--mv-spring);}
.mv-picker.open{opacity:1; transform:none; pointer-events:auto;}
.mv-picker button{width:38px; height:38px; border:0; background:none; font-size:23px; border-radius:50%; cursor:pointer; transition:transform .3s var(--mv-spring);}
.mv-picker button:hover{transform:scale(1.35) translateY(-5px);}
.mv-udn{position:absolute; z-index:6; left:-14px; bottom:0; transform:translateX(-100%); display:flex; flex-direction:column; gap:10px;}
.mv-pn{position:absolute; z-index:6; left:-16px; top:50%; display:flex; flex-direction:column; gap:6px; transform:translate(-100%,-50%);}
.mv-pn i{display:block; width:4px; height:22px; border-radius:4px; background:rgba(255,255,255,.25); transition:background .3s ease, height .3s ease;}
.mv-pn i.on{background:#fff; height:36px;}

/* comments: docked beside the stage on desktop, a sheet on a phone */
.mv-docked{position:relative; width:0; flex:none; overflow:hidden; opacity:0; transition:width .5s var(--mv-ease), opacity .3s ease; display:flex;}
.mv-docked.open{width:360px; opacity:1;}
.mv-docked .in{width:360px; flex:none; background:#fff; color:#1B1417; border-radius:22px; display:flex; flex-direction:column; height:100%; min-height:0;}
.mv-docked header{display:flex; align-items:center; justify-content:space-between; padding:16px 18px 12px; font-weight:800; border-bottom:1px solid #E9E1DE;}
.mv-docked header button{border:0; background:none; font-size:24px; line-height:1; color:#6B6064; cursor:pointer;}
.mv-docked .mv-post.ev-post{background:none; border:0; border-radius:0; animation:none; display:flex; flex-direction:column; flex:1; min-height:0; box-shadow:none; transform:none;}
.mv-docked .ev-thread{background:none; border:0; padding:12px 16px 14px; flex:1; min-height:0; overflow-y:auto; border-radius:0;}
.mv-docked .ev-comments{margin-bottom:12px;}
.mv-docked .ev-comments:empty{display:block; min-height:0;}
.mv-empty{color:#6B6064; text-align:center; padding:28px 12px; font-size:14px;}
.mv-docked .ev-comment-form{position:sticky; bottom:0; background:#fff; padding-top:8px;}
.mv-scrim{position:absolute; z-index:25; inset:0; background:rgba(0,0,0,.5); opacity:0; pointer-events:none; transition:opacity .3s ease;}
.mv-scrim.open{opacity:1; pointer-events:auto;}
.mv-share{position:absolute; z-index:30; left:50%; top:50%; transform:translate(-50%,-46%) scale(.96); width:min(92%,380px); background:#fff; color:#1B1417; border-radius:22px; box-shadow:0 40px 80px -20px rgba(0,0,0,.8); opacity:0; pointer-events:none; transition:opacity .25s ease, transform .4s var(--mv-ease);}
.mv-share.open{opacity:1; pointer-events:auto; transform:translate(-50%,-50%);}
.mv-share header{display:flex; align-items:center; justify-content:space-between; padding:16px 18px 6px; font-weight:800;}
.mv-share header button{border:0; background:none; font-size:24px; color:#6B6064; cursor:pointer;}
.mv-opts{display:grid; grid-template-columns:repeat(4,1fr); gap:8px; padding:14px 14px 6px;}
.mv-opts a, .mv-opts button{display:flex; flex-direction:column; align-items:center; gap:7px; border:0; background:none; font:inherit; font-size:12px; font-weight:700; color:#1B1417; text-decoration:none; cursor:pointer;}
.mv-opts i{width:54px; height:54px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-style:normal; font-weight:800; color:#fff; font-size:18px;}
.mv-linkrow{margin:6px 16px 18px; display:flex; gap:8px; align-items:center; border:1px solid #D9CFCB; border-radius:12px; padding:8px 8px 8px 12px; font-size:13px; color:#6B6064;}
.mv-linkrow span{flex:1; min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.mv-linkrow button{border:0; background:#1B1417; color:#fff; border-radius:100px; padding:8px 14px; font-weight:800; font-size:12.5px; cursor:pointer;}

@media (max-width:900px){
  .mv-wrap{padding:0; gap:0; display:block; width:100%;}
  .mv-deck{height:100%; max-height:none; width:100%; aspect-ratio:auto; margin:0;}
  .mv-stage{border-radius:0; box-shadow:none;}
  .mv-rail{left:auto; right:10px; bottom:96px; gap:12px;}
  .mv-act .ic{width:46px; height:46px; background:rgba(0,0,0,.38); border:0; font-size:23px;}
  .mv-ava{width:46px; height:46px;}
  .mv-picker{bottom:120px;}
  .mv-udn, .mv-pn, .mv-amb{display:none;}
  .mv-cp{right:76px; bottom:26px;}
  .mv-close{top:12px; right:auto; left:12px; width:40px; height:40px;}
  .mv-top{padding-left:62px;}
  .mv-docked{position:absolute; z-index:26; left:0; right:0; bottom:0; width:auto; height:74%; transform:translateY(102%); opacity:1; transition:transform .45s var(--mv-ease); overflow:visible;}
  .mv-docked.open{width:auto; transform:none;}
  .mv-docked .in{width:100%; border-radius:22px 22px 0 0;}
}
@media (prefers-reduced-motion:reduce){
  .mv-viewer, .mv-clip img.is-photo, .mv-hint, .mv-hb{animation:none !important;}
  .mv-card, .mv-docked, .mv-act .ic{transition:none !important;}
}

/* ---------- organizer upload widget (Event Social) ---------- */
.mu{display:grid; grid-template-columns:minmax(0,300px) minmax(0,1fr); gap:26px; align-items:start;}
@media (max-width:820px){.mu{grid-template-columns:1fr;}}
.mu-frame{position:relative; width:100%; max-width:300px; margin:0 auto; aspect-ratio:9/16; border-radius:24px; overflow:hidden; background:#150d12; box-shadow:0 0 0 6px #1B1417, 0 24px 50px -26px rgba(27,20,23,.7); touch-action:none; cursor:ew-resize;}
.mu-frame.is-empty{cursor:default; display:flex; align-items:center; justify-content:center; text-align:center; color:rgba(255,255,255,.7); padding:24px; font-weight:700; font-size:14px; line-height:1.4;}
.mu-frame img, .mu-frame video{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; pointer-events:none;}
.mu-frame.is-fit img, .mu-frame.is-fit video{object-fit:contain;}
.mu-frame .mu-bg{position:absolute; inset:-30px; display:none; filter:blur(22px) brightness(.7); background-size:cover; background-position:center;}
.mu-frame.is-fit .mu-bg{display:block;}
.mu-guides{position:absolute; inset:0; pointer-events:none; opacity:0; transition:opacity .3s ease;}
.mu-guides.on{opacity:1;}
.mu-guides div{position:absolute; border:1.5px dashed rgba(255,255,255,.75); border-radius:12px; font-size:10.5px; font-weight:800; color:#fff; display:flex; align-items:center; justify-content:center; background:rgba(255,255,255,.08); letter-spacing:.04em;}
.mu-guides .g-top{left:12px; right:12px; top:10px; height:42px;}
.mu-guides .g-rl{right:8px; bottom:80px; width:50px; height:210px;}
.mu-guides .g-cap{left:12px; right:68px; bottom:18px; height:86px;}
.mu-hint{text-align:center; font-size:12.5px; font-weight:700; color:var(--muted-2, #756A6E); margin:12px 0 4px;}
.mu-facts{display:flex; gap:8px; flex-wrap:wrap; margin:0 0 12px;}
.mu-fact{background:var(--paper,#F7F3F1); border:1px solid var(--line,#E9E1DE); border-radius:100px; padding:5px 12px; font-size:12.5px; font-weight:700;}
.mu-fact.warn{background:#FDF3DA; border-color:#F0DDA0; color:#8A6100;}
.mu-fact.bad{background:#FDECEA; border-color:#F3C8C4; color:#B3261E;}
.mu-seg{display:inline-flex; border:1.5px solid var(--line-strong,#D9CFCB); border-radius:100px; padding:3px; background:#fff; margin:2px 0 12px;}
.mu-seg button{border:0; background:none; border-radius:100px; padding:8px 16px; font-weight:800; font-size:13px; cursor:pointer; font-family:inherit;}
.mu-seg button[aria-pressed="true"]{background:#1B1417; color:#fff;}
.mu-row{margin-top:14px;}
.mu-row label{display:block; font-weight:800; font-size:13px; margin-bottom:6px;}
.mu-row input[type="range"]{width:100%;}
.mu-row textarea{width:100%; border:1.5px solid var(--line,#E9E1DE); border-radius:14px; padding:11px 14px; font:inherit; resize:vertical; min-height:80px;}
.mu-bar{height:8px; border-radius:8px; background:var(--line,#E9E1DE); overflow:hidden; margin-top:14px;}
.mu-bar i{display:block; height:100%; width:0; background:#DC2626; border-radius:8px; transition:width .2s ease;}
.mu-state{font-size:13px; color:var(--muted,#6B6064); min-height:20px;}
.mu-state.err{color:#B3261E; font-weight:700;}
.mu-actions{display:flex; justify-content:space-between; align-items:center; gap:12px; margin-top:14px; flex-wrap:wrap;}
.mu-list{display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:14px; margin-top:18px;}
.mu-item{display:flex; flex-direction:column; gap:8px;}
.mu-thumb{position:relative; aspect-ratio:9/16; border-radius:16px; overflow:hidden; background:#241520; color:#fff;}
.mu-thumb img, .mu-thumb video{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}
.mu-thumb .mu-badge{position:absolute; left:8px; top:8px; z-index:2; background:rgba(0,0,0,.55); border-radius:100px; padding:3px 9px; font-size:11px; font-weight:800;}
.mu-thumb::after{content:''; position:absolute; inset:0; background:linear-gradient(0deg,rgba(0,0,0,.7),transparent 45%);}
.mu-thumb .mu-meta{position:absolute; left:8px; right:8px; bottom:7px; z-index:2; font-size:11.5px; font-weight:800;}
.mu-cap{font-size:13px; color:var(--muted,#6B6064); overflow:hidden; text-overflow:ellipsis; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; min-height:2.6em;}
.mu-item details summary{cursor:pointer; font-weight:800; font-size:13px;}
.mu-item details form{display:flex; flex-direction:column; gap:10px; margin-top:10px;}

/* ---------- sound + slideshow (migration 018) ---------- */
.mv-snd{display:block; font-size:12px; font-weight:700; margin-bottom:5px; opacity:.92; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.mv-stack, .mu-stack{position:absolute; inset:0;}
.mv-slide{position:absolute; inset:0; opacity:0; will-change:opacity,transform;}
.mv-slide.cur{opacity:1; z-index:1;}
.mv-slide img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; user-select:none; -webkit-user-drag:none;}
.fx-fade .mv-slide{transition:opacity .35s ease;}
.fx-cut .mv-slide, .fx-flash .mv-slide{transition:none;}
.fx-zoom .mv-slide.cur{animation:mvZin .5s var(--mv-ease);}
@keyframes mvZin{from{transform:scale(1.18);}to{transform:none;}}
.mv-flash{position:absolute; inset:0; z-index:3; background:#fff; opacity:0; pointer-events:none;}
.mv-flash.go{animation:mvFl .28s ease-out;}
@keyframes mvFl{0%{opacity:.75;}100%{opacity:0;}}
.mv-segs{position:absolute; z-index:6; top:10px; left:10px; right:10px; display:flex; gap:4px; pointer-events:none;}
.mv-segs i{flex:1; height:3px; border-radius:3px; background:rgba(255,255,255,.3); overflow:hidden; display:block;}
.mv-segs i b{display:block; height:100%; width:0; background:#fff;}
.mv-clip.is-slideshow .mv-top{padding-top:26px;}
.mv-sl{position:absolute; z-index:6; top:50%; transform:translateY(-50%); width:36px; height:36px; border-radius:50%; border:0; background:rgba(0,0,0,.35); backdrop-filter:blur(6px); color:#fff; font-size:24px; line-height:1; cursor:pointer; opacity:0; transition:opacity .25s ease;}
.mv-sl-prev{left:8px;} .mv-sl-next{right:8px;}
.mv-clip:hover .mv-sl{opacity:1;}
@media (pointer:coarse){.mv-sl{display:none;}}
.mv-snd2{display:flex; align-items:center; gap:8px; font-size:13px; font-weight:700; margin:6px 0 2px; overflow:hidden;}
.mv-snd2[hidden]{display:none;}
.mv-snd2 .mq{display:block; overflow:hidden; flex:1; -webkit-mask-image:linear-gradient(90deg,#000 85%,transparent); mask-image:linear-gradient(90deg,#000 85%,transparent);}
.mv-snd2 .mqin{display:inline-flex; gap:40px; white-space:nowrap; animation:mvMq 10s linear infinite;}
@keyframes mvMq{from{transform:translateX(0);}to{transform:translateX(-50%);}}
.mv-disc{width:44px; height:44px; border-radius:50%; background:conic-gradient(#222,#7a3a60,#222,#9a4a30,#222); border:6px solid #1a1015; display:flex; align-items:center; justify-content:center; animation:mvSpin 4s linear infinite; animation-play-state:paused; margin-top:2px;}
.mv-disc.spin{animation-play-state:running;}
.mv-disc::after{content:''; width:12px; height:12px; border-radius:50%; background:#DC2626;}
@keyframes mvSpin{to{transform:rotate(360deg);}}
@media (prefers-reduced-motion:reduce){.mv-snd2 .mqin, .mv-disc{animation:none !important;} .fx-zoom .mv-slide.cur{animation:none !important;}}

/* composer: sound, beat and slideshow controls */
.mu-modes{margin-bottom:12px;}
.mu-thumbs{display:flex; gap:10px; flex-wrap:wrap; margin:12px 0 4px;}
.mu-th{position:relative; width:64px; aspect-ratio:9/16; border-radius:12px; overflow:hidden; border:2px solid transparent; background:#241520; cursor:grab; transition:transform .25s var(--mv-spring), border-color .2s ease;}
.mu-th img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; pointer-events:none;}
.mu-th.drag{opacity:.4;}
.mu-th .x{position:absolute; z-index:3; top:3px; right:3px; width:20px; height:20px; border-radius:50%; border:0; background:rgba(0,0,0,.6); color:#fff; font-size:13px; line-height:1; padding:0; cursor:pointer;}
.mu-th .n{position:absolute; z-index:3; left:5px; bottom:4px; font-size:11px; font-weight:800; color:#fff; text-shadow:0 1px 4px #000;}
.mu-add{width:64px; aspect-ratio:9/16; border-radius:12px; border:2px dashed var(--line-strong,#D9CFCB); background:var(--paper,#F7F3F1); font-size:24px; color:var(--muted,#6B6064); cursor:pointer;}
.mu-add:hover{border-color:#DC2626; color:#DC2626;}
.mu-tracks{display:flex; flex-direction:column; gap:8px; margin-top:10px;}
.mu-trk{display:flex; align-items:center; gap:12px; border:1.5px solid var(--line,#E9E1DE); border-radius:14px; padding:10px 12px; background:#fff; text-align:left; width:100%; cursor:pointer; font:inherit; transition:border-color .2s ease, background .2s ease;}
.mu-trk:hover{border-color:var(--line-strong,#D9CFCB);}
.mu-trk.on{border-color:#DC2626; background:#FDEDED;}
.mu-trk .tx{flex:1; min-width:0;}
.mu-trk .tx b{display:block; font-size:14px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.mu-trk .tx span{font-size:12.5px; color:var(--muted,#6B6064);}
.mu-trk .bpm{font-size:12px; font-weight:800; background:var(--paper,#F7F3F1); border:1px solid var(--line,#E9E1DE); border-radius:100px; padding:3px 10px; white-space:nowrap;}
.mu-trk .pv{border:0; background:#1B1417; color:#fff; width:34px; height:34px; border-radius:50%; flex:none; cursor:pointer;}
.mu-own{border:2px dashed var(--line-strong,#D9CFCB); border-radius:16px; padding:18px; text-align:center; background:var(--paper,#F7F3F1); margin-top:10px;}
.mu-wave{position:relative; height:96px; border-radius:14px; background:#150d12; overflow:hidden; touch-action:none; cursor:ew-resize; margin-top:8px;}
.mu-wave canvas{position:absolute; inset:0; width:100%; height:100%;}
.mu-win{position:absolute; top:0; bottom:0; border:2px solid #fff; border-radius:10px; background:rgba(255,255,255,.12); pointer-events:none;}
.mu-wlab{display:flex; justify-content:space-between; font-size:12.5px; font-weight:700; color:var(--muted,#6B6064); margin-top:8px; gap:10px; flex-wrap:wrap;}
.mu-beat{position:absolute; z-index:5; top:24px; left:12px; display:flex; align-items:center; gap:6px; font-size:11px; font-weight:800; color:#fff; background:rgba(0,0,0,.45); backdrop-filter:blur(6px); border-radius:100px; padding:4px 10px;}
.mu-beat i{width:9px; height:9px; border-radius:50%; background:#555; transition:background .08s ease;}
.mu-beat i.on{background:#DC2626; box-shadow:0 0 12px #DC2626;}
.mu-frame .mv-segs{top:10px;}
.mu-btnrow{display:flex; gap:8px; flex-wrap:wrap; margin-top:10px;}
.mu-btnrow .btn{width:auto; margin:0;}
.mu-ctrls{display:flex; gap:8px; justify-content:center; margin-top:14px; flex-wrap:wrap;}

/* ---------- Get tickets bar + ticket picker (migration 019) ---------- */
.mv-buy{position:absolute; z-index:8; left:12px; right:12px; bottom:14px; background:rgba(255,255,255,.97); color:#1B1417; border-radius:20px; padding:10px 10px 10px 16px; display:flex; align-items:center; gap:12px; box-shadow:0 20px 40px -14px rgba(0,0,0,.7); animation:mvRise .6s var(--mv-ease) both;}
.mv-buy[hidden]{display:none;}
@keyframes mvRise{from{transform:translateY(40px); opacity:0;}to{transform:none; opacity:1;}}
.mv-buy .tx{flex:1; min-width:0;}
.mv-buy .tx small{display:block; font-size:11px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:#756A6E;}
.mv-buy .tx b{font-size:17px; font-variant-numeric:tabular-nums; white-space:nowrap;}
.mv-buy .urg{display:inline-flex; align-items:center; gap:6px; font-size:11.5px; font-weight:800; color:#991B1B; background:#FDEDED; border-radius:100px; padding:2px 9px; margin-top:3px; max-width:100%;}
.mv-buy .urg[hidden]{display:none;}
.mv-buy .urg i{width:7px; height:7px; border-radius:50%; background:#DC2626; flex:none; animation:mvPulse 1.4s infinite;}
@keyframes mvPulse{50%{opacity:.35;}}
.mv-buybtn{position:relative; border:0; background:#DC2626; color:#fff; border-radius:100px; padding:14px 20px; font:inherit; font-weight:800; font-size:15px; cursor:pointer; box-shadow:0 14px 26px -12px rgba(220,38,38,.8); white-space:nowrap; animation:mvNudge 3.2s 2s infinite;}
@keyframes mvNudge{0%,88%,100%{transform:none;}92%{transform:scale(1.06);}96%{transform:scale(.98);}}
.mv-viewer.has-buy .mv-cp{bottom:118px;}
.mv-viewer.has-buy .mv-pg{bottom:0;}
@media (max-width:900px){.mv-viewer.has-buy .mv-rail{bottom:196px;} .mv-viewer.has-buy .mv-cp{bottom:112px;} .mv-buy{bottom:max(14px, env(safe-area-inset-bottom));}}
.mv-tsheet{position:absolute; z-index:31; left:50%; bottom:0; width:min(100%,440px); transform:translate(-50%,105%); background:#fff; color:#1B1417; border-radius:24px 24px 0 0; padding:14px 18px calc(20px + env(safe-area-inset-bottom,0px)); transition:transform .5s var(--mv-ease); box-shadow:0 -30px 60px -20px rgba(0,0,0,.6);}
.mv-tsheet.open{transform:translate(-50%,0);}
.mv-tsheet .grab{width:38px; height:4px; border-radius:4px; background:#D9CFCB; margin:0 auto 12px;}
.mv-tsheet h4{font-family:'Outfit',Georgia,serif; font-size:20px; margin:0;}
.mv-tsheet .meta{font-size:13px; color:#6B6064; margin:2px 0 12px;}
.mv-tsheet .trow{display:flex; align-items:center; justify-content:space-between; gap:10px; border:1.5px solid #E9E1DE; border-radius:14px; padding:10px 12px; margin-bottom:8px; transition:border-color .2s ease, background .2s ease;}
.mv-tsheet .trow.on{border-color:#DC2626; background:#FDEDED;}
.mv-tsheet .trow .a{min-width:0;}
.mv-tsheet .trow .a b{display:block; font-size:14.5px;}
.mv-tsheet .trow .a span{font-size:12.5px; color:#6B6064;}
.mv-tsheet .qty{display:flex; align-items:center; gap:10px; flex:none;}
.mv-tsheet .qty button{width:36px; height:36px; border-radius:50%; border:1.5px solid #D9CFCB; background:#fff; font-size:18px; line-height:1; cursor:pointer;}
.mv-tsheet .qty output{min-width:20px; text-align:center; font-weight:800; font-variant-numeric:tabular-nums;}
.mv-tsheet .sum{display:flex; justify-content:space-between; font-weight:800; font-size:16px; margin:12px 2px; font-variant-numeric:tabular-nums;}
.mv-tsheet .go{width:100%; border:0; background:#DC2626; color:#fff; border-radius:100px; padding:15px; font:inherit; font-weight:800; font-size:15.5px; cursor:pointer; box-shadow:0 16px 30px -14px rgba(220,38,38,.75);}
.mv-tsheet .go:disabled{opacity:.5; cursor:default;}
.mv-tsheet .sec{text-align:center; font-size:12px; color:#6B6064; margin-top:10px;}
@media (prefers-reduced-motion:reduce){.mv-buybtn, .mv-buy .urg i{animation:none !important;}}

/* promo studio (Event Social) */
.pr{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,340px); gap:30px; align-items:start;}
@media (max-width:900px){.pr{grid-template-columns:1fr;}}
.pr-tpls{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px;}
@media (max-width:620px){.pr-tpls{grid-template-columns:1fr;}}
.pr-tpl{display:flex; flex-direction:column; gap:6px; text-align:left; border:1.5px solid var(--line,#E9E1DE); border-radius:16px; padding:12px; background:#fff; cursor:pointer; font:inherit; transition:border-color .2s ease, background .2s ease, transform .3s var(--mv-spring);}
.pr-tpl:hover{transform:translateY(-2px);}
.pr-tpl[aria-pressed="true"]{border-color:#DC2626; background:#FDEDED;}
.pr-tpl .sw{height:6px; border-radius:6px; background:linear-gradient(90deg,var(--c1),var(--c2));}
.pr-tpl b{font-size:14px;} .pr-tpl span{font-size:12.5px; color:var(--muted,#6B6064);}
.pr-photos{display:flex; gap:10px; flex-wrap:wrap;}
.pr-ph{position:relative; width:64px; aspect-ratio:9/16; border-radius:12px; overflow:hidden; border:2px solid transparent; background:#241520; cursor:pointer; padding:0;}
.pr-ph img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}
.pr-ph[aria-pressed="true"]{border-color:#DC2626;}
.pr-ph .n{position:absolute; left:5px; bottom:4px; font-size:11px; font-weight:800; color:#fff; text-shadow:0 1px 4px #000;}
.pr-ph.add{display:flex; align-items:center; justify-content:center; font-size:22px; color:var(--muted,#6B6064); background:var(--paper,#F7F3F1); border:2px dashed var(--line-strong,#D9CFCB);}
.pr-pv{position:relative; width:100%; max-width:300px; margin:0 auto; aspect-ratio:9/16; border-radius:26px; overflow:hidden; background:#000; box-shadow:0 0 0 6px #1B1417,0 26px 50px -26px rgba(27,20,23,.7);}
.pr-pv canvas{position:absolute; inset:0; width:100%; height:100%; display:block;}
.pr-tl{display:flex; height:8px; border-radius:8px; overflow:hidden; gap:2px; margin:16px auto 0; max-width:300px; position:relative; background:var(--line,#E9E1DE); cursor:pointer;}
.pr-tl i{display:block; height:100%; background:var(--line-strong,#D9CFCB);}
.pr-tl i.on{background:#DC2626;}
.pr-tl b{position:absolute; top:-3px; width:3px; height:14px; background:#1B1417; border-radius:2px; left:0;}
.pr-result{margin-top:16px; text-align:center;}
.pr-result video{width:100%; max-width:300px; border-radius:18px; background:#000;}

/* ---------- easy upload (Event Social) ---------- */
.eu-btn{display:inline-flex; align-items:center; justify-content:center; gap:8px; border:1.5px solid var(--line-strong,#D9CFCB); background:#fff; color:#1B1417; border-radius:100px; padding:12px 22px; font:inherit; font-weight:800; font-size:14.5px; cursor:pointer; text-decoration:none; transition:transform .3s var(--mv-spring), border-color .2s ease, background .2s ease;}
.eu-btn:hover{transform:translateY(-2px); border-color:#1B1417;}
.eu-btn.red{background:#DC2626; border-color:#DC2626; color:#fff; box-shadow:0 16px 30px -14px rgba(220,38,38,.75);}
.eu-btn.big{padding:16px 28px; font-size:16px;}
.eu-btn.sm{padding:8px 15px; font-size:13px;}
.eu-btn:disabled{opacity:.5; transform:none; box-shadow:none; cursor:default;}
.eu-drop{border:2px dashed var(--line-strong,#D9CFCB); border-radius:24px; background:#fff; padding:34px 18px; text-align:center; transition:border-color .25s ease, background .25s ease;}
.eu-drop:hover{border-color:#DC2626; background:#FDEDED;}
.eu-ico{width:64px; height:64px; border-radius:50%; background:#FDEDED; display:flex; align-items:center; justify-content:center; margin:0 auto 12px; color:#DC2626;}
.eu-drop h3{font-family:'Outfit',Georgia,serif; font-size:24px; margin:0;}
.eu-drop p{color:var(--muted,#6B6064); margin:6px 0 18px; font-size:14.5px;}
.eu-assure{display:flex; gap:8px; flex-wrap:wrap; justify-content:center; margin-top:16px;}
.eu-assure span{font-size:12.5px; font-weight:700; background:var(--paper,#F7F3F1); border:1px solid var(--line,#E9E1DE); border-radius:100px; padding:4px 12px; color:var(--muted,#6B6064);}
.eu-second{display:flex; gap:10px; justify-content:center; margin-top:14px; flex-wrap:wrap;}
.eu-fab{display:none; position:fixed; right:18px; bottom:18px; z-index:60; width:60px; height:60px; border-radius:50%; border:0; background:#DC2626; color:#fff; font-size:30px; line-height:1; box-shadow:0 18px 30px -10px rgba(220,38,38,.8); cursor:pointer;}
@media (max-width:760px){.eu-fab{display:flex; align-items:center; justify-content:center;}}
.eu-adv{margin:18px 0 6px; border:1px solid var(--line,#E9E1DE); border-radius:16px; padding:2px 16px; background:#fff;}
.eu-adv > summary{cursor:pointer; font-weight:800; padding:12px 0; list-style:none;}
.eu-adv > summary span{font-weight:600; color:var(--muted,#6B6064); font-size:.85rem; margin-left:8px;}
.eu-adv[open] > summary{border-bottom:1px solid var(--line,#E9E1DE); margin-bottom:14px;}
.eu-drafts{margin-top:18px;}
.eu-drafts h4{margin:0 0 8px; font-size:15px;}
.eu-draft{display:flex; align-items:center; gap:12px; border:1px solid var(--line,#E9E1DE); border-radius:16px; padding:10px; margin-bottom:8px; background:#fff; flex-wrap:wrap;}
.eu-dthumb{width:44px; aspect-ratio:9/16; border-radius:9px; overflow:hidden; background:#241520; flex:none;}
.eu-dthumb img{width:100%; height:100%; object-fit:cover; display:block;}
.eu-dtx{flex:1; min-width:140px;} .eu-dtx b{display:block; font-size:14px;} .eu-dtx span{font-size:12.5px; color:var(--muted,#6B6064);}

.eu-overlay{position:fixed; inset:0; z-index:300; background:rgba(220,38,38,.9); color:#fff; display:flex; align-items:center; justify-content:center; text-align:center; font-family:'Plus Jakarta Sans',system-ui,sans-serif; border:6px dashed rgba(255,255,255,.7); pointer-events:none;}
.eu-overlay[hidden]{display:none;}
.eu-overlay b{display:block; font-size:34px; font-family:'Outfit',Georgia,serif;} .eu-overlay span{opacity:.9;}
body.eu-open{overflow:hidden;}
.eu-back{position:fixed; inset:0; z-index:250; background:rgba(18,10,14,.62); display:flex; align-items:center; justify-content:center; padding:20px; overflow-y:auto; font-family:'Plus Jakarta Sans',system-ui,sans-serif; animation:mvIn .3s var(--mv-ease) both;}
.eu-sheet{position:relative; width:100%; max-width:900px; background:#fff; color:#1B1417; border-radius:26px; box-shadow:0 40px 80px -30px rgba(0,0,0,.6); display:grid; grid-template-columns:minmax(0,290px) minmax(0,1fr); gap:28px; padding:26px; animation:euPop .5s var(--mv-ease) both; margin:auto;}
@keyframes euPop{from{transform:translateY(24px) scale(.97); opacity:0;}to{transform:none; opacity:1;}}
.eu-x{position:absolute; top:12px; right:14px; width:36px; height:36px; border-radius:50%; border:0; background:var(--paper,#F7F3F1); font-size:22px; line-height:1; cursor:pointer; z-index:3;}
.eu-pv{position:relative; width:100%; max-width:250px; margin:0 auto; aspect-ratio:9/16; border-radius:22px; overflow:hidden; background:#000; box-shadow:0 0 0 5px #1B1417;}
.eu-pvmedia{position:absolute; inset:0;}
.eu-pvmedia img, .eu-pvmedia video{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; transition:opacity .5s ease;}
.eu-tags{position:absolute; left:10px; top:10px; display:flex; gap:6px; z-index:3; flex-wrap:wrap;}
.eu-tag{background:rgba(0,0,0,.5); backdrop-filter:blur(6px); color:#fff; border-radius:100px; font-size:11px; font-weight:800; padding:3px 10px;}
.eu-tag[hidden]{display:none;}
.eu-pcap{position:absolute; left:12px; right:12px; bottom:14px; color:#fff; font-size:12.5px; font-weight:700; text-shadow:0 1px 8px #000; z-index:3; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; overflow-wrap:anywhere;}
.eu-pv:after{content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(0,0,0,.6),transparent 45%); pointer-events:none; z-index:2;}
.eu-ptix{position:absolute; left:10px; right:10px; bottom:10px; z-index:4; background:rgba(255,255,255,.96); border-radius:14px; padding:7px 8px 7px 12px; display:flex; align-items:center; gap:8px; font-size:12px; font-weight:800;}
.eu-ptix[hidden]{display:none;} .eu-ptix b{flex:1;} .eu-ptix em{font-style:normal; background:#DC2626; color:#fff; border-radius:100px; padding:6px 12px; font-size:12px;}
.eu-pv.hasbar .eu-pcap{bottom:62px;}
.eu-h{font-family:'Outfit',Georgia,serif; font-size:26px; margin:0 40px 4px 0;}
.eu-sub{color:var(--muted,#6B6064); font-size:13.5px; margin:0 0 14px;}
.eu-notice{display:flex; gap:10px; align-items:flex-start; padding:12px 14px; border-radius:14px; background:#FDF3DA; border:1px solid #F0DDA0; color:#8A6100; font-size:13px; font-weight:600; margin-bottom:12px;}
.eu-notice[hidden]{display:none;} .eu-notice.bad{background:#FDECEA; border-color:#F3C8C4; color:#B3261E; font-weight:700;}
.eu-status{display:flex; flex-direction:column; gap:8px; margin:0 0 14px; padding:12px 14px; border-radius:16px; background:var(--paper,#F7F3F1); border:1px solid var(--line,#E9E1DE);}
.eu-status:empty{display:none;}
.eu-step{display:flex; align-items:center; gap:10px; font-size:13.5px; font-weight:700;}
.eu-step .dot{width:20px; height:20px; border-radius:50%; border:2px solid var(--line-strong,#D9CFCB); display:flex; align-items:center; justify-content:center; flex:none; font-size:11px; color:#fff;}
.eu-step.run .dot{border-color:#DC2626; border-top-color:transparent; animation:euSpin .8s linear infinite;}
.eu-step.done .dot{background:#1B7A3D; border-color:#1B7A3D;} .eu-step.done .dot:after{content:"\2713";}
@keyframes euSpin{to{transform:rotate(360deg);}}
.eu-step .lbl{width:150px; flex:none;}
.eu-step .bar{flex:1; height:6px; border-radius:6px; background:var(--line,#E9E1DE); overflow:hidden;}
.eu-step .bar i{display:block; height:100%; width:0; background:#DC2626; border-radius:6px; transition:width .2s ease;}
.eu-step .pc{width:38px; text-align:right; font-variant-numeric:tabular-nums; color:var(--muted,#6B6064); font-weight:800; font-size:12.5px;}
.eu-step.wait{color:var(--muted-2,#756A6E);}
.eu-fld label{display:block; font-weight:800; font-size:13px; margin:0 0 6px;} .eu-fld label span{color:var(--muted,#6B6064); font-weight:600;}
.eu-fld textarea{width:100%; border:1.5px solid var(--line,#E9E1DE); border-radius:16px; padding:12px 14px; font:inherit; resize:vertical; min-height:84px;}
.eu-chips{display:flex; gap:6px; flex-wrap:wrap; margin-top:8px;}
.eu-chips button{border:1.5px solid var(--line,#E9E1DE); background:#fff; border-radius:100px; padding:5px 12px; font:inherit; font-weight:700; font-size:12.5px; color:var(--muted,#6B6064); cursor:pointer;}
.eu-chips button:hover{border-color:#1B1417; color:#1B1417;}
.eu-row{display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 0; border-top:1px solid var(--line,#E9E1DE);}
.eu-row[hidden]{display:none;} .eu-row b{font-size:14.5px; display:block;} .eu-row .s{font-size:12.5px; color:var(--muted,#6B6064); display:block;}
.eu-musicrow{display:block;}
.eu-sw{position:relative; width:48px; height:28px; border-radius:28px; background:var(--line-strong,#D9CFCB); border:0; transition:background .25s ease; flex:none; cursor:pointer;}
.eu-sw:after{content:""; position:absolute; left:3px; top:3px; width:22px; height:22px; border-radius:50%; background:#fff; transition:transform .3s var(--mv-spring); box-shadow:0 2px 6px rgba(0,0,0,.25);}
.eu-sw[aria-checked="true"]{background:#DC2626;} .eu-sw[aria-checked="true"]:after{transform:translateX(20px);}
.eu-music{display:flex; gap:8px; flex-wrap:wrap; margin-top:8px;}
.eu-music button{display:flex; align-items:center; gap:8px; border:1.5px solid var(--line,#E9E1DE); background:#fff; border-radius:100px; padding:6px 14px 6px 8px; font:inherit; font-weight:700; font-size:12.5px; cursor:pointer;}
.eu-music button:first-child{padding-left:14px;}
.eu-music button i{width:24px; height:24px; border-radius:50%; background:conic-gradient(#222,#7a3a60,#222,#9a4a30,#222); display:block;}
.eu-music button[aria-pressed="true"]{border-color:#DC2626; background:#FDEDED;}
.eu-more{border:0; background:none; font:inherit; font-weight:800; font-size:13.5px; color:var(--muted,#6B6064); padding:10px 0; display:flex; gap:6px; align-items:center; cursor:pointer;}
.eu-more svg{transition:transform .3s ease;} .eu-more[aria-expanded="true"] svg{transform:rotate(180deg);}
.eu-opts{overflow:hidden; max-height:0; transition:max-height .5s var(--mv-ease);} .eu-opts.open{max-height:360px;}
.eu-actions{display:flex; gap:10px; align-items:center; margin-top:14px;} .eu-actions .grow{flex:1;}
.eu-hint{font-size:12.5px; color:var(--muted,#6B6064); margin-top:8px; min-height:18px;}
.eu-done{grid-column:1 / -1; text-align:center; padding:20px 8px;}
.eu-done .ok{width:72px; height:72px; border-radius:50%; background:#E8F6EC; color:#1B7A3D; display:flex; align-items:center; justify-content:center; margin:0 auto 14px; font-size:34px; animation:euTick .6s var(--mv-spring) both;}
@keyframes euTick{from{transform:scale(.3);}to{transform:none;}}
.eu-done h3{font-family:'Outfit',Georgia,serif; font-size:28px; margin:0;} .eu-done p{color:var(--muted,#6B6064); margin:6px 0 20px;}
.eu-link{display:flex; gap:8px; align-items:center; border:1px solid var(--line-strong,#D9CFCB); border-radius:12px; padding:8px 8px 8px 12px; font-size:13px; color:var(--muted,#6B6064); margin:0 auto 16px; max-width:440px;}
.eu-link span{flex:1; min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; text-align:left;}
.eu-acts{display:flex; gap:10px; justify-content:center; flex-wrap:wrap;}
@media (max-width:760px){
  .eu-back{padding:0; align-items:flex-end;}
  .eu-sheet{grid-template-columns:1fr; gap:16px; padding:18px 16px calc(18px + env(safe-area-inset-bottom,0px)); border-radius:24px 24px 0 0; margin:auto 0 0; max-height:94vh; overflow-y:auto;}
  .eu-pv{max-width:190px;}
  .eu-step .lbl{width:120px;}
  .eu-actions .eu-btn.big{flex:1;}
}
@media (prefers-reduced-motion:reduce){.eu-sheet, .eu-back, .eu-done .ok, .eu-step.run .dot{animation:none !important;} .eu-opts{transition:none;}}
