.marker{transition:transform .3s cubic-bezier(.4,0,.2,1),opacity .3s cubic-bezier(.4,0,.2,1),box-shadow .2s ease-out,border-color .2s ease-out;will-change:transform,opacity;transform-origin:center bottom;outline:none}.marker:focus-visible{outline:2px solid #8b4513;outline-offset:2px}.marker-dot{animation:fadeIn .2s ease-out}.marker-dot-inner{transition:transform .2s ease-out,box-shadow .2s ease-out}.marker-dot:focus .marker-dot-inner,.marker-dot:hover .marker-dot-inner{transform:scale(1.5);box-shadow:0 4px 8px rgba(0,0,0,.3)}.marker-simplified{animation:scaleIn .3s cubic-bezier(.4,0,.2,1)}.marker-simplified:focus,.marker-simplified:hover{box-shadow:0 4px 12px rgba(0,0,0,.25)}.marker-label{opacity:0;transition:opacity .2s ease-out}.marker-label.visible{opacity:1}.marker-full{animation:bounceIn .4s cubic-bezier(.68,-.55,.265,1.55)}.marker-full:focus,.marker-full:hover{box-shadow:0 8px 24px rgba(0,0,0,.3)}.match-rate-badge,.roastery-badge{animation:slideUp .3s ease-out .1s both}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}@keyframes bounceIn{0%{opacity:0;transform:scale(.3) translateY(-20px)}50%{opacity:1;transform:scale(1.05) translateY(0)}70%{transform:scale(.95)}to{transform:scale(1)}}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.marker-transition-enter{animation:markerFadeIn .3s ease-out}.marker-transition-exit{animation:markerFadeOut .2s ease-out}@keyframes markerFadeIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes markerFadeOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.8)}}.map-zooming .marker{animation:none;transition:opacity .1s linear}@media (prefers-reduced-motion:reduce){.marker,.marker-dot-inner,.marker-label,.match-rate-badge,.roastery-badge{animation:none!important;transition:none!important}}.marker:focus-visible{outline:3px solid #8b4513;outline-offset:3px;z-index:1000}@media (prefers-contrast:high){.marker{border-width:3px}.marker-dot-inner{border:2px solid}}@media print{.marker{animation:none;box-shadow:none}.marker-dot-inner{border:1px solid #000}}:root{--topbar-safe-top:env(safe-area-inset-top,0px);--topbar-height:calc(44px + var(--topbar-safe-top));--navigation-height:64px;--navigation-safe-bottom:env(safe-area-inset-bottom,0px);--shell-padding-x:1rem;--shell-section-gap:1.5rem;--shell-max-width-narrow:42rem;--shell-max-width-wide:72rem}@media (min-width:64rem){:root{--navigation-height:0px;--topbar-height:calc(64px + var(--topbar-safe-top))}}body:has([data-focus-route]){--navigation-height:0px;--topbar-height:0px}body:has([data-focus-route]) [data-app-chrome]{display:none}:root,body{--navigation-offset:calc(var(--navigation-height) + var(--navigation-safe-bottom));--chrome-top:var(--topbar-height);--main-content-bottom:calc(var(--navigation-offset) + var(--policy-notice-space, 0px));--main-content-height:calc(100vh - var(--chrome-top) - var(--main-content-bottom))}.main-content{position:fixed;top:var(--chrome-top);left:0;right:0;bottom:var(--main-content-bottom);width:100%;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}.h-main-content,.h-map-container,.main-content{height:var(--main-content-height)}