/* Eligibility Voronoi Map — "Modern Jewel" (OKLCH-harmonised, warm near-black) · .em- prefix · standalone */
:root{
  --em-forest-dk:#17171b; --em-forest:#201f25; --em-forest-mid:#2a2932; --em-sage:#584948;
  --em-sienna:#c4532b; --em-sienna-dk:#a3401f; --em-gold:#b18400; --em-navy:#4390da;
  --em-parchment:#f3f1ea; --em-parch-dim:rgba(243,241,234,.66); --em-rim:#cbb89a;
  --em-line:rgba(203,184,154,.15); --em-panel:#201f25; --em-panel-2:#1a1a1f;
}
*{box-sizing:border-box}
.em-page{margin:0;background:var(--em-forest-dk);color:var(--em-parchment);
  font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.5;
  /* nav-v7 is position:fixed (56px + safe-area) — without this it overlays the masthead */
  padding-top:calc(56px + env(safe-area-inset-top, 0px))}
.em-wrap{max-width:1280px;margin:0 auto;padding:0 20px}

/* hero */
.em-masthead{padding:54px 0 22px;text-align:center;max-width:760px;margin:0 auto}
.em-masthead h1{font-family:Fraunces,Georgia,serif;font-weight:700;font-size:clamp(28px,4.4vw,46px);line-height:1.08;margin:0 0 14px;letter-spacing:-.5px}
.em-masthead h1 .em-accent{color:#e0795a}
.em-masthead p{font-size:clamp(15px,1.7vw,18px);color:var(--em-parch-dim);margin:0 auto;max-width:620px}
.em-masthead .em-static{font-size:13px;color:var(--em-parch-dim);margin-top:14px}

/* layout */
.em-app{display:grid;grid-template-columns:1.35fr .95fr;gap:26px;align-items:start;padding:8px 0 64px}
.em-stage{position:relative;min-height:560px;display:flex;flex-direction:column;border-radius:18px;padding:16px 0 8px;
  background:radial-gradient(120% 120% at 50% 42%,#211f26 0%,var(--em-forest-dk) 72%);overflow:hidden}
/* counter is now a header band above the circle — no more overlap with cells/labels */
.em-counter{flex:0 0 auto;text-align:center;pointer-events:none;padding:2px 0 6px}
#em-counter{font-family:Fraunces,Georgia,serif;font-weight:700;font-size:48px;line-height:1;color:var(--em-parchment);text-shadow:0 2px 18px rgba(0,0,0,.4)}
#em-counter-label{font-size:12px;letter-spacing:.4px;color:var(--em-rim);margin-top:4px;text-transform:uppercase}
.em-viz-wrap{flex:1 1 auto;min-height:0;display:flex;align-items:center;justify-content:center}
#em-viz{width:100%;height:100%;max-height:640px;display:block}

/* side panel */
.em-panel{background:var(--em-panel);border:1px solid var(--em-line);border-radius:18px;padding:22px;position:sticky;top:18px}
.em-dim-label{font-size:11px;text-transform:uppercase;letter-spacing:.7px;color:var(--em-rim);margin:0 0 7px 2px}
.em-dim{display:flex;background:var(--em-panel-2);border:1px solid var(--em-line);border-radius:11px;padding:4px;margin-bottom:18px}
.em-dim button{flex:1;min-height:40px;background:none;border:0;color:var(--em-parch-dim);padding:10px;border-radius:8px;cursor:pointer;font-weight:600;font-size:13px;font-family:inherit;transition:.15s}
.em-dim button.is-active{background:var(--em-sienna);color:#fff}

.em-q__progress{font-size:11px;text-transform:uppercase;letter-spacing:.7px;color:var(--em-rim);margin-bottom:8px}
.em-q__title{font-family:Fraunces,Georgia,serif;font-weight:600;font-size:21px;margin:0 0 4px;line-height:1.2}
.em-q__sub{font-size:13px;color:var(--em-parch-dim);margin:0 0 14px}
.em-q__opts{display:flex;flex-direction:column;gap:8px;margin:14px 0 16px}
.em-opt{display:flex;align-items:center;min-height:44px;text-align:left;background:var(--em-panel-2);border:1px solid var(--em-line);border-radius:10px;padding:11px 14px;
  color:var(--em-parchment);cursor:pointer;font-size:14px;font-weight:500;font-family:inherit;transition:.13s}
.em-opt:hover{border-color:var(--em-rim);transform:translateX(2px)}
.em-opt.is-on{background:var(--em-forest-mid);border-color:var(--em-gold);box-shadow:0 0 0 1px var(--em-gold) inset}
.em-q__nav{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.em-back,.em-skip{background:none;border:0;color:var(--em-parch-dim);cursor:pointer;font-size:12.5px;font-weight:600;font-family:inherit;padding:6px 2px}
.em-back:hover,.em-skip:hover{color:var(--em-parchment)}
.em-next{background:var(--em-forest-mid);border:1px solid var(--em-gold);color:#fff;border-radius:9px;padding:9px 16px;cursor:pointer;font-weight:600;font-family:inherit;font-size:13px}

/* map footer: "coloured by" caption + legend, sitting UNDER the circle */
.em-mapfoot{flex:0 0 auto;padding:6px 18px 4px;text-align:center}
.em-colorby{font-size:10.5px;text-transform:uppercase;letter-spacing:.6px;color:var(--em-rim);margin-bottom:7px}
.em-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:5px 12px}
.em-leg{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--em-parch-dim)}
.em-leg i{width:10px;height:10px;border-radius:2px;display:inline-block;flex:0 0 auto}

/* end state */
.em-end{text-align:center;padding:8px 4px}
.em-end__n{font-family:Fraunces,Georgia,serif;font-weight:700;font-size:64px;line-height:1;color:var(--em-gold)}
.em-end__lead{font-size:17px;font-weight:600;margin:6px 0 12px}
.em-end__sub{font-size:13.5px;color:var(--em-parch-dim);margin:0 0 20px}
.em-end__matches{text-align:left;margin:4px 0 18px}
.em-match{display:flex;align-items:stretch;gap:6px;margin-bottom:7px}
.em-match__link{flex:1 1 auto;display:flex;align-items:center;gap:10px;text-decoration:none;background:var(--em-panel-2);
  border:1px solid var(--em-line);border-radius:10px;padding:10px 12px;transition:.13s;min-width:0}
.em-match__link:hover{border-color:var(--em-gold);background:var(--em-forest-mid);transform:translateX(2px)}
.em-match__body{flex:1 1 auto;min-width:0}
.em-match__fit{display:block;font-size:9.5px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--em-gold);margin-bottom:2px}
.em-match__fit--alt{color:var(--em-rim);font-weight:600}
.em-match__t{display:block;font-size:13.5px;font-weight:600;color:var(--em-parchment);line-height:1.25}
.em-match__m{display:block;font-size:11.5px;color:#8fd6ad;margin-top:2px;text-transform:capitalize}
.em-match__locked{display:block;font-size:10px;color:var(--em-rim);margin-top:4px;opacity:.72;letter-spacing:.02em;font-weight:600}
.em-match__go{flex:0 0 auto;color:var(--em-rim);font-size:15px;opacity:0;transition:opacity .13s}
.em-match__link:hover .em-match__go{opacity:1}
.em-match__save{flex:0 0 auto;width:40px;height:40px;align-self:center;display:flex;align-items:center;justify-content:center;
  background:var(--em-panel-2);border:1px solid var(--em-line);border-radius:10px;
  color:var(--em-parch-dim);font-size:17px;cursor:pointer;transition:.13s;line-height:1}
.em-match__save:hover{border-color:var(--em-rim);color:var(--em-parchment)}
.em-match__save.is-on{color:var(--em-sienna);border-color:var(--em-sienna)}
.em-teaser__more{font-size:12px;color:var(--em-rim);font-weight:600;padding:6px 2px 2px;text-align:center}
/* end-state refine filters */
.em-refine{text-align:left;margin:0 0 18px}
.em-refine__h{font-size:11px;text-transform:uppercase;letter-spacing:.7px;color:var(--em-rim);margin:0 0 9px}
.em-refine__b{display:inline-flex;align-items:center;gap:6px;background:var(--em-panel-2);border:1px solid var(--em-line);border-radius:20px;
  padding:7px 13px;margin:0 6px 7px 0;color:var(--em-parch-dim);cursor:pointer;font-size:12.5px;font-weight:500;font-family:inherit;transition:.13s}
.em-refine__b::before{content:"+";font-weight:700;opacity:.7}
.em-refine__b:hover{border-color:var(--em-rim);color:var(--em-parchment)}
.em-refine__b.is-on{background:var(--em-forest-mid);border-color:var(--em-gold);color:#fff}
.em-refine__b.is-on::before{content:"✓";opacity:1}
/* demographic opt-in — unlock reserved programs when the ownership question was skipped (2026-06-30) */
.em-optin{text-align:left;margin:0 0 18px;padding:13px 14px;border:1px solid var(--em-gold);border-radius:12px;background:rgba(0,0,0,.12)}
.em-optin__h{font-size:13.5px;font-weight:700;color:var(--em-parchment);margin:0 0 4px}
.em-optin__sub{font-size:12px;color:var(--em-parch-dim);margin:0 0 10px;line-height:1.45}
.em-optin__chips{display:flex;flex-wrap:wrap}
.em-optin__b{display:inline-flex;align-items:center;gap:6px;background:var(--em-panel-2);border:1px solid var(--em-line);border-radius:20px;
  padding:7px 13px;margin:0 6px 7px 0;color:var(--em-parch-dim);cursor:pointer;font-size:12.5px;font-weight:500;font-family:inherit;transition:.13s}
.em-optin__b:hover{border-color:var(--em-gold);color:var(--em-parchment)}
.em-optin__b.is-on{background:var(--em-forest-mid);border-color:var(--em-gold);color:#fff}
.em-optin__n{font-weight:700;font-size:11.5px;color:var(--em-gold)}
.em-optin__b.is-on .em-optin__n{color:#fff}
/* F10 (2026-07-03): explicit decline + truthful privacy line + collapsed reversible one-liner */
.em-optin__foot{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:8px 0 0}
.em-optin__none{appearance:none;background:none;border:0;cursor:pointer;font:inherit;font-size:12.5px;font-weight:600;color:var(--em-gold);text-decoration:underline;padding:2px 0}
.em-optin__none:hover{color:var(--em-parchment)}
.em-optin__none:focus-visible{outline:2px solid var(--em-gold);outline-offset:2px;border-radius:4px}
.em-optin__priv{font-size:11.5px;color:var(--em-parch-dim)}
.em-optin--mini{padding:10px 14px;background:rgba(0,0,0,.12);border-color:var(--em-line)}
.em-optin__mini-t{font-size:12.5px;color:var(--em-parch-dim);line-height:1.5}
.em-optin__expand{appearance:none;background:none;border:0;cursor:pointer;font:inherit;font-size:12.5px;font-weight:600;color:var(--em-gold);text-decoration:underline;padding:0}
.em-optin__expand:hover{color:var(--em-parchment)}
.em-optin__expand:focus-visible{outline:2px solid var(--em-gold);outline-offset:2px;border-radius:4px}
.em-end__cta{display:flex;flex-direction:column;gap:10px;margin-bottom:14px}
.em-cta{display:block;text-decoration:none;border-radius:11px;padding:13px 18px;font-weight:700;font-size:14.5px;transition:.15s}
.em-cta--primary{background:var(--em-sienna);color:#fff}
.em-cta--primary:hover{background:var(--em-sienna-dk)}
/* 2026-06-21 end-state redesign: the dominant "Your next step" card + supporting preview */
.em-cta--hero{font-size:16px;padding:15px 18px;box-shadow:0 3px 14px rgba(178,90,53,.4)}
.em-next{background:var(--em-panel-2);border:1px solid var(--em-gold);border-radius:14px;padding:15px 16px 13px;margin:6px 0 18px;text-align:left;box-shadow:0 6px 22px rgba(0,0,0,.22)}
.em-next__label{font-size:11px;font-weight:800;letter-spacing:.8px;text-transform:uppercase;color:var(--em-gold);margin:0 0 6px}
.em-next__body{font-size:13.5px;line-height:1.45;color:var(--em-parchment);margin:0 0 12px}
.em-next__trust{font-size:11px;color:var(--em-rim);text-align:center;margin:9px 0 0}
.em-end__preview{margin:0 0 16px}
.em-end__preview-h{font-size:10.5px;text-transform:uppercase;letter-spacing:.6px;color:var(--em-rim);text-align:left;margin:0 0 9px}
.em-cta--secondary{background:transparent;color:var(--em-parchment);border:1px solid var(--em-rim)}
.em-cta--secondary:hover{background:rgba(216,199,160,.1)}
.em-end__reward{font-size:12.5px;color:var(--em-parch-dim);margin:0 0 4px}
.em-end__reward strong{color:var(--em-gold);font-weight:700}
.em-end__trust{font-size:11px;color:var(--em-rim);margin:-2px 0 16px}
.em-end__alt{display:block;flex:0 0 100%;text-align:center;font-size:12.5px;font-weight:600;color:var(--em-rim);text-decoration:none;padding:8px 0}
.em-end__alt:hover{color:var(--em-parchment)}

/* tooltip */
#em-tooltip{position:fixed;pointer-events:none;background:#0b1d14;border:1px solid var(--em-line);border-radius:10px;
  padding:9px 12px;font-size:12px;max-width:250px;opacity:0;transition:opacity .12s;z-index:60;box-shadow:0 10px 34px rgba(0,0,0,.55)}
#em-tooltip{max-width:268px}
#em-tooltip b{display:block;font-size:12.5px;margin-bottom:3px;line-height:1.25}
.em-tip-meta{display:block;color:var(--em-parch-dim);font-size:11px}
.em-tip-amt{display:block;color:#8fd6ad;font-weight:600;font-size:11.5px;margin-top:3px}
.em-tip-ctx{display:block;color:var(--em-rim);font-size:11px;margin-top:5px;padding-top:5px;border-top:1px solid var(--em-line)}
.em-tip-ctx b{display:inline;font-size:11px;color:var(--em-parchment)}
.em-tip-hint{display:block;color:var(--em-parch-dim);font-size:10.5px;margin-top:5px;opacity:.8}

/* end-state share + restart footer */
.em-end__foot{display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap}
.em-share{background:none;border:0;color:var(--em-rim);cursor:pointer;font-size:12.5px;font-weight:700;font-family:inherit;padding:6px 2px}
.em-share:hover{color:var(--em-parchment)}

/* mobile tap-to-view info card (bottom sheet) — hover isn't available on touch */
.em-mcard{position:fixed;left:12px;right:12px;bottom:12px;z-index:70;background:#0b1d14;border:1px solid var(--em-line);
  border-radius:16px;padding:16px 16px 14px;box-shadow:0 -8px 40px rgba(0,0,0,.55);transform:translateY(130%);transition:transform .26s cubic-bezier(.2,.8,.2,1);max-width:520px;margin:0 auto}
.em-mcard.is-open{transform:translateY(0)}
.em-mcard__x{position:absolute;top:8px;right:10px;background:none;border:0;color:var(--em-parch-dim);font-size:22px;line-height:1;cursor:pointer}
.em-mcard__t{font-family:Fraunces,Georgia,serif;font-weight:600;font-size:17px;line-height:1.2;padding-right:24px}
.em-mcard__m{font-size:12.5px;color:var(--em-parch-dim);margin-top:3px}
.em-mcard__amt{font-size:13px;color:#8fd6ad;font-weight:600;margin-top:6px}
.em-mcard__ctx{display:block;font-size:12px;color:var(--em-rim);margin-top:6px}
.em-mcard__ctx b{color:var(--em-parchment)}
.em-mcard__go{display:inline-block;margin-top:12px;background:var(--em-sienna);color:#fff;text-decoration:none;border-radius:10px;padding:11px 16px;font-weight:700;font-size:14px}

/* toast */
.em-toast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%) translateY(16px);z-index:80;background:#0b1d14;border:1px solid var(--em-line);
  color:var(--em-parchment);border-radius:24px;padding:11px 20px;font-size:13px;font-weight:600;opacity:0;transition:opacity .25s,transform .25s;box-shadow:0 8px 30px rgba(0,0,0,.5)}
.em-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.em-toast--cta{text-decoration:none;cursor:pointer;background:var(--em-rust,#c4532b);border-color:var(--em-rust,#c4532b);color:#fff}
.em-toast--cta:hover{filter:brightness(1.07)}

.em-rim{paint-order:stroke;stroke:var(--em-forest-dk);stroke-width:3.5px;stroke-linejoin:round}
/* in-cell labels: dark halo so white text reads over any cell colour */
.em-clabel text{paint-order:stroke;stroke:rgba(8,18,12,.85);stroke-width:2.6px;stroke-linejoin:round}
#em-viz path{shape-rendering:geometricPrecision}

/* responsive */
/* live count chip — mobile only; keeps the number-drop visible while answering */
.em-q__count{display:none;font-size:13px;font-weight:600;color:var(--em-parch-dim);background:var(--em-panel-2);border:1px solid var(--em-line);border-radius:9px;padding:8px 12px;margin-bottom:14px;text-align:center}
.em-q__count strong{color:var(--em-gold);font-family:Fraunces,Georgia,serif;font-size:16px}
/* visible keyboard focus (a11y) */
.em-opt:focus-visible,.em-cta:focus-visible,.em-next:focus-visible,.em-back:focus-visible,.em-skip:focus-visible,.em-refine__b:focus-visible,.em-match__link:focus-visible,.em-match__save:focus-visible,.em-end__alt:focus-visible,.em-dim button:focus-visible{outline:2px solid var(--em-rim);outline-offset:2px}
.em-panel:focus,#em-question:focus{outline:none}     /* programmatic focus for SR announcement — not a visual selection ring */
@media (max-width:860px){
  .em-app{grid-template-columns:1fr;gap:16px}
  /* counter band + fixed-height circle + legend, all auto-stacked */
  .em-stage{min-height:0;height:auto;padding:10px 0 8px}
  .em-viz-wrap{height:min(78vw,300px);flex:0 0 auto}
  .em-panel{position:static}
  #em-counter{font-size:28px}
  .em-counter{padding:0 0 2px}
  /* legend: KEEP but compact on mobile (single scrollable swatch row). The in-chart labels only
     name the ~9 biggest sections, so the full key + the "coloured by X" context aren't redundant. */
  .em-mapfoot{padding:4px 12px 2px}
  .em-colorby{margin-bottom:4px;font-size:9.5px}
  .em-legend{flex-wrap:nowrap;justify-content:flex-start;gap:4px 14px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:4px;scrollbar-width:none}
  .em-legend::-webkit-scrollbar{display:none}
  .em-leg{flex:0 0 auto;font-size:10.5px}
  .em-masthead{padding:10px 0 4px}
  .em-masthead h1{font-size:22px;margin-bottom:5px}
  .em-masthead p{font-size:12.5px;margin-bottom:4px;line-height:1.35}
  .em-static{margin-top:6px}
  .em-q__count{display:block}
}
@media (prefers-reduced-motion:reduce){
  .em-opt,.em-cta,.em-dim button{transition:none}
}

/* ── indexable supporting content below the map (SEO/GEO — the SVG has no crawlable text) ── */
.em-seo{padding:8px 20px 72px}
.em-seo__col{max-width:680px;margin:0 auto}
.em-seo h2{font-family:Fraunces,Georgia,serif;font-weight:600;font-size:clamp(22px,2.6vw,28px);line-height:1.2;color:var(--em-parchment);margin:44px 0 12px}
.em-seo h2:first-child{margin-top:0}
.em-seo h3{font-size:16px;font-weight:700;color:var(--em-parchment);margin:24px 0 6px}
.em-seo p{font-size:15px;line-height:1.65;color:var(--em-parch-dim);margin:0 0 12px}
.em-seo a{color:var(--em-sienna);text-decoration:none}
.em-seo a:hover{text-decoration:underline}
.em-seo strong{color:var(--em-parchment);font-weight:600}
.em-seo__stats{list-style:none;margin:0 0 12px;padding:0}
.em-seo__stats li{font-size:15px;line-height:1.6;color:var(--em-parch-dim);padding:9px 0 9px 18px;border-bottom:1px solid var(--em-line);position:relative}
.em-seo__stats li::before{content:"";position:absolute;left:0;top:18px;width:7px;height:7px;border-radius:2px;background:var(--em-sienna)}
.em-seo__note{font-size:12.5px;color:var(--em-rim)}

.em-match__save svg{display:block}
.em-match__save.is-on svg path{fill:currentColor}

/* loading veil while the worker tessellates (~1s) + fetch-failure retry */
.em-viz-wrap{position:relative}
.em-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:10px;
  font-size:13px;letter-spacing:.4px;color:var(--em-rim);animation:emPulse 1.6s ease-in-out infinite;pointer-events:none}
.em-loading.is-error{animation:none;pointer-events:auto;color:var(--em-parch-dim)}
.em-loading__retry{background:var(--em-sienna);color:#fff;border:0;border-radius:8px;padding:8px 14px;font:inherit;font-weight:700;cursor:pointer}
@keyframes emPulse{0%,100%{opacity:.45}50%{opacity:1}}
a.em-teaser__more{display:block;text-decoration:none;cursor:pointer}
a.em-teaser__more:hover{color:var(--em-sienna)}
/* coarse-pointer (touch) targets up to 44px without changing desktop look */
@media (pointer:coarse){
  .em-refine__b,.em-lens,.em-share,.em-skip,.em-back,.em-next{min-height:44px}
}
@media (prefers-reduced-motion:reduce){.em-loading{animation:none}}

/* ── Phase B `deep_questions_v1` variant (2026-07-01): drop receipts + verdict tiers (dark) ── */
.em-dropfeed{display:flex;flex-direction:column;gap:6px;margin:0 0 10px}
.em-drop{display:flex;align-items:baseline;gap:8px;font-size:12.5px;line-height:1.4;color:var(--em-parch-dim);
  background:rgba(0,0,0,.18);border:1px solid var(--em-line);border-left:3px solid var(--em-sienna);border-radius:8px;padding:7px 11px;text-align:left}
.em-drop b{color:var(--em-sienna);font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:800}
.em-drop--soft{border-left-color:var(--em-gold)}
.em-drop--soft b{color:var(--em-gold)}
.em-tiers{margin:14px 0 16px;display:flex;flex-direction:column;gap:10px;text-align:left}
.em-tier{background:rgba(0,0,0,.18);border:1px solid var(--em-line);border-radius:12px;padding:12px 15px}
.em-tier__row{display:flex;align-items:baseline;gap:10px}
.em-tier__n{font-family:Fraunces,Georgia,serif;font-size:1.5rem;line-height:1;letter-spacing:-.01em}
.em-tier__t{font-weight:700;font-size:14px;color:var(--em-parchment)}
.em-tier__d{font-size:12.5px;color:var(--em-parch-dim);margin-top:4px;line-height:1.45}
.em-tier--q{border-left:4px solid #5ca04d}.em-tier--q .em-tier__n{color:#7fc36f}
.em-tier--b{border-left:4px solid var(--em-gold)}.em-tier--b .em-tier__n{color:#d4a51c}
.em-tier--r{border-left:4px solid rgba(203,184,154,.4)}.em-tier--r .em-tier__n{color:var(--em-parch-dim)}
.em-why{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.em-whychip{font-size:11.5px;font-weight:600;background:rgba(177,132,0,.14);border:1px solid rgba(177,132,0,.5);color:#e2b435;border-radius:999px;padding:4px 10px}
.em-whychip--r{background:rgba(255,255,255,.04);border-color:var(--em-line);color:var(--em-parch-dim)}

/* ── GC Arts bridge (2026-07-03) — AB2 results lane + AB7 ping. Namespaced gc-artsb-*; block is
   IDENTICAL across eligibility-embed.css / eligibility-map.css / gameplan.css. Inline content only
   (never position:fixed). Light tint card is intentional on the dark map too (distinct GC Arts brand). */
.gc-artsb-ping,
.gc-artsb-lane {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  background: #f7f3fb;
  border: 1px solid #ddd0ee;
  border-left: 3px solid #6C3FA5;
  border-radius: 9px;
  padding: 10px 12px;
  margin: 12px 0;
  font-size: .85rem;
  line-height: 1.4;
  color: #4a3b60;
  box-sizing: border-box;
}
.gc-artsb-lane { margin: 14px 0; }
.gc-artsb-ping-txt,
.gc-artsb-lane-txt { flex: 1 1 200px; min-width: 0; color: #4a3b60; }
.gc-artsb-ping-txt strong,
.gc-artsb-lane-txt strong { color: #3c2660; font-weight: 700; }
.gc-artsb-dot {
  flex: 0 0 auto;
  width: 18px; height: 18px;
  border-radius: 50%;
  background: conic-gradient(#6C3FA5 0 30%, #E8A838 30% 55%, #b98ae0 55% 80%, #f3d9a4 80% 100%);
  box-shadow: inset 0 0 0 3px #fff;   /* white inner ring */
}
/* Pin link colours across ALL states — embed/host pages carry a sitewide a:hover{color:var(--sienna)}
   that would otherwise recolour the CTA/link (0,0,2,0 beats a:hover's 0,0,1,1). */
.gc-artsb-cta,
.gc-artsb-cta:link,
.gc-artsb-cta:visited,
.gc-artsb-cta:hover,
.gc-artsb-cta:focus,
.gc-artsb-cta:active {
  flex: 0 0 auto;
  display: inline-block;
  background: #6C3FA5;
  color: #fff;
  font-weight: 700;
  text-decoration: none;
  border-radius: 8px;
  padding: 6px 12px;
  font-size: .82rem;
  white-space: nowrap;
}
.gc-artsb-cta:hover,
.gc-artsb-cta:focus { background: #5a3389; color: #fff; }
.gc-artsb-cta:focus-visible { outline: 2px solid #3c2660; outline-offset: 2px; }
.gc-artsb-x {
  flex: 0 0 auto;
  min-width: 40px; min-height: 40px;
  margin: -8px -6px -8px 0;
  padding: 0;
  background: transparent;
  border: 0;
  color: #7a6b93;
  font-size: 15px;
  line-height: 1;
  cursor: pointer;
  border-radius: 8px;
}
.gc-artsb-x:hover,
.gc-artsb-x:focus { color: #3c2660; background: rgba(108,63,165,.08); }

/* ============================================================================
   map_end_gate_v1 (2026-07-07) — the inline signup gate at the standalone map's
   end state (same experiment + structure as the embed's, dark-theme adapted).
   Approved mockup: dev-assets/convert-completers-mockups-2026-07-06/m5-standalone-map-gate.html
   ============================================================================ */
.em-blur-wrap { position: relative; overflow: hidden; contain: inline-size; max-width: 100%; background: rgba(243,241,234,.04); border: 1px solid var(--em-line); border-top: 0; border-radius: 0 0 12px 12px; margin-top: 6px; pointer-events: none; user-select: none; -webkit-user-select: none; }
.em-blur__r { min-width: 0; display: flex; gap: 12px; align-items: center; padding: 12px 14px; border-top: 1px solid var(--em-line); font-size: 13px; }
.em-blur__r:first-child { border-top: 0; }
.em-blur__rank { display: inline-flex; align-items: center; justify-content: center; width: 20px; height: 20px; border-radius: 50%; background: rgba(203,184,154,.18); color: var(--em-rim); font-size: 11px; font-weight: 700; flex: none; }
.em-blur__t { flex: 1; min-width: 0; font-weight: 600; color: var(--em-parchment); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.em-blur__amt { font-weight: 700; max-width: 45%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--em-rim); font-size: 13.5px; flex: none; }
.em-blur__r--1 { filter: blur(4px); opacity: .8; }
.em-blur__r--2 { filter: blur(4px); opacity: .55; }
.em-blur__fade { position: absolute; inset: auto 0 0 0; height: 88%; background: linear-gradient(180deg, rgba(26,26,31,0), rgba(26,26,31,.92) 55%, var(--em-panel-2) 100%); }
.em-gate { text-align: center; background: var(--em-panel-2); border: 1px solid rgba(203,184,154,.3); border-radius: 14px; padding: 24px 22px 22px; position: relative; z-index: 2; }
.em-gate--tuck { margin-top: -46px; }
.em-gate__lock { font-size: 24px; margin-bottom: 4px; }
.em-gate__h { font-family: 'Fraunces', Georgia, serif; font-size: 20px; font-weight: 500; color: var(--em-parchment); margin: 0 0 6px; }
.em-gate__sub { font-size: 14px; color: var(--em-parch-dim); max-width: 440px; margin: 0 auto 14px; line-height: 1.5; }
.em-gate__chips { display: flex; gap: 6px; justify-content: center; flex-wrap: wrap; margin: 0 0 15px; }
.em-gate__chip { background: rgba(243,241,234,.08); border: 1px solid var(--em-line); border-radius: 14px; padding: 6px 12px; font-size: 12px; font-weight: 600; color: var(--em-parchment); white-space: nowrap; }
.em-gate__note { display: block; margin-top: 12px; font-size: 11.5px; color: var(--em-parch-dim); }
.em-gate__prem { margin: 11px 0 0; font-size: 12px; color: var(--em-parch-dim); }
.em-gate__cta { display: inline-block; }
/* the real shared signup (gc-signup.js renderInline) — dark-theme .gcs-* */
.em-gate__auth .gcs { max-width: 330px; margin: 0 auto; text-align: left; }
.em-gate .gcs-google { width: 100%; display: flex; align-items: center; justify-content: center; gap: 10px; background: #fff; border: 1px solid rgba(0,0,0,.12); border-radius: 10px; padding: 12px 16px; font-family: inherit; font-size: 14.5px; font-weight: 600; color: #1f2023; cursor: pointer; transition: box-shadow .12s, transform .12s; }
.em-gate .gcs-google:hover { box-shadow: 0 2px 10px rgba(0,0,0,.35); }
.em-gate .gcs-google:disabled { opacity: .55; cursor: default; }
.em-gate .gcs-or { display: flex; align-items: center; gap: 10px; margin: 12px 0; color: var(--em-parch-dim); font-size: 12px; }
.em-gate .gcs-or span { flex: 0 0 auto; }
.em-gate .gcs-or::before, .em-gate .gcs-or::after { content: ""; flex: 1; height: 1px; background: var(--em-line); }
.em-gate .gcs-form { display: flex; flex-direction: column; gap: 8px; }
.em-gate .gcs-name, .em-gate .gcs-email, .em-gate .gcs-pw { width: 100%; box-sizing: border-box; border: 1px solid rgba(203,184,154,.35); border-radius: 9px; padding: 11px 13px; font-family: inherit; font-size: 14px; color: var(--em-parchment); background: rgba(243,241,234,.06); }
.em-gate .gcs-name::placeholder, .em-gate .gcs-email::placeholder, .em-gate .gcs-pw::placeholder { color: rgba(243,241,234,.45); }
.em-gate .gcs-name:focus, .em-gate .gcs-email:focus, .em-gate .gcs-pw:focus { outline: 2px solid var(--em-rim); outline-offset: -1px; border-color: var(--em-rim); }
.em-gate .gcs-email-btn { width: 100%; background: var(--em-sienna); color: #fff; border: 0; border-radius: 9px; padding: 12px; font-family: inherit; font-size: 14.5px; font-weight: 700; cursor: pointer; transition: background .12s; }
.em-gate .gcs-email-btn:hover { background: var(--em-sienna-dk); }
.em-gate .gcs-email-btn:disabled { opacity: .55; cursor: default; }
.em-gate .gcs-err { min-height: 15px; margin-top: 9px; font-size: 12.5px; color: #e58a68; text-align: center; }
.em-gate .gcs-err:empty { min-height: 0; margin-top: 0; }
.em-gate .gcs-toggle { margin-top: 11px; font-size: 12.5px; color: var(--em-parch-dim); text-align: center; }
.em-gate .gcs-signin-link { background: none; border: 0; color: var(--em-rim); font-family: inherit; font-size: 12.5px; font-weight: 600; cursor: pointer; text-decoration: underline; padding: 0; }
.em-gate .gcs-google:focus-visible, .em-gate .gcs-email-btn:focus-visible, .em-gate .gcs-signin-link:focus-visible, .em-gate .gcs-emaillink:focus-visible { outline: 2px solid var(--em-rim); outline-offset: 2px; border-radius: 6px; }
/* collapsed presentation: Google-first; the form expands via the quiet link */
.em-gate .gcs--collapsed .gcs-or, .em-gate .gcs--collapsed .gcs-form, .em-gate .gcs--collapsed .gcs-toggle { display: none; }
.em-gate__emailrow { margin-top: 10px; text-align: center; }
.em-gate .gcs-emaillink { background: none; border: 0; color: var(--em-rim); font-family: inherit; font-size: 13px; font-weight: 600; text-decoration: underline; cursor: pointer; padding: 4px 6px; }
@media (prefers-reduced-motion: reduce) { .em-gate .gcs-google, .em-gate .gcs-email-btn { transition: none; } }

/* ── Borderline condition questions (2026-07-14, reworked same day) ──
   The borderline tier is a set of QUESTIONS, not a verdict. v1 pasted the raw extracted gate into
   a fixed prefix — "Does your business do this: side business status?" — which was ungrammatical
   for half the conditions and gave the reader no way to tell our framing from their condition
   (Khalid, live). Now: ONE catch-all lead ("Does any of this describe your business?") does the
   grammatical work, and each row is just the CONDITION, in its own weight and colour. Grid (not
   flex-wrap) so a long condition can't shove the buttons off-screen; buttons never shrink. */
.em-asks{display:flex;flex-direction:column;gap:7px;margin-top:10px}
.em-asks__lead{font-size:12px;font-weight:600;letter-spacing:.02em;color:var(--em-parch-dim);margin-bottom:1px}
.em-ask{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"q btns" "n btns";gap:3px 12px;align-items:center;
  background:rgba(177,132,0,.08);border:1px solid rgba(177,132,0,.32);border-radius:10px;padding:10px 12px}
/* the condition itself — the variable text, deliberately distinct from the frame above it */
.em-ask__q{grid-area:q;font-size:13.5px;font-weight:600;line-height:1.4;color:var(--em-parchment);min-width:0;overflow-wrap:anywhere}
.em-ask__q::first-letter{text-transform:uppercase}
.em-ask__n{grid-area:n;font-size:11px;color:var(--em-parch-dim)}
.em-ask__btns{grid-area:btns;display:flex;gap:6px;flex-shrink:0}
.em-ask__b{flex-shrink:0;min-width:52px;min-height:44px;padding:8px 12px;border-radius:8px;cursor:pointer;
  font-size:12.5px;font-weight:700;background:rgba(177,132,0,.9);border:1px solid rgba(177,132,0,1);color:#1a1408}
.em-ask__b--no{background:transparent;border-color:var(--em-line);color:var(--em-parch-dim)}
.em-ask__b:hover{filter:brightness(1.1)}
.em-ask__b:focus-visible{outline:2px solid #e2b435;outline-offset:2px}
@media (max-width:420px){.em-ask{grid-template-columns:minmax(0,1fr);grid-template-areas:"q" "n" "btns"}.em-ask__btns{margin-top:6px}.em-ask__b{flex:1}}

/* ── Ruled out — reasons as ROWS, not wrapping pills (2026-07-14) ──
   As pills, a long reason ("only if your business does: employer engagement partnerships for youth
   placements · 18") wrapped into a three-line blob and the count drowned in the middle of it. A row
   with the reason ellipsised and the count pinned right reads at a glance and never reflows. */
/* ★ contain:inline-size + max-width:100% on the WRAPPER, not just min-width:0 on the row.
   .em-rule__t is white-space:nowrap, and a nowrap row inside a content-sized panel chain
   propagates its INTRINSIC width up the ancestors — ellipsis and min-width:0 on the row itself
   do not stop it. Measured: the results panel went 344px → 462px on a 390px phone, i.e. 118px of
   page-level horizontal scroll. Same trap, same fix as the map-gate blur rows (2026-07-07) —
   see docs/DURABLE-GOTCHAS.md. */
.em-rules{list-style:none;margin:9px 0 0;padding:0;display:flex;flex-direction:column;contain:inline-size;max-width:100%}
.em-rule{display:flex;align-items:center;gap:12px;padding:7px 2px;border-top:1px solid var(--em-line)}
.em-rule:first-child{border-top:0}
.em-rule__t{flex:1 1 auto;min-width:0;font-size:12.5px;line-height:1.35;color:var(--em-parch-dim);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.em-rule__t::first-letter{text-transform:uppercase}
.em-rule__n{flex:0 0 auto;font-size:12px;font-weight:700;color:var(--em-parch);font-variant-numeric:tabular-nums}

/* ── Between-intakes toggle (2026-07-14, reworked same day) ──
   The way back to the programs that are shut today. v1 was a dashed card that read as a static
   notice, not a control, and sat flush against the section below it (Khalid, live). Now it is an
   actual switch: label + description on the left, a real track/knob on the right that shows its
   state. Quiet, not a primary action — it is a head start, not the headline. */
.em-closed-tog{display:flex;align-items:center;gap:14px;width:100%;text-align:left;margin:14px 0 18px;
  padding:12px 14px;border-radius:12px;cursor:pointer;
  background:rgba(255,255,255,.03);border:1px solid var(--em-line);color:var(--em-parch-dim);
  transition:background .15s ease,border-color .15s ease}
.em-closed-tog:hover{background:rgba(255,255,255,.06);border-color:rgba(203,184,154,.35)}
.em-closed-tog:focus-visible{outline:2px solid #e2b435;outline-offset:2px}
.em-closed-tog.is-on{background:rgba(177,132,0,.08);border-color:rgba(177,132,0,.45)}
.em-closed-tog__c{flex:1 1 auto;min-width:0}
.em-closed-tog__t{display:block;font-size:13px;font-weight:700;color:var(--em-parch)}
.em-closed-tog__d{display:block;margin-top:3px;font-size:11.5px;line-height:1.45}
/* the switch — a real one, so it reads as a control before it is clicked */
.em-closed-tog__sw{flex:0 0 auto;position:relative;width:38px;height:22px;border-radius:999px;
  background:rgba(255,255,255,.10);border:1px solid var(--em-line);transition:background .18s ease,border-color .18s ease}
.em-closed-tog__sw::after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;
  background:var(--em-parch-dim);transition:transform .18s ease,background .18s ease}
.em-closed-tog.is-on .em-closed-tog__sw{background:rgba(177,132,0,.75);border-color:rgba(177,132,0,.9)}
.em-closed-tog.is-on .em-closed-tog__sw::after{transform:translateX(16px);background:#1a1408}
@media (prefers-reduced-motion:reduce){.em-closed-tog,.em-closed-tog__sw,.em-closed-tog__sw::after{transition:none}}

/* ── open vs between-intakes, on the tile tooltip + the touch info card (2026-07-14) ── */
.em-tip-status{display:block;font-size:11px;font-weight:700;margin-top:5px;letter-spacing:.01em}
.em-tip-status--open{color:#8fd6ad}
.em-tip-status--shut{color:#d9a441}
.em-mcard .em-tip-status{margin-top:7px;font-size:11.5px}

/* ── The return route (2026-08-06) ────────────────────────────────────────────
   Rendered only when a first-party surface sent the reader here with `?returnTo=`
   (see `_returnHtml` in eligibility-map.src.js) — inert, and absent from the DOM,
   for every other visitor. Sits under the lead, above the tiers, because by that
   line the reader already has what they came for and a route in the footer is a
   route nobody takes. Deliberately NOT `em-cta--primary`: the Game Plan card below
   is still the page's own next step, and two primaries is no primary. */
.em-return{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:center;gap:4px 12px;margin:0 0 16px}
.em-return__cta{flex:0 0 auto;display:inline-flex;align-items:center;min-height:44px;padding:0 16px;
  border:1px solid var(--em-gold);border-radius:10px;background:transparent;color:var(--em-gold);
  font-size:14px;font-weight:700;text-decoration:none;transition:.13s}
.em-return__cta:hover{background:rgba(216,199,160,.12)}
.em-return__cta:focus-visible{outline:2px solid var(--em-gold);outline-offset:3px}
.em-return__say{flex:1 1 220px;min-width:0;text-align:left;font-size:12.5px;line-height:1.4;color:var(--em-parch-dim)}
@media (max-width:520px){.em-return{justify-content:stretch}.em-return__cta{flex:1 1 100%;justify-content:center}.em-return__say{text-align:center;flex-basis:100%}}

/* ── "Just unlocked" — the payoff line for answering a borderline condition (2026-08-08) ──────
   Mirrors .gce-unlocked in eligibility-embed.css (the embed and the standalone map are separate
   builds — change one, change both). A Yes used to be silent: the list re-rendered and the newly
   eligible program sat at rank 5-9, off screen. Ranking now guarantees it slot 2
   (eligibility-score.src.js CONFIRMED_SLOT); this names it so the answer visibly pays. */
.em-unlocked {
  display: block;
  font-size: 13px; line-height: 1.45; color: var(--em-ink, #1d2b24);
  background: var(--em-teal-soft, #E9F2EF); border: 1px solid var(--em-teal, #1F6F5C);
  border-radius: 8px; padding: 9px 12px; margin: 0 0 10px;
}
.em-unlocked__tag {
  display: block; font-size: 10.5px; font-weight: 800; letter-spacing: .08em;
  text-transform: uppercase; color: var(--em-teal, #1F6F5C); margin: 0 0 3px;
}
.em-unlocked__name { display: block; font-weight: 700; }
.em-unlocked__meta { display: block; margin-top: 2px; color: var(--em-ink-2, #55665e); font-variant-numeric: tabular-nums; }
@media (prefers-reduced-motion: no-preference) {
  .em-unlocked { animation: em-unlocked-in .28s ease-out both; }
  @keyframes em-unlocked-in { from { opacity: 0; transform: translateY(-3px); } to { opacity: 1; transform: none; } }
}

/* ── Roadmap auto-generation wait state (2026-08-24, port of the embed's .gce-ag) ──
   Lives inside .em-next--ag on the dark end-panel; parchment ink on forest. */
.em-next--ag { text-align: center; }
.em-ag { padding: 4px 0 2px; }
.em-ag__h {
  font-size: 19px; font-weight: 700; letter-spacing: -.015em;
  color: var(--em-parchment); margin: 10px 0 6px;
}
.em-ag__p {
  font-size: 14.5px; line-height: 1.5; color: var(--em-parch-dim);
  margin: 0 auto 8px; max-width: 44ch;
}
.em-ag__note {
  font-size: 12.5px; line-height: 1.45; color: var(--em-rim);
  margin: 0 auto; max-width: 40ch;
}
.em-next--ag .em-next__trust a { color: var(--em-rim); text-decoration: underline; }
.em-ag__spin {
  width: 26px; height: 26px; margin: 0 auto; border-radius: 50%;
  border: 2.5px solid var(--em-line);
  border-top-color: var(--em-sienna);
  animation: em-ag-spin .9s linear infinite;
}
/* A spinner that cannot spin must not read as a broken ring: with reduced motion the
   ring becomes a static, complete circle in the accent colour. The live region carries
   the real news. */
@media (prefers-reduced-motion: reduce) {
  .em-ag__spin { animation: none; border-color: var(--em-sienna); opacity: .55; }
}
@keyframes em-ag-spin { to { transform: rotate(360deg); } }
@media (max-width: 480px) {
  .em-ag__h { font-size: 17.5px; }
  .em-ag__p { font-size: 14px; }
}

/* ── verdict_card_v1 (2026-08-27): compact verdict end-state — C-top + E-bottom ── */
.em-vhead{display:flex;align-items:flex-start;gap:14px;margin:2px 0 12px;text-align:left}
.em-vhead__n{font-family:'Fraunces',Georgia,serif;font-size:52px;font-weight:700;color:var(--em-gold);line-height:.95;flex:none}
.em-vhead__x{display:flex;flex-direction:column;gap:3px;padding-top:4px}
.em-vhead__t{font-size:17px;font-weight:700;color:var(--em-parchment);line-height:1.3}
.em-vhead__sub{font-size:12.5px;color:var(--em-parch-dim);line-height:1.35}
.em-vbar{display:flex;height:13px;border-radius:8px;overflow:hidden;margin:0 0 7px;background:var(--em-panel-2)}
.em-vbar span{display:block;height:100%}
.em-vbar__q{background:#5ca04d}
.em-vbar__b{background:#8a7433}
.em-vbar__r{background:#3a3740}
.em-vleg{display:flex;flex-wrap:wrap;gap:8px 18px;font-size:12.5px;color:var(--em-parch-dim);margin:0 0 14px;text-align:left}
.em-vleg b{color:var(--em-parchment);font-weight:700}
.em-vleg__dot{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:5px;vertical-align:0}
.em-vleg__dot--q{background:#5ca04d}.em-vleg__dot--b{background:#8a7433}.em-vleg__dot--r{background:#3a3740}
.em-fold{background:var(--em-panel-2);border:1px solid var(--em-line);border-radius:12px;margin:0 0 10px;text-align:left}
.em-fold>summary{cursor:pointer;list-style:none;padding:12px 16px;font-size:14px;font-weight:700;color:var(--em-parchment)}
.em-fold>summary::before{content:'\25B8';display:inline-block;margin-right:8px;color:var(--em-parch-dim);transition:transform .15s}
.em-fold[open]>summary::before{transform:rotate(90deg)}
.em-fold>summary::-webkit-details-marker{display:none}
.em-fold__body{padding:0 16px 14px}
.em-fold--ask>summary{color:var(--em-gold)}
.em-ask--solo{display:flex;flex-direction:column;gap:6px}
.em-ask__skip{background:none;border:0;color:var(--em-parch-dim);font-size:12.5px;text-decoration:underline;cursor:pointer;padding:6px 8px}
.em-vfinal{font-size:13.5px;color:var(--em-parch-dim);border-left:3px solid #5ca04d;padding:8px 12px;margin:0 0 12px;text-align:left}
.em-vreceipt{font-size:12.5px;color:#9dbd93;margin:-2px 0 12px;text-align:left}
/* tooltips: hover/focus affordance for fine pointers; the same facts are one tap away in the
   folds on touch (a hover-only affordance must never be the only route) */
[data-emtip]{border-bottom:1px dotted rgba(203,184,154,.55);cursor:help;position:relative}
@media (pointer:fine){
  [data-emtip]:hover::after,[data-emtip]:focus-visible::after{content:attr(data-emtip);position:absolute;left:0;top:135%;z-index:80;background:var(--em-parchment);color:#26221c;border-radius:8px;padding:9px 12px;font-size:12px;line-height:1.45;width:min(260px,72vw);box-shadow:0 8px 24px rgba(0,0,0,.45);font-weight:400;white-space:normal;text-align:left;pointer-events:none}
}
.em-vbar span[data-emtip]{border-bottom:0}
@media (max-width:560px){
  .em-vhead__n{font-size:42px}
  .em-vhead__t{font-size:15.5px}
  .em-vleg{gap:6px 12px;font-size:12px}
}
/* verdict_card_v1 round-2 fixes (2026-08-27 QA loop) */
.em-ask__lead{font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--em-parch-dim);font-weight:600}
/* tap-toggled tooltip (touch route — hover stays fine-pointer-only) */
[data-emtip].emtip-open::after{content:attr(data-emtip);position:absolute;left:0;top:135%;z-index:80;background:var(--em-parchment);color:#26221c;border-radius:8px;padding:9px 12px;font-size:12px;line-height:1.45;width:min(260px,72vw);box-shadow:0 8px 24px rgba(0,0,0,.45);font-weight:400;white-space:normal;text-align:left}
