@font-face{font-family:"Montserrat";font-style:normal;font-weight:500 900;font-display:swap;src:url("./montserrat.woff2") format("woff2")}
@font-face{font-family:"Hanken Grotesk";font-style:normal;font-weight:100 900;font-display:swap;src:url("./hanken.woff2") format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:400;font-display:swap;src:url("./plex-mono.woff2") format("woff2")}
:root{--ink:#242c5e;--muted:#6d7390;--line:#dfe3ef;--green:#242c5e;--ochre:#6176b6;--blue:#47659c;--paper:#f6f7fb}*{box-sizing:border-box}body{margin:0;color:var(--ink);font-family:Arial,Helvetica,sans-serif;background:var(--paper)}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,[tabindex]:focus-visible{outline:3px solid #8e9bce;outline-offset:3px}button{color:inherit}svg.icon{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle}button svg{pointer-events:none}.topbar{height:88px;display:flex;align-items:center;justify-content:space-between;background:#fff;padding:0 38px;border-bottom:1px solid var(--line);position:relative;z-index:3}.brand{text-decoration:none;display:flex;align-items:center;gap:12px;color:var(--ink);font-size:17px;font-weight:800;letter-spacing:1.6px}.brand small{display:block;font-size:8px;letter-spacing:2px;margin-top:5px}.brandmark{font:italic 58px Georgia;line-height:1;color:#242c5e;position:relative}.brandmark span{font:25px Georgia;color:#ba8b46;position:absolute;right:-6px;bottom:6px}.event{font-size:13px;color:#c2cbe6;letter-spacing:.2px}.event span{padding:0 12px;color:#8e9bce}.map-badge{font-size:10px;letter-spacing:1.4px;font-weight:700;background:#39416e;padding:10px 13px;border-radius:5px;display:flex;gap:8px;align-items:center}.map-badge i{width:6px;height:6px;background:#c2cbe6;border-radius:50%}.app{display:grid;grid-template-columns:345px 1fr;height:calc(100dvh - 88px);min-height:600px}.sidebar{background:#fff;border-right:1px solid var(--line);padding:34px 26px 0;display:flex;flex-direction:column;overflow:hidden;z-index:2}.eyebrow{font-size:10px;font-weight:700;letter-spacing:1.6px;color:#727ea9}.intro h1{font:46px/1.04 Georgia,serif;font-weight:400;letter-spacing:-1.8px;margin:17px 0 15px}.intro h1 span{color:#8e9bce}.intro p{font-size:13px;line-height:1.65;color:var(--muted);margin:0 0 26px}.search{border:1px solid var(--line);border-radius:9px;display:flex;align-items:center;padding:12px;gap:9px;background:#f6f7fb}.search input{min-width:0;width:100%;border:0;background:none;color:var(--ink);font-size:12px;outline:none}.search kbd{color:#8e9bce;font-size:14px}.search>span{color:#8e9bce}.filters{display:flex;flex-wrap:wrap;gap:6px;margin:15px 0 23px}.filters button{border:1px solid var(--line);background:white;border-radius:20px;font-size:11px;padding:8px 11px;white-space:nowrap}.filters button.active{background:var(--ink);color:#fff;border-color:var(--ink)}.list-heading{display:flex;align-items:center;justify-content:space-between;margin:0 0 10px}.list-heading h2{font-size:11px;letter-spacing:1px;text-transform:uppercase;margin:0}.list-heading>span{font-size:10px;color:var(--muted);background:#eef1f8;padding:4px 7px;border-radius:4px}.places{overflow:auto;flex:1;padding-bottom:15px;scrollbar-width:thin;scrollbar-color:#c2cbe6 transparent}.place{width:100%;display:flex;align-items:center;gap:11px;padding:12px 8px;border:0;border-bottom:1px solid #edf0f8;background:white;text-align:left;border-radius:6px}.place:hover,.place.selected{background:#eef1f8}.place .place-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:9px;background:var(--tint);color:var(--color);font-size:12px;font-weight:700;flex-shrink:0}.place strong{font-size:12px;display:block;margin-bottom:4px;font-weight:600}.place small{font-size:10px;color:var(--muted);display:block}.place .arrow{margin-left:auto;color:#8e9bce;font-size:18px}.sidebar-foot{display:flex;gap:9px;padding:18px 0;border-top:1px solid var(--line);font-size:11px;color:#59648c}.sidebar-foot small{display:block;font-size:9px;color:#7d86a4;margin-top:5px}.map-area{position:relative;min-width:0;overflow:hidden;background-color:#f6f7fb;background-image:radial-gradient(#c2cbe6 0.7px,transparent .7px);background-size:18px 18px}.map-toolbar{position:absolute;top:24px;left:26px;right:26px;display:flex;justify-content:space-between;gap:12px;z-index:2;pointer-events:none}.map-toolbar>*{pointer-events:auto}.floor-tabs{display:flex;background:white;padding:5px;border:1px solid #dfe3ef;border-radius:12px;box-shadow:0 4px 15px #23372b05;gap:3px}.floor-tabs button{border:0;background:transparent;border-radius:8px;padding:10px 14px;font-size:12px;display:flex;gap:9px;align-items:center}.floor-tabs button b{font-size:11px;color:#7b87ad}.floor-tabs button.active{background:#242c5e;color:white}.floor-tabs button.active b{color:#c2cbe6}.source-toggle{border:1px solid #dfe3ef;background:#fff;border-radius:10px;padding:0 14px;display:flex;align-items:center;gap:9px;font-size:11px}.source-toggle[aria-pressed=true]{background:#e5e9f5}.map-caption{position:absolute;top:104px;left:30px;pointer-events:none;z-index:1}.map-caption h2{font:23px Georgia,serif;margin:8px 0;color:#242c5e}#viewport{position:absolute;inset:158px 16px 108px;overflow:hidden;touch-action:none;cursor:grab;outline-offset:-3px}#viewport.dragging{cursor:grabbing}#scene{position:absolute;width:var(--map-width,1600px);height:var(--map-height,1100px);transform-origin:0 0}#drawing,#markers{position:absolute;inset:0}#drawing>svg,#drawing>img{width:var(--map-width,1600px);height:var(--map-height,1100px);object-fit:contain;object-position:top left;user-select:none;pointer-events:none}#drawing>img{mix-blend-mode:multiply;opacity:.72}#drawing svg{filter:none}.map-marker{position:absolute;transform:translate(-50%,-50%);transform-origin:center;min-width:30px;height:30px;border:2px solid #fff;border-radius:9px;background:var(--color);color:white;display:grid;place-items:center;box-shadow:0 2px 5px #242c5e26;font-size:10px;font-weight:700;z-index:1;padding:0 6px;transition:background .15s,box-shadow .15s}.map-marker .icon{width:16px;height:16px}.map-marker:hover,.map-marker.selected{box-shadow:0 0 0 5px var(--tint),0 2px 8px #242c5e40;z-index:3}.map-marker.selected{outline:2px solid var(--color);outline-offset:4px}.map-marker.dimmed{opacity:.12;pointer-events:none}.map-key{position:absolute;bottom:61px;left:30px;display:flex;gap:18px;z-index:1;font-size:10px;color:#687497}.map-key span{display:flex;align-items:center;gap:6px}.map-key i{width:7px;height:7px;border-radius:50%}.sponsor-dot{background:var(--green)}.food-dot{background:var(--ochre)}.services-dot{background:var(--blue)}.room-dot{background:#8991ae}.zoom{position:absolute;right:25px;bottom:102px;display:flex;flex-direction:column;align-items:center;background:white;box-shadow:0 3px 15px #263e3012;border:1px solid var(--line);border-radius:12px;padding:5px;z-index:2}.zoom button{height:35px;width:35px;border:0;background:transparent;border-radius:7px;font-size:23px}.zoom button:hover{background:#eef1f8}.zoom output{font-size:9px;color:var(--muted);padding:3px 0}.zoom>span{height:1px;width:22px;background:var(--line);margin:4px 0}.map-hint{position:absolute;bottom:28px;left:30px;color:#7883a3;font-size:10px;display:flex;align-items:center;gap:7px}.map-hint .icon{width:14px;height:14px}.map-note{position:absolute;bottom:11px;right:24px;font-size:9px;color:#7883a3}.detail{position:absolute;right:82px;bottom:96px;width:305px;padding:25px;background:#fff;border:1px solid #dfe3ef;border-radius:16px;box-shadow:0 12px 40px #233c3020;z-index:4;animation:appear .18s ease-out}.detail[hidden]{display:none}.detail .close{position:absolute;right:10px;top:10px;border:0;border-radius:50%;background:#eef1f8;width:27px;height:27px;font-size:19px}.detail-badge{display:inline-block;color:var(--color);background:var(--tint);padding:6px 9px;border-radius:5px;font-size:10px;font-weight:bold;letter-spacing:.4px}.detail h2{font:26px Georgia;margin:16px 0 9px}.detail p{font-size:12px;line-height:1.6;color:#697495}.detail .location{color:var(--ink);font-size:11px;margin:15px 0;display:flex;gap:7px;align-items:center}.detail .assignment{background:#eef1f8;border-left:2px solid #8e9bce;padding:10px 12px;font-size:10px}.primary{width:100%;background:#242c5e;color:white;border:0;border-radius:8px;padding:12px 10px;font-size:11px;display:flex;align-items:center;justify-content:center;gap:8px}.source-link{border:0;background:none;color:#536494;text-decoration:underline;font-size:10px;padding:13px 0 0}.empty{color:var(--muted);font-size:12px;line-height:1.6;padding:20px 4px}dialog{border:1px solid var(--line);border-radius:16px;padding:28px;max-width:1000px;width:90vw;color:var(--ink);max-height:90dvh}dialog::backdrop{background:#161b3db3;backdrop-filter:blur(4px)}dialog img{width:100%;display:block}dialog p{font-size:13px;color:var(--muted);line-height:1.5}.dialog-head{display:flex;justify-content:space-between;gap:15px;align-items:center}.dialog-head h2{font:25px Georgia;margin:8px 0}.dialog-head button{border:0;background:#eef1f8;border-radius:50%;font-size:25px;width:38px;height:38px;flex-shrink:0}@keyframes appear{from{opacity:0;translate:0 8px}to{opacity:1;translate:0 0}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}@media(min-width:1600px){.app{grid-template-columns:385px 1fr}.sidebar{padding:40px 32px 0}.intro h1{font-size:53px}}@media(max-width:1000px){.app{grid-template-columns:285px 1fr}.sidebar{padding:26px 18px 0}.intro h1{font-size:40px}.map-toolbar{left:16px;right:16px}.source-toggle span:last-child{display:none}.floor-tabs button{padding:9px;font-size:11px}.event{display:none}.map-key{gap:10px;left:20px}.detail{right:65px;width:265px}.map-note{font-size:8px}}@media(max-width:700px){.topbar{height:66px;padding:0 18px}.brand{font-size:13px;gap:10px;letter-spacing:1px}.brandmark{font-size:45px}.brand small{font-size:6px}.map-badge{font-size:8px;letter-spacing:.6px;padding:8px}.app{display:flex;flex-direction:column;height:auto;min-height:calc(100dvh - 66px)}.sidebar{display:contents}.intro{padding:24px 20px 14px;background:white}.intro h1{font-size:32px;margin:10px 0 7px;line-height:1.1}.intro h1 br{display:none}.intro p{font-size:11px;margin:0}.intro p br{display:none}.search{margin:0 20px;background:white;padding:12px}.filters{margin:12px 20px 16px;gap:7px}.filters button{font-size:11px;padding:9px 12px}.list-heading{order:5;margin:22px 20px 5px}.places{order:6;max-height:290px;padding:0 15px 15px;background:#fff;flex:none}.sidebar-foot{order:7;padding:18px 20px;background:#fff;margin-top:10px}.map-area{order:4;height:510px;min-height:510px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.map-toolbar{top:16px;left:14px;right:14px}.floor-tabs button{padding:9px 11px}.source-toggle{padding:0 12px}.map-caption{top:85px;left:20px}.map-caption h2{font-size:19px}.map-caption .eyebrow{font-size:9px}#viewport{inset:133px 5px 92px}.map-key{bottom:55px;left:17px;font-size:9px;gap:12px}.map-hint{left:18px;bottom:29px;font-size:9px}.zoom{right:12px;bottom:92px}.zoom button{height:32px;width:30px}.map-note{bottom:10px;left:18px;right:auto}.detail{left:14px;right:14px;bottom:17px;width:auto;padding:19px 21px;max-height:370px;overflow:auto}.detail h2{font-size:24px;margin:12px 0 7px}.detail p{font-size:11px;margin:8px 0}.detail .location{margin:10px 0}.detail .assignment{padding:8px 10px}.detail .primary{margin-top:8px}dialog{padding:20px}.dialog-head h2{font-size:20px}}

/* All Around: Montserrat, Hanken Grotesk, navy and Rome skyline. */
body{font-family:"Hanken Grotesk",Arial,sans-serif;-webkit-font-smoothing:antialiased}
.topbar{background:#242c5e;border-color:#161b3d}
.brand{letter-spacing:0;color:white}.brand-lockup{font-family:Montserrat,sans-serif;line-height:1.12}.brand-lockup small{font-size:9px;letter-spacing:3px;color:#8e9bce;font-weight:600;margin:0 0 3px}.brand-lockup strong{display:block;font-size:19px;letter-spacing:-.5px;font-weight:800}.brand-lockup em{font-style:normal;font-size:10px;color:#8e9bce;letter-spacing:1px;margin-left:5px}.map-badge{color:#dce2f6;border:1px solid #56608d;border-radius:30px;font-family:"IBM Plex Mono",monospace;font-weight:400;letter-spacing:1px}
.intro h1{font-family:Montserrat,sans-serif;font-size:36px;line-height:1.04;font-weight:800;text-transform:uppercase;letter-spacing:-1.6px;color:#242c5e}.intro h1 span{color:#8e9bce}.intro p{font-size:13px}.eyebrow{font-family:"IBM Plex Mono",monospace;font-size:9px;font-weight:400;letter-spacing:1.1px}
.map-caption h2{font-family:Montserrat,sans-serif;font-size:22px;letter-spacing:-.6px;font-weight:700}.map-area{background:#f6f7fb}.map-area::before{content:"";position:absolute;right:25px;top:48px;width:285px;height:180px;background:url('./skyline.png') center/contain no-repeat;opacity:.14;pointer-events:none}.map-caption{max-width:65%}
.floor-tabs,.source-toggle{border-radius:30px}.floor-tabs button{border-radius:25px}.search{border-radius:12px}.detail h2,.dialog-head h2{font-family:Montserrat,sans-serif;font-size:23px;font-weight:700;letter-spacing:-.6px}.primary{border-radius:30px}.map-key{font-size:11px}.room-dot{background:#8991ae}.source-link{font-size:11px}.detail-badge{font-family:"IBM Plex Mono",monospace;font-weight:400}.map-marker{font-family:"IBM Plex Mono",monospace}.sidebar-foot{font-size:12px}.sidebar-foot small{font-size:10px}.place strong{font-size:13px}.place small{font-size:11px}.intro{position:relative}
@media(min-width:1600px){.intro h1{font-size:41px}}
@media(max-width:1000px){.intro h1{font-size:30px}.map-caption h2{font-size:19px}.map-area::before{width:210px}}
@media(max-width:700px){.brand-lockup strong{font-size:14px}.brand-lockup small{font-size:7px;letter-spacing:2px}.brand-lockup em{font-size:8px}.map-badge{font-size:7px;letter-spacing:.3px;padding:7px}.intro h1{font-size:29px;letter-spacing:-1.2px;margin:8px 0}.intro h1 br{display:block}.intro::after{content:"";position:absolute;right:16px;bottom:12px;width:120px;height:95px;background:url('./skyline.png') center/contain no-repeat;opacity:.12;pointer-events:none}.intro p{font-size:12px}.map-caption{max-width:78%}.map-caption h2{font-size:17px}.map-area::before{width:150px;top:54px;right:12px;height:110px;opacity:.1}.map-key{font-size:10px}.detail h2{font-size:22px}.filters button{font-size:12px}}

@media(max-width:700px){.zoom{flex-direction:row;bottom:82px;right:14px;padding:3px;height:40px}.zoom output{width:36px;text-align:center}.zoom>span{height:21px;width:1px;margin:0 3px}.zoom button{height:32px;width:30px}.map-marker{min-width:27px;height:27px;font-size:9px}.map-marker .icon{width:14px;height:14px}}
/* Sponsor identity and operational access status. */
.editor-link{font-size:12px;display:flex;justify-content:space-between;padding:13px 0;color:#536494;text-decoration:none;border-top:1px solid #dfe3ef}.editor-link:hover{text-decoration:underline}.sponsor-logo-box{display:flex;align-items:center;justify-content:center;background:white;border:1px solid #e2e7f2;border-radius:10px;padding:16px;height:112px;margin:16px 0 0}.sponsor-logo{max-width:100%;max-height:100%;object-fit:contain}.sponsor-logo[hidden]{display:none}.logo-missing{text-align:center;font-size:12px;color:#7883a3;line-height:1.6}.logo-missing small{font-size:10px}.sponsor-website{display:block;font-size:12px;margin:8px 0 16px;color:#536494}.detail{max-height:calc(100% - 185px);overflow:auto}.closed-text{display:block;color:#ad3547;font-size:10px;margin-top:4px}.access-warning{display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:#fbe8ec;color:#92263b;border:1px solid #efc2cb;border-radius:9px;padding:12px;font-size:12px;margin:15px 0}.access-warning span{font-size:11px;line-height:1.5;width:100%}#restricted{position:absolute;inset:0;pointer-events:none}#restricted svg{width:var(--map-width,1600px);height:var(--map-height,1100px)}@media(max-width:700px){.editor-link{order:7;background:#fff;padding:15px 20px;margin-top:10px}.sidebar-foot{order:8;margin-top:0}.detail{max-height:calc(100% - 100px)}.detail .sponsor-logo-box{height:90px;padding:12px;margin:10px 0}.detail .sponsor-website{margin:7px 0 12px}}



.logo-credit{display:block;color:#7883a3;font-size:9px;margin:0 0 12px;line-height:1.5}

/* Company profiles and desktop hover previews. */
.company-areas{display:flex;flex-wrap:wrap;gap:6px;padding:0;margin:0 0 14px;list-style:none}.company-areas li{font-size:10px;line-height:1.4;padding:5px 8px;background:#eef1f8;border:1px solid #dfe3ef;border-radius:15px;color:#536494}.profile-source{display:block;color:#727ea9;font-size:10px;margin:-6px 0 17px}.detail-mode{margin:0 20px 15px 0;display:flex;align-items:center;gap:9px}.detail-mode button{border:1px solid #c2cbe6;background:#f6f7fb;border-radius:20px;padding:6px 9px;font-size:10px;white-space:nowrap}.detail[data-mode=pinned] .detail-mode button{background:#e3e7f3;color:#242c5e}.preview-hint{font-size:10px;line-height:1.35;color:#727ea9}.detail[data-mode=preview]{border-color:#8e9bce}.detail .company-summary{margin-bottom:12px}.detail .close{position:sticky;top:0;float:right;background:#fff;z-index:1}.detail-badge{clear:both;display:block}.detail .sponsor-logo-box{height:94px}
@media(max-width:700px),(hover:none),(pointer:coarse){.detail-mode{display:none}}

/* Welcome area: distinct symbols, bilingual robot concierge card, compact mobile group. */
.eludie-icon{width:23px;height:23px;object-fit:contain;border-radius:6px;display:block;pointer-events:none}.place-icon .eludie-icon{width:30px;height:30px}.map-marker:has(.eludie-icon){padding:0;background:#0b575b}.map-key{flex-wrap:wrap;max-width:calc(100% - 55px);gap:8px 16px;align-items:center}.map-key .icon{width:15px;height:15px}.map-key .eludie-icon{width:20px;height:20px}.welcome-cluster{display:flex;gap:6px;font-family:"Hanken Grotesk",sans-serif;font-size:11px;white-space:nowrap;padding:0 9px}.eludie-english{border-top:1px solid #dfe3ef;padding-top:15px;margin:16px 0}.eludie-english h3{font-size:14px;line-height:1.5;margin:8px 0}.welcome-source{display:block}.detail:has(.eludie-english) .sponsor-logo-box{height:78px;border:0;margin-top:10px}.detail:has(.eludie-english) h2{font-size:20px;line-height:1.3}
@media(max-width:1000px){#viewport{bottom:135px}.map-key{bottom:60px}}
@media(max-width:700px){.map-area{height:555px;min-height:555px}#viewport{bottom:153px}.map-key{bottom:54px;left:17px;max-width:calc(100% - 34px);gap:7px 12px;font-size:10px}.zoom{bottom:125px}.detail{max-height:calc(100% - 100px)}.map-hint{font-size:8px}}

.eludie-photo{margin:16px 0;background:#0b2528;border-radius:12px;overflow:hidden}.eludie-photo img{display:block;width:100%;height:280px;object-fit:contain}@media(max-width:700px){.eludie-photo img{height:250px}}

/* Legend actions share category filters; named locations open their map card. */
.map-key button{display:flex;align-items:center;gap:6px;min-height:28px;padding:5px 7px;border:1px solid transparent;border-radius:8px;background:transparent;color:inherit;font:inherit;text-align:left;white-space:nowrap}.map-key button:hover{background:#e8ecf6;border-color:#c2cbe6}.map-key button.active{background:#e3e7f3;border-color:#8e9bce;color:#242c5e}.map-key{gap:4px 7px}.map-key button span{display:flex;align-items:center}@media(max-width:700px){.map-key{gap:2px 4px}.map-key button{padding:4px 5px;min-height:30px;font-size:10px}#viewport{bottom:169px}.zoom{bottom:144px}}

/* Rome skyline stays behind the map, legend and controls. */
.map-area{isolation:isolate}.map-area::before{top:auto;right:0;bottom:0;width:min(70%,720px);height:460px;background-position:right bottom;background-size:contain;z-index:-1;opacity:.14;pointer-events:none}
@media(max-width:1000px){.map-area::before{width:85%;height:380px}}
@media(max-width:700px){.map-area::before{width:100%;height:300px;top:auto;right:0;bottom:0}}

.contact-links{display:grid;gap:7px;margin:16px 0;font-style:normal}.contact-links a{display:flex;flex-direction:column;gap:3px;padding:10px 12px;border:1px solid #dfe3ef;border-radius:9px;background:#f6f7fb;color:#242c5e;text-decoration:none;overflow-wrap:anywhere;font-size:13px}.contact-links a:hover{background:#e8ecf6;border-color:#8e9bce}.contact-links small{color:#727ea9;font-size:10px}

/* Bilingual navigation and detail panels. */
.header-actions{display:flex;gap:14px;align-items:center}.language-switch{display:flex;gap:3px;border:1px solid #6976a7;border-radius:25px;padding:3px}.language-switch button{background:transparent;color:#e3e7f3;border:0;border-radius:20px;font-size:12px;min-width:38px;min-height:34px}.language-switch button.active{background:#e3e7f3;color:#242c5e}.intro h1>[data-i18n]{color:#242c5e}.event>span{padding:0 4px}.detail-toolbar{position:sticky;top:-1px;background:white;z-index:5;display:flex;align-items:center;gap:8px;padding:0 0 12px}.detail-toolbar .detail-mode{margin:0;flex:1}.detail .detail-toolbar .close{position:static;float:none;margin-left:auto;flex-shrink:0;width:34px;height:34px;background:#eef1f8}.detail .eludie-photo{margin:12px 0}.detail{overscroll-behavior:contain}.detail:has(.eludie-photo) h2{font-size:20px;line-height:1.3}
@media(max-width:700px){
 .topbar{height:64px;padding:0 14px}.header-actions{gap:6px}.header-actions>.map-badge{display:none}.language-switch button{min-height:38px;min-width:37px}.brand-lockup strong{font-size:13px}.brand-lockup small{font-size:7px}
 .intro{padding:16px 18px 12px}.intro .eyebrow,.intro p,.intro::after{display:none}.intro h1{font-size:23px;margin:0;letter-spacing:-.9px;line-height:1.15}.intro h1 br{display:none}.intro h1 [data-i18n]{margin-right:6px}.search{margin:0 14px;padding:12px;min-height:46px}.search input{font-size:16px}.filters{margin:8px 14px 12px;flex-wrap:nowrap;overflow-x:auto;gap:5px}.filters button{min-height:42px;padding:8px 12px;font-size:12px;flex-shrink:0}
 .map-area{height:max(520px,72dvh);min-height:520px}.map-toolbar{top:12px}.floor-tabs button{min-height:42px}.map-caption{top:76px;left:18px}.map-caption .eyebrow{display:none}.map-caption h2{font-size:16px;margin:0}.map-caption{max-width:90%}#viewport{inset:108px 8px 157px}
 .map-key{left:0;right:0;bottom:55px;max-width:none;padding:4px 14px;overflow-x:auto;flex-wrap:nowrap;gap:5px;scrollbar-width:thin}.map-key button{min-height:44px;padding:8px 10px;flex-shrink:0;font-size:12px;border-color:#dfe3ef;background:#ffffffd9}.map-key button .icon{width:17px;height:17px}.zoom{bottom:112px;right:14px;height:44px;padding:0 3px}.zoom button{width:40px;height:40px}.map-hint{bottom:29px;left:15px;font-size:9px}.map-note{font-size:8px;left:15px;right:12px;line-height:1.25;bottom:8px}
 .map-marker{min-width:44px;height:44px;font-size:12px;border-radius:12px}.map-marker .icon{width:19px;height:19px}.map-marker .eludie-icon{width:38px;height:38px}.welcome-cluster{font-size:12px}.map-key .eludie-icon{width:23px;height:23px}
 .detail{position:fixed;left:10px;right:10px;bottom:max(10px,env(safe-area-inset-bottom));width:auto;max-height:min(80dvh,680px);z-index:20;padding:16px 18px;border-radius:18px;box-shadow:0 -12px 70px #242c5e33;touch-action:pan-y}.detail-toolbar{padding-bottom:8px;top:-1px}.detail .detail-toolbar .close{width:44px;height:44px}.detail h2{font-size:21px}.detail p{font-size:14px;line-height:1.6}.detail .location{font-size:12px}.detail .primary{min-height:46px;font-size:13px}.detail .contact-links a{min-height:55px}.detail .sponsor-website,.detail .profile-source{padding:9px 0;font-size:12px}.detail .eludie-photo img{height:200px}.detail .sponsor-logo-box{height:88px}.detail .company-areas li{font-size:11px}.detail .access-warning{font-size:14px}.detail .access-warning span{font-size:13px}
 body:has(.detail:not([hidden])){overflow:hidden}.places{max-height:360px;padding:0 14px 12px}.place{min-height:62px}.place strong{font-size:14px}.place small{font-size:12px}.list-heading{margin-top:20px}.sidebar-foot{margin-top:0}
}
@media(max-width:370px){.brand-lockup strong{font-size:11px}.language-switch button{min-width:32px}.filters button{padding:8px 10px;font-size:11px}.intro h1{font-size:21px}}
@media(max-height:500px) and (pointer:coarse){
 .topbar{height:56px;padding:0 16px}.header-actions>.map-badge{display:none}.app{height:calc(100dvh - 56px);min-height:0;grid-template-columns:250px 1fr}.sidebar{padding:12px 14px 0}.intro,.sidebar-foot{display:none}.filters{margin:8px 0}.search{padding:9px}.search input{font-size:16px}.list-heading{margin-bottom:5px}.map-area{min-height:0;height:auto}.map-caption,.map-hint,.map-note{display:none}.map-toolbar{top:8px;left:10px;right:10px}.floor-tabs button{min-height:40px;padding:5px 10px}#viewport{inset:64px 5px 100px}.map-key{left:0;right:0;bottom:4px;max-width:none;overflow-x:auto;flex-wrap:nowrap;padding:4px 10px}.map-key button{flex-shrink:0;min-height:44px;background:#fff;border-color:#dfe3ef}.zoom{flex-direction:row;right:10px;bottom:58px;height:40px;padding:0 3px}.zoom button{height:38px;width:38px}.zoom>span{width:1px;height:20px}.map-marker{min-width:44px;height:44px}.detail{position:fixed;right:10px;left:auto;bottom:10px;width:min(380px,calc(100vw - 20px));max-height:calc(100dvh - 20px);z-index:20;padding:15px 18px}.detail .detail-toolbar .close{width:44px;height:44px}.detail-mode{display:none}.detail p{font-size:13px}.eludie-photo img{height:170px}body:has(.detail:not([hidden])){overflow:hidden}
}
@media(max-width:700px){.map-area:has(.detail:not([hidden])){z-index:10}}
@media(max-height:500px) and (pointer:coarse){.map-area:has(.detail:not([hidden])){z-index:10}}

/* The site template provides the header, footer and language switch. */
.app{height:100dvh}
@media(max-width:700px){.app{height:auto;min-height:0}.map-area{height:560px;min-height:560px;scroll-margin-top:96px}.detail{position:absolute;top:128px;bottom:auto;max-height:416px}}

/* Sponsor categories are conveyed by labels as well as colour. */
.sponsor-tiers{display:flex;flex-wrap:wrap;gap:7px 12px;margin:-8px 0 17px;font-size:11px}
.sponsor-tiers>span{display:flex;align-items:center;gap:5px;white-space:nowrap}
.sponsor-tiers i{width:12px;height:12px;background:var(--tint);border:2px solid var(--color);border-radius:3px}
.sponsor-tier{display:inline-block;border:1px solid var(--color);background:var(--tint);color:var(--color);font-size:10px;font-weight:700;line-height:1.3;padding:2px 6px;border-radius:5px;margin:0 0 5px}
.detail>.sponsor-tier{font-size:12px;margin-top:7px}
.cluster-tiers{display:flex;position:absolute;bottom:-7px;left:50%;transform:translateX(-50%);gap:2px}
.cluster-tiers i{width:9px;height:9px;border:1px solid;border-radius:3px}
@media(max-width:700px){.sponsor-tiers{margin:0 14px 12px;gap:7px 12px;font-size:11px}.place .sponsor-tier{font-size:11px}.detail>.sponsor-tier{font-size:12px}}

.map-marker .marker-closed-label{position:absolute;top:calc(100% + 7px);left:50%;transform:translateX(-50%);white-space:nowrap;font:700 9px/1.2 Arial,Helvetica,sans-serif;color:#92263b;background:#fff4f6;border:1px solid #efc2cb;border-radius:3px;padding:2px 4px;pointer-events:none}

/* Compact overview: closed-area count remains visible on spatial clusters. */
.cluster-closed-count{position:absolute;top:calc(100% + 4px);left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:3px;padding:2px 5px;border:1px solid #e3a1ad;border-radius:4px;background:#fff4f6;color:#ad3547;font-size:10px;line-height:14px;white-space:nowrap}.cluster-closed-count svg.icon{width:12px;height:12px;flex:none}
