*,*::before,*::after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%}img,svg,video{display:block;max-inline-size:100%}button{font:inherit;color:inherit;background:none;border:0}ul{list-style:none;padding:0}:where(html){color-scheme:dark;--bg: #03171F;--bg-raised: #072430;--bg-sunken: #021219;--highlight: #EC3E46;--highlight-dim: #C22F37;--text-1: #EEF5F8;--text-2: #A9BEC7;--text-3: #718D99;--line: rgba(238, 245, 248, .10);--line-strong:#A9BEC799;--font-sans: "Poppins", "HelveticaNeue-Light", "Helvetica Neue", Helvetica, Arial, sans-serif;--wrap: 780px;--ease-out-3: cubic-bezier(0, 0, .3, 1);--ease-out-4: cubic-bezier(0, 0, .1, 1);font-family:var(--font-sans);background-color:var(--bg);color:var(--text-1);scrollbar-color:var(--line-strong) var(--bg)}body{position:relative;min-block-size:100vh;line-height:1.5;background-color:var(--bg);background-image:radial-gradient(ellipse 130vw 62vh at 50% 0%, rgba(236, 62, 70, 0.16), rgba(236, 62, 70, 0) 68%);background-repeat:no-repeat;color:var(--text-1);-webkit-font-smoothing:antialiased;overflow-x:hidden}h1,h2,h3{font-family:var(--font-sans);font-weight:700;line-height:1.15;letter-spacing:-0.02em;color:var(--text-1)}a{color:#fff;text-decoration-color:var(--highlight);text-decoration-thickness:1.5px;text-underline-offset:3px}.link{display:inline-flex;align-items:center;gap:.3rem;text-decoration:none;white-space:nowrap}.link span{text-decoration:underline;text-decoration-color:var(--highlight);text-decoration-thickness:1px;text-underline-offset:4px}.link .button__icon{transition:transform .2s ease}.link:is(:hover,:focus-visible) span{text-decoration-color:#fff}.link:is(:hover,:focus-visible) .button__icon{transform:translateX(3px)}::selection{background:var(--highlight);color:#fff}:focus-visible{outline:2px solid var(--highlight);outline-offset:3px;border-radius:4px}.page{position:relative;z-index:1;inline-size:100%;max-inline-size:var(--wrap);margin-inline:auto;padding-inline:clamp(1.25rem,5vw,2rem);padding-block:clamp(1.5rem,5vw,3rem) clamp(3rem,8vw,5rem);display:flex;flex-direction:column;gap:clamp(2.5rem,6vw,3.75rem)}.intro{--avatar: clamp(96px, 20vw, 132px);--line-gap: clamp(1.25rem,5vw,2rem);--drop: clamp(1.25rem, 4vw, 2rem);--line-weight: 2px;position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:0}.intro::before{content:"";position:absolute;background-color:#ec3e46;pointer-events:none;z-index:-1}.intro::before{inset-inline-end:calc(100% + var(--line-gap));inset-block-start:calc(var(--avatar)/2);inline-size:100vw;block-size:var(--line-weight);transform-origin:left center;border-radius:10px}.mark{position:fixed;inset-block-start:clamp(10px,2vw,20px);inset-inline-end:7%;inline-size:clamp(200px,55vw,620px);block-size:auto;z-index:0;left:50%;pointer-events:none;user-select:none;opacity:.1}.intro__avatar{inline-size:var(--avatar);block-size:auto;border:2px solid var(--highlight);border-radius:50%;margin-block-end:calc(var(--drop) - 10px);position:relative;z-index:1}.intro__title{font-weight:400;font-size:clamp(2rem,6.5vw,3rem);margin:0 0 clamp(.75rem,2vw,1.15rem)}.intro__lead{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:clamp(1.25rem,3vw,2rem);inline-size:100%}.intro__blurb{font-size:clamp(1.0625rem,2.4vw,1.25rem);line-height:1.6;color:var(--text-2);margin:0;flex-basis:32ch;flex-grow:1}.intro__blurb strong{color:var(--text-1);font-weight:600}.button{display:inline-flex;align-items:center;gap:.5rem;white-space:nowrap;font-size:1rem;font-weight:600;line-height:1;padding-inline:1.5rem;padding-block:.875rem;color:#fff;background-color:var(--highlight);border:2px solid var(--highlight);border-radius:6px;text-decoration:none;transition:background-color .2s ease,border-color .2s ease,transform .2s ease,color .2s ease}.button__icon{transition:transform .2s ease}.button:is(:hover,:focus-visible){background-color:var(--highlight-dim);border-color:var(--highlight-dim);color:#fff;text-decoration:none}.button:is(:hover,:focus-visible) .button__icon{transform:translateX(3px)}.button--sm{font-size:.8125rem;padding-inline:1.05rem;padding-block:.625rem;border-width:1px;border-radius:5px;color:#fff;border-color:#fff;background-color:rgba(0,0,0,0)}.button--sm:is(:hover,:focus-visible){background-color:#fff;border-color:#fff;color:var(--bg)}.tabs{margin-block-end:clamp(1.5rem,4vw,2rem);margin-inline:calc(-1*clamp(1.25rem,5vw,2rem))}.tabs__list{display:flex;gap:.375rem;overflow-x:auto;scrollbar-width:none;padding-inline:clamp(1.25rem,5vw,2rem);padding-block:.25rem}.tabs__list::-webkit-scrollbar{display:none}.tab{flex:0 0 auto;appearance:none;border:1px solid rgba(0,0,0,0);background:rgba(0,0,0,0);color:var(--text-3);font-family:inherit;font-size:.9375rem;font-weight:500;line-height:1;padding-inline:1.125rem;padding-block:.75rem;border-radius:999px;cursor:pointer;transition:color .2s ease,background-color .2s ease,border-color .2s ease}.tab:hover{color:var(--text-1)}.tab.is-active{color:var(--bg);background-color:#fff;border-color:#fff;font-weight:600}.panel{display:grid;gap:1rem;cursor:auto;grid-template-columns:repeat(2, minmax(0, 1fr))}.panel[hidden]{display:none}.panel--work,.panel--feedback{grid-template-columns:minmax(0, 1fr)}.card--wide{grid-column:1/-1}.techs{margin-block-start:.75rem}.techs__list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;align-items:center;gap:clamp(1rem,3.5vw,1.5rem)}.techs__list img{display:block;opacity:7;block-size:clamp(14px,3vw,18px);inline-size:auto;max-inline-size:none}.techs__list .techs__intro,.techs__list .techs__more{font-size:.8125rem;font-weight:600;letter-spacing:.01em;white-space:nowrap;color:rgba(238,245,248,.42)}.card{background-color:var(--bg-raised);border-radius:20px;padding:clamp(1.25rem,3.5vw,1.75rem);display:flex;flex-direction:column;gap:.625rem}.card__head{display:flex;align-items:center;gap:.75rem}.card__head .card__icon{margin-block-end:0}.card__icon{display:inline-flex;align-items:center;justify-content:center;inline-size:40px;block-size:40px;border-radius:12px;background-color:rgba(236,62,70,.12);color:var(--highlight);font-size:.8125rem;font-weight:700;margin-block-end:.375rem}.card__title{font-size:1.125rem;font-weight:600;margin:0}.card__body{font-size:.9375rem;line-height:1.65;color:var(--text-2);margin:0;text-wrap:initial}.quote{gap:1.25rem;margin:0;place-items:stretch;align-items:stretch}.quote__text{display:block;margin:0;padding:0;border:0;max-inline-size:none;font-size:1.0625rem;line-height:1.6;color:var(--text-1)}.quote__who{display:flex;align-items:center;gap:.75rem;font-size:.875rem;color:var(--text-3)}.quote__who strong{display:block;color:var(--text-1);font-weight:600}.quote__who small{font-size:.8125rem}.quote__avatar{display:inline-flex;align-items:center;justify-content:center;inline-size:38px;block-size:38px;flex:0 0 auto;border-radius:50%;background-color:rgba(236,62,70,.14);color:var(--highlight)}.work{flex-direction:row;text-decoration:none;color:inherit;margin-block:0;transition:background-color .25s ease,transform .25s ease}.work:is(:hover,:focus-visible){background-color:#08303f;transform:translateY(-2px)}.work{align-items:stretch;gap:0;padding:0;overflow:hidden}.work__info{flex:1 1 48%;min-inline-size:0;display:flex;flex-direction:column;align-items:flex-start;gap:.75rem;padding:clamp(1.5rem,4vw,2.25rem)}@media(max-width: 540px){.work__info{flex:0}}.work__shot{position:relative;flex:1 1 52%;align-self:flex-end;margin-block-start:clamp(1.5rem,4vw,2.25rem);overflow:hidden;border:1px dashed var(--line-strong);border-inline-end:0;border-block-end:0;border-start-start-radius:14px;height:calc(100% - clamp(1.5rem,4vw,2.25rem))}.work__shot:has(img){border:0}.work__shot{background:linear-gradient(135deg, rgba(236, 62, 70, 0.07), transparent 60%),var(--bg-sunken);display:grid;place-items:center}.work__shot img{display:block;inline-size:100%;block-size:100%;object-fit:cover;object-position:left top}.work__cta{position:absolute;inset:0;display:grid;place-items:flex-end;background-image:linear-gradient(to top, rgba(3, 23, 31, 0.8), rgba(3, 23, 31, 0) 55%);align-items:end;padding-block-end:1rem;padding-inline-end:1rem;opacity:0;transition:opacity .25s ease;pointer-events:none}.work__cta .button{background-color:#fff;border-color:#fff;color:var(--bg)}.work:is(:hover,:focus-visible) .work__cta{opacity:1}@media(hover: none){.work__cta{opacity:1}}.about__photo{position:relative;overflow:hidden;border-radius:20px;min-block-size:220px}.about__photo img{position:absolute;inset:0;inline-size:100%;block-size:100%;object-fit:cover}.about__gallery{grid-column:1/-1;display:grid;grid-template-columns:repeat(3, minmax(0, 1fr));gap:1rem}.about__gallery .about__photo{min-block-size:0;aspect-ratio:4/5}.availability{--dot: #3ED598;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.35rem .75rem;margin:0;align-self:center;text-align:center;font-size:1rem;font-weight:500;color:var(--text-2)}.availability__dot{display:inline-block;vertical-align:middle;margin-block-start:-2px;margin-inline-end:.5rem;inline-size:8px;block-size:8px;border-radius:50%;background-color:var(--dot);animation:availabilityPulse 2.6s var(--ease-out-3) infinite}@keyframes availabilityPulse{0%,100%{box-shadow:0 0 0 3px rgba(62,213,152,.18)}50%{box-shadow:0 0 0 7px rgba(62,213,152,0)}}@keyframes lineAcross{from{transform:scaleX(0);filter:blur(20px)}to{transform:scaleX(1);filter:blur(0)}}@keyframes riseIn{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes softInRight{from{opacity:0;filter:blur(10px)}to{opacity:1;filter:blur(0px)}}@keyframes wordIn{from{opacity:0;transform:translateY(16px);filter:blur(12px)}to{opacity:1;transform:translateY(0);filter:blur(0px)}}@keyframes markFade{from{opacity:0;filter:blur(18px)}to{opacity:1;filter:blur(0px)}}@keyframes softIn{from{opacity:0;transform:translateY(14px);filter:blur(10px)}to{opacity:1;transform:translateY(0);filter:blur(0px)}}.intro::before{animation:lineAcross 1.5s var(--ease-out-3) .25s backwards}.intro__avatar{animation:wordIn .55s var(--ease-out-3) .1s backwards}.intro__title .is-name{font-weight:700}.intro__title span{display:inline-block;animation:wordIn .6s var(--ease-out-3) backwards}.intro__title span:nth-child(1){animation-delay:0.45s}.intro__title span:nth-child(2){animation-delay:0.52s}.intro__title span:nth-child(3){animation-delay:0.59s}.intro__title span:nth-child(4){animation-delay:0.66s}.intro__title span:nth-child(5){animation-delay:0.73s}.intro__title span:nth-child(6){animation-delay:0.8s}.intro__blurb{animation:softIn .7s var(--ease-out-3) .95s backwards}.intro .button{animation:softIn .7s var(--ease-out-3) 1.05s backwards}main{animation:softIn .7s var(--ease-out-3) 1.15s backwards}.availability{animation:softIn .7s var(--ease-out-3) 1.25s backwards}.is-loaded .intro::before,.is-loaded .intro__avatar,.is-loaded .mark,.is-loaded .intro__title span,.is-loaded .intro__blurb,.is-loaded .intro .button,.is-loaded main,.is-loaded .availability{animation:none;filter:none}@media(max-width: 540px){.panel{grid-template-columns:minmax(0, 1fr)}.about__photo{min-block-size:0;aspect-ratio:3/2}.tab__long{display:none}.tab{font-size:.8125rem;padding-inline:.75rem}.tabs__list{gap:.3125rem}.work{flex-direction:column}.work__shot{align-self:stretch;margin:0;border:0;border-start-start-radius:14px;border-start-end-radius:14px;border-end-start-radius:0;border-end-end-radius:0}}@media(prefers-reduced-motion: reduce){*{animation:none !important;transition:none !important}}