/* p/ — a quiet page: dark red, cream ink, one old-style serif for prose and a monospace for anything that is data, hairline boxes, small-caps labels.
   Numbers set in the serif. Nothing moves unless it has to. */
:root{
  --paper:#1c0508;--paper2:#26090c;--white:#200709;
  --ink:#f6e9e6;--text:#e2cfcb;--muted:#a8837f;--dim:#7a5854;
  --line:#4a1a1e;--line2:#6a2a2f;
  --accent:#f6e9e6;--green:#8fd192;--red:#ff8a7a;--xmr:#f26822;
  --serif:'EB Garamond','Cormorant Garamond',Georgia,'Times New Roman',serif;
  --mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
html,body{overflow-x:hidden}
body{margin:0;background:var(--paper);color:var(--text);font-family:var(--serif);font-size:18px;line-height:1.6;-webkit-font-smoothing:antialiased}
a{color:var(--ink);text-decoration:none}
a:hover{text-decoration:underline;text-underline-offset:3px}
h1,h2,h3,h4{margin:0;font-family:var(--serif);font-weight:700;letter-spacing:0;color:var(--ink)}
p{margin:0}
button,input,textarea,select{font:inherit;color:inherit}
input,textarea,select{background:var(--white);border:1px solid var(--line2);border-radius:0;padding:9px 12px;width:100%;outline:none;font-size:17px}
input:focus,textarea:focus{border-color:var(--ink)}
input::placeholder,textarea::placeholder{color:var(--dim);font-style:italic}
::selection{background:#6a2a2f;color:#fff}
.mono{font-family:var(--mono);font-size:.82em}
b,strong{font-weight:700;color:var(--ink)}
code{font-family:var(--mono);font-size:.85em;background:var(--paper2);padding:1px 5px}
pre{font-family:var(--mono);font-size:13px;line-height:1.5;background:var(--white);border:1px solid var(--line);padding:12px 14px;overflow:auto;margin:0;white-space:pre-wrap;word-break:break-all}

/* ---- the column ---- */
.wrap{max-width:560px;margin:0 auto;padding:0 20px}
main{padding:0 0 80px}

/* ---- nav: the mark, the name, letter-spaced links, the current one boxed ---- */
.nav{background:var(--paper);position:sticky;top:0;z-index:20}
.nav-in{max-width:560px;margin:0 auto;padding:14px 20px 10px;display:flex;flex-wrap:nowrap;gap:12px;align-items:center}
.brand{display:flex;align-items:center;gap:8px;color:var(--ink);font-size:17px;font-weight:400}
.brand:hover{text-decoration:none}
.brand img{width:30px;height:30px;display:block;border-radius:4px}
.brand span{font-weight:700}
.nav-links{display:flex;gap:12px;flex-wrap:nowrap;margin-left:auto;align-items:center}
.nav-links a{color:var(--ink);font-size:11px;letter-spacing:.16em;text-transform:uppercase;padding:3px 7px;border:1px solid transparent;white-space:nowrap}
.nav-links a.on{border-color:var(--ink)}
.nav-links a:hover{text-decoration:none;border-color:var(--line2)}
.nav-links a.x{padding:3px 4px}
.nav-links a.x svg{width:15px;height:15px;fill:currentColor;display:block}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--ink);background:transparent;color:var(--ink);padding:5px 12px;border-radius:0;cursor:pointer;white-space:nowrap;text-decoration:none;line-height:1.4;font-size:11px;letter-spacing:.16em;text-transform:uppercase;font-family:var(--serif);font-style:normal}
.btn:hover{background:var(--ink);color:var(--paper);text-decoration:none}
.btn.solid{background:var(--ink);color:var(--paper)}
.btn.solid:hover{background:#ffffff;color:#1c0508}
.btn.lg{padding:8px 16px;font-size:12px}
.btn.sm{padding:3px 8px;font-size:10px}
.btn.wide{width:100%}
.btn:disabled{opacity:.45;cursor:not-allowed}

/* ---- the page's opening ---- */
.hero{padding:44px 0 0}
.hero h1,.page-h h1{font-size:34px;line-height:1.15}
.eyebrow{font-size:16px;font-style:italic;color:var(--muted);margin-top:6px}
.hero .tag{margin-top:26px;font-size:18px;line-height:1.65;color:var(--text)}
.hero p + p{margin-top:14px}
.cta{margin-top:22px;display:flex;gap:10px;flex-wrap:wrap}
.hero > *{animation:rise .6s ease both}
.hero .tag{animation-delay:.1s}.hero .cta{animation-delay:.2s}

/* the pull quote */
.quote{margin:36px 0 0;border-left:2px solid var(--line2);padding:2px 0 2px 18px;color:var(--muted);font-style:italic;font-size:18px;line-height:1.6}
.quote p + p{margin-top:8px;font-size:16px}

/* the little drawing between sections */
.mark-row{display:flex;justify-content:center;margin:56px 0 0}
.mark-row svg{width:44px;height:44px;color:var(--ink)}

/* labels: small caps, letter-spaced */
.label{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink);font-weight:700;font-style:normal}
.label.dim{color:var(--muted)}
.section{padding-top:48px}
.list-head{display:flex;justify-content:space-between;align-items:baseline;gap:14px;flex-wrap:wrap}
.list-head h2{font-size:11px;letter-spacing:.2em;text-transform:uppercase;font-weight:700}
.list-head .muted{font-size:14px;font-style:italic}
.help{color:var(--muted);font-size:16px;line-height:1.6}
.muted{color:var(--muted)}
.dim{color:var(--dim)}
.green{color:var(--green)}.red{color:var(--red)}.err{color:var(--red)}.ok{color:var(--green)}
.panel{border:1px solid var(--line);background:var(--white);padding:18px}
.panel.hl{border-color:var(--ink)}
.prose p{margin-top:14px;color:var(--text);line-height:1.65;font-size:18px}
.prose p:first-child{margin-top:0}
.prose p strong{color:var(--ink)}

/* the numbers: a hairline table */
.keeper{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);background:var(--white);margin-top:34px;animation:rise .6s ease both;animation-delay:.3s}
.keeper > div{display:flex;flex-direction:column;padding:14px 8px 12px;text-align:center;border-right:1px solid var(--line)}
.keeper > div:last-child{border-right:0}
.keeper b{display:block;font-size:20px;line-height:1.15;font-weight:700;color:var(--ink);white-space:nowrap}
.keeper .label{margin-top:6px;font-size:9.5px;letter-spacing:.14em;color:var(--muted);line-height:1.3}
.big{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);margin-top:22px;background:var(--white)}
.big > div{padding:14px 12px;border-right:1px solid var(--line);min-width:0}
.big > div:last-child{border-right:0}
.big .label{font-size:9px;color:var(--muted)}
.big b{display:block;font-size:19px;margin-top:4px;font-weight:700;color:var(--ink);overflow-wrap:anywhere}
.big small{display:block;color:var(--muted);font-size:13px;margin-top:4px;line-height:1.45;font-style:italic}
.big.two{grid-template-columns:1fr 1fr}
.big.two > div:nth-child(2n){border-right:0}
.big.two > div:nth-child(-n+2){border-bottom:1px solid var(--line)}
.big.two > div:nth-child(n+3):nth-last-child(-n+2){border-bottom:0}

/* lists: hairline boxes stacked */
.coins{margin-top:14px;border:1px solid var(--line);background:var(--white)}
.coin{display:block;color:inherit;padding:16px 18px;border-bottom:1px solid var(--line);background:var(--white)}
.coin:last-child{border-bottom:0}
.coin:hover{background:var(--paper2);text-decoration:none}
.coin-top{display:flex;gap:14px;align-items:flex-start}
.coin-top img,.coin-top .ph{width:44px;height:44px;border:1px solid var(--line);flex:none;background:var(--paper2);display:block;object-fit:cover}
.coin-top .ph{display:flex;align-items:center;justify-content:center;font-weight:700;color:var(--ink);font-size:14px}
.coin-top .name{font-weight:700;font-size:18px;color:var(--ink)}
.coin-top .desc{color:var(--muted);font-size:15px;font-style:italic}
.coin-top .on{color:var(--muted);font-size:10px;letter-spacing:.14em;text-transform:uppercase;margin-top:6px;display:flex;gap:12px;flex-wrap:wrap;font-weight:700}
.coin-top .age{margin-left:auto;color:var(--muted);font-size:14px;flex:none;font-style:italic}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:14px}
.stats .label{font-size:9px;color:var(--muted)}
.stats b{display:block;font-size:16px;margin-top:2px;font-weight:700;color:var(--ink)}
.bar{height:2px;background:var(--line);overflow:hidden;margin-top:12px}
.bar i{display:block;height:100%;background:var(--ink);width:0;transition:width .6s}
.empty{padding:28px 18px;text-align:center;color:var(--muted);font-size:16px;line-height:1.7;font-style:italic}
.trow{display:grid;grid-template-columns:82px 1fr auto;gap:10px;padding:11px 16px;border-bottom:1px solid var(--line);color:inherit;font-size:15px;background:var(--white);line-height:1.5;animation:rise .4s ease both}
.trow:last-child{border-bottom:0}
.trow .muted{font-style:italic}
.trow .mono{font-size:11px;color:var(--muted);align-self:center}
.trow .kind{font-size:10px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--ink);align-self:start;padding-top:3px}

/* ---- pages: headers and prose ---- */
.page-h{padding-top:44px}
.page-h p{margin-top:16px;color:var(--text);font-size:18px;line-height:1.65}
.page-h p.muted{color:var(--muted);font-style:italic}
.hint{background:var(--white);border:1px solid var(--line);padding:12px 16px;color:var(--muted);font-size:16px;line-height:1.6}
.hint b{color:var(--ink)}
.sec{margin-top:44px}
.sec h2{font-size:11px;letter-spacing:.2em;text-transform:uppercase;margin-top:0;padding-bottom:6px;border-bottom:1px solid var(--line)}
.sec > p{margin-top:14px;color:var(--text);line-height:1.65;font-size:18px}
.sec ol,.sec ul{margin:12px 0 0;padding-left:22px;color:var(--text);font-size:17px;line-height:1.6}
.sec li{margin-top:6px}
.dia{margin-top:16px;padding:0 0 0 18px;border-left:2px solid var(--line2)}
.dia .cap{margin-top:10px;color:var(--muted);font-size:16px;line-height:1.6;font-style:italic}
.flow{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.box{border:1px solid var(--line2);padding:5px 10px;font-size:11px;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:var(--ink);background:var(--white)}
.box.ok{border-color:var(--ink)}
.arr{color:var(--dim)}

/* ---- forms ---- */
.form{margin-top:28px;display:flex;flex-direction:column;gap:16px}
.form h2{font-size:11px;letter-spacing:.2em;text-transform:uppercase;font-weight:700;color:var(--ink)}
.field{display:flex;flex-direction:column;gap:6px}
.field .label{color:var(--muted);font-size:10px}
.cols{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.drop{border:1px dashed var(--line2);padding:24px 14px;text-align:center;cursor:pointer;background:var(--paper2)}
.drop:hover,.drop.over{border-color:var(--ink);background:var(--white)}
.drop b{display:block;margin-top:6px}
.drop span{display:block;color:var(--muted);margin-top:2px;font-size:14px;font-style:italic}
.drop img{max-height:120px;margin:0 auto 8px;display:block}
.chips{display:flex;gap:6px;flex-wrap:wrap}
.chip{border:1px solid var(--line2);background:var(--white);color:var(--ink);padding:4px 10px;cursor:pointer;font-size:14px}
.chip.on{border-color:var(--ink);background:var(--ink);color:var(--paper)}
.ro{display:flex;justify-content:space-between;gap:14px;padding:9px 0;border-bottom:1px solid var(--line);font-size:16px}
.ro:last-child{border-bottom:0}
.ro b{text-align:right;color:var(--ink);font-weight:400;overflow-wrap:anywhere}
.ro .muted{font-style:italic;flex:none}
.addr{font-family:var(--mono);font-size:12.5px;line-height:1.5;word-break:break-all;color:var(--ink);background:var(--white);border:1px solid var(--line);padding:10px 12px;display:block}
.addr.big{font-size:13px}
.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.row input{flex:1;min-width:200px}
.num{font-family:var(--mono);font-size:11px;letter-spacing:.14em;color:var(--muted)}
.tabs{display:flex;gap:0;border:1px solid var(--line);margin-top:14px}
.tabs button{flex:1;border:0;background:var(--white);padding:8px;font-size:11px;letter-spacing:.16em;text-transform:uppercase;cursor:pointer;color:var(--muted);border-right:1px solid var(--line)}
.tabs button:last-child{border-right:0}
.tabs button.on{background:var(--ink);color:var(--paper)}
.coin-hero{display:flex;gap:18px;align-items:flex-start;padding-top:44px}
.coin-hero img,.coin-hero .ph{width:88px;height:88px;border:1px solid var(--line);background:var(--paper2);flex:none;object-fit:cover}
.coin-hero .ph{display:flex;align-items:center;justify-content:center;font-weight:700;color:var(--ink);font-size:24px}
.coin-hero h1{font-size:30px;line-height:1.15}
.coin-hero h1 .muted{font-size:16px;font-weight:400;display:block;margin-top:4px;font-style:italic}
.coin-hero .desc{color:var(--text);margin-top:10px;font-size:17px}
.coin-hero .links{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}
.steps{margin-top:14px;border:1px solid var(--line);background:var(--white)}
.step{padding:16px 18px;border-bottom:1px solid var(--line)}
.step:last-child{border-bottom:0}
.step h3{font-size:18px;margin-top:2px;font-weight:700}
.step p{margin-top:6px;color:var(--text);font-size:16px;line-height:1.6}
.step .num{display:block;margin-bottom:4px}
.log{font-family:var(--mono);font-size:12px;line-height:1.6;color:var(--muted)}
.log div{padding:3px 0;border-bottom:1px dotted var(--line)}
.log .error{color:var(--red)}

/* ---- footer ---- */
footer{border-top:1px solid var(--line);margin-top:60px;padding:22px 0 30px;color:var(--muted);font-size:14px;background:var(--paper)}
footer .nav-in{padding-top:0;padding-bottom:0;flex-direction:column;align-items:flex-start;gap:10px}
footer a{color:var(--ink)}
.foot-brand{display:flex;flex-direction:column;gap:6px}
.foot-brand img{width:30px;height:30px;border-radius:4px}
.foot-brand .tagline{font-size:18px;font-style:italic;color:var(--ink);line-height:1.3}
.foot-brand p{font-size:15px;color:var(--muted)}
.foot-cols{display:flex;gap:10px;flex-wrap:wrap;margin-top:6px}
.foot-cols a{display:inline-block;margin:0 10px 0 0;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink)}
.foot-bottom{max-width:560px;margin:14px auto 0;padding:12px 20px 0;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;color:var(--dim);font-size:13px;font-style:italic}

/* ---- toast ---- */
.toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%) translateY(20px);opacity:0;background:var(--ink);color:var(--paper);padding:9px 14px;font-size:14px;transition:.25s;pointer-events:none;z-index:50;max-width:calc(100vw - 32px)}
.toast.show{opacity:1;transform:translateX(-50%)}
[hidden]{display:none!important}

/* ---- motion, kept quiet ---- */
@keyframes rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
[data-reveal]{opacity:0;transform:translateY(10px);transition:opacity .6s ease,transform .6s ease}
[data-reveal].in{opacity:1;transform:none}
@media (prefers-reduced-motion: reduce){*,*::before,*::after{animation:none!important;transition:none!important}[data-reveal]{opacity:1;transform:none}}

@media (max-width:640px){
  .nav-in,footer .nav-in{padding:12px 16px;flex-wrap:wrap}
  .wrap{padding:0 16px}
  .nav-links{margin-left:0;gap:8px;flex-wrap:wrap}
  .nav-links a{font-size:10px;letter-spacing:.12em;padding:3px 5px}
  .keeper{grid-template-columns:1fr 1fr}
  .keeper > div:nth-child(2n){border-right:0}
  .keeper > div:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .stats{grid-template-columns:1fr 1fr}
  .cols{grid-template-columns:1fr}
  .big{grid-template-columns:1fr 1fr}
  .big > div:nth-child(2n){border-right:0}
  .big > div:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .coin-hero{flex-direction:column}
  .trow{grid-template-columns:64px 1fr auto}
  .hero h1,.page-h h1{font-size:30px}
  .tabs button{font-size:10px;letter-spacing:.08em;padding:8px 4px}
  .big b{font-size:17px}
}

/* ---- the spec, as a file ---- */
.spec{font-family:var(--mono);font-size:13px;line-height:1.6;color:var(--text);margin-top:14px;border:1px solid var(--line);background:var(--white);padding:14px 16px;overflow:auto}
.spec .k{color:var(--ink);font-weight:600}
.spec .s{color:#f0b9b0}
.spec .n{color:#f2c98a}
.spec .p{color:var(--dim)}
.spec .sec{margin:0;padding:0}
.spec details{margin:0}
.spec summary{cursor:pointer;color:var(--ink);font-weight:600;padding:3px 0;list-style:none}
.spec summary::before{content:'▸ ';color:var(--dim)}
.spec details[open] summary::before{content:'▾ '}
.spec .body{padding-left:18px;border-left:1px solid var(--line);margin:2px 0 8px 3px;white-space:pre-wrap;word-break:break-word}
.filehead{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-family:var(--mono);font-size:12px;color:var(--muted);margin-top:22px}
.filehead b{color:var(--ink);font-weight:600}
.principles{margin:26px 0 0;padding:0;list-style:none;font-family:var(--mono);font-size:13px;line-height:1.7;color:var(--text)}
.principles li{padding:6px 0;border-top:1px solid var(--line)}
.principles li:last-child{border-bottom:1px solid var(--line)}
.principles li::before{content:'— ';color:var(--dim)}

/* ---- the opening, centred ---- */
.hero{text-align:center}
.hero .cta{justify-content:center}
.hero .filehead{justify-content:center;text-align:left}
.hero .principles li{text-align:left}
.page-h{text-align:center}
.keeper{text-align:center}
