/* base reset + globals */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;scroll-behavior:smooth;
  scroll-padding-top:5.5rem;
}
body{
  min-height:100dvh;line-height:1.6;
  font-family:var(--font-body);font-size:var(--text-base);
  color:var(--color-text);background:var(--color-bg);
  transition:background var(--transition),color var(--transition);
  overflow-x:hidden;
}
img,svg,video{display:block;max-width:100%;height:auto}
ul[role='list']{list-style:none}
input,button,textarea,select{font:inherit;color:inherit}
h1,h2,h3,h4{text-wrap:balance;line-height:1.1;color:var(--color-ink);font-family:var(--font-display);font-weight:560}
p{text-wrap:pretty;max-width:64ch}
a{color:inherit;text-decoration:none}
button{cursor:pointer;background:none;border:none}
::selection{background:rgba(180,138,60,0.28);color:var(--color-ink)}
:focus-visible{outline:2px solid var(--color-gold);outline-offset:3px;border-radius:var(--radius-sm)}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}

a,button,input,textarea,select,.card,.chip,.btn{
  transition:color var(--transition),background var(--transition),
    border-color var(--transition),box-shadow var(--transition),transform var(--transition);
}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* layout helpers */
.wrap{width:100%;max-width:var(--content-wide);margin-inline:auto;padding-inline:clamp(1.25rem,4vw,3rem)}
.wrap--narrow{max-width:var(--content-narrow)}
.wrap--default{max-width:var(--content-default)}
section{padding-block:clamp(var(--space-16),8vw,var(--space-32))}

.eyebrow{
  font-family:var(--font-body);font-weight:600;
  font-size:var(--text-xs);letter-spacing:.18em;text-transform:uppercase;
  color:var(--color-gold);display:inline-flex;align-items:center;gap:.55rem;
}
.eyebrow::before{content:"";width:1.75rem;height:1px;background:var(--color-gold);display:inline-block}

.section-title{font-size:var(--text-2xl);letter-spacing:-0.02em;margin-top:var(--space-4)}
.section-lead{color:var(--color-text-muted);font-size:var(--text-lg);max-width:56ch;margin-top:var(--space-5)}

/* buttons */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.55rem;
  font-weight:600;font-size:var(--text-sm);letter-spacing:.01em;
  padding:.85rem 1.5rem;border-radius:var(--radius-full);
  border:1px solid transparent;white-space:nowrap;
}
.btn svg{width:1.05em;height:1.05em}
.btn--gold{background:var(--color-gold);color:#16110a;box-shadow:var(--shadow-gold)}
.btn--gold:hover{background:var(--color-gold-hover);transform:translateY(-2px)}
.btn--ink{background:var(--color-ink);color:var(--color-text-inverse)}
.btn--ink:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}
.btn--ghost{background:transparent;color:var(--color-ink);border-color:var(--color-border)}
.btn--ghost:hover{border-color:var(--color-gold);color:var(--color-gold)}
.btn--light{background:rgba(255,255,255,.10);color:#fff;border-color:rgba(255,255,255,.28);backdrop-filter:blur(6px)}
.btn--light:hover{background:rgba(255,255,255,.18);transform:translateY(-2px)}

/* parcel-line texture utility */
.parcel-bg{
  background-image:
    linear-gradient(var(--color-grid) 1px,transparent 1px),
    linear-gradient(90deg,var(--color-grid) 1px,transparent 1px);
  background-size:48px 48px;
}

/* 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.in{opacity:1;transform:none}
