/* BeatTheDoor site: ink + paper, signal orange for action, teal for "verified" */
:root{
  --ink:#0F1419; --ink-2:#161C24; --ink-3:#1D242E; --line-dark:#2A313B;
  --paper:#F7F5F0; --sand:#EFEBE2; --line:#E4E0D6; --white:#FFFFFF;
  --signal:#FF5B23; --verified:#2DD4BF; --verified-ink:#0F766E; --rust:#C2410C;
  --text:#0F1419; --text-2:#4A4F56; --text-3:#5C6168; --on-dark:#F7F5F0; --on-dark-2:#C9C6BE; --on-dark-3:#9EA3AA;
  --display:'Bricolage Grotesque', Georgia, serif; --body:'IBM Plex Sans', system-ui, sans-serif; --mono:'IBM Plex Mono', ui-monospace, monospace;
  --radius:20px; --wrap:1200px;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--text);font-family:var(--body);font-size:17px;line-height:1.55}
a{color:var(--rust)} a:hover{color:#9A3412}
img,svg{display:block}
:focus-visible{outline:3px solid var(--signal);outline-offset:3px}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 24px}
.dark{background:var(--ink);color:var(--on-dark)}
.sand{background:var(--sand)}
.section{padding:56px 0}
.eyebrow{font-family:var(--mono);font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--rust)}
.dark .eyebrow{color:var(--verified)}
h1,h2,h3{font-family:var(--display);letter-spacing:-.02em;line-height:1.05;margin:0}
h1{font-size:clamp(40px,6vw,66px);font-weight:800}
h2{font-size:clamp(30px,4vw,46px);font-weight:800;margin:8px 0 12px}
h3{font-size:21px;font-weight:700;letter-spacing:-.01em}
.lead{font-size:19px;color:var(--text-2);max-width:640px}
.dark .lead{color:var(--on-dark-2)}
.skip{position:absolute;left:-999px;top:8px;background:var(--signal);color:var(--ink);padding:10px 14px;border-radius:10px;z-index:9}
.skip:focus{left:8px}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:12px 22px;border-radius:999px;font-weight:600;text-decoration:none;border:1px solid transparent;cursor:pointer;font:inherit;font-weight:600}
.btn-primary{background:var(--signal);color:var(--ink)} .btn-primary:hover{background:#FF7347;color:var(--ink)}
.btn-ghost{border-color:#3A424D;color:var(--on-dark)} .btn-ghost:hover{border-color:var(--on-dark-2);color:var(--on-dark)}
.btn-outline{border-color:var(--ink);color:var(--ink);background:transparent} .btn-outline:hover{background:var(--ink);color:var(--paper)}

/* header */
.site-head{background:rgba(247,245,240,.92);backdrop-filter:saturate(160%) blur(14px);color:var(--ink);position:sticky;top:0;z-index:5;border-bottom:1px solid var(--line)}
.site-head .wrap{display:flex;align-items:center;gap:24px;min-height:72px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none}
.brand:hover{color:var(--ink)}
.wordmark{font-family:var(--display);font-size:22px;font-weight:800;letter-spacing:-.02em}
.wordmark span{font-weight:500;opacity:.7}
.nav{display:flex;gap:18px;flex:1;flex-wrap:nowrap;white-space:nowrap}
.nav a{color:var(--ink);text-decoration:none;font-size:14.5px;font-weight:600} .nav a:hover{color:var(--rust)}
.head-cta{display:flex;gap:14px;align-items:center}
.head-cta .login{color:var(--ink);text-decoration:none;font-size:15px;font-weight:600}
.menu-btn{display:none}

/* hero */
.hero{padding:44px 0 52px}
.hero .wrap{display:flex;flex-wrap:wrap;gap:56px;align-items:center}
.hero-copy{flex:1 1 480px;min-width:0}
.hero-copy h1 em{font-style:normal;color:var(--signal)}
.pill-live{display:inline-flex;align-items:center;gap:10px;border:1px solid var(--line-dark);border-radius:999px;padding:8px 14px;font-size:14px;color:#D9D6CE;margin-bottom:22px}
.dot-live{width:10px;height:10px;border-radius:50%;background:var(--signal);animation:pulse 1.8s ease-in-out infinite}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(255,91,35,.55)}50%{box-shadow:0 0 0 10px rgba(255,91,35,0)}}
.hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:30px}
.hero-notes{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:28px;font-size:14px;color:var(--on-dark-3)}
.hero-card{flex:1 1 440px;min-width:0;background:var(--ink-2);border:1px solid var(--line-dark);border-radius:22px;padding:22px}
.card-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px;gap:12px}
.mono-label{font-family:var(--mono);font-size:12px;letter-spacing:.08em;color:var(--verified)}
.biz{font-family:var(--display);font-size:22px;font-weight:700;margin-top:4px}
.muted{color:var(--on-dark-3);font-size:14px}
.score{font-family:var(--display);font-size:36px;font-weight:800;color:var(--signal);text-align:right;line-height:1}
.checks{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.check{display:flex;align-items:center;gap:12px;background:var(--ink-3);border-radius:12px;padding:10px 12px;opacity:0;transform:translateX(28px);transition:opacity .45s ease,transform .45s ease}
.check.on{opacity:1;transform:none}
.check .tick{width:28px;height:28px;border-radius:50%;background:var(--verified);color:var(--ink);display:flex;align-items:center;justify-content:center;flex:none}
.check.hot .tick{background:var(--signal)}
.check b{display:block;font-size:15px}
.check small{display:block;color:var(--on-dark-3);font-size:13px}
.check time{margin-left:auto;font-family:var(--mono);font-size:12px;color:#6F7680}

/* stats */
.stats{background:var(--signal);color:var(--ink)}
.stats .wrap{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;padding-top:28px;padding-bottom:28px}
.stat b{display:block;font-family:var(--display);font-size:40px;font-weight:800;line-height:1.1}
.stat span{font-weight:500;font-size:15px}

/* homepage: orange banner outside a plain white sheet */
.btn-ink{background:var(--ink);color:var(--paper)} .btn-ink:hover{background:#2A333D;color:var(--paper)}
.btn-paper{background:var(--paper);color:var(--ink)} .btn-paper:hover{background:var(--white);color:var(--ink)}

/* hero slider: one rounded card inside the page width; each slide brings its own colour */
.hero-slider{padding:16px 0 0}
.slides{display:grid;border-radius:32px;overflow:hidden;box-shadow:0 30px 70px -40px rgba(15,20,25,.55)}
/* every slide sits in the same grid cell, so the card is always as tall as the tallest slide and never resizes when they change;
   each slide's content is centred in that height */
.slide{grid-area:1/1;display:flex;flex-wrap:wrap;align-items:center;align-content:center;gap:32px 56px;padding:clamp(24px,4vw,52px);
  opacity:0;visibility:hidden;transition:opacity .7s ease,visibility 0s linear .7s}
.slide.is-on{opacity:1;visibility:visible;transition:opacity .7s ease,visibility 0s}
.slide-copy{flex:1 1 520px;min-width:0;transform:translateY(18px);transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.slide-art{flex:1 1 360px;min-width:0;position:relative;transform:translateX(30px) scale(.97);transition:transform .9s cubic-bezier(.2,.7,.2,1) .05s}
.slide.is-on .slide-copy,.slide.is-on .slide-art{transform:none}
.slide h1,.slide .slide-h{font-family:var(--display);font-weight:800;font-size:clamp(40px,5.3vw,78px);line-height:.96;letter-spacing:-.04em;margin:0}
.slide-h em{font-style:normal}
.slide-copy>p{margin:18px 0 0;font-size:19px;line-height:1.55;font-weight:500;max-width:560px}
.slide .hero-actions{margin-top:22px}
.slide-link{margin:16px 0 0;font-size:15px} .slide-link a{color:inherit;font-weight:600}
.pill-ink{display:inline-flex;align-items:center;gap:10px;background:var(--ink);color:var(--paper);border-radius:999px;padding:8px 14px;font-size:14px;margin-bottom:16px}
.pill-ink .dot-live{background:var(--verified)} .pill-line .dot-live{background:var(--signal)}
.pill-line{display:inline-flex;align-items:center;gap:10px;border:1px solid var(--line-dark);color:var(--on-dark-2);border-radius:999px;padding:8px 14px;font-size:14px;margin-bottom:16px}
.s-orange{background:var(--signal);color:var(--ink)}
.s-ink{background:var(--ink);color:var(--on-dark)} .s-ink .slide-h em{color:var(--signal)} .s-ink .slide-copy>p{color:var(--on-dark-2)}
.s-teal{background:var(--verified);color:var(--ink)}
.s-sand{background:var(--sand);color:var(--ink)} .s-sand .slide-h em{color:var(--rust)}
/* slide visuals */
.ring{max-width:480px;margin-left:auto;display:flex;flex-direction:column}
.float{position:relative;display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:var(--white);color:var(--ink);font-weight:600;font-size:15px;
  border-radius:16px;padding:11px 16px;box-shadow:0 18px 30px -18px rgba(15,20,25,.6);width:max-content;max-width:100%;margin-top:-6px}
.float small{font-weight:400;color:var(--text-3);font-size:13px}
.float .dot{width:10px;height:10px;border-radius:50%} .dot.o{background:var(--signal)} .dot.t{background:var(--verified-ink)}
.f1{margin-top:-24px;margin-left:-16px} .f2{margin-left:8%} .f3{margin-left:20%}
.slide.is-on .float{animation:pop .55s cubic-bezier(.2,.7,.2,1) both}
.slide.is-on .f2{animation-delay:.12s} .slide.is-on .f3{animation-delay:.24s}
.tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:18px}
.tiles .btile:nth-child(2),.tiles .btile:nth-child(5){transform:translateY(-6px)}
.btile{background:var(--white);color:var(--ink);border-radius:20px;padding:14px 12px;display:flex;flex-direction:column;align-items:center;gap:6px;
  text-align:center;box-shadow:0 18px 30px -20px rgba(15,20,25,.65)}
.btile .app{width:52px;height:52px;border-radius:14px}
.btile b{font-size:14px;line-height:1.2} .btile small{font-family:var(--mono);font-size:12px;color:var(--rust);font-weight:500}
.art-big{background:var(--ink);color:var(--paper);border-radius:24px;padding:24px 28px 36px;display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 16px}
.art-big b{font-family:var(--display);font-size:clamp(52px,6vw,80px);font-weight:800;letter-spacing:-.04em;line-height:.9;color:var(--signal)}
.art-big span{color:var(--on-dark-2)}
.slide.is-on .btile{animation:pop .55s cubic-bezier(.2,.7,.2,1) .3s both}
.slide.is-on .btile:nth-child(2){animation-delay:0.37s} .slide.is-on .btile:nth-child(3){animation-delay:0.44s}
.slide.is-on .btile:nth-child(4){animation-delay:0.51s} .slide.is-on .btile:nth-child(5){animation-delay:0.58s}
.slide.is-on .btile:nth-child(6){animation-delay:0.65s}
@keyframes pop{from{opacity:0;transform:translateY(14px) scale(.96)}to{opacity:1;transform:none}}
@keyframes popup{from{opacity:0;transform:translateY(8px) scale(.96)}to{opacity:1;transform:translateY(-6px)}}
.slide.is-on .btile:nth-child(2),.slide.is-on .btile:nth-child(5){animation-name:popup}
.feed{background:var(--ink-2);border:1px solid var(--line-dark);border-radius:24px;padding:20px;display:flex;flex-direction:column;gap:8px}
.feed-head{font-family:var(--mono);font-size:12px;letter-spacing:.06em;color:var(--verified);margin-bottom:4px}
.feed-row{display:flex;gap:12px;align-items:center;background:var(--ink-3);border-radius:12px;padding:12px 14px;font-size:15px}
.feed-row span:first-child{font-weight:600;flex:1;min-width:0} .feed-row span:nth-child(2){color:var(--on-dark-3);font-size:14px}
.feed-row time{font-family:var(--mono);font-size:12px;color:var(--signal)}
.slide.is-on .feed-row{animation:pop .5s cubic-bezier(.2,.7,.2,1) both}
.slide.is-on .feed-row:nth-child(3){animation-delay:.1s} .slide.is-on .feed-row:nth-child(4){animation-delay:.2s}
.slide.is-on .feed-row:nth-child(5){animation-delay:.3s} .slide.is-on .feed-row:nth-child(6){animation-delay:.4s}
.mailcard{background:var(--white);color:var(--ink);border-radius:24px;padding:22px;box-shadow:0 30px 50px -30px rgba(15,20,25,.6);display:flex;flex-direction:column;gap:2px}
.mc-row{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline;padding:9px 0;border-bottom:1px solid var(--line);font-size:15px}
.mc-row span{width:64px;color:var(--text-3);font-size:13px} .mc-row b{font-weight:600;min-width:0;overflow-wrap:anywhere}
.mc-row em{font-style:normal;font-size:12px;font-weight:600;color:var(--verified-ink);background:#DDF7F2;border-radius:999px;padding:2px 8px}
.mc-body{padding:14px 0 6px;color:var(--text-2)} .mc-foot{font-family:var(--mono);font-size:11px;color:var(--text-3);letter-spacing:.06em}
.cal{background:var(--white);border-radius:24px;padding:24px;box-shadow:0 30px 50px -30px rgba(15,20,25,.45);max-width:400px;margin-left:auto}
.cal-head{display:flex;justify-content:space-between;align-items:baseline;font-family:var(--mono);font-size:12px;color:var(--text-3);letter-spacing:.08em}
.cal-head b{font-family:var(--display);font-size:40px;color:var(--ink);letter-spacing:-.02em}
.cal-ev{margin-top:14px;background:var(--signal);color:var(--ink);border-radius:16px;padding:16px 18px}
.cal-ev b{display:block;font-size:17px} .cal-ev span{font-size:14px}
.cal-quote{margin-top:14px;background:var(--paper);border-radius:16px 16px 16px 4px;padding:12px 16px;width:max-content;max-width:100%}
/* slide controls */
.slide-nav{display:flex;align-items:center;gap:12px;margin-top:8px}
.slide-tabs{flex:1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.slide-tab{position:relative;font:inherit;font-size:14px;font-weight:600;text-align:left;color:var(--text-3);background:none;border:0;border-top:3px solid var(--line);
  padding:12px 0 6px;min-height:44px;cursor:pointer;overflow:hidden}
.slide-tab i{position:absolute;left:0;top:-3px;height:3px;width:0;background:var(--signal)}
.slide-tab.is-on{color:var(--ink)} .slide-tab.is-on i{animation:fill var(--slide-ms,6500ms) linear forwards}
.slide-tab:hover{color:var(--ink)}
.slides-paused .slide-tab.is-on i{animation-play-state:paused}
@keyframes fill{to{width:100%}}
.slide-pause{flex:none;width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:var(--white);color:var(--ink);display:flex;align-items:center;justify-content:center;cursor:pointer}
.slide-pause .i-play{display:none} .slides-paused .slide-pause .i-play{display:block} .slides-paused .slide-pause .i-pause{display:none}
@media (max-width:720px){.slide-tab span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.slide-tabs{gap:6px}}
.sheet-wrap{max-width:var(--wrap);margin:16px auto 0;padding:0 16px}
.sheet{background:var(--white);border-radius:32px;box-shadow:0 30px 80px -30px rgba(15,20,25,.35);padding:clamp(20px,4vw,48px);display:flex;flex-direction:column;gap:52px}
.sheet h2{margin-top:10px}
.sheet .hero-card{background:var(--paper);border-color:var(--line);color:var(--text)}
.sheet .check{background:var(--white)}
.sheet .check small,.sheet .muted,.sheet .check time{color:var(--text-3)}
.sheet .mono-label{color:var(--verified-ink)}
.sheet .score{color:var(--rust)}
.sheet .grid-4 .card{background:var(--paper);border:none}
.sheet .grid-4 .card.inverse{background:var(--ink)}
.watch{list-style:none;padding:0;margin:22px 0 0;display:flex;flex-wrap:wrap;gap:8px}
.watch li{font-size:14px;background:var(--paper);border:1px solid var(--line);border-radius:999px;padding:6px 12px}
.lead-sec{align-items:flex-start}
/* counters: Apple-style tiles, each with its own tint */
.counters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:26px}
.counter{border-radius:22px;padding:20px 22px;display:flex;flex-direction:column;gap:4px;min-height:112px;justify-content:flex-end}
.counter b{font-family:var(--display);font-size:clamp(32px,3.4vw,44px);font-weight:800;letter-spacing:-.035em;line-height:1}
.counter span{font-size:14px;font-weight:500}
.c-orange{background:var(--signal);color:var(--ink)}
.c-teal{background:#DDF7F2;color:var(--ink)} .c-teal b{color:var(--verified-ink)}
.c-ink{background:var(--ink);color:var(--paper)} .c-ink span{color:var(--on-dark-2)}
.c-sand{background:var(--paper);color:var(--ink)} .c-sand b{color:var(--rust)}
/* example-lead picker */
.lead-pick{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}
.lead-pick button{font:inherit;display:flex;align-items:center;gap:8px;min-height:44px;padding:6px 12px 6px 6px;border-radius:999px;border:1px solid var(--line);
  background:var(--white);color:var(--ink);cursor:pointer;font-weight:600;font-size:14px;transition:background .2s ease,border-color .2s ease}
.lead-pick button i{font-style:normal;width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;color:#fff}
.lead-pick button[aria-pressed="true"]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.lead-pick button:hover{border-color:var(--ink)}
.lp-orange{background:var(--rust)} .lp-teal{background:var(--verified-ink)} .lp-pink{background:#BE185D} .lp-indigo{background:#3730A3}
.sec-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px 24px;margin-bottom:24px}
.sec-head h2{margin:0;max-width:640px}
.sec-head a{font-weight:600}
.apps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:24px 12px}
.apps a{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;text-decoration:none;color:var(--text);font-size:14px;font-weight:500;line-height:1.25}
.apps a:hover{color:var(--text)} .apps a:hover .app{transform:translateY(-3px)}
.app{width:76px;height:76px;border-radius:18px;display:flex;align-items:center;justify-content:center;box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 8px 18px -8px rgba(15,20,25,.45);transition:transform .2s ease}
.app-blue{background:linear-gradient(180deg,#5B8CFF,#2154D8)} .app-orange{background:linear-gradient(180deg,#FF8A4C,#E2511A)}
.app-green{background:linear-gradient(180deg,#3FCB7A,#15803D)} .app-teal{background:linear-gradient(180deg,#2FC3B3,#0F766E)}
.app-indigo{background:linear-gradient(180deg,#6D72F0,#3730A3)} .app-sky{background:linear-gradient(180deg,#3AB0F0,#0369A1)}
.app-pink{background:linear-gradient(180deg,#F25C9E,#BE185D)} .app-amber{background:linear-gradient(180deg,#E0A040,#A15C07)}
.app-purple{background:linear-gradient(180deg,#A177F5,#6D28D9)} .app-ink{background:linear-gradient(180deg,#3B4652,#0F1419)}
.app-slate{background:linear-gradient(180deg,#7C8B9A,#475569)} .app-red{background:linear-gradient(180deg,#F2595A,#B91C1C)}
.app-cyan{background:linear-gradient(180deg,#22C3E6,#0E7490)} .app-lime{background:linear-gradient(180deg,#8FD14F,#4D7C0F)}
.app-violet{background:linear-gradient(180deg,#C084FC,#7E22CE)} .app-navy{background:linear-gradient(180deg,#4B6CC1,#1E3A8A)}
.app-brown{background:linear-gradient(180deg,#C08A4E,#7C4A1E)} .app-rose{background:linear-gradient(180deg,#FB7185,#BE123C)}
.home #finder{margin-top:40px}
@media (max-width:960px){.apps{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:560px){.apps{grid-template-columns:repeat(3,minmax(0,1fr))}.sheet{gap:40px}}

/* steps / cards */
.grid-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:26px}
.card p{margin:8px 0 0;color:var(--text-2)}
.card.inverse{background:var(--ink);color:var(--on-dark);border-color:var(--ink)}
.card.inverse p{color:var(--on-dark-2)}
.step-n{font-family:var(--display);font-size:44px;font-weight:800;color:var(--signal);line-height:1;margin-bottom:12px}

/* finder */
.finder-controls{display:flex;flex-wrap:wrap;gap:14px;margin:20px 0}
.field{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--on-dark-3)}
.field select{font:inherit;font-size:16px;min-height:48px;padding:10px 14px;border-radius:12px;background:var(--ink-3);color:var(--on-dark);border:1px solid var(--line-dark);min-width:220px}
.counts{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin-bottom:16px}
.count{background:var(--ink-2);border:1px solid var(--line-dark);border-radius:16px;padding:18px}
.count b{display:block;font-family:var(--display);font-size:32px;font-weight:800;line-height:1.15}
.count span{font-size:14px;color:var(--on-dark-2)}
.count.hl b{color:var(--signal)} .count.ok b{color:var(--verified)}
.table-box{background:var(--ink-2);border:1px solid var(--line-dark);border-radius:18px;overflow-x:auto}
.table-box table{width:100%;border-collapse:collapse;min-width:620px;font-size:15px}
.table-box th{text-align:left;font-weight:500;font-size:13px;color:var(--on-dark-3);padding:14px 18px}
.table-box td{padding:14px 18px;border-top:1px solid var(--line-dark)}
.badge{display:inline-block;font-size:13px;font-weight:600;padding:3px 10px;border-radius:999px;background:#24313A;color:var(--verified)}
.badge.warn{background:#3A2A22;color:#FFB08F}
.finder-foot{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin-top:18px}
.finder-status{color:var(--on-dark-3);font-size:14px}

/* calculator */
.calc{display:flex;flex-wrap:wrap;gap:32px}
.calc-in{flex:1 1 460px;min-width:0;display:flex;flex-direction:column;gap:16px}
.range label{display:flex;justify-content:space-between;font-weight:500;gap:12px}
.range input{width:100%;accent-color:var(--signal);min-height:32px}
.plan-pick{display:flex;flex-wrap:wrap;gap:10px}
.plan-pick button{font:inherit;font-weight:600;min-height:46px;padding:10px 18px;border-radius:999px;cursor:pointer;background:var(--white);color:var(--ink);border:1px solid #C9C4B8}
.plan-pick button[aria-pressed="true"]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.calc-out{flex:1 1 420px;min-width:0;background:var(--ink);color:var(--on-dark);border-radius:24px;padding:32px;display:flex;flex-direction:column;gap:18px}
.out-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.out{background:var(--ink-2);border-radius:14px;padding:16px}
.out span{font-size:13px;color:var(--on-dark-3)}
.out b{display:block;font-family:var(--display);font-size:28px;font-weight:800}
.out.ok b{color:var(--verified)}
.totals{border-top:1px solid var(--line-dark);padding-top:18px;display:flex;flex-direction:column;gap:8px}
.totals div{display:flex;justify-content:space-between}
.totals .roi{font-size:22px} .totals .roi b{color:var(--signal)}
.fine{font-size:13px;color:var(--on-dark-3)}

/* pricing */
.plans{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.plan{background:var(--white);border:1px solid var(--line);border-radius:24px;padding:30px;display:flex;flex-direction:column;gap:14px}
.plan.featured{background:var(--ink);color:var(--on-dark);border-color:var(--ink)}
.plan .price b{font-family:var(--display);font-size:48px;font-weight:800}
.plan ul{margin:0;padding-left:20px;line-height:1.85;color:var(--text-2)}
.plan.featured ul,.plan.featured .sub{color:var(--on-dark-2)}
.plan .btn{margin-top:auto}
.tag{background:var(--signal);color:var(--ink);font-size:12px;font-weight:600;padding:4px 10px;border-radius:999px}

/* faq */
.faq{max-width:var(--wrap)}
.faq details{background:var(--white);border-radius:16px;padding:16px 22px;margin-bottom:10px}
.faq summary{font-weight:600;font-size:18px;cursor:pointer}
.faq p{color:var(--text-2);margin:12px 0 0}

/* closing */
.closing .row{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px;padding-bottom:36px;border-bottom:1px solid var(--line-dark)}
.closing h2{max-width:680px;margin:0}
.foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px;padding:22px 0 28px;font-size:14px;color:var(--on-dark-3)}
.foot a{color:var(--on-dark-2)}

@media (max-width:960px){
  .grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .grid-3,.plans{grid-template-columns:minmax(0,1fr)}
  .counts{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stats .wrap{grid-template-columns:repeat(2,minmax(0,1fr))}
}
/* the full menu fits once the page is at full width (1200px); narrower screens get the menu button and a panel */
.nav-cta{display:none}
@media (max-width:1199px){
  .head-cta{order:1;margin-left:auto}
  .menu-btn{order:2;display:inline-flex;background:var(--white);border:1px solid rgba(15,20,25,.2);color:var(--ink);border-radius:12px;
    min-height:44px;min-width:44px;align-items:center;justify-content:center;cursor:pointer}
  .nav{position:absolute;top:100%;left:0;right:0;height:calc(100vh - 100%);height:calc(100dvh - 100%);
    display:flex;flex-direction:column;gap:0;padding:8px 24px 32px;background:var(--paper);border-top:1px solid var(--line);
    overflow-y:auto;overscroll-behavior:contain;white-space:normal;
    opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .2s ease,transform .2s ease,visibility 0s linear .2s}
  .nav.open{opacity:1;visibility:visible;transform:none;transition:opacity .2s ease,transform .2s ease,visibility 0s}
  .nav>a{font-family:var(--display);font-size:22px;font-weight:700;letter-spacing:-.01em;min-height:56px;display:flex;align-items:center;border-bottom:1px solid var(--line)}
  .nav>a[aria-current="page"]{text-decoration:none;color:var(--rust)}
  html.menu-open,html.menu-open body{overflow:hidden}
}
@media (max-width:720px){
  .head-cta{display:none}
  .menu-btn{margin-left:auto}
  .site-head .wrap{min-height:64px;padding:0 16px;gap:12px}
  .nav{padding:4px 16px 28px}
  .nav-cta{display:flex;flex-direction:column;gap:10px;margin-top:22px}
  .nav-cta .btn{width:100%;min-height:52px;font-size:17px}
  .nav-cta .btn-ink,.nav-cta .btn-ink:hover,.nav-cta .btn-outline:hover{color:var(--paper)}
  .nav-cta .btn-outline{color:var(--ink)}
  .wordmark{font-size:20px}
  .grid-4{grid-template-columns:minmax(0,1fr)}
  .section{padding:40px 0}
}
@media (prefers-reduced-motion:reduce){
  .dot-live,.btile,.float,.feed-row,.slide-tab.is-on i{animation:none!important}
  .check,.app,.slide,.slide-copy,.slide-art{transition:none!important}
}

/* inner pages (built by tools/build_pages.py) */
.page-hero{padding:44px 0 52px}
.page-hero h1 em{font-style:normal;color:var(--signal)}
.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.seg-grid{gap:18px}
.seg .seg-n,.hub-card .seg-n{font-family:var(--display);font-size:38px;font-weight:800;letter-spacing:-.02em;line-height:1.1;color:var(--ink)}
.seg-l{font-family:var(--mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--verified-ink);margin-bottom:12px}
.seg h3,.hub-card h3{margin-top:4px}
.hub-card{text-decoration:none;color:var(--text);transition:transform .2s ease,box-shadow .2s ease}
.hub-card:hover{color:var(--text);transform:translateY(-3px);box-shadow:0 12px 30px rgba(15,20,25,.08)}
.hub-card .more{display:inline-block;margin-top:8px;color:var(--rust);font-weight:600}
.two-col{display:flex;flex-wrap:wrap;gap:40px;align-items:center}
.two-col>*{flex:1 1 380px;min-width:0}
.mail{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:0 18px 40px rgba(15,20,25,.08)}
.mail-head{padding:16px 20px;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:4px}
.mail-head .mono-label{color:var(--rust)}
.mail-body{padding:18px 20px;white-space:pre-line;line-height:1.6}
.mail-foot{padding:12px 20px;background:var(--sand);font-size:13px;color:var(--text-3)}
.ticks,.crosses{list-style:none;padding:0;margin:10px 0 0;display:flex;flex-direction:column;gap:10px}
.ticks li,.crosses li{padding-left:30px;position:relative}
.ticks li::before,.crosses li::before{position:absolute;left:0;top:1px;width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700}
.ticks li::before{content:"✓";background:var(--verified);color:var(--ink)}
.crosses li::before{content:"✕";background:var(--sand);color:var(--text-2)}
.prose-wrap{display:flex;gap:48px;align-items:flex-start}
.toc{flex:0 0 220px;position:sticky;top:96px}
.toc ol{padding-left:18px;margin:10px 0 0;display:flex;flex-direction:column;gap:6px;font-size:15px}
.toc a{color:var(--text-2);text-decoration:none} .toc a:hover{color:var(--rust)}
.prose{flex:1;min-width:0;max-width:720px}
.prose section{scroll-margin-top:96px}
.prose h2{font-size:28px;margin:40px 0 12px}
.prose section:first-child h2{margin-top:0}
.prose ul{padding-left:20px;display:flex;flex-direction:column;gap:8px}
.nav a[aria-current="page"]{color:var(--rust);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:6px}

@media (max-width:960px){.grid-2{grid-template-columns:1fr}}
@media (max-width:820px){.prose-wrap{display:block}.toc{position:static;margin-bottom:28px}}

/* guides */
.guide .lead-p{font-size:20px;color:var(--text-2);margin-top:0}
.guide h2{font-size:26px}
.guide p,.guide li{font-size:17px;line-height:1.7}
.guide code{font-family:var(--mono);font-size:14px;background:var(--sand);padding:1px 6px;border-radius:6px}
.hero-portal{margin:16px 0 0;font-size:15px}
.hero-portal a{color:var(--verified)} .hero-portal a:hover{color:var(--on-dark)}

/* leads by state */
.table-box.light{background:var(--white);border:1px solid var(--line)}
.table-box.light th{color:var(--text-3)} .table-box.light td{color:var(--text)}
.city-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 24px;counter-reset:c}
.city-list li{display:flex;justify-content:space-between;gap:8px;border-bottom:1px solid var(--line);padding:8px 0}
.chip-links{display:flex;flex-wrap:wrap;gap:10px}
.chip-link{border:1px solid var(--line);border-radius:999px;padding:8px 14px;text-decoration:none;color:var(--text);background:var(--white);font-size:15px}
.chip-link:hover{border-color:var(--signal);color:var(--text)}
.state-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px}
.state-card .seg-n{font-size:30px}
@media (max-width:560px){.city-list{grid-template-columns:1fr}}

/* every section is a rounded card at the content width, 16px apart; cards alternate dark / white / sand,
   and the cards inside each one take the opposite tone */
.section,.section.dark,.section.sand,.closing.dark,.page-hero.dark,.stats{background:none}
.section>.wrap,.closing.dark>.wrap,.page-hero.dark>.wrap,.stats>.wrap{
  width:calc(100% - 48px);max-width:calc(var(--wrap) - 48px);border-radius:32px;padding:clamp(24px,4vw,48px)}
.section>.wrap{background:var(--white)}
.section.dark>.wrap,.closing.dark>.wrap,.page-hero.dark>.wrap{background:var(--ink);color:var(--on-dark)}
.section.sand>.wrap{background:var(--sand)}
.stats>.wrap{background:var(--signal);color:var(--ink);padding-top:22px;padding-bottom:22px}
.section,.section.dark,.section.sand{padding:8px 0}
.page-hero.dark{padding:16px 0 8px}
.stats{padding:8px 0}
.closing.dark{padding:8px 0 0}
.home #finder{margin-top:0}
.sheet-wrap{margin-bottom:8px}
.closing .row{padding-bottom:0;border-bottom:0}
/* subcards: sand on white, white on sand */
.section:not(.sand):not(.dark) .card,.section:not(.sand):not(.dark) .plan:not(.featured),
.section:not(.sand):not(.dark) .table-box.light,.section:not(.sand):not(.dark) .mail{background:var(--paper);border-color:transparent}
.section:not(.sand):not(.dark) .card.inverse{background:var(--ink)}
.section:not(.sand):not(.dark) .chip-link,.section:not(.sand):not(.dark) .plan-pick button:not([aria-pressed="true"]){background:var(--paper)}
.section:not(.sand):not(.dark) .table-box.light td{border-top-color:var(--line)}
.section.sand .card,.section.sand .mail,.section.sand .faq details,.section.sand .table-box.light{background:var(--white);border-color:transparent}
.site-foot{color:var(--text-3)}
.site-foot .foot{color:var(--text-3);padding:20px 0 28px}
.site-foot .foot a{color:var(--text-2)} .site-foot .foot a:hover{color:var(--rust)}
@media (max-width:720px){.section,.section.dark,.section.sand{padding:6px 0}}
@media (max-width:560px){
  .section>.wrap,.closing.dark>.wrap,.page-hero.dark>.wrap,.stats>.wrap{width:calc(100% - 24px);border-radius:24px}
}

/* rainbow subcards: cards in a group take soft tints in turn (peach, mint, sky, lavender, butter, rose);
   highlight cards (dark step, featured plan) stay dark */
:root{--t1:#FFE6D9;--t2:#DCF5EC;--t3:#DFEBFF;--t4:#ECE5FF;--t5:#FFF2C7;--t6:#FFE1EB}
:is(.grid-2,.grid-3,.grid-4,.state-grid,.plans)>:is(.card,.plan):not(.inverse):not(.featured){border-color:transparent}
:is(.grid-2,.grid-3,.grid-4,.state-grid,.plans)>:is(.card,.plan):not(.inverse):not(.featured):nth-child(6n+1){background:var(--t1)}
:is(.grid-2,.grid-3,.grid-4,.state-grid,.plans)>:is(.card,.plan):not(.inverse):not(.featured):nth-child(6n+2){background:var(--t2)}
:is(.grid-2,.grid-3,.grid-4,.state-grid,.plans)>:is(.card,.plan):not(.inverse):not(.featured):nth-child(6n+3){background:var(--t3)}
:is(.grid-2,.grid-3,.grid-4,.state-grid,.plans)>:is(.card,.plan):not(.inverse):not(.featured):nth-child(6n+4){background:var(--t4)}
:is(.grid-2,.grid-3,.grid-4,.state-grid,.plans)>:is(.card,.plan):not(.inverse):not(.featured):nth-child(6n+5){background:var(--t5)}
:is(.grid-2,.grid-3,.grid-4,.state-grid,.plans)>:is(.card,.plan):not(.inverse):not(.featured):nth-child(6n+6){background:var(--t6)}
.section .wrap.faq details:nth-of-type(6n+1){background:var(--t1)} .section .wrap.faq details:nth-of-type(6n+2){background:var(--t2)}
.section .wrap.faq details:nth-of-type(6n+3){background:var(--t3)} .section .wrap.faq details:nth-of-type(6n+4){background:var(--t4)}
.section .wrap.faq details:nth-of-type(6n+5){background:var(--t5)} .section .wrap.faq details:nth-of-type(6n+6){background:var(--t6)}
/* state list: a few of each state's trades with their counts */
.st-mix{list-style:none;margin:10px 0 8px;padding:10px 0 0;border-top:1px solid rgba(15,20,25,.1);display:flex;flex-direction:column;gap:5px;font-size:14px}
.st-mix li{display:flex;justify-content:space-between;gap:10px}
.st-mix span{color:var(--text-2)} .st-mix b{font-family:var(--mono);font-size:13px;font-weight:500;color:var(--ink)}
.state-card p{font-size:13px;margin-top:4px}
/* slide 3: where the owner came from, the email, and the sending checks */
.s-teal .slide-art{display:flex;flex-direction:column;gap:0;max-width:520px;margin-left:auto;flex-basis:440px}
.owner-card{background:var(--ink);color:var(--paper);border-radius:20px;padding:16px 18px;width:86%;box-shadow:0 20px 34px -22px rgba(15,20,25,.7);position:relative;z-index:1}
.oc-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:10px}
.oc-head .mono{font-family:var(--mono);font-size:11px;letter-spacing:.08em;color:var(--verified)} .oc-head b{font-size:14px}
.oc-src{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.oc-src li{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:600;border-radius:999px;padding:5px 10px 5px 5px;background:var(--ink-3)}
.oc-src i{width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center}
.oc-src .ok i{background:var(--verified);color:var(--ink)} .oc-src .no i{background:#3A424D;color:var(--on-dark-2)} .oc-src .no{color:var(--on-dark-2)}
.s-teal .mailcard{margin:-14px 0 0 5%;position:relative;z-index:2}
.chk-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px}
.chk{background:rgba(255,255,255,.55);border:1px solid rgba(255,255,255,.7);border-radius:18px;padding:12px;display:flex;flex-direction:column;gap:4px;color:var(--ink)}
.chk .app{width:40px;height:40px;border-radius:11px;margin-bottom:4px}
.chk b{font-size:13px;line-height:1.2} .chk small{font-size:12px;color:var(--text-2)}
.slide.is-on .owner-card,.slide.is-on .chk{animation:pop .55s cubic-bezier(.2,.7,.2,1) both}
.slide.is-on .chk:nth-child(1){animation-delay:.25s} .slide.is-on .chk:nth-child(2){animation-delay:.35s} .slide.is-on .chk:nth-child(3){animation-delay:.45s}
@media (prefers-reduced-motion:reduce){.owner-card,.chk{animation:none!important}}

/* book a demo (/book/) */
.book-grid{display:flex;flex-wrap:wrap;gap:28px;align-items:flex-start}
.book-side{flex:1 1 320px;min-width:0}
.book-side h2{margin-top:0}
.muted-note{color:var(--text-3);font-size:15px;margin-top:18px}
.book-form,.book-done{flex:1.4 1 460px;min-width:0;display:flex;flex-direction:column;gap:14px;background:var(--paper)!important;border:0!important;padding:clamp(20px,3vw,32px)}
.f-row{display:flex;flex-wrap:wrap;gap:14px}
.f-row .f{flex:1 1 200px}
.f{display:block;font-size:14px;font-weight:600;color:var(--ink);min-width:0}
.f input,.f select,.f textarea{display:block;margin-top:6px}
.f span{font-weight:400;color:var(--text-3)}
.f input,.f select,.f textarea{font:inherit;font-weight:400;font-size:16px;width:100%;padding:12px 14px;border-radius:12px;border:1px solid #CFC9BC;background:var(--white);color:var(--ink)}
.f textarea{resize:vertical;min-height:110px}
.f input:focus,.f select:focus,.f textarea:focus{outline:none;border-color:var(--signal);box-shadow:0 0 0 3px rgba(255,91,35,.2)}
.hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.form-err{margin:0;background:#FDE8E8;color:#9B1C1C;border-radius:12px;padding:10px 14px;font-size:15px}
.book-form .btn{align-self:flex-start;min-width:220px}
.book-form .btn[disabled]{opacity:.6;cursor:default}
.fine-print{margin:0;font-size:13px;color:var(--text-3)}
.book-done{align-items:flex-start}
.book-done h2{margin:0}
.book-done p{margin:0;color:var(--text-2)}
.done-tick{width:52px;height:52px;border-radius:50%;background:var(--verified);color:var(--ink);display:flex;align-items:center;justify-content:center}
@media (max-width:560px){.book-form .btn{width:100%}}

/* steady scrolling on phones: nothing pushes the page sideways, anchors land below the sticky header,
   the example-lead rows keep one height, and wide tables turn into one card per row */
html,body{overflow-x:clip}
section[id],[id="finder"],[id="calc"],[id="pricing"],[id="faq"],[id="how"],[id="who"],[id="book"]{scroll-margin-top:84px}
.hero-card{overflow:hidden}
.check div{min-width:0} .check b,.check small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.card-top>div:first-child{min-width:0} .biz,#lead-meta{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (max-width:720px){
  .table-box{overflow:visible}
  .table-box table{min-width:0}
  .table-box table,.table-box tbody,.table-box tr,.table-box td{display:block;width:100%}
  .table-box thead{display:none}
  .table-box tr{padding:12px 16px;border-top:1px solid var(--line-dark)}
  .table-box tr:first-child{border-top:0}
  .table-box.light tr{border-top-color:var(--line)}
  .table-box td{border:0;padding:3px 0 3px 104px;position:relative}
  .table-box td:first-child{padding:0 0 6px}
  .table-box td[data-label]::before{content:attr(data-label);position:absolute;left:0;top:4px;width:96px;font-size:13px;color:var(--on-dark-3)}
  .table-box.light td[data-label]::before{color:var(--text-3)}
  .table-box td:not([data-label]):not(:first-child){padding-left:0}
}

/* compact hero: every slide shorter (they share the tallest one's height) */
.slide{padding:clamp(22px,3.2vw,44px);gap:24px 44px}
.slide h1,.slide .slide-h{font-size:clamp(32px,4.4vw,62px);line-height:.98}
.slide-copy>p{margin-top:14px;font-size:17px;line-height:1.5;max-width:520px}
.slide .hero-actions{margin-top:18px;gap:10px}
.slide .pill-ink,.slide .pill-line{margin-bottom:12px;padding:6px 12px;font-size:13px}
.slide-link{margin-top:12px;font-size:14px}
.ring{max-width:440px}
.art-big{padding:16px 22px 28px} .art-big b{font-size:clamp(44px,4.6vw,62px)} .art-big span{font-size:14px}
.float{padding:8px 12px;font-size:14px} .f1{margin-top:-20px}
.tiles{gap:8px;margin-top:12px}
.btile{padding:9px 6px;gap:4px;border-radius:16px} .btile .app{width:38px;height:38px;border-radius:10px} .btile .app svg{width:20px;height:20px}
.btile b{font-size:12.5px} .btile small{font-size:11px}
.feed{padding:16px;gap:6px} .feed-row{padding:9px 12px;font-size:14px}
.owner-card{padding:12px 14px} .oc-head{margin-bottom:8px}
.mailcard{padding:16px 18px} .mc-row{padding:6px 0;font-size:14px} .mc-body{padding:8px 0 4px;font-size:14px}
.chk-tiles{gap:8px;margin-top:10px} .chk{padding:9px 10px} .chk .app{width:30px;height:30px;border-radius:9px} .chk .app svg{width:17px;height:17px}
.cal{padding:18px} .cal-head b{font-size:32px} .cal-ev{padding:12px 14px;margin-top:10px}
@media (max-width:720px){
  .slide{padding:22px 20px}
  .slide h1,.slide .slide-h{font-size:30px}
  .slide-copy>p{font-size:16px}
  .slide .hero-actions .btn{min-height:44px;padding:10px 18px;font-size:15px}
}
.slide-copy{flex:1 1 440px} .slide-art{flex:1 1 330px} .s-teal .slide-art{flex-basis:360px}
.slide h1,.slide .slide-h{font-size:clamp(32px,4.2vw,56px)}

/* slides 2-4: more to look at. Desktop: stat tiles, an AI draft, check tiles. Phones/tablets (no pictures): fact chips. */
.mini-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:10px}
.mini-stats div{background:var(--ink-2);border:1px solid var(--line-dark);border-radius:16px;padding:12px}
.mini-stats b{display:block;font-family:var(--display);font-size:22px;font-weight:800;color:var(--signal);line-height:1.1}
.mini-stats span{display:block;font-size:12px;color:var(--on-dark-3);line-height:1.35;margin-top:3px}
.s-sand .slide-art{display:flex;flex-direction:column;max-width:440px;margin-left:auto}
.draft-card{background:var(--ink);color:var(--paper);border-radius:18px;padding:12px 14px;width:88%;position:relative;z-index:1;box-shadow:0 18px 30px -20px rgba(15,20,25,.7)}
.dc-head{font-family:var(--mono);font-size:11px;letter-spacing:.08em;color:var(--verified)}
.draft-card p{margin:6px 0 8px;font-size:14px;line-height:1.45;color:var(--on-dark-2)}
.dc-btns{display:flex;gap:6px} .dc-btns span{font-size:12px;font-weight:600;border:1px solid var(--line-dark);border-radius:999px;padding:4px 10px}
.dc-btns .dc-ok{background:var(--signal);color:var(--ink);border-color:var(--signal)}
.s-sand .cal{margin:-12px 0 0 8%;max-width:none;position:relative;z-index:2}
.s-sand .chk{background:rgba(255,255,255,.7);border-color:rgba(255,255,255,.9)}
.slide.is-on .mini-stats div,.slide.is-on .draft-card{animation:pop .55s cubic-bezier(.2,.7,.2,1) both}
.slide.is-on .mini-stats div:nth-child(2){animation-delay:.1s} .slide.is-on .mini-stats div:nth-child(3){animation-delay:.2s}
.slide-facts{display:flex;list-style:none;margin:18px 0 0;padding:0;flex-wrap:wrap;gap:8px}
.slide-facts li{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:600;border-radius:999px;padding:7px 12px;background:rgba(15,20,25,.08)}
.s-ink .slide-facts li{background:var(--ink-3);color:var(--on-dark-2)} .s-ink .slide-facts svg{color:var(--signal)}
.s-teal .slide-facts li{background:rgba(255,255,255,.55)} .s-sand .slide-facts li{background:var(--white)}
.s-teal .slide-facts svg,.s-sand .slide-facts svg{color:var(--verified-ink)}
@media (prefers-reduced-motion:reduce){.mini-stats div,.draft-card{animation:none!important}}

/* phones and tablets: the slide pictures show too, stacked under the text and sized to the screen */
@media (max-width:1000px){
  .slide-art,.ring,.s-teal .slide-art,.s-sand .slide-art{flex-basis:100%;max-width:520px;margin-left:0;margin-right:auto;width:100%}
}
@media (max-width:720px){
  .slide{gap:20px}
  .art-big{padding:14px 18px 24px} .art-big b{font-size:44px}
  .float{font-size:13px;padding:7px 10px} .float small{font-size:12px}
  .f1{margin-left:0} .f2{margin-left:5%} .f3{margin-left:10%}
  .feed{padding:12px} .feed-row{padding:8px 10px;font-size:13px;gap:8px} .feed-row span:nth-child(2){font-size:12px}
  .mini-stats b{font-size:18px} .mini-stats span{font-size:11px}
  .owner-card,.draft-card{width:100%}
  .s-teal .mailcard,.s-sand .cal{margin-left:0}
  .mc-row span{width:56px} .mc-row{font-size:13px}
  .chk b{font-size:12px} .chk small{font-size:11px}
  .cal-head b{font-size:28px}
}
/* phones: the hero is text and buttons only (no pictures, no fact chips) */
@media (max-width:720px){.slide-art,.slide-facts{display:none!important}}

/* state pages: the 'at a glance' story */
.state-story p{margin:0 0 12px;color:var(--text-2);line-height:1.65}
.state-story p:first-child{font-size:18px;color:var(--text)}

/* homepage: browse leads by state, under the lead finder */
.state-links{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:22px;padding-top:18px;border-top:1px solid var(--line-dark);font-size:14px}
.state-links span{color:var(--on-dark-3)} .state-links a{color:var(--on-dark-2)} .state-links a:hover{color:var(--signal)}
/* book a demo on phones: the form first, one roomy box, even spacing between fields */
@media (max-width:720px){
  .section:has(.book-grid)>.wrap{padding:14px}
  .book-grid{gap:18px}
  .book-form,.book-done{order:-1;padding:22px 18px;border-radius:20px;gap:18px}
  .book-side{padding:6px 6px 0}
  .book-side h2{font-size:26px}
  .f-row{flex-direction:column;gap:18px} .f-row .f{flex:none}
  .f{font-size:15px}
  .f input,.f select,.f textarea{margin-top:8px;padding:13px 14px}
  .book-form .btn{width:100%;min-height:52px;font-size:17px}
  .fine-print{text-align:center}
}
/* terms: the conspicuous disclaimer and limits */
.legal-caps{font-size:14px;line-height:1.6;background:var(--paper);border-radius:12px;padding:14px 16px}

/* a way across to the BeatTheDoor app, for local businesses and job seekers */
.app-strip{padding:20px 0 0}
.app-strip-in{display:flex;gap:16px;align-items:center;justify-content:space-between;flex-wrap:wrap;background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:16px 22px}
.app-strip-in b{display:block;font-family:var(--display);font-size:20px;letter-spacing:-.01em}
.app-strip-in span{color:var(--text-2);font-size:15px}
.app-bar{background:var(--ink-2);color:var(--on-dark-2);font-size:13px;line-height:1.3;text-align:center;padding:8px 0}
.app-bar a{color:#fff;font-weight:600;white-space:nowrap}.app-bar a:hover{color:var(--verified)}

/* ten slides: the four about the Lead Finder, then one for each way into the BeatTheDoor app */
.slide-tabs{grid-template-columns:repeat(var(--n,4),minmax(0,1fr))}
.slide-tabs.many{gap:6px}
.slide-tabs.many .slide-tab{padding-bottom:34px}
.slide-tabs.many .slide-tab span{position:absolute;left:0;top:12px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .25s}
.slide-tabs.many .slide-tab.is-on span{opacity:1}
.slide-tabs.many .slide-tab:nth-last-child(-n+3) span{left:auto;right:0}
.s-peach{background:#FFE3D6;color:var(--ink);--em:#C2410C}
.s-sky{background:#DCEEFB;color:var(--ink);--em:#075985}
.s-mint{background:#D5F2E9;color:var(--ink);--em:#0F766E}
.s-rose{background:#FFE0E7;color:var(--ink);--em:#9F1239}
.s-lilac{background:#E6DFFF;color:var(--ink);--em:#5B21B6}
.s-amber{background:#FFE8BD;color:var(--ink);--em:#7A4700}
.s-peach .slide-h em,.s-sky .slide-h em,.s-mint .slide-h em,.s-rose .slide-h em,.s-lilac .slide-h em,.s-amber .slide-h em{color:var(--em)}
.s-peach .slide-copy>p,.s-sky .slide-copy>p,.s-mint .slide-copy>p,.s-rose .slide-copy>p,.s-lilac .slide-copy>p,.s-amber .slide-copy>p{color:#2E343B}
.aud-art{max-width:440px;margin-left:auto;background:var(--white);color:var(--ink);border-radius:22px;padding:18px 20px;box-shadow:0 24px 50px -28px rgba(15,20,25,.5);display:flex;flex-direction:column;gap:12px}
.aa-head{display:flex;align-items:center;gap:10px;font-family:var(--display);font-size:20px;font-weight:700;letter-spacing:-.01em}
.aa-ico{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:var(--em-bg,var(--sand));color:var(--em,var(--ink));flex:none}
.aa-ico svg{width:22px;height:22px}
.s-peach .aa-ico{--em-bg:#FFE3D6;--em:#C2410C}.s-sky .aa-ico{--em-bg:#DCEEFB;--em:#075985}.s-mint .aa-ico{--em-bg:#D5F2E9;--em:#0F766E}.s-rose .aa-ico{--em-bg:#FFE0E7;--em:#9F1239}.s-lilac .aa-ico{--em-bg:#E6DFFF;--em:#5B21B6}.s-amber .aa-ico{--em-bg:#FFE8BD;--em:#7A4700}
.aa-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}
.aa-list li{display:flex;align-items:center;gap:10px;padding:9px 2px;border-top:1px solid var(--line);font-size:15px;font-weight:600}
.aa-list li:first-child{border-top:0}
.aa-list li i{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;background:var(--em-bg,var(--sand));color:var(--em,var(--ink));flex:none}
.aa-list li i svg{width:12px;height:12px}
.s-peach .aa-list i{--em-bg:#FFE3D6;--em:#C2410C}.s-sky .aa-list i{--em-bg:#DCEEFB;--em:#075985}.s-mint .aa-list i{--em-bg:#D5F2E9;--em:#0F766E}.s-rose .aa-list i{--em-bg:#FFE0E7;--em:#9F1239}
.aa-foot{font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3)}
.aa-ask{display:flex;flex-direction:column;gap:6px;border:1px solid var(--line);border-radius:14px;padding:14px;background:var(--paper)}
.aa-ask b{font-size:17px;line-height:1.25}.aa-ask>span{font-size:14px;color:var(--text-2)}
.aa-tag{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#5B21B6;font-weight:600}
.aa-chips{display:flex;gap:6px;flex-wrap:wrap}.aa-chips em{font-style:normal;font-size:12px;padding:3px 9px;border-radius:99px;background:#E6DFFF;color:#4C1D95}
.aa-btns{display:flex;gap:8px;margin-top:4px}.aa-btn{font-size:13px;font-weight:600;padding:7px 14px;border-radius:99px;background:var(--ink);color:var(--paper)}.aa-btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--line-dark)}
.aa-jobs{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.aa-jobs li{display:flex;flex-direction:column;gap:1px;border:1px solid var(--line);border-radius:12px;padding:10px 14px;background:var(--paper)}
.aa-jobs b{font-size:16px}.aa-jobs span{font-size:13px;color:var(--text-2)}
@media (max-width:720px){.aud-art{margin:0;max-width:none}}

/* a label that runs past its own tab must not be clipped */
.slide-tabs.many .slide-tab{overflow:visible}
/* slide: every kind of business (the app's tiles) */
.s-wide .slide-copy,.s-wide .slide-art{flex:1 1 100%}
.s-wide .slide-h{font-size:clamp(28px,3.4vw,46px);max-width:900px}
.s-wide .slide-copy>p{margin-top:10px;font-size:16px;max-width:760px}
.apps-slide{grid-template-columns:repeat(8,minmax(0,1fr));gap:16px 8px}
.apps-slide a{font-size:12.5px;gap:6px;line-height:1.2}
.apps-slide .app{width:54px;height:54px;border-radius:15px}
.apps-slide .app svg{width:26px;height:26px}
.s-wide .hero-actions{margin-top:18px}
@media (max-width:960px){.apps-slide{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:560px){.apps-slide{grid-template-columns:repeat(3,minmax(0,1fr))}}
/* slide: one lead, one morning (the demo that used to sit below the banner) */
.s-paper{background:var(--white);color:var(--ink)}
.s-paper .slide-h em{color:var(--rust)}
.s-paper .slide-h{font-size:clamp(28px,3.4vw,46px)}
.s-paper .slide-copy>p{color:var(--text-2);margin-top:10px;font-size:16px}
.s-paper .watch{margin-top:14px}.s-paper .watch li{font-size:13px;padding:4px 10px}
.s-paper .counters{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:16px}
.s-paper .counter{min-height:74px;padding:12px 14px;border-radius:16px}.s-paper .counter b{font-size:clamp(20px,2.2vw,28px)}.s-paper .counter span{font-size:12px}
.s-paper .hero-card{background:var(--paper);border-color:var(--line);color:var(--text);padding:16px;max-width:520px;margin-left:auto}
.s-paper .check{background:var(--white)}
.s-paper .check small,.s-paper .muted,.s-paper .check time{color:var(--text-3)}
.s-paper .mono-label{color:var(--verified-ink)}
.s-paper .score{color:var(--rust)}
@media (max-width:720px){.s-paper .counters{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* keep the two wide slides about as tall as the rest, so the banner does not grow */
.s-wide{gap:12px 40px}
.s-wide .slide-h{font-size:clamp(26px,2.8vw,38px)}
.s-wide .slide-copy>p{font-size:15px;margin-top:8px}
.apps-slide{gap:12px 6px}
.apps-slide a{font-size:12px;gap:5px}
.apps-slide .app{width:46px;height:46px;border-radius:13px}.apps-slide .app svg{width:23px;height:23px}
.s-wide .hero-actions{margin-top:14px}
.s-paper .slide-h{font-size:clamp(26px,2.8vw,38px)}
.s-paper .watch li{font-size:12px;padding:3px 9px}
.s-paper .counter{min-height:64px;padding:10px 12px}.s-paper .counter b{font-size:clamp(18px,1.9vw,24px)}
.s-paper .checks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.s-paper .check{padding:8px 10px;gap:8px}.s-paper .check time{display:none}.s-paper .check b{font-size:13px}.s-paper .check small{font-size:11.5px}
.s-paper .hero-card{padding:14px}
@media (max-width:720px){.s-paper .checks{grid-template-columns:minmax(0,1fr)}}
.wide-row{display:flex;gap:10px 28px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.wide-row>p{flex:1 1 420px}
.s-wide .wide-row .hero-actions{margin:0;flex:none}
.s-wide .slide-art .hero-actions{display:none}
@media (max-width:720px){.s-paper .watch{display:none}}
/* the business-types slide: the icon wall spans the whole banner, edge to edge */
.s-wide .slide-art{max-width:none;margin:0;width:100%}
.apps-slide{grid-template-columns:repeat(8,minmax(0,1fr));gap:16px 10px;width:100%}
.apps-slide a{font-size:13px;gap:7px;line-height:1.2}
.apps-slide .app{width:64px;height:64px;border-radius:18px}
.apps-slide .app svg{width:30px;height:30px}
@media (max-width:1100px){.apps-slide .app{width:56px;height:56px}.apps-slide .app svg{width:27px;height:27px}}
/* no tab strip under the banner: just the play and pause button, inside the banner at its bottom right */
.slides{position:relative}
.slide-ctrl{position:absolute;right:16px;bottom:16px;z-index:6;display:flex;gap:8px}
.slide-ctrl .slide-pause,.slide-ctrl .slide-arrow{width:40px;height:40px;border-radius:50%;border:1px solid rgba(15,20,25,.12);background:rgba(255,255,255,.92);color:var(--ink);box-shadow:0 6px 16px -6px rgba(15,20,25,.45);display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0}
.slide-ctrl .slide-arrow:hover,.slide-ctrl .slide-pause:hover{background:#fff}
.slide-nav{display:none}

/* the phone-style menu at every screen width: logo on the left, the menu button on the right, a panel with everything in it */
.head-cta{display:none}
.menu-btn{display:inline-flex;margin-left:auto;background:var(--white);border:1px solid rgba(15,20,25,.2);color:var(--ink);border-radius:12px;min-height:44px;min-width:44px;align-items:center;justify-content:center;cursor:pointer}
.nav{position:absolute;top:100%;left:0;right:0;max-height:calc(100vh - 100%);max-height:calc(100dvh - 100%);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px 40px;align-content:start;
  padding:18px max(24px,calc((100vw - var(--wrap)) / 2 + 24px)) 34px;background:var(--paper);border-top:1px solid var(--line);box-shadow:0 30px 50px -30px rgba(15,20,25,.35);
  overflow-y:auto;overscroll-behavior:contain;white-space:normal;opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .2s ease,transform .2s ease,visibility 0s linear .2s}
.nav.open{opacity:1;visibility:visible;transform:none;transition:opacity .2s ease,transform .2s ease,visibility 0s}
.menu-group{display:flex;flex-direction:column}
.menu-h{font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--rust);padding:6px 0 6px}
.nav a{font-family:var(--display);font-size:20px;font-weight:700;letter-spacing:-.01em;min-height:48px;display:flex;align-items:center;border-bottom:1px solid var(--line);color:var(--ink);text-decoration:none}
.nav a:hover{color:var(--rust)}
html.menu-open,html.menu-open body{overflow:hidden}
.site-head .wrap{flex-wrap:nowrap}
@media (max-width:900px){.nav{grid-template-columns:minmax(0,1fr);padding:8px 16px 28px;gap:0}.nav a{font-size:20px}}

/* the app slides: what each kind of person gets */
.slide-feats{list-style:none;margin:14px 0 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 20px;font-size:14px;font-weight:600;line-height:1.3;max-width:600px}
.slide-feats li{position:relative;padding-left:22px}
.slide-feats li:before{content:"";position:absolute;left:0;top:3px;width:14px;height:14px;border-radius:50%;background:var(--ink);opacity:.9}
.slide-feats li:after{content:"";position:absolute;left:4px;top:6px;width:5px;height:3px;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(-45deg)}
.s-peach .slide-feats li:before{background:#C2410C}.s-sky .slide-feats li:before{background:#075985}.s-mint .slide-feats li:before{background:#0F766E}.s-rose .slide-feats li:before{background:#9F1239}.s-lilac .slide-feats li:before{background:#5B21B6}.s-amber .slide-feats li:before{background:#7A4700}
.slide-feats+.hero-actions{margin-top:18px}
@media (max-width:560px){.slide-feats{grid-template-columns:minmax(0,1fr)}}

/* the menu as the app's own dropdown: a compact dark card under the menu button, a round icon tile on each row */
.nav{position:absolute;top:calc(100% + 8px);left:auto;right:max(16px,calc((100vw - var(--wrap)) / 2 + 24px));width:min(340px,calc(100vw - 32px));max-height:calc(100dvh - 100px);
  display:flex;flex-direction:column;gap:0;padding:8px;background:var(--ink);color:var(--on-dark);border:1px solid var(--line-dark);border-radius:18px;box-shadow:0 24px 50px -18px rgba(15,20,25,.55);
  overflow-y:auto;overscroll-behavior:contain;opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .2s ease,transform .2s ease,visibility 0s linear .2s}
.nav.open{opacity:1;visibility:visible;transform:none;transition:opacity .2s ease,transform .2s ease,visibility 0s}
.menu-group{display:flex;flex-direction:column;gap:2px}
.menu-more{margin-top:6px;padding-top:6px;border-top:1px solid var(--line-dark)}
.menu-h{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--on-dark-3);padding:8px 10px 6px}
.nav a{display:flex;align-items:center;gap:12px;min-height:50px;padding:7px 10px;border:0;border-radius:12px;font-family:var(--body);font-size:16px;font-weight:600;letter-spacing:0;color:var(--on-dark);text-decoration:none}
.nav a:hover{background:var(--ink-3);color:#fff}
.mi{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;flex:none;color:#fff;background:linear-gradient(180deg,#FF8A4C,#E2511A);box-shadow:inset 0 1px 0 rgba(255,255,255,.3)}
.mi svg{width:20px;height:20px}
html.menu-open,html.menu-open body{overflow:visible}
@media (max-width:900px){.nav{grid-template-columns:none;padding:8px;gap:0;right:16px}.nav a{font-size:16px}}
.nav{max-height:calc(100dvh - 150px)}

/* the Book a Demo contact window */
.demo-dialog{border:0;border-radius:24px;padding:0;width:min(680px,calc(100vw - 24px));max-height:92dvh;overflow:auto;background:var(--paper);color:var(--ink);box-shadow:0 40px 90px -30px rgba(15,20,25,.6)}
.demo-dialog::backdrop{background:rgba(15,20,25,.55)}
.demo-in{padding:clamp(20px,3vw,32px)}
.demo-in h2{font-size:clamp(24px,3vw,32px);margin:4px 0 6px}
.demo-sub{margin:0 0 16px;color:var(--text-2);font-size:15px}
.demo-x{position:absolute;top:12px;right:12px;width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:var(--white);font-size:24px;line-height:1;cursor:pointer;color:var(--ink);z-index:2}
.demo-dialog .book-form,.demo-dialog .book-done{box-shadow:none;border:0;padding:0;background:transparent}
.demo-dialog .book-form textarea{min-height:90px}
/* a tighter banner: every slide uses its space, nothing floats */
.slide{padding:clamp(18px,2.2vw,30px) clamp(20px,3vw,40px);gap:14px 36px}
.slide h1,.slide .slide-h{font-size:clamp(28px,3.4vw,48px);line-height:1}
.slide-copy>p{margin-top:10px;font-size:15.5px;line-height:1.45}
.slide .pill-ink,.slide .pill-line{margin-bottom:8px}
.slide .hero-actions{margin-top:14px}
.slide-feats{margin-top:10px;gap:4px 18px;font-size:13.5px}
.slide-feats+.hero-actions{margin-top:14px}
.aud-art{padding:14px 18px;gap:8px}
.aa-list li{padding:6px 2px;font-size:14px}
.s-wide .slide-h{font-size:clamp(24px,2.5vw,34px)}
.s-wide .slide-copy>p{font-size:14.5px;margin-top:6px}
.apps-slide{gap:10px 6px}
.apps-slide .app{width:52px;height:52px;border-radius:15px}.apps-slide .app svg{width:25px;height:25px}
.apps-slide a{font-size:12px;gap:5px}
/* banner height: the busiest slides use a little less room, so the banner is only as tall as its fullest slide needs */
.s-ink .slide-art,.s-teal .slide-art,.s-sand:not(.s-wide) .slide-art,.s-orange .slide-art{zoom:.86}
.s-paper .watch{margin-top:10px;gap:6px}.s-paper .watch li{font-size:11.5px;padding:2px 8px}
.s-paper .counters{margin-top:12px}
.s-paper .hero-actions{margin-top:12px}
.apps-slide .app{width:46px;height:46px;border-radius:13px}.apps-slide .app svg{width:23px;height:23px}
.apps-slide{gap:8px 6px}
.s-wide{gap:8px 36px}
/* more of the same, with enough weight to win over the general slide rules */
.slide.s-paper .slide-h{font-size:clamp(24px,2.5vw,34px);line-height:1.02}
.slide.s-paper .counter{min-height:54px;padding:8px 12px;border-radius:14px}
.slide.s-paper .counter b{font-size:clamp(18px,1.8vw,24px)}
.slide.s-wide .slide-h{font-size:clamp(22px,2.2vw,31px);max-width:none}
.aa-jobs{gap:6px}.aa-jobs li{padding:7px 12px}.aa-jobs b{font-size:15px}.aa-jobs span{font-size:12.5px}
.aa-ask{padding:12px}
.s-paper .slide-art{zoom:.9}
.slide.s-paper .slide-copy>p{font-size:14.5px;margin-top:8px}
.slide.s-paper .pill-ink{margin-bottom:6px}
.s-paper .watch{margin-top:8px}

/* the footer, the same as the BeatTheDoor app's */
.gf{background:var(--ink);color:var(--on-dark-2);margin-top:56px;padding:34px 20px 26px;font-size:13px}
.gf-in{max-width:1152px;margin:0 auto}
.gf-cols{display:flex;justify-content:space-between;gap:22px;margin-bottom:22px;flex-wrap:wrap}
.gf h4{margin:0 0 10px;font-family:var(--body);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.09em;color:#fff}
.gf nav{display:flex;flex-direction:column;gap:7px}
.gf a{color:var(--on-dark-2);text-decoration:none}.gf a:hover{color:#fff;text-decoration:underline}
.gf-cols nav:last-child{align-items:flex-end;text-align:right}
.gf-disc{border-top:1px solid var(--line-dark);padding-top:18px;color:#B8B5AE;line-height:1.55}
.gf-disc p{margin:0 0 10px}
.gf-fine{margin:14px 0 0;color:#8F949B;font-size:12px}
@media (max-width:700px){.gf{padding:28px 16px 22px}.gf-cols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.gf-cols nav:last-child{grid-column:1/-1;align-items:flex-start;text-align:left}}

/* How it works: each feature as a small picture of its screen */
#how{padding:44px 0 8px}
#how h2{margin:6px 0 8px}
.feat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:22px}
.feat{background:var(--white);border:1px solid var(--line);border-radius:22px;padding:14px;display:flex;flex-direction:column;gap:6px}
.feat h3{font-size:18px;margin:8px 0 0}
.feat p{margin:0;font-size:14px;line-height:1.45;color:var(--text-2)}
.feat>a{margin-top:auto;padding-top:6px;font-size:14px;font-weight:600}
.ui{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:12px;min-height:158px;display:flex;flex-direction:column;gap:8px;font-size:12.5px;line-height:1.3;color:var(--text)}
.ui-top{display:flex;justify-content:space-between;align-items:center;gap:8px}.ui-top b{font-size:14px;font-family:var(--display);letter-spacing:-.01em}
.ui-top em{font-style:normal;font-size:11px;font-weight:600;padding:2px 8px;border-radius:99px;background:var(--sand);color:var(--text-2)}
.ui-top em.ok{background:#D5F2E9;color:#0F766E}
.ui-sub{color:var(--text-3);font-size:12px;margin-top:-4px}
.ui-steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.ui-steps li{position:relative;padding:6px 10px 6px 30px;border-radius:10px;background:var(--white);border:1px solid var(--line)}
.ui-steps li:before{content:"";position:absolute;left:9px;top:50%;width:14px;height:14px;margin-top:-7px;border-radius:50%;border:2px solid var(--line-dark);box-sizing:border-box}
.ui-steps li.d:before{background:var(--verified-ink);border-color:var(--verified-ink)}
.ui-steps li.d:after{content:"";position:absolute;left:13px;top:50%;width:6px;height:3px;margin-top:-4px;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(-45deg)}
.ui-steps li.n{border-color:var(--signal);font-weight:600}.ui-steps li.n:before{border-color:var(--signal)}
.ui-rows{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.ui-rows li{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:7px 10px;border-radius:10px;background:var(--white);border:1px solid var(--line)}
.ui-rows li span{color:var(--text-2);font-weight:600;white-space:nowrap}
.ui-rows.jobs li{flex-direction:column;align-items:flex-start;gap:1px}.ui-rows.jobs b{font-size:13.5px}
.ui-btn{display:inline-block;font-style:normal;font-size:12px;font-weight:600;padding:5px 12px;border-radius:99px;background:var(--ink);color:var(--paper);text-align:center}
.ui-btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--line-dark)}
.ui-btn.wide{display:block;padding:8px 12px;border-radius:10px;background:var(--signal);color:#1a0d05}
.ui-btns{display:flex;gap:6px;flex-wrap:wrap;margin-top:2px}
.chips{display:flex;gap:6px;flex-wrap:wrap}.chips span{padding:4px 10px;border-radius:99px;border:1px solid var(--line-dark);background:var(--white)}.chips span.on{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.ui-line{padding:7px 10px;border-radius:10px;background:var(--white);border:1px solid var(--line);font-weight:600}
.ui-two{display:grid;grid-template-columns:96px minmax(0,1fr);gap:8px}
.ui-tabs{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.ui-tabs li{padding:6px 9px;border-radius:9px;font-weight:600;color:var(--text-2)}.ui-tabs li.on{background:var(--ink);color:var(--paper)}
.ui-tiles{display:grid;grid-template-columns:1fr 1fr;gap:6px}.ui-tiles span{padding:10px 8px;border-radius:10px;background:var(--white);border:1px solid var(--line);font-weight:600}
.ui-ask{display:flex;flex-direction:column;gap:2px;padding:9px 11px;border-radius:12px;background:var(--white);border:1px solid var(--line)}
.ui-ask i{font-style:normal;font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--rust);font-weight:600}
.ui-ask b{font-size:13.5px}.ui-ask span{color:var(--text-3);font-size:12px}
.ui-bubble{align-self:flex-start;padding:7px 11px;border-radius:14px 14px 14px 4px;background:#D9FDD3;color:#0b3d1c;font-size:12px;font-weight:600}
@media (max-width:960px){.feat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:620px){.feat-grid{grid-template-columns:minmax(0,1fr)}}
/* the ending line */
.close-line{margin:0;font-family:var(--display);font-size:clamp(18px,2vw,24px);font-weight:700;letter-spacing:-.01em;color:var(--on-dark-2);max-width:460px}
.slides{isolation:isolate}
/* the slide controls get their own strip at the bottom of the banner, so they never sit on top of the content */
.slide{padding-bottom:calc(clamp(18px,2.2vw,30px) + 50px)}
.slide-ctrl{bottom:10px;right:14px;gap:6px}
.slide-ctrl .slide-pause,.slide-ctrl .slide-arrow{width:36px;height:36px}
@media (max-width:720px){.slide{padding-bottom:calc(22px + 50px)}}

/* landing page: the same 16px between every card, banner to footer */
body.home #how{padding:16px 0 0}
body.home .closing.dark{padding:16px 0 0}
body.home .gf{margin-top:16px}
body.home .closing.dark>.wrap{padding-top:26px;padding-bottom:26px}
body.home .closing .row{flex-wrap:nowrap;gap:16px 32px}
body.home .closing h2{font-size:clamp(26px,3vw,40px);max-width:none}
body.home .close-line{max-width:420px;font-size:clamp(16px,1.6vw,21px);text-align:right}
@media (max-width:720px){body.home .closing .row{flex-wrap:wrap}body.home .close-line{text-align:left;max-width:none}}
/* the three tallest slides give back a little height, so the banner is only as tall as the audience slides need and the others have little spare room */
.s-wide .slide-h{font-size:clamp(22px,2.1vw,29px)}
.s-wide .slide-copy>p{font-size:14px;margin-top:4px}
.s-wide .pill-ink{margin-bottom:4px}
.s-wide .wide-row{gap:8px 24px}
.s-wide .hero-actions{margin-top:0}
.apps-slide{gap:6px 6px}
.apps-slide .app{width:42px;height:42px;border-radius:12px}.apps-slide .app svg{width:21px;height:21px}
.apps-slide a{font-size:11.5px;gap:4px}
.s-sand:not(.s-wide) .slide-art{zoom:.78}
.s-paper .slide-art{zoom:.84}
.slide.s-paper .slide-copy>p{margin-top:6px}
.s-paper .counters{margin-top:10px}
/* banner: content starts 16px from the top on every slide; the little spare room that is left sits at the bottom, level with the controls */
.slide{align-content:flex-start;padding-top:16px;padding-bottom:66px}
@media (max-width:720px){.slide{padding-top:16px;padding-bottom:66px}}

/* the closing card's rotating line: all messages stacked in one place (so the card never changes height), one visible, each arriving its own way */
.close-rotor{display:grid;width:min(100%,430px);text-align:right}
.close-rotor .close-line{grid-area:1/1;margin:0;max-width:none;opacity:0;visibility:hidden}
.close-rotor .close-line.on{opacity:1;visibility:visible}
.close-rotor .fx-zoom.on{animation:cr-zoom .7s cubic-bezier(.2,.9,.25,1.1) both}
.close-rotor .fx-words.on span{display:inline-block;opacity:0;animation:cr-word .5s ease forwards;animation-delay:calc(var(--i) * .13s)}
.close-rotor .fx-wipe.on{animation:cr-wipe 1s cubic-bezier(.6,0,.2,1) both}
.close-rotor .fx-rise.on{animation:cr-rise .7s cubic-bezier(.2,.8,.2,1) both}
.close-rotor .fx-blur.on{animation:cr-blur .9s ease both}
.close-rotor .fx-flip.on{transform-origin:50% 0;animation:cr-flip .8s cubic-bezier(.2,.8,.2,1) both}
.close-rotor .fx-bounce.on{animation:cr-bounce .9s cubic-bezier(.3,1.4,.5,1) both}
.close-rotor .fx-slide.on{animation:cr-slide .7s cubic-bezier(.2,.8,.2,1) both}
@keyframes cr-zoom{from{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}
@keyframes cr-word{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes cr-wipe{from{opacity:1;clip-path:inset(0 0 0 100%)}to{opacity:1;clip-path:inset(0 0 0 0)}}
@keyframes cr-rise{from{opacity:0;transform:translateY(100%);clip-path:inset(0 0 100% 0)}to{opacity:1;transform:none;clip-path:inset(0)}}
@keyframes cr-blur{from{opacity:0;filter:blur(12px)}to{opacity:1;filter:blur(0)}}
@keyframes cr-flip{from{opacity:0;transform:perspective(500px) rotateX(-95deg)}to{opacity:1;transform:perspective(500px) rotateX(0)}}
@keyframes cr-bounce{0%{opacity:0;transform:translateY(-46px)}55%{opacity:1;transform:translateY(8px)}75%{transform:translateY(-4px)}100%{opacity:1;transform:none}}
@keyframes cr-slide{from{opacity:0;transform:translateX(-60px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.close-rotor .close-line.on,.close-rotor .fx-words.on span{animation:none!important;opacity:1}}
@media (max-width:720px){.close-rotor{text-align:left;width:100%}}
/* fixed boxes: nothing in the closing card can change size while its line rotates, so the footer below never moves */
html{scrollbar-gutter:stable}
body.home .closing.dark>.wrap{min-height:88px;box-sizing:border-box}
body.home .closing .row{align-items:center}
body.home .close-rotor{flex:0 0 430px;width:430px;max-width:100%;height:58px;align-items:center;contain:layout;overflow:visible}
body.home .close-rotor .close-line{width:100%}
@media (max-width:720px){body.home .close-rotor{flex:0 0 auto;width:100%;height:88px;align-items:start}}
body.home .closing.dark>.wrap{padding-top:16px;padding-bottom:16px;min-height:0}

/* readable labels on light pages: the teal label and the "last updated" line were too faint on the paper background */
.toc .mono-label,.prose-wrap .mono-label{color:var(--verified-ink)}
.prose .fine,.prose-wrap .fine{color:var(--text-3)}
.card:not(.inverse) .mono-label{color:var(--verified-ink)}

/* the website link in the footer's last line looks like the text around it, underlined */
.gf-fine a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.gf-fine a:hover{color:#fff}

/* How it works cards: the whole card is the link (the link's own area stretches over the card), so a click or tap anywhere on it goes to the app */
.feat-grid .feat{position:relative;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}
.feat-grid .feat > a::after{content:"";position:absolute;inset:0;border-radius:inherit}
.feat-grid .feat:hover{transform:translateY(-2px);box-shadow:0 14px 28px -16px rgba(15,20,25,.35)}
.feat-grid .feat:hover > a{text-decoration:underline}
.feat-grid .feat > a:focus-visible::after{outline:3px solid var(--signal);outline-offset:-3px}
