:root{--color-bg:#f5f7fc;--color-bg-hover:#ebeef6;--color-bg-muted:#efeef4;--color-line:#d5dae7;--color-line-dark:#1e201f;--color-text:#4d4e53;--color-text-strong:#3b3b3b;--color-text-subtle:#ababab;--color-on-brand:#f5f7fc;--color-brand:#5c46db;--color-brand-light:#a4ccf3;--color-brand-accent:#6c64e0;--gradient-text:linear-gradient(90deg, var(--color-brand), var(--color-brand-light));--gradient-number:linear-gradient(136.4deg, var(--color-brand) 17.6%, var(--color-brand-light) 79.1%);--gradient-header:linear-gradient(135.97deg, var(--color-brand) 52.2%, var(--color-brand-light) 308.1%);--font-serif:"Playfair Display Variable", "Playfair Display", Georgia, serif;--font-sans:"Rubik Variable", "Rubik", system-ui, -apple-system, sans-serif;--text-display:clamp(36px, 26px + 2.65vw, 60px);--text-h2:clamp(30px, 25.9px + 1.1vw, 40px);--text-h3:clamp(26px, 23.5px + .66vw, 32px);--text-subtitle:clamp(20px, 18.3px + .44vw, 24px);--text-label:clamp(16px, 12.7px + .88vw, 24px);--text-body:16px;--text-body-large:clamp(17px, 16.6px + .11vw, 18px);--text-caption:clamp(14px, 13.2px + .22vw, 16px);--text-number:64px;--tracking-heading:.75px;--tracking-body:.1755px;--tracking-label:1.25px;--pad:clamp(24px, .8px + 6.19vw, 80px);--pad-media:clamp(16px, 7.07vw - 10.5px, 80px);--gap:clamp(16px, 12.7px + .88vw, 24px);--gap-media:clamp(20px, 17.5px + .66vw, 40px);--measure:72ch;--button:clamp(48px, 43px + 1.33vw, 60px);--header-height:64px;--radius-media:4px;--radius-card:6px;--line:1px solid var(--color-line);--ease:cubic-bezier(.22, .61, .36, 1);--ease-out-expo:cubic-bezier(.16, 1, .3, 1);--duration:.24s}@media (width>=768px){:root{--text-number:80px}}@media (width>=1024px){:root{--text-number:70px}}@media (width>=1280px){:root{--text-display:clamp(60px, 36px + 1.875vw, 72px);--text-h2:clamp(40px, 24px + 1.25vw, 48px);--text-h3:clamp(32px, 20px + .94vw, 38px);--text-subtitle:clamp(24px, 16px + .625vw, 28px);--text-label:clamp(24px, 16px + .625vw, 28px);--text-body:clamp(16px, 12px + .3125vw, 18px);--text-body-large:clamp(18px, 14px + .3125vw, 20px);--text-caption:clamp(16px, 12px + .3125vw, 18px);--text-number:clamp(70px, 42px + 2.19vw, 84px);--pad:clamp(80px, 6.25vw, 120px);--pad-media:clamp(80px, 6.25vw, 120px);--gap:clamp(24px, 1.875vw, 36px);--gap-media:clamp(40px, 3.125vw, 60px);--button:clamp(60px, 4.69vw, 72px)}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;background:var(--color-bg)}@media (prefers-reduced-motion:reduce){:not([data-reveal]),:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);font-size:var(--text-body);letter-spacing:var(--tracking-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;margin:0;line-height:1.5}img,picture,video,svg{max-width:100%;display:block}h1,h2,h3,p,ul,ol,figure{margin:0}a{color:inherit}button{font:inherit;color:inherit}::selection{background:var(--color-brand);color:var(--color-on-brand)}:focus-visible{outline:2px solid var(--color-brand);outline-offset:3px}.container{width:100%}.page>*+*{border-top:var(--line)}.t-display{font-family:var(--font-serif);font-weight:700;font-size:var(--text-display);letter-spacing:var(--tracking-heading);color:var(--color-text);line-height:1.3}.t-h2{font-family:var(--font-serif);font-weight:700;font-size:var(--text-h2);letter-spacing:var(--tracking-heading);line-height:1.3}.t-card-title{--title-ink:var(--color-text-strong);font-family:var(--font-serif);font-weight:700;font-size:var(--text-h2);letter-spacing:var(--tracking-heading);color:var(--color-text-strong);line-height:1.4}.t-subtitle{font-size:var(--text-subtitle);letter-spacing:var(--tracking-heading);line-height:1.4}.t-label{font-size:var(--text-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--color-text-subtle);line-height:1.4}.t-caption{font-size:var(--text-caption);letter-spacing:var(--tracking-label);text-transform:uppercase;text-align:center;text-wrap:balance;line-height:1.4}.prose{max-width:var(--measure)}.prose>*+*{margin-top:1.5em}.prose ul,.prose ol{padding-left:24px}.prose li+li{margin-top:0}.prose strong{font-weight:600}.prose p{text-wrap:pretty}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}.skip-link{z-index:10;background:var(--color-text-strong);color:var(--color-on-brand);transition:top var(--duration) var(--ease);padding:10px 16px;text-decoration:none;position:absolute;top:-60px;left:16px}.skip-link:focus{top:16px}.frame{border-radius:var(--radius-media);overflow:hidden}.frame--light{border:var(--line)}.frame--dark{border:1px solid var(--color-line-dark)}html{scrollbar-color:var(--color-line) var(--color-bg)}.motion .page>*{position:relative}.motion .page>*+*{border-top-color:#0000}.motion .page>*+:before{content:"";z-index:1;background:var(--color-line);transform-origin:0;height:1px;transition:transform 1.4s var(--ease-out-expo);pointer-events:none;position:absolute;top:-1px;left:0;right:0;transform:scaleX(0)}.motion .page>.is-in:before{transform:scaleX(1)}.motion [data-reveal]{opacity:0;filter:blur(6px);transition:opacity .9s var(--ease-out-expo), transform 1.2s var(--ease-out-expo), filter .9s var(--ease-out-expo);transition-delay:calc(var(--i,0) * 90ms + .14s);transform:translateY(18px)}.motion .is-in [data-reveal]{opacity:1;filter:none;transform:none}.motion [data-reveal=media]{opacity:1;filter:none;clip-path:inset(0 0 100%);transition:clip-path 1.3s var(--ease-out-expo);transition-delay:calc(var(--i,0) * 90ms + .2s);transform:none}.motion [data-reveal=media] :is(picture,video){transition:transform 1.8s var(--ease-out-expo);transition-delay:inherit;display:block;transform:scale(1.06)}.motion .is-in [data-reveal=media].is-ready{clip-path:inset(0)}.motion .is-in [data-reveal=media].is-ready :is(picture,video){transform:none}@property --title-a{syntax:"<color>";inherits:false;initial-value:#4d4e53}@property --title-b{syntax:"<color>";inherits:false;initial-value:#4d4e53}@supports ((-webkit-background-clip:text) or (background-clip:text)){.motion .title-flow{--title-a:#5c46db;--title-b:#a4ccf3;background-image:linear-gradient(90deg, var(--title-a), var(--title-b), var(--title-a));color:#0000;background-size:200% 100%;-webkit-background-clip:text;background-clip:text}.motion .title-flow.is-live{animation:3.6s cubic-bezier(.37,0,.63,1) .45s both title-flow}}@keyframes title-flow{0%{--title-a:#5c46db;--title-b:#a4ccf3;color:#0000;background-position:0 0}35%{--title-a:#5c46db;--title-b:#a4ccf3}99.9%{--title-a:var(--title-ink,#4d4e53);--title-b:var(--title-ink,#4d4e53);color:#0000}to{--title-a:var(--title-ink,#4d4e53);--title-b:var(--title-ink,#4d4e53);color:var(--title-ink,#4d4e53);background-position:100% 0}}.motion-reduced [data-reveal]{opacity:0;transition:opacity .6s}.motion-reduced .is-in [data-reveal]:not([data-reveal=media]),.motion-reduced .is-in [data-reveal=media].is-ready{opacity:1}@supports (animation-timeline:view()){.motion .skills .image img{animation:linear both drift view();scale:1.14}}@keyframes drift{0%{translate:0 -5%}to{translate:0 5%}}@media (hover:hover) and (pointer:fine){html:not(.no-snap){scroll-snap-type:y mandatory}.page>*,.project-header{scroll-snap-align:start}.site-footer{scroll-snap-align:end}}.arrow-button[data-astro-cid-bqlk3k3n]{width:var(--size);height:var(--size);border-radius:50%;flex:none;display:inline-block}.arrow-button--lg[data-astro-cid-bqlk3k3n]{width:var(--button);height:var(--button)}.arrow-button[data-astro-cid-bqlk3k3n] svg[data-astro-cid-bqlk3k3n]{width:100%;height:100%;display:block}.arrow-button--gradient[data-astro-cid-bqlk3k3n]{color:#fff;background-image:linear-gradient(135deg, var(--color-brand) 0%, var(--color-brand-light) 150%)}.arrow-button--light[data-astro-cid-bqlk3k3n]{color:var(--color-brand-accent);background:var(--color-on-brand)}.site-footer[data-astro-cid-jo6i4kqk]{background:var(--gradient-header);color:#f5f7fce0}.grid[data-astro-cid-jo6i4kqk]{grid-template-columns:1fr;display:grid}.photo[data-astro-cid-jo6i4kqk]{aspect-ratio:4/3;order:3;position:relative;overflow:hidden}.photo[data-astro-cid-jo6i4kqk] img{object-fit:cover;object-position:center 12%;width:100%;height:100%;position:absolute;inset:0}.col[data-astro-cid-jo6i4kqk]{padding:32px var(--pad);border-bottom:1px solid #f5f7fc47}.title[data-astro-cid-jo6i4kqk]{font-family:var(--font-serif);letter-spacing:.5px;color:var(--color-on-brand);text-wrap:balance;font-size:clamp(22px,21px + .28vw,26px);font-weight:700;line-height:1.25}.cta[data-astro-cid-jo6i4kqk]{color:var(--color-on-brand);letter-spacing:.3px;border-radius:999px;align-items:center;gap:12px;margin-top:24px;font-size:15px;font-weight:500;text-decoration:none;display:inline-flex}.cta[data-astro-cid-jo6i4kqk] .cta-arrow{width:40px;height:40px}@media (hover:hover){.cta[data-astro-cid-jo6i4kqk]:hover span[data-astro-cid-jo6i4kqk]{text-underline-offset:4px;text-decoration:underline}}.head[data-astro-cid-jo6i4kqk]{font-family:var(--font-serif);letter-spacing:.5px;color:var(--color-on-brand);margin-bottom:10px;font-size:clamp(18px,17.2px + .22vw,20px);font-weight:700}.contact[data-astro-cid-jo6i4kqk]{margin:0;padding:0;list-style:none}.contact[data-astro-cid-jo6i4kqk] li[data-astro-cid-jo6i4kqk]{letter-spacing:.3px;padding:1px 0;font-size:clamp(14px,13.6px + .11vw,15px);line-height:1.5}.contact[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]{color:inherit;text-decoration:none}.contact[data-astro-cid-jo6i4kqk] .linkedin[data-astro-cid-jo6i4kqk]{color:var(--color-on-brand);text-underline-offset:3px;text-decoration:underline}@media (hover:hover){.contact[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]:hover{color:var(--color-on-brand);text-underline-offset:3px;text-decoration:underline}}.site-footer[data-astro-cid-jo6i4kqk] [data-astro-cid-jo6i4kqk]:focus-visible{outline-color:var(--color-on-brand)}@media (width>=768px){.grid[data-astro-cid-jo6i4kqk]{grid-template-columns:1.3fr 1fr 26%}.photo[data-astro-cid-jo6i4kqk]{aspect-ratio:auto;min-height:300px}.hello[data-astro-cid-jo6i4kqk]{border-left:0}.col[data-astro-cid-jo6i4kqk]{border-bottom:0;border-left:1px solid #f5f7fc47;padding:clamp(48px,20px + 3.6vw,64px) clamp(28px,6px + 2.8vw,48px)}.head[data-astro-cid-jo6i4kqk]{margin-bottom:12px}}
