/* Wealth I/O lead capture: free-audit dialog, sample-audit preview card, analytics consent.
   Self-contained so it works on every page (static prototype pages and the older Next.js pages). */
/* Royal-navy site system (2026-10-14): values copied from prototype/index.html :root.
   Navy for every dark surface, white for reading, black text on white, ONE purple (button square, focus, active, progress),
   green only for the success check, error red from the site error tokens. No gradients. */
.wl{--wl-navy-950:#040C26;--wl-ink:#0A1230;--wl-raised:#0B1B3F;--wl-navy:#0B1B3F;--wl-paper:#FFFFFF;--wl-white:#FFFFFF;--wl-black:#0A0A0A;
  --wl-body:#C2C4C7;--wl-label:#9C9EA2;--wl-muted:#8A8D93;--wl-muted-light:#515256;--wl-body-light:#313336;--wl-placeholder:#787A7F;
  --wl-purple:#8A53CF;--wl-signal:#8A53CF;--wl-btn:#0B1B3F;
  --wl-clear:#4FBF8A;--wl-clear-ink:#206345;--wl-flag:#A1302B;--wl-flag-dark:#ECA198;
  --wl-hair:rgba(255,255,255,.14);--wl-hair-dark:#DEE0E2;--wl-line:#787A7F;
  --wl-ease:cubic-bezier(.2,.7,.1,1);
  font-family:"Geologica",system-ui,-apple-system,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased;box-sizing:border-box}
.wl *,.wl *::before,.wl *::after{box-sizing:inherit}
.wl [hidden]{display:none!important}
.wl-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.wl-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* buttons */
.wl-btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;background:var(--wl-btn);color:var(--wl-white);border:0;border-radius:0;
  font-weight:500;font-size:16px;line-height:1;font-family:inherit;padding:17px 22px 17px 24px;cursor:pointer;min-height:52px;text-decoration:none;
  position:relative;overflow:hidden;transition:transform .2s var(--wl-ease)}
.wl-btn::after{content:"";position:absolute;inset:0;background:var(--wl-white);transform:translateY(101%);transition:transform .45s var(--wl-ease);mix-blend-mode:soft-light;opacity:.35;pointer-events:none}
.wl-btn:hover::after{transform:translateY(0)}
.wl-btn:active{transform:translateY(1px) scale(.99)}
.wl-btn .wl-sq{width:9px;height:9px;background:var(--wl-purple);flex:none;transition:transform .35s var(--wl-ease)}
.wl-btn:hover .wl-sq{transform:rotate(90deg) scale(1.15)}
/* on navy surfaces (sample card, consent): white button, navy text, purple square, as the site's nav/hero/footer buttons */
.wl-peek .wl-btn,.wl-consent .wl-accept{background:var(--wl-white);color:var(--wl-navy)}
.wl-peek .wl-btn::after,.wl-consent .wl-accept::after{background:var(--wl-navy);mix-blend-mode:normal;opacity:.12}
.wl-btn[disabled]{opacity:.7;cursor:progress}
.wl-btn[aria-busy="true"] .wl-sq{animation:wl-spin .9s linear infinite}
@keyframes wl-spin{to{transform:rotate(360deg)}}
.wl-btn--block{width:100%}
.wl-link{color:inherit;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.wl :focus-visible{outline:2px solid var(--wl-purple);outline-offset:3px}
.wl [tabindex="-1"]:focus{outline:none}

/* ============ free-audit dialog ============ */
dialog.wl-dialog{padding:0;border:0;margin:auto;max-width:min(960px,calc(100vw - 32px));width:100%;max-height:calc(100dvh - 32px);
  background:var(--wl-paper);color:var(--wl-black);overflow:auto;overscroll-behavior:contain;border-radius:0}
dialog.wl-dialog::backdrop{background:rgba(4,12,38,.74);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
dialog.wl-dialog[open]{animation:wl-in .38s var(--wl-ease)}
@keyframes wl-in{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.wl-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);min-height:560px}
.wl-side{background:var(--wl-ink);color:var(--wl-paper);padding:40px 36px;display:flex;flex-direction:column;gap:28px;position:relative}
.wl-eyebrow{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--wl-label)}
.wl-side h2{font-weight:500;font-size:32px;line-height:1.08;letter-spacing:-.02em;margin:0}
.wl-side h2 em{font-style:normal;color:var(--wl-white)}
.wl-gets{list-style:none;margin:0;padding:0;border-top:1px solid var(--wl-hair)}
.wl-gets li{display:grid;grid-template-columns:28px 1fr;gap:10px;padding:13px 0;border-bottom:1px solid var(--wl-hair);font-size:15px;line-height:1.4;color:var(--wl-body)}
.wl-gets b{font-weight:500;color:var(--wl-paper);display:block}
.wl-gets .n{font-family:"JetBrains Mono",ui-monospace,Menlo,monospace;font-size:12px;color:var(--wl-white);padding-top:3px}
.wl-side-foot{margin-top:auto;display:flex;align-items:center;gap:14px;font-size:13px;line-height:1.45;color:var(--wl-label)}
.wl-side-foot img{width:46px;height:auto;flex:none;border:1px solid var(--wl-hair)}
.wl-main{padding:40px 40px 32px;position:relative}
.wl-close{position:absolute;top:10px;right:10px;width:44px;height:44px;border:0;background:transparent;cursor:pointer;color:inherit;display:grid;place-items:center}
.wl-close::before,.wl-close::after{content:"";position:absolute;width:18px;height:1.5px;background:currentColor;transform:rotate(45deg)}
.wl-close::after{transform:rotate(-45deg)}
.wl-close:hover{opacity:.7}
.wl-main h3{font-weight:500;font-size:22px;line-height:1.2;letter-spacing:-.01em;margin:0 0 6px}
.wl-lede{margin:0 0 24px;font-size:15px;line-height:1.5;color:var(--wl-muted-light)}
.wl-row{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
.wl-field{margin-bottom:16px}
.wl-field label{display:block;font-size:13px;font-weight:500;margin-bottom:7px;color:var(--wl-black)}
.wl-field input{display:block;width:100%;font-weight:400;font-size:16px;line-height:1.3;font-family:inherit;color:var(--wl-black);background:var(--wl-white);
  border:1px solid var(--wl-line);border-radius:0;padding:13px 14px;min-height:48px;transition:border-color .15s,box-shadow .15s}
.wl-field input::placeholder{color:var(--wl-placeholder)}
.wl-field input:hover{border-color:var(--wl-navy)}
.wl-field input:focus{outline:0;border-color:var(--wl-purple);box-shadow:0 0 0 3px rgba(138,83,207,.22)}
.wl-field[data-invalid] input{border-color:var(--wl-flag);box-shadow:none}
.wl-err{display:none;font-size:13px;line-height:1.35;color:var(--wl-flag);margin-top:6px}
.wl-field[data-invalid] .wl-err{display:block}
.wl-hint{font-size:12.5px;color:var(--wl-muted-light);margin-top:6px}
.wl-submit{margin-top:8px}
.wl-fine{font-size:12.5px;line-height:1.5;color:var(--wl-muted-light);margin:14px 0 0}
.wl-alert{border-left:2px solid var(--wl-flag);background:rgba(161,48,43,.07);color:var(--wl-flag);font-size:14px;line-height:1.45;padding:12px 14px;margin:0 0 16px}
.wl-or{margin:22px 0 0;padding-top:18px;border-top:1px solid var(--wl-hair-dark);font-size:14px;color:var(--wl-muted-light);display:flex;flex-wrap:wrap;gap:4px 10px;align-items:center}
.wl-or a{color:var(--wl-black);font-weight:500}

/* success */
.wl-done{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;min-height:100%;padding:8px 0}
.wl-check{width:52px;height:52px;background:var(--wl-ink);display:grid;place-items:center;margin-bottom:22px}
.wl-check svg{width:24px;height:24px;stroke:var(--wl-clear);stroke-width:2.4;fill:none;stroke-dasharray:30;stroke-dashoffset:30;animation:wl-draw .55s .15s var(--wl-ease) forwards}
@keyframes wl-draw{to{stroke-dashoffset:0}}
.wl-done h3{font-size:28px;margin-bottom:12px}
.wl-done .wl-msg{font-size:18px;line-height:1.45;margin:0 0 8px;max-width:30em}
.wl-done .wl-to{font-size:14px;color:var(--wl-muted-light);margin:0 0 28px}
.wl-next{display:flex;flex-wrap:wrap;gap:12px 20px;align-items:center}
.wl-ghost{display:inline-flex;align-items:center;gap:10px;min-height:48px;padding:0 18px;border:0;box-shadow:inset 0 0 0 1px rgba(11,27,63,.45);color:var(--wl-black);text-decoration:none;font-weight:500;font-size:15px}
.wl-ghost:hover{box-shadow:inset 0 0 0 1px var(--wl-black)}

@media (max-width:760px){
  dialog.wl-dialog{max-width:100vw;width:100vw;max-height:100dvh;height:100dvh;margin:0}
  .wl-grid{grid-template-columns:1fr;min-height:100%}
  .wl-side{padding:26px 20px 20px;gap:14px}
  .wl-side h2{font-size:24px;padding-right:44px}
  .wl-gets,.wl-side-foot{display:none}
  .wl-side .wl-close{color:var(--wl-paper)}
  .wl-main{padding:24px 20px calc(24px + env(safe-area-inset-bottom))}
  .wl-main > .wl-close{display:none}
  .wl-row{grid-template-columns:1fr}
}
@media (min-width:761px){.wl-side .wl-close{display:none}}

/* ============ sample-audit preview card (timed) ============ */
.wl-peek{position:fixed;right:24px;bottom:24px;z-index:2147483000;width:392px;max-height:calc(100dvh - 48px);overflow-y:auto;overscroll-behavior:contain;background:var(--wl-ink);color:var(--wl-paper);
  border:1px solid var(--wl-hair);box-shadow:0 24px 60px -12px rgba(4,12,38,.6);transform:translateY(calc(100% + 40px));opacity:0;
  transition:transform .6s var(--wl-ease),opacity .4s}
.wl-peek.is-in{transform:none;opacity:1}
.wl-peek .wl-close{color:var(--wl-label);top:4px;right:4px;z-index:3}
.wl-peek .wl-close:hover{color:var(--wl-paper)}
/* the thumbnail: three real pages fanned, each tagged with what it shows */
.wl-fan{position:relative;height:196px;overflow:hidden;background:var(--wl-raised);border-bottom:1px solid var(--wl-hair)}
.wl-fan .pg{position:absolute;bottom:-58px;width:132px;aspect-ratio:8.5/11;background:#fff center/cover no-repeat;
  box-shadow:0 10px 26px rgba(4,12,38,.55);transition:transform .7s var(--wl-ease)}
.wl-fan .pg-3{left:212px;transform:rotate(7deg) translateY(20px)}
.wl-fan .pg-2{left:118px;transform:rotate(-1deg) translateY(6px)}
.wl-fan .pg-1{left:26px;transform:rotate(-7deg) translateY(18px)}
.wl-peek.is-in .wl-fan .pg-3{transform:rotate(7deg) translateY(0)}
.wl-peek.is-in .wl-fan .pg-2{transform:rotate(-1deg) translateY(-14px)}
.wl-peek.is-in .wl-fan .pg-1{transform:rotate(-7deg) translateY(0)}
.wl-fan:hover .pg-2{transform:rotate(-1deg) translateY(-26px)}
.wl-tag{position:absolute;z-index:2;display:inline-flex;align-items:center;gap:7px;font-size:11.5px;font-weight:500;line-height:1;
  padding:7px 9px;background:rgba(10,18,48,.9);border:1px solid var(--wl-hair);color:var(--wl-paper);white-space:nowrap}
.wl-tag i{width:7px;height:7px;background:var(--wl-purple);flex:none}
.wl-tag b{font-weight:700;color:var(--wl-white)}
.wl-tag-a{left:14px;top:14px}
.wl-tag-b{left:104px;top:44px}
.wl-tag-c{right:12px;top:124px}
.wl-peek-body{padding:20px 22px 22px}
.wl-peek h2{font-weight:500;font-size:21px;line-height:1.18;letter-spacing:-.01em;margin:0 0 8px}
.wl-peek p{font-size:14px;line-height:1.5;color:var(--wl-body);margin:0 0 16px}
.wl-peek .wl-field label{color:var(--wl-paper)}
.wl-peek .wl-field input{background:var(--wl-raised);color:var(--wl-white);border-color:rgba(255,255,255,.4)}
.wl-peek .wl-field input::placeholder{color:var(--wl-muted)}
.wl-peek .wl-field input:hover{border-color:rgba(255,255,255,.7)}
.wl-peek .wl-field input:focus{border-color:var(--wl-purple);box-shadow:0 0 0 3px rgba(138,83,207,.35)}
.wl-peek .wl-field[data-invalid] input{border-color:var(--wl-flag-dark)}
.wl-peek .wl-err{color:var(--wl-flag-dark)}
.wl-peek .wl-field{margin-bottom:12px}
.wl-peek .wl-fine{color:var(--wl-label);margin-top:10px}
.wl-peek .wl-alert{background:rgba(236,161,152,.1);color:var(--wl-flag-dark);border-color:var(--wl-flag-dark)}
.wl-peek-actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.wl-peek-actions .wl-quiet{background:none;border:0;color:var(--wl-label);font:inherit;font-size:14px;cursor:pointer;padding:12px 2px;text-decoration:underline;text-underline-offset:3px}
.wl-peek-actions .wl-quiet:hover{color:var(--wl-paper)}
.wl-peek .wl-ghost{color:var(--wl-white);box-shadow:inset 0 0 0 1px rgba(255,255,255,.55)}
.wl-peek .wl-ghost:hover{box-shadow:inset 0 0 0 1px var(--wl-white)}
@media (max-width:760px){
  .wl-peek{left:0;right:0;bottom:0;width:auto;max-height:calc(100dvh - 12px);border-left:0;border-right:0;border-bottom:0;padding-bottom:env(safe-area-inset-bottom)}
  .wl-fan{height:118px}
  .wl-fan .pg{width:86px;bottom:-56px}
  .wl-fan .pg-1{left:16px}.wl-fan .pg-2{left:84px}.wl-fan .pg-3{left:152px}
  .wl-tag-b,.wl-tag-c{display:none}
  .wl-tag-a{left:auto;right:52px;top:12px}
  .wl-peek-body{padding:16px 16px 18px}
  .wl-peek h2{font-size:19px}
  .wl-peek .wl-s1 p{display:none}
  .wl-peek h2{margin-bottom:12px}
  .wl-peek .wl-s3 p{font-size:13.5px;margin-bottom:12px}
}

/* ============ analytics consent ============ */
.wl-consent{position:fixed;left:24px;bottom:24px;z-index:2147483001;max-width:420px;background:var(--wl-ink);color:var(--wl-body);
  border:1px solid var(--wl-hair);padding:16px 18px;font-size:14px;line-height:1.5;box-shadow:0 18px 40px -12px rgba(4,12,38,.6)}
.wl-consent p{margin:0 0 12px}
.wl-consent a{color:var(--wl-paper)}
.wl-consent-actions{display:flex;gap:10px;justify-content:flex-end}
.wl-consent button{font-weight:500;font-size:14px;line-height:1;font-family:inherit;min-height:44px;padding:0 18px;border:0;box-shadow:inset 0 0 0 1px rgba(255,255,255,.55);background:transparent;color:var(--wl-white);cursor:pointer;border-radius:0;position:relative;overflow:hidden}
.wl-consent button:hover{box-shadow:inset 0 0 0 1px var(--wl-white)}
.wl-consent button.wl-accept{box-shadow:none}
.wl-consent .wl-accept::after{content:"";position:absolute;inset:0;transform:translateY(101%);transition:transform .45s var(--wl-ease);pointer-events:none}
.wl-consent .wl-accept:hover::after{transform:translateY(0)}
@media (max-width:760px){.wl-consent{left:12px;right:12px;bottom:12px;max-width:none}}
/* the older Next.js pages carry their own banner; ours replaces it so the wording covers every tool */
.consent[role="dialog"][aria-label="Analytics consent"]{display:none!important}

@media (prefers-reduced-motion:reduce){
  .wl *,.wl{animation:none!important;transition:none!important}
  .wl-check svg{stroke-dashoffset:0}
  .wl-btn::after,.wl-consent .wl-accept::after{transition:none!important}
}
