:root{--canvas-scale:1;--frame-width:440px;--frame-height:956px;--visual-width:440px;--visual-height:956px}
*{box-sizing:border-box}
html,body{width:100%;height:100%;margin:0;overflow:hidden;overscroll-behavior:none;background:#07170d}
body{position:fixed;inset:0;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.viewport-shell{position:fixed;inset:0;display:grid;place-items:center;overflow:hidden;background:#07170d;isolation:isolate}
.ambient-backdrop{position:absolute;inset:-36px;z-index:-2;background:linear-gradient(rgba(5,4,15,.42),rgba(5,4,15,.68)),url("assets/aztec-jungle-v2.webp") center/cover no-repeat;filter:blur(24px) saturate(.9) brightness(.72);transform:scale(1.08)}
.viewport-shell::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(circle at 50% 38%,rgba(255,255,255,.09),transparent 38%),linear-gradient(90deg,rgba(0,0,0,.48),transparent 30% 70%,rgba(0,0,0,.48))}
.canvas-mount{position:relative;width:var(--visual-width);height:var(--visual-height);overflow:visible;filter:drop-shadow(0 0 22px rgba(0,0,0,.62))}
.game-frame{position:absolute;left:50%;top:50%;width:var(--frame-width);height:var(--frame-height);margin:0;border:0;display:block;background:#07170d;transform:translate(-50%,-50%) scale(var(--canvas-scale));transform-origin:center}

:root[data-layout="phone"] .canvas-mount{filter:none}
:root[data-layout="phone"] .ambient-backdrop{display:none}
