.card{perspective:1000px;width:98%;aspect-ratio:3/4;cursor:pointer;position:relative;transform-style:preserve-3d}.card.matched{visibility:hidden}.card .card-inner{position:relative;width:100%;height:100%;transition:transform .3s;transform-style:preserve-3d}.card.flipped .card-inner{transform:rotateY(180deg)}.card .card-front,.card .card-back{position:absolute;width:100%;height:100%;backface-visibility:hidden;border-radius:var(--radius-lg);display:flex;flex-direction:column;justify-content:center;align-items:center;box-shadow:var(--shadow-md)}.card .card-front{background:var(--text-light);transform:rotateY(180deg)}.card .card-front .emoji{font-size:clamp(2rem,8vmin,5rem)}.card .card-front .title{font-size:clamp(.8rem,2vmin,1.2rem);font-weight:500;color:var(--text-primary)}.card .card-back{background:var(--neutral-color)}.card .card-back.pattern1{background:linear-gradient(45deg,#ff6b6b,#ff8787)}.card .card-back.pattern1:after{background:repeating-linear-gradient(45deg,transparent,transparent 10px,rgba(255,255,255,.25) 10px,rgba(255,255,255,.25) 20px)}.card .card-back.pattern2{background:linear-gradient(45deg,#4dabf7,#74c0fc)}.card .card-back.pattern2:after{background:radial-gradient(circle at 50% 50%,rgba(255,255,255,.3) 2px,transparent 3px) 0 0,radial-gradient(circle at 50% 50%,rgba(255,255,255,.3) 2px,transparent 3px) 10px 10px;background-size:20px 20px}.card .card-back.pattern3{background:linear-gradient(45deg,#51cf66,#69db7c)}.card .card-back.pattern3:after{background:linear-gradient(45deg,rgba(255,255,255,.25) 25%,transparent 25%) -10px 0,linear-gradient(-45deg,rgba(255,255,255,.25) 25%,transparent 25%) -10px 0;background-size:20px 20px}.card .card-back.pattern4{background:linear-gradient(45deg,#ffd43b,#fcc419)}.card .card-back.pattern4:after{background:linear-gradient(rgba(255,255,255,.25) 2px,transparent 2px),linear-gradient(90deg,rgba(255,255,255,.25) 2px,transparent 2px);background-size:15px 15px}.card .card-back.pattern5{background:linear-gradient(45deg,#be4bdb,#da77f2)}.card .card-back.pattern5:after{background:repeating-conic-gradient(rgba(255,255,255,.3) 0% 25%,transparent 0% 50%) 50%/20px 20px}.card .card-back:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;opacity:.6;border-radius:10px}.player-info{display:flex;flex-wrap:wrap;gap:60px;justify-content:center;padding:3px;margin-bottom:5px}.player-info .player-card{background:#fff;padding:4px 12px;min-width:120px;border-radius:8px;box-shadow:0 2px 4px #0000001a;border:2px solid transparent;transition:all .3s ease;display:flex;align-items:center;justify-content:space-between;gap:12px}.player-info .player-card.active{border-color:var(--player-color);transform:translateY(-2px);box-shadow:0 4px 8px #00000026}.player-info .player-card .player-name{font:600 1em/1 sans-serif;color:#333;text-align:left}.player-info .player-card .player-score{font:700 1.6em/1 sans-serif;color:var(--player-color);text-align:right}body{min-height:100vh;margin:0}.game-board{max-width:1200px;width:98%;margin:0 auto;padding:.9vmin;min-height:100vh;position:relative}.game-board:before{content:"";position:fixed;top:0;left:0;right:0;bottom:0;border:4px solid;border-image:linear-gradient(to bottom,var(--player-color) 0%,rgba(255,255,255,.5) 50%,var(--player-color) 100%) 1;background:linear-gradient(to bottom,color-mix(in srgb,var(--player-color) 30%,transparent),color-mix(in srgb,var(--player-color) 15%,transparent));z-index:-1}@keyframes borderGlow{0%,to{opacity:.6}50%{opacity:1}}.game-board .cards-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:20px;justify-content:center;margin-bottom:var(--spacing-lg);padding:5px}@media (max-width: 768px){.game-board .cards-grid{grid-template-columns:repeat(4,1fr);gap:15px}}@media (max-width: 480px){.game-board .cards-grid{grid-template-columns:repeat(4,1fr);gap:10px;padding:3px}}.game-board .game-controls{display:flex;justify-content:center;gap:var(--spacing-md);flex-wrap:wrap}.game-board .game-controls button{padding:var(--spacing-sm) var(--spacing-lg);font-size:clamp(.9rem,2vmin,1.1rem);margin:2vmin}.game-board .game-controls button:hover{transform:translateY(-2px)}.game-board .game-controls button:active{transform:translateY(0)}.game-board .game-controls .next-turn-btn{background:#4dabf7;color:#fff}.game-board .game-controls .next-turn-btn:hover{background:#339af0}.game-board .game-controls .reset-btn{background:#ff6b6b;color:#fff}.game-board .game-controls .reset-btn:hover{background:#fa5252}.game-board .game-controls .menu-btn{background:#868e96;color:#fff}.game-board .game-controls .menu-btn:hover{background:#495057}.game-board .winner-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#000000d9;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:1000}.game-board .winner-content{text-align:center;color:#fff;margin-bottom:2rem;text-shadow:0 0 10px rgba(255,255,255,.5)}.game-board .winner-content h2{font-size:2.5rem;margin-bottom:1rem;color:gold;text-shadow:0 0 15px rgba(255,215,0,.6)}.game-board .winner-content .winner-name{font-size:2rem;margin-bottom:.5rem;text-shadow:0 0 12px rgba(255,255,255,.7)}.game-board .winner-content .winner-score{font-size:1.5rem;margin-bottom:2rem;color:#fff;text-shadow:0 0 8px rgba(255,255,255,.5)}.game-board .player-rankings{background-color:#ffffff1a;padding:1rem 2rem;border-radius:8px;margin-bottom:2rem}.game-board .player-rankings h3{color:#fff;margin-bottom:1rem}.game-board .player-rankings .ranking-item{display:flex;justify-content:space-between;color:#fff;margin:.5rem 0;padding:.5rem;border-radius:4px;text-shadow:-1px -1px 0 rgba(0,0,0,.5),1px -1px 0 rgba(0,0,0,.5),-1px 1px 0 rgba(0,0,0,.5),1px 1px 0 rgba(0,0,0,.5)}.game-board .player-rankings .ranking-item.winner{background-color:#ffd70033}.game-board .firework{position:absolute;width:4px;height:4px;border-radius:50%;animation:explode 1.5s ease-out forwards,fade 1.5s ease-out forwards;transform-origin:center}@keyframes explode{0%{transform:scale(1) rotate(0)}50%{transform:scale(35) rotate(180deg)}to{transform:scale(40) rotate(360deg)}}@keyframes fade{0%,20%{opacity:1}to{opacity:0}}.game-board .confirmation-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#000000b3;display:flex;align-items:center;justify-content:center;z-index:2000}.game-board .confirmation-dialog{background-color:#fff;padding:2rem;border-radius:8px;text-align:center;max-width:400px;width:90%;box-shadow:0 4px 6px #0000001a}.game-board .confirmation-dialog .message{margin-bottom:1.5rem;font-size:1.1rem;color:#333}.game-board .confirmation-dialog .buttons{display:flex;justify-content:center;gap:1rem}.game-board .confirmation-dialog .buttons button{padding:.5rem 1.5rem;border-radius:4px;border:none;cursor:pointer;font-size:1rem;transition:all .2s}.game-board .confirmation-dialog .buttons button.confirm{background-color:#ff6b6b;color:#fff}.game-board .confirmation-dialog .buttons button.confirm:hover{background-color:#fa5252}.game-board .confirmation-dialog .buttons button.cancel{background-color:#868e96;color:#fff}.game-board .confirmation-dialog .buttons button.cancel:hover{background-color:#495057}.main-menu{max-width:600px;margin:0 auto;padding:10px;width:100%}@media (max-width: 480px){.main-menu{padding:5px}.main-menu .menu-section{padding:15px}}.main-menu h1{font-size:2.5em;font-weight:600;text-align:center;margin-bottom:30px}.main-menu .menu-section{background:#fff;border-radius:10px;padding:20px;margin-bottom:20px;box-shadow:0 2px 6px #0000001a}.main-menu .menu-section h2{margin-bottom:20px}.main-menu .player-input{display:flex;align-items:center;gap:10px;margin-bottom:10px;flex-wrap:wrap}.main-menu .player-input input{flex:1;min-width:200px;padding:8px;border:1px solid #ddd;border-radius:4px}.main-menu .player-input .color-selector{width:24px;height:24px;min-width:24px;border-radius:50%;cursor:pointer;border:2px solid #fff;box-shadow:0 0 0 1px #0003;transition:transform .2s;padding:0}.main-menu .player-input .color-selector:hover{transform:scale(1.1)}.main-menu .player-input button{padding:var(--spacing-sm);min-width:32px;height:32px;display:flex;align-items:center;justify-content:center}.main-menu .setting-item{margin-bottom:15px}.main-menu .setting-item label{display:block;margin-bottom:5px}.main-menu .setting-item select,.main-menu .setting-item input[type=number]{width:100%;padding:8px;border:1px solid #ddd;border-radius:4px}.main-menu .setting-item input[type=checkbox]{margin-right:10px}.main-menu .pattern-preview{display:flex;gap:10px;margin-top:10px}.main-menu .pattern-preview .pattern-option{width:60px;height:80px;border-radius:8px;cursor:pointer;transition:transform .2s}.main-menu .pattern-preview .pattern-option:hover{transform:translateY(-2px)}.main-menu .pattern-preview .pattern-option.selected{border:2px solid #4dabf7}.main-menu .pattern-preview .pattern-option.pattern1{background:linear-gradient(45deg,#ff6b6b,#ff8787)}.main-menu .pattern-preview .pattern-option.pattern2{background:linear-gradient(45deg,#4dabf7,#74c0fc)}.main-menu .pattern-preview .pattern-option.pattern3{background:linear-gradient(45deg,#51cf66,#69db7c)}.main-menu .pattern-preview .pattern-option.pattern4{background:linear-gradient(45deg,#ffd43b,#fcc419)}.main-menu .pattern-preview .pattern-option.pattern5{background:linear-gradient(45deg,#be4bdb,#da77f2)}.main-menu .start-game-btn{width:100%;padding:15px;background:#4dabf7;color:#fff;border:none;border-radius:8px;font-size:1.2em;font-weight:600;cursor:pointer;transition:background .2s}.main-menu .start-game-btn:hover{background:#339af0}:root{--primary-color: #4dabf7;--primary-hover: #339af0;--danger-color: #ff6b6b;--danger-hover: #fa5252;--neutral-color: #868e96;--neutral-hover: #495057;--text-primary: #333;--text-light: #fff;--shadow-sm: 0 2px 4px rgba(0, 0, 0, .1);--shadow-md: 0 4px 8px rgba(0, 0, 0, .15);--radius-sm: 4px;--radius-md: 8px;--radius-lg: 10px;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Poppins,sans-serif;line-height:1.5;background-color:#f8f9fa;color:var(--text-primary)}button{font-family:Poppins,sans-serif;border:none;border-radius:var(--radius-md);font-size:1em;font-weight:600;cursor:pointer;transition:all .2s ease;padding:var(--spacing-md) var(--spacing-lg)}button:hover{transform:translateY(-2px)}button:active{transform:translateY(0)}.fullscreen-btn{position:fixed;top:var(--spacing-md);right:var(--spacing-md);z-index:1000;background:none;border:none;padding:0;cursor:pointer;color:var(--text-primary);opacity:.6}.fullscreen-btn:hover{opacity:1;transform:none}input,select{font-family:Poppins,sans-serif;padding:var(--spacing-sm);border:1px solid #ddd;border-radius:var(--radius-sm);font-size:1em}.app{max-width:1200px;margin:0 auto;padding:var(--spacing-sm)}.loading-screen{position:fixed;top:0;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;background-color:#f5f5f5}.loading-spinner{width:50px;height:50px;border:5px solid #f3f3f3;border-top:5px solid #3498db;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}
