
:root{
  --charcoal:#2B2B2B; --terracotta:#B8564F; --terracotta-soft:#D98880;
  --paper:#FBF7F1; --sable:#F6EEE4; --gold:#B8925A; --rose:#E8B4B8;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{cursor:none;}
@media (max-width:768px){ body{cursor:auto;} .cursor-dot,.cursor-ring{display:none;} }

.font-display{font-family:'Fraunces',serif;}

/* progress bar */
#progress-bar{position:fixed; top:0; left:0; height:3px; background:linear-gradient(90deg,var(--terracotta),var(--gold)); width:0%; z-index:60; transition:width .1s ease;}

/* custom cursor */
.cursor-dot{position:fixed; width:8px; height:8px; background:var(--charcoal); border-radius:50%; pointer-events:none; z-index:70; transform:translate(-50%,-50%); transition:transform .15s ease;}
.cursor-ring{position:fixed; width:36px; height:36px; border:1.5px solid var(--terracotta); border-radius:50%; pointer-events:none; z-index:69; transform:translate(-50%,-50%); transition:transform .25s ease, width .25s, height .25s, opacity .25s;}
.cursor-ring.grow{width:64px; height:64px; opacity:.6;}

/* header */
#siteHeader{background:rgba(251,247,241,0);}
#siteHeader.scrolled{background:rgba(251,247,241,0.92); backdrop-filter:blur(10px); box-shadow:0 1px 0 rgba(0,0,0,0.05);}
.nav-link{position:relative; color:var(--charcoal); opacity:.75; transition:opacity .2s;}
.nav-link:hover{opacity:1;}
.nav-link.active-link{opacity:1;}
.nav-link.active-link::after{content:''; position:absolute; left:0; right:0; bottom:-6px; height:2px; background:var(--terracotta); border-radius:2px;}
.magnetic{will-change:transform;}
.social-btn{width:36px; height:36px; border:1px solid rgba(255,255,255,0.2); border-radius:9999px; display:flex; align-items:center; justify-content:center; font-size:11px; letter-spacing:.05em; transition:all .2s;}
.social-btn:hover{background:var(--terracotta); border-color:var(--terracotta);}

/* reveal */
.reveal{opacity:0; transform:translateY(28px);}

/* blobs */
.blob{position:absolute; border-radius:50%; filter:blur(60px); opacity:.55; z-index:0;}
@keyframes float{0%,100%{transform:translate(0,0) scale(1);} 50%{transform:translate(20px,-30px) scale(1.08);}}
.blob-anim{animation:float 12s ease-in-out infinite;}

/* hero headline reveal */
.word{display:inline-block; overflow:hidden; padding-bottom:0.08em;}
.word span{display:inline-block; transform:translateY(110%);}

/* stat counters */
.stat-num{font-variant-numeric:tabular-nums;}

/* offer cards */
.offer-card{position:relative; background:white; border:1px solid rgba(0,0,0,0.06); border-radius:1.25rem; padding:2rem; transition:transform .35s ease, box-shadow .35s ease;}
.offer-card:hover{transform:translateY(-6px); box-shadow:0 20px 40px -20px rgba(43,43,43,0.25);}
.offer-highlight{border:2px solid var(--terracotta); transform:scale(1.03);}
.offer-highlight:hover{transform:scale(1.03) translateY(-6px);}
.ribbon{position:absolute; top:-14px; left:2rem; background:var(--terracotta); color:white; font-size:.7rem; padding:.3rem .8rem; border-radius:9999px; letter-spacing:.05em;}

/* tilt cards */
.tilt-card{transition:transform .25s ease, box-shadow .25s ease; transform-style:preserve-3d;}
.tilt-card:hover{box-shadow:0 24px 48px -24px rgba(0,0,0,0.35);}

/* marquee */
.marquee-track{display:flex; gap:3rem; white-space:nowrap; animation:marquee 26s linear infinite;}
@keyframes marquee{from{transform:translateX(0);} to{transform:translateX(-50%);}}

/* faq */
.faq-icon{font-size:1.1rem;}
.faq-item.open .faq-icon{transform:rotate(45deg); background:var(--terracotta); color:white; border-color:var(--terracotta);}

/* buttons shine */
.btn-shine{position:relative; overflow:hidden;}
.btn-shine::after{content:''; position:absolute; top:0; left:-75%; width:50%; height:100%; background:linear-gradient(120deg, transparent, rgba(255,255,255,.5), transparent); transform:skewX(-20deg);}
.btn-shine:hover::after{animation:shine .8s ease;}
@keyframes shine{from{left:-75%;} to{left:130%;}}

/* gradient text */
.grad-text{background:linear-gradient(90deg,var(--terracotta),var(--gold)); -webkit-background-clip:text; background-clip:text; color:transparent;}

/* underline link */
.link-underline{background-image:linear-gradient(var(--terracotta),var(--terracotta)); background-size:0% 1px; background-position:0 100%; background-repeat:no-repeat; transition:background-size .3s;}
.link-underline:hover{background-size:100% 1px;}

/* input focus */
input:focus,textarea:focus{outline:none; box-shadow:0 0 0 3px rgba(184,86,79,0.15); border-color:var(--terracotta);}

/* timeline */
.timeline-dot{width:12px; height:12px; border-radius:50%; background:var(--terracotta);}

/* scrollbar */
::-webkit-scrollbar{width:8px;}
::-webkit-scrollbar-thumb{background:var(--rose); border-radius:4px;}
