*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

:root{
  --black:#0a0a0a;
  --white:#f8f6f1;
  --gray:#e8e6e1;
  --mid:#b0ada7;
  --dim:#6b6863;
  --fd:'Bebas Neue',sans-serif;
  --fb:'DM Sans',sans-serif;
  --fm:'DM Mono',monospace;
}

html{scroll-behavior:smooth}
body{background:var(--white);color:var(--black);font-family:var(--fb);font-size:16px;line-height:1.6;overflow-x:hidden;cursor:none}
a{color:inherit;text-decoration:none}

/* GRAIN */
#grain{position:fixed;inset:0;z-index:9000;pointer-events:none;opacity:.055}

/* CURSOR */
#cursor{position:fixed;z-index:9999;pointer-events:none;width:10px;height:10px;background:var(--black);border-radius:50%;transform:translate(-50%,-50%);transition:width .2s,height .2s,opacity .2s}
#cursor-ring{position:fixed;z-index:9998;pointer-events:none;width:36px;height:36px;border:1px solid var(--black);border-radius:50%;transform:translate(-50%,-50%);opacity:.35;transition:width .25s,height .25s}
.cur-big #cursor{width:48px;height:48px;opacity:.07}
.cur-big #cursor-ring{opacity:0}

/* NAV */
nav{position:fixed;top:0;left:0;right:0;z-index:500;display:flex;align-items:center;justify-content:space-between;padding:0 40px;height:56px;background:var(--white);border-bottom:1px solid var(--gray)}
.nav-logo{font-family:var(--fm);font-size:13px;letter-spacing:.04em}
.nav-links{display:flex;gap:32px;list-style:none}
.nav-links a{font-family:var(--fm);font-size:12px;color:var(--dim);letter-spacing:.06em;text-transform:uppercase;transition:color .2s}
.nav-links a:hover,.nav-links a.active{color:var(--black)}

/* SCROLL REVEAL */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1)}
.reveal.s1{transition-delay:.08s}
.reveal.s2{transition-delay:.16s}
.reveal.s3{transition-delay:.24s}
.reveal.on{opacity:1;transform:none}

/* HERO FADE IN */
@keyframes up{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
.fi{opacity:0;animation:up .7s cubic-bezier(.16,1,.3,1) forwards}
.fi.d1{animation-delay:.1s}
.fi.d2{animation-delay:.2s}
.fi.d3{animation-delay:.3s}
.fi.d4{animation-delay:.4s}

/* SHARED */
.btn{font-family:var(--fm);font-size:12px;letter-spacing:.06em;text-transform:uppercase;padding:12px 24px;border:1px solid var(--black);color:var(--black);transition:background .2s,color .2s;display:inline-block}
.btn:hover{background:var(--black);color:var(--white)}
.btn-fill{background:var(--black);color:var(--white)}
.btn-fill:hover{background:var(--dim);border-color:var(--dim)}
.sec-head{padding:48px 40px 32px;border-top:1px solid var(--gray)}
.sec-label{font-family:var(--fm);font-size:11px;color:var(--dim);letter-spacing:.1em;text-transform:uppercase;margin-bottom:8px}
.sec-title{font-family:var(--fd);font-size:clamp(32px,5vw,64px);line-height:.95;letter-spacing:-.01em}
