:root{--bg: #0f1a14;--panel: #2a1d12;--panel-edge: #6b4a2a;--plank: #3a2817;--ink: #f4e6c8;--muted: #bfa883;--accent: #e9a23b;--accent-ink: #2a1606;--danger: #e5484d}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:var(--bg);color:var(--ink);font-family:Inter,system-ui,sans-serif;-webkit-user-select:none;user-select:none}canvas#game{position:fixed;top:0;right:0;bottom:0;left:0;width:100vw;height:100vh;display:block;cursor:none}.screen{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;padding:16px;background:radial-gradient(ellipse at center,#0a140e59,#050a07cc);z-index:10}.hidden{display:none!important}.panel{width:min(420px,100%);max-height:calc(100vh - 32px);overflow-y:auto;padding:28px 28px 22px;border-radius:14px;background:repeating-linear-gradient(0deg,#0000 0,#0000 38px,#00000040 38px,#00000040 40px),linear-gradient(180deg,#4a321c,#2e1f11);border:3px solid var(--panel-edge);box-shadow:0 0 0 3px #1a110a,0 20px 60px #0009,inset 0 1px #ffffff14}.panel.wide{width:min(520px,100%)}h1{margin:0;font-family:Cinzel,serif;font-weight:800;font-size:44px;letter-spacing:2px;white-space:nowrap;text-align:center;color:#ffd98a;text-shadow:0 3px 0 #6b3f12,0 6px 18px rgba(0,0,0,.6)}.subtitle{text-align:center;font-family:Cinzel,serif;color:var(--muted);letter-spacing:6px;text-transform:uppercase;font-size:13px;margin-bottom:22px}.field{display:block;margin-bottom:14px}.field span{display:block;font-size:12px;color:var(--muted);margin-bottom:6px;text-transform:uppercase;letter-spacing:1px}input{width:100%;padding:11px 12px;font:inherit;font-size:16px;color:var(--ink);background:#1c130b;border:2px solid #5a3d22;border-radius:8px;outline:none}input:focus{border-color:var(--accent)}.btn{display:block;width:100%;padding:12px 16px;font:inherit;font-weight:800;font-size:15px;letter-spacing:.5px;color:var(--ink);background:linear-gradient(180deg,#6b4a2a,#4a3119);border:2px solid #8a6238;border-radius:8px;cursor:pointer;box-shadow:0 3px #1a110a;transition:transform .06s,filter .1s}.btn:hover{filter:brightness(1.12)}.btn:active{transform:translateY(2px);box-shadow:0 1px #1a110a}.btn:disabled{opacity:.45;cursor:default;filter:none}.btn.primary{background:linear-gradient(180deg,#f2b552,#c97f1f);color:var(--accent-ink);border-color:#ffd28a}.btn.small{width:auto;padding:8px 14px;font-size:13px}.btn.ghost{background:transparent;border-color:transparent;box-shadow:none;color:var(--muted);margin:10px auto 0}.divider{display:flex;align-items:center;gap:10px;margin:18px 0 12px;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:1px}.divider:before,.divider:after{content:"";flex:1;height:1px;background:#5a3d22}.join-row{display:flex;gap:8px}.join-row input{text-transform:uppercase;letter-spacing:6px;font-weight:800;text-align:center}.join-row .btn{width:110px}.status{min-height:20px;margin-top:12px;font-size:13px;color:#ffcf7a;text-align:center}.status.error{color:#ff8a8a}.howto{margin-top:14px;padding-top:14px;border-top:1px solid #5a3d22;font-size:13px;color:var(--muted);line-height:1.5}.howto b{color:var(--ink)}.howto ol{margin:6px 0 8px;padding-left:20px}.lobby-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.label{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:1px}.code{font-family:Cinzel,serif;font-size:44px;font-weight:800;letter-spacing:10px;color:#ffd98a;text-shadow:0 3px 0 #6b3f12}.player-list{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.player-row{display:flex;align-items:center;gap:12px;padding:10px 12px;background:#00000047;border:1px solid #5a3d22;border-radius:8px}.swatch{width:22px;height:22px;border-radius:5px;border:2px solid rgba(0,0,0,.5);box-shadow:inset 0 1px #ffffff4d}.player-row .name{flex:1;font-weight:600}.tag{font-size:11px;padding:2px 7px;border-radius:99px;background:#5a3d22;color:var(--ink);text-transform:uppercase;letter-spacing:1px}.kick{background:none;border:none;color:#ff8a8a;cursor:pointer;font-size:18px;line-height:1;padding:0 4px}.empty-slot{opacity:.35;font-style:italic}.row{display:flex;align-items:center;gap:10px}.row .btn.primary{width:auto;padding:12px 22px}.grow{flex:1}#overlay{position:fixed;left:50%;bottom:8%;transform:translate(-50%);z-index:5}#overlay .btn{width:auto;padding:14px 30px;font-size:17px}
