/* ========================= */
/* Base + Font               */
/* ========================= */
@font-face{font-family:'zabars';src:url('fonts/zabars.ttf') format('truetype');font-weight:400;font-style:normal}
html{height:100%;overflow:hidden}
body{max-width:1920px;margin:0 auto;min-height:100vh;overflow:hidden;display:flex;flex-direction:column;align-items:center;font-family:'zabars',Arial,Helvetica,sans-serif;background:url('img/5_background/desert-7927409_1920.jpg') center/cover no-repeat}
body.modal-open{overflow:hidden}
h1{font-size:48px;letter-spacing:2px;color:#ffd700;text-shadow:3px 3px 6px rgba(0,0,0,.6);margin:16px 0}
main{display:flex;justify-content:center;width:100%;max-width:1280px;padding:0 16px;box-sizing:border-box}

/* ========================= */
/* Stage / Canvas            */
/* ========================= */
:root{--pads:0px;--stage-offset:clamp(140px,22vh,260px);--game-max-w:1100px;--game-max-vw:85vw}
#stage{position:relative;margin:0 auto;width:min(var(--game-max-w),var(--game-max-vw),max(0px,calc((100vh - var(--pads) - var(--stage-offset))*(720/480))));max-width:960px;aspect-ratio:720/480}
canvas{background:#000;width:100%;height:100%;display:block;border:0;border-radius:8px;box-sizing:border-box}
canvas:focus {
  outline: none;
}
/* ========================= */
/* Overlays                  */
/* ========================= */
.overlay{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;background:#000;z-index:4;border-radius:8px}

#startOverlay{
  object-fit:contain;
  object-position:center;
  background:#000;
}

#rotateOverlay{position:fixed!important;inset:0!important;width:100vw!important;height:100vh!important;z-index:9999!important;background:rgba(0,0,0,.85)!important;display:none}
.rotate-center{display:flex;align-items:center;justify-content:center}
.rotate-box{font-family:Arial,Helvetica,sans-serif;text-align:center;background:rgba(0,0,0,.55);padding:16px 20px;border-radius:10px;color:#fff;max-width:min(420px,90vw)}
.rotate-box h2{margin:0 0 6px;font-size:20px}
.rotate-box p{margin:0;font-size:14px}

#gameOverOverlay,
#youWonOverlay {
  object-fit: contain;
  background: #000;
}

/* ========================= */ 
/* Start UI                  */
/* ========================= */
.start-ui{position:absolute;inset:0;display:none;place-items:center;z-index:10;pointer-events:none}
.start-btn{width:64px;height:64px;border:0;border-radius:9999px;background:#222;color:#fff;font-size:22px;display:grid;place-items:center;cursor:pointer;opacity:.95;box-shadow:0 2px 8px rgba(0,0,0,.3);transition:transform .15s ease,box-shadow .15s ease;pointer-events:auto}
.start-btn:hover,.start-btn:focus{transform:scale(1.06);box-shadow:0 6px 18px rgba(0,0,0,.35);outline:none}

/* ========================= */
/* HUD Buttons               */
/* ========================= */
#hud{position:absolute;top:16px;right:16px;width:112px;height:112px}
.hud-btn{position:absolute;width:36px;height:36px;border:0;border-radius:9999px;background:#222;color:#fff;display:grid;place-items:center;box-shadow:0 2px 6px rgba(0,0,0,.25);cursor:pointer;opacity:.9;z-index:6}
.hud-btn:hover{opacity:1}
.hud-btn .icon{font-size:16px;line-height:1;user-select:none}
#hud #resetBtn{top:0;left:38px}
#hud #fsBtn{top:38px;right:0}
#hud #muteBtn{bottom:0;left:38px}
#hud #infoBtn{top:38px;left:0}

/* ========================= */
/* Info Overlay (final)      */
/* ========================= */
/* [MYA CHANGE] single final style block (duplicates removed) */
#infoCard{position:absolute;inset:0;display:none;align-items:center;justify-content:center;z-index:30;background:rgba(0,0,0,.85);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
#infoCard[aria-hidden="false"]{display:flex}
#infoCard .info-box{width:min(640px,94vw);background:rgba(0,0,0,.92);padding:26px 30px;border-radius:16px;box-shadow:0 20px 48px rgba(0,0,0,.6);border:1px solid rgba(255,255,255,.14)}
#infoCard .info-box *{font-family:Arial,Helvetica,sans-serif;color:#fff;text-shadow:none;letter-spacing:.3px;-webkit-font-smoothing:antialiased}
#infoCard .info-box h3{font-size:22px;font-weight:800;margin:0 0 16px;padding-bottom:10px;border-bottom:2px solid #ffd700}
#infoCard #infoList p{display:flex;align-items:center;gap:14px;margin:14px 0;font-size:20px;font-weight:800;line-height:1.6}
#infoCard .kbd{min-width:52px;padding:6px 12px;border-radius:10px;background:#fff;color:#111;font-size:16px;font-weight:900;text-align:center;box-shadow:0 2px 0 rgba(0,0,0,.25)}
#infoCard .close-btn{margin-top:20px;padding:14px;width:100%;border-radius:10px;background:#ffd700;color:#000;font-size:18px;font-weight:900;border:0;cursor:pointer}

/* ========================= */
/* Mobile Pads               */
/* ========================= */
.pads{display:none;position:fixed;inset:0;pointer-events:none;z-index:12}
.pad{position:absolute;bottom:clamp(12px,2.5vh,24px);gap:12px;pointer-events:auto}
.pad-left{left:clamp(12px,3vw,28px);display:flex}
.pad-right{right:clamp(12px,3vw,28px);display:flex;flex-direction:column}
.pad-btn{width:56px;height:56px;border-radius:9999px;border:0;background:rgba(0,0,0,.72);color:#fff;font-weight:800;font-size:20px;display:grid;place-items:center;backdrop-filter:blur(6px);box-shadow:0 6px 18px rgba(0,0,0,.35);opacity:.78;transition:opacity .15s,transform .1s;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}
.pad-btn:active,.pad-btn[data-active="1"]{opacity:1;transform:scale(1.04)}
.pads .pad-right button:nth-child(1){font-size:0}
.pads .pad-right button:nth-child(1)::after{content:"\2191";font-size:24px;display:flex;align-items:center;justify-content:center;width:100%;height:100%}

/* [MYA CHANGE] iPad Pro + touch devices: show pads */
@media (max-width:1366px) and (orientation:landscape) and (hover:none) and (pointer:coarse){
  :root{--pads:clamp(64px,16vh,120px)}
  .pads{display:block}
}
@media (min-width:1025px){.pads{display:none}}

/* ========================= */
/* Responsive Tuning         */
/* ========================= */
@media (max-width:900px){:root{--game-max-vw:94vw;--stage-offset:clamp(112px,20vh,220px)}}
@media (max-width:700px){:root{--game-max-vw:96vw;--stage-offset:clamp(92px,18vh,200px)}}
@media (max-width:520px){:root{--game-max-vw:98vw;--stage-offset:clamp(74px,17vh,180px)}}
@media (max-height:720px){:root{--stage-offset:clamp(88px,18vh,200px)}}
@media (max-height:600px){:root{--stage-offset:clamp(64px,16vh,160px)}}
@media (min-width:1440px){:root{--game-max-w:1000px;--game-max-vw:70vw}h1{font-size:44px}}

/* ========================= */
/* Legal Modal               */
/* ========================= */
.legal-btn{margin:32px 0 48px;padding:12px 36px;border-radius:9999px;border:0;background:linear-gradient(135deg,#ffd700,#ff8c00);color:#2d1800;font-size:20px;font-weight:700;letter-spacing:1px;cursor:pointer;box-shadow:0 10px 24px rgba(0,0,0,.35);transition:transform .2s,box-shadow .2s,filter .2s}
.legal-btn:hover,.legal-btn:focus{transform:translateY(-2px);box-shadow:0 14px 32px rgba(0,0,0,.4);filter:brightness(1.05);outline:none}
.legal-btn:active{transform:translateY(1px);box-shadow:0 6px 16px rgba(0,0,0,.28)}
.legal-modal{position:fixed;inset:0;display:none;align-items:center;justify-content:center;padding:clamp(16px,4vw,48px);background:rgba(0,0,0,.75);z-index:40}
.legal-modal[aria-hidden="false"]{display:flex}
.legal-dialog{position:relative;width:min(800px,95vw);max-height:min(85vh,720px);background:rgba(255,255,255,.98);border-radius:20px;box-shadow:0 24px 48px rgba(0,0,0,.4);display:flex;flex-direction:column;overflow:hidden}
.legal-close{align-self:flex-end;margin:12px 12px 0 0;width:40px;height:40px;border-radius:9999px;border:0;background:rgba(0,0,0,.08);color:#2d1800;font-size:28px;font-weight:700;cursor:pointer;transition:background .2s,transform .2s}
.legal-close:hover,.legal-close:focus{background:rgba(0,0,0,.16);transform:scale(1.05);outline:none}
.legal-scroll{padding:0 32px 32px;overflow-y:auto;font-family:Arial,Helvetica,sans-serif;color:#2a2a2a;line-height:1.6;letter-spacing:.2px}
.legal-scroll h2{margin-top:0;font-size:26px;color:#c56b00}
.legal-scroll h3{font-size:20px;color:#d47f00;margin-top:24px}
.legal-scroll p{margin:12px 0;font-size:16px}
.legal-scroll a{color:#b35400;text-decoration:none;font-weight:600}
.legal-scroll a:hover,.legal-scroll a:focus{text-decoration:underline}
@media (max-width:600px){
  .legal-dialog{width:100%;max-height:90vh;border-radius:16px}
  .legal-scroll{padding:0 20px 24px}
  .legal-scroll h2{font-size:22px}
  .legal-scroll h3{font-size:18px}
  .legal-scroll p{font-size:15px}
}

/* ========================= */
/* Play Mode (auto fullscreen) */
/* ========================= */
/* [MYA CHANGE] fullscreen layout for small devices */
body.play-mode{max-width:none;margin:0;width:100vw;height:100dvh;min-height:100dvh;background:#000}
body.play-mode h1,body.play-mode #legalBtn{display:none}
body.play-mode main{max-width:none;padding:0}
body.play-mode #stage{position:fixed;inset:0;width:100vw;height:100dvh;max-width:none;margin:0;aspect-ratio:auto}
body.play-mode canvas{width:100%;height:100%;border:0;border-radius:0}

/* prevents iOS callout + selection */
.no-context,.no-context *,canvas{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
