.hero-scan{position:absolute;inset:0;z-index:1;overflow:hidden;pointer-events:none}
.hero-scan:before{content:'';position:absolute;top:0;bottom:0;left:-15%;width:2px;background:#ff4b55;box-shadow:0 0 12px 3px #e52b3477,0 0 70px 18px #e52b3429;animation:scan 8s ease-in-out infinite}
@keyframes scan{0%,10%{left:-15%;opacity:0}20%{opacity:.65}67%{opacity:.45}82%,100%{left:105%;opacity:0}}
.gallery-open{display:block;width:100%;height:100%;background:transparent;border:0;padding:0;cursor:zoom-in}
.gallery-open img{width:100%;height:100%;object-fit:cover}
.gallery-open:focus-visible{outline:3px solid var(--red);outline-offset:-5px}
.gallery-modal[hidden]{display:none}
.gallery-modal{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:24px}
.gallery-backdrop{position:absolute;inset:0;background:#020508ee;backdrop-filter:blur(7px)}
.gallery-panel{position:relative;z-index:1;width:min(1000px,100%);background:#151b20;box-shadow:0 30px 90px #000a}
.gallery-panel>img{width:100%;height:min(68vh,650px);object-fit:contain;background:#080b0e}
.gallery-panel>button{position:absolute;right:16px;top:16px;width:42px;height:42px;background:#0c1115e8;color:white;border:1px solid #c5d0d2;font-size:28px;z-index:2}
.gallery-panel>button:hover{background:var(--red)}
.gallery-controls{display:flex;align-items:center;gap:19px;min-height:62px;padding:10px 18px;color:white;font-size:10px;font-weight:900;letter-spacing:.12em}
.gallery-controls button{background:transparent;color:#fff;border:1px solid #5c6b72;width:36px;height:36px;font-size:18px}
.gallery-controls button:hover{background:var(--red);border-color:var(--red)}
.gallery-controls span:nth-of-type(1){margin-right:auto}
.gallery-controls span:nth-of-type(2){color:#91a4ac}
#map{width:100%;min-height:340px;flex:1;z-index:0;background:#cdd7d2}
.contact-map .map-overlay{left:18px;top:18px;transform:none;z-index:500}
.contact-map .leaflet-control-attribution{font-size:8px;line-height:1.3}
.contact-map .leaflet-control-zoom a{color:#12171d}
.protocol-bottom>div{display:flex;gap:8px;flex-wrap:wrap}
.protocol-bottom .print-button{border:1px solid #85949d;background:transparent;color:white}
.protocol-bottom .print-button:hover{background:#33424b}
.protocol-bottom button{min-height:42px}
@media(max-width:600px){
  .hero-scan{display:none}
  .gallery-modal{padding:0}
  .gallery-panel{width:100%;min-height:100dvh;display:flex;flex-direction:column;justify-content:center}
  .gallery-panel>img{height:auto;max-height:72vh}
  .gallery-controls{gap:9px;font-size:8px}
  .gallery-controls button{flex:none}
  .contact-map .map-overlay{top:12px;left:12px;padding:7px 10px}
  .contact-map .map-overlay b{font-size:15px}
  .contact-map .map-overlay span{font-size:6px}
  .protocol-bottom>div{width:100%}
  .protocol-bottom button{flex:1;font-size:8px;padding:12px 9px}
}
@media(prefers-reduced-motion:reduce){.hero-scan:before{animation:none;opacity:0}}
@media print{
  body>*:not(.birthday-modal){display:none!important}
  .birthday-modal{position:static!important;display:block!important;padding:0}
  .birthday-backdrop,.modal-close,.protocol-bottom button{display:none!important}
  .birthday-panel{width:100%;min-height:100vh;box-shadow:none;border:0;print-color-adjust:exact;-webkit-print-color-adjust:exact}
  .protocol-body{padding-top:100px}
  .protocol-bottom{position:absolute;bottom:0;width:100%}
}
