@font-face{font-family:EB Garamond;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/eb-garamond-latin-400-normal-BCNrxLz_.woff2)format("woff2")}@font-face{font-family:EB Garamond;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/eb-garamond-latin-500-normal-DehAIUv0.woff2)format("woff2")}@font-face{font-family:Instrument Serif;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/instrument-serif-latin-400-normal-DnYpCC2O.woff2)format("woff2")}:root{--color-ground:#101010;--color-primary:#f7f7f7;--color-secondary:#e0e0e0}html,body{min-height:100%}html{background:var(--color-ground)}body{background:var(--color-ground);color:var(--color-primary);margin:0;font-family:EB Garamond,serif}#boxy-fallback{box-sizing:border-box;width:min(100%,48rem);margin-inline:auto;padding:4rem 1.5rem 8rem}#boxy-fallback .name{margin:0 0 4rem;font-family:Instrument Serif,EB Garamond,serif;font-size:clamp(2.5rem,10vw,6rem);font-weight:400;line-height:.9}.fallback__block+.fallback__block{margin-block-start:5rem}.fallback__face+.fallback__face{border-block-start:2px solid var(--color-primary);margin-block-start:3rem;padding-block-start:3rem}.fallback__face>h2,.content-row h3,.content-row p,.content-row ul{margin:0}.fallback__face>h2{letter-spacing:-.02em;margin-block-end:2rem;font-size:1.333rem;font-weight:500;line-height:1.15}.content-plane{padding:1.5rem}.content-row{font-size:1rem;font-weight:400;line-height:1.55}.content-row+.content-row{margin-block-start:1rem}.content-row h3{color:var(--color-primary);letter-spacing:-.02em;margin-block-end:.5rem;font-size:1.5rem;font-weight:500;line-height:1.15}.content-row__prose-body,.content-row--labelled-list ul,.content-row__meta{color:var(--color-secondary);text-align:justify}.content-row--labelled-list ul{letter-spacing:.02em;font-variant-numeric:tabular-nums;padding:0;font-size:.75rem;font-weight:500;line-height:1.3;list-style:none}.content-row--prose ul{text-align:start;margin-block-start:.5rem;padding-inline-start:1.25rem;list-style:outside}.content-row--prose li+li{margin-block-start:.125rem}.content-row a{color:var(--color-primary);text-underline-offset:.3em;text-decoration-line:underline;text-decoration-thickness:1px}.content-row__meta{font-variant-numeric:tabular-nums;letter-spacing:.02em;font-size:.75rem;font-weight:500;line-height:1.3}.content-row a:focus-visible{outline:2px solid var(--color-primary);outline-offset:4px;box-shadow:0 0 0 8px var(--color-ground)}.content-row a:active{background:var(--color-primary);color:var(--color-ground)}@media (hover:hover){.content-row a:hover{text-decoration-thickness:2px}}.content-row--action{flex-direction:column;justify-content:center;display:flex}.content-row--action-group{flex-direction:row;align-items:center;gap:1.5rem}.content-row--action-group.content-row--action-align-right{justify-content:flex-end}.content-row--links{container:content-links/inline-size}.content-row__links{grid-template-columns:repeat(2,minmax(14rem,1fr));gap:0 3rem;margin:0;padding:0;list-style:none;display:grid}.content-row__link{align-items:center;min-width:0;min-height:2.5rem;display:flex}.content-row__link a{align-items:center;gap:.75rem;width:100%;min-width:0;display:flex}.content-row__link-text{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}@container content-links (width<31rem){.content-row__links{grid-template-columns:minmax(0,1fr)}}.content-row--project{flex-direction:column;gap:0;display:flex}.content-row__project-header{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.content-row__project-title{color:var(--color-primary);font-size:1.15rem;font-weight:500}.content-row__project-links{flex-shrink:0;align-items:center;gap:.5rem;display:flex}.content-row__project-description{color:var(--color-secondary)}.content-row__icon-button{flex-shrink:0;justify-content:center;align-items:center;width:2rem;height:2rem;text-decoration-line:none;display:inline-flex}.content-row__icon-button svg{width:1rem;height:1rem;display:block}@media (hover:hover){.content-row__icon-button:hover{background:var(--color-primary);color:var(--color-ground)}}.content-row--experience{flex-direction:column;gap:.5rem;display:flex}.content-row__experience-header{flex-direction:column;gap:.15rem;display:flex}.content-row__experience-line{justify-content:space-between;align-items:baseline;gap:.75rem;display:flex}.content-row__experience-company{color:var(--color-primary);font-weight:500}.content-row__experience-role{color:var(--color-primary)}.content-row__experience-meta{color:var(--color-secondary);text-align:right;flex-shrink:0;font-size:.875rem}.content-row__experience-description{color:var(--color-secondary);text-align:justify}.content-row--header-action{justify-content:space-between;align-items:center;min-height:3rem;display:flex}.content-row--header-action h3{margin-block-end:0}.content-row button{appearance:none;width:fit-content;color:var(--color-primary);font:inherit;text-align:start;text-underline-offset:.3em;cursor:pointer;background:0 0;border:0;align-items:center;gap:.35em;margin:0;padding:0;text-decoration-line:underline;text-decoration-thickness:1px;display:inline-flex}.content-row__icon{flex-shrink:0;width:.9em;height:.9em;text-decoration-line:none}.content-row__icon svg{width:100%;height:100%;display:block}.content-row button:focus-visible{outline:2px solid var(--color-primary);outline-offset:4px;box-shadow:0 0 0 8px var(--color-ground)}.content-row button:active{background:var(--color-primary);color:var(--color-ground)}@media (hover:hover){.content-row button:hover{text-decoration-thickness:2px}}.content-row--action-align-right button{align-self:flex-end}.content-row--action-group.content-row--action-align-right button{align-self:auto}.content-row--raw img,.content-row--raw video,.content-row--raw iframe{max-width:100%;height:auto;display:block}#boxy-spacer{position:relative}#boxy-scene{height:var(--boxy-scene-height,100svh);perspective:var(--boxy-perspective);perspective-origin:50% var(--boxy-eye-y);position:sticky;top:0;overflow:clip}#boxy-stack{width:0;height:0;transform-style:preserve-3d;position:absolute;top:0;left:50%}.boxy-block{width:var(--boxy-wall-width);transform-style:preserve-3d;transform-origin:50% 50% var(--boxy-spindle-z);position:absolute;top:0;left:0}.boxy-block--faceless{height:auto}#boxy-stack .name{color:var(--color-primary);white-space:nowrap;text-align:center;justify-content:center;margin:0;font-family:Instrument Serif,EB Garamond,serif;font-size:clamp(0px,10rem,22vw);font-weight:400;line-height:.9;display:flex}#boxy-stack .name--noisy{filter:url(#brand-noise);will-change:filter}.boxy-face{box-sizing:border-box;background:var(--color-ground);transform-origin:50% 50% var(--boxy-spindle-z);backface-visibility:hidden;position:absolute;inset:0;overflow:clip}.boxy-face--top{width:var(--boxy-wall-width);height:var(--boxy-wall-depth);transform-origin:50% 0 0;backface-visibility:visible;inset:0 auto auto 0}.boxy-face--bottom{width:var(--boxy-wall-width);height:var(--boxy-wall-depth);transform-origin:50% 100% 0;backface-visibility:visible;inset:auto auto 0 0}#boxy-edges{fill:none;width:100%;height:100%;stroke:var(--color-primary);stroke-width:2px;stroke-linecap:square;pointer-events:none;position:absolute;top:0;left:50%;overflow:visible}.boxy-measure{box-sizing:border-box;width:var(--boxy-wall-width);padding:1rem}.boxy-measure--absent{padding:0}.boxy-measure--faceless,.boxy-measure--payload{padding:0;display:flow-root}#boxy-stack .boxy-face--content:focus{outline:none}.boxy-debug-panel{z-index:1000;box-sizing:border-box;color:#f2f2f2;background:#0a0a0af0;border:1px solid #595959;width:min(23rem,100vw - 1rem);max-height:calc(100dvh - 1rem);font:12px/1.3 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;position:fixed;top:.5rem;right:.5rem;overflow:clip;box-shadow:0 .5rem 2rem #00000073}.boxy-debug-panel__header{border-bottom:1px solid #595959;justify-content:space-between;align-items:center;gap:1rem;padding:.65rem .75rem;display:flex}.boxy-debug-panel__title,.boxy-debug-panel__legend{font:inherit;margin:0;font-weight:700}.boxy-debug-panel__collapse,.boxy-debug-panel__reset{color:inherit;font:inherit;cursor:pointer;background:#191919;border:1px solid #737373;border-radius:0}.boxy-debug-panel__collapse{padding:.25rem .4rem}.boxy-debug-panel__body{overscroll-behavior:contain;max-height:calc(100dvh - 4.2rem);padding:.75rem;overflow:auto}.boxy-debug-panel--collapsed{width:auto}.boxy-debug-panel--collapsed .boxy-debug-panel__header{border-bottom:0}.boxy-debug-panel--collapsed .boxy-debug-panel__title,.boxy-debug-panel--collapsed .boxy-debug-panel__body{display:none}.boxy-debug-panel__section,.boxy-debug-panel__diagnostics{border:1px solid #393939;min-width:0;margin:0 0 1rem;padding:.65rem}.boxy-debug-panel__control{grid-template-columns:minmax(0,1fr) 5.25rem;align-items:center;gap:.25rem .5rem;display:grid}.boxy-debug-panel__control+.boxy-debug-panel__control{margin-top:.6rem}.boxy-debug-panel__label{grid-column:1/-1}.boxy-debug-panel__range{width:100%;min-width:0;margin:0}.boxy-debug-panel__number{box-sizing:border-box;width:100%;color:inherit;font:inherit;font-variant-numeric:tabular-nums;background:#111;border:1px solid #595959;border-radius:0;padding:.2rem .3rem}.boxy-debug-panel__invariant{color:#a9a9a9}.boxy-debug-panel__diagnostics{display:block}.boxy-debug-panel__diagnostic-list{font-variant-numeric:tabular-nums;grid-template-columns:1fr auto;gap:.25rem 1rem;margin:.6rem 0 0;display:grid}.boxy-debug-panel__diagnostic-list dt,.boxy-debug-panel__diagnostic-list dd{margin:0}.boxy-debug-panel__diagnostic-list dd{color:#a9a9a9;text-align:end}.boxy-debug-panel__reset{width:100%;padding:.45rem .65rem}.boxy-debug-panel button:focus-visible,.boxy-debug-panel input:focus-visible{outline-offset:2px;outline:2px solid #f2f2f2}html.lenis,html.lenis body{height:auto}.lenis:not(.lenis-autoToggle).lenis-stopped{overflow:clip}.lenis [data-lenis-prevent],.lenis [data-lenis-prevent-wheel],.lenis [data-lenis-prevent-touch],.lenis [data-lenis-prevent-vertical],.lenis [data-lenis-prevent-horizontal]{overscroll-behavior:contain}.lenis.lenis-smooth iframe{pointer-events:none}.lenis.lenis-autoToggle{transition-behavior:allow-discrete;transition-property:overflow;transition-duration:1ms}
