/* A shared, restrained interaction layer. Keep keyboard focus visible without large rings. */
body :is(a,button,summary,input,select,textarea,[tabindex]):focus-visible {
    outline:2px solid var(--color-teal-text) !important; outline-offset:2px !important;
}
body :is(input,select,textarea):focus-visible { outline-offset:1px !important; }
body :is(a,button,summary,input,select,textarea,[tabindex]):focus:not(:focus-visible) { outline:none !important; }
body :is(a,button,summary):hover:not(:focus-visible) { outline:none !important; }
body .mobile-nav :focus-visible { outline-color:var(--color-paper) !important; }
body :is(a,button,summary,input,select,textarea) {
    transition:background-color 140ms ease,color 140ms ease,border-color 140ms ease;
}
/* Hover never grows, tilts or lifts the controls and content cards. */
body :is(.btn,.btn-primary,.btn-secondary,.btn-accent,.cta-button,.hero-cta-primary,.hero-cta-secondary,
    .action-button,.map-link,.social-link,.mobile-nav-link,.scroll-to-top,.gb-action,.bt-tool-card,
    .bt-button,.bt-launch,.card,.section-card,.play-card,.photo-card,.rule-card,.first-time-box,
    .quick-fact,.first-time-checklist li):hover {
    transform:none !important; animation:none !important;
}
body :is(.card,.section-card,.play-card,.photo-card,.rule-card,.first-time-box):hover { box-shadow:none !important; }
body :is(.play-card:hover .play-card-icon,.rule-card:hover .rule-emoji,.layered-card:hover .card-content) {
    transform:none !important; animation:none !important;
}
body .photo-card:hover img { transform:scale(1.015); }
body :is(.hero-cta-primary,.action-button,.spy-button,.bt-button,.egg-close,.gb-action):hover:not(:disabled) {
    background-color:#1d9f8f !important; color:var(--color-ink) !important;
}
body :is(.hero-cta-secondary,.map-link,.secondary-action,.spy-button-secondary,.drawer-back,.bt-button-secondary,
    .bt-launch,.month-btn,.close-btn,.drawer-close,.bt-close,.scroll-to-top,.day-event-option,
    .upcoming-event-card,.faq-item summary,.spy-rules summary,.egg-progress):hover:not(:disabled) {
    background-color:#eaf1e8 !important; color:var(--color-ink) !important;
}
body .calendar-day.has-event:hover { background-color:#1d9f8f; color:var(--color-ink); }
body .mobile-nav-link:hover { background-color:#20312d; color:var(--color-paper); }
body .egg-piece:hover > .play-piece { filter:drop-shadow(0 0 3px #ffd00066); }
@media(prefers-reduced-motion:reduce) {
    body :is(a,button,summary,input,select,textarea) { transition:none; }
    body .photo-card:hover img { transform:none; }
}
