/* base.css — tokens, reset, typography, chrome */

:root{
  --ink:#0B0B0C;
  --ink-2:#141315;
  --bone:#EDE8E0;
  --bone-dim:rgba(237,232,224,.62);
  --bone-faint:rgba(237,232,224,.28);
  --clay:#C2593A;
  --line:rgba(237,232,224,.14);
  --pad:clamp(20px,5vw,72px);
  --serif:"Didot","Bodoni 72","Playfair Display",Georgia,"Times New Roman",serif;
  --sans:-apple-system,BlinkMacSystemFont,"Inter","Helvetica Neue",Arial,sans-serif;
  --ease:cubic-bezier(.22,1,.36,1);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--ink);color:var(--bone);
  font-family:var(--sans);font-size:clamp(15px,1.05vw,17px);line-height:1.6;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
h1,h2,h3,p,figure,ol,ul{margin:0}
ol,ul{padding:0;list-style:none}

/* ---- type ---- */
.display{
  font-family:var(--serif);font-weight:400;
  font-size:clamp(2.9rem,8.2vw,7.4rem);line-height:.95;letter-spacing:-.02em;
  text-shadow:0 2px 40px rgba(11,11,12,.45);
}
.display span{display:block}
.display em{font-style:italic;color:var(--clay)}
.serif{font-family:var(--serif);font-weight:400;letter-spacing:-.01em;
  font-size:clamp(1.8rem,3.6vw,3.2rem);line-height:1.08}
.eyebrow{
  font-size:.68rem;letter-spacing:.28em;text-transform:uppercase;
  color:var(--bone-dim);font-weight:500;
}

/* ---- reveal primitives ---- */
[data-rise]{opacity:0;transform:translateY(24px);
  transition:opacity .9s var(--ease),transform .9s var(--ease)}
[data-rise].is-in{opacity:1;transform:none}
[data-reveal]{opacity:0;transform:translateY(18px);
  transition:opacity .8s var(--ease),transform .8s var(--ease)}
[data-reveal].is-in{opacity:1;transform:none}

/* ---- progress ---- */
.progress{position:fixed;inset:0 0 auto 0;height:2px;z-index:60;background:rgba(237,232,224,.08)}
.progress__bar{display:block;height:100%;width:0;background:var(--clay);
  transform-origin:0 50%;transition:width .1s linear}

/* ---- nav ---- */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:50;
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:18px var(--pad);
  background:linear-gradient(180deg,rgba(11,11,12,.72),rgba(11,11,12,0));
  backdrop-filter:saturate(140%) blur(6px);
  -webkit-backdrop-filter:saturate(140%) blur(6px);
}
.nav__brand{font-family:var(--serif);font-size:1.05rem;letter-spacing:.02em}
.nav__brand span{color:var(--bone-dim);margin-left:.35em}
.nav__links{display:flex;gap:28px;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase}
.nav__links a{color:var(--bone-dim);transition:color .3s}
.nav__links a:hover{color:var(--bone)}
.nav__cta{
  font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;
  border:1px solid var(--line);border-radius:100px;padding:11px 20px;
  min-height:44px;display:inline-flex;align-items:center;
  transition:background .35s var(--ease),color .35s var(--ease),border-color .35s;
}
.nav__cta:hover{background:var(--bone);color:var(--ink);border-color:var(--bone)}

/* ---- buttons ---- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:52px;padding:0 30px;border-radius:100px;
  background:var(--bone);color:var(--ink);
  font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;font-weight:600;
  transition:transform .35s var(--ease),background .35s;
}
.btn:hover{transform:translateY(-2px)}
.btn--ghost{background:transparent;color:var(--bone);border:1px solid var(--line)}
.btn--ghost:hover{border-color:var(--bone)}

/* ---- custom cursor (pointer devices only) ---- */
.cursor{display:none}
@media (hover:hover) and (pointer:fine){
  .cursor{
    display:block;position:fixed;top:0;left:0;z-index:70;pointer-events:none;
    mix-blend-mode:difference;
  }
  .cursor__dot,.cursor__ring{
    position:absolute;border-radius:50%;transform:translate(-50%,-50%);
  }
  .cursor__dot{width:5px;height:5px;background:var(--bone)}
  .cursor__ring{
    width:34px;height:34px;border:1px solid rgba(237,232,224,.5);
    transition:width .35s var(--ease),height .35s var(--ease),border-color .35s;
  }
  .cursor.is-big .cursor__ring{width:64px;height:64px;border-color:var(--bone)}
}

/* ---- footer ---- */
.foot{
  padding:56px var(--pad) 64px;border-top:1px solid var(--line);
  display:flex;flex-wrap:wrap;gap:8px 32px;justify-content:space-between;
  font-size:.76rem;color:var(--bone-dim);
}
.foot__reg{color:var(--bone-faint)}

@media (max-width:720px){
  .nav__links{display:none}
}

@media (prefers-reduced-motion:reduce){
  *{animation-duration:.01ms !important;transition-duration:.01ms !important}
  [data-rise],[data-reveal]{opacity:1;transform:none}
}
