/* The Alchemist ($MERCURY)
   A night manuscript: ink, parchment, gold leaf for the name,
   vermilion (mercury sulfide, the scribes' red) for numerals and marks. */

:root{
  --ink:        #0f0c0a;
  --ink-2:      #18130f;
  --rule:       rgba(232,220,192,.16);
  --parchment:  #e8dcc0;
  --parchment-2:#b3a380;
  --gold:       #e2b244;
  --gold-deep:  #b9851f;
  --vermilion:  #d7462a;
  --silver:     #cbd3d9;

  --display: 'Pirata One', Georgia, serif;
  --text:    'EB Garamond', Georgia, serif;

  --measure: 1120px;
}

*{box-sizing:border-box}
html{background:var(--ink);scroll-behavior:smooth}
body{
  margin:0;
  background:var(--ink);
  color:var(--parchment);
  font-family:var(--text);
  font-size:19px;
  line-height:1.6;
  overflow-x:hidden;
}
/* paper tooth, static */
body::before{
  content:'';position:fixed;inset:0;pointer-events:none;z-index:40;opacity:.06;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)'/%3E%3C/svg%3E");
}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
h1,h2,h3,p{margin:0}

:focus-visible{outline:2px solid var(--gold);outline-offset:3px}

/* ───────── bar ───────── */
.bar{
  position:sticky;top:0;z-index:30;
  display:flex;align-items:center;gap:32px;
  padding:12px clamp(16px,4vw,48px);
  background:var(--ink);
  border-bottom:1px solid var(--rule);
}
.mark{font-family:var(--display);font-size:28px;color:var(--gold);text-decoration:none;line-height:1}
.links{display:flex;gap:26px;margin-left:auto}
.links a{
  text-decoration:none;color:var(--parchment-2);font-size:18px;
  font-variant-caps:all-small-caps;letter-spacing:.06em;
}
.links a:hover{color:var(--parchment)}

/* ───────── buttons ───────── */
.btn{
  display:inline-block;text-decoration:none;cursor:pointer;
  font-family:var(--text);font-weight:600;font-size:19px;line-height:1;
  font-variant-caps:all-small-caps;letter-spacing:.07em;
  padding:15px 26px 16px;border-radius:2px;border:1px solid transparent;
  transition:background-color .2s, color .2s, border-color .2s;
}
.btn-sm{padding:10px 16px 11px;font-size:17px}
.btn-gold{background:var(--gold);color:#1d1406}
.btn-gold:hover{background:#f0c75e}
.btn-line{border-color:var(--parchment-2);color:var(--parchment)}
.btn-line:hover{border-color:var(--parchment);background:rgba(232,220,192,.06)}

/* ───────── hero ───────── */
.hero{
  max-width:var(--measure);margin:0 auto;
  padding:clamp(40px,7vw,96px) clamp(16px,4vw,48px) clamp(56px,8vw,110px);
  display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(32px,6vw,80px);align-items:center;
}
h1{
  font-family:var(--display);font-weight:400;
  font-size:clamp(76px,10.5vw,152px);line-height:.88;
  color:var(--gold);
  text-shadow:0 2px 0 #000;
}
.ticker{margin-top:18px;color:var(--parchment-2);font-size:18px}
.ticker span{
  color:var(--silver);font-weight:600;font-size:22px;margin-right:6px;
  font-variant-caps:all-small-caps;letter-spacing:.06em;
}
.lede{margin-top:22px;max-width:46ch;font-size:21px;color:var(--parchment)}
.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
.actions.center{justify-content:center}

.ca{
  display:inline-flex;align-items:center;gap:14px;max-width:100%;
  margin-top:26px;padding:10px 10px 10px 16px;
  border:1px solid var(--rule);background:var(--ink-2);
}
.ca-label{color:var(--vermilion);font-size:17px;font-variant-caps:all-small-caps;letter-spacing:.08em}
.ca code{
  font-family:ui-monospace,'Cascadia Code',Consolas,monospace;font-size:14px;color:var(--silver);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.ca-copy{
  flex:0 0 auto;cursor:pointer;
  font-family:var(--text);font-size:16px;font-variant-caps:all-small-caps;letter-spacing:.08em;
  padding:6px 12px 7px;background:transparent;color:var(--gold);
  border:1px solid rgba(226,178,68,.45);border-radius:2px;
}
.ca-copy:hover{background:rgba(226,178,68,.12)}
.ca.copied code{color:var(--gold)}
.ca-center{display:flex;margin:26px auto 0;max-width:560px}

.portrait{position:relative}
.portrait img{
  border:1px solid rgba(226,178,68,.5);
  outline:1px solid rgba(226,178,68,.22);outline-offset:8px;
  box-shadow:0 40px 80px -30px #000;
}

/* candles: the only ambient motion on the page */
.candle{
  position:absolute;bottom:-6px;width:20px;height:70px;border-radius:2px 2px 1px 1px;
  background:linear-gradient(90deg,#c9b98f,#efe4c6 45%,#b9a87c);
}
.candle-l{left:-42px}
.candle-r{right:-42px;height:52px}
.candle i{
  position:absolute;left:50%;top:-22px;width:11px;height:22px;margin-left:-5.5px;
  border-radius:50% 50% 45% 45%;
  background:radial-gradient(circle at 50% 72%,#fff4cf,#ff9a3c 55%,rgba(255,90,0,.15));
  box-shadow:0 0 22px 8px rgba(255,140,50,.35);
  transform-origin:50% 100%;
  animation:flicker 1.7s ease-in-out infinite;
}
.candle-r i{animation-delay:.6s}
@keyframes flicker{
  0%,100%{transform:scale(1) rotate(-1deg)}
  35%{transform:scale(1.08,.94) rotate(2deg)}
  70%{transform:scale(.94,1.1) rotate(-2deg)}
}

/* ───────── sections ───────── */
.sec{
  max-width:var(--measure);margin:0 auto;
  padding:clamp(56px,8vw,104px) clamp(16px,4vw,48px);
  border-top:1px solid var(--rule);
}
h2{
  font-family:var(--display);font-weight:400;
  font-size:clamp(46px,6vw,78px);line-height:1;color:var(--parchment);
  margin-bottom:clamp(28px,4vw,48px);
}
h2::first-letter{color:var(--vermilion)}
h3{font-size:22px;font-weight:600;color:var(--parchment);line-height:1.25}

/* lore: a two-page spread with numerals in the margin */
.codex{
  display:grid;grid-template-columns:1fr 1fr;column-gap:clamp(36px,6vw,80px);row-gap:44px;
  position:relative;
}
.codex::before{
  content:'';position:absolute;top:0;bottom:0;left:50%;width:1px;background:var(--rule);
}
.codex article{padding-left:44px;position:relative}
.codex h3{margin-bottom:8px}
.codex .num{
  position:absolute;left:0;top:-4px;
  font-family:var(--display);font-size:30px;font-weight:400;color:var(--vermilion);
}
.codex p{color:#d3c6a6;font-size:19px}
.opening::first-letter{
  float:left;font-family:var(--display);color:var(--vermilion);
  font-size:78px;line-height:.82;margin:6px 10px 0 0;
}

/* how to buy: steps with numerals hung in the margin, fine print as a side note */
.rite-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:clamp(36px,6vw,80px);align-items:start}
.steps{list-style:none;counter-reset:s;margin:0;padding:0}
.steps li{
  counter-increment:s;position:relative;
  padding:0 0 30px 76px;
}
.steps li::before{
  content:counter(s, upper-roman);
  position:absolute;left:0;top:-10px;width:56px;text-align:right;
  font-family:var(--display);font-size:44px;line-height:1;color:var(--vermilion);
}
.steps h3{margin-bottom:4px}
.steps p{color:#d3c6a6}

.fineprint{padding-left:28px;border-left:1px solid var(--rule)}
.fineprint h3{color:var(--gold);margin-bottom:10px}
.fineprint ul{list-style:none;margin:0;padding:0}
.fineprint li{position:relative;padding-left:26px;margin-bottom:6px;color:#d3c6a6}
.fineprint li::before{content:'¶';position:absolute;left:0;color:var(--vermilion)}

/* roadmap: four moons on one ruled line */
.phases{
  list-style:none;margin:0;padding:0;
  display:grid;grid-template-columns:repeat(4,1fr);gap:28px;position:relative;
}
.phases::before{
  content:'';position:absolute;left:0;right:0;top:19px;height:1px;background:var(--rule);
}
.phases li{position:relative}
.moon{
  display:block;width:38px;height:38px;border-radius:50%;margin-bottom:18px;position:relative;
  background:var(--ink);border:1px solid var(--parchment-2);
}
.m1{background:radial-gradient(circle at 35% 32%,#f2f5f7,#a9b6c0 60%,#66737d);border-color:transparent}
.m2{background:linear-gradient(90deg,var(--ink) 50%,#e8dcc0 50%)}
.m3{background:radial-gradient(circle at 35% 32%,#fff6dc,#e8dcc0 55%,#a8976e);border-color:transparent}
.m4{background:radial-gradient(circle at 35% 32%,#f6d679,var(--gold) 55%,#8a5f12);border-color:transparent}
.phases h3{margin-bottom:6px}
.phases p{font-size:18px;color:#c9bb98}

/* summon */
.summon{text-align:center}
.summon h2{color:var(--gold);margin-bottom:12px}
.summon h2::first-letter{color:var(--gold)}
.summon-sub{color:var(--parchment-2);font-style:italic;font-size:20px}
.pot{
  position:relative;width:200px;height:120px;margin:0 auto 34px;
  border-radius:0 0 50% 50%/0 0 64% 64%;
  background:linear-gradient(180deg,#2a241f,#14100d 70%);
  border:1px solid rgba(232,220,192,.14);border-top:none;
}
.pot::before{
  content:'';position:absolute;top:-9px;left:-12px;right:-12px;height:18px;border-radius:50%;
  background:#2f2822;border:1px solid rgba(232,220,192,.2);
}
.brew{
  position:absolute;top:-3px;left:-2px;right:-2px;height:14px;border-radius:50%;
  background:radial-gradient(ellipse at 50% 40%,#fff1c2,var(--gold) 50%,var(--gold-deep));
  box-shadow:0 0 36px 8px rgba(226,178,68,.4);
}
.bub{
  position:absolute;top:-6px;width:9px;height:9px;border-radius:50%;
  background:#f6d679;opacity:0;animation:bubble 3s ease-in infinite;
}
.b1{left:30%}
.b2{left:47%;width:12px;height:12px;animation-delay:.8s}
.b3{left:62%;animation-delay:1.5s}
.b4{left:40%;width:6px;height:6px;animation-delay:2.2s}
@keyframes bubble{
  0%{transform:translateY(0) scale(.5);opacity:0}
  20%{opacity:.9}
  100%{transform:translateY(-90px) scale(1.1);opacity:0}
}

/* colophon */
.colophon{
  border-top:1px solid var(--rule);
  padding:48px clamp(16px,4vw,48px) 64px;
  max-width:var(--measure);margin:0 auto;
  display:grid;grid-template-columns:auto 1fr;gap:40px;align-items:start;
}
.motto{font-family:var(--display);font-size:32px;color:var(--gold);line-height:1;white-space:nowrap}
.colophon p:last-child{font-size:15px;line-height:1.65;color:#8c7f64;max-width:70ch}

/* ───────── small screens ───────── */
@media (max-width:900px){
  .hero{grid-template-columns:1fr}
  .portrait{order:-1;max-width:440px;margin:0 auto;width:100%}
  .candle-l{left:-14px}.candle-r{right:-14px}
  .codex{grid-template-columns:1fr}
  .codex::before{display:none}
  .rite-layout{grid-template-columns:1fr}
  .fineprint{padding:26px 0 0;border-left:none;border-top:1px solid var(--rule)}
  .phases{grid-template-columns:1fr 1fr;row-gap:40px}
  .phases::before{display:none}
  .links{display:none}
  .bar .btn-sm{margin-left:auto}
  .colophon{grid-template-columns:1fr;gap:16px}
}
@media (max-width:560px){
  body{font-size:18px}
  .steps li{padding-left:58px}
  .steps li::before{width:42px;font-size:38px}
  .phases{grid-template-columns:1fr}
  .candle{display:none}
  .ca{flex-wrap:wrap}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
}
