:root{--font-primary: "Outfit", sans-serif;--font-code: "Space Grotesk", monospace;--bg-dark: #0b110e;--bg-card: rgba(16, 24, 20, .92);--border-card: rgba(255, 255, 255, .08);--sage-accent: #3b7e59;--sage-bright: #68bd8a;--sage-light: #dcf2e5;--muted-text: #8fa89b;--p1-sage: #58b980;--p2-rose: #d9779b;--amber: #e6a147}*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}html,body{touch-action:manipulation;overflow-x:hidden;height:100%}body{font-family:var(--font-primary);background:var(--bg-dark);color:var(--sage-light);min-height:100vh;min-height:-webkit-fill-available;-webkit-user-select:none;user-select:none;background-image:radial-gradient(circle at 50% 20%,rgba(59,126,89,.06) 0%,transparent 60%)}.app-container{display:flex;flex-direction:column;height:100vh;height:100dvh;width:100vw}.navbar{display:flex;justify-content:space-between;align-items:center;padding:.6rem 1.5rem;background:#0b110ef2;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border-card);z-index:10}.brand{display:flex;align-items:center;gap:.5rem}.brand-icon{font-size:1.3rem}.brand-title{font-size:1.25rem;font-weight:700;letter-spacing:1.5px;color:var(--sage-light)}.brand-title .highlight{color:var(--sage-bright)}.badge{font-size:.6rem;font-weight:600;padding:.15rem .4rem;background:#58b9801f;border:1px solid rgba(88,185,128,.3);color:var(--sage-bright);border-radius:4px;letter-spacing:1px}.header-actions{display:flex;gap:.4rem}.icon-btn{background:#ffffff0a;border:1px solid var(--border-card);color:var(--sage-light);padding:.45rem .65rem;border-radius:8px;cursor:pointer;font-size:1rem;transition:all .2s ease}.icon-btn:hover,.icon-btn:active{background:#58b98029;border-color:#58b9804d}.game-wrapper{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;padding:.5rem}.hud-overlay{display:flex;justify-content:space-between;align-items:center;width:100%;max-width:900px;margin-bottom:.5rem}.score-card{background:var(--bg-card);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border-card);padding:.4rem 1.2rem;border-radius:10px;display:flex;flex-direction:column;align-items:center;min-width:110px}.p1-card{border-left:3px solid var(--p1-sage)}.p2-card{border-right:3px solid var(--p2-rose)}.player-label{font-size:.65rem;font-weight:700;letter-spacing:1px;color:var(--muted-text)}.score{font-size:1.8rem;font-weight:800;line-height:1;color:var(--sage-light)}.hud-center{text-align:center}.rally-counter{font-family:var(--font-code);font-size:.85rem;font-weight:600;color:var(--amber)}.match-info{font-size:.65rem;color:var(--muted-text);letter-spacing:1px;margin-top:1px}.net-badge{font-size:.6rem;background:#58b9801f;color:var(--sage-bright);padding:2px 5px;border-radius:4px;margin-top:3px;display:inline-block}.net-badge.hidden{display:none}.canvas-stage{width:100%;max-width:900px;position:relative;display:flex;flex-direction:column;align-items:center}.canvas-container{width:100%;aspect-ratio:9 / 5;position:relative;border-radius:14px;overflow:hidden;box-shadow:0 10px 30px #00000080;border:1px solid var(--border-card)}#pongCanvas{width:100%;height:100%;display:block}.touch-overlay{display:none;width:100%;justify-content:space-between;align-items:center;padding:.75rem .5rem .25rem;touch-action:none}@media (max-width: 900px),(pointer: coarse){.touch-overlay{display:flex}}.touch-group{display:flex;gap:.75rem}.touch-btn{width:68px;height:68px;border-radius:50%;background:#ffffff14;border:1px solid rgba(255,255,255,.16);color:var(--sage-light);font-size:1.5rem;font-weight:700;display:flex;align-items:center;justify-content:center;touch-action:none;-webkit-user-select:none;user-select:none;cursor:pointer;transition:background .15s ease,transform .1s ease;box-shadow:0 4px 12px #0000004d}.touch-btn:active,.touch-btn.active{background:#58b98059;border-color:var(--sage-bright);transform:scale(.94)}.p1-group .touch-btn{border-color:#58b9804d}.p2-group .touch-btn{border-color:#d9779b4d}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#060a08e0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;z-index:100;opacity:0;pointer-events:none;transition:opacity .25s ease;padding:1rem}.modal-backdrop.active{opacity:1;pointer-events:auto}.glass-card{background:var(--bg-card);border:1px solid var(--border-card);border-radius:16px;padding:2rem;box-shadow:0 16px 40px #0009;transform:translateY(12px);transition:transform .25s ease;max-height:90vh;max-height:90dvh;overflow-y:auto;width:100%}.menu-card{max-width:420px;text-align:center}.sm-card{max-width:380px}.victory-card{max-width:420px;text-align:center}.logo-hero{margin-bottom:1.5rem}.zen-icon{font-size:2.5rem;display:block;margin-bottom:.3rem;opacity:.9}.hero-title{font-size:2rem;font-weight:800;letter-spacing:2px;color:var(--sage-light)}.hero-subtitle{color:var(--muted-text);font-size:.8rem;margin-top:.2rem}.menu-actions{display:flex;flex-direction:column;gap:.75rem}.btn{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:.85rem 1.2rem;border-radius:12px;font-family:var(--font-primary);font-size:1rem;font-weight:700;cursor:pointer;transition:all .2s ease;border:none;touch-action:manipulation}.btn .subtext{font-size:.7rem;font-weight:400;opacity:.75;margin-top:2px}.btn-primary{background:#1b3829;border:1px solid #2d5a42;color:#e2f2e9}.btn-primary:hover,.btn-primary:active{background:#234835;border-color:#3b7e59}.btn-secondary{background:#ffffff0a;border:1px solid rgba(255,255,255,.08);color:var(--sage-light)}.btn-secondary:hover,.btn-secondary:active{background:#ffffff14;border-color:#ffffff24}.btn-ghost{background:transparent;color:var(--muted-text);font-size:.85rem}.btn-ghost:hover{color:var(--sage-light)}.btn-block{width:100%}.btn-sm{padding:.35rem .75rem;font-size:.78rem;background:#ffffff14;color:var(--sage-light);border:1px solid var(--border-card);border-radius:6px}.controls-guide{display:flex;justify-content:space-around;margin-top:1.5rem;padding-top:.85rem;border-top:1px solid var(--border-card);font-size:.75rem;color:var(--muted-text)}.controls-guide code{background:#ffffff14;padding:2px 5px;border-radius:4px;color:var(--sage-bright)}.modal-title{font-size:1.25rem;font-weight:700;margin-bottom:.85rem;text-align:center;color:var(--sage-light)}.modal-desc{font-size:.8rem;color:var(--muted-text);margin-bottom:.85rem}.lobby-tabs{display:flex;gap:.5rem;margin-bottom:1.2rem;background:#00000040;padding:4px;border-radius:8px}.tab-btn{flex:1;padding:.5rem;background:transparent;border:none;color:var(--muted-text);font-family:var(--font-primary);font-weight:600;border-radius:6px;cursor:pointer}.tab-btn.active{background:#ffffff14;color:var(--sage-light)}.lobby-panel{display:none}.lobby-panel.active{display:block}.room-code-display{display:flex;align-items:center;justify-content:space-between;background:#0000004d;border:1px solid var(--border-card);padding:.75rem 1rem;border-radius:8px;margin-bottom:.85rem}.room-code-display .code{font-family:var(--font-code);font-size:1.4rem;font-weight:700;letter-spacing:3px;color:var(--sage-bright)}.status-msg{font-size:.78rem;color:var(--amber);margin-bottom:.85rem;min-height:1.2rem}.input-group{display:flex;gap:.5rem;margin-bottom:.85rem}.input-group input{flex:1;background:#0000004d;border:1px solid var(--border-card);color:var(--sage-light);padding:.7rem .85rem;border-radius:8px;font-family:var(--font-code);font-size:.95rem;letter-spacing:2px;text-transform:uppercase}.input-group input:focus{outline:none;border-color:var(--sage-bright)}.setting-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.setting-row label{font-size:.85rem;font-weight:500}.select-input{background:#0000004d;border:1px solid var(--border-card);color:var(--sage-light);padding:.4rem .7rem;border-radius:6px;font-family:var(--font-primary);font-size:.85rem}.toggle-checkbox{width:18px;height:18px;accent-color:var(--sage-bright)}.option-grid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin-bottom:1.2rem}.btn-option{font-size:.82rem;padding:.65rem .5rem;background:#ffffff0a;border:1px solid var(--border-card);color:var(--sage-light);border-radius:8px}.btn-option.active{border-color:var(--sage-bright);background:#58b9801f}.modal-footer{margin-top:1.2rem;display:flex;flex-direction:column;gap:.5rem}.trophy{font-size:2.8rem;display:block;margin-bottom:.3rem;opacity:.9}.winner-name{font-size:1.8rem;font-weight:800;color:var(--sage-bright)}.victory-sub{font-size:.75rem;color:var(--muted-text);letter-spacing:1px;margin-bottom:1.2rem}.stats-grid{display:flex;justify-content:space-around;margin-bottom:1.5rem;background:#00000040;padding:.85rem;border-radius:10px}.stat-box{display:flex;flex-direction:column;align-items:center}.stat-val{font-family:var(--font-code);font-size:1.3rem;font-weight:700;color:var(--amber)}.stat-lbl{font-size:.6rem;color:var(--muted-text);margin-top:2px}.victory-actions{display:flex;flex-direction:column;gap:.65rem}@media (max-width: 600px){.navbar{padding:.5rem .85rem}.brand-title{font-size:1.1rem}.badge{display:none}.score-card{min-width:80px;padding:.3rem .8rem}.score{font-size:1.4rem}.touch-btn{width:60px;height:60px;font-size:1.3rem}.glass-card{padding:1.5rem 1.2rem}.hero-title{font-size:1.7rem}.controls-guide{font-size:.7rem}}
