@font-face{font-family:Onest;src:url('/review-v4/fonts/Onest[wght].ttf') format('truetype');font-weight:100 900;font-display:swap}
@font-face{font-family:Jost;src:url('/static/fonts/Jost.ttf') format('truetype');font-weight:100 900;font-display:swap}
:root{color-scheme:light;--paper:#f4f2ed;--ink:#382f29;--amber:#9e602f;--everyday:#557984;--everyday-surface:#e4eef0;--everyday-border:#c3d5d8}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font-family:Onest,Arial,sans-serif}
button{font:inherit;color:inherit;cursor:pointer;border:0;-webkit-tap-highlight-color:transparent}
button:focus-visible{outline:3px solid var(--amber);outline-offset:4px}
[hidden]{display:none!important}

/* Map and editorial overlays */
.journey{height:200svh}
.overview-map .journey{height:100svh}.overview-map .heading,.overview-map .story-caption{display:none}
.nearby-map .journey{height:100svh}.nearby-map .heading,.nearby-map .story-caption{display:none}.nearby-map .viewport{position:relative}.nearby-map .place-card{z-index:5}
.viewport{position:sticky;top:0;height:100svh;overflow:hidden;isolation:isolate}
.map-frame{position:absolute;width:min(100vw,160svh);aspect-ratio:8/5;left:50%;top:50%;transform:translate(-50%,-50%)}
.map-layer,.map-layer img,.map-layer svg{display:block;width:100%;height:100%}
.map-layer{overflow:hidden}
.map-layer svg{overflow:hidden;shape-rendering:geometricPrecision;transform-origin:0 0;will-change:transform}
.map-layer svg>g:nth-of-type(2){stroke:none;fill-rule:nonzero}
.neighborhood-detail{opacity:0;will-change:opacity}
.heading{display:none;position:absolute;top:40px;left:40px;pointer-events:none;z-index:2}
.heading h1{margin:0;font-family:Jost,Onest,Arial,sans-serif;font-size:clamp(32px,4vw,58px);line-height:1.05;font-weight:350;letter-spacing:-.025em}
.heading p{margin:15px 0 0;font-size:13px;color:#807065}
.story-caption{position:absolute;left:40px;bottom:40px;max-width:440px;pointer-events:none;z-index:2}
.story-caption:before{content:'';position:absolute;inset:-85px -95px -65px -80px;border-radius:48% 58% 43% 52%;background:radial-gradient(ellipse at 46% 55%,#fcfbf7 15%,#f8f6f0ed 40%,#f4f2ed99 58%,transparent 75%);filter:blur(14px);z-index:-1}
.story-caption p{margin:0;font-size:20px;line-height:1.45;letter-spacing:-.015em;font-weight:400}
.street-labels,.pins{position:absolute;inset:0;pointer-events:none}
.metro-marker{position:absolute;left:0;top:0;display:flex;flex-direction:row-reverse;align-items:center;gap:5px;pointer-events:none;white-space:nowrap;color:#424a3e;font-size:11px;font-weight:600;text-shadow:0 0 4px var(--paper),0 0 7px var(--paper);z-index:1}
.metro-marker .metro-mark{width:19px;height:19px;fill:#bd4238;filter:drop-shadow(0 0 3px var(--paper));flex:none}
.metro-marker span{text-align:right;line-height:1.2}
.metro-marker.metro-right,.metro-marker.metro-orient-right{flex-direction:row}
.metro-marker.metro-right span,.metro-marker.metro-orient-right span{text-align:left}
.metro-marker.metro-right.metro-left-fallback{flex-direction:row-reverse}
.metro-marker.metro-right.metro-left-fallback span{text-align:right}
.metro-marker small{display:block;margin-top:3px;color:#925d23;font-size:10px;font-weight:650}
.metro-marker small .ui-icon{display:inline-block;width:12px;height:12px;vertical-align:-2px;stroke-width:1.7}
.street-name{position:absolute;left:0;top:0;white-space:nowrap;font-size:10px;line-height:1.3;letter-spacing:.02em;color:#747b6d;text-shadow:0 0 3px var(--paper),0 0 3px var(--paper),0 0 5px var(--paper)}
.fallback{position:absolute;bottom:90px;left:40px}

/* Geographic anchors and interactive pins */
.home-pulse{position:absolute;width:44px;height:44px;border:1px solid #9e602f30;background:radial-gradient(circle,transparent 45%,#c6a48220 72%,transparent 74%);border-radius:50%;pointer-events:none;z-index:0;animation:home-wave 5s cubic-bezier(.4,0,.2,1) infinite}
@keyframes home-wave{0%,100%{transform:scale(1.3);opacity:.2}50%{transform:scale(1.85);opacity:.65}}
.pin{position:absolute;left:0;top:0;width:44px;height:44px;display:grid;place-items:center;border-radius:50%;background:#fcfbf7;color:#485343;box-shadow:0 2px 12px #2935241c;pointer-events:auto;transition:background 180ms,color 180ms;z-index:1}
.pin:not(.home){background:transparent;box-shadow:none}
.pin:not(.home):before{content:'';position:absolute;inset:4px;border:1px solid #ffffffc2;border-radius:50%;background:linear-gradient(140deg,#fcfbf7,#eeeae2);box-shadow:0 2px 7px #382f2910;transition:background 180ms,box-shadow 180ms,transform 180ms}
.pin:not(.home):hover:before,.pin:not(.home):active:before,.pin:not(.home)[aria-expanded=true]:before,.pin.pin-hint:before{background:linear-gradient(140deg,#f5eee3,#e5d5c1);box-shadow:0 3px 10px #704b2520,inset 0 0 0 1px #a8755038;transform:scale(1.06)}
.pin.pin-hint{color:#704b2e}
.pin:not(.home):hover,.pin:not(.home)[aria-expanded=true]{color:#704b2e}
.pin:not(.home) .ui-icon,.pin:not(.home) .brand-icon{position:relative;width:19px;height:19px}
.motion-ready .pin:not(.home){transition:background 180ms,color 180ms}
.pin:hover,.pin[aria-expanded=true]{background:transparent;color:#385a62;z-index:3}
.pin.home:hover,.pin.home[aria-expanded=true]{background:var(--amber)}
.pin.home{background:var(--amber);color:#fff;z-index:2}
.pin.home .ui-icon{position:relative;z-index:1}
.pin.home:after{content:'';position:absolute;inset:-6px;border-radius:50%;border:1px solid #aa702e60;pointer-events:none}
.pin.everyday{background:var(--everyday-surface);color:var(--everyday);box-shadow:0 2px 12px #49395822,inset 0 0 0 1px var(--everyday-border)}
.pin.everyday:hover,.pin.everyday[aria-expanded=true]{background:transparent;color:#385a62}
.pin.everyday{background:transparent;box-shadow:none}
.pin.everyday:before{background:var(--everyday-surface);box-shadow:0 2px 12px #49395822,inset 0 0 0 1px var(--everyday-border)}
.pin.everyday:hover,.pin.everyday[aria-expanded=true]{background:transparent}
.leader{position:absolute;width:1px;height:1px;background:#6e78575c;transform-origin:0 50%;pointer-events:none}
.anchor{position:absolute;width:4px;height:4px;border-radius:50%;background:#66755b;pointer-events:none}
.pin-label{position:absolute;left:0;top:0;pointer-events:none;white-space:nowrap;font-size:12px;font-weight:500;line-height:1.25;letter-spacing:-.015em;color:#424a3e;text-shadow:0 0 4px var(--paper),0 0 4px var(--paper),0 0 7px var(--paper)}
.motion-ready .pin-label,.motion-ready .leader{transition:none}
.pin-label.left{text-align:right}
.pin-label.bottom{color:#925d23}
.everyday-label{color:var(--everyday)}
.pin-name{display:block}
.time-short{display:none}
.pin-time{display:flex;align-items:center;gap:5px;margin-top:4px;font-size:.78em;font-weight:650;color:#925d23}
.pin-time .ui-icon{width:15px;height:15px;stroke-width:1.7}
.pin-label.left .pin-time{justify-content:flex-end}
.pin-label.top,.pin-label.bottom{text-align:center}
.pin-label.top .pin-time,.pin-label.bottom .pin-time{justify-content:center}
.everyday-label .pin-time{color:var(--everyday)}
.ui-icon{width:21px;height:21px;display:block;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;flex:none}
.pin .ui-icon{transition:transform 180ms ease}
.pin:hover .ui-icon{transform:scale(1.08)}
.brand-icon{display:block;width:28px;height:24px;background:currentColor;mask:var(--brand-mark) center/contain no-repeat;-webkit-mask:var(--brand-mark) center/contain no-repeat}
.brand-icon.vkusvill{height:18px}

/* One shared card; its entrance is controlled by the Web Animations API. */
.place-card{position:absolute;z-index:5;background:#fcfbf7;box-shadow:0 18px 54px #29352420,0 2px 8px #2935240a;border:1px solid #ffffffc9;border-radius:22px;overflow:auto;transform-origin:center bottom}
.place-card:after{content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;box-shadow:inset 0 1px 0 #fff,inset 1px 0 0 #ffffff8c;animation:glass-edge 500ms ease-out both}
.photos{position:relative;aspect-ratio:3/2;background:#e4e5db;overflow:hidden}
.photos:empty{display:none}
.photos img{position:absolute;width:100%;height:100%;object-fit:cover}
.photos img+img{opacity:0;animation:dissolve 10s ease-in-out infinite}
.close{position:absolute;right:10px;top:10px;width:44px;height:44px;display:grid;place-items:center;border-radius:50%;background:#fcfbf7d9;box-shadow:inset 0 0 0 1px #ffffffbc,0 2px 8px #23311f13;backdrop-filter:blur(12px);font-size:26px;line-height:1;z-index:2}
.close .ui-icon{width:19px;height:19px}
.caption{background:linear-gradient(130deg,#ffffff4a,#ffffff0a)}
.caption h2{font-size:23px;letter-spacing:-.04em;line-height:1.15;margin:0;padding-right:18px;font-weight:550}
.category{font-size:13px;margin:8px 0 18px;color:#687160}
.place-address{font-size:13px;line-height:1.55;color:#687160;margin:0 0 18px}
.travel{font-size:14px;color:#925d23;margin:8px 0 14px;font-weight:550}
.travel .pin-time{font-size:14px}
.place-card:not(:has(.photos img)) .caption{padding-top:58px}
@supports(backdrop-filter:blur(18px)){
 .place-card{background:#fcfbf7d4;backdrop-filter:blur(18px) saturate(1.12)}
}
@keyframes dissolve{0%,40%,100%{opacity:0}50%,90%{opacity:1}}
@keyframes glass-edge{0%{opacity:.2}40%{opacity:1}100%{opacity:.7}}

@media(min-width:701px){
 .story-caption,.cinema-map .story-caption{width:clamp(280px,28vw,420px);max-width:420px}
 .story-caption p{font-size:clamp(18px,1.65vw,23px);line-height:1.4}
 .story-caption:before{inset:-210px -14px -100px -64px;border-radius:0;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 500 700' preserveAspectRatio='none'%3E%3Cpath fill='%23fcfbf7' d='M0 50C75 65 85 5 160 25C250 40 220 145 285 170C350 190 335 275 390 320C430 355 405 385 430 420C460 455 480 475 450 495C420 515 485 520 475 555C465 590 405 605 415 645L445 700H0Z'/%3E%3C/svg%3E") center/100% 100% no-repeat;filter:blur(12px)}
 .pins,.metro-marker{z-index:3}
 .place-card{right:clamp(24px,3vw,64px);top:40px;width:clamp(260px,25vw,420px);max-height:calc(100svh - 80px)}
 .place-card .caption{padding:24px}
 .pin-label{font-size:clamp(15px,1vw,19px);font-weight:550}
 .street-name{font-size:clamp(14px,.95vw,18px);font-weight:400}
 .street-name.tverskaya{font-size:clamp(12px,.85vw,16px)}
}
@media(min-width:701px){
 .map-frame{mask-image:linear-gradient(to right,transparent,black 12%,black 88%,transparent);-webkit-mask-image:linear-gradient(to right,transparent,black 12%,black 88%,transparent)}
}
@media (min-width:701px) and (max-aspect-ratio:8/5), (max-width:700px) and (max-aspect-ratio:9/16){
 .map-frame:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(to bottom,var(--paper),transparent 8%,transparent 92%,var(--paper))}
}
@media (max-width:700px) and (min-aspect-ratio:9/16){
 .map-frame{mask-image:linear-gradient(to right,transparent,black 12%,black 88%,transparent);-webkit-mask-image:linear-gradient(to right,transparent,black 12%,black 88%,transparent)}
}
@media(max-width:700px){
 .map-frame{width:min(100vw,56.25svh);aspect-ratio:9/16}
 .heading{left:22px;right:22px;top:28px}
 .heading h1{font-size:34px}
 .heading p{font-size:11px;margin-top:10px}
 .place-card{top:86px;bottom:auto;left:12px;right:12px;max-width:400px;max-height:32svh;margin:auto;display:grid;grid-template-columns:32% minmax(0,1fr);overflow:auto;background:linear-gradient(140deg,#ffffffa6,#f4f2ed80);border-color:#ffffffc2;backdrop-filter:blur(18px) saturate(.85);-webkit-backdrop-filter:blur(18px) saturate(.85);box-shadow:0 8px 28px #382f2910;transform-origin:center top}
 .place-card:not(:has(.photos img)){display:block}
 .photos{aspect-ratio:auto;min-height:128px;border-radius:21px 0 0 21px}
 .caption,.place-card:not(:has(.photos img)) .caption{min-width:0;padding:18px 40px 16px 16px}
 .caption h2{font-size:18px;line-height:1.2;padding:0}
 .category{font-size:12px;margin:6px 0 0}
 .travel{margin:8px 0 0}
 .place-address{font-size:12px;line-height:1.35;margin:6px 0 0}
 .close{width:32px;height:32px;right:7px;top:7px;backdrop-filter:none}
 .close .ui-icon{width:16px;height:16px}
 .story-caption{left:22px;right:22px;bottom:max(28px,env(safe-area-inset-bottom));max-width:380px}
 .story-caption p{font-size:16px;line-height:1.45}
 .pin-label{max-width:82px;width:max-content;white-space:normal;font-size:11px;line-height:1.2;font-weight:550}
 .pin-time,.travel .pin-time{font-size:10px;gap:3px;white-space:nowrap;margin-top:3px}
 .pin-time .ui-icon{width:12px;height:12px}
 .time-full{display:none}
 .time-short{display:inline}
 .street-name{font-size:11px}
}
/* Full-frame photographs carry one small scene from life in the neighborhood. */
.place-card.photo-story{overflow:hidden;border-radius:30px;background:#4b5147;backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:0 12px 36px #382f2926;display:block}
.photo-story .photos{position:absolute;inset:0;aspect-ratio:auto;min-height:0;border-radius:0}
.photo-story .caption{position:absolute;inset:0;display:flex;align-items:flex-end;padding:28px;background:linear-gradient(180deg,transparent 30%,#151c1826 48%,#151c18cc 100%);color:#fff}
.photo-story .caption h2{max-width:12em;padding:0;font-family:Jost,Onest,Arial,sans-serif;font-size:clamp(25px,2.3vw,34px);font-weight:400;line-height:1.12;letter-spacing:-.025em;text-shadow:0 1px 8px #0003;text-wrap:balance}
.photo-story .category,.photo-story .place-address{display:none}
.photo-story .travel{position:absolute;left:16px;top:16px;margin:0;padding:8px 11px;border:1px solid #ffffff80;border-radius:999px;background:#fcfbf7e6;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:var(--ink)}
.photo-story .travel .pin-time{margin:0;font-size:13px;color:inherit;gap:5px}
.photo-story .travel .time-full{display:none}
.photo-story .travel .time-short{display:inline}
.photo-story .travel .ui-icon{width:15px;height:15px}
.photo-story .close{background:#fcfbf7d9;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
@media(min-width:701px){.place-card.photo-story{height:min(390px,48svh)}}
@media(max-width:700px){
 .place-card.photo-story{height:clamp(138px,21svh,180px);border-radius:26px}
 .photo-story .caption{padding:18px 50px 18px 20px;background:linear-gradient(180deg,transparent 15%,#151c1833 40%,#151c18cc 100%)}
 .photo-story .caption h2{font-size:25px;max-width:13em}
 .photo-story .close{width:36px;height:36px;top:9px;right:9px}
}
@media(prefers-reduced-motion:reduce){
 .home-pulse{display:none}
 *,*:before,*:after{animation:none!important;transition:none!important}
 .photos img+img{opacity:0}
 .journey{height:100svh}
}
@media(max-width:340px){
 .metro-marker{font-size:9px;gap:4px}
 .metro-marker .metro-mark{width:16px;height:16px}
 .metro-marker small{font-size:9px}
}

/* Keep wheel steps and collision-layout changes on one short visual timeline. */
.viewport .map-layer svg,
.viewport .pins.motion-ready :is(.pin,.pin-label,.anchor,.leader),
.viewport :is(.metro-marker,.metro-leader,.street-name){transition:transform 110ms linear,opacity 110ms linear}
.viewport .home-pulse{transition:left 110ms linear,top 110ms linear}
@media(max-width:700px){.nearby-map .map-frame{width:100%;aspect-ratio:9/16}.nearby-map .pin{width:36px;height:36px}.nearby-map .pin-label.bottom{font-size:13px}.nearby-map .place-card{top:12px;bottom:12px;max-height:calc(100% - 24px)}}
.nearby-map .pin-label,.nearby-map .pin-label.bottom{font-size:10px;font-weight:500;line-height:1.2;max-width:none;white-space:nowrap;color:#424a3e}
.nearby-map .pin-time{font-size:9px;gap:3px;margin-top:2px;font-weight:500}.nearby-map .pin-time .ui-icon{width:10px;height:10px}
.nearby-map .pin{width:36px;height:36px}.nearby-map .pin:not(.home):before{inset:6px}.nearby-map .pin:not(.home) .ui-icon{width:15px;height:15px}
.nearby-map{--everyday:#74634f;--everyday-surface:#eee9df;--everyday-border:#d5c9b8}
.nearby-map .pin.everyday{width:40px;height:40px}
.nearby-map .pin.everyday:before{inset:3px;box-shadow:inset 0 0 0 1px var(--everyday-border)}.nearby-map .pin.everyday .ui-icon,.nearby-map .pin.everyday .brand-icon{width:19px;height:19px}
.nearby-map .pin.everyday:hover,.nearby-map .pin.everyday[aria-expanded=true]{color:#9e602f}
.nearby-map .time-full{display:none}.nearby-map .time-short{display:inline}
.nearby-map .viewport :is(svg,.pin,.pin-label,.anchor,.leader,.metro-marker,.metro-leader,.street-name,.home-pulse){transition:none}
.nearby-map .pin:not(.everyday){width:52px;height:52px;z-index:2}
.nearby-map .pin:not(.everyday) .ui-icon{width:24px;height:24px}
.nearby-map .map-layer{overflow:hidden;mask-image:linear-gradient(to bottom,transparent,black 5%,black 95%,transparent);-webkit-mask-image:linear-gradient(to bottom,transparent,black 5%,black 95%,transparent)}
.nearby-map .map-frame{mask-image:none;-webkit-mask-image:none}
.nearby-map .map-frame:after{display:none}
.nearby-map .place-card,.nearby-map .place-card.photo-story{box-shadow:0 8px 24px #382f2909}
@media(max-width:700px) and (max-aspect-ratio:6/5){
 .nearby-map{overflow:hidden}
 .nearby-map .viewport:has(.place-card:not([hidden])){top:190px;height:calc(100svh - 190px);overflow:visible}
 .nearby-map .place-card,.nearby-map .place-card.photo-story{top:-178px;bottom:auto;height:166px;max-height:166px;margin:0 auto;box-sizing:border-box}
}
@media(min-aspect-ratio:6/5){
 .nearby-map{--place-column:clamp(220px,32vw,380px)}
 .nearby-map .viewport{width:calc(100% - var(--place-column) - 24px);overflow:visible}
 .nearby-map .place-card{left:calc(100% + 16px);right:auto;top:24px;bottom:auto;width:var(--place-column);max-width:none;box-sizing:border-box;max-height:calc(100svh - 48px);margin:0;display:block;border-radius:26px}
 .nearby-map .place-card.photo-story{height:min(440px,78svh)}
}
@media(min-aspect-ratio:6/5){.nearby-map .map-frame{width:100%;aspect-ratio:8/5;top:52px;transform:translateX(-50%)}}
@media(min-aspect-ratio:6/5){
 .brochure-map .viewport:not(:has(.place-card:not([hidden]))){width:100%}
 .brochure-map .map-frame{top:50%;transform:translate(-50%,-50%)}
}
@media(min-width:701px){.nearby-map .pin-label,.nearby-map .pin-label.bottom{font-size:12px}.nearby-map .pin-time{font-size:10px}}
