.library-status[data-v-2dc81151]{white-space:nowrap;text-overflow:ellipsis;width:100%;max-width:640px;margin-inline:auto;overflow:hidden}.layout[data-v-5151bb3d]{grid-template-columns:160px minmax(0,1fr) 160px;align-items:start;gap:1.5rem;width:100%;display:grid}.layout-main[data-v-5151bb3d]{grid-column:2;width:100%;max-width:1000px;margin:0 auto}.ad-side[data-v-5151bb3d]{width:160px;position:sticky;top:1rem}.ad-left[data-v-5151bb3d]{grid-area:1/1}.ad-right[data-v-5151bb3d]{grid-area:1/3}.ad-slot[data-v-5151bb3d]{opacity:.5;border:1px dashed;justify-content:center;align-items:center;width:160px;min-height:600px;display:flex}@media (width<=1023px){.layout[data-v-5151bb3d]{grid-template-columns:minmax(0,1fr)}.ad-side[data-v-5151bb3d]{display:none}.layout-main[data-v-5151bb3d]{grid-column:1}}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--black:#000;--panel:#080b09;--lead:#171c19;--border:#26332b;--green:#00ff41;--green-dim:#03a062;--muted:#77847b;--text:#d5e2d8;--danger:#ff4545;--glow:0 0 12px #00ff4159}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--black);min-height:100vh;color:var(--text);justify-content:center;align-items:center;padding:2rem 1rem;font-family:Share Tech Mono,Fira Code,Courier New,monospace;line-height:1.5;display:flex}body:before{z-index:10;content:"";pointer-events:none;background:repeating-linear-gradient(#0000 0,#0000001f 1px,#0000 2px 4px);position:fixed;inset:0}button,select{font:inherit}button{border:1px solid var(--green-dim);color:var(--green);letter-spacing:.04em;cursor:pointer;background:#030704;border-radius:0;padding:.7rem 1rem;font-weight:700;transition:background-color .14s,color .14s,box-shadow .14s}button:before{content:"> ";color:var(--green-dim)}button:hover,button:focus-visible{box-shadow:var(--glow);background:#00ff411a;outline:none}button:disabled{border-color:var(--border);box-shadow:none;color:var(--muted);cursor:not-allowed;background:0 0}button:active{background:#00ff412e}button:focus-visible,select:focus-visible{outline:1px dashed var(--green);outline-offset:3px}[hidden]{display:none!important}#app{width:100%;max-width:1400px}.game-library{padding:2rem 0}.library-header{text-align:center;margin-bottom:2rem}.library-header h1,.game-container h1,.pong-header h1{color:var(--green);text-shadow:var(--glow);text-transform:uppercase;margin-bottom:.5rem;font-size:clamp(2rem,5vw,2.75rem)}.library-header>p:last-child,.game-card-copy>p:last-of-type{color:var(--muted)}.eyebrow{color:var(--green-dim);letter-spacing:.16em;text-transform:uppercase;white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:.75rem;font-weight:700;overflow:hidden}.game-list{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:1rem;display:grid}.game-card{border:1px solid var(--border);background:var(--panel);flex-wrap:wrap;align-items:center;gap:1.25rem;min-height:220px;padding:1.5rem;display:flex;position:relative;box-shadow:inset 0 0 24px #00ff4106}.game-card:before,.game-card:after{background:var(--green-dim);content:"";width:12px;height:1px;position:absolute}.game-card:before{top:-1px;left:12px}.game-card:after{bottom:-1px;right:12px}.game-card-art{border:1px solid var(--border);filter:saturate(.7);height:88px;color:var(--green);letter-spacing:.08em;white-space:pre;background:#050906;flex:0 0 88px;place-items:center;font-size:.72rem;font-weight:700;display:grid;overflow:hidden}.game-card-eyebrow{text-align:center;flex:0 0 100%}.game-card-copy{flex:1;min-width:0}.pong-card .game-card-art{background:#050906;border-color:#244333}.game-card-title{text-align:center;color:var(--green);text-shadow:0 0 8px #00ff4138;text-transform:uppercase;flex:0 0 100%;margin:.45rem 0;font-size:1.6rem}.game-card-copy>p:last-of-type{margin-bottom:1rem;line-height:1.45}.game-button,.pong-controls button,#startButton{color:var(--green)}.game-panel{text-align:center;position:relative}.back-button{border-color:var(--border);color:var(--muted)}.back-button:before{color:var(--green-dim)}.game-panel>.back-button{margin-bottom:1rem;display:block}.game-container{text-align:center}.score-board{color:var(--muted);text-transform:uppercase;justify-content:center;gap:.75rem;margin-bottom:1rem;font-size:.9rem;display:flex}.score-board span{border:1px solid var(--border);background:var(--panel);padding:.5rem 1rem}.score-board span span{color:var(--green);text-shadow:var(--glow);border:0;padding:0}#gameCanvas,#pongCanvas{border:1px solid var(--green-dim);background:var(--black);box-shadow:var(--glow);border-radius:0}#gameCanvas.level-up{border-color:#fff;box-shadow:0 0 24px #00ff41cc}.board{line-height:0;display:inline-block;position:relative}#gameCanvas.paused{border-color:var(--green);background:var(--black);box-shadow:0 0 18px #00ff4180}.controls{color:var(--muted);margin-top:1rem;font-size:.9rem}#pauseButton{margin-top:.5rem}#pauseOverlay{z-index:5;pointer-events:none;border:1px solid var(--green-dim);color:var(--green);text-shadow:var(--glow);background:#000000e0;justify-content:center;align-items:center;line-height:1.5;display:flex;position:absolute;inset:0}#pauseOverlay h2{color:var(--green);margin-bottom:.5rem;font-size:3rem}#pauseOverlay p{color:var(--text);font-size:1.2rem}.start-screen{flex-wrap:wrap;justify-content:center;align-items:center;gap:.75rem;margin-top:1.5rem;display:flex}.start-screen label{color:var(--muted);text-transform:uppercase}.start-screen select{border:1px solid var(--border);background:var(--panel);color:var(--green);border-radius:0;padding:.65rem}.game-over{z-index:100;border:1px solid var(--green-dim);background:#000000f0;flex-direction:column;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.game-over h2{color:var(--danger);text-shadow:0 0 12px #ff454559;text-transform:uppercase;margin-bottom:1rem;font-size:3rem}.game-over p{color:var(--text);margin-bottom:2rem;font-size:1.2rem}.game-over-back{margin-top:.75rem}.pong-container{width:min(100%,800px);margin:0 auto}.pong-header h1{margin:.35rem 0 1rem}.pong-scoreboard{color:var(--muted);letter-spacing:.1em;justify-content:center;gap:4rem;margin-bottom:.8rem;font-size:.9rem;font-weight:700;display:flex}.pong-scoreboard strong{color:var(--green);letter-spacing:0;text-shadow:var(--glow);margin-top:.2rem;font-size:2rem;display:block}#pongCanvas{width:100%;height:auto;display:block}.pong-status{min-height:1.4em;color:var(--green-dim);margin-top:.8rem}.pong-controls{margin-top:1rem}.pong-controls p{color:var(--muted);margin-top:.8rem}kbd{border:1px solid var(--border);background:var(--panel);min-width:1.5rem;color:var(--green);font:inherit;padding:.15rem .3rem;display:inline-block}@media (width<=520px){body{padding:1rem .75rem}.game-card{align-items:flex-start;gap:.9rem;padding:1rem}.game-card-art{flex-basis:64px;height:64px;font-size:.55rem}.score-board{flex-wrap:wrap;gap:.45rem;font-size:.8rem}.score-board span{padding:.45rem .55rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}.flash-container{width:min(100%,900px);margin:0 auto}.flash-stage{border:1px solid var(--green-dim);background:var(--black);width:100%;box-shadow:var(--glow);margin:0 auto;position:relative}.flash-player{position:absolute;inset:0}.flash-overlay{z-index:2;color:var(--green);text-shadow:var(--glow);pointer-events:none;background:#000000d9;flex-direction:column;justify-content:center;align-items:center;gap:1rem;padding:1rem;display:flex;position:absolute;inset:0}.flash-error{color:var(--danger);pointer-events:auto}.library-status{color:var(--green-dim);text-align:center;margin-top:1.5rem}.library-status-error{color:var(--danger)}.library-status button{margin-left:.75rem}.admin{text-align:left;width:min(100%,720px);margin:0 auto}.admin .back-button{margin-bottom:1rem}.admin .pong-header{text-align:center}.admin-card{border:1px solid var(--border);background:var(--panel);margin-top:1rem;padding:1.25rem}.admin-card h2{color:var(--green);text-transform:uppercase;margin-bottom:1rem;font-size:1.1rem}.admin-card label{color:var(--muted);text-transform:uppercase;flex-direction:column;gap:.3rem;font-size:.85rem;display:flex}.admin-card input{border:1px solid var(--border);background:var(--black);color:var(--green);font:inherit;text-transform:none;border-radius:0;padding:.6rem}.admin-card input:focus{outline:1px solid var(--green);box-shadow:var(--glow)}.admin-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:1rem;display:grid}.admin-wide{grid-column:1/-1}.admin-source{flex-direction:row;gap:1.5rem;display:flex}.admin-source label{cursor:pointer;flex-direction:row;align-items:center;gap:.5rem}.admin-source input{width:auto;accent-color:var(--green,#00ff41)}.admin-login{flex-direction:column;gap:.75rem;max-width:360px;margin-left:auto;margin-right:auto;display:flex}.admin-toolbar{color:var(--green);justify-content:space-between;align-items:center;display:flex}.admin-hint{color:var(--muted);font-size:.85rem}.admin-error{color:var(--danger);margin-bottom:.75rem}.admin-ok{color:var(--green);margin-bottom:.75rem}.admin-empty{color:var(--muted)}.admin-list{list-style:none}.admin-list li{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:1rem;padding:.6rem 0;display:flex}.admin-list small{color:var(--muted);margin-left:.5rem}button.danger{border-color:var(--danger);color:var(--danger)}button.danger:before{color:var(--danger)}.admin-footer{text-align:center;margin-top:2rem}.admin-footer a{color:var(--muted);font-size:.8rem;text-decoration:none}.admin-footer a:hover{color:var(--green)}
