/* T-VPN mini game overlay */
.tvpn-game-overlay{position:fixed;inset:0;z-index:100;background:#0a0b0e;color:#f2f3f6;font-family:"Golos Text",system-ui,-apple-system,"Segoe UI",sans-serif;opacity:0;transition:opacity .25s;display:flex;flex-direction:column;touch-action:none;-webkit-user-select:none;user-select:none}
.tvpn-game-overlay.is-in{opacity:1}
body.tvpn-game-open{overflow:hidden}
.tg-top{position:absolute;left:0;right:0;top:0;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:calc(12px + env(safe-area-inset-top)) 16px 12px;background:linear-gradient(rgba(10,11,14,.9),rgba(10,11,14,0));pointer-events:none}
.tg-hud{display:flex;gap:8px;flex-wrap:wrap}
.tg-pill{display:inline-flex;align-items:center;gap:6px;padding:9px 14px;border-radius:999px;border:1px solid rgba(255,255,255,.14);background:rgba(22,24,31,.85);font-family:"JetBrains Mono",ui-monospace,Menlo,monospace;font-size:13px;color:#98a0ae}
.tg-pill b{color:#f2f3f6;font-weight:500}
.tg-goal b{color:#ff6b5e}
.tg-close{pointer-events:auto;width:44px;height:44px;border-radius:12px;border:1px solid rgba(255,255,255,.14);background:rgba(22,24,31,.85);color:#f2f3f6;display:grid;place-items:center;cursor:pointer;transition:background .25s,transform .25s}
.tg-close:hover{background:rgba(255,255,255,.1);transform:scale(1.05)}
.tg-stage{position:absolute;inset:0;z-index:1;cursor:pointer}
.tg-stage canvas{display:block;width:100%;height:100%}
.tg-panel{position:absolute;inset:0;z-index:4;display:grid;place-items:center;padding:20px;background:rgba(10,11,14,.55);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:tgIn .35s cubic-bezier(.16,1,.3,1)}
.tg-panel[hidden]{display:none}
@keyframes tgIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.tg-card{width:min(440px,100%);padding:30px 28px;border-radius:28px;border:1px solid rgba(255,255,255,.14);background:rgba(22,24,31,.96);box-shadow:0 34px 70px -40px rgba(0,0,0,.8);text-align:center}
.tg-card h3{margin:0 0 10px;font-family:"Unbounded","Golos Text",sans-serif;font-weight:800;font-size:1.45rem;letter-spacing:-.02em;line-height:1.1}
.tg-card p{margin:0;color:#98a0ae;font-size:15px;line-height:1.55}
.tg-reward{display:none;margin:16px 0 0;padding:14px 16px;border-radius:16px;border:1px dashed rgba(255,107,94,.5);background:rgba(255,107,94,.08);font-size:14px;color:#f2f3f6;line-height:1.5}
.tg-reward.show{display:block}
.tg-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:22px}
.tg-btn{height:50px;padding:0 26px;border-radius:999px;font:inherit;font-weight:600;font-size:15.5px;cursor:pointer;border:1px solid transparent;transition:transform .3s cubic-bezier(.16,1,.3,1),background .25s,border-color .25s;min-width:150px}
.tg-btn:active{transform:scale(.97)}
.tg-primary{background:#ff6b5e;color:#1a0f0d;box-shadow:0 20px 50px -24px rgba(255,107,94,.7)}
.tg-primary:hover{background:#ff8a5c;transform:translateY(-2px)}
.tg-ghost{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.16);color:#f2f3f6}
.tg-ghost:hover{border-color:rgba(255,255,255,.34);transform:translateY(-2px)}
.tg-btn[hidden]{display:none}
.tg-hint{position:absolute;left:50%;bottom:calc(28px + env(safe-area-inset-bottom));transform:translateX(-50%);z-index:2;padding:10px 16px;border-radius:999px;border:1px solid rgba(255,255,255,.14);background:rgba(22,24,31,.8);font-size:14px;color:#98a0ae;pointer-events:none;animation:tgPulse 1.6s ease-in-out infinite}
.tg-hint[hidden]{display:none}
.tg-launch{position:absolute;left:50%;top:50%;z-index:3;width:150px;height:150px;margin:-75px 0 0 -75px;border-radius:50%;border:0;background:#ff6b5e;color:#1a0f0d;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;cursor:pointer;box-shadow:0 26px 60px -20px rgba(255,107,94,.8);font-family:"Golos Text",system-ui,sans-serif;transition:transform .25s cubic-bezier(.16,1,.3,1),background .25s;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.tg-launch b{font-family:"Unbounded","Golos Text",sans-serif;font-weight:800;font-size:24px;letter-spacing:.04em}
.tg-launch small{font-size:12.5px;font-weight:500;opacity:.8}
.tg-launch:hover{background:#ff8a5c;transform:scale(1.04)}
.tg-launch:active{transform:scale(.96)}
.tg-launch[hidden]{display:none}
.tg-launch-ring{position:absolute;inset:-6px;border-radius:50%;border:2px solid rgba(255,107,94,.7);animation:tgRing 1.5s ease-out infinite;pointer-events:none}
@keyframes tgRing{0%{transform:scale(1);opacity:.9}100%{transform:scale(1.55);opacity:0}}
@keyframes tgPulse{0%,100%{opacity:.6}50%{opacity:1}}
.tg-note{position:absolute;left:50%;top:calc(70px + env(safe-area-inset-top));transform:translateX(-50%);z-index:2;padding:8px 14px;border-radius:999px;background:rgba(22,24,31,.85);border:1px solid rgba(255,255,255,.14);font-size:12.5px;color:#98a0ae;pointer-events:none}
.tg-note[hidden]{display:none}
@media (max-width:640px){
  .tg-launch{top:62%}
  .tg-pill{padding:8px 11px;font-size:12px}
  .tg-card{padding:24px 20px;border-radius:22px}
  .tg-btn{width:100%}
}
@media (prefers-reduced-motion:reduce){
  .tvpn-game-overlay,.tg-panel,.tg-hint,.tg-launch-ring{animation:none;transition:none}
}
