:root{--bg: #050505;--card-bg: rgba(255,255,255,.04);--card-bg-hover: rgba(255,255,255,.07);--primary: #22C55E;--primary-glow: rgba(34,197,94,.3);--danger: #EF4444;--danger-glow: rgba(239,68,68,.3);--gold: #F59E0B;--gold-glow: rgba(245,158,11,.3);--text-primary: #FAFAFA;--text-secondary: rgba(255,255,255,.5);--text-tertiary: rgba(255,255,255,.3);--hairline: rgba(255,255,255,.08);--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 20px);--ease-out-expo: cubic-bezier(.16, 1, .3, 1);--ease-spring: cubic-bezier(.32, .72, 0, 1)}*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}body{background-color:var(--bg);color:var(--text-primary);font-family:Plus Jakarta Sans,sans-serif;min-height:100dvh;overflow-x:hidden;-webkit-font-smoothing:antialiased}#app{width:100%;min-height:100dvh;padding-bottom:calc(56px + var(--safe-bottom));position:relative}.text-primary{color:var(--text-primary)}.text-secondary{color:var(--text-secondary)}.text-accent{color:var(--primary)}.text-danger{color:var(--danger)}.text-gold{color:var(--gold)}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.text-center{text-align:center}.text-sm{font-size:.875rem}.text-xs{font-size:.75rem}.text-xl{font-size:1.25rem}.uppercase-tracking{text-transform:uppercase;letter-spacing:.05em;font-size:.75rem;font-weight:600}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.mt-8{margin-top:2rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.ml-2{margin-left:.5rem}.py-4{padding-top:1rem;padding-bottom:1rem}.w-full{width:100%}.hidden{display:none!important}.glass-card{background:var(--card-bg);border:1px solid var(--hairline);border-radius:24px;padding:1.25rem;box-shadow:0 8px 32px #0006}.inner-card{background:#0003;border:1px solid rgba(255,255,255,.03);border-radius:16px;padding:1rem}.btn{border:none;border-radius:9999px;padding:1rem 1.5rem;font-family:inherit;font-weight:700;font-size:1rem;cursor:pointer;transition:transform .15s var(--ease-spring),opacity .2s;display:inline-flex;align-items:center;justify-content:center;gap:8px}.btn:active:not(:disabled){transform:scale(.96)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--primary);color:#fff;box-shadow:0 4px 20px var(--primary-glow)}.btn-danger{background:var(--danger);color:#fff;box-shadow:0 4px 20px var(--danger-glow)}.btn-gold{background:var(--gold);color:#fff;box-shadow:0 4px 20px var(--gold-glow)}.btn-outline{background:transparent;border:1px solid var(--hairline);color:var(--text-primary)}.game-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.fruit-cell{aspect-ratio:1;background:var(--card-bg);border:1px solid var(--hairline);border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:1.65rem;cursor:pointer;perspective:600px;transition:transform .15s var(--ease-spring),border-color .2s,box-shadow .2s,background .2s}.fruit-cell:active:not(.disabled){transform:scale(.9)}.fruit-cell.disabled{opacity:.5;pointer-events:none}.fruit-cell.mystery{background:radial-gradient(circle at 50% 30%,#ffffff14,#0f0f0fb3);border:1px solid rgba(255,255,255,.12);box-shadow:inset 0 1px 2px #ffffff26,0 4px 12px #0006}.fruit-cell.mystery:hover,.fruit-cell.mystery:active{border-color:#f59e0b80;box-shadow:0 0 16px #f59e0b4d}.fruit-cell.mystery .fruit-emoji{filter:drop-shadow(0 2px 5px rgba(245,158,11,.4));transition:transform .2s var(--ease-spring)}.fruit-cell.mystery:active .fruit-emoji{transform:scale(.9)}.fruit-cell.opening{animation:tapPulse .3s infinite alternate ease-in-out;border-color:#fff6;background:#ffffff14;box-shadow:0 0 15px #ffffff26}.fruit-cell.safe{border-color:var(--primary);box-shadow:inset 0 0 20px #22c55e40,0 0 20px #22c55e33;animation:cardFlipIn .35s cubic-bezier(.34,1.56,.64,1)}.fruit-cell.bomb{border-color:var(--danger);background:#ef444433;animation:shake .4s ease-in-out,explode .5s ease-out}.fruit-cell.bomb-reveal{opacity:.8;border-color:var(--danger);animation:cardFlipIn .3s ease-out}.fruit-cell .fruit-emoji{opacity:1;transition:transform .25s var(--ease-spring),opacity .2s;display:inline-block;will-change:transform}.fruit-cell.revealed.safe .fruit-emoji{text-shadow:0 0 15px rgba(34,197,94,.6);animation:scaleBounce .4s cubic-bezier(.34,1.56,.64,1)}.fruit-cell.radar-scanned{border-color:#ef4444d9;background:radial-gradient(circle at 50% 50%,#ef444440,#0f0f0fcc);box-shadow:0 0 16px #ef444466,inset 0 0 10px #ef44444d;animation:radarPulse 1.8s infinite ease-in-out;cursor:not-allowed!important;position:relative}.fruit-cell.defused{border-color:#38bdf8;background:radial-gradient(circle at 50% 50%,#38bdf833,#0f0f0fb3);box-shadow:0 0 20px #38bdf866,inset 0 0 15px #38bdf84d;animation:scaleBounce .5s ease}.fruit-cell.pending-bomb{border-color:var(--danger);background:#ef44444d;box-shadow:0 0 25px #ef4444b3;animation:tapPulse .4s infinite alternate ease-in-out}@keyframes radarPulse{0%,to{box-shadow:0 0 10px #ef44444d,inset 0 0 6px #ef444433}50%{box-shadow:0 0 22px #ef4444b3,inset 0 0 14px #ef444466;border-color:#ef4444}}.navbar{position:fixed;bottom:0;left:0;right:0;background:#050505d9;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-top:1px solid var(--hairline);display:flex;justify-content:space-around;align-items:center;z-index:100;height:calc(56px + var(--safe-bottom));padding:4px 0 calc(4px + var(--safe-bottom)) 0;box-sizing:border-box}.nav-item{display:flex;flex-direction:column;align-items:center;gap:4px;color:var(--text-secondary);font-size:.7rem;font-weight:600;text-decoration:none;flex:1;transition:color .2s}.nav-item.active{color:var(--primary)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000d9;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1.5rem}.modal-content{background:#0f0f0f;border:1px solid var(--hairline);border-radius:32px;width:100%;max-width:400px;padding:2rem}.toast{position:fixed;top:max(20px,var(--safe-top));left:50%;transform:translate(-50%);background:#1a1a1a;border:1px solid var(--hairline);border-radius:16px;padding:12px 20px;z-index:2000;box-shadow:0 4px 20px #00000080;transition:transform .3s var(--ease-spring),opacity .3s}.toast-info{border-left:4px solid #3b82f6}.toast-success{border-left:4px solid var(--primary)}.toast-error{border-left:4px solid var(--danger)}.toast-enter,.toast-exit{opacity:0;transform:translate(-50%,-20px)}.view-enter{animation:slideIn .3s var(--ease-out-expo)}@keyframes tapPulse{0%{transform:scale(.92)}to{transform:scale(.97)}}@keyframes cardFlipIn{0%{transform:perspective(400px) rotateY(90deg) scale(.85);opacity:.3}to{transform:perspective(400px) rotateY(0) scale(1);opacity:1}}@keyframes shake{0%,to{transform:translate(0)}20%,60%{transform:translate(-5px)}40%,80%{transform:translate(5px)}}@keyframes pulse-glow{0%,to{box-shadow:0 0 20px var(--gold-glow)}50%{box-shadow:0 0 40px #f59e0b99}}@keyframes slideIn{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes fadeUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes scaleBounce{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}@keyframes explode{0%{transform:scale(1);opacity:1}50%{transform:scale(1.5);opacity:.8}to{transform:scale(1.2);opacity:1}}.input-field{font-family:inherit}.input-field::-webkit-outer-spin-button,.input-field::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
