@font-face{font-family:Rajdhani;src:url('assets/rajdhani-semibold.ttf') format('truetype');font-weight:600;font-display:swap}
@font-face{font-family:Inter;src:url('assets/inter-variable.ttf') format('truetype');font-weight:100 900;font-display:swap}
:root{color-scheme:dark;--bg:#111;--text:#b6b6b6;--white:#fafafa;--line:#303030;--display:Rajdhani,'Arial Narrow',sans-serif;--body:Inter,Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font:17px/1.75 var(--body)}a{color:inherit;text-underline-offset:4px}a:hover{color:white}button{font:inherit}h1,h2,h3,p,figure{margin:0}h1,h2,h3{color:var(--white);font-family:var(--display);font-weight:600;line-height:1.2}h1{font-size:clamp(36px,4vw,56px)}h2{font-size:29px}h3{font-size:24px}p+p{margin-top:18px}a:focus-visible,button:focus-visible{outline:2px solid white;outline-offset:6px}.skip{position:absolute;top:-80px;left:20px;background:#111;padding:12px;z-index:10}.skip:focus{top:10px}
.header{min-height:158px;max-width:1700px;margin:auto;padding:38px 4%;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:26px}.brand{font-family:var(--display);font-weight:600;text-transform:uppercase;font-size:44px;color:white;text-decoration:none;letter-spacing:1px;line-height:1}.nav{display:flex;gap:26px}.nav a{font-family:var(--display);font-weight:600;text-decoration:none;font-size:21px}.nav a[aria-current=page]{color:white}.socials{display:flex;justify-content:flex-end;gap:18px}.socials a{display:grid;place-items:center;width:28px;height:36px;text-decoration:none}.socials svg{height:21px;width:21px;fill:currentColor}.socials .in{font:700 21px Arial}
.portfolio{max-width:1600px;margin:0 auto;padding:12px 4% 0}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.tile{aspect-ratio:1.62;position:relative;overflow:hidden;display:grid;place-items:center;background:#1c1c1c;text-decoration:none;text-align:center;isolation:isolate}.tile:nth-child(even){background:#202020}.tile:before{content:'';position:absolute;inset:0;background:#000;opacity:0;transition:opacity .4s;z-index:1}.tile:hover:before,.tile:focus-visible:before{opacity:.6}.tile img.cover{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;transition:transform .6s,opacity .4s}.tile:hover img.cover{transform:scale(1.025)}.tile-content{z-index:2;padding:30px;transition:transform .4s}.tile:hover .tile-content{transform:translateY(-5px)}.tile h2{font-size:clamp(26px,2.6vw,42px)}.tile .tags{font-size:17px;letter-spacing:.6px;display:block;margin-top:10px}.tile .category{display:block;font-size:14px;letter-spacing:1.7px;margin-bottom:14px}.tile .asset-note{position:absolute;bottom:18px;left:0;right:0;font:12px/1.5 Arial,sans-serif;color:#aaa;z-index:2}.tile.has-image .tile-content{opacity:0}.tile.has-image:hover .tile-content,.tile.has-image:focus-visible .tile-content{opacity:1}.tile.has-image:before{opacity:.1}.tile.has-image:hover:before,.tile.has-image:focus-visible:before{opacity:.72}
.lower{max-width:1600px;margin:80px auto;padding:0 4%;display:grid;grid-template-columns:1.4fr 1fr;gap:100px}.lower h2{margin-bottom:20px}.lower p{max-width:680px}.skills{margin:22px 0;font-size:17px}.text-link{display:inline-block;margin-top:22px;color:white}.credits h3{margin-bottom:12px}.footer{padding:40px 4%;text-align:center;font-size:15px;color:#858585}.page{max-width:1400px;margin:0 auto;padding:34px 5% 0}.page-title{text-align:center;margin-bottom:88px}.case-layout{display:grid;grid-template-columns:minmax(0,2.5fr) minmax(210px,1fr);gap:100px;max-width:1150px;margin:auto}.copy section{margin-bottom:32px}.copy h2{margin-bottom:12px}.copy p{max-width:780px}.details div{margin-bottom:26px}.details dt{font-family:var(--display);font-weight:600;font-size:27px;color:white;line-height:1.2}.details dd{margin:4px 0 0}.details{margin:0}.gallery{margin:64px auto 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.gallery figure{min-width:0}.gallery figcaption{font-size:15px;margin-top:9px;text-align:center}.placeholder{aspect-ratio:16/9;background:#1b1b1b;border:1px solid #292929;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:24px}.placeholder span{font:13px Arial,sans-serif;color:#999;margin-top:8px}.gallery .wide{grid-column:1/-1}.project-nav{margin:75px 0 0;padding-top:24px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:30px}.project-nav a{text-decoration:none}.reference-window{position:relative;overflow:hidden;width:100%;display:block;background:#111}.reference-window img{position:absolute;max-width:none;height:auto}.jinx{aspect-ratio:610/210}.jinx img{width:303.443%;left:-154.1%;top:-150%}.starfall-ai{aspect-ratio:1312/652}.starfall-ai img{width:123.018%;left:-14.863%;top:-9.97%}.starfall-ui{aspect-ratio:600/338}.starfall-ui img{width:276%;left:-140.333%;top:-29.29%}.starfall-build{aspect-ratio:696/523}.starfall-build img{width:223.276%;left:-11.35%;top:-14.15%}.contact-layout{display:grid;grid-template-columns:1fr 1.2fr;gap:80px;align-items:center;margin:110px 0 140px}.contact-links{display:grid;gap:15px;margin-top:20px}.contact-outro{margin-top:100px}.contact-layout figcaption{text-align:center;font-size:15px;margin-top:20px}.unavailable{color:#858585}.small-copy{font:14px/1.6 Arial,sans-serif}.cv-content{max-width:760px;margin:auto}.cv-content section{margin-bottom:34px}.cv-content h2{margin-bottom:12px}.notice{padding:20px;border:1px solid #333;margin-bottom:40px;font:15px/1.6 Arial,sans-serif}ul{padding-left:20px}li+li{margin-top:12px}.top-link{display:block;text-align:center;margin-top:65px}
@media(hover:none){.tile.has-image .tile-content{opacity:1}.tile.has-image:before{opacity:.6}}
@media(min-width:1500px){.header{min-height:185px}.portfolio{padding-top:20px}}
@media(max-width:800px){.header{grid-template-columns:1fr auto;padding:32px 5%;gap:25px}.brand{grid-column:1/-1;grid-row:1;text-align:center;font-size:40px}.nav{gap:22px}.socials{gap:12px}.case-layout{gap:40px}.lower{gap:40px}.page-title{margin-bottom:55px}.contact-layout{gap:30px}}
@media(max-width:580px){.header{padding-bottom:25px}.nav{gap:17px}.nav a{font-size:19px}.socials{gap:6px}.portfolio{padding:0 5%}.grid{grid-template-columns:1fr;gap:14px}.tile h2{font-size:32px}.tile .tags{font-size:16px}.lower,.case-layout,.contact-layout{grid-template-columns:1fr}.lower{margin:55px auto;gap:45px;padding:0 5%}.page{padding-top:20px}.page-title{margin-bottom:45px}.case-layout{gap:20px}.details{border-top:1px solid #333;padding-top:25px;display:grid;grid-template-columns:1fr 1fr;gap:20px}.details div{margin:0}.details dt{font-size:23px}.gallery{grid-template-columns:1fr;margin-top:45px}.gallery .wide{grid-column:auto}.contact-layout{margin:50px 0 70px;gap:50px}.contact-outro{margin-top:35px}.project-nav{font-size:16px}.footer{padding-top:30px}.tile.has-image .tile-content{opacity:1}.tile.has-image:before{opacity:.6}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before{transition:none!important}}

.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.gallery-image{display:block;width:100%;height:auto}.original-jinx img{width:100%;height:auto}.contact-links a{overflow-wrap:anywhere}
.tile.tile-portrait{background:#fff}.tile.tile-portrait img.cover{object-fit:contain}.credit-image{display:block;width:100%;height:auto;margin:0 0 22px}.gallery a{display:block}.gallery-portrait{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;max-width:1000px}.gallery-portrait .gallery-image{max-height:650px;object-fit:contain}.gallery-portrait figure{align-self:start}
@media(max-width:700px){.gallery-portrait{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}}
@media(max-width:420px){.gallery-portrait{grid-template-columns:1fr;max-width:310px}}
.tile[data-cover="assets/virtual-driving-school-cover.jpg"] img.cover{object-position:right center}

