@font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/fraunces-var.woff2)format("woff2")}@font-face{font-family:Fraunces;font-style:italic;font-weight:100 900;font-display:swap;src:url(/fonts/fraunces-italic-var.woff2)format("woff2")}@font-face{font-family:Archivo;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/archivo-var.woff2)format("woff2")}@font-face{font-family:Fragment Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/fragment-mono.woff2)format("woff2")}@font-face{font-family:Fragment Mono;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/fragment-mono-italic.woff2)format("woff2")}@font-face{font-family:Fraunces Fallback;src:local(Times New Roman);size-adjust:118.21%;ascent-override:82.73%;descent-override:21.57%;line-gap-override:0%}@font-face{font-family:Archivo Fallback;src:local(Arial);size-adjust:119.62%;ascent-override:73.4%;descent-override:17.56%;line-gap-override:0%}:root{--hue:80;--tint:.0075;--paper:.1556;--depth:.0336;--ink-l:.9145;--ink-step:.2;--ink-tint:.023;--bg:oklch(var(--paper) var(--tint) var(--hue));--bg-2:oklch(calc(var(--paper) + var(--depth)) var(--tint) var(--hue));--ink:oklch(var(--ink-l) var(--ink-tint) var(--hue));--ink-2:oklch(calc(var(--ink-l) - var(--ink-step) * .63) var(--ink-tint) var(--hue));--ink-3:oklch(calc(var(--ink-l) - var(--ink-step) * 1.05) var(--ink-tint) var(--hue));--line:color-mix(in oklab, var(--ink) 13%, transparent);--accent:#ff4d00;--bone:var(--ink);--ink-on-bone:oklch(calc(var(--paper) + var(--depth) * .72) var(--tint) var(--hue));--line-on-bone:color-mix(in oklab, var(--ink-on-bone) 16%, transparent);--on-blend:oklch(.9145 .023 var(--hue));--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--duration-tap:.1s;--duration-pop:.15s;--duration-hover:.2s;--duration-card:.3s;--duration-layout:.5s;--duration-scene:.6s;--duration-cinema:1.1s;--fs-meta:.62rem;--fs-micro:.7rem;--fs-label:.75rem;--fs-sm:.875rem;--fs-body:.95rem;--fs-base:1rem;--fs-brand:1.05rem;--fs-lead:clamp(1rem, 1.2vw, 1.15rem);--fs-h5:clamp(1.2rem, 1.6vw, 1.45rem);--fs-h4:clamp(1.3rem, 2vw, 1.75rem);--fs-h3:clamp(1.5rem, 2.6vw, 2.3rem);--fs-h2:clamp(1.8rem, 3.6vw, 3rem);--fs-h1:clamp(2rem, 4.5vw, 3.75rem);--fs-xl:clamp(2rem, 5.5vw, 4.5rem);--fs-display:clamp(2.6rem, 7.5vw, 7rem);--fs-email:clamp(1.9rem, 7.2vw, 7.2rem);--fs-title:clamp(3.2rem, 13vw, 13rem);--fs-hero:clamp(4.2rem, 17.5vw, 16.5rem);--fs-count:clamp(6rem, 22vw, 16rem);--rad-field:.375rem;--rad-control:.5rem;--rad-card:.625rem;--rad-panel:.75rem;--rad-sheet:.875rem;--rad-pill:999px;--serif:"Fraunces", "Fraunces Fallback", "Georgia", serif;--sans:"Archivo", "Archivo Fallback", "Helvetica Neue", sans-serif;--mono:"Fragment Mono", "SFMono-Regular", monospace;--gutter:max(clamp(1.25rem, 4vw, 4rem), env(safe-area-inset-left), env(safe-area-inset-right));--ease-out:cubic-bezier(.16, 1, .3, 1)}:root[data-theme=light]{--tint:.012;--paper:.965;--depth:-.03;--ink-l:.24;--ink-step:-.165;--ink-tint:.02;--accent:oklch(55% .19 38);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{background:var(--bg);touch-action:manipulation;scroll-behavior:smooth}html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}body{background:var(--bg);color:var(--ink);font-family:var(--sans);font-variation-settings:"wdth" 100;font-size:var(--fs-base);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;line-height:1.55;overflow-x:clip}html:before,html:after,body:before,body:after{content:"";z-index:99;pointer-events:none;position:fixed;left:0;right:0}html:before,body:before,body:after{height:calc(5rem + env(safe-area-inset-top));top:0}html:before{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:linear-gradient(to bottom, color-mix(in oklab, var(--bg) 46%, transparent), color-mix(in oklab, var(--bg) 30%, transparent) 20%, color-mix(in oklab, var(--bg) 14%, transparent) 42%, color-mix(in oklab, var(--bg) 4%, transparent) 66%, transparent 85%);-webkit-mask-image:linear-gradient(#000 50%,#0000);mask-image:linear-gradient(#000 50%,#0000)}body:before{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);-webkit-mask-image:linear-gradient(#000 25%,#0000 70%);mask-image:linear-gradient(#000 25%,#0000 70%)}body:after{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);-webkit-mask-image:linear-gradient(#000 10%,#0000 45%);mask-image:linear-gradient(#000 10%,#0000 45%)}html:after{height:calc(2.5rem + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:linear-gradient(to top, color-mix(in oklab, var(--bg) 60%, transparent), color-mix(in oklab, var(--bg) 22%, transparent) 50%, transparent);bottom:0;-webkit-mask-image:linear-gradient(#0000,#000 70%);mask-image:linear-gradient(#0000,#000 70%)}::selection{background:var(--accent);color:var(--bg)}a{color:inherit;text-decoration:none}ul,ol{list-style:none}i{font-style:normal}.mono{font-family:var(--mono);font-size:var(--fs-micro);letter-spacing:.04em;text-transform:uppercase}.accent{color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.skip{z-index:200;background:var(--accent);color:var(--bg);font-family:var(--mono);font-size:var(--fs-label);padding:.6rem 1rem;position:fixed;top:1rem;left:1rem;transform:translateY(-300%)}.skip:focus-visible{transform:none}@media (hover:hover) and (pointer:fine){.has-js.cursor-on body,.has-js.cursor-on a,.has-js.cursor-on button{cursor:none}}.grain{z-index:90;pointer-events:none;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");animation:9s steps(6,end) infinite grain;position:fixed;inset:-100%}@keyframes grain{0%,to{transform:translate(0)}17%{transform:translate(-3%,2%)}34%{transform:translate(2%,-3%)}51%{transform:translate(-2%,-2%)}68%{transform:translate(3%,2%)}85%{transform:translate(-1%,3%)}}.preloader{display:none}@media (hover:hover) and (pointer:fine){.has-js .preloader{z-index:150;padding:1.1rem var(--gutter);background:var(--bg);flex-direction:column;justify-content:space-between;display:flex;position:fixed;inset:0}}.preloader__row{color:var(--ink-3);justify-content:space-between;align-items:baseline;display:flex}.preloader__row--top{color:var(--bone)}.preloader__brand{font-family:var(--serif);font-variation-settings:"opsz" 30;font-weight:480;font-size:var(--fs-brand);letter-spacing:-.01em;white-space:nowrap}.preloader__brand sup{margin-left:.15em;font-size:.6em}.preloader__count{right:var(--gutter);bottom:calc(var(--gutter) * 1.6);font-family:var(--serif);font-variation-settings:"opsz" 144;font-weight:320;font-size:var(--fs-count);letter-spacing:-.04em;color:var(--ink);font-variant-numeric:tabular-nums;line-height:.8;position:absolute}.cursor{z-index:160;background:var(--accent);pointer-events:none;width:10px;height:10px;transition:width var(--duration-card) var(--ease-out), height var(--duration-card) var(--ease-out), background-color var(--duration-hover);will-change:transform;border-radius:50%;place-items:center;display:none;position:fixed;top:0;left:0}.cursor-on .cursor{visibility:hidden;display:grid}.cursor__label{font-family:var(--mono);font-size:var(--fs-meta);text-transform:uppercase;letter-spacing:.08em;color:var(--bg);opacity:0;transition:opacity var(--duration-hover)}.cursor.is-hover{border:1.5px solid var(--bone);background:0 0;width:40px;height:40px}.cursor.is-view{background:var(--accent);width:76px;height:76px}.cursor.is-view .cursor__label{opacity:1}.preview{z-index:80;background:linear-gradient(135deg, var(--bg-2) 0%, color-mix(in oklab, var(--bg-2) 95%, var(--accent)) 55%, color-mix(in oklab, var(--bg-2) 88%, var(--accent)) 100%);border:1px solid var(--line);pointer-events:none;opacity:0;visibility:hidden;will-change:transform;width:min(340px,38vw);padding:1.6rem 1.7rem 1.4rem;position:fixed;top:0;left:0}[data-theme=light] .preview{box-shadow:0 18px 40px -24px #3c281459}.preview__tagline{font-family:var(--serif);font-variation-settings:"opsz" 40;font-style:italic;font-weight:380;font-size:var(--fs-h5);letter-spacing:-.01em;line-height:1.15}.preview__metric{color:var(--accent);margin-top:1.1rem}.nav{z-index:100;padding:1.1rem var(--gutter);mix-blend-mode:difference;color:var(--on-blend);transition:transform var(--duration-scene) var(--ease-out);grid-template-columns:1fr auto 1fr;align-items:baseline;gap:1rem;display:grid;position:fixed;top:0;left:0;right:0}.nav.is-hidden{transform:translateY(-110%)}.nav__brand{font-family:var(--serif);font-variation-settings:"opsz" 30;font-weight:480;font-size:var(--fs-brand);letter-spacing:-.01em;white-space:nowrap}.nav__brand sup{margin-left:.15em;font-size:.6em}.nav__links{font-size:var(--fs-sm);gap:.45rem;display:flex}.nav__links a{transition:opacity var(--duration-hover);position:relative}.nav__links a:hover{opacity:.55}.nav__links a sup{color:var(--accent);font-size:.6em}.nav__meta{color:inherit;font-variant-numeric:tabular-nums;justify-content:flex-end;gap:.6rem;display:flex}.nav__sep{opacity:.4}[data-theme=light] :is(.nav,.proj__bar){--accent:#31bceb}.theme-toggle{color:inherit;cursor:pointer;transition:opacity var(--duration-hover);background:0 0;border:0;align-self:center;place-items:center;margin:-.75rem 0;padding:.75rem;display:inline-grid}html:not(.has-js) .theme-toggle{display:none}.theme-toggle:hover{opacity:.55}.theme-toggle svg{fill:none;stroke:currentColor;stroke-width:1.4px;width:.95rem;height:.95rem;transition:rotate var(--duration-layout) var(--ease-out)}.theme-toggle path{fill:currentColor;stroke:none}[data-theme=light] .theme-toggle svg{rotate:180deg}@media (width<=760px){.nav__links a:not([href="/resume/"]){display:none}}@media (width<=640px){.nav__meta span:first-child,.nav__sep{display:none}}.hero{background:radial-gradient(130% 95% at 50% 118%, color-mix(in oklab, var(--accent) 13%, transparent), transparent 52%), radial-gradient(70% 60% at 82% 12%, color-mix(in oklab, var(--accent) 5%, transparent), transparent 55%), var(--bg);flex-direction:column;justify-content:flex-end;min-height:100svh;display:flex;position:relative;overflow:clip}.hero__gl{width:100%;height:100%;display:block;position:absolute;inset:0}.hero:after{content:"";z-index:1;pointer-events:none;background:linear-gradient(to bottom, transparent, var(--bg));height:clamp(8rem,28vh,18rem);position:absolute;inset:auto 0 0}.hero__content{z-index:2;padding:0 var(--gutter) clamp(2rem, 5vh, 4rem);position:relative}.mask{margin:-.12em -.1em -.18em;padding:.12em .1em .18em;display:block;overflow:clip}.mask .line{display:block}.hero__kicker{color:var(--ink-2);margin-bottom:clamp(1rem,3vh,2.2rem)}.hero__title{font-family:var(--serif);font-variation-settings:"opsz" 144;font-weight:360;font-size:var(--fs-hero);letter-spacing:-.045em;line-height:.86}.hero__title .line--italic{margin-left:clamp(2rem,8vw,9rem);font-style:italic;font-weight:300}.hero__title .accent{vertical-align:.55em;transform-origin:50% 70%;margin-left:.02em;font-size:.5em;font-style:normal;display:inline-block}.hero__foot{grid-template-columns:auto 1fr auto;align-items:end;gap:clamp(1.5rem,4vw,4rem);margin-top:clamp(2rem,6vh,4.5rem);display:grid}.hero__note{color:var(--ink-3)}.hero__intro{max-width:34ch;font-size:var(--fs-lead);color:var(--ink-2);text-wrap:pretty;justify-self:center;line-height:1.5}.hero__intro strong{color:var(--ink);font-weight:500}.hero__coords{text-align:right;color:var(--ink-3);line-height:1.7}@media (width<=760px){.hero__kicker{display:none}.hero__foot{grid-template-columns:1fr;align-items:start}.hero__intro{justify-self:start}.hero__coords{text-align:left}}.hero__scroll{right:var(--gutter);z-index:2;color:var(--ink-3);writing-mode:vertical-rl;flex-direction:column;align-items:center;gap:.8rem;display:flex;position:absolute;top:50%}.hero__scroll-line{background:var(--ink-3);transform-origin:top;width:1px;height:56px;animation:scrollLine 2.4s var(--ease-out) infinite}@keyframes scrollLine{0%{transform-origin:top;transform:scaleY(0)}45%{transform-origin:top;transform:scaleY(1)}55%{transform-origin:bottom;transform:scaleY(1)}to{transform-origin:bottom;transform:scaleY(0)}}.section-head{padding:clamp(4rem, 10vh, 7rem) var(--gutter) clamp(1.5rem, 4vh, 2.5rem);justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.section-head__title{font-family:var(--serif);font-variation-settings:"opsz" 80;font-weight:400;font-size:var(--fs-h1);letter-spacing:-.03em;line-height:1}.section-head__title i{color:var(--ink-2);font-style:italic;font-weight:300}.section-head__meta{color:var(--ink-3)}.work__list{border-top:1px solid var(--line)}.work__list li{border-bottom:1px solid var(--line)}.row{padding:clamp(1.6rem, 3.5vh, 2.6rem) var(--gutter);transition:background-color var(--duration-layout) var(--ease-out);grid-template-columns:3.5rem 1fr auto auto;align-items:baseline;gap:clamp(1rem,3vw,3rem);display:grid;position:relative}.row:hover{background:var(--bg-2)}.row__idx{color:var(--ink-3);transition:color var(--duration-card)}.row:hover .row__idx{color:var(--accent)}.row__name{font-family:var(--serif);font-variation-settings:"opsz" 110;font-weight:380;font-size:var(--fs-xl);letter-spacing:-.035em;transition:transform var(--duration-layout) var(--ease-out), font-style 0s;line-height:1}.row:hover .row__name{font-style:italic;font-weight:320;transform:translate(clamp(.5rem,1.5vw,1.5rem))}.row__meta{color:var(--ink-2);font-size:var(--fs-sm)}.row__period{color:var(--ink-3)}@media (width<=760px){.row{grid-template-columns:2.4rem 1fr auto}.row__meta{grid-area:2/2/auto/-1}}.work--side .row__name{font-size:var(--fs-h2)}.work--side .row{padding-block:clamp(1.2rem,2.6vh,1.9rem)}.about{padding:clamp(6rem, 16vh, 11rem) var(--gutter) clamp(5rem, 12vh, 8rem)}.manifesto{max-width:22ch;font-family:var(--serif);font-variation-settings:"opsz" 110;font-weight:350;font-size:var(--fs-h1);letter-spacing:-.025em;line-height:1.14}.manifesto .word{color:color-mix(in oklab, var(--ink) calc(var(--w,1) * 100%), var(--ink-2));display:inline-block}.caps{grid-template-columns:repeat(3,1fr);gap:clamp(2rem,5vw,5rem);margin-top:clamp(4rem,10vh,7rem);display:grid}.caps__head{color:var(--ink-3);border-bottom:1px solid var(--line);margin-bottom:1.2rem;padding-bottom:1rem}.caps__col li{font-size:var(--fs-h5);color:var(--ink-2);padding:.45rem 0}@media (width<=760px){.caps{grid-template-columns:1fr}}.xp{margin-top:clamp(5rem,12vh,8rem)}.xp__head{color:var(--ink-3);margin-bottom:1.4rem}.xp__list{margin-inline:calc(var(--gutter) * -1);border-top:1px solid var(--line)}.xp__row{padding:1.15rem var(--gutter);border-bottom:1px solid var(--line);transition:padding-left var(--duration-layout) var(--ease-out);grid-template-columns:1fr 1fr auto;align-items:baseline;gap:1rem;display:grid}.xp__row:hover{padding-left:calc(var(--gutter) + 1rem)}.xp__company{font-family:var(--serif);font-variation-settings:"opsz" 60;font-weight:420;font-size:var(--fs-h4);letter-spacing:-.02em}.xp__dot{vertical-align:.4em;font-size:.5em;animation:2.2s ease-in-out infinite pulse}@keyframes pulse{50%{opacity:.25}}.xp__role{color:var(--ink-2);font-size:var(--fs-body)}.xp__period{color:var(--ink-3)}@media (width<=640px){.xp__row{grid-template-columns:1fr auto}.xp__role{grid-area:2/1/auto/-1}}.contact{background:var(--bg);color:var(--ink)}.contact__inner{padding:clamp(5rem, 14vh, 9rem) var(--gutter) clamp(2rem, 5vh, 3rem)}.contact__kicker{color:var(--ink-2)}.contact__title{font-family:var(--serif);font-variation-settings:"opsz" 144;font-weight:360;font-size:var(--fs-display);letter-spacing:-.04em;margin-top:1.4rem;line-height:.95}.contact__title i{color:var(--accent);font-style:italic;font-weight:300}.contact__email{font-family:var(--serif);font-variation-settings:"opsz" 144;font-weight:340;font-size:var(--fs-email);letter-spacing:-.04em;border-bottom:2px solid var(--ink);transition:color var(--duration-card), border-color var(--duration-card), font-style 0s;will-change:transform;margin-top:clamp(2.5rem,7vh,5rem);padding-bottom:.08em;line-height:1;display:inline-block}.contact__email:hover{color:var(--accent);border-color:var(--accent);font-style:italic}.contact__note{color:var(--ink-2);margin-top:1.6rem}.contact__grid{margin:clamp(4rem, 10vh, 7rem) calc(var(--gutter) * -1) 0;padding:1.6rem var(--gutter) 0;border-top:1px solid var(--line);grid-template-columns:1fr 1fr 1fr;align-items:last baseline;gap:2rem;display:grid}.contact__socials{font-size:var(--fs-body);flex-wrap:wrap;gap:.4rem 1.4rem;display:flex}.contact__socials a{min-height:44px;transition:color var(--duration-hover);align-items:center;gap:.3em;display:inline-flex}.contact__arrow{fill:none;stroke:currentColor;stroke-width:1.4px;stroke-linecap:round;stroke-linejoin:round;width:.7em;height:.7em;transition:transform var(--duration-hover) var(--ease-out)}.contact__socials a:hover .contact__arrow{transform:translate(.12em,-.12em)}.contact__socials a:hover{color:var(--accent)}.contact__colophon{color:var(--ink-3);text-align:center;line-height:1.8}.contact__colophon a{color:var(--ink-2);text-decoration:underline;-webkit-text-decoration-color:var(--line);text-decoration-color:var(--line);text-underline-offset:.25em;transition:color var(--duration-hover), text-decoration-color var(--duration-hover)}.contact__colophon a:hover{color:var(--accent);text-decoration-color:currentColor}.contact__meta{color:var(--ink-2);font-variant-numeric:tabular-nums;flex-direction:column;align-items:flex-end;gap:.5rem;display:flex}.contact__top{color:var(--ink);transition:color var(--duration-hover)}.contact__top:hover{color:var(--accent)}@media (width<=760px){.contact__grid{grid-template-columns:1fr;align-items:start}.contact__colophon{text-align:left}.contact__meta{align-items:flex-start}}.sys__tune-open,.sys__btn,.proj__play{border:0;border-bottom:1px solid var(--line);color:var(--ink);font:inherit;font-size:var(--fs-brand);letter-spacing:normal;text-transform:none;cursor:pointer;transition:border-color var(--duration-hover);background:0 0;border-radius:0;align-items:baseline;gap:.6em;padding:.9rem 0;display:inline-flex}:is(.sys__tune-open,.sys__btn,.proj__play) .arrow{color:var(--accent);transition:transform var(--duration-card) var(--ease-out)}:is(.sys__tune-open,.sys__btn,.proj__play):hover{border-color:var(--accent)}:is(.sys__tune-open,.sys__btn):hover .arrow{transform:translate(.25em)}@media print{html:before,html:after,body:before,body:after{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}.has-js .preloader{display:none}html{scroll-behavior:auto}}@view-transition{navigation:auto}::view-transition-group(*){animation-duration:var(--duration-layout);animation-timing-function:var(--ease-out)}::view-transition-old(root){animation:vt-root-out var(--duration-layout) var(--ease-out) both}::view-transition-new(root){animation:vt-root-in var(--duration-scene) var(--ease-out) both}@keyframes vt-root-out{to{opacity:0;transform:scale(1.035)}}@keyframes vt-root-in{0%{opacity:0;transform:scale(.99)translateY(24px)}}@media (prefers-reduced-motion:reduce){@view-transition{navigation:none}}body.route-project>header,body.route-project>main,body.route-project>footer{display:none}
