html { scroll-behavior: smooth; }
body { font-family: "Outfit", system-ui, sans-serif; background: #0A0A0A; color: #F5F5F0; }
::selection { background: #A11D27; color: #fff; }

::-webkit-scrollbar { width: 10px; }
::-webkit-scrollbar-track { background: #0A0A0A; }
::-webkit-scrollbar-thumb { background: #2A2A2A; border-radius: 8px; }
::-webkit-scrollbar-thumb:hover { background: #A11D27; }

#site-header { background: transparent; backdrop-filter: blur(0px); }
#site-header.scrolled { background: rgba(0,0,0,.75); backdrop-filter: blur(18px); border-bottom-color: rgba(255,255,255,.05); }
#site-header.faded { opacity: .35; }
#site-header:hover { opacity: 1 !important; }

.kicker { display: inline-flex; align-items: center; gap: 12px; text-transform: uppercase; letter-spacing: .25em; font-size: .75rem; color: #A11D27; font-weight: 600; }
.kicker::before { content: ""; width: 28px; height: 1px; background: #A11D27; display: inline-block; }

.nav-link { position: relative; padding: 6px 2px; }
.nav-link::after { content: ""; position: absolute; left: 0; bottom: 0; width: 0; height: 1px; background: #A11D27; transition: width .28s ease; }
.nav-link:hover::after { width: 100%; }

.btn-red { position: relative; overflow: hidden; isolation: isolate; transition: transform .25s ease; }
.btn-red::before { content: ""; position: absolute; inset: 0; background: #8B1A1A; transform: translateX(-101%); transition: transform .35s cubic-bezier(.65,0,.35,1); z-index: -1; }
.btn-red:hover::before { transform: translateX(0); }

.service-card { transition: transform .32s cubic-bezier(.16,1,.3,1), border-color .32s ease, box-shadow .32s ease, background-color .32s ease; }
.service-card:hover { transform: translateY(-6px); border-color: rgba(161,29,39,.55); box-shadow: 0 24px 60px -28px rgba(161,29,39,.55); background-color: #161616; }

.gallery-item img { transition: transform .7s cubic-bezier(.16,1,.3,1); }
.gallery-item:hover img { transform: scale(1.06); }

@keyframes reveal-up { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: translateY(0); } }
.reveal-up { animation: reveal-up .9s cubic-bezier(.16,1,.3,1) both; }

.tab-btn.is-active { color: #F5F5F0; border-bottom-color: #A11D27; }
