/* ============ RESET + BASE TYPOGRAPHY ============ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
html{-webkit-text-size-adjust:100%}
body{
  font-family:var(--font);
  font-weight:400;
  font-size:var(--fs-base);
  line-height:var(--lh-body);
  color:var(--fg);
  background:var(--bg);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow:hidden; /* horizontal engine controls scroll */
}
img,video{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}
::selection{background:var(--gold-400);color:var(--navy-900)}

/* Headings */
h1,h2,h3,h4{font-weight:800;line-height:var(--lh-tight);letter-spacing:-.01em}
h1{font-size:var(--fs-5xl)}
h2{font-size:var(--fs-3xl)}
h3{font-size:var(--fs-xl)}
h4{font-size:var(--fs-md);font-weight:700}
p{max-width:60ch}
em{font-style:normal;color:var(--gold-400)}

/* Semantic utilities (purpose-based, reusable) */
.u-eyebrow{font-size:var(--fs-nav);font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-400)}
.u-muted{color:var(--snow-muted)}
.u-gold{color:var(--gold-400)}
.u-container{padding:0 var(--s10)}
.u-vh{height:100vh}

/* Buttons */
.btn{display:inline-flex;align-items:center;gap:var(--s1);padding:var(--s2) var(--s4);
  font-size:var(--fs-nav);font-weight:600;letter-spacing:.02em;border-radius:var(--radius);
  transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}
.btn--gold{background:var(--gold-400);color:var(--navy-900)}
.btn--gold:hover{background:var(--gold-300)}
.btn--ghost{border:var(--stroke) solid var(--snow-muted);color:var(--snow)}
.btn--ghost:hover{border-color:var(--gold-400);color:var(--gold-400)}

/* ============ REVEAL ON VIEW ============ */
[data-reveal]{opacity:0;transform:translateY(28px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
[data-reveal].in{opacity:1;transform:none}
