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}:root{--color-white:#f8f5ee;--color-dark-blue:#02021b;--color-dark-gray:#3a3d44;--color-light-gray:#d9d9d9;--color-blue:#0909e0;--font-body:"degular-variable", sans-serif;--font-terminal:"bd-terminal-vf", sans-serif;--terminal-title:"wdth" 200, "wght" 700;--terminal-regular-extended:"wdth" 300, "wght" 400;--terminal-bold-extended:"wdth" 300, "wght" 800;--radius:.625rem;--cursor:url(/cursor.svg) 2 2, auto;--content-width:73rem;--page-gutter:1rem;--inset:2.25rem;--text-display:6rem;--text-page-title:4.5rem;--text-title:4rem;--text-section-title:3rem;--text-large:2.5rem;--text-medium:2rem;--text-button-small:1.75rem;--text-small:1.5rem;--text-education:1.375rem;--text-body:1.25rem;--text-tag:1.125rem;--text-body-weight:300;--text-body-strong-weight:600}html,a,button{cursor:var(--cursor)}body{font-family:var(--font-body);color:var(--color-dark-blue);background-color:var(--color-white);margin:0}h1,h2,h3,.terminal-regular-extended,.terminal-bold-extended{font-family:var(--font-terminal)}h1,h2,h3{font-variation-settings:var(--terminal-title)}.terminal-regular-extended{font-variation-settings:var(--terminal-regular-extended)}.terminal-bold-extended{font-variation-settings:var(--terminal-bold-extended)}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.container{max-width:var(--content-width);padding-inline:var(--page-gutter);margin-inline:auto}.section-title{font-size:var(--text-title);margin:0 0 2rem;line-height:1}.type-cursor{color:var(--color-blue);display:inline-block}.type-cursor--typing{width:0}.line-link{--line-link-thickness:.125rem;--line-link-gap:.25rem;row-gap:var(--line-link-gap);grid-template-columns:auto .55em;display:inline-grid}.line-link__bar{width:.55em;height:var(--line-link-thickness);background-color:currentColor;grid-area:2/1/auto/-1;justify-self:end;transition:width .35s,background-color .35s}.line-link:hover .line-link__bar,.line-link:focus-visible .line-link__bar,.line-link[aria-current=page] .line-link__bar{background-color:var(--color-blue);width:100%}.line-marker{--marker-height:2.5rem;--marker-width:calc(var(--marker-height) * .72);color:var(--color-dark-blue);align-items:center;display:flex}.line-marker:before{content:"";height:calc(var(--marker-height) * .143);background-color:currentColor;border-radius:999px;flex:1}.line-marker svg{width:var(--marker-width);height:var(--marker-height);margin-left:calc(-1 * var(--marker-width));flex:none}.line-marker--reverse{flex-direction:row-reverse}.line-marker--reverse svg{margin-left:0;margin-right:calc(-1 * var(--marker-width));transform:scaleX(-1)}.placeholder{background-color:var(--color-dark-gray);border-radius:var(--radius)}.header{z-index:1;background-color:var(--color-white);padding-block:4rem 3rem;position:relative}.nav__list{perspective:40rem;justify-content:flex-end;gap:4.5rem;margin:0;padding:0;list-style:none;display:flex}.nav__link{--line-link-thickness:.3125rem;--line-link-gap:.0625rem;font-family:var(--font-terminal);font-variation-settings:var(--terminal-title);font-size:var(--text-small);color:var(--color-dark-blue);text-decoration:none}.loader{display:none}.intro-loading .loader{z-index:10;background-color:var(--color-blue);perspective:40rem;display:grid;position:fixed;inset:0;overflow:hidden}.intro-loading body{overflow:hidden}.loader__bar{visibility:hidden;background-color:var(--color-blue);grid-area:1/1;place-self:start}.loader__text{visibility:hidden;font-size:var(--text-title);color:var(--color-white);grid-area:1/1;place-self:center;margin:0;line-height:1}.intro-pending :is(.nav__list,.intro__title,.intro__name,.intro__photo,.intro__skills){visibility:hidden}.intro-pending .intro__image{--intro-block-offset:0rem}.intro{padding-top:3rem;overflow-x:clip}.intro__grid{--intro-image-offset:2rem;--intro-text-space:30rem;--intro-image-width:calc(100cqw - var(--intro-text-space) - var(--intro-image-offset));--intro-image-height:calc(var(--intro-image-width) * .75);--intro-mouth-x:.646;--intro-mouth-y:.583;--intro-block-offset:var(--intro-image-offset);--intro-skills-gap:3rem;--intro-skills-height:var(--text-title);--bleed:calc(50vw - 50cqw);padding-bottom:calc(var(--intro-image-height) * (1 - var(--intro-mouth-y)) - var(--intro-skills-height) / 2 + var(--intro-image-offset));grid-template-columns:minmax(0,1fr) auto;display:grid;container-type:inline-size}.intro__text{z-index:1;flex-direction:column;grid-area:1/1;align-self:end;align-items:flex-start;gap:3rem;display:flex}.intro__title{padding-left:var(--inset);font-size:var(--text-display);perspective:40rem;margin:0;line-height:1}.intro__name{width:max-content;padding:2rem var(--inset);font-size:var(--text-title);color:var(--color-white);background-color:var(--color-blue);border-radius:var(--radius);align-items:center;gap:1.25rem;margin:0;font-weight:400;line-height:1;display:flex}.intro__face{--face-height:4.5rem;width:calc(var(--face-height) * 365 / 114);height:var(--face-height);perspective:30rem;align-self:flex-end;display:grid}.intro__face-frame{object-fit:cover;backface-visibility:hidden;width:100%;height:100%;transform-origin:50% 50% calc(var(--face-height) / -2);border-radius:.5rem;grid-area:1/1}.intro__face-frame:not(:first-child){visibility:hidden}.intro__image{width:var(--intro-image-width);aspect-ratio:4/3;margin:var(--intro-image-offset) var(--intro-image-offset) calc(-1 * ( var(--intro-skills-gap) + var(--intro-skills-height) / 2 + var(--intro-image-height) * (1 - var(--intro-mouth-y)) )) 0;border-radius:var(--radius);box-shadow:var(--intro-block-offset) calc(-1 * var(--intro-block-offset)) 0 var(--color-blue), var(--intro-block-offset) var(--intro-block-offset) 0 var(--color-blue);grid-area:1/2;align-self:end;display:grid;overflow:hidden}.intro__image>*{grid-area:1/1}.intro__cat{place-self:start;width:35%;height:65%;margin:15% 0 0 57%}.intro__photo{object-fit:cover;object-position:55% 50%;width:100%;height:100%;display:block}.intro__skills{margin:var(--intro-skills-gap) calc(var(--intro-image-offset) + var(--intro-image-width) * (1 - var(--intro-mouth-x))) 0 calc(-1 * var(--bleed));font-size:var(--text-title);white-space:nowrap;color:var(--color-blue);grid-area:2/1/3/-1;line-height:1;overflow-x:clip}.intro__skills-track{width:max-content;display:flex}.projects{--project-number-width:8.5rem;--project-line:.1875rem solid var(--color-blue);--bleed:calc(50vw - 50cqw);margin-top:5rem;container-type:inline-size}.projects__heading{margin:0 0 2rem calc(-1 * var(--bleed));align-items:center;gap:1rem;display:flex}.projects__heading .section-title{margin:0}.projects__line{width:calc(var(--bleed) + var(--project-number-width) - 1rem);flex:none;margin:1rem 1rem 0 -1rem}.projects__stack{display:grid}.projects__stack>*{grid-area:1/1}.projects__list{margin:0 calc(-1 * var(--bleed)) 0 0;border-radius:var(--radius) 0 0 var(--radius);padding:0;list-style:none;overflow:hidden}.projects__list>li:first-child .project{border-top:var(--project-line)}.project{grid-template-columns:var(--project-number-width) 1fr auto;color:inherit;border-bottom:var(--project-line);align-items:stretch;text-decoration:none;transition:background-color .3s;display:grid}.project__number{font-size:var(--text-large);color:var(--color-white);background-color:var(--color-blue);perspective:40rem;place-items:center end;padding-right:1.5rem;line-height:1;display:grid}.project__digits,.project__arrow{grid-area:1/1}.project__arrow{visibility:hidden}.project__title,.project__tags{align-items:center;display:flex}.project__title{padding:1.5rem var(--inset);font-family:var(--font-body);font-variation-settings:normal;font-size:var(--text-large);margin:0;font-weight:400;line-height:1;transition:color .3s}.projects:not(.projects--js) .project:hover{background-color:var(--color-blue)}.projects--js .project{background-image:linear-gradient(var(--color-blue), var(--color-blue));background-repeat:no-repeat;background-size:0% 100%;transition:none}.projects--js .project__title{transition:none}.project--current .project__title{color:var(--color-blue)}.projects:not(.projects--js) .project:hover .project__title{color:var(--color-white)}.projects__preview{--preview-width:18rem;--preview-height:calc(var(--preview-width) * .75);--preview-offset:1.25rem;z-index:2;width:var(--preview-width);height:var(--preview-height);visibility:hidden;pointer-events:none;perspective:40rem;border-radius:var(--radius);box-shadow:calc(-1 * var(--preview-offset)) calc(-1 * var(--preview-offset)) 0 var(--color-blue), var(--preview-offset) var(--preview-offset) 0 var(--color-blue);place-self:start;display:grid}.projects__preview-image{object-fit:cover;visibility:hidden;border-radius:var(--radius);backface-visibility:hidden;width:100%;height:100%;transform-origin:50% 50% calc(var(--preview-height) / -2);grid-area:1/1}.project__tags{padding:0 calc(var(--bleed) + var(--inset)) 0 var(--inset);flex-wrap:wrap;justify-content:flex-end;gap:.375rem;margin:0;list-style:none}.tag{font-size:var(--text-tag);font-weight:var(--text-body-weight);color:var(--color-white);background-color:var(--color-dark-gray);border-radius:.5rem;padding:.5rem .75rem;line-height:1.2;transition:background-color .4s}.tools--dev .tag--dev,.tag--dev[data-tools=extra]{background-color:var(--color-blue)}.about__text{max-width:38rem;font-size:var(--text-body);font-weight:var(--text-body-weight);line-height:1.6}.about__text p{margin:0 0 1.55em}.about__text p:last-child{margin-bottom:0}.about__text strong{font-weight:var(--text-body-strong-weight)}.cta{display:inline-grid}.cta>*{grid-area:1/1}.about__text .cta__button{line-height:1.3;font-weight:var(--text-body-strong-weight);color:inherit;background-image:linear-gradient(var(--color-blue), var(--color-blue));border:.125rem solid var(--color-blue);perspective:40rem;background-repeat:no-repeat;background-size:0% 100%;border-radius:.25rem;padding:0 .35em;text-decoration:none;display:inline-grid}.about:not(.about--js) .cta__button:hover{color:var(--color-white);background-color:var(--color-blue)}.cta__label,.cta__hover{grid-area:1/1}.cta__hover{visibility:hidden;color:var(--color-white);justify-self:center}.cta__anchor{pointer-events:none;place-self:start center;width:0;height:0;display:grid}.cta__anchor>*{grid-area:1/1}.cta__bubble{width:max-content;color:var(--color-white);background-color:var(--color-blue);border-radius:var(--radius);visibility:hidden;align-items:center;gap:.75rem;padding:.5rem .75rem .5rem .5rem;line-height:1;display:flex}.cta__faces{--face-height:2.25rem;width:calc(var(--face-height) * 365 / 114);height:var(--face-height);perspective:30rem;display:grid}.cta__face{object-fit:cover;backface-visibility:hidden;width:100%;height:100%;transform-origin:50% 50% calc(var(--face-height) / -2);border-radius:.375rem;grid-area:1/1}.cta__lines{perspective:30rem;font-weight:400;display:grid}.cta__line{white-space:nowrap;grid-area:1/1;justify-self:start}.about__count{text-align:right;min-width:2ch;display:inline-block}.about__text a{color:inherit;text-underline-offset:.25rem;transition:text-decoration-color .3s}.about__text a:hover{text-decoration-color:var(--color-blue)}.subsection-title{font-size:var(--text-medium);margin:0 0 .75rem;line-height:1}.tools{max-width:24.5rem}.tools__header{justify-content:space-between;align-items:center;margin-bottom:.75rem;display:flex}.tools__header .subsection-title{margin:0}.tools__toggle{font-family:var(--font-body);font-size:var(--text-body);color:var(--color-blue);border:.1875rem solid var(--color-blue);background-color:#0000;border-radius:.25rem;padding:.375rem .625rem;font-weight:700;line-height:1;transition:color .3s,background-color .3s}.tools__toggle[aria-pressed=true]{color:var(--color-white);background-color:var(--color-blue)}.tools__list{perspective:40rem;flex-wrap:wrap;gap:.375rem;margin:0;padding:0;list-style:none;display:flex}.tools__list .tag[hidden]{display:none}.education p{font-size:var(--text-education);margin:0;line-height:1.4}.education .education__degree{margin-bottom:.75rem;font-weight:600}.education__info{font-weight:300}.languages{max-width:25rem}.languages__list{font-size:var(--text-body);margin:0}.languages__row{--level:1;--fill:1;--meter:.1875rem;padding-block:.75rem calc(.25rem + var(--meter));background:linear-gradient(var(--color-blue), var(--color-blue)) left bottom / calc(var(--level) * var(--fill) * 100%) var(--meter) no-repeat, linear-gradient(var(--color-light-gray), var(--color-light-gray)) left bottom / 100% var(--meter) no-repeat;justify-content:space-between;gap:1rem;display:flex}.languages__row dt{font-weight:600}.languages__row dd{font-weight:var(--text-body-weight);perspective:40rem;justify-items:end;margin:0;display:grid}.languages__level,.languages__greeting{grid-area:1/1}.languages__greeting{visibility:hidden;color:var(--color-blue)}.about{--about-gap:6rem;--about-max-height:65svh;align-items:start;gap:var(--about-gap);grid-template-columns:minmax(0,1fr) minmax(0,1fr);margin-top:12rem;display:grid;container-type:inline-size}.about__aside{--about-card-height:calc(min((100cqw - var(--about-gap)) / 2 - 4rem, var(--about-max-height) * 4 / 3) * 3 / 4 + 4rem);top:max(2rem, (100svh - var(--about-card-height)) / 2);perspective:150rem;grid-area:1/1;position:sticky}.about__body{grid-area:1/2}.about__after{grid-area:2/1}.about--travel .about__aside{z-index:1;grid-row:1/3}.about--travel .about__after{margin-top:var(--about-travel-gap)}.about__card{transform-style:preserve-3d;display:grid}.about__card>.about__image{backface-visibility:hidden;grid-area:1/1}.about__image.about__image--back{box-shadow:calc(-1 * var(--about-offset)) calc(-1 * var(--about-offset)) 0 var(--color-blue), var(--about-offset) var(--about-offset) 0 var(--color-blue);transform:rotateY(180deg)}.about__image{--about-offset:2rem;width:min(100% - 4rem, var(--about-max-height) * 4 / 3);aspect-ratio:4/3;box-shadow:var(--about-offset) calc(-1 * var(--about-offset)) 0 var(--color-blue), calc(-1 * var(--about-offset)) var(--about-offset) 0 var(--color-blue);margin:2rem}.about__body{padding-top:1rem}.about__body .section-title{margin-bottom:1.5rem}.about__body .about__text{max-width:34rem}.about__body .about__text p{margin-bottom:1rem}.about__body .about__text p:last-child{margin-bottom:0}.about__facts{flex-direction:column;gap:4rem;margin-top:3rem;display:flex}.about__facts .tools{max-width:none}.about__divider{color:var(--color-blue);margin-block:0 2rem}.about__outdoors{max-width:none}.lately{--lately-height:22rem;--lately-gap:1.5rem;margin-top:10rem;margin-bottom:1 rem;grid-template-columns:minmax(0,1fr);display:grid}.lately__hint{font-size:var(--text-tag);color:var(--color-white);background-color:var(--color-blue);box-shadow:0 0 0 .125rem var(--color-white);visibility:hidden;pointer-events:none;perspective:30rem;border-radius:.25rem;grid-area:2/1;place-self:center;padding:.375rem .5rem;line-height:1;display:grid}.lately>.container{box-sizing:border-box;grid-area:1/1;width:100%}.lately__viewport{grid-area:2/1}.lately__hint-text{white-space:nowrap;grid-area:1/1;justify-self:center}.lately__hint-text+.lately__hint-text{visibility:hidden}@media (hover:hover) and (pointer:fine){.lately__hint{display:none}}.lately__viewport{overflow-x:auto}.lately__viewport--loop{cursor:grab;touch-action:pan-y;user-select:none;overflow-x:clip}.lately__viewport--dragging{cursor:grabbing}.lately__track{width:max-content;display:flex}.lately__list{gap:var(--lately-gap);padding:0 var(--lately-gap) 0 0;margin:0;list-style:none;display:flex}.lately__figure{border-radius:var(--radius);margin:0;display:grid;overflow:hidden}.lately__photo,.lately__caption{grid-area:1/1}.lately__photo{width:auto;height:var(--lately-height);-webkit-user-drag:none;display:block}.lately__caption{color:var(--color-white);background-color:color-mix(in srgb, var(--color-blue) 90%, transparent);contain:inline-size;opacity:0;flex-direction:column;align-self:end;gap:.375rem;padding:1.5rem;transition:opacity .3s;display:flex}.lately:not(.lately--js) .lately__figure:hover .lately__caption{opacity:1}.lately--js .lately__caption{opacity:1;clip-path:inset(100% 0% 0%);perspective:40rem;transition:none}.lately__viewport--dragging .lately__caption{opacity:0}.lately__title,.lately__text{font-family:var(--font-body);margin:0;line-height:1.3}.lately__title{font-variation-settings:normal;font-size:var(--text-small);font-weight:var(--text-body-strong-weight)}.lately__text{font-size:var(--text-body);font-weight:var(--text-body-weight)}.detail{--detail-image-size:min(27rem, 100svh - 23rem);--detail-offset:1.5rem;padding-top:2rem}.detail__hero{grid-template-columns:calc(var(--detail-image-size) + 2 * var(--detail-offset)) minmax(0, 1fr);align-items:center;gap:5rem;display:grid}.detail__gallery{padding-inline:var(--detail-offset);flex-direction:column;gap:1.5rem;display:flex}.detail__stage{--detail-block:var(--detail-offset);margin-block:var(--detail-offset);border-radius:var(--radius);box-shadow:var(--detail-block) calc(-1 * var(--detail-block)) 0 var(--color-blue), calc(-1 * var(--detail-block)) var(--detail-block) 0 var(--color-blue);perspective:80rem;display:grid}.detail__stage>*{grid-area:1/1}.detail__image{aspect-ratio:1;object-fit:cover;border-radius:var(--radius);visibility:hidden;width:100%;height:auto}.detail__image--shown{visibility:visible}.detail__heart{aspect-ratio:1;width:3.25rem;color:var(--color-blue);background-color:var(--color-white);cursor:var(--cursor);border:none;border-radius:50%;place-self:start end;place-items:center;margin:1rem;padding:0;display:grid}.detail__heart svg{fill:currentColor;width:1.625rem}.detail__heart-fill{opacity:0;transition:opacity .2s}.detail__heart[aria-pressed=true] .detail__heart-fill{opacity:1}.detail__thumbs{grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin:0;padding:0;list-style:none;display:none}.detail--js .detail__thumbs{display:grid}.detail__thumb{border-radius:var(--radius);opacity:.55;width:100%;cursor:var(--cursor);background:0 0;border:.125rem solid #0000;padding:0;transition:opacity .3s,border-color .3s;display:block}.detail__thumb:hover{opacity:.85}.detail__thumb[aria-pressed=true]{border-color:var(--color-blue);opacity:1}.detail__thumb-image{aspect-ratio:1;object-fit:cover;border-radius:calc(var(--radius) - .125rem);width:100%;height:auto;display:block}.detail__info{flex-direction:column;align-items:flex-start;display:flex}.detail__number{font-size:var(--text-medium);color:var(--color-blue);margin:0 0 1rem;line-height:1}.detail__title{font-size:var(--text-page-title);perspective:40rem;margin:0;line-height:1}.detail__intro{max-width:29rem;font-size:var(--text-small);font-weight:var(--text-body-weight);margin:1rem 0 0;line-height:1.3}.detail__specs{border-top:.125rem solid var(--color-dark-blue);width:100%;margin:2.5rem 0 0}.detail__spec{border-bottom:.125rem solid var(--color-dark-blue);grid-template-columns:8rem minmax(0,1fr);align-items:center;gap:1rem;padding-block:.875rem;display:grid}.detail__spec dt{font-family:var(--font-terminal);font-variation-settings:var(--terminal-regular-extended);font-size:var(--text-tag)}.detail__spec dd{font-size:var(--text-tag);font-weight:var(--text-body-weight);margin:0}.detail__tags{flex-wrap:wrap;gap:.375rem;margin:0;padding:0;list-style:none;display:flex}.detail__stock{font-size:var(--text-tag);font-weight:var(--text-body-weight);align-items:center;gap:.625rem;margin:1rem 0 0;display:flex}.detail__dot{aspect-ratio:1;background-color:var(--color-blue);border-radius:50%;width:.625rem}.button{font-family:var(--font-body);font-size:var(--text-medium);color:var(--color-blue);border:.125rem solid var(--color-blue);border-radius:.5rem;padding:.5rem 1.5rem;font-weight:400;line-height:1.2;text-decoration:none;transition:color .3s,background-color .3s;display:inline-block}.button:hover{color:var(--color-white);background-color:var(--color-blue)}.button--small{font-size:var(--text-button-small);padding:.375rem .875rem}.buy{font-family:var(--font-terminal);font-variation-settings:var(--terminal-bold-extended);background-image:linear-gradient(var(--color-blue), var(--color-blue));perspective:40rem;background-repeat:no-repeat;background-size:0% 100%;margin-top:2rem;padding:.75rem 2.5rem;display:inline-grid}.buy>*{grid-area:1/1;justify-self:center}.buy__hover{visibility:hidden;color:var(--color-white)}.detail--js .buy:hover{color:var(--color-blue);background-color:#0000}.detail__section{margin-top:8rem}.detail__split{grid-template-columns:calc(var(--detail-image-size) + 2 * var(--detail-offset)) minmax(0, 1fr);align-items:start;gap:5rem;display:grid}.detail__split .detail__section-title{margin:0}.detail__section-title{font-size:var(--text-section-title);margin:0 0 1rem;line-height:1}.detail__text{max-width:35rem;font-size:var(--text-body);font-weight:var(--text-body-weight);line-height:1.6}.detail__text p{margin:0 0 1.6em}.detail__text p:last-child{margin-bottom:0}.result__intro{grid-template-columns:minmax(0,35rem) auto;align-items:end;column-gap:10rem;display:grid}.result__links{grid-template-columns:max-content auto;align-items:center;gap:1rem;margin:0;padding:0;list-style:none;display:grid}.result__links li{grid-column:1/-1;grid-template-columns:subgrid;align-items:center;display:grid}.result__links .button{text-align:center}.result__note{font-size:var(--text-tag);font-weight:var(--text-body-weight)}.result__grid{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-flow:dense;gap:2rem;margin:5rem 0 0;padding:0;list-style:none;display:grid}.result__grid>li:nth-child(6n+1){grid-area:span 2/span 2}.result__grid>li:nth-child(6n+4),.result__grid>li:nth-child(6n+5){grid-column:1}.result__grid>li:nth-child(6n+6){grid-area:span 2/2/auto/span 2}.result__image{aspect-ratio:1;object-fit:cover;border-radius:var(--radius);width:100%;height:auto;display:block}.process{--process-height:min(36rem, 100svh - 14rem);--process-gap:2rem;box-sizing:border-box;min-height:100svh;color:var(--color-white);background-color:var(--color-dark-gray);margin-top:5rem;padding-block:5rem}.process__title{padding-right:var(--inset);font-size:var(--text-section-title);text-align:right;margin:0 0 3.5rem;line-height:1}.process__viewport{overflow-x:auto}.process--pinned .process__viewport{overflow-x:clip}.process__track{--process-edge:max(var(--page-gutter), (100% - var(--content-width)) / 2);gap:var(--process-gap);width:max-content;padding:0 var(--process-edge);margin:0;list-style:none;display:flex}.process__text{flex:none;width:30rem}.process__image{width:auto;height:var(--process-height);border-radius:var(--radius);display:block}.process__meta{align-items:center;gap:2rem;margin-top:2.5rem;display:flex}.process__count{font-size:var(--text-tag);white-space:nowrap}.process__current{display:inline-block}.process__progress{background-color:var(--color-dark-blue);flex:1;height:.1875rem}.process__bar{background-color:var(--color-white);transform-origin:0;height:100%;display:block;transform:scaleX(0)}.process:not(.process--pinned) .process__meta{display:none}.process__image.placeholder{aspect-ratio:5/4;background-color:var(--color-light-gray)}main{z-index:1;background-color:var(--color-white);padding-bottom:2rem;position:relative;overflow-x:clip}.footer{--footer-underline-gap:.25rem;color:var(--color-white);background-color:var(--color-dark-blue);padding-block:4rem;position:sticky;bottom:0}.footer__grid{grid-template-columns:auto auto;justify-content:start;column-gap:11rem;display:grid}.footer__lead{font-size:var(--text-body);grid-column:1/-1;margin:0 0 2rem;font-weight:400;line-height:1.2}.footer__title{font-family:var(--font-body);font-variation-settings:normal;grid-column:1;justify-self:start;margin:0 0 1.5rem -.75rem}.footer__cta{font-size:var(--text-display);font-variation-settings:"opsz" 72;white-space:nowrap;color:var(--color-white);background-color:var(--color-blue);border-radius:var(--radius);padding:2rem 2.75rem;font-weight:700;line-height:1;text-decoration:none;transition:color .3s,background-color .3s;display:block}.footer__cta-end{white-space:nowrap}.footer__cta .type-cursor{color:inherit;margin-right:-.25rem}.footer__cta:hover{color:var(--color-blue);background-color:var(--color-white)}.footer__email.footer__link{grid-column:1;justify-content:space-between;align-items:center;gap:1.5rem;padding-bottom:0;display:flex}.footer__email.footer__link,.footer__email.footer__link:hover{box-shadow:none}.footer__elsewhere{grid-area:2/2/span 2;align-self:start}.footer__subtitle{font-family:var(--font-body);font-variation-settings:normal;font-size:var(--text-medium);margin:0 0 .5rem;font-weight:700;line-height:1}.footer__links{flex-direction:column;align-items:flex-start;gap:1rem;margin:0;padding:0;list-style:none;display:flex}.footer__link{font-size:var(--text-medium);color:inherit;font-weight:400;line-height:1;text-decoration:none}.footer__email-text{padding-bottom:var(--footer-underline-gap);perspective:40rem;transition:box-shadow .3s;display:inline-block;box-shadow:inset 0 -.125rem}.footer__email:hover .footer__email-text{box-shadow:inset 0 -.125rem 0 var(--color-blue)}.footer__icon{aspect-ratio:1;perspective:20rem;flex:none;width:1.5rem;transition:color .3s;display:grid}.footer__email:hover .footer__icon{color:var(--color-blue)}.footer__icon-frame{stroke:currentColor;stroke-width:2px;grid-area:1/1;width:100%;height:100%;overflow:visible}.footer__icon-frame path{fill:var(--color-dark-blue)}.footer__icon-frame--done path{fill:none}.footer__icon-frame--done{visibility:hidden}.cursor-label{z-index:20;font-size:var(--text-tag);color:var(--color-white);background-color:var(--color-blue);box-shadow:0 0 0 .125rem var(--color-white);visibility:hidden;pointer-events:none;perspective:30rem;border-radius:.25rem;padding:.375rem .5rem;line-height:1;display:grid;position:fixed;top:0;left:0;overflow:hidden}.cursor-label__text{white-space:nowrap;grid-area:1/1;justify-self:start}.cursor-labels [data-cursor]{cursor:var(--cursor)}.lost{flex-direction:column;align-items:flex-start;padding-block:8rem 10rem;display:flex}.lost__code{font-size:var(--text-medium);color:var(--color-blue);margin:0 0 1rem;line-height:1}.lost__title{font-size:var(--text-page-title);overflow-wrap:anywhere;margin:0;line-height:1}.lost__text{max-width:30rem;font-size:var(--text-body);font-weight:var(--text-body-weight);margin:1.5rem 0 2.5rem;line-height:1.6}@media (width<=60rem){:root{--text-display:4rem;--text-page-title:3rem;--text-title:2.5rem;--text-section-title:2rem;--text-large:1.75rem;--text-medium:min(1.375rem, 5.5vw);--text-button-small:1.25rem;--text-small:1.25rem;--text-education:1.25rem;--text-body:1.125rem;--text-tag:1rem;--inset:1rem}.nav__list{gap:2.5rem}.intro{padding-top:3rem}.intro__grid{--intro-image-offset:1rem;--intro-image-width:calc(100cqw - var(--intro-image-offset) - 1.5rem);grid-template-columns:minmax(0,1fr);row-gap:1rem;padding-bottom:0}.intro__text{display:contents}.intro__title{grid-area:1/1}.intro__name{padding:1rem var(--inset);grid-area:2/1;gap:.75rem}.intro__face{--face-height:2rem}.intro__image{width:var(--intro-image-width);margin:var(--intro-image-offset) var(--intro-image-offset) var(--intro-image-offset) 0;grid-area:3/1;justify-self:end}.intro__skills{margin:calc(var(--intro-image-offset) + var(--intro-image-height) * var(--intro-mouth-y) - var(--intro-skills-height) / 2) calc(var(--intro-image-offset) + var(--intro-image-width) * (1 - var(--intro-mouth-x))) 0 calc(-1 * var(--bleed));grid-area:3/1;align-self:start}.projects{--project-number-width:5.5rem;margin-top:6rem}.projects__heading{align-items:flex-start;margin-bottom:1.5rem}.projects__line{width:auto;margin-top:calc((var(--text-title) - var(--marker-height)) / 2 + .25rem);flex:1}.projects__heading .section-title{text-wrap:balance;max-width:60%}.projects--js .projects__stack{flex-direction:column;display:flex}.projects--js .projects__preview{--preview-width:16rem;--preview-height:var(--preview-width);--preview-offset:1rem;bottom:calc(2 * var(--preview-offset));margin:3rem 0 calc(2 * var(--preview-offset));align-self:center;position:sticky}.project{grid-template-columns:var(--project-number-width) minmax(0, 1fr)}.projects__list{background-image:linear-gradient(to right, var(--color-blue) var(--project-number-width), transparent 0)}.project__number{grid-row:span 2;padding-right:1rem}.project__title{padding:1rem var(--inset) .625rem}.project__tags{padding:0 calc(var(--bleed) + var(--inset)) 1rem var(--inset);justify-content:flex-start}.about{grid-template-columns:minmax(0,1fr);gap:2.5rem;margin-top:6rem}.about__aside,.about__body,.about__after{grid-area:auto}.about__image{--about-offset:1rem;width:calc(100% - 2rem);margin:1rem}.cta{justify-content:start;margin-block:1rem .5rem;display:grid}.cta__anchor{justify-self:start}.about__aside{order:1;position:static;top:auto}.about--flip .about__image.about__image--back{transform:rotateX(180deg)}.about__after{order:2}.about__body{padding-top:0}.about__facts{gap:3rem}.about__divider{margin-block:0 2rem;margin-inline:1rem calc(-1 * var(--page-gutter) - 1rem)}.lately{--lately-height:17.5rem;margin-top:3rem}.lately .section-title{text-align:right}.detail{--detail-offset:1rem;padding-top:2rem}.detail__hero{grid-template-columns:minmax(0,1fr);gap:2.5rem}.detail__split{grid-template-columns:minmax(0,1fr);gap:1.5rem}.detail__spec{grid-template-columns:6rem minmax(0,1fr)}.detail__heart{width:2.75rem}.detail__section{margin-top:4rem}.result__intro{grid-template-columns:minmax(0,1fr);row-gap:2rem}.result__grid>li:nth-child(n){grid-area:auto}.result__grid{grid-template-columns:minmax(0,1fr);gap:1.5rem;margin-top:3rem}.process{--process-height:min(28rem, 100svh - 12rem);--process-gap:2rem;margin-top:4rem;padding-block:3rem}.process--pinned{flex-direction:column;justify-content:center;display:flex}.process--pinned>*{box-sizing:border-box;width:100%}.process__title{margin-bottom:2rem}.process__text{width:min(30rem, 100vw - 2 * var(--page-gutter))}.footer{padding-block:2.5rem}.footer__grid{grid-template-columns:minmax(0,1fr)}.footer__lead{margin-bottom:1rem}.footer__title{justify-self:stretch;margin:0 0 1rem}.footer__cta{font-size:min(var(--text-display), 14.5vw);text-align:center;padding:1rem 1.5rem}.footer__cta .type-cursor{margin-right:0}.footer__email.footer__link{gap:.75rem}.footer__elsewhere{grid-area:auto/1;justify-self:end;margin-top:2.5rem}.footer__links{flex-direction:row;gap:.75rem}}@media (height<=48rem){.footer{position:static}}
