*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-ui);font-size:14px;line-height:1.55;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh}
img,svg,video,canvas{display:block;max-width:100%}
img{height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
input,select,textarea{font:inherit;color:inherit}
h1,h2,h3,h4,h5{margin:0;font-weight:400;line-height:1.1}
p{margin:0}
ul,ol{margin:0;padding:0;list-style:none}
hr{border:0;border-top:1px solid var(--line);margin:0}
::selection{background:rgba(212,181,122,.35);color:#fff}
:focus-visible{outline:2px solid var(--gold);outline-offset:2px;border-radius:var(--r-sm)}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:rgba(255,255,255,.12);border-radius:10px;border:3px solid transparent;background-clip:padding-box}
::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.22);border:3px solid transparent;background-clip:padding-box}
[hidden]{display:none!important}
.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}

/* Typography */
.display{font-family:var(--font-display);font-weight:400;letter-spacing:-.02em;line-height:1.02}
.display-xl{font-size:clamp(44px,7vw,92px)}
.display-lg{font-size:clamp(36px,5vw,64px)}
.display-md{font-size:clamp(28px,3.4vw,44px)}
.display-sm{font-size:clamp(22px,2.4vw,30px)}
.eyebrow{font-family:var(--font-ui);font-size:11px;letter-spacing:.32em;text-transform:uppercase;color:var(--gold);font-weight:500}
.eyebrow--line{display:flex;align-items:center;gap:14px}
.eyebrow--line::before{content:"";width:44px;height:1px;background:var(--gold)}
.lede{font-size:clamp(16px,1.4vw,19px);color:var(--text-2);line-height:1.55;max-width:56ch}
.gold{color:var(--gold-2)}
.muted{color:var(--muted)}
.serif{font-family:var(--font-display)}
.script{font-family:"Playfair Display",serif;font-style:italic;color:var(--gold);letter-spacing:.02em}
.tiny-caps{font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--muted);line-height:1.9}
.tiny-caps--gold{color:var(--gold)}

/* Layout helpers */
.container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:clamp(16px,3vw,40px)}
.stack{display:flex;flex-direction:column;gap:var(--s-4)}
.row{display:flex;align-items:center;gap:var(--s-3)}
.row--between{justify-content:space-between}
.row--wrap{flex-wrap:wrap}
.grow{flex:1 1 auto;min-width:0}
.center{display:grid;place-items:center}
.section{padding-block:clamp(56px,8vw,120px)}
.section--tight{padding-block:clamp(32px,5vw,72px)}
.mt-1{margin-top:var(--s-1)}.mt-2{margin-top:var(--s-2)}.mt-3{margin-top:var(--s-3)}.mt-4{margin-top:var(--s-4)}.mt-6{margin-top:var(--s-6)}.mt-8{margin-top:var(--s-8)}
.mb-2{margin-bottom:var(--s-2)}.mb-4{margin-bottom:var(--s-4)}.mb-6{margin-bottom:var(--s-6)}.mb-8{margin-bottom:var(--s-8)}
.text-center{text-align:center}
.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cover{object-fit:cover;width:100%;height:100%}
.aspect-3-2{aspect-ratio:3/2}.aspect-4-5{aspect-ratio:4/5}.aspect-16-9{aspect-ratio:16/9}.aspect-1{aspect-ratio:1}
.hairline{border-top:1px solid var(--line)}

/* Animations */
@keyframes fadeUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes shimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}
.fade-up{animation:fadeUp .7s var(--ease) both}
.fade-up[data-delay="1"]{animation-delay:.1s}.fade-up[data-delay="2"]{animation-delay:.2s}.fade-up[data-delay="3"]{animation-delay:.3s}.fade-up[data-delay="4"]{animation-delay:.4s}
.reveal{opacity:0;transform:translateY(18px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}
