/* Shared page foundations */
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    min-width: 320px;
    overflow-wrap: break-word;
    color: var(--piscor-text);
    background: var(--piscor-background);
    font-family: Arial, Helvetica, sans-serif;
    line-height: 1.5;
}
a { transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease; }
h1, h2, h3 { color: var(--piscor-primary); }
img, svg { max-width: 100%; }
.skip-link {
    position: fixed;
    top: 8px;
    left: 8px;
    z-index: 2000;
    padding: 12px 16px;
    border-radius: 6px;
    color: #fff;
    background: #111;
    transform: translateY(-150%);
}
.skip-link:focus { transform: translateY(0); }
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
    outline: 3px solid #f5b942;
    outline-offset: 3px;
}
button, .btn, input, select, textarea { min-height: 44px; }
.visually-hidden-focusable:not(:focus):not(:focus-within) {
    position: absolute !important;
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
    }
}

@media (prefers-contrast: more) {
    a { text-decoration-thickness: 0.16em; }
    a:focus-visible,
    button:focus-visible,
    input:focus-visible,
    select:focus-visible,
    textarea:focus-visible {
        outline-width: 4px;
    }
}

@media (forced-colors: active) {
    a:focus-visible,
    button:focus-visible,
    input:focus-visible,
    select:focus-visible,
    textarea:focus-visible {
        outline: 3px solid CanvasText;
    }
}
