:root{
  --paper:#d7dcc8;
  --buff:#c9cdb6;
  --rule:#9aa387;
  --ink:#1b2220;
  --ink-soft:#4a544e;
  --oxblood:#8a2b22;
  --stampblue:#2b4763;
  --edge:#b3ba9f;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--paper);
  background-image:repeating-linear-gradient(to bottom,transparent 0 27px,rgba(154,163,135,.26) 27px 28px);
  color:var(--ink);
  font-family:"Newsreader",Georgia,serif;
  font-size:17px;line-height:28px;
  -webkit-font-smoothing:antialiased;
}

.wrap{max-width:1000px;margin:0 auto;padding:0 22px;}

.mono{font-family:"IBM Plex Mono",monospace;}
.label{
  font-family:"IBM Plex Mono",monospace;font-size:9.5px;letter-spacing:.2em;
  text-transform:uppercase;color:var(--ink-soft);display:block;
}

/* ============ TOP BAR ============ */
.topbar{
  border-bottom:1px solid var(--rule);
  font-family:"IBM Plex Mono",monospace;font-size:10.5px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--ink-soft);
}
.topbar__inner{
  max-width:1000px;margin:0 auto;padding:9px 22px;
  display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;
}
.topbar b{color:var(--ink);font-weight:500;}

/* ============ HERO ============ */
.hero{padding:34px 0 0;}
.hero__grid{display:grid;grid-template-columns:1.05fr .95fr;gap:40px;align-items:end;}

.hero__eyebrow{
  font-family:"IBM Plex Mono",monospace;font-size:11px;letter-spacing:.22em;
  text-transform:uppercase;color:var(--ink-soft);margin:0 0 16px;
}
.stampband{
  max-width:1000px;margin:0 auto;padding:46px 22px 34px;
}

.mark{
  display:inline-block;margin:0;
  color:var(--oxblood);
  border:6px solid currentColor;
  padding:20px 38px 16px;
  transform:rotate(-2.2deg);
  mix-blend-mode:multiply;
  opacity:.9;
  filter:url(#inkrough);
  box-shadow:inset 0 0 0 3px currentColor;
  position:relative;
}
.mark__word{
  display:block;margin:0;
  font-family:"Archivo Narrow",sans-serif;font-weight:700;
  font-size:clamp(78px,18vw,196px);line-height:.78;
  letter-spacing:.015em;text-transform:uppercase;
}
.mark__expand{
  display:block;margin:14px 0 0;
  font-family:"IBM Plex Mono",monospace;font-size:clamp(8.5px,1.7vw,13px);
  letter-spacing:.22em;text-transform:uppercase;line-height:1.55;
  border-top:3px solid currentColor;padding-top:11px;
}
.mark__reg{
  position:absolute;top:-14px;right:20px;
  font-family:"IBM Plex Mono",monospace;font-size:10px;letter-spacing:.18em;
  text-transform:uppercase;background:var(--paper);padding:0 8px;
}
.inkdefs{position:absolute;width:0;height:0;overflow:hidden;}
.hero__blurb{
  margin:22px 0 0;font-size:19px;line-height:31px;max-width:40ch;font-style:italic;color:var(--ink-soft);
}
.hero__cta{
  display:inline-block;margin:26px 0 0;
  font-family:"Archivo Narrow",sans-serif;font-weight:700;font-size:17px;
  letter-spacing:.14em;text-transform:uppercase;
  color:var(--paper);background:var(--ink);
  padding:14px 26px;text-decoration:none;border:2px solid var(--ink);
}
.hero__cta:hover{background:var(--oxblood);border-color:var(--oxblood);}
.hero__cta:focus-visible{outline:3px solid var(--oxblood);outline-offset:3px;}

/* asset slot */
.asset{position:relative;}
.asset__slot{
  border:2px dashed var(--rule);
  aspect-ratio:1/1;
  display:flex;align-items:center;justify-content:center;
  position:relative;
  background:rgba(228,231,216,.5);
}
.asset__slot svg{width:76%;height:auto;opacity:.72;transition:opacity .5s ease;}
/* The 3D model replaces the line art once it has actually loaded. */
.asset__slot.is-3d svg{opacity:0;}
.asset__canvas{
  position:absolute;inset:0;width:100%;height:100%;
  cursor:grab;touch-action:pan-y;outline:none;
  opacity:0;animation:asset-in .6s ease forwards;
}
.asset__canvas.is-grabbing{cursor:grabbing;}
.asset__canvas:focus-visible{outline:3px solid var(--oxblood);outline-offset:3px;}
@keyframes asset-in{to{opacity:1;}}
.asset__tag{
  position:absolute;top:-1px;left:-1px;
  font-family:"IBM Plex Mono",monospace;font-size:9px;letter-spacing:.16em;
  text-transform:uppercase;background:var(--ink);color:var(--paper);padding:4px 8px;
}
.asset__note{
  font-family:"IBM Plex Mono",monospace;font-size:9.5px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--ink-soft);margin:10px 0 0;text-align:right;
}

/* feed strip */
.feed{
  margin-top:44px;border-top:2px solid var(--ink);border-bottom:1px solid var(--rule);
  padding:12px 0;overflow:hidden;white-space:nowrap;
  font-family:"IBM Plex Mono",monospace;font-size:11.5px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--ink-soft);
}
.feed__track{display:inline-block;padding-left:100%;animation:slide 42s linear infinite;}
.feed__track b{color:var(--oxblood);font-weight:500;}
.feed__track i{color:var(--stampblue);font-style:normal;}
@keyframes slide{from{transform:translateX(0);}to{transform:translateX(-100%);}}

/* ============ SECTION FRAME ============ */
.sect{padding:70px 0 0;}
.sect__head{
  border-bottom:2px solid var(--ink);padding-bottom:10px;margin-bottom:30px;
  display:flex;justify-content:space-between;align-items:baseline;gap:18px;flex-wrap:wrap;
}
.sect__title{
  font-family:"Archivo Narrow",sans-serif;font-weight:700;font-size:clamp(30px,5vw,46px);
  line-height:1;text-transform:uppercase;margin:0;letter-spacing:-.01em;
}
.sect__meta{
  font-family:"IBM Plex Mono",monospace;font-size:10.5px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--ink-soft);
}

/* ============ SUBMIT ============ */
.submit{display:grid;grid-template-columns:1.25fr .75fr;gap:38px;align-items:start;}

.field{margin-bottom:20px;}
.field label{margin-bottom:6px;}
.field input,.field textarea{
  width:100%;background:rgba(228,231,216,.75);
  border:1.5px solid var(--rule);border-radius:0;
  padding:11px 12px;color:var(--ink);
  font-family:"Newsreader",Georgia,serif;font-size:16.5px;line-height:26px;
}
.field input:focus,.field textarea:focus{
  outline:none;border-color:var(--ink);background:rgba(228,231,216,1);
}
.field textarea{min-height:132px;resize:vertical;}
.field__hint{
  font-family:"IBM Plex Mono",monospace;font-size:9.5px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--ink-soft);margin-top:5px;
}

.btn{
  font-family:"Archivo Narrow",sans-serif;font-weight:700;font-size:16px;
  letter-spacing:.14em;text-transform:uppercase;
  background:var(--ink);color:var(--paper);border:2px solid var(--ink);
  padding:14px 24px;cursor:pointer;
}
.btn:hover{background:var(--oxblood);border-color:var(--oxblood);}
.btn:focus-visible{outline:3px solid var(--oxblood);outline-offset:3px;}
.btn[disabled]{opacity:.45;cursor:not-allowed;}

/* fee panel */
.fee{border:2px solid var(--ink);padding:18px;background:rgba(201,205,182,.55);}
.fee__amount{
  font-family:"Archivo Narrow",sans-serif;font-weight:700;font-size:38px;
  line-height:1;margin:6px 0 3px;
}
.fee__usd{
  font-family:"IBM Plex Mono",monospace;font-size:10.5px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--ink-soft);margin-bottom:18px;
}
.split{border-top:1px solid var(--rule);padding-top:12px;}
.split__row{
  display:flex;justify-content:space-between;align-items:baseline;
  font-family:"IBM Plex Mono",monospace;font-size:11px;letter-spacing:.08em;
  text-transform:uppercase;padding:5px 0;
}
.split__row b{font-weight:500;}
.split__bar{height:9px;display:flex;margin-top:12px;border:1px solid var(--ink);}
.split__bar i{display:block;height:100%;}
.split__note{
  font-family:"IBM Plex Mono",monospace;font-size:9.5px;line-height:17px;
  letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);margin-top:14px;
}

/* paused banner */
.notice{
  margin:0 0 22px;border:2px solid var(--oxblood);color:var(--oxblood);
  padding:12px 14px;font-family:"IBM Plex Mono",monospace;font-size:11px;
  letter-spacing:.12em;text-transform:uppercase;display:none;
}
.notice.is-live{display:block;}

/* payment panel */
.pay{
  margin-top:30px;border:2px solid var(--ink);background:rgba(228,231,216,.7);
  padding:24px;display:none;
}
.pay.is-live{display:block;}
.pay__grid{display:grid;grid-template-columns:1fr auto;gap:22px;align-items:start;}
.pay__addr{
  font-family:"IBM Plex Mono",monospace;font-size:12.5px;line-height:20px;
  word-break:break-all;border:1.5px solid var(--rule);padding:10px 12px;margin:8px 0 0;
  background:rgba(228,231,216,.8);
}
.pay__qr{border:1.5px solid var(--rule);padding:6px;background:#fff;}
.pay__qr img{display:block;width:150px;height:150px;}
.pay__meta{
  font-family:"IBM Plex Mono",monospace;font-size:10.5px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--ink-soft);margin-top:14px;line-height:1.9;
}
.pay__meta b{color:var(--oxblood);font-weight:500;}
.pay__copy{
  font-family:"Archivo Narrow",sans-serif;font-weight:700;font-size:12px;
  letter-spacing:.14em;text-transform:uppercase;
  background:none;border:2px solid var(--ink);color:var(--ink);
  padding:7px 12px;cursor:pointer;margin-top:10px;
}
.pay__copy:hover{background:var(--ink);color:var(--paper);}

/* ruling output */
.output{
  margin-top:30px;border:2px solid var(--ink);background:rgba(228,231,216,.7);
  padding:26px 24px 24px;position:relative;min-height:150px;display:none;
}
.output.is-live{display:block;}
.output__head{
  display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;
  border-bottom:1px solid var(--rule);padding-bottom:9px;margin-bottom:16px;
  font-family:"IBM Plex Mono",monospace;font-size:10.5px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--ink-soft);
}
.output__text{font-size:17.5px;line-height:29px;white-space:pre-wrap;min-height:60px;}
.output.is-typing .output__text::after{
  content:"";display:inline-block;width:9px;height:19px;
  background:var(--ink);vertical-align:-3px;margin-left:2px;
  animation:blink 1s steps(2) infinite;
}
@keyframes blink{0%,50%{opacity:1;}51%,100%{opacity:0;}}

.output__stamp{
  position:absolute;top:20px;right:20px;
  font-family:"Archivo Narrow",sans-serif;font-weight:700;font-size:16px;
  letter-spacing:.16em;text-transform:uppercase;padding:8px 13px 7px;
  border:2.5px solid currentColor;text-align:center;line-height:1.05;
  mix-blend-mode:multiply;opacity:0;transform:rotate(-7deg) scale(2.6);
}
.output__stamp small{
  display:block;font-family:"IBM Plex Mono",monospace;font-weight:400;
  font-size:8.5px;letter-spacing:.1em;margin-top:3px;opacity:.85;
}
.output__stamp.is-struck{animation:slam .34s cubic-bezier(.2,1.4,.4,1) forwards;}
@keyframes slam{
  0%{opacity:0;transform:rotate(-14deg) scale(2.6);}
  60%{opacity:.95;transform:rotate(-7deg) scale(.94);}
  100%{opacity:.84;transform:rotate(-7deg) scale(1);}
}
.stamp--no{color:var(--oxblood);}
.stamp--yes{color:var(--stampblue);}
.stamp--void{color:var(--ink-soft);}

.output__burn{
  margin-top:20px;border-top:1px solid var(--rule);padding-top:11px;
  font-family:"IBM Plex Mono",monospace;font-size:10.5px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--ink-soft);
}
.output__burn b{color:var(--oxblood);font-weight:500;}

/* ============ FLOW ============ */
.flow{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:2px solid var(--ink);}
.flow__step{
  padding:20px 22px 24px 0;border-right:1px solid var(--rule);
}
.flow__step:last-child{border-right:0;padding-right:0;}
.flow__n{
  font-family:"IBM Plex Mono",monospace;font-size:10px;letter-spacing:.2em;
  text-transform:uppercase;color:var(--oxblood);display:block;margin-bottom:9px;
}
.flow__h{
  font-family:"Archivo Narrow",sans-serif;font-weight:600;font-size:21px;
  line-height:1.15;text-transform:uppercase;margin:0 0 8px;
}
.flow__p{margin:0;font-size:16px;line-height:26px;color:var(--ink-soft);}
.flow__p b{color:var(--ink);font-weight:500;font-style:italic;}

/* ============ LEDGER ============ */
.ledger{display:grid;grid-template-columns:repeat(2,1fr);gap:0 26px;}
.ledger__empty{
  font-family:"IBM Plex Mono",monospace;font-size:11px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--ink-soft);padding:18px 0 24px;
}
.card{
  border-top:1px solid var(--rule);padding:18px 0 20px;position:relative;
}
.card__top{
  display:flex;justify-content:space-between;gap:10px;
  font-family:"IBM Plex Mono",monospace;font-size:10px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--ink-soft);margin-bottom:8px;
}
.card__verdict{font-weight:500;}
.v-no{color:var(--oxblood);}
.v-yes{color:var(--stampblue);}
.v-void{color:var(--ink-soft);}
.card__title{
  font-family:"Archivo Narrow",sans-serif;font-weight:600;font-size:19px;
  line-height:1.18;text-transform:uppercase;margin:0 0 8px;
}
.card__title a{color:inherit;text-decoration:none;}
.card__title a:hover{color:var(--oxblood);}
.card__line{font-size:16px;line-height:26px;color:var(--ink-soft);font-style:italic;margin:0 0 10px;}
.card__foot{
  font-family:"IBM Plex Mono",monospace;font-size:9.5px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--ink-soft);
}
.card__foot b{color:var(--ink);font-weight:500;}

.pager{
  margin-top:26px;border-top:2px solid var(--ink);padding-top:14px;
  display:flex;justify-content:space-between;align-items:center;gap:14px;
}
.pager__btn{
  font-family:"Archivo Narrow",sans-serif;font-weight:700;font-size:13px;
  letter-spacing:.16em;text-transform:uppercase;
  background:none;border:2px solid var(--ink);color:var(--ink);
  padding:9px 18px;cursor:pointer;
}
.pager__btn:hover:not([disabled]){background:var(--ink);color:var(--paper);}
.pager__btn:focus-visible{outline:3px solid var(--oxblood);outline-offset:3px;}
.pager__btn[disabled]{opacity:.3;cursor:not-allowed;}
.pager__count{
  font-family:"IBM Plex Mono",monospace;font-size:10.5px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--ink-soft);
}

/* ============ FOOTER ============ */
.foot{margin-top:78px;border-top:2px solid var(--ink);padding:34px 0 60px;}
.foot__grid{display:grid;grid-template-columns:1fr 1fr 1.2fr;gap:30px;}
.foot__link{
  display:block;font-family:"Archivo Narrow",sans-serif;font-weight:700;
  font-size:30px;line-height:1.1;text-transform:uppercase;
  color:var(--ink);text-decoration:none;letter-spacing:-.005em;
}
.foot__link:hover{color:var(--oxblood);}
.foot__link:focus-visible{outline:3px solid var(--oxblood);outline-offset:3px;}
.foot__sub{
  font-family:"IBM Plex Mono",monospace;font-size:10px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--ink-soft);margin-top:4px;
}
.ca{
  font-family:"IBM Plex Mono",monospace;font-size:11px;line-height:20px;
  word-break:break-all;color:var(--ink);border:1.5px solid var(--rule);padding:9px 10px;margin-top:8px;
}
.foot__legal{
  margin-top:34px;font-family:"IBM Plex Mono",monospace;font-size:9.5px;
  line-height:18px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);
  max-width:70ch;
}

/* ============ CLAIM PAGE ============ */
.claim{max-width:560px;margin:0 auto;padding:40px 0 80px;}
.claim__result{
  margin-top:22px;border:2px solid var(--ink);padding:14px 16px;display:none;
  font-family:"IBM Plex Mono",monospace;font-size:11.5px;letter-spacing:.08em;
  text-transform:uppercase;line-height:1.9;
}
.claim__result.is-live{display:block;}
.claim__result.is-error{border-color:var(--oxblood);color:var(--oxblood);}

/* ============ RESPONSIVE ============ */
@media (max-width:820px){
  .hero__grid{grid-template-columns:1fr;gap:30px;align-items:start;}
  .asset{order:-1;}
  .submit{grid-template-columns:1fr;gap:28px;}
  .ledger{grid-template-columns:1fr;}
  .flow{grid-template-columns:1fr;}
  .flow__step{border-right:0;border-bottom:1px solid var(--rule);padding-right:0;}
  .flow__step:last-child{border-bottom:0;padding-bottom:0;}
  .foot__grid{grid-template-columns:1fr;gap:22px;}
  .pay__grid{grid-template-columns:1fr;}
}
@media (max-width:520px){
  body{font-size:16px;}
  .stampband{padding:28px 22px 22px;}
  .mark{padding:15px 20px 12px;border-width:4px;box-shadow:inset 0 0 0 2px currentColor;}
  .hero{padding-top:22px;}
  .output__stamp{position:static;display:inline-block;margin-bottom:14px;transform:rotate(-3deg);}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  .asset__slot svg{transition:none;}
  .asset__canvas{animation:none;opacity:1;}
  .feed__track{animation:none;padding-left:0;}
  .output.is-typing .output__text::after{animation:none;}
  .output__stamp.is-struck{animation:none;opacity:.84;transform:rotate(-7deg) scale(1);}
}
