.lobby{min-height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at center,#2a1f18,#0d0a08 70%);padding:2rem}.lobby-card{width:100%;max-width:420px;padding:2.5rem;background-color:#140f0ceb;background-size:100% 100%;background-repeat:no-repeat;border:1px solid rgba(245,230,211,.12);border-radius:16px;box-shadow:0 24px 64px #00000080}.lobby-card h1{margin:0 0 .4rem;font-size:2rem;color:#f5e6d3;text-align:center}.subtitle{margin:0 0 2rem;text-align:center;color:#f5e6d38c;font-size:.9rem}.online-hint{margin:-1.25rem 0 1.5rem;padding:.6rem .75rem;text-align:center;font-size:.82rem;color:#fa7;background:#ff78321f;border-radius:8px;border:1px solid rgba(255,120,50,.2)}.field{display:flex;flex-direction:column;gap:.4rem;margin-bottom:1.2rem}.field span{font-size:.8rem;color:#f5e6d3b3;text-transform:uppercase;letter-spacing:.06em}.field input{padding:.65rem .85rem;background:#00000059;border:1px solid rgba(245,230,211,.15);border-radius:8px;color:#f5e6d3;font-size:1rem}.field input:focus{outline:none;border-color:#f5e6d359}.lobby-actions{display:flex;flex-direction:column;gap:.65rem;margin-bottom:1.5rem}.btn-primary{padding:.75rem 1rem;background-color:transparent;background-size:100% 100%;background-repeat:no-repeat;border:none;border-radius:8px;color:#f5e6d3;font-size:.95rem;font-weight:600;cursor:pointer;transition:transform .15s,filter .15s;text-shadow:0 1px 2px rgba(0,0,0,.5)}.btn-primary:hover:not(:disabled){transform:translateY(-1px);filter:brightness(1.1)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.join-section{display:flex;gap:.5rem;align-items:flex-end;padding-top:1rem;border-top:1px solid rgba(245,230,211,.1)}.join-section .field{flex:1;margin-bottom:0}.btn-secondary{padding:.65rem 1rem;background-color:transparent;background-size:100% 100%;background-repeat:no-repeat;border:none;border-radius:8px;color:#f5e6d3;cursor:pointer;white-space:nowrap;text-shadow:0 1px 2px rgba(0,0,0,.5);transition:filter .15s}.btn-secondary:hover:not(:disabled){filter:brightness(1.15)}.error{color:#ff6b6b;font-size:.85rem;margin:0 0 1rem}.match-code{margin-top:1rem;text-align:center;color:#f5e6d3b3;font-size:.9rem}.match-code strong{color:gold;font-size:1.2rem;letter-spacing:.15em}.board-2d{display:grid;grid-template-columns:repeat(8,1fr);grid-template-rows:repeat(8,1fr);aspect-ratio:1;width:min(92vmin,720px);max-width:100%;margin:0 auto;position:relative;border:4px solid #3d2b1f;border-radius:4px;box-shadow:0 8px 32px #00000080;background:#2a1f18}.board-square{position:relative;padding:0;border:none;background:transparent;cursor:pointer;overflow:hidden}.board-square--disabled{cursor:default}.board-square__tile{width:100%;height:100%;display:block;object-fit:cover;pointer-events:none}.board-square__highlight{position:absolute;top:8%;right:8%;bottom:8%;left:8%;border-radius:4px;pointer-events:none}.piece-sprite{display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:2;transition:transform .2s ease,opacity .15s ease}.piece-sprite--draggable{pointer-events:auto;cursor:grab;touch-action:none}.piece-sprite--draggable:active{cursor:grabbing}.piece-sprite--dragging{opacity:.25}.board-2d--dragging{touch-action:none;-webkit-user-select:none;user-select:none}.piece-drag-ghost{position:fixed;transform:translate(-50%,-50%);pointer-events:none;z-index:10000;display:flex;align-items:center;justify-content:center;filter:drop-shadow(0 4px 12px rgba(0,0,0,.55))}.piece-drag-ghost img{width:100%;height:100%;object-fit:contain}.board-square__highlight--drop-target{top:4%;right:4%;bottom:4%;left:4%;box-shadow:0 0 0 3px #66ffaae6}.piece-sprite img{width:calc(100% * var(--piece-scale, .82));height:calc(100% * var(--piece-scale, .82));object-fit:contain;filter:drop-shadow(0 2px 4px rgba(0,0,0,.45))}.piece-sprite--draggable img{pointer-events:none}.piece-sprite--selected img{transform:scale(1.08);filter:drop-shadow(0 0 8px rgba(255,204,0,.6))}.bomb-marker{display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:1}.bomb-marker img{width:calc(100% * var(--bomb-scale, .55));height:calc(100% * var(--bomb-scale, .55));object-fit:contain;opacity:.85}.explosion-sprite{display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:5}.explosion-sprite__burst{width:calc(100% * var(--explosion-size, 1.05));height:calc(100% * var(--explosion-size, 1.05));border-radius:50%;animation:explosion-burst var(--explosion-duration, .5s) steps(var(--explosion-frames, 5)) forwards;background:radial-gradient(circle,#ffff88 0%,#ff8800 40%,#ff4400 70%,transparent 100%)}@keyframes explosion-burst{0%{transform:scale(.2);opacity:1}40%{transform:scale(.8);opacity:.95}to{transform:scale(1.2);opacity:0}}@media(max-width:640px){.board-2d{width:min(96vw,480px)}}.game-ui{position:absolute;top:0;left:0;right:0;z-index:10;pointer-events:none}.game-ui button{pointer-events:auto}.game-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;background:linear-gradient(180deg,rgba(0,0,0,.7) 0%,transparent 100%)}.game-header h1{margin:0;font-size:1.4rem;font-weight:600;color:#f5e6d3;letter-spacing:.04em}.status-panel{display:flex;justify-content:center;align-items:center;gap:2rem;padding:.5rem 1rem;margin:0 auto;max-width:720px}.player-card{display:flex;align-items:center;gap:.6rem;padding:.5rem 1rem;background-color:#0000008c;background-size:100% 100%;background-repeat:no-repeat;border-radius:8px;border:1px solid rgba(255,255,255,.1);color:#f5e6d3}.player-card strong{display:block;font-size:.95rem}.player-card small{color:#f5e6d399;text-transform:uppercase;font-size:.7rem;letter-spacing:.08em}.piece-dot{width:14px;height:14px;border-radius:50%;box-shadow:inset 0 -2px 4px #0006}.piece-dot.red{background:radial-gradient(circle at 35% 30%,#ff6b5b,#8b1a1a)}.piece-dot.black{background:radial-gradient(circle at 35% 30%,#555,#111)}.turn-indicator{min-width:120px;text-align:center;font-size:.9rem;color:#f5e6d3}.your-turn{color:#6fcf97;font-weight:600}.their-turn{color:#f5e6d3b3}.winner-text{color:gold;font-weight:700;font-size:1.1rem}.hint-banner{text-align:center;margin-top:.5rem;padding:.4rem 1rem;background:#44ff8826;color:#6fcf97;font-size:.85rem;pointer-events:none}.hazard-hint{background:#ff643226;color:#fa7}.btn-secondary{padding:.45rem 1rem;background-color:transparent;background-size:100% 100%;background-repeat:no-repeat;border:none;border-radius:6px;color:#f5e6d3;cursor:pointer;font-size:.85rem;text-shadow:0 1px 2px rgba(0,0,0,.5);transition:filter .2s}.btn-secondary:hover{filter:brightness(1.15)}.game-board{width:100vw;height:100vh;position:relative;overflow:hidden;display:flex;flex-direction:column;background:#1a1410}.board-2d-wrapper{flex:1;display:flex;align-items:center;justify-content:center;padding:8rem 1rem 1rem;min-height:0;position:relative}@media(max-width:640px){.board-2d-wrapper{padding-top:10rem}}*,*:before,*:after{box-sizing:border-box}html,body,#root{margin:0;padding:0;width:100%;height:100%;font-family:Segoe UI,system-ui,-apple-system,sans-serif;background:#0d0a08;color:#f5e6d3;-webkit-font-smoothing:antialiased}.editor-banner{position:fixed;top:0;left:0;right:280px;z-index:15;padding:.4rem .75rem;background:#8b4513eb;color:#f5e6d3;font-size:.85rem;text-align:center;pointer-events:none}.game-board--editor .game-board{height:100vh}
