/* V20 · A tiny, optional exploration passport. Never covers the main CTAs. */
.jp-launch{position:absolute;z-index:4;left:clamp(24px,4vw,68px);bottom:131px;display:flex;align-items:center;gap:7px;min-height:39px;padding:8px 12px;border:1px solid #d6e2d4;border-radius:13px;background:#fdfdf4e8;color:#4b7056;box-shadow:0 7px 25px #334c3a1d;font-size:11px;font-weight:700;letter-spacing:.015em;cursor:pointer;transition:transform .2s,background .2s}
.jp-launch:hover{transform:translateY(-2px);background:#fffef8}
.jp-launch-star{font-size:17px;color:#a48357}
.jp-launch-progress{font-size:10px;border-radius:99px;background:#e0eadb;color:#4a7354;padding:4px 6px;min-width:31px;text-align:center}
.app.night .jp-launch{background:#324d4fe6;color:#eaf0df;border-color:#789080}
.app.night .jp-launch-progress{background:#557568;color:#fff5e7}
.app.focus-view .jp-launch,.jmg-playing:not(.jmg-peek) .jp-launch{display:none}
body:has(.guest-card:not([hidden])) .jp-launch{opacity:0;pointer-events:none}
.jp-overlay[hidden]{display:none}
.jp-overlay{position:fixed;inset:0;z-index:34;background:#253a2cc9;display:flex;align-items:center;justify-content:center;padding:15px;backdrop-filter:blur(8px)}
.jp-overlay *{box-sizing:border-box}
.jp-panel{position:relative;width:min(470px,100%);max-height:calc(100dvh - 30px);overflow:auto;overscroll-behavior:contain;background:#fffdf7;border:1px solid #e0e7d9;border-radius:25px;padding:27px 28px 23px;box-shadow:0 25px 100px #183a2b66;color:#354d3d}
.jp-header{display:flex;align-items:center;justify-content:space-between;gap:12px}
.jp-mark{font-size:11px;letter-spacing:.19em;color:#829b83;font-weight:700}
.jp-close{border:1px solid #dce5d6;width:40px;height:40px;border-radius:50%;background:#fff;color:#4d7258;font-size:23px;line-height:1;cursor:pointer;flex:none}
.jp-panel h2{font-size:clamp(24px,5vw,31px);font-weight:650;letter-spacing:-.045em;line-height:1.24;margin:7px 0 9px}
.jp-sub{font-size:12px;color:#738577;line-height:1.85;margin:0 0 14px}
.jp-progressbar{height:6px;background:#e6ebe0;border-radius:99px;overflow:hidden;margin:12px 0 16px}
.jp-progressbar span{display:block;height:100%;width:0;background:linear-gradient(90deg,#b1cba5,#4e7856);border-radius:99px;transition:width .2s}
.jp-steps{list-style:none;margin:0;padding:0;display:grid;gap:9px}
.jp-step{display:flex;align-items:center;gap:12px;min-height:73px;border:1px solid #e0e6dc;background:#fff;border-radius:15px;padding:12px}
.jp-step.done{background:#f2f7ee;border-color:#c6dbbe}
.jp-step-mark{display:grid;place-items:center;width:40px;height:40px;flex:none;background:#edf1e9;border-radius:12px;font-size:21px;color:#608268}
.jp-step.done .jp-step-mark{background:#dcebd6;color:#477854;font-size:19px;font-weight:800}
.jp-step-copy{flex:1;min-width:0}
.jp-step-copy strong{display:block;font-size:13px}
.jp-step-copy small{display:block;margin-top:4px;font-size:10.5px;line-height:1.55;color:#829486}
.jp-step-status{flex:none;font-size:10px;color:#8aa08b;white-space:nowrap}
.jp-reward{margin-top:13px;background:linear-gradient(125deg,#e8f0e1,#fffbec);padding:13px 14px;border:1px solid #d2dfc8;border-radius:14px}
.jp-reward strong{display:block;color:#557b56;font-size:13px}
.jp-reward p{font-size:11px;line-height:1.65;color:#708575;margin:5px 0 0}
.jp-shop{margin-top:10px;display:flex;justify-content:center;align-items:center;min-height:44px;padding:10px;border-radius:11px;background:#eff5ed;border:1px solid #d2e1cb;color:#496e50;text-decoration:none;font-weight:700;font-size:12px;text-align:center}
.jp-actions{display:flex;gap:9px;margin:16px 0 0}
.jp-actions button{flex:1;min-height:46px;padding:10px 12px;border-radius:12px;font-family:inherit;font-size:12px;font-weight:700;cursor:pointer}
.jp-primary{background:#486c51;border:1px solid #486c51;color:white}
.jp-secondary{background:white;border:1px solid #d3dfd2;color:#56715c}
.jp-note{text-align:center;color:#95a398;font-size:10px;margin:12px 0 0;line-height:1.6}
.jp-overlay button:focus-visible,.jp-overlay a:focus-visible,.jp-launch:focus-visible{outline:3px solid #a8caa6;outline-offset:3px}
@media(max-width:640px) and (orientation:portrait){
  .jp-launch{left:12px;bottom:calc(157px + env(safe-area-inset-bottom));min-height:35px;padding:6px 9px;gap:5px;border-radius:11px;font-size:10px}
  .jp-launch-star{font-size:15px}
  .jp-launch-progress{font-size:9px;padding:3px 5px}
  .jp-overlay{align-items:flex-end;padding:0 8px max(7px,env(safe-area-inset-bottom))}
  .jp-panel{padding:17px 16px 16px;max-height:89dvh;border-radius:20px}
  .jp-panel h2{font-size:25px}
  .jp-step{min-height:66px;padding:9px;gap:9px}
  .jp-step-mark{width:35px;height:35px;font-size:19px}
  .jp-step-copy strong{font-size:12px}
  .jp-step-copy small{font-size:10px}
  .jp-actions button{font-size:11px}
}
@media(max-height:540px) and (orientation:landscape){.jp-launch{bottom:68px;left:15px}.jp-panel{max-height:calc(100dvh - 12px);padding:15px 20px}.jp-step{min-height:52px;padding:6px 10px}.jp-overlay{padding:6px}}
@media(prefers-reduced-motion:reduce){.jp-launch,.jp-progressbar span{transition:none}}
