:root{color-scheme:light;--paper: #f2e8d5;--ink: #261b17;--accent: #b43522;--blue: #293c74;--line: #ad9b84;--muted: #5e4b40;--mono: "IBM Plex Mono", monospace;--display: "Archivo Black", "Arial Black", sans-serif;--serif: "Instrument Serif", Georgia, serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:radial-gradient(#4c281414 .55px,transparent .8px) 0 0 / 4px 4px,radial-gradient(#fff9eb .65px,transparent .95px) 1px 2px / 7px 7px,var(--paper);color:var(--ink);font:16px/1.55 system-ui,sans-serif}::selection{color:var(--paper);background:var(--blue)}a{color:inherit;text-decoration:none}a:hover{color:var(--accent)}a:focus-visible,input:focus-visible{outline:2px solid currentColor;outline-offset:5px}.shell{width:min(1350px,calc(100% - 100px));margin-inline:auto}.masthead,.footer{min-height:70px;display:flex;align-items:center;justify-content:space-between;gap:16px;font:12px var(--mono)}.masthead{border-bottom:3px solid var(--ink)}.masthead nav{display:flex;gap:30px}.brand{display:inline-flex;align-items:center;gap:8px;font:14px var(--display);white-space:nowrap}.brand span{color:var(--accent);font:28px/1 system-ui}.hero{display:grid;grid-template-columns:.95fr 1.05fr;align-items:center;column-gap:clamp(22px,4vw,65px);padding-block:clamp(35px,5vw,75px);border-bottom:1px solid var(--ink)}.hero-copy{min-width:0;position:relative;z-index:1}.kicker{color:var(--accent);font:500 11px/1.4 var(--mono);letter-spacing:.12em;margin:0}h1{color:var(--ink);font:clamp(4rem,8vw,8.4rem)/.83 var(--display);letter-spacing:-.105em;margin:25px 0 19px}h1 em{display:block;margin-top:.13em;color:var(--accent);font:italic .83em/.9 var(--serif);letter-spacing:-.065em;white-space:nowrap}.intro{margin:24px 0 14px;color:var(--muted);font-size:17px}.jump{display:inline-flex;align-items:center;gap:24px;border-bottom:1px solid var(--accent);padding:9px 0;font:12px var(--mono)}.jump span{color:var(--accent)}.hero-print{margin:0;padding:8px;border:1px solid var(--ink);min-width:0}.hero-art{position:relative;aspect-ratio:1.14;isolation:isolate;overflow:hidden;background:radial-gradient(circle at 50% 46%,#65281e88,transparent 72%),#2b1819}.hero-art:before,.hero-art:after{content:"";position:absolute;pointer-events:none}.hero-art:before{z-index:-1;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent calc(50% - .5px),#eabb9c29 50%,transparent calc(50% + .5px)),linear-gradient(0deg,transparent calc(54% - .5px),#eabb9c29 54%,transparent calc(54% + .5px)),repeating-radial-gradient(circle at 50% 46%,transparent 0 29px,#eabb9c21 30px,transparent 31px 37px)}.hero-art:after{z-index:-1;top:13px;right:13px;bottom:13px;left:13px;border:1px solid #eabb9c67}.hero-art:not(.rendering){background:radial-gradient(circle at 60% 50%,#2b181900,#2b1819 83%),#2b1819 url(/assets/orange-BY1aMnhk.webp) 74% center/auto 105% no-repeat}.hero-art canvas{display:block;width:100%;height:100%;cursor:grab;touch-action:pan-y}.hero-art canvas:active{cursor:grabbing}.hero-art canvas[hidden]{display:none}.hero-art canvas:focus-visible{outline:2px solid #ff9870;outline-offset:-3px}.print-caption{display:flex;align-items:center;justify-content:space-between;gap:13px;padding:11px 5px 3px;font:500 12px var(--mono)}.print-caption em{display:block;color:var(--muted);font:italic 21px/1 var(--serif);margin-top:3px}.control{width:min(188px,56%);font:500 10px/1.2 var(--mono)}.control div{display:flex;justify-content:space-between;gap:8px}.control output{color:var(--accent)}.control input{display:block;width:100%;height:13px;margin:2px 0 3px;accent-color:var(--accent);cursor:pointer}.control p{color:var(--muted);margin:0;font-size:9px}.work{padding-block:49px 70px}.section-heading{display:flex;align-items:baseline;gap:22px;margin-bottom:20px}h2{font:clamp(1.9rem,4vw,3.65rem)/1 var(--display);margin:0;letter-spacing:-.075em}h3{font:clamp(1.18rem,2vw,1.63rem)/1.12 var(--display);letter-spacing:-.055em;margin:11px 0 7px}.projects{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.project{border:1px solid var(--line);padding:6px;transition:border-color .2s}.project:hover{border-color:var(--accent)}.project-art{height:clamp(125px,16vw,228px);position:relative;overflow:hidden;display:grid;place-items:center}.project-art i{display:block;transition:scale .35s}.project:hover i{scale:1.1}.orange{background:repeating-linear-gradient(0deg,#4e17053b 0px 1px,transparent 2px 5px),#a83723}.orange i{width:59%;height:63%;background:repeating-linear-gradient(0deg,#542016 0 2px,transparent 2px 11px);transform:rotate(-19deg) skew(-20deg);box-shadow:12px 13px #ee9e72}.blue{background:radial-gradient(ellipse at center,#52689c,#28345f 80%)}.blue i{width:51%;height:60%;border:1px solid #e7daba;background:repeating-linear-gradient(0deg,#e7daba 0 1px,transparent 1px 16px),repeating-linear-gradient(90deg,#e7daba 0 1px,transparent 1px 16px);transform:rotate(-24deg) skew(12deg,7deg);box-shadow:9px 13px #273765,10px 14px #e7daba,19px 25px #273765,20px 26px #e7daba}.yellow{background:repeating-linear-gradient(110deg,transparent 0 12px,#6f3b1c2c 13px 14px),#dca65d}.yellow i{width:70%;height:76%;background:#532d22;clip-path:polygon(0 58%,29% 53%,36% 37%,43% 69%,54% 3%,60% 78%,75% 38%,81% 51%,100% 53%,80% 55%,75% 46%,58% 98%,53% 22%,43% 80%,35% 44%,30% 57%)}.project-info{position:relative;padding:15px 28px 15px 12px}.arrow{position:absolute;top:13px;right:11px;color:var(--accent)}.project p,.repo-list p{margin:0;font-size:14px;color:var(--muted)}.code{margin-top:66px}.code-heading{justify-content:space-between}.code-heading a{font:12px var(--mono);white-space:nowrap}.repo-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:24px;list-style:none;padding:0;margin:0;border-bottom:1px solid var(--line)}.repo-list li{display:flex;border-top:1px solid var(--line)}.repo-list a{display:block;position:relative;width:100%;padding:18px 40px 20px 0}.repo-list p{max-width:56ch}.repo-arrow{position:absolute;top:18px;right:0;color:var(--accent);font:18px var(--mono)}.repo-list .featured-repo{grid-column:1/-1;background:repeating-linear-gradient(-32deg,transparent 0 21px,#f1e9d715 22px,transparent 23px 27px) right center / 34% 100% no-repeat,var(--blue);color:#fff3dc;border-top:0;margin:0 0 16px}.featured-repo a{padding:26px 48px 29px 25px}.featured-repo a:hover{color:#ffe2b7}.featured-repo .kicker,.featured-repo .repo-arrow{color:#ffc696}.featured-repo p{color:#f5e7cb}.featured-repo h3{font-size:clamp(2.1rem,5vw,3.7rem)}.featured-repo .repo-arrow{right:22px;top:24px}.about{background:#eadcc3;border-block:1px solid var(--ink);display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:32px;padding:45px clamp(20px,4vw,55px) 52px}.about h2{font-size:clamp(2.6rem,6.5vw,6rem);margin-top:12px}.about em{font:italic 1.22em/1 var(--serif);color:var(--accent)}.about-copy p:not(.kicker){max-width:49ch;color:var(--muted);margin:17px 0 0}.resume-links{display:flex;flex-wrap:wrap;gap:10px 20px;margin-top:17px}.resume-links a{font:12px var(--mono);border-bottom:1px solid var(--accent);padding-bottom:3px}.name-note{align-self:center;border-left:1px solid var(--line);padding-left:clamp(16px,3vw,38px)}.name-note p:not(.kicker,.name-stat){max-width:36ch;margin:4px 0 9px;font-size:14px;color:var(--muted)}.name-note .name-stat{font:italic clamp(2.5rem,5vw,4.5rem)/1 var(--serif);color:var(--blue);margin:8px 0}.name-note a{font:12px var(--mono);text-decoration:underline;text-underline-offset:3px}@media(max-width:980px){.shell{width:calc(100% - 64px)}h1{font-size:clamp(3.25rem,8.25vw,6rem)}}@media(max-width:720px){.shell{width:calc(100% - 32px)}.hero{grid-template-columns:minmax(0,1fr);gap:26px;padding-block:32px}h1{font-size:clamp(3.85rem,13vw,6.5rem);margin:18px 0 12px}.intro{margin:16px 0 9px}.hero-print{width:min(100%,540px);justify-self:center}.masthead,.footer{min-height:58px}.masthead nav{gap:12px}.masthead .external{display:none}.work{padding-block:37px 46px}.projects{grid-template-columns:1fr}.project-art{height:clamp(150px,36vw,235px)}.section-heading,.about{display:grid;gap:10px}.about{grid-template-columns:1fr;gap:27px;padding:30px 17px 36px}.name-note{border-left:0;border-top:1px solid var(--line);padding:18px 0 0}.code{margin-top:45px}.repo-list{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}}.career{padding-block:55px 64px;border-bottom:1px solid var(--ink)}.career h2 em{color:var(--accent);font:italic 1.22em/.85 var(--serif)}.career-scroll{overflow-x:auto;scrollbar-color:var(--accent) var(--paper)}.career-scroll:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.career-scroll-hint{display:none;margin:0 0 9px;color:var(--muted);font:11px var(--mono)}.career-route{position:relative;min-width:1080px;isolation:isolate}.career-mountain{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.career-entries{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.32fr);align-items:end;gap:clamp(16px,3.4vw,45px);padding:9px 23% 255px clamp(18px,3vw,46px);margin:0;list-style:none}.career-entries li{border:1px solid var(--line);border-top:3px solid var(--accent);background:#f8efdc;padding:15px clamp(13px,2vw,23px) 17px}.career-entries li:nth-child(2){translate:0 -24px}.career-entries .career-current{border-top-color:var(--blue)}.career-entries h3{margin:5px 0}.career-entries p:not(.kicker){margin:0;color:var(--muted);font-size:14px;max-width:56ch}.career-entries p:not(.kicker)+p{margin-top:7px}@media(max-width:1179px){.career-scroll-hint{display:block}}@media(max-width:720px){.career{padding-block:38px}}
