@import"https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@300;500&display=swap";:root{--portfolio-ink: #171c2b;--portfolio-accent: #215cff;--portfolio-copy-size: 18px;--portfolio-copy-line-height: 150%;--portfolio-grid-gap: 4rem;--fade-ease: cubic-bezier(.22, 1, .36, 1)}html{background:#fff;width:100%;height:100%}body{margin:0;background:#fff;color:var(--portfolio-ink);font-family:IBM Plex Sans,sans-serif;font-weight:300;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;width:100%;height:100%}a{color:inherit}.route-shell{width:100%;display:flex;align-items:center;justify-content:center;padding:2rem;background:radial-gradient(circle at top left,rgba(33,92,255,.12),transparent 30%),#fff}.route-shell--landing{height:100%;padding:0 2rem}.route-card{width:auto;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;text-align:center}.route-headerline,.portfolio-headerline{display:flex;align-items:center;gap:.85rem;flex-wrap:wrap}.route-headerline{justify-content:center;line-height:1}.route-name,.route-role,.portfolio-name,.portfolio-titleline{margin:0;font-weight:300}.route-name{display:block;font-size:clamp(2rem,3.2vw,2.4rem);line-height:1.1;color:var(--portfolio-accent)}.route-role{display:block;font-size:clamp(2rem,3.2vw,2.4rem);line-height:1.2;color:var(--portfolio-ink)}.portfolio-name,.portfolio-titleline{font-size:clamp(1.8rem,4vw,3rem);line-height:1.1}.portfolio-name{color:var(--portfolio-accent)}.portfolio-titleline{color:var(--portfolio-ink)}.route-dot,.portfolio-dot{width:.32rem;height:.32rem;border-radius:999px;background:#171c2b4d;flex-shrink:0}.portfolio-dot{transform:translateY(.2em)}.portfolio-page{min-height:100vh;padding:3rem 1.25rem 5rem;background:radial-gradient(circle at top left,rgba(33,92,255,.15),transparent 28%),#fff;color:var(--portfolio-ink)}.portfolio-hero,.portfolio-sections{width:min(1120px,100%);margin:0 auto}.portfolio-hero{padding:3rem 0 5rem}.portfolio-hero-copy{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:var(--portfolio-grid-gap)}.portfolio-intro,.portfolio-note{font-size:21px;line-height:160%;color:var(--portfolio-ink);font-weight:300}.portfolio-intro{margin:1.75rem 0 1rem;grid-column:1 / span 2}.portfolio-note{margin:0;grid-column:1 / span 2}.portfolio-sections{display:grid;gap:4rem}.portfolio-section{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:var(--portfolio-grid-gap);row-gap:2rem;align-items:start;padding-top:1.5rem}.section-meta{grid-column:1;position:sticky;top:1.5rem}.section-meta h2{margin:0;font-size:30px;line-height:100%;letter-spacing:-.03em;font-weight:500;color:var(--portfolio-ink)}.section-meta p{margin:calc(1.1rem + 1px) 0 0;color:var(--portfolio-ink);font-size:var(--portfolio-copy-size);line-height:var(--portfolio-copy-line-height)}.section-projects{grid-column:2 / span 2;display:grid;gap:2.75rem}.project-card{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--portfolio-grid-gap);align-items:start}.project-visual{order:2;width:100%;aspect-ratio:3 / 2;border-radius:20px;border:1px solid rgba(23,28,43,.18);background:#ffffffd9;box-shadow:0 18px 48px #151e3a14;overflow:hidden}.project-image{width:100%;height:100%;display:block;object-fit:cover}.project-image-link{display:block;width:100%;height:100%}.project-visual-inner,.project-visual-emoji,.project-visual-logo{width:100%;height:100%;border-radius:inherit;display:grid;place-items:center}.project-visual-inner{background:linear-gradient(180deg,rgba(255,255,255,.08),transparent 30%),radial-gradient(circle at 20% 20%,rgba(33,92,255,.25),transparent 30%),linear-gradient(135deg,#0b0e1bf5,#12192ff5)}.project-visual-emoji,.project-visual-logo{background:#f8f8f6}.project-visual-logo{padding:1.75rem;box-sizing:border-box}.project-visual-inner span{font-size:clamp(4rem,8vw,7rem);font-weight:600;line-height:1;letter-spacing:-.06em;color:#ffffffe0}.project-visual-emoji span{font-size:clamp(3.2rem,7.2vw,6rem);line-height:1}.project-logo-image{display:block;width:auto;height:auto;max-width:min(78%,22rem);max-height:min(58%,8rem);object-fit:contain;margin:auto}.project-copy{order:1;padding:.5rem 0}.project-copy h3{margin:0;font-size:var(--portfolio-copy-size);line-height:var(--portfolio-copy-line-height);font-weight:500;color:var(--portfolio-ink)}.project-copy p{margin:.85rem 0 0;font-size:var(--portfolio-copy-size);line-height:var(--portfolio-copy-line-height);color:var(--portfolio-ink)}.project-copy ul,.project-copy ol{margin:.85rem 0 0;padding-left:1.4rem;font-size:var(--portfolio-copy-size);line-height:var(--portfolio-copy-line-height);color:var(--portfolio-ink);list-style-position:outside}.project-copy ul{list-style-type:disc}.project-copy ol{list-style-type:decimal}.project-copy li+li{margin-top:.35rem}.project-copy a{color:var(--portfolio-accent);text-decoration-line:underline;text-decoration-thickness:1px;text-underline-offset:.16em;text-decoration-color:transparent;transition:text-decoration-color .18s ease}.project-copy a:hover{text-decoration-color:currentColor}.project-copy strong,.project-copy em{color:var(--portfolio-ink)}.js [data-fade],.js [data-reveal]{opacity:0}.js:not(.js-preload) [data-fade],.js:not(.js-preload) [data-reveal]{will-change:opacity,transform}.js .is-visible{opacity:1}.js [data-fade=hero]{transition:opacity 1.35s var(--fade-ease) var(--fade-delay, 0s)}.js [data-reveal]{transition:opacity 1.1s var(--fade-ease) var(--fade-delay, 0s)}@media(prefers-reduced-motion:reduce){.js [data-fade],.js [data-reveal]{opacity:1;transition:none}}@media(max-width:920px){.portfolio-hero-copy,.portfolio-section{grid-template-columns:repeat(2,minmax(0,1fr))}.portfolio-intro,.portfolio-note,.section-meta,.section-projects{grid-column:1 / -1}.section-meta{position:static}}@media(max-width:720px){.portfolio-hero-copy,.portfolio-section,.project-card{grid-template-columns:1fr}.portfolio-section{row-gap:4.2rem;padding-top:3rem}.section-projects{grid-column:1;gap:4.9rem}.project-card{gap:2.7rem}.section-meta p{margin-top:2rem}.project-copy{padding:0}.project-copy p:last-child{margin-bottom:0}}@media(max-width:640px){.portfolio-page{padding-inline:1rem}.portfolio-hero{padding:1rem 0 3rem}}
