/* game.css — Regatta Mode: The Build Run. Loads only on index.html, after
   map.css. Behavior lives in js/game.js. */

@keyframes jd-whirl-spin{from{transform:translate(-50%,-50%) rotate(0)}to{transform:translate(-50%,-50%) rotate(360deg)}}
@keyframes jd-target-pulse{0%,100%{filter:drop-shadow(0 0 8px rgba(232,164,78,.5))}50%{filter:drop-shadow(0 0 22px rgba(232,164,78,.95))}}

/* ── Obstacle field ── */
#jd-run{position:absolute;inset:0;pointer-events:none}
.jd-rock{position:absolute;transform:translate(-50%,-50%)}
.jd-whirl{position:absolute;width:74px;height:74px;transform:translate(-50%,-50%);border:2px dashed rgba(246,239,221,.55);border-radius:50%;animation:jd-whirl-spin 3.4s linear infinite}
.jd-whirl::before{content:'';position:absolute;inset:14px;border:1.5px dashed rgba(246,239,221,.35);border-radius:50%}
.jd-whirl-label{position:absolute;top:calc(50% + 44px);left:50%;transform:translateX(-50%);font-family:'IBM Plex Mono',monospace;font-size:9px;letter-spacing:.16em;color:#f0e6d4;background:rgba(22,50,58,.55);padding:2px 7px;border-radius:20px;white-space:nowrap}

/* Blueprint crates */
.jd-crate{position:absolute;transform:translate(-50%,-50%)}
.crate-bob{display:block;animation:jd-bob 4.2s ease-in-out infinite}

/* Current pickup/delivery target */
.jd-isle.run-target,.jd-crate.run-target{animation:jd-target-pulse 1.6s ease-in-out infinite}
.jd-isle.run-target .isle-name{opacity:1}

/* ── HUD ── */
#jd-run-hud{position:absolute;top:74px;right:20px;z-index:6;font-family:'IBM Plex Mono',monospace;font-size:12.5px;letter-spacing:.06em;color:#16323a;background:rgba(244,237,221,.9);border:1px solid rgba(21,86,95,.25);border-left:3px solid #c0572b;border-radius:4px;padding:10px 14px;text-align:right}
#jd-run-hud .run-line{white-space:nowrap}
#jd-run-hud .run-msg{margin-top:4px;font-size:11px;color:#c0572b;min-height:14px}

/* ── Finish overlay ── */
#jd-run-end{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:7;width:min(380px,calc(100vw - 40px));background:rgba(244,237,221,.97);border:1px solid rgba(21,86,95,.25);border-top:3px solid #c0572b;border-radius:5px;padding:26px 26px 22px;text-align:center;box-shadow:0 24px 60px rgba(8,20,30,.4)}
#jd-run-end .end-kicker{font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:.22em;color:#c0572b;margin-bottom:8px}
#jd-run-end .end-time{font-size:44px;font-weight:700;letter-spacing:-.02em;color:#16323a;line-height:1}
#jd-run-end .end-best{font-family:'IBM Plex Mono',monospace;font-size:11.5px;color:#2c6b73;margin:10px 0 18px}
#jd-run-end .end-btns{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
#jd-run-end .end-btns button{cursor:pointer;border-radius:3px;font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.06em;padding:12px 18px}
#jd-run-end .end-again{background:#c0572b;color:#f6efdd;border:none}
#jd-run-end .end-again:hover{background:#15565f}
#jd-run-end .end-quit{background:transparent;color:#15565f;border:1px solid rgba(21,86,95,.4)}

/* ── Small screens ── */
@media(max-width:600px){
  #jd-run-hud{left:12px;right:12px;top:66px;text-align:center;font-size:11.5px}
  .jd-whirl{width:56px;height:56px}
  .jd-whirl::before{inset:11px}
  .jd-whirl-label{top:calc(50% + 34px)}
  .jd-rock svg{width:34px;height:auto}
}

@media(prefers-reduced-motion:reduce){
  .jd-whirl,.jd-isle.run-target{animation:none}
}
