@font-face{font-family:Arcade;src:url('fonts/PressStart2P-Regular.ttf') format('truetype');font-display:swap}
:root{color-scheme:dark;--ink:#080d17;--paper:#e7eef7;--muted:#9bacc2;--gold:#ffe079;--cyan:#76e4d6}
*{box-sizing:border-box;margin:0;padding:0}
body{background:radial-gradient(ellipse at 80% 0,#26375080,transparent 45%),linear-gradient(#ffffff03 1px,transparent 1px),linear-gradient(90deg,#ffffff03 1px,transparent 1px),var(--ink);background-size:auto,48px 48px,48px 48px,auto;color:var(--paper);font-family:Arial,sans-serif;min-height:100dvh}
a{color:inherit;text-decoration:none}button{font:inherit}a:focus-visible,button:focus-visible{outline:3px solid var(--cyan);outline-offset:5px}
.arcade-nav{max-width:1240px;margin:auto;padding:25px 24px;display:flex;align-items:center;justify-content:space-between;gap:20px;font:10px/1.6 Arcade,monospace;border-bottom:1px solid #304056}.nav-home{color:var(--muted);font:12px Arial}.nav-signal{color:var(--cyan);font:11px monospace;letter-spacing:2px}.nav-signal::before{content:'';display:inline-block;width:6px;height:6px;margin-right:9px;background:var(--cyan);border-radius:50%;box-shadow:0 0 12px #76e4d655}
header{max-width:1240px;margin:auto;padding:42px 24px 26px;display:flex;justify-content:space-between;align-items:end;gap:20px}.logo{font:clamp(24px,4vw,43px)/1.4 Arcade,monospace;letter-spacing:-2px}.logo span{color:var(--gold)}.tagline{color:var(--muted);font-size:13px;font-weight:400;margin-top:12px}.header-code{font:11px/1.8 monospace;text-align:right;color:var(--muted);letter-spacing:2px}
.library-heading{max-width:1240px;margin:auto;padding:0 24px;display:flex;align-items:center;justify-content:space-between;gap:16px}.library-heading h2{font:12px Arcade,monospace}.library-filters{display:flex;gap:8px}.library-filters button{border:1px solid #354860;background:#101b2d;color:#adbed0;padding:10px 14px;font:11px monospace;cursor:pointer;border-radius:3px}.library-filters button[aria-pressed=true]{background:#c9e8df;color:#101e23;border-color:#c9e8df}
.games-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;max-width:1240px;margin:23px auto 45px;padding:0 24px;counter-reset:cabinet}.game-card{--color:#ffe079;display:flex;flex-direction:column;min-width:0;background:linear-gradient(155deg,#1b293b,#0e1725);border:1px solid #334358;border-radius:5px;overflow:hidden;position:relative;counter-increment:cabinet;transition:transform .2s,border-color .2s;animation:card-arrive .55s backwards}.game-card:nth-child(2n){animation-delay:.06s}.game-card:nth-child(3n){animation-delay:.12s}.game-card[hidden]{display:none}.game-card::before{content:'CARTRIDGE / 0' counter(cabinet);position:absolute;top:12px;left:13px;z-index:2;color:#dce6f3aa;font:9px monospace;letter-spacing:1px}.game-card:hover,.game-card:focus-visible{border-color:var(--color);transform:translateY(-5px)}.card-banner{height:170px;display:flex;align-items:center;justify-content:center;background:var(--bg);position:relative;overflow:hidden;border-bottom:1px solid #ffffff10}.card-banner::before{content:'';position:absolute;inset:0;background:linear-gradient(transparent 98%,#ffffff0a 98%),linear-gradient(90deg,transparent 98%,#ffffff0a 98%);background-size:25px 25px}.card-banner::after{content:'';position:absolute;bottom:0;left:0;right:0;height:45px;background:linear-gradient(transparent,#192638)}.card-banner img{max-width:92%;height:135px;object-fit:contain;position:relative;transition:transform .3s}.game-card:hover img{transform:scale(1.06) rotate(-2deg)}.card-body{padding:20px 16px;display:flex;flex-direction:column;flex:1}.card-tag{color:var(--color);font:9px/1.5 monospace;letter-spacing:2px;text-transform:uppercase}.card-title{font-size:18px;letter-spacing:-.4px;margin:12px 0 9px}.card-desc{font-size:12px;color:#9caec3;line-height:1.7;margin-bottom:22px}.card-footer{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-top:auto}.play-btn{font:9px Arcade,monospace;color:var(--color);padding:10px 0}.play-btn::after{content:' ↗';font:16px Arial}.badge{font:9px monospace;border:1px solid #52627670;border-radius:3px;color:#c4d0df;padding:5px}.arcade-footer{max-width:1192px;margin:0 auto;padding:24px 0 40px;border-top:1px solid #334358;display:flex;justify-content:space-between;gap:20px;color:var(--muted);font:10px/1.8 monospace;letter-spacing:1px}.game-card[aria-disabled=true]{opacity:.55;cursor:default}.game-card[aria-disabled=true]:hover{transform:none}
@keyframes card-arrive{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:1000px){.games-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.arcade-footer{margin:0 24px}}
@media(max-width:700px){.arcade-nav{padding:18px}.nav-signal{font-size:9px;letter-spacing:0}header{padding:27px 18px 24px}.header-code{display:none}.logo{font-size:26px}.tagline{font-size:11px;line-height:1.7}.library-heading{padding:0 18px;align-items:start;flex-direction:column}.library-heading h2{font-size:11px}.library-filters{width:100%}.library-filters button{flex:1;min-height:42px}.games-grid{padding:0 18px;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px}.card-banner{height:132px}.card-banner img{height:103px}.card-body{padding:15px 11px}.card-title{font-size:16px}.card-desc{font-size:11px;line-height:1.6}.card-tag{font-size:8px;letter-spacing:1px}.card-footer{align-items:start;flex-direction:column}.game-card::before{font-size:8px;left:9px}.arcade-footer{margin:0 18px;flex-direction:column;gap:8px}.nav-home{font-size:11px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
html.is-background *,html.is-background *::after{animation-play-state:paused!important}

/* A shared arcade cabinet treatment for every game. */
.arcade-marquee { display:block; position:relative; padding:18px 30px; margin:26px auto 32px; width:calc(100% - 48px); max-width:1192px; overflow:hidden; }
.marquee-top,.marquee-bottom,.marquee-center { display:flex; align-items:center; justify-content:space-between; gap:20px; }
.marquee-top { font:10px/1.7 Arcade,monospace; }
.free-play { display:inline-block; padding:7px 12px; transform:rotate(-3deg); }
.marquee-lives { font:24px monospace; letter-spacing:7px; }
.marquee-center { padding:18px 0 25px; }
.marquee-center .logo { font-size:clamp(30px,5.4vw,66px); letter-spacing:-3px; }
.marquee-center .tagline { margin-top:18px; font-weight:700; font-size:15px; }
.marquee-bottom { font:11px/1.7 monospace; letter-spacing:2px; padding-top:10px; }
.arcade-stick { width:145px; height:112px; position:relative; transform:rotate(8deg); flex-shrink:0; }
.arcade-stick::before { content:''; position:absolute; bottom:5px; left:0; width:142px; height:50px; border:3px solid; border-radius:50% 50% 15px 15px; transform:skew(-8deg); }
.arcade-stick i { position:absolute; left:40px; top:22px; width:12px; height:62px; border:3px solid; transform:rotate(-15deg); transform-origin:bottom; animation:stick-wiggle 3s ease-in-out infinite; }
.arcade-stick i::before { content:''; position:absolute; top:-19px; left:-15px; width:35px; height:35px; border:3px solid; border-radius:50%; }
.arcade-stick b,.arcade-stick span,.arcade-stick em { position:absolute; width:18px; height:13px; border:2px solid; border-radius:50%; bottom:28px; right:16px; }
.arcade-stick span { right:39px; bottom:36px; }.arcade-stick em { right:19px; bottom:48px; }
.selector-status { max-width:1192px; width:calc(100% - 48px); margin:20px auto 0; display:flex; align-items:center; gap:12px; min-height:40px; font:10px/1.6 Arcade,monospace; }
.player-token { padding:6px 8px; transform:rotate(-5deg); }
.selector-help { margin-left:auto; font:11px monospace; white-space:nowrap; }
.games-grid { margin-top:15px; gap:22px; }
.game-card { border-width:3px; border-radius:12px 12px 5px 5px; overflow:visible; }
.game-card::before { content:'GAME / 0' counter(cabinet); top:9px; left:12px; font-weight:900; }
.card-banner { margin:25px 10px 0; width:auto; height:155px; border:3px solid; border-radius:8px; }
.card-banner img { height:132px; }
.card-banner::before { background:repeating-conic-gradient(from 0deg at 50% 90%,#ffffff14 0deg 15deg,transparent 15deg 30deg); background-size:auto; }
.card-banner::after { height:8px; background:none; }
.card-body { padding:18px 16px; }
.card-title { font-weight:900; }
.card-tag { font-weight:900; }
.card-desc { line-height:1.6; }
.play-btn { padding:11px 12px; border:2px solid; border-radius:4px; font-size:9px; transition:transform .15s; }
.game-card:hover,.game-card:focus-visible,.game-card.is-selected { transform:translateY(-5px) rotate(-.7deg); }
.game-card:hover .play-btn,.game-card:focus-visible .play-btn { transform:translate(2px,2px); }
.game-card:hover img,.game-card:focus-visible img { animation:cartridge-bounce 1.2s ease-in-out infinite; }
.library-filters button { border-width:2px; font-weight:900; }
.arcade-footer { border-top-width:2px; }
@keyframes stick-wiggle { 50% { transform:rotate(12deg); } }
@keyframes cartridge-bounce { 0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-7px) rotate(3deg)} }
@media(max-width:700px) {
    .arcade-marquee { width:calc(100% - 32px); margin:15px auto 26px; padding:14px 15px; }
    .marquee-top { font-size:8px; }.marquee-lives{font-size:19px;letter-spacing:3px}
    .marquee-center { padding:20px 0; }.marquee-center .logo{font-size:clamp(24px,6vw,38px);letter-spacing:-1px}
    .marquee-center .tagline{font-size:11px;line-height:1.6;margin-top:12px;max-width:220px}
    .arcade-stick{width:80px;transform:scale(.65) rotate(8deg);transform-origin:right center;margin-left:-30px;margin-right:0;height:90px}
    .marquee-bottom{font-size:8px;letter-spacing:0;gap:10px}.marquee-bottom span:last-child{text-align:right}
    .selector-status{width:calc(100% - 36px);font-size:8px;margin-top:15px;gap:9px}.selector-help{display:none}
    .games-grid{gap:16px 12px}.card-banner{margin:24px 6px 0;height:110px;border-width:2px}.card-banner img{height:94px}
    .card-body{padding:13px 10px}.card-title{font-size:15px}.play-btn{font-size:8px;padding:9px}.card-desc{font-size:11px}
}
@media(max-width:370px){.arcade-stick{display:none}.marquee-center .logo{font-size:27px}.marquee-center .tagline{max-width:none}}
@media(prefers-reduced-motion:reduce){.arcade-stick i,.game-card:hover img,.game-card:focus-visible img{animation:none!important}}

/* Neon arcade palette: black, violet, hot pink and electric cyan. */
:root { --ink:#08050f; --paper:#fff0ff; --muted:#b6a2cf; --gold:#ff72d8; --cyan:#67f4ff; }
body { position:relative; isolation:isolate; background:radial-gradient(ellipse at 0 15%,#661a7038,transparent 45%),radial-gradient(ellipse at 100% 65%,#27228440,transparent 50%),#08050f; }
body::before { content:''; pointer-events:none; position:fixed; z-index:-1; inset:30% -30% -35%; background:linear-gradient(#a64ff929 1px,transparent 1px),linear-gradient(90deg,#a64ff929 1px,transparent 1px); background-size:65px 65px; transform:perspective(450px) rotateX(38deg); mask-image:linear-gradient(transparent,#000 75%); }
.arcade-nav { border-color:#563268; }
.nav-home { color:#d9b8ee; }.nav-signal{color:var(--cyan)}
.arcade-marquee { border:3px solid #ff64d6; border-radius:16px 16px 7px 7px; background:repeating-linear-gradient(0deg,#ffffff03 0 1px,transparent 1px 5px),linear-gradient(115deg,#281339,#0b0a20 60%,#252054); box-shadow:0 0 0 5px #180e23,0 0 0 7px #5a346d,0 0 30px #d3459a30,inset 0 0 35px #120418; }
.arcade-marquee::after { content:''; position:absolute; bottom:0; left:-35%; width:35%; height:3px; background:linear-gradient(90deg,transparent,#fff,#64efff,transparent); animation:marquee-sweep 6s ease-in-out infinite; pointer-events:none; }
.marquee-center .logo { color:#fff2ff; text-shadow:0 3px 0 #b652e2,0 7px 0 #43166a,0 0 25px #c261fe55; }
.marquee-center .logo span { color:#ff79dc; text-shadow:0 3px 0 #a62a97,0 7px 0 #481440,0 0 23px #ff48c655; }
.marquee-center .tagline { color:#d7c6eb; }
.free-play { background:#60eaff; color:#171127; border:2px solid #bffcff; box-shadow:3px 3px 0 #423b9d; }
.marquee-lives { color:#ff5cbc; text-shadow:0 0 13px #ff45ad88; }
.marquee-bottom { border-top:1px solid #754286; color:#bf9cdc; }
.arcade-stick::before { background:#383057; border-color:#8874c7; box-shadow:0 7px 0 #100b24,0 0 20px #6139c866; }
.arcade-stick i { background:#cdb4eb; border-color:#625480; }
.arcade-stick i::before { background:radial-gradient(circle at 30% 25%,#ffdcfa 0 8%,#ff64cb 12%,#be287f 80%); border-color:#ffb8e9; box-shadow:0 0 16px #e547bf66; }
.arcade-stick b { background:#ff63ce; border-color:#ffb4ed; box-shadow:0 3px 0 #691762; }.arcade-stick span{background:#55e7f9;border-color:#b4fdff;box-shadow:0 3px 0 #16586f}.arcade-stick em{background:#ab74ff;border-color:#d4b6ff;box-shadow:0 3px 0 #452f7b}
.library-heading h2 { color:#fff2ff; text-shadow:2px 2px #663182; }
.library-filters button { background:#160e26; border-color:#654181; color:#ceafec; border-radius:5px; box-shadow:0 3px 0 #06040b; }
.library-filters button[aria-pressed=true] { background:#6a237e; border-color:#ff7ae0; color:#fff; box-shadow:0 0 14px #c83d8c35,0 3px 0 #341239; }
.selector-status { border-bottom:1px solid #49305b; padding-bottom:12px; color:#76eefa; }.player-token{background:#ee5ac7;color:#170b21;box-shadow:2px 2px 0 #743775}.selector-help{color:#a28bb9}
.game-card { background:linear-gradient(150deg,#241731,#100b1e); border-color:#755187; box-shadow:0 5px 0 #030206,0 0 0 1px #140a20; }
.game-card:nth-child(4n+1){--color:#6aeffa!important}.game-card:nth-child(4n+2){--color:#c59aff!important}.game-card:nth-child(4n+3){--color:#ff82d6!important}.game-card:nth-child(4n+4){--color:#82b3ff!important}
.game-card::before { color:#caa9df; }
.card-banner { border-color:#3c2a51; background:radial-gradient(ellipse at 50% 85%,#64358a66,transparent 75%),#110b20; box-shadow:inset 0 0 20px #0009,0 1px 0 #b27bd43b; }
.card-banner::before { opacity:.65; }
.card-banner img { filter:drop-shadow(0 5px 3px #0007); }
.card-title { color:#fff1ff; }.card-desc{color:#b7a4c9}.card-tag{color:var(--color)}
.play-btn { background:#231335; color:var(--color); border-color:var(--color); box-shadow:3px 3px 0 #050208; }
.badge{background:#180f24;border-color:#6c4c82;color:#ceb2e0}
.game-card:hover,.game-card:focus-visible,.game-card.is-selected { border-color:var(--color); box-shadow:0 5px 0 #030206,0 0 0 1px var(--color),0 0 24px #a051db40; }
.game-card:hover .card-banner,.game-card:focus-visible .card-banner { border-color:var(--color); }
.game-card:hover .play-btn,.game-card:focus-visible .play-btn { background:var(--color);color:#160e24;box-shadow:1px 1px 0 #050208; }
.game-card[aria-disabled=true] { border-color:#4c3b60; }
.arcade-footer { border-color:#553269; color:#bd9ad6; }
@keyframes marquee-sweep {0%,15%{transform:translateX(0)}75%,100%{transform:translateX(390%)}}
@media(prefers-reduced-motion:reduce){.arcade-marquee::after{animation:none!important}}
@media(min-width:371px) and (max-width:700px) {
    .marquee-center { display:block; padding-right:65px; }
    .arcade-stick { position:absolute; right:18px; top:75px; width:145px; height:112px; margin:0; transform:scale(.5) rotate(8deg); transform-origin:right center; }
}

/* Brighter, playful cabinet colors with larger art and game cards. */
:root { color-scheme:light; --ink:#fff2c6; --paper:#281744; --muted:#5b4a78; --gold:#ff648c; --cyan:#04b8cb; }
body { background:radial-gradient(ellipse at 7% 22%,#ff8e9870,transparent 31%),radial-gradient(ellipse at 92% 42%,#62eddd78,transparent 32%),radial-gradient(ellipse at 45% 95%,#bb8cff70,transparent 38%),#fff2c6; color:#281744; }
body::before { background:linear-gradient(#7a45951c 1px,transparent 1px),linear-gradient(90deg,#7a45951c 1px,transparent 1px); background-size:52px 52px; }
.arcade-nav { border-color:#d7a6c6; }.nav-home{color:#47305f}.nav-signal{color:#078fa2}.nav-signal::before{background:#08bdc5;box-shadow:0 0 10px #08bdc577}
.arcade-marquee { border-color:#ff627c; background:repeating-linear-gradient(0deg,#ffffff20 0 1px,transparent 1px 6px),linear-gradient(115deg,#fff8d9,#f3dcff 55%,#c9f8e8); box-shadow:0 0 0 5px #fff9e8,0 0 0 8px #965ac6,0 10px 0 #59378d,0 16px 24px #45336635,inset 0 0 35px #fff9dc; }
.arcade-marquee::after { background:linear-gradient(90deg,transparent,#fff,#05becd,#ff638b,transparent); }
.marquee-center .logo { color:#65329b; text-shadow:0 3px 0 #b875dc,0 6px 0 #693792,0 0 18px #b86aff55; }
.marquee-center .logo span { color:#f24c87; text-shadow:0 3px 0 #ffb7c0,0 6px 0 #b63a70,0 0 17px #ff639855; }
.marquee-center .tagline { color:#4d3d70; }
.free-play { background:#ff7189; border-color:#fff1b3;color:#fff;box-shadow:3px 3px 0 #713d9c; }
.marquee-lives { color:#ef5790;text-shadow:0 2px #fff; }
.marquee-bottom { border-color:#c18ac8;color:#544373; }
.arcade-stick::before { background:#6f4fa1;border-color:#54357c;box-shadow:0 7px 0 #503776,0 0 18px #8963ae55; }
.arcade-stick i { background:#fff0bd;border-color:#796195; }
.arcade-stick i::before { background:radial-gradient(circle at 30% 25%,#fff 0 8%,#ff839c 12%,#ed477e 80%);border-color:#fff0bd;box-shadow:0 0 14px #ee579066; }
.arcade-stick b{background:#ff6384;border-color:#fff0c1;box-shadow:0 3px #95335f}.arcade-stick span{background:#23cbd1;border-color:#e0ffdf;box-shadow:0 3px #147c91}.arcade-stick em{background:#ac79ec;border-color:#fff0c1;box-shadow:0 3px #68499a}
.library-heading h2 { color:#59318a;text-shadow:2px 2px #fff; }
.library-filters button { background:#fff9e9;border-color:#8962a8;color:#563c77;box-shadow:0 3px #765392; }
.library-filters button[aria-pressed=true] { background:#ff6a8e;border-color:#be367e;color:#fff;box-shadow:0 3px #a03970,0 0 0 3px #fff8; }
.selector-status { border-color:#b98cc1;color:#087f91; }.player-token{background:#0fbbc1;color:#fff;box-shadow:2px 2px #634396}.selector-help{color:#614f7a}
.game-card { background:linear-gradient(145deg,#fffdf3,#f0ddff 65%,#d9f6ed);border-color:#9067a5;box-shadow:0 5px #70518b,0 0 0 2px #fff8; }
.game-card:nth-child(4n+1){--color:#079caf!important}.game-card:nth-child(4n+2){--color:#834ac0!important}.game-card:nth-child(4n+3){--color:#e94383!important}.game-card:nth-child(4n+4){--color:#426dd1!important}
.game-card::before{color:#6e5289}.card-banner{border-color:#bd9cc4;background:radial-gradient(ellipse at 50% 90%,#f5a8c566,transparent 72%),linear-gradient(140deg,#e4fcf0,#fcebd1);box-shadow:inset 0 0 15px #fff9,0 2px #fff}
.card-banner::before{opacity:.55}.card-banner img{filter:drop-shadow(0 5px 2px #593f6935)}.card-title{color:#32214a}.card-desc{color:#605176}.card-tag{color:var(--color)}
.play-btn{background:#fffdf1;color:var(--color);border-color:var(--color);box-shadow:3px 3px #70518b}.badge{background:#fff8e8;border-color:#b99ac7;color:#5b4771}
.game-card:hover,.game-card:focus-visible,.game-card.is-selected{box-shadow:0 5px #70518b,0 0 0 3px var(--color),0 9px 22px #624a8533}.game-card:hover .play-btn,.game-card:focus-visible .play-btn{background:var(--color);color:#fff;box-shadow:1px 1px #70518b}
.game-card[aria-disabled=true]{border-color:#aaa0b8}.arcade-footer{border-color:#b28cbd;color:#5e4a78}
.game-card[href="/TomGames/pong/pong-online.php"] .card-banner img{position:relative;z-index:1;width:100%;max-width:none;height:100%;object-fit:cover}
.games-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:25px}.game-card{border-width:3px;border-radius:15px 15px 8px 8px}.card-banner{height:190px;margin:28px 12px 0}.card-banner img{height:164px}.card-body{padding:22px 19px}.card-title{font-size:20px;margin:13px 0 10px}.card-desc{font-size:14px;line-height:1.7;margin-bottom:24px}.card-tag{font-size:10px}.play-btn{font-size:10px;padding:12px 14px}.badge{font-size:10px}.games-grid{margin-top:18px}
@media(max-width:1000px){.games-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.card-banner{height:165px}.card-banner img{height:143px}.card-title{font-size:18px}.card-desc{font-size:13px}}
@media(max-width:700px){.games-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 12px}.card-banner{margin:24px 6px 0;height:125px}.card-banner img{height:108px}.card-body{padding:14px 10px}.card-title{font-size:15px}.card-desc{font-size:11px;line-height:1.6;margin-bottom:18px}.play-btn{font-size:8px;padding:9px}.badge{font-size:8px}.game-card{border-radius:11px 11px 6px 6px}}

/* Make each game read as an individual upright arcade cabinet. */
:root{--ink:#10091b;--paper:#fff5ce;--muted:#c7b4d8;--gold:#ffd25b;--cyan:#62f4eb}
body{color:#fff4d8;background:radial-gradient(ellipse at 50% -15%,#6f32a855,transparent 48%),radial-gradient(ellipse at 8% 45%,#d5359a24,transparent 34%),radial-gradient(ellipse at 96% 58%,#16aabf22,transparent 35%),#10091b}
body::before{background:linear-gradient(#cf9cff21 1px,transparent 1px),linear-gradient(90deg,#cf9cff21 1px,transparent 1px);background-size:52px 52px;mask-image:linear-gradient(transparent,#000 52%,#000)}
.arcade-nav{border-color:#684a7e}.nav-home{color:#e1cee9}.nav-signal{color:#67f5eb}
.arcade-marquee{border:5px solid #ffcc55;border-radius:12px 12px 5px 5px;background:repeating-linear-gradient(0deg,#fff1 0 1px,transparent 1px 5px),linear-gradient(125deg,#34144c,#19102c 58%,#2d1750);box-shadow:0 0 0 4px #ff69cc,0 0 0 8px #5f3b82,0 12px 0 #462a5d,0 18px 25px #0008,inset 0 0 30px #aa58e226}
.arcade-marquee::after{height:5px;background:linear-gradient(90deg,transparent,#fff,#65f9ee,#ff6bbb,#ffda72,transparent)}
.marquee-center .logo{color:#fff6d8;text-shadow:0 3px #ef9a3d,0 7px #8f3f73,0 0 23px #ffcc5570}.marquee-center .logo span{color:#ff7ccf;text-shadow:0 3px #ab438e,0 7px #462452,0 0 24px #ff4cbd70}.marquee-center .tagline{color:#d6c2ec}
.free-play{background:#ffd35e;color:#211331;border:2px solid #fff1b2;box-shadow:3px 3px #ed58ae}.marquee-lives{color:#ff70c9;text-shadow:0 0 14px #ff3cb599}.marquee-bottom{border-color:#9873b5;color:#e0c6ee}
.arcade-stick::before{background:#4b3473;border-color:#f7b7e6;box-shadow:0 7px #221638,0 0 20px #9b63dc88}.arcade-stick i{background:#eed4b2;border-color:#805a98}.arcade-stick i::before{background:radial-gradient(circle at 30% 25%,#fff 0 8%,#ff79ce 13%,#d522a6 82%);border-color:#ffd4ed;box-shadow:0 0 15px #ff66d888}.arcade-stick b{background:#ff6cba;border-color:#ffe0aa;box-shadow:0 3px #8e2674}.arcade-stick span{background:#4feee1;border-color:#e7ffba;box-shadow:0 3px #146e81}.arcade-stick em{background:#ffc94d;border-color:#fff3bb;box-shadow:0 3px #a34870}
.library-heading h2{color:#fff2c9;text-shadow:2px 2px #bb4c9e,4px 4px #321842}.library-filters button{background:#21132f;border:2px solid #9875ae;color:#f6dfbc;box-shadow:0 4px #080510;border-radius:4px}.library-filters button[aria-pressed=true]{background:#ffca55;border-color:#fff0aa;color:#251330;box-shadow:0 4px #a54982,0 0 18px #ffcc5580}
.selector-status{border-color:#67497a;color:#65eee7}.player-token{background:#ff71c6;color:#2b1536;box-shadow:2px 2px #f2ca58}.selector-help{color:#dac3e7}
.games-grid{gap:28px}.game-card{position:relative;padding:9px 9px 18px;border:4px solid #745381;border-radius:18px 18px 8px 8px;background:linear-gradient(155deg,#352243,#171023 55%,#24132f);box-shadow:inset 0 0 0 2px #120a1e,0 7px 0 #080510,0 12px 22px #0008;transition:transform .22s,border-color .22s,box-shadow .22s}
.game-card:nth-child(4n+1){--color:#53f1e6!important}.game-card:nth-child(4n+2){--color:#ff70c5!important}.game-card:nth-child(4n+3){--color:#ffd158!important}.game-card:nth-child(4n+4){--color:#b58aff!important}
.game-card::before{content:'★ GAME 0' counter(cabinet) ' ★';top:-14px;left:50%;transform:translateX(-50%);padding:6px 10px;background:#3c2053;color:#ffe18a;border:2px solid #be84dc;border-radius:4px;font:8px/1.3 Arcade,monospace;white-space:nowrap;box-shadow:0 3px #130b1c}
.game-card::after{content:'◉  INSERT COIN';position:absolute;bottom:4px;right:14px;color:#c8afd7;font:7px/1 Arcade,monospace;letter-spacing:.5px;pointer-events:none}
.card-banner{position:relative;isolation:isolate;margin:16px 1px 0;height:190px;border:5px solid #aa82bb;border-radius:14px 14px 7px 7px;background:radial-gradient(ellipse at 50% 75%,color-mix(in srgb,var(--color) 40%,transparent),transparent 66%),linear-gradient(145deg,#514063,#171126 72%);box-shadow:inset 0 0 0 3px #100b19,inset 0 0 24px #09060e,0 4px 0 #0a0710;overflow:hidden}
.card-banner::before{z-index:1;opacity:.75;background:repeating-linear-gradient(0deg,#fff2 0 1px,transparent 1px 4px),repeating-conic-gradient(from 0deg at 50% 100%,#ffffff17 0deg 9deg,transparent 9deg 20deg);background-size:auto,auto;mix-blend-mode:screen}
.card-banner::after{content:'';position:absolute;z-index:2;top:-18px;bottom:auto;left:-30%;right:auto;width:28%;height:calc(100% + 36px);background:linear-gradient(90deg,transparent,#ffffff2c,transparent);transform:skewX(-18deg);animation:crt-scan 5s ease-in-out infinite;pointer-events:none}
.card-banner img{height:164px;position:relative;z-index:0;filter:drop-shadow(0 7px 3px #080510a8)}
.card-body{position:relative;padding:22px 10px 25px}.card-body::before{content:'';position:absolute;right:12px;top:8px;width:36px;height:24px;opacity:.55;background:radial-gradient(circle,#e1c4e9 1.5px,transparent 2px);background-size:7px 7px}
.card-title{color:#fff6db;font:900 20px/1.3 Arial,sans-serif;text-shadow:2px 2px #0a0612}.card-desc{color:#d0c1db;font-size:13px;line-height:1.65}.card-tag{color:var(--color);font:9px/1.5 Arcade,monospace;letter-spacing:1px}
.card-footer{padding-top:10px;border-top:1px solid #ffffff20}.play-btn{position:relative;border:2px solid var(--color);border-radius:5px;background:linear-gradient(180deg,#49315a,#241632);color:var(--color);font:9px/1 Arcade,monospace;letter-spacing:.5px;padding:14px 13px;box-shadow:0 4px #09050e,0 0 12px color-mix(in srgb,var(--color) 25%,transparent);text-shadow:0 0 9px color-mix(in srgb,var(--color) 50%,transparent)}.play-btn::after{content:' ▶';font:12px Arial,sans-serif}.badge{border:1px solid #8e70a0;border-radius:3px;background:#21152b;color:#f8e6b5;font:8px Arcade,monospace;padding:6px}
.game-card:hover,.game-card:focus-visible,.game-card.is-selected{transform:translateY(-7px) scale(1.015);border-color:var(--color);box-shadow:inset 0 0 0 2px #120a1e,0 8px 0 #080510,0 0 0 2px #fff4,0 0 28px color-mix(in srgb,var(--color) 48%,transparent)}.game-card:hover::before,.game-card:focus-visible::before,.game-card.is-selected::before{color:#fff;background:var(--color);border-color:#fff2c7;box-shadow:0 0 15px var(--color)}.game-card:hover .card-banner,.game-card:focus-visible .card-banner,.game-card.is-selected .card-banner{border-color:var(--color);box-shadow:inset 0 0 0 3px #100b19,inset 0 0 24px #09060e,0 0 18px color-mix(in srgb,var(--color) 48%,transparent)}.game-card:hover .play-btn,.game-card:focus-visible .play-btn{transform:translateY(2px);background:var(--color);color:#1b1026;box-shadow:0 2px #09050e}
.game-card[aria-disabled=true]{filter:saturate(.4);opacity:.65}.arcade-footer{border-color:#755289;color:#d2b6df}
@keyframes crt-scan{0%,5%{transform:translateX(0) skewX(-18deg)}45%,55%{transform:translateX(500%) skewX(-18deg)}100%{transform:translateX(500%) skewX(-18deg)}}
@media(max-width:1000px){.games-grid{gap:24px}.card-banner{height:165px}.card-banner img{height:142px}.card-title{font-size:18px}}
@media(max-width:700px){.arcade-marquee{border-width:4px;box-shadow:0 0 0 3px #ff71c6,0 0 0 6px #684888,0 8px 0 #462a5d,0 12px 18px #0008,inset 0 0 22px #aa58e226}.games-grid{gap:23px 14px}.game-card{padding:7px 7px 15px;border-width:3px;border-radius:13px 13px 6px 6px}.game-card::before{top:-12px;font-size:7px;padding:5px 7px}.game-card::after{right:8px;font-size:6px}.card-banner{margin:16px 0 0;height:125px;border-width:3px;border-radius:10px 10px 5px 5px}.card-banner img{height:105px}.card-body{padding:18px 7px 24px}.card-body::before{right:7px;top:4px;width:25px;height:18px;background-size:6px 6px}.card-title{font-size:15px}.card-desc{font-size:11px;margin-bottom:17px}.card-tag{font-size:7px;letter-spacing:0}.card-footer{gap:4px}.play-btn{font-size:7px;padding:10px 7px}.badge{font-size:6px;padding:5px 4px}.marquee-center .logo{text-shadow:0 2px #ef9a3d,0 5px #8f3f73,0 0 16px #ffcc5570}}
@media(prefers-reduced-motion:reduce){.card-banner::after{animation:none!important}.game-card:hover,.game-card:focus-visible,.game-card.is-selected{transform:none}}
@media(max-width:700px){.marquee-top{flex-wrap:nowrap;gap:8px}.free-play{font-size:6px;letter-spacing:0;white-space:nowrap;padding:6px}.marquee-lives{font-size:13px;letter-spacing:1px;white-space:nowrap;flex:0 0 auto}}

.nav-scores { color: var(--gold); text-decoration: underline; text-underline-offset: 4px; }
.nav-scores:hover, .nav-scores:focus-visible { color: var(--paper); }
/* Key-art banners: the picture fills the screen; only a light scanline stays over it */
.game-card .card-banner--art{background:#0d0816}
.game-card .card-banner--art img{position:absolute;inset:0;z-index:0;width:100%;max-width:none;height:100%;object-fit:cover;filter:none}
.game-card .card-banner--art::before{background:repeating-linear-gradient(0deg,#fff1 0 1px,transparent 1px 4px);opacity:.45}
.game-card:hover .card-banner--art img,.game-card:focus-visible .card-banner--art img{animation:none;transform:scale(1.05)}
.game-card[aria-disabled=true] .card-banner--art img{filter:grayscale(.35)}

/* "Playing at school?" notice for panic mode (TomGames/panic). F2 needs a keyboard, so touch-only screens skip it. */
.school-tip{position:relative;max-width:1192px;width:calc(100% - 48px);margin:30px auto 40px;padding:16px 20px 15px;display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 18px;align-items:center;border:3px dashed #9875ae;border-radius:10px;background:linear-gradient(125deg,#23122f,#170e24);box-shadow:0 5px #080510;color:#eadcf3;font:14px/1.6 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
.school-tip-badge{grid-row:1/3;padding:9px 10px;background:#4feee1;color:#16222a;border-radius:4px;box-shadow:3px 3px #ff71c6;font:9px/1.5 Arcade,monospace;transform:rotate(-3deg);text-align:center;max-width:132px}
.school-tip p{margin:0}
.school-tip-small{color:#bfa9d2;font-size:13px}
.school-tip kbd{display:inline-block;min-width:30px;padding:1px 6px;border:2px solid #fff0aa;border-bottom-width:4px;border-radius:5px;background:#ffca55;color:#251330;font:9px/1.6 Arcade,monospace;text-align:center;vertical-align:1px}
@media(max-width:700px){.school-tip{width:calc(100% - 36px);margin:22px auto 28px;grid-template-columns:minmax(0,1fr);padding:14px 15px;font-size:13px}.school-tip-badge{grid-row:auto;justify-self:start;max-width:none;font-size:8px}}
@media(hover:none) and (pointer:coarse){.school-tip{display:none}}
