:root{--paper:#fdfcf9;--ink:#171716;--body:#343330;--muted:#74716b;--line:#dedbd4;--link-line:#aaa69f;--surface:#f3f1ec;--ink-hover:#000;--artwork-filter:grayscale(1) brightness(0.48) contrast(0.82);--display-font:"Loading Culture","Courier New",monospace;background:#fdfcf9;background:var(--paper);color:#171716;color:var(--ink);color-scheme:light;font-family:DM Sans,sans-serif;font-size:16px;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,textarea{font:inherit}a,button{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a,button{color:inherit}a{text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:5px}a,button,input,textarea{touch-action:manipulation}[role=tabpanel]:focus-visible,a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid #171716;outline:2px solid var(--ink);outline-offset:6px}input:focus-visible,textarea:focus-visible{outline:2px solid #171716;outline:2px solid var(--ink);outline-offset:3px}dd,dl,figure,h1,h2,h3,h4,p{margin:0}h1,h2,h3,h4{font-weight:400}img{display:block;max-width:100%}::selection{background:#171716;background:var(--ink);color:#fdfcf9;color:var(--paper)}.animal-artwork{flex-shrink:0;pointer-events:none}.animal-artwork img{filter:none;filter:var(--artwork-filter,none);height:100%;object-fit:contain;width:100%}.animal-artwork--home{height:225px;margin:85px auto 0;width:260px}.home-page:has(.animal-artwork){padding-bottom:28px}.page-intro.page-intro--illustrated{min-height:240px;padding-right:275px;position:relative}.animal-artwork--intro{height:190px;position:absolute;right:-12px;top:20px;width:245px}.experience-intro{grid-gap:30px;align-items:center;border-bottom:1px solid var(--line);display:grid;gap:30px;grid-template-columns:minmax(0,1fr) 210px;padding-bottom:18px}.experience-intro .section-heading-row{border-bottom:0;display:block;padding-bottom:0}.experience-intro .small-note{display:block;margin-top:9px}.animal-artwork--experience{height:110px;width:210px}.contact-cta--illustrated{align-items:center;display:flex;gap:40px;justify-content:space-between}.contact-cta--illustrated>div:first-child{min-width:0}.animal-artwork--contact{height:145px;width:245px}.animal-artwork--coming-soon{height:210px;margin:64px auto 0;width:250px}.coming-soon-page:has(.animal-artwork){padding-bottom:28px;padding-top:80px}.animal-artwork--lost{height:140px;margin:35px auto;width:220px}.animal-artwork--sample{height:220px;margin:20px auto 24px;width:100%}.artwork-collection{padding-bottom:68px}.artwork-collection .page-intro{padding-bottom:48px}.artwork-options{grid-gap:48px 42px;display:grid;gap:48px 42px;grid-template-columns:repeat(3,minmax(0,1fr))}.artwork-option{border-top:1px solid var(--line);padding-top:20px}.artwork-option-number{color:var(--muted);font-size:12px}.artwork-option h2{font-size:20px;margin-bottom:18px}.artwork-location{font-size:14px}.artwork-source{display:block;margin-top:22px;width:fit-content}.artwork-credit,.artwork-source{color:var(--muted);font-size:12px}.artwork-credit{line-height:1.8;margin-top:62px}@media (max-width:900px){.page-intro.page-intro--illustrated{padding-right:200px}.animal-artwork--intro{height:160px;right:-5px;top:30px;width:180px}.artwork-options{gap:36px 24px}.animal-artwork--sample{height:180px}.animal-artwork--contact{height:130px;width:210px}}@media (max-width:600px){.animal-artwork--home{height:195px;margin-top:58px;width:220px}.page-intro.page-intro--illustrated{min-height:auto;padding-bottom:30px;padding-right:0}.page-intro--illustrated h1,.page-intro--illustrated>p{max-width:calc(100% - 95px)}.animal-artwork--intro{height:110px;right:-6px;top:26px;width:95px}.experience-intro{gap:18px;grid-template-columns:minmax(0,1fr) 100px}.animal-artwork--experience{height:90px;width:100px}.contact-cta--illustrated{align-items:flex-start;flex-direction:column;gap:24px}.animal-artwork--contact{align-self:flex-end;height:100px;width:180px}.animal-artwork--coming-soon{height:175px;margin-top:48px;width:210px}.artwork-options{gap:38px;grid-template-columns:1fr}.animal-artwork--sample{height:200px;max-width:300px}.artwork-credit{margin-top:44px}}.site-shell{display:flex;flex-direction:column;min-height:100svh}.site-header{padding:30px 24px 24px}.site-header nav{display:flex;gap:36px;justify-content:center}.site-header a{line-height:1.5;padding:8px 0}.site-header a[aria-current=page]{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:7px}main{flex:1 1}main:focus{outline:none}.skip-link{background:var(--paper);border:1px solid var(--ink);left:16px;padding:10px 16px;position:fixed;top:12px;transform:translateY(-200%);z-index:10}.skip-link:focus{transform:none}.text-link{text-decoration:underline;text-decoration-color:var(--link-line);text-decoration-thickness:1px;text-underline-offset:6px}.text-link:hover{text-decoration-color:var(--ink)}.text-link span{display:inline-block}h1{font-family:var(--display-font);font-size:clamp(44px,5.5vw,64px);font-weight:400;letter-spacing:-.025em;line-height:1.35}.home-page{padding:70px 24px 100px;text-align:center}.home-intro p{font-size:19px;line-height:1.7;margin:23px auto 34px;max-width:465px}.portrait{margin:0 auto;width:252px}.pixel-portrait{display:block;height:336px;image-rendering:pixelated;width:252px}.portrait figcaption{color:var(--muted);font-size:12px;letter-spacing:.015em;margin-top:13px}.home-links{align-items:center;display:flex;flex-wrap:wrap;gap:28px;justify-content:center;margin-top:28px}.home-links a{font-size:15px;padding:4px 0;text-decoration:none}.home-links a:hover{text-decoration:underline}.home-work-link{display:inline-block;font-size:14px;margin-top:30px}.site-footer{align-items:center;display:flex;font-size:13px;gap:20px;justify-content:space-between;line-height:1.5;padding:28px 34px}.site-footer>span{color:var(--muted)}.content-page{margin:0 auto;width:min(100% - 80px,1060px)}.page-intro{padding:48px 0 60px}.page-intro p{font-size:19px;line-height:1.6;margin-top:24px}.section-label{font-size:20px;line-height:1.5}.project-explorer{grid-gap:40px;display:grid;gap:40px;grid-template-columns:215px minmax(0,1fr);margin-top:24px}.project-tabs{display:flex;flex-direction:column}.project-tab{align-items:flex-start;background:#0000;border:0;border-bottom:1px solid #0000;display:flex;gap:14px;padding:19px 12px;text-align:left;width:100%}.project-tab[aria-selected=true]{border-bottom-color:var(--ink)}.project-tab:hover .project-name{text-decoration:underline;text-underline-offset:5px}.project-star{font-size:17px;line-height:1.6;opacity:.4}.project-tab[aria-selected=true] .project-star{opacity:1}.project-name{display:block;font-size:16px;line-height:1.6}.project-kind{color:var(--muted);display:block;font-size:13px;line-height:1.5;margin-top:4px}.upcoming-link{display:inline-block;font-size:13px;margin:35px 0 0 42px}.project-window{border:1px solid var(--ink);border-radius:9px;display:block;overflow:hidden}.window-bar{align-items:center;border-bottom:1px solid var(--ink);display:flex;font:11px/1.2 monospace;gap:12px;height:31px;justify-content:space-between;padding:0 13px}.window-bar>span:nth-child(2){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.window-bar a{color:var(--ink);text-decoration:none}.window-bar a:focus-visible,.window-bar a:hover{text-decoration:underline}.window-dots{letter-spacing:3px;white-space:nowrap}.gallery-stage{position:relative}.gallery-next{background:#fdfcf9ad;border:0;border-radius:50%;color:var(--ink);cursor:pointer;display:grid;font:15px/1 var(--display-font);height:26px;opacity:0;place-items:center;pointer-events:none;position:absolute;right:10px;top:50%;transform:translateY(-50%);width:26px;z-index:3}.gallery-next:focus-visible,.project-window:focus-within .gallery-next,.project-window:hover .gallery-next{background:#fdfcf9d6;opacity:1;pointer-events:auto}.gallery-next:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.gallery-count{background:#fdfcf9a8;border-radius:999px;bottom:10px;color:var(--body);font:9px/1 var(--display-font);line-height:1;opacity:0;padding:2px 4px;position:absolute;right:12px;z-index:2}.project-window:focus-within .gallery-count,.project-window:hover .gallery-count{opacity:.8}@media (hover:none){.gallery-next{opacity:.72;pointer-events:auto}}.project-image{align-items:center;aspect-ratio:1.66;background:var(--surface);display:flex;justify-content:center;padding:25px}.project-image img{height:auto;max-height:100%;object-fit:contain;width:100%}.project-image--trakzi{background:#101319;padding:0}.project-image--trakzi img{height:100%;object-fit:cover;width:100%}.project-image--upv-calendar{aspect-ratio:auto;background:#0000;padding:0}.project-image--upv-calendar img{height:auto;max-height:none;width:100%}.project-image--sofix{padding:0}.project-image--sofix img{height:100%;object-fit:cover;width:100%}.project-image--pathfinder{aspect-ratio:2554/1321;background:#f3f3f3;padding:0}.project-image--pathfinder img{height:100%;object-fit:contain;width:100%}.project-window--iphone{border:1px solid var(--ink)}.iphone-preview{grid-gap:clamp(14px,2.2vw,28px);align-items:end;background:#eeece7;display:grid;gap:clamp(14px,2.2vw,28px);grid-template-columns:repeat(4,minmax(0,1fr));padding:30px 30px 20px}.iphone-device{grid-gap:12px;display:grid;gap:12px;justify-items:center;min-width:0}.iphone-device-frame{align-items:flex-end;display:flex;height:clamp(280px,32vw,420px);justify-content:center;transition:transform .18s ease;width:100%}.iphone-device:hover .iphone-device-frame{transform:translateY(-5px)}.iphone-device img{display:block;filter:drop-shadow(0 12px 12px rgba(23,23,22,.14));height:100%;max-width:100%;object-fit:contain;width:auto}.iphone-device:nth-child(3) img{height:calc(103% - 5px)}.iphone-device figcaption{color:var(--muted);font:10px/1.2 var(--display-font);letter-spacing:.08em;text-transform:uppercase}.project-wordmark{text-align:center}.project-wordmark>span{display:block;font-family:var(--display-font);font-size:clamp(28px,4vw,50px)}.project-wordmark>small{color:var(--muted);display:block;font-size:13px;margin-top:16px}.project-caption{padding-top:25px}.project-caption h3{font-size:22px;line-height:1.45;margin-bottom:12px}.project-caption>p{color:var(--body);font-size:17px;line-height:1.8}.project-caption .project-tech{color:var(--muted);font-size:12px;line-height:1.8;margin-top:15px}.project-links{display:flex;flex-wrap:wrap;gap:30px;margin-top:26px}.project-links a{font-size:16px}.experience-section{margin-top:88px}.section-heading-row{align-items:baseline;border-bottom:1px solid var(--line);display:flex;gap:24px;justify-content:space-between;padding-bottom:20px}.small-note{color:var(--muted);font-size:13px;line-height:1.6}.experience-entry{grid-gap:40px;display:grid;gap:40px;grid-template-columns:215px minmax(0,1fr);padding:30px 0}.experience-entry+.experience-entry{border-top:1px solid var(--line)}.experience-meta h3{font-size:20px;margin-bottom:9px}.experience-meta p{color:var(--muted);font-size:13px;line-height:1.8}.experience-meta p+p{margin-top:8px}.experience-story h4{font-size:18px;margin-bottom:12px}.experience-story li,.experience-story p{color:var(--body);font-size:15px;line-height:1.8}.experience-story ul{margin:16px 0 0;padding-left:18px}.experience-story li{margin-bottom:8px;padding-left:5px}.experience-story li::marker{color:var(--ink);font-size:10px}.contact-cta{padding:76px 0 72px}.contact-cta h2{font-family:var(--display-font);font-size:35px;letter-spacing:-.02em;line-height:1.4;margin-bottom:12px}.contact-cta a{font-size:17px;overflow-wrap:anywhere}.about-page{max-width:940px}.about-story{grid-gap:76px;align-items:start;display:grid;gap:76px;grid-template-columns:minmax(0,1fr) 200px}.about-copy p{color:var(--body);font-size:17px;line-height:1.85;margin-bottom:20px}.about-copy>a{display:inline-block;margin-top:7px}.portrait--compact{width:200px}.portrait--compact .pixel-portrait{height:auto;width:200px}.about-section{margin-top:66px}.about-section>h2{border-bottom:1px solid var(--line);padding-bottom:17px}.education-entry{grid-column-gap:25px;column-gap:25px;display:grid;grid-template-columns:1fr auto;padding:24px 0}.education-entry+.education-entry{border-top:1px solid var(--line)}.education-entry h3{font-size:17px;line-height:1.6}.education-entry .muted{font-size:14px;margin-top:5px}.muted{color:var(--muted);line-height:1.7}.education-description{color:var(--body);font-size:14px;grid-column:1/-1;line-height:1.8;margin-top:13px;max-width:670px}.skills-list>div{grid-gap:25px;border-bottom:1px solid var(--line);display:grid;gap:25px;grid-template-columns:190px 1fr;padding:22px 0}.skills-list dd,.skills-list dt{font-size:14px;line-height:1.9}.skills-list dd{color:var(--body)}.social-links{display:flex;gap:30px;margin-top:25px}.about-page .contact-cta{padding-bottom:36px}.contact-form-section{margin-bottom:72px;max-width:570px}.contact-form-section summary{cursor:pointer;font-size:14px;padding:5px 0;text-underline-offset:5px;width:fit-content}.contact-form-section summary:hover{text-decoration:underline}.contact-form{grid-gap:22px;display:grid;gap:22px;padding-top:26px}.contact-form label{grid-gap:8px;display:grid;font-size:13px;gap:8px}.contact-form input,.contact-form textarea{background:#0000;border:1px solid var(--line);border-radius:0;color:var(--body);font-size:16px;min-width:0;padding:11px 12px;width:100%}.contact-form textarea{min-height:130px;resize:vertical}.contact-form button{background:var(--ink);border:1px solid var(--ink);color:var(--paper);font-size:14px;justify-self:start;padding:11px 20px}.contact-form button:hover{background:var(--ink-hover)}.contact-form button:disabled{cursor:wait;opacity:.65}.form-message{font-size:14px;line-height:1.6}.form-message--error{color:#9b3535}.coming-soon-page{display:grid;min-height:calc(100svh - 180px);padding:80px 24px 120px;place-items:center;text-align:center}.coming-soon-page .eyebrow{font-size:13px;margin-bottom:29px}.coming-soon-page h1{font-size:clamp(42px,5.5vw,64px);line-height:1.5}.coming-soon-page h1+p{font-size:17px;line-height:1.8;margin:32px 0}.coming-soon-page .text-link{font-size:15px}@media (min-width:1440px){.home-page{padding-bottom:150px;padding-top:90px}.site-footer{padding-left:42px;padding-right:42px}}@media (max-width:760px){.site-header{padding-top:21px}.site-header nav{gap:30px}.home-page{padding:45px 24px 70px}.home-intro p{font-size:17px;margin-top:20px}.portrait{width:228px}.pixel-portrait{height:304px;width:228px}.content-page{width:calc(100% - 40px)}.page-intro{padding:38px 0 40px}.page-intro h1{font-size:clamp(34px,7vw,48px)}.page-intro p{font-size:16px;margin-top:20px}.project-explorer{gap:25px;grid-template-columns:1fr;margin-top:18px}.project-tabs{flex-direction:row;flex-wrap:wrap;gap:0 12px}.project-tab{gap:8px;padding:15px 3px;width:calc(50% - 6px)}.project-name{font-size:14px}.project-kind{font-size:12px}.upcoming-link{font-size:12px;margin:20px 0 0}.project-image,.project-image--upv-calendar{padding:16px}.project-image--sofix{padding:0}.iphone-preview{gap:24px 16px;grid-template-columns:repeat(2,minmax(0,1fr));padding:22px 16px 18px}.iphone-device-frame{height:clamp(240px,78vw,330px)}.project-caption>p{font-size:16px}.project-caption .project-tech{font-size:12px}.experience-section{margin-top:62px}.section-heading-row{display:block}.section-heading-row .small-note{display:inline-block;margin-top:9px}.experience-entry{gap:25px;grid-template-columns:1fr}.experience-meta p+p{margin-top:2px}.contact-cta{padding:44px 0 55px}.contact-cta h2{font-size:28px}.contact-cta a{font-size:15px}.about-story{gap:32px;grid-template-columns:1fr}.about-copy p{font-size:16px}.portrait--compact{margin:0;width:180px}.portrait--compact .pixel-portrait{height:auto;width:180px}.about-section{margin-top:46px}.skills-list>div{gap:8px;grid-template-columns:1fr;padding:20px 0}.education-entry{gap:10px;grid-template-columns:1fr}.education-description{margin-top:0}.site-footer{font-size:12px;padding:24px 20px}.coming-soon-page{padding-bottom:90px;padding-top:60px}}@media (max-width:380px){.home-intro p{max-width:290px}.project-name{font-size:13px}.project-star{display:none}.site-footer{font-size:11px;gap:12px}}
/*# sourceMappingURL=main.8976b2a4.css.map*/