:root{
  --amber:#e8a33d;
  --amber-dim:rgba(232,163,61,.45);
  --bg:#07090d;
  --panel:rgba(10,13,18,.82);
  --ink:#cfd6dd;
  --safe-t:env(safe-area-inset-top,0px);
  --safe-b:env(safe-area-inset-bottom,0px);
}
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{height:100%;overflow:hidden;background:var(--bg);touch-action:none;overscroll-behavior:none}
body{font-family:"Segoe UI",Tahoma,"Noto Naskh Arabic","Geeza Pro",sans-serif;color:var(--ink);
  -webkit-user-select:none;user-select:none;position:fixed;inset:0}
#app{position:fixed;inset:0}
canvas#game{position:absolute;inset:0;width:100%;height:100%;display:block;image-rendering:pixelated}
#vignette{position:absolute;inset:0;pointer-events:none;z-index:3;
  background:radial-gradient(ellipse at center,transparent 52%,rgba(0,0,0,.55) 100%)}
.hidden{display:none !important}

/* ---------- HUD ---------- */
#hud{position:absolute;top:calc(10px + var(--safe-t));left:14px;right:14px;z-index:5;pointer-events:none}
#hud-left{display:flex;flex-direction:column;gap:8px}
#masks{display:flex;gap:5px}
.mask-ico{width:30px;height:30px;transition:opacity .2s}
.mask-ico.lost{opacity:.18}
.mask-ico.crack{animation:crackfx .5s ease}
@keyframes crackfx{0%{transform:scale(1.5) rotate(-14deg);filter:brightness(3)}100%{transform:scale(1)}}
#lantern-wrap{display:flex;align-items:center;gap:7px}
#lantern-ico{width:26px;height:26px;filter:drop-shadow(0 0 6px rgba(232,163,61,.7))}
#lantern-track{width:130px;height:9px;border:1px solid var(--amber-dim);border-radius:5px;
  background:rgba(0,0,0,.5);overflow:hidden}
#lantern-fill{height:100%;width:100%;background:linear-gradient(90deg,#8a5a1a,var(--amber));
  box-shadow:0 0 8px rgba(232,163,61,.8);transition:width .25s}
#lantern-fill.low{background:linear-gradient(90deg,#7a2a1a,#d45a3d);animation:lowpulse 1s infinite}
@keyframes lowpulse{50%{opacity:.55}}
#bossbar{position:absolute;top:calc(8px + var(--safe-t));left:50%;transform:translateX(-50%);
  width:min(560px,72vw);text-align:center}
#bossname{font-size:13px;letter-spacing:2px;color:var(--amber);text-shadow:0 0 10px rgba(232,163,61,.5);
  font-weight:600;margin-bottom:5px}
#boss-track{height:10px;border:1px solid var(--amber-dim);background:rgba(0,0,0,.6);
  transform:skewX(-14deg);overflow:hidden}
#boss-fill{height:100%;width:100%;background:linear-gradient(90deg,#5a1a1a,#c0392b,#e8a33d);transition:width .18s}
#toasts{position:absolute;top:calc(64px + var(--safe-t));left:50%;transform:translateX(-50%);
  display:flex;flex-direction:column;gap:6px;align-items:center}
.toast{background:var(--panel);border:1px solid var(--amber-dim);color:var(--amber);
  padding:7px 18px;font-size:14px;letter-spacing:.5px;border-radius:3px;
  animation:toastin .35s ease,toastout .5s ease 2.2s forwards;white-space:nowrap}
@keyframes toastin{from{opacity:0;transform:translateY(-10px)}to{opacity:1}}
@keyframes toastout{to{opacity:0;transform:translateY(-8px)}}

/* ---------- top quick buttons ---------- */
#topbar{position:absolute;top:calc(8px + var(--safe-t));inset-inline-end:10px;z-index:6;display:flex;gap:6px}
[dir="rtl"] #topbar{left:10px;right:auto}
.qbtn{width:38px;height:38px;background:var(--panel);border:1px solid var(--amber-dim);border-radius:6px;
  display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:.85}
.qbtn:active{transform:scale(.92)}
.qbtn img{width:22px;height:22px;pointer-events:none}

/* ---------- menus ---------- */
.menu{position:absolute;inset:0;z-index:8;display:flex;align-items:center;justify-content:center;
  background:rgba(4,6,10,.42);backdrop-filter:blur(3px)}
.menu-box{background:var(--panel);border:1px solid var(--amber-dim);padding:30px 34px;text-align:center;
  min-width:min(340px,86vw);max-height:88vh;overflow-y:auto;border-radius:4px;position:relative;
  box-shadow:0 0 60px rgba(0,0,0,.7),inset 0 0 40px rgba(0,0,0,.4)}
.menu-box::before,.menu-box::after{content:"";position:absolute;width:22px;height:22px;
  border:2px solid var(--amber);opacity:.7}
.menu-box::before{top:-2px;inset-inline-start:-2px;border-bottom:none;border-right:none}
.menu-box::after{bottom:-2px;inset-inline-end:-2px;border-top:none;border-left:none}
.menu h2{color:var(--amber);font-size:22px;letter-spacing:3px;margin-bottom:10px;font-weight:600}
.menu-div{width:60%;height:1px;margin:14px auto;
  background:linear-gradient(90deg,transparent,var(--amber-dim),transparent)}
.menu nav{display:flex;flex-direction:column;gap:9px;margin:8px 0}
.mbtn{background:rgba(232,163,61,.06);border:1px solid var(--amber-dim);color:var(--ink);
  padding:11px 26px;font-size:16px;letter-spacing:1.5px;cursor:pointer;font-family:inherit;
  transition:all .18s;border-radius:2px}
.mbtn:hover{background:rgba(232,163,61,.18);color:var(--amber);box-shadow:0 0 18px rgba(232,163,61,.25)}
.mbtn:active{transform:scale(.97)}
.mbtn.dim{opacity:.55;font-size:14px;padding:8px}
.mbtn.small{padding:8px 16px;font-size:14px}
.srow{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:7px 2px}
.slabel{font-size:15px;color:var(--ink);opacity:.9}
#howto-list{list-style:none;text-align:start;display:flex;flex-direction:column;gap:11px;margin:6px 0 14px}
#howto-list li{display:flex;align-items:center;gap:12px;font-size:14.5px;line-height:1.5}
.hico{width:30px;height:30px;flex:none}

/* ---------- title ---------- */
#menu-title{background:transparent;backdrop-filter:none;justify-content:flex-end;align-items:center;padding-bottom:6vh}
#menu-title .menu-box{background:rgba(6,8,12,.55);min-width:min(420px,92vw)}
#logo-wrap{display:flex;flex-direction:column;align-items:center;gap:8px;margin-bottom:22px}
#logo-emblem{width:74px;height:74px;filter:drop-shadow(0 0 18px rgba(232,163,61,.55));
  animation:emblemfloat 4s ease-in-out infinite}
@keyframes emblemfloat{50%{transform:translateY(-7px)}}
#logo{font-size:clamp(34px,7vw,52px);letter-spacing:10px;color:#e9e4d8;font-weight:700;
  text-shadow:0 0 24px rgba(232,163,61,.5),0 0 60px rgba(232,163,61,.25);font-family:Georgia,serif}
#subtitle{color:rgba(207,214,221,.65);font-size:14px;letter-spacing:2px}
#title-hint{margin-top:20px;color:rgba(232,163,61,.8);font-size:13px;letter-spacing:2px;
  animation:hintpulse 2.4s infinite}
@keyframes hintpulse{50%{opacity:.35}}

/* ---------- credits ---------- */
.credits-box{min-width:min(400px,90vw)}
#cr-emblem{width:64px;height:64px;margin-bottom:10px;filter:drop-shadow(0 0 14px rgba(232,163,61,.5))}
.cr-line{font-size:13px;letter-spacing:2px;opacity:.7}
.cr-name{color:var(--amber);font-size:24px;letter-spacing:3px;margin:6px 0 14px;font-weight:700}
.cr-links{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.cr-links a{color:var(--ink);border:1px solid var(--amber-dim);padding:8px 16px;font-size:14px;
  text-decoration:none;letter-spacing:1px;border-radius:2px;transition:all .18s}
.cr-links a:hover{color:var(--amber);background:rgba(232,163,61,.15)}
.cr-note{margin-top:16px;font-size:12.5px;opacity:.6;line-height:1.7}
.cr-note2{margin-top:8px;font-size:13px;color:var(--amber-dim);letter-spacing:1px}

/* ---------- note modal ---------- */
#note-modal{position:absolute;inset:0;z-index:9;display:flex;align-items:center;justify-content:center;
  background:rgba(3,4,7,.72);backdrop-filter:blur(2px)}
#note-paper{position:relative;width:min(430px,88vw);padding:28px 30px;text-align:center;
  background:linear-gradient(160deg,#171310,#0d0b09 70%);border:1px solid var(--amber-dim);
  box-shadow:0 0 50px rgba(0,0,0,.8),inset 0 0 60px rgba(232,163,61,.05);border-radius:3px}
#note-frame{position:absolute;inset:8px;width:calc(100% - 16px);height:calc(100% - 16px);pointer-events:none}
#note-paper h3{color:var(--amber);font-size:15px;letter-spacing:3px;margin-bottom:14px;font-weight:600}
#note-text{font-size:17px;line-height:2;min-height:88px;color:#d8d2c4;font-family:"Noto Naskh Arabic","Geeza Pro",Georgia,serif}
#note-close{margin-top:18px}

/* ---------- touch ---------- */
#touch{position:absolute;inset:0;z-index:7;pointer-events:none}
#touch .tbtn,#joy-base{pointer-events:auto}
#joy-base{position:absolute;width:124px;height:124px;border-radius:50%;
  background:rgba(232,163,61,.07);border:1.5px solid rgba(232,163,61,.35)}
#joy-knob{position:absolute;left:50%;top:50%;width:52px;height:52px;margin:-26px 0 0 -26px;border-radius:50%;
  background:rgba(232,163,61,.28);border:1.5px solid rgba(232,163,61,.55)}
#tcluster{position:absolute;right:18px;bottom:calc(26px + var(--safe-b));width:250px;height:250px}
.tbtn{position:absolute;width:64px;height:64px;border-radius:50%;
  background:rgba(232,163,61,.09);border:1.5px solid rgba(232,163,61,.4);
  display:flex;align-items:center;justify-content:center}
.tbtn img{width:34px;height:34px;pointer-events:none}
.tbtn:active,.tbtn.on{background:rgba(232,163,61,.3);box-shadow:0 0 22px rgba(232,163,61,.4)}
.tbtn-big{width:88px;height:88px;right:0;bottom:6px}
.tbtn-big img{width:46px;height:46px}
.tbtn-dash{right:84px;bottom:44px}
#t-jump{right:120px;bottom:110px}
#t-pulse{right:20px;bottom:132px;width:54px;height:54px}
#t-pulse img{width:28px;height:28px}

/* ---------- rotate hint ---------- */
#rotate-hint{position:absolute;inset:0;z-index:10;background:rgba(4,6,10,.9);display:flex;
  align-items:center;justify-content:center;flex-direction:column;gap:14px;color:var(--amber);
  font-size:16px;letter-spacing:2px}
#rotate-hint::before{content:"";width:44px;height:76px;border:2px solid var(--amber);border-radius:6px;
  animation:rotspin 2s infinite}
@keyframes rotspin{to{transform:rotate(90deg)}}

/* ---------- loading ---------- */
#loading{position:absolute;inset:0;z-index:20;background:var(--bg);display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:16px;transition:opacity .6s}
#loading.done{opacity:0;pointer-events:none}
#load-emblem{width:70px;height:70px;filter:drop-shadow(0 0 16px rgba(232,163,61,.6));
  animation:emblemfloat 3s ease-in-out infinite}
#load-title{font-family:Georgia,serif;letter-spacing:8px;color:#e9e4d8;font-size:20px}
#load-bar-wrap{width:min(300px,70vw);height:4px;background:rgba(232,163,61,.15);border-radius:2px;overflow:hidden}
#load-bar{height:100%;width:0%;background:var(--amber);box-shadow:0 0 10px var(--amber);transition:width .15s}

/* portrait tweaks */
@media (max-height:520px){
  .menu-box{padding:18px 20px}
  #logo{font-size:30px;letter-spacing:6px}
}
