@font-face{font-family:Bricolage Grotesque;font-style:normal;font-weight:200 800;font-stretch:100%;font-display:swap;src:url(../media/f4b234103afdc32a-s.11x_mcju407z-.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-weight:200 800;font-stretch:100%;font-display:swap;src:url(../media/0b60d5f95c5f3f76-s.456c9vb2_utt8.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-weight:200 800;font-stretch:100%;font-display:swap;src:url(../media/8056169c9d560660-s.p.2fl0vhx7oyatw.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Bricolage Grotesque Fallback;src:local(Arial);ascent-override:88.21%;descent-override:25.61%;line-gap-override:0.0%;size-adjust:105.43%}.jcBR4W_className{font-family:Bricolage Grotesque,Bricolage Grotesque Fallback;font-style:normal}
:root{--canvas:#4e87ec;--canvas-text:#0d2038;--on-canvas:#fff;--ink:#142b4a;--deep:#244c86;--coral:#ff8a75;--paper:#eef3fa;--line:#1b3a65}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{background:var(--canvas);color:var(--canvas-text);margin:0;font-size:16px;line-height:1.55}a{color:inherit;text-decoration:none}button,input{font:inherit;color:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button,input{border-radius:0}button{border:0}svg{flex-shrink:0}a,button{touch-action:manipulation}a:focus-visible,button:focus-visible,input:focus-visible,main:focus-visible,.search-field:focus-within{outline:3px solid var(--on-canvas);outline-offset:3px;box-shadow:0 0 0 3px var(--ink)}a:hover{text-decoration-thickness:2px}p,h1,h2,h3{margin-top:0}h1,h2,h3{letter-spacing:-.04em;text-wrap:balance;line-height:1.08}p{text-wrap:pretty}.wrap{width:min(1160px,100% - 80px);margin-inline:auto}main,.site-footer{z-index:1;position:relative}main{min-height:calc(100svh - 230px)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:100;background:var(--paper);color:var(--ink);padding:12px 20px;position:fixed;top:-80px;left:20px}.skip-link:focus{top:12px}.icon-button{background:0 0;justify-content:center;align-items:center;width:44px;height:44px;display:inline-flex}.icon-button:hover{background:var(--coral);color:var(--ink)}a svg,button svg{transition:transform .18s}a:hover>svg:last-child{transform:translate(2px,-2px)}button:active,.button:active{transform:translateY(2px)}.site-header{z-index:10;background:var(--canvas);position:sticky;top:0}.nav-row{align-items:center;gap:32px;width:min(1320px,100% - 64px);min-height:88px;margin:auto;display:flex}.wordmark{color:var(--on-canvas);letter-spacing:-.06em;white-space:nowrap;font-size:25px;font-weight:800}.desktop-nav{align-items:center;gap:26px;margin-left:auto;display:flex}.desktop-nav a{align-items:center;min-height:44px;font-size:15px;display:flex;position:relative}.desktop-nav a:after{content:"";background:var(--on-canvas);transform-origin:0;width:100%;height:3px;transition:transform .18s;position:absolute;bottom:3px;left:0;transform:scaleX(0)}.desktop-nav a[aria-current],.desktop-nav a:hover{font-weight:600}.desktop-nav a[aria-current]:after,.desktop-nav a:hover:after{transform:scaleX(1)}.nav-actions{align-items:center;gap:4px;display:flex}.resume-link{background:var(--coral);min-height:44px;color:var(--ink);align-items:center;gap:8px;margin-right:8px;padding:0 12px;font-size:14px;display:flex}.resume-link svg:last-child{width:16px}.menu-trigger{background:0 0;justify-content:center;align-items:center;width:44px;height:44px;display:none}dialog{background:var(--paper);width:min(520px,100% - 32px);color:var(--ink);border:0;max-height:calc(100svh - 32px);padding:28px;overflow:auto}dialog[open]{animation:.18s ease-out menu-enter}dialog::backdrop{background:#142b4a80}.menu-top{justify-content:space-between;align-items:center;gap:12px;margin-bottom:24px;display:flex}.menu-top h2{margin:0;font-size:24px}.menu-top button{background:0 0;align-items:center;gap:8px;min-height:44px;padding:8px;display:flex}dialog nav{flex-direction:column;gap:4px;display:flex}dialog nav a{justify-content:space-between;align-items:center;min-height:50px;padding:8px 0;font-size:26px;display:flex}.menu-socials{flex-wrap:wrap;gap:16px;margin-top:28px;display:flex}.menu-socials a{align-items:center;gap:6px;min-height:44px;display:flex}.tile-field{pointer-events:none;z-index:0;contain:strict;position:fixed;inset:0;overflow:hidden}.tile{perspective:600px;position:absolute}.tile-face{width:100%;height:100%;transform-style:preserve-3d;display:block;position:relative}.tile-face i{backface-visibility:hidden;background:var(--tile-back);display:block;position:absolute;inset:1px;transform:rotateY(180deg)}.splash{justify-content:center;align-items:center;min-height:calc(100svh - 88px);padding-bottom:70px;display:flex;position:relative}.intro-name{background:var(--canvas);box-shadow:0 0 0 .08em var(--canvas);color:var(--on-canvas);white-space:nowrap;letter-spacing:-.065em;margin:0;font-size:clamp(48px,8.2vw,108px);font-weight:650;line-height:1.2;position:relative}.name-reserve{visibility:hidden;padding-right:.13em}.name-typed{position:absolute;top:0;left:0}.caret{background:var(--coral);vertical-align:-.01em;opacity:0;width:.055em;height:.82em;margin-left:.065em;display:inline-block}[data-intro-state=typing] .caret,[data-intro-state=finishing] .caret{opacity:1}[data-intro-state=finishing] .caret{animation:1s step-end 3 caret-blink,.26s ease-out 3.5s forwards caret-fade}.splash-down{position:absolute;bottom:32px}.splash-down:hover svg{transform:translateY(4px)}.home-workspace{grid-template-columns:minmax(0,1fr) 278px;align-items:start;gap:64px;padding:44px 0 100px;scroll-margin-top:100px;display:grid}.game-space{min-height:450px}.home-sidebar{background:var(--canvas);padding:12px 0}.compact-section+.compact-section{margin-top:40px}.compact-section h2{color:var(--on-canvas);margin:0 0 14px;font-size:23px}.compact-section h2 a{justify-content:space-between;align-items:center;min-height:44px;display:flex}.compact-section ul{margin:0;padding:0;list-style:none}.compact-section li a{align-items:center;gap:12px;padding:9px 0;font-size:15px;font-weight:500;display:flex}.compact-section li a>span{flex:1}.compact-section li a>svg{width:16px}.compact-section .cover{aspect-ratio:1;flex-shrink:0;width:38px;height:38px}.compact-section .cover span{font-size:22px}.compact-section a:hover>span{text-underline-offset:4px;text-decoration:underline}.cover{aspect-ratio:16/10;justify-content:center;align-items:center;display:flex;overflow:hidden}.cover img{object-fit:cover;width:100%;height:100%;display:block}.placeholder-cover span{letter-spacing:-.05em;font-size:clamp(48px,6vw,80px);font-weight:500}.tone-pale{color:var(--ink);background:#dce7f5}.tone-coral{background:var(--coral);color:var(--ink)}.tone-slate{color:var(--ink);background:#b4c1d1}.tone-deep{background:var(--deep);color:#f3f6fa}.tone-muted{color:var(--ink);background:#a7bde1}.page-heading{padding:66px 0 34px}.page-heading h1{color:var(--on-canvas);background:var(--canvas);margin-bottom:24px;font-size:clamp(48px,7vw,80px);display:table}.page-heading>p{background:var(--canvas);max-width:680px;font-size:20px}.collection-page{padding-bottom:100px}.search-field{background:var(--paper);max-width:440px;color:var(--ink);align-items:center;gap:12px;min-height:54px;margin-bottom:36px;padding:4px 12px 4px 18px;display:flex}.search-field input{outline-offset:0;background:0 0;border:0;flex:1;width:100%;min-width:0;padding:10px 0}.search-field input::placeholder{color:#435671;opacity:1}.search-field input:focus-visible{box-shadow:none;outline:0}.search-field input::-webkit-search-cancel-button{display:none}.project-grid{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:1fr;gap:30px 24px;display:grid}.project-card{background:var(--paper);color:var(--ink);height:100%;transition:transform .18s}.project-card>a{height:100%;display:block}.project-card:has(a):hover{transform:translateY(-4px)}.project-copy{padding:22px}.project-copy h2{justify-content:space-between;align-items:center;gap:14px;margin-bottom:12px;font-size:25px;display:flex}.project-copy p{min-height:4.65em;margin:0;font-size:15px}.project-copy svg{width:18px}.project-card.is-placeholder,.timeline-entry.is-placeholder .experience-card{background:#b4c9e9}.empty-results{padding:40px 0 100px}.timeline{max-width:1000px}.timeline-entry{grid-template-columns:180px minmax(0,1fr);gap:34px;padding-bottom:28px;display:grid;position:relative}.timeline-entry:before{content:"";background:var(--line);width:2px;position:absolute;top:12px;bottom:-12px;left:195px}.timeline-entry:last-child:before{bottom:28px}.timeline-entry:after{content:"";background:var(--coral);width:10px;height:10px;position:absolute;top:10px;left:191px}.timeline-date{padding-top:4px}.dates{background:var(--canvas);font-size:14px;line-height:1.6}.experience-card{background:var(--paper);color:var(--ink);padding:30px}.experience-top{align-items:center;gap:18px;margin-bottom:22px;display:flex}.experience-top .cover{aspect-ratio:1;flex-shrink:0;width:64px;height:64px}.experience-top .cover span{font-size:38px}.experience-top h2{margin:0 0 8px;font-size:27px}.experience-top h2 a{align-items:center;gap:10px;display:flex}.experience-top h2 svg{width:16px}.role{margin:0;font-size:16px}.experience-card>p{margin-bottom:16px}.experience-card ul,.detail-body ul{margin:0;padding-left:20px}.experience-card li+li,.detail-body li+li{margin-top:10px}.detail{max-width:1000px;padding-top:44px;padding-bottom:100px}.back-link{background:var(--canvas);text-underline-offset:5px;align-items:center;min-height:44px;text-decoration:underline;display:inline-flex}.detail .page-heading{padding-top:24px}.detail .cover{max-height:480px}.detail .cover span{font-size:150px}.detail-body{background:var(--paper);color:var(--ink);padding:40px}.detail-body section+section{margin-top:32px}.detail-body h2{font-size:30px}.detail-body p{max-width:680px}.detail-links,.profile-links{flex-wrap:wrap;gap:20px;margin-top:28px;display:flex}.text-link{text-underline-offset:5px;align-items:center;min-height:44px;text-decoration:underline;display:inline-flex}.award{font-weight:600}.about-page{padding-bottom:100px}.about-columns{grid-template-columns:1fr 1.35fr;align-items:start;gap:60px;display:grid}.portrait-placeholder{aspect-ratio:4/5;justify-content:center;align-items:center;font-size:160px;display:flex}.prose{background:var(--canvas)}.lead{letter-spacing:-.02em;font-size:28px;line-height:1.3}.button{background:var(--coral);color:var(--ink);align-items:center;gap:12px;min-height:48px;padding:16px 22px;display:inline-flex}.resume-page{min-height:70svh}.resume-caption{margin-top:24px}.site-footer{background:var(--canvas);justify-content:space-between;align-items:center;gap:24px;padding-block:32px;font-size:14px;display:flex}.site-footer nav{flex-wrap:wrap;gap:22px;display:flex}.site-footer a{align-items:center;gap:6px;min-height:44px;display:inline-flex}.site-footer a svg{width:16px}@keyframes caret-blink{0%,to{opacity:1}50%{opacity:0}}@keyframes caret-fade{to{opacity:0}}@keyframes menu-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (min-width:1500px){.intro-name{font-size:120px}}@media (max-width:1100px){.nav-row{gap:24px}.desktop-nav{gap:18px}.social-link{display:none}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.home-workspace{gap:36px}}@media (max-width:900px){.desktop-nav{display:none}.nav-actions{margin-left:auto}.menu-trigger{display:flex}.nav-row{min-height:76px}.splash{min-height:calc(100svh - 76px)}.home-workspace{grid-template-columns:minmax(0,1fr) 250px}.timeline-entry{grid-template-columns:140px minmax(0,1fr);gap:28px}.timeline-entry:before{left:152px}.timeline-entry:after{left:148px}.about-columns{gap:30px}}@media (max-width:600px){.wrap{width:calc(100% - 40px)}.nav-row{gap:8px;width:calc(100% - 32px)}.wordmark{font-size:23px}.nav-actions{gap:0}.resume-link{color:var(--canvas-text);background:0 0;margin:0;padding:0 8px}.resume-link>svg{display:none}.intro-name{font-size:10.5vw}.home-workspace{grid-template-columns:1fr;gap:12px;padding-top:0;padding-bottom:50px}.game-space{min-height:300px}.home-sidebar{width:100%;max-width:340px;margin-left:auto}.compact-section+.compact-section{margin-top:28px}.page-heading{padding-top:40px;padding-bottom:20px}.page-heading h1{font-size:44px}.page-heading>p{font-size:18px}.project-grid{grid-template-columns:1fr;gap:24px}.project-copy p{min-height:0}.placeholder-cover span{font-size:72px}.timeline-entry{padding-bottom:28px;padding-left:20px;display:block}.timeline-entry:before{top:12px;left:3px}.timeline-entry:after{left:-1px}.timeline-date{padding-top:0}.dates{margin-bottom:12px;display:table}.experience-card{padding:22px}.experience-top{align-items:flex-start;gap:12px}.experience-top h2{font-size:23px}.experience-top .cover{width:44px;height:44px}.experience-top .cover span{font-size:28px}.role{font-size:14px}.experience-card li{font-size:15px}.about-columns{grid-template-columns:1fr}.portrait-placeholder{max-width:360px;font-size:130px}.detail{padding-top:24px}.detail-body{padding:24px}.detail-body h2{font-size:26px}.site-footer{flex-direction:column;align-items:flex-start;gap:8px}.site-footer nav{gap:14px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}.tile-face{transform:none!important}}
