:root {
  --bg:#07090d;
  --surface:#121820;
  --ink:#f4f0df;
  --muted:#9aa9b9;
  --blue:#315cff;
  --red:#be1e2d;
  --teal:#a9c3c6;
  --line:rgba(180,205,224,.16);
  --dem:#0105b4;
  --even:#683c86;
  font-family:Manrope,sans-serif;
  color:var(--ink);
  background:var(--bg);
  font-synthesis:none
}
* {
  box-sizing:border-box
}
html {
  scroll-behavior:smooth;
  scroll-padding-top:100px
}
body {
  margin:0
}
button,a,input {
  -webkit-tap-highlight-color:transparent
}
button {
  font:inherit
}
a {
  color:inherit;
  text-decoration:none
}
button,a {
  touch-action:manipulation
}
button {
  cursor:pointer
}
button:focus-visible,a:focus-visible {
  outline:2px solid #97aaff;
  outline-offset:6px
}
h1,h2,h3,p {
  margin:0
}
img {
  max-width:100%;
  height:auto;
  display:block
}
svg {
  display:block
}
.icon-library {
  position:absolute;
  width:0;
  height:0;
  overflow:hidden
}
.icon {
  width:24px;
  height:24px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
  flex-shrink:0
}
button[hidden] {
  display:none
}
.wrap {
  width:min(1240px,calc(100% - 88px));
  margin-inline:auto
}
.skip-link {
  position:fixed;
  z-index:30;
  top:8px;
  left:8px;
  padding:12px;
  background:var(--ink);
  color:var(--bg);
  transform:translateY(-160%)
}
.skip-link:focus {
  transform:none
}
.site-head {
  position:absolute;
  z-index:10;
  top:0;
  left:0;
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:24px 44px
}
.brand {
  width:224px;
  flex-shrink:0
}
.brand-wordmark {
  display:block;
  width:100%;
  height:auto;
  overflow:visible
}
.site-head nav {
  display:flex;
  align-items:center;
  gap:34px;
  font-size:12px;
  font-weight:700
}
.site-head nav>a:not(.nav-open) {
  color:#c0cad3
}
.site-head nav>a:hover {
  color:white
}
.nav-open {
  display:flex;
  gap:14px;
  align-items:center;
  padding:15px 20px;
  border:1px solid #9cadc64d;
  background:#14192280;
  border-radius:4px
}
.nav-open .icon {
  width:18px;
  height:18px
}
.eyebrow,.mini-label,.illustration-tag {
  font-size:10px;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase
}
.eyebrow {
  display:flex;
  align-items:center;
  gap:10px;
  color:#a8bdcc
}
.crosshair {
  font-size:24px;
  line-height:1;
  font-weight:400;
  color:var(--teal)
}
.hero {
  position:relative;
  min-height:830px;
  height:min(930px,100svh);
  isolation:isolate;
  overflow:hidden;
  background:#06080c
}
.hero-atmosphere {
  position:absolute;
  inset:0;
  z-index:-3;
  background:radial-gradient(ellipse at 84% 25%,#17375333,transparent 45%),radial-gradient(ellipse at 75% 75%,#be1e2d17,transparent 45%),linear-gradient(100deg,#080a0e 25%,#080c14 65%,#05080c)
}
.hero-atmosphere::after {
  content:"";
  position:absolute;
  inset:0;
  opacity:.35;
  background-image:radial-gradient(#9ebed14d .6px,transparent .8px);
  background-size:24px 24px;
  mask-image:linear-gradient(90deg,transparent 30%,black)
}
.hero-content {
  position:relative;
  z-index:3;
  pointer-events:none;
  padding-top:200px
}
.hero-content a {
  pointer-events:auto
}
.hero h1 {
  font-size:clamp(60px,6.4vw,92px);
  font-weight:500;
  letter-spacing:-.062em;
  line-height:1.03;
  margin-top:28px;
  max-width:650px
}
.spectral-text {
  background:linear-gradient(100deg,#adc9d8 0%,#7896fd 42%,#e75860 93%);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent
}
.hero-copy {
  color:#b7c4ce;
  font-size:16px;
  line-height:1.75;
  margin-top:26px;
  max-width:370px
}
.hero-actions {
  display:flex;
  align-items:center;
  gap:28px;
  margin-top:30px
}
.button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:18px;
  padding:18px 22px;
  font-size:12px;
  font-weight:700;
  border-radius:4px;
  transition:background .2s,transform .2s;
  min-height:52px
}
.button-primary {
  background:var(--red);
  color:#fff5ef;
  border:1px solid #e1556380;
  box-shadow:0 0 30px #be1e2d18
}
.button-primary:hover {
  background:#d5293c;
  transform:translateY(-2px)
}
.button .icon {
  width:20px;
  height:20px
}
.text-link {
  display:inline-flex;
  align-items:center;
  gap:18px;
  font-size:12px;
  font-weight:700;
  min-height:44px
}
.text-link:hover {
  color:#b4c5ff
}
.text-link>span {
  font-size:20px
}
.text-link .icon {
  width:20px;
  height:20px
}
.hero-note {
  margin-top:26px;
  font-size:10px;
  line-height:1.6;
  color:#758696
}
.hero-visual {
  position:absolute;
  z-index:1;
  right:-5%;
  top:70px;
  width:78%;
  height:calc(100% - 120px);
  pointer-events:none;
  mask-image:linear-gradient(90deg,transparent,black 15%)
}
.hero-visual canvas,.terrain-fallback {
  position:absolute;
  inset:0;
  width:100%;
  height:100%
}
.terrain-fallback {
  opacity:.45
}
.hero-visual.has-canvas .terrain-fallback {
  display:none
}
.terrain-core {
  position:absolute;
  width:100px;
  height:100px;
  left:58%;
  top:47%;
  padding:21px;
  border:1px solid #a9c3c633;
  border-radius:50%;
  background:radial-gradient(#253345,#101721);
  box-shadow:0 0 50px #4c80ff21,inset 0 0 16px #d1efff11;
  transform:translate(-50%,-50%)
}
.terrain-core::before {
  content:"";
  position:absolute;
  inset:-12px;
  border:1px dashed #8296c94d;
  border-radius:50%
}
.terrain-core img {
  width:100%;
  height:100%;
  object-fit:contain
}
.terrain-label {
  position:absolute;
  display:flex;
  align-items:center;
  gap:10px;
  border:1px solid var(--line);
  padding:11px 15px;
  backdrop-filter:blur(8px);
  background:#101620aa;
  font:9px Manrope,sans-serif;
  letter-spacing:.08em;
  color:#aabbce;
  box-shadow:0 15px 50px #0004
}
.label-one {
  left:47%;
  top:22%
}
.label-two {
  left:68%;
  top:65%
}
.label-two .icon {
  width:17px;
  height:17px;
  color:#8badc5
}
.terrain-coordinate {
  position:absolute;
  bottom:60px;
  right:18%;
  font-size:9px;
  color:#a1b3c4;
  letter-spacing:.13em;
  line-height:2
}
.terrain-coordinate span {
  display:block;
  font-size:8px;
  color:#6e8296;
  letter-spacing:.02em
}
.hero-bottom {
  position:absolute;
  left:0;
  right:0;
  bottom:24px;
  z-index:4;
  display:flex;
  align-items:center;
  justify-content:space-between;
  border-top:1px solid var(--line);
  padding-top:18px;
  color:#8c9dad
}
.hero-bottom>.mini-label {
  font-size:9px
}
.party-key {
  display:flex;
  align-items:center;
  gap:24px;
  font-size:9px;
  font-weight:700;
  letter-spacing:.05em
}
.party-key>span {
  display:flex;
  align-items:center;
  gap:8px
}
.signal-dot {
  display:inline-block;
  width:9px;
  height:9px;
  border-radius:50%;
  box-shadow:0 0 0 1px #edf6ff70
}
.dem {
  background:var(--dem)
}
.rep {
  background:var(--red)
}
.even {
  background:var(--even)
}
.motion-toggle {
  display:flex;
  gap:8px;
  align-items:center;
  min-height:36px;
  border:0;
  background:none;
  padding:3px;
  color:#7f92a6;
  font-size:9px
}
.pause-mark {
  font-size:13px
}
.capability-rail {
  display:flex;
  justify-content:space-between;
  gap:16px;
  padding:30px 0;
  border-bottom:1px solid var(--line);
  color:#a8b5c1;
  font-size:11px
}
.capability-rail>span {
  display:flex;
  gap:12px;
  align-items:center
}
.capability-rail .icon {
  width:20px;
  height:20px;
  color:#8bb1c4
}
.explore-section {
  padding:105px 0 0
}
.section-intro {
  display:grid;
  grid-template-columns:1.4fr 1fr;
  gap:60px;
  align-items:end;
  margin-bottom:46px
}
h2 {
  font-size:clamp(40px,4.3vw,64px);
  font-weight:500;
  letter-spacing:-.055em;
  line-height:1.1
}
h2>span {
  color:#7e91a4
}
.section-intro h2 {
  margin-top:23px
}
.section-intro>p {
  font-size:14px;
  line-height:1.9;
  color:var(--muted);
  max-width:395px;
  padding-bottom:6px
}
.explore-console {
  border:1px solid #a4bac130;
  background:linear-gradient(140deg,#151e28,#0e1219);
  border-radius:10px;
  overflow:hidden;
  box-shadow:0 35px 70px #0005
}
.console-toolbar {
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:16px 24px;
  border-bottom:1px solid var(--line);
  background:#0d121acc;
  gap:16px
}
.console-brand {
  display:flex;
  align-items:center;
  gap:12px;
  font-size:9px;
  letter-spacing:.11em;
  color:#a2b9c8
}
.console-brand img {
  width:28px;
  height:28px;
  object-fit:contain
}
.illustration-tag {
  font-size:8px;
  letter-spacing:.08em;
  color:#7d94a7
}
.console-body {
  display:grid;
  grid-template-columns:1.65fr 1fr;
  min-height:495px
}
.map-visual {
  position:relative;
  overflow:hidden;
  border-right:1px solid var(--line);
  background:#0c141b
}
.map-grid {
  position:absolute;
  inset:0;
  background-image:linear-gradient(#829fac0d 1px,transparent 1px),linear-gradient(90deg,#829fac0d 1px,transparent 1px);
  background-size:24px 24px
}
.street-map {
  position:absolute;
  width:100%;
  height:100%;
  opacity:.95
}
.city-roads {
  opacity:.28
}
.map-pins {
  filter:drop-shadow(0 3px 8px #000)
}
.map-radius {
  filter:drop-shadow(0 0 15px #315cff33)
}
.map-hud {
  position:absolute;
  top:18px;
  left:20px;
  right:20px;
  display:flex;
  justify-content:space-between;
  font-size:8px;
  font-weight:700;
  letter-spacing:.1em;
  color:#97abba
}
.map-hud>span:last-child {
  color:#99b3ff;
  border:1px solid #315cff45;
  padding:7px 9px;
  background:#111c2c
}
.map-hud>span:first-child {
  padding-top:8px
}
.map-scale {
  position:absolute;
  bottom:20px;
  left:20px;
  color:#6f8798;
  font-size:8px
}
.map-scale>span {
  display:block;
  width:54px;
  border:1px solid #708796;
  border-top:0;
  height:5px;
  margin-bottom:7px
}
.map-sweep {
  transform-origin:348px 270px;
  animation:map-scan 18s linear infinite
}
.mode-route,.mode-area {
  display:none
}
[data-mode=route] .mode-nearby,[data-mode=area] .mode-nearby {
  display:none
}
[data-mode=route] .mode-route,[data-mode=area] .mode-area {
  display:block
}
.route-line {
  animation:route-dash 10s linear infinite
}
.console-controls {
  padding:38px 32px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center
}
.console-controls>.mini-label {
  color:#8097a8;
  font-size:9px
}
.view-switch {
  display:flex;
  gap:4px;
  padding:5px;
  border:1px solid var(--line);
  background:#080e16;
  border-radius:5px;
  margin-top:15px;
  width:100%
}
.view-switch button {
  display:flex;
  flex:1;
  align-items:center;
  justify-content:center;
  gap:7px;
  padding:11px 8px;
  border:0;
  border-radius:3px;
  background:transparent;
  color:#8e9fac;
  font-size:10px;
  min-height:44px
}
.view-switch button[aria-pressed=true] {
  background:#25364b;
  color:#e5eefc;
  box-shadow:0 2px 10px #0005
}
.view-switch .icon {
  width:17px;
  height:17px
}
#view-copy {
  min-height:149px;
  padding-top:27px
}
#view-copy h3 {
  font-size:22px;
  font-weight:500;
  letter-spacing:-.04em;
  line-height:1.35;
  max-width:290px
}
#view-copy p {
  font-size:12px;
  line-height:1.85;
  margin-top:15px;
  color:#8e9fad;
  max-width:300px
}
.feature-list {
  list-style:none;
  margin:22px 0;
  padding:0
}
.feature-list li {
  position:relative;
  padding-left:17px;
  color:#adbeca;
  font-size:11px;
  line-height:1.7;
  margin:9px 0
}
.feature-list li::before {
  content:"+";
  position:absolute;
  left:0;
  color:#6d96b9
}
.console-controls>.text-link {
  font-size:11px
}
.signal-section {
  display:grid;
  grid-template-columns:1fr 1.1fr;
  align-items:center;
  gap:100px;
  padding:125px 0
}
.signal-copy h2 {
  margin-top:24px
}
.signal-copy>p:not(.eyebrow) {
  color:var(--muted);
  line-height:1.85;
  font-size:14px;
  margin-top:23px;
  max-width:380px
}
.signal-copy .small-copy {
  font-size:10px!important;
  max-width:355px!important;
  color:#708598!important
}
.signal-machine {
  border:1px solid #a3b5cf33;
  border-radius:9px;
  background:radial-gradient(ellipse at 80% 70%,#17336b33,transparent 65%),#10151d;
  padding:24px;
  box-shadow:0 25px 80px #0005;
  position:relative;
  overflow:hidden
}
.signal-machine::after {
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background-image:radial-gradient(#8badc00f 1px,transparent 1px);
  background-size:16px 16px
}
.machine-top {
  display:flex;
  align-items:center;
  gap:10px;
  font-size:8px;
  letter-spacing:.1em;
  color:#9eb3c5
}
.machine-top>.icon {
  color:#aac8d5;
  width:18px;
  height:18px
}
.machine-top>.illustration-tag {
  margin-left:auto;
  font-size:7px
}
.contribution-bars {
  display:grid;
  gap:19px;
  margin-top:47px
}
.bar-row {
  display:flex;
  align-items:center;
  gap:15px;
  font-size:10px;
  font-weight:700;
  color:#a9b9ca
}
.bar-row>b {
  font-size:14px;
  font-weight:600;
  width:38px
}
.bar-track {
  flex:1;
  overflow:hidden;
  height:38px;
  border:1px solid #a3b7cc13;
  background:repeating-linear-gradient(90deg,#8aaac90a 0 1px,transparent 1px 21px)
}
.bar-track>i {
  display:block;
  height:100%;
  position:relative
}
.bar-dem {
  width:51%;
  background:linear-gradient(90deg,#182a6c,#315cff);
  border-right:1px solid #a0b6ff;
  box-shadow:0 0 15px #315cff40
}
.bar-rep {
  width:49%;
  background:linear-gradient(90deg,#531622,#be1e2d);
  border-right:1px solid #f59a98
}
.machine-connector {
  position:relative;
  height:85px;
  margin:3px 36px 0;
  color:#768faa55
}
.machine-connector svg {
  width:100%;
  height:100%
}
.data-packet {
  position:absolute;
  left:50%;
  bottom:0;
  width:4px;
  height:13px;
  background:#7392ff;
  box-shadow:0 0 12px #5f86ff;
  animation:data-flow 3s ease-in-out infinite
}
.signal-output {
  display:flex;
  align-items:center;
  gap:25px;
  padding:20px;
  border:1px solid #315cff33;
  background:#101b2c88;
  border-radius:4px
}
.big-pin {
  display:block;
  width:51px;
  height:51px;
  flex-shrink:0;
  border:3px solid var(--ink);
  border-radius:50%;
  box-shadow:0 0 0 8px #315cff12,0 0 38px #315cff38
}
.signal-output strong {
  font-size:18px;
  letter-spacing:-.03em;
  font-weight:600;
  display:block;
  margin:8px 0
}
.signal-output .mini-label {
  font-size:7px;
  color:#7d97c9
}
.signal-output small {
  color:#8d9eb8;
  font-size:9px;
  line-height:1.7;
  display:block;
  max-width:230px
}
.machine-foot {
  display:flex;
  justify-content:space-between;
  gap:15px;
  border-top:1px solid var(--line);
  margin-top:26px;
  padding-top:17px;
  font-size:8px;
  color:#8ca2b5;
  letter-spacing:.04em
}
.comparison-section {
  padding-bottom:125px
}
.comparison-notice {
  display:flex;
  gap:15px;
  align-items:center;
  padding:17px 22px;
  border:1px solid #a9c3c62b;
  border-bottom:0;
  border-radius:10px 10px 0 0;
  background:#a9c3c609;
  color:#a8bac8;
  font-size:11px;
  line-height:1.8
}
.comparison-notice strong {
  color:var(--ink);
  margin-right:10px
}
.comparison-notice .icon {
  width:20px;
  height:20px;
  color:var(--teal)
}
.comparison-console {
  border:1px solid #a4bac130;
  border-radius:0 0 10px 10px;
  overflow:hidden;
  background:#10151d
}
.comparison-toolbar {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:18px 24px;
  border-bottom:1px solid var(--line)
}
.giving-switch {
  display:flex;
  gap:3px;
  padding:4px;
  border:1px solid var(--line);
  background:#080e16;
  border-radius:5px
}
.giving-switch button {
  min-height:44px;
  padding:10px 15px;
  border:0;
  border-radius:3px;
  background:transparent;
  color:#9baebf;
  font-size:11px;
  font-weight:700
}
.giving-switch button[aria-pressed=true] {
  background:#25364b;
  color:var(--ink)
}
.comparison-body {
  display:grid;
  grid-template-columns:.9fr 1.1fr
}
.comparison-stage {
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:17px;
  min-height:340px;
  padding:26px;
  background:radial-gradient(ellipse at 25% 60%,#315cff16,transparent 60%),radial-gradient(ellipse at 85% 40%,#be1e2d16,transparent 60%),repeating-linear-gradient(0deg,#a9c3c608 0 1px,transparent 1px 28px),repeating-linear-gradient(90deg,#a9c3c608 0 1px,transparent 1px 28px)
}
.comparison-stage>.mini-label {
  color:#a1b7c8;
  font-size:8px;
  text-align:center
}
.comparison-marker {
  position:relative;
  width:88px;
  height:88px;
  margin:27px;
  flex-shrink:0;
  border:3px solid var(--ink);
  border-radius:50%;
  background:var(--red);
  box-shadow:0 10px 35px #0007
}
[data-giving-mode=employee] .comparison-marker {
  background:var(--dem)
}
[data-giving-mode=compare] .comparison-marker::before {
  content:"";
  position:absolute;
  inset:-22px;
  border:10px solid var(--dem);
  border-radius:50%;
  box-shadow:0 0 0 2px var(--ink),inset 0 0 0 2px var(--ink)
}
.comparison-stage>p {
  color:#d4dfeb;
  font-size:12px;
  line-height:1.8;
  text-align:center
}
.comparison-key {
  color:#98adbf;
  font-size:10px
}
.comparison-ledger {
  display:grid;
  align-content:center;
  padding:12px 32px;
  border-left:1px solid var(--line)
}
.comparison-activity {
  padding:22px 0
}
.comparison-activity[hidden] {
  display:none
}
.comparison-activity:not([hidden])~.comparison-activity {
  border-top:1px solid var(--line)
}
.comparison-row {
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:12px
}
.comparison-row h3 {
  font-size:15px;
  font-weight:600;
  letter-spacing:-.025em
}
.comparison-row>span {
  color:#91a5b8;
  font-size:9px;
  text-align:right
}
.comparison-shares {
  display:flex;
  gap:30px;
  margin:17px 0 12px;
  font-size:11px;
  font-weight:700
}
.comparison-shares b {
  font-size:22px;
  font-weight:600;
  margin-left:6px
}
.dem-share {
  color:#8c9fff
}
.rep-share {
  color:#ff8794
}
.comparison-bar {
  display:flex;
  height:5px;
  border-radius:4px;
  overflow:hidden
}
.comparison-activity>p {
  color:#94a7b9;
  font-size:10px;
  line-height:1.85;
  margin-top:12px
}
.comparison-bottom {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:30px;
  padding:17px 24px;
  border-top:1px solid var(--line)
}
.comparison-bottom>p {
  color:#a5b5c5;
  font-size:11px;
  line-height:1.8;
  max-width:690px
}
.comparison-bottom .text-link {
  flex-shrink:0;
  color:#bbcbff;
  font-size:11px
}
.comparison-facts {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:40px;
  margin-top:40px
}
.comparison-facts .mini-label {
  color:#809caf;
  font-size:8px
}
.comparison-facts h3 {
  font-size:19px;
  font-weight:500;
  letter-spacing:-.035em;
  margin:14px 0
}
.comparison-facts p {
  color:#9caebd;
  font-size:12px;
  line-height:1.9
}
.comparison-facts a {
  color:#b4c6ff;
  text-decoration:underline;
  text-underline-offset:3px
}
.comparison-footnote {
  color:#8a9eae;
  font-size:10px;
  line-height:1.9;
  margin-top:30px;
  padding-top:20px;
  border-top:1px solid var(--line)
}
.carry-section {
  display:grid;
  grid-template-columns:1.1fr 1fr;
  align-items:center;
  gap:100px;
  padding-bottom:135px
}
.carry-copy h2 {
  margin-top:24px
}
.carry-copy>p:not(.eyebrow) {
  color:var(--muted);
  line-height:1.85;
  font-size:14px;
  margin-top:23px;
  max-width:390px
}
.paper-scene {
  position:relative;
  height:475px;
  overflow:clip;
  display:grid;
  place-items:center;
  perspective:1200px;
  background:radial-gradient(ellipse at 50% 50%,#38446325,transparent 70%)
}
.paper-orbit {
  position:absolute;
  top:5%;
  left:7%;
  height:90%;
  width:85%;
  border:1px solid #809aa522;
  border-radius:50%;
  transform:rotate(-30deg)
}
.paper-orbit::before,.paper-orbit::after {
  content:"";
  position:absolute;
  border:1px solid #809aa515;
  border-radius:50%;
  inset:20px -40px;
  transform:rotate(40deg)
}
.paper-orbit::after {
  transform:rotate(80deg)
}
.export-tag {
  position:absolute;
  right:0;
  top:8px;
  display:flex;
  align-items:center;
  gap:10px;
  font-size:8px;
  letter-spacing:.1em;
  color:#b1c4d0;
  padding:14px 18px;
  background:#18222c;
  border:1px solid var(--line);
  z-index:2;
  box-shadow:0 10px 30px #0006
}
.export-tag>.icon {
  color:#f67f8c;
  width:20px;
  height:20px
}
.result-paper {
  position:relative;
  z-index:1;
  width:294px;
  padding:28px;
  background:#f4f0df;
  color:#172437;
  border-radius:2px;
  transform:rotateX(7deg) rotateY(-13deg) rotateZ(-8deg);
  box-shadow:10px 10px 0 #809ba526,20px 20px 0 #809ba512,25px 40px 65px #0009
}
.result-paper>img {
  width:155px;
  height:auto
}
.paper-title {
  font-size:18px;
  letter-spacing:-.04em;
  font-weight:700;
  margin-top:22px
}
.paper-meta {
  display:block;
  font-size:6px;
  letter-spacing:.13em;
  color:#85919b;
  margin-top:7px
}
.paper-rule {
  border-bottom:1px solid #7c8b9b77;
  margin:15px 0 0
}
.paper-row {
  display:flex;
  gap:11px;
  align-items:center;
  border-bottom:1px solid #8796a633;
  min-height:44px
}
.paper-row>i {
  display:block;
  width:7px;
  height:7px;
  border-radius:50%
}
.paper-name {
  display:block;
  height:5px;
  width:114px;
  border-radius:1px
}
.paper-name.short {
  width:80px
}
.paper-name.blue {
  background:#0105b4aa
}
.paper-name.red {
  background:#be1e2dbb
}
.paper-distance {
  margin-left:auto;
  display:block;
  height:3px;
  width:21px;
  background:#9ba6ae
}
.paper-bottom {
  font-size:6px;
  margin-top:19px;
  color:#81909e
}
.floating-pin {
  position:absolute;
  width:42px;
  height:42px;
  border:3px solid var(--ink);
  border-radius:50%;
  box-shadow:0 0 20px #0007;
  z-index:2;
  animation:pin-float 9s ease-in-out infinite
}
.pin-blue {
  background:#0105b4;
  left:5%;
  top:22%
}
.pin-red {
  background:var(--red);
  right:6%;
  bottom:19%;
  animation-delay:-4s
}
.method-section {
  background:#0f141b;
  padding:85px 0;
  border-block:1px solid var(--line);
  position:relative;
  overflow:hidden
}
.method-section::before {
  content:"";
  position:absolute;
  width:600px;
  height:600px;
  border-radius:50%;
  top:-350px;
  right:-100px;
  border:1px solid #a9c3c61c;
  box-shadow:0 0 0 50px #a9c3c603,0 0 0 100px #a9c3c602;
  pointer-events:none
}
.evidence-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:40px;
  border-top:1px solid var(--line);
  padding-top:35px
}
.evidence-grid article+article {
  border-left:1px solid var(--line);
  padding-left:35px
}
.evidence-grid .icon {
  color:#aac6d0;
  margin-bottom:24px;
  width:29px;
  height:29px
}
.evidence-grid h3 {
  font-weight:500;
  font-size:18px;
  letter-spacing:-.03em
}
.evidence-grid p {
  font-size:11px;
  line-height:1.9;
  color:#8397a8;
  margin-top:16px;
  max-width:300px
}
.method-bottom {
  margin-top:45px;
  padding-top:25px;
  border-top:1px solid var(--line);
  display:flex;
  justify-content:space-between;
  gap:60px;
  align-items:center
}
.method-bottom>p {
  max-width:725px;
  font-size:10px;
  line-height:1.8;
  color:#71879a
}
.method-bottom>.text-link {
  flex-shrink:0
}
.questions-section {
  display:grid;
  grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);
  gap:80px;
  padding-block:95px
}
.questions-intro h2 {
  margin:22px 0
}
.questions-intro>p:not(.eyebrow) {
  max-width:360px;
  color:var(--muted);
  font-size:13px;
  line-height:1.9
}
.questions-intro .text-link {
  margin-top:28px;
  font-size:11px
}
.questions-list details {
  border-top:1px solid var(--line)
}
.questions-list details:last-child {
  border-bottom:1px solid var(--line)
}
.questions-list summary {
  position:relative;
  padding:23px 34px 23px 0;
  font-size:15px;
  line-height:1.65;
  font-weight:600;
  list-style:none;
  cursor:pointer
}
.questions-list summary::-webkit-details-marker {
  display:none
}
.questions-list summary::after {
  content:"+";
  position:absolute;
  right:0;
  top:23px;
  color:var(--teal);
  font-size:23px;
  line-height:1
}
.questions-list details[open]>summary::after {
  content:"\2212"
}
.questions-list summary:focus-visible {
  outline:2px solid #97aaff;
  outline-offset:4px
}
.questions-list p {
  padding:0 34px 25px 0;
  color:var(--muted);
  font-size:13px;
  line-height:1.95
}
.questions-list p a {
  color:#bbc8ff;
  text-decoration:underline;
  text-underline-offset:3px
}
.closing-section {
  position:relative;
  isolation:isolate;
  padding:100px 0 95px;
  overflow:hidden;
  background:radial-gradient(ellipse at 12% 65%,#20366c1a,transparent 45%),radial-gradient(ellipse at 85% 65%,#be1e2d18,transparent 45%),#070a0e
}
.closing-grid {
  position:absolute;
  inset:0;
  z-index:-1;
  background-image:radial-gradient(#9ebed125 1px,transparent 1px);
  background-size:24px 24px;
  mask-image:linear-gradient(transparent,black,transparent)
}
.closing-content {
  position:relative;
  text-align:center;
  z-index:2
}
.closing-monogram {
  width:55px;
  height:55px;
  object-fit:contain;
  margin:0 auto 23px
}
.closing-content h2 {
  font-size:clamp(45px,5.5vw,80px)
}
.closing-content p {
  color:#8ca0b2;
  font-size:13px;
  margin:25px 0
}
.closing-mascot {
  position:absolute;
  bottom:75px;
  width:210px;
  max-height:280px;
  object-fit:contain;
  filter:drop-shadow(0 20px 30px #0007);
  z-index:1
}
.donkey {
  left:max(35px,calc((100% - 1250px)/2))
}
.elephant {
  right:max(35px,calc((100% - 1250px)/2));
  width:225px
}
.site-footer {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:45px;
  padding:38px 0;
  border-top:1px solid var(--line)
}
.site-footer img {
  width:148px
}
.site-footer p {
  font-size:9px;
  line-height:1.8;
  color:#6e8498;
  margin-top:18px
}
.footer-links {
  display:flex;
  gap:28px;
  align-items:center;
  color:#a8b8c6;
  font-size:10px
}
.footer-links>span {
  color:#647c91;
  font-size:9px
}
@keyframes map-scan {
  to {
    transform:rotate(360deg)
  }
}
@keyframes route-dash {
  to {
    stroke-dashoffset:-140
  }
}
@keyframes data-flow {
  0%,100% {
    transform:translateY(-70px);
    opacity:0
  }
  30% {
    opacity:1
  }
  80% {
    transform:translateY(0);
    opacity:1
  }
}
@keyframes pin-float {
  0%,100% {
    transform:translateY(0)
  }
  50% {
    transform:translateY(-14px)
  }
}
.motion-paused *,.motion-paused *::before,.motion-paused *::after {
  animation-play-state:paused!important
}
@media(min-width:1600px) {
  .site-head {
    padding-inline:calc((100% - 1330px)/2)
  }
  .hero-visual {
    right:0;
    width:72%
  }
  .hero-content {
    padding-top:230px
  }
}
@media(max-width:1080px) {
  .wrap {
    width:calc(100% - 60px)
  }
  .site-head {
    padding:24px 30px
  }
  .hero {
    min-height:820px
  }
  .hero-visual {
    right:-15%;
    width:88%;
    opacity:.85
  }
  .hero-content {
    padding-top:210px
  }
  .hero h1 {
    font-size:78px
  }
  .terrain-label.label-one {
    left:47%;
    top:15%
  }
  .signal-section,.carry-section {
    gap:50px
  }
  .section-intro {
    gap:40px
  }
  .console-controls {
    padding:28px 22px
  }
  .closing-mascot {
    width:145px;
    bottom:105px
  }
  .elephant {
    width:165px
  }
}
@media(max-width:760px) {
  .comparison-section {
    padding-bottom:80px
  }
  .comparison-notice {
    align-items:flex-start;
    padding:16px;
    font-size:11px
  }
  .comparison-notice .icon {
    margin-top:4px
  }
  .comparison-notice strong {
    display:block
  }
  .comparison-toolbar {
    flex-direction:column;
    align-items:stretch;
    gap:15px;
    padding:17px
  }
  .comparison-toolbar .console-brand {
    font-size:8px;
    letter-spacing:.07em
  }
  .giving-switch button {
    flex:1;
    padding:9px 5px;
    font-size:10px
  }
  .comparison-body {
    grid-template-columns:1fr
  }
  .comparison-stage {
    min-height:285px;
    padding:22px 15px;
    gap:12px
  }
  .comparison-ledger {
    border-left:0;
    border-top:1px solid var(--line);
    padding:0 22px
  }
  .comparison-row {
    gap:8px
  }
  .comparison-row>span {
    max-width:135px;
    line-height:1.6
  }
  .comparison-bottom {
    flex-direction:column;
    align-items:flex-start;
    gap:8px;
    padding:17px 22px
  }
  .comparison-facts {
    grid-template-columns:1fr;
    gap:26px;
    margin-top:30px
  }
  .comparison-facts article+article {
    border-top:1px solid var(--line);
    padding-top:26px
  }
  html {
    scroll-padding-top:30px
  }
  .wrap {
    width:calc(100% - 40px)
  }
  .site-head {
    padding:18px 20px
  }
  .brand {
    width:175px
  }
  .site-head nav {
    gap:0
  }
  .site-head nav>a:not(.nav-open) {
    display:none
  }
  .nav-open {
    font-size:10px;
    padding:11px 12px;
    gap:8px;
    min-height:44px
  }
  .nav-open>.icon {
    width:16px
  }
  .hero {
    height:auto;
    min-height:1050px
  }
  .hero-content {
    padding-top:150px
  }
  .hero h1 {
    font-size:clamp(57px,10.5vw,78px);
    max-width:600px;
    margin-top:24px
  }
  .hero-copy {
    font-size:14px;
    max-width:330px;
    margin-top:22px
  }
  .hero-actions {
    gap:24px;
    margin-top:24px
  }
  .hero-actions>.text-link {
    font-size:10px;
    gap:10px
  }
  .button {
    font-size:11px;
    padding:16px 19px
  }
  .hero-note {
    font-size:9px;
    margin-top:19px
  }
  .hero-visual {
    width:115%;
    height:430px;
    top:auto;
    bottom:50px;
    right:-7%;
    opacity:1;
    mask-image:linear-gradient(transparent,black 15%,black 85%,transparent)
  }
  .terrain-core {
    width:75px;
    height:75px;
    padding:14px
  }
  .terrain-core::before {
    inset:-9px
  }
  .terrain-label {
    font-size:7px;
    padding:8px 10px;
    gap:7px
  }
  .label-one {
    left:22%!important;
    top:20%!important
  }
  .label-two {
    left:62%;
    top:68%
  }
  .terrain-coordinate {
    bottom:43px;
    right:25%;
    font-size:7px
  }
  .hero-bottom {
    bottom:15px;
    gap:15px;
    padding-top:14px
  }
  .hero-bottom>.mini-label {
    display:none
  }
  .party-key {
    gap:20px;
    font-size:8px
  }
  .motion-toggle {
    font-size:8px
  }
  .capability-rail {
    display:grid;
    grid-template-columns:1fr 1fr;
    row-gap:25px;
    padding:28px 0;
    font-size:10px
  }
  .capability-rail>span {
    gap:9px
  }
  .explore-section {
    padding-top:70px
  }
  .section-intro {
    grid-template-columns:1fr;
    gap:25px;
    margin-bottom:33px
  }
  .section-intro>p {
    font-size:12px;
    max-width:460px
  }
  h2 {
    font-size:clamp(37px,6.5vw,51px)
  }
  .eyebrow {
    font-size:8px
  }
  .section-intro h2 {
    margin-top:18px
  }
  .console-toolbar {
    padding:12px 16px
  }
  .console-body {
    grid-template-columns:1fr
  }
  .map-visual {
    height:350px;
    border-right:0;
    border-bottom:1px solid var(--line)
  }
  .console-controls {
    padding:27px;
    display:grid;
    grid-template-columns:1fr;
    justify-items:start
  }
  .view-switch {
    max-width:410px
  }
  #view-copy {
    min-height:0;
    padding-top:24px
  }
  #view-copy h3 {
    max-width:400px
  }
  #view-copy p {
    max-width:460px
  }
  .console-controls>.feature-list {
    margin:13px 0
  }
  .console-controls>.text-link {
    margin-top:4px
  }
  .signal-section {
    grid-template-columns:1fr;
    gap:35px;
    padding:80px 0
  }
  .signal-copy>p:not(.eyebrow) {
    font-size:12px;
    max-width:430px
  }
  .signal-copy .small-copy {
    max-width:430px!important
  }
  .signal-machine {
    padding:20px;
    max-width:600px;
    width:100%
  }
  .machine-top>.illustration-tag {
    font-size:6px
  }
  .contribution-bars {
    margin-top:30px
  }
  .signal-output {
    padding:18px;
    gap:20px
  }
  .signal-output strong {
    font-size:17px
  }
  .machine-foot {
    font-size:8px;
    line-height:1.7;
    flex-direction:column;
    gap:7px
  }
  .carry-section {
    grid-template-columns:1fr;
    gap:25px;
    padding-bottom:80px
  }
  .paper-scene {
    height:440px;
    order:2;
    margin-top:20px
  }
  .carry-copy>p:not(.eyebrow) {
    font-size:12px;
    max-width:450px
  }
  .export-tag {
    right:5%;
    font-size:7px
  }
  .paper-orbit {
    left:13%;
    width:74%
  }
  .floating-pin {
    width:34px;
    height:34px
  }
  .pin-blue {
    left:8%;
    top:25%
  }
  .pin-red {
    right:8%
  }
  .method-section {
    padding:60px 0
  }
  .questions-section {
    grid-template-columns:1fr;
    gap:32px;
    padding-block:60px
  }
  .questions-intro>p:not(.eyebrow) {
    max-width:460px
  }
  .questions-list summary {
    font-size:14px;
    padding-block:20px
  }
  .questions-list summary::after {
    top:20px
  }
  .evidence-grid {
    grid-template-columns:1fr;
    gap:0;
    padding-top:12px
  }
  .evidence-grid article {
    padding:24px 0
  }
  .evidence-grid article+article {
    padding-left:0;
    border-left:0;
    border-top:1px solid var(--line)
  }
  .evidence-grid .icon {
    margin-bottom:18px;
    width:24px;
    height:24px
  }
  .evidence-grid p {
    max-width:450px;
    font-size:11px;
    margin-top:12px
  }
  .method-bottom {
    margin-top:10px;
    display:block
  }
  .method-bottom>p {
    font-size:9px
  }
  .method-bottom .text-link {
    margin-top:17px;
    font-size:11px
  }
  .closing-section {
    padding:60px 0 170px
  }
  .closing-content h2 {
    font-size:clamp(30px,9vw,51px)
  }
  .closing-content p {
    font-size:11px;
    margin:20px 0
  }
  .closing-monogram {
    width:45px;
    height:45px
  }
  .closing-mascot {
    bottom:22px;
    width:120px;
    max-height:145px
  }
  .donkey {
    left:calc(50% - 140px)
  }
  .elephant {
    right:calc(50% - 150px);
    width:137px
  }
  .site-footer {
    padding:28px 0;
    gap:20px;
    align-items:start
  }
  .site-footer img {
    width:125px
  }
  .site-footer p {
    font-size:8px;
    max-width:185px;
    margin-top:13px
  }
  .footer-links {
    flex-direction:column;
    align-items:flex-end;
    gap:17px;
    font-size:9px
  }
  .footer-links>span {
    font-size:8px
  }
}
@media(max-width:400px) {
  .brand {
    width:157px
  }
  .nav-open {
    padding:10px
  }
  .hero {
    min-height:1030px
  }
  .hero-content {
    padding-top:135px
  }
  .hero h1 {
    font-size:57px
  }
  .hero-copy {
    max-width:300px
  }
  .hero-actions {
    gap:14px
  }
  .hero-actions>.text-link {
    font-size:9px
  }
  .hero-actions>.text-link span {
    font-size:17px
  }
  .map-visual {
    height:300px
  }
  .console-controls {
    padding:24px 20px
  }
  .machine-top {
    font-size:7px;
    gap:8px
  }
  .machine-top>.illustration-tag {
    letter-spacing:0
  }
  .signal-output {
    gap:17px;
    padding:17px 13px
  }
  .big-pin {
    width:42px;
    height:42px
  }
  .signal-output strong {
    font-size:15px
  }
  .machine-foot {
    font-size:8px
  }
  .paper-scene {
    height:415px
  }
  .result-paper {
    width:267px;
    padding:25px
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }
  *,*::before,*::after {
    animation:none!important;
    transition:none!important
  }
}
/* Real data block: live snapshot statistics and the most-mapped companies. Generated by scripts/build-company-pages.mjs. */
.real-data-section {
  padding:105px 0 0
}
.real-stats {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:1px;
  margin:0;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:18px;
  background:var(--line)
}
.real-stats div {
  margin:0;
  padding:22px 24px;
  background:#0c1016
}
.real-stats dt {
  color:var(--muted);
  font-size:12px;
  font-weight:800;
  line-height:1.4
}
.real-stats dd {
  margin:8px 0 0;
  font-family:Sora,sans-serif;
  font-size:clamp(22px,2.4vw,32px);
  font-weight:700;
  letter-spacing:-.04em
}
.real-stats .stat-dem { color:#8399ff }
.real-stats .stat-rep { color:#ff7380 }
.real-stats .stat-mixed { color:#b48ad6 }
.real-subhead {
  margin:46px 0 6px;
  font-size:22px;
  letter-spacing:-.03em
}
.real-note {
  margin:0 0 18px;
  color:var(--muted);
  font-size:14px
}
.real-companies {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:12px;
  margin:0 0 26px;
  padding:0;
  list-style:none
}
.real-companies a {
  display:grid;
  gap:10px;
  height:100%;
  padding:18px;
  border:1px solid var(--line);
  border-radius:16px;
  background:linear-gradient(145deg,rgba(23,30,39,.94),rgba(10,13,18,.96));
  transition:border-color .18s ease,transform .18s ease
}
.real-companies a:hover { border-color:rgba(151,170,255,.5); transform:translateY(-2px) }
.real-name {
  display:flex;
  align-items:center;
  gap:9px;
  font-family:Sora,sans-serif;
  font-size:17px;
  font-weight:700;
  letter-spacing:-.03em
}
.real-name .signal-dot { flex:0 0 auto }
.real-bar {
  display:flex;
  height:8px;
  overflow:hidden;
  border-radius:999px;
  background:rgba(255,255,255,.08)
}
.real-bar i { display:block; height:100% }
.real-bar .rb-dem { background:var(--blue) }
.real-bar .rb-rep { background:var(--red) }
.real-figures {
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  font-size:13px;
  font-weight:700
}
.real-figures em { font-style:normal }
.real-figures .fig-dem { color:#8399ff }
.real-figures .fig-rep { color:#ff7380 }
.real-figures b { color:var(--ink) }
.real-locations { color:var(--muted); font-size:12px }
@media(max-width:1080px) {
  .real-companies { grid-template-columns:repeat(2,1fr) }
}
@media(max-width:760px) {
  .real-data-section { padding-top:70px }
  .real-stats { grid-template-columns:1fr 1fr }
  .real-stats div { padding:16px }
  .real-companies { grid-template-columns:1fr }
}

/* Your candidates call to action. */
.lookup-cta {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:60px;
  align-items:end;
  margin-top:105px;
  padding:46px 48px;
  border:1px solid var(--line);
  border-radius:22px;
  background:linear-gradient(110deg,rgba(1,5,180,.16),rgba(12,16,22,.9) 45%,rgba(190,30,45,.15))
}
.lookup-cta p { color:var(--muted); font-size:16px; line-height:1.7; margin-bottom:22px }
.lookup-cta .button { margin-right:18px }
@media(max-width:760px) {
  .lookup-cta { grid-template-columns:1fr; gap:20px; margin-top:70px; padding:28px 22px }
  .lookup-cta .button { width:100%; margin:0 0 14px }
}
/* Notes inside the homepage stat boxes, and the scope line under the company box. */
.real-stats .stat-note { display:block; margin-top:8px; color:var(--muted); font-family:Manrope,sans-serif; font-size:12px; font-weight:600; letter-spacing:0; line-height:1.45 }
.stats-scope { margin:14px 0 0; color:var(--muted); font-size:14px; line-height:1.5 }
.stats-scope a { color:var(--ink); text-decoration:underline }
.money-stats + .text-link { margin-top:18px }

/* Site search in the hero, the live counts under it, and its results list. */
.visually-hidden {
  position:absolute;
  width:1px;
  height:1px;
  overflow:hidden;
  clip:rect(0 0 0 0);
  white-space:nowrap
}
.hero-search {
  position:relative;
  pointer-events:auto;
  margin-top:28px;
  max-width:520px
}
.hero-search-field {
  display:flex;
  align-items:center;
  gap:12px;
  padding:6px 6px 6px 18px;
  background:#0c1118e6;
  border:1px solid #9ebed140;
  border-radius:6px;
  box-shadow:0 0 40px #315cff14
}
.hero-search-field:focus-within {
  border-color:#7896fd
}
.hero-search-field .icon {
  width:18px;
  height:18px;
  flex:none;
  color:var(--muted)
}
.hero-search-field input {
  flex:1;
  min-width:0;
  min-height:44px;
  border:0;
  background:transparent;
  color:var(--ink);
  font:inherit;
  font-size:16px;
  outline:none
}
.hero-search-field input::placeholder {
  color:#7d8e9e
}
.hero-search-field button {
  min-height:44px;
  padding:0 18px;
  border:1px solid #e1556380;
  border-radius:4px;
  background:var(--red);
  color:#fff5ef;
  font-size:12px;
  font-weight:700;
  cursor:pointer
}
.hero-search-field button:hover {
  background:#d5293c
}
.hero-search .site-search-results {
  position:absolute;
  z-index:20;
  left:0;
  right:0;
  top:calc(100% + 6px);
  margin:0;
  padding:6px;
  list-style:none;
  max-height:min(420px,60vh);
  overflow:auto;
  background:#0c1118;
  border:1px solid #9ebed140;
  border-radius:6px;
  box-shadow:0 24px 60px #000a
}
.hero-search .site-search-results a {
  display:grid;
  grid-template-columns:auto 1fr auto;
  grid-template-areas:"kind name total" "kind detail total";
  column-gap:12px;
  align-items:center;
  padding:10px 12px;
  border-radius:4px;
  min-height:44px
}
.hero-search .site-search-results a:hover,.hero-search .site-search-results a:focus {
  background:#ffffff0f;
  outline:none
}
.hero-search .site-search-kind {
  grid-area:kind;
  font-size:9px;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--teal);
  border:1px solid var(--line);
  border-radius:3px;
  padding:3px 6px
}
.hero-search .list-name {
  grid-area:name;
  font-size:14px;
  font-weight:700
}
.hero-search .list-split {
  grid-area:detail;
  font-size:12px;
  color:var(--muted)
}
.hero-search .list-total {
  grid-area:total;
  font-size:12px;
  font-weight:700;
  color:#b7c4ce
}
.hero-search .site-search-place,.hero-search .site-search-more {
  display:block!important;
  font-size:13px;
  font-weight:700;
  color:#b4c5ff
}
.hero-counts {
  pointer-events:auto;
  display:flex;
  flex-wrap:wrap;
  gap:6px 16px;
  margin-top:16px;
  max-width:560px;
  font-size:11px;
  color:#8796a5
}
.hero-counts b {
  color:var(--ink);
  font-weight:700
}
.hero-counts a {
  color:#b4c5ff;
  font-weight:700
}
@media(max-width:760px) {
  /* Room for the search box and counts above the terrain graphic, which is anchored to the hero's bottom. */
  .hero {
    min-height:1200px
  }
  .hero-search {
    max-width:none;
    margin-top:22px
  }
  .hero-search-field button {
    padding:0 14px
  }
  .hero-counts {
    font-size:10px
  }
}
