:root{
  --ink-black:#0B0A08;
  --charcoal:#161310;
  --panel:#12100D;
  --gold:#C6A15B;
  --champagne:#E4C989;
  --bone:#ECE6DA;
  --ash:#8B8578;
  --line:rgba(198,161,91,.22);
  --display:'Marcellus', 'Times New Roman', serif;
  --editorial:'Cormorant Garamond', Georgia, serif;
  --script:'Italianno', 'Snell Roundhand', cursive;
  --ui:'Jost', 'Helvetica Neue', Arial, sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  background:var(--ink-black);
  color:var(--bone);
  font-family:var(--ui);
  font-weight:300;
  letter-spacing:.01em;
  line-height:1.6;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
::selection{background:var(--gold);color:var(--ink-black)}

/* gold foil text — fallback color first, clip only where supported */
.foil{color:var(--champagne)}
@supports ((-webkit-background-clip:text) or (background-clip:text)){
  .foil{
    background:linear-gradient(105deg,#7d6234 0%,#c6a15b 20%,#f4e3b2 40%,#e4c989 50%,#c6a15b 62%,#8a6d3b 88%);
    background-size:220% 100%;
    -webkit-background-clip:text;background-clip:text;
    color:transparent;
    animation:foil 8s ease-in-out infinite;
  }
}
@keyframes foil{0%,100%{background-position:0% 0}50%{background-position:100% 0}}

/* grain over everything */
.grain{
  position:fixed;inset:-50%;width:200%;height:200%;
  pointer-events:none;z-index:60;opacity:.05;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* progress bar */
.progress{position:fixed;top:0;left:0;height:1px;width:0;background:var(--gold);z-index:80}

/* ───────── nav ───────── */
nav{
  position:fixed;top:0;left:0;right:0;z-index:70;
  display:flex;align-items:center;justify-content:space-between;
  padding:1.4rem 3rem;
  transition:background .5s ease, padding .5s ease;
}
nav.scrolled{background:rgba(11,10,8,.88);backdrop-filter:blur(12px);padding:.9rem 3rem;border-bottom:1px solid rgba(198,161,91,.12)}
.wordmark{font-family:var(--script);font-size:1.9rem;letter-spacing:.02em;line-height:1;color:var(--bone);text-decoration:none}
.wordmark span{color:var(--gold)}
.nav-right{display:flex;align-items:center;gap:2.2rem}
.nav-edition{font-size:.66rem;letter-spacing:.28em;text-transform:uppercase;color:var(--ash)}
.nav-cta{
  font-family:var(--ui);font-size:.66rem;letter-spacing:.28em;text-transform:uppercase;
  color:var(--gold);text-decoration:none;border:1px solid var(--line);
  padding:.65em 1.32em .65em 1.6em;
  transition:all .4s ease;
}
.nav-cta:hover{background:var(--gold);color:var(--ink-black);border-color:var(--gold)}
@media(max-width:640px){nav{padding:1.1rem 1.3rem}nav.scrolled{padding:.8rem 1.3rem}.nav-edition{display:none}}

/* ───────── hero ───────── */
.hero{
  min-height:100vh;min-height:100svh;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;position:relative;padding:0 1.5rem;
  background:
    radial-gradient(ellipse 90% 55% at 50% 118%, rgba(198,161,91,.10), transparent 60%),
    radial-gradient(ellipse 70% 45% at 50% -12%, rgba(236,230,218,.045), transparent 65%),
    var(--ink-black);
}
/* letter-spacing adds a phantom space after the last glyph — text-indent
   of the same size re-centres the visible glyphs */
.hero-eyebrow{
  font-size:.68rem;letter-spacing:.5em;text-indent:.5em;text-transform:uppercase;color:var(--gold);
  margin-bottom:2.4rem;
  opacity:0;animation:rise 1.2s .3s cubic-bezier(.2,.7,.2,1) forwards;
}
.hero h1{
  font-family:var(--script);font-weight:400;
  font-size:clamp(5rem, 17vw, 13.5rem);
  letter-spacing:.01em;
  line-height:1;
  transform:rotate(-2deg);
  padding:0 .1em .05em 0;
  opacity:0;animation:rise-tilt 1.4s .55s cubic-bezier(.2,.7,.2,1) forwards;
}
@keyframes rise-tilt{from{opacity:0;transform:rotate(-2deg) translateY(26px)}to{opacity:1;transform:rotate(-2deg) translateY(0)}}
.hero-swash{
  width:clamp(220px, 34vw, 460px);height:auto;color:var(--gold);
  margin-top:-1.2rem;
  opacity:0;animation:rise 1s 1s ease forwards;
}
.hero-swash path{
  stroke-dasharray:1;stroke-dashoffset:1;
  animation:draw 1.3s 1.15s cubic-bezier(.4,0,.2,1) forwards;
}
@keyframes draw{to{stroke-dashoffset:0}}
.hero-sub{
  font-family:var(--editorial);font-style:italic;font-weight:300;
  font-size:clamp(1.15rem, 2.6vw, 1.7rem);color:var(--ash);
  margin-top:2rem;max-width:34ch;text-wrap:balance;
  opacity:0;animation:rise 1.4s .85s cubic-bezier(.2,.7,.2,1) forwards;
}
.hero-edition{
  margin-top:3.2rem;display:flex;align-items:center;gap:1.4rem;
  font-size:.66rem;letter-spacing:.32em;text-transform:uppercase;color:var(--gold);
  opacity:0;animation:rise 1.4s 1.15s cubic-bezier(.2,.7,.2,1) forwards;
}
.hero-edition > span{margin-right:-.32em}
.hero-edition::before,.hero-edition::after{content:'';display:block;width:56px;height:1px;background:var(--line)}
.scroll-cue{
  position:absolute;bottom:2.6rem;left:0;right:0;
  display:flex;flex-direction:column;align-items:center;gap:.9rem;
  font-size:.6rem;letter-spacing:.38em;text-transform:uppercase;color:var(--ash);
  opacity:0;animation:rise 1.4s 1.6s ease forwards;
}
.scroll-cue span{display:block;text-indent:.38em}
.scroll-cue i{display:block;width:1px;height:52px;background:linear-gradient(var(--gold),transparent);animation:cue 2.4s ease-in-out infinite}
@keyframes cue{0%,100%{transform:scaleY(1);opacity:1}50%{transform:scaleY(.55);opacity:.4}}
@keyframes rise{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:translateY(0)}}

/* ───────── manifesto intro line ───────── */
.manifest{
  padding:11rem 1.5rem;display:flex;justify-content:center;text-align:center;
  background:var(--ink-black);
}
.manifest p{
  font-family:var(--editorial);font-weight:300;
  font-size:clamp(1.5rem, 3.4vw, 2.5rem);line-height:1.55;
  max-width:44ch;color:var(--bone);text-wrap:balance;
}
.manifest em{font-style:italic;color:var(--champagne)}

/* ───────── eyebrow (shared) ───────── */
.eyebrow{
  font-size:.66rem;letter-spacing:.44em;text-transform:uppercase;color:var(--gold);
  display:inline-flex;align-items:center;gap:1.2rem;
}
.eyebrow > span{margin-right:-.44em}
.eyebrow::before,.eyebrow::after{content:'';width:40px;height:1px;background:var(--line)}

/* ───────── dreiklang panels ───────── */
.triad-head{text-align:center;padding:0 1.5rem 6rem}
.triad-panel{
  min-height:100vh;min-height:100svh;
  display:grid;grid-template-columns:1fr 1.1fr;align-items:center;
  gap:4rem;padding:6rem 8vw;position:relative;overflow:hidden;
}
.triad-panel:nth-child(even){background:var(--panel)}
.triad-num{
  font-family:var(--display);
  font-size:clamp(9rem, 26vw, 22rem);
  line-height:.8;color:transparent;
  -webkit-text-stroke:1px rgba(198,161,91,.35);
  user-select:none;
  justify-self:center;
  will-change:transform;
}
.triad-copy{max-width:34rem}
.triad-copy .kicker{font-size:.64rem;letter-spacing:.4em;text-transform:uppercase;color:var(--gold);margin-bottom:1.6rem}
.triad-copy h2{
  font-family:var(--display);font-weight:400;
  font-size:clamp(1.9rem, 4vw, 3.1rem);line-height:1.18;
  color:var(--bone);margin-bottom:1.8rem;text-wrap:balance;letter-spacing:.02em;
}
.triad-copy p{color:var(--ash);font-size:1.02rem;max-width:58ch}
.triad-copy p + p{margin-top:1.1rem}
.triad-copy .gold-line{color:var(--champagne);font-family:var(--editorial);font-style:italic;font-size:1.25rem;margin-top:2rem}
@media(max-width:900px){
  .triad-panel{grid-template-columns:1fr;gap:1.5rem;padding:6rem 2rem;min-height:auto}
  .triad-num{justify-self:start;font-size:clamp(7rem,30vw,12rem)}
}

/* scroll reveal */
.rv{opacity:0;transform:translateY(42px);transition:opacity 1.1s cubic-bezier(.2,.7,.2,1),transform 1.1s cubic-bezier(.2,.7,.2,1)}
.rv.in{opacity:1;transform:none}
.rv2{transition-delay:.15s}.rv3{transition-delay:.3s}

/* ───────── plates gallery ───────── */
.plates-sec{padding:11rem 0 9rem;background:var(--ink-black);overflow:hidden}
.plates-head{text-align:center;padding:0 1.5rem;margin-bottom:1.6rem}
.plates-head h2{
  font-family:var(--display);font-weight:400;
  font-size:clamp(2rem,5vw,3.4rem);letter-spacing:.08em;color:var(--bone);margin-top:1.6rem;
}
.plates-head p{font-family:var(--editorial);font-style:italic;color:var(--ash);font-size:1.2rem;margin-top:1rem;max-width:52ch;margin-inline:auto;text-wrap:balance}
.plates-head p b{font-weight:400;color:var(--champagne)}
.plates-hint{font-size:.6rem;letter-spacing:.34em;text-indent:.34em;text-transform:uppercase;color:var(--ash);text-align:center;margin-bottom:2.6rem}
.plates{
  display:flex;gap:2.4rem;overflow-x:auto;padding:2rem 8vw 3rem;
  scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:var(--gold) transparent;
}
.plates::-webkit-scrollbar{height:3px}
.plates::-webkit-scrollbar-thumb{background:var(--gold)}
.plate{flex:0 0 auto;width:min(340px,72vw);scroll-snap-align:center;cursor:pointer}
.plate-img{
  aspect-ratio:3/4;position:relative;overflow:hidden;
  background:var(--charcoal);
  box-shadow:0 30px 60px rgba(0,0,0,.55);
  transition:transform .6s cubic-bezier(.2,.7,.2,1), box-shadow .6s ease;
  transform-style:preserve-3d;
}
.plate:hover .plate-img{transform:translateY(-8px);box-shadow:0 44px 80px rgba(0,0,0,.65)}
.plate-art{position:absolute;inset:0;filter:grayscale(1) contrast(1.15);transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.plate:hover .plate-art{transform:scale(1.05)}
.plate-img::after{
  content:'';position:absolute;inset:0;
  background:radial-gradient(ellipse 120% 90% at 50% 45%, transparent 45%, rgba(0,0,0,.55));
}
.plate-frame{position:absolute;inset:14px;border:1px solid rgba(236,230,218,.14);z-index:2;pointer-events:none}
.plate-meta{display:flex;align-items:baseline;justify-content:space-between;margin-top:1.4rem;padding:0 .2rem}
.plate-month{font-size:.62rem;letter-spacing:.36em;text-transform:uppercase;color:var(--ash)}
.plate-name{font-family:var(--editorial);font-style:italic;font-size:1.25rem;color:var(--champagne)}
.plate-no{font-size:.62rem;letter-spacing:.2em;color:var(--ash);font-variant-numeric:tabular-nums}

/* ───────── specs ───────── */
.specs{background:var(--panel);padding:10rem 8vw;border-top:1px solid rgba(198,161,91,.1);border-bottom:1px solid rgba(198,161,91,.1)}
.specs-grid{display:grid;grid-template-columns:1fr 1fr;gap:5rem;max-width:1100px;margin:0 auto}
.specs-left h2{
  font-family:var(--display);font-weight:400;
  font-size:clamp(1.9rem,4vw,3rem);color:var(--bone);line-height:1.2;margin-top:1.6rem;text-wrap:balance;
}
.specs-left p{font-family:var(--editorial);font-style:italic;color:var(--ash);font-size:1.2rem;margin-top:1.4rem;max-width:36ch}
.spec-list{display:flex;flex-direction:column}
.spec{display:flex;justify-content:space-between;align-items:baseline;gap:2rem;padding:1.25rem 0;border-bottom:1px solid rgba(198,161,91,.14)}
.spec:first-child{border-top:1px solid rgba(198,161,91,.14)}
.spec dt{font-size:.64rem;letter-spacing:.3em;text-transform:uppercase;color:var(--ash);white-space:nowrap}
.spec dd{color:var(--bone);font-weight:300;text-align:right;font-variant-numeric:tabular-nums}
@media(max-width:820px){.specs-grid{grid-template-columns:1fr;gap:3.5rem}}

/* ───────── calligraphy ───────── */
.calli{
  padding:12rem 1.5rem;text-align:center;position:relative;overflow:hidden;
  background:
    radial-gradient(ellipse 60% 45% at 50% 55%, rgba(198,161,91,.08), transparent 70%),
    var(--ink-black);
}
.calli h2{
  font-family:var(--display);font-weight:400;
  font-size:clamp(1.9rem,4.4vw,3.2rem);color:var(--bone);margin-top:1.6rem;text-wrap:balance;
}
.calli-script{
  font-family:var(--script);font-weight:400;
  font-size:clamp(4rem, 13vw, 9.5rem);
  line-height:1.25;
  margin:3.5rem 0 1rem;
  transform:rotate(-2.5deg);
}
.calli-under{
  width:min(340px,60vw);height:1px;margin:0 auto;
  background:linear-gradient(90deg,transparent,var(--line) 30%,var(--gold) 50%,var(--line) 70%,transparent);
}
.calli-copy{color:var(--ash);max-width:52ch;margin:3rem auto 0;font-size:1.02rem}
.calli-copy b{font-weight:400;color:var(--bone)}
.calli-note{font-family:var(--editorial);font-style:italic;color:var(--champagne);font-size:1.25rem;margin-top:1.8rem}

/* ───────── edition ───────── */
.edition{
  min-height:90vh;display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;padding:9rem 1.5rem;position:relative;
  background:
    radial-gradient(ellipse 70% 50% at 50% 50%, rgba(198,161,91,.07), transparent 70%),
    var(--ink-black);
}
.edition-count{
  font-family:var(--display);
  font-size:clamp(6rem, 22vw, 17rem);line-height:1;
  font-variant-numeric:tabular-nums;
  text-shadow:0 0 90px rgba(198,161,91,.18);
}
@supports ((-webkit-background-clip:text) or (background-clip:text)){
  .edition-count{text-shadow:none}
}
.edition-label{font-size:.68rem;letter-spacing:.46em;text-indent:.46em;text-transform:uppercase;color:var(--ash);margin-top:1.4rem}
.edition-note{
  font-family:var(--editorial);font-style:italic;font-size:clamp(1.15rem,2.4vw,1.5rem);
  color:var(--bone);max-width:42ch;margin-top:3rem;text-wrap:balance;
}
.edition-price{margin-top:3.4rem;display:flex;flex-direction:column;align-items:center;gap:.5rem}
.edition-price .price{font-family:var(--display);font-size:2rem;color:var(--bone);letter-spacing:.06em}
.edition-price .vat{font-size:.62rem;letter-spacing:.26em;text-indent:.26em;text-transform:uppercase;color:var(--ash)}
.cta-btn{
  margin-top:2.6rem;display:inline-block;position:relative;overflow:hidden;
  font-size:.7rem;letter-spacing:.34em;text-indent:.34em;text-transform:uppercase;text-decoration:none;
  color:var(--ink-black);background:var(--gold);
  padding:1.15em 3.2em;transition:background .4s ease;
}
.cta-btn::after{
  content:'';position:absolute;top:0;left:-130%;width:55%;height:100%;
  background:linear-gradient(100deg,transparent,rgba(255,252,240,.5),transparent);
  transform:skewX(-20deg);transition:left .8s ease;
}
.cta-btn:hover{background:var(--champagne)}
.cta-btn:hover::after{left:170%}
.cta-sub{margin-top:1.6rem;font-size:.66rem;letter-spacing:.2em;color:var(--ash)}
.cta-sub a{color:var(--gold);text-decoration:none;border-bottom:1px solid var(--line)}
.cta-sub a:hover{color:var(--champagne)}

/* ───────── footer ───────── */
footer{
  padding:4rem 3rem;display:flex;align-items:center;justify-content:space-between;gap:2rem;
  border-top:1px solid rgba(198,161,91,.12);background:var(--ink-black);
  font-size:.62rem;letter-spacing:.26em;text-transform:uppercase;color:var(--ash);
  flex-wrap:wrap;
}
footer .wordmark{font-size:1.5rem}
.foot-links{display:flex;gap:2.2rem}
.foot-links a{color:var(--ash);text-decoration:none;transition:color .3s}
.foot-links a:hover{color:var(--gold)}

a:focus-visible,button:focus-visible{outline:1px solid var(--champagne);outline-offset:4px}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important}
  html{scroll-behavior:auto}
  .rv{opacity:1;transform:none}
  .hero-eyebrow,.hero-sub,.hero-edition,.scroll-cue,.hero-swash{opacity:1;animation:none}
  .hero h1{opacity:1;animation:none;transform:rotate(-2deg)}
  .hero-swash path{animation:none;stroke-dashoffset:0}
}
