/* ReplyJolt / JoltBot HQ interactive world map.
   Visual world is CSS/vector scenery layered over real original JoltBot assets.
   Real destinations stay available even without JavaScript. */
:root{--wm-cyan:#5ce8ff;--wm-orange:#ffa96b;--wm-ink:#070c19}
html{scroll-behavior:smooth}
body{background:#070b15}
.wm-hero{display:flex;justify-content:space-between;align-items:end;gap:22px;padding-top:clamp(46px,6vw,85px);padding-bottom:29px}
.wm-eyebrow{display:flex;align-items:center;gap:9px;color:#79e9fe;font:950 10px/1.45 var(--font);letter-spacing:1.8px}
.wm-status-led{display:inline-block;width:9px;height:9px;flex:none;border-radius:50%;background:#ffa165;box-shadow:0 0 16px #ffa165}
.wm-hero h1{margin:15px 0 18px;font:950 clamp(42px,5.6vw,75px)/.99 var(--display);letter-spacing:-2.4px}
.wm-hero h1 em{font-style:normal;color:#ffac78}
.wm-hero p{margin:0;max-width:700px;color:#c6d7e4;font:650 14px/1.75 var(--font)}
.wm-hero-badge{flex:none;display:flex;flex-direction:column;gap:7px;text-align:right;min-width:180px;padding:15px 18px;border:1px solid #547f99;border-radius:13px 3px 13px 3px;background:linear-gradient(130deg,#162d42,#131a2c)}
.wm-hero-badge span{font:900 10px/1.5 var(--font);letter-spacing:1.5px;color:#ffb982}
.wm-hero-badge strong{font:950 25px/1.1 var(--display);color:#c9f8ff}
.wm-hero-badge small{font:850 9px/1.3 var(--font);letter-spacing:.7px;color:#9bb7cf}
.wm-explorer{padding-bottom:70px}
.wm-controls{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:14px 19px;border:1px solid #426b8a;border-bottom:none;border-radius:18px 6px 0 0;background:linear-gradient(110deg,#19263b,#151c31)}
.wm-control-heading{display:flex;align-items:center;gap:15px;flex-wrap:wrap}
.wm-control-heading>span{color:#ffb37a;font:950 10px/1.4 var(--font);letter-spacing:1.2px}
.wm-control-heading>strong{color:#9adff4;font:850 10px/1.4 var(--font);letter-spacing:.4px}
.wm-control-buttons{display:flex;align-items:center;gap:8px}
.wm-control-buttons button{min-width:43px;min-height:42px;display:inline-flex;align-items:center;justify-content:center;border:1px solid #5a86a1;background:#0b2235;border-radius:7px 3px 8px 3px;padding:9px;color:#b4f0ff;cursor:pointer;font:950 14px/1 var(--font)}
.wm-control-buttons button:last-child{font:900 10px/1.4 var(--font);padding:10px}
.wm-control-buttons button:hover{border-color:#ffba85;background:#1d3749}
.wm-control-buttons>span{min-width:43px;text-align:center;color:#c7e8f3;font:900 11px/1.4 var(--font)}
.wm-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:0}
.wm-viewport{
  --wm-scale:.9;
  width:100%;height:738px;min-width:0;
  position:relative;overflow-x:auto;overflow-y:hidden;
  border:1px solid #426b8a;border-radius:0 0 0 0;
  background:radial-gradient(ellipse at 51% 39%,#263968,#0e1932 55%,#070b1b 100%);
  touch-action:pan-x;overscroll-behavior-x:contain;scrollbar-color:#538cbd #0a1428;
}
.wm-canvas{position:relative;width:1152px;height:738px}
.wm-world{
  position:absolute;inset:0;width:1280px;height:820px;
  overflow:hidden;isolation:isolate;transform-origin:top left;transform:scale(.9);
  background:
    radial-gradient(ellipse at 48% 48%,#06477e88,transparent 48%),
    radial-gradient(ellipse at 16% 12%,#eb722d25,transparent 37%),
    radial-gradient(ellipse at 90% 24%,#0fd9fa30,transparent 37%),
    linear-gradient(180deg,#0b112b 0%,#12234a 50%,#030b1c 100%);
}
.wm-world::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background-image:radial-gradient(#8edfff7a 1px,transparent 1px),radial-gradient(#ffbd788c .9px,transparent 1px);background-size:51px 65px,93px 109px;background-position:15px 27px,39px 12px;opacity:.48}
.wm-world::after{content:"";position:absolute;left:-60px;right:-60px;bottom:-24px;height:245px;pointer-events:none;z-index:1;background:linear-gradient(transparent,#07132966 60%,#060a1be8)}
.wm-clouds{position:absolute;inset:0;pointer-events:none;opacity:.9;background:radial-gradient(ellipse 280px 120px at 14% 88%,#2f5d9e44,transparent),radial-gradient(ellipse 400px 120px at 72% 80%,#5c51aa43,transparent),radial-gradient(ellipse 310px 140px at 92% 10%,#248de34a,transparent),radial-gradient(ellipse 350px 180px at 8% 28%,#ea783a2a,transparent)}
.wm-skyline{position:absolute;left:0;right:0;bottom:30px;height:290px;opacity:.38;pointer-events:none;background:repeating-linear-gradient(90deg,transparent 0 12px,#020e2e 12px 44px,transparent 44px 49px,#091e3b 49px 83px,transparent 83px 111px),linear-gradient(transparent 30%,#0b1d45 86%);clip-path:polygon(0 50%,4% 50%,4% 32%,9% 32%,9% 43%,15% 43%,15% 24%,20% 24%,20% 42%,27% 42%,27% 33%,33% 33%,33% 47%,39% 47%,39% 22%,46% 22%,46% 48%,51% 48%,51% 14%,57% 14%,57% 45%,64% 45%,64% 26%,69% 26%,69% 48%,76% 48%,76% 18%,83% 18%,83% 44%,90% 44%,90% 23%,94% 23%,94% 44%,100% 44%,100% 100%,0 100%)}
.wm-world-identifier{position:absolute;top:29px;left:30px;z-index:4;color:#88dcf2;font:900 10px/1.8 ui-monospace,monospace;letter-spacing:1px;text-shadow:0 2px 8px #000}
.wm-art-note{position:absolute;z-index:4;bottom:15px;left:34px;color:#88c3dc;font:900 10px/1.5 var(--font);letter-spacing:1.5px}
.wm-bridges{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}
.wm-route{stroke-dashoffset:0;animation:wm-lights 15s linear infinite}
@keyframes wm-lights{to{stroke-dashoffset:-300}}
/* Each image-backed island includes its own accessible button and large tap target. */
.wm-island{
 position:absolute;z-index:3;width:246px;height:168px;padding:0;isolation:isolate;overflow:visible;
 border:2px solid #48c8f6;border-radius:20px 5px 20px 5px;
 background:#111b2b;box-shadow:0 0 0 8px #225b8244,0 23px 25px #000a,0 0 30px #20b0f746;
 color:white;cursor:pointer;text-align:left;
 transition:transform .17s,border-color .17s,box-shadow .17s;
}
.wm-island:before{content:"";position:absolute;z-index:-1;inset:auto 12px -19px 12px;height:26px;background:#111a30;border:2px solid #50b9dc;border-radius:0 0 17px 17px;transform:skewX(-22deg);box-shadow:0 13px 22px #0009}
.wm-island img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 25%;border-radius:18px 3px 18px 3px;filter:contrast(1.1) saturate(1.1)}
.wm-island-shade{position:absolute;inset:0;border-radius:18px 3px 18px 3px;background:linear-gradient(180deg,#0b11224a 0%,#07112640 29%,#080e1beb 100%);pointer-events:none}
.wm-island-ico{position:absolute;top:9px;left:11px;z-index:1;display:grid;place-items:center;width:34px;height:34px;border:1px solid #6ce4fc;border-radius:7px;background:#081c36dc;color:#8feeff;font-size:23px}
.wm-island-copy{position:absolute;left:12px;right:28px;bottom:12px;display:grid;gap:4px;z-index:2;text-shadow:0 2px 7px #000}
.wm-island-copy>span{color:#ffa873;font:950 9px/1.3 var(--font);letter-spacing:1.2px}
.wm-island-copy strong{color:#fff;font:950 23px/1.05 var(--display);letter-spacing:-.5px}
.wm-island-copy small{color:#98edff;font:900 11px/1.3 var(--font);letter-spacing:.7px}
.wm-island-select{position:absolute;right:11px;bottom:12px;z-index:2;font:950 19px/1 var(--font);color:#e7fdff}
.wm-island:hover,.wm-island:focus-visible{transform:translateY(-5px) scale(1.03);border-color:#ffb178;box-shadow:0 0 0 8px #ffb76c38,0 21px 31px #000a,0 0 34px #ff945966}
.wm-island[aria-pressed=true]{border-color:#ffbb76;box-shadow:0 0 0 8px #ffae6c3d,0 25px 35px #000a,0 0 35px #ff9b7288}
.wm-island-reactor{top:112px;left:946px}
.wm-island-forge{top:112px;left:71px;border-color:#ffae65}
.wm-island-media{top:363px;left:47px}
.wm-island-evidence{top:363px;left:989px}
.wm-island-scanner{top:621px;left:109px}
.wm-island-arcade{top:621px;left:518px;border-color:#d477ff}
.wm-island-founding{top:621px;left:944px;border-color:#ffa66b}
.wm-island-arcade .wm-island-ico{border-color:#e99cfa;color:#f4afff}
.wm-island-founding .wm-island-ico,.wm-island-forge .wm-island-ico{border-color:#ffc18d;color:#ffd29c}
.wm-central-hub{
 position:absolute;top:294px;left:447px;z-index:2;width:386px;height:248px;
 overflow:hidden;border:3px solid #84dfff;border-radius:50% 50% 24px 24px;
 background:#082b57;box-shadow:0 0 0 12px #159cef37,0 0 0 29px #ffac6926,0 0 60px #24d4ff80;
 display:flex;flex-direction:column;justify-content:flex-end;align-items:center;text-align:center;padding:10px 14px 16px;
}
.wm-central-hub:before{content:"";position:absolute;inset:35% 0 0;background:linear-gradient(transparent,#05142ade);z-index:0}
.wm-central-hub img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 20%}
.wm-hub-brow,.wm-central-hub strong,.wm-central-hub a{z-index:1;position:relative}
.wm-hub-brow{color:#ffba7e;font:950 10px/1.35 var(--font);letter-spacing:1.7px}
.wm-central-hub strong{font:950 43px/.96 var(--display);color:#fff;letter-spacing:-1px;text-shadow:0 3px 9px #000}
.wm-central-hub a{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:7px 12px;margin-top:9px;color:#051222;background:linear-gradient(110deg,#87f2ff,#5ec2ef);border-radius:8px;font:950 10px/1.3 var(--font);letter-spacing:.4px}
.wm-central-hub a:hover{background:#ffc08e}
.wm-preview{
 min-width:0;display:grid;grid-template-columns:34% minmax(0,1fr);
 grid-template-rows:auto 1fr;border:1px solid #476e86;border-top:none;
 border-radius:0 0 19px 6px;background:linear-gradient(120deg,#161f35,#111a2b);
}
.wm-preview-top{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px 20px;border-bottom:1px solid #44677d;background:#101e30}
.wm-preview-top span{color:#9deaff;font:950 10px/1.4 var(--font);letter-spacing:1.2px}
.wm-preview-top span:first-child{display:flex;align-items:center;gap:8px}
.wm-preview-top i{height:8px;width:8px;border-radius:50%;display:block;background:#ffb078;box-shadow:0 0 12px #ffb078}
.wm-preview-art{min-height:235px;position:relative;overflow:hidden}
.wm-preview-art img{position:absolute;inset:0;height:100%;width:100%;object-fit:cover;object-position:center 23%}
.wm-preview-art:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 60%,#111a2b)}
.wm-preview-content{min-width:0;padding:24px 26px;display:flex;flex-direction:column;gap:10px;align-items:flex-start;justify-content:center}
.wm-preview-content>span{color:#ffb786;font:900 10px/1.45 var(--font);letter-spacing:1.2px}
.wm-preview-content h2{margin:0;color:#f3f9ff;font:950 clamp(25px,3vw,39px)/1.04 var(--display);letter-spacing:-1px}
.wm-preview-content>p{margin:0;color:#bacfdf;font:650 12px/1.75 var(--font)}
.wm-jolt-speech{display:flex;gap:10px;align-items:center;margin-top:6px;padding:10px 12px;background:#0b2435;border:1px solid #3e7591;border-left:3px solid #ffad7a;border-radius:4px 12px 12px 4px;width:100%}
.wm-jolt-speech img{height:33px;width:33px;object-fit:contain;flex:none}
.wm-jolt-speech p{color:#d1eef9;font:750 11px/1.5 var(--font);margin:0}
.wm-enter{display:inline-flex;min-height:47px;align-items:center;justify-content:space-between;gap:17px;padding:12px 17px;margin-top:4px;color:#16131a;background:linear-gradient(110deg,#ffbc82,#ff8e67);font:950 11px/1.3 var(--font);letter-spacing:.55px;border-radius:9px 3px 10px 3px}
.wm-enter:hover{filter:brightness(1.1)}
.wm-index{margin-top:15px;border:1px solid #466a85;border-radius:12px;background:#121b2d;padding:16px}
.wm-index-heading{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:14px}
.wm-index-heading span{color:#ffa96f;font:950 10px/1.4 var(--font);letter-spacing:1px}
.wm-index-heading small{color:#adc1d2;font:650 11px/1.6 var(--font)}
.wm-index-buttons{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}
.wm-index-buttons button{min-height:54px;min-width:0;white-space:normal;overflow-wrap:break-word;padding:9px 6px;border:1px solid #456c86;border-radius:7px 3px 8px 3px;background:#102438;color:#c2effe;font:900 9px/1.45 var(--font);cursor:pointer}
.wm-index-buttons button:hover,.wm-index-buttons button[aria-pressed=true]{border-color:#ffb681;background:#39263c;color:#fff}
.wm-secret{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-top:20px;padding:24px;background:radial-gradient(ellipse at 15% 15%,#ff9e6947,transparent 58%),#12283c;border:1px solid #ffb47a;border-radius:15px 5px 15px 5px}
.wm-secret[hidden]{display:none!important}
.wm-secret span{color:#a7f6bd;font:950 10px/1.4 var(--font);letter-spacing:1.2px}
.wm-secret h2{margin:10px 0;font:950 clamp(23px,3vw,36px)/1.1 var(--display)}
.wm-secret p{color:#c3d6e3;margin:0;font:650 12px/1.7 var(--font);max-width:660px}
.wm-secret a{background:linear-gradient(110deg,#ffc28d,#ff8d67);color:#11141c;padding:15px;border-radius:8px;font:950 10px/1.5 var(--font);min-height:44px;display:inline-flex;align-items:center}
.wm-outro{padding:75px 0;border-top:1px solid #384c66;background:radial-gradient(ellipse at 80% 10%,#f5944931,transparent 50%),linear-gradient(125deg,#122036,#111324)}
.wm-outro-inner{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,.6fr);align-items:center;gap:35px}
.wm-outro-inner>div:first-child>span{color:#ffa86d;font:950 10px/1.4 var(--font);letter-spacing:1.3px}
.wm-outro h2{font:950 clamp(33px,4vw,54px)/1.04 var(--display);margin:16px 0;letter-spacing:-1.4px}
.wm-outro h2 em{font-style:normal;color:#80e5f4}
.wm-outro p{font:650 12px/1.8 var(--font);color:#b6ccdc}
.wm-outro-inner>div:last-child{display:grid;gap:9px}
.wm-outro-inner>div:last-child a{display:flex;align-items:center;min-height:50px;border:1px solid #4c728d;background:#10263b;color:#b3f1ff;border-radius:9px;padding:12px 17px;font:950 11px/1.5 var(--font)}
.wm-outro-inner>div:last-child a:last-child{border-color:#ffb286;background:linear-gradient(110deg,#ffc08e,#ff956e);color:#16111b}
.wm-outro-inner>div:last-child a:hover{filter:brightness(1.13)}
.wm-island:focus-visible,.wm-central-hub a:focus-visible,.wm-control-buttons button:focus-visible,.wm-index-buttons button:focus-visible,.wm-enter:focus-visible,.wm-secret a:focus-visible,.wm-outro a:focus-visible{outline:3px solid #bcf5ff;outline-offset:4px}
@media(max-width:900px){
 .wm-hero{flex-direction:column;align-items:flex-start}
 .wm-hero-badge{min-width:0;text-align:left}
 .wm-index-buttons{grid-template-columns:repeat(4,minmax(0,1fr))}
 .wm-preview{grid-template-columns:30% minmax(0,1fr)}
 .wm-preview-art{min-height:280px}
 .wm-outro-inner{grid-template-columns:1fr}
}
@media(max-width:650px){
 .wm-hero{padding-top:42px}
 .wm-hero h1{font-size:clamp(37px,9vw,55px);letter-spacing:-1.3px}
 .wm-hero p{font-size:13px}
 .wm-hero-badge{display:none}
 .wm-control-heading{width:100%;justify-content:space-between}
 .wm-controls{padding:12px}
 .wm-control-buttons{width:100%}
 .wm-control-buttons button:last-child{margin-left:auto}
 .wm-viewport{--wm-scale:.75;height:615px}
 .wm-canvas{width:960px;height:615px}
 .wm-world{transform:scale(.75)}
 .wm-preview{grid-template-columns:minmax(0,1fr)}
 .wm-preview-art{height:150px;min-height:150px}
 .wm-preview-art:after{background:linear-gradient(transparent,#101a2a)}
 .wm-preview-art img{object-position:center 25%}
 .wm-preview-content{padding:18px}
 .wm-preview-content h2{font-size:29px}
 .wm-enter{width:100%}
 .wm-index-buttons{grid-template-columns:repeat(2,minmax(0,1fr))}
 .wm-index-buttons button{min-height:49px}
 .wm-outro{padding:50px 0}
}
@media(prefers-reduced-motion:reduce){
 html{scroll-behavior:auto}
 .wm-route{animation:none}
 .wm-island{transition:none}
 .wm-island:hover{transform:none}
}

.wm-swipe-hint{display:none;margin:0;padding:10px 12px;background:#0a2337;border:1px solid #426b8a;border-bottom:0;color:#9fe9fd;text-align:center;font:950 9px/1.55 var(--font);letter-spacing:.45px}
@media(max-width:900px){.wm-swipe-hint{display:block}}

/* Scouted islands retain a small visible check without blocking the artwork. */
.wm-island.is-scouted::after{
  content:"✓";position:absolute;top:9px;right:11px;z-index:4;
  display:grid;place-items:center;width:28px;height:28px;
  border:1px solid #b0ffd6;border-radius:50%;background:#0a4438;
  color:#d1ffe6;font:950 16px/1 var(--font);
  box-shadow:0 0 12px #51e9aa55;pointer-events:none;
}
.wm-control-buttons button:disabled{opacity:.42;cursor:not-allowed}
