.contact-form-card{box-shadow:0 24px 60px #0000000f}.contact-success-badge{animation:.4s cubic-bezier(.2,.7,.2,1) both contact-pop;box-shadow:0 0 0 12px #ed1b241f}@keyframes contact-pop{0%{transform:scale(.7)}to{transform:scale(1)}}.contact-presence-glow{background:radial-gradient(closest-side,#ed1b2412,#ed1b2400)}.contact-map-svg{animation:.6s both contact-map-in}@keyframes contact-map-in{0%{opacity:0}to{opacity:1}}.contact-map-silhouette{fill:#fff;filter:drop-shadow(0 10px 24px #00000029)}.contact-state,.contact-state--none{stroke-width:.6px;stroke-linejoin:round;vector-effect:non-scaling-stroke}.contact-state{cursor:pointer;transform-box:fill-box;transform-origin:50%;outline:none;transition:fill .25s,transform .3s cubic-bezier(.2,.7,.2,1),filter .3s}.contact-state--present{fill:#ed1b24;stroke:#ed1b24}.contact-state--soon{fill:#fff;stroke:#fff}.contact-state--none{fill:#f3f3f3;stroke:#fff}.contact-state--present:hover,.contact-state--present.is-on{fill:#c8141c;filter:drop-shadow(0 8px 12px #78000659);transform:scale(1.03)}.contact-state--soon:hover,.contact-state--soon.is-on{fill:#fff1f1;filter:drop-shadow(0 8px 12px #00000026);transform:scale(1.03)}.contact-state:focus-visible{stroke:#141414;stroke-width:2px}.contact-map-borders{fill:none;stroke:#ffffff8c;stroke-width:.9px;vector-effect:non-scaling-stroke;pointer-events:none}.contact-map-borders--quiet{stroke:#d4d4d4}.contact-marker{pointer-events:none}.contact-marker--present{fill:#fff;stroke:#fff}.contact-marker--soon{fill:#ed1b24;stroke:#ed1b24}.contact-marker-ping{fill:none;stroke-width:3px;opacity:0;transform-box:fill-box;transform-origin:50%}@media (prefers-reduced-motion:no-preference){.contact-map-hint .contact-marker-ping{animation:2.4s ease-out infinite contact-marker-ping}.contact-map-hint .contact-marker:nth-child(3n+2) .contact-marker-ping{animation-delay:.8s}.contact-map-hint .contact-marker:nth-child(3n) .contact-marker-ping{animation-delay:1.6s}}@keyframes contact-marker-ping{0%{opacity:.9;transform:scale(.5)}70%,to{opacity:0;transform:scale(1.9)}}.contact-hint-chip{transition:opacity .4s,transform .4s;box-shadow:0 10px 28px #0000002e}.contact-hint-chip.is-off{opacity:0;pointer-events:none}.contact-hint-dot{position:relative}.contact-hint-dot:after{content:"";background:#ed1b24;border-radius:9999px;position:absolute;inset:0}@media (prefers-reduced-motion:no-preference){.contact-hint-dot:after{animation:1.6s ease-out infinite contact-hint-tap}.contact-hint-chip{animation:2.4s ease-in-out infinite contact-hint-float}}@keyframes contact-hint-tap{0%{opacity:.7;transform:scale(1)}to{opacity:0;transform:scale(3.2)}}@keyframes contact-hint-float{0%,to{translate:0}50%{translate:0 -5px}}.contact-hq{pointer-events:none}.contact-hq-pulse{fill:#f5c24259;transform-box:fill-box;transform-origin:50%;transform:scale(.6364)}@media (prefers-reduced-motion:no-preference){.contact-hq-pulse{animation:2s linear infinite contact-hq-ping}}@keyframes contact-hq-ping{0%,to{transform:scale(.4545)}50%{transform:scale(1)}}.contact-hq-mark{fill:#f5c242;stroke:#f5c242}.contact-hq-stem{stroke:#141414;stroke-width:1.2px}.contact-hq-dot{fill:#141414}.contact-hq-text{text-anchor:middle;paint-order:stroke;stroke:#fff;stroke-width:4px;stroke-linejoin:round}.contact-hq-text--caption{fill:#ed1b24;font-size:13px;font-weight:800}.contact-hq-text--place{fill:#525252;font-size:12px;font-weight:600}.contact-tip{transform-origin:50% 100%;opacity:0;background:#fff;border-radius:16px;transition:opacity .2s,transform .2s;overflow:hidden;transform:translate(-50%,calc(-100% - 18px))scale(.96);box-shadow:0 20px 44px #00000038,0 0 0 1px #0000000d}.contact-tip.is-on{opacity:1;transform:translate(-50%,calc(-100% - 18px))scale(1)}.contact-tip-photo{background:#eee repeating-linear-gradient(135deg,#eee 0 10px,#e4e4e4 10px 20px);height:140px;position:relative}.contact-tip-photo img{opacity:0;transition:opacity .25s}.contact-tip-photo img.is-on{opacity:1}@media (prefers-reduced-motion:reduce){.contact-tip-photo img{transition:none}}.contact-status--present{color:#15803d}.contact-status--soon{color:#ed1b24}.contact-status--present .contact-status-dot{background:#16a34a}.contact-status--soon .contact-status-dot{background:#ed1b24}@media (prefers-reduced-motion:reduce){.contact-map-svg,.contact-success-badge{animation:none}}
