/* Feedback belongs to real controls. No event interception or animation runtime. */
.site-nav a {
    position: relative;
    min-width: 44px;
    text-decoration: none;
    transition: color 160ms ease;
}
.site-nav a::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: 6px;
    height: 1px;
    background: currentColor;
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 180ms ease;
}
.site-nav a[aria-current="location"] { text-decoration: none; }
.site-nav a[aria-current="location"]::after,
.site-nav a:focus-visible::after { transform: scaleX(1); }
.site-nav a:focus-visible { color: #d8f4e4; }
.lang-btn { transition: background 160ms ease, color 160ms ease; }
.lang-btn:focus-visible { outline-offset: 3px; }
.lang-btn:not(.is-active):focus-visible { background: #244739; color: #e3f3e9; }
.lang-btn:active { background: #8fc8ad; color: #0b1b18; }
.brand { display: inline-flex; width: fit-content; align-items: center; min-height: 44px; }
.brand img { transition: opacity 160ms ease; }
.brand:active img { opacity: .8; }
.opening .primary-btn::after,
.opening-footnote a span:last-child,
.contact-scene .link-list a::after { transition: transform 180ms ease; }
.opening .primary-btn:focus-visible { background: #d5f2e1; }
.opening .secondary-btn:focus-visible { color: #b8e4cc; border-color: #b8e4cc; }
.opening .primary-btn:active { background: #96c9ae; }
.opening .secondary-btn:active { color: #f3f4e7; border-color: #f3f4e7; }
.opening-footnote a { min-height: 44px; transition: color 160ms ease; }
.opening-footnote a:focus-visible { color: #e3f3e9; }
.contact-scene .link-list a { transition: color 160ms ease, background-color 160ms ease, border-color 160ms ease; }
.contact-scene .link-list a:focus-visible {
    color: #e4f3df;
    background: #bddcba12;
    border-bottom-color: #bad6a7;
    outline-offset: 2px;
}
.contact-scene .link-list a:active { background: #bddcba26; }
.contact-scene .primary-contact a { transition: color 160ms ease; }
.contact-scene .primary-contact a:focus-visible { color: #cce8bb; text-decoration: underline; text-underline-offset: 6px; }
.contact-scene .primary-contact a:active { color: #edf1e7; }
.about-scene .contact-chip { max-width: 100%; padding-block: 0; }
.about-scene .contact-chip a { display: inline-flex; align-items: center; min-height: 44px; padding-block: 8px; transition: color 160ms ease, text-decoration-color 160ms ease; }
.about-scene .contact-chip a:focus-visible { color: #0c2919; text-decoration-thickness: 2px; }
.about-scene .contact-chip a:active { color: #0c2919; }

/* Native hash navigation can move keyboard focus into the requested region. */
section[tabindex="-1"]:focus { outline: none; }
section[tabindex="-1"]:focus-visible h1,
section[tabindex="-1"]:focus-visible h2 {
    outline: 2px solid var(--focus-color);
    outline-offset: 8px;
}

/* Pointer decoration never becomes a persistent hover state on touch screens. */
@media (hover: hover) and (pointer: fine) {
    .site-nav a:hover::after { transform: scaleX(1); }
    .lang-btn:not(.is-active):hover { background: #244739; color: #e3f3e9; }
    .brand:hover img { opacity: .85; }
    .opening .primary-btn:hover::after { transform: translate(3px, -3px); }
    .opening-footnote a:hover { color: #e3f3e9; }
    .opening-footnote a:hover span:last-child { transform: translateY(4px); }
    .contact-scene .link-list a:hover { background: #bddcba12; border-bottom-color: #bad6a7; }
    .contact-scene .link-list a:hover::after { transform: translate(3px, -3px); }
    .about-scene .contact-chip a:hover { color: #0c2919; text-decoration-thickness: 2px; }
}
@media (prefers-reduced-motion: reduce) {
    .opening .primary-btn::after,
    .opening-footnote a span:last-child,
    .contact-scene .link-list a::after { transform: none !important; }
}
@media (forced-colors: active) {
    .site-nav a[aria-current="location"] { text-decoration: underline; }
    .lang-btn[aria-pressed="true"] { outline: 2px solid ButtonText; outline-offset: -4px; }
    .opening .primary-btn { border: 1px solid ButtonText; }
}
