/* ============================================================
   PURCHASE PAGE — builds on styles.css tokens
   ============================================================ */

/* animated ember field behind everything */
#embers{position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.55;}

.pbody{padding:2.4rem 0 1rem;}

/* --- progress rail --- */
.rail{
  display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin:0 0 2.2rem;
  border:1px solid var(--rune);border-radius:2px;overflow:hidden;position:relative;
}
.rail .rstep{
  padding:.85rem 1rem;position:relative;border-right:1px solid var(--rune);
  transition:.45s var(--ease);background:rgba(8,7,10,.4);
}
.rail .rstep:last-child{border-right:0;}
.rail .rstep b{
  display:block;font-family:var(--f-display);font-size:.74rem;font-weight:700;
  letter-spacing:.16em;text-transform:uppercase;color:var(--ash);transition:color .4s;
}
.rail .rstep span{font-family:var(--f-mono);font-size:.6rem;letter-spacing:.12em;color:#6c6478;text-transform:uppercase;}
.rail .rstep::after{
  content:"";position:absolute;left:0;bottom:0;height:2px;width:100%;
  background:linear-gradient(90deg,var(--crimson),var(--ember));
  transform:scaleX(0);transform-origin:left;transition:transform .6s var(--ease);
}
.rail .rstep.on b{color:var(--gilt);}
.rail .rstep.on{background:linear-gradient(180deg,rgba(176,21,33,.14),transparent);}
.rail .rstep.on::after{transform:scaleX(1);}
.rail .rstep.done b{color:var(--gold);}
.rail .rstep.done::after{transform:scaleX(1);background:var(--gold);opacity:.5;}

/* --- era chooser --- */
.erapick{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem;}
.erapick button{
  background:var(--slab);border:1px solid var(--rune);border-radius:2px;cursor:pointer;
  padding:.6rem .85rem;text-align:left;color:var(--ash);transition:.3s var(--ease);
}
.erapick button i{
  font-style:normal;font-family:var(--f-display);font-size:.62rem;letter-spacing:.2em;
  color:var(--gold);opacity:.6;display:block;
}
.erapick button b{
  display:block;font-family:var(--f-display);font-size:.8rem;font-weight:700;
  letter-spacing:.06em;text-transform:uppercase;color:inherit;
}
.erapick button s{text-decoration:none;font-family:var(--f-mono);font-size:.58rem;letter-spacing:.08em;opacity:.7;}
.erapick button:hover{color:var(--bone);border-color:var(--gold);transform:translateY(-2px);}
.erapick button[aria-pressed="true"]{
  color:var(--gilt);border-color:var(--crimson);
  background:linear-gradient(180deg,rgba(176,21,33,.22),rgba(176,21,33,.04));
  box-shadow:0 0 24px -12px var(--ember);
}
.erapick button[aria-pressed="true"] i{opacity:1;}

/* --- package chooser --- */
.pkpick{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem;margin-top:1rem;}
.pkpick button{
  background:linear-gradient(180deg,var(--slab),var(--obsidian));
  border:1px solid var(--rune);border-radius:2px;cursor:pointer;padding:1.1rem 1rem;
  text-align:left;color:var(--bone);transition:.35s var(--ease);position:relative;overflow:hidden;
}
.pkpick button::after{
  content:"";position:absolute;inset:0;opacity:0;transition:opacity .4s;
  background:radial-gradient(120% 80% at 50% 120%, rgba(176,21,33,.3), transparent 70%);
}
.pkpick button:hover{transform:translateY(-3px);border-color:var(--gold);}
.pkpick button[aria-pressed="true"]{border-color:var(--crimson);box-shadow:0 0 34px -18px var(--ember);}
.pkpick button[aria-pressed="true"]::after{opacity:1;}
.pkpick b{
  display:block;font-family:var(--f-display);font-size:.82rem;font-weight:700;
  letter-spacing:.12em;text-transform:uppercase;color:var(--gilt);
}
.pkpick .pk-amt{font-family:var(--f-mono);font-weight:600;font-size:1.5rem;color:#fff;margin:.5rem 0 .1rem;}
.pkpick .pk-eta{font-family:var(--f-mono);font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ash);}
.pkpick .pk-who{font-size:.79rem;color:#9a92a8;margin-top:.5rem;line-height:1.45;}

/* --- order summary --- */
.summary{display:grid;grid-template-columns:1.1fr .9fr;gap:1rem;margin-top:1.2rem;}
.totals{list-style:none;margin:0;padding:0;}
.totals li{
  display:flex;align-items:baseline;gap:.5rem;padding:.6rem 0;
  border-bottom:1px dashed rgba(200,162,74,.12);
}
.totals li:last-child{border-bottom:0;}
.totals .k{font-family:var(--f-mono);font-size:.66rem;letter-spacing:.13em;text-transform:uppercase;color:var(--ash);}
.totals .lead{flex:1;height:1px;border-bottom:1px dotted rgba(200,162,74,.3);transform:translateY(-3px);}
.totals .v{font-family:var(--f-mono);font-size:.95rem;color:var(--bone);}
.totals .due .v{font-size:1.5rem;font-weight:600;color:#fff;}
.totals .due .k{color:var(--gilt);}

/* quote timer ring */
.quote{display:flex;align-items:center;gap:1rem;}
.ring{width:86px;height:86px;flex:0 0 auto;position:relative;}
.ring svg{width:100%;height:100%;transform:rotate(-90deg);}
.ring .track{fill:none;stroke:rgba(200,162,74,.16);stroke-width:5;}
.ring .prog{
  fill:none;stroke:var(--ember);stroke-width:5;stroke-linecap:round;
  filter:drop-shadow(0 0 6px rgba(240,66,77,.6));transition:stroke-dashoffset 1s linear;
}
.ring .rlabel{
  position:absolute;inset:0;display:grid;place-items:center;
  font-family:var(--f-mono);font-size:.82rem;color:var(--gilt);
}
.quote .qtext{font-size:.83rem;color:#9a92a8;line-height:1.5;}
.quote .qtext b{color:var(--gilt);font-weight:400;}
.quote.expired .prog{stroke:var(--ash);filter:none;}
.btcline{
  font-family:var(--f-mono);font-size:.72rem;letter-spacing:.06em;color:var(--gold);
  margin-top:.7rem;padding-top:.7rem;border-top:1px dashed rgba(200,162,74,.16);
}
.btcline b{color:var(--gilt);font-weight:400;}

/* --- payment block --- */
.paygrid{display:grid;grid-template-columns:1fr 220px;gap:1rem;}
.addrfull{
  background:#07060a;border:1px solid var(--rune);border-radius:2px;padding:1rem;margin-top:.3rem;
  position:relative;overflow:hidden;
}
.addrfull::before{
  content:"";position:absolute;left:0;right:0;top:0;height:2px;
  background:linear-gradient(90deg,transparent,var(--ember),transparent);
  animation:scan 3.6s var(--ease) infinite;
}
@keyframes scan{0%{transform:translateY(0);opacity:0;}12%{opacity:1;}88%{opacity:1;}100%{transform:translateY(112px);opacity:0;}}
.addrfull .lbl{font-family:var(--f-mono);font-size:.58rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);}
.addrfull code{
  display:block;font-family:var(--f-mono);font-size:.9rem;color:var(--gilt);
  line-height:1.6;word-break:break-all;margin:.6rem 0 .9rem;letter-spacing:.01em;
}
.addrfull .row{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;}
.btn-copy{
  font-family:var(--f-display);font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  font-size:.7rem;padding:.66rem 1rem;border-radius:2px;cursor:pointer;
  border:1px solid var(--gold);background:rgba(200,162,74,.08);color:var(--gilt);
  transition:.28s var(--ease);position:relative;overflow:hidden;
}
.btn-copy:hover{background:rgba(200,162,74,.18);box-shadow:0 0 22px -10px var(--gold);}
.btn-copy.done{border-color:#8ef0a8;color:#8ef0a8;background:rgba(142,240,168,.1);}
.ripple{
  position:absolute;border-radius:50%;transform:scale(0);pointer-events:none;
  background:rgba(235,217,164,.45);animation:rip .6s var(--ease);
}
@keyframes rip{to{transform:scale(4);opacity:0;}}
.qrbox{
  display:grid;place-items:center;padding:1rem;background:#07060a;
  border:1px solid var(--rune);border-radius:2px;text-align:center;
}
.qrbox #qr{background:#fff;padding:8px;line-height:0;border-radius:2px;min-height:40px;}
.qrbox #qr img,.qrbox #qr canvas{display:block;}
.qrbox .cap{font-family:var(--f-mono);font-size:.56rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ash);margin-top:.6rem;}
.warnbox{
  margin-top:1rem;padding:.85rem 1rem;border-left:2px solid var(--crimson);
  background:rgba(176,21,33,.07);font-size:.83rem;color:#c3bbcf;line-height:1.55;
}
.warnbox b{color:var(--ember);font-weight:400;}

/* --- confirm step --- */
.txin{
  width:100%;padding:.75rem .85rem;background:#07060a;border:1px solid var(--rune);border-radius:2px;
  color:var(--gilt);font-family:var(--f-mono);font-size:.8rem;letter-spacing:.02em;
  transition:border-color .3s,box-shadow .3s;
}
.txin:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 1px rgba(200,162,74,.25);}
.txin.ok{border-color:#8ef0a8;box-shadow:0 0 18px -8px #8ef0a8;}
.txin.bad{border-color:var(--ember);}
.txhint{font-family:var(--f-mono);font-size:.62rem;letter-spacing:.1em;color:var(--ash);margin-top:.45rem;display:block;}
.txhint.ok{color:#8ef0a8;}
.txhint.bad{color:var(--ember);}
.msgbox{
  margin-top:1rem;background:#07060a;border:1px solid var(--rune);border-radius:2px;
}
.msgbox .bar{
  display:flex;justify-content:space-between;align-items:center;padding:.45rem .6rem .45rem .8rem;
  border-bottom:1px solid var(--rune);background:rgba(200,162,74,.04);
}
.msgbox .bar span{font-family:var(--f-mono);font-size:.58rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);}
.msgbox pre{
  margin:0;padding:.95rem;font-family:var(--f-mono);font-size:.76rem;line-height:1.8;
  color:#cfc7db;white-space:pre-wrap;word-break:break-word;
}
.sendrow{display:flex;gap:.7rem;margin-top:1rem;flex-wrap:wrap;}
.sendrow .btn{flex:1;text-align:center;min-width:170px;text-decoration:none;}

/* --- faq --- */
.faq{margin-top:1rem;}
.faq details{
  border:1px solid var(--rune);border-radius:2px;margin-bottom:.55rem;
  background:linear-gradient(180deg,var(--slab),var(--obsidian));transition:border-color .3s;
}
.faq details[open]{border-color:var(--gold);}
.faq summary{
  cursor:pointer;padding:.85rem 1rem;list-style:none;position:relative;padding-right:2.4rem;
  font-family:var(--f-display);font-size:.84rem;font-weight:700;letter-spacing:.04em;color:var(--bone);
}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{
  content:"+";position:absolute;right:1rem;top:.75rem;color:var(--gold);
  font-family:var(--f-mono);font-size:1.1rem;transition:transform .3s var(--ease);
}
.faq details[open] summary::after{transform:rotate(45deg);}
.faq summary:hover{color:var(--gilt);}
.faq .ans{padding:0 1rem 1rem;font-size:.87rem;color:#a49cb2;line-height:1.6;}
.faq .ans b{color:var(--gilt);font-weight:400;}

/* --- scroll reveal --- */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s var(--ease),transform .7s var(--ease);}
.reveal.in{opacity:1;transform:none;}

/* --- back link --- */
.backlink{
  font-family:var(--f-mono);font-size:.63rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--ash);text-decoration:none;transition:color .25s;white-space:nowrap;
}
.backlink:hover{color:var(--gilt);}

@media(max-width:900px){
  .summary,.paygrid{grid-template-columns:1fr;}
  .pkpick{grid-template-columns:1fr;}
}
@media(max-width:720px){
  .rail{grid-template-columns:1fr;}
  .rail .rstep{border-right:0;border-bottom:1px solid var(--rune);}
  .addrfull code{font-size:.78rem;}
}
@media(prefers-reduced-motion:reduce){
  .addrfull::before{display:none;}
  .reveal{opacity:1;transform:none;}
}
