:root{--bg: #f3f1ec;--ink: #141412;--dim: #6d6a63;--tile: #e9e5dc;--reel-bg: #1a0a22;--line: rgba(20, 20, 18, .14);--dither-alpha: .12;--header-ink: #fff;--sans: "Satoshi", -apple-system, BlinkMacSystemFont, "SF Pro Display", "Inter", system-ui, "Segoe UI", Roboto, sans-serif;--mono: "Geist Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--fw-medium: 500;--fw-bold: 700;--fs-sm: .8rem;--fs-md: .9rem;--fs-body: 1.0625rem;--fs-body-sm: 1rem;--fs-h3: 1.4rem;--fs-h2: clamp(1.9rem, 4.5vw, 3rem);--fs-mail: clamp(1.1rem, calc((100vw - 3rem) / 13.4), 4.5rem);--fs-doc-h1: clamp(2.2rem, 6vw, 3.25rem);--fs-h1: clamp(1.6rem, calc((100vw - 3rem) / 7.8), 7rem);--lh-body: 1.6;--track-h1: -.045em;--track-h2: -.04em;--track-h3: -.03em;--track-tight: -.01em;--track-label: .12em;--lh-heading: 1.08;--space-1: .25rem;--space-2: .5rem;--space-3: 1rem;--space-4: 1.5rem;--space-5: 2rem;--space-6: 4rem;--wrap: 64rem;--wrap-doc: 44rem;--gutter: 1.5rem;--header-h: 4.5rem;--footer-h: clamp(17rem, 46svh, 22rem);--reveal-extra: 5rem;--seam-h: 5rem;--radius-icon: 16px;--radius-pill: 999px;--shadow-icon: 0 6px 20px rgba(20, 20, 18, .16);--dur: .25s;--cursor-size: 18px;--cursor-link: 56px}@media(max-width:40rem){:root{--header-h: 3.25rem;--fs-h1: clamp(1.8rem, calc((100vw - 3rem) / 5.9), 7rem)}}@media(prefers-color-scheme:dark){:root{--bg: #0d0d0c;--ink: #efece5;--dim: #8d8980;--tile: #171715;--line: rgba(239, 236, 229, .14);--dither-alpha: .15}}@font-face{font-family:Satoshi;src:url(/assets/satoshi-400-CPM9dct4.woff2) format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Satoshi;src:url(/assets/satoshi-500-ByP-Zb-9.woff2) format("woff2");font-weight:500;font-display:swap}@font-face{font-family:Geist Mono;src:url(/assets/geist-mono-XN7g48iV.woff2) format("woff2");font-weight:100 900;font-display:swap}*{box-sizing:border-box}html{color-scheme:light dark;scroll-padding-top:calc(var(--header-h) + var(--space-3))}body{margin:0;background:var(--bg);color:var(--ink);font:var(--fs-body)/var(--lh-body) var(--sans);-webkit-font-smoothing:antialiased}.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gutter)}a{color:inherit;text-decoration-color:var(--dim);text-underline-offset:3px;transition:opacity var(--dur)}a:hover{opacity:.5}h1{margin:0;font-size:var(--fs-h1);font-weight:var(--fw-bold);line-height:var(--lh-heading);letter-spacing:var(--track-h1)}h2{margin:0 0 var(--space-5);font-size:var(--fs-h2);font-weight:var(--fw-bold);line-height:var(--lh-heading);letter-spacing:var(--track-h2)}h3{margin:1.25rem 0 .4rem;font-size:var(--fs-h3);font-weight:var(--fw-bold);line-height:var(--lh-heading);letter-spacing:var(--track-h3)}.clip{display:block;overflow:hidden;padding:.2em 0;margin:-.2em 0}.clip>*{display:block}.eyebrow{margin:0 0 var(--space-5);font:var(--fs-sm) var(--mono);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--dim)}.rule{position:relative}.rule:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:var(--line);transform:scaleX(var(--draw, 1));transform-origin:left}.app-icon{width:72px;height:72px;border-radius:var(--radius-icon);box-shadow:var(--shadow-icon)}.pill{display:inline-block;padding:var(--space-1) .85rem;border:1px solid var(--line);border-radius:var(--radius-pill);color:var(--dim);font:var(--fs-sm) var(--mono);letter-spacing:var(--track-label);text-transform:uppercase}::selection{background:var(--ink);color:var(--bg)}.page{position:relative;z-index:1;flex:1 0 auto;background:var(--bg)}.contact-anchor{display:block;height:0}.cover{position:relative;z-index:1;background:var(--bg)}@media(min-width:40.0625rem)and (hover:hover){.page{margin-bottom:calc(var(--footer-h) + var(--reveal-extra))}}.slim{--footer-h: 5rem;--reveal-extra: 0rem}.site{display:flex;flex-direction:column;min-height:100svh;-webkit-user-select:none;user-select:none}.site :is(img,video){pointer-events:none;-webkit-user-drag:none}.cursor{position:fixed;top:0;left:0;z-index:100;pointer-events:none;opacity:0}.cursor-ring{position:relative;display:grid;place-items:center;width:var(--cursor-size);height:var(--cursor-size);border-radius:50%;border:1.5px solid var(--ink);color:var(--bg);transition:background-color var(--dur),border-color var(--dur)}.cursor-ring.is-link{background:var(--ink);border-color:var(--ink)}.cursor-icon{position:absolute;width:22px;height:22px;opacity:0}.loader-pixels{position:absolute;inset:0;width:100%;height:100%;image-rendering:pixelated}.navbar{position:sticky;top:0;z-index:10;margin-bottom:calc(var(--header-h) * -1);color:var(--header-ink);mix-blend-mode:difference;-webkit-user-select:none;user-select:none}.navbar .wrap{display:flex;justify-content:space-between;align-items:center;height:var(--header-h)}.navbar .logo{font:var(--fw-bold) var(--fs-md) var(--sans);letter-spacing:var(--track-tight);text-decoration:none;white-space:nowrap}.navbar .logo:hover{opacity:1}.navbar nav{display:flex;gap:var(--space-5)}.navbar nav a{font-size:var(--fs-sm);letter-spacing:var(--track-tight);text-decoration:none}@media(max-width:40rem){.navbar nav{gap:var(--space-4)}}@media(max-width:24rem){.navbar nav{gap:var(--space-3)}}@media(max-width:22rem){.navbar nav a[href$="#about"]{display:none}}html.lenis,html.lenis body{height:auto}.lenis:not(.lenis-autoToggle).lenis-stopped{overflow:clip}.lenis [data-lenis-prevent],.lenis [data-lenis-prevent-wheel],.lenis [data-lenis-prevent-touch],.lenis [data-lenis-prevent-vertical],.lenis [data-lenis-prevent-horizontal]{overscroll-behavior:contain}.lenis.lenis-smooth iframe{pointer-events:none}.lenis.lenis-autoToggle{transition-property:overflow;transition-duration:1ms;transition-behavior:allow-discrete}.about{padding:var(--space-6) 0 var(--space-3)}.about .lede{margin:0 0 var(--space-5);max-width:18ch;font-size:var(--fs-h2);font-weight:var(--fw-medium);line-height:var(--lh-heading);letter-spacing:var(--track-h2)}.about .body{margin:0;max-width:34rem;color:var(--dim)}.store{display:inline-flex;align-items:center;gap:.55em;padding:var(--space-1) .85rem var(--space-1) .7rem;border:1px solid var(--line);border-radius:var(--radius-pill);font:var(--fs-sm) var(--sans);letter-spacing:var(--track-tight);text-decoration:none;transition:border-color var(--dur)}.store:hover{border-color:var(--ink);opacity:1}.store-icon{width:1em;height:1em;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20512%20512'%3e%3c!--!%20Font%20Awesome%20Free%206.7.2%20by%20@fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license/free%20(Icons:%20CC%20BY%204.0,%20Fonts:%20SIL%20OFL%201.1,%20Code:%20MIT%20License)%20Copyright%202024%20Fonticons,%20Inc.%20--%3e%3cpath%20d='M325.3%20234.3L104.6%2013l280.8%20161.2-60.1%2060.1zM47%200C34%206.8%2025.3%2019.2%2025.3%2035.3v441.3c0%2016.1%208.7%2028.5%2021.7%2035.3l256.6-256L47%200zm425.2%20225.6l-58.9-34.1-65.7%2064.5%2065.7%2064.5%2060.1-34.1c18-14.3%2018-46.5-1.2-60.8zM104.6%20499l280.8-161.2-60.1-60.1L104.6%20499z'/%3e%3c/svg%3e") center / contain no-repeat;mask:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20512%20512'%3e%3c!--!%20Font%20Awesome%20Free%206.7.2%20by%20@fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license/free%20(Icons:%20CC%20BY%204.0,%20Fonts:%20SIL%20OFL%201.1,%20Code:%20MIT%20License)%20Copyright%202024%20Fonticons,%20Inc.%20--%3e%3cpath%20d='M325.3%20234.3L104.6%2013l280.8%20161.2-60.1%2060.1zM47%200C34%206.8%2025.3%2019.2%2025.3%2035.3v441.3c0%2016.1%208.7%2028.5%2021.7%2035.3l256.6-256L47%200zm425.2%20225.6l-58.9-34.1-65.7%2064.5%2065.7%2064.5%2060.1-34.1c18-14.3%2018-46.5-1.2-60.8zM104.6%20499l280.8-161.2-60.1-60.1L104.6%20499z'/%3e%3c/svg%3e") center / contain no-repeat}@media(hover:hover)and (pointer:fine){.store-icon{display:none}.store{padding-left:.85rem}}.games{padding:var(--space-6) 0}.feature{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:var(--space-6);align-items:center;padding-top:var(--space-4);margin-bottom:var(--space-5)}.feature .text{display:flex;flex-direction:column;align-items:flex-start}.feature .text img{margin-bottom:var(--space-4);image-rendering:pixelated}.feature h3{margin:0 0 var(--space-3);font-size:var(--fs-h2)}.feature .lede{margin:0 0 var(--space-3);max-width:22ch;font-size:var(--fs-h3);font-weight:var(--fw-medium);line-height:var(--lh-heading);letter-spacing:var(--track-h3)}.feature .body{margin:0 0 var(--space-4);max-width:32rem;color:var(--dim);font-size:var(--fs-body-sm);letter-spacing:var(--track-tight)}.feature .status{margin:0}.feature .art{position:relative;margin:0;overflow:hidden;cursor:pointer;background:var(--reel-bg);border-radius:var(--radius-icon);aspect-ratio:1152 / 640}.feature .art video{display:block;width:100%;height:100%;object-fit:cover}.reel-toggle{position:absolute;right:var(--space-3);bottom:var(--space-3);padding:var(--space-1) .85rem;border:1px solid rgba(243,241,236,.35);border-radius:var(--radius-pill);background:#0d0d0c8c;color:#f3f1ec;font:var(--fs-sm) var(--mono);letter-spacing:var(--track-label);text-transform:uppercase;cursor:pointer;opacity:0;pointer-events:none;transition:opacity var(--dur)}.art.show-controls .reel-toggle,.reel-toggle:focus-visible,html:not(.has-cursor) .art[data-paused=true] .reel-toggle{opacity:1;pointer-events:auto}@media(hover:hover){html:not(.has-cursor) .art:hover .reel-toggle{opacity:1;pointer-events:auto}}.reel-toggle:hover,.reel-toggle:focus-visible{background:#0d0d0ccc;border-color:#f3f1ec}.games .grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-6);padding:0;margin:0;list-style:none}.games .grid li{display:flex;flex-direction:column;align-items:flex-start;padding-top:var(--space-4)}.games .grid li p{margin:0 0 1.25rem;color:var(--dim);font-size:var(--fs-body-sm);letter-spacing:var(--track-tight)}.games .store,.games .pill{margin-top:auto}.games .pill{font:var(--fs-sm) var(--sans);letter-spacing:var(--track-tight);text-transform:none}.games .all{margin:var(--space-5) 0 0;font-size:var(--fs-sm);letter-spacing:var(--track-tight)}.games .all a{text-decoration:none}@media(min-width:40.0625rem)and (hover:hover){.games{padding-bottom:var(--space-5)}}@media(max-width:40rem){.feature{grid-template-columns:1fr;gap:var(--space-5);margin-bottom:var(--space-4)}.games .grid{grid-template-columns:1fr}.games .grid li:nth-child(n+3){display:none}}.hero{position:relative;display:grid;place-items:center;height:100svh;min-height:32rem;padding:0 var(--gutter);background:var(--tile);text-align:center}.hero h1 .line{display:block;overflow:hidden;white-space:nowrap;padding:.1em .08em .14em;margin:-.1em 0 -.14em}.hero h1 .line>span{display:inline-block}.outline{color:transparent;-webkit-text-stroke:max(.75px,.016em) var(--dim);letter-spacing:0}.hero h1 .line.rotator{display:grid}.rotator>.outline{grid-area:1 / 1}.rotator>.outline+.outline{visibility:hidden}.ch{display:inline-block;white-space:pre}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.dither{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;image-rendering:pixelated}.hero-bar{position:absolute;top:0;left:0;right:0;z-index:2;display:flex;align-items:flex-end;height:100svh;min-height:32rem;padding-bottom:var(--space-4);pointer-events:none}.hero-bar .wrap{display:flex;justify-content:space-between;align-items:center;width:100%;font:var(--fs-sm) var(--mono);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--dim);pointer-events:auto}.hero-bar a{text-decoration:none}@media(min-width:40.0625rem)and (hover:hover){.hero{position:sticky;top:0}}.footer{position:relative;background:var(--tile);padding:var(--seam-h) 0 var(--space-4);font-size:var(--fs-sm)}.footer .eyebrow{margin-bottom:var(--space-3)}.footer .mail{display:inline-block;overflow:hidden;padding-bottom:.12em;margin-bottom:calc(var(--space-6) - .12em);white-space:nowrap;font-size:var(--fs-mail);font-weight:var(--fw-medium);letter-spacing:var(--track-h2);line-height:1.2;text-decoration:none;transition:color var(--dur)}.footer .mail:hover{color:var(--dim);opacity:1}.footer .bar{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--space-2) var(--space-4);padding-top:var(--space-3);color:var(--dim)}.footer nav{display:flex;gap:var(--space-4)}.footer nav a{text-decoration:none}.footer nav .short{display:none}@media(max-width:40rem){.footer nav .full{display:none}.footer nav .short{display:inline}}.seam{position:absolute;top:0;left:0;width:100%;height:var(--seam-h);pointer-events:none;image-rendering:pixelated}.footer.slim{padding:var(--space-4) 0}.footer.slim .bar{padding-top:0}.footer.slim .bar:before{display:none}@media(min-width:40.0625rem)and (hover:hover){.footer{position:fixed;left:0;right:0;bottom:0;z-index:0;height:var(--footer-h);padding:0}.footer .wrap{height:100%;display:flex;flex-direction:column;justify-content:space-between;padding-top:calc(var(--seam-h) + var(--space-2));padding-bottom:var(--space-4)}.footer .mail{margin-bottom:-.12em}.footer.slim .wrap{flex-direction:row;align-items:center;padding:0 var(--gutter)}.footer.slim .bar{width:100%}}.portfolio{padding-top:calc(var(--header-h) + var(--space-6));padding-bottom:var(--space-6)}.portfolio .eyebrow{margin-bottom:var(--space-3)}.portfolio h1{margin-bottom:var(--space-6);font-size:var(--fs-doc-h1);letter-spacing:var(--track-h2)}.index{padding:0;margin:0;list-style:none;border-bottom:1px solid var(--line)}.index li{display:grid;grid-template-columns:72px minmax(0,1fr) auto;align-items:center;gap:var(--space-4);padding:var(--space-4) 0}.index h2{margin:0 0 var(--space-1);font-size:var(--fs-h2)}.index .info p{margin:0;color:var(--dim);font-size:var(--fs-body-sm);letter-spacing:var(--track-tight)}.index .meta{--genre-w: 6rem;--action-w: 11rem;display:flex;align-items:center;justify-content:flex-end;gap:var(--space-4)}.index .genre{width:var(--genre-w);font:var(--fs-sm) var(--mono);letter-spacing:var(--track-label);text-transform:uppercase;text-align:right;color:var(--dim)}.index .store,.index .pill{width:var(--action-w);justify-content:center;text-align:center;white-space:nowrap}.index .pill{font:var(--fs-sm) var(--sans);letter-spacing:var(--track-tight);text-transform:none}@media(max-width:40rem){.portfolio{padding-top:calc(var(--header-h) + var(--space-5));padding-bottom:var(--space-5)}.portfolio h1{margin-bottom:var(--space-5)}.index li{grid-template-columns:72px minmax(0,1fr);grid-template-areas:"icon name" "icon genre" "blurb blurb" "action action";gap:0 var(--space-3);padding:var(--space-5) 0}.index .info,.index .meta{display:contents}.index img{grid-area:icon}.index h2{grid-area:name;align-self:end;margin:0}.index .genre{grid-area:genre;align-self:start;width:auto;margin-top:var(--space-1);text-align:left}.index .info p{grid-area:blurb;margin:var(--space-4) 0 0}.index .store,.index .pill{grid-area:action;display:flex;align-items:center;justify-content:center;width:100%;min-height:2.75rem;margin-top:var(--space-4);font-size:var(--fs-body-sm)}}.doc{max-width:var(--wrap-doc);padding-bottom:var(--space-6)}.doc h1{margin:var(--space-6) 0 var(--space-2);padding-top:var(--header-h);font-size:var(--fs-doc-h1);letter-spacing:var(--track-h2)}.doc h2{margin:2.75rem 0 .75rem;font-size:var(--fs-h3);letter-spacing:var(--track-h3)}.doc ul{padding-left:1.25rem}.doc .updated{margin:0 0 2.5rem;color:var(--dim);font:var(--fs-sm) var(--mono)}.enter{appearance:none;margin-top:var(--space-4);padding:var(--space-2) 1.1rem;border:1px solid var(--line);border-radius:var(--radius-pill);background:none;color:var(--ink);font:var(--fs-sm) var(--sans);letter-spacing:var(--track-tight);cursor:pointer;transition:border-color var(--dur)}.enter:hover,.enter:focus-visible{border-color:var(--ink)}.enter:disabled{cursor:default;color:var(--dim)}
