:root{--zx-black: #000000;--zx-blue: #0000D7;--zx-red: #D70000;--zx-magenta: #D700D7;--zx-green: #00D700;--zx-cyan: #00D7D7;--zx-yellow: #D7D700;--zx-white: #D7D7D7;--zx-b-blue: #0000FF;--zx-b-red: #FF0000;--zx-b-magenta: #FF00FF;--zx-b-green: #00FF00;--zx-b-cyan: #00FFFF;--zx-b-yellow: #FFFF00;--zx-b-white: #FFFFFF;--ink: var(--zx-white);--ink-strong: var(--zx-b-white);--paper: var(--zx-black);--accent: var(--zx-b-yellow);--interactive: var(--zx-b-cyan);--danger: var(--zx-b-red);--border-idle: var(--zx-blue);--border-focus: var(--zx-b-yellow);--divider: var(--zx-magenta);--chrome-quiet: rgba(215, 215, 215, .4);--font-display: "Press Start 2P", ui-monospace, monospace;--font-body: ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--t-hero: 32px;--lh-hero: 48px;--t-h1: 24px;--lh-h1: 32px;--t-h2: 16px;--lh-h2: 24px;--t-ui: 8px;--lh-ui: 16px;--t-body: 16px;--lh-body: 24px;--s1: 8px;--s2: 16px;--s3: 24px;--s4: 32px;--s5: 48px;--s6: 64px;--shell-max: 1440px;--rail-right: 300px;--screen-border: 16px}@media(max-width:1023px){:root{--t-hero: 24px;--lh-hero: 32px}}@media(max-width:767px){:root{--t-hero: 16px;--lh-hero: 24px;--screen-border: 8px}}@media(max-width:479px){:root{--t-hero: 32px;--lh-hero: 48px}.logo__full{display:none}.logo__short{display:inline}}@font-face{font-family:"Press Start 2P";src:url(/fonts/press-start-2p.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}*,*:before,*:after{box-sizing:border-box}html{background:var(--paper)}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:var(--t-body);line-height:var(--lh-body);-webkit-text-size-adjust:100%}img,svg,iframe{display:block;max-width:100%}img.pixel{image-rendering:pixelated}a{color:var(--interactive);text-decoration:none}a:hover,a:focus-visible{color:var(--paper);background:var(--interactive)}:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.skip-link{position:absolute;left:-9999px;top:0;z-index:100;font-family:var(--font-display);font-size:var(--t-ui);padding:var(--s1) var(--s2);background:var(--accent);color:var(--paper)}.skip-link:focus{left:0}.display{font-family:var(--font-display);letter-spacing:.08em;text-transform:uppercase;font-weight:400}h1,h2,h3{font-family:var(--font-display);letter-spacing:.08em;font-weight:400;margin:0}h1{font-size:var(--t-h1);line-height:var(--lh-h1);color:var(--accent)}h2{font-size:var(--t-h2);line-height:var(--lh-h2);color:var(--ink-strong)}.t-ui{font-family:var(--font-display);font-size:var(--t-ui);line-height:var(--lh-ui);letter-spacing:.08em}.divider{height:2px;background:var(--divider);border:0;margin:var(--s3) 0}.prose{max-width:64ch}.prose p{margin:0 0 var(--s2)}.prose h2{margin:var(--s4) 0 var(--s2)}.prose h3{font-size:12px;line-height:var(--lh-h2);color:var(--accent);margin:var(--s3) 0 var(--s1)}.prose ul,.prose ol{margin:0 0 var(--s2);padding-left:var(--s3)}.prose li{margin-bottom:var(--s1)}.shell{max-width:var(--shell-max);margin:0 auto;padding:0 var(--s2)}.screen-border{border:var(--screen-border) solid var(--border-idle);background:var(--paper)}.columns{display:grid;gap:var(--s4);grid-template-columns:minmax(0,1fr) var(--rail-right);align-items:start}@media(max-width:1023px){.columns{grid-template-columns:minmax(0,1fr)}}.rail{display:flex;flex-direction:column;gap:var(--s3)}.rail--sticky{position:sticky;top:var(--s5)}.masthead{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--s2);padding:var(--s3) 0}.logo{display:inline-flex;align-items:center;gap:.375em;font-family:var(--font-display);font-size:var(--t-hero);line-height:var(--lh-hero);letter-spacing:.04em;color:var(--accent);text-decoration:none;white-space:nowrap}.logo__mark{flex:none;width:1em;height:1em;image-rendering:pixelated}.logo__short{display:none}.logo:hover,.logo:focus-visible{background:none;color:var(--accent)}.nav{display:flex;gap:var(--s2)}.nav a{font-family:var(--font-display);font-size:var(--t-ui);letter-spacing:.08em}.footer{border-top:2px solid var(--divider);margin-top:var(--s6);padding:var(--s3) 0 var(--s5);font-family:var(--font-display);font-size:var(--t-ui);line-height:var(--lh-ui);color:var(--chrome-quiet);display:flex;flex-wrap:wrap;gap:var(--s2)}@media(prefers-reduced-motion:no-preference){.cycle{animation:cycle 2s steps(4) infinite}@keyframes cycle{0%{color:var(--zx-b-yellow)}25%{color:var(--zx-b-cyan)}50%{color:var(--zx-b-green)}75%{color:var(--zx-b-magenta)}}.blink{animation:blink 1s steps(2) infinite}@keyframes blink{0%{opacity:1}50%{opacity:0}}}.prose table{width:100%;border-collapse:collapse;margin:0 0 var(--s2);font-size:14px;line-height:20px}.prose th,.prose td{text-align:left;padding:var(--s1);border-bottom:1px solid var(--border-idle)}.prose th{font-family:var(--font-display);font-size:var(--t-ui);color:var(--accent);font-weight:400}.search{display:flex;align-items:center;gap:var(--s1);border:2px solid var(--border-idle);padding:var(--s1);background:var(--paper)}.search:focus-within{border-color:var(--border-focus)}.search__label{font-family:var(--font-display);font-size:var(--t-ui);color:var(--accent);white-space:nowrap}.search__input{flex:1;min-width:0;background:transparent;border:0;color:var(--ink-strong);font-family:var(--font-display);font-size:var(--t-h2);line-height:var(--lh-h2);letter-spacing:.08em;padding:var(--s1) 0}.search__input:focus{outline:none}.search__input::placeholder{color:var(--chrome-quiet)}.search__cursor{color:var(--accent);font-family:var(--font-display);font-size:var(--t-h2)}.search__clear{font-family:var(--font-display);font-size:var(--t-ui);background:var(--zx-blue);color:var(--ink-strong);border:0;padding:var(--s1);cursor:pointer}.search__clear:hover{background:var(--accent);color:var(--paper)}.search[hidden]{display:none}.genres{display:flex;flex-wrap:wrap;gap:var(--s1);margin-top:var(--s2)}.genres[hidden]{display:none}.genres__btn{min-height:40px;padding:var(--s1);font-family:var(--font-display);font-size:var(--t-ui);line-height:var(--lh-ui);background:var(--paper);color:var(--ink);border:2px solid var(--border-idle);cursor:pointer}.genres__btn:hover,.genres__btn:focus-visible{border-color:var(--border-focus);background:var(--zx-blue);color:var(--ink-strong)}.genres__btn[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--paper)}.count{font-family:var(--font-display);font-size:var(--t-ui);line-height:var(--lh-ui);color:var(--chrome-quiet);margin:var(--s2) 0}.empty-state{border:2px solid var(--danger);padding:var(--s3);font-family:var(--font-display);font-size:var(--t-ui);line-height:var(--lh-ui);color:var(--ink-strong)}.empty-state code{color:var(--danger);display:block;margin-bottom:var(--s2)}.grid{display:grid;gap:var(--s2);grid-template-columns:repeat(auto-fill,minmax(208px,1fr));grid-auto-rows:1fr;list-style:none;margin:0;padding:0}.card-item{display:flex}.card-item[hidden]{display:none}@media(max-width:1279px){.grid{grid-template-columns:repeat(auto-fill,minmax(176px,1fr))}}@media(max-width:480px){.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s1)}}.card{display:flex;flex-direction:column;width:100%;border:2px solid var(--border-idle);background:var(--paper);color:var(--ink)}.card:hover,.card:focus-visible{border-color:var(--border-focus);background:var(--zx-blue);color:var(--ink-strong)}.card:hover .card__title,.card:focus-visible .card__title{color:var(--ink-strong)}.card:hover .card__meta,.card:focus-visible .card__meta{color:var(--ink)}.card__art{flex:none;aspect-ratio:4 / 3;width:100%;object-fit:cover;background:var(--zx-black);border-bottom:2px solid var(--border-idle)}.card__body{display:flex;flex-direction:column;flex:1 1 auto;padding:var(--s1)}.card__title{font-family:var(--font-display);font-size:var(--t-h2);line-height:var(--lh-h2);min-height:calc(2 * var(--lh-h2));color:var(--accent);overflow-wrap:anywhere}.card__meta{font-family:var(--font-display);font-size:var(--t-ui);line-height:var(--lh-ui);color:var(--chrome-quiet);margin-top:var(--s1)}.badge{display:inline-block;font-family:var(--font-display);font-size:var(--t-ui);line-height:var(--lh-ui);padding:2px var(--s1);background:var(--zx-green);color:var(--paper);margin-top:var(--s1)}.card__body .badge{margin-top:auto;align-self:flex-start}mark{background:var(--accent);color:var(--paper)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s1);font-family:var(--font-display);font-size:var(--t-h2);letter-spacing:.16em;text-align:center;padding:var(--s3) var(--s4);background:var(--zx-blue);color:var(--accent);border:2px solid var(--accent);cursor:pointer}.btn:hover,.btn:focus-visible{background:var(--accent);color:var(--paper)}.btn--play{width:100%;min-height:64px}.btn--small{font-size:var(--t-ui);padding:var(--s1) var(--s2);letter-spacing:.08em}.consent{position:fixed;left:0;right:0;bottom:0;z-index:100;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:var(--s2);padding:var(--s2);background:var(--paper);border-top:2px solid var(--accent)}.consent[hidden]{display:none}.consent__text{margin:0;max-width:72ch}.consent__actions{display:flex;gap:var(--s2)}.consent__actions .btn{min-width:96px;min-height:48px}.footer__link{padding:0;background:none;border:0;color:var(--interactive);font:inherit;letter-spacing:inherit;cursor:pointer}.footer__link:hover,.footer__link:focus-visible{color:var(--paper);background:var(--interactive)}.aff{border:2px solid var(--divider);padding:var(--s2)}.aff__head{font-family:var(--font-display);font-size:var(--t-ui);line-height:var(--lh-ui);color:var(--divider);margin-bottom:var(--s1)}.aff__disclosure{font-family:var(--font-display);font-size:var(--t-ui);line-height:var(--lh-ui);color:var(--chrome-quiet);margin-bottom:var(--s2)}.aff__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--s2)}.aff__item a{display:flex;gap:var(--s1);align-items:flex-start}.aff__item img{width:48px;height:48px;object-fit:contain;flex:none}.aff__label{font-family:var(--font-display);font-size:var(--t-ui);line-height:var(--lh-ui)}.aff__blurb{font-size:13px;line-height:18px;color:var(--chrome-quiet);margin-top:4px}.detail{display:grid;gap:var(--s4);grid-template-columns:256px minmax(0,1fr);align-items:start}@media(max-width:767px){.detail{grid-template-columns:minmax(0,1fr)}}.detail__cover{width:100%;aspect-ratio:4 / 3;object-fit:cover;border:2px solid var(--border-idle)}.detail__meta{font-family:var(--font-display);font-size:var(--t-ui);line-height:var(--lh-ui);color:var(--interactive);margin:var(--s1) 0 var(--s2)}.detail__origin,.detail__rights{font-size:14px;line-height:20px;color:var(--chrome-quiet);margin:0 0 var(--s3);max-width:64ch}.detail__rights{margin:var(--s3) 0 0}.intro{margin-top:var(--s2)}.intro h1{margin-bottom:var(--s2)}.intro p{margin:0 0 var(--s2)}.pager{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:var(--s2);margin-top:var(--s3)}.pager>:last-child{justify-self:end}.pager[hidden]{display:none}.pager__pages{display:flex;gap:var(--s2);font-family:var(--font-display);font-size:var(--t-ui);line-height:var(--lh-ui)}.pager__pages a,.pager__pages span,.pager__pages button{padding:var(--s1)}.pager__pages button{background:none;border:0;color:var(--interactive);font:inherit;cursor:pointer}.pager__pages button:hover,.pager__pages button:focus-visible{color:var(--paper);background:var(--interactive)}.pager__pages [aria-current]{color:var(--paper);background:var(--accent)}.controls{width:100%;border-collapse:collapse;font-family:var(--font-display);font-size:var(--t-ui);line-height:var(--lh-ui)}.controls th,.controls td{text-align:left;padding:var(--s1);border-bottom:1px solid var(--border-idle)}.controls th{color:var(--accent);white-space:nowrap}.controls td{color:var(--ink);font-family:var(--font-body);font-size:14px}.play{min-height:100dvh;display:flex;flex-direction:column;background:var(--paper)}.play__bar{height:48px;flex:none;display:flex;align-items:center;justify-content:space-between;gap:var(--s2);padding:0 var(--s2);border-bottom:2px solid var(--border-idle)}@media(max-width:767px){.play__bar{height:40px;padding:0 var(--s1)}}.play__title{font-family:var(--font-display);font-size:var(--t-ui);color:var(--accent)}.play__tools{display:flex;gap:var(--s1)}.play__stage{flex:1;display:flex;align-items:center;justify-content:center;padding:var(--s2)}.play__frame{width:min(100%,calc((100dvh - 96px) * 4 / 3));aspect-ratio:4 / 3;border:0;background:var(--zx-black)}@media(max-width:767px){.play__frame{width:100%}}.play__stage{position:relative}.play__tap,.play__corner,.play--full .play__bar{display:none}.play--full .play__stage{position:fixed;inset:0;padding:0;background:var(--zx-black)}.play--full .play__frame{width:100%;height:100%;aspect-ratio:auto}.play--full .play__corner{display:flex;gap:4px;position:absolute;z-index:2;top:max(4px,env(safe-area-inset-top));right:max(4px,env(safe-area-inset-right));opacity:.7}.play--wait .play__tap{display:flex;align-items:center;justify-content:center;position:absolute;inset:0;z-index:1;border:0;background:#000000b0;color:var(--paper);font-family:var(--font-display);font-size:var(--t-h2);cursor:pointer}.loader{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}.loader__stripes{position:absolute;inset:0;background:repeating-linear-gradient(180deg,var(--zx-b-red) 0 8px,var(--zx-b-cyan) 8px 16px)}@media(prefers-reduced-motion:no-preference){.loader__stripes{animation:tape .5s steps(2) infinite}@keyframes tape{50%{background:repeating-linear-gradient(180deg,var(--zx-b-blue) 0 8px,var(--zx-b-yellow) 8px 16px)}}}.loader__text{position:relative;font-family:var(--font-display);font-size:var(--t-h2);color:var(--paper);background:var(--ink-strong);padding:var(--s1)}.form{display:flex;flex-direction:column;gap:var(--s2);max-width:64ch}.form label{display:flex;flex-direction:column;gap:var(--s1);font-family:var(--font-display);font-size:var(--t-ui);line-height:var(--lh-ui);color:var(--accent);letter-spacing:.08em}.form input,.form select,.form textarea{font-family:var(--font-body);font-size:var(--t-body);line-height:var(--lh-body);color:var(--ink-strong);background:var(--paper);border:2px solid var(--border-idle);padding:var(--s1)}.form input:focus,.form select:focus,.form textarea:focus{outline:2px solid var(--border-focus);outline-offset:2px}.form textarea{min-height:192px;resize:vertical}.form .btn{align-self:flex-start}.form__trap{position:absolute;left:-9999px}.prose table{display:block;max-width:100%;overflow-x:auto}
