@import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@400;600;700;800&family=Rajdhani:wght@400;500;600;700&family=Share+Tech+Mono&family=Space+Mono:wght@400;700&family=Nunito+Sans:wght@400;600;700;800&display=swap');
:root{--heading-font:'Press Start 2P',monospace;--reading-font:'DM Sans',sans-serif;--data-font:'VT323',monospace;--motion-duration:.18s;--motion-ease:steps(3)}
:root[data-theme=synth]{--heading-font:'Orbitron',sans-serif;--reading-font:'Rajdhani',sans-serif;--data-font:'Share Tech Mono',monospace;--motion-duration:.45s;--motion-ease:cubic-bezier(.2,.8,.2,1)}
:root[data-theme=gb]{--heading-font:'Press Start 2P',monospace;--reading-font:'Share Tech Mono',monospace;--data-font:'VT323',monospace;--motion-duration:.14s;--motion-ease:steps(2)}
:root[data-theme=light]{--heading-font:'Space Mono',monospace;--reading-font:'Nunito Sans',sans-serif;--data-font:'Space Mono',monospace;--motion-duration:.35s;--motion-ease:cubic-bezier(.16,1,.3,1)}
body,button,input,textarea,select{font-family:var(--reading-font)}header .brand,.hero h1,.eyebrow,.nav,.theme-button,.primary,.chip,.random-button,.sound-toggle,.section-head h2,.small h2,.collection h3,.list-card h3,.dialog-top h2,dialog h2,.hud-number,.hud-label,.profile-panel h3,.level-panel strong,.slot-machine h2{font-family:var(--heading-font)}.game-title,.review p,dialog label,dialog input,dialog textarea,dialog select{font-family:var(--reading-font)}.hero-note,.hero-caption span,.game-meta,.saved-status,.hud-icon,.sort-control,.profile-note,.rating-output{font-family:var(--data-font)}
.cover-button,.nav,.primary,.chip,.collection,.review,.profile-panel{transition:transform var(--motion-duration) var(--motion-ease),box-shadow var(--motion-duration) var(--motion-ease),border-color var(--motion-duration),background var(--motion-duration)}
.theme-enter main{animation:arcade-enter .25s steps(4)}[data-theme=synth].theme-enter main{animation:synth-enter .6s ease-out}[data-theme=gb].theme-enter main{animation:gb-enter .22s steps(2)}[data-theme=light].theme-enter main{animation:paper-enter .45s ease-out}
[data-theme=synth] .hero h1{font-size:28px;line-height:1.65;letter-spacing:.5px;text-shadow:0 0 22px #ff79c633}[data-theme=synth] .cover-button:hover{transform:translateY(-7px) scale(1.025);box-shadow:0 0 25px #ff79c633;border-color:var(--green)}[data-theme=synth] .primary:hover{box-shadow:0 0 22px #4fd6e850}[data-theme=synth] .hero-art{filter:hue-rotate(45deg)}[data-theme=synth] .nav{font-size:10px;letter-spacing:.3px}
[data-theme=gb] .pixel-scene{filter:sepia(1) saturate(.65) hue-rotate(32deg)}[data-theme=gb] .cover-button img{filter:sepia(.55) saturate(.65) hue-rotate(18deg)}[data-theme=gb] .cover-button:hover{transform:translate(-3px,-3px);box-shadow:6px 6px var(--shadow)}[data-theme=gb] .primary:active{transform:translate(2px,3px)}[data-theme=gb] .hero{box-shadow:5px 5px var(--shadow)}
[data-theme=light] .hero h1{font-size:31px;line-height:1.55;letter-spacing:-1.2px}[data-theme=light] .pixel-scene{filter:sepia(.4) brightness(1.4)}[data-theme=light] .cover-button:hover{transform:translateY(-5px) rotate(-1.5deg);box-shadow:6px 10px 15px #473c2420}[data-theme=light] .primary:hover{transform:translateY(-2px);box-shadow:0 6px 0 var(--shadow)}[data-theme=light] .nav{font-size:11px;letter-spacing:-.4px}[data-theme=light] .hud-label{font-size:8px}[data-theme=light] .hud-number{font-size:19px}[data-theme=light] .eyebrow{font-size:10px}[data-theme=light] .game-meta{font-size:10px}
.star-rating{border:0;margin:0;padding:0;min-width:0}.star-rating legend{font:11px var(--reading-font);color:var(--muted);margin-bottom:8px;padding:0}.rating-row{display:flex;align-items:center;gap:13px;flex-wrap:wrap}.rating-stars{display:inline-flex;gap:5px}.rating-star{position:relative;display:block;width:37px;height:43px}.star-glyph{position:absolute;inset:0;font:39px/43px Arial,sans-serif;color:var(--line);-webkit-text-stroke:1px var(--muted);pointer-events:none}.star-glyph:after{content:'★';position:absolute;inset:0;color:var(--green);clip-path:inset(0 calc(100% - var(--fill,0%)) 0 0);-webkit-text-stroke:1px var(--green)}.star-radio{position:absolute;width:1px!important;height:1px;opacity:0;left:0;top:20px;padding:0!important}.star-hit{position:absolute!important;top:0!important;bottom:0!important;width:50%!important;margin:0!important;cursor:pointer;z-index:2;display:block!important;border-radius:2px}.star-hit.left{left:0}.star-hit.right{right:0}.star-radio:focus-visible+.star-hit{outline:2px solid var(--mint);outline-offset:1px}.rating-output{font-size:18px;min-width:65px;color:var(--green)}.rating-clear{background:none;border:0;color:var(--muted);text-decoration:underline;font-size:11px;padding:8px;cursor:pointer}.rating-help{font:10px/1.5 var(--reading-font);color:var(--muted);margin:6px 0 0}.star-rating select[hidden]{display:none!important}
.sound-toggle{background:none;border:1px solid var(--line);color:var(--muted);font-size:7px;padding:10px;white-space:nowrap;cursor:pointer}.sound-toggle[aria-pressed=true]{color:var(--mint);border-color:var(--mint)}.random-button:disabled{opacity:.5;cursor:wait}.catalog-controls{flex-wrap:wrap}.catalog-status{display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--muted);font:11px var(--reading-font);padding:0 0 18px}.catalog-status .text-button{font-size:11px}.catalog-attribution{color:var(--mint);text-decoration:underline;font:11px var(--reading-font)}.load-more{display:block;margin:28px auto}.load-more:disabled{opacity:.5;cursor:wait}
.slot-machine{width:min(650px,calc(100% - 24px));overflow:hidden;padding:32px;border:3px solid var(--green);background:var(--panel);text-align:center;isolation:isolate}.machine-top{display:flex;justify-content:center;align-items:center;gap:15px;font:8px var(--heading-font);color:var(--muted);letter-spacing:2px}.machine-light{height:8px;width:8px;background:var(--mint);box-shadow:0 0 12px var(--mint)}.slot-machine h2{font-size:19px;margin:27px 0 24px;color:var(--green);line-height:1.6}.slot-reels{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:13px;background:var(--bg);border:2px solid var(--line);box-shadow:inset 0 5px 15px #0005;position:relative}.slot-reels:after{content:'';position:absolute;pointer-events:none;left:-5px;right:-5px;top:48%;border-top:2px solid var(--green);opacity:.65}.slot-reel{aspect-ratio:2/3;position:relative;background:var(--line);overflow:hidden;border:2px solid var(--line)}.slot-reel img{width:100%;height:100%;object-fit:cover;display:block}.reel-caption{position:absolute;left:0;right:0;bottom:0;padding:7px 4px;background:#0d1025df;color:#fff;font:10px/1.4 var(--reading-font);min-height:39px;display:flex;align-items:center;justify-content:center}.spinning .slot-reel:not(.locked) img{animation:reel-spin .1s linear infinite;filter:blur(1px)}.slot-message{color:var(--muted);font:14px/1.6 var(--reading-font);min-height:38px;margin:20px 0 9px}.slot-machine .primary{margin:7px auto 3px;position:relative;z-index:4}.won .slot-reel{border-color:var(--green);box-shadow:0 0 13px #f2b84b66}.won{animation:win-bump .5s ease-out}.won h2{animation:jackpot-glow .8s steps(2) 3}.spinning .machine-light{animation:lamp-blink .2s steps(2) infinite}.jackpot-burst{position:absolute;inset:0;pointer-events:none;z-index:3}.jackpot-burst i{position:absolute;left:50%;top:50%;width:7px;height:7px;background:var(--spark);animation:spark-burst 1s var(--delay) ease-out both}.close{z-index:5}.rating-chart{gap:20px}
@keyframes arcade-enter{from{opacity:.5;transform:translateY(5px)}to{opacity:1;transform:none}}@keyframes synth-enter{from{opacity:.3;filter:blur(3px);transform:translateY(10px)}to{opacity:1;filter:none;transform:none}}@keyframes gb-enter{0%{opacity:0}50%{opacity:.5}100%{opacity:1}}@keyframes paper-enter{from{opacity:.4;transform:translateY(9px) rotate(-.3deg)}to{opacity:1;transform:none}}@keyframes reel-spin{from{transform:translateY(-16px)}to{transform:translateY(16px)}}@keyframes lamp-blink{to{background:var(--pink);box-shadow:0 0 12px var(--pink)}}@keyframes win-bump{0%,100%{transform:scale(1)}35%{transform:scale(1.025)}65%{transform:scale(.99)}}@keyframes jackpot-glow{50%{text-shadow:0 0 30px var(--green);color:var(--mint)}}@keyframes spark-burst{from{opacity:1;transform:rotate(var(--angle)) translateX(0) rotate(0deg)}to{opacity:0;transform:rotate(var(--angle)) translateX(var(--distance)) rotate(240deg)}}
@media(max-width:760px){.catalog-controls{gap:7px}.sound-toggle{margin-left:auto}.sort-control{width:130px}.slot-machine{padding:25px 16px}.slot-reels{gap:7px;padding:8px}.slot-machine h2{font-size:15px}.slot-message{font-size:12px}.reel-caption{font-size:9px}.machine-top{font-size:7px;gap:8px;letter-spacing:0}.rating-chart{gap:12px}[data-theme=synth] .hero h1{font-size:24px}[data-theme=light] .hero h1{font-size:26px}[data-theme=light] .hud-label{font-size:7px}}
@media(max-width:420px){.rating-stars{gap:2px}.rating-star{width:32px;height:38px}.star-glyph{font-size:34px;line-height:38px}.rating-row{gap:9px}.rating-output{font-size:16px}.rating-clear{padding:7px 0}.catalog-controls{justify-content:space-between}.random-button{padding:10px 8px;font-size:7px}.sound-toggle{font-size:6px;padding:10px 7px}.sort-control{width:112px;font-size:13px}[data-theme=synth] .nav{font-size:8px}[data-theme=light] .nav{font-size:9px}[data-theme=synth] header .brand{font-size:15px}[data-theme=light] header .brand{font-size:16px}[data-theme=light] .hud-label{font-size:6px}.slot-machine h2{font-size:12px}.reel-caption{font-size:8px}}
.rating-chart{padding-bottom:38px}.rating-bar span{white-space:normal;line-height:1.2;text-align:center;width:100%;font-size:13px}
@media(max-width:600px){.rating-chart{padding-bottom:46px}.rating-bar span{font-size:11px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.spinning .slot-reel img{filter:none}}
