@font-face{font-family:Inter;src:url(/build/assets/inter-regular-latin-ext-C1nco2VV.woff2)format("woff2");font-style:normal;font-weight:400;font-display:swap;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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;src:url(/build/assets/inter-regular-latin-C38fXH4l.woff2)format("woff2");font-style:normal;font-weight:400;font-display:swap;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:Inter;src:url(/build/assets/inter-semibold-latin-ext-D2bJ5OIk.woff2)format("woff2");font-style:normal;font-weight:600;font-display:swap;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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;src:url(/build/assets/inter-semibold-latin-LgqL8muc.woff2)format("woff2");font-style:normal;font-weight:600;font-display:swap;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:Inter;src:url(/build/assets/inter-bold-latin-ext-Ca8adRJv.woff2)format("woff2");font-style:normal;font-weight:700;font-display:swap;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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;src:url(/build/assets/inter-bold-latin-Yt3aPRUw.woff2)format("woff2");font-style:normal;font-weight:700;font-display:swap;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:Blinker;src:url(/build/assets/blinker-semibold-latin-ext-wLsLTorO.woff2)format("woff2");font-style:normal;font-weight:600;font-display:swap;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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Blinker;src:url(/build/assets/blinker-semibold-latin-CNTuidEZ.woff2)format("woff2");font-style:normal;font-weight:600;font-display:swap;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}:root{--accent:#f22641;--accent-alt:#f12641;--accent-dark:#c01326;--surface:#262626;--surface-deep:#1a1a1a;--card:#141414;--muted:#b2b2b2;--placeholder:#828282;--white:#fff;--black:#000;--font-body:"Inter", Arial, sans-serif;--font-display:"Blinker", "Arial Narrow", Arial, sans-serif;--shell:1090px;--sticky-nav-offset:73px}*,:before,:after{box-sizing:border-box}html{background:var(--black);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;scroll-behavior:smooth;min-width:320px}main[id],section[id],footer[id]{scroll-margin-top:var(--sticky-nav-offset)}body{background:var(--black);min-width:320px;color:var(--white);font-family:var(--font-body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-size:16px;overflow-x:hidden}button,input,textarea{color:inherit;font:inherit}a{color:inherit}img{max-width:100%;display:block}.shell{width:min(var(--shell), calc(100% - 48px));margin-inline:auto}.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(--white);color:var(--black);border-radius:7px;padding:10px 16px;transition:transform .16s;position:fixed;top:12px;left:12px;transform:translateY(-160%)}.skip-link:focus-visible{transform:translateY(0)}.button{background:var(--accent);color:var(--white);font-family:var(--font-display);border:0;justify-content:center;align-items:center;font-weight:600;line-height:1;text-decoration:none;transition:background-color .2s;display:inline-flex}.button:hover,.button:focus-visible{background:var(--accent-dark)}.section-dark{background:var(--surface)}.section-title{color:var(--white);font-family:var(--font-display);text-align:center;margin:0;font-size:40px;font-weight:600;line-height:1}.section-intro{color:var(--white);text-align:center;margin:0 auto;font-size:18px;font-weight:400;line-height:1.4}.section-intro a{color:var(--accent-alt);text-underline-offset:2px;font-weight:700;text-decoration:underline;transition:color .2s}.section-intro a:hover,.section-intro a:focus-visible{color:var(--accent-dark)}.hero{z-index:2;background:var(--black);border-radius:0 0 50px 50px;height:560px;position:relative;overflow:hidden}.hero.hero--nav-sticky{z-index:30}.hero__background,.hero__shade{width:100%;height:100%;position:absolute;inset:0}.hero__background{object-fit:cover;object-position:center}.hero__shade{background:linear-gradient(90deg,#000c 23.44%,#0000 100%)}.hero__inner{height:100%;position:relative}.site-nav{z-index:5;align-items:center;display:flex;position:absolute;top:32px;left:0}.site-nav.is-sticky{z-index:20;width:min(calc(var(--shell) + 48px), 100%);background:#141414f5;border-radius:0 0 14px 14px;padding:16px 24px;position:fixed;top:0;left:50%;right:auto;transform:translate(-50%);box-shadow:0 6px 18px #00000040}.site-nav__brand{width:43px;height:41px;display:block}.site-nav__brand img{width:43px;height:41px}.site-nav__links{align-items:center;gap:27px;margin-left:52px;display:flex}.site-nav__links a{font-size:16px;font-weight:400;line-height:28px;text-decoration:none}.site-nav__links a:hover,.site-nav__links a:focus-visible,.site-nav__links a.is-active{color:var(--accent)}.site-nav__links a.is-active:hover,.site-nav__links a.is-active:focus-visible{color:var(--accent-dark)}.site-nav__toggle{display:none}.hero__copy{z-index:2;width:470px;position:absolute;top:143px;left:0}.hero__copy h1{width:474px;color:var(--white);font-family:var(--font-display);margin:0;font-size:72px;font-weight:600;line-height:78px}.hero__role{color:var(--accent-alt);text-transform:uppercase;margin:14px 0 0;font-size:27px;font-weight:600;line-height:39px}.hero__role-text{transition:opacity .25s,transform .25s;display:inline-block}.hero__role-text.is-fading{opacity:0;transform:translateY(-6px)}.hero__description{width:470px;color:var(--white);margin:17px 0 0;font-size:16px;font-weight:400;line-height:22px}.hero__actions{gap:27px;margin-top:35px;display:flex}.button--hero{white-space:nowrap;border-radius:9px;min-width:152px;height:41px;padding:0 12px;font-size:25px}.hero__actions .button:last-child{min-width:166px}.hero__image{z-index:2;pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0 0 0 50%}.portrait-card{width:286px;height:286px;position:relative}.portrait-card__accent{background:var(--accent);border-radius:25px;width:258px;height:254px;transition:background-color .2s;position:absolute;top:35px;left:32px}.portrait-card:hover .portrait-card__accent{background:var(--accent-dark)}.portrait-card img{z-index:1;object-fit:cover;width:286px;height:286px;position:relative}.projects{z-index:1;height:1207px;margin-top:-74px;position:relative}.projects__inner{height:100%;position:relative}.projects .section-title{width:100%;position:absolute;top:124px;left:0}.projects .section-intro{width:958px;position:absolute;top:190px;left:66px}.project-grid{grid-template-columns:repeat(2,525px);gap:30px 41px;display:grid}.projects .project-grid{position:absolute;top:310px;left:0}.project-card{background:var(--black);isolation:isolate;border-radius:18px;width:525px;height:366px;position:relative;overflow:hidden}.project-card__image,.project-card__shade{width:100%;height:100%;position:absolute;inset:0}.project-card__image{z-index:-2;object-fit:cover;object-position:center}@media (width>=801px){.project-card--starboard .project-card__image,.project-card--shell-scripts .project-card__image,.project-card--ultimate-cheatsheet .project-card__image,.project-card--alternate-history .project-card__image,.project-card--need-umbrella .project-card__image{object-fit:fill;max-width:none;bottom:auto;right:auto}.project-card--starboard .project-card__image{width:133.147%;height:100%;top:0;left:-15.8114%}.project-card--ultimate-cheatsheet .project-card__image{width:138.095%;height:127.603%;top:-2.48801%;left:-18.904%}.project-card--shell-scripts .project-card__image{width:139.516%;height:115.301%;top:0;left:-18.996%}.project-card--alternate-history .project-card__image{width:146.095%;height:136.842%;top:-.054389%;left:-23.0476%}.project-card--need-umbrella .project-card__image{width:100.929%;height:100%;top:0;left:-.464246%}}.project-card__shade{z-index:-1;background:linear-gradient(#fff0 -19.67%,#65656500 48.75%,#000 91.9%)}.project-card:after{z-index:0;content:"";opacity:0;pointer-events:none;background:#0000009e;transition:opacity .3s;position:absolute;inset:0}.project-card:hover:after,.project-card:focus-within:after,.project-card.is-revealed:after{opacity:1}.project-card--starboard .project-card__shade{background:linear-gradient(#0000 39.48%,#000 92.73%)}.project-card--need-umbrella .project-card__shade{background:linear-gradient(#0000 51.91%,#000 99.94%)}.project-card__copy{z-index:1;width:calc(100% - 72px);transition:transform .3s;position:absolute;top:248px;left:36px}.project-card:hover .project-card__copy,.project-card:focus-within .project-card__copy,.project-card.is-revealed .project-card__copy{text-align:center;transform:translateY(-212px)}.project-card:hover .project-card__copy h3,.project-card:hover .project-card__copy p,.project-card:focus-within .project-card__copy h3,.project-card:focus-within .project-card__copy p,.project-card.is-revealed .project-card__copy h3,.project-card.is-revealed .project-card__copy p{margin-inline:auto}.project-card__copy h3{width:var(--title-width);font-family:var(--font-display);margin:0;font-size:30px;font-weight:600;line-height:1}.project-card__copy p{width:var(--description-width);margin:7px 0 0;font-size:14px;font-weight:400;line-height:1.02}.project-card__actions{z-index:1;opacity:0;pointer-events:none;justify-content:center;gap:12px;transition:opacity .22s,transform .22s;display:flex;position:absolute;bottom:36px;left:24px;right:24px;transform:translateY(8px)}.project-card:hover .project-card__actions,.project-card:focus-within .project-card__actions,.project-card.is-revealed .project-card__actions{opacity:1;pointer-events:auto;transform:translateY(0)}.project-card__action{background:var(--accent);min-height:44px;color:var(--white);font-family:var(--font-display);cursor:pointer;border:0;border-radius:22px;justify-content:center;align-items:center;padding:0 18px;font-size:14px;font-weight:600;line-height:1;text-decoration:none;transition:background-color .2s;display:inline-flex}.project-card__action[hidden]{display:none}.project-card__action:hover,.project-card__action:focus-visible{background:var(--accent-dark)}.project-card__action:focus-visible{outline:2px solid var(--white);outline-offset:3px}.project-card__arrow{z-index:1;background:var(--accent);border-radius:50%;width:36px;height:36px;transition:opacity .22s,transform .22s;position:absolute;bottom:36px;right:24px}.project-card:hover .project-card__arrow,.project-card:focus-within .project-card__arrow,.project-card.is-revealed .project-card__arrow{opacity:0;transform:translate(6px)}.project-card__arrow img{width:36px;height:36px}.project-lightbox{z-index:20;opacity:0;background:#000000d1;justify-content:center;align-items:center;padding:24px 24px 88px;transition:opacity .2s,transform .2s;display:flex;position:fixed;inset:0;transform:scale(.98)}.project-lightbox[hidden]{display:none}.project-lightbox.is-open{opacity:1;transform:scale(1)}.project-lightbox__figure{justify-content:center;align-items:center;max-width:100%;display:flex}.project-lightbox__image{object-fit:contain;border-radius:12px;width:auto;max-width:min(1090px,100%);height:auto;max-height:min(86vh,100dvh - 112px)}.project-lightbox__close{background:var(--accent);width:44px;height:44px;color:var(--white);font-family:var(--font-display);cursor:pointer;border:0;border-radius:50%;justify-content:center;align-items:center;font-size:26px;line-height:1;transition:background-color .2s;display:inline-flex;position:absolute;bottom:24px;right:50%;transform:translate(50%)}.project-lightbox__close:hover,.project-lightbox__close:focus-visible{background:var(--accent-dark)}.project-lightbox__close:focus-visible{outline:2px solid var(--white);outline-offset:3px}body.project-lightbox-open{overflow:hidden}.home-lower{z-index:2;isolation:isolate;height:1655px;margin-top:-43px;position:relative}.home-lower:before{z-index:-2;background:var(--surface);content:"";width:100%;height:1410px;position:absolute;top:245px;left:0}.experience{z-index:0;width:100%;height:507px;position:absolute;top:0;left:0}.experience__art{object-fit:cover;width:100%;height:507px;position:absolute;inset:0}.experience__inner{z-index:1;height:100%;position:relative}.experience .section-title{width:100%;position:absolute;top:55px;left:0}.experience__stats{grid-template-columns:repeat(4,1fr);width:1004px;margin:0;display:grid;position:absolute;top:148px;left:42px}.experience__stats div{flex-direction:column;align-items:center;min-width:0;display:flex}.experience__stats dd,.experience__stats dt{text-align:center;margin:0}.experience__stats dd{height:60px;min-height:60px;color:var(--white);order:-1;font-size:48px;font-weight:700;line-height:58.09px}.experience__stats dt{color:var(--muted);font-size:16px;font-weight:400;line-height:19px}.github-section{z-index:1;background:0 0;width:100%;height:1421px;position:absolute;top:245px;left:0}.github-section__inner{height:100%;position:relative}.github-section .section-title{width:100%;position:absolute;top:124px;left:0}.github-section .section-intro{width:958px;position:absolute;top:190px;left:66px}.github-section .project-grid{position:absolute;top:310px;left:0}.page-head{z-index:2;background:var(--surface-deep);border-radius:0 0 50px 50px;height:190px;position:relative}.page-head.page-head--nav-sticky{z-index:30}.page-head__inner{height:100%;position:relative}.breadcrumbs{position:absolute;top:110px;left:0}.breadcrumbs__list{align-items:center;gap:10px;margin:0;padding:0;font-size:18px;line-height:28px;list-style:none;display:flex}.breadcrumbs__item a{color:var(--accent-alt);text-underline-offset:2px;font-weight:700;text-decoration:none;transition:color .2s}.breadcrumbs__item a:hover,.breadcrumbs__item a:focus-visible{color:var(--accent-dark);text-decoration:underline}.breadcrumbs__item [aria-current=page]{color:var(--white)}.breadcrumbs__separator{color:#ffffff80}.uses-content{z-index:1;height:972px;margin-top:-74px;position:relative}.uses-content__inner{height:100%;position:relative}.uses-content .section-title{width:100%;position:absolute;top:124px;left:0}.uses-content .section-intro{width:958px;position:absolute;top:190px;left:66px}.uses-grid{grid-template-columns:repeat(2,525px);gap:41px;display:grid;position:absolute;top:283px;left:0}.uses-card{background:var(--card);border-radius:18px;width:525px;height:299px;padding:27px 40px}.uses-card h3{color:var(--accent);font-family:var(--font-display);text-align:center;margin:0 0 30px;font-size:37px;font-weight:600;line-height:1}.uses-card ol{margin:0;width:max-content;max-width:100%;color:var(--white);margin-inline:auto;padding-left:21px;font-size:18px;line-height:1.1412}.uses-card li+li{margin-top:4px}.page-uses .contact{margin-top:-307px}.cv-content{z-index:1;margin-top:-74px;padding:124px 0 160px;position:relative}.cv-content__actions{text-align:center;margin-top:46px}.cv-viewer{background:var(--card);border-radius:18px;margin-top:46px;overflow:hidden}.cv-viewer__frame{border:0;width:100%;height:min(1100px,85vh);display:block}.cv-viewer__fallback{color:var(--white);text-align:center;margin:0;padding:40px;font-size:18px;line-height:1.1412}.page-cv .contact{margin-top:-50px}.error-content{z-index:1;flex-direction:column;align-items:center;margin-top:-74px;padding:114px 0 248px;display:flex;position:relative;overflow:hidden}.error-content__code{color:#424242;font-family:var(--font-display);text-align:center;margin:-.25em 0 -.155em;padding-top:30px;font-size:336.61px;font-weight:600;line-height:1.06}.error-content__copy{text-align:center;margin-top:26px}.error-content__copy h2{font-family:var(--font-display);margin:0;font-size:40px;font-weight:600;line-height:1}.error-content__home{border-radius:9px;width:118px;height:41px;margin-top:51px;font-size:25px}.page-error .contact{margin-top:-208px}.contact{z-index:5;background:var(--surface-deep);border-radius:50px 50px 0 0;height:551px;margin-top:-251px;position:relative}.contact__inner{height:100%;position:relative}.contact__title{width:100%;position:absolute;top:60px;left:0}.contact__grid{grid-template-columns:489px 489px;column-gap:112px;width:1091px;display:grid;position:absolute;top:143px;left:-1px}.contact-list{justify-items:start;gap:12px;margin:0;font-style:normal;display:grid}.contact-list__item{min-height:32px;color:var(--white);align-items:center;font-size:16px;line-height:28px;text-decoration:none;display:flex}.contact-list a.contact-list__item:hover,.contact-list a.contact-list__item:focus-visible{color:var(--accent)}.contact-list__item img{flex:none;width:32px;height:32px;margin-right:11px}.reverse{direction:rtl;unicode-bidi:bidi-override}.contact__follow{margin:28px 0 0;font-size:16px;font-weight:600;line-height:28px}.social-links{gap:13.5px;margin-top:5px;display:flex}.social-link,.social-link img{width:38.44px;height:38.44px;display:block}.social-link{border-radius:50%;transition:transform .22s,box-shadow .22s}.social-link:hover,.social-link:focus-visible{transform:translateY(-3px);box-shadow:0 0 0 1px #f2264159,0 6px 18px #f226414d}.contact-form{gap:17px;width:489px;display:grid}.contact-form input,.contact-form textarea,.contact-form__submit{border-style:solid;border-color:var(--white);width:100%;color:var(--white);cursor:pointer;outline:0}.contact-form input{background:0 0;border-width:1px;border-radius:7px;height:37px;padding:0 14px}.contact-form textarea{resize:none;background:0 0;border-width:1px;border-radius:10px;height:105px;padding:8px 14px}.contact-form input::placeholder,.contact-form textarea::placeholder{color:var(--placeholder);opacity:1}.contact-form__submit{background:var(--accent);border-width:0;border-radius:8px;height:41px;padding:0;font-size:20px;font-weight:700;line-height:24px;transition:background-color .2s}.contact-form__submit:hover:not(:disabled),.contact-form__submit:focus-visible{background:var(--accent-dark)}.contact-form__submit:disabled{cursor:wait;opacity:.65}.contact-form__status{margin:0;font-size:14px;line-height:20px}.contact-form__status:empty{display:none}.contact-form__status[data-state=success]{color:#8fe3a1}.contact-form__status[data-state=error]{color:#ff9aaa}.contact-form input:focus-visible,.contact-form textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.contact-form__submit:focus-visible{outline:2px solid var(--white);outline-offset:2px}.contact__copyright{text-align:center;width:100%;margin:0;font-size:16px;font-weight:300;line-height:28px;position:absolute;bottom:28px;left:0}.back-to-top{z-index:10;background:var(--accent);visibility:hidden;opacity:0;pointer-events:none;border-radius:50%;width:41px;height:41px;transition:opacity .16s,transform .16s,visibility 0s linear .16s,background-color .2s;position:fixed;bottom:42px;right:44px;overflow:hidden;transform:translateY(12px)}.back-to-top:hover,.back-to-top:focus-visible{background:var(--accent-dark)}.back-to-top.is-visible{visibility:visible;opacity:1;pointer-events:auto;transition-delay:0s;transform:translateY(0)}.back-to-top img{width:41px;height:41px}.back-to-top:focus-visible{outline:2px solid var(--white);outline-offset:3px}@media (width<=1199px){.shell{width:min(896px,100% - 64px)}.site-nav.is-sticky{width:min(944px,100% - 16px)}.hero__copy{width:min(470px,52vw)}.hero__copy h1{width:auto;font-size:clamp(58px,6.3vw,72px)}.hero__description{width:min(470px,48vw)}.hero{height:620px}.page-head{height:170px}.breadcrumbs{top:96px}.portrait-card{width:254px;height:254px}.portrait-card__accent{width:230px;height:226px;top:31px;left:29px}.portrait-card img{width:254px;height:254px}.projects,.uses-content,.cv-content,.error-content{height:auto;margin-top:-50px}.projects,.uses-content,.cv-content{padding:92px 0 120px}.projects__inner,.uses-content__inner{height:auto}.projects .section-title,.projects .section-intro,.projects .project-grid,.uses-content .section-title,.uses-content .section-intro,.uses-grid{width:auto;position:static}.projects .section-intro,.uses-content .section-intro{max-width:958px;margin-top:28px}.project-grid,.uses-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:46px}.project-card,.uses-card{width:100%}.project-card{--arrow-inset:28px;--arrow-size:36px;--title-line:26px;aspect-ratio:525/366;height:auto}.project-card__copy{top:24px;right:30px;bottom:calc(var(--arrow-inset) + (var(--arrow-size) - var(--title-line)) / 2);flex-direction:column;justify-content:flex-start;width:auto;display:flex;left:30px;transform:translateY(100%)}.project-card__copy-inner{grid-template-rows:auto 0fr;transition:transform .32s,grid-template-rows .32s;display:grid;transform:translateY(-100%)}.project-card:hover .project-card__copy,.project-card:focus-within .project-card__copy,.project-card.is-revealed .project-card__copy{transform:translateY(0)}.project-card:hover .project-card__copy-inner,.project-card:focus-within .project-card__copy-inner,.project-card.is-revealed .project-card__copy-inner{grid-template-rows:auto 1fr;transform:translateY(0)}.project-card__copy h3,.project-card__copy p{width:auto}.project-card__copy h3{font-size:26px}.project-card__copy p{font-size:13px;line-height:1.12}.project-card__copy-inner h3,.project-card__copy-inner p{text-shadow:0 1px 3px #000000e6,0 0 12px #000000d9;max-width:calc(100% - 56px)}.project-card__copy-inner h3{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.project-card:hover .project-card__copy-inner h3,.project-card:focus-within .project-card__copy-inner h3,.project-card.is-revealed .project-card__copy-inner h3{white-space:normal;text-overflow:clip;overflow:visible}.project-card__copy-inner p{opacity:0;min-height:0;margin-top:0;transition:opacity .32s;overflow:hidden}.project-card:hover .project-card__copy-inner p,.project-card:focus-within .project-card__copy-inner p,.project-card.is-revealed .project-card__copy-inner p{opacity:1}.project-card__actions{bottom:28px;left:20px;right:20px}.project-card__arrow{right:20px;bottom:var(--arrow-inset);width:var(--arrow-size);height:var(--arrow-size)}.home-lower{background:var(--surface);height:auto;margin-top:0}.home-lower:before{display:none}.experience,.github-section{height:auto;position:relative;top:auto}.experience{background:var(--black);height:420px}.experience__art{height:420px}.experience .section-title,.experience__stats{position:static}.experience__inner{padding-top:55px}.experience__stats{width:100%;margin-top:54px}.github-section{padding:92px 0 120px}.github-section__inner{height:auto}.github-section .section-title,.github-section .section-intro,.github-section .project-grid{width:auto;position:static}.github-section .section-intro{max-width:958px;margin-top:28px}.uses-card{height:299px}.contact,.page-uses .contact,.page-cv .contact,.page-error .contact{margin-top:-50px}.contact__grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:64px;width:100%;left:0}.contact-form{width:100%}.back-to-top{right:15px}.error-content{padding:122px 0}.error-content__code{font-size:28.75vw}}@media (width<=800px){:root{--gutter:30px;--sticky-nav-offset:72px}.shell{width:calc(100% - var(--gutter) * 2)}.desktop-break{display:none}.hero{border-radius:0 0 32px 32px;height:auto}.page-head{border-radius:0 0 32px 32px;height:150px}.breadcrumbs{top:92px}.breadcrumbs__list{font-size:16px}.hero__inner{flex-direction:column;height:auto;padding:128px 0 72px;display:flex}.projects,.uses-content,.cv-content,.error-content{margin-top:-32px}.hero__shade{background:linear-gradient(#000000d1 0%,#0000008f 70%,#00000040 100%)}.site-nav{justify-content:space-between;top:14px;right:0}.site-nav.is-sticky{width:100%;padding:14px var(--gutter);border-radius:0;transform:translate(-50%)}.site-nav:not(.is-sticky):before{z-index:-1;inset:-14px calc(var(--gutter) * -1);content:"";opacity:0;visibility:hidden;background:#141414f7;transition:opacity .22s,visibility .22s;position:absolute}.site-nav:not(.is-sticky):has(.site-nav__links[data-open=true]):before{opacity:1;visibility:visible}.site-nav__toggle{background:#00000073;border:1px solid #ffffffb3;border-radius:9px;place-content:center;gap:5px;width:44px;height:44px;padding:10px;display:grid}.site-nav__toggle>span:not(.sr-only){background:var(--white);width:22px;height:2px;transition:transform .22s,opacity .14s;display:block}.site-nav__toggle[aria-expanded=true]>span:nth-of-type(2){transform:translateY(7px)rotate(45deg)}.site-nav__toggle[aria-expanded=true]>span:nth-of-type(3){opacity:0}.site-nav__toggle[aria-expanded=true]>span:nth-of-type(4){transform:translateY(-7px)rotate(-45deg)}.site-nav__links{top:calc(100% + 14px);left:calc(var(--gutter) * -1);right:calc(var(--gutter) * -1);width:auto;padding:12px var(--gutter);opacity:0;visibility:hidden;background:#141414f7;border:1px solid #ffffff2e;border-width:1px 0;gap:2px;margin:0;transition:opacity .22s,transform .22s,visibility .22s;display:grid;position:absolute;transform:translateY(-12px);box-shadow:0 12px 28px #00000059}.site-nav__links[data-open=true]{opacity:1;visibility:visible;transform:translateY(0)}.site-nav.is-sticky .site-nav__links{top:100%;left:0;right:0}.site-nav__links a{border-radius:8px;padding:10px 12px}.hero__copy{text-align:center;width:100%;position:static}.hero__copy h1{width:100%;font-size:clamp(48px,13vw,64px);line-height:1.08}.hero__role{justify-content:center;align-items:center;min-height:2.6em;margin-top:10px;font-size:clamp(22px,6vw,28px);line-height:1.3;display:flex}.hero__description{width:100%;max-width:520px;margin:12px auto 0;font-size:16px;line-height:1.45}.hero__actions{flex-direction:column;align-items:center;gap:12px;margin-top:26px}.button--hero,.hero__actions .button:last-child{min-width:176px;height:39px;font-size:22px}.hero__image{order:-1;margin-bottom:40px;position:static}.portrait-card{width:190px;height:190px}.portrait-card__accent{border-radius:17px;width:172px;height:169px;top:23px;left:21px}.portrait-card img{width:190px;height:190px}.projects,.uses-content,.cv-content,.github-section{padding:76px 0 90px}.cv-viewer__frame{aspect-ratio:1/1.414;height:auto;max-height:85vh}.section-title,.error-content__copy h2{font-size:36px}.section-intro{padding:5px;font-size:16px;line-height:1.5}.project-grid,.uses-grid{grid-template-columns:minmax(0,525px);justify-content:center}.project-card{--arrow-inset:32px;--title-line:28px}.project-card__copy h3{font-size:28px}.project-card__copy p{font-size:14px}.project-card__action{min-height:48px;font-size:15px}.project-lightbox{padding:24px 16px 88px}.project-lightbox__close{width:48px;height:48px}.experience{height:auto;min-height:500px}.experience__art{object-fit:cover;height:100%}.experience__inner{padding:62px 0 76px}.experience__stats{grid-template-columns:repeat(2,1fr);row-gap:38px}.experience__stats dd{height:auto;min-height:auto;font-size:40px;line-height:1.4}.uses-card{height:auto;min-height:299px}.contact{border-radius:32px 32px 0 0;height:auto;min-height:0}.contact,.page-uses .contact,.page-cv .contact,.page-error .contact{margin-top:-32px}.contact__inner{height:auto;padding:58px 0 36px}.contact__title,.contact__grid,.contact__copyright{width:auto;position:static}.contact__grid{grid-template-columns:1fr;gap:42px;margin-top:52px;display:grid}.contact-form{max-width:489px}.contact__copyright{margin:50px 0 0}.back-to-top{bottom:20px;right:15px}.error-content{padding:88px 0}.error-content__code{font-size:44.9vw}.error-content__home{margin-top:34px}}@media (width<=430px){.hero__description{font-size:15px}.portrait-card{width:180px;height:180px}.portrait-card__accent{width:163px;height:161px}.portrait-card img{width:180px;height:180px}.project-card{--arrow-inset:27px;--arrow-size:32px;--title-line:25px}.project-card__copy h3{font-size:25px}.project-card__copy p{font-size:13px;line-height:1.16}.project-card__arrow img{width:32px;height:32px}.experience__stats{grid-template-columns:1fr;row-gap:24px}.uses-card{padding-inline:24px}.uses-card h3{font-size:34px}.uses-card ol{font-size:16px;line-height:1.4}.contact__grid{margin-top:42px}.contact-list__item{font-size:14px}.error-content{padding:80px 0}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}
