:root{--bg-color: #0f0f13;--bg-accent: #1a1a24;--primary: #646cff;--primary-glow: rgba(100, 108, 255, .5);--secondary: #ff64d8;--secondary-glow: rgba(255, 100, 216, .5);--text-main: #ffffff;--text-muted: #8f90a6;--board-bg: #1e1e2d;--cell-bg: #2b2b40;--cell-border: #3f3f5b;--p1-color: #4cc9f0;--p1-glow: rgba(76, 201, 240, .6);--p2-color: #f72585;--p2-glow: rgba(247, 37, 133, .6);--font-main: "Outfit", sans-serif}*{box-sizing:border-box;margin:0;padding:0;-webkit-user-select:none;user-select:none}body{font-family:var(--font-main);background-color:var(--bg-color);color:var(--text-main);min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;overflow-y:auto;background-image:radial-gradient(circle at 50% 0%,#1a1a2e 0%,var(--bg-color) 70%)}#app{width:100%;max-width:1200px;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:2rem 1rem;gap:2rem}header{text-align:center;margin-bottom:2rem;position:relative;display:flex;align-items:center;justify-content:center;flex-direction:column;width:100%;gap:.5rem}.header-controls{display:flex;gap:1rem;align-items:center;justify-content:center;margin-bottom:.5rem}.rules-link{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);color:var(--text-muted);text-decoration:none;cursor:pointer;font-family:var(--font-main);font-size:.9rem;letter-spacing:.05em;padding:.6rem 1.4rem;border-radius:30px;transition:all .3s ease;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);text-transform:uppercase;font-weight:600;display:inline-flex;align-items:center;gap:.5rem}.primary-pill{background:var(--primary-glow);border-color:var(--primary);color:#fff;box-shadow:0 0 10px #646cff4d}.primary-pill:hover{background:var(--primary);box-shadow:0 0 20px var(--primary-glow);transform:translateY(-2px)}.ghost-pill{background:transparent;border-color:transparent;color:var(--text-muted);opacity:.7}.ghost-pill:hover{background:#ff00001a;color:#ff4d4d;border-color:#f003;opacity:1}.icon-btn{border:1px solid rgba(255,255,255,.1);color:var(--text-muted);font-family:var(--font-main);font-weight:600;font-size:1.4rem;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.icon-btn:hover{background:#fff3;color:#fff;transform:scale(1.05);border-color:#fff6}.modal-content{background:#1e1e2d;padding:2.5rem;border-radius:24px;border:1px solid rgba(255,255,255,.1);max-width:600px;width:90%;max-height:85vh;overflow-y:auto;text-align:left;box-shadow:0 20px 50px #00000080}.modal-content h2{font-size:2.5rem;margin-bottom:1.5rem;color:var(--text-main);text-align:center;border-bottom:1px solid rgba(255,255,255,.1)}.input-group{margin-bottom:1.5rem;text-align:left}.input-group label{display:block;font-size:.9rem;margin-bottom:.5rem;color:var(--text-muted)}.input-group input{width:100%;background:#0000004d;border:1px solid rgba(255,255,255,.2);padding:1rem;border-radius:12px;color:#fff;font-family:var(--font-main);font-size:1.1rem;outline:none;transition:.2s}.input-group input:focus{border-color:var(--accent-p1);box-shadow:0 0 15px #ff3cac4d}.win-actions{display:flex;flex-direction:column;gap:1rem;align-items:center}.modal h1{font-size:3rem;margin-bottom:2rem;text-align:center}.modal-content ul{margin-bottom:2rem;padding-left:1.5rem}.modal-content li{margin-bottom:.8rem;font-size:1.1rem;line-height:1.4}.rules-section{margin-bottom:1.5rem}.rules-section h3{color:var(--primary);font-size:1.2rem;margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.05em}.rules-section p{color:var(--text-muted);line-height:1.6;font-size:1rem}.rules-section strong{color:var(--text-main)}.rule-icon{font-size:1.2em;vertical-align:middle;margin:0 4px;display:inline-block;filter:drop-shadow(0 0 5px currentColor)}h1{font-size:3rem;font-weight:700;letter-spacing:-.05em;background:linear-gradient(135deg,var(--text-main) 0%,var(--text-muted) 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;text-shadow:0 10px 30px rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;gap:.5rem}.icon-title{font-size:.8em;display:inline-block;filter:drop-shadow(0 0 10px currentColor);font-family:"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji",sans-serif;margin:0}.icon-title.p1{color:var(--p1-color)}.icon-title.p2{color:var(--p2-color)}.status-bar{margin-top:2rem;padding:.5rem 1.5rem;background:var(--p1-color);color:#000;font-weight:800;border-radius:4px;display:inline-block;font-size:1.1rem;transition:all .3s ease;transform:skew(-10deg);box-shadow:5px 5px #00000080;border:none;-webkit-backdrop-filter:none;backdrop-filter:none}.status-bar span{display:block;transform:skew(10deg)}.game-container{display:flex;gap:3rem;align-items:center;justify-content:center;width:100%}.player-panel{flex:1;max-width:250px;background:#1e1e2d80;border-radius:20px;padding:1.5rem;border:1px solid rgba(255,255,255,.05);transition:all .3s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.player-panel.active{background:#28283ccc;border-color:#fff3;transform:translateY(-5px);box-shadow:0 10px 40px #0000004d}.player-panel.p1.active{box-shadow:0 10px 40px var(--p1-glow);border-color:var(--p1-color)}.player-panel.p2.active{box-shadow:0 10px 40px var(--p2-glow);border-color:var(--p2-color)}.player-name{font-size:1.2rem;font-weight:600;margin-bottom:1rem;display:flex;align-items:center;gap:.5rem}.p1 .player-name{color:var(--p1-color)}.p2 .player-name{color:var(--p2-color)}.inventory{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}.piece-group{background:#0003;padding:.5rem;border-radius:12px;display:flex;justify-content:center;align-items:center;gap:1.5rem;cursor:pointer;transition:.2s;height:80px}.piece-group:hover{background:#ffffff0d;transform:translateY(-2px)}.piece-group.selected{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);box-shadow:0 0 15px #ffffff0d}.pool-icon{font-size:3rem;line-height:1;transition:all .3s;filter:drop-shadow(0 4px 6px rgba(0,0,0,.5))}.p1 .pool-icon{color:var(--p1-color);text-shadow:0 0 15px var(--p1-glow)}.p2 .pool-icon{color:var(--p2-color);text-shadow:0 0 15px var(--p2-glow)}.count-badge{background:transparent;color:#fff;min-width:auto;height:auto;padding:0;border-radius:0;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.8rem;border:none}.board-wrapper{position:relative;padding:20px;background:#ffffff05;border-radius:30px}.board{display:grid;grid-template-columns:repeat(6,1fr);grid-template-rows:repeat(6,1fr);gap:8px;width:60vh;height:60vh;max-width:600px;max-height:600px;position:relative}.cell{background-color:var(--cell-bg);border-radius:12px;position:relative;cursor:pointer;transition:background-color .2s;box-shadow:inset 0 2px 4px #00000080}.cell:hover{background-color:#3e3e5e}.cell.valid-move:after{content:"";position:absolute;width:12px;height:12px;background-color:#fff3;border-radius:50%;top:50%;left:50%;transform:translate(-50%,-50%)}.piece{width:100%;height:100%;position:absolute;top:0;left:0;display:flex;align-items:center;justify-content:center;pointer-events:none;transition:all .4s cubic-bezier(.175,.885,.32,1.275);animation:popIn .4s forwards}@keyframes popIn{0%{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}.piece-icon{font-size:3rem;line-height:1;transition:all .3s;filter:drop-shadow(0 4px 6px rgba(0,0,0,.5))}.piece.p1 .piece-icon{color:var(--p1-color);text-shadow:0 0 15px var(--p1-glow)}.piece.p2 .piece-icon{color:var(--p2-color);text-shadow:0 0 15px var(--p2-glow)}.piece.stallion .piece-icon{font-size:3.8rem;filter:drop-shadow(0 0 10px currentColor)}.overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#000c;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:100;opacity:0;pointer-events:none;transition:opacity .3s}.overlay.visible{opacity:1;pointer-events:all}.overlay h2{font-size:4rem;margin-bottom:2rem;color:#fff}.close-icon-btn{position:absolute;top:1rem;right:1.5rem;background:transparent;border:none;color:#ffffffb3;font-size:2.5rem;line-height:1;cursor:pointer;transition:all .2s;padding:0;z-index:10}.close-icon-btn:hover{color:#fff;transform:scale(1.1)}.primary-pill{background:var(--primary);color:#fff;border:none;border-radius:50px;padding:1rem 2rem;font-size:1.2rem;font-weight:700;cursor:pointer;transition:all .2s;box-shadow:0 4px 15px var(--primary-glow);text-align:center;display:flex;align-items:center;justify-content:center}.btn-restart{padding:1rem 3rem;font-size:1.5rem;background:var(--primary);color:#fff;border:none;border-radius:50px;cursor:pointer;transition:transform .2s,box-shadow .2s;font-family:var(--font-main);font-weight:700;box-shadow:0 10px 30px var(--primary-glow);display:flex;align-items:center;justify-content:center}#close-rules{margin:2rem auto 0;display:flex}.btn-back{padding:1rem 2rem;font-size:1.2rem;background:#ffffff1a;color:#fff;border:1px solid rgba(255,255,255,.2);border-radius:50px;cursor:pointer;transition:all .2s;font-family:var(--font-main);font-weight:600;display:flex;align-items:center;justify-content:center}.btn-back:hover{background:#fff3}.menu-modal{min-width:400px;min-height:500px;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative}.menu-view{width:100%;display:flex;flex-direction:column;align-items:center;animation:fadeIn .3s ease-out}.menu-view.hidden{display:none}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.menu-actions{display:flex;flex-direction:column;gap:1rem;width:100%;margin-top:1rem}.menu-actions.row{flex-direction:row;justify-content:center;gap:1rem}.menu-actions.row>*{flex:1;margin:0}.btn-menu{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1.5rem;border-radius:20px;border:1px solid rgba(255,255,255,.1);background:#ffffff0d;color:#fff;cursor:pointer;transition:all .2s ease;font-family:var(--font-main);text-align:center;width:100%}.btn-menu:hover{transform:translateY(-3px);background:#ffffff1a;box-shadow:0 10px 20px #0000004d}.btn-menu .icon{font-size:2.5rem;margin-bottom:.5rem}.btn-menu .subtext{font-size:.9rem;color:var(--text-muted);margin-top:.2rem;font-weight:400}.btn-menu.primary{border-color:var(--primary);background:linear-gradient(135deg,#646cff1a,#646cff0d)}.btn-menu.primary:hover{box-shadow:0 0 20px var(--primary-glow);border-color:lighten(var(--primary),10%)}.btn-menu.secondary{border-color:var(--secondary);background:linear-gradient(135deg,#ff64d81a,#ff64d80d)}.btn-menu.secondary:hover{box-shadow:0 0 20px var(--secondary-glow)}.btn-menu.tertiary{background:transparent;border:1px dashed rgba(255,255,255,.1);padding:1rem;flex-direction:row;gap:1rem}.btn-menu.tertiary .icon{font-size:1.5rem;margin-bottom:0}.rule-img{width:100%;max-width:300px;border-radius:8px;margin:1rem 0;border:1px solid rgba(255,255,255,.2);display:block;margin-left:auto;margin-right:auto}.btn-menu.tertiary:hover{border-color:var(--text-muted);background:#ffffff05}.btn-secondary.small{padding:.5rem 1.5rem;font-size:1rem}.online-indicator{color:#0fc;text-shadow:0 0 10px rgba(0,255,204,.5)}#rules-modal{z-index:200}.btn-back{background:transparent;border:1px solid rgba(255,255,255,.2);color:var(--text-muted);padding:.8rem 2rem;border-radius:30px;cursor:pointer;font-family:var(--font-main);font-weight:600;transition:all .2s;text-transform:uppercase;font-size:.9rem;letter-spacing:1px}.btn-back:hover{border-color:#fff;color:#fff;background:#ffffff0d;transform:translate(-3px)}.hidden{display:none!important}@media(max-width:800px){.game-container{flex-direction:column;gap:1rem}.board{width:90vw;height:90vw}.player-panels-mobile{display:flex;width:100%;justify-content:space-between;padding:0 1rem}.player-panel{padding:.5rem;max-width:none;flex:1;margin:0 .25rem}.piece-group{padding:.4rem}.menu-modal{min-width:90vw;width:90vw;padding:1.5rem;min-height:auto}.menu-modal h1{font-size:2.2rem;margin-bottom:1rem}#join-room-interface{width:100%;display:flex;flex-direction:column;align-items:center}#join-room-interface .input-group{width:100%}#room-code-input{width:100%;font-size:1.2rem;letter-spacing:1px!important}#btn-confirm-join{width:100%;margin-top:1rem;padding:1rem}.overlay h2{font-size:2.5rem;line-height:1.2;margin-bottom:1.5rem}.online-indicator{font-size:2rem}.menu-actions{gap:.8rem}.btn-menu{padding:1.2rem}.btn-menu .icon{font-size:2rem}.menu-actions.row{flex-direction:column-reverse;gap:1rem;align-items:center;justify-content:center}.btn-back{width:100%;text-align:center;padding:1rem;margin-top:0}#start-local-btn{width:100%}}.turn-indicator{background:#0006;border-radius:12px;padding:.8rem;margin:.8rem 0;text-align:center;border:1px solid rgba(255,255,255,.1);animation:fadeIn .3s ease-out}.turn-indicator .status-text{display:block;font-size:.9rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;margin-bottom:.2rem}.turn-indicator .timer-text{display:block;font-size:1.8rem;font-weight:700;color:#fff;font-variant-numeric:tabular-nums;letter-spacing:1px}.turn-indicator.low-time .timer-text{color:#ff4d4d;animation:pulse 1s infinite}.player-panel.p1 .turn-indicator{border-color:#4cc9f04d;background:linear-gradient(135deg,#4cc9f01a,#0006)}.player-panel.p1 .turn-indicator .status-text{color:var(--p1-color)}.player-panel.p2 .turn-indicator{border-color:#f725854d;background:linear-gradient(135deg,#f725851a,#0006)}.player-panel.p2 .turn-indicator .status-text{color:var(--p2-color)}@keyframes pulse{0%{opacity:1}50%{opacity:.5}to{opacity:1}}.mini-board{display:grid;grid-template-columns:repeat(6,1fr);grid-template-rows:repeat(6,1fr);gap:2px;width:240px;height:240px;background:#ffffff0d;border-radius:12px;padding:8px;margin:1rem auto;position:relative;border:1px solid rgba(255,255,255,.1)}.mini-cell{background:#ffffff1a;border-radius:2px;position:relative;width:100%;height:100%}.mini-piece{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:1.2rem;line-height:1;filter:drop-shadow(0 2px 4px rgba(0,0,0,.5))}.mini-piece.p1{color:var(--p1-color);text-shadow:0 0 10px var(--p1-glow)}.mini-piece.p2{color:var(--p2-color);text-shadow:0 0 10px var(--p2-glow)}.mini-piece.stallion{font-size:1.5rem}.punt-demo .p1-slam{animation:slamDown 3s infinite}.punt-demo .p2-push-up{animation:pushUp 3s infinite}.punt-demo .p2-push-down{animation:pushDown 3s infinite}.punt-demo .p2-push-left{animation:pushLeft 3s infinite}.punt-demo .p2-push-right{animation:pushRight 3s infinite}@keyframes slamDown{0%,20%{opacity:0;transform:translate(-50%,-150%) scale(1.5)}30%,70%{opacity:1;transform:translate(-50%,-50%) scale(1)}80%,to{opacity:0;transform:translate(-50%,-50%) scale(.8)}}@keyframes pushUp{0%,30%{transform:translate(-50%,-50%);opacity:1}40%,70%{transform:translate(-50%,calc(-50% - 40px));opacity:.5}71%,to{opacity:0}}@keyframes pushDown{0%,30%{transform:translate(-50%,-50%);opacity:1}40%,70%{transform:translate(-50%,calc(-50% + 40px));opacity:.5}71%,to{opacity:0}}@keyframes pushLeft{0%,30%{transform:translate(-50%,-50%);opacity:1}40%,70%{transform:translate(calc(-50% - 40px),-50%);opacity:.5}71%,to{opacity:0}}@keyframes pushRight{0%,30%{transform:translate(-50%,-50%);opacity:1}40%,70%{transform:translate(calc(-50% + 40px),-50%);opacity:.5}71%,to{opacity:0}}.block-demo .p1-attack{animation:attackLine 3s infinite}.block-demo .p2-wall{animation:wallShake 3s infinite}@keyframes attackLine{0%,20%{opacity:0;transform:translate(-50%,-150%)}30%,60%{opacity:1;transform:translate(-50%,-50%)}70%,to{opacity:0}}@keyframes wallShake{0%,30%{transform:translate(-50%,-50%)}35%,45%,55%{transform:translate(calc(-50% - 2px),-50%)}40%,50%,60%{transform:translate(calc(-50% + 2px),-50%)}65%,to{transform:translate(-50%,-50%)}}.promo-demo .pony-morph{animation:morphToStallion 4s infinite}@keyframes morphToStallion{0%,30%{transform:translate(-50%,-50%) scale(1);opacity:1}40%{transform:translate(-50%,-50%) scale(1.2);opacity:1;filter:brightness(2)}50%{transform:translate(-50%,-50%) scale(.5);opacity:0}}.win-demo .winner{animation:winPulse 2s infinite ease-in-out}@keyframes winPulse{0%,to{transform:translate(-50%,-50%) scale(1);filter:drop-shadow(0 0 5px var(--p1-glow))}50%{transform:translate(-50%,-50%) scale(1.2);filter:drop-shadow(0 0 20px var(--p1-color))}}
