.typewriter{display:inline-grid;position:relative;white-space:nowrap}.typewriter__measure,.typewriter__text{grid-area:1/1}.typewriter__measure{visibility:hidden}.typewriter__text{justify-self:start}.typewriter__caret{background:var(--color-primary);display:inline-block;height:.95em;margin-left:.15em;margin-top:.12em;position:absolute;width:1px}.typewriter__caret.is-finished{opacity:0}@media (prefers-reduced-motion:no-preference){.typewriter__caret{animation:caret-blink .7s step-end infinite}.typewriter__caret.is-finished{animation:caret-blink .7s step-end 2}@keyframes caret-blink{0%,49%{opacity:1}50%,to{opacity:0}}.reveal{opacity:0;transition:opacity .55s ease}.reveal.is-visible,.reveal:focus-within{opacity:1}.portfolio__item.reveal{transition:opacity .55s ease,var(--transition)}@media (max-width:600px){.reveal{transition-duration:.42s}}}@media (prefers-reduced-motion:reduce){.typewriter__caret{display:none}}header{padding:clamp(4rem,10vw,7rem) 0 2rem}.header__container{position:relative;text-align:center}.header__container h2{font-size:clamp(1.1rem,3vw,1.5rem);font-weight:400;letter-spacing:-.02em;margin-top:1rem}.cta{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center;margin-top:2rem}.me{aspect-ratio:1;background:linear-gradient(160deg,#53647d,#1b1d22 85%);border-radius:48% 48% 1.5rem 1.5rem;margin:3rem auto 0;overflow:hidden;width:min(100%,24rem)}.me img{height:100%;object-position:top}.cta__linkedin{font-size:1.2rem;padding-inline:0;width:48px}.cta__linkedin svg{height:10px;transform:scale(2.7);width:10px}.scroll__down{color:var(--color-light);display:inline-block;font-size:.8rem;margin-top:2rem}@media (prefers-reduced-motion:no-preference){.header__container h1{animation:arrive .7s ease both}.me{animation:arrive .9s ease .1s both}@keyframes arrive{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}}.cta__label{clip-path:inset(50%);height:1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}nav{background:#25282e;border:1px solid #fff3;border-radius:999px;bottom:calc(1rem + env(safe-area-inset-bottom, 0px));box-shadow:0 8px 32px #0005,inset 0 1px 0 #ffffff24;display:flex;gap:.25rem;left:50%;max-width:calc(100% - 1rem);padding:.5rem;position:fixed;transform:translateX(-50%);width:max-content;z-index:10}@supports (((-webkit-backdrop-filter:blur(24px)) or (backdrop-filter:blur(24px))) or (-webkit-backdrop-filter:blur(24px))){nav{backdrop-filter:blur(24px) saturate(160%);-webkit-backdrop-filter:blur(24px) saturate(160%);background:linear-gradient(145deg,#ffffff20,#ffffff08),#191b22aa}}nav a{border-radius:50%;color:var(--color-light);display:grid;flex-shrink:1;font-size:1.1rem;height:44px;min-width:40px;place-items:center;width:44px}nav a:hover{background:#ffffff12}nav a.active{background:var(--color-primary);box-shadow:inset 0 1px 0 #ffffff80;color:var(--color-bg)}@media (max-width:360px){nav{gap:0;padding:.25rem}}.about__container{grid-gap:clamp(2rem,6vw,5rem);align-items:center;display:grid;gap:clamp(2rem,6vw,5rem);grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)}.about__me{width:100%}.about__me-image{border-radius:1.5rem;overflow:hidden}.about__me-image img{aspect-ratio:1}.about__cards{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:repeat(3,minmax(0,1fr))}.about__card{background:var(--color-bg-variant);border-radius:1rem;padding:1.25rem .5rem;text-align:center}.about__icon{color:var(--color-primary);font-size:1.4rem;margin-bottom:.75rem}.about__card h5{font-size:.85rem}.about__card small{color:var(--color-light);display:block;font-size:.75rem;margin-top:.4rem}.about__content p{color:var(--color-light);margin-block:1.5rem}.about__actions{display:flex;flex-wrap:wrap;gap:.75rem}.about__social-button{padding-inline:0;width:48px}.about__social-button svg{height:10px;transform:scale(2.7);width:10px}.about__button-label{clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}@media (max-width:800px){.about__container{grid-template-columns:1fr}.about__me{margin-inline:auto;max-width:25rem}}.about__inline-link{color:inherit;text-decoration:underline;text-decoration-color:#0000;text-underline-offset:.2em}.about__inline-link:focus-visible,.about__inline-link:hover{color:var(--color-primary);text-decoration-color:initial}.experience__container{grid-gap:1.25rem;display:grid;gap:1.25rem;grid-template-columns:repeat(2,minmax(0,1fr))}.experience__container>div{background:var(--color-bg-variant);border:1px solid #ffffff0d;border-radius:1.5rem;padding:clamp(1.25rem,3vw,2.5rem)}.experience__container h3{margin-bottom:1rem}.experience__content{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none}.experience__content li{border:1px solid #ffffff15;border-radius:.7rem;color:var(--color-light);font-size:.9rem;padding:.3rem .65rem}@media (max-width:800px){.experience__container{grid-template-columns:1fr}}.services__container{grid-gap:1.25rem;display:grid;gap:1.25rem;grid-template-columns:repeat(2,minmax(0,1fr))}.service{background:var(--color-bg-variant);border:1px solid #ffffff0d;border-radius:1.5rem;padding:clamp(1.25rem,3vw,2rem)}.service__head{border-bottom:1px solid #ffffff15;margin-bottom:1.5rem;padding-bottom:1.5rem}.service__head h3{font-size:1.15rem}.service__head p,.service__head small{color:var(--color-light)}.service__head p{margin-top:.35rem}.service__list{color:var(--color-light);font-size:.9rem;padding-inline-start:1.2rem}.service__list li+li{margin-top:.65rem}@media (max-width:650px){.services__container{grid-template-columns:1fr}}.portfolio__container{grid-gap:1.25rem;display:grid;gap:1.25rem;grid-template-columns:repeat(3,minmax(0,1fr))}.portfolio__item{background:var(--color-bg-variant);border:1px solid #ffffff0d;border-radius:1.5rem;display:flex;flex-direction:column;min-width:0;padding:1rem;transition:var(--transition)}.portfolio__item-image{background:#ffffff08;border-radius:.8rem;overflow:hidden}.portfolio__item img{aspect-ratio:4/3;object-fit:contain}.portfolio__item h3{font-size:1.1rem;line-height:1.45;margin:1.5rem .25rem}.portfolio__contribution{color:var(--color-light);font-size:.9rem;margin:0 .25rem 1.25rem}.portfolio__item-cta{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:auto}.portfolio__item-cta .btn{font-size:.8rem;padding:.65rem .9rem}@media (hover:hover){.portfolio__item:hover{border-color:var(--color-primary-variant);transform:translateY(-4px)}}@media (max-width:1000px){.portfolio__container{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:600px){.portfolio__container{grid-template-columns:1fr}}.container.testimonials__container{grid-gap:.75rem;display:grid;gap:.75rem;width:min(90%,48rem)}.testimonial{background:var(--color-bg-variant);border:1px solid #ffffff15;border-radius:1rem}.testimonial summary{border-radius:inherit;cursor:pointer;padding:1rem clamp(1rem,4vw,1.5rem)}.testimonial summary::marker{color:var(--color-primary)}.client__name{font-weight:600}.client__role{color:var(--color-light);display:block;font-size:.85rem}.client__review{border-top:1px solid #ffffff15;color:var(--color-light);font-size:.95rem;margin-inline:clamp(1rem,4vw,1.5rem);padding-block:1rem 1.25rem}.container.contact__container{max-width:42rem}fieldset,form{display:flex;flex-direction:column;gap:.75rem;min-width:0}fieldset{border:0}form label{color:var(--color-light);font-size:.85rem;margin-top:.5rem}input,textarea{background:var(--color-bg-variant);border:1px solid #ffffff25;border-radius:.75rem;color:var(--color-white);font:inherit;min-width:0;padding:1rem;width:100%}textarea{min-height:10rem;resize:vertical}input::placeholder,textarea::placeholder{color:#969ba7}form button{align-self:flex-start;margin-top:.75rem}.contact__status{color:var(--color-primary);font-size:.9rem;min-height:1.7em}.contact__alternate{color:var(--color-light);margin-bottom:1rem}footer{border-top:1px solid #ffffff15;font-size:.85rem;padding:3rem 5% calc(8rem + env(safe-area-inset-bottom, 0px));text-align:center}.footer__logo{display:inline-block;font-size:2rem;margin-bottom:1.5rem}.permalinks{display:flex;flex-wrap:wrap;gap:.75rem 1.5rem;justify-content:center;list-style:none;margin-bottom:1.5rem}.permalinks a{color:var(--color-light);display:inline-block;padding-block:.5rem}.footer__socials{display:flex;gap:.75rem;justify-content:center;margin-bottom:1.5rem}.footer__socials a{border:1px solid #ffffff20;border-radius:50%;display:grid;font-size:1.2rem;height:44px;place-items:center;width:44px}.footer__copyright{color:var(--color-light)}*{box-sizing:border-box;margin:0;padding:0}:root{--color-bg:#101114;--color-bg-variant:#1b1d22;--color-primary:#a5c7ff;--color-primary-variant:#a5c7ff40;--color-hover:#242830;--color-white:#f5f5f7;--color-light:#b4b7c0;--transition:background-color 240ms ease,color 240ms ease,border-color 240ms ease,transform 240ms ease;--container-width-lg:min(88%,1120px);--container-width-md:88%;--container-width-sm:90%;color-scheme:dark}html{scroll-behavior:smooth;scroll-padding-top:2rem}body{-webkit-font-smoothing:antialiased;background:#101114;background:var(--color-bg);color:#f5f5f7;color:var(--color-white);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.7}a{color:#a5c7ff;color:var(--color-primary);text-decoration:none;transition:background-color .24s ease,color .24s ease,border-color .24s ease,transform .24s ease;transition:var(--transition)}a:hover{color:#f5f5f7;color:var(--color-white)}:focus-visible{outline:2px solid #a5c7ff;outline:2px solid var(--color-primary);outline-offset:5px}button,input,textarea{font:inherit}button{cursor:pointer}.container{margin-inline:auto;min-width:0;width:min(88%,1120px);width:var(--container-width-lg)}h1,h2,h3,h4,h5{font-weight:600;letter-spacing:-.035em;line-height:1.2;overflow-wrap:anywhere}h1{font-size:clamp(3.5rem,11vw,7.5rem);letter-spacing:-.06em}h2{font-size:clamp(1.9rem,4vw,3rem)}h3{font-size:1.2rem}section{margin-block:0;padding-block:clamp(3.5rem,8vw,6rem)}section>h2,section>h5{text-align:center}section>h2{margin-bottom:clamp(2rem,5vw,3.5rem)}section>h5{font-size:.9rem;letter-spacing:.04em;margin-bottom:.75rem}.text-light,section>h5{color:#b4b7c0;color:var(--color-light)}.btn{align-items:center;background:#0000;border:1px solid #a5c7ff40;border:1px solid var(--color-primary-variant);border-radius:999px;color:#a5c7ff;color:var(--color-primary);display:inline-flex;font-size:.9rem;font-weight:500;gap:.3em;justify-content:center;min-height:44px;padding:.75rem 1.2rem;text-align:center;transition:background-color .24s ease,color .24s ease,border-color .24s ease,transform .24s ease;transition:var(--transition)}.btn-primary{background:#a5c7ff;background:var(--color-primary);border-color:#0000}.btn-primary,.btn:hover{color:#101114;color:var(--color-bg)}.btn:hover{background:#f5f5f7;background:var(--color-white);transform:translateY(-2px)}.btn:disabled{cursor:wait;opacity:.65;transform:none}img{display:block;height:auto;max-width:100%;object-fit:cover;width:100%}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{animation:none!important;transition:none!important}}