:root{--piece-size:8rem;--piece-border-size:.15rem;--piece-border-color:#48484a;--apple-black:#1d1d1f;--apple-card:#1c1c1e;--apple-cardborder:#38383a;--apple-surface:#2c2c2e;--apple-blue:#0071e3;--apple-text:#f5f5f7;--apple-gray:#86868b}#about{min-height:100vh;min-height:100svh;vertical-align:middle}#about,#header-flex{display:flex;justify-content:center}#header-flex{align-items:center}#header-text{max-width:38rem;position:relative;z-index:10}#header-text h1{font-size:4.5rem;line-height:1;font-weight:700;color:var(--apple-text);letter-spacing:-.04em;margin-left:-4px}#header-text h1 span{width:22rem;height:4rem;background-image:url(/name.svg);background-size:22rem;background-position:-.9rem -1.35rem;transition:background-position 2s;margin-left:-.45rem}#code-block,#header-text h1 span{display:inline-block;vertical-align:top}#code-block{background-color:var(--apple-card);min-width:min(32rem,100%);margin-top:1.5rem;padding:1rem 1.25rem;border:1px solid var(--apple-cardborder);border-radius:.75rem;text-align:left;font-size:.75rem;line-height:1.25rem;color:var(--apple-gray);font-family:SF Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;white-space:pre-wrap;transition:border-color .3s ease}#code-block:hover{border-color:#48484a}@keyframes search{0%{box-shadow:inset var(--apple-black) 0 0 4rem 10rem}15%{box-shadow:inset var(--apple-black) 0 0 4rem 5rem}to{box-shadow:inset var(--apple-black) 0 0 4rem 5.5rem}}.jigsaw-text{width:calc(100% - 18rem)}.jigsaw,.jigsaw-text{display:inline-block;vertical-align:top}.jigsaw{width:17rem;text-align:right;margin-left:1rem;transform:rotate(-3deg)}.piece{fill:transparent;stroke-width:.4rem;opacity:0}.jigsaw.show .piece{left:0;opacity:1;transition-duration:.5s;transition-timing-function:ease;stroke:#48484a;filter:drop-shadow(2px 2px 4px rgba(0,113,227,.15))}.jigsaw .piece-1{animation:piece-cycle 4.8s linear 0s infinite}.jigsaw .piece-2{animation:piece-cycle 4.8s linear 1.2s infinite;transition-delay:.2s}.jigsaw .piece-3{animation:piece-cycle 4.8s linear 2.4s infinite;transition-delay:.4s}.jigsaw .piece-4{animation:piece-cycle 4.8s linear 3.6s infinite;transition-delay:.6s}@keyframes piece-cycle{0%{stroke:#48484a}30%{stroke:#38383a}60%{stroke:#2c2c2e}90%{stroke:#1d1d1f}to{stroke:#48484a}}.section-header-3d{vertical-align:middle;display:inline-block;width:30rem;padding:.6rem;transition:0s;transition-timing-function:ease;transition-delay:0s;opacity:0;background:rgba(255,255,255,.03);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border-radius:18px;border:1px solid rgba(255,255,255,.08);box-shadow:inset 0 1px 0 rgba(255,255,255,.06),inset 0 -1px 0 rgba(0,0,0,.1),0 8px 32px rgba(0,0,0,.25)}.section-header-3d,.section-header-3d canvas{height:280px}.section-header-3d canvas{border-radius:12px;background:rgba(255,255,255,.02);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.04),inset 0 -1px 0 rgba(0,0,0,.08)}.section-header-3d.show{transition:.8s ease;transition-delay:.2s;opacity:1}h2{letter-spacing:-.04em;margin-left:-3px}.project-section{max-width:90rem;margin:0 auto 8rem;padding:6rem 1.25rem}.section-header{max-width:64rem;margin:0 auto;display:flex;justify-content:space-around;align-items:center;flex-wrap:wrap}.project-set{display:flex;flex-wrap:wrap;justify-content:space-evenly;align-items:stretch}.project-item{flex-shrink:0;width:40rem;background:var(--apple-card);border:1px solid var(--apple-cardborder);border-radius:1rem;margin:6rem 1rem 0;transition:all .4s ease;position:relative;overflow:hidden}.project-item:hover{border-color:#48484a;transform:translateY(-4px);box-shadow:0 12px 40px rgba(0,0,0,.4)}.project-item .project-lights{position:absolute;top:0;bottom:0;width:100%;border-radius:1rem;overflow:hidden;pointer-events:none}.project-item .project-lights div{width:0;transition:opacity .4s ease}.project-item:hover .project-lights div{opacity:1}.project-item .grey-light{opacity:.4}.project-item .gold-light{opacity:0}.project-item-sub{width:100%;padding:2rem;display:inline-flex;border-radius:1rem;justify-content:space-between;position:relative}.project-image{width:14rem;height:14rem;background-size:cover;background-position:50%;flex-shrink:0;border-radius:.75rem;margin-top:-3rem;margin-left:1.5rem;box-shadow:0 8px 24px rgba(0,0,0,.3);transition:all .4s ease}.project-item:hover .project-image{transform:translateY(-2px);box-shadow:0 12px 32px rgba(0,0,0,.4)}.project-title{font-size:1.75rem;line-height:2rem;margin-left:-1px;letter-spacing:-.02em}.project-specs{font-weight:500;margin-bottom:.5rem;letter-spacing:.3px;color:var(--apple-gray);font-size:.8rem}.project-for:after{content:" \2022 ";opacity:.5}.project-extract{letter-spacing:.2px;line-height:1.6;font-size:.875rem;color:#a1a1a6}.expand-projects{height:6rem;width:6rem;background-color:var(--apple-card);border:1px solid var(--apple-cardborder);font-size:2rem;line-height:6rem;padding:0;border-radius:1rem;margin:6rem 18rem 0;transition:all .3s ease;color:var(--apple-text);cursor:pointer}.expand-projects:hover{background-color:var(--apple-surface);border-color:#48484a}@media only screen and (max-width:1140px) and (min-width:1024px){#header-text{margin-right:-6rem}}@media only screen and (max-width:1024px){#header-flex,#header-text{flex-wrap:wrap}#header-text{margin-top:6rem;display:flex;justify-content:center}#header-image{margin-top:-41rem;margin-left:15%;margin-right:-15%;opacity:.25}#code-block{background:rgba(28,28,30,.85)}}@media only screen and (max-width:768px){.jigsaw-text{width:calc(100% - 2rem)}.jigsaw{position:relative;margin-left:-15rem;z-index:-1;opacity:.5;filter:blur(1px)}}@media only screen and (max-width:640px){.jigsaw{margin-top:1rem}}@media only screen and (max-width:600px){#about,#header-flex{display:block}#header-text{padding:0 1rem;margin-top:8rem}#header-text h1{margin-bottom:2rem;width:100%}#header-text h1 span{width:15rem;background-position-x:-.9rem}#header-image{margin-top:-27rem}.project-item{width:100%;margin-top:4rem}.project-item-sub{flex-wrap:wrap-reverse}.project-image{width:100%;margin:-3rem 0 1rem}}@media only screen and (max-width:440px){.section-header-3d canvas{transform:scale(.8)}}