:root{--section-space:clamp(48px, 6vw, 96px);--text:#6b6375;--text-h:#08060d;--bg:#fff;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#aa3bff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--social-bg:#f4f3ec80;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (width<=1024px){:root{font-size:16px}}#root{text-align:center;box-sizing:border-box;flex-direction:column;width:100%;min-height:100svh;margin:0 auto;display:flex}body{margin:0;overflow-x:hidden}*,:before,:after{box-sizing:border-box}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}h1{letter-spacing:-1.68px;margin:32px 0;font-size:56px}@media (width<=1024px){h1{margin:20px 0;font-size:36px}}h2{letter-spacing:-.24px;margin:0 0 8px;font-size:24px;line-height:118%}@media (width<=1024px){h2{font-size:20px}}p{margin:0}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}@font-face{font-family:Satoshi;src:url(/fonts/Satoshi-Black.otf)format("opentype");font-weight:900;font-style:normal}.site-nav{z-index:1;flex-wrap:wrap;order:1;justify-content:flex-end;align-items:center;gap:clamp(12px,1.75vw,28px);width:100%;display:flex}.site-nav a{color:#111;letter-spacing:.04em;text-transform:uppercase;opacity:0;font-family:Satoshi,sans-serif;font-size:clamp(12px,2.25vw,32px);font-weight:900;text-decoration:none;transition:opacity .16s;animation:.5s ease-out both nav-enter}.site-nav a:first-child{animation-delay:2.5s}.site-nav a:nth-child(2){animation-delay:3s}.site-nav a:nth-child(3){animation-delay:3.5s}.media-cards{z-index:1;opacity:0;order:3;align-items:flex-start;gap:clamp(28px,3vw,64px);margin-inline:auto;padding:24px 32px 28px;animation:1s ease-out 4s both cards-enter;display:flex;position:relative}.currently-reading,.currently-playing{text-align:center;width:clamp(100px,11vw,170px)}.background-card{z-index:-1;opacity:.45;pointer-events:none;background:#fff;border:2px solid #111;border-radius:6px;position:absolute;inset:0;box-shadow:7px 7px #111}.book-cover{aspect-ratio:2/3;background:#e9e5dc;border:2px solid #e9e5dc;border-radius:2px 6px 6px 2px;overflow:hidden;box-shadow:6px 6px #111}.book-cover img{object-fit:cover;width:100%;height:100%}.book-cover a{width:100%;height:100%;display:block}.game-cover{aspect-ratio:2/3;background:#e9e5dc;border:2px solid #e9e5dc;border-radius:2px 6px 6px 2px;overflow:hidden;box-shadow:6px 6px #111}.game-cover img{object-fit:cover;border-radius:2px;width:100%;height:100%}.game-cover a{width:100%;height:100%;display:block}.book-cover,.game-cover{transition:transform .18s,box-shadow .18s}.book-cover:hover,.game-cover:hover{transform:translateY(-8px)scale(1.03);box-shadow:10px 14px #111}.book-cover a:focus-visible,.game-cover a:focus-visible{outline-offset:-3px;outline:3px solid #111}.currently-reading p,.currently-playing p{color:#111;letter-spacing:.04em;text-transform:uppercase;margin:12px 0 0;font-family:Satoshi,sans-serif;font-size:clamp(10px,1vw,14px);font-weight:900}.site-nav a:hover,.site-nav a:focus-visible{opacity:.55}.car-carousel{order:4;width:100%;height:clamp(420px,45vw,620px);position:relative}.car-card{will-change:transform;background:#fff;border:2px solid #111;border-radius:8px;width:clamp(230px,27vw,380px);margin:0;padding:clamp(4px,.6vw,8px);transition:transform .9s cubic-bezier(.22,1,.36,1);position:absolute;top:50%;left:50%;overflow:hidden;box-shadow:10px 10px #111}.car-card img{aspect-ratio:3/4;object-fit:cover;width:100%;display:block}.car-position-0{z-index:3;transform:translate(-50%,-50%)translateY(-35px)}.car-position-1{z-index:2;transform:translate(-50%,-50%)translate(-300px)translateY(15px)}.car-position-2{z-index:2;transform:translate(-50%,-50%)translate(300px)translateY(15px)}.car-tooltip{z-index:1000;pointer-events:none;background:#fff;border:2px solid #111;flex-direction:column;gap:4px;min-width:180px;max-width:220px;padding:12px 14px;animation:.15s ease-out tooltip-in;display:flex;position:fixed;box-shadow:6px 6px #111}.car-tooltip strong{font-family:Satoshi,sans-serif;font-size:16px;font-weight:900}.car-tooltip span{font-size:12px;line-height:1.4}@keyframes tooltip-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.hero-title{color:#fff;-webkit-text-stroke:clamp(2px, .5vw, 10px) #111;paint-order:stroke fill;white-space:nowrap;margin:0;font-family:Satoshi,sans-serif;font-size:clamp(36px,7vw,110px);font-weight:900;line-height:1;animation:.7s ease-out both title-enter;display:inline-block}.hero-tagline{color:#111;white-space:nowrap;margin:0;font-family:Satoshi,sans-serif;font-size:clamp(14px,1.7vw,28px);font-weight:900;line-height:1.1}.hero-tagline span{opacity:0;animation:.4s ease-out both letter-enter}.intro{text-align:left;z-index:2;flex-wrap:wrap;flex:520px;order:2;align-items:baseline;gap:clamp(8px,1vw,18px);min-width:0;display:flex}.hero{padding:clamp(24px, 3vw, 48px) clamp(24px, 4vw, 64px) var(--section-space);flex-wrap:wrap;align-items:center;gap:clamp(28px,4vw,64px);display:flex;position:relative}@keyframes title-enter{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes nav-enter{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes cards-enter{0%{opacity:0}to{opacity:1}}@keyframes letter-enter{0%{opacity:0}to{opacity:1}}.projects-section{overflow:hidden}.projects-content{width:100%}.projects-section h2{margin:20px 6vw 70px;font-size:clamp(36px,5vw,72px);line-height:.95}.project-carousel{width:100%;height:560px;margin-top:60px;position:relative;left:50%;transform:translate(-50%)}.project-card{color:#111;will-change:transform;background:#fff;border:2px solid #111;width:clamp(500px,52vw,850px);padding:10px;text-decoration:none;transition:transform .9s cubic-bezier(.22,1,.36,1),opacity .9s;position:absolute;top:50%;left:50%;box-shadow:12px 12px #111}.project-image{aspect-ratio:16/9;border:2px solid #111;width:100%;overflow:hidden}.project-image img{object-fit:cover;width:100%;height:100%;display:block}.project-info{grid-template-columns:60px 1fr 40px;align-items:center;gap:20px;padding:18px 10px 10px;display:grid}.project-number{font-size:13px;font-weight:700}.project-info h3{margin:0 0 5px;font-family:Satoshi,sans-serif;font-size:clamp(20px,2vw,30px);font-weight:900}.project-info p{margin:0;font-size:14px}.project-arrow{text-align:right;font-size:28px}.project-position-0{z-index:3;opacity:1;transform:translate(-50%,-50%)translateY(-20px)}.project-position-1{z-index:2;opacity:.65;transform:translate(-50%,-50%)translate(-55vw)translateY(40px)scale(.82)}.project-position-2{z-index:2;opacity:.65;transform:translate(-50%,-50%)translate(55vw)translateY(40px)scale(.82)}.project-controls{justify-content:center;align-items:center;gap:25px;margin-top:50px;display:flex}.project-controls button{color:#111;cursor:pointer;background:#fff;border:2px solid #111;width:50px;height:50px;font-size:24px;transition:transform .15s,box-shadow .15s;box-shadow:5px 5px #111}.project-controls button:hover{transform:translate(3px,3px);box-shadow:2px 2px #111}.project-controls span{font-size:13px;font-weight:700}@media (width<=1024px){.hero{padding:24px 24px var(--section-space);flex-direction:column;align-items:stretch}.site-nav{order:2;justify-content:flex-start;width:100%;position:static}.site-nav a{font-size:12px}.intro{flex:auto;order:1;gap:4px 8px;width:100%;max-width:none}.hero-title{white-space:normal;font-size:clamp(34px,10vw,56px)}.hero-tagline{font-size:12px}.media-cards{order:3;align-self:center;gap:clamp(18px,6vw,32px);padding:12px 14px 20px}.currently-reading,.currently-playing{width:min(36vw,140px)}.currently-reading p,.currently-playing p{margin-top:8px}.car-carousel{order:4;align-self:center;width:100%;height:340px;position:relative;top:auto;left:auto;transform:none}.car-card{width:min(30vw,150px)}.car-position-0{z-index:3;transform:translate(-50%,-50%)translateY(-25px)}.car-position-1{z-index:2;transform:translate(-50%,-50%)translate(-70px)translateY(15px)}.car-position-2{z-index:2;transform:translate(-50%,-50%)translate(70px)translateY(15px)}}@media (prefers-reduced-motion:reduce){.hero-title,.site-nav a,.media-cards,.hero-tagline span{animation:none}.site-nav a,.media-cards,.hero-tagline span{opacity:1}.book-cover,.game-cover{transition:none}}html{scroll-behavior:smooth}.about-section,.projects-section,.contact-section{padding:var(--section-space) clamp(24px, 8vw, 140px)}.about-section{color:#111;background:#e9e5dc}@media (prefers-reduced-motion:no-preference){.about-section,.projects-section,.contact-section,.screen-section{animation:.5s ease-out 5s both cards-enter}.projects-section{animation-delay:5.5s}.contact-section{animation-delay:6s}.screen-section{animation-delay:6.5s}}:where(.skip-home-intro) .hero-title,:where(.skip-home-intro) .site-nav a,:where(.skip-home-intro) .media-cards,:where(.skip-home-intro) .hero-tagline span,:where(.skip-home-intro) .about-section,:where(.skip-home-intro) .projects-section,:where(.skip-home-intro) .contact-section,:where(.skip-home-intro) .screen-section{opacity:1;animation:none}.about-content{max-width:1200px;margin:0 auto}.section-label{letter-spacing:.08em;margin:0 0 32px;font-family:Satoshi,sans-serif;font-size:14px;font-weight:900}.about-section h2{letter-spacing:-.04em;margin:0;font-family:Satoshi,sans-serif;font-size:clamp(42px,7vw,100px);font-weight:900;line-height:.95}.about-text{max-width:650px;margin-top:clamp(32px,4vw,56px);margin-left:auto}.about-text p{margin:0 0 24px;font-family:Satoshi,sans-serif;font-size:clamp(16px,1.5vw,22px);line-height:1.45}.about-text p:last-child{margin-bottom:0}.projects-section h2,.contact-section h2{margin:0;font-family:Satoshi,sans-serif;font-size:clamp(48px,8vw,120px);font-weight:900;line-height:.95}.contact-section{color:#fff;background:#e9e5dc}.contact-content{max-width:1200px;margin:0 auto}.contact-section .section-label{color:#050000}.contact-section h2{letter-spacing:-.05em;margin:0;font-family:Satoshi,sans-serif;font-size:clamp(64px,11vw,160px);font-weight:900;line-height:.85}.contact-links{flex-wrap:wrap;justify-content:center;align-items:center;gap:24px;margin-top:clamp(32px,4vw,56px);display:flex}.contact-link{color:#020202;border:2px solid #0e0d0d;align-items:center;gap:16px;min-width:260px;padding:18px 22px;font-family:Satoshi,sans-serif;font-size:20px;font-weight:900;text-decoration:none;transition:transform .18s,background .18s,color .18s;display:flex}.contact-link img{object-fit:contain;width:32px;height:32px}.email-icon{justify-content:center;align-items:center;width:32px;height:32px;font-size:27px;display:flex}.contact-arrow{margin-left:auto;font-size:26px;transition:transform .18s}.contact-link:hover{color:#111;background:#fff;transform:translateY(-6px)}.contact-link:hover .contact-arrow{transform:translate(4px,-4px)}.screen-section{width:100%;min-width:0;padding:var(--section-space) 0 40px;color:#111;text-align:left;background:#f4f1eb;border-block:2px solid #111}.screen-header{justify-content:space-between;align-items:flex-end;gap:32px;margin-bottom:40px;padding-inline:clamp(24px,6vw,96px);display:flex}.screen-header h2{letter-spacing:-.05em;margin:0;font-family:Satoshi,sans-serif;font-size:clamp(44px,7vw,104px);font-weight:900;line-height:1}.screen-viewport{padding-block:12px 28px;overflow:hidden}.screen-track{will-change:transform;width:max-content;display:flex}.screen-cover-button{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:0;display:block}.screen-cover-button:focus-visible{outline-offset:8px;outline:3px solid #3153ad}.screen-group{flex-shrink:0;justify-content:space-around;align-items:flex-start;gap:clamp(20px,2.5vw,40px);min-width:100vw;padding-right:clamp(20px,2.5vw,40px);display:flex}.screen-card{flex-shrink:0;width:clamp(200px,22vw,320px);min-width:0;margin:0}.screen-cover{aspect-ratio:2/3;border:2px solid #111;transition:transform .18s;overflow:hidden;box-shadow:7px 7px #111}.screen-cover img{object-fit:cover;width:100%;height:100%;display:block}@media (hover:hover){.screen-card:hover .screen-cover{transform:translateY(-8px)rotate(-1deg)}}.screen-color-0{background:#b9c8d4}.screen-color-1{background:#d7b6a2}.screen-color-2{background:#bec4a8}.screen-color-3{background:#c1b7cd}.screen-placeholder{background:repeating-linear-gradient(-35deg,#0000 0 44px,#ffffff26 44px 46px);flex-direction:column;justify-content:space-between;height:100%;padding:20px;font-family:Satoshi,sans-serif;font-weight:900;display:flex}.screen-placeholder-label,.screen-placeholder-note{text-transform:uppercase;letter-spacing:.08em;font-size:12px}.screen-placeholder-number{letter-spacing:-.09em;color:#f4f1eb;-webkit-text-stroke:2px #111;paint-order:stroke fill;align-self:center;font-size:clamp(80px,11vw,156px);line-height:1}.screen-card figcaption{margin-top:22px}.screen-card h3{margin:0;font-family:Satoshi,sans-serif;font-size:20px;font-weight:900;line-height:1.25}.screen-card figcaption>span{text-transform:uppercase;letter-spacing:.06em;margin-top:5px;font-size:12px;display:block}@media (width<=600px){.screen-header{flex-direction:column;align-items:flex-start;gap:24px;margin-bottom:24px}.screen-card{width:64vw}}@media (prefers-reduced-motion:reduce){.screen-cover{transition:none}}.projects-section.project-showcase{color:#111;text-align:left;padding-inline:0}.project-showcase-header{margin-bottom:40px;padding-inline:clamp(24px,6vw,96px)}.project-showcase-header h2{letter-spacing:-.05em;font-size:clamp(44px,7vw,104px)}.project-tile{width:clamp(280px,30vw,420px);max-width:82vw;color:inherit;background:#fff;border:2px solid #111;flex-direction:column;flex-shrink:0;align-self:stretch;text-decoration:none;transition:transform .18s;display:flex;box-shadow:7px 7px #111}.project-tile:focus-visible{outline-offset:5px;outline:3px solid #3153ad}@media (hover:hover){.project-tile:hover{transform:translateY(-8px)}}.project-tile-image{aspect-ratio:4/3;object-fit:cover;border-bottom:2px solid #111;width:100%;display:block}.project-tile-art{aspect-ratio:4/3;letter-spacing:.06em;overflow-wrap:anywhere;background-image:repeating-linear-gradient(-35deg,#0000 0 44px,#ffffff26 44px 46px);border-bottom:2px solid #111;flex-direction:column;justify-content:space-between;gap:16px;padding:24px;font-family:Satoshi,sans-serif;font-size:12px;font-weight:900;display:flex}.project-tile-number{color:#f4f1eb;-webkit-text-stroke:2px #111;paint-order:stroke fill;align-self:center;font-size:clamp(80px,9vw,140px);line-height:1}.project-tile-copy{overflow-wrap:anywhere;flex-direction:column;flex:1;gap:16px;padding:24px;display:flex}.project-tile h3{margin:0;font-family:Satoshi,sans-serif;font-size:26px;font-weight:900;line-height:1.15}.project-tile p{font-size:15px;line-height:1.6}.project-tile-link{justify-content:space-between;margin-top:auto;padding-top:12px;font-size:14px;font-weight:700;display:flex}@media (prefers-reduced-motion:reduce){.project-tile{transition:none}}.project-page{color:#111;text-align:left;overflow-wrap:anywhere}.writeup-nav,.writeup-footer{flex-wrap:wrap;justify-content:space-between;gap:20px;padding:28px clamp(24px,7vw,112px);display:flex}.project-page a{color:inherit;text-underline-offset:5px;font-family:Satoshi,sans-serif;font-size:14px;font-weight:900}.project-page a:focus-visible{outline-offset:6px;outline:3px solid #3153ad}.writeup-header{padding:var(--section-space) clamp(24px, 7vw, 112px);background:#e9e5dc;border-block:2px solid #111}.writeup-label{letter-spacing:.12em;margin:0 0 24px;font-size:12px;font-weight:700}.writeup-header h1{letter-spacing:-.05em;max-width:1100px;margin:0;font-family:Satoshi,sans-serif;font-size:clamp(44px,8vw,112px);font-weight:900;line-height:1}.writeup-summary{max-width:720px;margin-top:28px;font-size:clamp(18px,2vw,24px);line-height:1.6}.writeup-tags{flex-wrap:wrap;gap:12px;margin:32px 0 0;padding:0;list-style:none;display:flex}.writeup-tags li{background:#fff;border:2px solid #111;padding:8px 14px;font-size:13px;box-shadow:3px 3px #111}.writeup-body{max-width:1400px;margin-inline:auto;padding-inline:clamp(24px,7vw,112px)}.writeup-figure{margin:clamp(40px,6vw,80px) 0 0}.writeup-figure figcaption{text-align:center;margin-top:16px;font-size:14px;line-height:1.6}.writeup-image{object-fit:contain;width:100%;max-height:720px;display:block}.writeup-section{grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:clamp(24px,5vw,72px);padding-block:clamp(40px,6vw,80px);display:grid}.writeup-section+.writeup-section{border-top:1px solid #1113}.writeup-section-heading>span{letter-spacing:.08em;margin-bottom:12px;font-size:12px;display:block}.writeup-section h2{margin:0;font-family:Satoshi,sans-serif;font-size:clamp(28px,3vw,40px);font-weight:900;line-height:1.1}.writeup-copy p{white-space:pre-line;max-width:68ch;margin:0;line-height:1.8}.writeup-copy p+p{margin-top:24px}.writeup-footer{border-top:2px solid #111}@media (width<=700px){.writeup-section{grid-template-columns:1fr}}
