:root{color-scheme:light;--paper:#f5f2e9;--ink:#242722;--muted:#62645c;--accent:#c83a17;--line:#cdcfc3}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:24px}
body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.5 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
a{color:inherit;text-underline-offset:4px}
a:focus-visible{outline:3px solid var(--ink);outline-offset:5px}
.wrap{max-width:1260px;margin:auto;padding-inline:44px}
.skip{position:absolute;left:20px;top:-70px;z-index:5;padding:12px;background:var(--ink);color:var(--paper)}
.skip:focus{top:12px}
.masthead{display:flex;align-items:center;justify-content:space-between;padding-block:18px;border-bottom:1px solid var(--line)}
.wordmark{font-size:38px;font-weight:900;line-height:1;letter-spacing:-3px;text-decoration:none}
.dot{color:var(--accent)}
nav{display:flex;gap:28px;font-size:13px;font-weight:600}
nav a{text-decoration:none}
nav a:hover{text-decoration:underline}
.hero{text-align:center;padding-block:34px 39px}
.portrait{position:relative;display:block;width:80px;height:80px;margin:0 auto 17px;transform:rotate(-6deg);transition:transform .2s}
.portrait img{display:block;width:80px;height:80px;object-fit:cover;border:2px solid var(--ink);border-radius:50%;image-rendering:pixelated;box-shadow:4px 4px 0 var(--ink)}
.portrait span{position:absolute;left:72px;top:5px;background:var(--ink);color:var(--paper);font:10px/1 monospace;letter-spacing:1px;padding:8px 10px;transform:rotate(8deg)}
.portrait:hover,.portrait:focus-visible{transform:rotate(6deg) scale(1.08)}
.eyebrow{font:10px/1.5 monospace;text-transform:uppercase;letter-spacing:1.7px;margin:0 0 12px}
h1{font-size:clamp(48px,10.7vw,136px);font-weight:950;letter-spacing:-.075em;line-height:.95;margin:0}
.hero h1 .dot{display:inline-block;font-size:.65em;vertical-align:top;margin-left:5px;transform:rotate(12deg)}
.tagline{font-size:19px;margin:17px 0 0;letter-spacing:-.4px}
.section-heading{display:flex;justify-content:space-between;padding:0 0 12px;font:10px/1.5 monospace;text-transform:uppercase;letter-spacing:1.5px}
.section-heading span:last-child{letter-spacing:12px}
.portals{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.portal{padding:21px 26px 25px;border:2px solid var(--ink);border-radius:7px;box-shadow:0 5px 0 var(--ink);transition:transform .18s,box-shadow .18s}
.portal:hover,.portal:focus-within{transform:translateY(-4px);box-shadow:0 9px 0 var(--ink)}
.play{background:#f8ac8d}.use{background:#d5e995}.read{background:#cdc7f0}
.portal-top{display:flex;align-items:center;justify-content:space-between;gap:8px;font:10px/1.4 monospace;text-transform:uppercase;letter-spacing:.6px}
.portal-top>span:last-child{font:22px/1 system-ui}
.portal h2{font-size:64px;letter-spacing:-4px;line-height:1;margin:20px 0 24px;font-weight:850}
.portal h2 span{color:var(--paper)}
.project-grid{list-style:none;padding:22px 0 0;margin:0;border-top:1px solid #24272250;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 12px}
.project-grid li{text-align:center;min-width:0}
.project-tile{display:flex;flex-direction:column;align-items:center;gap:10px;text-decoration:none;font-size:12px;line-height:1.35;font-weight:650}
.project-icon{display:block;width:64px;height:64px;object-fit:contain;border-radius:13px;transition:transform .18s,box-shadow .18s}
.project-tile:hover .project-icon,.project-tile:focus-visible .project-icon{transform:translateY(-4px) rotate(-4deg);box-shadow:3px 5px 0 #24272230}
.project-tile:hover>span:last-child{text-decoration:underline}
.plugin-icon,.tools-icon{padding:9px;background:var(--paper);border:2px solid var(--ink)}
.tools-icon{background:#ffcf7c}.project-icon svg{width:100%;height:100%}
.related-project{display:inline-block;font-size:10px;line-height:1.5;padding:8px 0 2px}
.play{display:flex;flex-direction:column}
.games-feature{flex:1;min-height:280px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:35px;border-top:1px solid #24272250;text-decoration:none}
.games-feature img{width:100%;height:auto;image-rendering:pixelated;transition:transform .2s}
.games-feature span{font:10px/1.5 monospace;letter-spacing:2px}
.games-feature:hover img,.games-feature:focus-visible img{transform:rotate(-4deg) scale(1.03)}
.games-feature:hover span{text-decoration:underline}
footer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-block:30px!important;margin-top:17px!important;font-size:11px;color:var(--muted)}
.footer-star{color:var(--accent);padding-inline:10px;font-size:17px;vertical-align:middle}
.support,.landing{padding-block:62px;min-height:70vh}
.support{max-width:800px}.support h1,.landing h1{font-size:clamp(48px,8vw,90px);letter-spacing:-.06em;line-height:1.05;margin-bottom:25px}
.support h2{margin-top:36px;font-size:25px;letter-spacing:-.7px}.support p{max-width:640px}.landing-intro{max-width:480px;color:var(--muted);margin-bottom:36px}
.plugin-card{max-width:750px;border:2px solid var(--ink);border-radius:7px;background:#d5e995;box-shadow:5px 5px 0 var(--ink);padding:30px}
.badge{display:inline-block;font:10px/1.5 monospace;text-transform:uppercase;letter-spacing:1px;border:1px solid var(--ink);border-radius:30px;padding:5px 10px}
.plugin-card h2{font-size:32px;letter-spacing:-1px;margin:20px 0 12px}.plugin-card p{max-width:560px;font-size:15px}.plugin-card .availability{font-size:13px}
.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}.button{display:inline-block;padding:11px 16px;border:2px solid var(--ink);border-radius:4px;font-size:13px;font-weight:650;text-decoration:none;background:var(--ink);color:var(--paper)}.button.secondary{background:transparent;color:var(--ink)}.button:hover{text-decoration:underline}
@media(min-width:1000px){body:has(.portal.play:hover) .portrait{transform:rotate(-12deg)}body:has(.portal.read:hover) .portrait{transform:rotate(12deg)}}
@media(max-width:900px){.wrap{padding-inline:26px}.portal{padding-inline:18px}.portal-top{font-size:9px;letter-spacing:0}.portal h2{font-size:54px}.project-links a{font-size:12px}.illustration{height:125px}.illustration svg{height:115px}.hero{padding-block:30px}}
@media(max-width:650px){.wrap{padding-inline:20px}.masthead{padding-block:18px}nav{gap:16px;font-size:11px}.wordmark{font-size:32px}.hero{padding-block:32px}.hero h1{font-size:clamp(40px,11vw,72px)}.eyebrow{font-size:8px;letter-spacing:1px}.tagline{font-size:16px;margin-top:12px}.portals{grid-template-columns:1fr;gap:22px}.portal{position:relative;padding:21px 23px 20px}.portal h2{font-size:61px;margin-top:36px}.illustration{position:absolute;right:17px;top:48px;width:128px;height:87px;margin:0}.illustration svg{width:128px;height:87px}.portal-top{font-size:10px;letter-spacing:.5px}.category{margin-bottom:24px}.project-links a{font-size:14px;min-height:45px}.section-heading{font-size:9px}footer{align-items:flex-start;font-size:10px;gap:12px}.footer-star{padding-inline:4px}.support,.landing{padding-block:42px}.plugin-card{padding:23px}.plugin-card h2{font-size:28px}}
@media(max-width:360px){nav{gap:11px;font-size:10px}.illustration,.illustration svg{width:60px}.portal h2{font-size:54px}.portal-top{font-size:9px}footer{flex-wrap:wrap}}
@media(min-width:651px) and (max-width:900px){.project-grid{gap:22px 8px}.project-tile{font-size:11px}.project-icon{width:54px;height:54px}}
@media(max-width:650px){.portal h2{margin:20px 0 24px}.project-grid{gap:26px 16px}.project-tile{font-size:13px}.games-feature{min-height:200px;padding:28px 0 12px}.games-feature img{max-width:360px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}.portal:hover,.portal:focus-within,.portrait:hover,.portrait:focus-visible,body:has(.portal:hover) .portrait,.portal:hover svg{transform:none}}
@media(prefers-reduced-motion:reduce){.project-tile .project-icon,.games-feature img{transform:none!important}}
