@font-face{font-family:Instrument Serif;src:url(../media/instrument-serif-latin-400-normal.2zo21yor93qdc.woff2)format("woff2");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:Instrument Serif;src:url(../media/instrument-serif-latin-400-italic.3bg-hzmj1g17f.woff2)format("woff2");font-style:italic;font-weight:400;font-display:swap}@font-face{font-family:Instrument Sans;src:url(../media/instrument-sans-latin-500-normal.1m_u3k-3_nxk9.woff2)format("woff2");font-style:normal;font-weight:500;font-display:swap}@font-face{font-family:Instrument Sans;src:url(../media/instrument-sans-latin-600-normal.31b98hgxp8isy.woff2)format("woff2");font-style:normal;font-weight:600;font-display:swap}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--background:#f7f5ef;--text:#15110c;--secondary:#5e574c;--accent:#8a5a14;--rule:#2a241d24;--sans:"Instrument Sans", -apple-system, "Segoe UI", sans-serif;--display:"Instrument Serif", Georgia, serif}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--background);color:var(--text);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;font-weight:500;line-height:1.6}h1,h2,h3,p,dl,dd{margin:0}::selection{background:#ecdcab}a{color:inherit;text-underline-offset:4px;text-decoration-color:#b9a37a;text-decoration-thickness:1px}a:hover{color:var(--accent)}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:5px}button{color:inherit;font:inherit}.portfolio-shell{--frame-width:78px;isolation:isolate;background:#f4efe2;justify-content:center;align-items:center;height:100svh;padding:96px;display:flex;position:relative}.paper-panel{z-index:1;background-color:#f4efe2;background-image:linear-gradient(#faf8f278,#f4efdf65),url(/textures/cotton-paper.webp);background-size:auto,580px 580px;border-radius:2px;flex-direction:column;width:680px;min-width:0;max-width:100%;height:600px;padding:34px 46px 24px;display:flex;position:relative;box-shadow:0 1px 2px #1a140c38,3px 8px 16px #120d0640,10px 26px 50px #120d0638}.paper-panel:after{content:"";pointer-events:none;border-radius:inherit;position:absolute;inset:0;box-shadow:inset 0 0 0 1px #fffaf04d,inset 0 0 18px #b9a98326}.site-header,.portfolio-content,.contact-links{mix-blend-mode:multiply}.site-header{flex-shrink:0}h1.identity{font-family:var(--display);letter-spacing:-.8px;font-size:56px;font-weight:400;line-height:.95}.section-navigation{border-bottom:1px solid var(--rule);gap:28px;margin-top:20px;display:flex;position:relative}.section-navigation a{color:var(--secondary);white-space:nowrap;padding-bottom:10px;font-size:14.5px;font-weight:500;text-decoration:none;transition:color .22s;position:relative}.section-navigation a:hover,.section-navigation a[aria-current]{color:var(--text)}.section-navigation a[aria-current]:after{content:"";background:var(--text);height:2px;position:absolute;bottom:-1px;left:0;right:0}.section-navigation.has-underline a[aria-current]:after{content:none}.nav-underline{background:var(--text);pointer-events:none;height:2px;position:absolute;bottom:-1px;left:0}.nav-underline.is-sliding{transition:transform .42s cubic-bezier(.3,.8,.25,1),width .42s cubic-bezier(.3,.8,.25,1)}.portfolio-content{--pad-top:26px;--pad-bottom:16px;min-height:0;padding-block:var(--pad-top) var(--pad-bottom);outline:none;flex:1;grid-template-rows:minmax(0,1fr);display:grid}.section-view{will-change:opacity;opacity:0;visibility:hidden;pointer-events:none;grid-area:1/1;align-self:start;width:100%;min-width:0;transition:opacity .18s,visibility 0s .18s}.section-view:not(.is-active){overflow:clip}.section-view.is-active{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .22s .12s,visibility 0s .12s}.section-view.is-active.is-fresh{transition:opacity 0s .14s,visibility 0s .14s}.is-ready .section-view.is-active.is-fresh .reveal{animation:.46s ease-out both ink-in;animation-delay:calc(.95s + var(--i,0) * 70ms)}.is-ready.has-switched .section-view.is-active.is-fresh .reveal{animation-delay:calc(.15s + var(--i,0) * 70ms)}.section-view:not(.is-active) .reveal{opacity:0;transition:opacity .16s}.panel-footer{border-top:1px solid var(--rule);flex-shrink:0;justify-content:space-between;align-items:center;gap:16px;padding-top:14px;display:flex;position:relative}.contact-links{gap:24px;display:flex}.contact-links a{color:var(--secondary);align-items:center;gap:7px;font-size:13.5px;text-decoration:none;display:inline-flex}.contact-links a:hover{color:var(--text);text-decoration:underline}.contact-links svg{flex-shrink:0;width:14px;height:14px}.painting-info{display:flex;position:relative}.painting-info-button{mix-blend-mode:multiply;color:var(--secondary);cursor:pointer;white-space:nowrap;background:0 0;border:0;align-items:center;gap:7px;margin:-4px;padding:4px;font-size:13.5px;transition:color .16s;display:inline-flex}.painting-info-button svg{flex-shrink:0;width:14px;height:14px}@media (max-width:480px){.painting-info-label{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.painting-info-button svg{width:15px;height:15px}}.painting-info-button:hover,.painting-info.is-open .painting-info-button{color:var(--text)}.painting-card{z-index:5;opacity:0;visibility:hidden;pointer-events:none;background:#fbf8f0;border-radius:3px;width:248px;padding:10px 10px 12px;transition:opacity .16s,transform .2s,visibility 0s .2s;position:absolute;bottom:calc(100% + 14px);right:-8px;transform:translateY(4px);box-shadow:0 1px 2px #1a140c33,0 10px 28px #120d0638}.painting-info.is-open .painting-card{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .16s,transform .2s,visibility;transform:none}@media (hover:hover){.painting-info:hover .painting-card,.painting-info:focus-within .painting-card{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .16s,transform .2s,visibility;transform:none}.painting-info:hover .painting-info-button{color:var(--text)}}.painting-card-image{aspect-ratio:4/3;background:#2a2118;border-radius:1px;margin-bottom:10px;position:relative;overflow:hidden}.painting-card-image img{object-fit:cover;visibility:hidden;width:100%;height:100%;position:absolute;inset:0;transform:scale(1.06)}.painting-card-image img.is-active{visibility:visible}.painting-card-title{font-family:var(--display);font-size:19px;font-style:italic;line-height:1.15}.painting-card-credit{margin-top:4px;font-size:13px}.painting-card-museum{color:var(--secondary);font-size:12.5px}.section-view:has(.about){margin-block:calc(-1 * var(--pad-top)) calc(-1 * var(--pad-bottom));flex-direction:column;justify-content:safe center;align-self:stretch;display:flex}.about p{font-family:var(--display);letter-spacing:-.2px;font-size:27px;font-weight:400;line-height:1.3}.about p+p{margin-top:18px}.rows{margin:0;padding:0;list-style:none}.job{border-bottom:1px solid var(--rule);grid-template-columns:54px minmax(0,1fr) auto;align-items:start;gap:16px;padding:22px 0;display:grid}.section-view:has(.jobs){align-self:stretch;overflow:clip}.jobs{height:calc(100% + var(--pad-top) + var(--pad-bottom));margin-block:calc(-1 * var(--pad-top)) calc(-1 * var(--pad-bottom));grid-template-rows:repeat(3,minmax(min-content,1fr));display:grid}.jobs .job{align-content:center}.job:last-child{border-bottom:0}.job{--name:27px}.job h3{font-family:var(--display);font-size:var(--name);font-weight:400;line-height:1.05}.role{margin-top:5px;font-size:14.5px;line-height:1.6}.team{color:var(--secondary)}.job-meta{text-align:right;padding-top:3px}.job .entry-logo{width:100%;height:calc(var(--name) * 1.05 + 5px + 14.5px * 1.6);align-self:start}.job .entry-logo svg{width:76%;height:76%}.job .samvid-mark{aspect-ratio:1;align-self:center;width:72%;height:auto;-webkit-mask-position:50% 33.333%;mask-position:50% 33.333%;-webkit-mask-size:400% 400%;mask-size:400% 400%}.dates{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:14px}.location{color:var(--secondary);white-space:nowrap;margin-top:3px;font-size:13px}.entry-logo{justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex}.degree{border-bottom:1px solid var(--rule);grid-template-columns:minmax(0,1fr) auto;align-items:baseline;column-gap:24px;padding-bottom:18px;display:grid}.degree-meta{display:contents}.degree .dates,.degree .location{text-align:right;grid-column:2}.degree h2,.degree .dates{grid-row:1}.degree-name{grid-row:2}.degree .location{grid-row:2;margin-top:0}.degree h2{font-family:var(--display);font-size:29px;font-weight:400;line-height:1.1}.degree-name{color:var(--secondary);margin-top:4px;font-size:14.5px}.figures{gap:30px;display:flex}.figures div{flex-direction:column;display:flex}.figures dt{color:var(--secondary);font-size:12.5px}.figures dd{font-family:var(--display);font-size:36px;font-weight:400;line-height:1}.kicker{color:var(--secondary);margin:18px 0 11px;font-size:13px;font-weight:600}.course-list{grid-template-rows:repeat(5,auto);grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-flow:column;gap:10px 28px;margin:0;padding:0;list-style:none;display:grid}.course-list a{grid-template-columns:60px minmax(0,1fr);align-items:baseline;gap:6px;display:grid}.course-code{color:var(--secondary);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:12.5px}.course-title{font-size:14px;line-height:1.35}.course-list a{text-decoration:none}.course-list a:hover{color:inherit}.course-list a:hover .course-title{text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:1px}.section-view:has(.projects){align-self:stretch;overflow:clip}.projects .project{flex:auto}.projects{height:calc(100% + var(--pad-top) + var(--pad-bottom));margin-block:calc(-1 * var(--pad-top)) calc(-1 * var(--pad-bottom));flex-direction:column;display:flex}.project{flex-direction:column;justify-content:center;padding:12px 0;display:flex}.project+.project{border-top:1px solid var(--rule)}.project-head{align-items:center;gap:10px;display:flex}.project h3{font-family:var(--display);font-size:29px;font-weight:400;line-height:1.05}.project h3 a{align-items:center;gap:8px;text-decoration:none;display:inline-flex}.project h3 a:hover{text-decoration:underline;text-decoration-thickness:1px}.project h3 svg{width:16px;height:16px;color:var(--secondary)}.project-description{margin-top:8px;font-size:15.5px;line-height:1.55}.project-figures{gap:34px;margin-top:13px}.project-figures div{flex-direction:column-reverse}.project-figures dd{font-size:30px}.project-figures dt{margin-top:3px}.degree-logo{vertical-align:baseline;width:auto;height:.72em;margin-right:.28em;display:inline-block}.artwork{inset:calc(var(--frame-width) - 5px);background:#f4efe2;position:absolute;overflow:hidden}.artwork:after{content:"";pointer-events:none;position:absolute;inset:0;box-shadow:inset 0 4px 18px #120c0480,inset 0 0 6px #120c0466}.artwork-image{object-fit:cover;will-change:opacity;opacity:0;pointer-events:none;transition:opacity 1.1s cubic-bezier(.25,.46,.45,.94);transform:scale(1.01)}.artwork-image.is-active{opacity:1}.picture-frame{z-index:3;border:var(--frame-width) solid transparent;pointer-events:none;filter:drop-shadow(0 3px 6px #100a0480);will-change:transform;border-image:url(/textures/gilded-frame.svg) 150 round;position:absolute;inset:0}.entry-logo svg{flex-shrink:0;width:20px;height:20px}.entry-logo .brand-aws{width:24px;height:20px}.entry-logo .brand-shopify{width:19px;height:21px}.entry-logo .brand-chess{width:18px;height:20px}.entry-logo img{object-fit:contain}.brand-github,.brand-aws{color:#171717}.brand-linkedin{color:#0a66c2}.brand-shopify{color:#5e8e3e}.samvid-mark{background:#ef4b32;width:18px;height:18px;display:block;-webkit-mask-image:url(/logos/samvid.png);mask-image:url(/logos/samvid.png);-webkit-mask-position:-27px -18px;mask-position:-27px -18px;-webkit-mask-size:72px 72px;mask-size:72px 72px;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.skip-link{z-index:10;background:var(--background);font-family:var(--sans);padding:8px 12px;font-size:14px;position:absolute;top:12px;left:12px;transform:translateY(-200%)}.skip-link:focus{transform:translateY(0)}@media (max-height:760px) and (min-width:761px){.portfolio-shell{--frame-width:62px;padding:80px}.paper-panel{height:min(600px,100svh - 160px);padding-block:28px 20px}h1.identity{font-size:50px}.section-navigation{margin-top:16px}.portfolio-content{--pad-top:20px;--pad-bottom:12px;padding-block:var(--pad-top) var(--pad-bottom)}.about p{font-size:24px}.job{--name:24px;padding:12px 0}.degree{padding-bottom:12px}.degree h2{font-size:26px}.figures dd{font-size:30px}.kicker{margin:12px 0 8px}.course-list{gap:6px 24px}.course-title{font-size:13px}.project{padding:10px 0}.project h3{font-size:26px}.project-description{font-size:14.5px}.project-figures{margin-top:8px}.project-figures dd{font-size:25px}}@media (max-height:640px) and (min-width:761px){.portfolio-shell{--frame-width:40px;padding:54px}.paper-panel{width:720px;height:calc(100svh - 108px);padding:20px 36px 16px}h1.identity{font-size:40px}.section-navigation{margin-top:10px}.section-navigation a{padding-bottom:7px}.portfolio-content{--pad-top:14px;--pad-bottom:10px;padding-block:var(--pad-top) var(--pad-bottom)}.about p{font-size:20px}.about p+p{margin-top:12px}.job{--name:21px;padding:8px 0}.degree h2{font-size:22px}.figures dd{font-size:26px}.course-list{gap:4px 20px}.course-title{font-size:12px}.project{padding:6px 0}.project h3{font-size:22px}.project-description{margin-top:4px;font-size:13.5px}.project-figures{margin-top:6px}.project-figures dd{font-size:21px}.project-figures dt{font-size:11.5px}}@media (max-width:760px){.portfolio-shell{--frame-width:24px;--card-min:566px;--band:clamp(72px, calc(100svh - var(--frame-width) - var(--card-min)), 40svh);height:auto;min-height:100svh;padding:var(--band) var(--frame-width) var(--frame-width);display:block}.artwork{height:calc(var(--band) - 5px + 28px);position:fixed;bottom:auto}.picture-frame{position:fixed}.paper-panel{width:100%;height:max(var(--card-min), calc(100svh - var(--band) - var(--frame-width)));border-radius:0;padding:22px 22px 16px}h1.identity{font-size:38px}.section-navigation{justify-content:space-between;gap:8px;margin-top:12px}.section-navigation a{padding-bottom:8px;font-size:13px}.portfolio-content{--pad-top:16px;--pad-bottom:10px;padding-block:var(--pad-top) var(--pad-bottom)}.about p{font-size:19.5px;line-height:1.28}.about p+p{margin-top:12px}.job{--name:21px;grid-template-columns:40px minmax(0,1fr);gap:12px;padding:10px 0}.role{font-size:13.5px;line-height:1.45}.job-meta{text-align:left;grid-column:2;gap:10px;margin-top:-6px;padding-top:0;display:flex}.location{margin-top:0}.location:before{content:"·";color:var(--secondary);margin-right:10px}.degree{grid-template-columns:minmax(0,1fr)}.degree-meta{grid-row:3;gap:10px;margin-top:6px;display:flex}.degree .dates,.degree .location{text-align:left;grid-area:auto}.degree{padding-bottom:10px}.degree h2{font-size:22px}.kicker{margin:10px 0 7px}.figures dd{font-size:28px}.course-list{grid-template-rows:none;grid-template-columns:1fr;grid-auto-flow:row;gap:4px}.course-list a{grid-template-columns:54px minmax(0,1fr)}.course-code{font-size:11.5px}.course-title{font-size:13px;line-height:1.45}.project h3{font-size:23px}.project-description{font-size:14px;line-height:1.5}.project-figures{gap:24px}.project-figures dd{font-size:24px}.project-figures dt{font-size:12px}.panel-footer{padding-top:11px}.contact-links{gap:18px}.contact-links a,.painting-info-button{font-size:13px}}@media (max-width:360px){.portfolio-shell{--frame-width:22px;--card-min:590px}.paper-panel{padding:18px 16px 12px}h1.identity{font-size:32px}.section-navigation a{font-size:11.5px}.contact-links{gap:14px}}@media (max-height:500px) and (min-width:560px){.portfolio-shell{--frame-width:26px;padding:36px}.paper-panel{width:900px;height:calc(100svh - 72px);padding:14px 24px 12px}.site-header{border-bottom:1px solid var(--rule);align-items:flex-end;gap:28px;display:flex}h1.identity{white-space:nowrap;padding-bottom:8px;font-size:32px}.section-navigation{border:0;gap:20px;margin:0}.section-navigation a{padding-bottom:9px;font-size:13px}.portfolio-content{--pad-top:12px;--pad-bottom:8px;padding-block:var(--pad-top) var(--pad-bottom);overflow-y:auto}.about{grid-template-columns:1fr 1fr;gap:0 28px;display:grid}.about p{margin:0;font-size:16px}.rows:not(.projects){grid-template-rows:none;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;height:auto;margin-block:0;display:grid}.jobs .job{align-content:start}.job{--name:19px;border:0;grid-template-columns:38px 1fr;gap:8px;padding:0}.job-meta{text-align:left;grid-column:2}.degree{padding-bottom:8px}.degree h2{font-size:20px}.figures dd{font-size:22px}.kicker{margin:8px 0 6px}.course-list{grid-template-rows:repeat(2,auto);grid-template-columns:repeat(5,minmax(0,1fr));gap:5px 14px}.course-list a{grid-template-columns:1fr;gap:0}.course-title{font-size:11.5px}.course-code{font-size:10.5px}.projects{grid-template-rows:none;grid-template-columns:1fr 1fr;gap:28px;height:auto;margin-block:0;display:grid}.project,.project+.project{border:0;justify-content:flex-start;padding:0}.project h3{font-size:21px}.project-description{font-size:13px}.project-figures dd{font-size:20px}}@media (prefers-reduced-motion:reduce){.artwork-image,.section-view,.section-view.is-active,.section-navigation a,.nav-underline.is-sliding{transition:none;transform:none}.section-view.is-active.is-fresh .reveal{animation:none!important}}.portfolio-shell:not(.is-ready) :is(.artwork,.picture-frame,.paper-panel){opacity:0}@media (prefers-reduced-motion:no-preference){.is-ready .artwork,.is-ready .picture-frame{animation:.9s cubic-bezier(.4,0,.2,1) both fade-in}.is-ready .paper-panel{animation:1s cubic-bezier(.22,.7,.25,1) .3s both card-set-down}.is-ready h1.identity{animation:.6s ease-out .75s both ink-in}.is-ready .section-navigation{animation:.6s ease-out .85s both ink-in}.is-ready .panel-footer{animation:.6s ease-out 1.05s both ink-in}}@keyframes fade-in{0%{opacity:0}}@keyframes card-set-down{0%{opacity:0;transform:translateY(12px)scale(.985)}60%{opacity:1}}@keyframes ink-in{0%{opacity:0;transform:translateY(4px)}}
