:root{--font-sans: "Outfit", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "JetBrains Mono", monospace;--bg-dark: #090a10;--bg-card: rgba(18, 22, 36, .7);--bg-card-hover: rgba(28, 34, 56, .85);--border-color: rgba(255, 255, 255, .1);--border-color-glow: rgba(0, 242, 254, .5);--accent-cyan: #00f2fe;--accent-blue: #4facfe;--accent-pink: #ff007f;--accent-purple: #9d4edd;--accent-green: #00ff87;--text-main: #f0f4f8;--text-muted: #8a99ad;--glow-active: 0 0 20px rgba(0, 242, 254, .6), inset 0 0 10px rgba(0, 242, 254, .3);--glow-hint: 0 0 24px rgba(255, 0, 127, .8), inset 0 0 12px rgba(255, 0, 127, .5);--shadow-deep: 0 20px 40px rgba(0, 0, 0, .6);--radius-lg: 16px;--radius-md: 12px;--radius-sm: 8px}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background-color:var(--bg-dark);background-image:radial-gradient(circle at 15% 20%,rgba(157,78,221,.15) 0%,transparent 45%),radial-gradient(circle at 85% 80%,rgba(0,242,254,.15) 0%,transparent 45%);color:var(--text-main);min-height:100vh;overflow-x:hidden;line-height:1.5;-webkit-font-smoothing:antialiased}#root{min-height:100vh;display:flex;flex-direction:column}.app-container{max-width:1200px;margin:0 auto;padding:2rem 1.5rem;width:100%;display:flex;flex-direction:column;gap:1.5rem}.app-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;padding:1.25rem 1.75rem;background:var(--bg-card);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-deep)}.brand-title{display:flex;align-items:center;gap:.75rem}.brand-logo{width:40px;height:40px;background:linear-gradient(135deg,var(--accent-cyan),var(--accent-pink));border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:1.25rem;color:#000;box-shadow:0 0 15px #00f2fe66}.brand-name{font-size:1.75rem;font-weight:800;letter-spacing:-.5px;background:linear-gradient(135deg,#ffffff 30%,var(--accent-cyan) 70%,var(--accent-pink) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.brand-subtitle{font-size:.85rem;color:var(--text-muted);font-weight:400}.stats-bar{display:flex;align-items:center;gap:1.5rem}.stat-item{display:flex;flex-direction:column;align-items:center;background:#ffffff08;padding:.5rem 1rem;border-radius:var(--radius-sm);border:1px solid rgba(255,255,255,.05);min-width:90px}.stat-label{font-size:.75rem;text-transform:uppercase;letter-spacing:1px;color:var(--text-muted)}.stat-value{font-family:var(--font-mono);font-size:1.4rem;font-weight:700;color:var(--accent-cyan)}.controls-toolbar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;background:var(--bg-card);backdrop-filter:blur(16px);padding:1rem 1.5rem;border-radius:var(--radius-md);border:1px solid var(--border-color)}.button-group{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.btn{font-family:var(--font-sans);font-weight:600;font-size:.9rem;padding:.6rem 1.25rem;border-radius:var(--radius-sm);border:1px solid var(--border-color);background:#ffffff0d;color:var(--text-main);cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);display:inline-flex;align-items:center;gap:.5rem}.btn:hover{background:#ffffff1f;border-color:#ffffff40;transform:translateY(-2px)}.btn:active{transform:translateY(0)}.btn-primary{background:linear-gradient(135deg,var(--accent-cyan),var(--accent-blue));color:#050b14;border:none;font-weight:700;box-shadow:0 4px 15px #00f2fe4d}.btn-primary:hover{box-shadow:0 6px 20px #00f2fe80;background:linear-gradient(135deg,#33f5ff,#60b2fe)}.btn-toggle{border-color:#ffffff26}.btn-toggle.active{background:#ff007f33;border-color:var(--accent-pink);color:#ff66b2;box-shadow:0 0 12px #ff007f66}.select-input{font-family:var(--font-sans);font-size:.9rem;font-weight:600;padding:.6rem 1rem;border-radius:var(--radius-sm);border:1px solid var(--border-color);background:#121624e6;color:var(--text-main);outline:none;cursor:pointer}.select-input:hover{border-color:var(--accent-cyan)}.grid-wrapper{display:flex;justify-content:center;align-items:center;width:100%}.game-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);gap:1.25rem;width:100%;max-width:900px;aspect-ratio:4 / 3}.picture-card{position:relative;border-radius:var(--radius-md);overflow:hidden;background:#000;border:2px solid var(--border-color);cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column}.picture-card.included{border-color:var(--border-color)}.picture-card.hinted{border-color:var(--accent-green)!important;box-shadow:0 0 24px #00ff87cc,inset 0 0 12px #00ff8766!important;animation:pulse-green-border 1.5s infinite alternate}@keyframes pulse-green-border{0%{box-shadow:0 0 10px #00ff8766}to{box-shadow:0 0 26px #00ff87f2}}.picture-card img{width:100%;height:100%;object-fit:cover;display:block}.card-badge{position:absolute;top:8px;left:8px;background:#000000b3;backdrop-filter:blur(8px);padding:2px 8px;border-radius:var(--radius-sm);font-size:.75rem;font-family:var(--font-mono);font-weight:700;color:var(--text-muted);border:1px solid rgba(255,255,255,.1)}.card-player-target{position:absolute;top:8px;right:8px;padding:3px 8px;border-radius:var(--radius-sm);font-size:.75rem;font-family:var(--font-mono);font-weight:800;z-index:5;box-shadow:0 0 10px #00000080}.card-player-target.p1{background:#00f2fef2;color:#000;box-shadow:0 0 12px #00f2fecc}.card-player-target.p2{background:#ff007ff2;color:#fff;box-shadow:0 0 12px #ff007fcc}.turn-badge{font-family:var(--font-sans);font-weight:700;font-size:.9rem;padding:.6rem 1rem;background:#ffffff0d;border:1px solid var(--border-color);border-radius:var(--radius-sm);display:flex;align-items:center;gap:.4rem}.card-status-indicator{position:absolute;bottom:8px;right:8px;width:12px;height:12px;border-radius:50%;background:#fff3;transition:all .2s;display:none}.picture-card.hinted .card-status-indicator{display:block;background:var(--accent-green);box-shadow:0 0 12px var(--accent-green)}.target-card{position:relative;grid-column:2;grid-row:2;border-radius:var(--radius-md);overflow:hidden;background:#000;border:3px solid var(--accent-cyan);box-shadow:0 0 30px #00f2fe4d,var(--shadow-deep);display:flex;flex-direction:column}.target-card canvas{width:100%;height:100%;display:block;image-rendering:pixelated}.target-label{position:absolute;top:8px;left:50%;transform:translate(-50%);background:#000000bf;backdrop-filter:blur(8px);padding:4px 12px;border-radius:20px;font-size:.75rem;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--accent-cyan);border:1px solid rgba(0,242,254,.3);pointer-events:none}.modal-overlay{position:fixed;inset:0;background:#05070fd9;backdrop-filter:blur(12px);display:flex;justify-content:center;align-items:center;z-index:100;padding:1.5rem;animation:fadeIn .3s ease-out}.modal-content{background:var(--bg-card);border:1px solid var(--border-color-glow);border-radius:var(--radius-lg);padding:2.5rem;max-width:480px;width:100%;text-align:center;box-shadow:0 25px 50px #000c,0 0 40px #00f2fe33;display:flex;flex-direction:column;align-items:center;gap:1.5rem;animation:scaleUp .3s cubic-bezier(.34,1.56,.64,1)}.modal-trophy{font-size:4rem;line-height:1;filter:drop-shadow(0 0 15px rgba(255,215,0,.6))}.modal-title{font-size:2rem;font-weight:800;background:linear-gradient(135deg,#fff,var(--accent-cyan));-webkit-background-clip:text;-webkit-text-fill-color:transparent}.modal-stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;width:100%}.modal-stat-box{background:#ffffff0a;padding:1rem;border-radius:var(--radius-md);border:1px solid rgba(255,255,255,.08)}.modal-stat-val{font-family:var(--font-mono);font-size:1.8rem;font-weight:800;color:var(--accent-pink)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleUp{0%{transform:scale(.85);opacity:0}to{transform:scale(1);opacity:1}}@media(max-width:768px){.app-container{padding:1rem}.game-grid{gap:.5rem;aspect-ratio:auto}.brand-name{font-size:1.4rem}.controls-toolbar{flex-direction:column;align-items:stretch}.button-group{justify-content:center}}.turn-banner-container{display:flex;justify-content:space-between;align-items:center;width:100%;max-width:900px;margin:0 auto;padding:.75rem 1.25rem;background:var(--bg-card);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1.5px solid var(--border-color);border-radius:var(--radius-md);transition:all .3s ease}.turn-banner-container.p1-turn{border-color:#00f2fe66;box-shadow:0 4px 20px #00f2fe26}.turn-banner-container.p2-turn{border-color:#ff007f66;box-shadow:0 4px 20px #ff007f26}.turn-banner-left{display:flex;flex-direction:column;gap:.15rem}.turn-mode-tag{font-size:.85rem;font-weight:800;letter-spacing:.5px;color:var(--text-main)}.turn-subtext{font-size:.8rem;color:var(--text-muted)}.turn-subtext strong{color:var(--text-main)}.turn-banner-center{display:flex;align-items:center}.turn-pill{display:flex;align-items:center;gap:.5rem;padding:.45rem 1.1rem;border-radius:20px;font-weight:800;font-size:.95rem;letter-spacing:.5px;transition:all .3s ease}.turn-pill.p1{background:#00f2fe2e;color:var(--accent-cyan);border:1px solid var(--accent-cyan);box-shadow:0 0 15px #00f2fe4d;animation:pulseTurnP1 1.5s infinite alternate}.turn-pill.p2{background:#ff007f2e;color:var(--accent-pink);border:1px solid var(--accent-pink);box-shadow:0 0 15px #ff007f4d;animation:pulseTurnP2 1.5s infinite alternate}.turn-arrow{font-size:1rem}.grid-wrapper.turn-p1-active .game-grid{border-radius:var(--radius-md);box-shadow:0 0 30px #00f2fe26;transition:box-shadow .3s ease}.grid-wrapper.turn-p2-active .game-grid{border-radius:var(--radius-md);box-shadow:0 0 30px #ff007f26;transition:box-shadow .3s ease}@keyframes pulseTurnP1{0%{transform:scale(1);box-shadow:0 0 10px #00f2fe4d}to{transform:scale(1.03);box-shadow:0 0 20px #00f2fe99}}@keyframes pulseTurnP2{0%{transform:scale(1);box-shadow:0 0 10px #ff007f4d}to{transform:scale(1.03);box-shadow:0 0 20px #ff007f99}}.victory-banner-container{position:relative;width:100%;max-width:900px;margin:0 auto;padding:1.25rem 1.75rem;border-radius:var(--radius-md);background:#121624f2;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:2px solid var(--accent-cyan);box-shadow:0 10px 30px #00f2fe4d;overflow:hidden;cursor:pointer;animation:slideDownBanner .4s cubic-bezier(.34,1.56,.64,1);z-index:50}.victory-banner-container.p1-win{border-color:var(--accent-cyan);box-shadow:0 0 35px #00f2fe66,inset 0 0 15px #00f2fe33}.victory-banner-container.p2-win{border-color:var(--accent-pink);box-shadow:0 0 35px #ff007f66,inset 0 0 15px #ff007f33}.victory-banner-container.solo-win{border-color:var(--accent-green);box-shadow:0 0 35px #00ff8766,inset 0 0 15px #00ff8733}.victory-banner-content{display:flex;align-items:center;gap:1.25rem}.victory-trophy-badge{font-size:2.75rem;line-height:1;animation:bounceTrophy 1s ease infinite alternate;filter:drop-shadow(0 0 12px rgba(255,215,0,.8))}.victory-text-group{flex:1;display:flex;flex-direction:column;gap:.25rem}.victory-title-row{display:flex;align-items:center;gap:.5rem}.victory-player-tag{font-size:1.4rem;font-weight:800;letter-spacing:.5px;background:linear-gradient(135deg,#ffffff 40%,var(--accent-cyan) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.p2-win .victory-player-tag{background:linear-gradient(135deg,#ffffff 40%,var(--accent-pink) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.solo-win .victory-player-tag{background:linear-gradient(135deg,#ffffff 40%,var(--accent-green) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.victory-sparkle{font-size:1.2rem;animation:pulseSparkle 1s infinite alternate}.victory-explanation{font-size:.95rem;color:var(--text-main);line-height:1.4}.victory-explanation strong{color:#fff;text-decoration:underline decoration-style wavy var(--accent-cyan)}.p2-win .victory-explanation strong{text-decoration-color:var(--accent-pink)}.victory-skip-btn{background:#ffffff14;border:1px solid rgba(255,255,255,.2);color:var(--text-main);padding:.5rem 1rem;border-radius:var(--radius-sm);font-weight:700;font-size:.85rem;cursor:pointer;display:flex;align-items:center;gap:.4rem;transition:all .2s;white-space:nowrap}.victory-skip-btn:hover{background:#fff3;border-color:#fff;transform:translate(3px)}.victory-timer-tag{font-family:var(--font-mono);color:var(--accent-cyan)}.p2-win .victory-timer-tag{color:var(--accent-pink)}.victory-progress-bar{position:absolute;bottom:0;left:0;height:4px;width:100%;background:linear-gradient(90deg,var(--accent-cyan),var(--accent-pink));animation:shrinkWidth linear forwards}.solo-win .victory-progress-bar{background:linear-gradient(90deg,var(--accent-green),var(--accent-cyan))}.grid-wrapper.victory-active{position:relative}.picture-card.winning-target{z-index:10!important;transform:scale(1.06)!important;transition:transform .3s cubic-bezier(.34,1.56,.64,1),box-shadow .3s!important}.picture-card.winning-target.win-p1{border-color:var(--accent-cyan)!important;box-shadow:0 0 40px #00f2fee6,inset 0 0 20px #00f2fe80!important;animation:victoryPulseP1 1.2s infinite alternate!important}.picture-card.winning-target.win-p2{border-color:var(--accent-pink)!important;box-shadow:0 0 40px #ff007fe6,inset 0 0 20px #ff007f80!important;animation:victoryPulseP2 1.2s infinite alternate!important}.winning-match-badge{position:absolute;bottom:10px;left:50%;transform:translate(-50%);background:#000000d9;color:#fff;border:1px solid currentColor;padding:3px 10px;border-radius:12px;font-size:.75rem;font-weight:800;letter-spacing:.5px;white-space:nowrap;box-shadow:0 4px 12px #0009;z-index:6;animation:badgePop .4s cubic-bezier(.34,1.56,.64,1)}.win-p1 .winning-match-badge{color:var(--accent-cyan);border-color:var(--accent-cyan)}.win-p2 .winning-match-badge{color:var(--accent-pink);border-color:var(--accent-pink)}.target-card.winning-canvas{z-index:10!important;transform:scale(1.05)!important;transition:transform .3s cubic-bezier(.34,1.56,.64,1),box-shadow .3s!important}.target-card.winning-canvas.win-p1{border-color:var(--accent-cyan)!important;box-shadow:0 0 45px #00f2fef2,inset 0 0 25px #00f2fe99!important;animation:victoryPulseP1 1.2s infinite alternate!important}.target-card.winning-canvas.win-p2{border-color:var(--accent-pink)!important;box-shadow:0 0 45px #ff007ff2,inset 0 0 25px #ff007f99!important;animation:victoryPulseP2 1.2s infinite alternate!important}.picture-card.dimmed-card{opacity:.35;filter:grayscale(.5) blur(.5px);transform:scale(.96);transition:all .4s ease;pointer-events:none}@keyframes slideDownBanner{0%{transform:translateY(-20px) scale(.95);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}@keyframes shrinkWidth{0%{width:100%}to{width:0%}}@keyframes bounceTrophy{0%{transform:translateY(0) scale(1)}to{transform:translateY(-5px) scale(1.1)}}@keyframes pulseSparkle{0%{opacity:.4;transform:rotate(0)}to{opacity:1;transform:rotate(20deg) scale(1.2)}}@keyframes victoryPulseP1{0%{box-shadow:0 0 25px #00f2fe99,inset 0 0 10px #00f2fe4d}to{box-shadow:0 0 50px #00f2fe,inset 0 0 30px #00f2feb3}}@keyframes victoryPulseP2{0%{box-shadow:0 0 25px #ff007f99,inset 0 0 10px #ff007f4d}to{box-shadow:0 0 50px #ff007f,inset 0 0 30px #ff007fb3}}@keyframes badgePop{0%{transform:translate(-50%) scale(.6);opacity:0}to{transform:translate(-50%) scale(1);opacity:1}}.help-modal-content{max-width:620px!important;text-align:left!important;align-items:stretch!important;max-height:85vh;overflow-y:auto}.help-modal-header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid rgba(255,255,255,.1);padding-bottom:.75rem}.help-close-x{background:none;border:none;color:var(--text-muted);font-size:1.5rem;cursor:pointer;padding:0 .5rem;transition:color .2s}.help-close-x:hover{color:#fff}.help-modal-body{display:flex;flex-direction:column;gap:1.25rem;margin-top:1rem}.help-section h3{font-size:1.1rem;color:var(--accent-cyan);margin-bottom:.4rem}.help-section p{font-size:.92rem;color:var(--text-main);line-height:1.5}.help-section ul{list-style:disc;padding-left:1.25rem;display:flex;flex-direction:column;gap:.5rem;font-size:.92rem;color:var(--text-main)}.credits-section{background:#ffffff08;padding:1rem 1.25rem;border-radius:var(--radius-md);border:1px solid rgba(255,255,255,.08)}.credits-grid{display:flex;flex-direction:column;gap:.85rem;margin-top:.5rem}.credit-item{display:flex;flex-direction:column;gap:.15rem}.credit-role{font-size:.75rem;text-transform:uppercase;letter-spacing:1px;color:var(--text-muted)}.credit-name{font-size:1.1rem;font-weight:700;color:#fff}.credit-detail{font-size:.82rem;color:var(--accent-cyan)}
