/* Veriq — premium startup styles. One file, no framework. */
:root {
  --bg: #0b0e14; --bg2: #0e1320; --card: #151a26; --card2: #1a2132;
  --line: #232b3d; --txt: #e8ecf4; --dim: #8b94a9;
  --ok: #3ddc84; --warn: #ffb020; --bad: #ff5d5d; --na: #8b94a9;
  --accent: #3ddc84; --accent2: #7c5cff;
  --radius: 14px; --max: 1120px;
}
* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body { background: var(--bg); color: var(--txt); font-family: ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif; line-height: 1.6; overflow-x: hidden; }
a { color: inherit; }
::selection { background: rgba(61,220,132,.25); }

/* ---------- nav ---------- */
.nav { position: fixed; inset: 0 0 auto 0; z-index: 50; backdrop-filter: blur(14px);
  background: rgba(11,14,20,.72); border-bottom: 1px solid rgba(35,43,61,.6); }
.nav-inner { max-width: var(--max); margin: 0 auto; padding: .9rem 1.5rem;
  display: flex; align-items: center; justify-content: space-between; }
.logo { font-weight: 800; font-size: 1.25rem; letter-spacing: -.02em; text-decoration: none; }
.logo .q { color: var(--accent); }
.nav-links { display: flex; gap: 1.6rem; align-items: center; }
.nav-links a { color: var(--dim); text-decoration: none; font-size: .92rem; transition: color .2s; }
.nav-links a:hover { color: var(--txt); }
.btn { display: inline-block; background: var(--accent); color: #06130c; border: 0; border-radius: 10px;
  padding: .7rem 1.4rem; font-weight: 700; font-size: .95rem; cursor: pointer; text-decoration: none;
  transition: transform .15s, box-shadow .15s; }
.btn:hover { transform: translateY(-2px); box-shadow: 0 8px 30px rgba(61,220,132,.25); }
.btn-ghost { background: transparent; color: var(--txt); border: 1px solid var(--line); }
.btn-ghost:hover { border-color: var(--accent); box-shadow: none; }
.btn-sm { padding: .5rem 1rem; font-size: .85rem; }

/* ---------- hero ---------- */
.hero { position: relative; padding: 9rem 1.5rem 5rem; text-align: center; overflow: hidden; }
.blob { position: absolute; border-radius: 50%; filter: blur(90px); opacity: .35; pointer-events: none; }
.blob-1 { width: 520px; height: 520px; background: #1d5c3a; top: -160px; left: -120px; animation: drift 14s ease-in-out infinite alternate; }
.blob-2 { width: 460px; height: 460px; background: #2c2360; top: -100px; right: -140px; animation: drift 18s ease-in-out infinite alternate-reverse; }
@keyframes drift { to { transform: translate(60px, 40px) scale(1.08); } }
.hero-inner { position: relative; max-width: 820px; margin: 0 auto; }
.eyebrow { display: inline-block; font-size: .78rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
  color: var(--accent); border: 1px solid rgba(61,220,132,.35); border-radius: 999px; padding: .35rem 1rem; margin-bottom: 1.4rem;
  background: rgba(61,220,132,.07); }
.hero h1 { font-size: clamp(2.6rem, 6vw, 4.4rem); line-height: 1.05; letter-spacing: -.03em; font-weight: 800; }
.hero h1 .grad { background: linear-gradient(100deg, var(--accent), #8affc1 60%, var(--accent2)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.hero p.lead { color: var(--dim); font-size: 1.15rem; max-width: 620px; margin: 1.2rem auto 2rem; }
.hero-cta { display: flex; gap: .9rem; justify-content: center; flex-wrap: wrap; }
.hero-cards { display: flex; gap: 1rem; justify-content: center; margin-top: 3.5rem; flex-wrap: wrap; perspective: 900px; }
.mini-receipt { background: rgba(21,26,38,.9); border: 1px solid var(--line); border-radius: var(--radius);
  padding: 1rem 1.2rem; width: 230px; text-align: left; font-size: .85rem;
  animation: float 6s ease-in-out infinite; box-shadow: 0 20px 60px rgba(0,0,0,.4); }
.mini-receipt:nth-child(2) { animation-delay: -2s; } .mini-receipt:nth-child(3) { animation-delay: -4s; }
@keyframes float { 0%,100% { transform: translateY(0) rotateX(2deg); } 50% { transform: translateY(-12px) rotateX(-2deg); } }
.mini-receipt .v { font-size: .68rem; font-weight: 800; text-transform: uppercase; letter-spacing: .06em;
  border-radius: 5px; padding: .2rem .5rem; }
.v.supported { background: #0f2e1f; color: var(--ok); } .v.contested { background: #33270a; color: var(--warn); }
.v.refuted { background: #331212; color: var(--bad); } .v.unverifiable { background: #222839; color: var(--na); }
.mini-receipt p { margin-top: .6rem; color: #c6cddc; }
.mini-receipt small { color: var(--dim); }

/* ---------- sections / reveal ---------- */
.section { padding: 5.5rem 1.5rem; }
.wrap { max-width: var(--max); margin: 0 auto; }
.kicker { color: var(--accent); font-size: .8rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.h2 { font-size: clamp(1.8rem, 3.6vw, 2.7rem); letter-spacing: -.02em; margin: .6rem 0 1rem; font-weight: 800; }
.sub { color: var(--dim); max-width: 640px; font-size: 1.05rem; }
.reveal { opacity: 0; transform: translateY(34px); transition: opacity .7s ease, transform .7s cubic-bezier(.2,.7,.3,1); }
.reveal.visible { opacity: 1; transform: none; }
.reveal[data-delay="1"] { transition-delay: .12s; } .reveal[data-delay="2"] { transition-delay: .24s; }
.reveal[data-delay="3"] { transition-delay: .36s; }

/* ---------- pipeline ---------- */
.pipe { margin-top: 3rem; display: grid; gap: 0; }
.step { display: grid; grid-template-columns: 56px 1fr; gap: 1.2rem; padding: 1.4rem 0; position: relative; }
.step::before { content: ""; position: absolute; left: 27px; top: 64px; bottom: -8px; width: 2px;
  background: linear-gradient(var(--accent), transparent); opacity: .35; }
.step:last-child::before { display: none; }
.step-num { width: 56px; height: 56px; border-radius: 16px; background: var(--card); border: 1px solid var(--line);
  display: flex; align-items: center; justify-content: center; font-weight: 800; color: var(--accent); font-size: 1.1rem;
  box-shadow: 0 0 0 6px rgba(61,220,132,.05); }
.step-body h3 { font-size: 1.1rem; margin-bottom: .25rem; }
.step-body p { color: var(--dim); font-size: .95rem; max-width: 640px; }
.step-body code { background: #0e1420; border: 1px solid var(--line); border-radius: 6px; padding: .1rem .45rem; font-size: .82rem; color: #9fe8bd; }

/* ---------- feature grid ---------- */
.grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 1.1rem; margin-top: 2.6rem; }
.card { background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); padding: 1.6rem;
  transition: transform .2s, border-color .2s; }
.card:hover { transform: translateY(-4px); border-color: rgba(61,220,132,.4); }
.card .icon { font-size: 1.6rem; margin-bottom: .8rem; }
.card h3 { font-size: 1.05rem; margin-bottom: .4rem; }
.card p { color: var(--dim); font-size: .92rem; }

/* ---------- stats ---------- */
.stats { display: flex; gap: 2.5rem; justify-content: center; flex-wrap: wrap; margin-top: 3rem; text-align: center; }
.stat b { font-size: 2.2rem; color: var(--accent); display: block; letter-spacing: -.02em; }
.stat span { color: var(--dim); font-size: .9rem; }

/* ---------- security ---------- */
.sec-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1rem; margin-top: 2.4rem; }
.sec { border: 1px solid var(--line); border-radius: var(--radius); padding: 1.3rem 1.4rem; background: var(--bg2); }
.sec h4 { font-size: .95rem; margin-bottom: .3rem; color: var(--accent); }
.sec p { color: var(--dim); font-size: .88rem; }

/* ---------- pricing ---------- */
.price-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 1.2rem; margin-top: 2.6rem; max-width: 760px; }
.price { background: var(--card); border: 1px solid var(--line); border-radius: 18px; padding: 2rem; position: relative; }
.price.hot { border-color: var(--accent); box-shadow: 0 0 50px rgba(61,220,132,.12); }
.price .tag { position: absolute; top: -13px; left: 1.6rem; background: var(--accent); color: #06130c;
  font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; border-radius: 999px; padding: .25rem .8rem; }
.price h3 { font-size: 1.2rem; } .price .amt { font-size: 2.6rem; font-weight: 800; margin: .6rem 0; letter-spacing: -.02em; }
.price .amt small { font-size: 1rem; color: var(--dim); font-weight: 400; }
.price ul { list-style: none; margin: 1.2rem 0 1.6rem; }
.price li { color: var(--dim); font-size: .92rem; padding: .35rem 0; }
.price li::before { content: "✓ "; color: var(--accent); font-weight: 700; }

/* ---------- faq ---------- */
.faq { max-width: 720px; margin-top: 2.2rem; }
.faq details { border: 1px solid var(--line); border-radius: 12px; margin-bottom: .7rem; background: var(--card); overflow: hidden; }
.faq summary { padding: 1.1rem 1.3rem; cursor: pointer; font-weight: 600; list-style: none; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; float: right; color: var(--accent); font-size: 1.3rem; }
.faq details[open] summary::after { content: "–"; }
.faq details p { padding: 0 1.3rem 1.2rem; color: var(--dim); font-size: .94rem; }

/* ---------- cta / footer ---------- */
.cta { text-align: center; padding: 6rem 1.5rem; background: radial-gradient(600px 300px at 50% 0%, rgba(61,220,132,.1), transparent); }
footer { border-top: 1px solid var(--line); padding: 2.5rem 1.5rem; color: var(--dim); font-size: .88rem; }
.foot-inner { max-width: var(--max); margin: 0 auto; display: flex; justify-content: space-between; flex-wrap: wrap; gap: 1rem; }

/* ---------- forms (login / app) ---------- */
.page { min-height: 100vh; display: flex; flex-direction: column; }
.center { flex: 1; display: flex; align-items: center; justify-content: center; padding: 6rem 1.2rem 3rem; }
.form-card { background: var(--card); border: 1px solid var(--line); border-radius: 18px; padding: 2.2rem; width: 100%; max-width: 420px;
  box-shadow: 0 30px 80px rgba(0,0,0,.45); }
.form-card h1 { font-size: 1.5rem; margin-bottom: .3rem; }
.form-card p.muted { color: var(--dim); font-size: .9rem; margin-bottom: 1.4rem; }
.field { margin-bottom: 1rem; }
.field label { display: block; font-size: .82rem; color: var(--dim); margin-bottom: .35rem; font-weight: 600; }
.field input, textarea.verify-box { width: 100%; background: var(--bg2); border: 1px solid var(--line); border-radius: 10px;
  color: var(--txt); padding: .8rem 1rem; font-size: 1rem; outline: none; transition: border-color .2s; }
.field input:focus, textarea.verify-box:focus { border-color: var(--accent); }
.form-err { color: var(--bad); font-size: .88rem; min-height: 1.4em; margin: .6rem 0; }
.form-switch { text-align: center; margin-top: 1.2rem; color: var(--dim); font-size: .9rem; }
.form-switch a { color: var(--accent); }

/* ---------- dashboard ---------- */
.dash { max-width: 860px; margin: 0 auto; padding: 6.5rem 1.2rem 4rem; width: 100%; }
.dash-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1.6rem; flex-wrap: wrap; gap: .8rem; }
.dash-head h1 { font-size: 1.5rem; }
.user-chip { color: var(--dim); font-size: .88rem; }
.user-chip button { background: none; border: 1px solid var(--line); color: var(--dim); border-radius: 8px;
  padding: .4rem .8rem; cursor: pointer; margin-left: .6rem; font-size: .82rem; }
.user-chip button:hover { color: var(--txt); border-color: var(--accent); }
textarea.verify-box { min-height: 150px; resize: vertical; margin-bottom: .8rem; }
.receipt { background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); padding: 1.2rem 1.3rem; margin-top: 1rem;
  animation: rise .45s ease both; }
@keyframes rise { from { opacity: 0; transform: translateY(14px); } }
.verdict { display: inline-block; font-size: .72rem; font-weight: 800; text-transform: uppercase; letter-spacing: .06em;
  border-radius: 6px; padding: .28rem .65rem; }
.conf { color: var(--dim); font-size: .84rem; margin-left: .6rem; }
.receipt h3 { margin: .7rem 0 .4rem; font-size: 1.02rem; }
blockquote { border-left: 3px solid var(--line); margin: .8rem 0; padding: .25rem .9rem; color: #c6cddc; font-size: .92rem; }
blockquote a { color: var(--dim); font-size: .8rem; display: block; margin-top: .35rem; text-decoration: none; word-break: break-all; }
blockquote a:hover { color: var(--accent); }
.mind { font-size: .85rem; color: var(--dim); font-style: italic; margin-top: .7rem; }
.counter-h { color: var(--dim); font-size: .82rem; margin: 1rem 0 .2rem; text-transform: uppercase; letter-spacing: .08em; font-weight: 700; }
.share-row { margin-top: .9rem; display: flex; gap: .6rem; align-items: center; }
.share-row input { flex: 1; background: var(--bg2); border: 1px solid var(--line); border-radius: 8px; color: var(--dim);
  padding: .5rem .8rem; font-size: .8rem; }
#status { color: var(--dim); margin: 1rem 0; min-height: 1.5em; }
.spinner { display: inline-block; width: 14px; height: 14px; border: 2px solid var(--line); border-top-color: var(--accent);
  border-radius: 50%; animation: spin .7s linear infinite; vertical-align: -2px; margin-right: .5rem; }
@keyframes spin { to { transform: rotate(360deg); } }
.hist { margin-top: 2.5rem; }
.hist h2 { font-size: 1.05rem; margin-bottom: .8rem; color: var(--dim); }
.hist-item { display: block; background: var(--card); border: 1px solid var(--line); border-radius: 10px;
  padding: .8rem 1rem; margin-bottom: .6rem; text-decoration: none; font-size: .9rem; color: #c6cddc; transition: border-color .2s; }
.hist-item:hover { border-color: var(--accent); }
.hist-item small { color: var(--dim); display: block; font-size: .78rem; }

@media (max-width: 640px) {
  .nav-links a:not(.btn) { display: none; }
  .hero { padding-top: 7rem; }
  .step { grid-template-columns: 44px 1fr; }
  .step-num { width: 44px; height: 44px; }
  .step::before { left: 21px; }
}
