/* OUT2 r51 "saves" preview: heart fx, Saves badge bump, coach mark, Your saves sheet (js/saves.js) + Get me there (js/getthere.js) */
/* ---- hearts: our pop + burst replace microfx's dot burst ---- */
html.sv-on [data-save] .fx-burst{display:none!important}
html.sv-on [data-save].fx-pop svg{animation:none!important}
.sv-hap{position:fixed;left:-200px;top:0;width:1px;height:1px;overflow:hidden;opacity:0;pointer-events:none}
.sv-fx{position:fixed;inset:0;pointer-events:none;z-index:2147482000;overflow:hidden}
.sv-p{position:absolute;display:block;will-change:transform,opacity}
.sv-ph{width:11px;height:11px;color:var(--hot,#e8553d)}.sv-ph.gold{color:var(--reme,#d9b26f)}
.sv-ph svg{display:block;width:100%;height:100%;fill:currentColor}
.sv-ps{width:7px;height:7px;background:#fff;clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%);filter:drop-shadow(0 0 3px rgba(255,220,150,.9))}
.sv-ring{position:absolute;display:block;border-radius:50%;border:2px solid var(--hot,#e8553d)}
.sv-fly{position:absolute;left:0;top:0;width:16px;height:16px;color:var(--hot,#e8553d);filter:drop-shadow(0 2px 6px rgba(232,85,61,.5))}
.sv-fly svg{display:block;width:100%;height:100%;fill:currentColor}
@media (prefers-reduced-motion:no-preference){
  [data-save].sv-pop svg,[data-svh].sv-pop svg{animation:svPop .5s cubic-bezier(.2,1.6,.4,1)}
  [data-save].sv-unpop svg{animation:svUnpop .32s ease-out}
  .sv-bump{animation:svBump .5s cubic-bezier(.2,1.6,.4,1)}
}
@keyframes svPop{0%{transform:scale(1)}25%{transform:scale(.78)}55%{transform:scale(1.42)}78%{transform:scale(.94)}100%{transform:scale(1)}}
@keyframes svUnpop{50%{transform:scale(.8)}100%{transform:scale(1)}}
@keyframes svBump{0%{transform:scale(1)}40%{transform:scale(1.45)}70%{transform:scale(.92)}100%{transform:scale(1)}}
svg.sv-bump{transform-origin:50% 55%}

/* ---- coach mark: tiny bubble + soft ring, never blocks (pointer-events:none on the whole layer) ---- */
.sv-cring{position:absolute;display:block;border-radius:50%;transform:translate(-50%,-50%);border:2px solid var(--reme,#d9b26f);box-shadow:0 0 0 0 rgba(217,178,111,.55)}
.sv-coach{position:absolute;display:block;white-space:nowrap;background:#fff;color:#141416;font:650 13px/1 Inter,system-ui,sans-serif;letter-spacing:.005em;padding:8px 12px 8px 11px;border-radius:999px;box-shadow:0 8px 24px -6px rgba(0,0,0,.55)}
.sv-coach span{display:inline-flex;align-items:center;gap:4px}
.sv-ch{display:inline-block;width:14px;height:14px;color:var(--hot,#e8553d)}
.sv-ch svg{display:block;width:100%;height:100%;fill:currentColor}
.sv-tail{position:absolute;left:var(--tx,50%);width:10px;height:10px;background:#fff;transform:translateX(-50%) rotate(45deg);border-radius:2px}
.sv-coach[data-side=above] .sv-tail{bottom:-4px}.sv-coach[data-side=below] .sv-tail{top:-4px}
.sv-coach,.sv-cring{transition:opacity .25s ease}
.sv-coach.out,.sv-cring.out{opacity:0}
@media (prefers-reduced-motion:no-preference){
  .sv-coach{animation:svIn .38s cubic-bezier(.2,1.4,.4,1) both,svBob 1.6s ease-in-out .5s infinite}
  .sv-coach[data-side=below]{animation:svIn .38s cubic-bezier(.2,1.4,.4,1) both,svBobB 1.6s ease-in-out .5s infinite}
  .sv-cring{animation:svRing 1.3s ease-out .15s 3}
  .sv-ch{animation:svBeat 1.3s ease-in-out .4s 3}
}
@keyframes svIn{from{opacity:0;transform:translateY(6px) scale(.85)}}
@keyframes svBob{50%{transform:translateY(-3px)}}
@keyframes svBobB{50%{transform:translateY(3px)}}
@keyframes svRing{0%{box-shadow:0 0 0 0 rgba(217,178,111,.6)}100%{box-shadow:0 0 0 12px rgba(217,178,111,0)}}
@keyframes svBeat{0%,100%{transform:scale(1)}20%{transform:scale(1.25)}40%{transform:scale(1)}55%{transform:scale(1.15)}}

/* ---- Your saves sheet ---- */
.svs{position:fixed;inset:0;z-index:2147481000;background:rgba(0,0,0,0);transition:background .25s ease}
.svs.in{background:rgba(0,0,0,.55)}
.svs[hidden]{display:none}
html.svs-open{overflow:hidden}
.svs-p{position:absolute;left:0;right:0;bottom:0;max-height:84vh;display:flex;flex-direction:column;background:var(--bg2,#151517);color:var(--fg,#f4f1ec);border-radius:22px 22px 0 0;box-shadow:0 -20px 50px rgba(0,0,0,.5);transform:translateY(100%);transition:transform .32s cubic-bezier(.2,.8,.2,1);padding-bottom:env(safe-area-inset-bottom)}
.svs.in .svs-p{transform:none}
@media (min-width:761px){.svs-p{left:auto;top:0;bottom:0;width:400px;max-height:none;border-radius:22px 0 0 22px;transform:translateX(100%)}.svs-grab{display:none}}
@media (prefers-reduced-motion:reduce){.svs,.svs-p{transition:none}}
.svs-grab{width:38px;height:4px;border-radius:2px;background:color-mix(in srgb,currentColor 25%,transparent);margin:9px auto 0}
.svs-h{display:flex;align-items:center;justify-content:space-between;padding:12px 18px 8px}
.svs-h h2{display:flex;align-items:center;gap:9px;margin:0;font:800 22px/1.1 "Inter Tight",Inter,sans-serif;letter-spacing:-.02em}
.svs-h h2 svg{width:20px;height:20px;fill:var(--hot,#e8553d)}
.svs-n{font:700 12px/20px Inter,sans-serif;min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:var(--hot,#e8553d);color:#fff;text-align:center}.svs-n:empty{display:none}
.svs-x{width:36px;height:36px;border-radius:50%;border:1px solid color-mix(in srgb,currentColor 22%,transparent);background:none;color:inherit;font-size:22px;line-height:1;cursor:pointer}
.svs-b{overflow:auto;overscroll-behavior:contain;padding:4px 18px 22px;-webkit-overflow-scrolling:touch}
.svs-k{display:flex;align-items:center;gap:8px;margin:14px 0 8px;font:700 11.5px Inter,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--reme,#d9b26f)}
.svs-k span{font-weight:600;letter-spacing:0;color:var(--muted,#9a958d)}
.svs-l{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.svs-i{display:flex;align-items:center;gap:10px;padding:6px;border-radius:14px;background:color-mix(in srgb,currentColor 5%,transparent);transition:opacity .2s}
.svs-a{flex:1;min-width:0;display:flex;align-items:center;gap:12px;color:inherit;text-decoration:none}
.svs-im{flex:none;width:58px;height:58px;border-radius:10px;overflow:hidden;background:#222}
.svs-im img{width:100%;height:100%;object-fit:cover;display:block}
.svs-t{min-width:0;display:flex;flex-direction:column;gap:3px}
.svs-t small{font:600 12px Inter,sans-serif;color:var(--muted,#9a958d)}
.svs-t b{font:700 15px/1.25 Inter,sans-serif;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.svs-heart{flex:none;width:42px;height:42px;border-radius:50%;border:0;background:none;color:var(--hot,#e8553d);cursor:pointer;display:grid;place-items:center}
.svs-heart svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8}.svs-heart.on svg{fill:currentColor}
.svs-i.off{opacity:.55}
.svs-past summary{cursor:pointer;list-style:none}.svs-past summary::-webkit-details-marker{display:none}
.svs-past summary::after{content:"▾";margin-left:auto;color:var(--muted,#9a958d);transition:transform .2s}.svs-past[open] summary::after{transform:rotate(180deg)}
.svs-i.past .svs-im img{filter:grayscale(1) brightness(.75)}.svs-i.past .svs-t{opacity:.62}
.svs-i.past.been .svs-im img{filter:grayscale(.35)}.svs-i.past.been .svs-t{opacity:.85}
.svs-w{flex:none;display:inline-flex;align-items:center;gap:5px;height:32px;padding:0 11px;border-radius:999px;border:1px solid color-mix(in srgb,currentColor 25%,transparent);background:none;color:inherit;font:650 12.5px Inter,sans-serif;cursor:pointer;white-space:nowrap}
.svs-w i{font-style:normal;opacity:.35}
.svs-w.on{background:var(--reme,#d9b26f);border-color:transparent;color:#1a1408}.svs-w.on i{opacity:1}
.svs-note{margin:14px 0 0;font-size:12.5px;color:var(--muted,#9a958d)}
.svs-plan{display:block;margin:18px 0 0;text-align:center;font:650 14px Inter,sans-serif;color:var(--reme,#d9b26f);text-decoration:none}
.svs-empty{text-align:center;padding:26px 8px 10px}.svs-empty i{display:block;width:40px;height:40px;margin:0 auto 10px;color:var(--hot,#e8553d)}.svs-empty i svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.6}
.svs-empty p{color:var(--muted,#9a958d);margin:0 0 16px}
.svs-load{color:var(--muted,#9a958d)}

/* ---- Get me there (event page) ---- */
.gt{flex:1 1 100%;display:flex;flex-direction:column;gap:8px;margin-top:2px}
.side-card .gt{margin-top:12px}
.gt-k{margin:0;font:700 11px Inter,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--muted,#9a958d)}
.gt-r{display:grid;grid-template-columns:1.35fr 1fr 1fr;gap:8px}
.gt-1 .gt-r{grid-template-columns:1fr}
.gt-b{display:flex;align-items:center;justify-content:center;gap:7px;min-height:50px;padding:0 10px;border-radius:12px;font:650 15px Inter,sans-serif;text-decoration:none;color:#fff;transition:transform .15s,filter .15s}
.gt-b:active{transform:scale(.97)}
@media (hover:hover){.gt-b:hover{filter:brightness(1.1);transform:translateY(-1px)}}
.gt-b svg{width:19px;height:19px;flex:none}
.gt-b span{display:flex;flex-direction:column;line-height:1.1}.gt-b small{font:500 11px Inter,sans-serif;opacity:.82}
.gt-map{background:linear-gradient(135deg,#1f6feb 0%,#3b8cff 60%);box-shadow:0 8px 22px -10px rgba(31,111,235,.7)}
.gt-uber{background:#000;border:1px solid rgba(255,255,255,.22)}
.gt-lyft{background:#ff00bf}
html[data-theme=editorial] .gt-uber,html.light .gt-uber{border-color:transparent}
.gt-ic-uber{background:#000!important;color:#fff!important}.gt-ic-lyft{background:#ff00bf!important;color:#fff!important}
@media (prefers-reduced-motion:reduce){.gt-b{transition:none}}
.gt-old{display:none!important}
