.social-links[data-astro-cid-kqjevklv]{flex-wrap:wrap;gap:.8rem 1.5rem;list-style:none;display:flex}.social-links[data-astro-cid-kqjevklv] a[data-astro-cid-kqjevklv]{letter-spacing:.08em;text-transform:uppercase;align-items:center;min-height:2.75rem;font-size:.78rem;display:inline-flex}.compact[data-astro-cid-kqjevklv] a[data-astro-cid-kqjevklv]{min-height:auto;font-size:.7rem}.desktop-footer[data-astro-cid-pnwfqz23]{display:none}@media (width>=64rem){.desktop-footer[data-astro-cid-pnwfqz23]{z-index:40;height:var(--footer-height);border-top:1px solid var(--color-rule);letter-spacing:.04em;text-transform:uppercase;background:#f2efe7f7;grid-template-columns:1.2fr 1fr 1.25fr .55fr;align-items:center;font-size:.67rem;display:grid;position:fixed;inset:auto 0 0}.desktop-footer[data-astro-cid-pnwfqz23]>*{border-right:1px solid var(--color-rule);align-items:center;height:100%;padding-inline:clamp(1rem,2.2vw,2rem);display:flex}.desktop-footer[data-astro-cid-pnwfqz23]>:last-child{border-right:0}}.mobile-header[data-astro-cid-rsjl6san]{z-index:50;min-height:5.5rem;padding:1.1rem var(--page-padding) .85rem;border-bottom:1px solid var(--color-rule);background:#f2efe7f5;grid-template-columns:minmax(0,1fr) auto;justify-content:space-between;align-items:flex-start;gap:1rem;display:grid;position:sticky;top:0}.mobile-name[data-astro-cid-rsjl6san],button[data-astro-cid-rsjl6san]{letter-spacing:.08em;text-transform:uppercase;font-size:.8rem;font-weight:700}.mobile-header[data-astro-cid-rsjl6san]>div[data-astro-cid-rsjl6san]{min-width:0}.mobile-name[data-astro-cid-rsjl6san]{text-decoration:none}p[data-astro-cid-rsjl6san]{overflow-wrap:anywhere;max-width:100%;color:var(--color-ink-muted);letter-spacing:.06em;text-transform:uppercase;margin-top:.4rem;font-size:.61rem;line-height:1.4}button[data-astro-cid-rsjl6san]{cursor:pointer;background:0 0;border:0;flex:none;min-width:3.75rem;min-height:2.75rem;padding:0}@media (width>=64rem){.mobile-header[data-astro-cid-rsjl6san]{display:none}}.mobile-footer[data-astro-cid-wl5vpzwc]{padding:2rem var(--page-padding) 3rem;border-top:1px solid var(--color-rule);letter-spacing:.05em;text-transform:uppercase;gap:1.25rem;font-size:.7rem;display:grid}.mobile-footer[data-astro-cid-wl5vpzwc]>a[data-astro-cid-wl5vpzwc]{align-items:center;min-height:2.75rem;display:inline-flex}@media (width>=64rem){.mobile-footer[data-astro-cid-wl5vpzwc]{display:none}}.index-rail[data-astro-cid-5rdbd7f7]{display:none}.portfolio-index-panel[data-astro-cid-5rdbd7f7]{padding:clamp(3rem, 7vw, 6rem) var(--page-padding);border-bottom:1px solid var(--color-rule);background:var(--color-accent);color:var(--color-accent-text);scroll-margin-top:5.5rem}html[data-index-enhanced=true] .portfolio-index-panel[data-astro-cid-5rdbd7f7]:not([data-open=true]){display:none}.portfolio-index-panel[data-astro-cid-5rdbd7f7][data-open=true]{z-index:120;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;display:block;position:fixed;inset:0;overflow:hidden auto}header[data-astro-cid-5rdbd7f7]{border-bottom:1px solid #fffaf28c;justify-content:space-between;gap:2rem;padding-bottom:clamp(2rem,5vw,4rem);display:flex}h2[data-astro-cid-5rdbd7f7]{font-family:var(--font-display);letter-spacing:-.05em;text-transform:uppercase;margin-top:.75rem;font-size:clamp(3.2rem,8vw,8rem);font-weight:400;line-height:.9}button[data-astro-cid-5rdbd7f7]{cursor:pointer;text-transform:uppercase;background:0 0;border:1px solid;align-self:start;padding:.3rem .8rem}.index-grid[data-astro-cid-5rdbd7f7]{gap:3rem;padding-top:clamp(2rem,5vw,4rem);display:grid}ol[data-astro-cid-5rdbd7f7],ul[data-astro-cid-5rdbd7f7]{list-style:none}nav[data-astro-cid-5rdbd7f7] a[data-astro-cid-5rdbd7f7]{text-transform:uppercase;border-bottom:1px solid #fffaf273;grid-template-columns:3rem minmax(0,1fr);align-items:center;gap:1rem;min-height:3.5rem;text-decoration:none;display:grid}nav[data-astro-cid-5rdbd7f7] strong[data-astro-cid-5rdbd7f7]{font-family:var(--font-display);font-size:clamp(1.35rem,3vw,2.4rem);font-weight:400}section[data-astro-cid-5rdbd7f7] h3[data-astro-cid-5rdbd7f7]{letter-spacing:.1em;text-transform:uppercase;margin-bottom:1rem;font-size:.75rem}section[data-astro-cid-5rdbd7f7] li[data-astro-cid-5rdbd7f7]{border-top:1px solid #fffaf266}section[data-astro-cid-5rdbd7f7] a[data-astro-cid-5rdbd7f7]{text-transform:uppercase;align-items:center;min-height:3rem;font-size:.76rem;display:flex}@media (width>=48rem){.index-grid[data-astro-cid-5rdbd7f7]{grid-template-columns:minmax(20rem,1.5fr) minmax(13rem,.8fr) minmax(12rem,.65fr)}}@media (width>=64rem){.index-rail[data-astro-cid-5rdbd7f7]{inset:0 0 var(--footer-height) auto;z-index:45;width:var(--index-tab-width);background:var(--color-accent);color:var(--color-accent-text);place-items:center;text-decoration:none;display:grid;position:fixed}.index-rail[data-astro-cid-5rdbd7f7] span[data-astro-cid-5rdbd7f7]{writing-mode:vertical-rl;letter-spacing:.09em;text-transform:uppercase;font-size:.85rem;transform:rotate(180deg)}.portfolio-index-panel[data-astro-cid-5rdbd7f7][data-open=true]{padding:clamp(2rem,4vw,5rem)}}.project-archive[data-project-enhanced=true] .case-study-list{display:contents}.project-archive[data-project-enhanced=true] .project-case-study{display:none}.project-archive[data-project-enhanced=true] .project-case-study[data-open=true]{z-index:110;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;background:var(--color-paper-light);border:0;display:block;position:fixed;inset:0;overflow-y:auto}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:"IBM Plex Mono", "Courier New", monospace;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--font-display:"Bodoni Moda Variable", "Bodoni Moda", "Times New Roman", Georgia, serif;--color-paper:#f2efe7;--color-paper-light:#faf8f1;--color-paper-dark:#e5e0d6;--color-ink:#11100e;--color-ink-muted:#6d6860;--color-ink-soft:#918b82;--color-rule:#aaa49a;--color-accent:#d6382f;--color-accent-dark:#ad2922;--color-accent-text:#fffaf2;--color-focus:#2459d3}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.collapse{visibility:collapse}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.fixed{position:fixed}.static{position:static}.sticky{position:sticky}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.flex-wrap{flex-wrap:wrap}.rounded{border-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.font-display{font-family:var(--font-display)}.uppercase{text-transform:uppercase}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}@font-face{font-family:Bodoni Moda Variable;font-style:normal;font-display:swap;font-weight:400 900;src:url(/_astro/bodoni-moda-math-wght-normal._TL2RCrf.woff2)format("woff2-variations");unicode-range:U+302-303,U+305,U+307-308,U+310,U+312,U+315,U+31A,U+326-327,U+32C,U+32F-330,U+332-333,U+338,U+33A,U+346,U+34D,U+391-3A1,U+3A3-3A9,U+3B1-3C9,U+3D1,U+3D5-3D6,U+3F0-3F1,U+3F4-3F5,U+2016-2017,U+2034-2038,U+203C,U+2040,U+2043,U+2047,U+2050,U+2057,U+205F,U+2070-2071,U+2074-208E,U+2090-209C,U+20D0-20DC,U+20E1,U+20E5-20EF,U+2100-2112,U+2114-2115,U+2117-2121,U+2123-214F,U+2190,U+2192,U+2194-21AE,U+21B0-21E5,U+21F1-21F2,U+21F4-2211,U+2213-2214,U+2216-22FF,U+2308-230B,U+2310,U+2319,U+231C-2321,U+2336-237A,U+237C,U+2395,U+239B-23B7,U+23D0,U+23DC-23E1,U+2474-2475,U+25AF,U+25B3,U+25B7,U+25BD,U+25C1,U+25CA,U+25CC,U+25FB,U+266D-266F,U+27C0-27FF,U+2900-2AFF,U+2B0E-2B11,U+2B30-2B4C,U+2BFE,U+3030,U+FF5B,U+FF5D,U+1D400-1D7FF,U+1EE??}@font-face{font-family:Bodoni Moda Variable;font-style:normal;font-display:swap;font-weight:400 900;src:url(/_astro/bodoni-moda-symbols-wght-normal.DO7lZbk6.woff2)format("woff2-variations");unicode-range:U+1-C,U+E-1F,U+7F-9F,U+20DD-20E0,U+20E2-20E4,U+2150-218F,U+2190,U+2192,U+2194-2199,U+21AF,U+21E6-21F0,U+21F3,U+2218-2219,U+2299,U+22C4-22C6,U+2300-243F,U+2440-244A,U+2460-24FF,U+25A0-27BF,U+28??,U+2921-2922,U+2981,U+29BF,U+29EB,U+2B??,U+4DC0-4DFF,U+FFF9-FFFB,U+10140-1018E,U+10190-1019C,U+101A0,U+101D0-101FD,U+102E0-102FB,U+10E60-10E7E,U+1D2C0-1D2D3,U+1D2E0-1D37F,U+1F0??,U+1F100-1F1AD,U+1F1E6-1F1FF,U+1F30D-1F30F,U+1F315,U+1F31C,U+1F31E,U+1F320-1F32C,U+1F336,U+1F378,U+1F37D,U+1F382,U+1F393-1F39F,U+1F3A7-1F3A8,U+1F3AC-1F3AF,U+1F3C2,U+1F3C4-1F3C6,U+1F3CA-1F3CE,U+1F3D4-1F3E0,U+1F3ED,U+1F3F1-1F3F3,U+1F3F5-1F3F7,U+1F408,U+1F415,U+1F41F,U+1F426,U+1F43F,U+1F441-1F442,U+1F444,U+1F446-1F449,U+1F44C-1F44E,U+1F453,U+1F46A,U+1F47D,U+1F4A3,U+1F4B0,U+1F4B3,U+1F4B9,U+1F4BB,U+1F4BF,U+1F4C8-1F4CB,U+1F4D6,U+1F4DA,U+1F4DF,U+1F4E3-1F4E6,U+1F4EA-1F4ED,U+1F4F7,U+1F4F9-1F4FB,U+1F4FD-1F4FE,U+1F503,U+1F507-1F50B,U+1F50D,U+1F512-1F513,U+1F53E-1F54A,U+1F54F-1F5FA,U+1F610,U+1F650-1F67F,U+1F687,U+1F68D,U+1F691,U+1F694,U+1F698,U+1F6AD,U+1F6B2,U+1F6B9-1F6BA,U+1F6BC,U+1F6C6-1F6CF,U+1F6D3-1F6D7,U+1F6E0-1F6EA,U+1F6F0-1F6F3,U+1F6F7-1F6FC,U+1F7??,U+1F800-1F80B,U+1F810-1F847,U+1F850-1F859,U+1F860-1F887,U+1F890-1F8AD,U+1F8B0-1F8BB,U+1F8C0-1F8C1,U+1F900-1F90B,U+1F93B,U+1F946,U+1F984,U+1F996,U+1F9E9,U+1FA00-1FA6F,U+1FA70-1FA7C,U+1FA80-1FA89,U+1FA8F-1FAC6,U+1FACE-1FADC,U+1FADF-1FAE9,U+1FAF0-1FAF8,U+1FB??}@font-face{font-family:Bodoni Moda Variable;font-style:normal;font-display:swap;font-weight:400 900;src:url(/_astro/bodoni-moda-latin-ext-wght-normal.BlIE6rrN.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bodoni Moda Variable;font-style:normal;font-display:swap;font-weight:400 900;src:url(/_astro/bodoni-moda-latin-wght-normal.BIFT5Qnz.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-latin-400-normal.DMJ8VG8y.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-400-normal.CvHOgSBP.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-mono-latin-600-normal.BgSNZQsw.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-600-normal.DWFSQ4vo.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/ibm-plex-mono-latin-700-normal.7sUh57Bg.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-700-normal.CNHXzs6v.woff)format("woff")}:root{--color-paper:#f2efe7;--color-paper-light:#faf8f1;--color-paper-dark:#e5e0d6;--color-ink:#11100e;--color-ink-muted:#6d6860;--color-ink-soft:#918b82;--color-rule:#aaa49a;--color-rule-soft:#11100e2e;--color-accent:#d6382f;--color-accent-dark:#ad2922;--color-accent-text:#fffaf2;--color-focus:#2459d3;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--space-8:4rem;--space-9:6rem;--page-padding:clamp(1.25rem, 4vw, 4rem);--content-max-width:100rem;--rule-width:1px;--chapter-tab-width:clamp(4rem, 4vw, 4.5rem);--index-tab-width:clamp(5.125rem, 6.2vw, 6rem);--footer-height:4rem;--transition-editorial:.62s cubic-bezier(.22, 1, .36, 1)}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body,h1,h2,h3,p,figure,blockquote,dl,dd{margin:0}ul,ol{margin:0;padding:0}button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}img,picture,svg{max-width:100%;display:block}.display-name{font-family:var(--font-display);letter-spacing:-.055em;text-transform:uppercase;font-size:clamp(3.3rem,8.3vw,8.5rem);font-weight:400;line-height:.86}.editorial-statement{font-family:var(--font-display);letter-spacing:.045em;text-transform:uppercase;font-size:clamp(3rem,4vw,5rem);font-weight:400;line-height:.95}.chapter-title{font-family:var(--font-display);letter-spacing:-.04em;text-transform:uppercase;font-size:clamp(2.8rem,5.3vw,5.8rem);font-weight:400;line-height:.93}.eyebrow{letter-spacing:.12em;text-transform:uppercase;font-size:.75rem;font-weight:600}.prose-copy{overflow-wrap:anywhere;white-space:pre-line;font-size:clamp(.9rem,1.05vw,1.05rem);line-height:1.65}@media (width<=29.999rem){.display-name{letter-spacing:-.04em;font-size:clamp(2.85rem,13vw,3.3rem)}.editorial-statement{overflow-wrap:break-word;font-size:clamp(2.25rem,10vw,2.7rem)}.chapter-title{overflow-wrap:break-word;font-size:clamp(2.35rem,12vw,2.8rem)}}html{background:var(--color-paper);color:var(--color-ink);font-family:var(--font-mono);font-synthesis:none}body{background-color:var(--color-paper);background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.055'/%3E%3C/svg%3E");min-width:20rem;min-height:100vh;overflow-x:hidden}body.is-scroll-locked{overflow:hidden}a{color:inherit;text-underline-offset:.25em;text-decoration-thickness:1px}button{color:inherit}:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}::selection{background:var(--color-accent);color:var(--color-accent-text)}.skip-link{z-index:200;background:var(--color-ink);color:var(--color-paper-light);padding:.75rem 1rem;position:fixed;top:.75rem;left:.75rem;transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.link-arrow{min-height:2.75rem;color:var(--color-accent-dark);letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:.75rem;font-size:.78rem;font-weight:600;text-decoration:none;display:inline-flex}.link-arrow:after{content:"→";font-size:1.35rem;transition:transform .18s}.link-arrow:hover:after,.link-arrow:focus-visible:after{transform:translate(.25rem)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}.chapter-deck{width:100%;max-width:var(--content-max-width);margin-inline:auto}.chapter-panel{border-bottom:1px solid var(--color-rule);scroll-margin-top:5.5rem;position:relative}.chapter-content{padding:clamp(3rem, 7vw, 6rem) var(--page-padding)}.chapter-tab{display:none}@media (width>=64rem){.chapter-deck[data-enhanced=true]{inset:0 var(--index-tab-width) var(--footer-height) 0;width:auto;max-width:none;display:flex;position:fixed;overflow:hidden}.chapter-deck[data-enhanced=true] .chapter-panel{flex:0 0 var(--chapter-tab-width);border-right:1px solid var(--color-rule);min-width:0;height:100%;transition:flex-basis var(--transition-editorial), flex-grow var(--transition-editorial);border-bottom:0;overflow:hidden}.chapter-deck[data-enhanced=true] .chapter-panel[data-active=true]{flex:auto}.chapter-deck[data-enhanced=true] .chapter-tab{z-index:2;width:var(--chapter-tab-width);cursor:pointer;opacity:1;background:0 0;border:0;place-items:center;height:100%;padding:1rem;transition:opacity .18s;display:grid;position:absolute;inset:0}.chapter-deck[data-enhanced=true] .chapter-tab span{writing-mode:vertical-rl;letter-spacing:.08em;text-transform:uppercase;font-size:.76rem;font-weight:600;transform:rotate(180deg)}.chapter-deck[data-enhanced=true] .chapter-panel[data-active=true] .chapter-tab{pointer-events:none;opacity:0}.chapter-deck[data-enhanced=true] .chapter-content{width:calc(100vw - (var(--collapsed-chapter-count) * var(--chapter-tab-width)) - var(--index-tab-width));min-width:min(33rem, calc(100vw - (var(--collapsed-chapter-count) * var(--chapter-tab-width)) - var(--index-tab-width)));overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;opacity:0;height:100%;padding:clamp(2rem,3vw,4rem);transition:opacity .24s .14s,transform .36s .1s;overflow-y:auto;transform:translate(1rem)}.chapter-deck[data-enhanced=true] .chapter-panel[data-active=true] .chapter-content{opacity:1;transform:translate(0)}}.section-heading[data-astro-cid-w7cjueht]{border-bottom:1px solid var(--color-rule);gap:.8rem;padding-bottom:clamp(1.5rem,3vw,2.5rem);display:grid}.section-kicker[data-astro-cid-w7cjueht]{max-width:52rem;color:var(--color-ink-muted);letter-spacing:.06em;text-transform:uppercase;font-size:.8rem;line-height:1.6}.about-grid[data-astro-cid-vvxc5s36]{gap:2.5rem;padding-block:clamp(2rem,4vw,4rem);display:grid}figure[data-astro-cid-vvxc5s36]{border:1px solid var(--color-rule);max-width:22rem}figure[data-astro-cid-vvxc5s36] img[data-astro-cid-vvxc5s36]{aspect-ratio:4/5;filter:grayscale();object-fit:cover}figcaption[data-astro-cid-vvxc5s36]{border-top:1px solid var(--color-rule);text-transform:uppercase;padding:.6rem;font-size:.65rem}.about-copy[data-astro-cid-vvxc5s36]{align-content:start;gap:1.5rem;display:grid}.about-statement[data-astro-cid-vvxc5s36]{font-family:var(--font-display);text-transform:uppercase;font-size:clamp(2.2rem,4vw,4.7rem);line-height:.98}dl[data-astro-cid-vvxc5s36]{border-top:1px solid var(--color-rule);display:grid}dl[data-astro-cid-vvxc5s36] div[data-astro-cid-vvxc5s36]{border-bottom:1px solid var(--color-rule);grid-template-columns:minmax(7rem,.6fr) 1.4fr;gap:1rem;padding:.8rem 0;display:grid}dt[data-astro-cid-vvxc5s36]{color:var(--color-ink-muted);text-transform:uppercase;font-size:.68rem}dd[data-astro-cid-vvxc5s36]{font-size:.78rem}.education-archive[data-astro-cid-vvxc5s36]{border-top:1px solid var(--color-rule)}.education-heading[data-astro-cid-vvxc5s36]{gap:.6rem;padding:1.5rem 0;display:grid}.education-heading[data-astro-cid-vvxc5s36] h3[data-astro-cid-vvxc5s36]{font-family:var(--font-display);text-transform:uppercase;font-size:clamp(2rem,4vw,3.5rem);font-weight:400}.education-archive[data-astro-cid-vvxc5s36] ol[data-astro-cid-vvxc5s36]{border-bottom:1px solid var(--color-rule);list-style:none}.education-entry[data-astro-cid-vvxc5s36]{border-top:1px solid var(--color-rule);gap:.75rem;padding:1.5rem 0;display:grid}.education-period[data-astro-cid-vvxc5s36],.education-institution[data-astro-cid-vvxc5s36],.education-meta[data-astro-cid-vvxc5s36]{letter-spacing:.05em;text-transform:uppercase;font-size:.72rem}.education-entry[data-astro-cid-vvxc5s36] h4[data-astro-cid-vvxc5s36]{max-width:42rem;font-family:var(--font-display);text-transform:uppercase;font-size:clamp(1.35rem,2.4vw,2.15rem);font-weight:400;line-height:1.08}.education-institution[data-astro-cid-vvxc5s36]{color:var(--color-ink-muted);margin-top:.6rem;line-height:1.5}.education-meta[data-astro-cid-vvxc5s36]{color:var(--color-ink-muted);align-content:start;gap:.35rem;display:grid}@media (width>=48rem){.about-grid[data-astro-cid-vvxc5s36]{grid-template-columns:minmax(12rem,.7fr) minmax(0,1.5fr)}.education-entry[data-astro-cid-vvxc5s36]{grid-template-columns:minmax(7rem,.45fr) minmax(0,1.55fr) minmax(8rem,.5fr);align-items:start;gap:1.5rem}}.contact-layout[data-astro-cid-uimncqsl]{gap:3rem;padding-block:clamp(2.5rem,6vw,6rem);display:grid}.contact-copy[data-astro-cid-uimncqsl]{gap:1.5rem;max-width:38rem;display:grid}.contact-actions[data-astro-cid-uimncqsl]{flex-wrap:wrap;gap:.75rem;display:flex}.contact-button[data-astro-cid-uimncqsl]{border:1px solid var(--color-accent-dark);min-width:8.5rem;min-height:2.75rem;color:var(--color-accent-dark);letter-spacing:.08em;text-transform:uppercase;justify-content:center;align-items:center;padding:.7rem 1rem;font-size:.76rem;font-weight:600;text-decoration:none;transition:background-color .18s,color .18s;display:inline-flex}.contact-button[data-astro-cid-uimncqsl]:hover,.contact-button[data-astro-cid-uimncqsl]:focus-visible{background:var(--color-accent-dark);color:var(--color-accent-text)}@media (width>=48rem){.contact-layout[data-astro-cid-uimncqsl]{grid-template-columns:minmax(0,1.4fr) minmax(18rem,1.2fr);align-items:end}}.experience-list[data-astro-cid-ezginocw]{border-bottom:1px solid var(--color-rule)}.experience-entry[data-astro-cid-ezginocw]{border-top:1px solid var(--color-rule)}.experience-entry[data-astro-cid-ezginocw]:first-child{border-top:0}summary[data-astro-cid-ezginocw]{cursor:pointer;grid-template-columns:1fr;gap:.5rem;min-height:4rem;padding:1.25rem 0;list-style:none;display:grid}summary[data-astro-cid-ezginocw]::-webkit-details-marker{display:none}.experience-period[data-astro-cid-ezginocw],.experience-company[data-astro-cid-ezginocw],.experience-action[data-astro-cid-ezginocw],.experience-tech[data-astro-cid-ezginocw],.placeholder-note[data-astro-cid-ezginocw]{letter-spacing:.06em;text-transform:uppercase;font-size:.72rem}.experience-role[data-astro-cid-ezginocw]{font-family:var(--font-display);text-transform:uppercase;font-size:clamp(1.7rem,3vw,2.7rem)}.experience-action[data-astro-cid-ezginocw]{color:var(--color-accent-dark)}.experience-body[data-astro-cid-ezginocw]{gap:1rem;max-width:52rem;padding:0 0 2rem;display:grid}.experience-body[data-astro-cid-ezginocw] ul[data-astro-cid-ezginocw]{gap:.65rem;padding-left:1.3rem;display:grid}.placeholder-note[data-astro-cid-ezginocw]{color:var(--color-accent-dark)}@media (width>=48rem){summary[data-astro-cid-ezginocw]{grid-template-columns:.8fr 1.5fr 1.2fr auto;align-items:center}}.project-archive[data-astro-cid-nrid6oap],.project-list[data-astro-cid-nrid6oap],.case-study-list[data-astro-cid-nrid6oap]{display:grid}.project-filters[data-astro-cid-nrid6oap]{border-bottom:1px solid var(--color-rule);gap:.8rem;padding-block:1.25rem}.filter-buttons[data-astro-cid-nrid6oap]{flex-wrap:wrap;gap:.5rem;display:flex}.filter-buttons[data-astro-cid-nrid6oap] button[data-astro-cid-nrid6oap]{border:1px solid var(--color-rule);cursor:pointer;letter-spacing:.06em;text-transform:uppercase;background:0 0;min-height:2.75rem;padding:.55rem .8rem;font-size:.7rem}.filter-buttons[data-astro-cid-nrid6oap] button[data-astro-cid-nrid6oap][aria-pressed=true]{border-color:var(--color-ink);background:var(--color-ink);color:var(--color-paper-light)}.project-row[data-astro-cid-nrid6oap]{border-bottom:1px solid var(--color-rule);grid-template-columns:2.5rem minmax(0,1fr);gap:1rem;padding-block:clamp(1.5rem,3vw,2.75rem);display:grid}.project-number[data-astro-cid-nrid6oap],.project-category[data-astro-cid-nrid6oap],.project-technologies[data-astro-cid-nrid6oap],.placeholder-note[data-astro-cid-nrid6oap]{letter-spacing:.07em;text-transform:uppercase;font-size:.69rem}.project-category[data-astro-cid-nrid6oap],.project-technologies[data-astro-cid-nrid6oap]{color:var(--color-ink-muted)}.placeholder-note[data-astro-cid-nrid6oap]{color:var(--color-accent-dark)}.project-summary[data-astro-cid-nrid6oap]{gap:.85rem;min-width:0;display:grid}.project-summary[data-astro-cid-nrid6oap]>[data-astro-cid-nrid6oap]{overflow-wrap:anywhere;min-width:0}.project-actions[data-astro-cid-nrid6oap]{flex-wrap:wrap;gap:.75rem 1.5rem;display:flex}.project-summary[data-astro-cid-nrid6oap] h3[data-astro-cid-nrid6oap],.case-study-header[data-astro-cid-nrid6oap] h3[data-astro-cid-nrid6oap]{font-family:var(--font-display);text-transform:uppercase;font-size:clamp(2rem,4vw,2.5rem);font-weight:400;line-height:.98}.project-summary[data-astro-cid-nrid6oap]>p[data-astro-cid-nrid6oap]:not([class]){max-width:50rem;font-size:.88rem;line-height:1.6}.project-thumbnail[data-astro-cid-nrid6oap]{border:1px solid var(--color-rule);filter:grayscale();grid-column:2;width:100%;margin-top:.75rem}.project-empty[data-astro-cid-nrid6oap]{padding:2rem 0}.project-preview[data-astro-cid-nrid6oap]{display:none}.case-study-list[data-astro-cid-nrid6oap]{gap:2rem;padding-top:clamp(3rem,6vw,6rem)}.project-case-study[data-astro-cid-nrid6oap]{border:1px solid var(--color-rule);background:var(--color-paper-light);scroll-margin-top:6rem}.case-study-shell[data-astro-cid-nrid6oap]{padding:clamp(1.25rem,4vw,4rem)}.case-study-header[data-astro-cid-nrid6oap]{border-bottom:1px solid var(--color-rule);justify-content:space-between;gap:1.5rem;padding-bottom:2rem;display:flex}.case-study-header[data-astro-cid-nrid6oap]>div[data-astro-cid-nrid6oap]{min-width:0}.case-study-header[data-astro-cid-nrid6oap] h3[data-astro-cid-nrid6oap]{overflow-wrap:anywhere}.case-study-header[data-astro-cid-nrid6oap] .eyebrow[data-astro-cid-nrid6oap]{color:var(--color-accent-dark);margin-bottom:1rem}.case-study-close[data-astro-cid-nrid6oap]{cursor:pointer;text-transform:uppercase;background:0 0;border:1px solid;min-width:5.5rem;min-height:2.75rem;padding:.5rem;font-size:.72rem}.project-metadata[data-astro-cid-nrid6oap]{border-bottom:1px solid var(--color-rule);display:grid}.project-metadata[data-astro-cid-nrid6oap] div[data-astro-cid-nrid6oap]{border-top:1px solid var(--color-rule-soft);grid-template-columns:7rem minmax(0,1fr);gap:1rem;padding:.8rem 0;display:grid}.project-metadata[data-astro-cid-nrid6oap] div[data-astro-cid-nrid6oap]:first-child{border-top:0}.project-metadata[data-astro-cid-nrid6oap] dt[data-astro-cid-nrid6oap]{color:var(--color-ink-muted);text-transform:uppercase;font-size:.68rem}.project-metadata[data-astro-cid-nrid6oap] dd[data-astro-cid-nrid6oap]{font-size:.76rem}.case-study-cover[data-astro-cid-nrid6oap]{border:1px solid var(--color-rule);filter:grayscale();width:100%;margin-block:2rem}.case-study-prose[data-astro-cid-nrid6oap]{gap:1rem;max-width:52rem;display:grid}.case-study-prose[data-astro-cid-nrid6oap] h2{border-top:1px solid var(--color-rule);font-family:var(--font-display);text-transform:uppercase;margin-top:1.5rem;padding-top:1.5rem;font-size:clamp(1.8rem,3vw,2.8rem);font-weight:400}.case-study-prose[data-astro-cid-nrid6oap] ul{gap:.6rem;padding-left:1.2rem;display:grid}@media (width>=48rem){.project-row[data-astro-cid-nrid6oap]{grid-template-columns:3rem minmax(0,1fr) minmax(15rem,.7fr)}.project-thumbnail[data-astro-cid-nrid6oap]{grid-area:1/3;align-self:start;margin-top:0}.project-metadata[data-astro-cid-nrid6oap]{grid-template-columns:repeat(2,minmax(0,1fr))}.project-metadata[data-astro-cid-nrid6oap] div[data-astro-cid-nrid6oap]:nth-child(2){border-top:0}}@media (width<=47.999rem){.case-study-header[data-astro-cid-nrid6oap]{align-items:flex-start}.case-study-close[data-astro-cid-nrid6oap]{background:var(--color-paper-light);flex:none;position:sticky;top:.75rem}}@media (width>=75rem){.project-browser[data-astro-cid-nrid6oap]{grid-template-columns:minmax(0,1.1fr) minmax(18rem,.8fr);gap:2rem;display:grid}.project-preview[data-astro-cid-nrid6oap]{border:1px solid var(--color-rule);background:var(--color-paper-dark);align-self:start;display:block;position:sticky;top:0}.project-preview[data-astro-cid-nrid6oap] img[data-astro-cid-nrid6oap]{filter:grayscale();width:100%}.project-preview[data-astro-cid-nrid6oap] figcaption[data-astro-cid-nrid6oap]{border-top:1px solid var(--color-rule);text-transform:uppercase;padding:.75rem;font-size:.68rem}.project-archive[data-astro-cid-nrid6oap][data-project-enhanced=true] .project-thumbnail[data-astro-cid-nrid6oap]{display:none}.project-archive[data-astro-cid-nrid6oap][data-project-enhanced=true] .project-row[data-astro-cid-nrid6oap]{grid-template-columns:3rem minmax(0,1fr)}}.skills-grid[data-astro-cid-j5fs7idh]{border-left:1px solid var(--color-rule);grid-template-columns:repeat(auto-fit,minmax(min(100%,13rem),1fr));display:grid}.skill-group[data-astro-cid-j5fs7idh]{border-right:1px solid var(--color-rule);border-bottom:1px solid var(--color-rule);min-height:17rem;padding:1.5rem}.classified-label[data-astro-cid-j5fs7idh]{color:var(--color-accent-dark);letter-spacing:.1em;text-transform:uppercase;font-size:.67rem}h3[data-astro-cid-j5fs7idh]{font-family:var(--font-display);text-transform:uppercase;margin:2.5rem 0 1.25rem;font-size:1.8rem;font-weight:400}ul[data-astro-cid-j5fs7idh]{gap:.5rem;list-style:none;display:grid}li[data-astro-cid-j5fs7idh]{font-size:.82rem}
