/* ASL Legacy — design system unifié */
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;1,300;1,400&family=Jost:wght@300;400;500&display=swap');

:root {
  --ink:    #0b0a07;
  --ink2:   #131109;
  --ink3:   #1a1814;
  --cream:  #f6f3ee;
  --sand:   #ede8df;
  --ivory:  #e8e0d4;
  --gold:   #c4a55a;
  --gold-d: rgba(196,165,90,.55);
  --muted:  #6e6558;
  --border: rgba(196,165,90,.11);
  --bm:     rgba(196,165,90,.22);
  --bh:     rgba(196,165,90,.38);
  --ease:   cubic-bezier(.16,1,.3,1);
}

*,*::before,*::after { box-sizing:border-box; margin:0; padding:0 }
html { scroll-behavior:smooth }
body {
  font-family:'Jost',sans-serif;
  background:var(--ink);
  color:var(--cream);
  overflow-x:hidden;
  cursor:none;
  -webkit-font-smoothing:antialiased;
}

/* Custom cursor */
#cur {
  position:fixed; width:4px; height:4px;
  background:var(--gold); border-radius:50%;
  pointer-events:none; z-index:9999;
  transform:translate(-50%,-50%);
}
#curR {
  position:fixed; width:28px; height:28px;
  border:1px solid var(--bh); border-radius:50%;
  pointer-events:none; z-index:9998;
  transform:translate(-50%,-50%);
  transition:width .3s var(--ease),height .3s var(--ease),opacity .3s;
}
#curR.xl { width:56px; height:56px; opacity:.35 }

/* Navigation */
.nav {
  position:fixed; top:0; left:0; right:0; z-index:500;
  padding:24px 80px;
  display:flex; align-items:center; justify-content:space-between; gap:20px;
  transition:all .5s var(--ease);
}
.nav.s {
  padding:13px 80px;
  background:rgba(11,10,7,.96);
  backdrop-filter:blur(24px);
  border-bottom:1px solid var(--border);
}
.nav-logo {
  font-family:'Cormorant Garamond',serif;
  font-size:15px; letter-spacing:.16em;
  color:var(--cream); text-decoration:none; flex-shrink:0;
}
.nav-logo b { color:var(--gold); font-weight:400 }
.nav-links { display:flex; gap:28px; list-style:none; align-items:center }
.nav-links a {
  font-size:8.5px; letter-spacing:.26em; text-transform:uppercase;
  color:rgba(246,243,238,.38); text-decoration:none; transition:color .3s;
}
.nav-links a:hover, .nav-links a.active { color:var(--gold) }
.nav-cta {
  font-size:8.5px; letter-spacing:.24em; text-transform:uppercase;
  color:var(--gold) !important;
  border:1px solid var(--bm); padding:9px 20px;
  text-decoration:none; transition:background .3s !important;
}
.nav-cta:hover { background:rgba(196,165,90,.08) !important }

/* Typography */
.display {
  font-family:'Cormorant Garamond',serif;
  font-weight:300; letter-spacing:-.02em; line-height:.88;
  color:var(--cream);
}
.display em { font-style:italic; color:var(--gold) }
.label {
  font-size:8.5px; letter-spacing:.28em; text-transform:uppercase; color:var(--gold);
}
.caption { font-size:13px; color:var(--muted); line-height:1.6 }

/* Buttons */
.btn {
  display:inline-block; text-decoration:none;
  font-size:9px; letter-spacing:.24em; text-transform:uppercase;
  padding:15px 38px; transition:all .3s var(--ease);
}
.btn-primary {
  background:var(--gold); color:var(--ink); font-weight:500;
}
.btn-primary:hover { background:#d4b46a; transform:translateY(-1px) }
.btn-outline {
  border:1px solid var(--bm); color:var(--cream);
}
.btn-outline:hover { background:rgba(196,165,90,.06); border-color:var(--bh) }
.btn-ghost {
  color:var(--gold); border-bottom:1px solid var(--bm); padding:0 0 2px;
  font-size:9px; letter-spacing:.22em; text-transform:uppercase;
}
.btn-ghost:hover { border-color:var(--gold) }

/* Dividers */
.divider { border:none; border-top:1px solid var(--border); margin:0 }

/* Reveal animation */
.rv {
  opacity:0; transform:translateY(24px);
  transition:opacity .7s var(--ease), transform .7s var(--ease);
}
.rv.visible { opacity:1; transform:none }
.rv-d1 { transition-delay:.1s }
.rv-d2 { transition-delay:.2s }
.rv-d3 { transition-delay:.3s }
.rv-d4 { transition-delay:.4s }

/* Footer */
footer {
  background:#0e0c0a;
  padding:80px 80px 40px;
  border-top:1px solid var(--border);
}
.footer-grid {
  display:grid;
  grid-template-columns:2fr 1fr 1fr 1fr;
  gap:60px;
  margin-bottom:64px;
}
.footer-logo {
  font-family:'Cormorant Garamond',serif;
  font-size:24px; font-weight:300; color:var(--cream);
  margin-bottom:14px;
}
.footer-logo em { font-style:italic; color:var(--gold) }
.footer-tagline {
  font-size:13px; color:var(--muted);
  line-height:1.75; font-weight:300; max-width:280px;
}
.footer-col-title {
  font-size:9px; letter-spacing:.26em; text-transform:uppercase;
  color:var(--gold); margin-bottom:22px;
}
.footer-link {
  display:block; font-size:13px; color:rgba(196,165,90,.3);
  text-decoration:none; margin-bottom:10px; font-weight:300;
  transition:color .3s;
}
.footer-link:hover { color:rgba(196,165,90,.8) }
.footer-bottom {
  display:flex; align-items:center; justify-content:space-between;
  padding-top:32px; border-top:1px solid var(--border);
}
.footer-copy {
  font-size:11px; color:rgba(196,165,90,.22); letter-spacing:.08em;
  line-height:1.7;
}
.footer-legal {
  display:flex; gap:24px;
}
.footer-legal a {
  font-size:10px; letter-spacing:.18em; text-transform:uppercase;
  color:rgba(196,165,90,.2); text-decoration:none; transition:color .3s;
}
.footer-legal a:hover { color:rgba(196,165,90,.6) }

/* Responsive */
@media(max-width:1024px) {
  .nav { padding:20px 40px }
  .nav.s { padding:12px 40px }
  .nav-links { display:none }
  footer { padding:60px 40px 32px }
  .footer-grid { grid-template-columns:1fr 1fr; gap:40px }
}
@media(max-width:640px) {
  .nav { padding:18px 24px }
  .nav.s { padding:11px 24px }
  footer { padding:48px 24px 28px }
  .footer-grid { grid-template-columns:1fr; gap:32px }
  .footer-bottom { flex-direction:column; gap:16px; text-align:center }
}
