body{background:var(--void);color:var(--print);font-family:var(--display);font-variation-settings:"wdth" 100;-webkit-font-smoothing:antialiased;line-height:1.5}::selection{background:var(--paper);color:var(--void)}:focus-visible{outline:1px solid var(--paper);outline-offset:4px}.shell{max-width:1140px;margin:0 auto;padding:64px 40px 96px}.stage{grid-template-columns:minmax(300px,400px) 1fr;align-items:start;gap:72px;display:grid}.plate{perspective:900px}.mount{background:var(--paper);will-change:transform;padding:8px 8px 12px;transition:transform .46s cubic-bezier(.22,.8,.24,1);transform:rotateX(0)rotateY(0)}.mount.tilting{transition:transform .12s ease-out}.window{aspect-ratio:4/5;display:block;position:relative;overflow:hidden}.window img{object-fit:cover;width:100%;height:100%;display:block}.intro{letter-spacing:-.005em;color:var(--paper);margin:32px 0 0;font-size:clamp(16px,1.5vw,18px);font-weight:400}.intro b{font-weight:700}.lede{letter-spacing:-.012em;max-width:34ch;color:var(--paper);margin:24px 0 0;font-size:clamp(20px,2.1vw,26px);font-weight:400;line-height:1.45}.mailto{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--paper);border-bottom:1px solid var(--rule-strong);margin-top:32px;padding-bottom:4px;font-size:13px;transition:border-color .2s;display:inline-block}.mailto:hover,.mailto:focus-visible{border-color:var(--paper)}h1{font-variation-settings:"wdth" 108, "wght" 800;letter-spacing:-.035em;color:var(--paper);margin:0;font-size:clamp(48px,6.8vw,92px);font-weight:800;line-height:1.1}.mac{vertical-align:-.06em;background:var(--paper);max-width:100%;box-shadow:inset 0 0 0 2px var(--void);align-items:stretch;margin-top:.12em;padding:4px;display:inline-flex}.mac .bars{background:repeating-linear-gradient(180deg, var(--void) 0 2px, var(--paper) 2px 5px);flex:0 auto;align-self:stretch;width:.46em;min-width:0}.mac .label{font-family:var(--pixel);letter-spacing:0;color:var(--void);align-self:center;padding:.28em .34em .16em;font-size:.4em;font-weight:700;line-height:1}.index{border-top:1px solid var(--rule);margin-top:88px}.row{border-bottom:1px solid var(--rule);cursor:pointer;grid-template-columns:112px minmax(0,1fr) 340px 26px;align-items:baseline;gap:0 28px;padding:20px 0;display:grid;position:relative}.row .label,.row .title,.row .sub,.row .arrow{grid-row:1}.row:after,.row-group:after{content:"";background:var(--paper);transform-origin:0;width:100%;height:1px;transition:transform .42s cubic-bezier(.22,.8,.24,1);position:absolute;bottom:-1px;left:0;transform:scaleX(0)}.row:hover:after,.row:focus-visible:after{transform:scaleX(1)}.row-group{border-bottom:1px solid var(--rule);padding-bottom:20px;position:relative}.row-group>.row{appearance:none;font:inherit;color:inherit;text-align:inherit;background:0 0;border:0;border-radius:0;width:100%;margin:0;padding:20px 0 0}.row-group>.row:after{display:none}.row-group:has(>.row:hover):after,.row-group:has(>.row:focus-visible):after,.row-group:has(>[aria-expanded=true]):after{transform:scaleX(1)}.row .label{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ash);font-size:11px}.row .sub{font-family:var(--mono);letter-spacing:.02em;color:var(--ash);text-align:right;white-space:nowrap;font-size:12.5px;font-weight:400}.row .title{letter-spacing:-.015em;color:var(--paper);font-size:20px;font-weight:500;transition:color .2s,transform .22s cubic-bezier(.22,.8,.24,1);display:inline-block}.row:hover .title,.row:focus-visible .title,.row[aria-expanded=true] .title{color:var(--paper);transform:translate(4px)}.row .arrow{text-align:right;font-family:var(--mono);color:var(--ash);transform-origin:50%;justify-self:end;font-size:16px;transition:transform .26s cubic-bezier(.22,.8,.24,1)}.row:hover .arrow,.row:focus-visible .arrow{transform:translate(4px)scale(1.3)}.row.parent[aria-expanded=true] .arrow{transform:rotate(90deg)scale(1.3)}.ds-mark{vertical-align:-.38em;width:1.5em;height:1.5em;color:var(--paper);margin:-.5em 0 -.5em 12px}.cv-rest{white-space:nowrap;vertical-align:bottom;max-width:0;transition:max-width .38s cubic-bezier(.22,.9,.24,1);display:inline-block;overflow:hidden}.row:hover .cv-a,.row:focus-visible .cv-a{max-width:12ch}.row:hover .cv-b,.row:focus-visible .cv-b{max-width:6ch}@media (hover:none){.cv-rest{max-width:12ch}.cv-b{max-width:6ch}}.row[data-tint=blog]:hover .title,.row[data-tint=blog]:focus-visible .title{color:var(--t-blog)}.row[data-tint=linkedin]:hover .title,.row[data-tint=linkedin]:focus-visible .title{color:var(--t-linkedin)}.row[data-tint=letterboxd]:hover .title,.row[data-tint=letterboxd]:focus-visible .title{color:#0000;background-image:linear-gradient(95deg,#ff8000 0%,#00e054 48%,#40bcf4 100%);background-clip:text}.row[data-tint=github]:hover .title,.row[data-tint=github]:focus-visible .title{color:#0000;background-image:linear-gradient(95deg,#f0f6fc 0%,#c9d1d9 55%,#8b949e 100%);background-clip:text}.row.dim{cursor:default}.row.dim .title{font-weight:400}.row.dim .label,.row.dim .title,.row.dim .sub,.row.dim .arrow{color:var(--muted)}.row.dim:after{display:none}.row.dim:hover .title,.row.dim:focus-visible .title{color:var(--muted);transform:none}.row.dim:hover .arrow,.row.dim:focus-visible .arrow{transform:none}.row.dim .sub s{text-decoration-thickness:1px}.popout{opacity:0;visibility:hidden;grid-template-rows:0fr;margin-left:140px;transition:grid-template-rows .34s cubic-bezier(.22,.8,.24,1),opacity .2s,visibility 0s linear .34s;display:grid}.row[aria-expanded=true]+.popout{opacity:1;visibility:visible;grid-template-rows:1fr;transition:grid-template-rows .34s cubic-bezier(.22,.8,.24,1),opacity .2s,visibility linear}.popout .clip{min-height:0;overflow:hidden}.popout .panel{background:var(--panel);border:1px solid var(--rule-strong);margin:16px 0 4px}.popout .items{margin:0;padding:0;list-style:none}.popout .item{border-bottom:1px solid var(--rule);justify-content:space-between;align-items:baseline;gap:24px;min-height:76px;padding:16px 20px;display:flex;position:relative}.popout .items li:last-child .item{border-bottom:0}.popout .item:after{content:"";background:var(--paper);transform-origin:0;width:100%;height:1px;transition:transform .42s cubic-bezier(.22,.8,.24,1);position:absolute;bottom:-1px;left:0;transform:scaleX(0)}.popout .item:hover:after,.popout .item:focus-visible:after{transform:scaleX(1)}.popout .name{color:var(--paper);font-size:16px;font-weight:500;transition:color .2s,transform .22s cubic-bezier(.22,.8,.24,1);display:inline-block}.popout .item:hover .name,.popout .item:focus-visible .name{color:var(--paper);transform:translate(4px)}.popout .name span{font-family:var(--mono);letter-spacing:.02em;color:var(--ash);margin-top:4px;font-size:10px;font-weight:400;display:block}.popout .dom{font-family:var(--mono);letter-spacing:.02em;color:var(--ash);white-space:nowrap;font-size:11px;transition:transform .26s cubic-bezier(.22,.8,.24,1)}.popout .item:hover .dom,.popout .item:focus-visible .dom{transform:translate(-4px)}.popout .item:focus-visible{outline-offset:-3px}.foot{border-top:1px solid var(--rule);font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ash);justify-content:space-between;gap:16px;margin-top:48px;padding-top:22px;font-size:11px;display:flex}.foot .left{align-items:center;gap:12px;display:inline-flex}.skull{width:18px;height:18px;color:var(--paper);display:inline-flex}.skull svg{will-change:transform;width:100%;height:100%;display:block}.dev{opacity:0;animation:.9s cubic-bezier(.2,.7,.3,1) forwards develop}.stage .plate{animation-delay:60ms}.stage .rail{animation-delay:.16s}.index.dev{animation-delay:.26s}.foot.dev{animation-delay:.36s}@keyframes develop{0%{opacity:0;filter:brightness(.2)}to{opacity:1;filter:none}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}.dev{opacity:1}.row:after,.row-group:after,.popout .item:after,.row:hover:after,.row:focus-visible:after,.popout .item:hover:after,.popout .item:focus-visible:after,.row-group:has(>.row:hover):after,.row-group:has(>.row:focus-visible):after,.row-group:has(>[aria-expanded=true]):after{transform:scaleX(0)}}@media (width<=620px){.mac .bars{width:.36em}}@media (width<=900px){.shell{padding:40px 24px 72px}.stage{text-align:center;grid-template-columns:1fr;justify-items:center;gap:40px}.rail{order:1;max-width:620px}.lede{margin-inline:auto}.intro{margin-top:24px}.plate{order:2;max-width:340px;margin-inline:auto}.index{margin-top:48px}.row,.row.dim{text-align:left;grid-template-columns:100px minmax(0,1fr) 20px;gap:4px 14px}.row .label,.row.dim .label{letter-spacing:.16em;grid-area:1/1;font-size:10px}.row .title,.row.dim .title{grid-area:1/2;font-size:17px}.row .arrow,.row.dim .arrow{grid-area:1/3;font-size:14px}.row .sub,.row.dim .sub{text-align:left;white-space:normal;grid-area:2/2/auto/-1;margin-top:0;font-size:12px}.popout{margin-left:0}.popout .item{flex-wrap:wrap;gap:6px 24px;min-height:0}.popout .dom{letter-spacing:.02em;font-size:10px}.foot{flex-direction:column;gap:8px}}@media print{body{color:#000;background:#fff}.dev{opacity:1!important;animation:none!important}.plate,.skull{display:none}h1,.intro,.lede,.mailto,.row .title,.popout .name{color:#000}.row .label,.row .sub,.row .arrow,.popout .name span,.popout .dom,.foot{color:#333}.row.dim .label,.row.dim .title,.row.dim .sub,.row.dim .arrow{color:#555}.ds-mark{color:#000}.mailto{border-bottom-color:#666}.mac{background:#fff;box-shadow:inset 0 0 0 2px #000}.mac .label{color:#000}.mac .bars{background:repeating-linear-gradient(#000 0 2px,#fff 2px 5px)}.index,.row,.row-group,.foot{border-color:#999}.row:after,.row-group:after,.popout .item:after{display:none}.popout{margin-left:0;opacity:1!important;visibility:visible!important;grid-template-rows:1fr!important}.popout .clip{overflow:visible}.popout .panel{background:#fff;border-color:#999}.popout .item{border-color:#ddd;min-height:0}.cv-rest{max-width:12ch}.cv-b{max-width:6ch}}
