/* The Dibs app page (lib/landing.js). Restored from the Aug 31 marketing site,
 * minus its Tailwind import; nothing else on the site uses this sheet. */
:root { --ink:#080708; --paper:#f7f5ef; --blue:#3772ff; --yellow:#fdca40; --red:#df2935; --line:#deddd7; }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:Arial, Helvetica, sans-serif; }
a { color:inherit; text-decoration:none; }
.shell { width:min(1180px, calc(100% - 48px)); margin-inline:auto; }
.nav { height:88px; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid var(--line); }
.wordmark { font-size:31px; font-weight:900; letter-spacing:-2px; }
.wordmark span { color:var(--yellow); }
.nav-links { display:flex; align-items:center; gap:28px; font-size:14px; font-weight:700; }
.nav-cta { padding:12px 18px; color:white; background:var(--ink); border-radius:10px; }
.hero { min-height:calc(100vh - 88px); display:grid; grid-template-columns:1fr 0.92fr; gap:72px; align-items:center; padding-block:62px 78px; }
.eyebrow { display:flex; align-items:center; gap:9px; margin:0 0 24px; font:700 11px/1.2 monospace; letter-spacing:1.6px; color:#585752; }
.eyebrow i,.monitor-line i { width:7px; height:7px; display:inline-block; background:var(--blue); border-radius:50%; box-shadow:0 0 0 5px rgba(55,114,255,.12); }
h1 { margin:0; font-size:clamp(60px,7vw,98px); line-height:.9; letter-spacing:-6px; font-weight:900; }
h1 em { color:var(--blue); font-style:normal; }
.lede { max-width:570px; margin:30px 0 0; font-size:20px; line-height:1.55; color:#5d5b56; }
.hero-actions { display:flex; align-items:center; gap:28px; margin-top:36px; }
.button { display:inline-flex; align-items:center; gap:30px; padding:17px 21px; border-radius:12px; font-size:15px; font-weight:800; }
.button.primary { color:white; background:var(--blue); box-shadow:0 12px 30px rgba(55,114,255,.22); }
.button span { font-size:20px; }
.text-link { font-size:14px; font-weight:800; border-bottom:1px solid var(--ink); padding-bottom:4px; }
.proof-strip { display:flex; margin-top:54px; padding-top:23px; border-top:1px solid var(--line); }
.proof-strip div { display:flex; flex-direction:column; min-width:135px; padding-right:25px; margin-right:25px; border-right:1px solid var(--line); }
.proof-strip div:last-child { border:0; }
.proof-strip b { font-size:19px; letter-spacing:-.5px; }
.proof-strip span { margin-top:5px; color:#77746d; font:10px/1.2 monospace; text-transform:uppercase; letter-spacing:.7px; }
.product-stage { position:relative; min-height:650px; display:grid; place-items:center; }
.product-stage:before { content:""; position:absolute; width:500px; height:500px; border-radius:50%; background:var(--yellow); opacity:.88; }
.phone { position:relative; z-index:2; width:310px; height:630px; overflow:hidden; padding:17px 14px; color:var(--ink); background:#e6e8e6; border:8px solid var(--ink); border-radius:48px; box-shadow:0 32px 70px rgba(20,18,10,.27); transform:rotate(2deg); }
.phone-top { height:28px; display:flex; align-items:flex-start; justify-content:space-between; padding:0 9px; font-size:10px; font-weight:800; }
.phone-top i { width:74px; height:22px; border-radius:20px; background:var(--ink); position:absolute; top:10px; left:50%; transform:translateX(-50%); }
.app-head { margin:-2px -14px 0; padding:18px 18px 16px; background:var(--blue); color:white; display:flex; justify-content:space-between; align-items:center; }
.app-head div { display:flex; flex-direction:column; gap:4px; }
.app-head small,.monitor-line,.watch-row small,.push-card small { font:9px/1.3 monospace; letter-spacing:.7px; }
.app-head strong { font-size:24px; letter-spacing:-1px; }
.app-head button { width:36px; height:36px; border:0; border-radius:50%; background:var(--yellow); font-size:25px; }
.monitor-line { margin:0 -14px 12px; padding:9px 18px; background:var(--blue); color:#eaf0ff; border-top:1px solid rgba(255,255,255,.25); }
.monitor-line i { width:5px; height:5px; background:var(--yellow); box-shadow:none; margin-right:6px; }
.watch-card { background:white; border-radius:15px; padding:13px; margin-bottom:10px; border:1px solid #dfe1df; }
.watch-row { display:flex; align-items:center; gap:9px; }
.watch-row>div { display:flex; flex:1; flex-direction:column; gap:3px; }
.watch-row strong { font-size:12px; }
.watch-row small { color:#6b6963; }
.watch-row>b { min-width:20px; height:20px; border-radius:10px; text-align:center; padding-top:4px; background:var(--yellow); font-size:10px; }
.watch-icon { display:grid; place-items:center; width:31px; height:31px; border-radius:9px; color:white; background:var(--blue); font-weight:900; }
.watch-icon.red { background:var(--red); }
.mini-grid { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:13px; }
.listing { display:flex; flex-direction:column; gap:5px; font-size:8px; }
.listing .card-art { aspect-ratio:7/8; display:grid; place-items:center; border-radius:4px; color:white; font-size:21px; font-weight:900; letter-spacing:-1px; box-shadow:0 4px 9px #0003; }
.blue-card .card-art { background:linear-gradient(145deg,#6fa5ff,#133e9f); }
.gold-card .card-art { background:linear-gradient(145deg,#efca67,#8d5819); }
.listing span { font-size:13px; font-weight:900; }
.compact { padding-block:14px; }
.home-pill { position:absolute; width:92px; height:4px; border-radius:3px; background:var(--ink); bottom:10px; left:50%; transform:translateX(-50%); }
.push-card { position:absolute; z-index:4; width:320px; display:flex; gap:12px; align-items:center; bottom:67px; right:-10px; padding:14px; background:rgba(255,255,255,.94); border:1px solid #ddd; border-radius:18px; box-shadow:0 18px 45px rgba(0,0,0,.18); backdrop-filter:blur(12px); }
.push-icon { display:grid; place-items:center; width:43px; height:43px; flex:0 0 auto; border-radius:11px; background:var(--ink); color:var(--yellow); font-size:18px; font-weight:900; }
.push-card>div:last-child { display:flex; flex-direction:column; gap:3px; }
.push-card strong { font-size:12px; }
.push-card span { color:#67645e; font-size:11px; }
.signal-card { position:absolute; z-index:3; display:flex; flex-direction:column; gap:5px; font:700 10px/1 monospace; letter-spacing:1px; }
.signal-card span { font:bold 33px/1 Arial; letter-spacing:-2px; }
.signal-one { left:-5px; top:110px; transform:rotate(-5deg); }
.signal-two { right:-10px; top:58px; transform:rotate(5deg); }
@media (max-width:900px) { .hero { grid-template-columns:1fr; gap:44px; } .hero-copy { padding-top:20px; } .product-stage { min-height:650px; } .signal-one { left:8%; } .signal-two { right:8%; } }
@media (max-width:560px) { .shell { width:min(100% - 30px,1180px); } .nav { height:72px; } .nav-links>a:first-child { display:none; } .hero { padding-top:46px; } h1 { font-size:58px; letter-spacing:-4px; } .lede { font-size:17px; } .hero-actions { align-items:flex-start; flex-direction:column; gap:20px; } .proof-strip { justify-content:space-between; } .proof-strip div { min-width:0; padding-right:12px; margin-right:12px; } .proof-strip b { font-size:16px; } .product-stage { transform:scale(.9); margin-inline:-24px; } .signal-card { display:none; } .push-card { right:0; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }

.contrast-section { padding:112px 0 94px; color:white; background:var(--ink); }
.section-heading { max-width:720px; }
.section-heading .light { color:#aaa8a2; }
.section-heading .light i { background:var(--yellow); box-shadow:0 0 0 5px rgba(253,202,64,.12); }
.section-heading h2,.feature-copy h2,.launch h2 { margin:0; font-size:clamp(42px,5.2vw,72px); line-height:.98; letter-spacing:-4px; font-weight:900; }
.section-heading>p:last-child,.feature-copy>p,.launch>div>p:last-child { max-width:620px; margin:24px 0 0; color:#aaa8a2; font-size:18px; line-height:1.55; }
.value-board { display:grid; grid-template-columns:repeat(3,1fr); margin-top:70px; border-top:1px solid #383735; }
.value-board article { min-height:275px; padding:28px 34px 30px 0; border-right:1px solid #383735; }
.value-board article+article { padding-left:34px; }
.value-board article:last-child { border-right:0; }
.value-board span { color:var(--yellow); font:10px monospace; letter-spacing:1px; }
.value-board strong { display:block; margin-top:54px; font-size:24px; line-height:1.05; letter-spacing:-.7px; }
.value-board p { max-width:310px; margin:18px 0 0; color:#aaa8a2; font-size:15px; line-height:1.55; }
.steps { padding-block:118px; }
.section-heading.dark h2 { max-width:760px; }
.step-grid { display:grid; grid-template-columns:repeat(3,1fr); margin-top:68px; border-top:1px solid var(--line); }
.step-grid article { position:relative; padding:28px 36px 18px 0; border-right:1px solid var(--line); }
.step-grid article+article { padding-left:36px; }
.step-grid article:last-child { border:0; }
.step-grid article>span { color:#88857e; font:11px monospace; }
.step-shape { width:100%; height:180px; display:grid; place-items:center; margin:22px 0 28px; color:white; background:var(--blue); border-radius:18px; font-size:74px; font-weight:900; }
.search-shape { color:var(--yellow); font-family:Georgia,serif; }
.radar-shape { position:relative; overflow:hidden; background:var(--yellow); }
.radar-shape:before,.radar-shape:after { content:""; position:absolute; width:150px; height:150px; border:2px solid var(--ink); border-radius:50%; }
.radar-shape:after { width:80px; height:80px; }
.radar-shape i { z-index:1; width:15px; height:15px; background:var(--red); border-radius:50%; }
.alert-shape { position:relative; color:var(--yellow); background:var(--ink); }
.alert-shape b { position:absolute; top:40px; right:calc(50% - 60px); width:25px; height:25px; display:grid; place-items:center; color:white; background:var(--red); border-radius:50%; font-size:11px; }
.step-grid h3 { margin:0 0 12px; font-size:22px; letter-spacing:-.6px; }
.step-grid p { margin:0; color:#6e6b65; line-height:1.55; }
.features { padding-block:115px; background:#fff; }
.feature-grid { display:grid; grid-template-columns:1fr 480px; gap:100px; align-items:center; }
.feature-copy h2 { max-width:600px; }
.feature-copy>p { color:#65625d; }
.feature-copy ul { margin:40px 0 0; padding:0; list-style:none; }
.feature-copy li { display:flex; gap:15px; padding:20px 0; border-top:1px solid var(--line); }
.feature-copy li>i { display:grid; place-items:center; width:25px; height:25px; flex:0 0 auto; color:white; background:var(--blue); border-radius:50%; font-style:normal; font-size:12px; }
.feature-copy li span { color:#6e6b65; line-height:1.5; }
.feature-copy li b { display:block; color:var(--ink); margin-bottom:3px; }
.filter-demo { padding:26px; background:#e6e8e6; border:1px solid #d4d6d4; border-radius:28px; box-shadow:0 25px 60px rgba(20,20,18,.12); transform:rotate(1deg); }
.demo-head { display:flex; flex-direction:column; gap:7px; padding-bottom:21px; border-bottom:1px solid #cbcdcb; }
.demo-head span,.demo-group small,.price-fields small { font:9px monospace; letter-spacing:1px; }
.demo-head b { font-size:22px; letter-spacing:-.7px; }
.demo-group { margin-top:21px; }
.demo-group>small { display:block; margin-bottom:9px; color:#686660; }
.demo-group>button,.chips button { padding:11px 13px; background:white; border:1px solid #d8dad8; border-radius:9px; font-weight:700; }
.demo-group>button { width:100%; display:flex; justify-content:space-between; }
.chips { display:flex; gap:7px; flex-wrap:wrap; }
.chips .active { color:white; background:var(--blue); border-color:var(--blue); }
.price-fields { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:21px; }
.price-fields label { display:flex; flex-direction:column; gap:8px; }
.price-fields span { padding:12px; background:white; border:1px solid #d8dad8; border-radius:9px; }
.demo-save { display:flex; justify-content:space-between; margin-top:25px; padding:16px; color:white; background:var(--blue); border-radius:12px; font-weight:800; }
.launch { display:grid; grid-template-columns:1fr 330px; align-items:center; gap:90px; padding-block:120px; }
.launch h2 { max-width:760px; }
.launch>div>p:last-child { color:#65625d; }
.store-card { display:flex; align-items:center; gap:15px; padding:22px 28px; color:white; background:var(--ink); border-radius:17px; box-shadow:10px 10px 0 var(--yellow); transform:rotate(-2deg); }
.apple-mark { font-size:30px; color:white; }
.store-card>span:last-child { display:flex; flex-direction:column; }
.store-card small { font:9px monospace; letter-spacing:.8px; }
.store-card b { font-size:25px; }
footer { background:var(--yellow); }
.footer-inner { min-height:150px; display:grid; grid-template-columns:1fr 1fr 1fr; align-items:center; }
.footer-inner p { text-align:center; font-weight:800; }
.footer-inner>div { display:flex; justify-content:flex-end; gap:24px; font-size:12px; }
.footer-inner>div a { text-decoration:underline; }
@media (max-width:900px) {
  .step-grid,.feature-grid { grid-template-columns:1fr; }
  .step-grid article,.step-grid article+article { padding:28px 0; border-right:0; border-bottom:1px solid var(--line); }
  .step-shape { max-width:500px; }
  .feature-grid { gap:60px; } .filter-demo { max-width:560px; }
  .launch { grid-template-columns:1fr; gap:50px; } .store-card { max-width:330px; }
}
@media (max-width:560px) {
  .contrast-section,.steps,.features { padding-block:80px; }
  .section-heading h2,.feature-copy h2,.launch h2 { font-size:43px; letter-spacing:-2.5px; }
  .value-board { grid-template-columns:1fr; }
  .value-board article,.value-board article+article { min-height:0; padding:28px 0; border-right:0; border-bottom:1px solid #383735; }
  .value-board strong { margin-top:24px; }
  .launch { padding-block:80px; }
  .footer-inner { grid-template-columns:1fr 1fr; padding-block:35px; gap:18px; }
  .footer-inner p { display:none; } .footer-inner>div { flex-direction:column; align-items:flex-end; gap:8px; }
}

.footer-note { padding:0 0 28px; font-size:11px; line-height:1.5; color:#5b4a12; }
.footer-note p { max-width:760px; margin:0; }
.nav-quiet { color:#585752; }
@media (max-width:560px) { .nav-quiet { display:none; } }
/* Between the one-column layout and a wide screen the stage is too narrow for
 * the floating labels; they would sit on top of the phone. */
@media (min-width:901px) and (max-width:1180px) { .signal-card { display:none; } }
