body{transition:background-color .3s,color .3s}.set-board,.set-card{user-select:none;-webkit-user-select:none}.set-card:after{content:"";position:absolute;inset:0;opacity:0;background:linear-gradient(135deg,rgba(255,255,255,.2),transparent);border-radius:inherit;transition:opacity .2s;pointer-events:none}.set-card:hover:after{opacity:1}html{scroll-behavior:smooth}button:focus-visible{outline:3px solid var(--color-primary);outline-offset:2px}.statistics-modal::-webkit-scrollbar,.tutorial-modal::-webkit-scrollbar,.privacy-modal::-webkit-scrollbar{width:6px}.statistics-modal::-webkit-scrollbar-thumb,.tutorial-modal::-webkit-scrollbar-thumb,.privacy-modal::-webkit-scrollbar-thumb{background:var(--color-card-border);border-radius:3px}@keyframes cardDeal{0%{opacity:0;transform:translateY(-20px) rotateX(90deg)}to{opacity:1;transform:translateY(0) rotateX(0)}}.set-card{animation:cardDeal .3s ease-out}@keyframes setFound{0%{transform:scale(1)}50%{transform:scale(1.1);background-color:var(--color-success)}to{transform:scale(0);opacity:0}}@media(hover:none)and (pointer:coarse){.set-card{min-height:90px}.btn{padding:14px 18px}.set-card:hover{transform:none;box-shadow:none}.set-card:active{transform:scale(.98)}}@media(max-height:500px)and (orientation:landscape){body{padding:8px}.game-header{margin-bottom:8px}.game-stats{padding:6px}.stat-icon{font-size:16px}.stat-value{font-size:14px}}:root{--color-bg-primary: #f0f0f5;--color-surface: #ffffff;--color-text-primary: #2c2c3e;--color-text-secondary: #6b6b80;--color-primary: #6b4c9a;--color-primary-hover: #7d5cb2;--color-accent-1: #e53935;--color-accent-2: #43a047;--color-accent-3: #1e88e5;--color-card-bg: #ffffff;--color-card-border: #ddd;--color-success: #4caf50;--color-error: #e53935;--color-warning: #ff9800;--space-4: 4px;--space-8: 8px;--space-12: 12px;--space-16: 16px;--space-20: 20px;--space-24: 24px;--space-32: 32px;--space-48: 48px;--radius-sm: 6px;--radius-md: 12px;--radius-lg: 16px;--duration-fast: .15s;--duration-normal: .25s}body.dark-mode{--color-bg-primary: #1a1625;--color-surface: #252035;--color-text-primary: #f0f0f5;--color-text-secondary: #a0a0b5;--color-primary: #9b7cd0;--color-primary-hover: #b08ce8;--color-card-bg: #2d2840;--color-card-border: #3d3855;--color-success: #66bb6a;--color-error: #ef5350}*{margin:0;padding:0;box-sizing:border-box}html,body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background-color:var(--color-bg-primary);color:var(--color-text-primary);width:100%}body{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:var(--space-12)}.app{width:100%;max-width:900px}.btn{padding:var(--space-12) var(--space-16);border:none;border-radius:var(--radius-sm);font-size:14px;font-weight:600;cursor:pointer;transition:all var(--duration-fast);text-transform:uppercase;letter-spacing:.5px}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:linear-gradient(135deg,var(--color-primary),var(--color-primary-hover));color:#fff}.btn-primary:hover:not(:disabled){box-shadow:0 4px 12px #6b4c9a66}.btn-secondary{background-color:var(--color-surface);color:var(--color-text-primary);border:2px solid var(--color-card-border)}.btn-secondary:hover:not(:disabled){border-color:var(--color-primary)}.btn-tertiary{background:linear-gradient(135deg,#43a047,#66bb6a);color:#fff}.btn-variant{background:linear-gradient(135deg,#ff9800,#ffc107);color:#333}.btn-sm{padding:var(--space-8) var(--space-12);font-size:12px}.btn-icon{background:none;border:none;font-size:24px;cursor:pointer;padding:var(--space-4)}.main-menu{display:flex;flex-direction:column;align-items:center;padding:var(--space-24);text-align:center}.menu-title{font-size:48px;color:var(--color-primary);margin-bottom:var(--space-4)}.menu-subtitle{color:var(--color-text-secondary);margin-bottom:var(--space-32);font-size:18px}.menu-options{display:flex;flex-direction:column;gap:var(--space-24);width:100%;max-width:400px}.mode-group{display:flex;flex-direction:column;gap:var(--space-8)}.mode-group h3{font-size:14px;text-transform:uppercase;letter-spacing:1px;color:var(--color-text-secondary);margin-bottom:var(--space-4)}.menu-btn{width:100%;padding:var(--space-16);font-size:16px;display:flex;align-items:center;justify-content:center;gap:var(--space-8)}.resume-btn{background:linear-gradient(135deg,var(--color-success),#66bb6a)}.badge{font-size:10px;padding:2px 8px;border-radius:4px;background-color:#00000026;font-weight:700}.menu-footer{margin-top:var(--space-48);color:var(--color-text-secondary);font-size:12px}.privacy-link{background:none;border:none;color:var(--color-text-secondary);cursor:pointer;font-size:12px}.game-container{background:var(--color-surface);border-radius:var(--radius-md);padding:var(--space-20);box-shadow:0 4px 20px #0000001a}.game-header{text-align:center;margin-bottom:var(--space-16)}.header-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-8)}.header-top h1{font-size:24px;color:var(--color-primary)}.mode-badge{display:inline-block;background:var(--color-primary);color:#fff;padding:var(--space-4) var(--space-12);border-radius:var(--radius-sm);font-size:12px;font-weight:600;margin-bottom:var(--space-12)}.game-stats{display:flex;justify-content:center;gap:var(--space-16);padding:var(--space-12);background:var(--color-bg-primary);border-radius:var(--radius-sm)}.stat{display:flex;flex-direction:column;align-items:center;min-width:60px}.stat-icon{font-size:20px}.stat-value{font-size:18px;font-weight:700;color:var(--color-text-primary)}.stat-label{font-size:10px;color:var(--color-text-secondary);text-transform:uppercase}.players-bar{display:flex;justify-content:center;gap:var(--space-12);margin-top:var(--space-12);flex-wrap:wrap}.player-score{padding:var(--space-8) var(--space-16);background:var(--color-bg-primary);border-radius:var(--radius-sm);border-left:4px solid;display:flex;gap:var(--space-12);align-items:center}.player-points{font-weight:700;font-size:18px}.game-board-area{position:relative;margin:var(--space-16) 0}.set-board{display:grid;gap:var(--space-12);justify-content:center;padding:var(--space-12)}.board-grid-4{grid-template-columns:repeat(4,1fr)}.board-grid-5{grid-template-columns:repeat(5,1fr)}.board-grid-6{grid-template-columns:repeat(6,1fr)}.set-card{background:var(--color-card-bg);border:3px solid var(--color-card-border);border-radius:var(--radius-md);padding:var(--space-12);cursor:pointer;transition:all var(--duration-normal);min-width:80px;min-height:100px;display:flex;align-items:center;justify-content:center;touch-action:manipulation}.set-card:hover:not(:disabled){transform:translateY(-4px);box-shadow:0 8px 20px #00000026}.set-card.selected{border-color:var(--color-primary);box-shadow:0 0 0 4px #6b4c9a4d;transform:scale(1.05)}.set-card.hinted{border-color:var(--color-warning);animation:hintPulse 1s infinite}@keyframes hintPulse{0%,to{box-shadow:0 0 0 4px #ff98004d}50%{box-shadow:0 0 0 8px #ff980080}}.set-card.disabled{opacity:.5;cursor:not-allowed}.card-content{display:flex;flex-direction:column;align-items:center;gap:var(--space-4)}.card-shape{transition:transform var(--duration-fast)}.game-controls{display:flex;align-items:center;justify-content:center;gap:var(--space-12);flex-wrap:wrap;margin-top:var(--space-16)}.sets-info{padding:var(--space-8) var(--space-16);background:var(--color-bg-primary);border-radius:var(--radius-sm);font-size:14px;color:var(--color-text-secondary)}.game-message{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);padding:var(--space-16) var(--space-24);border-radius:var(--radius-md);font-size:18px;font-weight:700;z-index:100;animation:popIn var(--duration-normal) ease-out}.game-message.success{background:var(--color-success);color:#fff}.game-message.error{background:var(--color-error);color:#fff}.game-message.info{background:var(--color-warning);color:#333}@keyframes popIn{0%{transform:translate(-50%,-50%) scale(.5);opacity:0}to{transform:translate(-50%,-50%) scale(1);opacity:1}}.modal-overlay,.tutorial-overlay,.statistics-overlay,.privacy-overlay,.explanation-overlay,.result-overlay{position:fixed;inset:0;background-color:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--space-16)}.modal,.tutorial-modal,.statistics-modal,.privacy-modal,.explanation-modal,.result-modal{background-color:var(--color-surface);border-radius:var(--radius-md);padding:var(--space-24);max-width:500px;width:100%;max-height:90vh;overflow-y:auto;position:relative;animation:fadeIn var(--duration-fast) ease-out}@keyframes fadeIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.tutorial-close,.statistics-close,.privacy-close{position:absolute;top:var(--space-12);right:var(--space-12);background:none;border:none;font-size:20px;cursor:pointer;color:var(--color-text-secondary)}.tutorial-title,.statistics-title,.privacy-title{font-size:22px;text-align:center;margin-bottom:var(--space-16);color:var(--color-text-primary)}.tutorial-progress{display:flex;justify-content:center;gap:var(--space-8);margin-bottom:var(--space-20)}.tutorial-dot{width:10px;height:10px;border-radius:50%;background-color:var(--color-card-border);transition:background-color var(--duration-fast)}.tutorial-dot.active{background-color:var(--color-primary)}.tutorial-dot.completed{background-color:var(--color-success)}.tutorial-visual{text-align:center;margin-bottom:var(--space-16)}.big-emoji{font-size:48px}.tutorial-content{text-align:center;color:var(--color-text-secondary);line-height:1.6;margin-bottom:var(--space-20)}.tutorial-nav{display:flex;justify-content:center;gap:var(--space-12)}.statistics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-16);margin-bottom:var(--space-20)}.stat-card{background:var(--color-bg-primary);padding:var(--space-16);border-radius:var(--radius-sm);text-align:center}.stat-card h3{font-size:16px;margin-bottom:var(--space-12)}.stat-details{display:flex;flex-direction:column;gap:var(--space-8)}.stat-item{display:flex;justify-content:space-between;font-size:13px}.stat-item.best-time{margin-top:var(--space-8);padding-top:var(--space-8);border-top:1px solid var(--color-card-border)}.statistics-footer{display:flex;gap:var(--space-12);justify-content:center}.privacy-content{text-align:left;color:var(--color-text-secondary);line-height:1.6}.privacy-content section{margin-bottom:var(--space-16)}.privacy-content h3{color:var(--color-text-primary);margin-bottom:var(--space-8);font-size:16px}.privacy-content ul{margin-left:var(--space-20)}.privacy-content a{color:var(--color-primary)}.privacy-footer{margin-top:var(--space-20);text-align:center}.player-selector,.time-selector{display:flex;gap:var(--space-8);justify-content:center;margin:var(--space-16) 0}.player-btn,.time-btn{padding:var(--space-12) var(--space-20);border:2px solid var(--color-card-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text-primary);font-weight:600;cursor:pointer;transition:all var(--duration-fast)}.player-btn.active,.time-btn.active{border-color:var(--color-primary);background:var(--color-primary);color:#fff}.modal-buttons{display:flex;gap:var(--space-12);justify-content:center;margin-top:var(--space-16)}.explanation-modal{text-align:center}.explanation-modal h3{margin-bottom:var(--space-16);color:var(--color-success)}.explanation-modal ul{text-align:left;margin:var(--space-16) 0;padding-left:var(--space-24)}.explanation-modal li{margin-bottom:var(--space-8);color:var(--color-text-secondary)}.result-modal{text-align:center}.result-modal h2{font-size:32px;margin-bottom:var(--space-16)}.result-modal p{color:var(--color-text-secondary);margin-bottom:var(--space-8)}.result-buttons{display:flex;gap:var(--space-12);justify-content:center;margin-top:var(--space-24)}.cookie-banner{position:fixed;bottom:0;left:0;right:0;background:var(--color-surface);box-shadow:0 -2px 10px #0000001a;padding:var(--space-16);z-index:1001;animation:slideUp .3s ease}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.cookie-content{max-width:600px;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:var(--space-12);text-align:center}.cookie-content p{color:var(--color-text-secondary);font-size:14px}.cookie-buttons{display:flex;gap:var(--space-8)}.install-prompt{position:fixed;bottom:var(--space-16);left:var(--space-16);right:var(--space-16);max-width:400px;margin:0 auto;background:var(--color-surface);border-radius:var(--radius-md);box-shadow:0 4px 20px #00000026;padding:var(--space-16);z-index:1000;animation:slideUp .3s ease}.install-content{display:flex;align-items:center;gap:var(--space-12);flex-wrap:wrap}.install-icon{font-size:32px}.install-text{flex:1;min-width:150px}.install-text strong{display:block;color:var(--color-text-primary)}.install-text p{font-size:12px;color:var(--color-text-secondary);margin-top:2px}.install-buttons{display:flex;gap:var(--space-8)}.multiplayer-section{background:var(--color-surface);border-radius:var(--radius-md);padding:var(--space-16);margin-top:var(--space-16)}.players-bar{display:flex;gap:var(--space-12);justify-content:center;flex-wrap:wrap}.player-claim-btn{display:flex;flex-direction:column;align-items:center;gap:var(--space-4);padding:var(--space-12) var(--space-20);border:3px solid;border-radius:var(--radius-md);background:transparent;cursor:pointer;transition:all var(--duration-fast);min-width:120px}.player-claim-btn:hover:not(:disabled){transform:scale(1.05);box-shadow:0 4px 12px #0003}.player-claim-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.player-claim-btn.active{animation:pulse-claim 1s ease-in-out infinite}@keyframes pulse-claim{0%,to{transform:scale(1);box-shadow:0 0 #0003}50%{transform:scale(1.02);box-shadow:0 0 20px 5px #00000026}}.player-name{font-weight:600;font-size:14px}.player-points{font-size:18px;font-weight:700}.claim-status{display:flex;align-items:center;justify-content:center;gap:var(--space-16);margin-top:var(--space-16);padding:var(--space-12);background:var(--color-bg-primary);border-radius:var(--radius-sm)}.claim-player{font-weight:700;font-size:16px}.claim-timer{font-size:24px;font-weight:700;color:var(--color-warning);animation:timer-pulse 1s ease-in-out infinite}@keyframes timer-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.claim-hint{text-align:center;color:var(--color-text-secondary);font-size:14px;margin-top:var(--space-12)}.btn-small{padding:var(--space-8) var(--space-12);font-size:12px}.btn-danger{background:var(--color-error);color:#fff}.btn-danger:hover:not(:disabled){background:#d32f2f}@media(max-width:600px){.menu-title{font-size:36px}.set-board{gap:var(--space-8);padding:var(--space-8)}.set-card{min-width:65px;min-height:85px;padding:var(--space-8)}.board-grid-4{grid-template-columns:repeat(3,1fr)}.game-stats{gap:var(--space-8);padding:var(--space-8)}.stat{min-width:50px}.stat-value{font-size:16px}.game-controls{flex-direction:column}.statistics-grid{grid-template-columns:1fr}.players-bar{gap:var(--space-8)}.player-claim-btn{min-width:80px;padding:var(--space-8) var(--space-12)}.claim-status{flex-wrap:wrap;gap:var(--space-8)}}
