/* Arcade Club shell; original game renderers are preserved. */
html,body{height:auto;min-height:100%;overflow-x:hidden;overflow-y:auto}body{display:block}main,body[data-view=game] main{position:relative;inset:auto;min-height:0}#topbar{flex-direction:row!important;align-items:center!important;min-height:0;flex-shrink:0}#menu{display:block}#stage{inset:auto}#viewHint{pointer-events:auto;border:0;background:none}.tile .t-name{font-size:24px}.tile .t-desc{font-size:12px}
:root{--bg:#0b111a;--fg:#eef1e8;--accent:#c9f59a;color-scheme:dark}*{box-sizing:border-box}body{background:var(--bg);color:var(--fg);font-family:'Segoe UI',Arial,sans-serif}button,input,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.4;cursor:not-allowed}[hidden]{display:none!important}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #c9f59a;outline-offset:5px}#topbar{height:84px;background:#0b111a;border-bottom:1px solid #25303a;padding:0 5vw;display:flex;align-items:center;justify-content:space-between;position:relative}.brand{color:#f1f4ea;font-size:20px;font-weight:800;letter-spacing:2px}.brand small{font-size:9px;letter-spacing:2px;color:#809084}.logo{background:#c9f59a;color:#152219;border-radius:10px}.header-right{display:flex;align-items:center;gap:22px}.status{font-size:11px;color:#92a19e;max-width:220px}#menu{max-width:1440px;margin:auto;padding:0 5vw 32px;height:auto;overflow:visible}body[data-view=menu]{overflow:auto}.club-hero{display:grid;grid-template-columns:1.1fr 1fr;gap:5vw;align-items:center;padding:72px 0 68px}.eyebrow{font-size:10px!important;font-weight:700;letter-spacing:2.4px;color:#a4b0a6;margin:0 0 20px}.club-hero h1,.room-page h1{font-size:clamp(38px,4.8vw,70px);font-weight:750;line-height:1.04;letter-spacing:-3px;margin:0 0 25px}h1 em{font-style:normal;color:#c9f59a}.intro{color:#98a6af;font-size:16px;line-height:1.8}.hero-actions{display:flex;gap:12px;margin:25px 0}.primary,.outline,.quiet{border-radius:8px;padding:13px 20px;min-height:44px;font-size:13px;font-weight:650;border:1px solid transparent}.primary{background:#c9f59a;color:#182b1e;box-shadow:none}.primary:hover{background:#dafbb8}.outline{background:transparent;border-color:#46524f;color:#e7eddf}.outline:hover,.quiet:hover{background:#25312e}.quiet{background:#18211f;color:#b5c3bb;border-color:#2a3632}.hero-note{font-size:9px;color:#819086;letter-spacing:1px;margin:24px 0 0}.cabinet{border:1px solid #465149;background:#28332e;border-radius:18px;box-shadow:16px 20px 0 #141e19;transform:rotate(-2deg);overflow:hidden;padding:18px}.cabinet-top{display:flex;justify-content:space-between;font-size:12px;letter-spacing:4px;color:#c9f59a;padding:4px 2px 18px;font-weight:800}.cabinet-top span+span{font-size:9px;color:#869581}.cabinet canvas{width:100%;height:auto;border-radius:7px;border:8px solid #121b18;display:block}.cabinet-bottom{height:84px;display:flex;align-items:center;gap:25px;padding:12px 8px}.cabinet-bottom>span{margin-left:auto;font-size:8px;letter-spacing:2px;line-height:2;color:#9dad99}.joystick{height:28px;width:48px;border-radius:50%;background:#131e19;position:relative;box-shadow:0 3px #101813}.joystick:before{content:'';position:absolute;width:7px;height:25px;left:20px;top:-13px;background:#687d70;transform:rotate(-15deg)}.joystick:after{content:'';position:absolute;width:26px;height:26px;border-radius:50%;left:6px;top:-25px;background:#c9f59a;box-shadow:inset -6px -5px #91b570}.cabinet-buttons{display:flex;gap:10px}.cabinet-buttons i{width:24px;height:24px;border-radius:50%;background:#e2a284;box-shadow:0 4px #765b4d}.cabinet-buttons i:nth-child(2){background:#9dbae0;box-shadow:0 4px #536b8b}.cabinet-buttons i:nth-child(3){background:#bc9fce;box-shadow:0 4px #786386}.library-heading{padding:25px 0;border-top:1px solid #27312f;align-items:end}.library-heading h2{font-size:28px;letter-spacing:-1px;color:#eaf0e4}.library-heading h2 span{font-size:11px;margin-left:16px;background:#233129;border:0;color:#abc49c;padding:6px 10px;border-radius:4px}.library-heading .eyebrow{margin-bottom:9px}.library-note{font-size:11px;color:#8d9d93}#grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;padding:0}.tile{padding:0;border:1px solid #303b39;border-radius:12px;overflow:hidden;background:#151f22;text-align:left;box-shadow:none;transition:transform .15s,border-color .15s;min-height:0;display:block}.tile:hover{transform:translateY(-4px);border-color:#91ac91;box-shadow:none}.tile-art{height:auto;aspect-ratio:16/9;background:#111925;position:relative;border:0}.tile-art img{width:100%;height:100%;object-fit:cover;display:block;opacity:.9}.tile-badge{position:absolute;top:12px;left:12px;bottom:auto;right:auto;background:#0a121ce8;color:#d7e5d6;font-size:8px;letter-spacing:1.2px;padding:5px 7px;border:1px solid #415049;border-radius:4px}.tile-info{padding:20px;display:flex;flex-direction:column;gap:9px}.tile-genre{font-size:8px;letter-spacing:1.2px;color:#99ad9c;line-height:1.5}.t-name{font-size:24px;line-height:1.1;font-weight:650;color:#eff3e8;letter-spacing:-.5px}.t-desc{font-size:12px;color:#9aaba9;line-height:1.6;min-height:38px}.tester-tile{background:#192922;border-style:dashed;display:flex;flex-direction:column;justify-content:center}.tester-symbol{font-size:72px;text-align:center;color:#a4c28d;height:145px;padding-top:34px}.legend{display:flex;justify-content:space-between;gap:20px;font-size:11px;color:#91a197;margin-top:26px;padding-top:24px;border-top:1px solid #283830}kbd{font-family:inherit;color:#b6c7b4;background:#25332a;border:0;border-radius:3px;padding:3px 5px}.room-page{max-width:1020px;margin:auto;padding:55px 30px}.room-page h1{font-size:48px}.room-box{padding:28px;border:1px solid #35453d;background:#151f22;border-radius:14px;margin:26px 0 18px}label{display:flex;flex-direction:column;gap:9px;font-size:12px;color:#a7b7ad}input,select{color:#e7eee4;background:#0b1318;border:1px solid #4a5c51;border-radius:7px;padding:12px 14px;min-height:44px}input{max-width:320px}#roomCode{text-transform:uppercase;letter-spacing:2px;max-width:215px}.join-actions{display:flex;align-items:end;gap:16px;margin:25px 0}.join-actions>span{align-self:center;color:#7f9585}.room-box p{font-size:14px;line-height:1.7;color:#9cacaa}.room-top{display:flex;align-items:center;gap:24px;margin-bottom:25px}.room-top small{display:block;font-size:9px;letter-spacing:2px;color:#9ab099}.room-top strong{font-size:24px;letter-spacing:3px}#networkStatus{margin-left:auto;font-size:11px;color:#a4c78d}#roster{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:15px 0 25px}.player-chip{padding:16px;background:#0d161d;border:1px solid #34433c;border-top:3px solid var(--player);border-radius:8px;overflow-wrap:anywhere}.player-chip strong{display:block;font-size:14px;color:var(--player)}.player-chip span{display:block;font-size:11px;color:#91a69b;margin-top:8px}.room-rules{margin-top:20px;padding:22px;background:#0e181b;border-left:2px solid #c9f59a;border-radius:6px}.room-rules strong{color:#d7e8c7}.room-rules p{margin-bottom:0}.control-line{font-size:12px!important;color:#b3c99f!important}.lobby-actions{display:flex;gap:15px;margin-top:25px}.ready{background:#273d2b;border-color:#b8db9c;color:#cfefb4}#roomError{color:#e9b093;font-size:14px;line-height:1.7}dialog{background:#172321;color:#eff4e9;border:1px solid #52705b;border-radius:16px;padding:38px;max-width:600px;width:90vw;box-shadow:0 25px 100px #0008}dialog::backdrop{background:#04090fcc;backdrop-filter:blur(7px)}dialog h2{font-size:38px;letter-spacing:-1px;margin:10px 0 18px}dialog p{font-size:16px;line-height:1.7;color:#becdbf}#instructionsControls{padding:18px;background:#0c1716;color:#c9f59a;font-size:14px;line-height:1.8;border-radius:8px}.dialog-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:27px}#stage{background:#080e18;position:relative;height:calc(100vh - 84px);display:flex;align-items:center;justify-content:center;padding:35px 20px 75px}#screen{width:min(100%,calc((100vh - 190px)*16/9));height:auto;max-height:calc(100vh - 190px);object-fit:contain;box-shadow:0 0 0 1px #283444;border-radius:6px}#gameHelp{position:absolute;bottom:47px;left:15px;right:15px;text-align:center;font-size:11px;color:#8b9bac;line-height:1.5}#viewHint{bottom:8px;left:20px;right:20px;display:flex;justify-content:space-between}#viewHint button{padding:7px 10px;background:#1a2832;border:1px solid #344450;color:#c9d5de;border-radius:5px;font-size:10px}#stage:fullscreen{height:100vh;padding-top:15px}#stage:fullscreen #screen{max-height:calc(100vh - 90px);width:min(100%,calc((100vh - 90px)*16/9))}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);padding:14px 22px;max-width:90vw;color:#eaf1e4;background:#243629;border:1px solid #668267;border-radius:8px;opacity:0;pointer-events:none;z-index:100}#toast.show{opacity:1}body[data-view=game] #topbar{display:flex}#tester{overflow:auto;max-height:calc(100vh - 84px)}
@media(min-width:1600px){#grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:900px){.status{display:none}.club-hero{gap:25px;padding:45px 0}.club-hero h1{font-size:45px}.cabinet{padding:12px}.hero-actions{flex-direction:column;align-items:start}.hero-note{line-height:2}#grid{grid-template-columns:repeat(2,minmax(0,1fr))}.join-actions{flex-wrap:wrap}.room-top{flex-wrap:wrap}#networkStatus{margin-left:0}#roster{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){#topbar{height:70px}.brand{font-size:15px}.brand small{display:none}.header-right .quiet{padding:8px 10px;font-size:10px}.club-hero{grid-template-columns:1fr;padding:35px 0 45px}.club-hero h1{font-size:46px}.cabinet{max-width:400px;transform:none}.hero-actions{flex-direction:row}.hero-note{font-size:8px}.library-note{display:none}.library-heading h2{font-size:23px}.library-heading h2 span{margin-left:8px}#grid{gap:12px}.tile-info{padding:13px}.t-name{font-size:19px}.t-desc{font-size:11px}.tile-genre{font-size:7px}.tile-badge{font-size:7px;left:6px;top:6px}.legend{flex-direction:column;line-height:2}.room-page{padding:30px 18px}.room-page h1{font-size:38px}.room-box{padding:19px}.room-top strong{font-size:20px}.join-actions{align-items:start;flex-direction:column}.join-actions>span{align-self:start}.room-top{gap:15px}dialog{padding:25px}.dialog-actions{flex-direction:column}.library-heading{margin-bottom:0}#stage{height:calc(100vh - 70px);padding:10px 5px 80px}#gameHelp{font-size:9px}#screen{width:100%}.tester-symbol{height:110px;padding-top:15px}}
