/* DeSpoof landing page. Loads after dsp.css. */

.wrap{max-width:1120px;margin:0 auto;padding:0 24px}
.sec{padding:88px 0;border-top:1px solid var(--rule)}
.sec--flush{border-top:0}
.sec-head{max-width:720px;margin-bottom:44px}
.sec-head h2{font-size:clamp(1.9rem,3.6vw,2.75rem);margin:.55rem 0 .7rem}
.sec-head p{color:var(--ink-2);font-size:1.05rem}

/* ------------------------------------------------------------------- header */

.top{position:sticky;top:0;z-index:50;background:rgba(238,241,246,.86);
  backdrop-filter:saturate(140%) blur(8px);border-bottom:1px solid var(--rule)}
.top-in{display:flex;align-items:center;gap:28px;height:62px}
.brand{font-family:var(--display);font-weight:700;font-size:1.12rem;letter-spacing:-.01em;
  text-decoration:none;display:flex;align-items:center;gap:8px}
.brand-dot{width:9px;height:9px;border-radius:50%;background:var(--live);
  box-shadow:0 0 0 3px rgba(47,214,166,.22)}
.top-nav{display:flex;gap:22px;margin-left:auto;font-size:.92rem}
.top-nav a{text-decoration:none;color:var(--ink-2)}
.top-nav a:hover{color:var(--ink)}
.top-cta{display:flex;gap:10px;align-items:center;margin-left:22px}
.top-cta a.plain{text-decoration:none;font-size:.92rem;font-weight:600}
@media(max-width:900px){.top-nav{display:none}.top-cta{margin-left:auto}}

/* --------------------------------------------------------------------- hero */

.hero{padding:76px 0 72px}
.hero-grid{display:grid;grid-template-columns:1.02fr .98fr;gap:56px;align-items:center}
.hero h1{font-size:clamp(2.5rem,5.2vw,4rem);letter-spacing:-.025em;margin:.7rem 0 1rem}
.hero h1 em{font-style:normal;color:var(--signal)}
.hero-lede{font-size:1.15rem;color:var(--ink-2);max-width:36em;margin-bottom:.55rem}
.hero-sub{font-size:1.02rem;color:var(--ink);margin-bottom:1.7rem}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:1.3rem}
.hero-note{font-size:.88rem;color:var(--ink-2)}
.hero-note b{color:var(--ink)}
@media(max-width:960px){.hero-grid{grid-template-columns:1fr;gap:40px}}

/* -------------------------------------------------------------- trust strip */

.trust{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.trust-card{background:var(--card);border:1px solid var(--rule);border-radius:12px;padding:26px}
.trust-card h3{font-size:1.06rem;margin-bottom:.45rem}
.trust-card p{font-size:.93rem;color:var(--ink-2)}
@media(max-width:860px){.trust{grid-template-columns:1fr}}

.tape{overflow:hidden;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);
  background:var(--card);padding:13px 0}
.tape-run{display:flex;gap:38px;white-space:nowrap;animation:tape 34s linear infinite;
  font-family:var(--mono);font-size:.76rem;letter-spacing:.06em;color:var(--ink-2)}
@keyframes tape{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.tape-run{animation:none}}

/* ------------------------------------------------------------------ benefits */

.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.grid2{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
@media(max-width:860px){.grid3,.grid2{grid-template-columns:1fr}}

.tile{background:var(--card);border:1px solid var(--rule);border-radius:12px;padding:26px}
.tile h3{font-size:1.08rem;margin-bottom:.45rem}
.tile p{font-size:.93rem;color:var(--ink-2)}

.uses{display:grid;grid-template-columns:repeat(2,1fr);gap:0;
  border:1px solid var(--rule);border-radius:12px;overflow:hidden;background:var(--card)}
.use{padding:20px 24px;border-bottom:1px solid var(--rule)}
.use:nth-child(odd){border-right:1px solid var(--rule)}
.use:nth-last-child(-n+2){border-bottom:0}
.use b{display:block;font-size:.98rem}
.use span{font-size:.88rem;color:var(--ink-2)}
@media(max-width:700px){.uses{grid-template-columns:1fr}
  .use:nth-child(odd){border-right:0}.use:nth-last-child(2){border-bottom:1px solid var(--rule)}}

/* ---------------------------------------------------------------- how it works */

.flow{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;counter-reset:flow}
.flow-step{background:var(--card);border:1px solid var(--rule);border-radius:12px;padding:26px;position:relative}
.flow-step::before{counter-increment:flow;content:counter(flow);position:absolute;top:20px;right:22px;
  font-family:var(--display);font-size:2.6rem;line-height:1;color:var(--rule)}
.flow-step h3{font-size:1.06rem;margin:0 0 .45rem;max-width:80%}
.flow-step p{font-size:.93rem;color:var(--ink-2)}
@media(max-width:860px){.flow{grid-template-columns:1fr}}

/* --------------------------------------------------------------- controls */

.dials{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.dial{background:var(--card);border:1px solid var(--rule);border-radius:12px;padding:24px}
.dial h3{font-size:1rem;margin-bottom:.5rem}
.dial p{font-size:.9rem;color:var(--ink-2);margin-bottom:1rem}
.dial-row{display:flex;justify-content:space-between;font-family:var(--mono);font-size:.78rem;
  padding:.5em 0;border-top:1px solid var(--rule);color:var(--ink-2)}
.dial-row b{color:var(--ink);font-weight:500}
@media(max-width:860px){.dials{grid-template-columns:1fr}}

/* ------------------------------------------------------------------- devs */

.dev{background:var(--panel);border-radius:16px;overflow:hidden;box-shadow:var(--shadow)}
.dev-tabs{display:flex;gap:2px;padding:12px 12px 0;background:var(--panel-2);flex-wrap:wrap}
.dev-tabs button{background:transparent;border:0;color:#8d9bbc;font-family:var(--mono);font-size:.78rem;
  letter-spacing:.08em;text-transform:uppercase;padding:.75em 1.1em;border-radius:8px 8px 0 0;cursor:pointer}
.dev-tabs button[aria-selected=true]{background:var(--panel);color:#fff}
.dev-pane{display:none;padding:24px 26px 28px}
.dev-pane[data-open=true]{display:block}
.dev-pane pre{margin:0;overflow-x:auto;font-size:.84rem;line-height:1.68;color:#c9d4ea}
.dev-pane .cm{color:#6f7d9f}
.dev-pane .st{color:#8fe3c4}
.dev-pane .kw{color:#9db4ff}
.dev-note{margin-top:18px;font-size:.86rem;color:#8d9bbc;border-top:1px solid var(--rule-dark);padding-top:14px}

/* ---------------------------------------------------------------- dashboard */

.dash-shot{background:var(--card);border:1px solid var(--rule);border-radius:12px;overflow:hidden}
.dash-bar{display:flex;align-items:center;gap:8px;padding:11px 16px;border-bottom:1px solid var(--rule);
  font-family:var(--mono);font-size:.76rem;color:var(--ink-2)}
.dash-bar i{width:9px;height:9px;border-radius:50%;background:var(--rule);display:inline-block}
.dash-rows{padding:6px 0}
.dash-row{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;
  padding:11px 18px;border-bottom:1px solid var(--rule);font-size:.88rem}
.dash-row:last-child{border-bottom:0}
.dash-row .tag{font-family:var(--mono);font-size:.72rem;padding:.25em .55em;border-radius:5px}
.tag.pass{background:rgba(47,214,166,.16);color:#0f7f62}
.tag.fail{background:var(--flag-soft);color:var(--flag)}
.dash-row .meta{color:var(--ink-2);font-family:var(--mono);font-size:.78rem}

/* ------------------------------------------------------------------ pricing */

.plans{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.plan{background:var(--card);border:1px solid var(--rule);border-radius:12px;padding:26px;
  display:flex;flex-direction:column}
.plan--pick{border-color:var(--signal);box-shadow:0 0 0 3px var(--signal-soft)}
.plan h3{font-size:1rem;margin-bottom:.6rem}
.plan .price{font-family:var(--display);font-size:2.3rem;line-height:1;margin-bottom:.2rem}
.plan .per{font-size:.82rem;color:var(--ink-2);margin-bottom:1.1rem}
.plan ul{list-style:none;margin:0 0 1.4rem;padding:0;font-size:.9rem;color:var(--ink-2)}
.plan li{padding:.35em 0}
.plan .btn{margin-top:auto}
.plan-flag{font-family:var(--mono);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--signal);margin-bottom:.5rem}
@media(max-width:980px){.plans{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.plans{grid-template-columns:1fr}}
.price-note{margin-top:22px;font-size:.86rem;color:var(--ink-2);max-width:60em}

/* ---------------------------------------------------------------------- faq */

.faq{border-top:1px solid var(--rule)}
.faq details{border-bottom:1px solid var(--rule)}
.faq summary{cursor:pointer;list-style:none;padding:20px 0;font-family:var(--display);
  font-size:1.14rem;font-weight:600;display:flex;justify-content:space-between;gap:20px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:'+';color:var(--signal);font-size:1.4rem;line-height:1}
.faq details[open] summary::after{content:'\2013'}
.faq .answer{padding:0 0 22px;max-width:72ch;color:var(--ink-2);font-size:.97rem}
.faq .answer p+p{margin-top:.8rem}

/* --------------------------------------------------------------------- end */

.closer{background:var(--panel);color:#fff;border-radius:16px;padding:56px 44px;text-align:center}
.closer h2{font-size:clamp(1.9rem,4vw,2.9rem);margin-bottom:.8rem}
.closer p{color:#a7b3cd;max-width:44em;margin:0 auto 1.6rem}

.foot{border-top:1px solid var(--rule);padding:52px 0 40px;font-size:.9rem}
.foot-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:28px}
.foot h4{font-family:var(--mono);font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--ink-3);font-weight:500;margin-bottom:.9rem}
.foot a{display:block;color:var(--ink-2);text-decoration:none;padding:.22em 0}
.foot a:hover{color:var(--ink)}
.foot-legal{margin-top:36px;padding-top:20px;border-top:1px solid var(--rule);
  color:var(--ink-3);font-size:.82rem;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
@media(max-width:820px){.foot-grid{grid-template-columns:1fr 1fr}}


/* ------------------------------------------------------------------- demo */
/* A loop of what a visitor actually sees. Swap for a real screen recording
   when one exists: .demo-video below is already styled for it. */

.demo-video{width:100%;border-radius:16px;box-shadow:0 30px 60px rgba(15,23,41,.22);display:block}

.demo{background:var(--card);border:1px solid var(--rule);border-radius:16px;overflow:hidden;
  box-shadow:0 30px 60px rgba(15,23,41,.16);cursor:pointer}
.demo-chrome{display:flex;align-items:center;gap:7px;padding:11px 16px;border-bottom:1px solid var(--rule);
  font-family:var(--mono);font-size:.74rem;color:var(--ink-3);background:var(--paper)}
.demo-chrome i{width:8px;height:8px;border-radius:50%;background:var(--rule);display:inline-block}
.demo-chrome span{margin-left:8px}

.demo-screen{position:relative;height:326px;overflow:hidden}

.demo-page{position:absolute;inset:0;padding:34px 30px;display:flex;flex-direction:column;
  justify-content:center;gap:14px}
.demo-field{height:38px;border:1px solid var(--rule);border-radius:8px;background:var(--paper)}
.demo-field.short{width:62%}
.demo-btn{align-self:flex-start;margin-top:6px;background:var(--signal);color:#fff;border:0;
  border-radius:9px;padding:.8em 1.3em;font-family:var(--body);font-weight:600;font-size:.95rem;
  transition:transform .16s ease,box-shadow .16s ease;pointer-events:none}
.demo-btn.is-pressed{transform:scale(.94);box-shadow:0 0 0 6px var(--signal-soft)}

.demo-modal{position:absolute;inset:0;background:var(--panel);display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:18px;
  transform:translateY(100%);transition:transform .34s cubic-bezier(.22,.9,.3,1)}
.demo-oval{width:150px;height:196px;border-radius:50%;border:2px solid rgba(255,255,255,.32);
  display:flex;align-items:center;justify-content:center;overflow:hidden;perspective:600px}
.demo-face{width:104px;height:auto;transition:transform .55s cubic-bezier(.4,0,.2,1)}
.demo-face .dh{fill:rgba(255,255,255,.16)}
.demo-face .de{fill:#eaf1ff;transition:transform .1s linear;transform-origin:center}
.demo-face #dEyes.is-shut .de{transform:scaleY(.12)}
.demo-face .dm{fill:none;stroke:#eaf1ff;stroke-width:2.4;stroke-linecap:round}
.demo-prompt{font-family:var(--display);font-weight:700;font-size:1.4rem;color:#fff}

.demo-done{position:absolute;inset:0;background:var(--card);display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:6px;opacity:0;pointer-events:none;transition:opacity .22s ease}
.demo-done b{font-family:var(--display);font-size:1.3rem}
.demo-done span:last-child{font-size:.88rem;color:var(--ink-2)}
.demo-tick{width:56px;height:56px;border-radius:50%;background:var(--live);color:#fff;
  display:flex;align-items:center;justify-content:center;font-size:1.7rem;margin-bottom:8px}

.demo[data-stage=check] .demo-modal{transform:none}
.demo[data-stage=done] .demo-modal{transform:none}
.demo[data-stage=done] .demo-done{opacity:1}

.demo-steps{list-style:none;counter-reset:d;margin:0;padding:14px 16px;display:flex;flex-wrap:wrap;
  gap:6px 8px;border-top:1px solid var(--rule);background:var(--paper)}
.demo-steps li{counter-increment:d;font-size:.78rem;color:var(--ink-3);
  border:1px solid var(--rule);border-radius:999px;padding:.3em .75em;background:#fff;
  transition:color .2s ease,border-color .2s ease,background .2s ease}
.demo-steps li::before{content:counter(d) '. ';font-family:var(--mono);font-size:.72em}
.demo-steps li.is-now{color:#fff;background:var(--signal);border-color:var(--signal)}
.demo-steps li.is-done{color:#0f7f62;border-color:rgba(47,214,166,.5);background:rgba(47,214,166,.12)}

@media(prefers-reduced-motion:reduce){
  .demo,.demo *{transition:none !important}
}

/* ------------------------------------------------------------------- chips */

.chips-label{font-family:var(--mono);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--ink-3);margin-bottom:14px}
.chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.chips li{background:var(--card);border:1px solid var(--rule);border-radius:999px;
  padding:.5em 1em .5em .8em;font-size:.94rem;font-weight:500;display:flex;align-items:center;gap:.5em}
.chips li::before{content:'\2713';color:var(--live);font-weight:700;font-size:.9em}

/* --------------------------------------------------------------- vs CAPTCHA */

.vs{border:1px solid var(--rule);border-radius:12px;overflow:hidden;background:var(--card)}
.vs-row{display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:16px;padding:.85em 20px;
  border-bottom:1px solid var(--rule);font-size:.94rem;align-items:center}
.vs-row:last-child{border-bottom:0}
.vs-row>span:first-child{color:var(--ink-2)}
.vs-row>span:nth-child(2){color:var(--ink-2)}
.vs-us{font-weight:600;color:var(--ink)}
.vs-head{background:var(--paper);font-family:var(--mono);font-size:.7rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--ink-3)}
.vs-head .vs-us{color:var(--signal)}
@media(max-width:700px){
  .vs-row{grid-template-columns:1fr;gap:2px;padding:.9em 16px}
  .vs-row>span:nth-child(2)::before{content:'CAPTCHA: ';font-size:.8em;color:var(--ink-3)}
  .vs-row .vs-us::before{content:'DeSpoof: ';font-size:.8em;color:var(--signal);font-weight:400}
  .vs-head{display:none}
}

/* --------------------------------------------------------------- how good */

.good{background:var(--card);border:1px solid var(--rule);border-radius:12px;padding:24px 24px 24px 56px;
  position:relative}
.good h3{font-size:1.04rem;margin-bottom:.4rem}
.good p{font-size:.93rem;color:var(--ink-2)}
.good::before{position:absolute;left:22px;top:25px;width:20px;height:20px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;font-size:.72rem;color:#fff;font-weight:700}
.good--yes::before{content:'\2713';background:var(--live)}
.good--no::before{content:'\2715';background:var(--ink-3)}
