/* Shared site design tokens. Scoped to the static homepage during design approval. */
@font-face { font-family: 'DM Sans'; src: url('../../fonts/dm-sans-variable.ttf') format('truetype'); font-weight: 100 1000; font-style: normal; font-display: swap; }
@font-face { font-family: 'Poppins'; src: url('../../fonts/poppins-regular.ttf') format('truetype'); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: 'Poppins'; src: url('../../fonts/poppins-medium.ttf') format('truetype'); font-weight: 500; font-style: normal; font-display: swap; }
@font-face { font-family: 'Poppins'; src: url('../../fonts/poppins-semibold.ttf') format('truetype'); font-weight: 600; font-style: normal; font-display: swap; }
@font-face { font-family: 'Poppins'; src: url('../../fonts/poppins-bold.ttf') format('truetype'); font-weight: 700; font-style: normal; font-display: swap; }
.site-theme {
    --color-text: #244436;
    --color-white: #ffffff;
    --color-stone: #eae5dd;
    --color-border: #d2d8d1;
    --color-muted: #516257;
    --color-accent: #004018;
    --color-primary: #004018;
    --color-primary-hover: #002e11;
    --font-body: 'Poppins', sans-serif;
    --font-heading: 'Poppins', sans-serif;
    --font-small: 'DM Sans', sans-serif;
    margin: 0;
    background: var(--color-white);
    color: var(--color-text);
    font-family: var(--font-body);
}
.site-theme ::selection { background: var(--color-primary); color: var(--color-white); }
.site-theme a, .site-theme a:hover { text-decoration: none; }
.site-theme :focus-visible { outline: 3px solid var(--color-primary); outline-offset: 5px; }
.site-theme .container { max-width: 1360px; padding-inline: 40px; }
.site-button {
    font-family: var(--font-small);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 22px;
    min-height: 54px;
    padding: 14px 24px;
    border: 1px solid transparent;
    border-radius: 4px;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
    transition: background-color 180ms ease, color 180ms ease, transform 180ms ease;
}
.site-button-primary { background: var(--color-primary); color: var(--color-white); }
.site-button-primary i { color: inherit; }
.site-button-primary:hover { background: var(--color-primary-hover); color: var(--color-white); }
.site-button-outline { border-color: var(--color-primary); color: var(--color-text); }
.site-button-outline:hover { background: var(--color-stone); color: var(--color-text); }
@media (hover: hover) and (pointer: fine) {
    .site-button:hover { transform: translateY(-2px); }
}
.site-button:active { transform: scale(.98); }
.operations-controls button { transition: transform 180ms ease-out, background-color 180ms ease-out; }
.operations-controls button:active:not(:disabled) { transform: scale(.95); }
.site-skip { position: fixed; top: -100px; left: 20px; z-index: 1100; background: var(--color-white); padding: 14px; color: var(--color-text); }
.site-skip:focus { top: 12px; }
@media (max-width: 767.98px) {
    .site-theme .container { padding-inline: 24px; }
}
.scroll-reveal { transition: opacity 550ms cubic-bezier(.23, 1, .32, 1), transform 550ms cubic-bezier(.23, 1, .32, 1); transition-delay: var(--reveal-delay, 0ms); }
.scroll-reveal.is-reveal-pending { opacity: 0; transform: translateY(24px); }
.scroll-reveal.reveal-photo.is-reveal-pending { transform: translateY(24px) scale(.97); }
.scroll-reveal:focus-within { opacity: 1; transform: none; transition-delay: 0ms; }
@media (max-width: 767.98px) {
    .scroll-reveal { transition-duration: 400ms; }
    .scroll-reveal.is-reveal-pending { transform: translateY(16px); }
    .scroll-reveal.reveal-photo.is-reveal-pending { transform: translateY(16px) scale(.98); }
}
@media (prefers-reduced-motion: reduce) {
    .scroll-reveal.is-reveal-pending { opacity: 1; transform: none; }
    .site-theme *, .site-theme *::before, .site-theme *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}
