@font-face{font-family:Manrope;src:url(/fonts/manrope-cyrillic.woff2) format("woff2");font-weight:400 800;font-display:swap;unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116}
@font-face{font-family:Manrope;src:url(/fonts/manrope-latin-ext.woff2) format("woff2");font-weight:400 800;font-display:swap;unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:Manrope;src:url(/fonts/manrope-latin.woff2) format("woff2");font-weight:400 800;font-display:swap;unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:Unbounded;src:url(/fonts/unbounded-cyrillic.woff2) format("woff2");font-weight:500 800;font-display:optional;unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116}
@font-face{font-family:Unbounded;src:url(/fonts/unbounded-latin-ext.woff2) format("woff2");font-weight:500 800;font-display:optional;unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:Unbounded;src:url(/fonts/unbounded-latin.woff2) format("woff2");font-weight:500 800;font-display:optional;unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:Kufi;src:url(/fonts/kufi.woff2) format("woff2");font-weight:100 900;font-display:swap;unicode-range:U+0600-06FF,U+0750-077F,U+08A0-08FF,U+FB50-FDFF,U+FE70-FEFF}
/* ============ Wherepicks design tokens ============
   Dark = "concert night" (neon on near-black). Light = "daytime festival" (sun, coral, lagoon on sand). */
:root{--bg:#07060d;--bg2:#0e0c18;--card:#14111f;--card2:#1c1830;--ink:#f7f4ff;--mute:#aea6c6;--line:#ffffff17;--line2:#ffffff2b;
--a1:#ff3d7f;--a2:#ffb547;--a3:#8b5cff;--a4:#22e6c4;--acc:var(--a1);--acc-ink:#ff8db4;--on-acc:#fff;
--grad:linear-gradient(110deg,#ff3d7f,#ff7a45 55%,#ffb547);--grad2:linear-gradient(135deg,#8b5cff,#ff3d7f 60%,#ffb547);
--glow:0 0 0 1px #ff3d7f55,0 10px 40px -6px #ff3d7f66,0 0 80px -20px #8b5cff88;--sh:0 18px 50px -18px #000c;--sh2:0 6px 20px -8px #000a;
--r:20px;--r2:28px;--spring:cubic-bezier(.34,1.56,.64,1);--ease:cubic-bezier(.22,1,.36,1);--hdr:64px;
--disp:Unbounded,Kufi,"Noto Sans Devanagari","Noto Sans Bengali","Noto Sans Malayalam","PingFang SC","Noto Sans SC","Microsoft YaHei",system-ui,sans-serif;
--body:Manrope,Kufi,"Noto Sans Devanagari","Noto Sans Bengali","Noto Sans Malayalam","PingFang SC","Noto Sans SC","Microsoft YaHei",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color-scheme:dark}
:root[data-theme=light]{--bg:#fbf6ee;--bg2:#f4ecdf;--card:#fff;--card2:#fbf3e7;--ink:#1a1325;--mute:#5d5468;--line:#1a132517;--line2:#1a13252e;
--a1:#e8245f;--a2:#f08a00;--a3:#6d3ef0;--a4:#0a9e86;--acc-ink:#c4174d;
--grad:linear-gradient(110deg,#ff4f7b,#ff8a3d 55%,#ffc23d);--grad2:linear-gradient(135deg,#ff8a3d,#ff4f7b 55%,#8b5cff);
--glow:0 0 0 1px #ff4f7b44,0 12px 36px -10px #ff4f7b55,0 0 60px -24px #ffb54799;--sh:0 18px 40px -20px #5a3a1a40;--sh2:0 6px 18px -10px #5a3a1a40;color-scheme:light}
[dir=rtl]{--disp:Kufi,Unbounded,system-ui,sans-serif;--body:Kufi,Manrope,system-ui,sans-serif}
:root[lang=ur],:root[lang=fa]{--disp:Kufi,"Noto Naskh Arabic",system-ui,sans-serif;--body:Kufi,"Noto Naskh Arabic",system-ui,sans-serif}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--hdr) + 10px)}html,body{overflow-x:clip}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.55 var(--body);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}
a{color:inherit;text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:3px}img{max-width:100%;display:block}
h1,h2,h3,.disp{font-family:var(--disp);letter-spacing:-.02em}
[dir=rtl] h1,[dir=rtl] h2,[dir=rtl] h3,:lang(hi) h1,:lang(bn) h1,:lang(ml) h1,:lang(zh-Hans) h1{letter-spacing:0}
:focus-visible{outline:3px solid var(--a2);outline-offset:3px;border-radius:10px}
.skip{position:absolute;inset-inline-start:10px;top:-80px;background:var(--a2);color:#000;padding:10px;z-index:99;border-radius:10px}.skip:focus{top:10px}
.wrap{max-width:1280px;margin:0 auto;padding:0 18px}
.vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.note{font-size:13px;color:var(--mute)}.credit{font-size:11.5px;color:var(--mute)}.credit a{text-decoration:underline}
/* ============ header ============ */
header.top{position:sticky;top:0;z-index:40;height:var(--hdr);backdrop-filter:saturate(1.6) blur(16px);-webkit-backdrop-filter:saturate(1.6) blur(16px);background:color-mix(in srgb,var(--bg) 72%,transparent);border-bottom:1px solid var(--line);transition:background .3s}
.is-home header.top{background:linear-gradient(180deg,#07060dcc,#07060d00);border-color:transparent;color:#fff}
.is-home.scrolled header.top{background:color-mix(in srgb,var(--bg) 78%,transparent);border-color:var(--line);color:var(--ink)}
.bar{display:flex;align-items:center;gap:8px;height:var(--hdr)}
.logo{display:flex;align-items:center;gap:9px;white-space:nowrap}.logo:hover{text-decoration:none}
.logo svg{width:34px;height:34px;flex:none;filter:drop-shadow(0 0 10px #ff3d7f88)}
.logo .wm{font-family:Unbounded,Kufi,sans-serif;font-weight:700;font-size:22px;letter-spacing:-.03em;line-height:1}
.logo .wm em{font-style:normal;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.bar .sp{flex:1}
.ib{min-width:44px;height:44px;border-radius:14px;border:1px solid var(--line2);background:color-mix(in srgb,var(--card) 70%,transparent);color:inherit;display:inline-flex;align-items:center;justify-content:center;gap:6px;cursor:pointer;font:inherit;font-size:15px;font-weight:700;padding:0 12px}
.is-home:not(.scrolled) .ib{background:#ffffff14;border-color:#ffffff30;color:#fff}
.ib:hover{text-decoration:none;border-color:var(--a1)}
.ib svg{width:20px;height:20px}
.citysel span{max-width:30vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.thb .ti{display:none}[data-tm=auto] .thb .ti-auto,[data-tm=light] .thb .ti-light,[data-tm=dark] .thb .ti-dark{display:inline}
details.lsw{position:relative}details.lsw summary{list-style:none}details.lsw summary::-webkit-details-marker{display:none}
.lmenu{position:absolute;inset-inline-end:0;top:52px;background:var(--card);color:var(--ink);border:1px solid var(--line2);border-radius:18px;box-shadow:var(--sh);padding:8px;display:grid;grid-template-columns:1fr 1fr;gap:2px;width:min(340px,86vw);z-index:60;animation:pop .35s var(--spring)}
.lmenu a{padding:10px 12px;border-radius:12px;min-height:44px;display:flex;align-items:center}.lmenu a:hover{background:var(--card2);text-decoration:none}.lmenu a[aria-current]{background:var(--grad);color:#fff;font-weight:800}
@keyframes pop{from{opacity:0;transform:translateY(-6px) scale(.96)}to{opacity:1;transform:none}}
@media(max-width:640px){.hide-s{display:none!important}.logo .wm{font-size:19px}.bar{gap:6px}.ib{min-width:40px;height:40px;padding:0 9px;border-radius:12px}.citysel span{max-width:24vw}}
@media(max-width:480px){.logo .wm{display:none}.citysel .cco{display:none}}
/* ============ buttons + motion system ============ */
.btn{position:relative;overflow:hidden;isolation:isolate;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 20px;border-radius:16px;border:1px solid var(--line2);background:var(--card);color:var(--ink);font:inherit;font-weight:800;cursor:pointer;transition:transform .45s var(--spring),box-shadow .3s,border-color .2s;-webkit-user-select:none;user-select:none}
.btn:hover{text-decoration:none;border-color:var(--a1);transform:translateY(-1px)}
.btn.pri{background:var(--grad);background-size:160% 100%;color:#fff;border:0;box-shadow:var(--glow);text-shadow:0 1px 0 #0003}
.btn.pri:hover{background-position:100% 0}
.btn.sm{min-height:40px;padding:0 14px;font-size:14px;border-radius:13px}
.btn.ghost{background:transparent}
.btn svg{width:18px;height:18px;flex:none}
.pressable{transition:transform .45s var(--spring)}
.btn:active,.chip:active,.ib:active,.pressable:active,.tile:active,.bn a:active{transform:scale(.94);transition-duration:.08s}
.rip{position:absolute;border-radius:50%;pointer-events:none;z-index:-1;transform:scale(0);background:radial-gradient(circle,#fff9 0%,#fff3 40%,transparent 70%);animation:rip .6s var(--ease) forwards}
.btn.pri .rip{background:radial-gradient(circle,#fff 0%,#ffe6a8aa 35%,transparent 70%)}
@keyframes rip{to{transform:scale(1);opacity:0}}
.burst{position:fixed;pointer-events:none;z-index:200;width:8px;height:8px;border-radius:50%;left:0;top:0;will-change:transform,opacity}
.fx-layer{position:fixed;inset:0;pointer-events:none;z-index:300;overflow:hidden}
.tix{position:fixed;z-index:310;pointer-events:none;display:flex;filter:drop-shadow(0 12px 30px #000a)}
.tix i{display:block;height:64px;width:110px;background:var(--grad);border-radius:12px 4px 4px 12px;color:#fff;font:800 14px/64px var(--body);font-style:normal;text-align:center;-webkit-mask:radial-gradient(circle at 100% 50%,transparent 8px,#000 9px)}
.tix i+i{width:46px;border-radius:4px 12px 12px 4px;-webkit-mask:radial-gradient(circle at 0 50%,transparent 8px,#000 9px);background:linear-gradient(110deg,#ff9a3d,#ffc23d);border-inline-start:2px dashed #fff8}
.tix.go i:first-child{animation:tearL .7s var(--ease) forwards}.tix.go i+i{animation:tearR .7s var(--ease) forwards}
@keyframes tearL{40%{transform:none}to{transform:translate(-26px,30px) rotate(-14deg);opacity:0}}
@keyframes tearR{40%{transform:none}to{transform:translate(30px,40px) rotate(22deg);opacity:0}}
/* ============ hero (concert stage) ============ */
.hx{position:relative;isolation:isolate;overflow:hidden;min-height:min(92svh,860px);margin-top:calc(-1 * var(--hdr));padding-top:var(--hdr);color:#fff;display:flex;align-items:flex-end;background:#07060d;--hc1:#ff3d7f;--hc2:#8b5cff;--hc3:#22e6c4;transition:--hc1 1s}
.hx .bgimg{position:absolute;inset:0;z-index:-5}
.hx .bgimg img{width:100%;height:100%;object-fit:cover;animation:kb 40s var(--ease) infinite alternate;transform-origin:60% 40%}
@keyframes kb{from{transform:scale(1.02)}to{transform:scale(1.16) translate(-1.5%,1%)}}
.hx:before{content:"";position:absolute;inset:0;z-index:-4;background:linear-gradient(180deg,#07060dcc 0%,#07060d55 30%,#07060d99 62%,var(--bg) 100%)}
:root[data-theme=light] .hx:before{background:linear-gradient(180deg,#1a0f2bb0 0%,#1a0f2b40 30%,#2a123d88 62%,var(--bg) 100%)}
.beams{position:absolute;inset:-10% -20% 0;z-index:-3;pointer-events:none;mix-blend-mode:screen;opacity:.85}
.beams i{position:absolute;top:-10%;left:50%;width:22vmax;height:130%;transform-origin:50% 0;background:linear-gradient(180deg,color-mix(in srgb,var(--hc1) 70%,transparent),transparent 75%);clip-path:polygon(46% 0,54% 0,100% 100%,0 100%);filter:blur(14px);animation:sweep 9s ease-in-out infinite alternate}
.beams i:nth-child(2){left:22%;background:linear-gradient(180deg,color-mix(in srgb,var(--hc2) 75%,transparent),transparent 70%);animation-duration:11s;animation-delay:-3s}
.beams i:nth-child(3){left:78%;background:linear-gradient(180deg,color-mix(in srgb,var(--hc3) 60%,transparent),transparent 70%);animation-duration:13s;animation-delay:-6s}
.beams i:nth-child(4){left:5%;opacity:.6;animation-duration:15s;animation-delay:-2s}
@keyframes sweep{from{transform:translateX(-50%) rotate(-28deg)}to{transform:translateX(-50%) rotate(28deg)}}
.bokeh{position:absolute;inset:auto 0 0;height:45%;z-index:-2;pointer-events:none;opacity:.7;background:
radial-gradient(6px 6px at 8% 78%,#ffd36e,transparent),radial-gradient(5px 5px at 18% 88%,#ff6fa8,transparent),radial-gradient(7px 7px at 31% 72%,#9b7bff,transparent),radial-gradient(4px 4px at 44% 90%,#5ff2dc,transparent),radial-gradient(6px 6px at 57% 80%,#ffd36e,transparent),radial-gradient(5px 5px at 69% 86%,#ff6fa8,transparent),radial-gradient(7px 7px at 82% 74%,#5ff2dc,transparent),radial-gradient(5px 5px at 93% 88%,#9b7bff,transparent),radial-gradient(4px 4px at 25% 60%,#fff,transparent),radial-gradient(4px 4px at 75% 64%,#fff,transparent);animation:twinkle 4s ease-in-out infinite alternate}
@keyframes twinkle{from{opacity:.35;transform:translateY(4px)}to{opacity:.8;transform:none}}
.grain{position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.08;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.hx .in{width:100%;padding:40px 18px 34px;max-width:1280px;margin:0 auto}
.kick{display:inline-flex;gap:9px;align-items:center;font-size:12.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;padding:7px 14px;border-radius:99px;background:#00000029;border:1px solid #ffffff38}
:lang(ar) .kick,:lang(ur) .kick,:lang(fa) .kick,:lang(hi) .kick,:lang(bn) .kick,:lang(ml) .kick,:lang(zh-Hans) .kick{letter-spacing:0}
.eq{display:inline-flex;gap:2px;align-items:flex-end;height:14px}.eq b{width:3px;height:100%;border-radius:2px;background:var(--a4);transform-origin:bottom;animation:eq 1s ease-in-out infinite}
.eq b:nth-child(2){animation-delay:-.4s;background:var(--a2)}.eq b:nth-child(3){animation-delay:-.7s;background:var(--a1)}.eq b:nth-child(4){animation-delay:-.2s}
@keyframes eq{0%,100%{transform:scaleY(.25)}50%{transform:scaleY(1)}}
h1.mega{font-size:clamp(40px,8.4vw,104px);line-height:.96;margin:18px 0 14px;font-weight:800;max-width:14ch;text-wrap:balance;text-shadow:0 4px 40px #0008}
[dir=rtl] h1.mega,:lang(hi) h1.mega,:lang(bn) h1.mega,:lang(ml) h1.mega{line-height:1.2;font-size:clamp(36px,7vw,84px)}
:lang(ru) h1.mega,:lang(de) h1.mega,:lang(tl) h1.mega,:lang(ml) h1.mega,:lang(fr) h1.mega,:lang(es) h1.mega,:lang(tr) h1.mega{font-size:clamp(34px,6.6vw,84px);max-width:18ch}
h1.mega em{font-style:normal;background:linear-gradient(100deg,var(--hc1),#ffb547 50%,var(--hc3));background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shine 6s linear infinite}
@keyframes shine{to{background-position:200% 0}}
.hx p.sub{font-size:clamp(16px,2vw,20px);max-width:620px;opacity:.92;margin:0 0 22px}
.hcount{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;margin-top:20px;font-size:14px}
.hcount a{color:#fff;font-weight:800}.hcount .lbl{color:#ffd36e;font-weight:800;text-transform:uppercase;letter-spacing:.1em;font-size:11.5px}
.cdbig{display:inline-flex;gap:6px;font-variant-numeric:tabular-nums}.cdbig span{min-width:46px;text-align:center;padding:6px 8px;border-radius:12px;background:#ffffff18;border:1px solid #ffffff2a;font:800 18px/1.1 Unbounded,var(--body)}.cdbig small{display:block;font:700 10px var(--body);opacity:.75;text-transform:uppercase}
.hx .credit{position:absolute;bottom:8px;inset-inline-end:14px;color:#fff9;font-size:10.5px;z-index:2}.hx .credit a{color:#fffc}
/* glowing search / Ask AI */
.sbox{position:relative;max-width:760px;border-radius:22px;padding:2px;background:conic-gradient(from var(--ang,0deg),#ff3d7f,#ffb547,#22e6c4,#8b5cff,#ff3d7f);animation:spin 6s linear infinite;box-shadow:0 0 50px -8px #ff3d7f99,0 0 120px -30px #8b5cff}
@property --ang{syntax:"<angle>";inherits:false;initial-value:0deg}
@keyframes spin{to{--ang:360deg}}
.sbox form{display:flex;gap:6px;align-items:center;background:#0d0b16f2;border-radius:20px;padding:6px}
:root[data-theme=light] .sbox form{background:#fffffff5}
.sbox input{flex:1;min-width:0;border:0;outline:0;font:inherit;font-size:17px;padding:12px 10px;color:var(--ink);background:transparent}
.hx .sbox input{color:#fff}:root[data-theme=light] .hx .sbox input{color:#1a1325}
.sbox input::placeholder{color:#a69fbb}
.mode{display:flex;background:#ffffff12;border-radius:14px;padding:3px;flex:none}:root[data-theme=light] .mode{background:#1a132510}
.mode button{border:0;background:transparent;color:inherit;font:inherit;font-weight:800;font-size:13.5px;min-height:40px;padding:0 12px;border-radius:11px;cursor:pointer;display:inline-flex;gap:6px;align-items:center;transition:background .3s,color .3s}
.hx .mode button{color:#fff}:root[data-theme=light] .hx .mode button{color:#1a1325}
.mode button[aria-pressed=true]{background:var(--grad);color:#fff!important}
.sbox .go{border:0;border-radius:15px;background:var(--grad);color:#fff;font:inherit;font-weight:800;padding:0 20px;font-size:16px;cursor:pointer;min-height:48px;flex:none;position:relative;overflow:hidden;isolation:isolate}
@media(max-width:560px){.sbox form{flex-wrap:wrap}.sbox input{flex-basis:100%;order:-1;padding:12px 12px 6px}.mode{flex:1}.mode button{flex:1;justify-content:center}}
.sug{position:absolute;z-index:50;left:0;right:0;top:calc(100% + 8px);background:var(--card);color:var(--ink);border:1px solid var(--line2);border-radius:18px;box-shadow:var(--sh);overflow:hidden;animation:pop .3s var(--spring)}
.sug a{display:flex;gap:12px;padding:10px 12px;align-items:center;border-bottom:1px solid var(--line)}.sug a:hover,.sug a.on{background:var(--card2);text-decoration:none}
.sug img{width:46px;height:46px;border-radius:12px;object-fit:cover;flex:none}.sug small{color:var(--mute);display:block}
.qchips{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}
.qchips a{display:inline-flex;align-items:center;gap:7px;min-height:42px;padding:0 15px;border-radius:99px;background:#0000002e;border:1px solid #ffffff38;color:#fff;font-weight:700;font-size:14.5px;transition:transform .45s var(--spring),background .2s}
.qchips a:hover{text-decoration:none;background:#ffffff2a;transform:translateY(-2px)}
/* page hero (city / listing) */
.phx{position:relative;isolation:isolate;overflow:hidden;color:#fff;margin-top:calc(-1 * var(--hdr));padding-top:var(--hdr);min-height:340px;display:flex;align-items:flex-end;background:#07060d}
.phx .bgimg{position:absolute;inset:0;z-index:-5}.phx .bgimg img{width:100%;height:100%;object-fit:cover;animation:kb 40s var(--ease) infinite alternate}
.phx:before{content:"";position:absolute;inset:0;z-index:-4;background:linear-gradient(180deg,#07060dcc,#07060d66 40%,var(--bg) 100%)}
.phx .in{width:100%;max-width:1280px;margin:0 auto;padding:26px 18px 18px}
.phx .crumbs,.phx .crumbs a{color:#ffffffc0}
h1.pg{font-size:clamp(28px,5vw,52px);line-height:1.05;margin:8px 0 10px;font-weight:800;text-wrap:balance;touch-action:manipulation}
[dir=rtl] h1.pg,:lang(hi) h1.pg,:lang(bn) h1.pg,:lang(ml) h1.pg{line-height:1.3}
.is-sub .phx h1.pg{text-shadow:0 3px 30px #0009}
/* ============ chips, tiles ============ */
.chips{display:flex;gap:8px;overflow-x:auto;padding:4px 2px 12px;scrollbar-width:none;scroll-snap-type:x proximity;-webkit-mask:linear-gradient(90deg,#000 92%,transparent)}.chips::-webkit-scrollbar{display:none}
[dir=rtl] .chips{-webkit-mask:linear-gradient(270deg,#000 92%,transparent)}
.chip{flex:none;display:inline-flex;align-items:center;gap:7px;min-height:44px;padding:0 16px;border-radius:99px;border:1px solid var(--line2);background:var(--card);font-weight:700;white-space:nowrap;scroll-snap-align:start;font-size:14.5px;color:var(--ink);cursor:pointer;transition:transform .45s var(--spring),border-color .2s,background .2s}
.chip:hover{text-decoration:none;border-color:var(--c,var(--a1));transform:translateY(-1px)}
.chip.on{background:var(--grad);color:#fff;border-color:transparent;box-shadow:0 8px 22px -6px #ff3d7f88}
.chip .n{font-size:12px;opacity:.7;font-weight:600}
input.chip{font:inherit;font-weight:700;color:var(--ink);max-width:180px}
.tiles{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
.tile{--c:#ff3d7f;position:relative;isolation:isolate;overflow:hidden;border-radius:22px;min-height:118px;padding:14px;display:flex;flex-direction:column;justify-content:space-between;color:#fff;background:linear-gradient(140deg,var(--c),color-mix(in srgb,var(--c) 40%,#1a0b2e));box-shadow:0 14px 30px -18px var(--c);transition:transform .5s var(--spring),box-shadow .3s}
.tile:before{content:"";position:absolute;inset:auto -30% -60% auto;width:130%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,#ffffff38,transparent 60%);z-index:-1;transition:transform .6s var(--ease)}
.tile:hover{text-decoration:none;transform:translateY(-4px) rotate(-.6deg);box-shadow:0 22px 40px -16px var(--c)}.tile:hover:before{transform:translate(-14%,-12%)}
.tile .ic{font-size:30px;line-height:1;filter:drop-shadow(0 4px 8px #0004)}.tile b{font-size:15.5px;line-height:1.2;text-shadow:0 1px 8px #0005}.tile small{opacity:.9;font-weight:700;font-size:12.5px}
:root[data-theme=light] .tile{background:linear-gradient(140deg,var(--c),color-mix(in srgb,var(--c) 55%,#5a1d3a))}
/* ============ rows / carousels ============ */
section.row{margin:34px 0}
.rh{display:flex;align-items:end;justify-content:space-between;gap:10px;margin-bottom:14px}
.rh h2{margin:0;font-size:clamp(21px,3.2vw,30px);font-weight:700;line-height:1.15}
.rh h2 .em{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.rh a.more{color:var(--acc-ink);font-weight:800;white-space:nowrap;font-size:14.5px}
.rh .arrows{display:none;gap:6px}@media(hover:hover) and (min-width:900px){.rh .arrows{display:flex}}
.rh .arrows button{width:40px;height:40px;border-radius:50%;border:1px solid var(--line2);background:var(--card);color:var(--ink);cursor:pointer;font-size:18px;transition:transform .4s var(--spring)}
[dir=rtl] .rh .arrows button{transform:scaleX(-1)}
.rail{display:grid;grid-auto-flow:column;grid-auto-columns:min(78%,290px);gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;padding:6px 4px 18px;margin:0 -4px;scrollbar-width:none;overscroll-behavior-x:contain}
.rail::-webkit-scrollbar{display:none}
@media(min-width:900px){.rail{grid-auto-columns:calc((100% - 48px)/4)}}
.grid{display:grid;gap:18px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
/* ============ event card ============ */
.card{--c:#ff3d7f;position:relative;background:var(--card);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;scroll-snap-align:start;display:flex;flex-direction:column;transform-style:preserve-3d;transition:transform .5s var(--spring),box-shadow .35s,border-color .3s;will-change:transform}
.card:before{content:"";position:absolute;inset:0 0 auto;height:3px;background:linear-gradient(90deg,var(--c),transparent);z-index:3;opacity:.9}
.card:hover{box-shadow:0 26px 50px -24px color-mix(in srgb,var(--c) 70%,#000),var(--sh2);border-color:color-mix(in srgb,var(--c) 45%,transparent)}
.card .glare{position:absolute;inset:0;z-index:2;pointer-events:none;opacity:0;transition:opacity .3s;background:radial-gradient(400px circle at var(--gx,50%) var(--gy,0%),#ffffff26,transparent 45%)}
.card .glare{display:none}
.card>a{display:flex;flex-direction:column;height:100%}.card>a:hover{text-decoration:none}
.card .ph{aspect-ratio:16/10;background:var(--grad2);position:relative;overflow:hidden}
.card .ph img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}

.card .ph:after{content:"";position:absolute;inset:55% 0 0;background:linear-gradient(180deg,transparent,#0008)}
.card .ph .noimg{position:absolute;inset:0;display:grid;place-items:center;font-size:48px}
.dchip{position:absolute;z-index:2;bottom:10px;inset-inline-start:10px;min-width:50px;text-align:center;border-radius:14px;background:#ffffffeb;color:#1a1325;padding:5px 8px 6px;line-height:1;box-shadow:0 8px 20px -8px #000a}
.dchip small{display:block;font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--c);filter:brightness(.8)}
.dchip b{display:block;font:800 21px/1.05 Unbounded,var(--body)}.dchip.og b{font-size:13px;font-family:var(--body);padding:3px 0}
.cpill{position:absolute;z-index:2;bottom:12px;inset-inline-end:10px;font-size:11.5px;font-weight:800;padding:5px 10px;border-radius:99px;background:color-mix(in srgb,var(--c) 88%,#000);color:#fff;max-width:55%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.card .bd{padding:13px 15px 15px;display:flex;flex-direction:column;gap:5px;flex:1}
.card h3{margin:0;font-family:var(--body);font-weight:800;letter-spacing:-.01em;font-size:16.5px;line-height:1.28;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.card .meta{color:var(--mute);font-size:13.5px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.card .pr{margin-top:auto;padding-top:8px;font-weight:800;display:flex;justify-content:space-between;gap:8px;align-items:center;font-size:14.5px}
.card .pr .free{color:var(--a4)}
.badges{position:absolute;top:10px;inset-inline-start:10px;display:flex;gap:6px;flex-wrap:wrap;max-width:72%;z-index:2}
.bdg{font-size:11px;font-weight:800;letter-spacing:.02em;padding:4px 9px;border-radius:99px;background:#000c;color:#fff;white-space:nowrap}
.bdg.hot{background:var(--grad)}.bdg.new{background:#22e6c4;color:#042}.bdg.free{background:#22e6c4;color:#042}.bdg.last{background:#ffb547;color:#2a1400}
.save{position:absolute;top:8px;inset-inline-end:8px;width:44px;height:44px;border-radius:50%;border:0;background:#000a;color:#fff;cursor:pointer;display:grid;place-items:center;z-index:4;transition:transform .45s var(--spring),background .2s}
.save svg{width:22px;height:22px;transition:transform .5s var(--spring)}.save path{fill:transparent;stroke:#fff;stroke-width:2;transition:fill .2s}
.save[aria-pressed=true]{background:#ff3d7f}.save[aria-pressed=true] path{fill:#fff}
.save.pop svg{animation:heart .6s var(--spring)}@keyframes heart{0%{transform:scale(1)}30%{transform:scale(.6)}65%{transform:scale(1.45)}100%{transform:scale(1)}}
.cd{font-size:12.5px;color:var(--acc-ink);font-weight:800}.cd:empty{display:none}
.dist{font-size:12.5px;color:var(--a4);font-weight:800}
/* city cards */
.cities{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(min(170px,calc(50% - 7px)),1fr))}
.city{--c:#ff3d7f;position:relative;border-radius:var(--r);overflow:hidden;aspect-ratio:4/5;background:var(--grad2);display:block;isolation:isolate;transition:transform .5s var(--spring),box-shadow .4s}
.city img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform .9s var(--ease)}
.city:hover{text-decoration:none;transform:translateY(-4px);box-shadow:0 0 0 2px var(--c),0 24px 50px -18px var(--c)}.city:hover img{transform:scale(1.08)}
.city:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 30%,#000d),radial-gradient(120% 60% at 50% 120%,color-mix(in srgb,var(--c) 55%,transparent),transparent);z-index:-1}
.city .t{position:absolute;bottom:0;padding:14px;color:#fff}.city .t b{display:block;font:700 19px/1.1 var(--disp)}.city .t small{opacity:.88;font-weight:700}
/* country stage picker */
.stage{position:relative;border-radius:var(--r2);padding:18px;background:radial-gradient(120% 90% at 50% -10%,color-mix(in srgb,var(--cc,#ff3d7f) 30%,transparent),transparent 60%),var(--bg2);border:1px solid var(--line);overflow:hidden;transition:background .6s}
.stage .spot{position:absolute;top:-40%;left:var(--sx,50%);width:60%;height:180%;transform:translateX(-50%);background:radial-gradient(closest-side,color-mix(in srgb,var(--cc,#ff3d7f) 35%,transparent),transparent);pointer-events:none;transition:left .7s var(--spring),background .6s;filter:blur(10px)}
.ctabs{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding-bottom:12px;position:relative}
.ctabs button{flex:none;min-height:46px;padding:0 16px;border-radius:99px;border:1px solid var(--line2);background:var(--card);color:var(--ink);font:inherit;font-weight:800;cursor:pointer;display:inline-flex;gap:8px;align-items:center;transition:transform .45s var(--spring),box-shadow .3s}
.ctabs button[aria-selected=true]{background:color-mix(in srgb,var(--cc) 85%,#000);color:#fff;border-color:transparent;box-shadow:0 0 30px -4px var(--cc)}
.ctabs .n{font-size:12px;opacity:.75}
.cpanel{position:relative}.cpanel[hidden]{display:none}
.cpanel.in .city{animation:rise .6s var(--spring) both}
.cpanel .city:nth-child(2){animation-delay:.05s}.cpanel .city:nth-child(3){animation-delay:.1s}.cpanel .city:nth-child(4){animation-delay:.15s}.cpanel .city:nth-child(5){animation-delay:.2s}.cpanel .city:nth-child(6){animation-delay:.25s}.cpanel .city:nth-child(7){animation-delay:.3s}
@keyframes rise{from{opacity:.4;transform:translateY(18px) scale(.97)}to{opacity:1;transform:none}}
.stage h3{margin:4px 0 12px;font-size:16px}.stage h3 a{color:var(--acc-ink)}
/* ============ listing ============ */
.crumbs{font-size:13.5px;color:var(--mute);margin:12px 0 2px;display:flex;flex-wrap:wrap;gap:6px}.crumbs a{color:var(--mute)}
.summary{position:relative;background:linear-gradient(135deg,color-mix(in srgb,var(--a3) 14%,var(--card)),var(--card));border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;margin:12px 0 16px;font-size:15.5px}
.summary .upd{display:block;color:var(--mute);font-size:12.5px;margin-top:6px}
.toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:6px 0 16px}
.sbox.sm{animation:none;background:linear-gradient(110deg,#ff3d7f88,#8b5cff88);box-shadow:none;margin:6px 0 14px}
.sbox.sm form{background:var(--card)}.sbox.sm input{font-size:16px;padding:9px 10px}.sbox.sm .go{min-height:42px;padding:0 16px}
dialog.drawer{border:0;padding:0;margin:0;margin-inline-start:auto;height:100%;max-height:100%;width:min(420px,100%);background:var(--bg2);color:var(--ink)}
dialog.drawer[open]{animation:slide .45s var(--ease)}@keyframes slide{from{transform:translateX(40px);opacity:0}}
[dir=rtl] dialog.drawer[open]{animation-name:slideR}@keyframes slideR{from{transform:translateX(-40px);opacity:0}}
dialog.drawer::backdrop{background:#0009;backdrop-filter:blur(4px)}
.drawer form{padding:18px;display:flex;flex-direction:column;gap:16px;height:100%;overflow:auto}
.drawer fieldset{border:1px solid var(--line2);border-radius:16px;padding:10px 12px}.drawer legend{font-weight:800;padding:0 6px}
.drawer label{display:flex;align-items:center;gap:10px;min-height:44px;cursor:pointer}
.drawer input[type=radio],.drawer input[type=checkbox]{width:22px;height:22px;accent-color:var(--a1)}
.empty{text-align:center;padding:44px 16px;border:1px dashed var(--line2);border-radius:var(--r);color:var(--mute)}
.pager{display:flex;justify-content:center;gap:10px;margin:26px 0}
.links{columns:2 220px;font-size:14.5px}.links a{display:block;padding:6px 0;color:var(--mute)}
.faq details{border:1px solid var(--line);border-radius:16px;padding:12px 16px;margin:8px 0;background:var(--card);transition:border-color .2s}.faq details[open]{border-color:var(--line2)}.faq summary{font-weight:800;cursor:pointer;min-height:28px}
.tag{display:inline-block;font-size:13px;padding:5px 11px;border-radius:99px;background:var(--card2);margin:2px;color:var(--mute);border:1px solid var(--line)}
a.tag:hover{color:var(--ink);text-decoration:none;border-color:var(--a1)}
.cta{position:relative;overflow:hidden;isolation:isolate;border-radius:var(--r2);padding:26px 22px;background:var(--grad2);color:#fff;display:flex;flex-wrap:wrap;gap:14px 20px;align-items:center;justify-content:space-between}
.cta:before{content:"";position:absolute;inset:-50%;background:conic-gradient(from 0deg at 70% 50%,transparent,#ffffff30,transparent 30%);animation:spin2 10s linear infinite;z-index:-1}
@keyframes spin2{to{transform:rotate(1turn)}}
.cta h2{margin:0 0 4px;font-size:clamp(22px,3.4vw,32px)}.cta p{margin:0;opacity:.92}.cta .btn{background:#fff;color:#1a1325;border:0}
/* ============ event page ============ */
.evx{position:relative;isolation:isolate;overflow:hidden;margin-top:calc(-1 * var(--hdr));padding-top:var(--hdr);color:#fff;background:#07060d}
.evx .bd0{position:absolute;inset:-40px;z-index:-2;background-size:cover;background-position:center;filter:blur(40px) saturate(1.5) brightness(.55);transform:scale(1.1)}
.evx:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,#07060d88,transparent 30%,var(--bg) 100%)}
.evx .in{max-width:1280px;margin:0 auto;padding:10px 18px 26px;display:grid;gap:22px;align-items:end}
@media(min-width:900px){.evx .in{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);padding-top:20px}}
.evx .shot{border-radius:var(--r2);overflow:hidden;aspect-ratio:16/10;background:var(--grad2);box-shadow:0 40px 80px -30px #000,0 0 0 1px #ffffff1f}
.evx .shot img{width:100%;height:100%;object-fit:cover}
.evx h1.pg{text-shadow:0 2px 30px #0008}
.evx .crumbs,.evx .crumbs a{color:#ffffffc0}
.evx .lead{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;font-weight:700;opacity:.95}
.evx .cpill{position:static;display:inline-block}
.ev{display:grid;gap:24px;grid-template-columns:1fr;margin-top:8px}
@media(min-width:960px){.ev{grid-template-columns:minmax(0,1fr) 380px}.ev aside{position:sticky;top:calc(var(--hdr) + 14px);align-self:start}}
.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:18px}
.facts{display:grid;gap:14px}.facts>div{display:flex;gap:12px;align-items:flex-start}.facts .ic{width:42px;height:42px;border-radius:14px;background:var(--card2);display:grid;place-items:center;flex:none;font-size:18px}
.facts small{display:block;color:var(--mute);font-size:12.5px;font-weight:700}
.facts a{color:var(--acc-ink);font-weight:700}
.btnrow{display:flex;gap:8px;flex-wrap:wrap}
.desc{font-size:16.5px;line-height:1.75}.desc h2{font-size:20px;margin:24px 0 6px}
.sellers{display:grid;gap:8px}.sellers a{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;border-radius:14px;border:1px solid var(--line2);font-weight:700}
.sellers a.low{border-color:var(--a4);background:color-mix(in srgb,var(--a4) 10%,transparent)}
.wx{display:flex;gap:12px;align-items:center;font-weight:700}.wx b{font:800 24px Unbounded,var(--body)}
.sticky-buy{position:fixed;bottom:0;left:0;right:0;z-index:45;padding:10px 14px calc(10px + env(safe-area-inset-bottom));background:color-mix(in srgb,var(--bg) 86%,transparent);backdrop-filter:blur(14px);border-top:1px solid var(--line);display:flex;gap:10px;align-items:center;transform:translateY(0);transition:transform .4s var(--ease)}
.sticky-buy .p{flex:1;min-width:0;font-weight:800;line-height:1.2}.sticky-buy .p small{display:block;color:var(--mute);font-weight:600;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sticky-buy .btn{min-height:52px;font-size:16.5px;padding:0 24px}
@media(min-width:960px){.sticky-buy{display:none}}
body.has-buy{padding-bottom:84px}@media(min-width:960px){body.has-buy{padding-bottom:0}}
.map{width:100%;height:300px;border:0;border-radius:16px}
#bigmap{height:72vh;border-radius:var(--r);border:1px solid var(--line);background:var(--card2)}
.leaflet-container{font:inherit!important}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:var(--card)!important;color:var(--ink)!important}.leaflet-popup-content a{color:var(--acc-ink)}
.pin{display:block;margin:3px;width:16px;height:16px;border-radius:50%;background:var(--grad);border:2px solid #fff;box-shadow:0 0 0 4px #ff3d7f44,0 0 16px #ff3d7f}
/* calendar */
.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.cal .h{font-size:12px;color:var(--mute);text-align:center;font-weight:800}
.cal a,.cal span{aspect-ratio:1;border-radius:14px;background:var(--card);border:1px solid var(--line);padding:6px;display:flex;flex-direction:column;justify-content:space-between;font-weight:800;min-height:44px;transition:transform .4s var(--spring)}
.cal a:hover{text-decoration:none;transform:scale(1.05)}
.cal span{opacity:.35}.cal a.has{background:linear-gradient(135deg,color-mix(in srgb,var(--a1) 32%,var(--card)),var(--card))}.cal a small{font-size:11px;color:var(--mute);font-weight:700}
.cal a.wk{border-color:color-mix(in srgb,var(--a2) 55%,transparent)}.cal a.hol{outline:2px solid var(--a4)}
/* footer */
footer.ft{margin-top:60px;border-top:1px solid var(--line);padding:34px 0 40px;color:var(--mute);font-size:14px;background:linear-gradient(180deg,transparent,color-mix(in srgb,var(--a3) 7%,transparent))}
footer.ft .cols{display:grid;gap:22px;grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}footer.ft h4,footer.ft .fh{color:var(--ink);margin:0 0 8px;font-family:var(--disp);font-size:14px;line-height:1.3;letter-spacing:0}footer.ft a{display:block;padding:5px 0}
.nl{display:flex;gap:8px;flex-wrap:wrap}.nl input,.field input,.field textarea,.field select{flex:1;min-width:200px;min-height:48px;border-radius:14px;border:1px solid var(--line2);background:var(--card);color:var(--ink);font:inherit;padding:10px 12px}
.field{display:flex;flex-direction:column;gap:6px;margin:10px 0}.field label{font-weight:800}
/* bottom nav */
.bn{display:none}
@media(max-width:820px){
.bn{display:flex;position:fixed;z-index:46;left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));height:64px;border-radius:22px;background:color-mix(in srgb,var(--bg2) 82%,transparent);backdrop-filter:saturate(1.6) blur(18px);-webkit-backdrop-filter:saturate(1.6) blur(18px);border:1px solid var(--line2);box-shadow:0 18px 40px -12px #000a;padding:6px;justify-content:space-around}
.bn a{position:relative;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border-radius:16px;font-size:11px;font-weight:800;color:var(--mute);transition:transform .45s var(--spring),color .2s;min-width:0}
.bn a span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.bn a:hover{text-decoration:none}.bn svg{width:23px;height:23px}
.bn a[aria-current]{color:var(--ink)}.bn a[aria-current]:before{content:"";position:absolute;inset:4px 10%;border-radius:14px;background:color-mix(in srgb,var(--a1) 20%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--a1) 40%,transparent);z-index:-1}
.bn a[aria-current] svg{color:var(--a1);filter:drop-shadow(0 0 8px var(--a1))}
.bn .badge{position:absolute;top:4px;inset-inline-end:22%;min-width:17px;height:17px;border-radius:9px;background:var(--a1);color:#fff;font-size:10px;display:grid;place-items:center;padding:0 4px}
body{padding-bottom:92px}body.has-buy{padding-bottom:168px}.sticky-buy{bottom:calc(82px + env(safe-area-inset-bottom));left:10px;right:10px;border-radius:20px;border:1px solid var(--line2)}
.bar .hide-m{display:none!important}}
/* skeleton + reveal */
.skel{background:linear-gradient(100deg,var(--card) 30%,var(--card2) 50%,var(--card) 70%);background-size:300% 100%;animation:sk 1.4s ease-in-out infinite;border-radius:var(--r);height:280px}
@keyframes sk{from{background-position:100% 0}to{background-position:0 0}}
/* reveal = enhancement only: sections are visible by default; app.js adds .rv-w (wait) only to sections still below the fold, and removes it when they scroll in */.rv{transition:opacity .8s var(--ease),transform .9s var(--spring)}.rv.rv-w{opacity:0;transform:translateY(26px) scale(.985)}
/* Ask AI */
.orb{width:64px;height:64px;border-radius:50%;margin:10px auto;background:radial-gradient(circle at 35% 30%,#fff,#ffb547 18%,#ff3d7f 45%,#8b5cff 75%,#22e6c4);box-shadow:0 0 50px #ff3d7f99,0 0 100px #8b5cff66;animation:orb 1.6s ease-in-out infinite}
@keyframes orb{0%,100%{transform:scale(.9)}50%{transform:scale(1.08)}}
.askout{min-height:28px;font-size:17px;line-height:1.6}.askout .caret{display:inline-block;width:8px;height:1.1em;background:var(--a1);vertical-align:-2px;animation:blink 1s steps(2) infinite}
@keyframes blink{50%{opacity:0}}
.pchips{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}.pchips span{padding:6px 12px;border-radius:99px;background:var(--card2);border:1px solid var(--line2);font-weight:700;font-size:14px}
/* plan */
.plan{display:grid;gap:14px;counter-reset:st}.plan .stp{display:grid;grid-template-columns:64px 1fr;gap:12px;align-items:start}
.plan .stp time{font:800 15px Unbounded,var(--body);color:var(--acc-ink);padding-top:12px}
.planform{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));align-items:end}
.planform select{min-height:48px;border-radius:14px;border:1px solid var(--line2);background:var(--card);color:var(--ink);font:inherit;padding:0 12px;width:100%}
.planform label{font-weight:800;font-size:14px;display:grid;gap:6px}
/* view transitions */
@view-transition{navigation:auto}
::view-transition-old(root),::view-transition-new(root){animation-duration:.35s;animation-timing-function:var(--ease)}
::view-transition-group(evimg){animation-duration:.5s;animation-timing-function:cubic-bezier(.2,.9,.25,1)}
.toast{position:fixed;left:50%;bottom:calc(100px + env(safe-area-inset-bottom));transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:12px 18px;border-radius:14px;font-weight:800;z-index:400;animation:pop .35s var(--spring);box-shadow:var(--sh)}
.newdot{display:inline-block;padding:2px 8px;border-radius:99px;background:var(--a4);color:#032;font-size:11px;font-weight:800;margin-inline-start:6px}
@media (prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.rv.rv-w{opacity:1;transform:none}.beams,.bokeh{display:none}@view-transition{navigation:none}}
/* event hero details (v8) */
.evx .hd{display:grid;gap:12px;align-content:end;min-width:0}
.evx .badges0{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.evx .lead{display:block;line-height:1.7}
.evx .cd{margin:0;color:#fff}
.evx .share{display:flex;flex-wrap:wrap;gap:8px}
.evx .btn:not(.pri){background:#ffffff1a;border-color:#ffffff33;color:#fff;backdrop-filter:blur(8px)}
.btn.save.big{position:static;width:auto;height:auto;border-radius:999px;display:inline-flex;gap:8px;padding:0 18px;min-height:48px}
.btn.save.big svg{width:20px;height:20px}
.btn.save.big[aria-pressed=true]{background:#ff3d7f;border-color:#ff3d7f}
.btn.buy{gap:8px}
.btn.buy.wide{width:100%;justify-content:center;min-height:54px;font-size:17px}
.mapbtns{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.addcal{display:grid;gap:8px}.addcal small{color:var(--mute);font-weight:800;font-size:12.5px}.addcal span{display:flex;flex-wrap:wrap;gap:6px}
.facts .wx b{font-size:20px}.facts .wx .src{display:inline;margin-inline-start:6px}
#evmap{height:280px;background:var(--card2)}
.sticky-buy .btn.buy{flex:none}
.chip[style*="--c"]:not(.on):hover{border-color:var(--c)}
.chip.on[style*="--c"]{background:var(--c);border-color:var(--c);color:#fff}
@media(max-width:899px){.evx .in{grid-template-columns:1fr;padding-top:8px}.evx .btnrow .btn.buy{flex:1 1 100%;justify-content:center}}

/* ============ v9: lite page heroes, Ask, Plan, long weekends, ratings, embed ============ */
.phx.lite{min-height:300px;--hc2:#8b5cff;--hc3:#22e6c4;background:radial-gradient(120% 90% at 50% 0%,color-mix(in srgb,var(--hc1) 38%,#07060d),#07060d 70%)}
.phx.lite:before{background:linear-gradient(180deg,transparent 30%,var(--bg) 100%)}
.phx.lite .in{padding-bottom:26px}
.phx.lite .sub{color:#ffffffd9;max-width:62ch;margin:6px 0 14px}
.phx.lite .sbox{margin-top:10px}
.phx.lite .beams,.phx.lite .bokeh{display:block}
@media (max-width:640px){.phx.lite{min-height:240px}.phx.lite .beams i:nth-child(n+3){display:none}}
.sbox.asking{background:conic-gradient(from var(--ang,0deg),#22e6c4,#8b5cff,#ff3d7f,#ffb547,#22e6c4)}
.sug a.on,.sug a:focus-visible{background:var(--card2);outline:none}
.askp{text-align:center;margin:18px auto;max-width:820px;position:relative;overflow:hidden}
.askp .askout{font-size:clamp(16px,2.4vw,19px);line-height:1.6;max-width:66ch;margin:6px auto 10px;min-height:3.2em}
.askp .orb{transition:transform .5s var(--spring),opacity .5s}
.askp.done .orb{transform:scale(.55);opacity:.75;animation-duration:4s}
.pchips{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:0}
.pchips span{padding:6px 12px;border-radius:99px;background:color-mix(in srgb,var(--acc) 16%,transparent);border:1px solid color-mix(in srgb,var(--acc) 45%,transparent);color:var(--ink);font-weight:700;font-size:13.5px}
.plan .stp{display:block;margin:26px 0}
.plan .stp h2{display:flex;align-items:center;gap:12px;margin:0 0 12px}
.plan .stp h2 .n{flex:none;display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--c,var(--acc));color:#160b14;font:800 17px Unbounded,var(--body);box-shadow:0 0 22px color-mix(in srgb,var(--c,var(--acc)) 60%,transparent)}
.planform .btn{min-height:48px}
.lws{display:grid;gap:18px;padding-block:18px}.lws>*,.lw>*{min-width:0}
.lw .lwh{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.lw .lwh h2{margin:0}
.lw .lwh .meta{margin:4px 0 0;color:var(--mute)}
.lwn{flex:none;display:grid;place-items:center;min-width:72px;padding:8px 10px;border-radius:18px;background:var(--grad);color:#1a0b12;text-align:center;line-height:1}
.lwn b{font:800 30px Unbounded,var(--body)}
.lwn small{font-weight:800;font-size:12px}
.lw .chips{margin:10px 0}
.rating{display:grid;gap:10px;padding:14px;border-radius:var(--r);background:var(--card);border:1px solid var(--line);margin:14px 0}
.rating small{display:block;color:var(--mute);font-weight:700}
.rating b{font-size:17px}
.stars{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.stars fieldset{border:0;margin:0;padding:0;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.stars .lbl{font-weight:700;font-size:14px}
.stars .st{display:inline-flex;flex-direction:row-reverse;justify-content:flex-end}
[dir=rtl] .stars .st{flex-direction:row-reverse}
.stars input{position:absolute;opacity:0;width:1px;height:1px}
.stars label{font-size:28px;line-height:1;padding:4px 3px;cursor:pointer;color:var(--line2);transition:transform .2s var(--spring),color .15s;min-width:32px;text-align:center}
.stars label:hover,.stars label:hover~label,.stars input:checked~label{color:#ffb547;text-shadow:0 0 12px #ffb54799}
.stars input:focus-visible+label{outline:2px solid var(--acc);border-radius:8px}
.stars label:active{transform:scale(1.3)}
pre.code{white-space:pre-wrap;word-break:break-all;background:var(--bg2);border:1px solid var(--line2);border-radius:14px;padding:14px;font:13px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--ink);overflow:auto;max-height:260px}
.tbl{overflow-x:auto}.tbl table{width:100%;border-collapse:collapse;font-size:14px}
.tbl th,.tbl td{text-align:start;padding:9px 8px;border-bottom:1px solid var(--line)}
.tbl th{color:var(--mute);font-weight:800}
.tbl a{color:var(--acc-ink);font-weight:700}
.desc.week{display:grid;gap:14px}
.week h2{margin:18px 0 8px}
.week ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.week li{padding:10px 12px;border-radius:12px;background:var(--card);border:1px solid var(--line)}
.week li a{font-weight:700}
.continue{display:inline-flex;align-items:center;gap:8px;margin:10px 0 0;padding:8px 14px;border-radius:99px;background:#ffffff1f;color:#fff;border:1px solid #ffffff33;backdrop-filter:blur(8px);font-weight:700}
.cd.live{color:var(--a4)}
.cd.live:before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--a4);margin-inline-end:6px;box-shadow:0 0 10px var(--a4);animation:livep 1.6s ease-in-out infinite;will-change:opacity}@keyframes livep{50%{opacity:.35}}/* opacity only: the old orb (scale + hue-rotate filter) repainted the hero every frame, ~1 fps on WebKit */
@media (prefers-reduced-motion:reduce){.cd.live:before,.askp .orb{animation:none}.stars label{transition:none}}
@media (max-width:640px){.lmenu{position:fixed;top:calc(var(--hdr) + 4px);inset-inline:12px;width:auto}}
/* light = daytime festival: lite heroes become sunny instead of a night stage */
[data-theme=light] .phx.lite{color:var(--ink);background:radial-gradient(120% 100% at 50% 0%,color-mix(in srgb,var(--hc1) 30%,#fff3e0),var(--bg) 72%)}
[data-theme=light] .phx.lite:before{background:linear-gradient(180deg,transparent 40%,var(--bg) 100%)}
[data-theme=light] .phx.lite h1.pg{text-shadow:none}
[data-theme=light] .phx.lite .sub,[data-theme=light] .phx.lite .crumbs,[data-theme=light] .phx.lite .crumbs a{color:var(--mute)}
[data-theme=light] .phx.lite .beams{mix-blend-mode:multiply;opacity:.35}
[data-theme=light] .phx.lite .grain{opacity:.04}
[data-theme=light] .phx.lite .qchips a,[data-theme=light] .phx.lite .chip{color:var(--ink)}
[data-theme=light] .continue{background:#0000000d;color:var(--ink);border-color:var(--line2)}
[data-theme=light] .phx.lite .qchips a{background:#ffffffc0;border-color:var(--line2)}
/* dark map: invert OSM raster tiles (no keyed dark tile service needed) */
[data-theme=dark] .leaflet-tile-pane{filter:invert(1) hue-rotate(180deg) brightness(.85) contrast(.92) saturate(.55)}
.leaflet-div-icon{background:none;border:0}

.gplace{margin-top:8px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;font-size:.9rem}.gplace a{font-weight:700}.gplace .gma{font-family:Roboto,sans-serif;font-weight:400;color:var(--mute);white-space:nowrap}

/* perf: skip layout/paint of off-screen blocks until near the viewport */
footer.ft{content-visibility:auto;contain-intrinsic-size:auto 520px}/* rows: no content-visibility - in WebKit the estimated heights made the page jump while scrolling (qa/full_sweep 'not stable') *//* cards: no content-visibility - WebKit can't scrollIntoView their buttons (qa/full_sweep) */

.ev>*{min-width:0}
.facts .bt b{display:block;font-weight:600;margin-top:2px}.facts .bt b+b{margin-top:6px}
.lsw .lc{white-space:nowrap;word-break:keep-all}.lsw>summary{white-space:nowrap}
.rh .rnote{flex-basis:100%;order:9;color:var(--mut);font-size:.82rem;margin-top:-4px}
/* search v2: one toggle + one icon action */
.sbox .go{width:48px;padding:0;display:inline-grid;place-items:center;border-radius:50%}
.sbox.sm .go{width:42px;min-height:42px}
.mode button{font-size:13px;min-height:38px;padding:0 12px}
@media(max-width:560px){.sbox form{flex-wrap:wrap}.mode{order:-2;flex:0 0 100%}.mode button{flex:1;justify-content:center}.sbox input{flex:1 1 0;order:0;flex-basis:auto;padding:10px 8px}}
/* ---- places & guides */
.pcard .ph{background:linear-gradient(135deg,color-mix(in srgb,var(--c) 35%,var(--card2)),var(--card2))}
.pcard .ph .picon{position:absolute;inset:0;display:grid;place-items:center;font-size:54px;opacity:.85}
.pphoto{margin:0 0 16px;border-radius:var(--r);overflow:hidden;border:1px solid var(--line);background:var(--card2)}
.pphoto img{display:block;width:100%;height:auto;aspect-ratio:16/10;object-fit:cover}
.pphoto figcaption{font-size:12.5px;color:var(--mute);padding:8px 12px}
.pbox{margin:18px 0;padding:18px 20px;border:1px solid var(--line);border-radius:var(--r);background:var(--card)}
.pbox h2{font-size:19px;margin:0 0 10px}
.pbox p{margin:6px 0}
.pfacts{display:grid;gap:12px;margin:0 0 16px}
.pfacts>div{display:grid;gap:2px}
.pfacts dt{font-size:12.5px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--mute)}
.pfacts dd{margin:0;overflow-wrap:anywhere}
.pfacts dd small{display:block;color:var(--mute);font-size:12px}
.pmap{height:min(60vh,520px);margin:12px 0 20px}
.plinks{list-style:none;padding:0;margin:0 0 18px;display:grid;gap:8px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
.plinks a{display:block;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--card);min-height:44px}
.plinks small{display:block;color:var(--mute)}
.ptiles{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));margin:10px 0 24px}
.guide .gsec{scroll-margin-top:90px}
.glist{margin:0;padding-inline-start:20px;display:grid;gap:8px}
.gnums{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:10px}
.gnums li{display:flex;align-items:center;gap:10px;padding:8px 12px;border:1px solid var(--line);border-radius:14px;background:var(--card2)}
.gnums .btn{font-weight:900;font-size:18px}
.tblw{overflow-x:auto}
.gtbl{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums;min-width:420px}
.gtbl th,.gtbl td{padding:8px 10px;border-bottom:1px solid var(--line);text-align:start}
.gtbl thead th{font-size:12.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--mute)}
.gtbl tr.ok th{box-shadow:inset 3px 0 #2fcf86}
.gtbl tr.hot th{box-shadow:inset 3px 0 #ff5a5a}
[dir=rtl] .gtbl tr.ok th{box-shadow:inset -3px 0 #2fcf86}
[dir=rtl] .gtbl tr.hot th{box-shadow:inset -3px 0 #ff5a5a}
.btn.save-pl{position:static;width:auto;height:auto;min-height:44px;border-radius:99px;display:inline-flex;gap:6px;background:var(--card);color:var(--ink);border:1px solid var(--line2);backdrop-filter:none}
.btn.save-pl[aria-pressed=true]{background:#ff3d7f;color:#fff;border-color:#ff3d7f}
/* footer v2: minimal */
footer.ft{padding:30px 0 28px}
footer.ft .ftin{display:grid;gap:18px;grid-template-columns:1fr auto;align-items:start}
footer.ft .fbrand .logo{display:inline-flex;align-items:center;gap:8px;color:var(--ink);padding:0}
footer.ft .ftag{margin:8px 0 0;max-width:46ch;line-height:1.5}
footer.ft .flinks{display:flex;flex-wrap:wrap;gap:4px 18px;justify-content:flex-end;padding-top:6px}
footer.ft .flinks a{display:inline-block;padding:6px 0;color:var(--ink);font-weight:700}
footer.ft .fbot{grid-column:1/-1;display:flex;gap:12px;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding-top:14px}
footer.ft .fbot .note{margin:0;font-size:12.5px}footer.ft .fbot .note a{display:inline;padding:0}
footer.ft .fctl{display:flex;gap:6px;align-items:center;flex:none}
footer.ft .lmenu{top:auto;bottom:calc(100% + 8px)}
@media(max-width:820px){
footer.ft{margin-top:40px;padding:24px 0 18px}
footer.ft .ftin{grid-template-columns:1fr;gap:14px}
footer.ft .flinks{justify-content:flex-start}
footer.ft .fbot{flex-wrap:wrap}
footer.ft .lmenu{position:fixed;top:auto;bottom:calc(84px + env(safe-area-inset-bottom));inset-inline:12px;width:auto}
body{padding-bottom:calc(94px + env(safe-area-inset-bottom))}body.has-buy{padding-bottom:calc(170px + env(safe-area-inset-bottom))}
}
.badge[hidden],.bn .badge[hidden]{display:none!important}
details.popq{margin:34px 0 0;border:1px solid var(--line);border-radius:16px;padding:0 14px}
details.popq summary{cursor:pointer;min-height:48px;display:flex;align-items:center;font-weight:800;color:var(--mute);list-style:none}
details.popq summary::-webkit-details-marker{display:none}details.popq summary:after{content:"+";margin-inline-start:auto;font-size:20px}details.popq[open] summary:after{content:"–"}
details.popq .links{display:flex;flex-wrap:wrap;gap:8px;padding:0 0 14px}details.popq .links a{display:inline-flex;align-items:center;min-height:44px;padding:0 12px;border-radius:12px;background:var(--card);border:1px solid var(--line);font-size:13.5px}
/* ---- accounts v1 ---- */
.marks{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.btn.mk,.btn.fol{min-height:44px}
.btn.mk[aria-pressed="true"],.btn.fol[aria-pressed="true"]{background:color-mix(in srgb,var(--acc,#8b5cff) 18%,transparent);border-color:var(--acc,#8b5cff);color:var(--ink)}
.btn.mk[aria-pressed="true"]::after{content:" ✓"}
[data-acct].on{position:relative}[data-acct].on::after{content:"";position:absolute;top:8px;inset-inline-end:8px;width:8px;height:8px;border-radius:50%;background:#2bd67b;box-shadow:0 0 0 2px var(--bg)}
.acc{display:grid;gap:22px;padding-block:18px 40px}
.acnav{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;position:sticky;top:64px;z-index:5;padding:8px 0;background:var(--bg)}
.acnav::-webkit-scrollbar{display:none}
.acnav a{flex:none;display:inline-flex;align-items:center;min-height:44px;padding:0 14px;border-radius:999px;border:1px solid var(--line);font-weight:700;text-decoration:none;color:var(--ink)}
.acsec{scroll-margin-top:130px}.acsec h3{margin:14px 0 8px;font-size:1rem}
.acin{display:grid;gap:12px;max-width:520px;margin:18px auto}
.acin .btn{justify-content:center;width:100%;min-height:48px}
.acform{display:grid;gap:8px}.acform input,.acprefs input,.acprefs select,.acprefs textarea{width:100%;min-height:44px;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:var(--card,transparent);color:var(--ink);font:inherit}
.acor{display:flex;align-items:center;gap:10px;color:var(--mut);margin:4px 0}.acor::before,.acor::after{content:"";flex:1;height:1px;background:var(--line)}
.acmsg{min-height:1.2em;margin:0;font-weight:700}.acmsg.bad,.acerr{color:#ff5a6a}
.acok{padding:12px 16px;border-radius:14px;background:color-mix(in srgb,#2bd67b 16%,transparent);font-weight:700}
.acwhy{max-width:520px;margin:0 auto 30px}.ticks{list-style:none;padding:0;display:grid;gap:8px}.ticks li::before{content:"✓ ";color:#2bd67b;font-weight:900}
.acprefs{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.acprefs label{display:grid;gap:6px;font-weight:700}
.acprefs .wide,.acprefs fieldset,.acprefs>button{grid-column:1/-1}.acprefs>button{justify-self:start}
.acprefs label.chk{display:flex;align-items:center;gap:8px;min-height:44px;font-weight:600}.acprefs label.chk input{width:22px;min-height:22px;height:22px}
.acprefs fieldset{border:1px solid var(--line);border-radius:14px;padding:12px}.acchk{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:4px}
.acplans{list-style:none;padding:0;display:grid;gap:10px}.acplans li{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between}
.acplans li>a{display:grid;gap:2px;text-decoration:none;color:var(--ink);min-width:0}.acplans small,.acitems small,.acpk small{color:var(--mut);display:block}
.acbtns{display:flex;flex-wrap:wrap;gap:6px}.btn.sm{min-height:40px}
.acchips{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:8px}.acchips li{display:flex;align-items:center;gap:2px;border:1px solid var(--line);border-radius:999px;padding-inline-start:14px}
.acchips a{min-height:44px;display:inline-flex;align-items:center;text-decoration:none;color:var(--ink);font-weight:700}
.ib.sm{width:44px;height:44px}
.acpk{list-style:none;padding:0;display:grid;gap:10px}.acpk li{display:flex;justify-content:space-between;align-items:center;gap:10px}
.acitems{padding-inline-start:22px;display:grid;gap:8px}.acitems li{display:flex;justify-content:space-between;gap:8px;align-items:center}.acitems li>a{color:var(--ink);text-decoration:none;min-width:0}
.acurl{flex:1;min-width:0;min-height:44px;padding:0 12px;border-radius:12px;border:1px solid var(--line);background:transparent;color:var(--ink)}
.btn.danger{border-color:#ff5a6a;color:#ff5a6a}
.acpast summary{cursor:pointer;min-height:44px;display:flex;align-items:center;color:var(--mut);font-weight:700}
.pnudge{position:fixed;inset-inline:12px;bottom:calc(96px + env(safe-area-inset-bottom));z-index:420;max-width:440px;margin-inline:auto;background:var(--ink);color:var(--bg);border-radius:18px;padding:14px 16px;box-shadow:var(--sh);display:grid;gap:10px;animation:pop .35s var(--spring)}
.pnudge p{margin:0;display:grid;gap:2px}.pnudge small{opacity:.8}.pnudge div{display:flex;gap:8px}.pnudge .btn.ghost{color:var(--bg);border-color:color-mix(in srgb,var(--bg) 40%,transparent)}
.toast a{color:inherit;text-decoration:underline;margin-inline-start:6px}
.savepl{margin-top:12px}
@media (min-width:900px){.pnudge{bottom:24px;inset-inline:auto 24px}}
[hidden]{display:none!important}
@media(max-width:430px){.citysel span{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.citysel{min-width:44px;padding:0}}
.acprefs select{text-overflow:ellipsis}
.acitems li{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center}.acitems .acbtns{flex-wrap:nowrap;gap:4px}
.acitems{padding-inline-start:20px}.acitems li>a b{display:block;overflow-wrap:anywhere}
.panel>:first-child{margin-top:0}.acsec>.panel{margin-top:8px}

/* active filter pills + date range */
.fpills{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 14px}
.fpills .chip{min-height:44px;display:inline-flex;align-items:center;gap:6px}
.frange{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}
.frange label{display:flex;flex-direction:column;gap:4px;min-width:0;font-size:.85rem;text-align:start}
.frange input{min-height:44px;width:100%;min-width:0;box-sizing:border-box;padding:8px 10px;border-radius:12px;border:1px solid var(--line,rgba(127,127,127,.3));background:transparent;color:inherit;font:inherit}
[data-folonly][aria-pressed=true]{background:var(--acc,#ff3d7f);color:#fff;border-color:transparent}
.chips.vibes{align-items:center}.chips.vibes .vlab{font-size:.8rem;opacity:.7;white-space:nowrap;padding-inline-end:4px}
/* ---- places first-class: illustration fallback, tabs, badges, map link ---- */
.ill{position:absolute;inset:0;display:grid;place-items:center;background:radial-gradient(120% 90% at 20% 10%,color-mix(in oklab,var(--c,#ff3d7f) 70%,#fff 0%) 0%,color-mix(in oklab,var(--c,#ff3d7f) 35%,#07060d) 70%)}
.ill span{font-size:46px;filter:drop-shadow(0 6px 18px rgba(0,0,0,.35))}
.pcard .ph{position:relative}.pcred{position:absolute;z-index:2;inset-inline-start:6px;bottom:6px;max-width:40%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:10px;padding:2px 6px;border-radius:6px;background:rgba(0,0,0,.55);color:#fff}
.pcard{position:relative}.maplk{position:absolute;inset-inline-end:10px;bottom:10px;width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:var(--bg2,#14121d);border:1px solid var(--line,#2a2738);text-decoration:none;font-size:16px;z-index:2}
.maplk:hover{transform:scale(1.08)}.parea{opacity:.85}.pbud{font-weight:600}
.bdg.open{background:#0f9d58;color:#fff}.bdg.shut{background:rgba(0,0,0,.6);color:#fff}
.ctabs2{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;margin:14px 0 6px;padding:4px;border-radius:14px;background:var(--bg2,#14121d);border:1px solid var(--line,#2a2738)}
.ctabs2::-webkit-scrollbar{display:none}
.ctabs2 a{flex:0 0 auto;display:flex;gap:6px;align-items:center;padding:9px 14px;border-radius:10px;text-decoration:none;color:inherit;font-weight:600;font-size:14px;white-space:nowrap}
.ctabs2 a.on,.ctabs2 a[aria-current]{background:linear-gradient(135deg,#ff3d7f,#ff7a45);color:#fff}
.ctabs2 a[data-tour]{margin-inline-start:auto;border:1px solid #ff3d7f}
.tnav{display:none;gap:4px;margin-inline-start:18px}.tnav a{padding:8px 12px;border-radius:10px;text-decoration:none;color:inherit;font-weight:600;font-size:14px;opacity:.85}
.tnav a:hover,.tnav a[aria-current]{opacity:1;background:var(--bg2,#14121d)}
@media (min-width:900px){.tnav{display:flex}}
.herobtns{margin:14px 0 4px;display:flex;flex-wrap:wrap;gap:8px}.tourbtn{box-shadow:0 8px 30px rgba(255,61,127,.35)}
.citygrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;margin:20px 0}
.cityc{padding:16px;border-radius:16px;background:var(--bg2,#14121d);border:1px solid var(--line,#2a2738);border-top:4px solid var(--c)}
.cityc h3{margin:0 0 4px}.cityc h3 a{text-decoration:none;color:inherit}
/* ---- pick your vibe ---- */
.vpick-wrap{margin:30px 0}.vpick .sub{margin:-4px 0 12px;opacity:.8}
.vtiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.vpick.compact .vtiles{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}
.vt{position:relative;cursor:pointer;display:block}.vt input{position:absolute;opacity:0;pointer-events:none}
.vtin{position:relative;display:flex;flex-direction:column;justify-content:flex-end;gap:4px;height:120px;padding:12px;border-radius:16px;overflow:hidden;color:#fff;background:linear-gradient(140deg,var(--vh),#1b1530);border:2px solid transparent;transition:transform .25s cubic-bezier(.2,.8,.2,1),box-shadow .25s,border-color .2s;isolation:isolate}
.vpick.compact .vtin{height:92px}
.vtin img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform .6s}
.vtin::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(0,0,0,.05),rgba(0,0,0,.72))}
.vic{font-size:26px;line-height:1}.vtin b{font-size:15px;text-shadow:0 1px 8px rgba(0,0,0,.5)}
.vt:hover .vtin{transform:translateY(-3px);box-shadow:0 14px 30px -10px var(--vh)}.vt:hover img{transform:scale(1.06)}
.vt input:checked+.vtin{border-color:#fff;box-shadow:0 0 0 3px var(--vh),0 16px 36px -10px var(--vh);transform:translateY(-3px) scale(1.02)}
.vt input:checked+.vtin::before{content:"✓";position:absolute;top:8px;inset-inline-end:8px;width:24px;height:24px;border-radius:50%;background:#fff;color:#111;display:grid;place-items:center;font-weight:800;font-size:13px;animation:vpop .3s cubic-bezier(.2,1.6,.4,1)}
.vt input:focus-visible+.vtin{outline:3px solid #fff;outline-offset:2px}
.vbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:14px}.vsel{display:flex;gap:8px;align-items:center}.vsel select{padding:9px 10px;border-radius:10px}
.vwhen{display:flex;gap:6px;border:0;padding:0;margin:0;flex-wrap:wrap}.vwhen label{cursor:pointer}.vwhen input{position:absolute;opacity:0}
.vwhen span{display:inline-block;padding:8px 12px;border-radius:999px;border:1px solid var(--line,#2a2738);font-size:14px}
.vwhen input:checked+span{background:#d6246a;border-color:#d6246a;color:#fff}.vwhen input:focus-visible+span{outline:2px solid #ff3d7f}
@keyframes vpop{from{transform:scale(0)}to{transform:scale(1)}}
.vtiles .vt{animation:vin .5s both}.vtiles .vt:nth-child(2n){animation-delay:.04s}.vtiles .vt:nth-child(3n){animation-delay:.08s}.vtiles .vt:nth-child(4n){animation-delay:.12s}
@keyframes vin{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
/* restaurants */
.rfilters{display:grid;gap:4px;margin:10px 0 16px}.rfilters .chips{margin:4px 0}.chip small{opacity:.7;margin-inline-start:4px}
.rfilters select{padding:8px 10px;border-radius:10px;max-width:240px}
.prov{font-size:12.5px}.fixf{margin:18px 0;padding:12px 14px;border-radius:14px;border:1px dashed var(--line,#2a2738)}.fixf summary{cursor:pointer;font-weight:600}
.fixf form{display:grid;gap:10px;margin-top:10px;max-width:560px}.fixf label{display:grid;gap:4px}.fixf input,.fixf select,.fixf textarea{padding:9px 10px;border-radius:10px;font:inherit}
.hp{position:absolute!important;inset-inline-start:0;top:0;width:1px!important;height:1px!important;padding:0!important;border:0!important;margin:-1px;overflow:hidden;clip-path:inset(50%);opacity:0;pointer-events:none}
/* ---- advertise ---- */
.adopts{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}
.adopt{padding:18px;border-radius:18px;background:linear-gradient(160deg,rgba(255,61,127,.12),rgba(255,122,69,.05));border:1px solid var(--line,#2a2738);transition:transform .25s,box-shadow .25s}
.adopt:hover{transform:translateY(-3px);box-shadow:0 18px 40px -18px #ff3d7f}.adopt .ai{font-size:30px}.adopt h3{margin:8px 0 6px;font-size:17px}.adopt p{margin:0;opacity:.85;font-size:14px}
.adform{position:relative;max-width:880px;padding:22px;border-radius:22px;background:var(--bg2,#14121d);border:1px solid var(--line,#2a2738)}
.adsteps{display:flex;gap:8px;list-style:none;padding:0;margin:0 0 18px;counter-reset:s}
.adsteps li{flex:1;display:flex;align-items:center;gap:8px;padding:10px;border-radius:12px;font-weight:600;font-size:14px;opacity:.55;border:1px solid var(--line,#2a2738);transition:all .3s}
.adsteps li span{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:var(--line,#2a2738);flex:0 0 auto;transition:all .3s}
.adsteps li.on{opacity:1;border-color:#ff3d7f}.adsteps li.on span{background:#ff3d7f;color:#fff}.adsteps li.done{opacity:.9}.adsteps li.done span{background:#0f9d58;color:#fff}
.adstep{border:0;padding:0;margin:0;min-width:0}.adstep legend{font-size:20px;font-weight:700;margin-bottom:12px}
.adstep.on{animation:adin .45s cubic-bezier(.2,.8,.2,1)}.adstep.back{animation:adinb .45s cubic-bezier(.2,.8,.2,1)}
@keyframes adin{from{opacity:0;transform:translateX(24px)}to{opacity:1;transform:none}}@keyframes adinb{from{opacity:0;transform:translateX(-24px)}to{opacity:1;transform:none}}
[dir=rtl] .adstep.on{animation-name:adinb}[dir=rtl] .adstep.back{animation-name:adin}
.adgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px}@media (max-width:640px){.adgrid{grid-template-columns:1fr}.adsteps li{font-size:0;justify-content:center}.adsteps li span{font-size:13px}.adform{padding:16px}}
.adf{display:grid;gap:6px;font-size:14px;font-weight:600}.adf b{color:#ff3d7f}.adf small{font-weight:400;opacity:.7}
.adf input,.adf select,.adf textarea{font:inherit;font-weight:400;padding:11px 12px;border-radius:12px;border:1px solid var(--line,#2a2738);background:var(--bg,#07060d);color:inherit;transition:border-color .2s,box-shadow .2s}
.adf input:focus,.adf select:focus,.adf textarea:focus{outline:0;border-color:#ff3d7f;box-shadow:0 0 0 3px rgba(255,61,127,.25)}
.adf .bad,.adf input[aria-invalid=true],.adf select[aria-invalid=true]{border-color:#ff4d4f;animation:shake .35s}
@keyframes shake{25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}
.adstep>.adf{margin:12px 0}.adchk{display:flex;flex-wrap:wrap;gap:8px}.adchk label{cursor:pointer}.adchk input{position:absolute;opacity:0}
.adchk span{display:inline-block;padding:9px 13px;border-radius:999px;border:1px solid var(--line,#2a2738);font-weight:500;transition:all .2s}
.adchk input:checked+span{background:linear-gradient(135deg,#ff3d7f,#ff7a45);border-color:transparent;color:#fff;transform:scale(1.03)}.adchk input:focus-visible+span{outline:2px solid #ff3d7f}
.adconsent{display:flex;gap:10px;align-items:flex-start;margin:16px 0;font-size:14px}.adconsent input{width:20px;height:20px;margin-top:2px;accent-color:#ff3d7f}
.adnav{display:flex;gap:10px;align-items:center;margin-top:18px}.adnav .sp{flex:1}.aderr{color:#ff6b6b;font-weight:600;margin:12px 0 0}
.adok{text-align:center;padding:40px 20px;border-radius:22px;background:var(--bg2,#14121d);border:1px solid var(--line,#2a2738);position:relative;overflow:hidden;max-width:880px}
.adtick{width:84px;height:84px;margin:0 auto 14px;border-radius:50%;display:grid;place-items:center;font-size:44px;color:#fff;background:linear-gradient(135deg,#0f9d58,#34d399);animation:tick .6s cubic-bezier(.2,1.6,.4,1)}
@keyframes tick{from{transform:scale(0) rotate(-40deg)}to{transform:none}}
.adburst{position:absolute;inset:0;pointer-events:none}.adburst i{position:absolute;left:50%;top:70px;width:8px;height:14px;border-radius:2px;background:hsl(calc(var(--i,1)*40),90%,60%);animation:burst 1.1s ease-out forwards;opacity:0}
.adburst i:nth-child(1){--i:1;--x:-160px;--y:-40px}.adburst i:nth-child(2){--i:2;--x:150px;--y:-60px}.adburst i:nth-child(3){--i:3;--x:-110px;--y:80px}.adburst i:nth-child(4){--i:4;--x:120px;--y:90px}.adburst i:nth-child(5){--i:5;--x:-200px;--y:20px}.adburst i:nth-child(6){--i:6;--x:210px;--y:10px}.adburst i:nth-child(7){--i:7;--x:-60px;--y:-90px}.adburst i:nth-child(8){--i:8;--x:70px;--y:-100px}.adburst i:nth-child(9){--i:9;--x:-30px;--y:120px}.adburst i:nth-child(10){--i:10;--x:30px;--y:130px}.adburst i:nth-child(11){--i:11;--x:-240px;--y:-70px}.adburst i:nth-child(12){--i:12;--x:250px;--y:-30px}.adburst i:nth-child(13){--i:13;--x:-170px;--y:120px}.adburst i:nth-child(14){--i:14;--x:180px;--y:130px}
@keyframes burst{0%{opacity:1;transform:translate(-50%,0) rotate(0)}100%{opacity:0;transform:translate(calc(-50% + var(--x)),var(--y)) rotate(320deg)}}
@media (prefers-reduced-motion:reduce){.vtin,.vtin img,.adopt,.adsteps li,.adchk span{transition:none}.vtiles .vt,.adstep.on,.adstep.back,.adtick,.adburst i,.vt input:checked+.vtin::before{animation:none}.adburst{display:none}}
.fixd{margin:12px 0;padding:10px 12px;border-radius:12px;background:rgba(15,157,88,.1);border:1px solid rgba(15,157,88,.35)}.fixd ul{margin:6px 0 0;padding-inline-start:18px}.fixd li{margin:4px 0}
/* ---- tour planner ---- */
.ttiles{grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}
.tt .vtin{height:118px;justify-content:space-between}
.tt .vti{font-size:30px;line-height:1;filter:drop-shadow(0 2px 6px rgba(0,0,0,.35))}
.tt .vtin small{font-size:12px;opacity:.92;line-height:1.3;text-shadow:0 1px 6px rgba(0,0,0,.5)}
.tourform .tco{margin:0 0 12px}.tourform .tco>b{display:block;margin:0 0 6px;font-size:14px}
.tourform .chips{display:flex;flex-wrap:wrap;gap:8px}
.tbtns{flex-wrap:wrap}
#tourmap{height:420px;border-radius:16px;overflow:hidden}
.tpin{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--c);color:#fff;font:700 12px/1 system-ui;border:2px solid #fff;box-shadow:0 2px 8px rgba(0,0,0,.35)}
.tdays .tday{margin:0 0 28px}
.tday .h2{display:flex;align-items:center;gap:10px}
.tdn{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--dc);color:#fff;font-size:15px;flex:none}
.tline{list-style:none;margin:0;padding:0 0 0 18px;border-inline-start:3px dashed color-mix(in srgb,var(--dc) 45%,transparent);margin-inline-start:14px}
[dir=rtl] .tline{padding:0 18px 0 0}
.tslot{position:relative;display:grid;grid-template-columns:56px 1fr;gap:10px;align-items:start;padding:10px 0;animation:tin .45s both}
.tslot::before{content:"";position:absolute;inset-inline-start:-27px;top:20px;width:13px;height:13px;border-radius:50%;background:var(--dc);border:3px solid var(--card,#fff)}
.tslot time{font-weight:700;font-variant-numeric:tabular-nums;padding-top:12px;font-size:14px}
.tsc{display:flex;gap:12px;align-items:center;background:var(--card,#fff);border:1px solid var(--line,#e6e6ee);border-radius:14px;padding:10px;min-width:0}
.tsi{flex:none;width:96px;height:72px;border-radius:10px;overflow:hidden;display:block}
.tsi img,.tsi .ill{width:100%;height:100%;object-fit:cover;aspect-ratio:auto}
.tsi .ill span{font-size:26px}
.tsb{display:flex;flex-direction:column;gap:3px;min-width:0}
.tsl{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;opacity:.7}
.tsn{font-weight:700;font-size:16px;color:inherit;text-decoration:none}.tsn:hover{text-decoration:underline}
.tsb small{opacity:.8}.tdir{white-space:nowrap}
.tkm{opacity:.6!important}.twarn{color:#b45309;opacity:1!important}
.trv .tsc{border-style:dashed}
.tslot:nth-child(2){animation-delay:.05s}.tslot:nth-child(3){animation-delay:.1s}.tslot:nth-child(4){animation-delay:.15s}.tslot:nth-child(5){animation-delay:.2s}.tslot:nth-child(n+6){animation-delay:.25s}
@keyframes tin{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media (max-width:600px){.tsi{width:72px;height:60px}.tslot{grid-template-columns:46px 1fr;gap:6px}.tsn{font-size:15px}#tourmap{height:320px}.ttiles{grid-template-columns:1fr 1fr}}
@media (prefers-reduced-motion:reduce){.tslot{animation:none}}
@media print{.top,.bn,.tbtns,#tourmap,footer,.crumbs{display:none!important}.tslot{break-inside:avoid;animation:none}}
.tsi{position:relative}.tsi .ill{position:absolute;inset:0}
.tourform{max-width:980px}
.trv .tsi{position:relative;width:56px;height:56px}
.card>a.maplk{height:34px;width:34px;display:grid;flex-direction:row}

.fixph{border:1px dashed var(--line,#2a2738);border-radius:14px;padding:10px 12px;margin:6px 0;display:grid;gap:8px}.fixph legend{font-weight:700;padding:0 6px}.fixph .ck{display:flex;gap:8px;align-items:flex-start;font-size:.9em}.fixerr{color:#ff6b6b;font-weight:600}
.pcard .ph .cov .ce{font-size:52px}
.pphoto a{display:block}

/* ===== Calm design system v2: tab rows, folds, drawer, restaurants ===== */
:root{interpolate-size:allow-keywords}
.trow .rh{align-items:center;flex-wrap:wrap}
.seg{position:relative;display:flex;gap:4px;padding:4px;border-radius:99px;background:var(--card2);border:1px solid var(--line);overflow-x:auto;scrollbar-width:none;width:max-content;max-width:100%;margin:0 0 14px;isolation:isolate}
.seg::-webkit-scrollbar{display:none}
.seg [role=tab],.seg>a{position:relative;z-index:1;flex:none;border:0;background:none;font:inherit;font-weight:800;font-size:14px;color:var(--mute);padding:9px 15px;min-height:40px;border-radius:99px;cursor:pointer;white-space:nowrap;transition:color .25s;display:inline-flex;align-items:center;gap:6px;text-decoration:none}
.seg [role=tab][aria-selected=true],.seg>a.on{color:var(--ink)}
.seg>a.on{background:var(--card);box-shadow:0 2px 10px -3px #0003}
.seg-ink{position:absolute;z-index:0;top:4px;bottom:4px;left:0;width:0;border-radius:99px;background:var(--card);box-shadow:0 2px 12px -3px #0004;transition:transform .45s var(--spring),width .45s var(--spring)}
.seg.sm{margin:0}.seg.sm>a{padding:7px 13px;min-height:36px;font-size:13.5px}
.tpanel[hidden]{display:none}
.tpanel.tin{animation:tin .38s var(--ease,ease) both}

.fin{animation:tin .4s ease both}
.rail>.card,.grid>.card{height:100%}
.rail{align-items:stretch}
/* folds & accordions (animated details) */
details.fold,details.acc{border:1px solid var(--line);border-radius:18px;background:var(--card);margin:18px 0;overflow:hidden}
details.fold.inl{background:none}
details.fold>summary,details.acc>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;font-weight:800;font-size:16.5px;min-height:56px;-webkit-user-select:none;user-select:none}
details.fold>summary::-webkit-details-marker,details.acc>summary::-webkit-details-marker{display:none}
details.fold>summary i,details.acc>summary i{flex:none;width:30px;height:30px;border-radius:50%;background:var(--card2);position:relative;transition:transform .35s var(--spring)}
details.fold>summary i::before,details.acc>summary i::before{content:"";position:absolute;inset:0;margin:auto;width:8px;height:8px;border-right:2px solid var(--ink);border-bottom:2px solid var(--ink);transform:translateY(-2px) rotate(45deg)}
details[open]>summary i{transform:rotate(180deg)}
details.fold::details-content,details.acc::details-content{block-size:0;overflow:hidden;transition:block-size .38s var(--ease,ease),content-visibility .38s allow-discrete}
details.fold[open]::details-content,details.acc[open]::details-content{block-size:auto}
.fold-in{padding:4px 20px 20px}
.fold-in>.row:first-child,.fold-in>section:first-child{margin-top:6px}
.acc{margin:10px 0!important;border-radius:14px!important}
.acc>summary{font-size:15px!important;padding:12px 16px!important;min-height:50px!important}
.acc>summary .nb{margin-inline-start:auto;font-size:12px;font-weight:800;background:var(--grad);color:#fff;border-radius:99px;padding:2px 9px}
.acc-in{padding:0 16px 16px}
.chips.wrapc{display:flex;flex-wrap:wrap;gap:8px;overflow:visible}
.chips.wrapc .chip{min-height:38px;padding:0 13px;font-size:13.5px;max-width:none}
/* restaurants top */
.rsearch{display:flex;gap:8px;margin-top:18px;max-width:680px;background:var(--card);border:1px solid var(--line2);border-radius:99px;padding:6px;box-shadow:0 14px 40px -18px #0006}
.rsearch input{flex:1;min-width:0;border:0;background:none;font:inherit;font-size:16.5px;padding:0 18px;color:var(--ink);outline:0;min-height:48px}
.rsearch button{border:0;border-radius:99px;background:var(--grad);color:#fff;font:inherit;font-weight:800;padding:0 22px;min-height:48px;cursor:pointer}
.vhd{font-size:20px;margin:26px 0 12px}
.vrow{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(132px,1fr);gap:10px;overflow-x:auto;scrollbar-width:none;padding:2px 2px 8px;scroll-snap-type:x mandatory}
.vrow::-webkit-scrollbar{display:none}
.vrow a{scroll-snap-align:start;display:flex;flex-direction:column;gap:8px;padding:14px;border-radius:18px;background:var(--card);border:1px solid var(--line);font-weight:800;font-size:14px;color:var(--ink);text-decoration:none;min-height:96px;transition:transform .4s var(--spring),border-color .2s}
.vrow a:hover{transform:translateY(-3px);border-color:var(--a1)}
.vrow .ve{font-size:26px;line-height:1}
.row.hl{margin-top:26px}
.hlg{grid-template-columns:repeat(4,1fr)}
@media (max-width:1000px){.hlg{grid-template-columns:repeat(2,1fr)}}
.rtool{position:sticky;top:calc(var(--hdr,64px) + 6px);z-index:30;display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px;margin:0 -8px 12px;border-radius:99px;background:color-mix(in srgb,var(--bg) 82%,transparent);-webkit-backdrop-filter:blur(14px) saturate(1.4);backdrop-filter:blur(14px) saturate(1.4)}
.rcount{margin-inline-start:auto;color:var(--mute);font-weight:700;font-size:14px}
.fdrawer{position:relative;margin:0!important;border:0!important;background:none!important;overflow:visible!important}
.fdrawer>summary{list-style:none}.fdrawer>summary::-webkit-details-marker{display:none}
.fbtn{min-height:44px!important;border-radius:99px!important;padding:0 18px!important;font-size:14.5px!important;border:1px solid var(--line2)!important;background:var(--card)!important;color:var(--ink)!important;width:auto!important}
.fbtn .nb{background:var(--grad);color:#fff;border-radius:99px;font-size:12px;padding:1px 8px}
.sheet{position:absolute;top:calc(100% + 10px);inset-inline-start:0;z-index:40;width:min(560px,92vw);max-height:min(70vh,640px);overflow:auto;overscroll-behavior:contain;background:var(--bg);border:1px solid var(--line2);border-radius:22px;padding:14px 14px 0;box-shadow:0 30px 80px -20px #000a;animation:shin .3s var(--ease,ease) both}
@keyframes shin{from{opacity:0;transform:translateY(-8px) scale(.98)}to{opacity:1;transform:none}}
.sh-h{display:flex;justify-content:space-between;align-items:center;padding:4px 4px 8px;font-weight:900;font-size:18px}
.sh-h a{font-size:14px;font-weight:800}
.sh-go{position:sticky;bottom:0;width:calc(100% + 28px);margin:10px -14px 0;border:0;background:var(--grad);color:#fff;font:inherit;font-weight:900;font-size:16px;min-height:54px;cursor:pointer}
.chips.act{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px}
.chips.act .chip{min-height:36px;font-size:13.5px}
.chips.act .x{opacity:.8;margin-inline-start:2px}
[data-rxbox].busy .rgrid{opacity:.45;transition:opacity .2s}
.rgrid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}
.loadmore{display:flex;justify-content:center;margin:26px 0 8px}
.loadmore a{display:inline-flex;align-items:center;gap:8px;min-height:50px;padding:0 28px;border-radius:99px;border:1px solid var(--line2);background:var(--card);font-weight:800;color:var(--ink);text-decoration:none}
.loadmore a.busy{opacity:.5;pointer-events:none}
.loadmore small{color:var(--mute)}
.popq h3{font-size:16px;margin:18px 0 10px}
@media (max-width:720px){
 .fdrawer[open]::before{content:"";position:fixed;inset:0;z-index:90;background:#0008;animation:fdim .3s both}
 .sheet{position:fixed;z-index:91;inset:auto 0 0 0;top:auto;width:auto;max-height:84vh;border-radius:24px 24px 0 0;padding:8px 16px 0;animation:shup .38s var(--spring,ease) both}
 .sheet::before{content:"";display:block;width:42px;height:5px;border-radius:9px;background:var(--line2);margin:4px auto 8px}
 .sh-go{width:calc(100% + 32px);margin:10px -16px 0;padding-bottom:env(safe-area-inset-bottom)}
 .rtool{border-radius:16px}
 .rsearch input{font-size:16px;padding:0 12px}.rsearch button{padding:0 16px}
 .vrow{grid-auto-columns:118px}
 .seg{margin-inline:0}
 details.fold>summary{padding:14px 16px}.fold-in{padding:2px 14px 16px}
}
@keyframes shup{from{transform:translateY(100%)}to{transform:none}}
@keyframes fdim{from{opacity:0}}
@media (prefers-reduced-motion:reduce){.seg-ink,details::details-content,.sheet,.tpanel.tin,.fin{transition:none!important;animation:none!important}}
.rtool:has(.fdrawer[open]){z-index:200}
@media (max-width:720px){.rtool{-webkit-backdrop-filter:none;backdrop-filter:none;background:var(--bg)}.fdrawer[open]::before{z-index:198}.sheet{z-index:199}body:has(.fdrawer[open]){overflow:hidden}}
main section.row[data-rxbox]{content-visibility:visible;contain:none}
section.row.rv:has(.fdrawer[open]){transform:none!important}
.tnote{margin:-4px 0 10px;color:var(--mute);font-size:13px}
/* ---------- Where are you? picker (first-visit overlay + switcher sheet) ---------- */
.wpk{display:none;position:fixed;inset:0;z-index:300;overflow:auto;overscroll-behavior:contain;background:var(--bg);color:var(--ink);-webkit-overflow-scrolling:touch}
html.wp-on .wpk-first,.wpk.open,.wpk[data-open]{display:block}
.wpk[data-open]{position:relative;inset:auto;z-index:auto;background:none;min-height:70vh}
html.wp-on body,html.wp-lock body{overflow:hidden}
html.wp-go body{visibility:hidden}
.wpk-bg{position:fixed;inset:0;pointer-events:none;overflow:hidden}
.wpk[data-open] .wpk-bg{position:absolute}
.wpk-bg i{position:absolute;width:60vmax;height:60vmax;border-radius:50%;filter:blur(70px);opacity:.38;animation:wpb 18s ease-in-out infinite alternate}
.wpk-bg i:nth-child(1){background:var(--a1,#ff3d7f);top:-25vmax;left:-15vmax}
.wpk-bg i:nth-child(2){background:var(--a2,#8b5cff);bottom:-30vmax;right:-20vmax;animation-delay:-6s}
.wpk-bg i:nth-child(3){background:var(--a3,#ffb547);top:30%;left:45%;width:34vmax;height:34vmax;opacity:.22;animation-delay:-12s}
@keyframes wpb{to{transform:translate3d(6vmax,4vmax,0) scale(1.12)}}
.wpk-in{position:relative;max-width:980px;margin:0 auto;padding:max(28px,env(safe-area-inset-top)) 20px 40px;display:flex;flex-direction:column;align-items:center;text-align:center;animation:wpin .55s var(--spring,cubic-bezier(.2,.9,.25,1.15)) both}
@keyframes wpin{from{opacity:0;transform:translateY(18px) scale(.98)}}
.wpk-x{position:absolute;top:14px;inset-inline-end:14px}
.wpk-hd{margin:18px 0 18px}
.wpk-logo svg{width:56px;height:56px;filter:drop-shadow(0 10px 30px #ff3d7f55);animation:wpf 5s ease-in-out infinite}
@keyframes wpf{50%{transform:translateY(-6px) rotate(-4deg)}}
.wpk-hd h2{font-family:var(--disp,Unbounded),system-ui,sans-serif;font-size:clamp(32px,6vw,58px);line-height:1.05;margin:14px 0 10px;letter-spacing:-.02em;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.wpk-hd p{color:var(--mute);font-size:16px;max-width:520px;margin:0 auto}
.wpk-loc{position:relative;display:inline-flex;align-items:center;gap:10px;font:inherit;font-weight:800;font-size:19px;color:#fff;background:var(--grad);background-size:160% 100%;border:0;border-radius:999px;padding:18px 34px;cursor:pointer;box-shadow:var(--glow);transition:transform .2s,background-position .4s}
.wpk-loc:hover{transform:translateY(-2px);background-position:100% 0}.wpk-loc:active{transform:scale(.97)}
.wpk-loc[aria-busy=true]{opacity:.8;cursor:progress}
.wpulse{position:absolute;inset:0;border-radius:inherit;box-shadow:0 0 0 0 #ff3d7f88;animation:wpp 2.2s 4}
@keyframes wpp{70%{box-shadow:0 0 0 18px #ff3d7f00}100%{box-shadow:0 0 0 0 #ff3d7f00}}
.wpk-priv{font-size:12.5px;color:var(--mute);margin:10px 0 0}
.wpk-msg{margin:16px auto 0;max-width:620px;padding:12px 16px;border-radius:14px;background:color-mix(in srgb,var(--card) 85%,transparent);border:1px solid var(--line2);font-size:14.5px}
.wpk-msg .btn{margin-top:10px}
.wstep,.wcities{width:100%;margin-top:26px;text-align:start;animation:wpin .45s ease both}
.wgrp+.wgrp{margin-top:20px}
.wgrp h3,.wcities h3{font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--mute);margin:0 4px 10px;font-weight:800}
.wcities h3{text-transform:none;letter-spacing:0;font-size:20px;color:var(--ink)}
.wgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px}
.wco,.wci{position:relative;display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:18px;background:color-mix(in srgb,var(--card) 82%,transparent);border:1px solid var(--line2);text-decoration:none;color:inherit;transition:transform .2s,border-color .2s,box-shadow .2s;animation:wpc .5s ease both;animation-delay:calc(var(--i,0)*45ms)}
@keyframes wpc{from{opacity:0;transform:translateY(12px)}}
.wco:hover,.wci:hover,.wco:focus-visible,.wci:focus-visible{transform:translateY(-3px);border-color:color-mix(in srgb,var(--a1,#ff3d7f) 60%,transparent);box-shadow:0 12px 30px -12px #0008}
.wflag{font-size:34px;line-height:1}
.wcn,.wcl{display:flex;flex-direction:column;min-width:0}.wcn b,.wcl b{font-size:16px}.wcn small,.wcl small{color:var(--mute);font-size:12.5px}
.whint{display:none;position:absolute;top:-9px;inset-inline-end:12px;font-size:11px;font-weight:800;padding:3px 9px;border-radius:999px;background:var(--grad);color:#fff}
.wco.hl,.wci.hl{border-color:var(--a1,#ff3d7f);box-shadow:0 0 0 2px color-mix(in srgb,var(--a1,#ff3d7f) 45%,transparent)}
.wco.hl .whint,.wci.hl .whint{display:block}
.wcg{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}
.wci{flex-direction:column;align-items:stretch;padding:0;overflow:hidden;gap:0}
.wci picture,.wci img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;background:var(--card2)}
.wci .wcl{padding:10px 14px 12px}
.wback{font:inherit;font-weight:700;background:none;border:0;color:var(--mute);cursor:pointer;padding:6px 4px;margin-bottom:6px}
.wback:hover{color:var(--ink)}
.wpk-skip{margin-top:30px;color:var(--mute);font-weight:700;text-decoration:none;border-bottom:1px dashed var(--line2)}
.wpk-skip:hover{color:var(--ink)}
/* sheet mode (top-bar switcher) */
.wpk-sheet{background:#0009;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.wpk-sheet .wpk-bg{display:none}
.wpk-sheet .wpk-in{background:var(--bg);border:1px solid var(--line2);border-radius:26px;margin:6vh auto;max-width:860px;box-shadow:0 30px 80px #000a;overflow:hidden}
.wpk-sheet .wpk-hd{margin-top:4px}.wpk-sheet .wpk-hd h2{font-size:clamp(26px,4vw,38px)}.wpk-sheet .wpk-logo{display:none}
@media(max-width:640px){.wgrid{grid-template-columns:1fr 1fr;gap:10px}.wco{flex-direction:column;align-items:flex-start;gap:6px;padding:12px}.wflag{font-size:28px}.wpk-loc{width:100%;justify-content:center}
 .wpk-sheet{display:none}.wpk-sheet.open{display:flex;align-items:flex-end}.wpk-sheet .wpk-in{margin:0;border-radius:24px 24px 0 0;max-height:90vh;overflow:auto;width:100%;animation:wpsh .4s cubic-bezier(.2,.9,.25,1) both}}
@keyframes wpsh{from{transform:translateY(100%)}}
.citysel .cv{font-style:normal;font-size:11px;opacity:.7}.citysel .cco{font-style:normal;opacity:.75}
@media(max-width:640px){.citysel .cco{display:none}}
@media(max-width:430px){.citysel span{position:static!important;width:auto;height:auto;clip:auto;max-width:21vw}.citysel{padding:0 8px;min-width:0}}
/* Near you row */
.nearrow .nrh{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.nearrow .nrh h2{white-space:nowrap}.nearrow .kmchip{position:absolute;top:10px;inset-inline-start:10px;z-index:2;font-size:12px;font-weight:800;padding:4px 9px;border-radius:999px;background:#000c;color:#fff}
.nearrow .card .ph{position:relative}
@media (prefers-reduced-motion:reduce){.wpk-bg i,.wpk-logo svg,.wpulse,.wpk-in,.wco,.wci,.wstep,.wcities,.wpk-sheet .wpk-in{animation:none!important}.wco,.wci,.wpk-loc{transition:none}}

.nearrow .badges{display:none}
.citysel{flex-shrink:0}.citysel span[data-cslabel]{display:inline-block;vertical-align:middle}/* max-width needs a box; long names (تونس العاصمة, مدينة الكويت) pushed the theme button off-screen */
@media(max-width:430px){.bar summary .lc{display:none}.citysel span{max-width:18vw}.wci picture,.wci img{aspect-ratio:4/3}}
@media(max-width:640px){.wci picture,.wci img{aspect-ratio:3/2}.wcities .wgrid{gap:10px}}
.hcov{font-size:13px;color:var(--mute);margin:-4px 0 14px;letter-spacing:.01em}.ftcov{font-size:12.5px;color:var(--mute);margin-top:6px}

/* ---- 3D hero (canvas, lazy) + deeper card depth ---- */
.hx canvas.h3d{position:absolute;inset:0;z-index:-5;pointer-events:none;opacity:0;animation:h3in 1.6s var(--ease) .1s forwards}
@keyframes h3in{to{opacity:1}}
.hx.is3d .beams{opacity:.45}.hx.is3d .bgimg img{filter:saturate(.8) brightness(.62)}
:root[data-theme=light] .hx.is3d .bgimg img{filter:saturate(.9) brightness(.8)}
/* card tilt, parallax and 3D rail entrance removed: cards stay flat (no decorative motion) */
@media (prefers-reduced-motion:reduce){.hx canvas.h3d{display:none}}
.hx .hcov{color:#fffc;text-shadow:0 1px 8px #0009}
/* ================= Category themes (tokens: src/themes.js → data-th) ================= */
[data-th=party]{--tha:#ff3d7f;--thb:#8b5cff;--thpat:radial-gradient(circle at 20% 30%,#ff3d7f55 0 2px,transparent 3px),radial-gradient(circle at 70% 60%,#22e6c455 0 2px,transparent 3px),radial-gradient(circle at 45% 85%,#ffc24b55 0 2px,transparent 3px);--thps:46px 46px}
[data-th=dining]{--tha:#f5a524;--thb:#c0532d;--thf:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif;--thpat:repeating-linear-gradient(0deg,#ffffff14 0 8px,transparent 8px 16px),repeating-linear-gradient(90deg,#ffffff14 0 8px,transparent 8px 16px);--thps:auto}
[data-th=comedy]{--tha:#ffb547;--thb:#c2412d;--thpat:linear-gradient(#0000 46%,#0006 46% 54%,#0000 54%),linear-gradient(90deg,#0000 47%,#0006 47% 53%,#0000 53%);--thps:44px 22px}
[data-th=kids]{--tha:#2fcf86;--thb:#ffcd3c;--thpat:radial-gradient(circle,#ffffff2a 0 5px,transparent 6px);--thps:28px 28px}
[data-th=theatre]{--tha:#e0569b;--thb:#7a0f2a;--thpat:repeating-linear-gradient(90deg,#00000038 0 7px,#ffffff10 9px 13px,#00000038 16px 22px);--thps:auto}
[data-th=sports]{--tha:#2fa8ff;--thb:#2fcf86;--thpat:repeating-linear-gradient(90deg,#ffffff10 0 40px,transparent 40px 80px);--thps:auto}
[data-th=outdoor]{--tha:#06b6d4;--thb:#f2c38b;--thpat:radial-gradient(120% 60% at 50% 120%,#f2c38b55,transparent 60%);--thps:auto}
[data-th=culture]{--tha:#a78bfa;--thb:#d9a24a;--thpat:linear-gradient(90deg,#ffffff0d 1px,transparent 1px),linear-gradient(#ffffff0d 1px,transparent 1px);--thps:32px 32px}
[data-th=ladies]{--tha:#ff5fb0;--thb:#e8c07a;--thpat:radial-gradient(circle at 30% 30%,#ffd6ec66 0 1.5px,transparent 2.5px),radial-gradient(circle at 75% 70%,#e8c07a66 0 1.5px,transparent 2.5px);--thps:38px 38px}
/* heroes: pattern + decor layer (JS adds .thd) */
body[data-th] :is(.phx,.evx){view-transition-name:thhero}
body[data-th] :is(.phx,.evx) .thd{position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
body[data-th] :is(.phx,.evx) .thd:before{content:"";position:absolute;inset:0;background:var(--thpat);background-size:var(--thps);opacity:.9;mask:linear-gradient(180deg,#000 0,#0008 60%,transparent)}
.thd i{position:absolute;display:block;font-style:normal}
::view-transition-group(thhero){animation-duration:.45s}
/* party: falling confetti + beat-pulsing beams */
body[data-th=party] .thd i{top:-6%;width:7px;height:12px;border-radius:2px;background:var(--c1,#ff3d7f);animation:thfall var(--d,7s) linear var(--dl,0s) infinite}
/* paused while the hero is scrolled away */
:is(.phx,.evx):is(.hoff,.hcalm) :is(.thd i,.bgimg img,.beams,.beams i,.bokeh,.bokeh i,.thd:before,.thd:after){animation-play-state:paused!important}
@keyframes thfall{to{transform:translate3d(var(--dx,20px),120vh,0) rotate(540deg)}}
body[data-th=party] .phx .beams i{animation-name:sweep,beat}
@keyframes beat{0%,100%{opacity:.85}50%{opacity:.45}}
/* dining: chalkboard + steam + "today's picks" */
body[data-th=dining] :is(.phx,.evx){background:#1f2a24}
body[data-th=dining] .thd:after{content:attr(data-label);position:absolute;top:calc(var(--hdr) + 14px);inset-inline-end:22px;font:italic 700 clamp(18px,2.4vw,28px)/1 var(--thf);color:#f6f1e3e6;transform:rotate(-4deg);text-shadow:0 0 1px #fff,0 0 8px #fff4;border-bottom:2px dashed #f6f1e399;padding-bottom:6px}
body[data-th=dining] .thd i{bottom:8%;width:22px;height:90px;border-radius:50%;background:radial-gradient(closest-side,#ffffff38,transparent);filter:blur(6px);animation:steam var(--d,5s) ease-in var(--dl,0s) infinite}
@keyframes steam{0%{transform:translateY(0) scaleX(1);opacity:0}25%{opacity:.8}100%{transform:translateY(-220px) scaleX(2.4);opacity:0}}
body[data-th=dining] h1.pg{font-family:var(--thf);font-weight:700;letter-spacing:0}
/* comedy: brick wall, spotlight follows pointer, curtain reveal, mic */
body[data-th=comedy] :is(.phx,.evx){background:#3a1712}
body[data-th=comedy] .thd:before{background:linear-gradient(#0000 46%,#00000070 46% 54%,#0000 54%) 0 0/44px 22px,linear-gradient(90deg,#0000 47%,#00000070 47% 53%,#0000 53%) 0 0/44px 44px,linear-gradient(90deg,#0000 47%,#00000070 47% 53%,#0000 53%) 22px 22px/44px 44px,#7a2f22;opacity:.55}
body[data-th=comedy] .thd .spot{inset:auto;left:var(--mx,62%);top:var(--my,40%);width:min(60vw,520px);aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(closest-side,#fff3d6aa,#ffb54733 60%,transparent);mix-blend-mode:screen;transition:left .25s var(--ease),top .25s var(--ease)}
body[data-th=comedy] .thd .mic{right:8%;bottom:14%;font-size:clamp(48px,7vw,92px);filter:drop-shadow(0 10px 20px #000a);animation:micbob 3.4s ease-in-out infinite}
[dir=rtl] body[data-th=comedy] .thd .mic{right:auto;left:8%}
@keyframes micbob{50%{transform:rotate(-8deg) translateY(-6px)}}
body[data-th=comedy] .thd .cur{top:0;bottom:0;width:51%;background:repeating-linear-gradient(90deg,#8e1020 0 18px,#b3172c 26px,#8e1020 36px);animation:curtain 1.3s cubic-bezier(.7,0,.2,1) .25s forwards;z-index:2}
body[data-th=comedy] .thd .cur.l{left:0;transform-origin:left}body[data-th=comedy] .thd .cur.r{right:0;transform-origin:right}
@keyframes curtain{to{transform:scaleX(0);opacity:.0}}
/* theatre: velvet side curtains + spotlight */
body[data-th=theatre] :is(.phx,.evx){background:#2a0611}
body[data-th=theatre] .thd .cur{top:0;bottom:0;width:13%;background:repeating-linear-gradient(90deg,#5a0a1c 0 10px,#9b1434 16px,#5a0a1c 24px);box-shadow:0 0 30px #000a;animation:drape 1.2s var(--ease) both}
body[data-th=theatre] .thd .cur.l{left:0;border-radius:0 0 60% 0}body[data-th=theatre] .thd .cur.r{right:0;border-radius:0 0 0 60%}
@keyframes drape{from{width:51%}}
body[data-th=theatre] .thd .spot{left:50%;top:-10%;width:60%;height:130%;transform:translateX(-50%);background:radial-gradient(50% 100% at 50% 0,#fff2d855,transparent 70%)}
/* kids: balloons (tap to pop) + bouncy */
body[data-th=kids] .thd i.bl{bottom:-120px;width:46px;height:58px;border-radius:50% 50% 48% 52%/55% 55% 45% 45%;background:radial-gradient(circle at 32% 28%,#fff9 0 5px,transparent 8px),var(--c1,#ff5f7a);animation:balloonRise var(--d,12s) linear var(--dl,0s) infinite;pointer-events:auto;cursor:pointer}
body[data-th=kids] .thd i.bl:after{content:"";position:absolute;left:50%;top:100%;width:1px;height:40px;background:#fff8}
@keyframes balloonRise{0%{transform:translate(0,0)}50%{transform:translate(18px,-60vh) rotate(6deg)}100%{transform:translate(-10px,-130vh)}}
.thd i.pop{animation:balloonPop .3s ease-out forwards!important}@keyframes balloonPop{to{transform:scale(1.8);opacity:0}}
body[data-th=kids] h1.pg{text-decoration:underline wavy var(--thb) 3px;text-underline-offset:10px}
/* sports: floodlights + pitch stripes */
body[data-th=sports] :is(.phx,.evx){background:#0b2a1a}
body[data-th=sports] .thd:before{background:repeating-linear-gradient(90deg,#ffffff0c 0 60px,transparent 60px 120px);mask:linear-gradient(0deg,#000,transparent 70%)}
body[data-th=sports] .thd i{top:calc(var(--hdr) + 6px);width:70px;height:26px;border-radius:6px;background:radial-gradient(circle,#fff 0 3px,transparent 4px) 0 0/12px 12px;box-shadow:0 0 50px 20px #ffffff30;animation:flood 4s ease-in-out var(--dl,0s) infinite}
@keyframes flood{50%{box-shadow:0 0 70px 30px #ffffff45}}
/* outdoor: sand + waves */
body[data-th=outdoor] .thd i.wv{left:-50%;right:-50%;bottom:-6px;height:70px;background:radial-gradient(40px 22px at 40px 0,transparent 98%,#06b6d4aa) 0 0/80px 70px repeat-x;animation:wave var(--d,9s) linear infinite;opacity:.65}
body[data-th=outdoor] .thd i.wv+i.wv{bottom:-22px;opacity:.4;animation-direction:reverse}
@keyframes wave{to{transform:translateX(80px)}}
/* culture: gallery frames */
body[data-th=culture] .thd i.fr{border:6px solid #d9a24a88;outline:10px solid #ffffff10;width:var(--w,120px);aspect-ratio:var(--ar,3/4);box-shadow:0 20px 40px #0008,inset 0 0 0 10px #ffffff08}
/* ladies: twinkling sparkles */
body[data-th=ladies] .thd i{width:10px;height:10px;background:conic-gradient(from 45deg,#fff 0 25%,transparent 0 50%,#fff 0 75%,transparent 0);clip-path:polygon(50% 0,60% 40%,100% 50%,60% 60%,50% 100%,40% 60%,0 50%,40% 40%);animation:twk var(--d,2.6s) ease-in-out var(--dl,0s) infinite}
@keyframes twk{0%,100%{transform:scale(.2);opacity:0}50%{transform:scale(1.2) rotate(45deg);opacity:1}}
/* ---- cards: per-theme accents ---- */
.card[data-th]{--c:var(--tha)}
.card[data-th=party]:hover{animation:cbeat .5s ease-in-out infinite alternate}
@keyframes cbeat{to{box-shadow:0 0 0 2px var(--tha),0 0 34px -6px var(--tha),0 0 60px -20px var(--thb)}}
.card[data-th=party] .bd{background:radial-gradient(circle at 0 0,var(--bg) 7px,transparent 8px) 0 0/100% 100% no-repeat,radial-gradient(circle at 100% 0,var(--bg) 7px,transparent 8px) 0 0/100% 100% no-repeat;border-top:2px dashed color-mix(in srgb,var(--tha) 40%,transparent)}
.card[data-th=dining] h3{font-family:var(--thf);font-weight:700;letter-spacing:0}
.card[data-th=dining] .bd{background-image:linear-gradient(90deg,color-mix(in srgb,var(--tha) 7%,transparent) 50%,transparent 50%),linear-gradient(color-mix(in srgb,var(--tha) 7%,transparent) 50%,transparent 50%);background-size:14px 14px;background-position:0 0}
.card[data-th=dining] .ph:before{content:"";position:absolute;z-index:2;left:30%;bottom:18%;width:40%;height:60%;pointer-events:none;opacity:0;background:radial-gradient(8px 40% at 30% 70%,#fff8,transparent),radial-gradient(8px 45% at 55% 60%,#fff7,transparent),radial-gradient(8px 40% at 78% 72%,#fff8,transparent);filter:blur(4px)}
.card[data-th=dining]:hover .ph:before{animation:csteam 1.8s ease-out infinite}
@keyframes csteam{0%{opacity:0;transform:translateY(20px)}40%{opacity:1}100%{opacity:0;transform:translateY(-50px) scaleX(1.4)}}
.card[data-th=dining]:hover .cpill{animation:cutl .6s ease-in-out 2}@keyframes cutl{25%{rotate:-8deg}75%{rotate:8deg}}
.card[data-th=comedy] .ph:before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(circle at var(--gx,50%) var(--gy,40%),#fff3d655,transparent 45%);opacity:0;transition:opacity .3s}
.card[data-th=comedy]:hover .ph:before{opacity:1}
.card[data-th=comedy] .bd{border-top:5px solid transparent;border-image:repeating-linear-gradient(90deg,#9a3b2a 0 20px,#5a2015 20px 22px) 5}
.card[data-th=kids]{border-radius:26px}.card[data-th=kids]:hover{animation:boing .6s var(--spring)}
@keyframes boing{30%{scale:1.04 .96}60%{scale:.98 1.03}100%{scale:1}}
.card[data-th=kids] h3{text-decoration:underline wavy color-mix(in srgb,var(--thb) 70%,transparent) 2px;text-underline-offset:5px;text-decoration-skip-ink:none}
.card[data-th=theatre] .ph{box-shadow:inset 0 6px 0 #7a0f2a}
.card[data-th=sports] .dchip{font-family:ui-monospace,"SF Mono",Menlo,monospace;background:#0b0b0b;color:#ffcf4a;letter-spacing:.04em;text-shadow:0 0 6px #ffcf4a88}
.card[data-th=outdoor] .ph:before{content:"";position:absolute;inset:auto 0 -1px;height:14px;z-index:1;pointer-events:none;background:radial-gradient(11px 9px at 11px 0,transparent 97%,var(--card)) 0 0/22px 14px repeat-x}.card[data-th=outdoor]:hover .ph:before{animation:wave 2.4s linear infinite;left:-22px}
.card[data-th=culture] .ph img{box-sizing:border-box;border:7px solid color-mix(in srgb,var(--thb) 55%,#1a1325);outline:1px solid #fff2;outline-offset:-12px}
.card[data-th=ladies] .bd{background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--thb) 50%,transparent),transparent) top/100% 1px no-repeat}
.card[data-th=ladies]:hover h3{background:linear-gradient(90deg,var(--ink),var(--tha),var(--thb),var(--ink)) 0/300% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shim 1.6s linear infinite}
@keyframes shim{to{background-position:300% 0}}
/* chips + tiles */
.chip[data-th]:hover{border-color:var(--tha)}.chip[data-th=kids]:hover{animation:boing .5s var(--spring)}.chip[data-th=party]:hover{box-shadow:0 0 18px -4px var(--tha)}
.chip[data-th=dining]{font-family:var(--thf)}
.tile[data-th]:after{content:"";position:absolute;inset:0;z-index:-1;background:var(--thpat);background-size:var(--thps);opacity:.7;pointer-events:none}
/* theme reactions (floating emoji) */
.threact{position:fixed;z-index:80;pointer-events:none;font-size:26px;animation:thup 1.1s ease-out forwards}
@keyframes thup{0%{transform:translate(-50%,-50%) scale(.4);opacity:0}20%{opacity:1;transform:translate(-50%,-80%) scale(1.15)}100%{transform:translate(calc(-50% + var(--dx,0px)),-260%) scale(1);opacity:0}}
@media (prefers-reduced-motion:reduce){.thd i,.thd:after{animation:none!important}.thd .cur{display:none}.threact{display:none}.card[data-th]:hover{animation:none}}
.wm .tm{font-size:.42em;font-weight:600;opacity:.55;vertical-align:super;margin-inline-start:1px;letter-spacing:0;-webkit-text-fill-color:currentColor}
.ft .legalc{font-size:12px;opacity:.8;margin-top:4px}
.legal h2{font-size:19px;margin:26px 0 8px}.legal p{line-height:1.7;max-width:72ch}
/* menus (batch 2) */
.mnbox{display:flex;gap:14px;align-items:center;margin:14px 0 6px;padding:12px;border:1px solid var(--line);border-radius:var(--r);background:var(--bg)}
.mnth{flex:0 0 64px;height:84px;border-radius:8px;background:linear-gradient(160deg,#fffdf7,#f3ead8);border:1px solid #e6dcc6;box-shadow:0 2px 6px rgba(0,0,0,.08);position:relative;display:flex;align-items:flex-end;justify-content:center;padding-bottom:8px;text-decoration:none;transition:transform .2s}
a.mnth:hover{transform:translateY(-2px) rotate(-1deg)}
.mnth b{font-size:12px;color:#8a6d3b;letter-spacing:.04em}
.mnpg{position:absolute;inset:12px 10px auto 10px;display:grid;gap:6px}
.mnpg i{display:block;height:3px;border-radius:2px;background:#d9cbb0}.mnpg i:nth-child(2n){width:70%}
.mnin{display:flex;flex-direction:column;gap:4px;align-items:flex-start;min-width:0}
.mnin small{color:var(--muted);overflow-wrap:anywhere}
.mnno .mnth{opacity:.55}.mnno .mnin b{font-weight:600}
.tblw{overflow-x:auto}.covt{border-collapse:collapse;width:100%;font-size:14px}.covt th,.covt td{padding:6px 10px;border-bottom:1px solid var(--line);text-align:start}.covt small{color:var(--muted)}
.mnin a:not(.btn){color:var(--acc-ink);text-decoration:underline;text-underline-offset:2px;font-weight:600}
.tierbar{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:14px 0 8px}
.tierb{display:flex;flex-direction:column;gap:2px;padding:14px 12px;border-radius:14px;border:1.5px solid var(--line,#ddd);background:var(--card,#fff);color:inherit;text-decoration:none;min-height:84px;position:relative;transition:transform .15s,border-color .15s}
.tierb b{font-size:1.02rem;line-height:1.2}.tierb small{opacity:.72;font-size:.8rem}.tierb i{font-style:normal;font-size:.75rem;opacity:.65;margin-top:auto;color:var(--ink,#111)}
.tierb:hover{transform:translateY(-1px)}.tierb.on{border-color:currentColor;box-shadow:0 0 0 2px currentColor inset}
.tierb.t-budget{color:#0d7a4f}.tierb.t-mid-range{color:#1d5fa8}.tierb.t-fine-dining{color:#8a5a00}
.tierb b,.tierb small{color:var(--ink,#111)}.tierb.on b{color:inherit}
.tiernote{font-size:.82rem;opacity:.75;margin:4px 0 8px}
.tierh{grid-column:1/-1;margin:18px 0 4px;font-size:1.05rem;padding-bottom:4px;border-bottom:1px solid var(--line,#ddd)}
.bdg.tier.t-fine{background:#f3e6c4;color:#6b4500}.bdg.tier.t-up{background:#f6efdd;color:#6b4500}.bdg.tier.t-mid{background:#e2ecf8;color:#1d4f8a}.bdg.tier.t-budget{background:#dff3e8;color:#0d6a44}
.cquick{display:flex;gap:8px;overflow-x:auto;margin:10px 0;scrollbar-width:none}.cquick::-webkit-scrollbar{display:none}
.cquick>a{flex:1 0 auto}.tierb.sm{min-height:0;padding:9px 12px}.qdate{display:flex;align-items:center;gap:6px;padding:9px 14px;border-radius:14px;background:#fde7ee;color:#9b1c4a;text-decoration:none;font-weight:600}
@media(max-width:560px){.tierbar{gap:6px}.tierb{padding:10px 8px;min-height:76px}.tierb b{font-size:.9rem}.tierb small{font-size:.72rem}}
[data-theme=dark] .tierb,[data-theme=night] .tierb{background:rgba(255,255,255,.04)}
/* Ask AI concierge */
.cg .askout{font-size:1.08rem;line-height:1.5}
.cg .cgq{margin:.6rem 0 0;font-weight:600}
.cg .cgn{margin:.4rem 0 0;font-size:.85rem;opacity:.75}
.cgl{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px;counter-reset:cg}
.cgi{display:flex;flex-direction:column;gap:6px;counter-increment:cg;position:relative}
.cgi::before{content:counter(cg);position:absolute;z-index:2;top:8px;inset-inline-start:8px;width:26px;height:26px;border-radius:50%;background:#8b5cff;color:#fff;font:700 .85rem/26px system-ui;text-align:center;box-shadow:0 2px 6px #0004}
.cgi .cgc{flex:1}.cgi .cgc>*{height:100%}
.cgi .why{margin:0;font-size:.88rem;line-height:1.35;padding:6px 10px;border-radius:10px;background:color-mix(in srgb,#8b5cff 10%,transparent)}
.cgsee{text-align:center;margin:18px 0 6px}
@media (max-width:600px){.cgl{grid-template-columns:1fr 1fr;gap:10px}.cgi .why{font-size:.8rem}}

/* FEATURES.vibeArt / vibeTilt: glossy 3D vibe art + gentle tilt on hover/tap */
.vtiles.art .vtin{height:132px;background:#1b1530}.vtiles.art .vtin::after{background:linear-gradient(180deg,rgba(0,0,0,0) 35%,rgba(0,0,0,.78))}.vtiles.art .vic{display:none}
.vtiles[data-tilt]{perspective:700px}.vtiles[data-tilt] .vtin{transform:rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transform-style:preserve-3d;will-change:transform}
.vtiles[data-tilt] .vt.tilt .vtin{transition:transform .08s linear,box-shadow .25s}.vtiles[data-tilt] .vt.tilt img{transform:scale(1.08) translate(calc(var(--ry,0deg) * -.6px),calc(var(--rx,0deg) * .6px))}
.vtiles[data-tilt] .vt input:checked+.vtin{transform:rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) translateY(-3px) scale(1.02)}
@media (prefers-reduced-motion:reduce){.vtiles[data-tilt] .vtin{transform:none!important}}
/* FEATURES.evBudget */
.chips.evb{align-items:center}.chips.evb .vlab{font-size:.8rem;opacity:.7;white-space:nowrap;padding-inline-end:4px}
/* FEATURES.placeCats */
.pcat{display:flex;align-items:center;gap:6px;padding:9px 14px;border-radius:14px;background:var(--card,#fff);border:1px solid rgba(0,0,0,.08);color:inherit;text-decoration:none;font-weight:600;white-space:nowrap}
/* tonightRow + aboutFold */
.tonight{margin:14px 0 18px}.tonight .tn-in{font-size:1.05rem;font-weight:600;margin:0 0 10px;line-height:1.4}
.tn3{grid-template-columns:repeat(3,minmax(0,1fr))}@media (max-width:640px){.tn3{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:12px;padding-bottom:4px}.tn3>*{flex:0 0 78%;scroll-snap-align:start}}
.aboutpg{margin:28px 0 8px;border-top:1px solid var(--line,rgba(127,127,127,.25));padding-top:10px}.aboutpg>summary{cursor:pointer;color:var(--mute,#5d5468);font-size:.9rem;list-style:revert}
.aboutpg .summary{background:none;border:0;box-shadow:none;padding:8px 0 0;margin:0;font-size:.9rem;color:var(--mut,#888)}.aboutpg .upd{display:block;margin-top:4px}
.tn-more{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 4px}

/* perf: hero beams are blurred, rotated layers; cache them as GPU layers and keep them still on phones */
.beams i{will-change:transform}
@media (max-width:720px){.beams i{animation:none}}
/* easter eggs */.eeC{position:fixed;bottom:calc(84px + env(safe-area-inset-bottom));left:0;z-index:90;pointer-events:none;font-size:2.4rem;white-space:nowrap;animation:eeWalk 6s linear forwards}.eeC.rtl{animation-name:eeWalkR}.eeC span{display:inline-block;margin-inline-end:6px;animation:eeBob .5s ease-in-out infinite alternate}.eeC span:nth-child(2){animation-delay:.15s}.eeC span:nth-child(3){animation-delay:.3s}.eeC:not(.rtl) span{transform:scaleX(-1)}
@keyframes eeWalk{from{transform:translateX(-14rem)}to{transform:translateX(110vw)}}@keyframes eeWalkR{from{transform:translateX(110vw)}to{transform:translateX(-14rem)}}@keyframes eeBob{to{translate:0 -6px}}
.eeS{position:fixed;z-index:90;pointer-events:none;color:#ffd166;font-size:1.3rem;text-shadow:0 0 8px #ffd166;animation:eeStar 1.4s ease-in forwards;opacity:0}@keyframes eeStar{10%{opacity:1}to{transform:translate(-60vw,40vh);opacity:0}}
.eeT{position:fixed;left:50%;top:84px;z-index:91;transform:translateX(-50%);background:#1f1534;color:#fff;padding:10px 16px;border-radius:99px;font-weight:700;box-shadow:0 8px 24px #0004;animation:eeIn .35s ease-out}@keyframes eeIn{from{opacity:0;top:60px}}
/* 🎮 games button: the controller gives a little wiggle every few seconds */.btn.gm span{display:inline-block;animation:gmWig 4s ease-in-out infinite}@keyframes gmWig{0%,82%,100%{transform:none}86%{transform:rotate(-14deg) scale(1.15)}90%{transform:rotate(12deg) scale(1.15)}94%{transform:rotate(-6deg)}}@media (prefers-reduced-motion:reduce){.btn.gm span{animation:none}}
/* 🌇 golden hour card */
.gold{display:flex;gap:14px;align-items:stretch;padding:14px;border-radius:18px;background:linear-gradient(160deg,#ffb347 0%,#ff7a59 45%,#7c3aed 100%);color:#fff;overflow:hidden;position:relative}
.gold h2{margin:0 0 6px;color:#fff}.gold h2 small{font-size:.6em;opacity:.85;font-weight:600}
.ghsky{flex:0 0 74px;position:relative;border-radius:14px;background:linear-gradient(#ffd27a,#ff8a5c 70%);overflow:hidden}
.ghsun{position:absolute;left:50%;width:34px;height:34px;margin-left:-17px;border-radius:50%;background:radial-gradient(#fff6c8,#ffcf3f 60%,#ff9d2e);box-shadow:0 0 22px 8px #ffd96a99;top:calc(8% + var(--gp,0)*62%);transition:top 1.2s ease}
.ghdune{position:absolute;inset:auto -20% -2px;height:34%;background:#a24a2a;border-radius:60% 70% 0 0/100% 100% 0 0;box-shadow:-30px 6px 0 #c4683a}
.ghtimes{display:flex;flex-wrap:wrap;gap:6px 14px;margin:0 0 8px}.ghtimes b{font-variant-numeric:tabular-nums}
.ghrel{flex-basis:100%;font-weight:700}.ghrel:empty{display:none}
.ghlab{margin:4px 0;font-size:.85em;opacity:.9}.ghrow{display:flex;gap:8px;flex-wrap:wrap}
.ghs{display:flex;align-items:center;gap:6px;padding:4px 10px 4px 4px;border-radius:999px;background:#ffffff2e;color:#fff;text-decoration:none;font-size:.85em;max-width:100%}
.ghs img{width:28px;height:28px;border-radius:50%;object-fit:cover}.ghs b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:14em}
.ghnote{margin:8px 0 0;font-size:.72em;opacity:.8}.ghtx{min-width:0}
.gold.on .ghsky{animation:ghglow 3s ease-in-out infinite alternate}@keyframes ghglow{to{filter:saturate(1.4) brightness(1.08)}}
@media (prefers-reduced-motion:reduce){.ghsun{transition:none}.gold.on .ghsky{animation:none}}
.ghmoon{margin:8px 0 0;font-weight:600}.ghmoon span{font-size:1.2em}
@media (max-width:560px){.ghsky{flex-basis:40px}.ghsun{width:26px;height:26px;margin-left:-13px}.gold{gap:10px;padding:12px}}
.gold .ghq .qarr{display:inline-block;font-style:normal;font-weight:700;transform:rotate(var(--q));transition:transform .9s cubic-bezier(.3,1.6,.5,1)}
.gold:hover .ghq .qarr{transform:rotate(calc(var(--q) + 360deg))}
@media (prefers-reduced-motion:reduce){.gold .ghq .qarr{transition:none}}
/* 🛂 passport stamp toast */
.ppT{position:fixed;left:50%;bottom:calc(98px + env(safe-area-inset-bottom,0px));z-index:92;display:flex;align-items:center;gap:12px;width:min(92vw,340px);box-sizing:border-box;transform:translateX(-50%);background:#fffaf0;color:#2a1d0e;padding:10px 16px 10px 10px;border-radius:18px;box-shadow:0 10px 30px #0005;pointer-events:none;animation:ppIn .5s cubic-bezier(.2,1.5,.4,1) both}
.ppT i{font-style:normal;flex:none;display:grid;place-items:center;width:58px;height:58px;border-radius:50%;font-size:1.7rem;border:4px double var(--ink);box-shadow:inset 0 0 0 4px color-mix(in srgb,var(--ink) 25%,transparent);background:color-mix(in srgb,var(--ink) 12%,#fff);animation:ppStamp .6s .25s cubic-bezier(.2,1.6,.4,1) both}
.ppT span{display:flex;flex-direction:column;gap:2px;min-width:0}.ppT b{color:var(--ink)}.ppT small{opacity:.8;overflow-wrap:anywhere}.ppT a{pointer-events:auto;font-weight:700;color:var(--ink);font-size:.9rem}
.ppT.out{transition:opacity .45s,transform .45s;opacity:0;transform:translate(-50%,20px)}
@keyframes ppIn{from{opacity:0;transform:translate(-50%,30px)}}@keyframes ppStamp{0%{transform:scale(2.6) rotate(25deg);opacity:0}65%{transform:scale(.9) rotate(-10deg);opacity:1}100%{transform:rotate(-8deg)}}
@media (prefers-reduced-motion:reduce){.ppT,.ppT i{animation:none}}
/* 💳 card & membership offers (src/cards.js): our own text chips, no programme logos */
.cchip{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:800;line-height:1;padding:4px 8px;border-radius:7px;white-space:nowrap;border:1px solid transparent}
.cchip i{font-style:normal}.cchip.c-enbd{background:#e8f0ff;color:#0b3d91;border-color:#b9cdf5}.cchip.c-mep{background:#fdeaea;color:#9b1c1c;border-color:#f3c0c0}.cchip.c-fab{background:#e6f7f4;color:#0a5c52;border-color:#b5e3da}.cchip.c-qitaf{background:#efe7fb;color:#4f2a8f;border-color:#d5c4f2}
.pdeal{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0 12px 12px;padding:8px 52px 8px 10px;border-radius:12px;background:color-mix(in srgb,#2fa8ff 9%,transparent);border:1px dashed color-mix(in srgb,#2fa8ff 45%,transparent);font-size:12.5px;line-height:1.35}
[dir=rtl] .pdeal{padding:8px 10px 8px 52px}
.pdeal .pchips{display:inline-flex;gap:4px;flex-wrap:wrap}.pdeal .pdo{flex:1 1 140px;min-width:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.pdeal .psrc{font-size:11.5px;font-weight:700;white-space:nowrap;padding:6px 0;min-height:24px}
.pcard.mine{outline:3px solid #2fa8ff;outline-offset:2px;box-shadow:0 0 0 6px color-mix(in srgb,#2fa8ff 20%,transparent)}
.pcard.mine .pdeal::before{content:attr(data-mine);flex-basis:100%;font-weight:800;color:#1677c9}
.mycards{margin:10px 0 14px;border:1px solid var(--line,#2a2738);border-radius:14px;background:var(--card,transparent)}
.mycards>summary{cursor:pointer;padding:12px 14px;min-height:44px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;list-style:none}.mycards>summary::-webkit-details-marker{display:none}
.mycards>summary::after{content:'▾';margin-inline-start:auto;opacity:.6}.mycards[open]>summary::after{content:'▴'}
.mcsel{display:inline-flex;gap:4px;flex-wrap:wrap}.mcin{padding:0 14px 12px}.mch{margin:0 0 8px;opacity:.85;font-size:13.5px}
.mcl{display:flex;flex-direction:column;gap:6px}.mco{display:flex;align-items:center;gap:8px;min-height:44px;padding:4px 8px;border-radius:10px;cursor:pointer;flex-wrap:wrap}.mco:hover{background:color-mix(in srgb,#2fa8ff 8%,transparent)}
.mco input{width:20px;height:20px;accent-color:#2fa8ff}.mco small{opacity:.75}
.cardbox .cofl{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}.cardbox .coo{margin:6px 0 2px;font-weight:700;font-size:15px}.cardbox .com{margin:0;font-size:12.5px;opacity:.85}
.cwhy{margin:18px 0}.cwhy summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-weight:700}.cwhy li{margin:6px 0;font-size:13.5px}
/*COVERS*/
.cov{position:absolute;inset:0;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:0 14px 22px;background:radial-gradient(130% 100% at 15% 0%,color-mix(in oklab,var(--cb) 85%,#fff) 0%,var(--cb) 30%,var(--ca) 78%,color-mix(in oklab,var(--ca) 60%,#000) 100%)}
.cov::after{content:"";position:absolute;inset:0;background:radial-gradient(60% 55% at 50% 45%,rgba(255,255,255,.28),transparent 70%),linear-gradient(180deg,transparent 55%,rgba(0,0,0,.28))}
.cov .ce{position:relative;z-index:1;font-size:58px;line-height:1;filter:drop-shadow(0 10px 22px rgba(0,0,0,.35));transform:rotate(-6deg)}
.cov .cl{position:absolute;z-index:1;left:12px;bottom:10px;font:700 11px/1.2 var(--fd,system-ui);letter-spacing:.14em;text-transform:uppercase;color:#fff;opacity:.92;text-shadow:0 1px 6px rgba(0,0,0,.45)}
[dir=rtl] .cov .cl{left:auto;right:12px;letter-spacing:0}
.cov .cn{position:relative;z-index:1;max-width:88%;text-align:center;font:800 17px/1.18 var(--fd,system-ui);color:#fff;text-wrap:balance;text-shadow:0 2px 12px rgba(0,0,0,.5);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.cov .cn::after{content:"";display:block;width:34px;height:2px;margin:8px auto 0;border-radius:2px;background:rgba(255,255,255,.7)}
.pcover{position:relative;aspect-ratio:16/7;border-radius:20px;overflow:hidden;margin:0 0 18px}.pcover .cov .ce{font-size:96px}.pcover .cov .cl{font-size:13px;left:20px;bottom:16px}
.cov[data-k=coffee]{--ca:#6f4428;--cb:#e9c79b}
.cov[data-k=dessert]{--ca:#d9467a;--cb:#ffd6e5}
.cov[data-k=breakfast]{--ca:#e08a00;--cb:#ffe9a8}
.cov[data-k=indian]{--ca:#b3261e;--cb:#ffb347}
.cov[data-k=levant]{--ca:#3f6b2a;--cb:#e7d38a}
.cov[data-k=gulf]{--ca:#9c4a1a;--cb:#f3d29b}
.cov[data-k=grill]{--ca:#8e1b1b;--cb:#ff8a4c}
.cov[data-k=italian]{--ca:#c62828;--cb:#7fb069}
.cov[data-k=burger]{--ca:#d84315;--cb:#ffd54f}
.cov[data-k=japanese]{--ca:#283593;--cb:#ff8a80}
.cov[data-k=asian]{--ca:#b71c1c;--cb:#ffca28}
.cov[data-k=seafood]{--ca:#006d77;--cb:#83c5be}
.cov[data-k=steak]{--ca:#4a0e1e;--cb:#c97b63}
.cov[data-k=mexican]{--ca:#2e7d32;--cb:#ffb300}
.cov[data-k=euro]{--ca:#1d3557;--cb:#e9c46a}
.cov[data-k=african]{--ca:#7a3e00;--cb:#e9a55a}
.cov[data-k=bar]{--ca:#3c1a78;--cb:#b388ff}
.cov[data-k=dining]{--ca:#8a1c3b;--cb:#ff9a8b}
.cov[data-k=hotel]{--ca:#272a6b;--cb:#b9b4f0}
.cov[data-k=resort]{--ca:#0b5c63;--cb:#9be3dc}
.cov[data-k=park]{--ca:#1f5a2e;--cb:#b7e4a6}
.cov[data-k=beach]{--ca:#0d5d86;--cb:#f4d9a6}
.cov[data-k=mall]{--ca:#6a1f5b;--cb:#f6b9dc}
.cov[data-k=souk]{--ca:#7a3b12;--cb:#f0c27a}
.cov[data-k=landmark]{--ca:#3b2a63;--cb:#e6c98f}
.cov[data-k=museum]{--ca:#3a2b1f;--cb:#e8d5b0}
.cov[data-k=tour]{--ca:#12524a;--cb:#f5d68a}
.cov[data-k=viewpoint]{--ca:#6b2d5c;--cb:#ffc28a}
.cov[data-k=mosque]{--ca:#12415e;--cb:#d9e8f0}
.cov[data-k=cinema]{--ca:#3d0f1f;--cb:#f05a6e}
.cov[data-k=spa]{--ca:#5b4a6e;--cb:#f1dbe8}
.cov[data-k=themepark]{--ca:#5a1a86;--cb:#ffd166}
.cov[data-k=zoo]{--ca:#0b4f6c;--cb:#8fe3cf}
/*/COVERS*/
/* ≡ site menu: native <dialog> (focus trap + Esc), CSS-only motion (transform/opacity) */
.ib.hmb,.ib.drwx{padding:0;width:44px;min-width:44px;height:44px}.hmi{position:relative;width:20px;height:14px;display:block}.hmi i{position:absolute;inset-inline:0;height:2px;border-radius:2px;background:currentColor;transition:transform .28s cubic-bezier(.2,.8,.2,1),opacity .2s,top .28s}
.hmi i:nth-child(1){top:0}.hmi i:nth-child(2){top:6px;width:70%}.hmi i:nth-child(3){top:12px}
.hmb[aria-expanded=true] .hmi i:nth-child(1){top:6px;transform:rotate(45deg)}.hmb[aria-expanded=true] .hmi i:nth-child(2){opacity:0;transform:scaleX(0)}.hmb[aria-expanded=true] .hmi i:nth-child(3){top:6px;transform:rotate(-45deg)}
.hmb:hover .hmi i:nth-child(2){width:100%}
html.mopen,html.mopen body{overflow:hidden;overscroll-behavior:none}
.drw{padding:0;border:0;margin:0;max-width:none;max-height:none;background:transparent;color:var(--ink);inset:0 0 0 auto;width:min(88vw,380px);height:100dvh;overflow:visible}
[dir=rtl] .drw{inset:0 auto 0 0}
.drw::backdrop{background:#05040acc;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:mfade .25s ease-out}
.drwin{height:100%;display:flex;flex-direction:column;background:var(--bg);border-inline-start:1px solid var(--line2);box-shadow:0 0 60px #0008;animation:min .34s cubic-bezier(.2,.9,.25,1.05)}
[dir=rtl] .drwin{animation-name:minr}
.drw.closing .drwin{animation:mout .22s ease-in forwards}[dir=rtl] .drw.closing .drwin{animation-name:moutr}.drw.closing::backdrop{animation:mfade .22s reverse forwards}
@keyframes min{from{transform:translateX(100%)}}@keyframes minr{from{transform:translateX(-100%)}}@keyframes mout{to{transform:translateX(100%)}}@keyframes moutr{to{transform:translateX(-100%)}}@keyframes mfade{from{opacity:0}}
@keyframes mpop{from{opacity:0;transform:translateY(8px)}}
.drwh{display:flex;gap:8px;align-items:center;padding:12px 12px 10px;padding-top:max(12px,env(safe-area-inset-top));border-bottom:1px solid var(--line)}
.drws{flex:1;display:flex;align-items:center;gap:8px;min-height:44px;padding:0 12px;border-radius:14px;border:1px solid var(--line2);background:var(--card)}
.drws input{flex:1;min-width:0;border:0;background:transparent;color:inherit;font:inherit;font-size:16px;outline:0;height:42px}
.drws:focus-within{border-color:color-mix(in srgb,var(--ink) 50%,transparent)}
.drwx{flex:none}
.drwb{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:8px 8px max(24px,env(safe-area-inset-bottom))}
.drwb ul{list-style:none;margin:0;padding:0 0 6px}
.drwb a,.drwb summary{display:flex;align-items:center;gap:12px;min-height:44px;padding:6px 12px;border-radius:12px;color:inherit;text-decoration:none;cursor:pointer}
.drwb a:hover,.drwb a:focus-visible,.drwb summary:hover{background:color-mix(in srgb,var(--card) 90%,var(--ink) 6%)}
.drwb a:active{transform:scale(.98)}
.drwb summary{list-style:none;font-weight:800;font-size:15.5px}.drwb summary::-webkit-details-marker{display:none}
.mg,.mcity,.msolo{animation:mpop .4s cubic-bezier(.2,.8,.2,1) backwards}.drwb>:nth-child(2){animation-delay:.04s}.drwb>:nth-child(3){animation-delay:.08s}.drwb>:nth-child(4){animation-delay:.12s}.drwb>:nth-child(5){animation-delay:.16s}.drwb>:nth-child(n+6){animation-delay:.2s}
.mg ul a{padding-inline-start:20px;font-size:15px}
.mi{flex:none;width:28px;height:28px;display:grid;place-items:center;font-size:18px;border-radius:9px;background:color-mix(in srgb,var(--card) 80%,var(--ink) 8%);transition:transform .25s}
.drwb a:hover .mi{transform:rotate(-8deg) scale(1.12)}
.ml{flex:1;min-width:0;display:flex;flex-direction:column}.ml small{font-size:11.5px;color:var(--mute);font-weight:600}
.mcv{flex:none;width:8px;height:8px;border-right:2px solid var(--mute);border-bottom:2px solid var(--mute);transform:rotate(45deg);transition:transform .25s;margin-inline-end:4px}
details[open]>summary .mcv{transform:rotate(225deg)}
.mg::details-content,.mcity::details-content{block-size:0;overflow:hidden;transition:block-size .3s,content-visibility .3s allow-discrete}
.mg[open]::details-content,.mcity[open]::details-content{block-size:auto}
.mcity{margin-bottom:6px;border-radius:14px;background:var(--card);border:1px solid var(--line)}
.mcity summary b{font-size:15px}
.mcl{max-height:46vh;overflow-y:auto;padding:0 6px 8px}.mco{margin:8px 12px 2px;font-size:12px;font-weight:800;color:var(--mute);text-transform:uppercase;letter-spacing:.04em}
.mcl a[aria-current]{font-weight:800}.mcl a[aria-current]::after{content:'✓';margin-inline-start:auto}
.msolo a{font-weight:800}
.mnone{padding:16px;color:var(--mute);text-align:center}
.mload{display:flex;gap:6px;justify-content:center;padding:28px}.mload i{width:8px;height:8px;border-radius:50%;background:var(--mute);animation:mdot 1s infinite alternate}.mload i:nth-child(2){animation-delay:.2s}.mload i:nth-child(3){animation-delay:.4s}
@keyframes mdot{to{opacity:.2;transform:translateY(-4px)}}
.drwb [hidden]{display:none!important}
@media(min-width:900px){.drw{inset:calc(var(--hdr) + 6px) max(16px,calc((100vw - 1280px)/2 + 18px)) auto auto;width:400px;height:auto;max-height:calc(100dvh - var(--hdr) - 24px)}
[dir=rtl] .drw{inset:calc(var(--hdr) + 6px) auto auto max(16px,calc((100vw - 1280px)/2 + 18px))}
.drwin{max-height:calc(100dvh - var(--hdr) - 24px);border:1px solid var(--line2);border-radius:20px;animation:mdrop .28s cubic-bezier(.2,.9,.25,1.05);transform-origin:top right}
[dir=rtl] .drwin{animation-name:mdrop;transform-origin:top left}
.drw.closing .drwin,[dir=rtl] .drw.closing .drwin{animation:mdrop .18s ease-in reverse forwards}
.drw::backdrop{background:#05040a66;backdrop-filter:none}}
@keyframes mdrop{from{opacity:0;transform:translateY(-8px) scale(.96)}}
@media(prefers-reduced-motion:reduce){.drwin,.drw::backdrop,.mg,.mcity,.msolo,.hmi i,.mload i{animation:none!important;transition:none!important}}

.drwt{display:none}@media(max-width:640px){.bar>.thb,.bar .thb:not(.drwt){display:none}.drwt{display:inline-flex;flex:none;width:44px;min-width:44px;height:44px;padding:0}}
.drwh{gap:8px}.drws{min-width:0}.drws input{min-width:0;width:100%}.drwh>.ib{flex:none}

.sky{display:inline-block;margin:10px 0 0;padding:7px 14px;border-radius:16px;background:rgba(255,255,255,.82);color:#21163a;font-size:.86rem;font-weight:700;line-height:1.35;box-shadow:0 4px 14px rgba(40,10,60,.12);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);max-width:100%}
.sky span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.yt{display:block;opacity:.8}
.evsun .rel{display:block}

.grid .gfrag{grid-column:1/-1;height:1px;margin:0}[data-ff~=shimmer].js .grid .gfrag[data-frag]:not([data-fail]),[data-ff~=shimmer].js .tpanel:not([hidden]) .rail[data-frag]:empty:not([data-fail]):before{content:"";display:block;height:150px;border-radius:var(--r);border:1px solid var(--line);background:linear-gradient(100deg,var(--card) 30%,color-mix(in srgb,var(--a1) 14%,var(--card)) 50%,var(--card) 70%);background-size:300% 100%;animation:sk 1.4s ease-in-out infinite}[data-ff~=shimmer].js .tpanel .rail[data-frag]:empty:before{height:300px;width:min(78vw,290px)}@media (prefers-reduced-motion:reduce){[data-ff~=shimmer] .gfrag[data-frag],[data-ff~=shimmer] .rail[data-frag]:before{animation:none}}.grid ul.gfrag a{color:inherit;text-decoration:underline;text-underline-offset:3px}
[dir=rtl] .sbox .go svg{transform:scaleX(-1)}
/* clear navigation (Wherepicks) */
.cback{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:4px 12px;margin-bottom:6px;border-radius:999px;background:#0006;color:#fff;font-weight:700;font-size:14px;backdrop-filter:blur(6px)}
.cback:hover{text-decoration:none;background:#000a}
.lite .cback,.wrap .cback{background:var(--bg2);color:var(--ink)}
h1.pg+.sub{opacity:.85;font-size:14.5px;margin-top:4px}
.ctabs3{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding:4px 0 10px;margin:8px 0 6px}
.ctabs3::-webkit-scrollbar{display:none}
.ctabs3 a{flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;min-height:42px;padding:8px 14px;border-radius:999px;border:1px solid var(--line2);font-weight:700;white-space:nowrap;color:var(--ink)}
.ctabs3 a.on{background:var(--a1,#ff3d7f);border-color:transparent;color:#fff;box-shadow:0 6px 18px -8px var(--a1,#ff3d7f)}
.ctiles{grid-template-columns:repeat(2,1fr);margin:12px 0 6px}
@media(min-width:720px){.ctiles{grid-template-columns:repeat(4,1fr)}}
.ctiles .tile{min-height:104px}
.ctiles .tile b{font-size:18px}
.ideas{margin:18px 0 8px}
.ideash{font-size:15px;margin:0 0 8px;opacity:.85}
.idrow{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding-bottom:4px}
.idrow .btn{flex:0 0 auto;white-space:nowrap}
.rtool{display:flex;gap:10px;align-items:center;margin:14px 0 10px}
.btn.fbtn{min-height:44px;padding:10px 18px;font-weight:800}
.btn.fbtn .nb,.fbtn .nb{display:inline-grid;place-items:center;min-width:20px;height:20px;border-radius:10px;background:var(--a1,#ff3d7f);color:#fff;font-size:12px;margin-inline-start:4px}
.drawer .chips.wrapc{display:flex;flex-wrap:wrap;gap:8px}
.drawer .chips.wrapc .chip{white-space:nowrap}
.shnear{margin:10px 0}
@media(max-width:820px){dialog.drawer{margin:auto 0 0 0;width:100%;max-width:100%;height:86vh;max-height:86vh;border-radius:22px 22px 0 0}dialog.drawer[open]{animation-name:slideUpWp}}
@keyframes slideUpWp{from{transform:translateY(100%)}to{transform:none}}
.shfoot{position:sticky;bottom:-18px;background:var(--bg2);padding:10px 0}
/* calm: no decorative motion next to text (keep sheet slide + loading shimmer) */
.btn.gm span,.eeC span,.wpk-logo svg,.eq b,.cta:before,.orb,.cov::before,h1.mega em,.sbox,.beams i,.gold.on .ghsky,.cd.live:before,.hx .bgimg img,.phx .bgimg img,.wpk-bg i,.thd *,.card[data-th]:hover,.card[data-th]:hover *,.card[data-th]:hover .ph:before,.tile:before{animation:none!important}
.thd,.eeC,.eeS,.beams{display:none!important}
.tile:hover{transform:none}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
.sheet .mycards{margin:10px 0}
.mfold{margin:22px 0;border:1px solid var(--line,#ffffff1f);border-radius:14px;padding:4px 14px}.mfold>summary{cursor:pointer;padding:12px 0;font-weight:700}
/* compact list bar: Filter · Sort · view */
.rtool{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:14px 0 10px}.rtool .fdrawer{margin:0}
.sortdd{position:relative}.sortdd>summary{list-style:none;cursor:pointer}.sortdd>summary::-webkit-details-marker{display:none}
.sortm{position:absolute;z-index:40;top:calc(100% + 6px);inset-inline-start:0;min-width:200px;background:var(--bg2,#14121c);border:1px solid var(--line,#ffffff22);border-radius:14px;padding:6px;box-shadow:0 12px 40px #0008;display:grid}
.sortm button{all:unset;cursor:pointer;padding:11px 12px;border-radius:10px;font-weight:600;font-size:15px}.sortm button[aria-checked=true]{background:#ffffff14}
.vtog{display:flex;gap:4px;margin-inline-start:auto}.vtog .ib{width:38px;height:38px;display:grid;place-items:center;border-radius:10px;border:1px solid var(--line,#ffffff22);background:transparent;color:inherit;opacity:.6;cursor:pointer}.vtog .ib[aria-pressed=true]{opacity:1;background:#ffffff14}
.grid.v-list{grid-template-columns:1fr!important;gap:10px}
.grid.v-list>article.card>a{display:grid;grid-template-columns:104px 1fr;align-items:stretch}
.grid.v-list>article.card .ph{aspect-ratio:auto;height:100%;min-height:96px}.grid.v-list>article.card .ph .badges,.grid.v-list>article.card .ph .cpill,.grid.v-list>article.card .ph .pcred,.grid.v-list>article.card .ph .dchip{display:none}
.grid.v-list>article.card .bd{padding:10px 12px}.grid.v-list>article.card .bd h3{font-size:16px;margin:0 0 4px}.grid.v-list>article.card .pdeal,.grid.v-list>article.card .glare{display:none}
.grid.v-photo{grid-template-columns:1fr!important}
.grid.v-photo>article.card .ph{aspect-ratio:4/3}.grid.v-photo>article.card .bd>:not(h3),.grid.v-photo>article.card .pdeal{display:none}.grid.v-photo>article.card .bd h3{font-size:19px}
@media(min-width:820px){.grid.v-photo{grid-template-columns:repeat(2,1fr)!important}.grid.v-list{grid-template-columns:repeat(2,1fr)!important}}
/* get to the point: on inner pages the title is followed straight by the control bar and results (blurbs stay in the About fold / meta) */
body.is-sub:has(.ctabs3) .in > p.sub,body.is-sub:has(.ctabs3) .in > p.btnrow,body.is-sub:has(.ctabs3) .in > p.lede,body.is-sub:has(.sbox) .in > p.sub{display:none}
.toolbar.rtool > [data-near]{display:none}
.hx .in > p.sub{display:none}
.drawer .fmore{margin-top:8px}.drawer .fmore>summary{cursor:pointer;font-weight:600;opacity:.85;padding:6px 0}.drawer .flbl{margin:10px 0 4px;font-weight:600;opacity:.8}
.sheet details.acc{display:block;padding-block:0!important;gap:0}
.prng .prv{font-weight:800;font-size:18px;margin:2px 0 6px}
.prng .dual{position:relative;height:48px}
.prng .dual::before{content:"";position:absolute;inset-inline:0;top:50%;height:4px;margin-top:-2px;background:var(--line);border-radius:2px}
.prng .dual i{position:absolute;top:50%;height:4px;margin-top:-2px;background:var(--grad);border-radius:2px}
.prng .dual input[type=range]{position:absolute;inset:0;width:100%;height:48px;margin:0;background:none;pointer-events:none;-webkit-appearance:none;appearance:none}
.prng .dual input[type=range]::-webkit-slider-runnable-track{background:none;height:48px}
.prng .dual input[type=range]::-webkit-slider-thumb{pointer-events:auto;-webkit-appearance:none;width:30px;height:30px;margin-top:9px;border-radius:50%;background:#fff;border:3px solid #ff3d7f;cursor:pointer}
.prng .dual input[type=range]::-moz-range-thumb{pointer-events:auto;width:26px;height:26px;border-radius:50%;background:#fff;border:3px solid #ff3d7f;cursor:pointer}
.prng .pnums{display:flex;gap:10px;margin:8px 0}
.prng .pnums label{flex:1;display:grid;gap:4px;font-size:14px;font-weight:700}
.prng .pnums input{min-height:48px;border-radius:12px;border:1px solid var(--line);background:var(--card2,#1a1426);color:var(--ink);padding:0 12px;font-size:17px;width:100%}
.prng .npt{display:flex;gap:8px;align-items:center;min-height:44px}
.qwhen{display:flex;gap:8px;flex-wrap:wrap;margin:4px 0 14px}.qwhen .chip{min-height:40px}
/* flat cards and tiles: no hover lift, tilt or zoom (no decorative motion) */
.card:hover,.tile:hover,.city:hover,.adopt:hover,.vt:hover .vtin,.vt input:checked+.vtin{transform:none}.tile:hover:before,.city:hover img,.vt:hover img{transform:none}
.ess{margin:12px 0;padding:12px 14px;border:1px solid var(--ln,#ffffff22);border-radius:14px}.ess p{margin:4px 0}.ess-r b{font-size:18px}.ess-l{display:flex;flex-wrap:wrap;gap:6px 14px;font-weight:600}.ess-a{opacity:.85}.ess .btnrow{margin:10px 0 2px;gap:8px}
@media(max-width:959px){.ev.evb>aside{order:-1}}
/* Pick a date (chip + small date form) */
.dpick{display:block}.dpick[open]{flex-basis:100%}.dpick>summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:6px}.dpick>summary::-webkit-details-marker{display:none}
.dpf{display:grid;margin-top:10px;gap:10px;grid-template-columns:1fr 1fr;align-items:end;padding:12px;border:1px solid var(--line,rgba(127,127,127,.3));border-radius:14px;background:var(--card,rgba(127,127,127,.06))}
.dpf label{display:grid;gap:4px;font-size:.88em;font-weight:600}.dpf input{min-height:44px;font:inherit;padding:6px 10px;border-radius:10px;border:1px solid var(--line,rgba(127,127,127,.4));background:var(--card,#fff);color:inherit;width:100%;box-sizing:border-box}.dpf .btn{grid-column:1/-1;min-height:44px}
.sug .sgp .sgi{flex:none;width:40px;height:40px;padding:9px;border-radius:10px;background:rgba(127,127,127,.12)}
.vmap{height:62vh;min-height:320px;border-radius:16px;overflow:hidden;margin:12px 0}.vmap[hidden]{display:none}
.cdist{display:block;font-weight:600;opacity:.8;margin-top:2px}
.phx{flex-wrap:wrap;align-content:flex-end}.phx>.credit{position:relative;z-index:2;flex:0 0 100%;max-width:1280px;margin:0 auto;padding:0 18px 8px;text-align:end;font-size:10.5px;line-height:1.35;color:#ffffffa8}.phx>.credit a{color:#ffffffd0}[data-theme=light] .phx.lite>.credit,[data-theme=light] .phx.lite>.credit a{color:var(--mute)}.crumbs{scroll-margin-top:calc(var(--hdr,64px) + 8px)}
.kf{display:flex;flex-wrap:wrap;gap:6px 18px;margin:8px 0 2px}.kf>div{display:flex;flex-direction:column;min-width:0}.kf dt{font-size:11.5px;color:var(--mute);margin:0}.kf dd{margin:0;font-weight:700;font-size:14.5px}
.ohw{border-collapse:collapse;font-size:13.5px}.ohw th{font-weight:500;text-align:start;padding:1px 14px 1px 0;color:var(--mute)}.ohw td{padding:1px 0}.ohw tr.td th,.ohw tr.td td{font-weight:700;color:inherit}
.vmap .maplibregl-popup-content{padding:10px 12px;border-radius:12px}.mpop{display:flex;flex-direction:column;gap:4px;color:#111;font-size:14px;line-height:1.3}.mpop .mpn{font-weight:700;color:#111;text-decoration:none}.mpop .mpc{color:#555;font-size:12px}.mpop .btn.sm{align-self:flex-start;margin-top:4px}

@media (max-width:640px){.qchips{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-inline:-18px;padding:2px 18px;scroll-padding-inline:18px}.qchips::-webkit-scrollbar{display:none}.qchips a{flex:none}}

/* Round 9: clean placeholder when no free photo — one line icon + the place name, flat */
.cov{background:color-mix(in oklab,var(--ca,#64748b) 10%,var(--card,#fff));color:color-mix(in oklab,var(--ca,#64748b) 70%,var(--ink,#111));gap:8px;padding:0 14px}
.cov::after{display:none}
.cov .ce,.pcard .ph .cov .ce,.pcover .cov .ce{font-size:0;filter:none;transform:none;line-height:0;color:inherit;opacity:.85}
.pcover .cov .cvi{width:56px;height:56px}
.cov .cn{color:var(--ink,#111);text-shadow:none;font-weight:700;font-size:15px}
.pcover .cov .cn{font-size:18px}
.cov .cn::after{display:none}
.cov .cl{color:inherit;text-shadow:none;opacity:.8}
.addph{margin:-10px 0 16px;font-size:13px;opacity:.85}.addph a{font-weight:600}
.ph:has(>.cov)::after,.ph:has(>.cov)::before{background:none;box-shadow:none}
/* Round 10: decoration layers removed site-wide (kept hidden in case cached HTML still has them) */
.beams,.bokeh,.grain,.wpk-bg{display:none!important}
.phx.lite{background:var(--bg)!important}.phx.lite:before{background:none!important}

/* R11 CWV: static hero photo (no Ken Burns loop); breadcrumbs stay one line on phones so the remembered-city 'Home' swap can't move the page */
.bgimg img{animation:none!important}
@media (max-width:700px){.crumbs{flex-wrap:nowrap;overflow-x:auto;white-space:nowrap;scrollbar-width:none;-webkit-overflow-scrolling:touch}.crumbs::-webkit-scrollbar{display:none}.crumbs>*{flex:none}.crumbs>[aria-current]{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}}

/* R12 list pages: header hugs the title + search; no empty band above the Filter/Sort bar */
.lst.phx.lite,.lst.phx{min-height:0!important}.lst.phx .in{padding-bottom:10px!important}.lst.phx .rsearch{margin-top:12px}
.lst.phx+.wrap{padding-top:0!important}.lst.phx+.wrap>.row:first-child,.lst.phx+.wrap>.rtool:first-child{margin-top:0!important}
/* R12 home CLS: the countdown fills in after load; reserve its row so the hero does not re-centre */
.hcount .cdbig{min-height:48px}@media (max-width:700px){.hcount .cdbig{flex-basis:100%}}
/* R13 one list header: plain, same title font everywhere */
.lst.phx h1.pg{font-family:var(--disp)!important}
.lst.phx .bgimg,.lst.phx .credit{display:none}
/* R13 first card title above the bottom bar on phones: compact list header + shorter card photo */
@media (max-width:700px){.lst.phx .in{padding-top:10px!important}.lst.phx .cback{margin-bottom:0;min-height:32px}.lst.phx .crumbs{margin-top:4px!important;margin-bottom:4px!important}.lst.phx h1.pg{margin-top:2px!important}.lst.phx .rsearch{margin-top:8px}.lst.phx~.wrap .grid:not(.v-list)>article.card .ph{aspect-ratio:9/4}.lst.phx~.wrap>.row>.rtool:first-child,.lst.phx~.wrap .rtool{margin-top:0!important}.lst.phx~.wrap .tierh{margin-top:0!important;margin-bottom:0!important}.lst.phx~.wrap .row>.rh{margin-bottom:6px!important}.lst.phx~.wrap .row{margin-top:0!important;padding-top:6px!important}}
.pcred.oc{max-width:calc(100% - 12px)}
/* R14 one live dot, no pulse */
.cd.live:before{animation:none!important;box-shadow:none!important}
/* R14 quick date row on event lists (one tap, like Platinumlist / Time Out) */
.qdate{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;margin:8px 0 12px;padding-bottom:2px}
.qdate::-webkit-scrollbar{display:none}
.qdate .chip{flex:0 0 auto;white-space:nowrap}
.qdate{background:none!important;padding:0!important;margin:2px 0 8px!important;border:0!important;box-shadow:none!important}
.qdate .chip{padding:6px 12px;font-size:14px;min-height:0}
/* beach clubs: redeemable chip on cards + price table on the place page */
.bcr{display:inline-block;font-size:11.5px;font-weight:700;line-height:1.5;padding:1px 8px;border-radius:999px;background:#0bb5c929;border:1px solid #0bb5c966;color:#8ff0fb;margin-inline-start:6px;white-space:nowrap}
.bcr.no{background:#ffffff14;border-color:#ffffff33;color:#e4dfea}
:root[data-theme=light] .bcr{background:#0bb5c91f;border-color:#0bb5c980;color:#055a64}
:root[data-theme=light] .bcr.no{background:#1a132510;border-color:#1a132533;color:#4a4255}
.bcbox h3{font-size:15px;margin:4px 0 8px}
.bct{width:100%;border-collapse:collapse;margin:0 0 8px;font-size:14px}
.bct th,.bct td{text-align:start;vertical-align:top;padding:8px 6px;border-bottom:1px solid color-mix(in srgb,currentColor 10%,transparent)}
.bct td{text-align:end;white-space:nowrap}
.bct small{display:block;font-weight:500;color:var(--mute);font-size:12px;white-space:normal}
.bct .bcrl{color:#8ff0fb}:root[data-theme=light] .bct .bcrl{color:#055a64}
.bcdl{margin-top:12px}
.bcs{font-size:12px;font-weight:500;white-space:nowrap}

/* event body: facts icons + full-width map */
.facts .ic{color:var(--acc-ink,var(--ink))}.facts .ic svg{display:block}
.ev.evb .panel .map,.ev.evb #evmap{width:100%;max-width:none}
/* Menu button at the start of the header (top left in EN, top right in AR); drawer opens from the same side */
.bar .hmbs{order:-1;margin-inline-end:2px}
.drw{inset:0 auto 0 0}.drwin{animation-name:minr;border-inline-start:0;border-inline-end:1px solid var(--line2)}.drw.closing .drwin{animation-name:moutr}
[dir=rtl] .drw{inset:0 0 0 auto}[dir=rtl] .drwin{animation-name:min}[dir=rtl] .drw.closing .drwin{animation-name:mout}
@media (max-width:374px){.bar{gap:4px}.bar .ib{width:40px;min-width:40px;height:40px}.bar .citysel{width:auto;padding-inline:8px}}
.drwb .mco a.mcoa{min-height:40px;padding:6px 12px;font-weight:800;color:inherit;text-decoration:underline;text-underline-offset:3px}

/* menu polish v2 */
.drw::backdrop{background:rgba(12,10,20,.38);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}
.drwin{box-shadow:0 10px 40px rgba(0,0,0,.18)}
.drwin:focus{outline:none}
.drwh{gap:10px;padding-inline:14px}
.drws{border-radius:12px;background:var(--card);border-color:var(--line)}
.drwsi{display:inline-flex;color:var(--mute)}.drwsi svg{width:18px;height:18px}
.drwh .ib{border-radius:12px;border-color:var(--line);background:var(--card);color:var(--ink)}
.drwh .ib svg,.thb .ti svg{width:20px;height:20px}
.thb .ti{line-height:0}
.drwh .ib:focus{outline:none}
.drwh .ib:focus-visible,.drwb a:focus-visible,.drwb summary:focus-visible{outline:2px solid color-mix(in srgb,var(--ink) 35%,transparent);outline-offset:2px}
.drwb{padding:10px 10px max(24px,env(safe-area-inset-bottom))}
.drwb a,.drwb summary{min-height:52px;padding:8px 12px;gap:14px}
.drwb summary{font-weight:700;font-size:16px;letter-spacing:-.01em}
.drwb>details.mg,.drwb>.msolo{border-bottom:1px solid var(--line)}
.drwb>:last-child{border-bottom:0}
.mi{width:36px;height:36px;border-radius:10px;background:color-mix(in srgb,var(--a2,#ff7a1a) 12%,transparent);color:color-mix(in srgb,var(--a2,#ff7a1a) 80%,var(--ink));font-size:0}
.mi:empty{display:none}
.drwb a:hover .mi{transform:none}
.mg ul a{padding-inline-start:62px;min-height:46px;font-size:15px;font-weight:500;color:color-mix(in srgb,var(--ink) 85%,transparent)}
.mcity{margin:0 0 8px;border-radius:14px}
.mcity .mcl ul a{padding-inline-start:62px}
.msolo a{font-weight:700;font-size:16px}
.mcv{width:7px;height:7px;border-width:0 1.8px 1.8px 0;opacity:.7}
.pic{width:1em;height:1em;vertical-align:-.12em;display:inline-block}
.ill span{color:#fff}.ill span .pic{width:44px;height:44px}.tsi .ill span .pic{width:26px;height:26px}
.tile .ic .pic{width:30px;height:30px;color:#fff}
/* no-photo place card: light, compact, small tinted line icon; no fake cover */
.card.pcard.pcl,.card.pcard.pcl[data-th]{background:var(--card)!important;background-image:none!important;border:1px solid var(--line2,var(--line,#2a2738));box-shadow:none}.card.pcard.pcl .pclb{background-image:none!important;background-color:transparent!important}
.card.pcard.pcl>a{display:block;color:inherit;text-decoration:none}
.pcard.pcl .pclb{display:flex;gap:12px;align-items:flex-start;padding:14px 14px 14px;padding-inline-end:56px;min-height:0;background:none}
.pcard.pcl .pci{flex:none;width:40px;height:40px;border-radius:12px;display:grid;place-items:center;color:color-mix(in srgb,var(--c) 75%,var(--ink,#888));background:color-mix(in srgb,var(--c) 14%,transparent)}
.pcard.pcl .pci svg{width:22px;height:22px}
.pcard.pcl .pct{min-width:0;flex:1}
.card.pcard.pcl h3,body[data-th] .card.pcard.pcl h3,.card.pcard.pcl[data-th] h3{font-family:inherit;font-style:normal;font-size:16px;font-weight:700;line-height:1.3;margin:0 0 3px;letter-spacing:0;text-transform:none;color:var(--fg,inherit)}
.card.pcard.pcl .meta{font-size:13px;opacity:.75;margin:0;text-transform:none;letter-spacing:0;font-family:inherit}
.card.pcard.pcl .pr{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:6px;font-size:13px}
.card.pcard.pcl .pr:not(:has(> :not(.dist))){display:none}
.card.pcard.pcl .pr .badge,.card.pcard.pcl .pr>span:not(.dist):not(.pbud){position:static}
.card.pcard.pcl .save{top:8px;inset-inline-end:8px;width:38px;height:38px;background:color-mix(in srgb,var(--fg,#888) 8%,transparent);color:inherit}
.card.pcard.pcl .maplk{bottom:8px;inset-inline-end:10px;width:36px;height:36px;background:transparent;border:0}
.card.pcard.pcl::before,.card.pcard.pcl::after,.card.pcard.pcl .pclb::before,.card.pcard.pcl .pclb::after{display:none;background:none}
/* results header on phone: one control row (Filter, Sort, view modes) */
@media (max-width:560px){.rtool{flex-wrap:nowrap;gap:6px;align-items:center}.rtool .vtog{margin-inline-start:auto;flex:none;gap:2px;display:flex}.rtool .vtog>*{width:36px;height:36px;min-width:0;padding:0}.rtool .fdrawer,.rtool .sortdd{flex:none}}
[dir=rtl] .card.pcard.pcl h3{text-align:right}
/* round 2 (2026-11-04): place cards in every theme use the site font and a plain body, no texture */
.card.pcard h3,.card.pcard[data-th] h3,body[data-th] .card.pcard h3{font-family:inherit!important;font-style:normal}
.card.pcard[data-th] .bd,.card.pcard .bd{background:var(--card)!important;background-image:none!important;border-top:0!important}
.card.pcard[data-th]::before,.card.pcard[data-th]::after,.card.pcard[data-th] .bd::before,.card.pcard[data-th] .bd::after{background-image:none!important}
/* no-photo card badges: tidy row, clear of the map pin */
.card.pcard.pcl .pr{gap:6px;justify-content:flex-start;padding-inline-end:0}
.card.pcard.pcl .pr>*{margin:0!important;position:static!important;transform:none!important;flex:none}
.card.pcard.pcl .pr>.dist:empty{display:none}
.card.pcard.pcl .pclb{padding-bottom:16px}
/* sticky results row: solid background and shadow */
.rtool,.rtool[class]{background:var(--bg)!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;box-shadow:0 8px 16px -10px rgba(0,0,0,.45)}
[data-theme=light] .rtool{box-shadow:0 8px 16px -10px rgba(40,25,10,.25)}
/* clean no-photo tiles: detail cover and tour stop thumbnail */
.plite{display:flex;align-items:center;gap:12px;background:var(--card);border:1px solid var(--line2,var(--line,#2a2738));border-radius:16px}
.plite .pci{flex:none;display:grid;place-items:center;border-radius:12px;color:color-mix(in srgb,var(--c) 75%,var(--ink,#888));background:color-mix(in srgb,var(--c) 14%,transparent)}
.plite.pdet{padding:14px;margin:0 0 12px}
.plite.pdet .pci{width:44px;height:44px}
.plite.pdet .plt{font-size:14px;font-weight:600;opacity:.8}
.plite.ptour{width:120px;height:90px;justify-content:center;border-radius:12px;flex:none}
.plite.ptour .pci{width:44px;height:44px}
.plite .pci svg{width:22px;height:22px}
body[data-th] h1.pg{font-family:inherit!important}
.tsi .plite.ptour{position:absolute;inset:0;width:100%;height:100%;border-radius:10px;padding:0;box-sizing:border-box}.tsi .plite.ptour .pci{width:40px;height:40px}

/* sticky Filter/Sort row flush to header (no sliver above/below), light+dark */
.rtool,.rtool[class]{top:calc(var(--hdr) - 1px)!important;border-radius:0 0 16px 16px!important;padding-top:9px;box-shadow:0 -12px 0 0 var(--bg),0 8px 16px -10px rgba(0,0,0,.45)!important}
[data-theme=light] .rtool,[data-theme=light] .rtool[class]{box-shadow:0 -12px 0 0 var(--bg),0 8px 16px -10px rgba(40,25,10,.25)!important}
.plite.pdet .pci svg{width:34px;height:34px}
.plite.pdet{min-height:120px;align-items:center;justify-content:center}.plite.pdet .pci,.plite.pdet .pci[class]{width:72px!important;height:72px!important;border-radius:20px}.plite.pdet .pci svg,.plite.pdet .pci svg[width]{width:44px!important;height:44px!important}
/* ui3 (4 Nov 2026): privacy choices sheet, floating help chat, email alerts card */
.u3fab{position:fixed;z-index:44;inset-inline-end:16px;bottom:calc(20px + env(safe-area-inset-bottom));width:56px;height:56px;border-radius:50%;display:grid;place-items:center;background:var(--grad2);box-shadow:0 10px 28px -8px #ff3d7f99,0 0 0 1px #ffffff22 inset;transition:transform .2s var(--ease)}
.u3fab:hover{transform:translateY(-2px)}.u3fab:focus-visible{outline:3px solid var(--a3);outline-offset:3px}
@media(max-width:820px){.u3fab{width:52px;height:52px;inset-inline-end:14px;bottom:calc(86px + env(safe-area-inset-bottom))}.has-buy .u3fab{bottom:calc(158px + env(safe-area-inset-bottom))}}
html.u3pc-on .u3fab{visibility:hidden}
.u3pc{position:fixed;z-index:60;inset-inline:0;bottom:0;padding:0 10px calc(10px + env(safe-area-inset-bottom));pointer-events:none}
/* the privacy sheet steps aside while the help chat panel is open (it comes back when the panel closes) */
html:has(.u3ch:not([hidden])) .u3pc{display:none}
.u3pcb{pointer-events:auto;max-width:640px;margin:0 auto;background:var(--card);color:var(--ink);border:1px solid var(--line2);border-radius:22px;box-shadow:var(--sh);padding:18px 18px 16px;position:relative;overflow:hidden}
.u3pcb::before{content:"";position:absolute;inset-inline:0;top:0;height:4px;background:var(--grad2)}
.u3pcb h2{font:800 18px/1.3 var(--disp);margin:2px 0 8px}.u3pcb p{margin:0 0 8px;font-size:14px;line-height:1.55;color:var(--mute)}
.u3pcl a{color:var(--acc-ink);font-weight:700}
.u3pcr{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}
.u3pcbtn{font:800 15px/1 var(--body);min-height:46px;border-radius:14px;border:1.5px solid var(--a3);background:transparent;color:var(--ink);cursor:pointer}
.u3pcbtn:hover{background:color-mix(in srgb,var(--a3) 14%,transparent)}.u3pcbtn:focus-visible{outline:3px solid var(--a3);outline-offset:2px}
.u3pcbtn[aria-pressed=true]{background:color-mix(in srgb,var(--a3) 22%,transparent)}
.u3ch{position:fixed;z-index:58;inset-inline-end:16px;bottom:calc(88px + env(safe-area-inset-bottom));width:min(380px,calc(100vw - 24px));max-height:min(560px,calc(100vh - 140px));display:flex;flex-direction:column;background:var(--card);color:var(--ink);border:1px solid var(--line2);border-radius:22px;box-shadow:var(--sh);overflow:hidden}
.u3ch[hidden]{display:none}
@media(max-width:820px){.u3ch{inset-inline:12px;width:auto;bottom:calc(84px + env(safe-area-inset-bottom));max-height:calc(100vh - 170px - env(safe-area-inset-bottom))}}
.u3cht{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;background:var(--grad2);color:#fff}.u3cht b{font:800 16px var(--disp)}
.u3chx{background:#0003;color:#fff;border:0;width:34px;height:34px;border-radius:50%;font-size:22px;line-height:1;cursor:pointer}
.u3chn{margin:0;padding:8px 14px;font-size:12px;color:var(--mute);border-bottom:1px solid var(--line)}
.u3chl{flex:1;overflow:auto;display:flex;flex-direction:column;gap:8px;padding:12px 14px}
.u3m{max-width:92%;padding:9px 12px;border-radius:14px;line-height:1.5;font-size:14px}.u3m p{margin:0}.u3m ul{margin:6px 0 0;padding-inline-start:18px}.u3m a{color:var(--acc-ink);font-weight:700}
.u3m.bot{background:var(--card2);align-self:flex-start}.u3m.me{background:color-mix(in srgb,var(--a3) 26%,var(--card2));align-self:flex-end}
.u3chf{display:flex;gap:8px;padding:10px 12px;border-top:1px solid var(--line)}.u3chf input{flex:1;min-width:0;min-height:44px;border-radius:12px;border:1px solid var(--line2);background:var(--bg2);color:var(--ink);font:inherit;padding:8px 12px}
.u3al{margin-top:22px;margin-bottom:22px}
.u3alc{background:var(--card);border:1px solid var(--line2);border-radius:var(--r);box-shadow:var(--sh2);position:relative;overflow:hidden}
.u3alc::before{content:"";position:absolute;inset-block:0;inset-inline-start:0;width:4px;background:var(--grad2)}
.u3alc>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 16px 16px 20px;flex-wrap:wrap}
[dir=rtl] .u3alc>summary{padding:16px 20px 16px 16px}
.u3alc>summary::-webkit-details-marker{display:none}
.u3alt{display:flex;gap:12px;align-items:flex-start;flex:1 1 260px}.u3alt b{display:block;font:800 17px/1.3 var(--disp)}.u3alt small{display:block;color:var(--mute);font-size:13px;line-height:1.5;margin-top:3px}
.u3bell{flex:none;width:44px;height:44px;border-radius:14px;display:grid;place-items:center;color:#fff;background:var(--grad2)}
.u3alb{flex:none;white-space:nowrap}.u3alc[open] .u3alb{display:none}
.u3alf{display:grid;gap:12px;padding:0 20px 18px;max-width:640px}
.u3alf label{display:flex;flex-direction:column;gap:6px;font-weight:700;font-size:14px}
.u3alf input[type=email],.u3alf select{min-height:44px;border-radius:12px;border:1px solid var(--line2);background:var(--bg2);color:var(--ink);font:inherit;padding:8px 12px}
.u3alf fieldset{border:1px solid var(--line);border-radius:14px;padding:10px 12px;margin:0;display:flex;flex-wrap:wrap;gap:8px 16px}.u3alf legend{font-weight:700;font-size:14px;padding:0 4px}
.u3alf label.u3ck{flex-direction:row;align-items:flex-start;gap:8px;font-weight:600}.u3ck input{width:18px;height:18px;margin:2px 0 0;accent-color:var(--a3);flex:none}
.u3alf .btn{justify-self:start}.u3n{margin:0;font-size:12px;color:var(--mute);line-height:1.5}.u3n a{color:var(--acc-ink)}
@media(max-width:520px){.u3alb{width:100%;text-align:center}}
/* Alerts: header bell + /alerts page (Issa t771u) */
:root{--gold:#e6c378;--gold2:#e6c37866}:root[data-theme=light]{--gold:#946510;--gold2:#94651055}
.ib.wpbell{position:relative;color:var(--gold);border-color:var(--gold);padding:0;width:44px}
.ib.wpbell:after{content:"";position:absolute;inset:3px;border:1px solid var(--gold2);border-radius:10px;pointer-events:none}
.ib.wpbell:hover{background:color-mix(in srgb,var(--gold) 12%,var(--card))}
.is-home:not(.scrolled) .ib.wpbell{color:#e6c378;border-color:#e6c378}.is-home:not(.scrolled) .ib.wpbell:after{border-color:#e6c37866}
@media(max-width:640px){.ib.wpbell{width:40px}.ib.wpbell:after{border-radius:8px}}
.albell{margin:0 auto 6px;width:58px;height:58px;display:grid;place-items:center;color:#e6c378;border:1px solid #e6c378;border-radius:18px;position:relative}
.albell:after{content:"";position:absolute;inset:4px;border:1px solid #e6c37866;border-radius:13px}.albell svg{width:30px;height:30px}
.alw{max-width:760px;margin:0 auto;padding:8px 16px 40px}
.alf{display:grid;gap:14px;margin-top:-28px;position:relative}
.alst,.alx,.alon{background:var(--card);border:1px solid var(--line2);border-radius:var(--r);padding:18px 16px}
.alst h2,.alx h2{display:flex;align-items:center;gap:10px;margin:0 0 12px;font-size:19px;line-height:1.3}
.aln{flex:none;display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;border:1px solid var(--gold);color:var(--gold);font-size:15px;font-weight:800}
.alch{display:grid;gap:10px}@media(min-width:620px){.alch{grid-template-columns:1fr 1fr}}
.alcard{display:flex;gap:12px;align-items:flex-start;padding:14px;border:1.5px solid var(--line2);border-radius:16px;cursor:pointer;background:var(--bg2);position:relative}
.alcard input{position:absolute;opacity:0;pointer-events:none}
.alcard.on,.alcard:has(input:checked){border-color:var(--gold);background:color-mix(in srgb,var(--gold) 9%,var(--card))}
.alcard:has(input:focus-visible){outline:3px solid var(--a3);outline-offset:2px}
.alci{flex:none;width:40px;height:40px;display:grid;place-items:center;border-radius:12px;border:1px solid var(--gold2);color:var(--gold)}
.alct{flex:1;display:grid;gap:3px}.alct b{font-size:16.5px}.alct small{color:var(--mute);font-size:14.5px;line-height:1.45}
.altk{flex:none;width:24px;height:24px;border-radius:50%;border:2px solid var(--line2);margin-top:6px}
.alcard.on .altk,.alcard:has(input:checked) .altk{border-color:var(--gold);background:radial-gradient(circle,var(--gold) 0 5px,transparent 6px)}
.alfl{display:grid;gap:6px;font-weight:700;font-size:15.5px}
.alfl input,.alfl select{min-height:48px;border-radius:12px;border:1px solid var(--line2);background:var(--bg);color:var(--ink);font:inherit;font-size:17px;padding:0 12px}
.aln2{color:var(--mute);font-size:14.5px;line-height:1.5;margin:8px 0 0}
.alsub{margin-top:12px}
.alcities summary{display:flex;justify-content:space-between;align-items:center;gap:10px;min-height:52px;padding:0 14px;border:1.5px solid var(--line2);border-radius:14px;cursor:pointer;font-weight:700;list-style:none}
.alcities summary::-webkit-details-marker{display:none}
.alcnt{color:var(--gold);font-size:15px}.alcities[open] summary{border-color:var(--gold)}
.alcl{display:grid;gap:12px;margin-top:12px;max-height:420px;overflow:auto;padding:2px}
.alco{border:0;margin:0;padding:0}.alco legend{font-weight:800;font-size:14px;color:var(--mute);margin-bottom:6px}
.alchips,.alco{display:flex;flex-wrap:wrap;gap:8px}.alco legend{width:100%}
.alchip{position:relative;cursor:pointer}.alchip input{position:absolute;opacity:0;pointer-events:none}
.alchip span{display:inline-flex;align-items:center;min-height:42px;padding:0 14px;border-radius:999px;border:1.5px solid var(--line2);font-size:15px;font-weight:700}
.alchip input:checked+span{border-color:var(--gold);background:color-mix(in srgb,var(--gold) 16%,var(--card));color:var(--ink)}
.alchip input:focus-visible+span{outline:3px solid var(--a3);outline-offset:2px}
.alsl{display:block;font-size:14px;font-weight:800;color:var(--mute);margin-bottom:8px}
.alks{display:grid;gap:10px}
.alk{border:1.5px solid var(--line2);border-radius:16px;padding:14px}.alk.on{border-color:var(--gold2)}.alk.dim{opacity:.7}
.alkh{display:flex;gap:12px;align-items:flex-start;justify-content:space-between}.alkh b{font-size:16.5px}.alkh p{margin:4px 0 0;color:var(--mute);font-size:14.5px;line-height:1.45}
.alsw{appearance:none;-webkit-appearance:none;flex:none;width:54px;height:32px;border-radius:999px;background:var(--line2);position:relative;cursor:pointer;margin:2px 0 0;transition:background .2s}
.alsw:before{content:"";position:absolute;top:3px;inset-inline-start:3px;width:26px;height:26px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0005;transition:transform .2s}
.alsw:checked{background:var(--gold)}.alsw:checked:before{transform:translateX(22px)}[dir=rtl] .alsw:checked:before{transform:translateX(-22px)}
.alsw:focus-visible{outline:3px solid var(--a3);outline-offset:2px}
.alq{display:grid;gap:12px}@media(min-width:620px){.alq{grid-template-columns:1fr 1fr}.alq .alfl:last-child{grid-column:1/-1}}
.alck{display:flex;gap:10px;align-items:flex-start;margin:0 0 12px;font-size:15.5px;line-height:1.45;cursor:pointer}
.alck input{flex:none;width:22px;height:22px;margin:1px 0 0;accent-color:var(--gold)}
.albtn{width:100%;min-height:54px;font-size:17px}.alpriv{text-align:center}
.almsg{margin:0 0 10px;font-weight:700;min-height:0}.almsg.ok{color:var(--a4)}.almsg.err{color:var(--a1)}
.alrow{display:flex;flex-wrap:wrap;gap:8px}.alon{border-color:var(--gold)}
.alx{margin-top:14px}.alwhy{margin:0;padding:0;list-style:none;display:grid;gap:10px}
.alwhy li{position:relative;padding-inline-start:26px;line-height:1.5;font-size:15.5px}
.alwhy li:before{content:"";position:absolute;inset-inline-start:4px;top:7px;width:10px;height:6px;border-inline-start:2px solid var(--gold);border-bottom:2px solid var(--gold);transform:rotate(-45deg)}
[dir=rtl] .alwhy li:before{transform:rotate(45deg)}
.alsamp{position:relative;padding:18px 12px 12px;border-radius:18px;background:var(--bg2);border:1px dashed var(--line2)}
.alsb{position:absolute;top:-11px;inset-inline-start:14px;background:var(--gold);color:#1a1325;font-size:12.5px;font-weight:800;padding:2px 10px;border-radius:999px}
.alnote{display:flex;gap:10px;align-items:center;background:var(--card);border-radius:16px;padding:12px;box-shadow:var(--sh2)}
.alnl img{border-radius:9px;display:block}.alnb{flex:1;min-width:0}
.alnh{display:flex;justify-content:space-between;margin:0;font-size:13px;color:var(--mute)}.alnh b{color:var(--ink)}
.alnt{margin:2px 0 0;font-weight:800;font-size:15px}.alnd{margin:2px 0 0;font-size:14px;color:var(--mute);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.alnim{flex:none;width:56px;height:56px;border-radius:10px;object-fit:cover}
.alhow{list-style:none;margin:0;padding:0;display:grid;gap:12px}.alhow li{display:flex;gap:12px;align-items:flex-start}.alhow b{font-size:16px}.alhow p{margin:3px 0 0;color:var(--mute);font-size:14.5px;line-height:1.45}
.u3alx{margin:8px 4px 0;font-size:14.5px}.u3alx a{color:var(--gold);font-weight:700}
@media (max-width:430px){.bar{gap:5px}.bar .ib{min-width:37px;height:38px;padding:0 7px;border-radius:11px}.bar .citysel span{max-width:19vw}.ib.wpbell:after{inset:2px}}
@media (max-width:379px){.bar{gap:3px}.bar .ib{width:auto;min-width:34px;height:36px;padding:0 6px}.bar .citysel span{max-width:15vw}}

.u3m p{white-space:pre-line}.u3chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.u3chips button{min-height:36px;border:1px solid var(--line2);background:var(--card);color:var(--ink);border-radius:999px;padding:6px 12px;font:inherit;font-size:13px;cursor:pointer}
.u3lnk{background:none;border:0;padding:0;color:var(--acc-ink);font:inherit;font-weight:700;text-decoration:underline;cursor:pointer}
.u3cf{display:flex;flex-direction:column;gap:8px;padding:12px 14px;overflow:auto}.u3cf[hidden],.u3chl[hidden],.u3chf[hidden]{display:none}.u3cf label{display:flex;flex-direction:column;gap:4px;font-size:13px;font-weight:600}
.u3cf input,.u3cf select,.u3cf textarea{min-height:42px;border-radius:12px;border:1px solid var(--line2);background:var(--bg2);color:var(--ink);font:inherit;padding:8px 12px}.u3cfm{margin:0;font-size:13px}.u3cfr{display:flex;gap:8px}
/* privacy sheet on phones: a compact bar that sits above the bottom nav, so the tabs stay tappable before a choice is made */
@media(max-width:820px){.u3pc{bottom:calc(80px + env(safe-area-inset-bottom));padding:0 10px}
.u3pcb{padding:12px 14px 12px;border-radius:18px;max-height:calc(100vh - 180px);overflow:auto}
.u3pcb h2{font-size:15px;margin:0 0 4px}.u3pcb p{font-size:12.5px;line-height:1.45;margin:0 0 4px}
.u3pcb p:nth-of-type(2),.u3pcb p:nth-of-type(3){display:none}
.u3pcr{margin-top:8px;gap:8px}.u3pcbtn{min-height:44px;font-size:14px}}
/* city picker: UAE city rows first, other countries folded */
.wuae{width:100%;max-width:560px;margin:8px auto 4px;text-align:start}.wuae h3{font:800 14px/1.3 var(--body);color:var(--mute);margin:6px 4px 8px}
.wuael{display:flex;flex-direction:column;gap:8px}
.wur{display:flex;align-items:center;justify-content:space-between;min-height:56px;padding:0 18px;border-radius:16px;background:var(--card);border:1px solid var(--line2);color:var(--ink);font-size:17px;text-decoration:none}
.wur:hover,.wur:focus-visible{text-decoration:none;border-color:var(--a3)}.wur b{font-weight:800}.wura{font-size:22px;color:var(--mute)}
.wother{width:100%;max-width:560px;margin:14px auto 0;text-align:start}
.wother>summary{cursor:pointer;list-style:none;min-height:52px;display:flex;align-items:center;justify-content:center;border-radius:16px;border:1px dashed var(--line2);font-weight:800;color:var(--ink)}
.wother>summary::-webkit-details-marker{display:none}.wother[open]>summary{margin-bottom:10px}
.mcoth{margin-top:8px}.mcoth>summary{cursor:pointer;min-height:44px;display:flex;align-items:center;padding:0 12px;border-radius:12px;border:1px dashed var(--line2);font-weight:800}
.mcl li a{min-height:44px;display:flex;align-items:center}
/* contrast fixes (dark + light, EN/AR) */
.dchip small{color:color-mix(in srgb,var(--c) 50%,#1a1325);filter:none}
.bdg.open{background:#0b7a44}
:root[data-theme=light] .bdg.shut{background:#3d3548}
.aboutpg .summary,.summary{color:var(--mute)}
[data-theme=dark] .leaflet-control-attribution{background:#1c1830e6!important;color:#c9c3d6!important}[data-theme=dark] .leaflet-control-attribution a{color:#9fd8ff!important}
:root[data-theme=light] .wpk-hd h2{background:none;-webkit-text-fill-color:currentColor;color:#b4381a}
.tslot time .tend{display:block;font-weight:500;opacity:.7;font-size:13px}.tsb .tfull{display:block;margin-top:4px;font-weight:600;color:var(--acc,#1f7a4d)}
/* light mode: hero text over a photo that fades to cream needs its own shadow to stay readable */
:root[data-theme=light] .phx:not(.lite) .in .crumbs,:root[data-theme=light] .phx:not(.lite) .in .crumbs a{color:#fff;text-shadow:0 1px 2px #000,0 0 10px #000b}
:root[data-theme=light] .phx:not(.lite) .in h1,:root[data-theme=light] .phx:not(.lite) .in .sub{text-shadow:0 1px 3px #000c,0 0 14px #0009}
:root[data-theme=light] .phx:not(.lite) .credit,:root[data-theme=light] .phx:not(.lite) .credit a{color:#fff;text-shadow:0 1px 2px #000}

/* simple UX 2026-11-04: view icons inside the Sort menu; 44px targets; quick chips row; one Filters button */
.sortm .vtog{margin:0;gap:6px;padding:4px 6px 6px}.sortm .vtog .ib{width:46px;height:46px;opacity:.8}.sortm .vtog .ib[aria-pressed=true]{opacity:1;border-color:currentColor}
.sortvh{margin:6px 12px 2px;font-size:13px;font-weight:700;opacity:.7}
.rtool .sortdd>summary,.rtool .fbtn{min-height:44px;display:inline-flex;align-items:center;gap:6px}
.rtool .fbtn .nb{min-width:22px;height:22px;border-radius:11px;display:inline-grid;place-items:center;font-size:12px;background:var(--acc,#ff3d7f);color:#fff;padding:0 6px}
.qk5{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding:2px 0 10px;margin:0}.qk5::-webkit-scrollbar{display:none}
.qk5 .chip,.qk5 button.chip{flex:none;min-height:44px;display:inline-flex;align-items:center;padding:0 16px;font-size:15px;font-weight:600;border-radius:22px;cursor:pointer;font-family:inherit}
.chips .chip{min-height:40px}
.empty .sugg{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:10px}
.sug .sgh{display:block;padding:8px 12px 4px;font-size:12px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:var(--mute);border-bottom:0}
.sug a{min-height:48px}.sug .sgall{justify-content:center;font-weight:700}
.sug.inl{position:relative;top:auto;margin:8px 0 4px}
/* 44px hit areas without changing the look (simple-UX pass) */
.maplk::after{content:'';position:absolute;inset:-5px;border-radius:50%}
.cback{position:relative}.cback::after,.rh .more::after{content:'';position:absolute;inset:-6px -2px}
.rh .more{position:relative}
/* r2: city home — one category chip row, "What's On in {City}" h1, date chips under Happening soon, long city names never push the header off-screen */
.ccat .chip{gap:6px}
.ccat .ci{display:inline-flex;color:var(--c,currentColor)}
.ccat .ci svg{width:18px;height:18px}
h1.hwo .hcity{color:var(--ac,#e8245f);white-space:nowrap}
.qwsoon{margin-top:12px}
@media (max-width:430px){.top .bar{gap:4px}.top .citysel .cv{display:none}.top .bar .citysel{flex:0 1 auto;min-width:44px;overflow:hidden}.top .bar .citysel span[data-cslabel]{max-width:none;min-width:0;flex:0 1 auto;overflow:hidden;text-overflow:ellipsis}}
.rh .more::after{inset:-12px -6px}
/* daily visitor 2026-11-05: readable "Partner link" under the side-panel ticket button; normal-size Back pill on event heroes; readable "Next big night" line on light hero */
.facts>small.bdg{justify-self:center;color:#fff;font-size:11px;font-weight:800}
.hd>.cback{justify-self:start}
.hcount{width:fit-content;max-width:100%;padding:8px 14px;border-radius:14px;background:rgba(18,12,28,.62);backdrop-filter:blur(6px);color:#fff}
.hcount .hwhen{color:#fff}
/* daily visitor 2026-11-05: on laptop screens the sticky side panel was taller than the window, so its Buy tickets button was cut off after scrolling. Panel now scrolls inside itself and keeps the ticket button pinned in view. */
@media(min-width:960px){.ev aside{max-height:calc(100vh - var(--hdr) - 28px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;border-radius:22px}.ev aside .facts>a.buy.wide{position:sticky;bottom:10px;z-index:2;box-shadow:0 8px 24px rgba(0,0,0,.28)}}
/* ease10 */
.tcount{display:block;font-size:.74rem;font-weight:600;opacity:.92;margin-top:2px;font-variant-numeric:tabular-nums}
.bestof .bolist{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:8px}
@media(min-width:760px){.bestof .bolist{grid-template-columns:1fr 1fr}}
.bestof .bolist li{display:flex;gap:10px;align-items:flex-start;background:var(--card);border:1px solid var(--line2);border-radius:14px;padding:10px 12px}
.bestof .bolist a{color:var(--ink);font-weight:700;text-decoration:none}
.bestof .bon{flex:0 0 26px;height:26px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:.8rem;background:color-mix(in srgb,var(--ink) 10%,transparent);color:var(--ink)}
.bestof .bot{display:block;font-size:.8rem;opacity:.75;margin-top:2px}
.bonote{font-size:.74rem;opacity:.7;margin-top:6px}
.tixp{margin-inline-start:6px;font-weight:600;opacity:.9}
.cshare{position:absolute;top:8px;inset-inline-end:52px;width:38px;height:38px;border-radius:50%;border:0;background:#000a;color:#fff;cursor:pointer;display:grid;place-items:center;z-index:4}
.cshare svg{width:18px;height:18px}
.mdates{font-size:.78rem;margin-top:6px;display:flex;flex-wrap:wrap;gap:4px 8px;opacity:.9}
.mdates a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.mapfab{position:fixed;bottom:calc(84px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);z-index:40;border:0;border-radius:999px;padding:11px 18px;font-weight:700;background:var(--ink);color:var(--card);box-shadow:var(--sh);cursor:pointer;min-height:44px}
.u3pc .u3pcm{margin-top:6px;font-size:.8rem}.u3pc .u3pcm summary{cursor:pointer;text-decoration:underline}
@media(max-width:640px){
.u3pcb{padding:10px 12px;font-size:.84rem;max-height:46vh}
.u3pcb p{margin:0 0 4px}
.phx:has(.hwo){min-height:0!important;padding-block:12px 8px!important}
.phx:has(.hwo) .in{padding-block:8px 6px!important}
.phx:has(.hwo) .cback{font-size:.78rem;min-height:32px}
.phx:has(.hwo) .crumbs{font-size:.72rem;margin:2px 0}
.phx:has(.hwo) .hwo{font-size:1.6rem!important;margin:2px 0 0!important;line-height:1.15}
.phx:has(.hwo) .credit{font-size:.58rem}
}
/* city home: calm, aligned row heads; cards sized to content (no blank bands) */
.is-chome .trow .rh{flex-wrap:nowrap;align-items:baseline;gap:10px}
.is-chome .trow .rh h2{min-width:0;font-size:clamp(1.15rem,4.6vw,1.5rem);line-height:1.2;overflow-wrap:anywhere}
.is-chome .trow .rh a{white-space:nowrap;flex:0 0 auto}
.is-chome .trow .rail{align-items:start}
.is-chome .row{margin-block:22px}
.is-chome .bestof .rh h2{font-size:clamp(1.15rem,4.6vw,1.5rem)}
.bestof .bolist li{display:block;padding:0}
.bestof .bolist li>a{display:flex;gap:12px;align-items:center;padding:10px 12px;min-height:56px}
.bestof .bot b{display:block;font-size:.95rem}.bestof .bot small{display:block;font-size:.78rem;font-weight:400;opacity:.72;margin-top:2px}
.is-chome .trow .rail>*{height:auto}
/* slim consent bar */
.u3pc .u3pcb{max-width:760px;padding:8px 10px!important;border-radius:14px!important;max-height:none!important;overflow:visible!important}
.u3pc .u3pcs{display:flex;align-items:center;gap:8px}
.u3pc .u3pcst{flex:1;min-width:0;margin:0!important;font-size:.8rem;line-height:1.3}
.u3pc .u3pcmore{border:0;background:none;color:inherit;font:inherit;font-weight:700;text-decoration:underline;padding:4px 2px;cursor:pointer;min-height:32px}
.u3pc .u3pcr{display:flex!important;gap:6px!important;margin:0!important;flex:0 0 auto}
.u3pc .u3pcbtn{min-height:36px;padding:6px 12px;font-size:.8rem;min-width:68px}
.u3pc .u3pcx{max-height:42vh;overflow:auto;font-size:.8rem;padding:2px 2px 8px;border-bottom:1px solid var(--line2);margin-bottom:8px}
.u3pc .u3pcx h2{font-size:.95rem;margin:2px 0 6px}.u3pc .u3pcx p{margin:0 0 6px}
.u3pc .u3pcb{padding:6px 10px!important}.u3pc .u3pcbtn{min-height:34px}
