/* ProspectDB — site styles
   Palette: Night gum #06120E, Panel #0D1D17, Mint #8FE3BC, Emerald #0C7A4D,
   Paper #FFFFFF with Gum ink #0F2B22. Type: Helvetica Neue / Helvetica / Arial.
   No rounded corners anywhere, by design. */

:root {
  --base: #06120E;
  --panel: #0D1D17;
  --line: rgba(255, 255, 255, 0.16);
  --text: #F2F6F3;
  --text-2: #C9D6CF;
  --mute: #B6C4BC;
  --accent: #8FE3BC;
  --accent-rgb: 143, 227, 188;
  --emerald: #0C7A4D;
  --ink: #0F2B22;
  --ink-2: #47584F;
  --paper-tint: #F1F5F1;
  --paper-line: #D5DED4;
  --hl-soft: #C9F2DD;
  --tag: #DCEFE3;
  --flag-bg: #F3EBDD;
  --flag: #5A3D0B;
  --error: #A32012;
  --wrap: 1200px;
  --font: "Helvetica Neue", Helvetica, Arial, sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 118px; -webkit-text-size-adjust: 100%; }
body {
  margin: 0; background: var(--base); color: var(--text);
  font-family: var(--font); font-size: 17px; line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}
img, svg { display: block; max-width: 100%; }
h1, h2, h3, h4, p, ul, ol, dl, dd, figure { margin: 0; }
ul, ol { padding: 0; list-style: none; }
a { color: var(--accent); text-underline-offset: 3px; }
a:hover { color: #B9F0D6; }
button, input, select, textarea { font: inherit; color: inherit; border-radius: 0; }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.paper :focus-visible { outline-color: var(--emerald); }
.vh { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip { position: absolute; left: 12px; top: -60px; z-index: 100; background: var(--accent); color: var(--base); padding: 12px 16px; font-weight: 700; }
.skip:focus { top: 12px; color: var(--base); }

.wrap { width: 100%; max-width: var(--wrap); margin: 0 auto; padding: 0 20px; }
@media (min-width: 760px) { .wrap { padding: 0 32px; } }

/* ---------- moving light behind the page ---------- */
.lightfield { position: fixed; inset: 0; z-index: -1; overflow: hidden; pointer-events: none; background: var(--base); }
.lf { position: absolute; left: -8%; right: -8%; top: -10%; height: 86%; opacity: 0; transition: opacity 1.4s ease, transform 2.4s cubic-bezier(0.2, 0.7, 0.2, 1); }
.lf i {
  position: absolute; inset: 0; display: block; filter: blur(22px); transform-origin: top;
  -webkit-mask-image: linear-gradient(180deg, #000 0%, rgba(0, 0, 0, 0.85) 32%, transparent 100%);
  mask-image: linear-gradient(180deg, #000 0%, rgba(0, 0, 0, 0.85) 32%, transparent 100%);
  animation: lf-drift 19s ease-in-out infinite alternate;
}
.lf-b i { animation-duration: 24s; animation-delay: -8s; }
.lf-c i { animation-duration: 29s; animation-delay: -15s; }
@keyframes lf-drift { from { transform: translate3d(-1.5%, 0, 0) scaleY(1); } to { transform: translate3d(1.5%, -3%, 0) scaleY(1.14); } }
.lf-a i { background: linear-gradient(90deg,
  rgba(12,122,77,.50) 0 5%, rgba(20,92,68,.30) 5% 9%, rgba(143,227,188,.20) 9% 12%, rgba(31,138,99,.46) 12% 19%,
  rgba(12,122,77,.16) 19% 23%, rgba(20,92,68,.52) 23% 28%, rgba(191,243,218,.15) 28% 31%, rgba(12,122,77,.40) 31% 38%,
  rgba(31,138,99,.22) 38% 44%, rgba(20,92,68,.50) 44% 49%, rgba(143,227,188,.22) 49% 53%, rgba(12,122,77,.34) 53% 60%,
  rgba(31,138,99,.52) 60% 66%, rgba(20,92,68,.20) 66% 71%, rgba(191,243,218,.17) 71% 74%, rgba(12,122,77,.48) 74% 82%,
  rgba(31,138,99,.26) 82% 88%, rgba(143,227,188,.20) 88% 92%, rgba(20,92,68,.46) 92% 100%); }
.lf-b i { background: linear-gradient(90deg,
  rgba(20,92,68,.22) 0 7%, rgba(12,122,77,.30) 7% 13%, rgba(20,92,68,.14) 13% 22%, rgba(31,138,99,.34) 22% 27%,
  rgba(12,122,77,.18) 27% 36%, rgba(143,227,188,.16) 36% 40%, rgba(12,122,77,.44) 40% 47%, rgba(31,138,99,.54) 47% 55%,
  rgba(191,243,218,.22) 55% 59%, rgba(12,122,77,.52) 59% 67%, rgba(143,227,188,.24) 67% 71%, rgba(31,138,99,.50) 71% 80%,
  rgba(20,92,68,.34) 80% 86%, rgba(191,243,218,.20) 86% 90%, rgba(12,122,77,.50) 90% 100%); }
.lf-c i { background: linear-gradient(90deg,
  rgba(12,122,77,.44) 0 12%, rgba(20,92,68,.26) 12% 21%, rgba(31,138,99,.40) 21% 33%, rgba(143,227,188,.13) 33% 38%,
  rgba(20,92,68,.44) 38% 52%, rgba(12,122,77,.24) 52% 63%, rgba(31,138,99,.42) 63% 74%, rgba(191,243,218,.12) 74% 79%,
  rgba(12,122,77,.40) 79% 91%, rgba(20,92,68,.28) 91% 100%); }
.lf-a { opacity: 1; }
body[data-scene="report"] .lf-a { opacity: 0; }
body[data-scene="report"] .lf-b { opacity: 1; }
body[data-scene="how"] .lf-a { opacity: 0; }
body[data-scene="how"] .lf-c { opacity: .85; transform: translate3d(0, 5%, 0); }
body[data-scene="trust"] .lf-a { opacity: .5; transform: translate3d(4%, 0, 0) scaleX(1.12); }
body[data-scene="pricing"] .lf-a { opacity: 0; }
body[data-scene="pricing"] .lf-b { opacity: .9; transform: translate3d(-5%, 3%, 0); }
body[data-scene="faq"] .lf-a { opacity: 0; }
body[data-scene="faq"] .lf-c { opacity: .42; }
body[data-scene="start"] .lf-a { opacity: .24; transform: translate3d(0, -10%, 0); }

/* ---------- header ---------- */
.site-head { position: sticky; top: 0; z-index: 50; background: rgba(6, 18, 14, 0.86); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); border-bottom: 1px solid var(--line); }
.head-row { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 0 20px; }
.brand { display: inline-flex; align-items: center; gap: 10px; min-height: 60px; color: #fff; text-decoration: none; font-weight: 700; font-size: 22px; letter-spacing: -0.035em; line-height: 1; }
.brand:hover { color: #fff; }
.brand svg { width: 30px; height: 30px; flex: none; }
.brand .db, .hl { box-shadow: inset 0 -0.3em 0 rgba(var(--accent-rgb), 0.42); }
.nav { display: flex; gap: 26px; order: 3; width: calc(100% + 40px); margin: 0 -20px; padding: 0 20px; overflow-x: auto; border-top: 1px solid var(--line); scrollbar-width: none; }
.nav::-webkit-scrollbar { display: none; }
.nav a { display: inline-flex; align-items: center; min-height: 44px; color: var(--text); text-decoration: none; font-size: 14.5px; font-weight: 500; white-space: nowrap; }
.wide-only { display: none; }
@media (min-width: 480px) { .wide-only { display: inline; } .narrow-only { display: none; } }
.nav a:hover { color: var(--accent); }
@media (min-width: 860px) {
  .nav { order: 0; width: auto; margin: 0 0 0 auto; padding: 0; border: 0; overflow: visible; gap: 30px; }
  .nav a { font-size: 15px; }
  .brand { min-height: 68px; }
}

/* ---------- buttons ---------- */
.btn { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 22px; border: 0; background: var(--accent); color: var(--base); font-weight: 700; font-size: 16px; line-height: 1.15; text-align: center; text-decoration: none; cursor: pointer; transition: background-color 0.15s ease; }
.btn:hover { background: #B9F0D6; color: var(--base); }
.btn-sm { min-height: 44px; padding: 0 16px; font-size: 15px; }
.btn-lg { min-height: 60px; padding: 0 30px; font-size: 18px; }
.btn-ink { background: var(--ink); color: #fff; }
.btn-ink:hover { background: #1D4A3A; color: #fff; }
.btn-line { background: #fff; color: var(--ink); box-shadow: inset 0 0 0 1.5px var(--ink); }
.btn-line:hover { background: var(--paper-tint); color: var(--ink); }
.btn-ghost { background: transparent; color: var(--text); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.45); }
.btn-ghost:hover { background: rgba(255, 255, 255, 0.08); color: #fff; }
.btn[disabled] { opacity: 0.6; cursor: progress; }
.textlink { display: inline-flex; align-items: center; min-height: 44px; font-weight: 700; color: var(--text); }
.cta-row { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 24px; }
.section-cta { margin-top: 44px; }

/* ---------- type ---------- */
h1 { font-weight: 500; font-size: clamp(2.8rem, 9vw, 5.7rem); line-height: 0.98; letter-spacing: -0.045em; color: #fff; }
h2 { font-weight: 500; font-size: clamp(1.95rem, 4.8vw, 3.3rem); line-height: 1.04; letter-spacing: -0.035em; color: #fff; }
h3 { font-size: 1.15rem; font-weight: 700; line-height: 1.25; letter-spacing: -0.01em; }
.lede { font-size: clamp(1.08rem, 1.7vw, 1.28rem); line-height: 1.5; color: var(--text-2); max-width: 35em; }
.small { font-size: 14.5px; color: var(--mute); }
.kicker { font-size: 14.5px; font-weight: 700; color: var(--accent); }

/* ---------- sections ---------- */
.section { padding: clamp(64px, 9vw, 124px) 0; border-top: 1px solid var(--line); }
.section-head { display: grid; gap: 20px; margin-bottom: clamp(36px, 5vw, 60px); max-width: 900px; }
.hero { padding: clamp(28px, 6vw, 84px) 0 clamp(56px, 8vw, 104px); }
.hero h1 { font-size: clamp(2.2rem, 5.6vw, 4.1rem); }
.hero-grid { display: grid; gap: 26px; grid-template-areas: "head" "form" "next"; }
.hero-head { grid-area: head; display: grid; gap: 18px; }
.hero-form { grid-area: form; min-width: 0; }
.hero-next { grid-area: next; }
@media (min-width: 1020px) {
  .hero-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 500px); grid-template-areas: "head form" "next form"; grid-template-rows: auto 1fr; gap: 36px 72px; align-items: start; }
  .hero-head { gap: 24px; padding-top: 28px; }
}
.next-links { display: flex; flex-wrap: wrap; gap: 0 28px; margin-top: 14px; }
.next-links a { display: inline-flex; align-items: center; min-height: 44px; font-weight: 700; color: var(--text); }
.final h2 { margin-bottom: 28px; }

/* ---------- paper objects: report, tracker, form, legal text ---------- */
.paper { background: #fff; color: var(--ink); box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.22), 0 50px 120px -44px rgba(var(--accent-rgb), 0.4); }
.paper a { color: var(--emerald); }
.paper a:hover { color: var(--ink); }
.paper .btn-ink, .paper .btn-ink:hover { color: #fff; }
.paper .btn-line, .paper .btn-line:hover { color: var(--ink); }
.caption { margin-top: 12px; font-size: 13.5px; color: var(--mute); }
.label { font-size: 12.5px; font-weight: 700; color: var(--ink-2); }
.mark { background: var(--hl-soft); padding: 0 3px; }
.num { font-variant-numeric: tabular-nums; }
.chip { display: inline-block; padding: 3px 9px; background: var(--tag); font-size: 12.5px; font-weight: 700; line-height: 1.4; }
.chip-tier { background: var(--accent); padding: 5px 10px; font-size: 13.5px; }
.chip-b { background: var(--paper-tint); box-shadow: inset 0 0 0 1px var(--paper-line); }
.chip-flag { background: var(--flag-bg); color: var(--flag); }
.chip-age { background: var(--paper-tint); color: var(--ink-2); }
.reviewed { display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; font-weight: 700; white-space: nowrap; }
.reviewed svg { width: 15px; height: 15px; flex: none; }

/* hero card */
.acct-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px 16px; padding: 20px 22px; background: var(--paper-tint); border-bottom: 1px solid var(--paper-line); }
.acct-name { font-size: 1.55rem; font-weight: 700; letter-spacing: -0.035em; line-height: 1.1; color: var(--ink); }
.card-meta { font-size: 14px; color: var(--ink-2); margin-top: 4px; }
.score { display: flex; align-items: center; gap: 10px; flex: none; }
.score b { font-size: 30px; letter-spacing: -0.03em; line-height: 1; }
.score b small { font-size: 13px; font-weight: 400; letter-spacing: 0; color: var(--ink-2); }
.trig { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; font-size: 15px; }
.trig .date { font-weight: 700; font-size: 14px; white-space: nowrap; }
.draft { background: var(--paper-tint); padding: 14px 16px; font-size: 15px; line-height: 1.5; }
.draft p + p { margin-top: 0.8em; }
.row-between { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 6px 12px; }
.open-in { display: flex; flex-wrap: wrap; gap: 8px; }

/* ---------- the sample report ---------- */
.report-layout { display: grid; gap: 40px; }
@media (min-width: 1020px) { .report-layout { grid-template-columns: minmax(0, 1fr) 300px; gap: 48px; align-items: start; } .report-side { position: sticky; top: 100px; } }
.rp-top { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 16px; padding: 14px 22px; background: var(--ink); color: #fff; font-size: 14px; }
.rp-top strong { letter-spacing: -0.01em; }
.rp-block { padding: 22px; border-bottom: 1px solid var(--paper-line); }
.rp-block > h3 { color: var(--ink); margin-bottom: 12px; }
.tbl-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
table { border-collapse: collapse; width: 100%; font-size: 14.5px; }
th, td { text-align: left; padding: 9px 12px 9px 0; border-bottom: 1px solid var(--paper-line); vertical-align: top; }
th { font-size: 12.5px; font-weight: 700; color: var(--ink-2); white-space: nowrap; }
td.r, th.r { text-align: right; padding-right: 0; }
.rp-row { border-bottom: 1px solid var(--paper-line); }
.rp-row:last-child { border-bottom: 0; }
.rp-row > summary { display: grid; grid-template-columns: 26px minmax(0, 1fr) 20px; gap: 12px; align-items: center; min-height: 56px; padding: 8px 22px; cursor: pointer; list-style: none; }
.rp-row > summary::-webkit-details-marker { display: none; }
.rp-row > summary h3 { font-size: 1.02rem; color: var(--ink); }
.rp-row > summary::after { content: "+"; font-size: 1.5rem; font-weight: 400; line-height: 1; text-align: center; color: var(--emerald); }
.rp-row[open] > summary::after { content: "\2212"; }
.rp-row > .rp-body { padding: 2px 22px 22px; }
@media (min-width: 620px) { .rp-row > .rp-body { padding-left: 60px; } }
.rp-n { display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; background: var(--ink); color: #fff; font-size: 12.5px; font-weight: 700; flex: none; }
.rp-n.inline { margin-right: 10px; vertical-align: 3px; }
.rp-body { display: grid; gap: 10px; min-width: 0; font-size: 15.5px; line-height: 1.5; }
.rp-body ul.dots { list-style: disc; padding-left: 20px; display: grid; gap: 6px; }
.evidence { display: block; font-size: 14px; color: var(--ink-2); }
.contact { display: grid; gap: 6px; padding: 12px 0; border-top: 1px solid var(--paper-line); }
.contact:first-of-type { border-top: 0; padding-top: 0; }
.contact .who { font-size: 15.5px; }
.contact .reach { font-size: 14.5px; overflow-wrap: anywhere; }
.contact .chips { display: flex; flex-wrap: wrap; gap: 6px; }
.for { font-size: 14px; color: var(--ink-2); }
.subject { font-size: 14.5px; }
.q-group { font-size: 15px; }
.q-group b { display: block; font-size: 13.5px; }
.feature-list { display: grid; gap: 0; }
.feature-list li { padding: 14px 0; border-top: 1px solid var(--line); font-size: 16px; color: var(--text); }
.feature-list li:last-child { border-bottom: 1px solid var(--line); }
.report-side h3 { color: #fff; margin-bottom: 14px; }
.report-side .side-gap { margin-top: 34px; }
.side-text { color: var(--text-2); font-size: 16px; }

/* the report assembles as it scrolls into view (only when scripting is on) */
.js .report [data-step] { opacity: 0; transform: translateY(14px); transition: opacity 0.55s ease, transform 0.55s ease; }
.js .report [data-step].in { opacity: 1; transform: none; }
.js .report .mark { background: linear-gradient(var(--hl-soft), var(--hl-soft)) no-repeat 0 0 / 0% 100%; transition: background-size 0.8s ease 0.35s; }
.js .report .in .mark, .js .report .in.mark { background-size: 100% 100%; }
.js .report [data-step] .chip, .js .report [data-step] .open-in { opacity: 0; transition: opacity 0.4s ease 0.55s; }
.js .report [data-step].in .chip, .js .report [data-step].in .open-in { opacity: 1; }

/* ---------- how it works ---------- */
.steps { counter-reset: step; display: grid; gap: 0; }
.steps > li { counter-increment: step; display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 0 16px; padding: 26px 0; border-top: 1px solid var(--line); }
.steps > li:last-child { border-bottom: 1px solid var(--line); }
.steps > li::before { content: counter(step); font-size: 2.4rem; font-weight: 500; letter-spacing: -0.04em; line-height: 1; color: var(--accent); }
.steps > li > h3, .steps > li > p { grid-column: 2; }
.steps h3 { color: #fff; font-size: 1.3rem; margin-bottom: 6px; }
.steps p { color: var(--text-2); max-width: 44em; }
@media (min-width: 900px) { .steps > li { grid-template-columns: 90px minmax(0, 4fr) minmax(0, 7fr); } .steps > li > p { grid-column: 3; } .steps h3 { margin: 4px 0 0; } }

/* ---------- trust ---------- */
.trust-grid { display: grid; gap: 0; }
@media (min-width: 820px) { .trust-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 64px; } }
.trust-grid > div { display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 0 12px; padding: 22px 0; border-top: 1px solid var(--line); }
.trust-grid svg { width: 22px; height: 22px; margin-top: 3px; }
.trust-grid dt { font-weight: 700; color: #fff; font-size: 1.12rem; }
.trust-grid dd { grid-column: 2; color: var(--text-2); margin-top: 4px; }
.operator { margin-top: 32px; color: var(--mute); font-size: 15px; }

/* ---------- pricing ---------- */
.plans { display: grid; gap: 1px; background: var(--line); border: 1px solid var(--line); }
.plan { display: flex; flex-direction: column; gap: 16px; padding: 28px 24px; background: var(--panel); }
.plan h3 { font-size: 1.3rem; color: #fff; }
.plan .price { display: flex; align-items: baseline; gap: 10px; font-size: 2.6rem; font-weight: 500; letter-spacing: -0.04em; line-height: 1; color: #fff; }
.plan .price small { font-size: 14.5px; font-weight: 400; letter-spacing: 0; color: var(--mute); }
.plan ul { display: grid; gap: 9px; font-size: 15.5px; color: var(--text-2); }
.plan li { display: grid; grid-template-columns: 18px minmax(0, 1fr); gap: 8px; }
.plan li::before { content: ""; width: 9px; height: 9px; margin-top: 8px; background: var(--accent); }
.plan li.no::before { background: transparent; box-shadow: inset 0 0 0 1.5px var(--mute); }
.plan .btn { margin-top: auto; }
.plan-free { background: #fff; color: var(--ink); }
.plan-free h3, .plan-free .price { color: var(--ink); }
.plan-free .price small, .plan-free p { color: var(--ink-2); }
.plan-free ul { color: var(--ink); }
.plan-free li::before { background: var(--emerald); }
.plan-note { font-size: 14.5px; color: var(--mute); }
.plan-bespoke .plan-note { margin-top: 8px; font-size: 16px; color: var(--text-2); }
@media (max-width: 699px) {
  .plan { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: baseline; gap: 14px 12px; padding: 24px 20px; }
  .plan > * { grid-column: 1 / -1; }
  .plan > h3 { grid-column: 1; }
  .plan > .price { grid-column: 2; grid-row: 1; font-size: 2rem; }
}
@media (min-width: 700px) { .plans { grid-template-columns: repeat(2, minmax(0, 1fr)); } .plan-free, .plan-bespoke { grid-column: 1 / -1; } }
@media (min-width: 1080px) {
  .plans { grid-template-columns: 1.15fr 1fr 1fr 1fr; }
  .plan-free { grid-column: auto; }
  .plan-bespoke { grid-column: 1 / -1; flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: space-between; }
  .plan-bespoke > div { max-width: 46em; }
  .plan-bespoke .btn { margin-top: 0; }
}

/* ---------- FAQ ---------- */
.faq { border-top: 1px solid var(--line); max-width: 900px; }
.faq details { border-bottom: 1px solid var(--line); }
.faq summary { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 20px 0; cursor: pointer; list-style: none; font-size: 1.15rem; font-weight: 700; color: #fff; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; flex: none; font-size: 1.6rem; font-weight: 400; line-height: 1; color: var(--accent); }
.faq details[open] summary::after { content: "\2212"; }
.faq details > p { padding: 0 0 22px; color: var(--text-2); max-width: 44em; }
.faq details > p + p { margin-top: -10px; }

/* ---------- the form ---------- */
.next { counter-reset: n; display: grid; }
.next li { counter-increment: n; display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 0 10px; padding: 16px 0; border-top: 1px solid var(--line); color: var(--text-2); }
.next li::before { content: counter(n); font-weight: 700; color: var(--accent); }
.next li b { color: #fff; }
.form-sheet { padding: clamp(22px, 4vw, 36px); }
.stepper { font-size: 13.5px; font-weight: 700; color: var(--emerald); margin-bottom: 6px; }
.form-title { font-size: clamp(1.45rem, 2.4vw, 1.75rem); font-weight: 700; letter-spacing: -0.03em; line-height: 1.12; color: var(--ink); }
.form-sheet .sub { color: var(--ink-2); font-size: 15.5px; line-height: 1.45; margin-top: 8px; }
.form-sheet .group { margin-top: 30px; padding-top: 18px; border-top: 1px solid var(--paper-line); font-size: 1.05rem; color: var(--ink); }
.form-sheet .group + .fields { margin-top: 14px; }
.next-note { display: none; margin-top: 14px; font-size: 14.5px; line-height: 1.45; color: var(--ink); }
.form-enhanced .next-note { display: block; }
.form-enhanced:not(.is-step2) .detail { display: none; }
.fields { display: grid; gap: 18px; margin-top: 22px; }
@media (min-width: 620px) { .fields.two { grid-template-columns: repeat(2, minmax(0, 1fr)); } .fields .full { grid-column: 1 / -1; } }
.field { display: grid; gap: 6px; align-content: start; }
.field label, .legend { font-size: 15px; font-weight: 700; color: var(--ink); }
.field .hint { font-size: 14px; color: var(--ink-2); line-height: 1.4; }
.field input[type="text"], .field input[type="email"], .field input[type="tel"], .field select, .field textarea {
  width: 100%; min-height: 50px; padding: 12px 14px; background: #fff; color: var(--ink);
  border: 1.5px solid #5E7067; font-size: 16px; line-height: 1.3; -webkit-appearance: none; appearance: none;
}
.field select { background-image: linear-gradient(45deg, transparent 50%, var(--ink) 50%), linear-gradient(135deg, var(--ink) 50%, transparent 50%); background-position: calc(100% - 20px) 22px, calc(100% - 14px) 22px; background-size: 6px 6px; background-repeat: no-repeat; padding-right: 40px; }
.field textarea { min-height: 88px; resize: vertical; }
.field ::placeholder { color: #5E7067; opacity: 1; }
.field input:focus-visible, .field select:focus-visible, .field textarea:focus-visible { outline: 2px solid var(--emerald); outline-offset: 2px; border-color: var(--ink); }
.field .err { display: none; font-size: 14px; font-weight: 700; color: var(--error); }
.field.bad .err { display: block; }
.field.bad input { border-color: var(--error); }
.opt { font-weight: 400; color: var(--ink-2); }
.check { display: grid; grid-template-columns: 24px minmax(0, 1fr); gap: 10px; align-items: start; margin-top: 20px; font-size: 15px; color: var(--ink); }
.check input { width: 22px; height: 22px; margin: 1px 0 0; accent-color: var(--emerald); }
.form-sheet .btn-ink { width: 100%; margin-top: 20px; }
.consent { margin-top: 14px; font-size: 13.5px; line-height: 1.5; color: var(--ink-2); }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.detail { margin-top: 26px; border-top: 1px solid var(--paper-line); }
.detail > summary { cursor: pointer; padding: 18px 0 4px; font-weight: 700; color: var(--emerald); font-size: 16px; }
.detail > summary span { font-weight: 400; font-size: 14px; color: var(--ink-2); }
.detail[open] > summary { margin-bottom: 14px; }
.form-msg { display: none; margin: 0 0 20px; padding: 14px 16px; background: var(--hl-soft); font-size: 15.5px; }
.form-msg b { display: block; font-size: 1.05rem; }
.form-msg.error { background: #FBE4E0; color: var(--error); font-weight: 700; }
.form-msg.show { display: block; }
.step2-actions { display: none; }
.is-step2 .step1 { display: none; }
.is-step2 .detail { margin-top: 0; border-top: 0; }
.is-step2 .detail > summary { display: none; }
.is-step2 .detail-submit { display: none; }
.is-step2 .step2-actions { display: grid; gap: 10px; margin-top: 22px; }
.is-step2 .step2-actions .btn-ink { margin-top: 0; }
@media (min-width: 620px) { .is-step2 .step2-actions { grid-template-columns: 1fr auto; } }
.thanks { padding: clamp(26px, 4vw, 40px); }
.thanks h2, .thanks h1 { font-size: clamp(1.6rem, 3vw, 2.1rem); font-weight: 500; letter-spacing: -0.03em; line-height: 1.1; color: var(--ink); }
.thanks ol { counter-reset: n; margin-top: 20px; }
.thanks ol li { counter-increment: n; display: grid; grid-template-columns: 30px minmax(0, 1fr); padding: 14px 0; border-top: 1px solid var(--paper-line); }
.thanks ol li::before { content: counter(n); font-weight: 700; color: var(--emerald); }
.thanks p { margin-top: 14px; }
[hidden] { display: none !important; }

/* ---------- footer ---------- */
.site-foot { border-top: 1px solid var(--line); padding: 44px 0 56px; background: var(--base); font-size: 15px; color: var(--mute); }
.foot-grid { display: grid; gap: 24px; }
@media (min-width: 820px) { .foot-grid { grid-template-columns: minmax(0, 1fr) auto; align-items: end; } }
.foot-links { display: flex; flex-wrap: wrap; gap: 6px 24px; }
.foot-links a { display: inline-flex; align-items: center; min-height: 44px; color: var(--text); }
.foot-meta { display: grid; gap: 4px; margin-top: 14px; }

/* ---------- legal pages ---------- */
.doc-head { padding: clamp(44px, 7vw, 84px) 0 clamp(32px, 5vw, 52px); }
.doc-head h1 { font-size: clamp(2.4rem, 7vw, 4.4rem); }
.doc-head p { margin-top: 14px; color: var(--text-2); }
.doc { display: grid; gap: 28px; padding-bottom: clamp(64px, 9vw, 110px); }
@media (min-width: 1000px) { .doc { grid-template-columns: 300px minmax(0, 1fr); gap: 48px; align-items: start; } .toc-nav { position: sticky; top: 92px; max-height: calc(100vh - 116px); overflow-y: auto; } }
.toc { border: 1px solid var(--line); background: rgba(13, 29, 23, 0.86); }
.toc > summary { cursor: pointer; padding: 14px 18px; font-weight: 700; color: #fff; list-style: none; }
.toc > summary::-webkit-details-marker { display: none; }
.toc > summary h2 { display: inline; font-size: 1rem; font-weight: 700; letter-spacing: 0; line-height: 1.4; }
.toc ol { padding: 0 18px 14px; display: grid; gap: 2px; }
.toc a { display: block; padding: 9px 0; font-size: 14.5px; color: var(--text-2); text-decoration: none; }
.toc a:hover { color: var(--accent); text-decoration: underline; }
.legal { padding: clamp(24px, 5vw, 56px); font-size: 16.5px; line-height: 1.65; overflow-wrap: break-word; }
.legal > * { max-width: 46em; }
.legal h2 { font-size: clamp(1.35rem, 2.6vw, 1.7rem); font-weight: 700; letter-spacing: -0.02em; line-height: 1.2; color: var(--ink); margin: 2.2em 0 0.6em; scroll-margin-top: 110px; }
.legal h3 { font-size: 1.12rem; color: var(--ink); margin: 1.7em 0 0.5em; scroll-margin-top: 110px; }
.legal p { margin: 0 0 1em; }
.legal ul { list-style: disc; padding-left: 22px; margin: 0 0 1em; display: grid; gap: 4px; }
.legal .doc-foot { margin-top: 2.4em; padding-top: 1.2em; border-top: 1px solid var(--paper-line); color: var(--ink-2); font-size: 15px; }
.legal .optout { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; }
.narrow { max-width: 760px; }

/* ---------- people who prefer less motion ---------- */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .lf, .lf i { animation: none; transition: none; }
  .js .report [data-step], .js .report [data-step] .chip, .js .report [data-step] .open-in { opacity: 1; transform: none; transition: none; }
  .js .report .mark { background-size: 100% 100%; transition: none; }
  .btn { transition: none; }
}

@media print {
  .lightfield, .site-head, .section-cta { display: none; }
  body { background: #fff; color: #000; }
}
