/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
@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-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--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-outline-style:solid;--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;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer theme{:root,:host{--font-sans:"Manrope", ui-sans-serif, system-ui, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--container-xl:36rem;--container-3xl:48rem;--container-5xl:64rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25 / 1.875);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--text-6xl:3.75rem;--text-6xl--line-height:1;--font-weight-medium:500;--font-weight-semibold:600;--tracking-wide:.025em;--leading-snug:1.375;--radius-2xl:1rem;--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--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:"Akzidenz Grotesk", "Manrope", sans-serif;--color-ink:#20272d;--color-ink-soft:#252d32;--color-ink-raised:#2e363b;--color-paper:#e8e2d7;--color-paper-dim:#d8d1c5;--color-rust:#a7a18f;--color-rust-dim:#b8b19f;--color-accent-strong:#c7c0af;--color-line:#4d5559}}@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}html{background:var(--color-ink);color:var(--color-paper);font-family:var(--font-sans);scroll-behavior:smooth}body{background:var(--color-ink);color:var(--color-paper)}::selection{background:var(--color-rust);color:var(--color-ink)}:focus-visible{outline:2px solid var(--color-paper);outline-offset:4px}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.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}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.inset-x-0{inset-inline:0}.-top-6{top:calc(var(--spacing) * -6)}.right-6{right:calc(var(--spacing) * 6)}.bottom-0{bottom:0}.bottom-6{bottom:calc(var(--spacing) * 6)}.left-6{left:calc(var(--spacing) * 6)}.z-40{z-index:40}.z-50{z-index:50}.mx-auto{margin-inline:auto}.mt-1{margin-top:var(--spacing)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mt-10{margin-top:calc(var(--spacing) * 10)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.table{display:table}.h-11{height:calc(var(--spacing) * 11)}.w-11{width:calc(var(--spacing) * 11)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-5xl{max-width:var(--container-5xl)}.max-w-xl{max-width:var(--container-xl)}.flex-shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.border-collapse{border-collapse:collapse}.translate-y-2{--tw-translate-y:calc(var(--spacing) * 2);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-full{--tw-translate-y:100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-center{justify-content:center}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-5{gap:calc(var(--spacing) * 5)}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-8{column-gap:calc(var(--spacing) * 8)}.gap-y-10{row-gap:calc(var(--spacing) * 10)}.overflow-hidden{overflow:hidden}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-full{border-radius:2147483647px}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-line{border-color:var(--color-line)}.bg-ink{background-color:var(--color-ink)}.bg-paper{background-color:var(--color-paper)}.bg-paper-dim{background-color:var(--color-paper-dim)}.bg-rust{background-color:var(--color-rust)}.mask-repeat{-webkit-mask-repeat:repeat;mask-repeat:repeat}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-16{padding-block:calc(var(--spacing) * 16)}.py-20{padding-block:calc(var(--spacing) * 20)}.py-32{padding-block:calc(var(--spacing) * 32)}.text-center{text-align:center}.font-display{font-family:var(--font-display)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-6xl{font-size:var(--text-6xl);line-height:var(--tw-leading,var(--text-6xl--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[7rem\]{font-size:7rem}.leading-none{--tw-leading:1;line-height:1}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.text-ink{color:var(--color-ink)}.text-ink\/30{color:#20272d4d}@supports (color:color-mix(in lab, red, red)){.text-ink\/30{color:color-mix(in oklab, var(--color-ink) 30%, transparent)}}.text-ink\/50{color:#20272d80}@supports (color:color-mix(in lab, red, red)){.text-ink\/50{color:color-mix(in oklab, var(--color-ink) 50%, transparent)}}.text-ink\/75{color:#20272dbf}@supports (color:color-mix(in lab, red, red)){.text-ink\/75{color:color-mix(in oklab, var(--color-ink) 75%, transparent)}}.text-paper{color:var(--color-paper)}.text-paper\/80{color:#e8e2d7cc}@supports (color:color-mix(in lab, red, red)){.text-paper\/80{color:color-mix(in oklab, var(--color-paper) 80%, transparent)}}.text-rust{color:var(--color-rust)}.text-rust\/15{color:#a7a18f26}@supports (color:color-mix(in lab, red, red)){.text-rust\/15{color:color-mix(in oklab, var(--color-rust) 15%, transparent)}}.uppercase{text-transform:uppercase}.italic{font-style:italic}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-0{opacity:0}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px 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)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);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,)}.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,)}.backdrop-filter{backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.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,-webkit-backdrop-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))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}@media (hover:hover){.hover\:scale-105:hover{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x) var(--tw-scale-y)}.hover\:bg-paper:hover{background-color:var(--color-paper)}.hover\:bg-paper\/90:hover{background-color:#e8e2d7e6}@supports (color:color-mix(in lab, red, red)){.hover\:bg-paper\/90:hover{background-color:color-mix(in oklab, var(--color-paper) 90%, transparent)}}.hover\:bg-rust:hover{background-color:var(--color-rust)}}@media (width>=40rem){.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-between{justify-content:space-between}.sm\:rounded-t-2xl{border-top-left-radius:var(--radius-2xl);border-top-right-radius:var(--radius-2xl)}.sm\:border{border-style:var(--tw-border-style);border-width:1px}.sm\:p-12{padding:calc(var(--spacing) * 12)}.sm\:text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.sm\:text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.sm\:text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.sm\:text-\[9rem\]{font-size:9rem}}@media (width>=64rem){.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}}@font-face{font-family:Manrope;font-style:normal;font-weight:400 800;font-display:swap;src:url(/fonts/manrope-cyrillic.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Manrope;font-style:normal;font-weight:400 800;font-display:swap;src:url(/fonts/manrope-latin-ext.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Manrope;font-style:normal;font-weight:400 800;font-display:swap;src:url(/fonts/manrope-latin.woff2)format("woff2");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:Akzidenz Grotesk;src:url(/tiger/fonts/akzidenzgroteskpro_ext.otf)format("opentype");font-style:normal;font-weight:400 600;font-display:swap}.writing-heading>p{max-width:54ch;color:var(--scroll-muted,#bcb8ac);margin:22px 0 0;font-size:1rem;line-height:1.7}.publication-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:44px;display:grid}.publication-card{--card-ink:#20272d;--card-muted:#535b60;min-width:0;color:var(--card-ink);background:#f3efe7;border:1px solid #c9c4b9;border-radius:14px;flex-direction:column;display:flex;overflow:clip}.publication-link{color:inherit;flex-direction:column;flex:1;text-decoration:none;display:flex}.publication-copy{flex-direction:column;flex:1;min-height:260px;padding:26px;display:flex}.publication-meta{color:var(--card-muted);justify-content:space-between;align-items:start;gap:18px;font-size:.77rem;line-height:1.5;display:flex}.publication-meta>span:last-child{font-size:1.3rem;line-height:1}.publication-copy h3{font-family:var(--font-sans);letter-spacing:-.035em;overflow-wrap:anywhere;margin:22px 0 16px;font-size:clamp(1.15rem,1.55vw,1.4rem);font-weight:650;line-height:1.35}.publication-copy>p{color:var(--card-muted);margin:0 0 26px;font-size:.85rem;line-height:1.6}.publication-read{border-top:1px solid #20272d29;justify-content:space-between;align-items:center;gap:16px;margin-top:auto;padding-top:18px;font-size:.77rem;font-weight:700;display:flex}.publication-featured{--card-ink:#e8e2d7;--card-muted:#c4c1b7;background:#20272d;border-color:#596066;grid-column:span 2}.publication-wide{grid-column:span 2}.publication-featured h3{max-width:30ch;font-size:clamp(1.55rem,2.5vw,2.45rem);font-weight:550;line-height:1.2}.publication-featured .publication-read{border-color:#5d6467}.publication-pdf{min-height:48px;color:var(--card-ink);border-top:1px solid #c9c4b9;justify-content:space-between;align-items:center;gap:16px;margin:0 26px 14px;font-size:.8rem;text-decoration:none;display:flex}.publication-pdf:hover{text-underline-offset:5px;text-decoration:underline}.publication-link:focus-visible,.publication-pdf:focus-visible{outline:2px solid var(--card-ink);outline-offset:-6px;border-radius:8px}.resource-strip{border-block:1px solid rgb(var(--site-type-rgb,232 226 215) / .25);grid-template-columns:minmax(130px,.7fr) repeat(3,minmax(0,1fr));align-items:center;gap:28px;margin-top:44px;padding-block:26px;display:grid}.resource-intro{color:var(--scroll-muted,#bcb8ac);margin:0;font-size:.88rem;line-height:1.5}.resource-link{min-height:58px;color:var(--color-paper);align-items:center;gap:16px;text-decoration:none;display:flex}.resource-mark{background:rgb(var(--site-type-rgb,232 226 215) / .08);letter-spacing:-.05em;border-radius:50%;place-items:center;min-width:45px;height:45px;font-size:1.25rem;font-weight:800;display:grid}.resource-link strong{font-size:1.05rem;font-weight:650;display:block}.resource-link small{max-width:25ch;color:var(--scroll-muted,#bcb8ac);margin-top:5px;font-size:.73rem;line-height:1.4;display:block}.resource-arrow{margin-left:auto;font-size:1.1rem}.open-projects{grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);gap:clamp(32px,6vw,88px);margin-top:clamp(64px,8vw,110px);display:grid}.open-projects-heading h3{max-width:14ch;font-family:var(--font-display);letter-spacing:-.04em;margin:0;font-size:clamp(2rem,3.5vw,3.1rem);font-weight:500;line-height:1.15}.open-projects-heading p{max-width:32ch;color:var(--scroll-muted,#bcb8ac);margin:24px 0 0;font-size:.92rem;line-height:1.7}.project-index{margin:0;padding:0;list-style:none}.project-link{border-top:1px solid rgb(var(--site-type-rgb,232 226 215) / .25);min-height:130px;color:var(--color-paper);grid-template-columns:36px minmax(0,1fr) auto 18px;align-items:start;gap:16px;padding-block:26px;text-decoration:none;display:grid}.project-index li:last-child{border-bottom:1px solid rgb(var(--site-type-rgb,232 226 215) / .25)}.project-symbol svg{stroke:currentColor;stroke-width:1.3px;width:28px;height:28px}.project-copy strong{letter-spacing:-.04em;font-size:1.6rem;font-weight:600;line-height:1.2;display:block}.project-copy>span{max-width:48ch;color:var(--scroll-muted,#bcb8ac);margin-top:12px;font-size:.86rem;line-height:1.6;display:block}.project-language{color:var(--scroll-muted,#bcb8ac);margin-top:6px;font-size:.7rem}.project-arrow{font-size:1.2rem}.project-arrow,.resource-arrow{transition:transform .18s ease-out}@media (hover:hover) and (pointer:fine){.publication-link:hover h3{text-underline-offset:5px;text-decoration:underline 1px}.resource-link:hover .resource-arrow,.project-link:hover .project-arrow{transform:translate(3px,-3px)}}@media (width<=1000px){.resource-strip{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.resource-intro{grid-column:1/-1}.resource-intro br{display:none}.publication-copy{padding:22px}.project-link{grid-template-columns:26px minmax(0,1fr) 18px}.project-language{display:none}}@media (width<=760px){.publication-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.publication-featured,.publication-wide{grid-column:1/-1}.open-projects{grid-template-columns:1fr;gap:32px}.open-projects-heading h3 br{display:none}}@media (width<=540px){.publication-grid{grid-template-columns:1fr;gap:18px;margin-top:30px}.publication-featured,.publication-wide{grid-column:auto}.publication-copy h3{font-size:1.3rem}.publication-featured h3{font-size:1.6rem}.publication-copy{padding:24px}.resource-strip{grid-template-columns:1fr;gap:8px;padding-block:24px}.resource-intro{margin-bottom:10px}.resource-link{padding-block:10px}.resource-link small{max-width:none}.project-link{gap:12px}}.making-projects{min-width:0}.service-projects{grid-template-columns:1fr 1fr;gap:16px;display:grid}.service-project{border:1px solid rgb(var(--site-type-rgb,232 226 215) / .3);min-width:0;color:var(--color-paper);border-radius:12px;flex-direction:column;padding:24px;text-decoration:none;display:flex}.service-project-name{letter-spacing:-.035em;justify-content:space-between;align-items:start;gap:12px;font-size:clamp(1.1rem,1.8vw,1.55rem);font-weight:650;display:flex}.service-project>p{color:var(--scroll-muted,#bcb8ac);margin:18px 0 24px;font-size:.9rem;line-height:1.6}.service-project-role{color:var(--scroll-muted,#bcb8ac);margin-top:auto;font-size:.74rem;line-height:1.5;display:block}.repository-heading{color:var(--scroll-muted,#bcb8ac);margin:34px 0 16px;font-size:.85rem}.service-project:hover .service-project-name{text-underline-offset:6px;text-decoration:underline}@media (width<=540px){.service-projects{grid-template-columns:1fr}}.client-tasks-section{background:var(--color-ink);color:var(--color-paper);border-bottom:1px solid rgb(var(--site-type-rgb,232 226 215) / .12);scroll-margin-top:88px}.client-tasks-section>.section-wrap{padding-block:clamp(64px,8vw,112px)}.client-tasks-list{border-top:1px solid rgb(var(--site-type-rgb,232 226 215) / .3);margin-top:38px}.client-task{border-bottom:1px solid rgb(var(--site-type-rgb,232 226 215) / .25)}.client-task>summary{cursor:pointer;justify-content:space-between;align-items:center;gap:24px;min-height:94px;padding-block:24px;list-style:none;display:flex}.client-task>summary::-webkit-details-marker{display:none}.client-task h3{font-family:var(--font-sans);letter-spacing:-.035em;margin:0;font-size:clamp(1.25rem,2.4vw,2rem);font-weight:550;line-height:1.3}.client-task-toggle{border:1px solid rgb(var(--site-type-rgb,232 226 215) / .4);border-radius:50%;flex:0 0 36px;width:36px;height:36px;position:relative}.client-task-toggle:before,.client-task-toggle:after{content:"";background:currentColor;height:1px;position:absolute;inset:50% 10px auto}.client-task-toggle:after{transition:transform .18s ease-out;transform:rotate(90deg)}.client-task[open] .client-task-toggle:after{transform:rotate(0)}.client-task>summary:hover h3{text-underline-offset:7px;text-decoration:underline 1px}.client-task-content{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,6vw,88px);padding:2px 0 36px;display:grid}.client-task-content p{max-width:56ch;color:var(--scroll-muted,#bcb8ac);margin:0;font-size:.96rem;line-height:1.75}.client-task-content .client-task-context{color:var(--color-paper);margin-bottom:24px;font-size:1.05rem}.client-task-content .client-task-label{color:var(--color-paper);margin:24px 0 9px;font-size:.8rem;font-weight:700}.client-task-result>.client-task-label:first-child{margin-top:0}.client-task-result .button{margin-top:26px}.client-tasks-agreement{max-width:76ch;color:var(--scroll-muted,#bcb8ac);margin:26px 0 0;font-size:.85rem;line-height:1.7}@media (width<=700px){.client-tasks-section{scroll-margin-top:76px}.client-task>summary{gap:16px;min-height:86px}.client-task-content{grid-template-columns:1fr;gap:26px}.client-task-result{border-left:2px solid rgb(var(--site-type-rgb,232 226 215) / .35);padding-left:18px}.client-task-content p{font-size:.9rem}.client-task-result .button{white-space:normal;max-width:100%;padding:12px 18px;line-height:1.4}}@media (prefers-reduced-motion:reduce){.client-task-toggle:after{transition:none}}.workflow-section{background:var(--color-ink);color:var(--color-paper);scroll-margin-top:88px}.workflow-section>.section-wrap{padding-block:clamp(60px,8vw,110px)}.workflow-header{justify-content:space-between;align-items:end;gap:32px;margin-bottom:36px;display:flex}.workflow-eyebrow{color:var(--scroll-muted,#bcb8ac);margin:0 0 18px;font-size:.88rem}.workflow-header h2{font-family:var(--font-display);letter-spacing:-.04em;margin:0;font-size:clamp(2.3rem,4.7vw,4.4rem);font-weight:500;line-height:1.06}.workflow-navigation{max-width:33ch}.workflow-navigation>p{color:var(--scroll-muted,#bcb8ac);margin:0 0 22px;font-size:.9rem;line-height:1.6}.workflow-controls{align-items:center;gap:22px;display:flex}.workflow-controls button{border:1px solid rgb(var(--site-type-rgb,232 226 215) / .5);width:48px;height:48px;color:var(--color-paper);cursor:pointer;border-radius:50%;place-items:center;font-size:1.2rem;transition:background-color .18s,transform .14s;display:grid}.workflow-controls button:disabled{opacity:.3;cursor:default}.workflow-controls button:not(:disabled):hover{background:rgb(var(--site-type-rgb,232 226 215) / .12)}.workflow-controls button:not(:disabled):active{transform:scale(.95)}.workflow-controls [data-workflow-counter]{font-variant-numeric:tabular-nums;min-width:44px;font-size:.85rem}.workflow-track{overscroll-behavior-x:contain;scroll-snap-type:none;scrollbar-width:none;-ms-overflow-style:none;grid-auto-columns:min(540px,74%);grid-auto-flow:column;align-items:stretch;gap:18px;max-width:100%;padding:5px 0 18px;scroll-padding-inline:0;display:grid;position:relative;overflow-x:auto}.workflow-track::-webkit-scrollbar{width:0;height:0;display:none}.workflow-track{cursor:grab}.workflow-track.is-dragging{cursor:grabbing;-webkit-user-select:none;user-select:none;scroll-snap-type:none}.workflow-track:focus-visible{outline-offset:6px}.workflow-stage{--step-bg:#2c363d;--step-ink:#e8e2d7;--step-muted:#c4c5bd;background:var(--step-bg);min-width:0;min-height:410px;color:var(--step-ink);border-radius:4px;flex-direction:column;padding:clamp(24px,3.2vw,46px);display:flex}.workflow-stage-1{--step-bg:#e8e2d7;--step-ink:#20272d;--step-muted:#4e5658}.workflow-stage-3{--step-bg:#374346}.workflow-stage-4{--step-bg:#bcb5a4;--step-ink:#20272d;--step-muted:#394347}.workflow-stage-top{justify-content:space-between;align-items:start;gap:20px;display:flex}.workflow-number{font-family:var(--font-display);letter-spacing:-.07em;font-size:clamp(2.5rem,5vw,4.5rem);line-height:1}.workflow-stage-top>span:last-child{color:var(--step-muted);font-size:.75rem}.workflow-stage h3{letter-spacing:-.035em;max-width:22ch;margin:32px 0 18px;font-size:clamp(1.55rem,2.4vw,2rem);font-weight:550;line-height:1.2}.workflow-stage>p{max-width:50ch;color:var(--step-muted);margin:0 0 30px;font-size:.95rem;line-height:1.7}.workflow-result{border-top:1px solid var(--step-ink)}@supports (color:color-mix(in lab, red, red)){.workflow-result{border-top:1px solid color-mix(in srgb,var(--step-ink) 25%,transparent)}}.workflow-result{margin-top:auto;padding-top:22px}.workflow-result>span{color:var(--step-muted);font-size:.75rem}.workflow-result p{max-width:40ch;margin:9px 0 0;font-size:.95rem;line-height:1.6}.workflow-scroll-hint{color:var(--scroll-muted,#bcb8ac);align-items:center;gap:18px;margin-top:14px;font-size:.72rem;display:flex}.workflow-rule{background:rgb(var(--site-type-rgb,232 226 215) / .2);flex:1;height:1px}@media (width<=700px){.workflow-header{flex-direction:column;align-items:start;gap:24px}.workflow-header h2{font-size:clamp(2rem,8.5vw,3rem)}.workflow-header h2 br{display:none}.workflow-navigation{flex-direction:column;width:100%;max-width:none;display:flex}.workflow-navigation>p{margin-bottom:16px}.workflow-track{grid-auto-columns:86%;gap:14px}.workflow-stage{min-height:430px}.workflow-stage h3{font-size:1.5rem}.workflow-stage>p{font-size:.9rem}}@media (prefers-reduced-motion:reduce){.workflow-controls button{transition:none}}main>:is(.hero-stage,.stats-section,.about-section,.work-section,.client-tasks-section,.workflow-section){--color-ink:#20272d;--color-ink-soft:#252d32;--color-ink-raised:#2e363b;--color-paper:#e8e2d7;--color-paper-dim:#d8d1c5;--color-rust:#bcb8ac;--site-type-rgb:232 226 215;--scroll-bg-rgb:32 39 45;--scroll-muted:#bcb8ac;--panel-bg:#e8e2d7;--panel-bg-rgb:232 226 215;--panel-ink:#20272d;--panel-ink-rgb:32 39 45;--panel-muted:#4c5558}main>:is(.sidework-section,.portfolio-section,.experience-section,.writing-section,.contact-section),.site-footer{--color-ink:#e8e2d7;--color-ink-soft:#e1dbcf;--color-ink-raised:#f3efe7;--color-paper:#20272d;--color-paper-dim:#394349;--color-rust:#4c5558;--site-type-rgb:32 39 45;--scroll-bg-rgb:232 226 215;--scroll-muted:#535b60;--panel-bg:#20272d;--panel-bg-rgb:32 39 45;--panel-ink:#e8e2d7;--panel-ink-rgb:232 226 215;--panel-muted:#bcb8ac}main>.sidework-section{border-top:0}#projects{scroll-margin-top:72px}.about-copy p:first-child{color:var(--color-paper);font-size:clamp(1.15rem,1.65vw,1.45rem);line-height:1.65}.portfolio-section .portfolio-heading{justify-content:space-between;align-items:end;gap:32px;display:flex}.portfolio-section .portfolio-heading h2{font-size:clamp(3.2rem,7vw,6rem)}.portfolio-section .portfolio-heading>p{max-width:40ch}.portfolio-section .portfolio-index{border:0;grid-template-columns:1fr 1fr;gap:18px;margin-top:38px;display:grid}.portfolio-section .portfolio-row{color:#20272d;background:#d8d2c6;border:0;border-radius:4px;flex-direction:column;justify-content:space-between;align-items:start;gap:24px;min-height:220px;padding:clamp(24px,3.5vw,42px);display:flex;position:relative;overflow:hidden}.portfolio-section .portfolio-row:first-child{background:#c6c3b6;grid-column:1/-1;grid-template-columns:minmax(0,1fr) minmax(0,.8fr) 52px;align-items:center;min-height:190px;display:grid}.portfolio-section .portfolio-row:nth-child(3){background:#f3efe7}.portfolio-section .portfolio-row-no{display:none}.portfolio-section .portfolio-row-title{max-width:18ch;font-family:var(--font-display);letter-spacing:-.035em;font-size:clamp(1.8rem,3vw,2.8rem);font-weight:500;line-height:1.13}.portfolio-section .portfolio-row-detail{color:#4b5458;max-width:40ch;padding-right:44px;font-size:.95rem;line-height:1.6}.portfolio-section .portfolio-arrow{color:#20272d;border:1px solid #717773;border-radius:50%;place-items:center;width:48px;height:48px;display:grid;position:absolute;bottom:26px;right:26px}.portfolio-section .portfolio-row:first-child .portfolio-arrow{position:static}.portfolio-section .portfolio-row:hover{background:#cec8bb;padding-inline:clamp(24px,3.5vw,42px)}.portfolio-section .portfolio-row:after{display:none}.client-tasks-section .section-heading{grid-template-columns:1fr .65fr;align-items:end;gap:38px;max-width:none;display:grid}.client-tasks-section .section-heading h2{max-width:18ch}.client-tasks-section .section-heading p{max-width:35ch;margin:0}.sidework-section .sidework-block{border-top:0;padding-top:0}.sidework-section .client-list{gap:12px;margin-top:26px}.sidework-section .client-chip{background:#f3efe7;border-radius:999px;padding:12px 18px;font-size:.82rem}@media (width<=900px){.client-tasks-section .section-heading{grid-template-columns:1fr;gap:20px}.portfolio-section .portfolio-heading{flex-direction:column;align-items:start}}@media (width<=600px){.portfolio-section .portfolio-index{grid-template-columns:1fr}.portfolio-section .portfolio-row:first-child{grid-column:auto;align-items:start;display:flex}.portfolio-section .portfolio-row:first-child .portfolio-arrow{position:absolute}.portfolio-section .portfolio-row{min-height:215px}.portfolio-section .portfolio-row-title{max-width:14ch}.portfolio-section .portfolio-row-detail{padding-right:70px;font-size:.85rem}.sidework-section .client-chip{padding:10px 14px;font-size:.76rem}}.hero-waves{z-index:0;pointer-events:none;opacity:.6;width:100%;height:100%;position:absolute;inset:0;-webkit-mask-image:linear-gradient(90deg,#0000 25%,#000 64% 90%,#0000);mask-image:linear-gradient(90deg,#0000 25%,#000 64% 90%,#0000)}.font-display{font-family:var(--font-display)}.site-skip-link{z-index:11000;color:#20272d;background:#e8e2d7;border-radius:4px;padding:14px 20px;font-size:1rem;position:fixed;top:-120px;left:20px}.site-skip-link:focus{outline-offset:3px;outline:2px solid #20272d;top:16px}.site-header{z-index:40;border-bottom:1px solid rgb(var(--site-type-rgb,232 226 215) / .12);color:var(--color-paper);backdrop-filter:blur(16px);background:#20272df5;position:sticky;top:0}.site-header-inner,.section-wrap,.hero-shell{width:min(100%,1440px);margin-inline:auto;padding-inline:clamp(20px,5vw,76px)}.site-header-inner{justify-content:space-between;align-items:center;gap:24px;min-height:72px;display:flex}.site-wordmark{color:var(--color-paper);font-family:var(--font-display);letter-spacing:-.025em;white-space:nowrap;align-items:center;gap:14px;font-size:1.1rem;font-weight:500;text-decoration:none;display:flex}.site-wordmark small{border-left:1px solid rgb(var(--site-type-rgb,232 226 215) / .24);color:rgb(var(--site-type-rgb,232 226 215) / .58);font-family:var(--font-sans);letter-spacing:.14em;padding-left:14px;font-size:.58rem;font-weight:600}.site-nav{color:rgb(var(--site-type-rgb,232 226 215) / .76);align-items:center;gap:clamp(16px,2.2vw,32px);font-size:.82rem;display:flex}.site-nav>a:not(.button){align-items:center;min-height:44px;text-decoration:none;transition:color .18s;display:inline-flex}.site-nav>a:not(.button):hover,.site-nav>a:not(.button):focus-visible{color:var(--color-paper)}.button{white-space:nowrap;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:10px;min-height:48px;padding:0 22px;font-size:.86rem;font-weight:700;line-height:1;text-decoration:none;transition:transform .18s,color .18s,background-color .18s,border-color .18s;display:inline-flex}.button:hover{transform:translateY(-2px)}.button:active{transform:scale(.98)}.button-primary{background:var(--color-paper);color:var(--color-ink)}.button-primary:hover{background:var(--color-rust)}.button-secondary{border-color:rgb(var(--site-type-rgb,232 226 215) / .42);color:var(--color-paper)}.button-secondary:hover{border-color:var(--color-paper);background:rgb(var(--site-type-rgb,232 226 215) / .08)}.button-header{border-color:rgb(var(--site-type-rgb,232 226 215) / .34);min-height:44px;color:var(--color-paper);padding-inline:18px}.button-header:hover{border-color:var(--color-paper);background:var(--color-paper);color:var(--color-ink)}.hero-stage{--hero-progress:0;isolation:isolate;border-bottom:1px solid rgb(var(--site-type-rgb,232 226 215) / .12);background:var(--color-ink);min-height:calc(100svh - 72px);color:var(--color-paper);position:relative}.hero-stage[data-scroll-ready=true]{min-height:160svh}.hero-texture{z-index:-1;opacity:.64;background-image:linear-gradient(90deg,#20272d7a,#20272dc2),url(/images/graphite-paper.webp);background-position:50%;background-size:cover;position:absolute;inset:0}.hero-shell{height:calc(100svh - 72px);position:relative}.hero-stage[data-scroll-ready=true] .hero-shell{z-index:5;position:sticky;top:72px}.hero-layout{width:100%;height:100%;min-height:calc(100svh - 72px);padding-block:clamp(30px,4vw,56px);position:relative}.hero-copy{z-index:5;width:42%;max-width:680px;padding-top:clamp(8px,3vh,30px);position:relative}.hero-eyebrow{color:var(--color-rust);letter-spacing:.13em;text-transform:uppercase;margin:0;font-size:.68rem;font-weight:700;line-height:1.7}.hero-eyebrow span{color:rgb(var(--site-type-rgb,232 226 215) / .45);padding-inline:.2em}.hero-title{max-width:9.5ch;color:var(--color-paper);font-family:var(--font-display);letter-spacing:-.055em;text-shadow:0 1px 0 rgb(var(--site-type-rgb,232 226 215) / .16), 0 -1px 0 #00000042;margin:19px 0 0;font-size:clamp(3.6rem,6.5vw,6.8rem);font-weight:500;line-height:.95}.hero-lede{max-width:54ch;color:rgb(var(--site-type-rgb,232 226 215) / .78);margin:27px 0 0;font-size:clamp(1rem,1.25vw,1.12rem);line-height:1.7}.hero-actions{flex-wrap:wrap;gap:12px;margin-top:30px;display:flex}.hero-portrait{justify-self:end;width:100%;max-width:458px;margin:0}.hero-photo-mat{aspect-ratio:4/5;border:1px solid rgb(var(--site-type-rgb,232 226 215) / .36);background:rgb(var(--site-type-rgb,232 226 215) / .07);box-shadow:inset 0 1px 0 rgb(var(--site-type-rgb,232 226 215) / .15), 0 24px 72px #00000038;padding:8px;position:relative;overflow:hidden}.hero-photo{object-fit:cover;object-position:center;filter:saturate(.82)contrast(1.02);width:calc(100% - 16px);height:calc(100% - 16px);display:block;position:absolute;inset:8px}.hero-photo-neutral{opacity:calc(1 - var(--portrait-progress,0));transform:scale(var(--portrait-scale,1.018))}.hero-photo-smile{opacity:var(--portrait-progress,0);transform:scale(var(--portrait-scale,1.018))}.hero-portrait figcaption{color:rgb(var(--site-type-rgb,232 226 215) / .58);letter-spacing:.1em;text-transform:uppercase;justify-content:space-between;gap:12px;margin-top:12px;font-size:.65rem;display:flex}.section-heading h2,.portfolio-heading h2,.experience-intro h2,.about-wrap h2,.sidework-wrap>h2,.writing-heading h2,.contact-panel h2{color:var(--color-paper);font-family:var(--font-display);letter-spacing:-.045em;margin:0;font-size:clamp(2.1rem,3.4vw,3.65rem);font-weight:500;line-height:1.06}.section-heading p,.portfolio-heading p{max-width:58ch;color:rgb(var(--site-type-rgb,232 226 215) / .65);margin:16px 0 0;font-size:1rem;line-height:1.65}.stats-section,.work-section,.portfolio-section,.experience-section,.about-section,.sidework-section,.writing-section,.contact-section,.site-footer{background:var(--color-ink);color:var(--color-paper)}.stats-section{border-bottom:1px solid rgb(var(--site-type-rgb,232 226 215) / .12)}.stats-wrap{padding-block:28px 36px}.stats-grid{grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.stat-item{border-left:1px solid rgb(var(--site-type-rgb,232 226 215) / .2);padding:5px clamp(14px,2.6vw,38px)}.stat-item:first-child{border-left:0;padding-left:0}.stat-item dt{color:var(--color-rust);font-family:var(--font-display);letter-spacing:-.04em;font-size:clamp(2.1rem,4vw,3.5rem);font-weight:500;line-height:1}.stat-item dd{max-width:18ch;color:rgb(var(--site-type-rgb,232 226 215) / .68);margin:10px 0 0;font-size:.82rem;line-height:1.45}.work-section,.portfolio-section,.experience-section,.about-section,.sidework-section,.writing-section,.contact-section{border-bottom:1px solid rgb(var(--site-type-rgb,232 226 215) / .12)}.work-section .section-wrap,.portfolio-section .section-wrap,.experience-section .section-wrap,.about-section .section-wrap,.sidework-section .section-wrap,.writing-section .section-wrap,.contact-section .section-wrap{padding-block:clamp(66px,8vw,112px)}.section-heading{max-width:760px}.mode-layout{grid-template-columns:minmax(0,1fr) minmax(0,.92fr);gap:clamp(28px,5vw,72px);margin-top:clamp(34px,4vw,58px);display:grid}.mode-master{border:1px solid rgb(var(--site-type-rgb,232 226 215) / .22);min-height:380px;box-shadow:inset 0 1px 0 rgb(var(--site-type-rgb,232 226 215) / .1);background:linear-gradient(#20272d38,#20272de0),url(/images/graphite-paper.webp) 50%/cover;flex-direction:column;justify-content:flex-end;padding:clamp(26px,4vw,52px);display:flex;position:relative;overflow:hidden}.mode-visual{pointer-events:none;flex-shrink:0;width:100%;height:clamp(140px,17vw,210px);margin-bottom:28px;position:relative}.fluid-mark{width:100%;height:100%;position:relative;overflow:hidden}.fluid-mark-static{color:var(--color-paper);font-family:var(--font-display);letter-spacing:-.045em;opacity:1;place-items:center start;font-size:clamp(5.5rem,11vw,9rem);font-weight:500;line-height:1;display:grid;position:absolute;inset:0}.fluid-mark canvas{opacity:.82}.mode-marker{color:var(--color-rust);letter-spacing:.12em;text-transform:uppercase;align-items:center;gap:12px;font-size:.66rem;font-weight:700;line-height:1.5;display:flex}.mode-marker>span:first-child{font-family:var(--font-display);letter-spacing:0;font-size:1.1rem}.mode-master h3,.mode-row h3{color:var(--color-paper);font-family:var(--font-display);letter-spacing:-.04em;margin:14px 0 0;font-size:clamp(2.1rem,3.4vw,3.4rem);font-weight:500;line-height:1.03}.mode-master>p,.mode-row>div>p{max-width:54ch;color:rgb(var(--site-type-rgb,232 226 215) / .73);margin:17px 0 0;font-size:.96rem;line-height:1.7}.mode-signature{border-top:1px solid rgb(var(--site-type-rgb,232 226 215) / .25);color:rgb(var(--site-type-rgb,232 226 215) / .58);letter-spacing:.1em;text-transform:uppercase;margin-top:28px;padding-top:17px;font-size:.68rem;line-height:1.6}.mode-practice{flex-direction:column;justify-content:space-between;display:flex}.mode-row{border-top:1px solid rgb(var(--site-type-rgb,232 226 215) / .2);padding-block:20px 27px}.mode-row:last-child{border-bottom:1px solid rgb(var(--site-type-rgb,232 226 215) / .2)}.mode-row h3{margin-top:10px;font-size:clamp(1.7rem,2.4vw,2.4rem)}.capability-list{grid-template-columns:1fr 1fr;gap:10px 24px;margin:17px 0 0;padding:0;list-style:none;display:grid}.capability-list li{color:rgb(var(--site-type-rgb,232 226 215) / .7);padding-left:15px;font-size:.83rem;line-height:1.55;position:relative}.capability-list li:before{background:var(--color-rust);content:"";border-radius:50%;width:5px;height:5px;position:absolute;top:.62em;left:0}.mode-note{border-left:1px solid var(--color-rust);padding-left:13px;color:rgb(var(--site-type-rgb,232 226 215) / .62)!important;font-size:.82rem!important}.portfolio-heading{justify-content:space-between;align-items:end;gap:32px;display:flex}.portfolio-heading h2{max-width:10ch}.portfolio-heading p{max-width:35ch;margin:0 0 4px}.portfolio-index{border-top:1px solid rgb(var(--site-type-rgb,232 226 215) / .24);margin-top:38px}.portfolio-row{border-bottom:1px solid rgb(var(--site-type-rgb,232 226 215) / .2);min-height:86px;color:var(--color-paper);grid-template-columns:54px minmax(190px,.9fr) minmax(240px,1.1fr) 32px;align-items:center;gap:18px;text-decoration:none;transition:background-color .18s,padding .18s;display:grid}.portfolio-row:hover{background:rgb(var(--site-type-rgb,232 226 215) / .045);padding-inline:12px}.portfolio-row-no{color:var(--color-rust);font-family:var(--font-display);font-size:1.05rem}.portfolio-row-title{font-family:var(--font-display);letter-spacing:-.02em;font-size:clamp(1.25rem,2.1vw,1.75rem)}.portfolio-row-detail{color:rgb(var(--site-type-rgb,232 226 215) / .56);font-size:.79rem;line-height:1.45}.portfolio-arrow{color:var(--color-rust);justify-self:end;font-size:1.25rem;transition:transform .18s}.portfolio-row:hover .portfolio-arrow{transform:translate(3px,-3px)}.experience-wrap{grid-template-columns:minmax(220px,.7fr) minmax(0,1.3fr);gap:clamp(36px,7vw,110px);display:grid}.experience-intro h2{max-width:9ch;font-size:clamp(2.2rem,3.9vw,4.1rem)}.experience-list{border-top:1px solid rgb(var(--site-type-rgb,232 226 215) / .24);margin:0;padding:0;list-style:none}.experience-entry{border-bottom:1px solid rgb(var(--site-type-rgb,232 226 215) / .2);grid-template-columns:minmax(110px,.35fr) minmax(0,1fr);gap:24px;padding-block:25px;display:grid}.experience-period{color:var(--color-rust);font-family:var(--font-display);margin:4px 0 0;font-size:1.2rem}.experience-entry h3{color:var(--color-paper);font-family:var(--font-display);letter-spacing:-.02em;margin:0;font-size:1.45rem;font-weight:500}.experience-role{color:rgb(var(--site-type-rgb,232 226 215) / .82);margin:5px 0 0;font-size:.88rem;font-weight:700}.experience-description{max-width:64ch;color:rgb(var(--site-type-rgb,232 226 215) / .64);margin:11px 0 0;font-size:.86rem;line-height:1.65}.about-wrap{grid-template-columns:minmax(190px,.55fr) minmax(0,1.45fr);gap:clamp(36px,8vw,130px);display:grid}.about-wrap h2{font-size:clamp(2rem,3vw,3.1rem)}.about-copy{max-width:75ch}.about-copy p{color:rgb(var(--site-type-rgb,232 226 215) / .72);margin:0 0 17px;font-size:clamp(.96rem,1.15vw,1.08rem);line-height:1.8}.about-copy p:last-child{margin-bottom:0}.sidework-wrap{grid-template-columns:minmax(180px,.55fr) minmax(0,1.45fr);gap:30px clamp(36px,8vw,130px);display:grid}.sidework-wrap>h2{grid-row:span 2;max-width:8ch;font-size:clamp(2.1rem,3.3vw,3.4rem)}.sidework-block{border-top:1px solid rgb(var(--site-type-rgb,232 226 215) / .22);padding-top:18px}.sidework-block h3{color:var(--color-rust);letter-spacing:.13em;text-transform:uppercase;margin:0;font-size:.68rem;font-weight:700}.sidework-block>p{color:rgb(var(--site-type-rgb,232 226 215) / .62);margin:10px 0 0;font-size:.84rem}.pet-project-list{flex-wrap:wrap;gap:12px 28px;margin:14px 0 0;padding:0;list-style:none;display:flex}.pet-project-list li{color:rgb(var(--site-type-rgb,232 226 215) / .62);font-size:.85rem}.pet-project-list a{color:var(--color-paper);text-underline-offset:4px;font-weight:700;text-decoration-thickness:1px}.pet-project-list a:hover{color:var(--color-rust)}.client-list{flex-wrap:wrap;gap:9px;margin-top:15px;display:flex}.client-chip{border:1px solid rgb(var(--site-type-rgb,232 226 215) / .26);min-height:44px;color:rgb(var(--site-type-rgb,232 226 215) / .74);align-items:center;padding:8px 12px;font-size:.74rem;transition:border-color .16s,color .16s;display:inline-flex}.client-chip:hover,.client-chip:focus-visible{border-color:var(--color-rust);color:var(--color-paper)}.writing-heading{justify-content:space-between;align-items:end;gap:28px;display:flex}.article-entry{flex-direction:column;min-width:0;display:flex}.article-entry>.article-row{flex:1}.article-pdf{min-height:44px;color:var(--color-paper);text-underline-offset:5px;align-self:flex-start;align-items:center;gap:12px;margin-bottom:16px;font-size:.85rem;display:inline-flex}.article-pdf:hover{color:var(--color-rust)}.writing-projects-heading{margin-top:clamp(48px,6vw,80px)}.writing-projects-heading h3{color:var(--color-paper);font-family:var(--font-display);letter-spacing:-.035em;margin:0;font-size:clamp(1.8rem,3vw,2.6rem);font-weight:500}.writing-projects-heading p{max-width:48ch;color:rgb(var(--site-type-rgb,232 226 215) / .7);margin:12px 0 0;font-size:.95rem;line-height:1.6}.article-list .article-row{gap:24px;padding-right:28px}.writing-links{flex-wrap:wrap;gap:12px 24px;display:flex}.writing-links a{color:rgb(var(--site-type-rgb,232 226 215) / .72);font-size:.78rem;text-decoration:none}.writing-links a span{color:var(--color-rust)}.writing-links a:hover{color:var(--color-paper)}.article-list{grid-template-columns:1fr 1fr;gap:0 42px;margin-top:34px;display:grid}.article-row{border-top:1px solid rgb(var(--site-type-rgb,232 226 215) / .23);min-height:196px;color:var(--color-paper);flex-direction:column;justify-content:space-between;padding-block:20px 22px;text-decoration:none;display:flex;position:relative}.article-row>div>p{color:var(--color-rust);letter-spacing:.13em;text-transform:uppercase;margin:0;font-size:.65rem;font-weight:700}.article-row h3{max-width:22ch;font-family:var(--font-display);letter-spacing:-.025em;margin:14px 0 0;font-size:clamp(1.35rem,2vw,1.8rem);font-weight:500;line-height:1.2}.article-note{color:rgb(var(--site-type-rgb,232 226 215) / .56);font-size:.75rem}.article-arrow{color:var(--color-rust);font-size:1.15rem;transition:transform .18s;position:absolute;bottom:20px;right:0}.article-row:hover .article-arrow{transform:translate(3px,-3px)}.contact-panel{border:1px solid rgb(var(--site-type-rgb,232 226 215) / .26);box-shadow:inset 0 1px 0 rgb(var(--site-type-rgb,232 226 215) / .1);background:linear-gradient(100deg,#20272da3,#20272dd6),url(/images/graphite-paper.webp) 50%/cover;grid-template-columns:minmax(0,1.1fr) auto;align-items:center;gap:26px 50px;padding:clamp(28px,5vw,68px);display:grid}.contact-panel h2{max-width:11ch}.contact-panel>div:first-child>p{max-width:56ch;color:rgb(var(--site-type-rgb,232 226 215) / .7);margin:17px 0 0;font-size:.95rem;line-height:1.7}.contact-actions{flex-direction:column;gap:10px;display:flex}.contact-note{color:rgb(var(--site-type-rgb,232 226 215) / .58);grid-column:1/-1;margin:0;font-size:.8rem}.contact-note a{color:var(--color-paper);text-decoration:underline;-webkit-text-decoration-color:rgb(var(--site-type-rgb,232 226 215) / .4);-webkit-text-decoration-color:rgb(var(--site-type-rgb,232 226 215) / .4);text-decoration-color:rgb(var(--site-type-rgb,232 226 215) / .4);text-underline-offset:4px}.contact-note a:hover{-webkit-text-decoration-color:var(--color-paper);-webkit-text-decoration-color:var(--color-paper);text-decoration-color:var(--color-paper)}.site-footer{border-top:1px solid rgb(var(--site-type-rgb,232 226 215) / .12)}.footer-inner{min-height:88px;color:rgb(var(--site-type-rgb,232 226 215) / .58);flex-direction:column;justify-content:center;gap:12px;padding-block:18px;font-size:.78rem;display:flex}.footer-inner p{margin:0}.footer-inner>div{gap:22px;display:flex}.footer-inner a{color:inherit;text-decoration:none}.footer-inner a:hover{color:var(--color-paper)}@media (width>=760px){.footer-inner{flex-direction:row;justify-content:space-between;align-items:center}}@media (width<=900px){.hero-layout{grid-template-columns:minmax(0,1fr) minmax(230px,.72fr);gap:34px}.hero-title{font-size:clamp(3.5rem,8vw,5.2rem)}.hero-portrait figcaption{flex-direction:column;gap:4px}.portfolio-heading{flex-direction:column;align-items:start}.portfolio-heading h2{max-width:14ch}.site-header-inner{min-height:64px}.site-wordmark{font-size:1rem}.site-wordmark small{display:none}.site-nav{gap:10px}.site-nav>a:not(.button){display:none}.button-header{min-height:44px;padding-inline:14px;font-size:.74rem}.hero-layout{grid-template-columns:1fr;gap:28px;padding-block:32px 44px}.hero-title{max-width:11ch;font-size:clamp(3.35rem,13vw,5.4rem)}.hero-lede{margin-top:19px;font-size:.98rem}.hero-actions{margin-top:23px}.hero-portrait{justify-self:start;max-width:510px}.hero-portrait figcaption{flex-direction:row}.stats-grid{grid-template-columns:1fr 1fr;row-gap:24px}.stat-item:nth-child(odd){border-left:0;padding-left:0}.stat-item:nth-child(2n){padding-right:0}.mode-layout{grid-template-columns:1fr}.mode-master{min-height:310px}.mode-visual{width:100%;height:140px;top:auto;right:auto}.fluid-mark-static{font-size:4.5rem}.portfolio-row{grid-template-columns:30px minmax(0,1fr) 24px;gap:12px;padding-block:15px}.portfolio-row-detail{grid-area:2/2}.portfolio-arrow{grid-area:1/3/span 2}.experience-wrap,.about-wrap{grid-template-columns:1fr;gap:25px}.experience-intro h2{max-width:14ch}.experience-entry{grid-template-columns:minmax(82px,.35fr) minmax(0,1fr);gap:15px}.sidework-wrap{grid-template-columns:1fr;gap:22px}.sidework-wrap>h2{grid-row:auto;max-width:12ch}.writing-heading{flex-direction:column;align-items:start}.article-list{grid-template-columns:1fr}.article-row{min-height:170px}.contact-panel{grid-template-columns:1fr}.contact-panel h2{max-width:13ch}.contact-actions{flex-flow:wrap}.contact-note{grid-column:auto}}@media (width<=440px){.hero-eyebrow{letter-spacing:.1em;font-size:.59rem}.hero-title{font-size:clamp(3rem,14vw,3.8rem)}.hero-actions{flex-direction:column;align-items:stretch}.hero-actions .button{width:100%}.capability-list{grid-template-columns:1fr}.hero-portrait figcaption{flex-direction:column}.contact-actions{flex-direction:column;align-items:stretch}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.fluid-mark-static{opacity:1}.fluid-mark canvas{display:none}.button,.portfolio-row,.portfolio-arrow,.article-arrow{transition:none}.hero-photo-neutral{opacity:0}.hero-photo-smile{opacity:1}.hero-photo{transform:none}}.hero-emboss{text-shadow:0 1px 0 rgb(var(--site-type-rgb,232 226 215) / .16), 0 -1px 0 #00000042}.case-body h2{font-family:var(--font-display);color:var(--color-ink);margin-top:2.5rem;margin-bottom:.75rem;font-size:1.375rem;font-weight:500}.case-body h2:first-child{margin-top:0}.case-body p{color:#20272dcc;line-height:1.75}@supports (color:color-mix(in lab, red, red)){.case-body p{color:color-mix(in oklab, var(--color-ink) 80%, transparent)}}.case-body p{margin-bottom:1rem}.hero-gradient{background:radial-gradient(140% 120% at 15% 0,#3a4245 0%,#20272d 58%,#1b2025 100%) 0 0/160% 160%;animation:20s cubic-bezier(.45,0,.15,1) infinite hero-drift}.hero-sheen{mix-blend-mode:soft-light;background:linear-gradient(115deg,#0000 35%,#e8e2d724 48%,#e8e2d709 55%,#0000 68%) 0 0/320% 320%;animation:9s cubic-bezier(.65,0,.35,1) infinite hero-shimmer}@keyframes hero-drift{0%{background-position:0 0}25%{background-position:65% 15%}55%{background-position:100% 40%}80%{background-position:40% 60%}to{background-position:0 0}}@keyframes hero-shimmer{0%{background-position:130% -20%}35%{background-position:60% 30%}55%{background-position:-10% 60%}75%{background-position:35% 15%}to{background-position:130% -20%}}.hero-fade-top{background:linear-gradient(to top, transparent 0%, var(--color-paper) 100%)}.hero-fade-bottom{background:linear-gradient(to bottom, transparent 0%, var(--color-paper) 100%)}@media (prefers-reduced-motion:reduce){.hero-gradient,.hero-sheen{animation:none}}.tooltip{position:relative}.tooltip:after{content:attr(data-tooltip);z-index:20;background:var(--color-paper);width:max-content;max-width:220px;color:var(--color-ink);text-align:center;opacity:0;pointer-events:none;border-radius:8px;padding:.45rem .7rem;font-size:.75rem;font-weight:500;line-height:1.3;transition:opacity .15s,transform .15s;position:absolute;bottom:calc(100% + 9px);left:50%;transform:translate(-50%,4px)}.tooltip:before{content:"";z-index:20;border:5px solid #0000;border-top-color:var(--color-paper);opacity:0;pointer-events:none;transition:opacity .15s,transform .15s;position:absolute;bottom:calc(100% + 4px);left:50%;transform:translate(-50%,4px)}.tooltip:hover:after,.tooltip:hover:before,.tooltip:focus-visible:after,.tooltip:focus-visible:before{opacity:1;transform:translate(-50%)}@media (width<=900px){.sidework-block,.client-list{position:relative}.sidework-block .tooltip{position:static}.sidework-block .tooltip:after{box-sizing:border-box;max-width:min(260px,100vw - 48px)}.client-chip:hover{translate:none}}[data-reveal]{opacity:0;transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1);transform:translateY(28px)}[data-reveal].is-visible{opacity:1;transform:none}[data-reveal-group]>[data-reveal]:first-child{transition-delay:0s}[data-reveal-group]>[data-reveal]:nth-child(2){transition-delay:90ms}[data-reveal-group]>[data-reveal]:nth-child(3){transition-delay:.18s}[data-reveal-group]>[data-reveal]:nth-child(4){transition-delay:.27s}[data-reveal-group]>[data-reveal]:nth-child(5){transition-delay:.36s}[data-reveal-group]>[data-reveal]:nth-child(6){transition-delay:.45s}@media (prefers-reduced-motion:reduce){[data-reveal]{opacity:1;transition:none;transform:none}}.hero-portrait{z-index:3;width:min(48vw,620px);height:84%;margin:0;position:absolute;bottom:max(8%,76px);right:max(6%,76px)}.hero-frame-stack{width:100%;height:100%;position:relative}.hero-frame{object-fit:contain;object-position:center bottom;opacity:0;filter:saturate(.88)contrast(1.01);width:100%;height:100%;position:absolute;inset:0}.hero-frame:first-child{opacity:1}.hero-guide{z-index:1;pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.hero-guide path{fill:none;stroke:#a7a18f61;stroke-width:1px;vector-effect:non-scaling-stroke}.hero-number-markers{z-index:4;pointer-events:none;position:absolute;inset:0}.hero-number-marker{aspect-ratio:1;width:52px;box-shadow:inset 0 1px 0 rgb(var(--site-type-rgb,232 226 215) / .14), 0 12px 32px #00000038;color:var(--color-paper);font-family:var(--font-display);letter-spacing:-.04em;opacity:0;background:#20272deb;border:1px solid #a7a18fbd;border-radius:50%;place-items:center;font-size:.76rem;transition:opacity .3s,transform .3s,background-color .3s;display:grid;position:absolute;transform:translate(-50%,-50%)}.hero-number-marker:before{border:1px solid rgb(var(--site-type-rgb,232 226 215) / .14);border-radius:inherit;content:"";position:absolute;inset:4px}.hero-number-marker-1{opacity:1;top:29%;left:46%}.hero-number-marker-2{top:34%;left:97%}.hero-number-marker-3{top:96.5%;left:74%}.hero-number-marker-4{top:72%;left:97%}.hero-scroll-cue{z-index:5;color:rgb(var(--site-type-rgb,232 226 215) / .56);letter-spacing:.11em;text-transform:uppercase;align-items:center;gap:10px;margin:0;font-size:.62rem;display:flex;position:absolute;bottom:18px;left:0}.hero-scroll-cue span{color:var(--color-rust);font-size:1rem}.hero-step{z-index:5;max-width:44%;color:var(--color-paper);align-items:flex-start;gap:18px;display:flex;position:absolute;bottom:49px;left:0}.hero-step-index{color:var(--color-stone);white-space:nowrap;font-variant-numeric:tabular-nums;letter-spacing:.1em;padding-top:12px;font-size:.85rem}.hero-step-name{font-family:var(--font-display);letter-spacing:-.02em;font-size:clamp(2rem,3.5vw,3.5rem);line-height:1.06;display:block}.hero-step-copy{gap:12px;min-width:0;display:grid}.hero-step-detail{max-width:26ch;color:rgb(var(--site-type-rgb,232 226 215) / .86);font-size:clamp(1.125rem,1.6vw,1.5rem);line-height:1.35}.hero-portrait figcaption{color:rgb(var(--site-type-rgb,232 226 215) / .58);letter-spacing:.1em;text-align:right;text-transform:uppercase;flex-direction:column;gap:4px;font-size:.58rem;display:flex;position:absolute;bottom:14px;right:0}@media (width<=900px){.hero-copy{width:42%}.hero-stage[data-scroll-ready=true]{min-height:144svh}.hero-shell{height:calc(100svh - 64px)}.hero-stage[data-scroll-ready=true] .hero-shell{top:64px}.hero-layout{min-height:calc(100svh - 64px);padding-block:22px 42px;display:block}.hero-copy{width:100%;max-width:78%;padding-top:0}.hero-title{max-width:9ch;font-size:clamp(2.8rem,11.5vw,4rem)}.hero-lede{max-width:32ch;margin-top:16px;font-size:.91rem;line-height:1.55}.hero-actions{gap:8px;margin-top:19px}.hero-portrait{width:min(48vw,230px);height:34%;bottom:max(8%,60px);right:max(11%,60px)}.hero-number-marker{width:42px;font-size:.62rem}.hero-number-marker-1{top:70%;left:25%}.hero-number-marker-2{top:75%;left:97%}.hero-number-marker-3{top:96%;left:74%}.hero-number-marker-4{top:50%;left:97%}.hero-step{gap:8px;max-width:56%;bottom:47px}.hero-step-index{padding-top:6px;font-size:.7rem}.hero-step-name{font-size:clamp(1.5rem,5vw,2rem)}.hero-step-copy{gap:8px}.hero-step-detail{max-width:24ch;font-size:1rem;line-height:1.35}.hero-scroll-cue{letter-spacing:.08em;max-width:58%;font-size:.53rem;bottom:16px}.hero-portrait figcaption{font-size:.48rem;bottom:9px;right:8px}}@media (width<=440px){.hero-copy{max-width:78%}.hero-portrait{width:min(48vw,230px);height:34%;right:max(11%,52px)}.hero-number-marker{width:36px}.hero-actions{flex-direction:column;align-items:flex-start}.hero-actions .button{width:min(100%,280px)}.hero-scroll-cue{max-width:55%}.hero-step{max-width:59%}}@media (prefers-reduced-motion:reduce){.hero-stage,.hero-stage[data-scroll-ready=true]{min-height:calc(100svh - 72px)}.hero-shell,.hero-stage[data-scroll-ready=true] .hero-shell{height:calc(100svh - 72px);position:relative;top:auto}.hero-layout{min-height:calc(100svh - 72px)}.hero-frame{opacity:0!important}.hero-frame-smile{opacity:1!important}.hero-guide,.hero-number-markers{display:none}}@media (width<=700px) and (prefers-reduced-motion:reduce){.hero-shell,.hero-stage[data-scroll-ready=true] .hero-shell,.hero-layout{height:auto;min-height:calc(100svh - 64px)}}.mode-master,.contact-panel{color:#20272d;background:linear-gradient(125deg,#efe9def0,#d5ccb9e6),url(/images/graphite-paper.webp) 50%/cover;border-color:#a7a18f;box-shadow:inset 0 1px #ffffff8c,0 18px 55px #0000001a}.mode-master h3,.mode-master .fluid-mark-static,.contact-panel h2{color:#20272d}.mode-master>p,.contact-panel>div:first-child>p{color:#434b4e}.mode-master .mode-marker{color:#4c5555}.mode-master .mode-signature{color:#4c5555;border-color:#20272d3d}.mode-master .fluid-mark-static{text-shadow:0 1px #fff9}.contact-panel .button-primary{color:#e8e2d7;background:#20272d;border-color:#20272d}.contact-panel .button-primary:hover{background:#39434b}.contact-panel .button-secondary{color:#20272d;border-color:#20272d73}.contact-panel .button-secondary:hover{background:#20272d0f;border-color:#20272d}.contact-panel .contact-note,.contact-panel .contact-note a{color:#434b4e}.mode-master>.surface-light,.contact-panel>.surface-light{background:radial-gradient(ellipse 300px 210px at var(--light-x,50%) var(--light-y,50%), #ffffff7a, transparent 80%)}.tactile-surface{isolation:isolate;position:relative}.surface-light{z-index:-1;border-radius:inherit;pointer-events:none;opacity:0;background:radial-gradient(ellipse 260px 180px at var(--light-x,50%) var(--light-y,50%), rgb(var(--site-type-rgb,232 226 215) / .14), transparent 75%), radial-gradient(ellipse 580px 400px at var(--light-x,50%) var(--light-y,50%), #a7a18f14, transparent 80%);transition:opacity .26s cubic-bezier(.23,1,.32,1);position:absolute;inset:0;overflow:hidden}.surface-light:after{content:"";border:1px solid rgb(var(--site-type-rgb,232 226 215) / .45);border-radius:inherit;-webkit-mask-image:radial-gradient(ellipse 220px 200px at var(--light-x,50%) var(--light-y,50%), #000, transparent 90%);-webkit-mask-image:radial-gradient(ellipse 220px 200px at var(--light-x,50%) var(--light-y,50%), #000, transparent 90%);mask-image:radial-gradient(ellipse 220px 200px at var(--light-x,50%) var(--light-y,50%), #000, transparent 90%);position:absolute;inset:0}.tactile-surface[data-lit]>.surface-light{opacity:1}.mode-master{transition:border-color .22s,translate .22s cubic-bezier(.23,1,.32,1)}.portfolio-row{position:relative}.portfolio-row:after{content:"";background:var(--color-paper);transform-origin:0;height:1px;transition:transform .24s cubic-bezier(.23,1,.32,1);position:absolute;bottom:-1px;left:0;right:0;transform:scaleX(0)}.client-chip{transition:translate .18s,border-color .18s,background-color .18s,color .18s}.button{transition:transform .18s,scale .14s,color .18s,background-color .18s,border-color .18s}@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){.mode-master:hover{border-color:rgb(var(--site-type-rgb,232 226 215) / .5);translate:0 -3px}.portfolio-row:hover:after{transform:scaleX(1)}.client-chip:hover{background:rgb(var(--site-type-rgb,232 226 215) / .07);translate:0 -2px}.button:active{scale:.97}}@media (prefers-reduced-motion:reduce){.surface-light{display:none}.mode-master,.client-chip,.button,.portfolio-row:after{transition:none}}html.scroll-palette .site-header{background:rgb(var(--scroll-bg-rgb) / .96)}html.scroll-palette .hero-texture{opacity:.16}html.scroll-palette :is(.site-wordmark small,.site-nav,.hero-lede,.hero-step-detail,.hero-scroll-cue,.hero-portrait figcaption,.stat-item dd,.section-heading>p,.portfolio-heading>p,.mode-row>div>p,.capability-list li,.mode-note,.portfolio-row-detail,.experience-role,.experience-description,.about-copy p,.sidework-block>p,.pet-project-list li,.client-chip,.writing-projects-heading p,.writing-links a,.article-note,.footer-inner){color:var(--scroll-muted)}html.scroll-palette .mode-note{color:var(--scroll-muted)!important}html.scroll-palette .hero-number-marker{background:rgb(var(--scroll-bg-rgb) / .94)}html.scroll-palette :focus-visible{outline-color:var(--color-paper)}html.scroll-palette :is(.mode-master,.contact-panel){background:linear-gradient(rgb(var(--panel-bg-rgb) / .96), rgb(var(--panel-bg-rgb) / .96)), url(/images/graphite-paper.webp) center / cover;color:var(--panel-ink);border-color:rgb(var(--panel-ink-rgb) / .25)}html.scroll-palette :is(.mode-master h3,.mode-master .fluid-mark-static,.contact-panel h2){color:var(--panel-ink);text-shadow:none}html.scroll-palette :is(.mode-master>p,.mode-master .mode-marker,.mode-master .mode-signature,.contact-panel>div:first-child>p,.contact-panel .contact-note,.contact-panel .contact-note a){color:var(--panel-muted);border-color:rgb(var(--panel-ink-rgb) / .25)}html.scroll-palette .contact-panel .button-primary{background:var(--panel-ink);color:var(--panel-bg);border-color:var(--panel-ink)}html.scroll-palette .contact-panel .button-secondary{color:var(--panel-ink);border-color:rgb(var(--panel-ink-rgb) / .6)}html.scroll-palette .contact-panel .button-secondary:hover{background:rgb(var(--panel-ink-rgb) / .08)}html.scroll-palette .contact-panel .button-primary:hover{opacity:.85}html.scroll-palette :is(.mode-master,.contact-panel)>.surface-light{background:radial-gradient(ellipse 300px 210px at var(--light-x,50%) var(--light-y,50%), rgb(var(--panel-ink-rgb) / .12), transparent 80%)}.experience-entry h3,.experience-period,.portfolio-row-title,.stat-item dt,.mode-row h3{font-family:var(--font-sans)}.experience-entry h3{font-size:clamp(1.15rem,1.5vw,1.4rem);font-weight:650;line-height:1.4}.experience-period{font-variant-numeric:tabular-nums;font-size:1rem;font-weight:500;line-height:1.5}.portfolio-row-title{font-weight:600}.experience-intro h2{max-width:14ch;font-size:clamp(2rem,3vw,3rem);line-height:1.15}.hero-title{text-shadow:none}.hero-step-name{font-family:var(--font-sans);letter-spacing:-.035em;font-weight:550}.hero-department{border-left:2px solid var(--color-rust);gap:7px;max-width:48ch;margin-top:22px;padding-left:16px;display:grid}.hero-department strong{font-size:clamp(.95rem,1.25vw,1.15rem);font-weight:700;line-height:1.5}.hero-department>span{color:var(--scroll-muted,#bcb8ac);font-size:.82rem;line-height:1.55}.hero-ground{z-index:4;border-top:1px solid rgb(var(--site-type-rgb,232 226 215) / .55);border-bottom:1px solid rgb(var(--site-type-rgb,232 226 215) / .16);background:linear-gradient(rgb(var(--site-type-rgb,232 226 215) / .13), transparent);height:12px;position:absolute;bottom:-10px;left:-12px;right:-12px}.hero-ground:after{filter:blur(10px);opacity:.23;content:"";background:#000;border-radius:50%;height:14px;position:absolute;top:10px;left:8%;right:8%}.hero-portrait figcaption{bottom:-42px}.experience-label{color:var(--scroll-muted,#bcb8ac);margin:0 0 22px;font-size:.88rem;font-weight:650}.projects-intro h2{font-family:var(--font-display);letter-spacing:-.04em;margin:0;font-size:clamp(2.1rem,3.3vw,3.4rem);font-weight:500;line-height:1.15}.projects-intro>p{max-width:26ch;color:var(--scroll-muted,#bcb8ac);margin:22px 0 0;font-size:.95rem;line-height:1.7}.sidework-block>.projects-roles{margin-top:0}.client-project-grid{grid-template-columns:1fr 1fr;column-gap:32px;margin:26px 0 0;padding:0;list-style:none;display:grid}.client-project-grid>li{border-top:1px solid rgb(var(--site-type-rgb,232 226 215) / .17);padding:22px 0}.client-project-grid h3{color:var(--color-paper);letter-spacing:-.02em;text-transform:none;margin:0;font-size:1rem;font-weight:650;line-height:1.5}.client-project-grid p{color:var(--scroll-muted,#bcb8ac);margin:10px 0 0;font-size:.85rem;line-height:1.65}.contact-panel .contact-motto{border-top:1px solid rgb(var(--panel-ink-rgb,32 39 45) / .2);color:var(--panel-ink,#20272d);font-family:var(--font-display);grid-column:1/-1;margin:0;padding-top:20px;font-size:clamp(1.3rem,2.1vw,1.9rem);line-height:1.4}@media (width<=540px){.client-project-grid{grid-template-columns:1fr}}@media (width<=900px){.hero-stage{--mobile-hero-height:max(calc(100svh - 64px), calc(var(--hero-copy-height,420px) + 430px))}.hero-stage .hero-shell,.hero-stage[data-scroll-ready=true] .hero-shell,.hero-stage .hero-layout{height:var(--mobile-hero-height);min-height:var(--mobile-hero-height)}.hero-stage[data-scroll-ready=true]{min-height:calc(var(--mobile-hero-height) + 65svh)}.hero-stage[data-scroll-ready=true] .hero-shell{top:min(64px, calc(100svh - var(--mobile-hero-height)))}.hero-stage .hero-copy{max-width:100%}.hero-stage .hero-title{max-width:11ch;font-size:clamp(2.35rem,10.5vw,3.9rem)}.hero-stage .hero-lede{max-width:36ch}.hero-stage .hero-portrait{width:min(48vw,230px);height:200px;bottom:210px;right:max(11%,60px)}.hero-stage .hero-portrait figcaption{display:none}.hero-stage .hero-step{gap:14px;width:100%;max-width:none;bottom:54px;left:0}.hero-stage .hero-step-copy{gap:10px}.hero-stage .hero-step-name{font-size:clamp(1.45rem,5.4vw,2rem)}.hero-stage .hero-step-detail{max-width:31ch;font-size:1rem}.hero-stage .hero-scroll-cue{max-width:100%;bottom:20px}.hero-stage .hero-waves{opacity:.4;-webkit-mask-image:linear-gradient(#0000 40%,#000 65%,#0000 95%);mask-image:linear-gradient(#0000 40%,#000 65%,#0000 95%)}}@media (prefers-reduced-motion:reduce) and (width<=900px){.hero-stage .hero-shell{position:relative;top:auto}}@media (width<=440px){.site-header-inner{gap:10px}.site-wordmark{gap:8px;font-size:.85rem}.button-header{padding-inline:10px;font-size:.69rem}.section-heading h2{font-size:clamp(1.8rem,7.6vw,2.1rem)}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@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-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@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-outline-style{syntax:"*";inherits:false;initial-value:solid}@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}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}.personal-monogram[data-astro-cid-n22k7olv]{flex-shrink:0;align-items:center;width:34px;height:25px;display:inline-flex}.personal-monogram[data-astro-cid-n22k7olv] svg{width:100%;height:100%;display:block}@media (width<=440px){.personal-monogram[data-astro-cid-n22k7olv]{width:27px;height:21px}}.signature-overlay[data-astro-cid-ofscip2q]{z-index:10000;color:#e8e2d7;background:#20272d;place-items:center;display:grid;position:fixed;inset:0}.signature-overlay[data-astro-cid-ofscip2q][hidden]{display:none}.signature-content[data-astro-cid-ofscip2q]{justify-items:center;gap:26px;padding:32px;font-family:Manrope,sans-serif;font-size:1rem;display:grid}.signature-content[data-astro-cid-ofscip2q] .personal-monogram{width:138px;height:90px}.signature-progress[data-astro-cid-ofscip2q]{background:#555c5e;width:120px;height:1px;overflow:hidden}.signature-progress[data-astro-cid-ofscip2q]:after{content:"";transform-origin:0;background:#e8e2d7;height:100%;animation:1.1s ease-in-out infinite signature-loading;display:block}.signature-caption[data-astro-cid-ofscip2q]{color:#bcb8ac;font-size:.75rem}@keyframes signature-loading{0%{transform:translate(-100%)scaleX(.3)}to{transform:translate(100%)scaleX(.8)}}@media (prefers-reduced-motion:reduce){.signature-progress[data-astro-cid-ofscip2q]:after{animation:none;transform:scaleX(.5)}}
