.illustrated-artwork{background:#f7f5ee}.illustrated-artwork.art-vibeking{background:#f0d777}.illustrated-artwork.art-speechking{background:#c0dfee}.illustration-stage{border-radius:inherit;visibility:hidden;cursor:default;touch-action:pan-y;-webkit-tap-highlight-color:transparent;background:0 0;border:0;width:100%;height:100%;padding:0;display:block;position:absolute;inset:0;overflow:hidden}.illustration-stage svg{width:100%;height:100%;display:block}.illustrated-artwork:has(.illustration-stage:focus-visible){outline:2px solid var(--blue);outline-offset:6px}.illustration-stage:focus-visible{outline:none}.illustrated-artwork[data-motion=ready] .illustration-stage{visibility:visible}.illustrated-artwork:is([data-motion=preparing],[data-motion=ready]) .illustration-still{visibility:hidden}@media (prefers-reduced-motion:reduce){.illustrated-artwork[data-motion] .illustration-stage{visibility:hidden}.illustrated-artwork[data-motion] .illustration-still{visibility:visible}}@font-face{font-family:Newsreader;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/newsreader-regular.ttf)format("truetype")}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/jakarta-regular.ttf)format("truetype")}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/jakarta-medium.ttf)format("truetype")}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--paper:#f7f5ee;--ink:#292923;--muted:#686a60;--rule:#d8d9cd;--blue:#355fc0;--serif:"Newsreader", Georgia, "Times New Roman", serif;--sans:"Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--space-section:5rem}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:2.5rem}body{background:var(--paper);color:var(--ink);font:400 1rem/1.65 var(--sans);-webkit-font-smoothing:antialiased;margin:0}::selection{color:var(--ink);background:#e5cd7280}a{color:inherit;text-underline-offset:5px;text-decoration-thickness:1px}a,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,summary:focus-visible{outline:2px solid var(--blue);outline-offset:6px;border-radius:2px}button,input{font:inherit}h1,h2,h3,p{margin:0}img{max-width:100%;display:block}.icon-library{width:0;height:0;position:absolute;overflow:hidden}.icon{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;flex:0 0 18px;width:18px;height:18px;display:inline-block}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:20;background:var(--ink);color:var(--paper);padding:.75rem 1rem;position:fixed;top:1rem;left:1rem;transform:translateY(-200%)}.skip-link:focus{transform:translateY(0)}.page-shell{width:min(1240px,100% - 112px);margin:0 auto}.site-header{border-bottom:1px solid var(--rule);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.25rem 2rem;min-height:94px;padding-block:12px;display:flex}.wordmark{letter-spacing:-.025em;align-items:center;min-height:44px;font-size:.9375rem;text-decoration:none;display:inline-flex}.top-nav{flex-wrap:wrap;align-items:center;gap:.25rem 1.5rem;display:flex}.top-nav a{min-width:44px;min-height:44px;color:var(--muted);justify-content:center;align-items:center;padding-inline:4px;font-size:.875rem;text-decoration:none;display:inline-flex}.top-nav a:hover{color:var(--ink);text-decoration:underline}.studio-layout{grid-template-columns:220px minmax(0,1fr);align-items:start;column-gap:96px;padding:82px 0 100px;display:grid}.profile{align-self:start;position:sticky;top:48px}.profile-column{align-self:stretch}.profile-column,.profile,.work-column,.project-copy,.index-project-copy{min-width:0}.profile-bio,.project-copy,.index-project-copy{overflow-wrap:anywhere}.portrait{object-fit:cover;object-position:50% 45%;border-radius:50% 47% 48% 43%/50% 45% 53% 47%;width:120px;height:132px;margin-bottom:30px}.profile-name{font-family:var(--serif);letter-spacing:-.04em;margin-bottom:14px;font-size:2.125rem;font-weight:400;line-height:1.15}.profile-bio{color:var(--muted);font-size:1rem;line-height:1.65}.profile-founder{color:var(--muted);-webkit-text-decoration-color:var(--rule);text-decoration-color:var(--rule);margin-top:14px;padding-block:4px;font-size:.875rem;line-height:1.7;display:block}.profile-founder:hover{color:var(--ink);-webkit-text-decoration-color:var(--ink);text-decoration-color:var(--ink)}.profile-nav{flex-direction:column;align-items:flex-start;gap:3px;margin-top:35px;display:flex}.profile-nav a{min-height:44px;-webkit-text-decoration-color:var(--rule);text-decoration-color:var(--rule);color:var(--muted);align-items:center;font-size:.9375rem;display:flex}.profile-nav a:hover{color:var(--ink);-webkit-text-decoration-color:var(--ink);text-decoration-color:var(--ink)}.text-link{color:var(--blue);overflow-wrap:anywhere;align-items:center;gap:9px;max-width:100%;min-height:44px;font-size:.875rem;text-decoration:none;display:inline-flex}.text-link:hover{text-decoration:underline}.text-link .icon{transition:transform .18s}.text-link:hover .icon{transform:translate(2px,-2px)}.introduction{padding-bottom:73px;position:relative}.introduction-copy{max-width:54ch;color:var(--muted);margin-top:28px;font-size:1rem;line-height:1.8}.project-breadcrumbs ol{color:var(--muted);flex-wrap:wrap;align-items:center;gap:12px;margin:0;padding:0;font-size:.875rem;list-style:none;display:flex}.project-breadcrumbs li+li:before{content:"/";color:var(--rule);margin-right:12px}.project-breadcrumbs a{min-height:44px;-webkit-text-decoration-color:var(--rule);text-decoration-color:var(--rule);align-items:center;display:inline-flex}.project-identity a{-webkit-text-decoration-color:var(--rule);text-decoration-color:var(--rule)}h1{font-family:var(--serif);letter-spacing:-.055em;text-wrap:balance;font-size:clamp(2.75rem,4.9vw,4.625rem);font-weight:400;line-height:1.045}.ink-stroke{background:var(--blue);border-radius:90% 60% 75% 40%;width:94px;height:4px;margin:21px 0 0 auto;display:block;transform:rotate(-4deg)}.section-label{color:var(--muted);margin-bottom:24px;font-size:.875rem;font-weight:400;line-height:1.5}.project{min-width:0}.project-art{isolation:isolate;background:#ece9df;border-radius:13px;width:100%;min-width:0;max-width:100%;display:block;position:relative;overflow:hidden}.project-art img{-webkit-user-select:none;user-select:none;pointer-events:none;max-width:none;height:auto;position:absolute}.art-vibeking{aspect-ratio:391/234;background:#f0d777}.art-vibeking img{width:320.716%;top:-286.752%;left:-95.9079%}.art-meemoo{aspect-ratio:390/234}.art-meemoo img{width:321.538%;top:-286.752%;left:-205.897%}.art-standalone{aspect-ratio:3/2;background:#f5f2e9}.art-standalone img{width:100%;max-width:100%;height:auto;position:static}.project-visual{min-width:0;max-width:100%}.project-grid .project-visual{aspect-ratio:3/2;background:#ece9df;border-radius:13px;align-items:center;display:flex}.project-grid .project-visual:has(.art-standalone){background:#f5f2e9}.project-grid .project-visual:has(.art-vibeking){background:#f0d777}.artwork-link:focus-visible{outline-offset:7px}.project-copy{padding-top:24px}.project h3{letter-spacing:-.045em;font-size:1.5625rem;font-weight:500;line-height:1.3}.project-description{color:var(--muted);margin-top:8px;font-size:1rem;line-height:1.55}.project-detail{color:var(--muted);max-width:56ch;margin-top:16px;font-size:1rem;line-height:1.75}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:64px 32px;margin-top:64px;display:grid}.project-wide{grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));align-items:center;gap:32px;display:grid}.project-wide .project-copy{padding-top:0}.project-notes{margin-top:13px}.project-notes summary{cursor:pointer;min-height:44px;color:var(--blue);align-items:center;gap:8px;font-size:.875rem;list-style:none;display:inline-flex}.project-notes summary::-webkit-details-marker{display:none}.project-notes summary:hover{text-underline-offset:5px;text-decoration:underline}.plus-icon{flex-basis:16px;width:16px;height:16px;transition:transform .18s}.project-notes[open] .plus-icon{transform:rotate(45deg)}.notes-content{border-left:1px solid var(--rule);max-width:60ch;margin-top:12px;padding:1px 0 1px 20px}.notes-content p{color:var(--muted);font-size:1rem;line-height:1.7}.notes-content a{margin-top:10px}.project-action{margin-top:13px}.founder-story{border-top:1px solid var(--rule);margin-top:80px;padding-top:32px}.founder-heading{flex-wrap:wrap;align-items:baseline;gap:8px 20px;margin-bottom:28px;display:flex}.founder-heading h2{letter-spacing:-.045em;font-size:1.5625rem;font-weight:500;line-height:1.3}.founder-heading p{color:var(--muted);font-size:.8125rem}.founder-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:32px;display:grid}.founder-preview{min-width:0;margin:0}.founder-preview>a{border-radius:12px;display:block;overflow:hidden}.founder-preview img{width:100%;height:auto}.founder-preview figcaption{color:var(--muted);margin-top:14px;font-size:.8125rem;line-height:1.6}.founder-copy{min-width:0}.founder-copy h3{font:400 2rem/1.15 var(--serif);letter-spacing:-.035em;text-wrap:balance}.founder-copy p{color:var(--muted);margin-top:18px;font-size:.9375rem;line-height:1.75}.founder-copy .text-link{margin-top:14px}.founder-notes{margin-top:24px}.founder-notes .notes-content p+p{margin-top:16px}.more-work{border-top:1px solid var(--rule);margin-top:72px;padding-top:29px}.more-work .section-label{margin-bottom:12px}.archive-intro{color:var(--muted);margin-bottom:16px;font-size:.875rem}.archive-thumbnail{flex:0 0 80px;width:80px}.archive-thumbnail .project-art{border-radius:6px}.project-index{margin:0;padding:0;list-style:none}.project-index li{border-bottom:1px solid var(--rule);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 24px;padding:25px 0;display:flex}.index-project{align-items:center;gap:20px;min-width:0;display:flex}.index-project-copy{display:block}.index-project h3{letter-spacing:-.03em;font-size:1.125rem;font-weight:500;line-height:1.5}.index-project p{color:var(--muted);margin-top:3px;font-size:.875rem}.project-mark{border-radius:48% 54% 45% 50%;flex:0 0 27px;width:27px;height:29px;display:block;transform:rotate(-14deg)}.mark-blue{background:#b9cedc}.mark-moss{background:#516443;border-radius:52% 46% 55% 42%;transform:rotate(18deg)}.index-action{flex-shrink:0}.contact{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px 28px;padding-top:62px;display:flex}.contact h2{font-family:var(--serif);letter-spacing:-.045em;font-size:clamp(2rem,3vw,2.75rem);font-weight:400;line-height:1.15}.contact-links{align-items:center;gap:24px;display:flex}.contact-links a{white-space:nowrap;min-height:44px;color:var(--muted);align-items:center;gap:8px;font-size:.875rem;text-decoration:none;display:inline-flex}.contact-links .email-link{color:var(--blue)}.contact-links a:hover{color:var(--blue);text-decoration:underline}.contact-icon{width:16px;height:16px;-webkit-mask:var(--contact-icon) center / contain no-repeat;mask:var(--contact-icon) center / contain no-repeat;background:currentColor;flex:0 0 16px;display:inline-block}.contact-icon-envelope{--contact-icon:url(/assets/icons/envelope.svg)}.contact-icon-twitter-x{--contact-icon:url(/assets/icons/twitter-x.svg)}.contact-icon-github{--contact-icon:url(/assets/icons/github.svg)}.profile-contact{grid-template-columns:max-content max-content;justify-content:start;gap:0 24px;margin-top:15px;display:grid}.profile-contact .email-link{grid-column:1/-1}.mobile-break{display:none}.project-page main:focus{outline:none}.project-back{color:var(--muted);margin-top:28px}.back-link:hover .icon{transform:translate(-2px)}.project-hero,.project-overview,.project-story,.project-local,.project-release{grid-template-columns:minmax(0,.6fr) minmax(0,1fr);align-items:start;column-gap:clamp(48px,5.5vw,88px);display:grid}.project-hero{padding:36px 0 64px}.project-hero-copy{min-width:0}.project-identity{align-items:center;gap:14px;margin-bottom:24px;display:flex}.project-identity img{width:64px;height:64px}.project-identity p{color:var(--muted);font-size:.875rem}.project-identity span{margin-top:3px;font-size:.8125rem;display:block}.project-page h1{font-size:clamp(3rem,5.6vw,5rem)}.project-headline{letter-spacing:-.045em;max-width:22ch;margin-top:20px;font-size:clamp(1.375rem,2.2vw,1.75rem);line-height:1.45}.project-intro{max-width:40ch;color:var(--muted);margin-top:20px;font-size:1rem;line-height:1.8}.project-hero-actions{flex-wrap:wrap;align-items:center;gap:12px 24px;margin-top:28px;display:flex}.project-story-link{gap:14px}.project-github-button{border:1px solid var(--ink);background:var(--ink);max-width:100%;min-height:48px;color:var(--paper);border-radius:8px;justify-content:center;align-items:center;gap:10px;padding:12px 18px;font-size:.9375rem;font-weight:500;line-height:1.5;text-decoration:none;transition:background-color .16s,border-color .16s;display:inline-flex}.project-github-button:hover{background:#44443b;border-color:#44443b}.project-github-button .contact-icon{flex:0 0 20px;width:20px;height:20px}.project-github-button .icon{flex-basis:16px;width:16px;height:16px}.project-github-button:focus-visible{border-radius:8px}.project-release .project-github-button{margin-top:24px}.project-screenshot{width:100%;min-width:0;max-width:var(--capture-width);margin:0}.project-screenshot>a{background:#fff;border-radius:16px;display:block;overflow:hidden}.project-screenshot>a:focus-visible{outline:2px solid var(--blue);outline-offset:6px}.project-screenshot img{width:100%;height:auto}.project-screenshot figcaption{color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 20px;margin-top:14px;font-size:.8125rem;line-height:1.6;display:flex}.screenshot-full-size{flex-shrink:0;align-items:center;gap:6px;text-decoration:none;display:inline-flex}.screenshot-full-size:hover{color:var(--ink);text-underline-offset:4px;text-decoration:underline}.project-screenshot figcaption .icon{flex-basis:12px;width:12px;height:12px}.project-hero-image{max-width:min(504px, var(--capture-width))}.project-hero-image .screenshot-full-size{display:none}.project-hero-identity>a{background:0 0}.project-facts{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;margin:0;padding:28px 0;display:grid}.project-facts dt{color:var(--muted);margin-bottom:7px;font-size:.8125rem}.project-facts dd{margin:0;font-size:.9375rem}.project-overview{padding:72px 0}.project-page h2{font:400 clamp(2rem, 2.8vw, 2.5rem)/1.15 var(--serif);letter-spacing:-.04em;text-wrap:balance}.project-overview>p,.project-story-copy>p:not(.section-label),.project-local>p:last-child,.project-release>div>p:not(.section-label){color:var(--muted);font-size:1.0625rem;line-height:1.8}.project-story,.project-local,.project-release{border-top:1px solid var(--rule);padding:64px 0}.project-story{scroll-margin-top:24px}.project-story-copy,.project-story-media{min-width:0}.project-story-copy{max-width:40ch}.project-story-media{align-content:start;gap:32px;display:grid}.project-story-copy>.project-story-note{margin-top:18px;font-size:.875rem}.project-source{color:var(--muted);margin:-12px 0 0;font-size:.8125rem;line-height:1.7}.project-story-copy h2{margin-bottom:24px}.project-story-copy .section-label,.project-local .section-label,.project-release .section-label{margin-bottom:16px;font-size:.8125rem}.project-release .text-link{margin-top:22px;font-size:.9375rem}.project-footer{border-top:1px solid var(--rule);flex-wrap:wrap;justify-content:space-between;gap:12px 32px;padding:28px 0 48px;display:flex}.project-not-found{min-height:60vh;padding:100px 0}.project-not-found>p:not(.section-label){color:var(--muted);margin:24px 0}@media (width<=1099px){.project-hero,.project-overview,.project-story,.project-local,.project-release{grid-template-columns:minmax(0,1fr);gap:32px}.project-hero{gap:40px}.project-page h1{font-size:3.75rem}.project-story-copy{max-width:56ch}.project-overview>p,.project-local>p:last-child,.project-release>div{max-width:60ch}.project-overview,.project-story,.project-local,.project-release{padding-block:56px}}@media (width<=699px){.project-back{margin-top:20px}.project-hero{padding:28px 0 48px}.project-page h1{overflow-wrap:anywhere;font-size:clamp(2.75rem,12vw,3.75rem)}.project-headline{max-width:24ch;font-size:1.5rem}.project-hero-image{max-width:min(420px, var(--capture-width))}.project-facts{grid-template-columns:minmax(0,1fr);gap:20px}.project-facts>div{grid-template-columns:1fr 1.2fr;gap:16px;display:grid}.project-facts dt{margin:0}.project-overview,.project-story,.project-local,.project-release{gap:28px;padding-block:40px}.project-page h2{font-size:2.125rem}.project-overview>p,.project-story-copy>p:not(.section-label),.project-local>p:last-child,.project-release>div>p:not(.section-label){font-size:1rem;line-height:1.8}.project-story-copy>.project-story-note{font-size:.875rem}.project-screenshot>a{border-radius:10px}.project-screenshot figcaption{flex-direction:column;gap:4px}}@media (width>=1400px){.studio-layout{column-gap:112px}}@media (width<=1099px){html{scroll-padding-top:24px}.page-shell{width:min(760px,100% - 64px)}.site-header{min-height:82px}.studio-layout{padding-top:44px;padding-bottom:64px;display:block}.profile{grid-template-columns:86px minmax(0,1fr);grid-template-areas:"avatar name""avatar bio""avatar founder""avatar contact";align-items:start;column-gap:24px;max-width:34rem;display:grid;position:static}.profile-founder{grid-area:founder;margin-top:8px}.portrait{grid-area:avatar;width:86px;height:96px;margin:0}.profile-name{grid-area:name;margin:3px 0 8px;font-size:1.875rem}.profile-bio{grid-area:bio;font-size:1rem}.desktop-break,.profile-nav{display:none}.profile-contact{grid-area:contact;justify-self:start;margin-top:8px}.work-column{margin-top:55px}h1{font-size:clamp(2.5rem,6.3vw,3.875rem)}.introduction{padding-bottom:45px}.ink-stroke{width:75px;height:3px;margin-top:18px}.project-grid{gap:52px 28px;margin-top:52px}.project-wide{gap:28px}.more-work{margin-top:56px}.founder-story{margin-top:64px}.contact{padding-top:45px}}@media (width<=699px){.page-shell{width:calc(100% - 48px)}.site-header{gap:0 12px;min-height:76px;padding-block:12px}.wordmark{font-size:.9375rem}.top-nav{gap:0 4px}.top-nav a{padding-inline:6px}.studio-layout{padding-top:32px;padding-bottom:56px}.profile{grid-template-columns:64px minmax(0,1fr);column-gap:20px}.portrait{width:64px;height:74px}.profile-name{margin-top:0;font-size:1.875rem}.profile-bio{line-height:1.6}.work-column{margin-top:44px}h1{letter-spacing:-.045em;overflow-wrap:anywhere;font-size:clamp(2.25rem,8.4vw,3.25rem);line-height:1.12}.introduction{padding-bottom:36px}.ink-stroke{width:64px;margin-top:18px;margin-right:2px}.section-label{margin-bottom:20px}.project-art{border-radius:10px}.project-grid .project-visual{aspect-ratio:auto;background:0 0;display:block}.project-copy{padding-top:20px}.project h3{font-size:1.5rem}.project-description{margin-top:8px;font-size:1rem;line-height:1.65}.project-detail{margin-top:14px;line-height:1.7}.project-grid{grid-template-columns:minmax(0,1fr);gap:48px;margin-top:48px}.founder-grid{grid-template-columns:minmax(0,1fr);gap:28px}.founder-story{margin-top:56px;padding-top:28px}.founder-copy p{font-size:1rem}.project-wide{display:block}.project-wide .project-copy{padding-top:20px}.notes-content{padding-left:16px}.project-index li{grid-template-columns:minmax(0,1fr);gap:8px;padding:24px 0;display:grid}.index-project{align-items:flex-start;gap:16px}.archive-thumbnail{flex-basis:64px;width:64px;margin-top:5px}.index-project p{max-width:none;font-size:1rem;line-height:1.6}.index-action{justify-self:start;margin-left:80px}.more-work{margin-top:56px;padding-top:28px}.contact{flex-direction:column;align-items:flex-start;gap:16px;padding-top:40px}.contact h2{overflow-wrap:anywhere;max-width:12ch;font-size:2.25rem;line-height:1.16}.contact-links{gap:20px}}@media (width<=359px){.page-shell{width:calc(100% - 40px)}.profile{grid-template-areas:"avatar name""bio bio""founder founder""contact contact";gap:12px 16px}.profile-name{align-self:center;margin:0}.profile-contact{margin-top:0}.work-column{margin-top:32px}h1{font-size:2rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}
