html{scrollbar-gutter:stable;} .event-card,.calendar-entry{cursor:pointer} .event-card:focus-visible,.calendar-entry:focus-visible{outline:3px solid #08baff;outline-offset:3px} .event-card:hover{border-color:#08baff} .calendar-entry:hover{filter:brightness(1.18)} .event-modal{position:fixed;inset:0;z-index:200;background:rgba(0,5,15,.82);display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;visibility:hidden;pointer-events:none;transition:opacity 280ms ease,visibility 280ms ease} .event-modal.is-open{opacity:1;visibility:visible;pointer-events:auto} .event-modal-panel{position:relative;background:#0b192c;border:1px solid #315170;border-radius:14px;width:min(720px,100%);max-height:min(88vh,900px);overflow:auto;box-shadow:0 25px 80px #000a;opacity:0;transition:opacity 280ms ease} .event-modal.is-open .event-modal-panel{opacity:1} .event-modal-content{padding:32px} .event-modal-image{display:block;width:100%;aspect-ratio:16/9;max-height:300px;object-fit:cover;border-radius:8px;margin-bottom:24px;opacity:0;transition:opacity 250ms ease} .event-modal-image.is-loaded{opacity:1} .event-modal-close{position:sticky;top:10px;float:right;margin:10px 12px 0 0;z-index:2;width:40px;height:40px;border:1px solid #4b6784;border-radius:50%;background:#06101e;color:white;font-size:30px;line-height:1;cursor:pointer} .event-modal-close:hover{background:#173e5d} .event-modal-eyebrow{font-size:12px;letter-spacing:2px;color:#08baff;font-weight:800} .event-modal-title{font-size:clamp(35px,6vw,56px);line-height:1.05;margin:12px 0} .event-modal-date{font-weight:700;font-size:18px;color:#08baff} .event-modal-venue{font-weight:700;font-size:19px} .event-modal-address{color:#b9c8d9} .event-modal-description{white-space:pre-wrap;line-height:1.7;font-size:16px} .event-modal-actions{margin-top:22px} .event-modal-map{display:inline-block;background:#08baff;color:#06101e;padding:12px 20px;border-radius:5px;font-weight:800} .event-modal-active{overflow:hidden} @media(max-width:520px){.event-modal{padding:10px}.event-modal-content{padding:20px}.event-modal-panel{max-height:92vh}} @media(prefers-reduced-motion:reduce){.event-modal,.event-modal-panel,.event-modal-image{transition:none}}
