@import url("aal-dot.css?v=20261026g"); /* grey dot token (Coop, 26 Oct 2026) */
/* Heat-map upload page (check.html) · "Gallery wall" (white alt 2) · AI Accuracy Lab · 25 Oct 2026
   Load after site.css, hball.css and cta.css, on check.html only. It replaces css/heatmap-upload.css (the hmu- styles).
   Every class starts with hmg-. Neon-on-white: coloured tubes with soft coloured halos. Yellow is never used for text on white.
   Motion: three switch-on groups 1.1 s apart (at most 3 flashes in any second); prefers-reduced-motion turns all of it off. */

@font-face{
  font-family:"Quicksand";
  src:url("../fonts/quicksand-variable.woff2") format("woff2");
  font-weight:300 700;font-style:normal;font-display:swap;
}

/* ---------- Tokens ---------- */
.hmg{
  --hmg-ink:#1D1D1F;
  --hmg-ink-2:#3A3A3F;
  --hmg-muted:#5E5E63;
  --hmg-line:#E6E2DA;
  --hmg-warm:#F7F5F0;
  --hmg-link:#C2410C;
  --hmg-cta:#FFC21A;

  --hmg-tube-red-ink:#E3241B;      /* "AI errors" tube: 4.6:1 on white, large text */
  --hmg-tube-orange-ink:#C2410C;   /* "Check a document for" tube: 5.2:1 on white */
  --hmg-tube-orange:#F45A26;       /* drop-zone tube stroke (decorative) */
  --hmg-icon-orange:#E0501A;       /* tile icon strokes (decorative) */

  /* Stronger halos (Shane, 25 Oct): five layers, widest 64 px */
  --hmg-tube-red:0 0 1px #FF8A7A,0 0 6px rgba(239,46,39,.75),0 0 16px rgba(239,46,39,.55),0 0 34px rgba(239,46,39,.40),0 0 64px rgba(239,46,39,.28);
  --hmg-tube-orange-glow:0 0 1px #FFB070,0 0 6px rgba(244,90,38,.75),0 0 16px rgba(244,90,38,.55),0 0 34px rgba(244,90,38,.40),0 0 64px rgba(244,90,38,.28);

  /* Likelihood glows: the glow carries the colour, the label keeps the dark chip colour */
  --hmg-glow-hi:0 0 0 1.5px rgba(227,36,27,.55),0 0 10px rgba(239,46,39,.55),0 0 24px rgba(239,46,39,.35),0 0 44px rgba(239,46,39,.18);
  --hmg-glow-md:0 0 0 1.5px rgba(232,89,12,.55),0 0 10px rgba(244,90,38,.55),0 0 24px rgba(244,90,38,.35),0 0 44px rgba(244,90,38,.18);
  --hmg-glow-lo:0 0 0 1.5px rgba(222,160,0,.60),0 0 10px rgba(253,192,41,.75),0 0 24px rgba(253,192,41,.50),0 0 44px rgba(250,170,30,.25);

  /* Switch-on start times, 1.1 s apart */
  --hmg-on-1:.3s;
  --hmg-on-2:1.4s;
  --hmg-on-3:2.5s;

  position:relative;overflow:hidden;color:var(--hmg-ink);
  background:
    radial-gradient(46% 22% at 50% 6%,rgba(239,46,39,.07),rgba(239,46,39,0) 72%),
    radial-gradient(40% 16% at 50% 2%,rgba(244,90,38,.06),rgba(244,90,38,0) 72%),
    radial-gradient(60% 24% at 50% 34%,rgba(244,90,38,.05),rgba(244,90,38,0) 72%),
    #FFFFFF;
}
.hmg [hidden]{display:none !important}
.hmg-defs{position:absolute;width:0;height:0;overflow:hidden}
.hmg-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.hmg a{color:var(--hmg-link)}
.hmg a:hover{color:#9A3412}
.hmg :focus-visible{outline:3px solid var(--hmg-link);outline-offset:3px}

.hmg-wrap{
  max-width:1080px;margin:0 auto;box-sizing:border-box;
  padding:clamp(52px,6vw,88px) clamp(20px,3vw,32px) clamp(64px,7vw,96px);
  display:flex;flex-direction:column;align-items:center;text-align:center;
}

/* ---------- Neon headline (h1) ---------- */
.hmg-sign{position:relative;margin-top:22px;width:min(980px,100%);container-type:inline-size}
.hmg-wash{
  position:absolute;left:-8%;right:-8%;top:-30%;bottom:-30%;pointer-events:none;
  background:
    radial-gradient(42% 46% at 50% 64%,rgba(239,46,39,.16),rgba(239,46,39,0) 72%),
    radial-gradient(36% 34% at 50% 22%,rgba(244,90,38,.12),rgba(244,90,38,0) 72%);
}
.hmg-h1{
  position:relative;margin:0;display:flex;flex-direction:column;align-items:center;gap:14px;
  font-family:"Quicksand",Inter,system-ui,sans-serif;font-weight:600;line-height:1.02;letter-spacing:.01em;
}
.hmg-l1{display:block;font-size:clamp(24px,6.2vw,62px);color:var(--hmg-tube-orange-ink);text-shadow:var(--hmg-tube-orange-glow)}
.hmg-l2{display:block;font-size:clamp(42px,11.3vw,112px);white-space:nowrap;color:var(--hmg-tube-red-ink);text-shadow:var(--hmg-tube-red)}
@supports (width:1cqw){
  .hmg-h1{gap:1.4cqw}
  .hmg-l1{font-size:min(6.6cqw,62px)}
  .hmg-l2{font-size:min(12cqw,112px)}
}
.hmg-ball{
  display:inline-block;width:.17em;height:.17em;margin-left:.07em;border-radius:50%;
  background:var(--aal-dot-on-dark,linear-gradient(135deg,#D8D8DC 15%,#9A9AA0 85%));
  box-shadow:none;
}
.hmg-sub{margin:26px auto 0;max-width:620px;font-size:19px;line-height:1.55;color:var(--hmg-muted)}

/* ---------- Upload panel ---------- */
.hmg-panel{
  margin-top:40px;width:100%;max-width:900px;box-sizing:border-box;border-radius:30px;padding:16px;
  background:radial-gradient(70% 90% at 50% 40%,#FFFFFF 0%,#FFFDFB 60%,#FFF6EE 100%);
  box-shadow:0 0 0 1px #EFE7DD,0 0 60px rgba(244,90,38,.12),0 30px 70px rgba(29,29,31,.07);
}
.hmg-drop{
  position:relative;box-sizing:border-box;border-radius:22px;
  padding:clamp(34px,5vw,60px) clamp(18px,3vw,36px);
  display:flex;flex-direction:column;align-items:center;text-align:center;
  background-color:transparent;transition:background-color .25s ease;
}
.hmg-drop.is-over{background-color:#FFF4EC}
.hmg-tube{
  position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;
  filter:drop-shadow(0 0 2px rgba(244,90,38,.8)) drop-shadow(0 0 7px rgba(244,90,38,.40));
  transition:filter .25s ease;
}
.hmg-tube rect{fill:none;stroke:var(--hmg-tube-orange);stroke-width:2.6;stroke-dasharray:11 9;stroke-linecap:round}
.hmg-drop:hover .hmg-tube,
.hmg-drop:focus-within .hmg-tube{filter:drop-shadow(0 0 3px rgba(244,90,38,.9)) drop-shadow(0 0 10px rgba(244,90,38,.55))}
.hmg-drop.is-over .hmg-tube{filter:drop-shadow(0 0 3px rgba(244,90,38,1)) drop-shadow(0 0 10px rgba(244,90,38,.75)) drop-shadow(0 0 24px rgba(244,90,38,.40))}
.hmg-upicon{position:relative;filter:drop-shadow(0 0 4px rgba(244,90,38,.6)) drop-shadow(0 0 12px rgba(244,90,38,.28))}
.hmg-upicon path{fill:none;stroke:var(--hmg-icon-orange);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.hmg-drop h2{position:relative;margin:16px 0 0;font-size:26px;line-height:1.2;font-weight:800;letter-spacing:-.02em}
.hmg-or{position:relative;margin:8px 0 0;font-size:15px;color:var(--hmg-muted)}

/* The file input stays in the tab order but is visually hidden; its label is the visible button. */
.hmg-input{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden}
.hmg-pick{
  position:relative;margin-top:14px;display:inline-flex;align-items:center;justify-content:center;
  min-height:56px;padding:0 34px;border-radius:999px;background:var(--hmg-cta);color:var(--hmg-ink);
  font-size:17px;font-weight:700;cursor:pointer;
  box-shadow:0 0 10px rgba(253,192,41,.55),0 0 26px rgba(250,138,43,.22);transition:box-shadow .2s ease;
}
.hmg-pick:hover{box-shadow:0 0 16px rgba(253,192,41,.75),0 0 36px rgba(250,138,43,.35)}
.hmg-input:focus-visible + .hmg-pick{outline:3px solid var(--hmg-link);outline-offset:3px}
/* Live-safe state while upload is switched off (input disabled, label aria-disabled) */
.hmg-pick[aria-disabled="true"]{background:#E9E5DE;color:#5A564F;box-shadow:none;cursor:not-allowed}
.hmg-soon{position:relative;margin:12px 0 0;font-size:15px;color:var(--hmg-muted)}
.hmg-error{position:relative;margin:14px 0 0;font-size:15px;font-weight:600;color:#B4152B}
.hmg-rules{
  position:relative;margin:24px 0 0;padding:0;list-style:none;
  display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px 24px;
  font-size:15px;color:var(--hmg-ink-2);
}
.hmg-rules li{display:inline-flex;align-items:center;gap:8px}
.hmg-pro{display:inline-flex;align-items:center;min-height:24px;padding:0 10px;border-radius:999px;background:var(--hmg-ink);color:#FFFFFF;font-size:12px;font-weight:700;letter-spacing:.02em}

/* Chosen-file state */
.hmg-ready{
  position:relative;box-sizing:border-box;border-radius:22px;padding:clamp(24px,3.4vw,40px);text-align:left;
  background:#FFF8F3;box-shadow:inset 0 0 0 2.5px var(--hmg-tube-orange),0 0 12px rgba(244,90,38,.40),0 0 30px rgba(244,90,38,.16);
}
.hmg-ready-row{display:flex;flex-wrap:wrap;align-items:center;gap:16px 20px}
.hmg-ready-ic{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:16px;background:#FFFFFF;box-shadow:0 0 0 1px var(--hmg-line),0 0 14px rgba(244,90,38,.25)}
.hmg-ready-ic path{fill:none;stroke:var(--hmg-ink);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.hmg-ready-txt{flex:1 1 260px;min-width:0}
.hmg-ready-name{margin:0;font-size:19px;font-weight:700;overflow-wrap:anywhere}
.hmg-ready-note{margin:4px 0 0;font-size:15px;color:var(--hmg-muted)}
.hmg-ready-acts{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px}
.hmg-remove{min-height:44px;padding:0 8px;border:0;background:transparent;color:var(--hmg-link);font:inherit;font-size:16px;font-weight:600;cursor:pointer}
.hmg-go{
  display:inline-flex;align-items:center;justify-content:center;min-height:54px;padding:0 30px;border:0;border-radius:999px;
  background:var(--hmg-cta);color:var(--hmg-ink);font:inherit;font-size:17px;font-weight:700;cursor:pointer;
  box-shadow:0 0 12px rgba(253,192,41,.6),0 0 30px rgba(250,138,43,.25);
}

/* Under the panel */
.hmg-foot{margin-top:24px;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:12px 22px}
.hmg-caut{margin:0;display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:12px;background:#FDEBDF;color:#8A3409;font-size:15px;font-weight:600;box-shadow:0 0 12px rgba(242,99,42,.18)}
.hmg-caut svg path{fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.hmg-ex{margin:0;font-size:16px;color:var(--hmg-muted)}
.hmg-ex a{font-weight:600;text-decoration:none}
.hmg-legal{margin:14px auto 0;max-width:640px;font-size:14px;line-height:1.55;color:var(--hmg-muted)}
.hmg-legal a{color:var(--hmg-ink)}

/* ---------- What we check ---------- */
.hmg-check{margin-top:clamp(64px,8vw,104px);width:100%}
.hmg-k{margin:0;font-size:13px;font-weight:600;letter-spacing:1.2px;text-transform:uppercase;color:var(--hmg-muted)}
.hmg-check h2{margin:12px 0 0;font-size:clamp(28px,3.4vw,40px);line-height:1.1;font-weight:800;letter-spacing:-.03em}
.hmg-check h2 .hdot{filter:none}
.hmg-s{margin:10px 0 0;font-size:16.5px;color:var(--hmg-muted)}
.hmg-tiles{margin:32px 0 0;padding:0;list-style:none;display:grid;grid-template-columns:minmax(0,1fr);gap:18px;text-align:left}
@media (min-width:600px){.hmg-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:900px){.hmg-tiles{grid-template-columns:repeat(3,minmax(0,1fr))}}
.hmg-tile{
  box-sizing:border-box;padding:24px 24px 22px;border-radius:22px;background:#FFFFFF;
  box-shadow:0 0 0 1px var(--hmg-line),0 12px 30px rgba(29,29,31,.04);
  transition:box-shadow .25s ease,transform .25s ease;
}
.hmg-tile:hover{box-shadow:0 0 0 1.5px rgba(244,90,38,.55),0 0 18px rgba(244,90,38,.25),0 18px 40px rgba(29,29,31,.06);transform:translateY(-3px)}
.hmg-ic{display:block;width:46px;height:46px;filter:drop-shadow(0 0 3px rgba(244,90,38,.75)) drop-shadow(0 0 9px rgba(244,90,38,.35));transition:filter .25s ease}
.hmg-tile:hover .hmg-ic{filter:drop-shadow(0 0 4px rgba(244,90,38,.95)) drop-shadow(0 0 12px rgba(244,90,38,.55))}
.hmg-ic g{fill:none;stroke:var(--hmg-icon-orange);stroke-width:2.3;stroke-linecap:round;stroke-linejoin:round}
.hmg-tt{margin:16px 0 0;font-size:18px;font-weight:700}
.hmg-td{margin:4px 0 0;font-size:15px;line-height:1.5;color:var(--hmg-muted)}

/* Rating row */
.hmg-rate{
  margin:30px auto 0;max-width:820px;box-sizing:border-box;
  display:flex;flex-direction:column;justify-content:center;align-items:center;gap:12px;
  padding:18px 26px;border-radius:28px;background:var(--hmg-warm);
}
.hmg-lv{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px 10px}
.hmg-lv-k{font-size:15px;color:var(--hmg-ink-2)}
.hmg-bd{display:inline-flex;align-items:center;gap:6px;min-height:30px;padding:0 12px;border-radius:999px;font-size:14px;font-weight:700}
.hmg-dot{width:10px;height:10px;border-radius:50%;flex:0 0 auto}
.hmg-bd.hi .hmg-dot{background:#E3241B;box-shadow:0 0 0 2px #fff,0 0 8px 3px rgba(239,46,39,.65)}
.hmg-bd.md .hmg-dot{background:#F45A26;box-shadow:0 0 0 2px #fff,0 0 6px 2px rgba(244,90,38,.5)}
.hmg-bd.lo .hmg-dot{background:#FDC029;box-shadow:0 0 0 2px #fff,0 0 4px 1px rgba(253,192,41,.5)}
.hmg-bd.hi{background:#FDE8EA;color:#B4152B;box-shadow:var(--hmg-glow-hi)}
.hmg-bd.md{background:#FDEBDF;color:#A3410B;box-shadow:var(--hmg-glow-md)}
.hmg-bd.lo{background:#FFF2C2;color:#7A5200;box-shadow:var(--hmg-glow-lo)}
.hmg-next{margin:0;font-size:15px;line-height:1.5;color:var(--hmg-ink-2)}
.hmg-next b{color:var(--hmg-ink)}

/* ---------- Switch-on (flicker) ---------- */
@keyframes hmg-on{0%,4%{opacity:.08}5%{opacity:1}7%{opacity:.15}10%{opacity:1}13%{opacity:.3}16%,100%{opacity:1}}
.hmg-on{animation:hmg-on 2.4s linear var(--hmg-on-1) both}
.hmg-on2{animation:hmg-on 2.4s linear var(--hmg-on-2) both}
.hmg-late{animation:hmg-on 2.4s linear var(--hmg-on-3) both}

/* Reduced motion beats every animation and transition above (higher specificity + !important). */
@media (prefers-reduced-motion:reduce){
  .hmg .hmg-on,.hmg .hmg-on2,.hmg .hmg-late{animation:none !important;opacity:1 !important}
  .hmg .hmg-drop,.hmg .hmg-tube,.hmg .hmg-pick,.hmg .hmg-tile,.hmg .hmg-ic{transition:none !important}
  .hmg .hmg-tile:hover{transform:none !important}
}
/* Windows high-contrast: drop the glows, keep the shapes */
@media (forced-colors:active){
  .hmg-l1,.hmg-l2{text-shadow:none}
  .hmg-tube,.hmg-ic,.hmg-upicon{filter:none}
  .hmg-bd{border:1px solid CanvasText}
}
