:root{
    /* deepened DentalDoor teal — clinical-premium, not black, not cream */
    --deep:#0b2831; --deep-2:#103642; --deep-3:#16495a;
    --teal:#369dbf; --teal-bright:#5fd0e6; --teal-ink:#1f6f89;
    --paper:#fbfcfd; --ink:#0e2027; --ink-2:#4a5f68; --ink-3:#8aa0a8;
    --line:#e4ebee; --line-2:#eef3f4;
    --mint:#3fbf95; --mint-wash:#e7f7f0;
    --gold:#d8b56b;
    --shadow-lg:0 30px 70px rgba(4,22,28,.28),0 8px 24px rgba(4,22,28,.14);
    --shadow-sm:0 1px 2px rgba(14,32,39,.06),0 2px 8px rgba(14,32,39,.05);
    --serif:"Iowan Old Style","Palatino Linotype",Palatino,"Book Antiqua",Georgia,serif;
    --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  }
  *{box-sizing:border-box}
  html{-webkit-text-size-adjust:100%}
  body{margin:0;font-family:var(--sans);color:var(--ink);background:var(--deep);-webkit-font-smoothing:antialiased;line-height:1.5}
  ::selection{background:var(--teal-bright);color:var(--deep)}
  a{color:inherit}

  /* ---------- Shell: two-column split ---------- */
  .stage{min-height:100vh;display:grid;grid-template-columns:1.5fr 1fr}
  @media(max-width:940px){.stage{grid-template-columns:1fr;min-height:0}}

  /* ---------- Left: the thesis ---------- */
  .story{
    position:relative;overflow:hidden;color:#eaf6fa;
    padding:54px 60px;display:flex;flex-direction:column;
    background:
      radial-gradient(120% 90% at 12% 0%, #164b5c 0%, transparent 55%),
      radial-gradient(90% 80% at 100% 100%, #0e3a47 0%, transparent 60%),
      linear-gradient(160deg,#0b2831,#0b2831 40%,#09222a);
  }
  @media(max-width:940px){.story{padding:40px 26px 46px;min-height:640px}}
  @media(max-width:520px){.story{padding:34px 20px 40px;min-height:600px}}
  /* mobile: map lives in the upper zone above the bottom-anchored copy */
  @media(max-width:940px){.netgraph svg{top:26%;left:52%;width:170%;min-height:0}}
  @media(max-width:520px){.netgraph svg{top:24%;left:52%;width:185%}}

  /* ---- US expansion map (the hero, behind the copy) ---- */
  .netgraph{position:absolute;inset:0;pointer-events:none;z-index:1;overflow:hidden}
  .netgraph svg{position:absolute;top:33%;left:60%;transform:translate(-50%,-50%);width:120%;height:auto;min-height:88%;transition:transform 1.1s cubic-bezier(.25,.8,.25,1)}
  @media(prefers-reduced-motion:reduce){.netgraph svg{transition:none}}
  /* dotted US outline */
  .us-outline{fill:none;stroke:#3f93ab;stroke-width:1.6;opacity:.42;stroke-dasharray:2 6;stroke-linecap:round;stroke-linejoin:round}
  .us-fill{fill:#0e2f3a;opacity:.28}
  /* connection lines between cities */
  .link{stroke:#3a8aa3;stroke-width:1;opacity:.22;fill:none}
  .link.warm{stroke:#5fd0e6;opacity:.4}
  /* city nodes */
  .city{fill:#123c49;stroke:#5aa6bd;stroke-width:1.3}
  .city-dot{fill:#6fb9cd}
  .city-glow{fill:#5fd0e6;opacity:.08}
  /* anchor (Houston) / selected city */
  .anchor-halo{fill:#5fd0e6;opacity:.14}
  .anchor-ring{fill:none;stroke:#5fd0e6;stroke-width:1.5;opacity:.55}
  .anchor-core{fill:#5fd0e6}
  /* location pin sitting above a city node (stroked circle + stem) */
  .city-pin .pin-stroke{fill:none;stroke:#8fe6f7;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
  @keyframes pinFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
  @keyframes pinDrop{0%{transform:translateY(-10px);opacity:0}60%{transform:translateY(2px);opacity:1}100%{transform:translateY(0);opacity:1}}
  .city-label{fill:#bfeefb;font:600 12px var(--sans);letter-spacing:.2px}
  .pulse-dot{fill:#8fe6f7}
  /* calm state: when a city is selected, non-selected nodes dim */
  .map-calm .city,.map-calm .city-dot,.map-calm .city-glow{transition:opacity .6s ease}
  .map-calm .city.dim,.map-calm .city-dot.dim,.map-calm .city-glow.dim{opacity:.35}
  .map-calm .link{transition:opacity .6s ease}
  .map-calm .link.dim{opacity:.08}

  @keyframes anchpulse{0%{r:16;opacity:.55}70%{r:40;opacity:0}100%{r:40;opacity:0}}
  @keyframes nodeShimmer{0%,100%{opacity:1}50%{opacity:.5}}
  @keyframes linkGlow{0%,100%{opacity:.22}50%{opacity:.4}}

  .brand{display:inline-flex;align-items:center;position:relative;z-index:3;text-decoration:none;transition:opacity .15s ease}
  .brand:hover{opacity:.9}
  .brand:focus-visible{outline:2px solid var(--teal-bright);outline-offset:4px;border-radius:4px}
  .brand .brand-logo{height:38px;width:auto;display:block;max-width:100%}
  @media(max-width:520px){.brand .brand-logo{height:30px}}

  .story-body{margin-top:auto;position:relative;z-index:3;max-width:46ch}
  .lede{font-size:15.5px;line-height:1.6;color:#bcd6de;margin:0 0 26px;font-family:var(--sans);max-width:42ch}
  .lede b{color:#eaf6fa;font-weight:600}

  .proof{display:flex;flex-direction:column;gap:12px;margin-top:4px}
  .pf{display:flex;gap:11px;align-items:baseline}
  .pf .dotmark{width:6px;height:6px;border-radius:50%;background:var(--teal-bright);flex:none;position:relative;top:-1px;box-shadow:0 0 8px rgba(95,208,230,.6)}
  .pf .tx{font-size:13px;line-height:1.5;color:#9fbdc7}
  .pf .tx b{color:#eaf6fa;font-weight:650}
  .eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:600;letter-spacing:.4px;color:var(--teal-bright);background:rgba(95,208,230,.1);border:1px solid rgba(95,208,230,.22);padding:7px 13px;border-radius:100px;margin-bottom:26px;white-space:nowrap}
  .eyebrow .eyebrow-tx{white-space:nowrap} .eyebrow b{font-weight:750}
  .eyebrow .pulse{width:7px;height:7px;border-radius:50%;background:var(--teal-bright);box-shadow:0 0 0 0 rgba(95,208,230,.6);animation:pulse 2.4s infinite}
  @keyframes pulse{0%{box-shadow:0 0 0 0 rgba(95,208,230,.5)}70%{box-shadow:0 0 0 9px rgba(95,208,230,0)}100%{box-shadow:0 0 0 0 rgba(95,208,230,0)}}

  h1{font-family:var(--serif);font-weight:700;font-size:52px;line-height:1.06;letter-spacing:-1.4px;margin:0 0 18px;color:#fff;white-space:nowrap}
  h1 .em{font-style:italic;color:var(--teal-bright)}
  @media(max-width:520px){h1{font-size:30px}}
  @media(max-width:520px){.eyebrow{display:none}}

  .scrim{position:absolute;inset:0;z-index:2;pointer-events:none;background:
    linear-gradient(105deg, rgba(9,34,42,.92) 0%, rgba(9,34,42,.72) 34%, rgba(9,34,42,.30) 62%, rgba(9,34,42,.12) 100%)}

  .story-foot{margin-top:38px;position:relative;z-index:3;font-size:12px;color:#6f9aa8;display:flex;align-items:center;gap:9px}
  .story-foot .dot{width:4px;height:4px;border-radius:50%;background:#4a7484}

  /* ---------- Right: the form ---------- */
  .panel{background:var(--paper);display:flex;align-items:center;justify-content:center;padding:48px 52px}
  @media(max-width:940px){.panel{padding:34px 26px 44px}}
  @media(max-width:520px){.panel{padding:28px 20px 40px}}
  .form-wrap{width:100%;max-width:400px}

  .greet{margin-bottom:26px}
  .greet .hi{font-size:12.5px;font-weight:650;color:var(--teal-ink);letter-spacing:.2px;margin-bottom:7px;display:flex;align-items:center;gap:7px}
  .greet .hi svg{width:15px;height:15px}
  .greet h2{font-family:var(--serif);font-weight:600;font-size:25px;letter-spacing:-.3px;margin:0 0 6px;line-height:1.15}
  .greet p{margin:0;font-size:13.5px;color:var(--ink-2);line-height:1.55}

  form{display:flex;flex-direction:column;gap:15px}
  .field{display:flex;flex-direction:column;gap:6px}
  .field label{font-size:12.5px;font-weight:650;color:var(--ink);display:flex;align-items:center;gap:7px}
  .field .opt{font-weight:500;color:var(--ink-3);font-size:11.5px}
  .field input{
    font-family:var(--sans);font-size:14px;color:var(--ink);background:#fff;
    border:1px solid var(--line);border-radius:11px;padding:12px 14px;transition:border-color .15s,box-shadow .15s;width:100%;
  }
  .field input::placeholder{color:var(--ink-3)}
  .field input:focus{outline:0;border-color:var(--teal);box-shadow:0 0 0 3px rgba(54,157,191,.14)}
  .field.prefilled input{background:var(--teal-wash,#eef7fa);background:#eef7fa;border-color:#cfe6ee}
  .field .hint{font-size:11px;color:var(--ink-3);display:flex;align-items:center;gap:5px;margin-top:1px}
  .field .hint svg{width:12px;height:12px}

  .row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
  @media(max-width:400px){.row2{grid-template-columns:1fr}}

  /* ---- custom combobox (city / office) ---- */
  .combo{position:relative}
  .combo-btn{width:100%;display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);border-radius:11px;padding:12px 14px;font-family:var(--sans);font-size:14px;color:var(--ink);cursor:pointer;transition:border-color .15s,box-shadow .15s;text-align:left}
  .combo-btn:hover{border-color:#cfdbe0}
  .combo-btn:focus-visible{outline:0;border-color:var(--teal);box-shadow:0 0 0 3px rgba(54,157,191,.14)}
  .combo.open .combo-btn{border-color:var(--teal);box-shadow:0 0 0 3px rgba(54,157,191,.14)}
  .combo-btn .ci{width:17px;height:17px;color:var(--teal-ink);flex:none}
  .combo-btn .combo-val{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .combo-btn .combo-val.placeholder{color:var(--ink-3)}
  .combo-btn .chev{width:17px;height:17px;color:var(--ink-3);flex:none;transition:transform .18s}
  .combo.open .combo-btn .chev{transform:rotate(180deg)}
  .combo.locked .combo-btn{background:var(--line-2);cursor:not-allowed;color:var(--ink-3)}
  .combo.locked .combo-btn .ci{color:var(--ink-3)}
  .combo.chosen .combo-btn .ci{color:var(--mint)}

  .combo-pop{position:absolute;top:calc(100% + 6px);left:0;right:0;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-lg);z-index:30;padding:6px;display:none;animation:pop .14s ease}
  .combo.open .combo-pop{display:block}
  @keyframes pop{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
  .combo-search{display:flex;align-items:center;gap:8px;padding:7px 9px;border-bottom:1px solid var(--line-2);margin-bottom:4px}
  .combo-search svg{width:15px;height:15px;color:var(--ink-3);flex:none}
  .combo-search input{border:0;outline:0;font-family:var(--sans);font-size:13.5px;width:100%;color:var(--ink);background:transparent}
  .combo-list{max-height:210px;overflow-y:auto}
  .combo-opt{display:flex;align-items:center;gap:10px;padding:10px 11px;border-radius:8px;cursor:pointer;font-size:13.5px}
  .combo-opt:hover,.combo-opt.active{background:var(--teal-wash,#eef7fa);background:#eef7fa}
  .combo-opt .nm{font-weight:600;color:var(--ink)} .combo-opt .sub{color:var(--ink-3);font-size:12px;margin-left:auto}
  .combo-opt .ck{width:16px;height:16px;color:var(--mint);flex:none;opacity:0} .combo-opt.sel .ck{opacity:1}
  .combo-empty{padding:14px 11px;font-size:12.5px;color:var(--ink-3);text-align:center}
  .combo-add{width:100%;display:flex;align-items:center;gap:9px;justify-content:center;margin-top:4px;padding:11px;border:1px dashed var(--line);background:var(--paper);border-radius:9px;font-family:var(--sans);font-size:12.5px;font-weight:650;color:var(--teal-ink);cursor:pointer}
  .combo-add:hover{border-color:var(--teal);background:#eef7fa}
  .combo-add svg{width:14px;height:14px}

  /* reveal animation for detail block */
  #detailBlock[hidden],#officeTypeField[hidden]{display:none}
  #detailBlock,#officeTypeField{animation:reveal .25s ease}
  @keyframes reveal{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
  #detailBlock{display:flex;flex-direction:column;gap:15px}
  .prefill-tag{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:650;color:var(--mint);background:var(--mint-wash);padding:3px 9px;border-radius:20px;margin-bottom:2px}
  .prefill-tag svg{width:12px;height:12px}
  .field.prefilled input{background:#eef7fa;border-color:#cfe6ee}

  .submit.muted{background:linear-gradient(135deg,#9cc4d0,#8fb7c2);box-shadow:none}
  .submit.muted:hover{filter:none;transform:none;box-shadow:none}
  .form-hint{margin:10px 0 0;font-size:12.5px;font-weight:600;color:var(--amber,#c2760b);text-align:center;display:none;align-items:center;justify-content:center;gap:6px}
  .form-hint.on{display:flex;animation:reveal .2s ease}
  .form-hint::before{content:"";width:14px;height:14px;flex:none;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 8v5M12 16h.01'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 8v5M12 16h.01'/%3E%3C/svg%3E") center/contain no-repeat}

  .submit{
    margin-top:6px;border:0;cursor:pointer;font-family:var(--sans);font-weight:700;font-size:14.5px;color:#fff;
    background:linear-gradient(135deg,#3aa6c8,#2b7f9c);border-radius:12px;padding:15px;
    display:flex;align-items:center;justify-content:center;gap:9px;transition:filter .15s,transform .12s,box-shadow .15s;
    box-shadow:0 8px 20px rgba(43,127,156,.32);
  }
  .submit:hover{filter:brightness(1.05);transform:translateY(-1px);box-shadow:0 12px 26px rgba(43,127,156,.4)}
  .submit:active{transform:translateY(0)}
  .submit svg{width:17px;height:17px}

  .reassure{margin-top:14px;font-size:11.5px;color:var(--ink-3);line-height:1.55;text-align:center;display:flex;align-items:center;justify-content:center;gap:7px}
  .reassure svg{width:13px;height:13px;flex:none;color:var(--mint)}

  /* ---------- Success state ---------- */
  .success{display:none;text-align:center;animation:rise .4s cubic-bezier(.2,.8,.2,1)}
  .success.on{display:block}
  form.gone,.greet.gone{display:none}
  @keyframes rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
  .success .seal{width:74px;height:74px;border-radius:50%;background:var(--mint-wash);display:grid;place-items:center;margin:0 auto 20px;position:relative}
  .success .seal svg{width:36px;height:36px;color:var(--mint)}
  .success .seal::after{content:"";position:absolute;inset:-6px;border-radius:50%;border:1.5px solid var(--mint);opacity:.3}
  .success h2{font-family:var(--serif);font-weight:600;font-size:26px;letter-spacing:-.3px;margin:0 0 10px}
  .success p{font-size:14px;color:var(--ink-2);line-height:1.6;margin:0 auto 22px;max-width:32ch}
  .success p b{color:var(--ink)}
  .success .card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:4px 18px;text-align:left;box-shadow:var(--shadow-sm);margin-bottom:8px}
  .success .card .r{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid var(--line-2);font-size:13px}
  .success .card .r:last-child{border-bottom:0}
  .success .card .r span{color:var(--ink-3)} .success .card .r b{font-weight:650}
  .success .foot{font-size:11.5px;color:var(--ink-3);margin-top:16px;line-height:1.55}

  /* what happens next */
  .next{text-align:left;margin-top:18px}
  .next-h{font-size:11px;font-weight:750;letter-spacing:.5px;text-transform:uppercase;color:var(--ink-3);margin-bottom:12px}
  .nstep{display:flex;gap:12px;align-items:flex-start;padding:2px 0 12px}
  .nstep .ndot{width:24px;height:24px;border-radius:50%;background:var(--teal-wash,#eef7fa);background:#eef7fa;color:var(--teal-ink);display:grid;place-items:center;font-weight:800;font-size:12px;flex:none}
  .nstep b{font-size:13.5px;font-weight:650;display:block} .nstep span{font-size:12.5px;color:var(--ink-2);line-height:1.5}

  /* share module */
  .share{text-align:left;margin-top:8px;padding-top:20px;border-top:1px solid var(--line-2)}
  .share-h{display:flex;align-items:center;gap:9px;font-size:14px;font-weight:700;letter-spacing:-.2px}
  .share-h svg{width:17px;height:17px;color:var(--teal-ink);flex:none}
  .share-sub{font-size:12.5px;color:var(--ink-2);line-height:1.5;margin:6px 0 14px}
  .success .share-sub{margin:6px 0 14px;max-width:none}
  .copy-row{display:flex;gap:8px;margin-bottom:11px}
  .copy-row input{flex:1;min-width:0;font-family:var(--sans);font-size:12.5px;color:var(--ink-2);background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:11px 13px}
  .copy-row input:focus{outline:0;border-color:var(--teal)}
  .copy-btn{flex:none;display:flex;align-items:center;gap:7px;background:var(--deep);color:#fff;border:0;border-radius:10px;padding:0 15px;font-family:var(--sans);font-size:13px;font-weight:650;cursor:pointer;transition:background .15s}
  .copy-btn:hover{background:var(--deep-2)} .copy-btn svg{width:15px;height:15px}
  .copy-btn.done{background:var(--mint)}
  .share-quick{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
  .sq{display:flex;align-items:center;justify-content:center;gap:7px;padding:10px;border:1px solid var(--line);border-radius:10px;font-size:12.5px;font-weight:650;color:var(--ink-2);text-decoration:none;transition:border-color .15s,background .15s}
  .sq:hover{border-color:var(--teal);background:#eef7fa;color:var(--teal-ink)} .sq svg{width:15px;height:15px}

  @media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
