body { -webkit-font-smoothing: antialiased; }
::selection { background:#e3cb84; color:#0a1626; }
::-webkit-scrollbar { width:10px; }
::-webkit-scrollbar-track { background:#f4f0e7; }
::-webkit-scrollbar-thumb { background:#d4b157; border-radius:10px; }
#navbar { background: rgba(255,255,255,.85); -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); border-bottom: 1px solid rgba(19,34,56,.06); transition: all .45s ease; }
#navbar.is-scrolled { background: rgba(255,255,255,.97); box-shadow: 0 14px 40px -26px rgba(19,34,56,.45); border-bottom-color: rgba(193,154,52,.3); }
.nav-shell { height:5.25rem; transition: height .45s ease; }
#navbar.is-scrolled .nav-shell { height:4.5rem; }
.nav-link { position:relative; }
.nav-link::after { content:''; position:absolute; left:0; bottom:-7px; height:2px; width:0; background:linear-gradient(90deg,#c19a34,#e3cb84); border-radius:2px; transition: width .35s cubic-bezier(.22,1,.36,1); }
.nav-link:hover::after, .nav-link.active::after { width:100%; }
.nav-link.active { color:#a37e26; }
#mobileMenu { max-height:0; overflow:hidden; transition: max-height .55s cubic-bezier(.22,1,.36,1); }
#mobileMenu.open { max-height: 34rem; }
.grid-pattern { background-image: linear-gradient(rgba(19,34,56,.045) 1px, transparent 1px), linear-gradient(90deg, rgba(19,34,56,.045) 1px, transparent 1px); background-size: 56px 56px; }
.gold-rule { width:68px; height:3px; border-radius:3px; background:linear-gradient(90deg,#c19a34,#e3cb84); }
.text-gold-grad { background:linear-gradient(92deg,#a37e26 0%,#c19a34 45%,#82621d 100%); -webkit-background-clip:text; background-clip:text; color:transparent; }
.btn-gold { background: linear-gradient(135deg,#e3cb84 0%,#c19a34 100%); transition: transform .35s cubic-bezier(.22,1,.36,1), box-shadow .35s ease; position:relative; overflow:hidden; }
.btn-gold::before { content:''; position:absolute; inset:0; background:linear-gradient(90deg,transparent,rgba(255,255,255,.5),transparent); transform:translateX(-100%); transition: transform .8s ease; }
.btn-gold:hover::before { transform:translateX(100%); }
.btn-gold:hover { transform:translateY(-3px); box-shadow:0 16px 34px -14px rgba(193,154,52,.85); }
.btn-outline-navy { border:1px solid rgba(19,34,56,.28); color:#132238; transition: all .35s cubic-bezier(.22,1,.36,1); }
.btn-outline-navy:hover { background:#132238; color:#fff; border-color:#132238; transform:translateY(-3px); }
.card-lift { transition: transform .5s cubic-bezier(.22,1,.36,1), box-shadow .5s ease, border-color .5s ease; }
.card-lift:hover { transform: translateY(-8px); box-shadow: 0 34px 60px -30px rgba(19,34,56,.32); border-color: rgba(212,177,87,.6); }
.zoom-wrap { overflow:hidden; }
.zoom-wrap img { transition: transform .9s cubic-bezier(.22,1,.36,1); }
.zoom-wrap:hover img { transform: scale(1.07); }
.reveal { opacity:0; transform: translateY(28px); transition: opacity .8s cubic-bezier(.22,1,.36,1), transform .8s cubic-bezier(.22,1,.36,1); }
.reveal.in-view { opacity:1; transform:none; }
.filter-chip { transition: all .3s cubic-bezier(.22,1,.36,1); }
.filter-chip.active { background:#132238; color:#fff; border-color:#132238; }
.filter-chip.active i { color:#d4b157; }
.range-slider { -webkit-appearance:none; appearance:none; height:4px; background:#eaeff7; border-radius:2px; outline:none; }
.range-slider::-webkit-slider-thumb { -webkit-appearance:none; width:18px; height:18px; background:#c19a34; border-radius:50%; cursor:pointer; border:3px solid #fff; box-shadow:0 4px 10px -2px rgba(19,34,56,.3); transition: transform .2s ease; }
.range-slider::-webkit-slider-thumb:hover { transform: scale(1.15); }
.range-slider::-moz-range-thumb { width:18px; height:18px; background:#c19a34; border-radius:50%; cursor:pointer; border:3px solid #fff; }
.prop-card { transition: opacity .5s ease, transform .5s cubic-bezier(.22,1,.36,1); }
.prop-card.hidden-card { display: none; }
@keyframes fadeInUp { from { opacity:0; transform:translateY(14px); } to { opacity:1; transform:none; } }
.anim-in { animation: fadeInUp .5s cubic-bezier(.22,1,.36,1) both; }
#toTop { transition: opacity .4s ease, transform .4s ease; }
#toTop.show { opacity:1; transform: translateY(0); pointer-events: auto; }
@media (prefers-reduced-motion: reduce) { * { animation-duration:.01ms !important; transition-duration:.01ms !important; } }
