:root{
  --gold:#ffb63d;
  --panel:rgba(37,22,14,.88);
  --panel2:rgba(18,11,8,.91);
  --text:#fff7e9;
  --muted:#d8bea5;
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;font-family:Arial,Helvetica,sans-serif;color:var(--text);background:#110b07;-webkit-tap-highlight-color:transparent}
body{padding:max(6px,env(safe-area-inset-top)) 7px max(6px,env(safe-area-inset-bottom));overflow-x:hidden;overscroll-behavior:none}
button{font:inherit}
#bg{position:fixed;inset:0;z-index:-3;background-size:cover;background-position:center;transition:background-image .25s ease;transform:translateZ(0)}
#shade{position:fixed;inset:0;z-index:-2;background:rgba(8,5,3,.25)}
#app{width:min(1120px,100%);margin:auto}
.topbar{display:flex;justify-content:flex-end;gap:8px;align-items:center;margin-bottom:8px}
.stats{display:flex;gap:8px}
.stat,.iconBtn,.objectiveBar,.panel,.gameCard,.devPanel{border:1px solid rgba(255,181,61,.32);background:linear-gradient(145deg,var(--panel),var(--panel2));box-shadow:0 8px 24px rgba(0,0,0,.22)}
.stat{min-width:100px;padding:9px 13px;border-radius:14px}
.stat span{display:block;font-size:9px;font-weight:900;letter-spacing:.13em;color:#e7c99c}
.stat strong{font-size:23px;font-variant-numeric:tabular-nums}
.iconBtn{width:43px;height:43px;border-radius:13px;color:white;font-size:18px;cursor:pointer}
.objectiveBar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 13px;border-radius:16px;margin-bottom:9px}
.objectiveBlock{font-size:12px;color:var(--muted);min-width:0}
.objectiveBlock strong{display:block;color:#fff;font-size:14px;margin-bottom:2px}
.chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px;min-height:27px}
.chip{padding:5px 8px;border-radius:999px;background:#0005;border:1px solid #fff2;color:#fff;font-size:11px;font-weight:900;white-space:nowrap}
.chip.done{background:#2e7f4e88;color:#caffcd}
.actions{display:flex;gap:6px;flex-wrap:wrap}
.actionBtn{border:1px solid rgba(255,191,83,.36);border-radius:10px;padding:9px 11px;background:#4a2d1a;color:white;font-weight:900;cursor:pointer;touch-action:manipulation}
.actionBtn img{width:20px;height:20px;object-fit:contain;vertical-align:middle}
.actionBtn:disabled{opacity:.4}.actionBtn.active{outline:2px solid #ffd57a}
.gameLayout{display:grid;grid-template-columns:minmax(0,760px) 260px;gap:11px;justify-content:center;align-items:start}
.gameCard{padding:5px;border-radius:20px;background:rgba(12,7,5,.18);overflow:hidden;contain:layout paint}
#game-root{position:relative;width:100%;aspect-ratio:7/9;max-height:78vh;display:flex;align-items:center;justify-content:center;overflow:hidden}
#gameCanvas{display:block;width:100%;height:100%;object-fit:contain;touch-action:none;user-select:none;-webkit-user-select:none}
.loading{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:8px;background:#120b07e8;color:#fff;text-align:center;z-index:5}
.loading span{font-size:11px;color:var(--muted)}
.spinner{width:34px;height:34px;border-radius:50%;border:3px solid #ffffff24;border-top-color:var(--gold);animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.side{display:grid;gap:8px}
.panel{padding:13px;border-radius:16px}
.panel h3{margin:0 0 8px;color:#ffd68c;font-size:14px}
.panel p{margin:0;color:var(--muted);font-size:12px;line-height:1.45}
.levelBadge{font-size:31px;font-weight:1000;color:var(--gold)}
.progress{height:8px;margin-top:8px;background:#0007;border-radius:999px;overflow:hidden}
#progressFill{height:100%;width:0;background:linear-gradient(90deg,#ff9f43,#ffe38a);transition:width .15s linear}
.row{display:grid;grid-template-columns:1fr auto;gap:8px;padding:6px 0;font-size:12px;color:var(--muted)}
.row b{color:#fff;font-size:16px;font-variant-numeric:tabular-nums}
.overlay{position:fixed;inset:0;z-index:30;background:rgba(7,4,3,.94);display:grid;place-items:center;padding:14px;overflow:auto}
.hidden{display:none!important}
.mapPanel,.resultPanel{width:min(780px,100%);background:linear-gradient(145deg,#392317,#1b110c);border:1px solid #ffbd5950;border-radius:22px;padding:20px;box-shadow:0 30px 90px #000b}
.mapPanel h1{text-align:center;margin:0 0 15px}
.levelGrid{display:grid;grid-template-columns:repeat(5,1fr);gap:9px}
.levelCard{min-height:150px;border:1px solid #fff2;border-radius:15px;padding:11px;background:#fff1;color:#fff;text-align:left;cursor:pointer;touch-action:manipulation}
.levelCard:disabled{opacity:.35;filter:grayscale(1)}
.levelCard .n{font-size:36px;font-weight:1000;color:var(--gold)}
.levelCard h4{margin:3px 0 5px}.levelCard p{margin:0;color:var(--muted);font-size:10px;line-height:1.4}.stars{color:#ffd45f;margin-top:8px}
.resultPanel{max-width:410px;text-align:center}.resultPanel small{color:var(--gold);font-weight:900}.resultPanel h2{font-size:31px;margin:7px}
#resultScore{font-size:48px;font-weight:1000;color:var(--gold);margin:10px}
.primary,.secondary{width:100%;padding:12px;border-radius:12px;font-weight:1000;cursor:pointer;touch-action:manipulation}
.primary{border:0;background:linear-gradient(135deg,#ffad42,#ffd67f);color:#28180a}.secondary{margin-top:8px;border:1px solid #fff3;background:#fff1;color:#fff}
.devPanel{margin-top:10px;padding:12px;border-radius:15px}.devHead{display:flex;align-items:center;justify-content:space-between;gap:10px}.devPanel h3{margin:0 0 8px;color:var(--gold)}
.devButtons{display:flex;gap:6px;flex-wrap:wrap}.devButtons button{padding:8px 10px;border-radius:9px;border:1px solid #ffbd5940;background:#56331d;color:#fff;font-weight:800}
.perfHud{font:700 11px/1.2 ui-monospace,SFMono-Regular,Consolas,monospace;color:#d8ffd8;background:#001b0e99;border:1px solid #55e89344;border-radius:7px;padding:5px 7px;white-space:nowrap}
.fatal{position:fixed;inset:0;z-index:100;background:#120b07;color:#fff;display:grid;place-content:center;text-align:center;padding:20px}
@media(max-width:780px){
  body{padding:5px}.topbar{justify-content:center}.objectiveBar{flex-direction:column;align-items:stretch}.actions button{flex:1}.gameLayout{grid-template-columns:1fr}#game-root{max-height:none}.side{grid-template-columns:1fr 1fr}.side .panel:last-child{grid-column:1/-1}.levelGrid{grid-template-columns:1fr 1fr}
}
@media(max-width:430px){
  .stat{min-width:82px;padding:7px 9px}.stat strong{font-size:20px}.iconBtn{width:39px;height:39px}.side{grid-template-columns:1fr}.side .panel:last-child{grid-column:auto}.actionBtn{font-size:11px;padding:8px 7px}.objectiveBar{padding:9px}.panel{padding:10px}
}
@media(prefers-reduced-motion:reduce){#bg,#progressFill{transition:none}.spinner{animation-duration:1.5s}}
