/* Native controls and interaction states shared by every page. */
[hidden] { display: none !important; }
button, summary, select { -webkit-tap-highlight-color: transparent; }
[data-header].is-scrolled { border-color: var(--border); background: color-mix(in oklch, var(--background) 85%, transparent); backdrop-filter: blur(12px); }
.mobile-menu { position: fixed; inset: 0 0 auto; margin: 0; width: 100%; max-width: none; max-height: 90svh; overflow: auto; border: 0; background: var(--background); color: var(--foreground); box-shadow: 0 20px 50px #0003; }
.mobile-menu::backdrop { background: #0008; }
.menu-close { position: absolute; top: 20px; right: 20px; }
html.menu-is-open { overflow: hidden; }
summary { list-style: none; gap: 12px; }
summary::-webkit-details-marker { display: none; }
details[open] > summary svg { transform: rotate(180deg); }
.gallery-viewport { overflow-x: auto; overflow-y: hidden; scrollbar-width: none; scroll-snap-type: x mandatory; overscroll-behavior-x: contain; touch-action: pan-x pan-y; }
.gallery-viewport::-webkit-scrollbar { display: none; }
[data-slide-track] > * { scroll-snap-align: start; }
[data-carousel] { min-width: 0; }
[data-slide-track] { cursor: grab; }
[data-slide-track]:active { cursor: grabbing; }
[data-slide-track] img { user-select: none; -webkit-user-drag: none; }
.field-error { color: var(--destructive); font-size: 12px; font-weight: 500; line-height: 1.5; }
[aria-invalid="true"] { border-color: var(--destructive); }
#demo-success:focus { outline: none; }
#demo-form[aria-busy="true"] button[type="submit"] { cursor: wait; opacity: .5; }
.form-again { display: inline-flex; align-items: center; justify-content: center; margin-top: 24px; height: 36px; padding: 8px 16px; border: 1px solid var(--input); border-radius: 9999px; background: var(--background); font-size: 14px; font-weight: 500; cursor: pointer; transition: background .2s; }
.form-again:hover { background: var(--accent); }
[data-reveal] { opacity: 1; transform: none; }
@media (prefers-reduced-motion: no-preference) {
 [data-reveal].reveal-pending { opacity: 0; transform: translateY(14px); }
}
@media (max-width: 639px) {
 [role="tablist"] { border-radius: 24px; }
}

