/* torverify.online — forensic verification lab design system
   Self-hosted type: Space Grotesk (display) + JetBrains Mono (data). 0 CDN. */

@font-face{font-family:"Space Grotesk";src:url(/fonts/space-grotesk-var.woff2) format("woff2");font-weight:300 700;font-style:normal;font-display:swap}
@font-face{font-family:"JetBrains Mono";src:url(/fonts/jetbrains-mono-var.woff2) format("woff2");font-weight:400 700;font-style:normal;font-display:swap}

:root{
  --graphite:#0a0e0d;--panel:#0f1512;--panel-2:#141d19;--panel-3:#0c110f;
  --hairline:#1e2b25;--hairline-2:#2c3d34;
  --ink:#c8d3cd;--ink-dim:#7c8a83;--ink-faint:#4c5751;--verdict-ink:#04100a;
  --legit:#1fbf75;--unverified:#e0a83a;--scam:#e0473a;--seized:#8390a0;
  --accent:#1fbf75;
  --grotesk:"Space Grotesk",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --mono:"JetBrains Mono",ui-monospace,"SFMono-Regular",Consolas,"Liberation Mono",monospace;
  --r:12px;--r-sm:8px;--ease:cubic-bezier(.22,1,.36,1);
  --sp1:6px;--sp2:12px;--sp3:18px;--sp4:26px;--sp5:40px;--sp6:64px;
  --col:1040px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--graphite);color:var(--ink);font:16px/1.65 var(--grotesk);letter-spacing:.004em;overflow-x:hidden}
/* scanline + faint field glow (static texture) */
body::before{content:"";position:fixed;inset:0;z-index:-2;pointer-events:none;
  background:repeating-linear-gradient(0deg,rgba(200,255,225,.012) 0 1px,transparent 1px 3px),
  radial-gradient(1100px 560px at 82% -12%,rgba(31,191,117,.06),transparent 62%),
  radial-gradient(900px 500px at 0% 108%,rgba(31,191,117,.03),transparent 60%)}
/* slow scan sweep (signature motif) */
body::after{content:"";position:fixed;left:0;right:0;top:0;height:120px;z-index:-1;pointer-events:none;opacity:.5;
  background:linear-gradient(180deg,transparent,rgba(31,191,117,.05) 48%,rgba(31,191,117,.09) 50%,transparent);
  animation:sweep 9s linear infinite}
@keyframes sweep{0%{transform:translateY(-140px)}100%{transform:translateY(100vh)}}

a{color:var(--ink);text-decoration-color:color-mix(in srgb,var(--legit) 65%,transparent);text-underline-offset:3px}
a:hover{color:var(--legit)}
button{font:inherit;border:0;cursor:pointer;color:inherit}
a,button{min-height:44px}
a[href],button{-webkit-tap-highlight-color:transparent}
img,svg{max-width:100%}
:focus-visible{outline:2px solid var(--legit);outline-offset:2px;border-radius:4px}
.skip{position:absolute;left:-9999px;top:8px;background:var(--legit);color:var(--verdict-ink);padding:.6rem 1rem;z-index:40;border-radius:6px;font-weight:700}
.skip:focus{left:8px}

/* container with responsive side gutters (anti-stretch) */
.wrap{width:min(var(--col),calc(100% - clamp(28px,7vw,72px)));margin-inline:auto}

/* left decorative spine (desktop only) */
.spine{position:fixed;top:0;bottom:0;left:0;width:34px;z-index:5;pointer-events:none;
  border-right:1px solid var(--hairline);
  background:repeating-linear-gradient(180deg,var(--hairline) 0 1px,transparent 1px 24px)}
.spine b{position:absolute;left:50%;bottom:26px;transform:translateX(-50%) rotate(180deg);writing-mode:vertical-rl;
  font:600 .6rem/1 var(--mono);letter-spacing:.32em;text-transform:uppercase;color:var(--ink-faint)}
@media(max-width:1240px){.spine{display:none}}

/* typography */
h1,h2,h3,h4{font-family:var(--grotesk);font-weight:700;letter-spacing:-.022em;line-height:1.12}
h1{font-size:clamp(1.85rem,4.4vw,2.85rem);margin:.35rem 0 .8rem}
h2{font-size:clamp(1.24rem,2.4vw,1.68rem);margin:2.3rem 0 .8rem;position:relative}
h3{font-size:1.06rem;margin:1.2rem 0 .4rem}
p{margin:0 0 1rem;max-width:68ch}
strong,b{font-weight:700}
code,kbd,samp,.mono{font-family:var(--mono)}
.eyebrow{font:600 .7rem/1 var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--legit)}
/* section numbering — the "report" rhythm */
main{counter-reset:sec}
main h2::before{counter-increment:sec;content:"\00a7" counter(sec,decimal-leading-zero);
  display:block;font:600 .66rem/1 var(--mono);letter-spacing:.16em;color:var(--accent);margin-bottom:.55rem;opacity:.85}
main h2.nonum::before{content:none;counter-increment:none}

/* header instrument */
.hdr{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--graphite) 86%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--hairline)}
.bar{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:60px}
.brand{display:inline-flex;align-items:center;gap:10px;font-weight:700;font-size:1.08rem;letter-spacing:-.02em;color:var(--ink);text-decoration:none}
.brand svg{width:22px;height:26px;flex:0 0 auto}
.brand .bt b{color:var(--legit)}
.brand .bt{display:flex;flex-direction:column;line-height:1}
.brand .bt small{font:600 .58rem/1.4 var(--mono);letter-spacing:.1em;color:var(--ink-dim);text-transform:uppercase;margin-top:3px}
.nav{display:flex;gap:16px;font:600 .72rem/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;overflow-x:auto;scrollbar-width:none}
.nav::-webkit-scrollbar{display:none}
.nav a{text-decoration:none;color:var(--ink-dim);white-space:nowrap;display:inline-flex;align-items:center}
.nav a:hover,.nav a[aria-current]{color:var(--legit)}
@media(max-width:640px){.brand .bt small{display:none}.nav{gap:13px;font-size:.68rem;-webkit-mask-image:linear-gradient(90deg,#000 86%,transparent);mask-image:linear-gradient(90deg,#000 86%,transparent);padding-right:6px}}

/* header status strip */
.strip{border-bottom:1px solid var(--hairline);background:var(--panel-3)}
.strip .wrap{display:flex;gap:8px 20px;flex-wrap:wrap;padding:7px 0;font:600 .62rem/1.5 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint)}
.strip b{color:var(--ink-dim);font-weight:600}
.strip .dot{color:var(--legit)}

main{padding:var(--sp5) 0 var(--sp6)}
.crumb{font:600 .66rem/1.4 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);margin:0 0 var(--sp3)}
.crumb a{color:var(--ink-dim);text-decoration:none}
.crumb a:hover{color:var(--legit)}
.crumb span{color:var(--ink-faint);margin:0 .4rem}
.lede{font-size:1.1rem;color:color-mix(in srgb,var(--ink) 90%,var(--ink-dim));max-width:64ch}
.muted{color:var(--ink-dim)}
.small{font-size:.82rem}

/* panels with forensic corner ticks */
.panel{position:relative;background:var(--panel);border:1px solid var(--hairline);border-radius:var(--r);padding:var(--sp4);margin:var(--sp4) 0}
.panel-2{background:var(--panel-2)}
.panel::before,.panel::after,.verdict::before,.verdict::after{content:"";position:absolute;width:11px;height:11px;pointer-events:none;border-color:var(--hairline-2);border-style:solid;border-width:0}
.panel::before,.verdict::before{top:6px;left:6px;border-left-width:1px;border-top-width:1px}
.panel::after,.verdict::after{bottom:6px;right:6px;border-right-width:1px;border-bottom-width:1px}

.tag{display:inline-block;font:600 .62rem/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;padding:.32rem .5rem;border:1px solid var(--hairline);border-radius:6px;color:var(--ink-dim)}

/* verify hero */
.scan{padding:var(--sp3) 0 var(--sp2)}
.qform{display:flex;gap:10px;flex-wrap:wrap;margin:var(--sp3) 0 var(--sp2)}
.qform input{flex:1;min-width:min(100%,240px);background:var(--panel-2);border:1px solid var(--hairline);border-radius:10px;color:var(--ink);font:1rem/1.4 var(--mono);padding:.95rem 1rem}
.qform input::placeholder{color:var(--ink-faint)}
.qform input:focus{border-color:var(--legit);outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--legit) 18%,transparent)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--legit);color:var(--verdict-ink);font-weight:700;padding:.95rem 1.4rem;border-radius:10px;transition:filter .16s var(--ease),transform .16s var(--ease)}
.btn:hover{filter:brightness(1.08);transform:translateY(-1px)}
.btn:active{transform:scale(.98)}
.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--hairline)}
.btn.ghost:hover{border-color:var(--legit);color:var(--legit)}

/* verdict card + shield */
.verdict{position:relative;--vc:var(--unverified);border:1px solid color-mix(in srgb,var(--vc) 42%,var(--hairline));border-radius:var(--r);background:linear-gradient(180deg,color-mix(in srgb,var(--vc) 9%,var(--panel)),var(--panel));padding:var(--sp4);margin:var(--sp4) 0}
.verdict::before,.verdict::after{border-color:color-mix(in srgb,var(--vc) 55%,var(--hairline-2))}
.v-legit{--vc:var(--legit)}.v-unverified{--vc:var(--unverified)}.v-scam{--vc:var(--scam)}.v-seized{--vc:var(--seized)}
.verdict-head{display:flex;align-items:center;gap:var(--sp3);flex-wrap:wrap}
.ic-shield{position:relative;width:92px;height:108px;flex:0 0 auto}
.ic-shield svg{width:100%;height:100%;display:block}
.ic-shield .mark{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font:800 1.3rem/1 var(--grotesk);color:var(--vc)}
.verdict-word{font:800 clamp(1.7rem,5vw,2.15rem)/1 var(--grotesk);letter-spacing:.05em;text-transform:uppercase;color:var(--vc)}
.verdict-reason{margin:.4rem 0 0;color:color-mix(in srgb,var(--ink) 86%,var(--ink-dim));max-width:56ch}
.stamp-anim{animation:stamp .34s var(--ease) both}
@keyframes stamp{0%{transform:scale(1.16);opacity:0}60%{transform:scale(.98)}100%{transform:scale(1);opacity:1}}

/* signature block (mono readout) */
.sig{margin:var(--sp3) 0 0;border-top:1px dashed var(--hairline);padding-top:var(--sp3)}
.sig-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:.6rem 0;border-bottom:1px solid color-mix(in srgb,var(--hairline) 60%,transparent)}
.sig-row:last-child{border-bottom:0}
.sig-k{font:600 .62rem/1.3 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-dim);flex:0 0 116px}
.mono-val{flex:1;min-width:0;font-family:var(--mono);font-size:.9rem;line-height:1.5;overflow-wrap:anywhere;word-break:break-all;user-select:all;background:var(--panel-3);border:1px solid var(--hairline);border-radius:8px;padding:.6rem .7rem;color:var(--ink)}
.ck{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;font-weight:800;flex:0 0 auto;font-size:.82rem}
.ck.ok{background:color-mix(in srgb,var(--legit) 22%,transparent);color:var(--legit)}
.ck.no{background:color-mix(in srgb,var(--scam) 22%,transparent);color:var(--scam)}
.ck.na{background:color-mix(in srgb,var(--seized) 22%,transparent);color:var(--seized)}
.quorum{font-family:var(--mono);font-size:.82rem;line-height:1.6;color:var(--ink-dim);margin-top:.75rem}
.copy{display:inline-flex;align-items:center;gap:6px;background:var(--panel-2);border:1px solid var(--hairline);color:var(--ink);border-radius:8px;padding:.55rem .75rem;font:700 .78rem/1 var(--mono);white-space:nowrap;min-height:40px}
.copy:hover{border-color:var(--legit);color:var(--legit)}
.copy.copied{background:color-mix(in srgb,var(--legit) 20%,transparent);border-color:var(--legit);color:var(--legit)}
@media(max-width:560px){.sig-k{flex:0 0 100%}}

/* steps / lists */
.steps{list-style:none;counter-reset:s;padding:0;margin:var(--sp3) 0}
.steps li{counter-increment:s;position:relative;padding:.9rem 0 .9rem 3rem;border-bottom:1px solid var(--hairline)}
.steps li:last-child{border-bottom:0}
.steps li::before{content:counter(s,decimal-leading-zero);position:absolute;left:0;top:.9rem;font:700 .8rem/1 var(--mono);color:var(--legit);background:var(--panel-3);border:1px solid var(--hairline);border-radius:7px;padding:.36rem .5rem}
.checklist{list-style:none;padding:0;margin:var(--sp3) 0}
.checklist li{position:relative;padding:.55rem 0 .55rem 1.9rem;border-bottom:1px solid color-mix(in srgb,var(--hairline) 60%,transparent)}
.checklist li:last-child{border-bottom:0}
.checklist li::before{content:"";position:absolute;left:0;top:.85rem;width:13px;height:13px;border:2px solid var(--legit);border-radius:4px}

/* grids + cards */
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp3)}
.grid2{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--sp3)}
@media(max-width:720px){.grid3{grid-template-columns:1fr}.grid2{grid-template-columns:1fr}}
.card{position:relative;background:var(--panel-2);border:1px solid var(--hairline);border-radius:10px;padding:var(--sp3)}
.card h3{margin-top:0}
a.card{text-decoration:none;color:var(--ink);display:block;transition:border-color .16s var(--ease),transform .16s var(--ease)}
a.card:hover{border-color:var(--legit);transform:translateY(-2px);color:var(--ink)}
a.card .go{font:600 .66rem/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--legit)}

/* legend chips */
.legend{display:flex;flex-wrap:wrap;gap:9px;margin:var(--sp3) 0}
.chip{display:inline-flex;align-items:center;gap:7px;font:700 .7rem/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;border:1px solid var(--hairline);border-radius:999px;padding:.42rem .7rem;color:var(--ink-dim)}
.chip .d{width:9px;height:9px;border-radius:50%;flex:0 0 auto}

/* verdict directory table */
.scroll-x{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--hairline);border-radius:var(--r);margin:var(--sp3) 0}
table.dir{border-collapse:collapse;width:100%;min-width:520px;font-size:.92rem}
table.dir th,table.dir td{text-align:left;padding:.7rem .85rem;border-bottom:1px solid var(--hairline)}
table.dir thead th{font:600 .62rem/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-dim);background:var(--panel-3)}
table.dir tbody tr:last-child td{border-bottom:0}
table.dir tbody tr:hover{background:color-mix(in srgb,var(--legit) 5%,transparent)}
table.dir a{color:var(--ink);text-decoration:none;font-weight:700}
table.dir a:hover{color:var(--legit)}
.vpill{display:inline-flex;align-items:center;gap:6px;font:700 .64rem/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;padding:.3rem .5rem;border-radius:6px;border:1px solid currentColor}
.vpill.legit{color:var(--legit)}.vpill.unverified{color:var(--unverified)}.vpill.scam{color:var(--scam)}.vpill.seized{color:var(--seized)}
.vpill .d{width:7px;height:7px;border-radius:50%;background:currentColor}

/* faq */
.faq details{border:1px solid var(--hairline);border-radius:10px;padding:.2rem .95rem;margin:.5rem 0;background:var(--panel-2)}
.faq summary{cursor:pointer;font-weight:700;padding:.75rem 0;list-style:none;display:flex;gap:.5rem;align-items:flex-start}
.faq summary::-webkit-details-marker{display:none}
.faq summary::before{content:"+";color:var(--legit);font-family:var(--mono);flex:0 0 auto}
.faq details[open] summary::before{content:"\2212"}
.faq details p{margin:.2rem 0 .8rem}

/* trust chain svg */
.chain{width:100%;max-width:760px;margin:var(--sp3) 0;display:block}
.chain .flow{stroke-dasharray:1200;stroke-dashoffset:1200}
.chain.in .flow{transition:stroke-dashoffset 1.4s var(--ease);stroke-dashoffset:0}

/* callout */
.callout{position:relative;border:1px dashed color-mix(in srgb,var(--legit) 52%,var(--hairline));border-radius:var(--r);background:color-mix(in srgb,var(--legit) 6%,var(--panel));padding:var(--sp3) var(--sp4);margin:var(--sp4) 0}
.callout.warn{border-color:color-mix(in srgb,var(--scam) 52%,var(--hairline));background:color-mix(in srgb,var(--scam) 6%,var(--panel))}
.callout.warn .eyebrow{color:var(--scam)}
.callout p:last-child{margin-bottom:0}

/* related links row */
.related{display:flex;flex-wrap:wrap;gap:10px;margin:var(--sp3) 0}
.related a{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--hairline);border-radius:999px;padding:.5rem .85rem;text-decoration:none;color:var(--ink-dim);font:600 .78rem/1 var(--grotesk)}
.related a:hover{border-color:var(--legit);color:var(--legit)}

/* textareas (pgp tool) */
.ta{width:100%;background:var(--panel-3);border:1px solid var(--hairline);border-radius:10px;color:var(--ink);font:.85rem/1.5 var(--mono);padding:.8rem;min-height:150px;resize:vertical}
.ta:focus{border-color:var(--legit);outline:none}
.field{margin:var(--sp3) 0}
.field label{display:block;font:600 .68rem/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-dim);margin-bottom:.5rem}
.result{margin-top:var(--sp3);padding:var(--sp3);border:1px solid var(--hairline);border-radius:10px;background:var(--panel-3);font-family:var(--mono);font-size:.86rem;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere}
.result.ok{border-color:color-mix(in srgb,var(--legit) 55%,var(--hairline))}
.result.bad{border-color:color-mix(in srgb,var(--scam) 55%,var(--hairline))}

/* fade */
.fade{opacity:0;transform:translateY(14px);transition:opacity .6s var(--ease),transform .6s var(--ease)}
.fade.in{opacity:1;transform:none}

/* footer */
.ftr{border-top:1px solid var(--hairline);margin-top:var(--sp6);padding:var(--sp5) 0 var(--sp4);color:var(--ink-dim);font-size:.9rem}
.ftr-grid{display:grid;grid-template-columns:1.7fr 1fr 1fr;gap:var(--sp4)}
@media(max-width:720px){.ftr-grid{grid-template-columns:1fr 1fr;gap:var(--sp3)}.ftr-brand{grid-column:1/-1}}
.ftr h4{font:600 .66rem/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--legit);margin:0 0 .7rem}
.ftr a{display:block;color:var(--ink-dim);text-decoration:none;padding:.28rem 0}
.ftr a:hover{color:var(--legit)}
.ftr .brand{font-size:1.02rem}
.fine{margin-top:var(--sp3);font-size:.76rem;color:color-mix(in srgb,var(--ink-dim) 88%,transparent);max-width:60ch}

@media (prefers-reduced-motion:reduce){
  .fade{opacity:1;transform:none;transition:none}
  .chain .flow{stroke-dashoffset:0}
  .stamp-anim{animation:none}
  body::after{animation:none;display:none}
  html{scroll-behavior:auto}
}

/* on-page jump nav + crumb trail + evidence log table (SEO pass) */
.jump{display:flex;flex-wrap:wrap;gap:8px;margin:var(--sp3) 0 var(--sp4)}
.jump a{display:inline-flex;align-items:center;border:1px solid var(--hairline);border-radius:999px;padding:.4rem .75rem;text-decoration:none;color:var(--ink-dim);font:600 .74rem/1 var(--mono);letter-spacing:.02em;text-transform:uppercase}
.jump a:hover,.jump a:focus-visible{border-color:var(--legit);color:var(--legit)}
.crumb{font:600 .74rem/1 var(--mono);letter-spacing:.03em;color:var(--ink-dim);margin:0 0 var(--sp3);text-transform:uppercase}
.crumb a{color:var(--ink-dim);text-decoration:none}
.crumb a:hover{color:var(--legit)}
.log-table{width:100%;border-collapse:collapse;margin-top:var(--sp3);font-size:.88rem}
.log-table th,.log-table td{text-align:left;padding:.55rem .6rem;border-bottom:1px solid var(--hairline)}
.log-table th{font:700 .68rem/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-dim)}
.log-table td.status-unverified{color:var(--unverified)}
.faq-wrap details{border-top:1px solid var(--hairline);padding:.85rem 0}
.faq-wrap details:last-child{border-bottom:1px solid var(--hairline)}
.faq-wrap summary{cursor:pointer;font-weight:700;list-style:none;display:flex;justify-content:space-between;gap:10px}
.faq-wrap summary::-webkit-details-marker{display:none}
.faq-wrap p{color:var(--ink-dim);margin:.6rem 0 0;max-width:70ch}
