.home-container{min-height:100vh;justify-content:center;padding:2rem 1.5rem;max-width:600px;margin:0 auto;gap:2.5rem}.hero-section,.home-container{display:flex;flex-direction:column;align-items:center}.hero-section{text-align:center;gap:.5rem}.hero-section h1{font-size:clamp(3rem,8vw,4.5rem);margin:0;font-weight:900;letter-spacing:-.05em;line-height:1.1}.hero-section p{font-size:clamp(1rem,3vw,1.2rem);color:#94a3b8;font-weight:400;max-width:80%}.main-card{width:100%;border-radius:24px;padding:clamp(1.5rem,5vw,2.5rem);display:flex;flex-direction:column;gap:1.5rem;position:relative}.main-card:before{content:"";position:absolute;top:-2px;left:-2px;right:-2px;bottom:-2px;background:linear-gradient(135deg,rgba(99,102,241,.2),rgba(168,85,247,.1),transparent 60%);border-radius:26px;z-index:-1;pointer-events:none}.input-wrapper{display:flex;flex-direction:column;gap:.5rem}.input-wrapper label{font-size:.875rem;font-weight:600;color:#94a3b8;text-transform:uppercase;letter-spacing:.05em;padding-left:.5rem}.modern-input{background:rgba(0,0,0,.2);border:1px solid var(--glass-border);padding:1rem 1.25rem;border-radius:16px;color:#fff;font-size:1rem;outline:none;transition:all .3s cubic-bezier(.4,0,.2,1);width:100%}.modern-input:focus{border-color:var(--primary);background:rgba(0,0,0,.4);box-shadow:0 0 0 3px rgba(99,102,241,.1)}.modern-input::-moz-placeholder{color:#475569}.modern-input::placeholder{color:#475569}.btn-primary,.btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:1rem 1.5rem;border-radius:16px;font-weight:600;font-size:1rem;cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1);border:none;text-align:center}.btn-primary{background:linear-gradient(135deg,var(--primary),#818cf8);color:#fff;box-shadow:0 4px 12px rgba(99,102,241,.25)}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 20px rgba(99,102,241,.4);filter:brightness(1.1)}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-secondary{background:var(--secondary);color:#fff;border:1px solid var(--glass-border)}.btn-secondary:hover:not(:disabled){background:var(--secondary-hover);border-color:hsla(0,0%,100%,.2);transform:translateY(-2px)}.btn-secondary:active:not(:disabled){transform:translateY(0)}.btn-group{display:flex;gap:1rem}.btn-group>button{flex:1}.divider{display:flex;align-items:center;text-align:center;color:#475569;font-size:.875rem;font-weight:500;margin:.5rem 0}.divider:after,.divider:before{content:"";flex:1;border-bottom:1px solid var(--glass-border)}.divider:not(:empty):before{margin-right:1em}.divider:not(:empty):after{margin-left:1em}.join-row{display:flex;gap:.75rem}.room-list-header{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:1rem;padding-top:1rem}.room-list-header h3{font-size:1.25rem;font-weight:700;margin:0;color:#e2e8f0}.room-list{display:flex;flex-direction:column;gap:.75rem;max-height:250px;overflow-y:auto;padding-right:4px}.room-item{background:rgba(0,0,0,.2);border:1px solid var(--glass-border);border-radius:16px;padding:1rem 1.25rem;display:flex;justify-content:space-between;align-items:center;transition:all .2s ease}.room-item:hover{background:hsla(0,0%,100%,.03);border-color:hsla(0,0%,100%,.1);transform:translateX(4px)}.room-info{display:flex;flex-direction:column;gap:.25rem}.room-id{font-weight:700;font-size:1.1rem;color:#fff;gap:.5rem}.room-id,.room-players{display:flex;align-items:center}.room-players{font-size:.875rem;color:#94a3b8;gap:.25rem}@media (max-width:640px){.btn-group,.join-row{flex-direction:column}.join-row button{width:100%}.home-container{padding-top:1rem;justify-content:flex-start}}.game-container{padding:clamp(.5rem,2vw,1.5rem);box-sizing:border-box;gap:1rem;max-width:1400px;margin:0 auto;animation:fadeScaleIn .4s ease-out}.game-container,.lobby-container{display:flex;flex-direction:column;min-height:100vh}.lobby-container{align-items:center;justify-content:center;padding:1rem}.game-layout{display:grid;grid-template-columns:280px 1fr 280px;gap:clamp(1rem,2vw,2rem);flex:1}.sidebar{gap:1.5rem;height:100%}.board-area,.sidebar{display:flex;flex-direction:column}.board-area{align-items:center;gap:clamp(1rem,3vw,2rem);width:100%;max-width:100%}.board-wrapper{width:100%;display:flex;justify-content:center;position:relative}.board{display:grid;grid-template-columns:repeat(15,1fr);grid-template-rows:repeat(15,1fr);gap:2px;background:var(--background-end);padding:4px;border-radius:8px;box-shadow:0 20px 40px rgba(0,0,0,.6);border:1px solid var(--glass-border);width:100%;max-width:650px;aspect-ratio:1/1}.cell{background:#1e293b;border-radius:2px;display:flex;align-items:center;justify-content:center;font-weight:700;cursor:pointer;transition:all .2s ease;position:relative;overflow:hidden}.cell:hover{filter:brightness(1.2);transform:scale(.95)}.cell-label{font-size:clamp(.4rem,1.5vw,.7rem);opacity:.6;text-transform:uppercase;font-weight:800;pointer-events:none}.cell.center{background:#ea580c}.cell.tws{background:#e11d48;color:#fff}.cell.dws{background:#d97706;color:#fff}.cell.tls{background:#2563eb;color:#fff}.cell.dls{background:#16a34a;color:#fff}.tile{width:100%;height:100%;background:linear-gradient(135deg,#fef08a,#eab308);color:#451a03;border-radius:3px;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;box-shadow:inset 0 -3px 0 rgba(0,0,0,.15),0 2px 5px rgba(0,0,0,.3);animation:fadeScaleIn .2s cubic-bezier(.34,1.56,.64,1)}.tile-value{font-size:clamp(.9rem,3vw,1.4rem);font-weight:900;line-height:1}.tile-score{font-size:clamp(.4rem,1.2vw,.6rem);position:absolute;bottom:2px;right:4px;font-weight:700}.rack-container{width:100%;max-width:650px;background:var(--glass-bg);backdrop-filter:blur(12px);border:1px solid var(--glass-border);border-radius:16px;padding:1rem}.rack{display:flex;justify-content:center;gap:clamp(4px,1vw,12px);width:100%}.rack-tile{width:clamp(35px,8vw,55px);height:clamp(35px,8vw,55px);cursor:pointer;transition:transform .2s cubic-bezier(.34,1.56,.64,1);border-radius:6px}.rack-tile:hover{transform:translateY(-4px) scale(1.05)}.rack-tile.active{transform:translateY(-8px) scale(1.1);box-shadow:0 10px 20px rgba(0,0,0,.3),0 0 15px rgba(99,102,241,.5);border:2px solid var(--primary)}.rack.swap-mode .rack-tile.active{border-color:#f59e0b;box-shadow:0 10px 20px rgba(0,0,0,.3),0 0 15px rgba(245,158,11,.4);transform:translateY(-4px) scale(1.05)}.rack.swap-mode .rack-tile:not(.active){opacity:.6;filter:grayscale(.4)}.player-card{padding:1.25rem;border-radius:16px;background:var(--glass-bg);border:1px solid var(--glass-border);transition:all .4s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.player-card.active{border-color:var(--primary);background:rgba(99,102,241,.1);box-shadow:var(--shadow-glow);transform:translateX(4px)}.player-card.active:before{content:"";position:absolute;top:0;left:0;bottom:0;width:4px;background:var(--primary)}.player-card.low-time.active{border-color:#ef4444;animation:pulseRed 1s infinite alternate}.player-card.low-time.active .text-indigo-400{color:#f87171!important}@keyframes pulseRed{0%{box-shadow:0 0 10px rgba(239,68,68,.2)}to{box-shadow:0 0 25px rgba(239,68,68,.5)}}.turn-badge{font-size:.65rem;background:var(--primary);color:#fff;padding:.2rem .5rem;border-radius:999px;text-transform:uppercase;letter-spacing:.05em;font-weight:700;animation:pulseGlow 2s infinite}@media (max-width:1024px){.game-layout{grid-template-columns:200px 1fr 200px;gap:1rem}}@media (max-width:768px){.game-container{padding-bottom:100px}.game-layout{display:flex;flex-direction:column;gap:1.5rem}.sidebar{gap:1rem}.players-mobile-row{display:flex;gap:1rem;overflow-x:auto;padding-bottom:.5rem}.player-card{flex:1;min-width:140px;padding:1rem;transform:none!important}.player-card.active:before{width:100%;height:3px;bottom:0;top:auto}.rack-container{position:fixed;bottom:0;left:0;width:100%;max-width:100%;border-radius:20px 20px 0 0;padding:.75rem .5rem 1.5rem;z-index:50;background:rgba(15,23,42,.9);border:none;border-top:1px solid var(--glass-border)}.action-buttons{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}}