:root{--gold:#DBA63C;--gold2:#F8E3A8;--ink:#f6efe2;--mut:#8F96A3;--line:rgba(219,166,60,.4);--bg:#0D0D0C;--sans:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--serif:Georgia,"Times New Roman",serif}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;height:100%;background:var(--bg);color:var(--ink);font-family:var(--sans);overflow:hidden;overscroll-behavior:none}
#app{position:fixed;inset:0;display:flex;flex-direction:column}
.topbar{display:flex;align-items:center;gap:8px;padding:calc(8px + env(safe-area-inset-top)) 10px 8px;background:linear-gradient(#1A1A19,#0D0D0C);border-bottom:1px solid var(--line)}
.tb-title{flex:1;text-align:center;white-space:nowrap;font:800 13px var(--serif);letter-spacing:.08em;color:var(--gold2)}
.tb-btn{height:34px;padding:0 12px;border-radius:17px;border:1px solid var(--line);background:rgba(255,255,255,.05);color:var(--ink);font:700 13px var(--sans)}
.bal-pill{display:flex;align-items:center;gap:6px;height:34px;padding:0 12px;border-radius:17px;border:1px solid var(--gold);background:rgba(0,0,0,.4);color:var(--gold2);font:800 14px var(--sans);cursor:pointer}
.bal-pill em{font:700 9px var(--sans);opacity:.7;font-style:normal}
#stage{position:relative;flex:1;min-height:0;touch-action:none;user-select:none;-webkit-user-select:none}
#cv{position:absolute;inset:0;width:100%;height:100%;display:block}
#hud{position:absolute;left:0;right:0;top:0;padding:10px 12px;display:flex;justify-content:space-between;align-items:flex-start;pointer-events:none;font-variant-numeric:tabular-nums}
#hud[hidden]{display:none}
.hud-l b{font:900 30px var(--serif);color:var(--gold2);text-shadow:0 2px 6px #000;display:block;line-height:1}
.hud-l small{display:block;margin-top:3px;font:700 12px var(--sans);color:var(--ink);text-shadow:0 1px 3px #000}
.hud-r{display:flex;flex-direction:column;gap:5px;align-items:flex-end}
.pw{display:flex;align-items:center;gap:6px;padding:3px 10px;border-radius:12px;background:rgba(0,0,0,.55);border:1px solid var(--line);font:800 12px var(--sans)}
.pw i{width:8px;height:8px;border-radius:50%;display:block}
#overlay{position:absolute;inset:0;display:grid;place-items:center;padding:16px;pointer-events:none}
#overlay>*{pointer-events:auto}
.card{width:min(380px,100%);padding:20px;border-radius:20px;background:rgba(13,13,12,.93);border:1.5px solid var(--gold);box-shadow:0 14px 40px rgba(0,0,0,.7);text-align:center}
.card h1{margin:0 0 4px;font:900 34px var(--serif);letter-spacing:.06em;color:var(--gold2)}
.card h2{margin:0 0 6px;font:900 26px var(--serif);color:var(--gold2)}
.card p{margin:6px 0;color:var(--mut);font-size:14px;line-height:1.4}
.btn{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;min-height:54px;margin-top:10px;border-radius:14px;border:1px solid var(--line);background:rgba(255,255,255,.06);color:var(--ink);font:800 17px var(--sans);letter-spacing:.06em;touch-action:manipulation}
.btn.primary{background:linear-gradient(135deg,#F8E3A8,#DBA63C 55%,#9A6F22);color:#1a1204;border-color:#F8E3A8}
.btn.ghost{min-height:44px;font-size:14px}
.prog{margin:12px 0 4px;height:10px;border-radius:5px;background:rgba(255,255,255,.1);overflow:hidden}
.prog i{display:block;height:100%;background:linear-gradient(90deg,#9A6F22,#DBA63C,#F8E3A8)}
.prog-l{display:flex;justify-content:space-between;font:700 12px var(--sans);color:var(--mut)}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0}
.stats div{padding:8px 4px;border-radius:12px;background:rgba(255,255,255,.05)}
.stats b{display:block;font:900 20px var(--serif);color:var(--gold2)}
.stats small{font:700 10px var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--mut)}
.earn{font:900 38px var(--serif);color:var(--gold2);margin:6px 0 0}
.earn .mxc-coin{vertical-align:-4px}
.keys{font-size:12px;color:var(--mut);margin-top:10px}
.toast{position:fixed;left:50%;top:70px;transform:translate(-50%,-20px);max-width:90%;padding:10px 16px;border-radius:14px;background:rgba(10,3,5,.95);border:1px solid var(--gold);color:var(--gold2);font:700 13px var(--sans);opacity:0;pointer-events:none;transition:.25s;z-index:50;text-align:center}
.toast.show{opacity:1;transform:translate(-50%,0)}
#sheetHost{position:fixed;inset:0;z-index:40;display:none}
#sheetHost.open{display:block}
.sheet-back{position:absolute;inset:0;background:rgba(0,0,0,.6)}
.sheet{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(380px,calc(100% - 24px));padding:20px;border-radius:20px;background:#141413;border:1.5px solid var(--gold)}
.sheet h2{margin:0 0 6px;font:800 24px var(--serif);color:var(--gold)}
.sheet .sub,.sheet .hint{color:var(--mut);font-size:13px}
.sheet .err{color:#ff9a9a;font-size:13px}
.sheet .stack{display:flex;flex-direction:column;gap:10px;margin-top:10px}
.sheet a{color:var(--gold2)}
.field{width:100%;height:48px;padding:0 14px;border-radius:12px;border:1px solid var(--line);background:rgba(0,0,0,.4);color:var(--ink);font:600 16px var(--sans)}
