*{box-sizing:border-box;margin:0;-webkit-tap-highlight-color:transparent}
:root{
  --bg:#071a24;--card:#f7efe0;--ink:#14305c;--teal:#0d6b5c;--gold:#e8b84a;
  --green:#2fbf6a;--green-d:#1a8a48;--red:#e23b3b;--cream:#fff8ea;
  --safe-b:env(safe-area-inset-bottom,0px);--safe-t:env(safe-area-inset-top,0px);
}
html,body{height:100%;background:var(--bg);color:#fff;font:600 14px/1.35 system-ui,-apple-system,"Segoe UI",sans-serif;overflow:hidden}
#app{height:100dvh;display:flex;flex-direction:column;background:radial-gradient(ellipse at 50% 0%,#0c3a48,#071a24 65%)}
.topbar{display:flex;gap:8px;align-items:center;padding:calc(var(--safe-t) + 8px) 12px 8px;z-index:2}
.res{display:flex;align-items:center;gap:4px;background:linear-gradient(#1a3a48,#0d2430);border:2px solid var(--gold);border-radius:999px;padding:4px 10px 4px 4px;box-shadow:0 2px 0 #0a1520,inset 0 1px 0 #ffffff33}
.res img{width:22px;height:22px}.res b{font-size:13px;color:#ffe9a8;min-width:18px;text-align:center}
.icon-btn{width:40px;height:40px;border-radius:50%;border:2px solid var(--gold);background:linear-gradient(#2a5570,#143040);color:#fff;font-size:16px;margin-left:auto;box-shadow:0 2px 0 #0a1520}
main{flex:1;overflow:auto;padding:0 12px 8px;-webkit-overflow-scrolling:touch}
.view.hide,.hide{display:none!important}

/* Premium cards */
.banner{position:relative;text-align:center;margin:6px 0 12px}
.banner h1,.banner h2{display:inline-block;background:linear-gradient(#e23b3b,#b51e1e);padding:8px 28px;border-radius:10px;font-size:18px;font-weight:900;letter-spacing:.3px;box-shadow:0 4px 0 #6e1010,0 6px 12px #0006;border:2px solid #ff8a7a;text-shadow:0 2px 0 #6e1010}
.banner.gold h2{background:linear-gradient(#f0c45a,#c4891e);border-color:#ffe39a;box-shadow:0 4px 0 #7a5510,0 6px 12px #0006;text-shadow:0 2px 0 #7a5510;color:#3a2200}
.card{background:var(--cream);color:var(--ink);border-radius:18px;padding:12px;margin:8px 0;border:3px solid var(--gold);box-shadow:0 4px 0 #8a6a20,0 8px 18px #0005}
.card p,.card li{font-weight:500;color:#2a4060;margin:6px 0}
.card a{color:#0d6b5c;font-weight:800}

.map-wrap{position:relative;height:min(58vh,480px);border-radius:20px;overflow:hidden;border:3px solid var(--gold);box-shadow:0 4px 0 #8a6a20;background:#041820}
.map-wrap img.bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.85}
.map-wrap .pins{position:absolute;inset:0}
.pin{position:absolute;transform:translate(-50%,-100%);background:none;border:0;color:#fff;text-align:center;font:800 10px system-ui;filter:drop-shadow(0 2px 3px #000a)}
.pin i{display:grid;place-items:center;width:34px;height:34px;margin:0 auto;border-radius:10px;font-style:normal;font-size:16px;border:2px solid #fff;box-shadow:0 0 10px currentColor}
.pin.ok i{background:linear-gradient(#3fd68a,#1a8a48)}.pin.go i{background:linear-gradient(#ff5a4a,#c01818);animation:pulse 1s alternate infinite}.pin.lock i{background:#445;opacity:.75}
.pin span{display:block;margin-top:2px;background:#071a24cc;border-radius:6px;padding:1px 5px;white-space:nowrap}
@keyframes pulse{to{transform:scale(1.12)}}

.grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.it{background:var(--cream);color:var(--ink);border:3px solid #d4b878;border-radius:18px;padding:8px;text-align:center;font:inherit;box-shadow:0 3px 0 #a88840}
.it.sel{border-color:#2fbf6a;box-shadow:0 0 0 3px #2fbf6a55,0 3px 0 #1a8a48}
.it.lk{opacity:.45;filter:grayscale(.4)}
.it .frame{width:100%;aspect-ratio:1;border-radius:14px;overflow:hidden;border:3px solid var(--gold);background:#14305c;margin-bottom:6px}
.it .frame img{width:100%;height:100%;object-fit:cover;display:block}
.it .frame.veh{background:#0a2a28;display:grid;place-items:center}
.it .frame.veh img{width:78%;height:78%;object-fit:contain}
.it b{display:block;font-size:14px;color:#14305c}.it em{color:#c4891e;font-style:normal;font-size:11px;font-weight:800}
.st{font-size:10px;color:#3a5578;text-align:left;margin-top:4px}
.st q{display:block;height:5px;background:#d8e0ec;border-radius:3px;margin:2px 0 4px;overflow:hidden}
.st q i{display:block;height:100%;background:linear-gradient(#3fd68a,#1a8a48);border-radius:3px}

.bot{display:flex;align-items:flex-end;justify-content:space-around;background:linear-gradient(#143040,#0a1c28);border-top:3px solid var(--gold);padding:6px 4px calc(var(--safe-b) + 8px);z-index:3}
.bot button{background:none;border:0;color:#9ec8d8;font:800 10px system-ui;display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px;min-width:52px;border-radius:12px}
.bot .on{background:#1a4a58;color:#fff}.tab-ic{font-size:18px}
.play-btn{width:74px;height:74px;border-radius:50%!important;margin-top:-28px;background:radial-gradient(circle at 35% 30%,#5dff9a,#2fbf6a 45%,#1a8a48)!important;border:4px solid #ffe39a!important;color:#fff!important;font-size:13px!important;font-weight:900!important;box-shadow:0 0 0 3px #1a8a48,0 6px 16px #0008,inset 0 3px 0 #ffffff55;justify-content:center}
.play-btn span{text-shadow:0 2px 0 #0a5a30}

.btn-green{display:block;width:100%;padding:14px;border:0;border-radius:16px;background:linear-gradient(#5dff9a,#2fbf6a 40%,#1a8a48);color:#fff;font:900 16px system-ui;box-shadow:0 4px 0 #0f5a30,inset 0 2px 0 #ffffff66;margin-top:10px;text-shadow:0 1px 0 #0a5a30}
.btn-red{background:linear-gradient(#ff7a6a,#e23b3b 40%,#a01818);box-shadow:0 4px 0 #6e1010,inset 0 2px 0 #ffffff55}
.btn-gold{background:linear-gradient(#ffe08a,#e8b84a 40%,#c4891e);color:#3a2200;box-shadow:0 4px 0 #7a5510,inset 0 2px 0 #ffffff66;text-shadow:none}

/* Game */
.game{position:fixed;inset:0;z-index:20;background:#041513;touch-action:none}
.game canvas{width:100%;height:100%;display:block;touch-action:none}
.ghud{position:absolute;top:calc(var(--safe-t) + 8px);left:8px;right:8px;display:flex;gap:6px;align-items:center;pointer-events:none}
.ghud .icon-btn{pointer-events:auto;margin-left:auto}
.chip{background:#071a24dd;border:2px solid var(--gold);border-radius:14px;padding:5px 10px;font-size:12px;font-weight:800;color:#ffe9a8}
.chip.gold{color:#fff;background:linear-gradient(#2a5570,#143040)}
.chip.hp{padding:5px;min-width:80px}.chip.hp i{display:block;height:10px;width:100%;background:linear-gradient(#5dff9a,#1a8a48);border-radius:6px}

.joy{position:absolute;left:18px;bottom:calc(var(--safe-b) + 28px);width:128px;height:128px;border-radius:50%;background:#0b2c2788;border:3px solid #3fe0a888;touch-action:none;z-index:21}
#knob{position:absolute;left:39px;top:39px;width:50px;height:50px;border-radius:50%;background:radial-gradient(#7dffc0,#2fbf6a);border:2px solid #fff8;box-shadow:0 2px 6px #0006;pointer-events:none}
.acts{position:absolute;right:14px;bottom:calc(var(--safe-b) + 28px);display:flex;gap:14px;align-items:flex-end;z-index:21}
.act{width:64px;height:64px;min-width:64px;min-height:64px;border-radius:50%;border:3px solid #ffe39a;color:#fff;font-size:24px;touch-action:none;box-shadow:0 4px 0 #0006,inset 0 2px 0 #ffffff44}
.act.fire{width:78px;height:78px;min-width:78px;min-height:78px;background:radial-gradient(#ff8a7a,#e23b3b 55%,#a01818);border-color:#ffb0a0;font-size:30px}
.act.or{background:radial-gradient(#ffd08a,#e07b18 55%,#a05010)}

/* Modals */
.modal{position:fixed;inset:0;z-index:40;background:#041820cc;display:flex;align-items:center;justify-content:center;padding:16px;padding-bottom:calc(var(--safe-b) + 16px)}
.modal-card{width:min(360px,94vw);background:var(--cream);color:var(--ink);border-radius:22px;padding:18px;border:4px solid var(--gold);box-shadow:0 8px 0 #8a6a20,0 16px 40px #0008;text-align:center}
.modal-card h2{font-size:22px;margin-bottom:8px}.modal-card .stars{font-size:28px;letter-spacing:4px;margin:8px 0}
.modal-card .stars .off{opacity:.25}

/* Privacy */
.priv-card{position:relative;width:min(400px,96vw);max-height:90dvh;overflow:auto;background:linear-gradient(#1a4a8a,#0d2a5a);border-radius:22px;padding:18px 14px 16px;border:3px solid #5a9ad8;box-shadow:0 12px 40px #000a;color:#fff}
.priv-card h2{text-align:center;font-size:20px;font-weight:900;margin:4px 28px 12px;text-shadow:0 2px 0 #0a2040}
.priv-x{position:absolute;top:10px;right:10px;width:36px;height:36px;border-radius:50%;border:0;background:linear-gradient(#ff6a5a,#c01818);color:#fff;font-size:16px;font-weight:900;box-shadow:0 2px 0 #6e1010}
.priv-tabs{display:flex;gap:0;margin-bottom:10px}
.priv-tab{flex:1;padding:10px;border:0;background:#0a2858;color:#9ec8e8;font:800 13px system-ui;border-radius:12px 12px 0 0}
.priv-tab.on{background:#3a7ab8;color:#fff}
.pcard{background:var(--cream);color:var(--ink);border-radius:14px;padding:12px;margin:8px 0}
.pcard h3{font-size:15px;color:#14305c;display:flex;align-items:center;gap:8px;justify-content:space-between}
.pcard p{font-size:12px;font-weight:500;color:#3a5578;margin-top:6px}
.toggle{display:inline-flex;align-items:center;border:2px solid var(--gold);border-radius:999px;overflow:hidden;background:#14305c;min-width:72px}
.toggle button{flex:1;border:0;padding:5px 8px;font:800 11px system-ui;background:transparent;color:#8ab}
.toggle button.on{background:linear-gradient(#5dff9a,#1a8a48);color:#fff}
.toggle.locked button.on{opacity:.9}
.toggle.locked{opacity:.85}

.update{position:fixed;top:calc(var(--safe-t) + 8px);left:50%;transform:translateX(-50%);z-index:50;background:#1a8a48;color:#fff;padding:8px 14px;border-radius:12px;font-weight:800;box-shadow:0 4px 12px #0006;white-space:nowrap}
.update button{background:#fff;color:#1a8a48;border:0;border-radius:8px;padding:4px 8px;font-weight:900;margin-left:6px}

.legal h3{margin-top:12px;color:#14305c}.chip-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.live{display:inline-flex;align-items:center;gap:5px;background:#0d2a5a;border:2px solid #3fe0a8;border-radius:999px;padding:4px 10px;color:#3fe0a8;font-weight:800;font-size:11px}
.live i{width:8px;height:8px;border-radius:50%;background:#3fe0a8;display:inline-block;animation:pulse 1s infinite alternate}
