@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;1,300;1,400&family=Inter:wght@400;500;600&family=JetBrains+Mono:wght@400;500&display=swap');

*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html,body{width:100%;height:100%;background:#000;overflow:hidden;
  font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  color:#fff;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  cursor:grab;user-select:none;-webkit-user-select:none}
body.holding{cursor:grabbing}
body.started{cursor:default}

/* ── space backdrop ── */
#space-bg{position:fixed;inset:0;z-index:0;pointer-events:none;
  background:radial-gradient(ellipse at 18% 24%,#0d1a30 0%,transparent 55%),
             radial-gradient(ellipse at 82% 76%,#150b22 0%,transparent 60%),
             radial-gradient(ellipse at 50% 50%,#000308 0%,#000 100%)}
#space-bg::before,#space-bg::after{content:"";position:absolute;inset:-20%;
  background-image:radial-gradient(1px 1px at 13% 27%,#fff 50%,transparent 51%),
    radial-gradient(1px 1px at 47% 71%,#cfe0ff 50%,transparent 51%),
    radial-gradient(1.4px 1.4px at 79% 12%,#fff 50%,transparent 51%),
    radial-gradient(1px 1px at 22% 88%,#ffe9c4 50%,transparent 51%),
    radial-gradient(1px 1px at 64% 38%,#fff 50%,transparent 51%),
    radial-gradient(0.8px 0.8px at 91% 56%,#fff 50%,transparent 51%),
    radial-gradient(1.2px 1.2px at 35% 53%,#d6e6ff 50%,transparent 51%),
    radial-gradient(0.7px 0.7px at 8% 64%,#fff 50%,transparent 51%),
    radial-gradient(1px 1px at 55% 17%,#fff 50%,transparent 51%),
    radial-gradient(0.9px 0.9px at 73% 84%,#ffd9a8 50%,transparent 51%);
  background-size:520px 520px;animation:twinkle 6s ease-in-out infinite alternate}
#space-bg::after{background-size:870px 870px;opacity:.6;animation-duration:9s;animation-delay:-3s;transform:translate(120px,80px)}
@keyframes twinkle{from{opacity:.55}to{opacity:1}}

/* ── map ── */
#map{position:fixed;inset:0;z-index:1;background:transparent;transition:opacity 1.4s ease,filter 1.4s ease}
.maplibregl-map{background:transparent!important;outline:none!important;font:inherit}
.maplibregl-canvas{outline:none}
.maplibregl-ctrl-attrib,.maplibregl-ctrl-bottom-right,.maplibregl-ctrl-bottom-left{display:none!important}

/* ── tile loading overlay ── */
#loadingOverlay{position:fixed;inset:0;z-index:18;pointer-events:none;
  display:flex;align-items:center;justify-content:center;
  background:rgba(0,0,0,.55);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);
  opacity:0;transition:opacity .4s ease}
#loadingOverlay.show{opacity:1}
.lo-ring{width:36px;height:36px;border-radius:50%;
  border:2px solid rgba(255,255,255,.12);border-top-color:rgba(255,255,255,.65);
  animation:spin 0.9s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* ── caption HUD ── */
#caption{position:fixed;left:5vw;bottom:10vh;z-index:20;max-width:46ch;
  pointer-events:none;opacity:0;transform:translateY(10px);
  transition:opacity .9s ease,transform .9s ease;
  text-shadow:0 2px 20px rgba(0,0,0,.75),0 0 40px rgba(0,0,0,.5)}
#caption.show{opacity:1;transform:translateY(0)}
#caption .years{font-size:clamp(10px,1.2vw,13px);letter-spacing:.34em;text-transform:uppercase;
  color:rgba(255,255,255,.65);font-weight:500;margin-bottom:10px;font-feature-settings:"tnum"}
#caption .place{font-size:clamp(22px,4.5vw,56px);font-weight:300;line-height:1.05;
  margin-bottom:7px;font-family:'Cormorant Garamond',Georgia,serif;font-style:italic}
#caption .sub{font-size:clamp(11px,1.3vw,13px);color:rgba(255,255,255,.52);letter-spacing:.05em}

/* ── tap to continue ── */
#nextBtn{position:fixed;bottom:8vh;left:50%;transform:translateX(-50%);z-index:30;
  display:flex;align-items:center;gap:10px;
  padding:clamp(10px,1.5vh,14px) clamp(20px,3vw,30px);
  border-radius:40px;background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.18);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  cursor:pointer;opacity:0;pointer-events:none;transition:opacity .7s ease;
  font-size:clamp(10px,1.2vw,12px);letter-spacing:.24em;text-transform:uppercase;
  color:rgba(255,255,255,.78)}
#nextBtn.show{opacity:1;pointer-events:auto;animation:nextGlow 2.8s ease-in-out infinite}
@keyframes nextGlow{0%,100%{box-shadow:0 0 0 0 rgba(180,210,255,.12)}50%{box-shadow:0 0 0 10px rgba(180,210,255,0)}}
#nextBtn .nb-chevron{font-size:20px;animation:chevPulse 1.6s ease-in-out infinite}
@keyframes chevPulse{0%,100%{transform:translateX(0)}50%{transform:translateX(4px)}}

/* ── tour badge ── */
#tourBadge{position:fixed;top:max(4vh,env(safe-area-inset-top,12px));left:5vw;z-index:20;
  font-size:clamp(10px,1.2vw,13px);letter-spacing:.18em;text-transform:uppercase;
  color:rgba(255,255,255,.65);font-weight:500;
  opacity:0;transition:opacity .8s ease;text-shadow:0 1px 8px rgba(0,0,0,.7)}
#tourBadge.show{opacity:1}

/* ── coords ── */
#coords{position:fixed;top:max(4vh,env(safe-area-inset-top,12px));right:5vw;z-index:20;
  font-family:'JetBrains Mono','SF Mono',ui-monospace,monospace;
  font-size:clamp(9px,1.0vw,11px);letter-spacing:.14em;color:rgba(255,255,255,.52);
  text-align:right;line-height:1.75;opacity:0;transition:opacity 1s;
  text-shadow:0 1px 6px rgba(0,0,0,.8)}
#coords.show{opacity:1}
#coords .label{color:rgba(255,255,255,.30);margin-right:6px}

/* ── cosmos canvas ── */
#cosmos{position:fixed;inset:0;z-index:10;pointer-events:none;opacity:0;transition:opacity 1.6s ease}
#cosmos.on{opacity:1}

/* ── end title ── */
#endTitle{position:fixed;left:0;right:0;bottom:13vh;z-index:30;text-align:center;
  opacity:0;transform:translateY(22px);transition:opacity 2.2s ease,transform 2.2s ease;pointer-events:none}
#endTitle.show{opacity:1;transform:translateY(0)}
#endTitle .me{font-family:'Cormorant Garamond',Georgia,serif;font-style:italic;font-weight:300;
  font-size:clamp(40px,7vw,110px);letter-spacing:.01em;line-height:1;
  color:#fff;text-shadow:0 0 60px rgba(180,200,255,.5)}
#endTitle .tag{margin-top:14px;font-size:clamp(10px,1.1vw,12px);letter-spacing:.5em;
  text-transform:uppercase;color:rgba(255,255,255,.40);font-weight:500}

/* ── solar / galaxy canvas ── */
#solarCanvas,#galaxyCanvas{position:fixed;inset:0;z-index:10;opacity:0;transition:opacity 1.8s ease}
#solarCanvas{cursor:crosshair}
#solarCanvas.on,#galaxyCanvas.on{opacity:1}
#solarCanvas.panning,#galaxyCanvas.panning{cursor:grabbing}

/* ── planet info ── */
#planetInfo{position:fixed;bottom:11vh;right:5vw;z-index:35;
  width:min(280px,90vw);padding:20px 20px 16px;
  background:rgba(6,10,22,.90);border:1px solid rgba(120,160,255,.20);
  border-radius:16px;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);
  opacity:0;pointer-events:none;transform:translateY(14px);
  transition:opacity .5s ease,transform .5s ease}
#planetInfo.show{opacity:1;pointer-events:auto;transform:translateY(0)}
.pi-close{position:absolute;top:12px;right:14px;font-size:18px;color:rgba(255,255,255,.35);cursor:pointer;transition:color .2s}
.pi-close:hover{color:rgba(255,255,255,.8)}
.pi-name{font-family:'Cormorant Garamond',Georgia,serif;font-style:italic;font-weight:300;
  font-size:clamp(26px,3.5vw,34px);margin-bottom:13px;color:#fff}
.pi-body{font-size:clamp(11px,1.2vw,12px);line-height:1.85;color:rgba(255,255,255,.62)}
.pi-label{font-size:9px;letter-spacing:.28em;text-transform:uppercase;color:rgba(255,255,255,.30);display:block;margin-top:9px;margin-bottom:1px}
.pi-pluto-hint{margin-top:14px;padding-top:12px;border-top:1px solid rgba(255,255,255,.08);
  font-size:11px;letter-spacing:.10em;color:rgba(180,210,255,.65);text-align:center}

/* ── motivational messages ── */
#motiveMsg{position:fixed;bottom:3.5vh;left:50%;transform:translateX(-50%);z-index:22;
  font-size:clamp(10px,1.2vw,12px);letter-spacing:.22em;text-transform:uppercase;
  color:rgba(255,255,255,.38);white-space:nowrap;pointer-events:none;
  opacity:0;transition:opacity 1.4s ease;max-width:90vw;text-align:center;
  overflow:hidden;text-overflow:ellipsis}
#motiveMsg.show{opacity:1}

/* ── search bar ── */
#searchWrap{position:fixed;bottom:max(5vh,env(safe-area-inset-bottom,20px));left:5vw;z-index:40;
  display:flex;align-items:flex-end;gap:0;transition:opacity .5s}
#searchWrap.hidden{opacity:0;pointer-events:none}
#searchToggle{width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.09);
  border:1px solid rgba(255,255,255,.18);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  color:rgba(255,255,255,.80);font-size:18px;cursor:pointer;transition:background .2s;
  display:flex;align-items:center;justify-content:center;flex-shrink:0}
#searchToggle:hover{background:rgba(255,255,255,.15)}
#searchPanel{width:0;overflow:hidden;transition:width .35s ease;margin-left:0}
#searchPanel.open{width:min(320px,80vw);margin-left:8px}
#searchInput{width:100%;padding:10px 14px;border-radius:24px;
  background:rgba(10,12,24,.88);border:1px solid rgba(255,255,255,.18);
  color:#fff;font-size:14px;font-family:inherit;outline:none;
  backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}
#searchInput::placeholder{color:rgba(255,255,255,.38)}
#searchResults{margin-top:6px;border-radius:14px;overflow:hidden;
  background:rgba(8,10,22,.92);border:1px solid rgba(255,255,255,.10);
  backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}
.sr-item{padding:11px 16px;cursor:pointer;font-size:13px;color:rgba(255,255,255,.78);
  border-bottom:1px solid rgba(255,255,255,.06);transition:background .15s}
.sr-item:last-child{border-bottom:none}
.sr-item:hover{background:rgba(255,255,255,.08)}
.sr-item .sr-name{font-weight:500}
.sr-item .sr-dist{font-size:11px;color:rgba(255,255,255,.40);margin-top:2px}
.sr-item .sr-set{float:right;font-size:11px;color:rgba(140,200,255,.70);cursor:pointer;margin-top:1px}

/* ── distance HUD ── */
#distHUD{position:fixed;top:max(4vh,env(safe-area-inset-top,14px));left:50%;transform:translateX(-50%);
  z-index:30;display:flex;align-items:center;gap:10px;
  padding:10px 16px 10px 12px;border-radius:30px;
  background:rgba(6,10,22,.85);border:1px solid rgba(120,200,255,.22);
  backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  opacity:0;pointer-events:none;transition:opacity .5s ease}
#distHUD.show{opacity:1;pointer-events:auto}
.dh-icon{font-size:20px;color:rgba(120,200,255,.85);animation:dhPulse 2s ease-in-out infinite}
@keyframes dhPulse{0%,100%{opacity:.6;transform:scale(1)}50%{opacity:1;transform:scale(1.12)}}
.dh-name{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.55);margin-bottom:2px}
.dh-dist{font-family:'JetBrains Mono',monospace;font-size:15px;color:#fff;font-weight:500}
.dh-close{font-size:16px;color:rgba(255,255,255,.35);cursor:pointer;margin-left:4px;transition:color .2s}
.dh-close:hover{color:rgba(255,255,255,.8)}

/* ── goal panel ── */
#goalToggle{position:fixed;right:5vw;bottom:max(5vh,env(safe-area-inset-bottom,20px));z-index:40;
  width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.09);
  border:1px solid rgba(255,255,255,.18);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  color:rgba(180,220,255,.85);font-size:19px;cursor:pointer;transition:background .2s;
  display:flex;align-items:center;justify-content:center}
#goalToggle:hover{background:rgba(255,255,255,.15)}
#goalToggle.hidden{opacity:0;pointer-events:none}

#goalPanel{position:fixed;right:5vw;bottom:calc(max(5vh,20px) + 50px);z-index:40;
  width:min(300px,90vw);max-height:60vh;
  background:rgba(6,10,22,.92);border:1px solid rgba(120,160,255,.20);
  border-radius:18px;overflow:hidden;display:flex;flex-direction:column;
  backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);
  opacity:0;pointer-events:none;transform:translateY(12px) scale(.97);
  transition:opacity .35s ease,transform .35s ease}
#goalPanel.show{opacity:1;pointer-events:auto;transform:translateY(0) scale(1)}
#goalPanelHead{display:flex;justify-content:space-between;align-items:center;
  padding:14px 16px;border-bottom:1px solid rgba(255,255,255,.08);
  font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:rgba(255,255,255,.65)}
#goalPanelClose{background:none;border:none;color:rgba(255,255,255,.38);font-size:18px;cursor:pointer;line-height:1}
#goalList{flex:1;overflow-y:auto;padding:8px 0}
#goalList::-webkit-scrollbar{width:3px}
#goalList::-webkit-scrollbar-thumb{background:rgba(255,255,255,.12);border-radius:2px}
.gl-item{padding:11px 16px;border-bottom:1px solid rgba(255,255,255,.05);position:relative}
.gl-item:last-child{border-bottom:none}
.gl-name{font-size:13px;color:rgba(255,255,255,.85);margin-bottom:3px}
.gl-meta{font-size:11px;color:rgba(255,255,255,.42);letter-spacing:.04em}
.gl-actions{display:flex;gap:8px;margin-top:7px}
.gl-btn{font-size:10px;letter-spacing:.16em;text-transform:uppercase;padding:4px 10px;
  border-radius:20px;border:1px solid rgba(255,255,255,.18);background:none;
  color:rgba(255,255,255,.60);cursor:pointer;transition:background .15s}
.gl-btn:hover{background:rgba(255,255,255,.10)}
.gl-btn.danger{border-color:rgba(255,80,80,.35);color:rgba(255,120,120,.75)}
.gl-btn.danger:hover{background:rgba(255,80,80,.12)}
.gl-btn.lock-on{border-color:rgba(255,200,80,.40);color:rgba(255,200,80,.85)}
.gl-dist{position:absolute;right:16px;top:12px;font-family:'JetBrains Mono',monospace;
  font-size:11px;color:rgba(120,200,255,.75)}
#addGoalBtn{margin:10px 12px 12px;padding:10px;border-radius:12px;
  background:rgba(120,180,255,.10);border:1px solid rgba(120,180,255,.22);
  color:rgba(120,200,255,.85);font-size:12px;letter-spacing:.12em;cursor:pointer;
  transition:background .2s}
#addGoalBtn:hover{background:rgba(120,180,255,.18)}

/* ── goal modal ── */
#goalModal{position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;
  background:rgba(0,0,0,.65);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  opacity:0;pointer-events:none;transition:opacity .3s}
#goalModal.show{opacity:1;pointer-events:auto}
#goalModalBox{background:rgba(8,12,26,.96);border:1px solid rgba(120,160,255,.25);
  border-radius:20px;padding:28px;width:min(360px,90vw);
  display:flex;flex-direction:column;gap:14px}
#goalModalBox h3{font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:300;
  font-size:26px;color:#fff;margin-bottom:4px}
#goalModalBox label{font-size:11px;letter-spacing:.20em;text-transform:uppercase;
  color:rgba(255,255,255,.45);display:flex;flex-direction:column;gap:6px}
#goalModalBox input,#goalModalBox select{
  padding:10px 14px;border-radius:10px;
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.15);
  color:#fff;font-size:14px;font-family:inherit;outline:none}
#goalModalBox select{cursor:pointer}
#goalModalBox option{background:#0d1020;color:#fff}
#goalModalBtns{display:flex;gap:10px;justify-content:flex-end;margin-top:6px}
#gmCancel,#gmSave{padding:9px 22px;border-radius:24px;font-size:13px;cursor:pointer;transition:background .2s}
#gmCancel{background:none;border:1px solid rgba(255,255,255,.18);color:rgba(255,255,255,.60)}
#gmCancel:hover{background:rgba(255,255,255,.08)}
#gmSave{background:rgba(120,180,255,.20);border:1px solid rgba(120,180,255,.40);color:rgba(180,220,255,.95)}
#gmSave:hover{background:rgba(120,180,255,.35)}

/* ── hold indicator ── */
#pauseDot{position:fixed;right:5vw;bottom:max(7vh,30px);z-index:25;
  width:8px;height:8px;border-radius:50%;background:#ff5b5b;
  opacity:0;transition:opacity .25s;box-shadow:0 0 18px rgba(255,91,91,.7)}
#pauseDot.on{opacity:.85;animation:pulseDot 1.2s ease-in-out infinite}
@keyframes pulseDot{50%{opacity:.4}}

/* ── hint ── */
#hint{position:fixed;bottom:4.5vh;left:50%;transform:translateX(-50%);
  z-index:25;font-size:clamp(9px,1.1vw,11px);letter-spacing:.22em;text-transform:uppercase;
  color:rgba(255,255,255,.52);white-space:nowrap;opacity:0;transition:opacity .6s ease;
  text-shadow:0 1px 8px rgba(0,0,0,.8);max-width:90vw;text-align:center}
#hint.show{opacity:1}

/* ── life title (earth phase) ── */
#lifeTitle{position:fixed;left:0;right:0;top:50%;transform:translateY(-50%);
  text-align:center;pointer-events:none;z-index:20;
  font-family:'Cormorant Garamond',Georgia,serif;font-style:italic;font-weight:300;
  font-size:clamp(80px,16vw,200px);color:rgba(255,255,255,.07);letter-spacing:.12em;
  opacity:0;transition:opacity 3s ease}
#lifeTitle.show{opacity:1}

/* ── galaxy title ── */
#galaxyTitle{position:fixed;left:0;right:0;top:50%;transform:translateY(-50%);
  text-align:center;pointer-events:none;z-index:20;
  font-family:'Cormorant Garamond',Georgia,serif;font-style:italic;font-weight:300;
  font-size:clamp(80px,16vw,200px);color:rgba(255,255,255,.05);
  opacity:0;transition:opacity 3s ease}
#galaxyTitle.show{opacity:1}

/* ── goal map pins ── */
.goal-pin{cursor:pointer}
.goal-pin svg{filter:drop-shadow(0 3px 8px rgba(0,0,0,.85));transition:transform .15s}
.goal-pin:hover svg{transform:scale(1.18) translateY(-3px)}

/* ── goal popup (MapLibre override) ── */
.goal-popup-wrap .maplibregl-popup-content{
  background:#0f1724;border:1px solid rgba(255,255,255,.12);
  border-radius:12px;padding:0;overflow:hidden;
  box-shadow:0 10px 32px rgba(0,0,0,.8);min-width:240px;max-width:300px}
.goal-popup-wrap .maplibregl-popup-tip{border-top-color:#0f1724}
.goal-popup-wrap .maplibregl-popup-close-button{
  color:rgba(255,255,255,.5);font-size:18px;padding:6px 10px;
  background:none;border:none;cursor:pointer}
.goal-popup-wrap .maplibregl-popup-close-button:hover{color:#fff}
.gp-img-wrap{width:100%;height:140px;overflow:hidden;background:#0a1020}
.gp-img{width:100%;height:100%;object-fit:cover;display:block}
.gp-body{padding:12px 14px 14px}
.gp-name{font-size:14px;font-weight:600;color:#fff;margin-bottom:4px;line-height:1.3}
.gp-note{font-size:12px;color:rgba(255,255,255,.5);margin-bottom:7px;line-height:1.5}
.gp-coords{font-size:10px;color:rgba(255,255,255,.3);font-family:'JetBrains Mono',monospace;margin-bottom:10px;letter-spacing:.04em}
.gp-gmaps{display:inline-block;font-size:12px;color:#1DB954;text-decoration:none;font-weight:500;padding:6px 10px;border:1px solid rgba(29,185,84,.35);border-radius:6px;transition:background .15s}
.gp-gmaps:hover{background:rgba(29,185,84,.12)}
.gp-links{display:flex;gap:8px;flex-wrap:wrap}
.gp-loading{padding:20px;font-size:12px;color:rgba(255,255,255,.35);text-align:center}

/* ── grain ── */
#grain{position:fixed;inset:0;z-index:50;pointer-events:none;mix-blend-mode:overlay;opacity:.055;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)' opacity='.55'/></svg>")}

/* ── letterbox bars (disabled — full-screen map) ── */
.bar{position:fixed;left:0;right:0;height:0;background:#000;z-index:40;pointer-events:none}

/* ── goal list items ── */
.gl-empty{padding:1.2rem;color:rgba(255,255,255,.4);font-size:12px;text-align:center;line-height:1.7}
.gl-item{display:flex;align-items:center;gap:8px;padding:.75rem 1rem;
  border-bottom:1px solid rgba(255,255,255,.06);transition:background .15s}
.gl-item:hover{background:rgba(255,255,255,.04)}
.gl-item.gl-active{border-left:2px solid rgba(102,200,255,.8);padding-left:calc(1rem - 2px)}
.gl-item.gl-locked{opacity:.7}
.gl-info{flex:1;min-width:0;cursor:pointer}
.gl-name{font-size:13px;font-weight:500;color:#e8eaed;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gl-note{font-size:11px;color:rgba(255,255,255,.45);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gl-reached{font-size:10px;color:#6fcf97;margin-top:3px;letter-spacing:.05em}
.gl-actions{display:flex;gap:4px;flex-shrink:0}
.gl-btn{background:none;border:none;cursor:pointer;color:rgba(255,255,255,.55);
  font-size:14px;padding:4px 5px;border-radius:4px;transition:color .15s,background .15s;line-height:1}
.gl-btn:hover{color:#fff;background:rgba(255,255,255,.1)}
.gl-btn.gl-disabled{opacity:.3;pointer-events:none}
.gl-track{color:rgba(102,200,255,.7)}
.gl-track:hover{color:rgb(102,200,255)}

/* ── search results ── */
.sr-item{padding:.6rem 1rem;cursor:pointer;font-size:13px;color:#cdd1d8;
  border-bottom:1px solid rgba(255,255,255,.06);transition:background .12s;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sr-item:hover{background:rgba(255,255,255,.08);color:#fff}
.sr-name{display:block}
.sr-none{padding:.8rem 1rem;font-size:12px;color:rgba(255,255,255,.4);text-align:center}

/* ── responsive tweaks ── */
@media(max-width:600px){
  #caption{left:4vw;bottom:13vh;max-width:92vw}
  #coords{top:max(3vh,12px);right:3vw}
  #tourBadge{top:max(3vh,12px);left:3vw}
  #nextBtn{bottom:6vh;font-size:10px}
  #searchWrap{bottom:max(4vh,env(safe-area-inset-bottom,16px));left:4vw}
  #goalToggle{bottom:max(4vh,env(safe-area-inset-bottom,16px));right:4vw}
  #goalPanel{right:4vw;width:92vw}
  #planetInfo{right:3vw;left:3vw;width:auto;bottom:10vh}
}
@media(max-height:600px){
  #caption .place{font-size:clamp(18px,4vw,32px)}
}
