*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{background:#14140F;color:#EDE8DC;font-family:'Inter',sans-serif;overflow-x:hidden;}
::selection{background:#7CB82C;color:#14140F;}

/* Nav — mix-blend-difference so it self-inverts and stays legible over any background */
#nav{position:fixed;top:0;left:0;right:0;z-index:90;padding:1.4rem 1.5rem;mix-blend-mode:difference;transition:padding .4s ease;}
@media(min-width:768px){ #nav{padding:1.5rem 3rem;} }
#nav.scrolled{padding:.9rem 1.5rem;}
@media(min-width:768px){ #nav.scrolled{padding:.9rem 3rem;} }
#nav, #nav a, #nav span{color:#FFFFFF !important;}
.nav-logo-icon{height:56px;width:auto;}
@media(min-width:768px){ .nav-logo-icon{height:68px;} }
.u-link{position:relative;font-size:.8rem;letter-spacing:.12em;}
.u-link::after{content:'';position:absolute;left:0;bottom:-5px;width:100%;height:1px;background:#FFED00;transform:scaleX(0);transform-origin:left;transition:transform .35s cubic-bezier(.22,1,.36,1);}
.u-link:hover::after{transform:scaleX(1);}
.u-link.current::after{transform:scaleX(1);}
.nav-cta{border:1px solid rgba(255,255,255,.6) !important;color:#fff !important;font-size:.76rem;letter-spacing:.1em;padding:.7rem 1.4rem;border-radius:999px;transition:background .3s ease,color .3s ease;}
.nav-cta:hover{background:#fff !important;color:#000 !important;}

/* Mobile hamburger + drawer */
.hamburger{display:flex;flex-direction:column;justify-content:center;gap:5px;width:32px;height:32px;background:none;border:none;cursor:pointer;padding:0;}
.hamburger span{display:block;width:100%;height:2px;background:#fff;border-radius:2px;transition:transform .3s ease,opacity .3s ease;}
.hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.hamburger.open span:nth-child(2){opacity:0;}
.hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
@media(min-width:768px){ .hamburger{display:none;} }

#mobileDrawer{position:fixed;inset:0;z-index:120;background:#0F0F0E;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:1.7rem;opacity:0;visibility:hidden;transition:opacity .4s ease,visibility .4s ease;}
#mobileDrawer.open{opacity:1;visibility:visible;}
#mobileDrawer a{font-family:'Playfair Display',serif;font-size:1.7rem;color:#F5F0EB;text-decoration:none;letter-spacing:.01em;}
#mobileDrawer a.current{color:#F2C94C;}
#mobileDrawer .drawer-cta{margin-top:1rem;font-family:'Inter',sans-serif;font-size:.8rem;text-transform:uppercase;letter-spacing:.15em;background:#7CB82C;color:#0F0F0E;padding:.9rem 2rem;font-weight:500;}
@media(min-width:768px){ #mobileDrawer{display:none;} }

/* Reveal-on-scroll */
@keyframes fadeUp{from{opacity:0;transform:translateY(26px);}to{opacity:1;transform:translateY(0);}}
.reveal{opacity:0;animation:fadeUp 1s cubic-bezier(.22,1,.36,1) forwards;}
.reveal.on-scroll{animation-play-state:paused;}
.reveal.on-scroll.in-view{animation-play-state:running;}

.no-scrollbar::-webkit-scrollbar{display:none;}
.no-scrollbar{-ms-overflow-style:none;scrollbar-width:none;}

/* Tabs (pricing / services pages) */
.tab-panel{display:none;}
.tab-panel.active{display:block;}
.tab-btn{border:1px solid rgba(237,232,220,.18);color:rgba(237,232,220,.65);}
.tab-btn.active{color:#14140F;background:#F2C94C;border-color:#F2C94C;}

/* Grain */
#grain{position:fixed;inset:0;z-index:85;opacity:.04;pointer-events:none;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");}

/* Custom cursor */
#curDot{position:fixed;top:0;left:0;width:8px;height:8px;border-radius:50%;background:#fff;mix-blend-mode:difference;pointer-events:none;z-index:150;}
#curRing{position:fixed;top:0;left:0;width:34px;height:34px;border-radius:50%;border:1px solid #fff;mix-blend-mode:difference;pointer-events:none;z-index:150;transition:width .25s ease,height .25s ease,margin .25s ease;}
@media(pointer:coarse){ #curDot,#curRing{display:none !important;} body{cursor:auto !important;} }

/* Scroll progress rail */
#rail{position:fixed;left:1.6rem;top:50%;transform:translateY(-50%);z-index:90;display:flex;flex-direction:column;align-items:center;gap:.9rem;pointer-events:none;mix-blend-mode:difference;}
#rail .track{position:relative;width:1px;height:120px;background:rgba(255,255,255,.35);}
#rail .fill{position:absolute;top:0;left:0;width:100%;background:#fff;height:0%;transition:height .1s linear;}
@media(max-width:1024px){ #rail{display:none;} }

@media (prefers-reduced-motion: reduce){*{animation-duration:.01ms!important;}}
