:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--paper:#f3efe5;--paper-2:#eae5d6;--ink:#191611;--ink-dim:#6b6353;--line:#c9c2ae;--rule:#191611;--accent:#c2410f;--good:#2f6b40;--warn:#8a5a0b;--bad:#9a3424;--font-display:"Archivo", sans-serif;--font-mono:"IBM Plex Mono", monospace}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--paper:#171410;--paper-2:#221e17;--ink:#ece5d6;--ink-dim:#a79d87;--line:#3b3527;--rule:#ece5d6;--accent:#ef6c33;--good:#82c98f;--warn:#e2a63e;--bad:#f07862}*{box-sizing:border-box}html{background:var(--paper)}body{color:var(--ink);font:400 16px / 1.55 var(--font-display);-webkit-font-smoothing:antialiased;margin:0}body:before{content:"";z-index:99;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.06'/%3E%3C/svg%3E");position:fixed;inset:0}::selection{background:var(--accent);color:var(--paper)}a{color:inherit;text-decoration:none}a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}code{font:400 .85em var(--font-mono);border:1px solid var(--line);white-space:nowrap;padding:1px 4px}.skip-link{z-index:100;font:600 12px / 1 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--paper);background:var(--accent);padding:10px 14px;transition:transform .1s;position:absolute;top:8px;left:24px;transform:translateY(-200%)}.skip-link:focus{transform:none}.skip-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.wrap{max-width:920px;margin:0 auto;padding:0 24px}header .wrap{padding-top:48px}.kicker{font:600 12px / 1 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin:0 0 16px}h1{font:900 clamp(2.4rem, 7vw, 4.2rem) / .95 var(--font-display);letter-spacing:-.02em;text-transform:uppercase;margin:0}.header-sub{border-top:3px solid var(--rule);border-bottom:1px solid var(--rule);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:16px;margin-top:24px;padding:8px 0;display:flex}.header-sub p{font:400 13px / 1.5 var(--font-mono);color:var(--ink-dim);max-width:560px;margin:0}.header-sub a{color:var(--ink);text-underline-offset:3px;text-decoration:underline}.site-nav{border-top:3px solid var(--rule);align-items:center;gap:20px;width:100%;margin-top:24px;padding:12px 0;display:flex}.site-nav a{font:600 12px / 1 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;text-underline-offset:4px;-webkit-text-decoration:underline #0000;text-decoration:underline #0000}.site-nav a:hover{color:var(--accent)}.site-nav a[aria-current=page]{color:var(--accent);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.site-nav .nav-github{color:var(--ink);margin-left:auto;display:inline-flex}.site-nav .nav-github svg{width:18px;height:18px;display:block}.site-nav .nav-github:hover{color:var(--accent)}.site-nav .theme-toggle{margin-left:0}.nav-link{font:600 12px / 1 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;white-space:nowrap}.nav-link:hover{color:var(--accent)}.bar{z-index:10;background:var(--paper);border-bottom:2px solid var(--rule);position:sticky;top:0}.bar-inner{align-items:center;gap:12px;padding-top:12px;padding-bottom:12px;display:flex}.bar-inner input[type=search]{min-width:180px;font:400 14px / 1 var(--font-mono);color:var(--ink);border:1px solid var(--rule);background:0 0;flex:1;padding:8px 12px}.bar-inner input[type=search]::placeholder{color:var(--ink-dim)}.bar-inner input[type=search]:focus{outline:2px solid var(--accent);outline-offset:-1px}.count{font:600 12px / 1 var(--font-mono);letter-spacing:.1em;white-space:nowrap;color:var(--ink-dim)}.chips-row{flex-direction:column;gap:8px;padding-top:16px;padding-bottom:4px;display:flex}.chips-group{flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;display:flex}.chips-group .lbl{font:600 12px / 1 var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-dim);flex-shrink:0;width:72px}.chip{font:600 12px / 1 var(--font-mono);letter-spacing:.05em;text-transform:uppercase;color:var(--ink);background:var(--paper);border:1px solid var(--rule);cursor:pointer;-webkit-user-select:none;user-select:none;padding:5px 12px;transition:background .1s}.chip:hover{background:var(--paper-2)}.chip:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.chip.active{background:var(--rule);color:var(--paper)}.clear{font:600 12px / 1 var(--font-mono);color:var(--accent);cursor:pointer;background:0 0;border:none;margin-left:auto;padding:4px 0}.clear:hover{text-underline-offset:3px;text-decoration:underline}main.wrap{padding-top:8px;padding-bottom:72px}.porters-main{padding-top:20px}.group-label{font:600 12px / 1 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;border-bottom:2px solid var(--rule);justify-content:space-between;margin:28px 0 0;padding:10px 0;display:flex}.group-label .n{color:var(--accent)}.row{border-bottom:1px solid var(--line);cursor:pointer;grid-template-columns:40px 96px 1fr;align-items:start;gap:16px;padding:18px 0 18px 8px;animation:.35s both rise;display:grid}.row:hover{background:var(--paper-2);box-shadow:inset 3px 0 0 var(--accent)}.row:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.idx{font:400 13px / 1.6 var(--font-mono);color:var(--ink-dim);padding-top:2px}.thumb{object-fit:cover;border:1px solid var(--rule);background:var(--paper-2);width:96px;height:72px;display:block}.thumb[src$=\.svg]{object-fit:contain;padding:10px}:root[data-theme=dark] .thumb[src*=simple-icons]{filter:invert()}.thumb.ph{color:var(--line);font:400 22px / 1 var(--font-mono);justify-content:center;align-items:center;display:flex}.info{min-width:0}.name{font:700 18px / 1.25 var(--font-display);letter-spacing:-.01em}.name a:hover{color:var(--accent);text-underline-offset:3px;text-decoration:underline}.tags{flex-wrap:wrap;align-items:center;gap:4px;margin:8px 0 0;display:flex}.tag-sep{background:var(--line);flex-shrink:0;width:1px;height:14px}.tag{font:600 12px / 1 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-dim);border:1px solid;padding:4px 9px}.st-playable,.free{--c:var(--good)}.st-experimental,.st-prerelease{--c:var(--warn)}.st-source-only{--c:var(--ink-dim)}.owned{--c:var(--bad)}.cat-app{--c:#0f766e}.cat-arcade{--c:#6b21a8}.cat-engine{--c:#57534e}.cat-fps{--c:#9a3412}.cat-platform{--c:#1d4ed8}.cat-puzzle{--c:#44700d}.cat-racing{--c:#9c4707}.cat-reflex{--c:#9d174d}.cat-rpg{--c:#991b1b}.cat-shooter{--c:#334155}:root[data-theme=dark] .cat-app{--c:#53c4b4}:root[data-theme=dark] .cat-arcade{--c:#b791e8}:root[data-theme=dark] .cat-engine{--c:#a8a29e}:root[data-theme=dark] .cat-fps{--c:#e29a72}:root[data-theme=dark] .cat-platform{--c:#86a8f8}:root[data-theme=dark] .cat-puzzle{--c:#a9c86b}:root[data-theme=dark] .cat-racing{--c:#e5a54d}:root[data-theme=dark] .cat-reflex{--c:#e893b4}:root[data-theme=dark] .cat-rpg{--c:#ef8080}:root[data-theme=dark] .cat-shooter{--c:#94a3b8}.tag.st-playable,.tag.st-experimental,.tag.st-prerelease,.tag.st-source-only,.tag.owned,.tag.free,.tag[class*=cat-]{color:var(--c);border-color:var(--c)}.tag.st-playable.hit,.tag.st-experimental.hit,.tag.st-prerelease.hit,.tag.st-source-only.hit,.tag.owned.hit,.tag.free.hit,.tag[class*=cat-].hit{background:var(--c);color:var(--paper)}.chip.st-playable,.chip.st-experimental,.chip.st-prerelease,.chip.st-source-only,.chip.owned,.chip.free,.chip[class*=cat-]{color:var(--c);border-color:var(--c);background:var(--paper)}.chip.st-playable.active,.chip.st-experimental.active,.chip.st-prerelease.active,.chip.st-source-only.active,.chip.owned.active,.chip.free.active,.chip[class*=cat-].active{background:var(--c);color:var(--paper)}.chip.st-playable.active:hover,.chip.st-experimental.active:hover,.chip.st-prerelease.active:hover,.chip.st-source-only.active:hover,.chip.owned.active:hover,.chip.free.active:hover,.chip[class*=cat-].active:hover{background:var(--c)}.group-cat{color:var(--c)}.notes{color:var(--ink-dim);margin:8px 0 0;font-size:14px}.empty{font:400 14px / 1 var(--font-mono);color:var(--ink-dim);text-align:center;padding:48px 0}.by{font:400 12px / 1.4 var(--font-mono);color:var(--ink-dim);margin:4px 0 0}.tag.link{color:var(--ink);border-color:var(--ink);cursor:pointer}.tag.link:hover{background:var(--rule);color:var(--paper)}.porters-grid{grid-template-columns:repeat(auto-fill,minmax(min(380px,100%),1fr));gap:16px;padding-top:8px;display:grid}.porter{border:1px solid var(--rule);border-top:3px solid var(--rule);background:var(--paper);grid-template-columns:72px 1fr;align-items:start;gap:16px;padding:20px 16px 16px;animation:.35s both rise;display:grid;position:relative}.porter:hover{background:var(--paper-2)}.porter .idx{position:absolute;top:8px;right:12px}.porter-count{color:var(--accent);margin-left:8px}.avatar{object-fit:cover;border:1px solid var(--rule);background:var(--paper-2);width:72px;height:72px;display:block}.avatar.ph{color:var(--ink-dim);font:600 30px / 1 var(--font-mono);justify-content:center;align-items:center;display:flex}.porter-name{font:700 22px / 1.2 var(--font-display);letter-spacing:-.01em;margin:0}.porter-handle{font:400 12px / 1.4 var(--font-mono);color:var(--ink-dim);margin:2px 0 0}.porter-bio{color:var(--ink-dim);max-width:560px;margin:8px 0 0;font-size:14px}.porter .tags{margin:10px 0 0}.porter-ports{flex-direction:column;gap:8px;margin:14px 0 0;padding:0;list-style:none;display:flex}.porter-ports li{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.porter-ports a{font:700 16px / 1.3 var(--font-display);text-underline-offset:3px;text-decoration:underline}.porter-ports a:hover{color:var(--accent)}.porter-avatar-link{display:block}.detail-head,.not-found-title{padding-top:8px}.empty-left{text-align:left;padding:16px 0}.detail-no{font:600 12px / 1 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin:0 0 16px}.detail-title{font:900 clamp(2rem, 5vw, 3rem) / 1 var(--font-display);letter-spacing:-.02em;text-transform:uppercase;word-break:break-word;margin:0}.detail-by{font:400 13px / 1.6 var(--font-mono);color:var(--ink-dim);margin:12px 0 0}.detail-by a,.spec-links a,.by a{text-underline-offset:3px;text-decoration:underline}.detail-by a:hover,.spec-links a:hover,.by a:hover,.porter-name a:hover{color:var(--accent)}.detail-grid{grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:32px;margin-top:28px;display:grid}.plate{border:1px solid var(--rule);background:var(--paper-2);margin:0;padding:12px}.plate-img{object-fit:contain;background:var(--paper-2);width:100%;max-height:420px;display:block}.plate-img[src$=\.svg]{max-height:160px;margin:32px auto}:root[data-theme=dark] .plate-img[src*=simple-icons]{filter:invert()}.plate-img.ph{height:240px;color:var(--line);font:400 48px / 1 var(--font-mono);justify-content:center;align-items:center;display:flex}.plate-cap{font:400 11px / 1.5 var(--font-mono);color:var(--ink-dim);letter-spacing:.06em;text-transform:uppercase;margin:10px 0 0}.detail-notes{max-width:560px;margin:20px 0 0;font-size:15px}.spec{border:1px solid var(--rule)}.spec-row{border-bottom:1px solid var(--line);grid-template-columns:96px 1fr;align-items:baseline;gap:12px;padding:12px;display:grid}.spec-row:last-child{border-bottom:none}.spec-k{font:600 11px / 1.4 var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-dim)}.spec-v{font:400 14px / 1.4 var(--font-display);word-break:break-word}.stamp{text-align:center;font:600 13px / 1 var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--accent);border:2px solid var(--accent);margin-top:16px;padding:14px 12px;transition:background .1s,color .1s;display:block}.stamp:hover{background:var(--accent);color:var(--paper)}.stamp:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.porter-detail{grid-template-columns:96px 1fr;align-items:start;gap:24px;padding-top:8px;display:grid}.avatar-lg{width:96px;height:96px}.avatar-lg.ph{font-size:40px}.porter-detail-info .porter-bio,.porter-detail-info .tags{margin-top:12px}.detail-section{font:600 12px / 1 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;border-bottom:2px solid var(--rule);justify-content:space-between;margin:40px 0 0;padding:10px 0;display:flex}.detail-section .n{color:var(--accent)}.detail-section+.porter-ports{margin-top:16px}@media (width<=720px){.detail-grid{grid-template-columns:1fr}.porter-detail{grid-template-columns:72px 1fr;gap:16px}.avatar-lg{width:72px;height:72px}.avatar-lg.ph{font-size:30px}}.site-footer{border-top:3px solid var(--rule);margin-top:24px}.site-footer .wrap{padding-top:16px;padding-bottom:40px}.site-footer p{font:400 12px / 1.6 var(--font-mono);color:var(--ink-dim);max-width:640px;margin:8px 0}.site-footer a{color:var(--ink);text-underline-offset:3px;text-decoration:underline}@keyframes rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.row,.porter{animation:none}}@media (width<=560px){.porter-detail{grid-template-columns:56px 1fr}.avatar-lg,.avatar-lg.ph{width:56px;height:56px}.avatar-lg.ph{font-size:24px}.row{grid-template-columns:32px 72px 1fr;gap:12px}.thumb{width:72px;height:56px}.avatar{width:56px;height:56px}.avatar.ph{font-size:22px}.chips-group .lbl{width:100%}}@font-face{font-family:Archivo;font-style:normal;font-display:swap;font-weight:400;src:url(./archivo-latin-400-normal-C81ewxNO.woff2)format("woff2"),url(./archivo-latin-400-normal-Bl602Mgc.woff)format("woff")}@font-face{font-family:Archivo;font-style:normal;font-display:swap;font-weight:700;src:url(./archivo-latin-700-normal-D9cHMWGj.woff2)format("woff2"),url(./archivo-latin-700-normal-lT5TFe7H.woff)format("woff")}@font-face{font-family:Archivo;font-style:normal;font-display:swap;font-weight:900;src:url(./archivo-latin-900-normal-D5FQlLQC.woff2)format("woff2"),url(./archivo-latin-900-normal-b9gKmcX7.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2)format("woff2"),url(./ibm-plex-mono-latin-400-normal-CvHOgSBP.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(./ibm-plex-mono-latin-600-normal-BgSNZQsw.woff2)format("woff2"),url(./ibm-plex-mono-latin-600-normal-DWFSQ4vo.woff)format("woff")}
