/* The landing page, on top of jeff.css: wide whitespace, hairlines, the same pills and shapes. */
:root{--wide:1120px;--gutter:24px}
html{scroll-behavior:smooth}
body{font-size:16px;overflow-x:hidden}
a{color:inherit}
h2{margin:14px 0 16px;font-size:clamp(32px,4.2vw,48px);font-weight:600;letter-spacing:-.04em;line-height:1.05}
h3{margin:0 0 8px;font-size:17px;font-weight:600;letter-spacing:-.01em}
.wrap{max-width:var(--wide);margin:0 auto;padding:0 var(--gutter)}
.section{padding:112px var(--gutter)}
.band{padding:112px 0;background:var(--softer);border-block:1px solid var(--line)}
.sub{max-width:34em;margin:0 0 48px;color:var(--ink-2);font-size:18px}
.fine{margin:20px 0 0;color:var(--muted);font-size:13px}
.button.big{height:44px;padding:0 22px;font-size:15px}
.button{text-decoration:none}

/* Top bar. */
.top{display:flex;align-items:center;gap:28px;height:72px}
.wordmark{font-size:24px;font-weight:650;letter-spacing:-.04em;line-height:1;text-decoration:none}
.top .links{display:flex;gap:24px;margin-left:auto;font-size:14px}
.top .links a{color:var(--muted);text-decoration:none}
.top .links a:hover{color:var(--ink)}

/* Hero: the pitch, and the popup doing its one job. */
.hero{display:grid;grid-template-columns:minmax(0,1fr) 420px;gap:72px;align-items:center;padding-top:88px;padding-bottom:120px}
.hero h1{margin:20px 0 24px;font-size:clamp(46px,6.4vw,76px);font-weight:600;letter-spacing:-.05em;line-height:.98}
.lead{max-width:29em;margin:0 0 36px;color:var(--ink-2);font-size:19px;line-height:1.5}
.actions{display:flex;flex-wrap:wrap;gap:12px}
.actions.center{justify-content:center}
.demo{margin:0}
.window{padding:18px 20px 8px;border:1px solid var(--edge);border-radius:22px;background:var(--bg);box-shadow:0 1px 2px #0000000a,0 30px 80px -24px #0000002e}
.bar{display:flex;align-items:center;gap:10px;margin-bottom:18px}
.bar .wordmark{font-size:21px}
.bar .site{margin-right:auto;color:var(--muted);font-size:14px}
.switch.on{background:var(--ink);cursor:default}
.switch.on::after{transform:translateX(14px)}
.typed{min-height:74px;margin:0;padding:16px 60px 16px 18px;font-size:16px;line-height:1.45}
.caret{display:inline-block;width:1.5px;height:1.15em;margin-left:1px;background:var(--ink);vertical-align:-.2em;animation:blink 1.1s steps(1) infinite}
.demo.busy .caret{visibility:hidden}
@keyframes blink{50%{opacity:0}}
.demo .divider{margin:22px 0 4px}
.filters{list-style:none;min-height:228px;margin:0;padding:0}
.filters li{display:flex;align-items:flex-start;gap:12px;padding:13px 0;border-bottom:1px solid var(--line);animation:arrive .5s cubic-bezier(.2,.7,.2,1) both}
.filters li:last-child{border-bottom:0}
.filters.leaving li{opacity:0;transition:opacity .25s}
@keyframes arrive{from{opacity:0;transform:translateY(6px)}}
.filters .body{display:flex;flex-direction:column;gap:1px;flex:1;min-width:0;padding-top:3px}
.filters .name{font-size:15px;font-weight:500;line-height:1.35}
.filters .except{color:var(--muted);font-size:14px;line-height:1.35}
.filters .receipt{margin-top:5px}
.pick{display:inline-flex;flex:none;align-items:center;gap:7px;height:28px;padding:0 12px 0 10px;border:1px solid var(--line);border-radius:999px;font-size:13px}
.demo figcaption{margin:14px 6px 0;color:var(--muted);font-size:13px;text-align:center}

/* How it works. */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:48px;margin:56px 0 0;padding:0;list-style:none}
.steps .n{display:grid;place-items:center;width:32px;height:32px;margin-bottom:20px;border:1px solid var(--edge);border-radius:50%;font-size:13px}
.steps p,.facts p,.sites p{margin:0;color:var(--muted);font-size:15px;line-height:1.55}

/* The three actions, on a sample feed. */
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,480px);gap:72px;align-items:center}
.legend{display:grid;gap:22px;margin:40px 0 0}
.legend div{display:grid;grid-template-columns:96px 1fr;gap:16px;align-items:baseline}
.legend dt{display:flex;align-items:center;gap:10px;font-weight:600}
.legend dd{margin:0;color:var(--muted)}
.feed{border:1px solid var(--line);border-radius:18px;background:var(--bg);overflow:hidden}
.post{padding:16px 20px;border-bottom:1px solid var(--line);transition:opacity .2s}
.post:last-child{border-bottom:0}
.post p{margin:6px 0 0 40px;font-size:15px;line-height:1.45}
.who{display:flex;align-items:center;gap:10px;font-size:14px}
.who i{width:30px;height:30px;border-radius:50%;background:hsl(var(--hue) 40% 88%)}
.who span{color:var(--faint)}
.post .mark{display:flex;align-items:center;gap:8px;margin:0 0 8px 40px;color:var(--muted);font-size:13px}
.post .mark .shape{width:10px;height:10px;border-width:2px}
.post.faded{opacity:.4}
.post.faded:hover{opacity:1}
.post .trace{display:flex;align-items:center;gap:8px;margin:0;color:var(--muted);font-size:14px}
.post .trace .shape{width:10px;height:10px;border-color:var(--muted);background:var(--muted)}
.post .trace button{margin-left:auto;padding:0;border:0;background:none;color:var(--ink);font-size:14px;font-weight:500}
.post .trace button:hover{text-decoration:underline}
.post.hidden .content{display:none}
.post.shown .content{margin-top:12px}

/* Sites. */
.sites{display:grid;grid-template-columns:repeat(5,1fr);margin:0;padding:0;list-style:none;border-top:1px solid var(--line)}
.sites li{padding:24px 24px 0 0}
.sites li+li{padding-left:24px;border-left:1px solid var(--line)}
.sites b{display:block;margin-bottom:10px;font-weight:600}

/* Numbers. */
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;border:1px solid var(--line);border-radius:18px;background:var(--line);overflow:hidden}
.stats div{padding:32px 28px;background:var(--bg)}
.stats b{display:block;margin-bottom:12px;font-size:52px;font-weight:500;letter-spacing:-.04em;line-height:1}
.stats p{margin:0;color:var(--muted);font-size:15px}

/* Privacy. */
.facts{display:grid;grid-template-columns:repeat(2,1fr);gap:48px 72px;margin-top:48px}

/* Closing call. */
.cta{padding-top:120px;padding-bottom:120px;text-align:center}
.cta .sub{margin:0 auto 32px}
.soon{position:relative}
.soon[aria-disabled=true]{cursor:default}
.foot{display:flex;flex-wrap:wrap;align-items:center;gap:20px;padding-top:28px;padding-bottom:40px;border-top:1px solid var(--line);font-size:14px}
.foot .wordmark{font-size:18px}
.foot a{margin-left:auto;color:var(--muted)}

@media (max-width:900px){
  .hero,.split{grid-template-columns:1fr;gap:56px}
  .hero{padding-top:48px;padding-bottom:88px}
  .steps,.stats{grid-template-columns:1fr}
  .steps{gap:36px}
  .sites{grid-template-columns:1fr 1fr}
  .sites li,.sites li+li{padding:20px 0;border-left:0;border-bottom:1px solid var(--line)}
  .sites li:nth-child(odd){padding-right:20px}
  .facts{grid-template-columns:1fr;gap:32px}
  .section,.band{padding-top:80px;padding-bottom:80px}
}
@media (max-width:600px){
  :root{--gutter:16px}
  .top .links{display:none}
  .top .button{margin-left:auto}
  .lead{font-size:17px}
  .window{padding:16px 16px 6px}
  .legend div{grid-template-columns:1fr;gap:4px}
  .sites{grid-template-columns:1fr}
  .sites li:nth-child(odd){padding-right:0}
  .foot a{margin-left:0}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .caret{animation:none}
  .filters li{animation:none}
}

/* Long-form pages like the privacy policy. */
.policy{max-width:720px;padding-top:64px;padding-bottom:112px}
.policy h1{margin:20px 0 12px;font-size:clamp(38px,5vw,56px);font-weight:600;letter-spacing:-.045em;line-height:1.02}
.policy h2{margin:56px 0 12px;font-size:22px;letter-spacing:-.02em}
.policy p,.policy li{color:var(--ink-2);font-size:16px;line-height:1.65}
.policy ul{padding-left:20px}
.policy li{margin:6px 0}
.policy code{font:14px var(--mono);padding:1px 6px;border-radius:6px;background:var(--soft)}
.trace-line{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:14px}
.trace-line .shape{width:10px;height:10px;border-color:var(--muted);background:var(--muted)}
