
:root{
  --ink:#07111d;--night:#07111d;--night2:#0e1825;--paper:#f4f0e8;--cream:#eee8dc;
  --white:#fff;--muted:#aeb7c1;--line:rgba(255,255,255,.13);--orange:#f0a45d;--violet:#9f6cff;
  --green:#74d8a4;--shadow:0 22px 60px rgba(0,0,0,.28);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--night)}
body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#17212a;background:var(--paper);-webkit-font-smoothing:antialiased}
button,input{font:inherit}
a{color:inherit}
img{max-width:100%}
.skip{position:fixed;left:-9999px;top:1rem;z-index:9999;background:#fff;color:#111;padding:.7rem 1rem;border-radius:.5rem}
.skip:focus{left:1rem}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.eyebrow{font-size:.72rem;text-transform:uppercase;letter-spacing:.16em;font-weight:900;color:#d76d3a;margin:0 0 .65rem}

/* Header */
.site-header{position:relative;z-index:90;height:78px;padding:0 clamp(1rem,4vw,3.6rem);display:flex;align-items:center;justify-content:space-between;background:#fff;border-bottom:1px solid rgba(8,18,28,.08)}
body[data-route="home"] .site-header{position:absolute;left:0;right:0;top:0;background:linear-gradient(180deg,rgba(2,8,15,.55),rgba(2,8,15,.12) 72%,transparent);border:0;color:#fff}
body[data-route^="place-"] .site-header{position:absolute;left:0;right:0;top:0;background:linear-gradient(180deg,rgba(2,8,15,.58),transparent);border:0;color:#fff}
.brand{display:flex;align-items:center;gap:.72rem;text-decoration:none;font-size:1rem;letter-spacing:-.01em}
.brand-mark{width:3rem;height:3rem;border-radius:50%;display:grid;place-items:center;overflow:hidden;background:rgba(255,255,255,.94);border:1px solid rgba(255,255,255,.32);box-shadow:0 8px 24px rgba(0,0,0,.20)}
.brand-mark img{width:100%;height:100%;object-fit:cover;display:block}
.language-control{position:relative;margin-left:auto;display:flex;align-items:center}
.language-pill{display:inline-flex;align-items:center;justify-content:center;gap:.48rem;min-height:38px;border:1px solid rgba(255,255,255,.3);background:rgba(7,14,24,.30);color:inherit;border-radius:999px;padding:.55rem .9rem;backdrop-filter:blur(16px);box-shadow:inset 0 1px rgba(255,255,255,.08),0 10px 28px rgba(0,0,0,.12);font-size:.76rem;font-weight:850;cursor:pointer}
.language-toggle b{font-size:.9rem;font-weight:700;line-height:1;transition:transform .18s}
.language-control.open .language-toggle b{transform:rotate(180deg)}
.language-menu{position:absolute;right:0;top:calc(100% + .55rem);width:min(310px,calc(100vw - 2rem));padding:.48rem;display:grid;grid-template-columns:1fr 1fr;gap:.32rem;border:1px solid rgba(255,255,255,.16);border-radius:1rem;background:rgba(7,15,24,.94);box-shadow:0 24px 60px rgba(0,0,0,.32);backdrop-filter:blur(22px);z-index:120;color:#fff}
.language-menu[hidden]{display:none}
.language-option{display:flex;align-items:center;justify-content:space-between;gap:.6rem;min-height:42px;padding:.62rem .72rem;border-radius:.68rem;text-decoration:none;color:#eaf0f6;font-size:.78rem;font-weight:760;border:1px solid transparent}
.language-option:hover,.language-option:focus-visible{background:rgba(255,255,255,.09);border-color:rgba(255,255,255,.11);outline:0}
.language-option.current{background:rgba(240,164,93,.14);border-color:rgba(240,164,93,.36);color:#ffd5a9}
.language-option em{font-style:normal}
body:not([data-route="home"]):not([data-route^="place-"]) .language-pill{background:#f4f0e8;color:#17212a;border-color:#d9d3c8}
body:not([data-route="home"]):not([data-route^="place-"]) .language-menu{background:rgba(250,247,241,.98);color:#17212a;border-color:#ddd5c9}
body:not([data-route="home"]):not([data-route^="place-"]) .language-option{color:#17212a}
body:not([data-route="home"]):not([data-route^="place-"]) .language-option:hover,body:not([data-route="home"]):not([data-route^="place-"]) .language-option:focus-visible{background:#eee8dd;border-color:#e0d8cb}
body:not([data-route="home"]):not([data-route^="place-"]) .language-option.current{background:#f4e3d0;border-color:#e1b780;color:#7d451b}

/* Hero */
.city-hero{position:relative;min-height:820px;overflow:hidden;isolation:isolate;background:#07111d}
.city-hero-bg{position:absolute;inset:0;background-image:url('https://commons.wikimedia.org/w/index.php?title=Special:Redirect/file/Brandenburg%20Gate%2C%20Berlin%203.jpg&width=2200');background-size:cover;background-position:center 47%;background-repeat:no-repeat}
.city-hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(2,9,16,.08),rgba(2,9,16,.16) 35%,rgba(2,9,16,.90) 100%),linear-gradient(90deg,rgba(2,8,15,.18),transparent 38%,transparent 72%,rgba(2,8,15,.14)),radial-gradient(circle at 50% 74%,rgba(244,145,68,.16),transparent 34%)}
.city-hero-content{position:relative;z-index:2;min-height:820px;max-width:1380px;margin:0 auto;padding:13.5rem clamp(1rem,4vw,3.8rem) 1.15rem;color:#fff;display:flex;flex-direction:column;justify-content:flex-end}
.hero-copy-block{max-width:720px}
.status-dot{width:.45rem;height:.45rem;border-radius:50%;background:var(--green);box-shadow:0 0 0 5px rgba(116,216,164,.12)}
.city-hero h1{font-family:Georgia,"Times New Roman",serif;font-size:clamp(3.2rem,6vw,5.8rem);line-height:.91;letter-spacing:-.052em;margin:.45rem 0 1.15rem;max-width:720px;text-shadow:0 8px 42px rgba(0,0,0,.35)}
.category-dock{display:flex;overflow-x:auto;gap:.72rem;margin-top:1.05rem;padding:1rem 1.5rem 1.05rem;scroll-snap-type:x mandatory;scrollbar-width:none;justify-content:center;scroll-padding-inline:2rem;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 28px,#000 calc(100% - 28px),transparent 100%);mask-image:linear-gradient(90deg,transparent 0,#000 28px,#000 calc(100% - 28px),transparent 100%)}
.category-dock::-webkit-scrollbar{display:none}
.category-dock button{appearance:none;flex:0 0 148px;min-height:104px;border:1px solid rgba(255,255,255,.19);border-radius:1.15rem;background:linear-gradient(180deg,rgba(31,41,56,.60),rgba(8,14,24,.80));color:#fff;padding:.85rem .7rem;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;cursor:pointer;backdrop-filter:blur(15px);scroll-snap-align:start;box-shadow:inset 0 1px rgba(255,255,255,.07),0 12px 28px rgba(0,0,0,.18);transition:.18s}
@media(hover:hover) and (pointer:fine){.category-dock button:hover{transform:translateY(-3px);border-color:rgba(255,190,117,.7)}}
.category-dock button.active{border-color:rgba(255,178,85,.96);background:linear-gradient(180deg,rgba(92,52,28,.74),rgba(15,17,25,.88));box-shadow:0 0 0 1px rgba(255,178,85,.16),0 12px 30px rgba(0,0,0,.22),inset 0 1px rgba(255,255,255,.12),inset 0 0 24px rgba(255,160,72,.08)}
.category-dock button>span{font-size:1.45rem;line-height:1;margin-bottom:.45rem}
.category-dock strong{font-size:.82rem}
.category-dock small{font-size:.63rem;color:rgba(255,255,255,.58);margin-top:.17rem}
.hero-info-strip{display:flex;align-items:center;gap:.6rem;min-height:34px;padding:.42rem .25rem 0;color:rgba(255,255,255,.75);font-size:.68rem;letter-spacing:.02em}
.hero-info-strip strong{font-size:.69rem;color:#fff}
.hero-info-strip>span:last-child{color:rgba(255,255,255,.54)}

/* Featured */
.home-spotlight-section{background:linear-gradient(180deg,#08121c,#0d1724);color:#fff}
.home-shell{max-width:1380px;margin:0 auto;padding:clamp(3rem,6vw,5rem) clamp(1rem,4vw,3.8rem)}
.home-section-title{max-width:760px;margin-bottom:1.45rem}
.home-section-title h2{font-family:Georgia,"Times New Roman",serif;font-size:clamp(2.2rem,3.9vw,3.6rem);line-height:.98;letter-spacing:-.035em;margin:.15rem 0 .6rem}
.home-section-title p:not(.eyebrow){color:#98a5b3;margin:0;line-height:1.55}
.spotlight-row{display:flex;gap:.9rem;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding-bottom:.25rem}
.spotlight-row::-webkit-scrollbar{display:none}
.spotlight-card{appearance:none;position:relative;flex:0 0 min(420px,32vw);min-width:310px;min-height:345px;scroll-snap-align:start;border-radius:1.2rem;overflow:hidden;color:#fff;border:1px solid rgba(255,255,255,.12);background:#121d2a;text-align:left;padding:0;cursor:pointer;box-shadow:0 18px 50px rgba(0,0,0,.13)}
.spotlight-image{position:absolute;inset:0;overflow:hidden;background:#172331}
.spotlight-image img{width:100%;height:100%;object-fit:cover;object-position:center;display:block;transform:scale(1.002);transition:transform .35s,opacity .2s}
.spotlight-vignette{position:absolute;inset:0;background:linear-gradient(180deg,transparent 34%,rgba(4,11,17,.9))}
.spotlight-card:hover .spotlight-image img{transform:scale(1.03)}
.spotlight-copy{position:absolute;left:1.15rem;right:1.15rem;bottom:1.15rem}
.spotlight-copy span{font-size:.65rem;text-transform:uppercase;letter-spacing:.11em;color:#ffd29e;font-weight:900}
.spotlight-copy h3{font-family:Georgia,"Times New Roman",serif;font-size:1.8rem;margin:.18rem 0 .25rem}
.spotlight-copy p{font-size:.78rem;line-height:1.4;color:rgba(255,255,255,.72);margin:0}
.spotlight-card>b{position:absolute;right:1rem;top:1rem;width:2.15rem;height:2.15rem;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.15);backdrop-filter:blur(12px)}

/* Map experience */
.home-map-stage{background:#070d14;color:#fff;scroll-margin-top:0}
.home-map-explorer{background:#070d14}
.home-map-console{position:relative;z-index:30;padding:2rem clamp(1rem,4vw,3.8rem) .8rem;background:linear-gradient(180deg,#080f17,#0b131e);border-top:1px solid rgba(255,255,255,.08)}
.map-console-line{max-width:1380px;margin:0 auto;display:grid;grid-template-columns:auto minmax(360px,650px);gap:1.5rem;align-items:end}
.map-console-title span{display:block;font-size:.65rem;text-transform:uppercase;letter-spacing:.16em;color:#d9985c;font-weight:900}
.map-console-title strong{display:block;font-family:Georgia,"Times New Roman",serif;font-size:clamp(1.85rem,3vw,3rem);line-height:1;margin-top:.2rem}
.map-search{display:grid;grid-template-columns:1fr auto;gap:.55rem;align-items:center}
.map-search input{min-width:0;height:50px;border-radius:999px;border:1px solid rgba(255,255,255,.18);background:#111b27;color:#fff;padding:0 1rem;outline:0}
.map-search input::placeholder{color:#8493a2}
.map-locate-button{height:50px;border-radius:999px;border:1px solid rgba(255,255,255,.2);background:#182332;color:#fff;padding:0 1rem;font-weight:850;cursor:pointer}
.map-search em{grid-column:1/-1;font-size:.7rem;color:#7f8e9e;font-style:normal;padding-left:.5rem}
.map-status{grid-column:1/-1;font-size:.69rem;color:#d5b079;padding-left:.5rem;line-height:1.35}
.map-locate-button:disabled{opacity:.65;cursor:wait}
.home-map-filter-rail{max-width:1380px;margin:.65rem auto 0;display:flex;gap:.65rem;overflow-x:auto;scroll-snap-type:x mandatory;padding:1rem .25rem 1.05rem;scrollbar-width:none}
.home-map-filter-rail::-webkit-scrollbar{display:none}
.map-filter-card{appearance:none;flex:0 0 132px;min-height:91px;border:1px solid rgba(255,255,255,.12);border-radius:1rem;background:#111a25;color:#fff;padding:.8rem;display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-start;text-align:left;cursor:pointer;scroll-snap-align:start;transition:.18s}
.map-filter-card>span{font-size:1.28rem;color:#e9ad68;margin-bottom:auto}
.map-filter-card strong{font-size:.8rem}
.map-filter-card small{font-size:.64rem;color:#7f8e9e;margin-top:.12rem}
.map-filter-card.active{border-color:#e6a864;background:linear-gradient(155deg,#273447,#151e2a);box-shadow:0 0 0 1px rgba(230,168,100,.13),0 12px 28px rgba(0,0,0,.22),inset 0 0 22px rgba(230,168,100,.06)}
@media(hover:hover) and (pointer:fine){.map-filter-card:hover{border-color:#e6a864;background:linear-gradient(155deg,#273447,#151e2a)}}
.home-map-layout{max-width:1380px;margin:0 auto;padding:0 clamp(1rem,4vw,3.8rem) 1rem}
.map-canvas{height:min(69vh,760px);min-height:560px;border-radius:1.2rem;overflow:hidden;border:1px solid rgba(255,255,255,.13);background:#0b1621;box-shadow:0 26px 80px rgba(0,0,0,.3);position:relative}
.map-canvas.map-loading:before{content:'';position:absolute;inset:0;z-index:1000;background:radial-gradient(circle at 50% 44%,rgba(38,69,96,.55),rgba(7,17,29,.97) 58%);pointer-events:none}
.map-canvas.map-loading:after{content:'';position:absolute;z-index:1001;left:50%;top:50%;width:74px;height:74px;transform:translate(-50%,-50%);background:url('../brand/travelinberlin-logo.png') center/contain no-repeat;filter:drop-shadow(0 12px 30px rgba(0,0,0,.42));animation:tibMapPulse 1.15s ease-in-out infinite;pointer-events:none}
@keyframes tibMapPulse{0%,100%{opacity:.68;transform:translate(-50%,-50%) scale(.94)}50%{opacity:1;transform:translate(-50%,-50%) scale(1.02)}}
@media(prefers-reduced-motion:reduce){.map-canvas.map-loading:after{animation:none}}
.city-cluster{background:transparent!important;border:0!important}
.city-cluster span{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:#0b1724;color:#fff;border:3px solid rgba(255,255,255,.9);box-shadow:0 9px 23px rgba(0,0,0,.28);font-size:.69rem;font-weight:950}
.map-place-label{background:#0b1119!important;color:#fff!important;border:1px solid rgba(255,255,255,.28)!important;border-radius:999px!important;padding:.27rem .52rem!important;box-shadow:0 8px 24px rgba(0,0,0,.24)!important;font-size:.69rem!important;font-weight:850!important}
.map-place-label:before{border-top-color:#0b1119!important}
.leaflet-control-attribution{background:rgba(7,13,20,.76)!important;color:#d6dde4!important;border-radius:.45rem 0 0 0!important;padding:.18rem .35rem!important;font-size:10px!important;backdrop-filter:blur(8px)}
.leaflet-control-attribution a{color:#f0c08a!important}
.home-map-results{display:flex;overflow-x:auto;gap:.72rem;padding:1rem 0 .15rem;scroll-snap-type:x mandatory;scrollbar-width:none}
.home-map-results::-webkit-scrollbar{display:none}
.map-result{appearance:none;flex:0 0 250px;min-height:218px;border:1px solid rgba(255,255,255,.12);border-radius:1rem;background:#111a25;color:#fff;text-align:left;padding:0;overflow:hidden;cursor:pointer;scroll-snap-align:start;box-shadow:0 10px 28px rgba(0,0,0,.15)}
.result-media{height:120px;padding:.75rem;display:flex;align-items:flex-end;justify-content:flex-start;background-size:cover;background-position:center}
.map-result.no-photo{min-height:168px;background:linear-gradient(145deg,#111a25,#0b121a)}
.map-result.no-photo .result-media{height:76px}
.map-result.no-photo .category-media .media-icon{font-size:1.65rem}
.result-media>span:not(.media-icon){font-size:.62rem;text-transform:uppercase;letter-spacing:.1em;font-weight:900;background:rgba(7,13,20,.66);padding:.34rem .48rem;border-radius:999px;backdrop-filter:blur(8px)}
.category-media{position:relative;background:radial-gradient(circle at 76% 18%,rgba(255,255,255,.16),transparent 28%),radial-gradient(circle at 20% 90%,rgba(240,164,93,.18),transparent 38%),linear-gradient(145deg,#203248,#0c131c)}
.category-media:after{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:22px 22px}
.category-media .media-icon{position:absolute;right:.85rem;top:.7rem;z-index:1;font-size:2.1rem;color:#e9ad68}
.category-media>span:last-child{position:relative;z-index:1}
.c-park{background:linear-gradient(145deg,#193c2b,#0b1611)}.c-food{background:linear-gradient(145deg,#4a2517,#170d09)}.c-cafe{background:linear-gradient(145deg,#493424,#17100b)}.c-nightlife{background:linear-gradient(145deg,#3a2454,#120b1d)}.c-hotel{background:linear-gradient(145deg,#173f40,#0a1616)}.c-museum{background:linear-gradient(145deg,#203a68,#0b1424)}.c-shopping{background:linear-gradient(145deg,#50401f,#1a1409)}.c-station,.c-transport,.c-tram,.c-bus{background:linear-gradient(145deg,#34465c,#111823)}.c-viewpoint{background:linear-gradient(145deg,#5b3d1b,#1b1108)}
.result-copy{padding:.78rem .82rem .9rem}
.result-cat{display:block;font-size:.61rem;text-transform:uppercase;letter-spacing:.1em;color:#d6a263;font-weight:900;margin-bottom:.24rem}
.map-result strong{display:block;font-size:.89rem;line-height:1.2}
.map-result small{display:block;color:#8796a6;font-size:.67rem;line-height:1.35;margin-top:.28rem;white-space:normal}
.home-map-foot{max-width:1380px;margin:0 auto;padding:.25rem clamp(1rem,4vw,3.8rem) 2.5rem;color:#748394;font-size:.7rem}.home-map-foot a{color:#8d9aaa;text-decoration:none}.home-map-foot a:hover{text-decoration:underline}
.map-empty{padding:1.2rem;color:#9aa6b2}
.leaflet-popup-content-wrapper{border-radius:1rem!important;overflow:hidden;padding:0!important;background:#0d1722!important;color:#fff!important;border:1px solid rgba(255,255,255,.12)!important;box-shadow:0 18px 55px rgba(0,0,0,.36)!important}
.leaflet-popup-tip{background:#0d1722!important;box-shadow:none!important}
.leaflet-popup-content{margin:0!important;width:280px!important}
.leaflet-popup-close-button{color:rgba(255,255,255,.72)!important;font-size:20px!important;right:7px!important;top:6px!important}
.popup-photo{height:150px;background-size:cover;background-position:center}
.popup-body{padding:.92rem 1rem 1rem;background:linear-gradient(180deg,#111c28,#0d1722)}
.map-popup .result-cat{color:#f2b16e}
.map-popup h3{font-family:Georgia,"Times New Roman",serif;font-size:1.35rem;margin:.15rem 0 .45rem;color:#fff}
.popup-address,.map-popup p{font-size:.76rem;color:#aab6c2;line-height:1.45}

/* Static */
.static-page{max-width:900px;margin:0 auto;padding:7rem 1.2rem 8rem}
.static-page h1{font-family:Georgia,"Times New Roman",serif;font-size:clamp(3rem,6vw,5.8rem);line-height:.95;margin:.2rem 0 1.5rem}
.static-page p,.static-page li{line-height:1.7;color:#55615d}
.static-page .lead{font-size:1.18rem;color:#394541}

/* Footer */
.footer{background:#07111d;color:#fff;padding:2.4rem clamp(1rem,4vw,3.8rem);display:grid;grid-template-columns:1fr auto auto;gap:2rem;align-items:start}
.footer p{color:#8291a0;margin:.3rem 0 0}
.footer-links{display:flex;gap:1rem;flex-wrap:wrap}
.footer-links a{color:#c8d0d8;text-decoration:none;font-size:.78rem}
.footer-meta{font-size:.72rem;color:#748293}

/* Responsive */
@media(max-width:980px){
  .spotlight-card{flex-basis:48%}
  .map-console-line{grid-template-columns:1fr}
  .footer{grid-template-columns:1fr}
}
@media(max-width:700px){
  .site-header{height:68px;padding-left:1rem;padding-right:1rem}
  .brand{font-size:.9rem}.brand-gate{width:2rem;height:2rem}.brand-gate svg{width:1.9rem;height:1.9rem}
  .city-hero,.city-hero-content{min-height:735px}
  .city-hero-content{padding:12.75rem .95rem 1rem}
  .city-hero-bg{background-position:58% 28%}
  .city-hero h1{font-size:3.2rem;max-width:480px}
  .category-dock{margin-top:.9rem}.category-dock button{flex-basis:120px;min-height:96px}
  .home-shell{padding-left:.95rem;padding-right:.95rem}
  .spotlight-card{flex-basis:82vw;min-width:0;min-height:315px}
  .home-map-console{padding-left:.85rem;padding-right:.85rem}
  .home-map-layout{padding-left:.65rem;padding-right:.65rem}
  .map-canvas{height:62vh;min-height:475px;border-radius:.9rem}
  .map-search{grid-template-columns:1fr}.map-locate-button{width:100%}
  .map-filter-card{flex-basis:114px;min-height:84px}
  .map-result{flex-basis:220px}
}

.map-place-label{pointer-events:auto!important;cursor:pointer!important}

/* Events */
.home-events-section{background:linear-gradient(180deg,#0b141f,#07111d);color:#fff;border-top:1px solid rgba(255,255,255,.08)}
.event-title-row{display:flex;align-items:end;justify-content:space-between;gap:1.5rem}
.event-filter-rail{display:flex;gap:.55rem;overflow-x:auto;padding:.35rem .05rem .85rem;scrollbar-width:none;scroll-snap-type:x mandatory}
.event-filter-rail::-webkit-scrollbar,.event-rail::-webkit-scrollbar{display:none}
.event-filter-rail button{flex:0 0 auto;border:1px solid rgba(255,255,255,.14);background:#121d29;color:#aeb9c5;padding:.62rem .82rem;border-radius:999px;cursor:pointer;font-weight:800;font-size:.72rem;scroll-snap-align:start}
.event-filter-rail button.active{color:#fff;border-color:#e4aa67;background:linear-gradient(135deg,#4e2d18,#1b1e26);box-shadow:0 0 24px rgba(228,170,103,.12)}
.event-rail{display:flex;gap:.85rem;overflow-x:auto;scroll-snap-type:x mandatory;padding:.4rem 0 .8rem;scrollbar-width:none}
.event-card{position:relative;flex:0 0 min(330px,76vw);min-height:390px;border-radius:1.15rem;overflow:hidden;border:1px solid rgba(255,255,255,.12);background:#111b27;color:#fff;text-decoration:none;scroll-snap-align:start;box-shadow:0 18px 45px rgba(0,0,0,.18);display:flex;flex-direction:column}
.event-image{height:180px;position:relative;overflow:hidden;flex:0 0 auto;background:#14202e}
.event-photo img{width:100%;height:100%;object-fit:cover;display:block}
.event-vignette{position:absolute;inset:0;background:linear-gradient(180deg,transparent 25%,rgba(5,11,18,.88))}
.event-generated{isolation:isolate;display:grid;place-items:center;background:radial-gradient(circle at 72% 20%,rgba(255,255,255,.16),transparent 25%),linear-gradient(145deg,#243d5b,#101725)}
.event-generated:before{content:'';position:absolute;inset:auto -12% -18% 26%;height:120%;border:1px solid rgba(255,255,255,.12);border-radius:50%;transform:rotate(-12deg);z-index:-1}
.event-generated:after{content:'';position:absolute;left:-8%;right:40%;bottom:18%;height:1px;background:linear-gradient(90deg,transparent,rgba(255,196,120,.65),transparent)}
.event-symbol{font-family:Georgia,"Times New Roman",serif;font-size:4.25rem;color:rgba(255,235,206,.9);text-shadow:0 8px 30px rgba(0,0,0,.35)}
.event-art-line{position:absolute;width:62%;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.35),transparent);transform:rotate(-18deg)}
.event-art-orb{position:absolute;width:34px;height:34px;border-radius:50%;right:16%;top:22%;background:rgba(240,164,93,.22);box-shadow:0 0 44px rgba(240,164,93,.28)}
.event-christmas{background:radial-gradient(circle at 72% 22%,rgba(255,223,150,.22),transparent 26%),linear-gradient(145deg,#173a34,#10151d)}
.event-film{background:linear-gradient(145deg,#3c2848,#152436)}
.event-culture,.event-art{background:linear-gradient(145deg,#29385b,#131a29)}
.event-music{background:linear-gradient(145deg,#412b5a,#15121f)}
.event-food,.event-fair{background:linear-gradient(145deg,#5b3723,#1a1110)}
.event-fashion{background:linear-gradient(145deg,#472d42,#181118)}
.event-copy{padding:1rem 1rem 1.1rem;display:flex;flex-direction:column;flex:1}
.event-copy>span{font-size:.66rem;text-transform:uppercase;letter-spacing:.09em;color:#e4aa67;font-weight:900}
.event-copy h3{font-family:Georgia,"Times New Roman",serif;font-size:1.45rem;line-height:1.05;margin:.35rem 0 .55rem}
.event-copy p{color:#9ca9b6;font-size:.78rem;line-height:1.45;margin:0}
.event-copy b{margin-top:auto;padding-top:1rem;font-size:.72rem;color:#fff}
.event-card[hidden]{display:none!important}

@media(max-width:700px){
  .event-title-row{display:block}
  .event-card{flex-basis:82vw}
}

.result-media.has-photo,.popup-photo{background-color:#14202c}
.map-result .has-photo{transition:background-image .2s ease}

/* v4.7 transparent brand + compact map fallbacks */
.brand-mark{background:transparent;border:0;box-shadow:none;overflow:visible}
.brand-mark img{object-fit:contain;filter:drop-shadow(0 7px 18px rgba(0,0,0,.28))}
.compact-result{min-height:142px!important;padding:1rem!important;display:flex!important;align-items:flex-start!important;gap:.85rem!important;background:linear-gradient(145deg,#111b27,#0b121a)!important}
.compact-result .result-copy{padding:0!important;align-self:stretch;display:flex;flex-direction:column;justify-content:flex-end;min-width:0}
.compact-result-icon{flex:0 0 46px;width:46px;height:46px;border-radius:.9rem;display:grid;place-items:center;background:linear-gradient(145deg,#1e2c3b,#121a24);border:1px solid rgba(255,255,255,.11);color:#efb271;font-size:1.25rem;box-shadow:inset 0 1px rgba(255,255,255,.04)}
.map-result.no-photo .result-media{display:none!important}


/* v4.8 map cards + event-to-map UX */
.home-map-results{align-items:flex-start}
.compact-result{flex:0 0 238px!important;height:108px!important;min-height:108px!important;padding:.82rem!important;align-items:center!important}
.compact-result .result-copy{justify-content:center!important}
.compact-result-icon{width:42px!important;height:42px!important;flex-basis:42px!important}
.map-empty{padding:.9rem 0 1.15rem;color:#93a1af;font-size:.78rem}
.home-map-foot{padding-top:.4rem}
.event-card{cursor:default}
.event-facts{display:grid;gap:.42rem;margin:.25rem 0 .72rem;padding:.7rem 0;border-top:1px solid rgba(255,255,255,.08);border-bottom:1px solid rgba(255,255,255,.08)}
.event-facts div{display:grid;grid-template-columns:56px 1fr;gap:.45rem;align-items:start}
.event-facts b{font-size:.61rem;text-transform:uppercase;letter-spacing:.09em;color:#e4aa67;padding:0!important;margin:0!important}
.event-facts em{font-style:normal;font-size:.69rem;line-height:1.35;color:#c3ccd5}
.event-map-button{margin-top:auto;appearance:none;border:1px solid rgba(255,255,255,.16);background:linear-gradient(145deg,#1b2938,#111a24);color:#fff;border-radius:999px;min-height:42px;padding:0 .9rem;font-weight:850;font-size:.7rem;cursor:pointer;align-self:flex-start}
.event-map-button:hover,.event-map-button:focus-visible{border-color:#e4aa67;box-shadow:0 0 0 3px rgba(228,170,103,.12)}
.event-map-pin{background:transparent!important;border:0!important}
.event-map-pin span{display:grid;place-items:center;width:40px;height:40px;border-radius:50% 50% 50% 12%;transform:rotate(-45deg);background:#f0aa63;color:#07111d;border:3px solid #fff;box-shadow:0 10px 30px rgba(0,0,0,.35);font-size:1rem;font-weight:900}
.event-map-pin span::first-letter{transform:rotate(45deg)}
.event-map-popup strong{color:#f2b16e;font-size:.67rem;text-transform:uppercase;letter-spacing:.06em}
@media(max-width:700px){.compact-result{flex-basis:210px!important}.event-facts div{grid-template-columns:52px 1fr}}


/* v4.9 core polish: uniform results, click-anywhere events, favicon/brand closeout */
.home-map-results .map-result{flex:0 0 238px!important;height:108px!important;min-height:108px!important;padding:.82rem!important;display:flex!important;align-items:center!important;gap:.82rem!important;background:linear-gradient(145deg,#111b27,#0b121a)!important;border:1px solid rgba(255,255,255,.12)!important;border-radius:1rem!important;overflow:hidden!important}
.home-map-results .map-result .result-media{display:none!important}
.home-map-results .map-result .result-copy{padding:0!important;display:flex!important;flex-direction:column!important;justify-content:center!important;min-width:0!important}
.home-map-results .map-result .compact-result-icon{display:grid!important;width:42px!important;height:42px!important;flex:0 0 42px!important}
.home-map-results .map-result:hover,.home-map-results .map-result:focus-visible{border-color:rgba(228,170,103,.72)!important;box-shadow:0 0 0 3px rgba(228,170,103,.09),0 12px 30px rgba(0,0,0,.18)!important}
.event-card{cursor:pointer!important}
.event-card:hover,.event-card:focus-visible{border-color:rgba(228,170,103,.65);box-shadow:0 0 0 3px rgba(228,170,103,.08),0 20px 48px rgba(0,0,0,.24);outline:none}
.event-map-button{display:none!important}
.spotlight-card[data-home-focus="east-side-gallery"] .spotlight-image{background:#101a24}
.spotlight-card[data-home-focus="east-side-gallery"] .spotlight-image img{object-fit:contain!important;object-position:center!important;transform:scale(.965)!important}
.spotlight-card[data-home-focus="east-side-gallery"]:hover .spotlight-image img{transform:scale(.99)!important}
@media(max-width:700px){.home-map-results .map-result{flex-basis:210px!important}}

/* v5.1 partner-ready ticker layer */
.partner-ticker{position:relative;overflow:hidden;background:#080f17;color:#fff;border-top:1px solid rgba(255,255,255,.07);border-bottom:1px solid rgba(255,255,255,.07);min-height:48px;display:flex;align-items:center}
.partner-ticker:before,.partner-ticker:after{content:'';position:absolute;top:0;bottom:0;width:56px;z-index:2;pointer-events:none}
.partner-ticker:before{left:0;background:linear-gradient(90deg,#080f17,rgba(8,15,23,0))}
.partner-ticker:after{right:0;background:linear-gradient(270deg,#080f17,rgba(8,15,23,0))}
.partner-ticker-track{display:flex;align-items:center;width:max-content;min-width:max-content;animation:tib-partner-ticker 38s linear infinite;will-change:transform}
.partner-ticker:hover .partner-ticker-track,.partner-ticker:focus-within .partner-ticker-track{animation-play-state:paused}
.partner-ticker-item{appearance:none;display:flex;align-items:center;gap:.55rem;min-height:46px;padding:0 1.35rem;border:0;border-right:1px solid rgba(255,255,255,.08);background:transparent;color:#fff;text-decoration:none;white-space:nowrap;cursor:pointer;font-size:.72rem}
.partner-ticker-item span{font-size:.59rem;letter-spacing:.13em;text-transform:uppercase;color:#e5aa67;font-weight:950}
.partner-ticker-item strong{font-weight:700;color:#cbd3dc}
.partner-ticker-item em{font-style:normal;color:#778898;transition:transform .16s,color .16s}
.partner-ticker-item:hover strong,.partner-ticker-item:focus-visible strong{color:#fff}
.partner-ticker-item:hover em,.partner-ticker-item:focus-visible em{color:#e5aa67;transform:translateX(2px)}
.partner-ticker-item.commercial span{color:#79d8aa}
@keyframes tib-partner-ticker{from{transform:translateX(0)}to{transform:translateX(-50%)}}

.map-partner-cta{display:flex;align-items:center;gap:.55rem;margin-top:.75rem;padding:.7rem .78rem;border:1px solid rgba(229,170,103,.34);border-radius:.85rem;background:linear-gradient(145deg,rgba(88,52,26,.42),rgba(17,27,39,.86));color:#fff!important;text-decoration:none!important}
.map-partner-cta span{font-size:.56rem;letter-spacing:.12em;text-transform:uppercase;color:#e5aa67;font-weight:950}
.map-partner-cta strong{font-size:.72rem;margin-left:auto}
.map-partner-cta em{font-style:normal;color:#e5aa67}

@media(prefers-reduced-motion:reduce){
  .partner-ticker{overflow-x:auto;scrollbar-width:none}
  .partner-ticker::-webkit-scrollbar{display:none}
  .partner-ticker-track{animation:none}
}
@media(max-width:700px){
  .partner-ticker{min-height:44px}
  .partner-ticker-item{min-height:42px;padding:0 1rem;font-size:.68rem}
  .partner-ticker-item strong{max-width:250px;overflow:hidden;text-overflow:ellipsis}
}


/* v5.2 visual polish: graceful horizontal rails + hero refinement */
:root{--rail-fade:clamp(24px,3.5vw,58px);--ticker-fade:clamp(72px,8vw,148px)}
.partner-ticker:before,.partner-ticker:after{width:var(--ticker-fade)!important}
.partner-ticker-track{padding-inline:0!important;gap:0}

/* User-controlled horizontal rails fade into the page instead of being hard-clipped. */
.spotlight-row,.home-map-filter-rail,.home-map-results,.event-filter-rail,.event-rail{
  padding-left:var(--rail-fade)!important;
  padding-right:var(--rail-fade)!important;
  margin-left:calc(var(--rail-fade) * -1)!important;
  margin-right:calc(var(--rail-fade) * -1)!important;
  scroll-padding-inline:var(--rail-fade);
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 var(--rail-fade),#000 calc(100% - var(--rail-fade)),transparent 100%);
  mask-image:linear-gradient(90deg,transparent 0,#000 var(--rail-fade),#000 calc(100% - var(--rail-fade)),transparent 100%);
}
.map-search [data-map-count][hidden]{display:none!important}

@media(max-width:1100px){
  .category-dock{justify-content:flex-start}
}
@media(max-width:700px){
  :root{--rail-fade:24px;--ticker-fade:52px}
  .category-dock{justify-content:flex-start;padding-left:1.15rem;padding-right:1.15rem;-webkit-mask-image:linear-gradient(90deg,transparent,#000 22px,#000 calc(100% - 22px),transparent);mask-image:linear-gradient(90deg,transparent,#000 22px,#000 calc(100% - 22px),transparent)}
  .city-hero-bg{background-position:53% 45%}
}


/* v5.3: stable map-results loading state; prevents the rail from disappearing during city-data hydration. */
.map-results-loading{min-height:124px}
.map-result-skeleton{pointer-events:none;opacity:.72}
.map-result-skeleton>span{width:42px;height:42px;flex:0 0 42px;border-radius:.9rem;background:linear-gradient(90deg,#172231 25%,#223044 50%,#172231 75%);background-size:220% 100%;animation:tibSkeleton 1.25s ease-in-out infinite}
.map-result-skeleton>div{flex:1;display:grid;gap:.45rem}
.map-result-skeleton b,.map-result-skeleton i{display:block;height:.62rem;border-radius:999px;background:linear-gradient(90deg,#172231 25%,#223044 50%,#172231 75%);background-size:220% 100%;animation:tibSkeleton 1.25s ease-in-out infinite}
.map-result-skeleton b{width:62%}.map-result-skeleton i{width:88%}.map-result-skeleton i:last-child{width:48%}
@keyframes tibSkeleton{0%{background-position:100% 0}100%{background-position:-120% 0}}
@media(prefers-reduced-motion:reduce){.map-result-skeleton>span,.map-result-skeleton b,.map-result-skeleton i{animation:none}}

/* Multilingual / RTL production support */
html[dir="rtl"] body{text-align:right}
html[dir="rtl"] .site-header{direction:rtl}
html[dir="rtl"] .brand{direction:ltr}
html[dir="rtl"] .language-control{margin-left:0;margin-right:auto}
html[dir="rtl"] .language-menu{right:auto;left:0;text-align:right}
html[dir="rtl"] .hero-info-strip,html[dir="rtl"] .event-facts,html[dir="rtl"] .footer,html[dir="rtl"] .map-console-line{direction:rtl}
html[dir="rtl"] .leaflet-container{direction:ltr;text-align:left}
html[dir="rtl"] .map-search input{text-align:right}
html[dir="rtl"] .spotlight-copy,html[dir="rtl"] .event-copy,html[dir="rtl"] .map-result{text-align:right}
@media(max-width:640px){.language-menu{grid-template-columns:1fr;width:min(230px,calc(100vw - 1.5rem));max-height:70vh;overflow:auto}}

/* v5.6.2 QA polish */
body:not([data-route="home"]):not([data-route^="place-"]){background:#07111d;color:#fff}
body:not([data-route="home"]):not([data-route^="place-"]) .site-header{background:rgba(7,17,29,.96);border-bottom:1px solid rgba(255,255,255,.08)}
body:not([data-route="home"]):not([data-route^="place-"]) .brand{color:#fff}
body:not([data-route="home"]):not([data-route^="place-"]) .static-page p,body:not([data-route="home"]):not([data-route^="place-"]) .static-page li{color:#aeb9c5}
body:not([data-route="home"]):not([data-route^="place-"]) .static-page .lead{color:#d5dde5}
.info-modal[hidden]{display:none!important}.info-modal{position:fixed;inset:0;z-index:2000;display:grid;place-items:center;padding:clamp(1rem,4vw,3rem);background:rgba(2,7,13,.74);backdrop-filter:blur(18px)}
.info-modal-card{position:relative;width:min(860px,100%);max-height:min(82vh,860px);overflow:auto;border:1px solid rgba(255,255,255,.14);border-radius:1.35rem;background:linear-gradient(155deg,#101c29,#09121c);box-shadow:0 30px 100px rgba(0,0,0,.48);padding:clamp(1.25rem,4vw,3rem);color:#fff}
.info-modal-close{position:sticky;float:right;top:0;width:42px;height:42px;border-radius:50%;border:1px solid rgba(255,255,255,.16);background:#162332;color:#fff;font-size:1.35rem;cursor:pointer;z-index:2}
.info-modal-panel[hidden]{display:none!important}.info-modal-panel .eyebrow{color:#e4aa67;font-size:.68rem;font-weight:900;letter-spacing:.16em;text-transform:uppercase}.info-modal-panel h2{font-family:Georgia,"Times New Roman",serif;font-size:clamp(2.2rem,5vw,4.6rem);line-height:.96;margin:.45rem 0 1.25rem}.info-modal-panel .lead{font-size:1.08rem;color:#d7dfe7;line-height:1.6}.info-modal-panel p,.info-modal-panel li{color:#aeb9c5;line-height:1.7}.info-modal-panel ul{padding-inline-start:1.2rem}
html.info-modal-open{overflow:hidden}
.leaflet-control-attribution{max-width:min(70vw,390px);white-space:normal;text-align:right}


/* v5.6.3 browser QA repair */
.category-dock button,.map-filter-card,.event-filter-rail button,.map-result,.event-card{-webkit-tap-highlight-color:transparent}
.category-dock button:focus:not(:focus-visible),.map-filter-card:focus:not(:focus-visible),.event-filter-rail button:focus:not(:focus-visible),.map-result:focus:not(:focus-visible),.event-card:focus:not(:focus-visible){outline:0!important}
.category-dock button:focus-visible,.map-filter-card:focus-visible,.event-filter-rail button:focus-visible,.map-result:focus-visible,.event-card:focus-visible{outline:2px solid rgba(231,172,105,.86)!important;outline-offset:2px!important}
.info-modal-panel h2{font-size:clamp(1.75rem,3.2vw,2.85rem)!important;line-height:1.04!important;max-width:20ch}
.info-modal-panel .lead{font-size:1rem!important;max-width:68ch}
.spotlight-card[data-home-focus="east-side-gallery"] .spotlight-image img{object-fit:cover!important;object-position:center 48%!important;transform:scale(.94)!important}
.spotlight-card[data-home-focus="east-side-gallery"]:hover .spotlight-image img{transform:scale(.96)!important}
.event-filter-rail button{white-space:nowrap}
.footer-meta{white-space:nowrap}
