/* =============================================================================
   RWAddress™ — coming-soon.css  (approved v15 design, ported verbatim)
   Standalone styles for the Coming Soon / teaser page. The wired-form plumbing
   styles (email feedback, honeypot, legal, disabled button) are appended at the
   end — they are NOT part of the mockup but are required by cs-form.js.
   ============================================================================= */

/* Brand vars — the standalone v15 page does not load main.css, so define the few
   custom props the JS-injected success state (cs-form.js _showSuccess) references. */
:root{--blue:#4f46e5;--text-muted:#5a6b86}
*{margin:0;padding:0;box-sizing:border-box}
html,body{height:100%}
body{font-family:'Open Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;color:#0a1834;background:#ffffff;overflow-x:hidden;min-height:100vh;position:relative}

.sky{position:fixed;inset:0;z-index:0;background:#ffffff}
.sky::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 25% 12%,rgba(46,123,255,.07),transparent 45%),radial-gradient(circle at 85% 80%,rgba(124,58,237,.06),transparent 45%);animation:lightDrift 20s ease-in-out infinite}
@keyframes lightDrift{0%,100%{transform:translateX(0)}50%{transform:translateX(7%)}}

.wrap{position:relative;z-index:5}
header{display:flex;align-items:center;justify-content:flex-start;padding:26px 24px}
.logo{display:flex;align-items:center;gap:11px;text-decoration:none}
.logo svg{filter:drop-shadow(0 2px 8px rgba(46,123,255,.3))}
.logo span{font-size:25px;font-weight:800;color:#0a1834;letter-spacing:-.5px}
.logo span sup{font-size:12px;font-weight:700;opacity:.7;color:#2e7bff}

main{max-width:820px;margin:0 auto;padding:18px 24px 90px;text-align:center}

.badge{display:inline-flex;align-items:center;gap:12px;padding:14px 32px;border-radius:999px;background:rgba(79,70,229,.1);border:1.5px solid rgba(79,70,229,.4);font-size:17px;font-weight:800;letter-spacing:3.5px;color:#4f46e5;margin-bottom:34px;box-shadow:0 6px 24px rgba(79,70,229,.18);animation:badgePulse 2.6s ease-in-out infinite}
.badge .dot{width:11px;height:11px;border-radius:50%;background:#6366f1;box-shadow:0 0 14px #6366f1;animation:dotBlink 1.4s ease-in-out infinite}
@keyframes badgePulse{0%,100%{box-shadow:0 6px 24px rgba(79,70,229,.18)}50%{box-shadow:0 6px 32px rgba(99,102,241,.4)}}
@keyframes dotBlink{0%,100%{opacity:1}50%{opacity:.3}}

h1{font-size:clamp(38px,7vw,74px);line-height:1.25;font-weight:800;letter-spacing:-2px;margin-bottom:28px;padding-bottom:6px;overflow:visible}
/* background-clip:text crops glyph descenders when the line box is tight, so the
   gradient lines get a looser line-height + padding-bottom (extends the painted
   box past the baseline) + overflow:visible. .l1 also gets a gap below so "digital
   layer" descenders never meet line 2 (which floats on its own animation). */
h1 .l1{display:block;line-height:1.25;padding-bottom:0.14em;margin-bottom:10px;overflow:visible;
  background:linear-gradient(100deg,#2563eb,#4f46e5,#7c3aed);background-size:200% auto;
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
  filter:drop-shadow(0 6px 14px rgba(79,70,229,.28));
  animation:textShine 7s linear infinite, floatA 6s ease-in-out infinite;
}
h1 .l2{display:block;line-height:1.25;overflow:visible;color:#a5b4cf;font-weight:700;
  filter:drop-shadow(0 4px 10px rgba(120,135,165,.18));
  animation:floatB 6s ease-in-out infinite;
}
h1 .yet{display:block;margin-top:8px;padding-bottom:0.1em;overflow:visible;font-size:1.12em;font-weight:800;
  background:linear-gradient(100deg,#f59e0b,#fbbf24,#f97316,#f59e0b);background-size:200% auto;
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
  filter:drop-shadow(0 8px 24px rgba(245,158,11,.5));
  animation:textShine 5s linear infinite, yetPop 2.4s ease-in-out infinite;transform-origin:center}
@keyframes textShine{from{background-position:200% center}to{background-position:0% center}}
@keyframes yetPop{0%,100%{transform:scale(1) rotate(0)}50%{transform:scale(1.1) rotate(-1.5deg)}}
@keyframes floatA{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
@keyframes floatB{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}

.sub{font-size:clamp(16px,2.2vw,20px);line-height:1.6;color:#334155;max-width:600px;margin:0 auto 30px;font-weight:500}

/* ===== CONTAINED OVERHEAD (DRONE) NEIGHBORHOOD ===== */
.scene{position:relative;width:100%;max-width:760px;margin:0 auto 38px;height:340px;border-radius:20px;overflow:hidden;box-shadow:0 18px 50px rgba(120,140,170,.3),inset 0 0 0 1px rgba(10,24,52,.08)}
/* blurred aerial layer */
.aerial{position:absolute;inset:-24px;filter:blur(6px) saturate(110%)}
.aerial svg{width:100%;height:100%;display:block}
/* slow drift to feel "live" */
.aerial{animation:droneDrift 26s ease-in-out infinite}
@keyframes droneDrift{0%,100%{transform:scale(1.06) translate(0,0)}50%{transform:scale(1.06) translate(-14px,-10px)}}

/* vignette so edges fade (no hard blur seam) */
.scene .vignette{position:absolute;inset:0;z-index:2;pointer-events:none;background:radial-gradient(ellipse at center,transparent 60%,rgba(120,140,170,.25))}

/* SHARP overlay for labels + signs */
.fx{position:absolute;inset:0;z-index:3}
.hLabel{position:absolute;transform:translate(-50%,-50%) scale(.8);opacity:0;background:#fff;border-radius:9px;padding:5px 11px;white-space:nowrap;font-size:13px;font-weight:800;box-shadow:0 4px 14px rgba(0,20,70,.4);transition:all .4s cubic-bezier(.2,.8,.3,1.4)}
.hLabel.show{opacity:1;transform:translate(-50%,-50%) scale(1)}
.hLabel::after{content:"";position:absolute;left:50%;bottom:-6px;transform:translateX(-50%);border:6px solid transparent;border-top-color:#fff}
/* overhead real-estate yard sign (post + sign board) */
.ySign{position:absolute;transform:translate(-50%,-100%) scale(.7);opacity:0;transition:all .45s cubic-bezier(.2,.8,.3,1.4);transform-origin:bottom center}
.ySign.show{opacity:1;transform:translate(-50%,-100%) scale(1)}
.ySign .frame{
  position:relative;display:inline-block;padding:3px;border-radius:4px;
  background:#5b3a1e;/* wood post/frame */
  box-shadow:0 4px 10px rgba(0,20,70,.5);
}
.ySign .board{
  color:#fff;font-size:11px;font-weight:800;letter-spacing:.3px;
  padding:5px 11px;border-radius:3px;white-space:nowrap;
  border:1.5px solid rgba(255,255,255,.85);
  text-shadow:0 1px 2px rgba(0,0,0,.3);
}
.ySign .post{width:3px;height:16px;background:#5b3a1e;margin:0 auto;border-radius:0 0 2px 2px;box-shadow:0 2px 4px rgba(0,20,70,.4)}

.pitch{font-size:clamp(17px,2.3vw,22px);line-height:1.5;margin-bottom:44px}
.pitch strong{display:block;font-weight:800;font-size:1.4em;margin-bottom:14px;
  background:linear-gradient(100deg,#2563eb,#4f46e5,#7c3aed);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
  filter:drop-shadow(0 5px 14px rgba(79,70,229,.3));}
.pitch .tags b{font-weight:800;color:#2563eb}
.pitch .tags b:nth-child(2){color:#4f46e5}
.pitch .tags b:nth-child(3){color:#7c3aed}
.pitch .tags b + b{margin-left:8px}

.card{position:relative;max-width:480px;margin:0 auto;padding:38px 32px;border-radius:28px;
  background:linear-gradient(135deg,rgba(255,255,255,.9),rgba(214,222,232,.55) 40%,rgba(176,189,206,.5) 70%,rgba(232,238,245,.85));
  backdrop-filter:blur(26px) saturate(160%);-webkit-backdrop-filter:blur(26px) saturate(160%);
  border:1px solid rgba(255,255,255,.9);
  box-shadow:
    0 30px 70px rgba(120,140,170,.35),
    0 2px 0 rgba(255,255,255,.9),
    inset 0 1px 2px rgba(255,255,255,1),
    inset 0 -2px 6px rgba(150,165,190,.4),
    inset 0 0 40px rgba(255,255,255,.3);
  text-align:left;overflow:hidden}
/* chrome specular sweep */
.card::before{content:"";position:absolute;top:0;left:-60%;width:60%;height:100%;background:linear-gradient(105deg,transparent,rgba(255,255,255,.7),transparent);transform:skewX(-18deg);animation:sheen 6s ease-in-out infinite}
@keyframes sheen{0%,70%{left:-60%}85%,100%{left:120%}}
/* bright top edge (metallic rim light) */
.card::after{content:"";position:absolute;top:0;left:8%;right:8%;height:1.5px;background:linear-gradient(90deg,transparent,rgba(255,255,255,1),transparent)}
.card h2{font-size:clamp(27px,4.2vw,35px);font-weight:800;text-align:center;margin-bottom:8px;letter-spacing:-.5px;color:#1a2744}
.card .lead{text-align:center;color:#5a6b86;font-size:14.5px;line-height:1.5;margin-bottom:26px}
.field{width:100%;padding:15px 17px;margin-bottom:13px;background:rgba(255,255,255,.96);border:1.5px solid rgba(176,189,206,.6);border-radius:13px;color:#0a1834;font-size:15px;transition:.2s}
.field::placeholder{color:#8696b0}
.field:focus{outline:none;border-color:#4f46e5;box-shadow:0 0 0 4px rgba(79,70,229,.2)}
.check{display:flex;gap:11px;align-items:flex-start;margin:6px 0 22px;cursor:pointer}
.check input{margin-top:3px;width:17px;height:17px;accent-color:#4f46e5;flex-shrink:0}
.check span{font-size:13px;line-height:1.45;color:#5a6b86}
.submit{width:100%;padding:18px;border:none;border-radius:13px;cursor:pointer;font-size:18px;font-weight:800;color:#fff;letter-spacing:.3px;background:linear-gradient(100deg,#2563eb,#4f46e5,#7c3aed,#4f46e5);background-size:200% auto;box-shadow:0 12px 30px rgba(79,70,229,.4);transition:.25s;animation:btnShine 4s linear infinite}
@keyframes btnShine{from{background-position:200% center}to{background-position:0% center}}
.submit:hover{transform:translateY(-2px);box-shadow:0 16px 40px rgba(124,58,237,.5)}

footer{position:relative;z-index:5;border-top:1px solid rgba(10,24,52,.12);padding:30px 24px;display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between;max-width:1100px;margin:30px auto 0}
.foot-brand{display:flex;align-items:center;gap:9px;font-weight:800;font-size:18px;color:#0a1834}
.foot-links{display:flex;flex-wrap:wrap;gap:20px}
.foot-links a{color:#5a6b86;text-decoration:none;font-size:13.5px}
.foot-links a:hover{color:#1652f0;text-decoration:underline}
/* Copyright/trademark line — matches the main site footer-bottom: two spans laid
   out space-between, separated by a top border. */
.foot-copy{width:100%;display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;border-top:1px solid rgba(10,24,52,.12);padding-top:16px;margin-top:14px;font-size:12px;color:#8696b0}
@media(max-width:560px){.card{padding:30px 22px}.scene{height:280px}footer{flex-direction:column;align-items:flex-start}}

/* ===== wired-form plumbing (NOT in the mockup — required by cs-form.js) ===== */
.cs-email-feedback{font-size:13px;margin:-8px 0 11px;min-height:15px;line-height:1.3}
.cs-email-feedback.is-ok{color:#0ea05a}
.cs-email-feedback.is-err{color:#c53030}
.cs-email-feedback a{color:#4f46e5;margin-left:4px;cursor:pointer}
.cf-turnstile{margin:4px 0 14px}
.cs-hp{position:absolute;left:-9999px;top:-9999px;width:0;height:0;overflow:hidden}
.cs-legal{font-size:12px;color:#8696b0;line-height:1.5;margin:14px 0 0;text-align:center}
.cs-legal a{color:#4f46e5}
.cs-form-error{color:#c53030;font-size:13px;margin:10px 0 0;text-align:center}
.submit:disabled{background:#a9b1e8;cursor:not-allowed;transform:none;box-shadow:none;animation:none}
