:root { color-scheme: light; }
* { -webkit-tap-highlight-color: transparent; }
html { scroll-padding-top: 5.5rem; }
body { min-height: 100vh; }
a, button, input, textarea, select, summary { outline-offset: 3px; }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible, summary:focus-visible { outline: 3px solid rgba(184,92,56,.45); }
.arch-grid {
    background-image:
        linear-gradient(rgba(28,25,23,.055) 1px, transparent 1px),
        linear-gradient(90deg, rgba(28,25,23,.055) 1px, transparent 1px);
    background-size: 28px 28px;
}
.text-balance { text-wrap: balance; }
.prose-copy p + p { margin-top: 1rem; }
.project-image { aspect-ratio: 4 / 3; object-fit: cover; background: #f5f0e8; }
.faq-item[open] { border-color: rgba(184,92,56,.35); }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after { content: '+'; margin-left: auto; color: #b85c38; font-size: 1.35rem; font-weight: 900; }
.faq-item[open] summary::after { content: '−'; }
.cookie-banner { position: fixed; z-index: 70; left: 1rem; right: 1rem; bottom: 5.75rem; }
.cookie-banner__content { max-width: 62rem; margin: 0 auto; display: grid; gap: 1rem; padding: 1rem; border: 1px solid #d6d3d1; border-radius: 1.25rem; background: rgba(255,255,255,.98); box-shadow: 0 24px 70px rgba(28,25,23,.2); }
.cookie-banner__actions { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; }
@media (min-width: 640px) {
    .cookie-banner { bottom: 1rem; }
    .cookie-banner__content { grid-template-columns: 1fr auto; align-items: center; padding: 1.25rem; }
    .cookie-banner__actions { display: flex; }
}
@media (prefers-reduced-motion: no-preference) {
    .reveal { animation: rise .55s ease both; }
    @keyframes rise { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } }
}
