/* Endless helm game ------------------------------------------------------- */
.voyage-stage{touch-action:none}
.sky-panorama{position:absolute;z-index:0;inset:0;overflow:hidden;pointer-events:none}
.sky-panel{position:absolute;top:0;bottom:0;left:0;background-image:linear-gradient(rgba(1,7,11,.05),rgba(1,8,12,.12)),url("ocean-sky.png");background-size:cover;background-position:center;will-change:transform}

/* World objects are projected from persistent coordinates by sailing.js. */
.sailing-world .story-vessel,.sailing-world .story-vessel.flag-island{
  left:var(--screen-x,50%)!important;
  right:auto!important;
  top:auto!important;
  bottom:var(--screen-bottom,54%)!important;
  opacity:0!important;
  transform:translateX(-50%) scale(var(--screen-scale,.02))!important;
  transform-origin:50% 100%!important;
  animation:none!important;
  transition:opacity .2s linear!important;
  pointer-events:none;
  will-change:left,bottom,transform;
}
.sailing-world .story-vessel.world-visible{opacity:1!important}
.sailing-world .story-vessel.world-crashed{opacity:0!important;filter:brightness(2) drop-shadow(0 0 28px #f6c44d)!important}

.sailing-score{display:grid;grid-template-columns:auto auto;gap:2px 9px;min-width:138px;padding:7px 10px;border-left:2px solid #d5a63d;background:rgba(17,10,3,.78);color:#d7a94a;font-size:8px;letter-spacing:.12em;line-height:1.15}
.sailing-score b{color:#ffe192;font-size:14px;text-align:right}.sailing-score small{grid-column:1/-1;color:#8ea0a4;font-size:7px;white-space:nowrap}
.sailing-score .leap-status{display:block;margin:2px 0 0;padding:0;border:0;background:none;color:#86e9ff;font:inherit;font-size:inherit;letter-spacing:inherit;text-align:left}.sailing-score .leap-status.tracking{color:#9eff66}.sailing-score .leap-status.offline{color:#b88157}.sailing-score .leap-status.install-needed{color:#ffd267;cursor:pointer;text-decoration:underline;text-underline-offset:2px}
.leap-installer{position:fixed;inset:0;z-index:10020;display:grid;place-items:center;padding:24px;background:rgba(0,7,11,.84);backdrop-filter:blur(9px)}.leap-installer[hidden]{display:none}.leap-installer section{position:relative;width:min(560px,100%);max-height:calc(100dvh - 48px);overflow:auto;padding:32px;border:1px solid rgba(219,165,46,.65);border-radius:3px;background:linear-gradient(145deg,#092332,#030b10 75%);box-shadow:0 20px 70px #000;color:#d8e8e8}.leap-installer section>small{color:#8ef2ff;letter-spacing:.15em}.leap-installer h2{margin:9px 0 12px;color:#ffe39a;font-size:clamp(24px,5vw,39px);line-height:1}.leap-installer p{line-height:1.55}.leap-installer ol{margin:20px 0;padding-left:22px;line-height:1.55}.leap-installer li+li{margin-top:7px}.leap-installer code{padding:2px 5px;border:1px solid rgba(142,242,255,.25);background:#03141d;color:#8ef2ff}.leap-installer-close{position:absolute;top:10px;right:12px;border:0;background:none;color:#ffe39a;font-size:30px;cursor:pointer}.leap-download{display:block;padding:13px 16px;border:1px solid #dba52e;background:linear-gradient(#e9bd4d,#a76f17);box-shadow:inset 0 1px #ffe7a3;color:#071116;font-weight:900;text-align:center;text-decoration:none}.leap-copy{padding:9px 12px;border:1px solid rgba(142,242,255,.45);background:#061a25;color:#8ef2ff;font:inherit;cursor:pointer}.leap-installer .leap-store-note{margin:18px 0 0;color:#8da1a5;font-size:11px}

.collision-flash{position:absolute;z-index:24;left:50%;top:25%;translate:-50% -50%;padding:11px 18px;border:1px solid transparent;color:#ffe7a5;background:rgba(46,18,2,.88);font:900 clamp(18px,3vw,38px)/1 Georgia,serif;letter-spacing:.06em;opacity:0;pointer-events:none;text-shadow:0 2px 10px #000}
.collision-flash.hit{animation:collision-score .9s ease-out}
@keyframes collision-score{0%{opacity:0;scale:.65}18%{opacity:1;scale:1.12;border-color:#f6c44d}70%{opacity:1;scale:1}100%{opacity:0;translate:-50% -95%;scale:.95}}
.voyage-stage.crash-impact:after{content:"";position:absolute;z-index:23;inset:0;pointer-events:none;animation:impact-flash .42s ease-out}
@keyframes impact-flash{0%{box-shadow:inset 0 0 0 10px rgba(255,192,55,.9);background:rgba(255,120,20,.16)}100%{box-shadow:inset 0 0 0 0 transparent;background:transparent}}

@media(max-width:850px){
  .sky-panel{background-position:center 46%}
  .sailing-score{margin-left:auto;min-width:116px;padding:5px 8px;font-size:7px}
  .sailing-score b{font-size:12px}.sailing-score small{font-size:6px}
  .collision-flash{top:18%}
}
@media(max-width:430px){.sailing-score span{display:none}.sailing-score{grid-template-columns:1fr;min-width:92px}.sailing-score b{text-align:left}.sailing-score small{grid-column:auto}}
@media(prefers-reduced-motion:reduce){.collision-flash.hit,.voyage-stage.crash-impact:after{animation:none}.collision-flash.hit{opacity:1}}
