/* Skyland world map page (/skyland/, template-skyland.php). 1.0.6.9: Stefan's 9-zone map, HUD status bar,
   ??? secret zone tile. Loaded on the Skyland templates only; the home page never loads this file.
   Pixel fonts: Press Start 2P and VT323, SIL Open Font License 1.1 (assets/fonts/OFL.txt), self-hosted Latin subsets. */
@font-face{font-family:"Press Start 2P";src:url("../fonts/PressStart2P-latin.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"VT323";src:url("../fonts/VT323-latin.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}

.sky-land{
  --navy:#101a33;--navy2:#162040;--navy3:#1c2a4a;--lime:#d4ff3a;--cream:#f3ecd9;--muted:#8a93b0;--locked:#6b7390;--path:#3a4a72;
  --px:"Press Start 2P",ui-monospace,monospace;--vt:"VT323",ui-monospace,monospace;
  color:var(--cream);
  background:url("../img/skyland/stars-tile.png") repeat,radial-gradient(ellipse 1000px 560px at 55% 32%,#1a2748 0%,transparent 70%),linear-gradient(180deg,#0c1428 0%,var(--navy) 40%,#0e1830 100%);
  padding-bottom:8px;
}
.sky-land *,.sky-land *::before,.sky-land *::after{box-sizing:border-box}
.sky-land img{image-rendering:pixelated}
.sky-land .screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}
body.sig-theme .sky-land h1,body.sig-theme .sky-land h2,body.sig-theme .sky-land h3{font-weight:400;letter-spacing:0}
.sky-land p,.sky-land h1,.sky-land h2,.sky-land h3{margin:0}
body.sig-theme .sky-land a{text-decoration:none}

/* ---------- HUD status bar (Skyland page only) ---------- */
.sky-hud{width:min(1360px,calc(100% - 48px));margin:24px auto 0;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;
  padding:10px 16px;background:linear-gradient(180deg,rgba(12,18,36,.96),rgba(16,26,51,.92));border:2px solid var(--path);border-bottom:3px solid var(--lime)}
.sky-hud__title{font-family:var(--px);font-size:8px;line-height:1.4;color:var(--muted);letter-spacing:1px}
.sky-hud__stats{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin:0;padding:0;list-style:none}
.sky-hud__stats li{display:flex;align-items:center;gap:8px;margin:0}
.sky-hud__pips{display:flex;gap:3px}
.sky-hud__pips i{display:block;width:10px;height:10px;background:#2a3348;border:2px solid #3d4868}
.sky-hud__pips i.on{background:var(--lime);border-color:var(--lime);box-shadow:0 0 6px rgba(212,255,58,.5)}
.sky-hud__label{font-family:var(--vt);font-size:18px;line-height:1;color:var(--cream)}
.sky-hud__xp{display:block;width:110px;height:10px;background:#0a1020;border:2px solid var(--path)}
.sky-hud__xp i{display:block;height:100%;background:var(--lime)}
.sky-hud__lv{font-family:var(--px);font-size:9px;line-height:1;background:var(--navy3);border:2px solid var(--lime);color:var(--lime);padding:7px 10px}

/* ---------- Hero ---------- */
.sky-hero{text-align:center;padding:28px 24px 6px}
body.sig-theme .sky-land .sky-hero__title{font-family:var(--px);font-size:28px;line-height:1.4;color:var(--lime);text-shadow:0 0 24px rgba(212,255,58,.35);margin:0 0 10px;text-transform:uppercase}
body.sig-theme .sky-land .sky-hero__tag{font-family:var(--px);font-size:11px;line-height:1.6;color:var(--cream);letter-spacing:1px}
body.sig-theme .sky-land .sky-hero__sub{font-family:var(--vt);font-size:22px;line-height:1.25;color:var(--muted);margin-top:8px}
body.sig-theme .sky-land .sky-legend{font-family:var(--vt);font-size:16px;color:var(--muted)}
.sky-legend b{color:var(--lime);font-weight:400}
.sky-dot{display:inline-block;width:10px;height:10px;margin-right:4px;vertical-align:middle}
.sky-dot.open{background:var(--lime)}.sky-dot.lock{background:var(--locked)}
.sky-dot.secret{border:2px dotted var(--lime);background:transparent;width:12px;height:12px}

/* ---------- Zone cards (Stefan) ---------- */
.sky-land .zone{position:relative;z-index:3;background:var(--navy2);border:3px solid var(--path);overflow:hidden}
.sky-land .zone.open{border-color:var(--lime);box-shadow:0 0 0 2px rgba(212,255,58,.2),0 0 28px rgba(212,255,58,.16)}
.sky-land .zone.locked{border-color:#3d4868;filter:saturate(.75) brightness(.92)}
.sky-land .zone-art{position:relative;background:linear-gradient(180deg,#1e2d52 0%,#152240 100%);border-bottom:3px solid var(--path);display:flex;align-items:center;flex-direction:column;justify-content:center;gap:10px;height:100px}
.sky-land .zone.open .zone-art{border-bottom-color:var(--lime);background:linear-gradient(180deg,#243660 0%,#1a2c4e 100%)}
.sky-land .zone.locked .zone-art{background:linear-gradient(180deg,#161e34 0%,#10182a 100%)}
.sky-land .icon-badge{position:absolute;top:8px;right:8px;width:26px;height:26px;background:var(--navy);border:2px solid var(--lime);display:flex;align-items:center;justify-content:center;font-family:var(--px);font-size:9px;line-height:1;color:var(--lime);z-index:2}
.sky-land .zone.locked .icon-badge{border-color:var(--locked);color:var(--locked)}
.sky-land .icon-badge svg{display:block}
.sky-land .lock-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(10,16,32,.35);z-index:2}
.sky-land .lock-overlay img{width:26px;height:auto}
.sky-land .zone-body{padding:10px 12px 12px}
body.sig-theme .sky-land .zone-name{font-family:var(--px);font-size:10px;line-height:1.55;color:var(--cream);margin:0 0 4px;text-transform:uppercase}
body.sig-theme .sky-land .zone-name a{color:inherit}
body.sig-theme .sky-land .zone-name a:hover,body.sig-theme .sky-land .zone-name a:focus-visible{color:var(--lime);text-decoration:underline}
body.sig-theme .sky-land .zone.open .zone-name,body.sig-theme .sky-land .zone.open .zone-name a{color:var(--lime)}
body.sig-theme .sky-land .zone-desc{font-family:var(--vt);font-size:16px;line-height:1.25;color:var(--muted);margin:0 0 8px}
body.sig-theme .sky-land .zone.open .zone-desc{color:var(--cream)}
.sky-land .zone-cta{margin-top:10px}
.sky-land .sign{position:relative;height:32px;padding:0 22px;flex:none;background:#0a1020;border:3px solid var(--lime);display:flex;align-items:center;justify-content:center;box-shadow:0 0 16px rgba(212,255,58,.45),inset 0 0 12px rgba(212,255,58,.08)}
/* 1.0.6.11: only the two end bulbs remain (the six middle ones sat on the letters). They are pinned in px from the sign edges
   (lights box = sign + 6px; bulb centre 17px in = 8px inside the border), so they stay in the side padding at any width.
   1.0.6.12: the right bulb is now identical to the left one (lime, 3px core / 4px edge; was a smaller cream dot). */
.sky-land .marquee-lights{position:absolute;inset:-6px;pointer-events:none;background:radial-gradient(circle at 17px 50%,var(--lime) 0 3px,transparent 4px),radial-gradient(circle at calc(100% - 17px) 50%,var(--lime) 0 3px,transparent 4px)}
.sky-land .marquee-text{padding:0 4px;font-family:var(--px);font-size:11px;line-height:1;color:var(--lime);letter-spacing:1px;text-shadow:0 0 8px rgba(212,255,58,.6);white-space:nowrap}
.sky-land .subs{display:flex;gap:8px;flex-wrap:wrap;margin-top:4px}
.sky-land .subs-break{flex-basis:100%;height:0}
/* pixel icon palette (open = navy/cream/lime, locked = grays) */
.sky-land .pix-icon{display:block;flex:none}
.sky-land .pix-icon .o{fill:#0a1020}.sky-land .pix-icon .c{fill:#f3ecd9}.sky-land .pix-icon .d{fill:#c4b896}
.sky-land .pix-icon .l{fill:#d4ff3a}.sky-land .pix-icon .n{fill:#24365e}.sky-land .pix-icon .m{fill:#8a93b0}
.sky-land .zone.locked .pix-icon .o{fill:#2a3348}.sky-land .zone.locked .pix-icon .c{fill:#7a849e}.sky-land .zone.locked .pix-icon .d{fill:#5b6480}
.sky-land .zone.locked .pix-icon .l{fill:#b8bfd0}.sky-land .zone.locked .pix-icon .n{fill:#3a4460}.sky-land .zone.locked .pix-icon .m{fill:#5b6480}
.sky-land .zone.cinema{border-width:4px;box-shadow:0 0 0 3px rgba(212,255,58,.25),0 0 32px rgba(212,255,58,.2)}
.sky-land .zone.cinema .zone-art{height:auto;padding:14px 0 12px}
.sky-land .zone.landmark{border-width:5px;border-color:var(--lime);box-shadow:0 0 0 4px rgba(212,255,58,.35),0 0 60px rgba(212,255,58,.38),0 0 120px rgba(212,255,58,.14)}
.sky-land .zone.landmark .zone-art{height:auto;padding:18px 0 16px;gap:14px}
.sky-land .zone.landmark .sign{height:38px;padding:0 30px}
.sky-land .zone.landmark .marquee-text{font-size:13px}
.sky-land .zone.landmark .icon-badge{width:32px;height:32px;font-size:11px}
.sky-land .zone.landmark .zone-body{padding:14px 18px 18px}
body.sig-theme .sky-land .zone.landmark .zone-name{font-size:16px;margin-bottom:6px}
body.sig-theme .sky-land .zone.landmark .zone-desc{font-size:21px}

/* ---------- 1.0.6.12: one pixel-button format for every button-like element on /skyland/ ----------
   Same box for all: Press Start 2P 8px, 1px tracking, uppercase, 32px tall, 0 14px padding, 2px border, square corners.
   Two states only:  ACTIVE (links + the signup submit) = filled lime, navy text; links get a ▶ prefix (ENTER has it in its copy).
                     LOCKED / SOON = same box, grey outline, grey text, no fill.
   The signup submit (MailPoet <input>) gets the same metrics in the "Key panel" rules above. HUD / header Subscribe untouched. */
.sky-land .badge,.sky-land .sub-link,body.sig-theme .sky-land a.sky-more,.sky-land .skyland-key-panel .sk-tag,.sky-land .skyland-key-panel .sk-banner>span{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;height:32px;padding:0 14px;margin:0;
  font-family:var(--px);font-size:8px;line-height:1;letter-spacing:1px;text-transform:uppercase;white-space:nowrap;
  border:2px solid var(--lime);border-radius:0;background:var(--lime);color:var(--navy);text-decoration:none;box-shadow:none;clip-path:none}
body.sig-theme .sky-land a.badge,body.sig-theme .sky-land a.badge:visited,body.sig-theme .sky-land a.sub-link,body.sig-theme .sky-land a.sub-link:visited,body.sig-theme .sky-land a.sky-more,body.sig-theme .sky-land a.sky-more:visited{background:var(--lime);color:var(--navy);text-decoration:none;cursor:pointer}
body.sig-theme .sky-land a.badge:hover,body.sig-theme .sky-land a.badge:focus-visible,body.sig-theme .sky-land a.sub-link:hover,body.sig-theme .sky-land a.sub-link:focus-visible,body.sig-theme .sky-land a.sky-more:hover,body.sig-theme .sky-land a.sky-more:focus-visible{background:var(--lime);color:var(--navy);outline:2px solid var(--cream);outline-offset:2px;text-decoration:none}
body.sig-theme .sky-land a.sub-link::before,body.sig-theme .sky-land a.sky-more::before{content:"\25B6";content:"\25B6"/""}
body.sig-theme .sky-land a.sky-more{align-self:flex-start;margin-top:14px}
.sky-land .sky-more__arr{display:none}
.sky-land .badge.soon,.sky-land .sub-link.locked,.sky-land .skyland-key-panel .sk-tag{background:transparent;border-color:var(--muted);color:var(--muted);cursor:default}
.sky-land .sub-link.locked img{width:10px;height:auto;flex:none}

/* ??? secret zone tile */
.sky-land .secret{position:relative;z-index:3;display:flex;align-items:center;gap:14px;background:repeating-linear-gradient(135deg,#0a1124 0 6px,#0c142b 6px 12px);border:3px dotted rgba(212,255,58,.55);box-shadow:inset 0 0 28px rgba(0,0,0,.7),0 0 22px rgba(212,255,58,.07)}
.sky-land .secret .kh{filter:drop-shadow(0 0 7px rgba(212,255,58,.45))}
.sky-land .secret .pix-icon .n{fill:#0e1630}.sky-land .secret .pix-icon .m{fill:#33426a}
body.sig-theme .sky-land .secret-name{font-family:var(--px);font-size:13px;letter-spacing:4px;line-height:1.4}
body.sig-theme .sky-land .secret-name a{color:rgba(212,255,58,.85);text-shadow:0 0 10px rgba(212,255,58,.35)}
body.sig-theme .sky-land .secret-name a:hover,body.sig-theme .sky-land .secret-name a:focus-visible{color:var(--lime);text-decoration:underline}
body.sig-theme .sky-land .secret-line{font-family:var(--vt);font-size:15px;color:#7d88a8;letter-spacing:.5px;white-space:nowrap;margin-top:6px}
.sky-land .secret .q-badge{position:absolute;top:8px;right:8px;width:22px;height:22px;border:2px dotted rgba(212,255,58,.55);color:rgba(212,255,58,.8);display:flex;align-items:center;justify-content:center;font-family:var(--px);font-size:9px}

/* "You are here" */
.sky-yah{display:flex;align-items:center;gap:8px;z-index:5}
.sky-yah__pin{display:block;width:16px;height:16px;background:var(--lime);box-shadow:0 0 0 3px rgba(212,255,58,.3),0 0 14px rgba(212,255,58,.6);animation:sky-pulse 1.4s ease-in-out infinite}
@keyframes sky-pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.15)}}
@media (prefers-reduced-motion:reduce){.sky-yah__pin{animation:none}}
.sky-yah span{font-family:var(--px);font-size:8px;line-height:1.2;color:var(--lime);background:rgba(16,26,51,.85);padding:5px 8px;border:2px solid var(--lime)}

/* ---------- Panels below the map ---------- */
.sky-below{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:stretch;width:min(1360px,calc(100% - 48px));margin:0 auto 40px}
.sky-panel{background:var(--navy2);border:3px solid var(--path);padding:22px 24px;min-height:260px;display:flex;flex-direction:column;justify-content:center}
body.sig-theme .sky-land .sky-panel h2{font-family:var(--px);font-size:12px;line-height:1.5;color:var(--lime);margin:0 0 6px;text-transform:uppercase}
body.sig-theme .sky-land .sky-lead{font-family:var(--vt);font-size:18px;line-height:1.3;color:var(--muted);margin:0 0 16px}
.sky-posts{list-style:none;margin:0;padding:0}
.sky-posts li{border-bottom:1px solid var(--path);padding:10px 0;margin:0}
.sky-posts li:last-child{border-bottom:0}
body.sig-theme .sky-land .sky-posts a{font-family:var(--sig-f,"Bricolage Grotesque",sans-serif);font-size:15px;font-weight:600;line-height:1.35;color:var(--cream)}
body.sig-theme .sky-land .sky-posts a:hover,body.sig-theme .sky-land .sky-posts a:focus-visible{color:var(--lime)}
.sky-posts__meta{font-family:var(--vt);font-size:15px;color:var(--muted);margin-top:2px}
/* Key panel: the panel itself is skyland-key.css (Stefan); here only the live MailPoet inline styles are neutralised
   (MailPoet prints #mailpoet_form_N rules and inline input styles that would beat the panel's class rules). */
.sky-land .skyland-key-panel{min-height:260px}
body.sig-theme .sky-land .skyland-key-panel .sk-form .mailpoet_form,body.sig-theme .sky-land .skyland-key-panel .sk-form form.mailpoet_form{padding:0!important;margin:0!important;background:none!important;border:0!important}
body.sig-theme .sky-land .skyland-key-panel .sk-form form.mailpoet_form::before{content:none!important}
body.sig-theme .sky-land .skyland-key-panel .sk-form .mailpoet_paragraph{margin:0!important;max-width:none!important}
body.sig-theme .sky-land .skyland-key-panel .sk-form input.mailpoet_text{width:100%!important;height:32px!important;padding:0 14px!important;margin:0!important;border-radius:0!important;border:2px solid var(--path)!important;background:#0a1020!important;color:var(--cream)!important;font:400 18px/1 var(--vt)!important;box-shadow:none!important}
body.sig-theme .sky-land .skyland-key-panel .sk-form input.mailpoet_text:focus{border-color:var(--lime)!important;outline:none}
body.sig-theme .sky-land .skyland-key-panel .sk-form input.mailpoet_submit{width:auto!important;height:32px!important;padding:0 14px!important;margin:0!important;border:2px solid var(--lime)!important;border-radius:0!important;background:var(--lime)!important;color:var(--navy)!important;font:400 8px/1 var(--px)!important;letter-spacing:1px!important;text-transform:uppercase;white-space:nowrap;cursor:pointer;box-shadow:none!important}
body.sig-theme .sky-land .skyland-key-panel .sk-form input.mailpoet_submit:hover,body.sig-theme .sky-land .skyland-key-panel .sk-form input.mailpoet_submit:focus-visible{outline:2px solid var(--cream)!important;outline-offset:2px;background:var(--lime)!important}
body.sig-theme .sky-land .skyland-key-panel .sk-form .mailpoet_form_loading{display:none!important}
body.sig-theme .sky-land .skyland-key-panel .sk-form .mailpoet_validate_error{font:400 16px/1.3 var(--vt);color:#ff9a8a;margin:8px 0 0}
@container skkey (max-width:560px){body.sig-theme .sky-land .skyland-key-panel .sk-form input.mailpoet_submit{width:100%!important}}

/* ---------- Desktop world map (1200px and up): Stefan's 1360x1097 map, columns at 16.912% / 50% / 83.088% ---------- */
@media (min-width:1200px){
  .sky-hide-d{display:none!important}
  .sky-map{position:relative;width:min(1360px,calc(100% - 48px));height:1097px;margin:10px auto 20px;border:3px solid var(--path);
    background:repeating-linear-gradient(0deg,transparent,transparent 15px,rgba(58,74,114,.12) 15px,rgba(58,74,114,.12) 16px),repeating-linear-gradient(90deg,transparent,transparent 15px,rgba(58,74,114,.12) 15px,rgba(58,74,114,.12) 16px),radial-gradient(ellipse at 55% 40%,#152038 0%,#0e162c 100%);
    box-shadow:inset 0 0 80px rgba(0,0,0,.45)}
  .sky-map__label{position:absolute;top:14px;left:18px;z-index:2;font-family:var(--px);font-size:8px;color:var(--muted);letter-spacing:1px}
  .sky-paths{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1}
  .sky-paths path{fill:none;stroke:var(--path);stroke-width:6;stroke-linecap:square;stroke-dasharray:10 8;vector-effect:non-scaling-stroke}
  .sky-paths path.lit{stroke:var(--lime);stroke-opacity:.5;stroke-width:5;stroke-dasharray:12 6}
  .sky-paths path.secret-trail{stroke:var(--lime);stroke-opacity:.35;stroke-width:4;stroke-dasharray:2 6}
  .sky-conn{display:none}
  .sky-land .zone{position:absolute;width:220px}
  .sky-land .zone.landmark{width:440px}
  .sky-land .zone.cinema{width:300px}
  #z-news{left:calc(16.912% - 110px);top:64px}
  #z-investing{left:calc(50% - 110px);top:64px}
  #z-works{left:calc(83.088% - 110px);top:64px}
  #z-shop{left:calc(16.912% - 110px);top:406px}
  #z-stories{left:calc(50% - 220px);top:328px}
  #z-movies{left:calc(83.088% - 150px);top:344px}
  #z-music{left:calc(16.912% - 110px);top:749px}
  #z-health{left:calc(50% - 110px);top:749px}
  #z-games{left:calc(83.088% - 110px);top:749px}
  .sky-land #z-secret{position:absolute;right:24px;top:981px;width:316px;height:92px;padding:10px 16px}
  .sky-yah{position:absolute;left:calc(50% - 220px);top:285px}
  /* 1.0.6.10: legend is a header row above the map (in normal flow), so it can never cover a tile */
  body.sig-theme .sky-land .sky-legend--map{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;width:min(1360px,calc(100% - 48px));margin:14px auto 0;padding:0;white-space:nowrap;line-height:1.3}
}

/* ---------- Stacked path (below 1200px; Stefan's mobile layout) ---------- */
@media (max-width:1199px){
  .sky-hide-m{display:none!important}
  .sky-hud{width:calc(100% - 32px);max-width:560px;margin-top:16px;justify-content:center}
  .sky-hud__title{display:none}
  .sky-hud__stats{justify-content:center;gap:12px}
  .sky-hero{padding:20px 16px 6px}
  body.sig-theme .sky-land .sky-legend{padding:10px 16px 4px}
  .sky-map{position:relative;max-width:560px;margin:0 auto;padding:12px 18px 20px}
  .sky-map__label,.sky-paths{display:none}
  .sky-yah{position:relative;justify-content:center;margin:0 auto 8px}
  .sky-yah__pin{display:none}
  .sky-yah span{border:0;background:none;padding:0;font-size:7px}
  .sky-land .zone,.sky-land .secret{width:100%;max-width:340px;margin:0 auto}
  .sky-land .zone-body{padding:12px 14px 14px}
  body.sig-theme .sky-land .zone-desc{font-size:15px;line-height:1.3;margin-bottom:10px}
  .sky-conn{position:relative;z-index:1;text-align:center;font-family:var(--px);font-size:10px;line-height:1;color:var(--path);margin:6px 0}
  .sky-conn.secret-trail{color:rgba(212,255,58,.45)}
  .sky-land #z-secret{flex-direction:column;gap:10px;padding:18px 16px 16px;text-align:center}
  .sky-below{grid-template-columns:1fr;max-width:560px;width:calc(100% - 32px);gap:16px;margin-bottom:32px}
  .sky-panel{min-height:0;padding:18px 16px}
}
@media (max-width:768px){
  body.sig-theme .sky-land .sky-hero__title{font-size:16px;line-height:1.4;margin-bottom:10px}
  body.sig-theme .sky-land .sky-hero__tag{font-size:8px;letter-spacing:.5px}
  body.sig-theme .sky-land .sky-hero__sub{font-size:16px;line-height:1.3;padding:0 8px}
  body.sig-theme .sky-land .sky-legend{font-size:14px}
  .sky-land .zone.landmark .sign{padding:0 22px}
  .sky-land .zone.landmark .marquee-text{font-size:11px}
  body.sig-theme .sky-land .zone.landmark .zone-name{font-size:13px}
  body.sig-theme .sky-land .zone.landmark .zone-desc{font-size:18px}
  .sky-hud__xp{width:80px}
}

/* 1.0.6.14: signup panel label "??? ZONE · BOSS AHEAD" (HTML, Press Start 2P) links to the ??? zone.
   Muted dotted tag at rest (Stefan's spec), lime on hover/focus. */
body.sig-theme .sky-land .skyland-key-panel a.sk-tag--link,body.sig-theme .sky-land .skyland-key-panel a.sk-tag--link:visited{background:rgba(10,16,32,.6);border:2px dotted var(--muted);color:var(--muted);cursor:pointer;text-decoration:none}
body.sig-theme .sky-land .skyland-key-panel a.sk-tag--link:hover,body.sig-theme .sky-land .skyland-key-panel a.sk-tag--link:focus-visible{background:var(--lime);border-style:solid;border-color:var(--lime);color:var(--navy);outline:2px solid var(--cream);outline-offset:2px}
