@font-face{font-family:GeistMono;src:url(../media/GeistMono_Variable.p.3ms9vq719j3f8.woff2)format("woff2");font-display:swap;font-weight:100 900}.geistmono_157ca88a-module__iaM1Ya__className{font-family:GeistMono,ui-monospace,SFMono-Regular,Roboto Mono,Menlo,Monaco,Liberation Mono,DejaVu Sans Mono,Courier New,monospace}.geistmono_157ca88a-module__iaM1Ya__variable{--font-geist-mono:"GeistMono", ui-monospace, SFMono-Regular, Roboto Mono, Menlo, Monaco, Liberation Mono, DejaVu Sans Mono, Courier New, monospace}
@font-face{font-family:GeistSans;src:url(../media/Geist_Variable-s.p.0mrjj4bg00-he.woff2)format("woff2");font-display:swap;font-weight:100 900}@font-face{font-family:GeistSans Fallback;src:local(Arial);ascent-override:94.56%;descent-override:27.76%;line-gap-override:0.0%;size-adjust:106.28%}.geistsans_d5a4f12f-module__Ur3q_a__className{font-family:GeistSans,GeistSans Fallback}.geistsans_d5a4f12f-module__Ur3q_a__variable{--font-geist-sans:"GeistSans", "GeistSans Fallback"}
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){:root,:host{--shimmer-angle:20deg}*,: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-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-ease:initial;--scroll-fade-t:0px;--scroll-fade-b:0px;--scroll-fade-s:0px;--scroll-fade-e:0px;--scroll-fade-mask:initial;--shimmer-image:initial;--shimmer-text-fill: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:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--radius-sm:.25rem;--radius-lg:.5rem;--shadow-xs:0 1px 2px 0 #0000000d;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--ease-in:cubic-bezier(.4, 0, 1, 1);--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)}}@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]){-webkit-text-decoration:underline dotted;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;-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{.pointer-events-none{pointer-events:none}.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}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.inset-0{inset:0}.isolate{isolation:isolate}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.grid{display:grid}.hidden{display:none}.size-full{width:100%;height:100%}.\!transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)!important}.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}.border{border-style:var(--tw-border-style);border-width:1px}.opacity-0{opacity:0}.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{-webkit-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,);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-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.ease-in{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}.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)}.data-\[ready\=true\]\:opacity-100[data-ready=true]{opacity:1}}@property --scroll-fade-t{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --scroll-fade-b{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --scroll-fade-s{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --scroll-fade-e{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --scroll-fade-mask{syntax:"*";inherits:false}@property --shimmer-angle{syntax:"<angle>";inherits:true;initial-value:20deg}@property --shimmer-image{syntax:"*";inherits:false}@property --shimmer-text-fill{syntax:"*";inherits:false}@media (prefers-reduced-motion:reduce){.shimmer{-webkit-text-fill-color:currentColor;background-image:none;animation:none}}:root{--background:#f6f7f9;--surface:#fff;--surface-subtle:#eef1f4;--foreground:#0c0f14;--muted:#5b6472;--faint:#8b93a1;--border:#e2e5eb;--border-strong:#c9cfd9;--accent:#2761e8;--accent-strong:#1c49c2;--accent-soft:#dfe9fd;--blue:#2563eb;--warning:#a35b00;--header:var(--background)}@supports (color:color-mix(in lab, red, red)){:root{--header:color-mix(in srgb, var(--background) 78%, transparent)}}:root{--shadow-xs:0 1px 2px #0f172a0d;--shadow:0 1px 2px #0f172a0d, 0 12px 32px -12px #0f172a24;--shadow-lg:0 2px 4px #0f172a0d, 0 24px 60px -16px #0f172a38;--radius-sm:10px;--radius:16px;--radius-lg:22px}.dark{--background:#090b10;--surface:#10131a;--surface-subtle:#171b24;--foreground:#f2f5f9;--muted:#9aa3b2;--faint:#67707f;--border:#1e2430;--border-strong:#333b4a;--accent:#6d9dff;--accent-strong:#a8c5ff;--accent-soft:#152747;--blue:#73a0ff;--warning:#f4ad54;--header:var(--background)}@supports (color:color-mix(in lab, red, red)){.dark{--header:color-mix(in srgb, var(--background) 72%, transparent)}}.dark{--shadow-xs:0 1px 2px #00000059;--shadow:0 1px 2px #0006, 0 16px 40px -12px #00000080;--shadow-lg:0 2px 4px #0006, 0 28px 70px -18px #0009}*{box-sizing:border-box}.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}html{scroll-behavior:smooth;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;scroll-padding-top:96px}html.dark{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}body{background:var(--background);color:var(--foreground);font-family:var(--font-geist-sans), Arial, sans-serif;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.6;position:relative;overflow-x:clip}button,input{color:inherit;font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}::selection{background:var(--accent);color:var(--background)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}h1,h2,h3{text-wrap:balance}.site-shell{flex-direction:column;min-height:100svh;display:flex}.site-shell>main{flex:1}.container{width:min(100% - 48px,1220px);margin-inline:auto}.narrow-container{max-width:780px}.site-header{z-index:50;background:var(--header);-webkit-backdrop-filter:blur(20px)saturate(150%);backdrop-filter:blur(20px)saturate(150%);position:fixed;top:0;left:0;right:0}.site-header:after{background:linear-gradient(90deg, transparent, var(--border-strong) 18%, var(--border-strong) 82%, transparent);height:1px;position:absolute;bottom:0;left:0;right:0}@supports (color:color-mix(in lab, red, red)){.site-header:after{background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--border-strong) 85%, transparent) 18%, color-mix(in srgb, var(--border-strong) 85%, transparent) 82%, transparent)}}.site-header:after{content:""}.site-header-inner{justify-content:space-between;align-items:center;width:min(100% - 32px,1320px);height:72px;margin-inline:auto;display:flex}.brand{align-items:center;gap:11px;min-width:190px;display:inline-flex}.brand-mark{width:37px;height:37px;box-shadow:0 0 0 1px var(--border-strong), var(--shadow-xs);border-radius:11px;display:block;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.brand-mark{box-shadow:0 0 0 1px color-mix(in srgb, var(--border-strong) 80%, transparent), var(--shadow-xs)}}.brand-mark{transition:transform .2s cubic-bezier(.2,.7,.2,1)}.brand:hover .brand-mark{transform:rotate(-4deg)scale(1.05)}.brand-mark svg{width:100%;height:100%;display:block}.brand-copy{line-height:1.15;display:grid}.brand-copy strong{letter-spacing:-.01em;font-size:14px}.brand-copy small{color:var(--muted);margin-top:3px;font-family:Geist Mono,monospace;font-size:10px}.desktop-navigation{border:1px solid var(--border);align-items:center;gap:4px;padding:4px;display:flex}@supports (color:color-mix(in lab, red, red)){.desktop-navigation{border:1px solid color-mix(in srgb, var(--border) 70%, transparent)}}.desktop-navigation{background:var(--surface);border-radius:999px}@supports (color:color-mix(in lab, red, red)){.desktop-navigation{background:color-mix(in srgb, var(--surface) 55%, transparent)}}.navigation-link,.mobile-navigation-link{color:var(--muted);border-radius:999px;font-size:13.5px;font-weight:550;transition:background .16s,color .16s,box-shadow .16s}.navigation-link{padding:7px 14px}.navigation-link:hover,.mobile-navigation-link:hover{color:var(--foreground)}.navigation-link.is-active,.mobile-navigation-link.is-active{background:var(--surface);box-shadow:0 0 0 1px var(--border), var(--shadow-xs);color:var(--foreground)}.header-actions{justify-content:flex-end;align-items:center;gap:8px;min-width:190px;margin-left:auto;display:flex}.icon-button{border:1px solid var(--border);background:var(--surface);width:38px;height:38px;box-shadow:var(--shadow-xs);cursor:pointer;border-radius:999px;place-items:center;padding:0;transition:border-color .16s,background .16s,transform .16s;display:inline-grid}.icon-button:hover{border-color:var(--border-strong);background:var(--surface-subtle)}.icon-button:active{transform:scale(.94)}.icon-button svg{width:17px;height:17px}.button{cursor:pointer;letter-spacing:-.005em;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:8px;min-height:42px;padding:10px 20px;font-size:14px;font-weight:600;line-height:1;transition:transform .18s cubic-bezier(.2,.7,.2,1),background .18s,border-color .18s,box-shadow .18s;display:inline-flex;position:relative}.button:hover{transform:translateY(-1px)}.button:active{transform:translateY(0)scale(.985)}.button svg{width:16px;height:16px;transition:transform .18s cubic-bezier(.2,.7,.2,1)}.button:hover svg:last-child{transform:translate(2px)}.button-primary{background:linear-gradient(180deg, var(--foreground), var(--foreground))}@supports (color:color-mix(in lab, red, red)){.button-primary{background:linear-gradient(180deg, color-mix(in srgb, var(--foreground) 88%, var(--accent)), var(--foreground))}}.button-primary{box-shadow:inset 0 1px 0 #ffffff24, var(--shadow);color:var(--background)}.button-primary:hover{box-shadow:inset 0 1px 0 #ffffff24, var(--shadow-lg)}.button-secondary{border-color:var(--border-strong);background:var(--surface)}@supports (color:color-mix(in lab, red, red)){.button-secondary{background:color-mix(in srgb, var(--surface) 80%, transparent)}}.button-secondary{box-shadow:var(--shadow-xs);color:var(--foreground)}.button-secondary:hover{border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.button-secondary:hover{border-color:color-mix(in srgb, var(--accent) 45%, var(--border-strong))}}.button-secondary:hover{background:var(--surface)}.mobile-menu-trigger,.mobile-navigation{display:none}.hero{border-bottom:1px solid var(--border);align-items:center;min-height:min(900px,100svh - 72px);padding:140px 0 96px;display:flex;position:relative;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.hero{border-bottom:1px solid color-mix(in srgb, var(--border) 70%, transparent)}}.hero{isolation:isolate}.portfolio-wave{z-index:-3;position:absolute;inset:0;overflow:hidden}.hero-vignette{z-index:-1;box-shadow:inset 0 130px 110px -30px var(--background), inset 0 -110px 120px -30px var(--background);pointer-events:none;position:absolute;inset:0}.hero-content{flex-direction:column;justify-content:center;align-items:flex-start;min-height:540px;display:flex}.hero-copy{z-index:1;flex-direction:column;align-items:flex-start;max-width:100%;display:flex;position:relative}@keyframes rise{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}.hero-copy>*{animation:.7s cubic-bezier(.2,.7,.2,1) backwards rise}.hero-copy>:first-child{animation-delay:60ms}.hero-copy>:nth-child(2){animation-delay:.14s}.hero-copy>:nth-child(3){animation-delay:.22s}.hero-copy>:nth-child(4){animation-delay:.3s}.hero-copy>:nth-child(5){animation-delay:.38s}.hero-kicker{color:var(--muted);letter-spacing:.16em;text-transform:uppercase;margin:0 0 24px;font-family:Geist Mono,monospace;font-size:11px;font-weight:600}.eyebrow{color:var(--accent-strong);letter-spacing:.12em;text-transform:uppercase;align-items:center;gap:10px;margin:0 0 16px;font-family:Geist Mono,monospace;font-size:11px;font-weight:650;display:inline-flex}.eyebrow>span{color:var(--faint)}.section-heading .eyebrow,.page-header .eyebrow,.discipline-intro .eyebrow,.about-copy .eyebrow,.contact-band .eyebrow{align-items:center;gap:12px;display:flex}.section-heading .eyebrow:before,.page-header .eyebrow:before,.discipline-intro .eyebrow:before,.about-copy .eyebrow:before,.contact-band .eyebrow:before{background:linear-gradient(90deg, var(--accent), transparent);content:"";border-radius:2px;width:22px;height:1.5px}.hero h1{max-width:980px;color:var(--foreground);letter-spacing:-.025em;overflow-wrap:anywhere;text-transform:uppercase;margin:0;font-size:clamp(38px,6.6vw,78px);font-weight:700;line-height:1.04;transition:color 1.2s .25s}.hero[data-wave-ready] .hero-copy h1{color:#0000}.hero-lead{max-width:660px;color:var(--muted);letter-spacing:-.012em;margin:26px 0 0;font-size:clamp(18px,2.1vw,22px);line-height:1.5}.hero-actions{flex-wrap:wrap;gap:12px;margin-top:36px;display:flex}.hero-status{max-width:100%;color:var(--muted);align-items:center;gap:10px;margin-top:44px;font-size:13px;display:inline-flex}@keyframes pulse-dot{0%,to{box-shadow:0 0 0 3px #20c99738}50%{box-shadow:0 0 0 6px #20c9971a}}.status-dot{background:#20c997;border-radius:50%;flex:none;width:8px;height:8px;animation:2.4s ease-in-out infinite pulse-dot}.section,.page-section,.project-detail,.article-page{padding:clamp(80px,9vw,116px) 0}.page-section,.project-detail,.article-page{padding-top:clamp(120px,13vw,156px)}.section-heading{max-width:760px;margin-bottom:48px}.split-heading{justify-content:space-between;align-items:flex-end;gap:32px;max-width:none;display:flex}.split-heading>div{max-width:760px}.section-heading h2,.discipline-intro h2,.contact-band h2,.about-copy h1,.page-header h1,.project-detail h1,.article-header h1{letter-spacing:-.03em;margin:0;font-weight:650;line-height:1.08}.section-heading h2,.discipline-intro h2,.contact-band h2{font-size:clamp(30px,3.8vw,44px)}.text-link,.back-link{color:var(--foreground);align-items:center;gap:7px;font-size:14px;font-weight:650;display:inline-flex}.text-link svg,.back-link svg{width:16px;height:16px;transition:transform .18s cubic-bezier(.2,.7,.2,1)}.text-link:hover{color:var(--accent-strong)}.text-link:hover svg{transform:translate(3px)}.back-link{color:var(--muted);margin-bottom:36px}.back-link:hover{color:var(--foreground)}.back-link:hover svg{transform:translate(-3px)}.project-grid,.post-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;display:grid}.project-card-slot{view-transition-class:project-card-vt;min-width:0}.project-card-slot>.project-card{height:100%}.featured-project-grid .project-card:first-child{grid-column:1/-1}.featured-project-grid .project-card:first-child .project-card-media{aspect-ratio:2.15}.project-card,.post-card{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);min-width:0;box-shadow:var(--shadow-xs);flex-direction:column;padding:10px;transition:border-color .22s,transform .22s cubic-bezier(.2,.7,.2,1),box-shadow .22s;display:flex;position:relative}.project-card:hover,.post-card:hover{border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.project-card:hover,.post-card:hover{border-color:color-mix(in srgb, var(--accent) 30%, var(--border-strong))}}.project-card:hover,.post-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-4px)}.project-card-media,.post-card-media{border:1px solid var(--border);display:block;position:relative;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.project-card-media,.post-card-media{border:1px solid color-mix(in srgb, var(--border) 80%, transparent)}}.project-card-media,.post-card-media{border-radius:calc(var(--radius-lg) - 8px);background:#090b0e}.project-card-media{aspect-ratio:16/10}.post-card-media{aspect-ratio:16/9}.project-card-media img,.post-card-media img,.project-detail-image img,.article-cover img,.about-portrait img{object-fit:cover;transition:transform .6s cubic-bezier(.2,.75,.2,1)}.project-card:hover .project-card-media img,.post-card:hover .post-card-media img{transform:scale(1.03)}.project-card-placeholder{background:radial-gradient(120% 120% at 20% 0%, var(--accent), transparent 55%), var(--surface-subtle);place-items:center;width:100%;height:100%;display:grid}@supports (color:color-mix(in lab, red, red)){.project-card-placeholder{background:radial-gradient(120% 120% at 20% 0%, color-mix(in srgb, var(--accent) 14%, transparent), transparent 55%), var(--surface-subtle)}}.project-card-placeholder span{color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.project-card-placeholder span{color:color-mix(in srgb, var(--accent) 40%, var(--border-strong))}}.project-card-placeholder span{font-family:Geist Mono,monospace;font-size:64px;font-weight:700}.project-card-index{color:#f7f8fa;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#05070a99;border:1px solid #ffffff2e;border-radius:999px;padding:5px 10px;font-family:Geist Mono,monospace;font-size:10px;position:absolute;top:12px;right:12px}.project-card-body,.post-card-body{flex-direction:column;flex:1;align-items:flex-start;padding:22px 16px 14px;display:flex}.project-card-heading{justify-content:space-between;align-items:flex-start;gap:20px;width:100%;display:flex}.project-card-heading h2,.post-card h2{letter-spacing:-.02em;margin:0;font-size:23px;font-weight:650;line-height:1.2}.project-card-heading h2 a:after,.post-card h2 a:after{content:"";position:absolute;inset:0}.project-card-heading .eyebrow{margin-bottom:8px}.project-arrow,.project-private{width:19px;height:19px;color:var(--faint);flex:none;margin-top:3px;transition:transform .22s cubic-bezier(.2,.7,.2,1),color .22s}.project-card:hover .project-arrow{color:var(--accent-strong);transform:translate(2px,-2px)}.project-card-body>p,.post-card-body>p{color:var(--muted);margin:14px 0 20px;font-size:15px;line-height:1.6}.technology-list,.skill-list{flex-wrap:wrap;gap:7px;margin:0;padding:0;list-style:none;display:flex}.technology-list li,.skill-list li{border:1px solid var(--border);padding:5px 11px}@supports (color:color-mix(in lab, red, red)){.technology-list li,.skill-list li{border:1px solid color-mix(in srgb, var(--border) 85%, transparent)}}.technology-list li,.skill-list li{background:var(--surface-subtle);color:var(--muted);border-radius:999px;font-family:Geist Mono,monospace;font-size:10.5px}.case-study-section>.container>.eyebrow{margin-bottom:34px}.case-study{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);align-items:center;gap:clamp(36px,5vw,72px);display:grid}.case-study-media{aspect-ratio:16/10.5;border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);background:#090b0e;transition:border-color .22s,box-shadow .22s;display:block;position:relative;overflow:hidden}.case-study-media:hover{border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.case-study-media:hover{border-color:color-mix(in srgb, var(--accent) 30%, var(--border-strong))}}.case-study-media:hover{box-shadow:var(--shadow-lg)}.case-study-media img{object-fit:cover;transition:transform .6s cubic-bezier(.2,.75,.2,1)}.case-study-media:hover img{transform:scale(1.02)}.case-study-kicker{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin:0 0 12px;font-family:Geist Mono,monospace;font-size:11px}.case-study-body h2{letter-spacing:-.03em;margin:0;font-size:clamp(30px,3.4vw,42px);font-weight:650;line-height:1.08}.case-study-description{color:var(--muted);margin:18px 0 0;font-size:16px;line-height:1.65}.case-study-metrics{border-top:1px solid var(--border);grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:26px 0 0;padding-top:22px;display:grid}.case-study-metrics dt{letter-spacing:-.01em;font-size:16px;font-weight:650}.case-study-metrics dd{color:var(--faint);margin:4px 0 0;font-size:12px;line-height:1.45}.case-study-actions{flex-wrap:wrap;gap:10px;margin-top:30px;display:flex}.project-index-section{border-top:1px solid var(--border);background:radial-gradient(900px 420px at 85% 0%, var(--accent), transparent 65%), var(--surface)}@supports (color:color-mix(in lab, red, red)){.project-index-section{background:radial-gradient(900px 420px at 85% 0%, color-mix(in srgb, var(--accent) 4%, transparent), transparent 65%), var(--surface)}}.project-index{border-top:1px solid var(--border);margin:0;padding:0;list-style:none}.project-index-row{border-bottom:1px solid var(--border)}.project-index-row>a{border-radius:var(--radius-sm);grid-template-columns:44px minmax(0,1fr) auto 22px;align-items:center;gap:clamp(18px,3vw,34px);margin-inline:-18px;padding:26px 18px;transition:background .18s;display:grid;position:relative}.project-index-row>a:hover{background:var(--surface-subtle)}@supports (color:color-mix(in lab, red, red)){.project-index-row>a:hover{background:color-mix(in srgb, var(--surface-subtle) 65%, transparent)}}.project-index-number{color:var(--faint);font-family:Geist Mono,monospace;font-size:11px}.project-index-main{gap:5px;display:grid}.project-index-title{letter-spacing:-.022em;font-size:clamp(21px,2.4vw,29px);font-weight:650;line-height:1.15;transition:color .18s}.project-index-row>a:hover .project-index-title{color:var(--accent-strong)}.project-index-eyebrow{color:var(--muted);font-size:13.5px}.project-index-meta{color:var(--muted);text-align:right;justify-items:end;gap:6px;font-size:12.5px;display:grid}.project-index-status{color:var(--faint)}.project-index-arrow{width:19px;height:19px;color:var(--faint);transition:transform .2s cubic-bezier(.2,.7,.2,1),color .2s}.project-index-row>a:hover .project-index-arrow{color:var(--accent-strong);transform:translate(2px,-2px)}.project-index-preview{z-index:5;border:1px solid var(--border-strong);border-radius:var(--radius);width:300px;box-shadow:var(--shadow-lg);opacity:0;pointer-events:none;transition:opacity .22s,transform .26s cubic-bezier(.2,.7,.2,1);display:block;position:absolute;top:50%;right:clamp(140px,22vw,320px);overflow:hidden;transform:translateY(-46%)rotate(-3deg)scale(.94)}.project-index-preview img{width:100%;height:auto}.project-index-row>a:hover .project-index-preview{opacity:1;transform:translateY(-50%)rotate(-1.5deg)scale(1)}.project-index-more{border-radius:var(--radius-sm);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:20px;margin-inline:-18px;padding:24px 18px;font-size:15px;font-weight:600;transition:background .18s,color .18s;display:flex}.project-index-more:hover{background:var(--surface-subtle)}@supports (color:color-mix(in lab, red, red)){.project-index-more:hover{background:color-mix(in srgb, var(--surface-subtle) 65%, transparent)}}.project-index-more:hover{color:var(--accent-strong)}.project-index-more svg{flex:none;width:17px;height:17px;transition:transform .18s cubic-bezier(.2,.7,.2,1)}.project-index-more:hover svg{transform:translate(3px)}.luma-section{border-block:1px solid var(--border)}.luma-stage{isolation:isolate;align-items:center;min-height:clamp(460px,58vh,580px);padding:72px 0;display:flex;position:relative;overflow:hidden}.luma-stage>.luma-overlay{z-index:1;position:relative}.luma-overlay h2{letter-spacing:-.03em;max-width:560px;margin:0;font-size:clamp(28px,3.4vw,40px);font-weight:650;line-height:1.1}.luma-overlay>p:not(.eyebrow){max-width:540px;color:var(--muted);margin:20px 0 0;font-size:16px;line-height:1.65}.luma-overlay em{color:var(--accent-strong);font-family:Geist Mono,monospace;font-size:.9em;font-style:normal}.luma-actions{flex-wrap:wrap;align-items:center;gap:16px;margin-top:30px;display:flex}.luma-hint{border:1px solid var(--border);align-items:center;gap:8px;padding:8px 14px;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.luma-hint{border:1px solid color-mix(in srgb, var(--border) 80%, transparent)}}.luma-hint{background:var(--surface);border-radius:999px}@supports (color:color-mix(in lab, red, red)){.luma-hint{background:color-mix(in srgb, var(--surface) 55%, transparent)}}.luma-hint{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--muted);font-size:12.5px}.luma-hint svg{width:14px;height:14px;color:var(--accent-strong)}.ledger{border-top:1px solid var(--border)}.ledger-row{border-bottom:1px solid var(--border);border-radius:var(--radius-sm);grid-template-columns:210px minmax(0,1fr) auto 20px;align-items:center;gap:clamp(16px,2.6vw,30px);margin-inline:-18px;padding:20px 18px;transition:background .18s,color .18s;display:grid}.ledger-row:hover{background:var(--surface-subtle)}@supports (color:color-mix(in lab, red, red)){.ledger-row:hover{background:color-mix(in srgb, var(--surface-subtle) 65%, transparent)}}.ledger-row:hover{color:var(--accent-strong)}.ledger-repo{font-family:Geist Mono,monospace;font-size:13px;font-weight:600}.ledger-summary{color:var(--muted);font-size:14px}.ledger-prs{flex-wrap:wrap;gap:6px;display:flex}.ledger-row>svg{width:17px;height:17px;transition:transform .18s cubic-bezier(.2,.7,.2,1)}.ledger-row:hover>svg{transform:translate(2px,-2px)}.contributions-page-header{margin-bottom:96px}.contribution-section+.contribution-section{margin-top:112px}.section-count,.contribution-pr-count{color:var(--faint);letter-spacing:.08em;text-transform:uppercase;font-family:Geist Mono,monospace;font-size:10px}.contribution-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;display:grid}.contribution-card{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);min-width:0;box-shadow:var(--shadow-xs);padding:30px;transition:border-color .22s,box-shadow .22s}.contribution-card:hover{border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.contribution-card:hover{border-color:color-mix(in srgb, var(--accent) 24%, var(--border-strong))}}.contribution-card:hover{box-shadow:var(--shadow)}.contribution-card-header{justify-content:space-between;align-items:flex-start;gap:24px;display:flex}.contribution-card-header .eyebrow{margin-bottom:8px}.contribution-card h2{letter-spacing:-.02em;margin:0;font-size:23px}.contribution-card h2 a{align-items:center;gap:8px;display:inline-flex}.contribution-card h2 a:hover{color:var(--accent-strong)}.contribution-card h2 svg{width:17px;height:17px;color:var(--muted)}.contribution-summary{margin:22px 0 0;font-size:16px;font-weight:620;line-height:1.55}.contribution-impact{color:var(--muted);margin:10px 0 24px;font-size:14px;line-height:1.6}.pull-request-list{border-top:1px solid var(--border);margin:0;padding:0;list-style:none}.pull-request-list li{border-bottom:1px solid var(--border)}.pull-request-list a{grid-template-columns:18px minmax(0,1fr) auto;align-items:center;gap:10px;padding:14px 0;font-size:13px;display:grid}.pull-request-list a:hover span{color:var(--accent-strong)}.pull-request-list svg{width:16px;height:16px;color:var(--muted)}.pull-request-list span{overflow-wrap:anywhere;min-width:0}.pull-request-list strong{font-family:Geist Mono,monospace;font-size:11px}.pull-request-status{border:1px solid var(--border);color:var(--muted);text-transform:uppercase;border-radius:999px;padding:4px 9px;font-family:Geist Mono,monospace;font-size:9px}.pull-request-status.is-open{border-color:#20c997}@supports (color:color-mix(in lab, red, red)){.pull-request-status.is-open{border-color:color-mix(in srgb, #20c997 35%, var(--border))}}.pull-request-status.is-open{color:#18a878;background:#20c99714}.pull-request-status.is-draft{color:var(--faint)}.pull-request-status.is-merged{border-color:#8b5cf6}@supports (color:color-mix(in lab, red, red)){.pull-request-status.is-merged{border-color:color-mix(in srgb, #8b5cf6 35%, var(--border))}}.pull-request-status.is-merged{color:#8b5cf6;background:#8b5cf614}.contribution-section-delivered{padding-top:4px}@media (max-width:760px){.contributions-page-header{margin-bottom:72px}.contribution-section+.contribution-section{margin-top:84px}.contribution-grid{grid-template-columns:1fr}.contribution-card{padding:22px}.pull-request-list a{grid-template-columns:18px minmax(0,1fr)}.pull-request-status{grid-column:2;justify-self:start}}.notes-section{border-top:1px solid var(--border);background:radial-gradient(900px 420px at 12% 0%, var(--blue), transparent 65%), var(--surface)}@supports (color:color-mix(in lab, red, red)){.notes-section{background:radial-gradient(900px 420px at 12% 0%, color-mix(in srgb, var(--blue) 4%, transparent), transparent 65%), var(--surface)}}.note-list{border-top:1px solid var(--border)}.note-row{border-bottom:1px solid var(--border);border-radius:var(--radius-sm);grid-template-columns:150px minmax(0,1fr) auto 18px;align-items:center;gap:clamp(16px,2.6vw,30px);margin-inline:-18px;padding:22px 18px;transition:background .18s;display:grid}.note-row:hover{background:var(--surface-subtle)}@supports (color:color-mix(in lab, red, red)){.note-row:hover{background:color-mix(in srgb, var(--surface-subtle) 65%, transparent)}}.note-date{color:var(--faint);font-family:Geist Mono,monospace;font-size:11px}.note-title{letter-spacing:-.012em;font-size:17px;font-weight:650;transition:color .18s}.note-row:hover .note-title{color:var(--accent-strong)}.note-tag{border:1px solid var(--border);background:var(--surface-subtle);color:var(--muted);border-radius:999px;padding:4px 10px;font-family:Geist Mono,monospace;font-size:10px}.note-row>svg{width:16px;height:16px;color:var(--faint);transition:transform .18s cubic-bezier(.2,.7,.2,1)}.note-row:hover>svg{transform:translate(3px)}.post-card .post-meta{margin-bottom:14px}.post-card .text-link{z-index:1;margin-top:auto;padding-top:6px;position:relative}.post-meta{color:var(--faint);flex-wrap:wrap;align-items:center;gap:8px;font-family:Geist Mono,monospace;font-size:10px;display:flex}.post-meta span{border:1px solid var(--border);background:var(--surface-subtle);border-radius:999px;padding:3px 9px}.contact-band{padding:36px 0 clamp(72px,9vw,110px)}.contact-band-inner{border:1px solid var(--accent);justify-content:space-between;align-items:flex-end;gap:40px;padding:clamp(40px,6vw,72px);display:flex;position:relative;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.contact-band-inner{border:1px solid color-mix(in srgb, var(--accent) 18%, var(--border))}}.contact-band-inner{background:var(--surface);box-shadow:var(--shadow);isolation:isolate;border-radius:28px}.contact-band-inner:before{z-index:-1;background:radial-gradient(560px 320px at 88% -20%, var(--accent), transparent 68%), radial-gradient(480px 300px at 4% 120%, var(--blue), transparent 66%);position:absolute;inset:0}@supports (color:color-mix(in lab, red, red)){.contact-band-inner:before{background:radial-gradient(560px 320px at 88% -20%, color-mix(in srgb, var(--accent) 16%, transparent), transparent 68%), radial-gradient(480px 300px at 4% 120%, color-mix(in srgb, var(--blue) 9%, transparent), transparent 66%)}}.contact-band-inner:before{content:"";pointer-events:none}.contact-band h2{max-width:800px}.contact-band-email{overflow-wrap:anywhere;align-items:center;gap:16px;font-size:clamp(22px,3.4vw,40px);transition:color .18s;display:inline-flex}.contact-band-email svg{width:.72em;height:.72em;color:var(--accent-strong);flex:none}.contact-band-email:hover{color:var(--accent-strong)}.contact-band-note{max-width:560px;color:var(--muted);margin:14px 0 0;font-size:15px}.contact-band-wave{z-index:0;opacity:.5;pointer-events:none;position:absolute;inset:0}.contact-band-copy,.contact-band-inner>.button{z-index:1;position:relative}.page-header{max-width:850px;margin-bottom:58px}.page-header h1,.project-detail h1,.article-header h1,.about-copy h1{letter-spacing:-.035em;font-size:clamp(38px,5vw,62px)}.page-header>p:last-child,.project-detail-lead,.article-header>p,.about-copy>p{color:var(--muted);font-size:clamp(17px,1.6vw,19px);line-height:1.6}.page-header>p:last-child{max-width:680px;margin:24px 0 0}.project-toolbar{justify-content:space-between;align-items:center;gap:24px;margin-bottom:36px;display:flex}.filter-group{scrollbar-width:none;border:0;gap:6px;min-width:0;margin:0;padding:0;display:flex;overflow-x:auto}.filter-button{color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:999px;flex:none;padding:8px 14px;font-size:13px;font-weight:550;transition:background .16s,border-color .16s,color .16s,box-shadow .16s}.filter-button:hover{border-color:var(--border);background:var(--surface);color:var(--foreground)}.filter-button.is-active{background:var(--foreground);box-shadow:var(--shadow-xs);color:var(--background);border-color:#0000}.search-field{border:1px solid var(--border);background:var(--surface);width:250px;height:42px;box-shadow:var(--shadow-xs);border-radius:999px;flex:none;align-items:center;gap:8px;padding:0 15px;transition:border-color .16s,box-shadow .16s;display:flex}.search-field:focus-within{border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.search-field:focus-within{border-color:color-mix(in srgb, var(--accent) 55%, var(--border-strong))}}.search-field:focus-within{box-shadow:0 0 0 3px var(--accent)}@supports (color:color-mix(in lab, red, red)){.search-field:focus-within{box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 14%, transparent)}}.search-field svg{width:16px;height:16px;color:var(--muted)}.search-field input{background:0 0;border:0;outline:0;width:100%;font-size:13px}.search-field input::placeholder{color:var(--faint)}.empty-state{color:var(--muted);text-align:center;padding:80px 0}.project-detail-header{grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:70px;margin-bottom:54px;display:grid}.project-detail-header .project-facts{margin-top:6px}.project-detail-header>*{min-width:0}.project-detail-lead{overflow-wrap:anywhere;max-width:760px;margin:24px 0 0}.project-facts{border-top:1px solid var(--border);width:100%;min-width:0;margin:0}.project-facts div{border-bottom:1px solid var(--border);grid-template-columns:85px minmax(0,1fr);gap:12px;padding:12px 0;font-size:13px;display:grid}.project-facts dt{color:var(--faint)}.project-facts dd{overflow-wrap:anywhere;min-width:0;margin:0}.project-status{align-items:center;gap:7px;display:inline-flex}.project-status:before{background:var(--faint);content:"";border-radius:999px;width:7px;height:7px}.project-status.is-active:before,.project-status.is-maintained:before{background:#20c997;box-shadow:0 0 0 3px #20c99733}.project-status.is-paused:before{background:var(--warning)}.project-detail-image,.article-cover{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface-subtle);box-shadow:var(--shadow);position:relative;overflow:hidden}.project-detail-image{aspect-ratio:16/8.5;margin-bottom:42px}.project-metrics{border-block:1px solid var(--border);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin:0 0 70px;display:grid}.project-metrics div{min-width:0;padding:24px 20px 24px 0}.project-metrics dt{color:var(--foreground);letter-spacing:-.02em;font-size:27px;font-weight:650}.project-metrics dd{color:var(--muted);margin:5px 0 0;font-size:13px}.project-detail-grid{grid-template-columns:minmax(0,1fr) 320px;gap:90px;display:grid}.project-sidebar{flex-direction:column;align-self:start;gap:34px;display:flex;position:sticky;top:104px}.project-sidebar h2{letter-spacing:.06em;text-transform:uppercase;margin:0 0 14px;font-size:13px}.project-github-facts{border-block:1px solid var(--border);grid-template-columns:repeat(3,1fr);margin:0;display:grid}.project-github-facts div{padding:12px 8px 12px 0}.project-github-facts dt{font-size:18px;font-weight:650}.project-github-facts dd{color:var(--faint);margin:3px 0 0;font-size:11px}.project-gallery{margin-top:110px}.project-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;display:grid}.project-gallery-grid figure{min-width:0;margin:0}.project-gallery-image{aspect-ratio:16/10;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-subtle);box-shadow:var(--shadow-xs);position:relative;overflow:hidden}.project-gallery-image img{object-fit:cover}.project-gallery-grid figcaption{color:var(--muted);margin-top:12px;font-size:13px}.project-actions{gap:8px;display:grid}.private-note{color:var(--muted);align-items:center;gap:8px;font-size:13px;display:flex}.private-note svg{width:16px;height:16px}.article-container{width:min(100% - 48px,900px);margin-inline:auto}.article-header{margin-bottom:44px}.article-header .post-meta{margin-bottom:18px}.article-header>p{margin:24px 0 0}.article-cover{aspect-ratio:16/9;margin-bottom:60px}.typeset{--typeset-size:17px;--typeset-leading:1.78;--typeset-flow:1.45em;color:var(--foreground);font-size:var(--typeset-size);line-height:var(--typeset-leading)}.typeset :where(h2,h3,h4){margin:calc(var(--typeset-flow) * 1.8) 0 0;letter-spacing:-.02em;font-weight:650;line-height:1.2}.typeset>:first-child{margin-top:0}.typeset :where(h2){font-size:1.75em}.typeset :where(h3){font-size:1.35em}.typeset :where(p,ul,ol,blockquote,pre,table){margin:var(--typeset-flow) 0 0}.typeset :where(p,li){color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.typeset :where(p,li){color:color-mix(in srgb, var(--foreground) 82%, var(--muted))}}.typeset :where(ul,ol){padding-left:1.4em}.typeset :where(li+li){margin-top:.45em}.typeset :where(a){color:var(--accent-strong);text-decoration:underline;-webkit-text-decoration-color:var(--accent);-webkit-text-decoration-color:var(--accent);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.typeset :where(a){-webkit-text-decoration-color:color-mix(in srgb, var(--accent) 45%, transparent);-webkit-text-decoration-color:color-mix(in srgb, var(--accent) 45%, transparent);-webkit-text-decoration-color:color-mix(in srgb, var(--accent) 45%, transparent);text-decoration-color:color-mix(in srgb, var(--accent) 45%, transparent)}}.typeset :where(a){text-underline-offset:3px;transition:text-decoration-color .16s}.typeset :where(a):hover{-webkit-text-decoration-color:var(--accent-strong);-webkit-text-decoration-color:var(--accent-strong);-webkit-text-decoration-color:var(--accent-strong);text-decoration-color:var(--accent-strong)}.typeset :where(code){border:1px solid var(--border);background:var(--surface-subtle);border-radius:6px;padding:.15em .35em;font-family:Geist Mono,monospace;font-size:.84em}.typeset :where(pre){border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);box-shadow:var(--shadow-xs);padding:20px;overflow-x:auto}.typeset :where(pre code){background:0 0;border:0;padding:0}.typeset :where(blockquote){border-left:2px solid var(--accent);border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:var(--surface-subtle);padding:16px 22px}@supports (color:color-mix(in lab, red, red)){.typeset :where(blockquote){background:color-mix(in srgb, var(--surface-subtle) 60%, transparent)}}.typeset :where(blockquote){color:var(--muted)}.typeset-project{--typeset-size:18px;max-width:700px}.about-hero{grid-template-columns:380px minmax(0,1fr);align-items:center;gap:80px;margin-bottom:110px;display:grid}.about-portrait{aspect-ratio:4/5;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface-subtle);box-shadow:var(--shadow);transition:transform .34s cubic-bezier(.2,.7,.2,1),box-shadow .34s,border-color .34s;position:relative;overflow:hidden}.about-portrait:hover{border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.about-portrait:hover{border-color:color-mix(in srgb, var(--accent) 30%, var(--border-strong))}}.about-portrait:hover{box-shadow:var(--shadow-lg);transform:rotate(-1.6deg)scale(1.02)}.about-portrait:hover img{transform:scale(1.05)}.about-portrait img{object-position:center top}.about-copy>p{max-width:720px;margin:22px 0 0}.about-actions{flex-wrap:wrap;gap:10px;margin-top:32px;display:flex}.about-grid{grid-template-columns:minmax(0,1fr) 320px;gap:100px;display:grid}.timeline{border-top:1px solid var(--border);margin:0;padding:0;list-style:none}.timeline li{border-bottom:1px solid var(--border);grid-template-columns:140px 1fr;gap:28px;padding:24px 0;display:grid}.timeline time{color:var(--faint);font-family:Geist Mono,monospace;font-size:11px}.timeline h3{letter-spacing:-.01em;margin:0 0 7px;font-size:17px}.timeline p,.about-aside p{color:var(--muted);margin:0;font-size:14px}.about-aside{flex-direction:column;gap:42px;display:flex}.contact-page .page-header{margin-bottom:46px}.contact-panel{border:1px solid var(--accent);padding:clamp(36px,6vw,72px);position:relative;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.contact-panel{border:1px solid color-mix(in srgb, var(--accent) 18%, var(--border))}}.contact-panel{background:var(--surface);box-shadow:var(--shadow);isolation:isolate;border-radius:28px}.contact-panel-content{z-index:1;justify-items:start;gap:36px;display:grid;position:relative}.contact-panel-label{color:var(--faint);letter-spacing:.12em;text-transform:uppercase;margin:0 0 10px;font-family:Geist Mono,monospace;font-size:11px;font-weight:600}.contact-panel-email{overflow-wrap:anywhere;letter-spacing:-.02em;align-items:center;gap:16px;font-size:clamp(21px,3.8vw,44px);font-weight:650;line-height:1.15;transition:color .18s;display:inline-flex}.contact-panel-email svg{width:.7em;height:.7em;color:var(--accent-strong);flex:none}.contact-panel-email:hover{color:var(--accent-strong)}.contact-channel-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;width:100%;max-width:680px;display:grid}.contact-channel{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);grid-template-columns:22px minmax(0,1fr) 18px;align-items:center;gap:14px;padding:16px 18px;display:grid}@supports (color:color-mix(in lab, red, red)){.contact-channel{background:color-mix(in srgb, var(--surface) 70%, transparent)}}.contact-channel{transition:border-color .18s,background .18s,transform .18s cubic-bezier(.2,.7,.2,1)}.contact-channel:hover{border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.contact-channel:hover{border-color:color-mix(in srgb, var(--accent) 35%, var(--border-strong))}}.contact-channel:hover{background:var(--surface);transform:translateY(-2px)}.contact-channel>svg:first-child{width:20px;height:20px}.contact-channel>svg:last-child{width:16px;height:16px;color:var(--muted);transition:transform .18s cubic-bezier(.2,.7,.2,1)}.contact-channel:hover>svg:last-child{transform:translate(2px,-2px)}.contact-channel span{min-width:0;display:grid}.contact-channel small{color:var(--faint);font-size:11px}.contact-channel strong{overflow-wrap:anywhere;font-size:14px}.contact-panel-meta{color:var(--muted);margin:0;font-family:Geist Mono,monospace;font-size:11.5px}.archive-list{border-top:1px solid var(--border)}.archive-list a{border-bottom:1px solid var(--border);border-radius:var(--radius-sm);justify-content:space-between;align-items:center;margin-inline:-16px;padding:20px 16px;font-weight:600;transition:background .18s;display:flex}.archive-list a:hover{background:var(--surface-subtle)}@supports (color:color-mix(in lab, red, red)){.archive-list a:hover{background:color-mix(in srgb, var(--surface-subtle) 65%, transparent)}}.archive-list svg{width:16px;height:16px}.not-found{flex-direction:column;justify-content:center;align-items:flex-start;min-height:100svh;padding:48px;display:flex}.not-found h1{letter-spacing:-.03em;max-width:700px;margin:0;font-size:clamp(38px,5vw,54px);line-height:1.05}.not-found>p:not(.eyebrow){color:var(--muted);margin:20px 0 28px}.site-footer{border-top:1px solid var(--border);background:var(--surface);padding:70px 0 26px}.site-footer-grid,.footer-bottom{width:min(100% - 48px,1220px);margin-inline:auto}.site-footer-grid{grid-template-columns:minmax(0,1fr) 180px 180px;gap:70px;display:grid}.footer-brand{letter-spacing:-.02em;font-size:19px;font-weight:680}.footer-brand:hover{color:var(--accent-strong)}.site-footer-grid p{max-width:470px;color:var(--muted);margin:14px 0 0;font-size:14px}.footer-links,.footer-socials{flex-direction:column;gap:12px;font-size:13px;display:flex}.footer-links a,.footer-socials a{color:var(--muted);transition:color .16s}.footer-links a:hover,.footer-socials a:hover{color:var(--foreground)}.footer-socials a{align-items:center;gap:8px;display:flex}.footer-socials svg{width:15px;height:15px}.footer-bottom{border-top:1px solid var(--border);color:var(--faint);justify-content:space-between;align-items:center;gap:30px;margin-top:50px;padding-top:28px;font-family:Geist Mono,monospace;font-size:10px;display:flex}@keyframes page-content-exit{to{opacity:0}}@keyframes page-content-enter{0%{opacity:0;transform:translateY(14px)}}::view-transition-group(*){animation-duration:.32s;animation-timing-function:cubic-bezier(.2,.7,.2,1)}::view-transition-old(page-content){animation:.18s cubic-bezier(.4,0,1,1) both page-content-exit}::view-transition-new(page-content){animation:.4s cubic-bezier(.2,.7,.2,1) 60ms both page-content-enter}@keyframes card-enter{0%{opacity:0;transform:scale(.94)}}@keyframes card-exit{to{opacity:0;transform:scale(.94)}}::view-transition-new(.project-card-vt):only-child{animation:.28s cubic-bezier(.2,.7,.2,1) 40ms both card-enter}::view-transition-old(.project-card-vt):only-child{animation:.2s cubic-bezier(.4,0,1,1) both card-exit}.site-header{view-transition-name:site-header}.navigation-link.is-active{view-transition-name:nav-active-pill}html:active-view-transition{scroll-behavior:auto}@media (max-width:960px){.desktop-navigation,.header-contact{display:none}.header-actions,.brand{min-width:auto}.mobile-menu-trigger{display:inline-grid}.mobile-navigation{background:var(--header);gap:5px;padding:12px 16px 18px;display:grid}.mobile-navigation-link{border-radius:var(--radius-sm);padding:11px 16px}.mobile-navigation .button{margin-top:6px}.about-grid,.project-detail-grid{grid-template-columns:1fr;gap:60px}.case-study{grid-template-columns:1fr;gap:34px}.project-index-preview{display:none}.project-detail-header{grid-template-columns:minmax(0,1fr);gap:36px}.project-sidebar{position:static}.project-gallery{margin-top:80px}.project-facts{max-width:520px}.about-hero{grid-template-columns:300px minmax(0,1fr);gap:48px}.contact-channel-grid{grid-template-columns:1fr}}@media (max-width:760px){.container,.site-footer-grid,.footer-bottom,.article-container{width:min(100% - 32px,1220px)}.site-header-inner{width:calc(100% - 24px);height:64px}.brand-copy small{display:none}.hero{min-height:calc(100svh - 96px);padding:104px 0 48px}.hero-content{min-height:420px}.hero h1{max-width:100%}.hero-lead{margin-top:22px}.hero-status{text-align:left;align-items:flex-start}.split-heading,.contact-band-inner{flex-direction:column;align-items:flex-start}.project-grid,.post-grid{grid-template-columns:1fr;gap:22px}.featured-project-grid .project-card:first-child{grid-column:auto}.featured-project-grid .project-card:first-child .project-card-media{aspect-ratio:16/10}.project-index-row>a{grid-template-columns:30px minmax(0,1fr) 20px;row-gap:10px;margin-inline:-14px;padding-inline:14px}.project-index-meta{text-align:left;flex-wrap:wrap;grid-area:2/2;gap:6px 16px;display:flex}.project-index-arrow{grid-area:1/3}.luma-stage{min-height:460px;padding:64px 0}.luma-hint{display:none}.ledger-row{grid-template-columns:minmax(0,1fr) 20px;row-gap:10px;margin-inline:-14px;padding-inline:14px}.ledger-summary{grid-area:2/1/auto/-1}.ledger-prs{grid-area:3/1/auto/-1}.ledger-row>svg{grid-area:1/2}.note-row{grid-template-columns:minmax(0,1fr) 18px;row-gap:8px;margin-inline:-14px;padding-inline:14px}.note-title{grid-area:2/1/auto/-1}.note-tag{grid-row:3;justify-self:start}.note-row>svg{grid-area:1/2}.project-toolbar{flex-direction:column;align-items:stretch}.search-field{width:100%}.project-detail-image{aspect-ratio:16/10;margin-bottom:52px}.article-cover{margin-bottom:42px}.typeset,.typeset-project{--typeset-size:16px}.about-hero{grid-template-columns:1fr;gap:42px;margin-bottom:76px}.about-portrait{width:min(100%,360px)}.timeline li{grid-template-columns:1fr;gap:8px}.site-footer-grid{grid-template-columns:1fr 1fr;gap:42px}.site-footer-grid>div:first-child{grid-column:1/-1}.footer-bottom{flex-direction:column;align-items:flex-start}}@media (max-width:420px){.brand-copy strong{font-size:13px}.hero h1{font-size:31px;line-height:1.08}.hero-actions,.hero-actions .button,.contact-band .button{width:100%}.project-card,.post-card{padding:8px}.project-card-body,.post-card-body{padding:18px 12px 12px}.case-study-metrics{grid-template-columns:1fr;gap:14px}.case-study-actions .button{width:100%}.project-gallery-grid{grid-template-columns:1fr}.project-metrics div{padding-right:12px}.site-footer-grid{grid-template-columns:1fr}.site-footer-grid>div:first-child{grid-column:auto}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}::view-transition-group(*){animation:none!important}::view-transition-image-pair(*){animation:none!important}::view-transition-old(*){animation:none!important}::view-transition-new(*){animation:none!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-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-ease{syntax:"*";inherits:false}
