*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
:root{color-scheme:dark}
html,body{margin:0;height:100%;overflow:hidden;background:#03050a;font-family:Arial,Helvetica,sans-serif}
body{display:flex;justify-content:center;background:radial-gradient(circle at 50% 20%,#1c2538 0,#080b12 45%,#020306 100%)}
button{font:inherit}
#app{width:min(100vw,560px);height:100dvh;display:grid;grid-template-rows:minmax(0,1fr) 116px;background:#080b12;box-shadow:0 0 90px #000}
#game-shell{position:relative;min-height:0;overflow:hidden;border-left:1px solid #8e6a31;border-right:1px solid #8e6a31;box-shadow:inset 0 0 40px #0008}
canvas{display:block;width:100%;height:100%;background:#101827;touch-action:none}
#hud{position:absolute;inset:8px 8px auto 8px;display:grid;grid-template-columns:repeat(4,1fr) 44px;gap:5px;z-index:4;pointer-events:none}
#hud div,#pauseBtn{position:relative;overflow:hidden;background:linear-gradient(180deg,rgba(25,28,39,.91),rgba(6,8,13,.91));border:1px solid rgba(219,174,83,.72);border-radius:10px;box-shadow:inset 0 1px 0 rgba(255,235,180,.15),inset 0 -8px 18px rgba(0,0,0,.35),0 4px 12px #0009;color:#f0c56d;min-height:46px}
#hud div:after,#pauseBtn:after{content:"";position:absolute;inset:3px;border:1px solid rgba(255,230,166,.08);border-radius:7px;pointer-events:none}
#hud div{padding:5px;text-align:center}
#hud span{display:block;font-size:8px;letter-spacing:1.35px;color:#c9a85e}
#hud strong{display:block;color:#fff7de;font-size:14px;margin-top:2px;text-shadow:0 1px 6px #d99b314d}
#pauseBtn{pointer-events:auto;font-size:18px;font-weight:bold;color:#ffe6a2}
#overlay{position:absolute;inset:0;z-index:10;background:radial-gradient(circle at 50% 33%,rgba(117,77,27,.33),rgba(4,7,12,.96) 60%),linear-gradient(rgba(6,10,18,.35),rgba(2,3,7,.97));display:none;flex-direction:column;align-items:center;justify-content:center;padding:24px;text-align:center}
#overlay:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 49.7%,rgba(222,179,88,.15) 50%,transparent 50.3%),linear-gradient(0deg,transparent 49.7%,rgba(222,179,88,.08) 50%,transparent 50.3%);background-size:100% 100%;pointer-events:none}
#overlay.show{display:flex}
#overlay img{width:108px;height:108px;border-radius:50%;object-fit:cover;border:1px solid #d6aa58;box-shadow:0 0 0 6px rgba(211,165,76,.08),0 0 42px #e0a83c66}
#overlay h1{margin:14px 0 0;font-family:Georgia,serif;font-size:29px;letter-spacing:7px;color:#eac36e;text-shadow:0 3px 20px #000}
#overlay h2{margin:3px 0 12px;font-family:Georgia,serif;font-size:18px;letter-spacing:4px;color:#fff6de;text-shadow:0 2px 8px #000}
#overlay p{max-width:330px;color:#d8cbb0;line-height:1.45;font-size:13px}
#overlay button{position:relative;margin-top:13px;padding:13px 29px;border:1px solid #f1c069;border-radius:9px;background:linear-gradient(#d3a14c,#8a571e 48%,#4a2a0c);color:#fff8e2;font-weight:bold;letter-spacing:2px;box-shadow:inset 0 1px 0 #fff4bd66,0 9px 24px #000b;text-shadow:0 2px 4px #000}
#overlay button:active{transform:translateY(2px)}
#overlay small{margin-top:17px;color:#a9a08e;font-size:10px;letter-spacing:.3px}
#controls{display:flex;align-items:center;justify-content:space-between;padding:11px max(16px,env(safe-area-inset-left)) calc(11px + env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-right));background:linear-gradient(#171b25,#090b10 58%,#040509);border-top:1px solid #9b7132;box-shadow:inset 0 1px 0 rgba(255,225,155,.09)}
.move-group{display:flex;gap:10px}
.control-btn{position:relative;width:70px;height:70px;border-radius:18px;border:1px solid #d3a553;background:radial-gradient(circle at 35% 28%,#79552b,#33200f 65%,#130b05);color:#fff4d2;font-size:25px;font-weight:bold;box-shadow:inset 0 1px 0 rgba(255,238,189,.25),inset 0 -10px 18px #0006,0 6px 16px #0009;touch-action:none}
.control-btn:after{content:"";position:absolute;inset:5px;border:1px solid rgba(255,222,144,.13);border-radius:13px}
.control-btn.active{transform:translateY(2px);filter:brightness(1.3)}
.control-btn.jump{width:104px;border-radius:50%;font-size:16px;letter-spacing:1px;background:radial-gradient(circle at 35% 28%,#e1b45d,#7a4716 54%,#351b08 82%);box-shadow:inset 0 2px 0 #fff2b766,inset 0 -14px 22px #0007,0 8px 22px #000b,0 0 16px #c58c2c33}
@media (min-width:700px){#app{height:min(100vh,980px);margin:auto;border:1px solid #765621;box-shadow:0 0 70px #000}#controls{border-radius:0 0 18px 18px}}


/* V4 visual master — presentation only */
#game-shell:before{
  content:"";position:absolute;inset:0;z-index:3;pointer-events:none;
  box-shadow:inset 0 0 0 2px rgba(229,184,91,.10),inset 0 0 34px rgba(0,0,0,.34);
}
#hud div,#pauseBtn{
  backdrop-filter:blur(5px);
  border-color:rgba(235,190,91,.82);
}
#hud strong{font-family:Georgia,serif;letter-spacing:.4px}
#overlay{
  background:
    radial-gradient(circle at 50% 29%,rgba(175,114,32,.30),transparent 36%),
    radial-gradient(circle at 50% 65%,rgba(35,65,102,.22),transparent 45%),
    linear-gradient(rgba(4,7,12,.68),rgba(2,3,7,.98));
}
#overlay:after{
  content:"";position:absolute;inset:12px;border:1px solid rgba(226,181,86,.28);
  border-radius:18px;pointer-events:none;box-shadow:inset 0 0 30px rgba(229,184,91,.05);
}
#overlay img{animation:castleLogoGlow 3.2s ease-in-out infinite}
#overlay h1,#overlay h2{position:relative;z-index:1}
#overlay button{min-width:210px}
#overlay button:before{
  content:"";position:absolute;inset:3px;border:1px solid rgba(255,239,181,.26);border-radius:6px
}
#controls{position:relative}
#controls:before{
  content:"";position:absolute;left:50%;top:8px;bottom:8px;width:1px;
  background:linear-gradient(transparent,rgba(220,174,83,.25),transparent)
}
.control-btn{transition:transform .06s ease,filter .08s ease,box-shadow .08s ease}
.control-btn.active{box-shadow:inset 0 2px 0 #fff2bd66,inset 0 -9px 16px #0007,0 3px 8px #000a,0 0 20px #e2aa4938}
@keyframes castleLogoGlow{
  0%,100%{box-shadow:0 0 0 6px rgba(211,165,76,.08),0 0 34px #e0a83c55}
  50%{box-shadow:0 0 0 8px rgba(211,165,76,.12),0 0 52px #e0a83c88}
}
