@import"https://fonts.googleapis.com/css2?family=DM+Sans:opsz,wght@14,400;14,500&family=IBM+Plex+Mono:wght@400&family=Instrument+Serif:ital@0;1&display=swap";.portfolio-2027{color-scheme:dark;--p27-color-bg: #080808;--p27-color-text: #efefef;--p27-color-secondary: #ababab;--p27-color-auxiliary: #7d7d7d;--p27-color-rule: #2a2a2a;--p27-color-primary-hover: #d6d6d6;--p27-font-sans: "DM Sans", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;--p27-font-serif: "Instrument Serif", Georgia, "Times New Roman", serif;--p27-font-mono: "IBM Plex Mono", ui-monospace, "Courier New", monospace;--p27-weight-regular: 400;--p27-weight-medium: 500;--p27-text-small: .875rem;--p27-text-body: clamp(1rem, .95rem + .25vw, 1.1875rem);--p27-text-editorial: clamp(1.5rem, 1.25rem + .5vw, 1.75rem);--p27-leading-body: 1.55;--p27-leading-heading: 1.1;--p27-space-1: .25rem;--p27-space-2: .5rem;--p27-space-3: .75rem;--p27-space-4: 1rem;--p27-space-5: 1.25rem;--p27-space-6: 1.5rem;--p27-space-7: 1.75rem;--p27-space-8: 2rem;--p27-space-10: 2.5rem;--p27-space-12: 3rem;--p27-space-16: 4rem;--p27-width-frame: 100rem;--p27-width-content: 56.25rem;--p27-width-reading: 40rem;--p27-width-closing: 48.125rem;--p27-page-gutter: clamp(1.25rem, 6.25vw, 3rem);--p27-grid-gap: 1rem;--p27-hairline: 1px;--p27-header-desktop: 4rem;--p27-header-compact: 3.5rem;--p27-focus-width: 2px;--p27-focus-offset: 4px}@media (min-width: 48rem){.portfolio-2027{--p27-page-gutter: clamp(3rem, 1.07358rem + 4.01338vw, 4.5rem);--p27-grid-gap: 1.5rem}}@media (min-width: 85.375rem){.portfolio-2027{--p27-page-gutter: clamp(4.5rem, -7.55294rem + 14.11765vw, 6rem)}}@media (min-width: 96rem){.portfolio-2027{--p27-page-gutter: clamp(6rem, -10rem + 16.66667vw, 10rem)}}.portfolio-2027{isolation:isolate;min-inline-size:0;background:var(--p27-color-bg);color:var(--p27-color-text);font-family:var(--p27-font-sans);font-size:var(--p27-text-body);font-weight:var(--p27-weight-regular);font-optical-sizing:none;font-variation-settings:"opsz" 14;line-height:var(--p27-leading-body);text-align:start}.portfolio-2027,.portfolio-2027 *,.portfolio-2027 *:before,.portfolio-2027 *:after{box-sizing:border-box}.portfolio-2027 :where(h1,h2,h3,h4,h5,h6,p,figure,blockquote,ul,ol){margin:0}.portfolio-2027 :where(button,input,textarea,select){font:inherit;color:inherit}.portfolio-2027 :where(img,svg,video,canvas){max-inline-size:100%}.portfolio-2027 :where(img,video){block-size:auto}.portfolio-2027 :where(a){color:inherit;text-underline-offset:.2em}.portfolio-2027 :focus-visible{outline:var(--p27-focus-width) solid var(--p27-color-text);outline-offset:var(--p27-focus-offset)}.portfolio-2027::selection,.portfolio-2027 ::selection{background:var(--p27-color-text);color:var(--p27-color-bg)}.portfolio-2027 .p27-container{inline-size:min(calc(100% - 2 * var(--p27-page-gutter)),var(--p27-width-frame));margin-inline:auto;min-inline-size:0}.portfolio-2027 .p27-reading{max-inline-size:var(--p27-width-reading);overflow-wrap:break-word}.portfolio-2027 .p27-serif{font-family:var(--p27-font-serif);font-style:italic;font-variation-settings:normal}.portfolio-2027 .p27-mono{font-family:var(--p27-font-mono);font-variation-settings:normal}@media (prefers-reduced-motion: reduce){.portfolio-2027,.portfolio-2027 *,.portfolio-2027 *:before,.portfolio-2027 *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.portfolio-2027 .p27-work{overflow-x:clip;--work-top: 5.0625rem;--work-heading-gap: 2rem;--work-heading-bottom: 5rem;--work-grid-gap: clamp(6rem, calc(16.667vw - 10rem) , 10rem);--work-grid-top: 2.1875rem;--work-grid-bottom: 5.1875rem;--work-bottom: 6.4375rem;--work-name-gap: 3.5rem;--work-description-gap: 3rem;--work-class-gap: 5rem;--work-cap-gap: 1rem;--work-tech-gap: 3rem;--work-action-gap: 3.5rem;--work-title: 3.5rem;--work-accent: 4rem;--work-name: 4rem;--work-description-size: 1.1875rem;--work-description-line: 1.8125rem;--work-description-min: 3.625rem}.portfolio-2027 .p27-work-frame{position:relative;padding-block-end:var(--work-bottom)}.portfolio-2027 :is(.p27-work-boundary,.p27-work-grid-top,.p27-work-grid-bottom){block-size:var(--p27-hairline);background:var(--p27-color-rule)}.portfolio-2027 .p27-work-heading{padding-block:var(--work-top) var(--work-heading-bottom)}.portfolio-2027 .p27-work-index{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-size:.75rem;line-height:1.125rem;letter-spacing:.5px;color:var(--p27-color-secondary)}.portfolio-2027 .p27-work-index>p{min-inline-size:0;overflow-wrap:anywhere}.portfolio-2027 .p27-work-title{display:flex;align-items:baseline;flex-wrap:wrap;column-gap:1.125rem;margin-block-start:var(--work-heading-gap);font-size:var(--work-title);line-height:calc(var(--work-title) + .5rem);font-weight:400;letter-spacing:-2px}.portfolio-2027 .p27-work-title>span{max-inline-size:100%;overflow-wrap:anywhere}.portfolio-2027 .p27-work-title .p27-serif{font-size:var(--work-accent);line-height:calc(var(--work-accent) + .5rem);letter-spacing:-1px}.portfolio-2027 .p27-work-grid{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--work-grid-gap);padding-block:calc(var(--work-grid-top) + 1px) calc(var(--work-grid-bottom) + 1px)}.portfolio-2027 .p27-work-grid-top{position:absolute;inset:0 0 auto}.portfolio-2027 .p27-work-grid-bottom{position:absolute;inset:auto 0 0}.portfolio-2027 .p27-work-divider{position:absolute;inset:0 auto 0 50%;inline-size:1px;background:var(--p27-color-rule)}.portfolio-2027 .p27-work-rail{position:absolute;inset-block:0 2.75rem;inline-size:1px;background:var(--p27-color-rule)}.portfolio-2027 .p27-work-rail-start{inset-inline-start:-1.5rem}.portfolio-2027 .p27-work-rail-end{inset-inline-end:-1.5rem}.portfolio-2027 .p27-project{display:grid;grid-template-rows:subgrid;grid-row:span 7;min-inline-size:0;overflow-wrap:anywhere}.portfolio-2027 .p27-project-category{display:flex;gap:1.5rem;font-size:.75rem;line-height:1.125rem;letter-spacing:.5px;color:var(--p27-color-secondary)}.portfolio-2027 .p27-project h3{margin-block-start:var(--work-name-gap);font-size:var(--work-name);line-height:calc(var(--work-name) + .5rem);font-weight:400;letter-spacing:-2.4px}.portfolio-2027 .p27-project-description{margin-block-start:var(--work-description-gap);max-inline-size:37.5rem;min-block-size:var(--work-description-min);font-size:var(--work-description-size);line-height:var(--work-description-line);letter-spacing:-.1px}.portfolio-2027 .p27-project-classification{margin-block-start:var(--work-class-gap);font-size:.75rem;line-height:1.125rem;letter-spacing:.5px;color:var(--p27-color-auxiliary)}.portfolio-2027 .p27-project-capabilities{margin-block-start:var(--work-cap-gap);max-inline-size:37.5rem;font-size:1rem;line-height:1.5625rem;color:var(--p27-color-secondary)}.portfolio-2027 .p27-project-technologies{margin-block-start:var(--work-tech-gap);max-inline-size:37.5rem;font-size:.75rem;line-height:1.125rem;letter-spacing:.5px;color:var(--p27-color-secondary)}.portfolio-2027 .p27-project-actions{display:flex;flex-wrap:wrap;gap:1.5rem;margin-block-start:var(--work-action-gap)}.portfolio-2027 .p27-project-actions a{display:inline-flex;align-items:center;justify-content:center;gap:1.5rem;min-block-size:3.25rem;padding:1rem;font-size:.9375rem;line-height:1.25rem;font-weight:500;max-inline-size:100%}.portfolio-2027 .p27-project-actions a:active{color:var(--p27-color-secondary)}@media (hover: hover){.portfolio-2027 .p27-project-actions a:hover{text-decoration:underline}}.portfolio-2027 .p27-construction{position:absolute;inset-block-start:0;inset-inline-start:-1.5rem;z-index:3;pointer-events:none;max-inline-size:none}@media (max-width: 106rem) and (min-width: 64rem){.portfolio-2027 .p27-work{--work-top: 4rem;--work-heading-gap: 1.75rem;--work-heading-bottom: 4rem;--work-grid-top: 2rem;--work-grid-bottom: 4rem;--work-bottom: 4rem;--work-name-gap: 3rem;--work-description-gap: 2.5rem;--work-class-gap: 3.5rem;--work-cap-gap: .75rem;--work-tech-gap: 2.5rem;--work-action-gap: 3rem;--work-title: 3rem;--work-accent: 3.5rem;--work-name: 3.5rem;--work-description-size: 1.125rem;--work-description-line: 1.75rem;--work-description-min: 5.25rem}.portfolio-2027 .p27-work-title{letter-spacing:-1.6px}.portfolio-2027 .p27-work-title .p27-serif{letter-spacing:-.8px}.portfolio-2027 .p27-project h3{letter-spacing:-2px}.portfolio-2027 .p27-project-description{letter-spacing:0}}@media (max-width: 89.999rem) and (min-width: 64rem){.portfolio-2027 .p27-work{--work-title: 2.75rem;--work-accent: 3.25rem;--work-name: 3.25rem;--work-name-gap: 2.5rem;--work-description-gap: 2rem;--work-class-gap: 2.5rem;--work-tech-gap: 2rem;--work-action-gap: 2.5rem}.portfolio-2027 .p27-work-title{letter-spacing:-1.4px}.portfolio-2027 .p27-project h3{letter-spacing:-1.8px}}@media (min-width: 64rem){.portfolio-2027 .p27-work{--work-rhythm: clamp(.75rem, calc(4.166667svh - 1.25rem), 1.5rem);--work-top: calc(3 * var(--work-rhythm));--work-heading-gap: calc(1.5 * var(--work-rhythm));--work-heading-bottom: calc(3 * var(--work-rhythm));--work-grid-top: calc(1.5 * var(--work-rhythm));--work-grid-bottom: calc(3 * var(--work-rhythm));--work-bottom: calc(3 * var(--work-rhythm));--work-name-gap: calc(2.5 * var(--work-rhythm));--work-description-gap: calc(2 * var(--work-rhythm));--work-class-gap: calc(3 * var(--work-rhythm));--work-cap-gap: calc(.5 * var(--work-rhythm));--work-tech-gap: calc(2 * var(--work-rhythm));--work-action-gap: calc(2 * var(--work-rhythm))}}@media (max-width: 63.999rem){.portfolio-2027 .p27-work{--work-top: 3rem;--work-heading-gap: 1.75rem;--work-heading-bottom: 3.5rem;--work-grid-top: 2rem;--work-grid-bottom: 3rem;--work-bottom: 4rem;--work-name-gap: 2rem;--work-description-gap: 1.5rem;--work-class-gap: 2rem;--work-cap-gap: .75rem;--work-tech-gap: 1.5rem;--work-action-gap: 2rem;--work-title: 2.75rem;--work-accent: 3.25rem;--work-name: 3.375rem;--work-description-size: 1.125rem;--work-description-line: 1.75rem;--work-description-min: 0px}.portfolio-2027 .p27-work-grid{grid-template-columns:minmax(0,1fr);row-gap:5.0625rem}.portfolio-2027 .p27-work-divider,.portfolio-2027 .p27-work-rail{display:none}.portfolio-2027 .p27-project{display:block;grid-row:auto}.portfolio-2027 .p27-project+.p27-project{position:relative}.portfolio-2027 .p27-project+.p27-project:before{content:"";position:absolute;inset:-2.5625rem 0 auto;block-size:1px;background:var(--p27-color-rule)}.portfolio-2027 .p27-work-title{letter-spacing:-1.4px}.portfolio-2027 .p27-work-title .p27-serif{letter-spacing:-.8px}.portfolio-2027 .p27-project h3{line-height:4rem;letter-spacing:-1.8px}.portfolio-2027 .p27-project-description{letter-spacing:0}}@media (max-width: 37.499rem){.portfolio-2027 .p27-work{--work-top: 2.5rem;--work-heading-gap: 1.5rem;--work-heading-bottom: 2.5rem;--work-grid-top: 1.75rem;--work-grid-bottom: 2rem;--work-bottom: 3rem;--work-name-gap: 1.5rem;--work-class-gap: 1.5rem;--work-cap-gap: .5rem;--work-action-gap: 1.5rem;--work-title: 2.25rem;--work-accent: 2.625rem;--work-name: 2.25rem;--work-description-size: 1rem;--work-description-line: 1.5625rem}.portfolio-2027 .p27-work-title{flex-direction:column;line-height:2.625rem;letter-spacing:-1px}.portfolio-2027 .p27-work-title .p27-serif{line-height:3rem;letter-spacing:-.5px}.portfolio-2027 .p27-project h3{line-height:2.75rem;letter-spacing:-1.2px}.portfolio-2027 .p27-project-actions{gap:1rem}.portfolio-2027 .p27-project-actions a{gap:1rem;padding-inline:.5rem}}@media (max-width: 22.499rem){.portfolio-2027 .p27-work{--work-title: 2.125rem;--work-accent: 2.5rem;--work-name: 2.125rem}.portfolio-2027 .p27-work-title{line-height:2.5rem}.portfolio-2027 .p27-work-title .p27-serif{line-height:2.875rem;letter-spacing:-.4px}.portfolio-2027 .p27-project h3{line-height:2.625rem;letter-spacing:-1px}.portfolio-2027 .p27-project-actions{flex-direction:column;align-items:flex-start;gap:.75rem}}.portfolio-2027 .p27-work:is([data-construction=armed],[data-construction=waiting]) .p27-work-frame:after{content:"";position:absolute;inset:0 -1.5rem;z-index:3;background:var(--p27-color-bg);pointer-events:none}@media (prefers-reduced-motion: reduce){.portfolio-2027 .p27-work .p27-work-frame:after{content:none}}.portfolio-2027 .p27-story{--story-reading: 42.5rem;--story-dates: 22.5rem;--story-tail: 7.5rem;--story-top: 6rem;--story-bottom: 8rem;--story-title-gap: 4rem;--story-heading-bottom: 6rem;--story-paragraph-gap: 2rem;--story-chapter-top: 2.5rem;--story-chapter-bottom: 5rem;--story-title: 3.5rem;--story-accent: 4rem;--story-title-tracking: -2px;--story-accent-tracking: -1px;--story-body: 1.25rem;--story-line: 1.9375rem;--story-reflection: 2.125rem;--story-reflection-line: 2.625rem;padding-block:var(--story-top) var(--story-bottom)}.portfolio-2027 .p27-story-index{display:flex;justify-content:space-between;flex-wrap:wrap;gap:.75rem 1.5rem;color:var(--p27-color-auxiliary);font-size:.75rem;line-height:1.125rem;letter-spacing:.5px}.portfolio-2027 .p27-story-title{display:flex;align-items:center;flex-wrap:wrap;gap:0 1rem;margin-block-start:var(--story-title-gap);padding-block-end:var(--story-heading-bottom);font-size:var(--story-title);line-height:calc(var(--story-title) + .5rem);font-weight:400;letter-spacing:var(--story-title-tracking);overflow-wrap:anywhere}.portfolio-2027 .p27-story-title .p27-serif{font-size:var(--story-accent);line-height:calc(var(--story-accent) + .5rem);letter-spacing:var(--story-accent-tracking)}.portfolio-2027 .p27-story-chapter{display:grid;align-items:start;grid-template-columns:minmax(0,1fr) max(2rem,calc(100% - var(--story-reading) - var(--story-dates) - var(--story-tail))) var(--story-dates) var(--story-tail);row-gap:var(--story-paragraph-gap);border-block-start:var(--p27-hairline) solid var(--p27-color-rule);padding-block:var(--story-chapter-top) var(--story-chapter-bottom);color:var(--p27-color-secondary);font-size:var(--story-body);line-height:var(--story-line);letter-spacing:-.1px;overflow-wrap:anywhere}.portfolio-2027 .p27-story-chapter:last-child{border-block-end:var(--p27-hairline) solid var(--p27-color-rule)}.portfolio-2027 .p27-story-chapter>p{grid-column:1;min-inline-size:0}.portfolio-2027 .p27-story-emphasis{color:var(--p27-color-text)}.portfolio-2027 .p27-story-reflection{color:var(--p27-color-text);font-size:var(--story-reflection);line-height:var(--story-reflection-line);letter-spacing:0}.portfolio-2027 .p27-story-milestone{grid-column:3;grid-row:1 / span 2;min-inline-size:0;letter-spacing:0}.portfolio-2027 .p27-story-return>p:last-child{grid-row:3}.portfolio-2027 .p27-story-return .p27-story-milestone{grid-row:3}.portfolio-2027 .p27-story-perspectives .p27-story-milestone{grid-row:1 / span 3}.portfolio-2027 .p27-story-date{display:flex;align-items:center;flex-wrap:wrap;font-size:.75rem;line-height:1.125rem;letter-spacing:.5px}.portfolio-2027 .p27-story-date time{color:var(--p27-color-text);font-size:1.75rem;line-height:2.25rem}.portfolio-2027 .p27-story-date span{white-space:pre-wrap}.portfolio-2027 .p27-story-note{margin-block-start:1rem;font-size:1rem;line-height:1.5625rem}@media (max-width: 106rem){.portfolio-2027 .p27-story{--story-reading: 40rem;--story-dates: 20rem;--story-tail: 5rem;--story-top: 5rem;--story-title-gap: 3.5rem;--story-heading-bottom: 5rem;--story-paragraph-gap: 1.75rem;--story-chapter-bottom: 4.5rem;--story-title: 3rem;--story-accent: 3.5rem;--story-title-tracking: -1.6px;--story-accent-tracking: -.8px;--story-body: 1.1875rem;--story-line: 1.8125rem;--story-reflection: 2rem;--story-reflection-line: 2.5rem}}@media (max-width: 89.999rem){.portfolio-2027 .p27-story{--story-reading: 37.5rem;--story-dates: 17.5rem;--story-tail: 5.375rem;--story-heading-bottom: 4rem;--story-chapter-bottom: 4rem;--story-title: 2.75rem;--story-accent: 3.25rem;--story-title-tracking: -1.4px;--story-body: 1.125rem;--story-line: 1.75rem;--story-reflection: 1.875rem;--story-reflection-line: 2.375rem}}@media (max-width: 63.999rem){.portfolio-2027 .p27-story{--story-top: 4rem;--story-bottom: 6rem;--story-title-gap: 3rem;--story-chapter-top: 2rem}.portfolio-2027 .p27-story-chapter{display:flex;flex-direction:column}.portfolio-2027 .p27-story-chapter>:is(p,.p27-story-milestone){inline-size:min(100%,var(--story-reading))}}@media (max-width: 37.499rem){.portfolio-2027 .p27-story{--story-top: 3.5rem;--story-bottom: 4rem;--story-title-gap: 2.5rem;--story-heading-bottom: 3rem;--story-paragraph-gap: 1.5rem;--story-chapter-top: 1.75rem;--story-chapter-bottom: 3.5rem;--story-title: 2.25rem;--story-accent: 2.625rem;--story-title-tracking: -1px;--story-accent-tracking: -.5px;--story-body: 1.0625rem;--story-line: 1.625rem;--story-reflection: 1.75rem;--story-reflection-line: 2.25rem}.portfolio-2027 .p27-story-title{flex-direction:column;align-items:flex-start;line-height:2.625rem}.portfolio-2027 .p27-story-title .p27-serif{line-height:3rem}}@media (max-width: 22.499rem){.portfolio-2027 .p27-story{--story-title: 2.125rem;--story-accent: 2.5rem;--story-body: 1rem;--story-line: 1.5625rem;--story-reflection: 1.625rem;--story-reflection-line: 2rem;--story-chapter-bottom: 3rem}.portfolio-2027 .p27-story-title{line-height:2.5rem}.portfolio-2027 .p27-story-title .p27-serif{line-height:2.875rem}}.portfolio-2027 .p27-capabilities{--cap-top: 6rem;--cap-bottom: 8rem;--cap-main-top: 4rem;--cap-title: 3.5rem;--cap-accent: 4rem;--cap-title-width: 30rem;--cap-column-gap: 5rem;--cap-inset: 5rem;--cap-number-width: 3rem;--cap-number-gap: 2rem;--cap-number: 1.75rem;--cap-number-line: 2.25rem;--cap-category: 2.25rem;--cap-category-line: 2.75rem;--cap-description: 1.1875rem;--cap-description-line: 1.8125rem;--cap-technologies: 1.5rem;--cap-technologies-line: 2.25rem;padding-block:var(--cap-top) var(--cap-bottom)}.portfolio-2027 .p27-capabilities-index{overflow-wrap:anywhere;font-size:.75rem;line-height:1.125rem;letter-spacing:.5px;color:var(--p27-color-secondary);padding-block-end:1.875rem;border-block-end:var(--p27-hairline) solid var(--p27-color-rule)}.portfolio-2027 .p27-capabilities-main{display:grid;grid-template-columns:minmax(0,var(--cap-title-width)) minmax(0,1fr);column-gap:var(--cap-column-gap);padding-block-start:var(--cap-main-top)}.portfolio-2027 .p27-capabilities-title{display:flex;flex-direction:column;min-inline-size:0;font-size:var(--cap-title);line-height:calc(var(--cap-title) + .5rem);font-weight:400;letter-spacing:-2px;overflow-wrap:anywhere}.portfolio-2027 .p27-capabilities-title .p27-serif{font-size:var(--cap-accent);line-height:calc(var(--cap-accent) + .5rem);letter-spacing:-1px}.portfolio-2027 .p27-capabilities-list{padding:0;list-style:none;min-inline-size:0;border-block-end:var(--p27-hairline) solid var(--p27-color-rule)}.portfolio-2027 .p27-capability{display:flex;flex-direction:column;gap:1.25rem;padding-block:2rem;border-block-start:var(--p27-hairline) solid var(--p27-color-rule);overflow-wrap:anywhere;letter-spacing:-.1px}.portfolio-2027 .p27-capability-heading{display:grid;grid-template-columns:var(--cap-number-width) minmax(0,1fr);column-gap:var(--cap-number-gap);align-items:center}.portfolio-2027 .p27-capability-number{color:var(--p27-color-secondary);font-size:var(--cap-number);line-height:var(--cap-number-line);letter-spacing:.5px}.portfolio-2027 .p27-capability h3{font-size:var(--cap-category);line-height:var(--cap-category-line);font-weight:400;letter-spacing:-.5px}.portfolio-2027 .p27-capability-description{margin-inline-start:var(--cap-inset);max-inline-size:53.75rem;font-size:var(--cap-description);line-height:var(--cap-description-line);color:var(--p27-color-secondary)}.portfolio-2027 .p27-capability-technologies{margin-inline-start:var(--cap-inset);font-size:var(--cap-technologies);line-height:var(--cap-technologies-line)}@media (max-width: 106rem) and (min-width: 64rem){.portfolio-2027 .p27-capabilities{--cap-top: 5rem;--cap-main-top: 3.5rem;--cap-title: 3rem;--cap-accent: 3.5rem;--cap-title-width: 25rem;--cap-column-gap: 4rem;--cap-category: 2rem;--cap-category-line: 2.5rem;--cap-description: 1.125rem;--cap-description-line: 1.75rem;--cap-technologies: 1.375rem;--cap-technologies-line: 2rem}}@media (max-width: 89.999rem) and (min-width: 64rem){.portfolio-2027 .p27-capabilities{--cap-title: 2.75rem;--cap-accent: 3.25rem;--cap-title-width: 22.5rem;--cap-column-gap: 3rem;--cap-inset: 3.75rem;--cap-number-width: 2.25rem;--cap-number-gap: 1.5rem;--cap-number: 1.625rem;--cap-number-line: 2.125rem;--cap-category: 1.875rem;--cap-category-line: 2.375rem}}@media (max-width: 63.999rem){.portfolio-2027 .p27-capabilities{--cap-top: 4rem;--cap-bottom: 6rem;--cap-main-top: 3rem;--cap-title: 2.75rem;--cap-accent: 3.25rem;--cap-inset: 3.75rem;--cap-number-width: 2.25rem;--cap-number-gap: 1.5rem;--cap-number: 1.625rem;--cap-number-line: 2.125rem;--cap-category: 1.875rem;--cap-category-line: 2.375rem;--cap-description: 1.125rem;--cap-description-line: 1.75rem;--cap-technologies: 1.375rem;--cap-technologies-line: 2rem}.portfolio-2027 .p27-capabilities-main{grid-template-columns:minmax(0,1fr);row-gap:3.5rem}.portfolio-2027 .p27-capabilities-title{flex-direction:row;flex-wrap:wrap;gap:0 .75rem;letter-spacing:-1px}}@media (max-width: 37.499rem){.portfolio-2027 .p27-capabilities{--cap-top: 3.5rem;--cap-bottom: 4rem;--cap-main-top: 2.5rem;--cap-title: 2.25rem;--cap-accent: 2.625rem;--cap-inset: 0rem;--cap-number: 1.375rem;--cap-number-line: 1.875rem;--cap-category: 1.5rem;--cap-category-line: 2rem;--cap-description: 1.0625rem;--cap-description-line: 1.625rem;--cap-technologies: 1.25rem;--cap-technologies-line: 1.875rem}.portfolio-2027 .p27-capabilities-index{padding-block-end:1.5rem}.portfolio-2027 .p27-capabilities-main{row-gap:2.5rem}.portfolio-2027 .p27-capabilities-title{flex-direction:column;line-height:2.625rem}.portfolio-2027 .p27-capabilities-title .p27-serif{line-height:3rem}.portfolio-2027 .p27-capability{padding-block:1.75rem}.portfolio-2027 .p27-capability-heading{grid-template-columns:minmax(0,1fr);row-gap:.75rem}}@media (max-width: 22.499rem){.portfolio-2027 .p27-capabilities{--cap-title: 2.125rem;--cap-accent: 2.5rem}.portfolio-2027 .p27-capabilities-title{line-height:2.5rem}.portfolio-2027 .p27-capabilities-title .p27-serif{line-height:2.875rem}}.portfolio-2027 .p27-capabilities{--skills-title-offset: 6px;--skills-title-duration: .3s;--skills-rule-duration: .55s;--skills-rule-stagger: .11s}.portfolio-2027 .p27-capabilities[data-skills-title=waiting] .p27-capabilities-title{transform:translateY(var(--skills-title-offset))}.portfolio-2027 .p27-capabilities[data-skills-title=playing] .p27-capabilities-title{animation:p27-skills-title-in var(--skills-title-duration) cubic-bezier(.22,1,.36,1) both}.portfolio-2027 .p27-capability{position:relative}.portfolio-2027 .p27-capabilities:is([data-skills-lines=waiting],[data-skills-lines=playing]) .p27-capability{border-block-start-color:transparent}.portfolio-2027 .p27-capabilities:is([data-skills-lines=waiting],[data-skills-lines=playing]) .p27-capability:before{content:"";position:absolute;inset:-1px 0 auto;block-size:var(--p27-hairline);background:var(--p27-color-rule);transform:scaleX(0);transform-origin:left center;pointer-events:none}.portfolio-2027 .p27-capabilities[data-skills-lines=playing] .p27-capability:before{animation:p27-skills-rule-in var(--skills-rule-duration) cubic-bezier(.2,.8,.2,1) both}.portfolio-2027 .p27-capabilities[data-skills-lines=playing] .p27-capability:nth-child(2):before{animation-delay:var(--skills-rule-stagger)}.portfolio-2027 .p27-capabilities[data-skills-lines=playing] .p27-capability:nth-child(3):before{animation-delay:calc(2 * var(--skills-rule-stagger))}@keyframes p27-skills-title-in{0%{transform:translateY(var(--skills-title-offset))}to{transform:translateY(0)}}@keyframes p27-skills-rule-in{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@media (hover: hover) and (pointer: fine){.portfolio-2027 .p27-capability-number{transition:color .18s ease-out}.portfolio-2027 .p27-capability:hover .p27-capability-number{color:var(--p27-color-text)}}@media (max-width: 63.999rem){.portfolio-2027 .p27-capabilities{--skills-title-offset: 4px;--skills-title-duration: .22s;--skills-rule-duration: .45s;--skills-rule-stagger: 0ms}}@media (prefers-reduced-motion: reduce){.portfolio-2027 .p27-capabilities .p27-capabilities-title{transform:none!important}.portfolio-2027 .p27-capabilities[data-skills-lines] .p27-capability{border-block-start-color:var(--p27-color-rule)}.portfolio-2027 .p27-capabilities[data-skills-lines] .p27-capability:before{content:none}}.portfolio-2027 .p27-contact{--contact-top: 6rem;--contact-bottom: 5rem;--contact-headline-gap: 5.875rem;--contact-title: clamp(11rem, 12.5vw, 15rem);--contact-title-line: calc(var(--contact-title) + 1.5rem);--contact-content-gap: 7rem;--contact-column-gap: clamp(4rem, 10.416667vw, 12.5rem);--contact-label-gap: 1.25rem;--contact-email: clamp(2rem, 2.291667vw, 2.75rem);--contact-email-line: calc(var(--contact-email) + .625rem);--contact-message: 1.375rem;--contact-message-line: 2rem;--contact-links-top: 6.75rem;--contact-links-gap: 4rem;--contact-footer-gap: 6.625rem;padding-block:var(--contact-top) var(--contact-bottom)}.portfolio-2027 :is(.p27-contact-index,.p27-contact-label){font-size:.75rem;line-height:1.125rem;letter-spacing:.5px;color:var(--p27-color-secondary)}.portfolio-2027 .p27-contact-title{margin-block-start:var(--contact-headline-gap);font-size:var(--contact-title);line-height:var(--contact-title-line);font-weight:400;letter-spacing:-1px;overflow-wrap:anywhere}.portfolio-2027 .p27-contact-content{display:grid;grid-template-columns:minmax(0,820fr) minmax(0,580fr);column-gap:var(--contact-column-gap);margin-block-start:var(--contact-content-gap);align-items:start}.portfolio-2027 .p27-contact-primary{min-inline-size:0}.portfolio-2027 .p27-contact-email{display:block;inline-size:fit-content;max-inline-size:100%;min-block-size:2.75rem;margin-block-start:var(--contact-label-gap);padding-block:.5rem;font-size:var(--contact-email);line-height:var(--contact-email-line);letter-spacing:-.1px;overflow-wrap:anywhere;text-decoration:underline;text-decoration-thickness:1px}.portfolio-2027 .p27-contact-message{min-inline-size:0;color:var(--p27-color-secondary);font-size:var(--contact-message);line-height:var(--contact-message-line);letter-spacing:-.1px;overflow-wrap:anywhere}.portfolio-2027 .p27-contact-links{display:flex;flex-wrap:wrap;align-items:flex-start;gap:.5rem var(--contact-links-gap);margin-block-start:var(--contact-links-top)}.portfolio-2027 .p27-contact-links a{display:inline-flex;align-items:center;gap:.5rem;min-block-size:2.75rem;max-inline-size:100%;padding-block:.4375rem;font-size:1.25rem;line-height:1.875rem;letter-spacing:-.1px;overflow-wrap:anywhere}.portfolio-2027 .p27-contact-links a>[aria-hidden]{color:var(--p27-color-secondary);font-size:1.125rem;line-height:1.75rem}.portfolio-2027 .p27-contact-links a:focus-visible .p27-contact-link-label{text-decoration:underline}.portfolio-2027 .p27-contact a:active{color:var(--p27-color-secondary)}.portfolio-2027 .p27-contact-links a:active .p27-contact-link-label{text-decoration:underline}@media (hover: hover) and (pointer: fine){.portfolio-2027 .p27-contact-email:hover{text-decoration-thickness:2px}.portfolio-2027 .p27-contact-links a:hover .p27-contact-link-label{text-decoration:underline}}.portfolio-2027 .p27-contact-footer{margin-block-start:var(--contact-footer-gap);padding-block-start:1.75rem;border-block-start:var(--p27-hairline) solid var(--p27-color-rule);color:var(--p27-color-auxiliary);font-size:.75rem;line-height:1.125rem;letter-spacing:.5px;overflow-wrap:anywhere}@media (max-width: 106rem) and (min-width: 64rem){.portfolio-2027 .p27-contact{--contact-top: 5rem;--contact-bottom: 4rem;--contact-headline-gap: 5rem;--contact-content-gap: 5rem;--contact-links-top: 5rem;--contact-footer-gap: 5rem;--contact-message: 1.25rem;--contact-message-line: 1.875rem}}@media (max-width: 63.999rem){.portfolio-2027 .p27-contact{--contact-top: 4rem;--contact-bottom: 4rem;--contact-headline-gap: 4rem;--contact-title: 8.5rem;--contact-title-line: 9.5rem;--contact-content-gap: 4rem;--contact-label-gap: 1rem;--contact-email: 2rem;--contact-email-line: 2.75rem;--contact-message: 1.25rem;--contact-message-line: 1.875rem;--contact-links-top: 3.5rem;--contact-links-gap: 2.5rem;--contact-footer-gap: 5rem}.portfolio-2027 .p27-contact-content{grid-template-columns:minmax(0,1fr);row-gap:2rem}}@media (max-width: 39.999rem){.portfolio-2027 .p27-contact{--contact-top: 3.5rem;--contact-bottom: 3rem;--contact-headline-gap: 3rem;--contact-title: 5.5rem;--contact-title-line: 6.5rem;--contact-content-gap: 3.5rem;--contact-email: 1.5rem;--contact-email-line: 2.125rem;--contact-message: 1.0625rem;--contact-message-line: 1.625rem;--contact-links-top: 3rem;--contact-footer-gap: 4rem}.portfolio-2027 .p27-contact-content{row-gap:1.75rem}.portfolio-2027 .p27-contact-links{flex-direction:column;align-items:stretch}}@media (max-width: 22.499rem){.portfolio-2027 .p27-contact{--contact-title: 4.75rem;--contact-title-line: 5.75rem;--contact-email: 1.375rem;--contact-email-line: 2rem}}.portfolio-2027{--p27-header-height: var(--p27-header-desktop)}.portfolio-2027:has(.p27-header[data-compact=true]){--p27-header-height: var(--p27-header-compact)}.portfolio-2027 [hidden]{display:none!important}.portfolio-2027 a{text-decoration:none}.portfolio-2027 button{cursor:pointer}.portfolio-2027 .p27-target{scroll-margin-block-start:calc(var(--p27-header-height) + 1rem)}.portfolio-2027 .p27-skip{position:fixed;z-index:40;inset:0 auto auto 1rem;max-inline-size:calc(100% - 2rem);overflow-wrap:anywhere;padding:.75rem 1rem;background:var(--p27-color-text);color:var(--p27-color-bg);transform:translateY(-150%)}.portfolio-2027 .p27-skip:focus{transform:none}.portfolio-2027 .p27-header{position:sticky;inset-block-start:0;z-index:20;background:var(--p27-color-bg);min-block-size:var(--p27-header-desktop)}.portfolio-2027 .p27-header[data-compact=true]{min-block-size:var(--p27-header-compact)}.portfolio-2027 .p27-nav-row{position:relative;display:flex;align-items:center;justify-content:space-between;min-block-size:var(--p27-header-desktop);flex-wrap:wrap}.portfolio-2027 .p27-header[data-compact=true] .p27-nav-row{min-block-size:var(--p27-header-compact)}.portfolio-2027 .p27-header[data-scrolled=true] .p27-nav-row:after{content:"";position:absolute;inset:auto 0 0;block-size:var(--p27-hairline);background:var(--p27-color-rule)}.portfolio-2027 .p27-nav-identity{display:flex;align-items:center;min-block-size:2.75rem;flex-shrink:0;font-size:.75rem;line-height:1.125rem;letter-spacing:.5px;overflow-wrap:anywhere;max-inline-size:100%;color:var(--p27-color-secondary)}.portfolio-2027 .p27-nav-desktop{display:flex;gap:2rem;align-items:center}.portfolio-2027 .p27-nav-desktop :is(a,span){display:flex;align-items:center;min-block-size:2.75rem;padding-inline:.5rem;font-size:.9375rem;line-height:1.375rem;white-space:nowrap;color:var(--p27-color-secondary)}.portfolio-2027 .p27-nav-desktop a span{padding:0}.portfolio-2027 .p27-header a{transition:color .12s ease-out}.portfolio-2027 .p27-header a[aria-current]{color:var(--p27-color-text)}.portfolio-2027 .p27-header a[aria-current]>span:last-child,.portfolio-2027 .p27-nav-identity[aria-current]{text-decoration:underline;text-decoration-thickness:1px}.portfolio-2027 .p27-nav-desktop a[aria-current]>span{color:inherit}@media (hover: hover){.portfolio-2027 .p27-header a:hover{color:var(--p27-color-text);text-decoration:underline}.portfolio-2027 .p27-nav-desktop a:hover>span{color:inherit}}.portfolio-2027 .p27-nav-toggle{display:flex;gap:.5rem;align-items:center;min-block-size:2.75rem;flex-wrap:wrap;min-inline-size:0;max-inline-size:100%;overflow-wrap:anywhere;padding:0 .5rem;border:0;background:none;font-size:.875rem;line-height:1.25rem}.portfolio-2027 .p27-nav-toggle:active{color:var(--p27-color-secondary)}.portfolio-2027 .p27-nav-measure{position:absolute;visibility:hidden;pointer-events:none;inset-inline-end:0;display:flex;align-items:center;gap:9.75rem;inline-size:max-content}.portfolio-2027 .p27-nav-measure .p27-nav-identity{white-space:nowrap;max-inline-size:none}.portfolio-2027 .p27-mobile-disclosure{position:absolute;inset:100% 0 auto;display:grid;grid-template-rows:0fr;visibility:hidden;background:var(--p27-color-bg);pointer-events:none;transition:grid-template-rows .12s cubic-bezier(.2,.8,.2,1),visibility .12s}.portfolio-2027 .p27-mobile-disclosure[data-open=true]{grid-template-rows:1fr;visibility:visible;pointer-events:auto;transition-duration:.16s}.portfolio-2027 .p27-mobile-clip{overflow:hidden;min-block-size:0}.portfolio-2027 .p27-nav-mobile{padding:1rem max(var(--p27-page-gutter),calc((100% - var(--p27-width-frame)) / 2)) 1.5rem;max-block-size:calc(100svh - var(--p27-header-height));overflow-y:auto}.portfolio-2027 .p27-nav-mobile a{display:flex;flex-wrap:wrap;gap:1.25rem;align-items:center;min-block-size:4rem;border-block-end:var(--p27-hairline) solid var(--p27-color-rule);color:var(--p27-color-secondary);font-size:1.5rem;line-height:2rem}.portfolio-2027 .p27-nav-index{inline-size:1.25rem;font-size:.75rem;letter-spacing:.5px}.portfolio-2027 .p27-nav-mobile a>span:last-child{min-inline-size:0;overflow-wrap:anywhere}.portfolio-2027 .p27-hero{--hero-top: 5rem;--hero-reserve: clamp(10.875rem, 19.3svh, 12.875rem);--hero-inset: clamp(1.25rem, calc(46.667svh - 23.875rem) , 7.625rem);--hero-gap: clamp(1.375rem, calc(3.333svh - .25rem) , 2rem);--hero-sans: clamp(4.5rem, calc(4.706vw + .482rem) , 5.5rem);--hero-serif: clamp(7rem, calc(9.412vw - 1.035rem) , 9rem);position:relative;min-block-size:100svh;padding-block-start:var(--hero-top);overflow-x:clip}.portfolio-2027 .p27-hero-frame{position:relative}.portfolio-2027 .p27-hero-main{position:relative;z-index:1;display:flex;justify-content:center;align-items:flex-start;min-block-size:calc(100svh - var(--hero-reserve) - var(--hero-top) - var(--p27-hairline));padding-block:var(--hero-inset) 5rem}.portfolio-2027 .p27-hero-content{display:flex;flex-direction:column;align-items:center;gap:var(--hero-gap);inline-size:min(100%,var(--p27-width-content));text-align:center}.portfolio-2027 .p27-hero-role{font-size:.75rem;line-height:1.125rem;letter-spacing:.5px;color:var(--p27-color-secondary)}.portfolio-2027 .p27-identity{display:flex;flex-direction:column;align-items:center;font-weight:400;inline-size:100%}.portfolio-2027 .p27-first-name{font-size:var(--hero-sans);line-height:calc(var(--hero-sans) + .5rem);letter-spacing:-.04em;margin-block-end:-.5rem;max-inline-size:100%;overflow-wrap:anywhere}.portfolio-2027 .p27-last-name{font-size:var(--hero-serif);line-height:calc(var(--hero-serif) + .5rem);letter-spacing:-.023em;max-inline-size:100%;overflow-wrap:anywhere}.portfolio-2027 .p27-hero-description{overflow-wrap:anywhere;inline-size:min(100%,clamp(37.5rem,calc(7.22vw + 31.335rem),40rem));font-size:clamp(1.0625rem,calc(.5882vw + .5603rem),1.1875rem);line-height:1.53;letter-spacing:-.005em}.portfolio-2027 .p27-hero-actions{display:flex;align-items:center;justify-content:center;gap:2.125rem;flex-wrap:wrap;max-inline-size:100%}.portfolio-2027 .p27-hero-actions a{display:inline-flex;justify-content:center;align-items:center;gap:1.5rem;flex-wrap:wrap;overflow-wrap:anywhere;min-block-size:3.25rem;font-size:.9375rem;line-height:1.25rem;font-weight:500;max-inline-size:100%}.portfolio-2027 a.p27-primary-action{inline-size:13.625rem;background:var(--p27-color-text);color:var(--p27-color-bg);transition:background .15s ease-out}.portfolio-2027 .p27-secondary-action{inline-size:7.25rem;min-inline-size:0}@media (hover: hover){.portfolio-2027 a.p27-primary-action:hover{background:var(--p27-color-primary-hover)}.portfolio-2027 .p27-secondary-action:hover{text-decoration:underline}}.portfolio-2027 .p27-hero-closing{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:.5rem;padding-block:1.6875rem clamp(2.25rem,calc(26.667svh - 12.75rem),5.25rem);text-align:center}.portfolio-2027 .p27-hero-closing:before{content:"";position:absolute;inset-block-start:0;inset-inline-start:50%;transform:translate(-50%);inline-size:100vw;block-size:var(--p27-hairline);background:var(--p27-color-rule);pointer-events:none}.portfolio-2027 .p27-hero-quote{font-size:1.75rem;line-height:2.25rem;max-inline-size:100%;overflow-wrap:anywhere}.portfolio-2027 .p27-hero-support{max-inline-size:40.625rem;font-size:1rem;line-height:1.5625rem;color:var(--p27-color-secondary)}.portfolio-2027 .p27-ascii-viewport{position:absolute;inset:0 -1.5rem;overflow:hidden;pointer-events:none}.portfolio-2027 .p27-ascii{position:absolute;z-index:0;pointer-events:none;inset:.5rem auto auto 50%;transform:translate(-50%);inline-size:100%;block-size:calc(100svh - var(--hero-reserve) - var(--hero-top) - 1.75rem);max-inline-size:none}@media (min-width: 68.75rem){.portfolio-2027 .p27-hero{--hero-available: calc(100svh - var(--p27-header-height));min-block-size:var(--hero-available);padding-block-start:0}.portfolio-2027 .p27-hero-frame{display:flex;flex-direction:column;min-block-size:var(--hero-available)}.portfolio-2027 .p27-hero-main{flex:1;min-block-size:auto;align-items:center;padding-block:clamp(2rem,5svh,4rem)}.portfolio-2027 .p27-hero-closing{padding-block:1.5rem 2rem}.portfolio-2027 .p27-ascii{block-size:calc(var(--hero-available) - 9rem)}}@media (min-width: 40rem) and (max-width: 68.749rem){.portfolio-2027 .p27-hero{--hero-sans: 5rem;--hero-serif: 7.75rem;--hero-inset: 4.8125rem;--hero-gap: 1.875rem;--hero-reserve: 12.875rem}.portfolio-2027 .p27-hero-description{max-inline-size:32.5rem;font-size:1.125rem;line-height:1.75rem}}@media (max-width: 39.999rem){.portfolio-2027 .p27-hero{--hero-top: 3.5rem;--hero-reserve: 12.5rem;--hero-inset: 2.8125rem;--hero-gap: 1.5rem;--hero-sans: clamp(3.25rem, calc(5.714vw + 2.107rem) , 3.5rem);--hero-serif: clamp(5.25rem, calc(11.429vw + 2.964rem) , 5.75rem)}.portfolio-2027 .p27-hero-main{padding-block-end:5rem}.portfolio-2027 .p27-hero-role{font-size:.6875rem;line-height:1.125rem;letter-spacing:.3px}.portfolio-2027 .p27-first-name{line-height:calc(var(--hero-sans) + .375rem);letter-spacing:-.035em}.portfolio-2027 .p27-last-name{line-height:calc(var(--hero-serif) + .5rem);letter-spacing:-.0217em}.portfolio-2027 .p27-hero-description{font-size:1rem;line-height:1.5625rem;letter-spacing:0;inline-size:100%}.portfolio-2027 .p27-hero-actions{gap:1.25rem}.portfolio-2027 .p27-hero-actions a{gap:1rem}.portfolio-2027 a.p27-primary-action{inline-size:12.375rem}.portfolio-2027 .p27-secondary-action{inline-size:6.5rem}.portfolio-2027 .p27-hero-closing{padding-block-start:1.4375rem;padding-block-end:3.5rem}.portfolio-2027 .p27-hero-quote{font-size:clamp(1.5rem,calc(2.857vw + .929rem),1.625rem);line-height:2rem}.portfolio-2027 .p27-hero-support{font-size:.875rem;line-height:1.375rem}.portfolio-2027 .p27-ascii-viewport{inset-inline:calc(-1 * var(--p27-page-gutter))}.portfolio-2027 .p27-ascii{inset-block-start:1rem;inline-size:124%;block-size:35rem}}@media (max-width: 23.4rem){.portfolio-2027 .p27-hero{--hero-inset: 1.9375rem;--hero-gap: 1.25rem;--hero-reserve: 11.875rem}.portfolio-2027 .p27-hero-actions{flex-direction:column;gap:1rem}.portfolio-2027 .p27-last-name{line-height:calc(var(--hero-serif) + .625rem)}.portfolio-2027 .p27-hero-quote{line-height:1.875rem}}@media (prefers-reduced-motion: reduce){.portfolio-2027 .p27-skip{transition:none}}html{margin:0;background:#080808;scroll-behavior:auto;overflow-anchor:none}body{margin:0}
