*{box-sizing:border-box}:root{font-family:Inter,SF Pro Display,-apple-system,BlinkMacSystemFont,system-ui,sans-serif;line-height:1.5;font-weight:400;color-scheme:dark;color:#f0f4ff;background-color:#0f1219;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--primary: #5b7fee;--primary-light: #7494ff;--primary-dark: #4165d8;--secondary: #ff6b6b;--accent: #ffd93d;--success: #4ade80;--danger: #ef4444;--bg-primary: #0f1219;--bg-secondary: #1a1f2e;--bg-tertiary: #232937;--text-primary: #f0f4ff;--text-secondary: #a0aec0;--border: #2d3748}body{margin:0;padding:0;min-width:320px;min-height:100vh;background:linear-gradient(135deg,#0f1219,#1a1f2e);position:relative;overflow-x:hidden}body:before{content:"";position:fixed;top:0;left:0;right:0;bottom:0;background-image:radial-gradient(circle at 20% 80%,rgba(91,127,238,.1) 0%,transparent 50%),radial-gradient(circle at 80% 20%,rgba(255,107,107,.08) 0%,transparent 50%),radial-gradient(circle at 40% 40%,rgba(255,217,61,.05) 0%,transparent 50%);pointer-events:none;z-index:0}button{border-radius:10px;border:none;padding:12px 24px;font-size:15px;font-weight:600;font-family:inherit;background:linear-gradient(135deg,var(--primary) 0%,var(--primary-light) 100%);color:#fff;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 15px #5b7fee4d;position:relative;overflow:hidden}button:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:#fff3;transform:translate(-50%,-50%);transition:width .6s,height .6s}button:hover{transform:translateY(-2px);box-shadow:0 6px 20px #5b7fee66}button:hover:before{width:300px;height:300px}button:active{transform:translateY(0);box-shadow:0 2px 10px #5b7fee4d}button:disabled{background:linear-gradient(135deg,#4a5568,#718096);cursor:not-allowed;box-shadow:none;opacity:.7}button:disabled:hover{transform:none}input{font-family:inherit;background:var(--bg-secondary);border:2px solid var(--border);color:var(--text-primary);padding:12px 16px;border-radius:10px;font-size:15px;transition:all .3s ease}input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #5b7fee1a}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--primary);border-radius:5px}::-webkit-scrollbar-thumb:hover{background:var(--primary-light)}h1,h2,h3,h4,h5,h6{font-family:Playfair Display,serif;font-weight:700;margin:0;line-height:1.3}h1{font-size:3rem;background:linear-gradient(135deg,var(--primary) 0%,var(--primary-light) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.fade-in{animation:fadeIn .5s ease-out}.slide-in{animation:slideIn .5s ease-out}.tile{border:2px solid rgba(0,0,0,.5);border-radius:6px;box-shadow:0 2px 4px #0000004d,inset 0 1px 2px #ffffff4d,inset 0 -1px 2px #0003;transition:all .2s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden;cursor:pointer}.tile:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:linear-gradient(45deg,transparent 30%,rgba(255,255,255,.1) 50%,transparent 70%);transform:rotate(45deg);transition:transform .6s;transform:translate(-100%) translateY(-100%)}.tile:hover{transform:scale(1.1) rotate(2deg);box-shadow:0 6px 12px #0006,inset 0 1px 3px #fff6,inset 0 -1px 3px #0000004d;z-index:10}.tile:hover:before{transform:translate(100%) translateY(100%)}.tile:active{transform:scale(1.05) rotate(1deg);box-shadow:0 3px 6px #0000004d,inset 0 1px 2px #ffffff4d,inset 0 -1px 2px #0003}.tile[style*="rgb(0, 102, 204)"]{box-shadow:0 2px 4px #0000004d,0 0 8px #0066cc4d,inset 0 1px 2px #fff3}.tile[style*="rgb(255, 215, 0)"]{box-shadow:0 2px 4px #0000004d,0 0 8px #ffd7004d,inset 0 1px 2px #fff3}.tile[style*="rgb(204, 0, 0)"]{box-shadow:0 2px 4px #0000004d,0 0 8px #cc00004d,inset 0 1px 2px #fff3}.tile[style*="rgb(44, 46, 59)"]{box-shadow:0 2px 4px #0000004d,0 0 8px #2c2e3b4d,inset 0 1px 2px #fff3}.tile[style*="rgb(224, 224, 224)"]{box-shadow:0 2px 4px #0000004d,0 0 8px #e0e0e04d,inset 0 1px 2px #fff3}@keyframes tilePlacement{0%{transform:scale(0) rotate(180deg);opacity:0}50%{transform:scale(1.2) rotate(90deg);opacity:.8}to{transform:scale(1) rotate(0);opacity:1}}.tile-placed{animation:tilePlacement .5s cubic-bezier(.4,0,.2,1)}@media (max-width: 768px){.tile{border-radius:4px;border:1px solid rgba(0,0,0,.5);box-shadow:0 2px 4px #0000004d,inset 0 1px 2px #ffffff4d,inset 0 -1px 2px #0003}.tile.pattern-tile,.tile.floor-tile,.tile.wall-tile{--tile-size: 16px !important;width:16px!important;height:16px!important;min-width:16px!important;min-height:16px!important;max-width:16px!important;max-height:16px!important}.tile:hover{transform:scale(1.1) rotate(1deg);box-shadow:0 4px 8px #0006,inset 0 1px 3px #fff6,inset 0 -1px 3px #0000004d;z-index:10}.tile:active{transform:scale(1.05);box-shadow:0 2px 4px #0000004d,inset 0 1px 2px #ffffff4d,inset 0 -1px 2px #0003}}.factory{background:linear-gradient(135deg,#2d3348cc,#363c54cc);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:12px;transition:all .3s cubic-bezier(.4,0,.2,1);cursor:pointer;border:2px solid rgba(255,255,255,.08);position:relative;overflow:hidden;z-index:10}.factory:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;background:radial-gradient(circle,rgba(91,127,238,.2) 0%,transparent 70%);transition:all .5s ease;transform:translate(-50%,-50%);pointer-events:none;z-index:-1}.factory:hover{transform:translateY(-4px) scale(1.02);box-shadow:0 8px 24px #0000004d;border-color:#5b7fee4d}.factory:hover:before{width:150%;height:150%}.factory.selected{border-color:var(--primary);background:linear-gradient(135deg,#5b7fee26,#2d3348cc);box-shadow:0 0 20px #5b7fee66;animation:pulse 2s infinite}.factory-header{background:linear-gradient(135deg,#363c54e6,#2d3348e6);padding:10px;text-align:center;border-radius:10px 10px 0 0;border-bottom:1px solid rgba(255,255,255,.1)}.factory-label{color:var(--text-primary);font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:1px;text-shadow:0 1px 2px rgba(0,0,0,.3)}.factory-content{padding:15px;position:relative}.tiles-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;justify-items:center;align-items:center;min-height:70px;position:relative;z-index:1}.tile-slot{display:flex;align-items:center;justify-content:center;position:relative}.tile-slot .tile{transition:all .3s cubic-bezier(.4,0,.2,1)}.factory:hover .tile-slot .tile{transform:translateY(-2px)}.factory:hover .tile-slot:nth-child(1) .tile{transition-delay:0s}.factory:hover .tile-slot:nth-child(2) .tile{transition-delay:.05s}.factory:hover .tile-slot:nth-child(3) .tile{transition-delay:.1s}.factory:hover .tile-slot:nth-child(4) .tile{transition-delay:.15s}@media (max-width: 768px){.factory{border-radius:12px;min-height:100px;width:100%;display:flex;flex-direction:column}.factory-header{padding:8px;border-radius:10px 10px 0 0;border-bottom:1px solid rgba(255,255,255,.1);flex-shrink:0}.factory-label{font-size:12px;font-weight:700;letter-spacing:.5px}.factory-content{padding:12px;flex:1;display:flex;align-items:center;justify-content:center}.tiles-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;width:100%;min-height:60px;place-items:center}.tile-slot{display:flex;align-items:center;justify-content:center;min-height:25px;min-width:25px}.factory:hover{transform:translateY(-2px) scale(1.02);box-shadow:0 8px 20px #0000004d}}.center{background:radial-gradient(circle at center,#3d4459e6,#2d3348e6);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:16px;transition:all .3s cubic-bezier(.4,0,.2,1);cursor:pointer;border:2px solid rgba(255,255,255,.1);position:relative;overflow:hidden;min-width:200px;z-index:10}.center:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:conic-gradient(from 0deg,transparent,rgba(91,127,238,.1),transparent,rgba(255,217,61,.1),transparent);animation:rotate 10s linear infinite;opacity:.5;pointer-events:none;z-index:-1}.center:hover{transform:translateY(-4px) scale(1.03);box-shadow:0 12px 32px #0006;border-color:#5b7fee66}.center.selected{border-color:var(--primary);background:radial-gradient(circle at center,#5b7fee33,#2d3348e6);box-shadow:0 0 30px #5b7fee80}.center-header{background:linear-gradient(135deg,#4c5670e6,#3d4459e6);padding:12px;text-align:center;border-radius:14px 14px 0 0;border-bottom:1px solid rgba(255,255,255,.15);position:relative;z-index:1}.center-label{color:var(--text-primary);font-size:14px;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;text-shadow:0 2px 4px rgba(0,0,0,.4)}.center-content{padding:20px;min-height:140px;position:relative;z-index:1}.center-tiles{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;align-items:center}.color-group{display:flex;flex-direction:column;align-items:center;gap:4px}.tile-count{color:var(--text-primary);font-size:13px;font-weight:700;background:linear-gradient(135deg,#0009,#0006);padding:4px 10px;border-radius:12px;border:1px solid rgba(255,255,255,.1);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);box-shadow:0 2px 4px #0000004d}.first-player-marker{background:linear-gradient(135deg,var(--accent) 0%,#ffed4e 100%);color:#000;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:18px;border:3px solid rgba(0,0,0,.3);box-shadow:0 4px 8px #ffd93d66,inset 0 2px 4px #fff9,inset 0 -2px 4px #0003;animation:pulse 2s infinite;position:relative}.first-player-marker:before{content:"";position:absolute;top:-6px;right:-6px;bottom:-6px;left:-6px;border-radius:50%;background:radial-gradient(circle,rgba(255,217,61,.4) 0%,transparent 70%);animation:pulse 2s infinite;z-index:-1}@media (max-width: 768px){.center{border-radius:16px;min-width:auto;min-height:120px;margin-top:12px}.center-header{padding:12px;border-radius:14px 14px 0 0;border-bottom:1px solid rgba(255,255,255,.15)}.center-label{font-size:14px;font-weight:700;letter-spacing:1.2px}.center-content{padding:16px;min-height:90px;display:flex;align-items:center;justify-content:center}.center-tiles{gap:12px;flex-wrap:wrap;justify-content:center;width:100%;align-items:center}.color-group{gap:6px;align-items:center;flex-direction:column;min-width:40px}.tile-count{font-size:12px;font-weight:700;padding:4px 8px;border-radius:10px;border:1px solid rgba(255,255,255,.1);min-width:24px;text-align:center;background:#0000004d}.first-player-marker{width:28px;height:28px;font-size:16px;border:2px solid rgba(0,0,0,.3);margin:0 8px}.center:hover{transform:translateY(-2px) scale(1.02);box-shadow:0 10px 25px #0006}}.marker{font-weight:700}.player-board{background-color:#242938;border-radius:8px;padding:15px;border:2px solid transparent;transition:all .3s ease;max-width:400px;width:100%;position:relative;overflow:hidden}.player-board:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;padding:2px;background:linear-gradient(90deg,transparent 20%,var(--primary, #4c7cf0) 50%,transparent 80%);background-size:200% 100%;border-radius:8px;opacity:0;transition:opacity .3s ease;z-index:-1;pointer-events:none;animation:shimmerBorder 3s linear infinite;-webkit-mask:linear-gradient(#fff 0 0) padding-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#fff 0 0) padding-box,linear-gradient(#fff 0 0);mask-composite:exclude}@keyframes shimmerBorder{0%{background-position:200% 0}to{background-position:-200% 0}}.player-board.current-player{border-color:#4c7cf0;box-shadow:0 0 20px #4c7cf066;transform:translateY(-2px)}.player-board.current-player:before{opacity:1}.player-header{display:flex;justify-content:space-between;align-items:flex-end;padding:10px;background-color:#2d3348;border-radius:6px;margin-bottom:15px;position:relative;z-index:1;min-height:50px;flex-wrap:nowrap}.player-info,.score-info{display:flex;flex-direction:column;gap:4px}.score-info{flex-shrink:0;min-width:70px;align-items:flex-end}.player-label,.score-label{color:#7f8fa6;font-size:10px;font-weight:700;margin:0}.player-name-input{background-color:#363c54;color:#fff;border:none;border-radius:4px;padding:6px 8px;font-size:14px;font-weight:700;font-family:inherit;outline:none;border:1px solid transparent;transition:border-color .2s ease;max-width:150px;width:100%}.player-name-input:focus{border-color:#4c7cf0}.score-value{color:gold;font-size:16px;font-weight:700;text-align:right}.player-content{display:flex;flex-direction:column;gap:15px;position:relative;z-index:1}.section-title{color:#e1e5f2;font-size:12px;font-weight:700;margin:0 0 8px}.pattern-lines{display:flex;flex-direction:column;gap:4px}.pattern-line{display:flex;align-items:center;gap:8px}.line-number{color:#7f8fa6;font-size:12px;font-weight:700;width:20px;text-align:center}.pattern-line-tiles{display:flex;gap:2px;padding:2px;border-radius:4px;background-color:#2d3348;border:1px solid transparent;cursor:pointer;transition:all .2s ease}.pattern-line-tiles:hover{background-color:#363c54}.pattern-line-tiles.can-place{border-color:#4c7cf0;background-color:#363c54}.pattern-tile-slot{width:30px;height:30px;background-color:#4a4c5b;border-radius:3px;display:flex;align-items:center;justify-content:center;border:1px solid #6a6c7b}.wall-grid{display:grid;grid-template-rows:repeat(5,1fr);gap:2px;background-color:#2d3348;padding:5px;border-radius:4px}.wall-row{display:grid;grid-template-columns:repeat(5,1fr);gap:2px}.wall-slot{width:26px;height:26px;display:flex;align-items:center;justify-content:center;position:relative}@keyframes tilePulse{0%{transform:scale(.8);opacity:0;box-shadow:none;filter:brightness(1)}5%{transform:scale(1.1);opacity:1;box-shadow:0 0 15px #4c7cf0cc,0 0 30px #4c7cf099,inset 0 0 8px #ffffff4d;filter:brightness(1.4)}15%{transform:scale(1);box-shadow:none;filter:brightness(1)}30%{box-shadow:0 0 15px #4c7cf0cc,0 0 30px #4c7cf099,inset 0 0 8px #ffffff4d;filter:brightness(1.4)}45%{box-shadow:none;filter:brightness(1)}60%{box-shadow:0 0 15px #4c7cf0cc,0 0 30px #4c7cf099,inset 0 0 8px #ffffff4d;filter:brightness(1.4)}75%{box-shadow:none;filter:brightness(1)}to{transform:scale(1);box-shadow:none;filter:brightness(1)}}.wall-slot .tile.new-tile{animation:tilePulse 3s ease-out;position:relative;z-index:10;border-radius:3px;border:2px solid #4c7cf0!important}.wall-slot .tile.new-tile:before{content:"";position:absolute;top:-12px;left:-12px;right:-12px;bottom:-12px;background:radial-gradient(circle,rgba(76,124,240,.4) 0%,rgba(76,124,240,.2) 40%,transparent 70%);animation:tileAura 3s ease-out;pointer-events:none;z-index:-1;border-radius:50%}@keyframes tileAura{0%{transform:scale(.5);opacity:0}20%{transform:scale(1);opacity:1}80%{transform:scale(1.4);opacity:.3}to{transform:scale(1.6);opacity:0}}.empty-wall-slot{width:26px;height:26px;background-color:#6a6c7b;border:1px solid #ffffff;border-radius:3px;display:flex;align-items:center;justify-content:center}.wall-pattern-indicator{width:12px;height:12px;border-radius:2px}.floor-line{display:flex;gap:2px;padding:2px;background-color:#8b4513;border-radius:4px;border:1px solid transparent;cursor:pointer;transition:all .2s ease}.floor-line:hover{background-color:#a0521a}.floor-line.can-place{border-color:#ff6b6b}.floor-slot{width:30px;height:30px;background-color:#5a5c6b;border:1px solid #ffffff;border-radius:3px;display:flex;align-items:center;justify-content:center;position:relative}.penalty-text{color:#fff;font-size:10px;font-weight:700;position:absolute;top:2px;left:50%;transform:translate(-50%)}.first-player-marker{position:absolute;background-color:gold;color:#000;width:16px;height:16px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:10px;border:1px solid #000000;bottom:2px;right:2px}@media (max-width: 768px){.player-board{padding:8px;border-radius:8px}.player-header{padding:8px;margin-bottom:8px;border-radius:6px;min-height:45px;gap:10px}.player-info{flex:1;min-width:0}.player-label,.score-label{font-size:10px;letter-spacing:.3px;font-weight:700}.player-name-input{padding:4px 6px;font-size:10px;border-radius:4px;max-width:100px;width:100%}.score-value{font-size:18px;font-weight:700;text-shadow:0 1px 2px rgba(0,0,0,.5)}.player-content{gap:6px}.section-title{font-size:9px;margin:0 0 4px}.pattern-lines{gap:3px}.pattern-line{gap:4px}.line-number{font-size:9px;width:12px}.pattern-line-tiles{padding:1px;gap:1px;border-radius:2px}.pattern-tile-slot{width:16px;height:16px;border-radius:2px;border:1px solid #5a5c6b}.wall-grid{grid-template-rows:repeat(5,1fr);gap:1px;padding:3px;border-radius:2px}.wall-row{gap:1px}.wall-slot{width:16px;height:16px}.wall-slot .tile.new-tile{animation:tilePulse 3s ease-out;border:1px solid #4c7cf0!important}.wall-slot .tile.new-tile:before{top:-8px;left:-8px;right:-8px;bottom:-8px}.empty-wall-slot{width:16px;height:16px;border-radius:2px;border:1px solid #ffffff}.wall-pattern-indicator{width:8px;height:8px;border-radius:1px}.floor-line{gap:1px;padding:1px;border-radius:2px}.floor-slot{width:16px;height:16px;border-radius:2px;border:1px solid #ffffff}.penalty-text{font-size:7px;top:1px}.first-player-marker{width:12px;height:12px;font-size:8px;border:1px solid #000000;bottom:1px;right:1px}}@media (max-width: 480px){.player-header{padding:10px;margin-bottom:10px;min-height:50px}.player-label,.score-label{font-size:12px;font-weight:700}.score-value{font-size:22px;font-weight:700;text-shadow:0 2px 4px rgba(0,0,0,.7);color:gold}.player-name-input{font-size:12px;padding:6px 8px}.score-info{min-width:60px;text-align:right}}.dialog-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000}.dialog{background-color:#2c2e3b;border-radius:8px;padding:30px;max-width:500px;width:90%;text-align:center;box-shadow:0 10px 30px #00000080}.welcome-dialog{max-width:600px;padding:40px}.game-logo{margin-bottom:30px}.game-title{font-size:48px;font-weight:700;color:#fff;margin:0;letter-spacing:6px;text-shadow:2px 2px 4px rgba(0,0,0,.3)}.game-subtitle{font-size:18px;color:#4c7cf0;margin:10px 0 0;font-style:italic}.welcome-message{margin-bottom:30px;color:#e1e5f2}.welcome-message p{margin:10px 0;font-size:16px;line-height:1.6}.player-selection{margin-top:20px}.player-buttons{display:flex;gap:20px;justify-content:center;margin-top:20px}@media (max-width: 768px){.player-buttons{gap:10px;flex-wrap:nowrap}.player-count-button{padding:15px 20px;min-width:0;flex:1}.player-count{font-size:28px}.player-label{font-size:12px}}.player-count-button{display:flex;flex-direction:column;align-items:center;padding:20px 30px;background-color:#4c7cf0;border-radius:10px;transition:all .3s ease;border:2px solid transparent}.player-count-button:hover{background-color:#5a8bff;transform:translateY(-2px);box-shadow:0 6px 20px #4c7cf066;border-color:#fff}.player-count{font-size:36px;font-weight:700;color:#fff;line-height:1}.player-label{font-size:14px;color:#fff;margin-top:5px;opacity:.9}.dialog-title{color:#fff;font-size:24px;font-weight:700;margin:0 0 20px}.dialog-text{color:#e1e5f2;font-size:16px;margin:0 0 20px}.button-group{display:flex;gap:15px;justify-content:center;flex-wrap:wrap;position:relative;z-index:2}.game-end-dialog .button-group{animation:buttonsSlideUp 1s ease-out 2.2s both}.game-end-dialog .button-group .dialog-button{animation:buttonBounce .6s ease-out both;position:relative;overflow:hidden}.game-end-dialog .button-group .dialog-button:first-child{animation-delay:2.4s}.game-end-dialog .button-group .dialog-button:last-child{animation-delay:2.6s}.game-end-dialog .button-group .dialog-button:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;background:#ffffff4d;border-radius:50%;transform:translate(-50%,-50%);transition:all .6s ease}.game-end-dialog .button-group .dialog-button:hover:before{width:300px;height:300px}@keyframes buttonsSlideUp{0%{transform:translateY(30px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes buttonBounce{0%{transform:scale(.3) translateY(50px);opacity:0}50%{transform:scale(1.1) translateY(-10px)}70%{transform:scale(.9) translateY(5px)}to{transform:scale(1) translateY(0);opacity:1}}.dialog-button{background-color:#4c7cf0;color:#fff;border:none;border-radius:6px;padding:12px 24px;font-size:14px;font-weight:700;cursor:pointer;transition:all .2s ease;font-family:inherit;min-width:80px}.dialog-button:hover{background-color:#5a8bff;transform:translateY(-1px)}.dialog-button:active{background-color:#3d6ed1;transform:translateY(0)}.dialog-button.secondary{background-color:#6a6c7b}.dialog-button.secondary:hover{background-color:#7a7c8b}.dialog-button.floor-option{background-color:#8b4513}.dialog-button.floor-option:hover{background-color:#a0521a}.color-selection{display:flex;gap:15px;justify-content:center;margin:20px 0;flex-wrap:wrap}.color-option{cursor:pointer;padding:10px;border-radius:8px;transition:all .2s ease;border:2px solid transparent}.color-option{position:relative;cursor:pointer;-webkit-user-select:none;user-select:none}.color-option *{pointer-events:none}.color-option:hover{border-color:#fff;transform:scale(1.1)}.tile-count-label{position:absolute;bottom:-5px;right:-5px;background-color:gold;color:#000;font-size:12px;font-weight:700;padding:2px 6px;border-radius:10px;border:1px solid #000000;min-width:20px;text-align:center}.pattern-line-options{display:flex;flex-direction:column;gap:10px;margin:20px 0}.pattern-line-options .dialog-button{-webkit-user-select:none;user-select:none;cursor:pointer;pointer-events:auto}.pattern-line-options .dialog-button *{pointer-events:none}.game-end-dialog{max-width:600px;position:relative;overflow:hidden;animation:victoryEntrance 1s cubic-bezier(.68,-.55,.265,1.55)}.game-end-dialog:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,215,0,.3),transparent);animation:victoryShimmer 3s ease-in-out infinite;z-index:1}.game-end-dialog .dialog-title{animation:titleBounce 1.5s ease-out .5s both;position:relative;z-index:2}.winner-text{color:gold;font-size:22px;font-weight:700;margin:0 0 30px;text-shadow:0 0 10px rgba(255,215,0,.8),0 0 20px rgba(255,215,0,.6),0 0 30px rgba(255,215,0,.4);animation:winnerGlow 2s ease-in-out infinite alternate,winnerPulse 1s ease-out .8s both;position:relative;z-index:2}.winner-text:before{content:"🏆";position:absolute;left:-40px;top:50%;transform:translateY(-50%);font-size:24px;animation:trophyBounce 2s ease-in-out infinite}.winner-text:after{content:"🎉";position:absolute;right:-40px;top:50%;transform:translateY(-50%);font-size:24px;animation:celebrationSpin 3s linear infinite}@keyframes victoryEntrance{0%{transform:scale(.3) rotate(-10deg);opacity:0}50%{transform:scale(1.05) rotate(2deg)}to{transform:scale(1) rotate(0);opacity:1}}@keyframes victoryShimmer{0%{left:-100%}50%{left:100%}to{left:100%}}@keyframes titleBounce{0%{transform:translateY(-50px) scale(.8);opacity:0}60%{transform:translateY(10px) scale(1.1);opacity:1}80%{transform:translateY(-5px) scale(.95)}to{transform:translateY(0) scale(1)}}@keyframes winnerGlow{0%{text-shadow:0 0 10px rgba(255,215,0,.8),0 0 20px rgba(255,215,0,.6),0 0 30px rgba(255,215,0,.4)}to{text-shadow:0 0 20px rgba(255,215,0,1),0 0 30px rgba(255,215,0,.8),0 0 40px rgba(255,215,0,.6)}}@keyframes winnerPulse{0%{transform:scale(.8);opacity:0}50%{transform:scale(1.1)}to{transform:scale(1);opacity:1}}@keyframes trophyBounce{0%,to{transform:translateY(-50%) scale(1)}50%{transform:translateY(-70%) scale(1.2)}}@keyframes celebrationSpin{0%{transform:translateY(-50%) rotate(0) scale(1)}25%{transform:translateY(-60%) rotate(90deg) scale(1.1)}50%{transform:translateY(-50%) rotate(180deg) scale(1)}75%{transform:translateY(-40%) rotate(270deg) scale(1.1)}to{transform:translateY(-50%) rotate(360deg) scale(1)}}.scores-section{margin:20px 0;padding:20px;background:linear-gradient(135deg,#1a1d29,#242938);border-radius:12px;border:1px solid rgba(255,215,0,.2);animation:scoresSlideIn 1.2s ease-out 1s both;position:relative;z-index:2}.scores-section h3{color:#fff;margin:0 0 15px;font-size:18px;text-align:center;animation:fadeInUp .8s ease-out 1.2s both}.score-line{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid rgba(54,60,84,.5);animation:scoreLineSlide .6s ease-out both;transition:all .3s ease}.score-line:nth-child(2){animation-delay:1.4s}.score-line:nth-child(3){animation-delay:1.6s}.score-line:nth-child(4){animation-delay:1.8s}.score-line:nth-child(5){animation-delay:2s}.score-line:hover{background:#4c7cf01a;border-radius:8px;padding-left:8px;padding-right:8px}.score-line:last-child{border-bottom:none}.player-name{color:#e1e5f2;font-weight:700;font-size:16px}.player-score{color:gold;font-weight:700;font-size:18px;text-shadow:0 0 8px rgba(255,215,0,.6)}.game-end-dialog:after{content:"";position:fixed;top:0;left:0;width:100%;height:100%;background-image:radial-gradient(2px 2px at 20px 30px,#ffd700,transparent),radial-gradient(2px 2px at 40px 70px,#ff6b6b,transparent),radial-gradient(1px 1px at 90px 40px,#4c7cf0,transparent),radial-gradient(1px 1px at 130px 80px,#4ade80,transparent),radial-gradient(2px 2px at 160px 30px,#ffd700,transparent);background-repeat:repeat;background-size:200px 100px;animation:confetti 3s linear infinite;opacity:.8;pointer-events:none;z-index:0}@keyframes scoresSlideIn{0%{transform:translateY(50px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes fadeInUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes scoreLineSlide{0%{transform:translate(-30px);opacity:0}to{transform:translate(0);opacity:1}}@keyframes confetti{0%{transform:translateY(-100vh) rotate(0)}to{transform:translateY(100vh) rotate(360deg)}}.rules-dialog{max-width:700px;max-height:80vh;overflow-y:auto}.rules-content{text-align:left;margin:20px 0}.rules-section{margin-bottom:25px;padding-bottom:20px;border-bottom:1px solid #363c54}.rules-section:last-child{border-bottom:none}.rules-section h3{color:#4c7cf0;font-size:20px;margin-bottom:10px}.rules-section h4{color:gold;font-size:16px;margin-bottom:8px}.rules-section p{color:#e1e5f2;line-height:1.6;margin-bottom:10px}.rules-section ul{color:#e1e5f2;margin:0;padding-left:20px}.rules-section li{margin-bottom:6px;line-height:1.5}.rules-phases{display:flex;flex-direction:column;gap:15px}.phase{background-color:#1a1d29;padding:15px;border-radius:6px}.bonus-dialog{max-width:600px;max-height:80vh;overflow-y:auto}.bonus-content{margin:20px 0}.bonus-item{display:flex;align-items:center;gap:20px;margin-bottom:25px;padding:20px;background-color:#1a1d29;border-radius:8px}.bonus-visual{display:flex;gap:5px;padding:10px;background-color:#242938;border-radius:6px}.bonus-visual.vertical-column{flex-direction:column}.bonus-visual.color-set{flex-wrap:wrap;max-width:100px}.bonus-description{flex:1;text-align:left}.bonus-description h3{color:#fff;font-size:18px;margin:0 0 15px}.bonus-visual{margin:10px 0}.bonus-points{color:gold;font-size:24px;font-weight:700;margin:15px 0 8px}.bonus-info{color:#e1e5f2;font-size:14px;margin:0}.bonus-summary{margin-top:30px;padding:20px;background-color:#363c54;border-radius:8px;text-align:left}.bonus-summary h3{color:#4c7cf0;margin:0 0 10px}.bonus-summary p{color:#e1e5f2;line-height:1.6;margin:0}.menu-button{background-color:#4c7cf0;color:#fff;border:none;border-radius:8px;padding:15px 30px;font-size:18px;font-weight:700;cursor:pointer;transition:all .3s ease;font-family:inherit;margin:10px 0;width:100%;max-width:300px}.menu-button:hover{background-color:#5a8bff;transform:translateY(-2px);box-shadow:0 6px 20px #4c7cf066}.menu-button.cancel{background-color:#6a6c7b}.menu-button.cancel:hover{background-color:#7a7c8b}.form-group{margin:20px 0;text-align:left}.form-group label{display:block;color:#fff;font-size:16px;font-weight:700;margin-bottom:8px}.form-group input{width:100%;padding:12px;background-color:#1a1d29;border:2px solid #363c54;border-radius:6px;color:#fff;font-size:16px;font-family:inherit;transition:all .3s ease}.form-group input:focus{outline:none;border-color:#4c7cf0;background-color:#242938}.error-message{color:#ff6b6b;font-size:14px;margin:10px 0;padding:10px;background-color:#ff6b6b1a;border-radius:4px;border:1px solid rgba(255,107,107,.3)}.dialog-button.primary{background-color:#4ade80;font-size:16px}.dialog-button.primary:hover{background-color:#5aee90}.lobby-dialog{max-width:600px}.room-info{margin:20px 0;padding:20px;background-color:#1a1d29;border-radius:8px;border:2px solid #363c54}.room-info p{color:#e1e5f2;margin:0 0 10px;font-size:16px}.room-code-display{font-size:36px;font-weight:700;color:gold;letter-spacing:8px;text-shadow:0 0 10px rgba(255,215,0,.5);margin:10px 0;padding:15px;background-color:#242938;border-radius:8px;border:2px solid #4c7cf0}.players-list{margin:30px 0;text-align:left}.players-list h3{color:#fff;font-size:18px;margin-bottom:15px}.players-list ul{list-style:none;padding:0;margin:0}.player-item{display:flex;align-items:center;gap:10px;padding:12px;margin-bottom:8px;background-color:#1a1d29;border-radius:6px;border:1px solid #363c54;transition:all .3s ease}.player-item:hover{background-color:#242938;border-color:#4c7cf0}.player-number{color:#4c7cf0;font-weight:700;font-size:18px;min-width:30px}.player-name{flex:1;color:#e1e5f2;font-size:16px}.host-badge{background-color:gold;color:#1a1d29;padding:4px 12px;border-radius:12px;font-size:12px;font-weight:700;text-transform:uppercase}.disconnected-badge{background-color:#ff6b6b;color:#fff;padding:4px 12px;border-radius:12px;font-size:12px;font-weight:700;text-transform:uppercase}.instructions-dialog{max-width:800px;max-height:90vh;overflow-y:auto;padding:20px}.instructions-header{text-align:center;margin-bottom:20px;padding-bottom:15px;border-bottom:2px solid var(--primary-color)}.instructions-header h1{font-size:2.5em;margin-bottom:5px;color:#fff;text-transform:uppercase;letter-spacing:4px;text-shadow:2px 2px 4px rgba(0,0,0,.3)}.instructions-header .subtitle{color:var(--primary-color);font-style:italic;font-size:1.1em}.instructions-content{text-align:left;line-height:1.6}.instructions-section{margin-bottom:25px;padding-bottom:20px;border-bottom:1px solid #363c54}.instructions-section:last-child{border-bottom:none}.instructions-section h2{color:#fff;font-size:1.5em;margin-bottom:15px;border-bottom:2px solid var(--primary-color);padding-bottom:8px}.instructions-section h3{color:var(--primary-color);font-size:1.2em;margin:20px 0 10px}.instructions-section h4{color:gold;font-size:1.1em;margin:15px 0 8px}.instructions-section p{margin-bottom:12px;color:var(--text-primary)}.instructions-section ul,.instructions-section ol{margin:15px 0;padding-left:25px}.instructions-section li{margin-bottom:8px;color:var(--text-primary)}.instructions-section .intro-text{font-style:italic;background:linear-gradient(135deg,#2c2e3b,#1a1d29);padding:15px;border-radius:6px;margin-bottom:20px;border-left:3px solid var(--primary-color)}.instructions-section .player-count{display:flex;flex-direction:column;gap:8px;margin:15px 0}.instructions-section .player-option{background:var(--primary-color);color:#fff;padding:8px 15px;border-radius:15px;font-size:14px;font-weight:600;width:fit-content}.instructions-section .setup-list{counter-reset:setup-counter;list-style:none;padding-left:0}.instructions-section .setup-list li{counter-increment:setup-counter;padding-left:40px;position:relative;margin-bottom:15px}.instructions-section .setup-list li:before{content:counter(setup-counter);position:absolute;left:0;top:0;background:linear-gradient(135deg,var(--primary-color) 0%,#5a8bff 100%);color:#fff;width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:1em}.instructions-section .phase-container{background:#2c2e3b;padding:15px;border-radius:6px;margin:15px 0;border:1px solid #363c54}.instructions-section .phase-list{list-style:none;margin:0;padding:0}.instructions-section .phase-list li{padding:8px 0;border-bottom:1px solid #363c54;color:var(--text-primary)}.instructions-section .phase-list li:last-child{border-bottom:none}.instructions-section .important-note{background:#ffd7001a;border:1px solid #ffd700;border-radius:6px;padding:12px;margin:15px 0;border-left:3px solid #ffd700;color:var(--text-primary)}.instructions-section .warning{background:#ff6b6b1a;border:1px solid #ff6b6b;border-radius:6px;padding:12px;margin:15px 0;border-left:3px solid #ff6b6b;color:var(--text-primary)}.instructions-section .scoring-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin:15px 0}.instructions-section .scoring-item{background:#2c2e3b;padding:12px;border-radius:6px;text-align:center;border:1px solid #363c54}.instructions-section .scoring-value{font-size:1.5em;color:gold;font-weight:700;margin-top:8px}.instructions-section .example-box{background:#2c2e3b;border:2px solid var(--primary-color);border-radius:6px;padding:15px;margin:15px 0;color:var(--text-primary)}.instructions-section .example-title{font-weight:700;color:gold;margin-bottom:8px}.instructions-section .scoring-examples{margin:20px 0}.instructions-section .scoring-example{border:2px solid var(--primary-color);border-radius:6px;padding:15px;margin:15px 0;background:#2c2e3b;color:var(--text-primary)}.instructions-section .scoring-visual{display:flex;flex-direction:column;align-items:center;gap:10px;margin:10px 0}.instructions-section .points-display{font-size:1.5em;color:gold;font-weight:700}@media (max-width: 768px){.instructions-dialog{max-width:95%;padding:15px}.instructions-header h1{font-size:2em;letter-spacing:2px}.instructions-section h2{font-size:1.3em}.instructions-section h3{font-size:1.1em}.instructions-section .setup-list li{padding-left:35px}.instructions-section .setup-list li:before{width:24px;height:24px;font-size:.9em}.instructions-section .scoring-grid{grid-template-columns:1fr}}.game-screen{background:transparent;min-height:100vh;color:var(--text-primary);font-family:Inter,SF Pro Display,-apple-system,BlinkMacSystemFont,sans-serif;padding:20px;display:flex;flex-direction:column;position:relative;z-index:1;animation:fadeIn .5s ease-out}.header{background:linear-gradient(135deg,var(--bg-secondary) 0%,var(--bg-tertiary) 100%);border-radius:16px;margin-bottom:20px;padding:20px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;box-shadow:0 8px 32px #0006;border:1px solid rgba(255,255,255,.05);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:relative;overflow:hidden}.header:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(91,127,238,.5),transparent);animation:shimmer 3s infinite;pointer-events:none;z-index:-1}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.header-buttons-left{display:flex;gap:10px;justify-content:flex-start}.header-buttons-right{display:flex;gap:10px;justify-content:flex-end}.header-button{background:#5b7fee1a;color:var(--primary-light);border:1px solid rgba(91,127,238,.3);padding:10px 20px;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;align-items:center;gap:8px;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.header-button:hover{background:#5b7fee33;border-color:var(--primary);transform:translateY(-2px);box-shadow:0 4px 12px #5b7fee4d}.header-content{text-align:center}.title{font-family:Playfair Display,serif;font-size:32px;font-weight:900;margin:0 0 8px;letter-spacing:3px;background:linear-gradient(135deg,var(--primary) 0%,var(--primary-light) 50%,var(--accent) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;text-transform:uppercase;text-shadow:0 2px 4px rgba(0,0,0,.2)}.game-info{display:flex;flex-direction:column;gap:5px}.phase-label{color:var(--primary-light);font-size:18px;font-weight:700;text-transform:uppercase;letter-spacing:1px;display:inline-block;padding:4px 12px;background:#5b7fee1a;border-radius:20px;border:1px solid rgba(91,127,238,.2)}.current-player-label{color:var(--text-secondary);font-size:16px;font-weight:500;margin-top:4px}.game-content{display:flex;flex-direction:column;flex:1;gap:20px;max-width:1400px;margin:0 auto;width:100%}.players-row{display:flex;justify-content:center;gap:20px;flex-wrap:wrap;margin-bottom:30px}.players-row .player-board{max-width:320px;min-width:280px;flex:1;animation:fadeIn .5s ease-out;animation-fill-mode:both}.players-row .player-board:nth-child(1){animation-delay:.1s}.players-row .player-board:nth-child(2){animation-delay:.2s}.players-row .player-board:nth-child(3){animation-delay:.3s}.players-row .player-board:nth-child(4){animation-delay:.4s}.factories-row{display:flex;justify-content:center;width:100%;animation:slideIn .6s ease-out .2s both;overflow:visible}.factories-container-horizontal{display:flex;align-items:center;gap:40px;background:linear-gradient(135deg,var(--bg-secondary) 0%,var(--bg-tertiary) 100%);border-radius:20px;padding:30px;box-shadow:0 12px 40px #00000080;border:1px solid rgba(255,255,255,.05);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:relative}.factories-container-horizontal:after{content:"";position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;border-radius:20px;padding:1px;background:linear-gradient(135deg,#5b7fee66,#ffd93d33);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;z-index:-1}.factories-grid-horizontal{display:flex;flex-wrap:nowrap;gap:15px;justify-content:center;align-items:center}.center-area-horizontal{display:flex;justify-content:center;min-width:200px}@media (max-width: 1200px){.players-row .player-board{max-width:250px;min-width:220px}.factories-grid-horizontal{gap:10px}.factories-grid-horizontal .factory{min-width:90px;max-width:110px}}@media (max-width: 1024px){.game-content{gap:15px}.players-row{gap:10px}.players-row .player-board{max-width:300px;min-width:250px}.factories-container-horizontal{padding:15px}.factories-grid-horizontal{width:100%}}@media (max-width: 768px){.game-screen{padding:8px}.header{padding:10px;margin-bottom:8px}.title{font-size:20px;margin:0 0 3px;letter-spacing:1px}.phase-label{font-size:12px;padding:2px 8px}.current-player-label{font-size:12px}.header-button{padding:6px 12px;font-size:11px;gap:4px}.game-content{gap:8px}.players-row{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:8px}.players-row .player-board{max-width:none;min-width:auto;font-size:11px}.factories-container-horizontal{padding:8px;gap:8px;flex-direction:column;overflow:visible}.factories-grid-horizontal{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;width:100%;max-width:none;align-items:stretch}.factories-grid-horizontal .factory{min-width:auto;max-width:none;flex:none}.center-area-horizontal{min-width:auto;max-width:none;width:100%;display:flex;justify-content:center}.center{min-width:auto;width:100%;max-width:280px}}#root{margin:0;padding:0;min-height:100vh;background-color:#1a1d29}
