@font-face{font-family:geistSans;src:url(../media/GeistVF-s.p.2-i4fw5gbtlb7.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_964a446f-module__rcSujq__className{font-family:geistSans,geistSans Fallback}.geistsans_964a446f-module__rcSujq__variable{--font-geist-sans:"geistSans", "geistSans Fallback"}
@font-face{font-family:geistMono;src:url(../media/GeistMonoVF-s.p.0b02cdm7g7y6h.woff2)format("woff2");font-display:swap;font-weight:100 900}@font-face{font-family:geistMono Fallback;src:local(Arial);ascent-override:76.43%;descent-override:22.43%;line-gap-override:0.0%;size-adjust:131.49%}.geistmono_ffa07be5-module__8Dpbka__className{font-family:geistMono,geistMono Fallback}.geistmono_ffa07be5-module__8Dpbka__variable{--font-geist-mono:"geistMono", "geistMono 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)))){*,:before,:after,::backdrop{--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-duration:initial;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0}}}@layer theme{:root,:host{--font-sans:var(--font-geist-sans);--font-mono:var(--font-geist-mono);--spacing:.25rem;--container-md:28rem;--container-lg:32rem;--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-base:1rem;--text-base--line-height:calc(1.5 / 1);--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-3xl:1.875rem;--text-3xl--line-height:calc(2.25 / 1.875);--text-5xl:3rem;--text-5xl--line-height:1;--font-weight-medium:500;--font-weight-semibold:600;--tracking-tight:-.025em;--leading-snug:1.375;--leading-relaxed:1.625;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-geist-sans);--default-mono-font-family:var(--font-geist-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}.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}.relative{position:relative}.static{position:static}.inset-0{inset:0}.inset-y-0{inset-block:0}.right-\[-20\%\]{right:-20%}.z-10{z-index:10}.col-span-1{grid-column:span 1/span 1}.col-span-3{grid-column:span 3/span 3}.col-span-6{grid-column:span 6/span 6}.col-span-7{grid-column:span 7/span 7}.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}}.mt-1{margin-top:var(--spacing)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-7{margin-top:calc(var(--spacing) * 7)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mt-20{margin-top:calc(var(--spacing) * 20)}.mt-24{margin-top:calc(var(--spacing) * 24)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-5{margin-bottom:calc(var(--spacing) * 5)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.h-\[var\(--header-height\)\]{height:var(--header-height)}.min-h-11{min-height:calc(var(--spacing) * 11)}.min-h-\[100svh\]{min-height:100svh}.min-h-full{min-height:100%}.w-8{width:calc(var(--spacing) * 8)}.w-\[9ch\]{width:9ch}.w-\[100\%\]{width:100%}.max-w-5xl{max-width:var(--container-5xl)}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.flex-1{flex:1}.shrink-0{flex-shrink:0}.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}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.flex-col{flex-direction:column}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-7{gap:calc(var(--spacing) * 7)}.gap-8{gap:calc(var(--spacing) * 8)}.gap-16{gap:calc(var(--spacing) * 16)}: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)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-16>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 16) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 16) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-4{column-gap:calc(var(--spacing) * 4)}.overflow-hidden{overflow:hidden}.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-border{border-color:var(--border)}.bg-background{background-color:var(--background)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-5{padding-block:calc(var(--spacing) * 5)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-12{padding-block:calc(var(--spacing) * 12)}.py-24{padding-block:calc(var(--spacing) * 24)}.pt-5{padding-top:calc(var(--spacing) * 5)}.pt-7{padding-top:calc(var(--spacing) * 7)}.pt-\[calc\(var\(--header-height\)\+2rem\)\]{padding-top:calc(var(--header-height) + 2rem)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-7{padding-bottom:calc(var(--spacing) * 7)}.text-right{text-align:right}.font-mono{font-family:var(--font-geist-mono)}.font-sans{font-family:var(--font-geist-sans)}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--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-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[clamp\(2\.75rem\,6vw\,6rem\)\]{font-size:clamp(2.75rem,6vw,6rem)}.text-\[clamp\(3\.25rem\,10vw\,9\.5rem\)\]{font-size:clamp(3.25rem,10vw,9.5rem)}.leading-\[0\.78\]{--tw-leading:.78;line-height:.78}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.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-\[-0\.02em\]{--tw-tracking:-.02em;letter-spacing:-.02em}.tracking-\[-0\.055em\]{--tw-tracking:-.055em;letter-spacing:-.055em}.tracking-\[0\.14em\]{--tw-tracking:.14em;letter-spacing:.14em}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.text-balance{text-wrap:balance}.text-accent{color:var(--accent)}.text-foreground{color:var(--foreground)}.text-muted{color:var(--muted)}.uppercase{text-transform:uppercase}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);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,)}.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-transform{transition-property:transform,translate,scale,rotate;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}.\[font-kerning\:none\]{font-kerning:none}@media (hover:hover){.group-hover\:translate-x-2:is(:where(.group):hover *){--tw-translate-x:calc(var(--spacing) * 2);translate:var(--tw-translate-x) var(--tw-translate-y)}}.last\:border-b:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}@media (hover:hover){.hover\:text-accent:hover{color:var(--accent)}}@media (min-width:40rem){.sm\:right-\[-8\%\]{right:-8%}.sm\:w-\[76\%\]{width:76%}.sm\:gap-4{gap:calc(var(--spacing) * 4)}.sm\:text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}}@media (min-width:48rem){.md\:col-span-2{grid-column:span 2/span 2}.md\:col-span-3{grid-column:span 3/span 3}.md\:col-span-4{grid-column:span 4/span 4}.md\:col-span-5{grid-column:span 5/span 5}.md\:col-span-6{grid-column:span 6/span 6}.md\:col-span-9{grid-column:span 9/span 9}.md\:col-span-10{grid-column:span 10/span 10}.md\:col-start-7{grid-column-start:7}.md\:col-start-10{grid-column-start:10}.md\:col-start-11{grid-column-start:11}.md\:mt-24{margin-top:calc(var(--spacing) * 24)}.md\:mt-36{margin-top:calc(var(--spacing) * 36)}.md\:block{display:block}.md\:hidden{display:none}.md\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.md\:gap-6{gap:calc(var(--spacing) * 6)}:where(.md\:space-y-24>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 24) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 24) * calc(1 - var(--tw-space-y-reverse)))}.md\:py-32{padding-block:calc(var(--spacing) * 32)}.md\:pt-3{padding-top:calc(var(--spacing) * 3)}.md\:text-left{text-align:left}.md\:text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.md\:text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.md\:text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}}@media (min-width:64rem){.lg\:right-\[-4\%\]{right:-4%}.lg\:flex{display:flex}.lg\:hidden{display:none}.lg\:w-\[63\%\]{width:63%}.lg\:py-8{padding-block:calc(var(--spacing) * 8)}}@media (min-width:80rem){.xl\:flex{display:flex}}}:root{--header-height:72px;--background:#f2f1ec;--foreground:#151515;--muted:#686762;--accent:#315cf4;--border:#1515152e;--card:#e9e8e2}.dark{--background:#10110f;--foreground:#f0efe9;--muted:#96968f;--accent:#a9c85b;--border:#f0efe92e;--card:#181916}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-height) + 16px)}body{background:var(--background);color:var(--foreground);font-family:var(--font-sans), sans-serif;margin:0;transition:background-color .3s,color .2s;overflow-x:clip}::view-transition-old(root){mix-blend-mode:normal;animation:none}::view-transition-new(root){mix-blend-mode:normal;animation:none}::view-transition-old(root){z-index:1}::view-transition-new(root){z-index:2}html[data-theme-transition=active] body,html[data-theme-transition=active] .site-header,html[data-page-transition=active] body,html[data-page-transition=active] .site-header{transition:none}html[data-page-transition=active]::view-transition-group(root){animation:none}html[data-page-transition=active]{overflow-anchor:none}html[data-page-transition=active]::view-transition-image-pair(root){isolation:isolate}html[data-page-transition=active]::view-transition-old(root){opacity:1}html[data-page-transition=active]::view-transition-new(root){clip-path:polygon(50% 50%,50% 50%,50% 50%)}::view-transition{pointer-events:none}a,button{color:inherit}a{text-decoration:none}button{cursor:pointer}.section-shell{width:min(100%,1600px);margin-inline:auto;padding-inline:clamp(1rem,3vw,3.5rem)}.site-header{z-index:50;height:var(--header-height);border-bottom:1px solid var(--border);background:var(--background);position:fixed;inset:0 0 auto}@supports (color:color-mix(in lab, red, red)){.site-header{background:color-mix(in srgb, var(--background) 82%, transparent)}}.site-header{color:var(--foreground);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);transition:color .36s,border-color .36s,background .36s}.site-header--contact{border-color:var(--background)}@supports (color:color-mix(in lab, red, red)){.site-header--contact{border-color:color-mix(in srgb, var(--background) 18%, transparent)}}.site-header--contact{background:var(--foreground);color:var(--background)}.site-header--contact #mobile-navigation{border-color:var(--background)}@supports (color:color-mix(in lab, red, red)){.site-header--contact #mobile-navigation{border-color:color-mix(in srgb, var(--background) 18%, transparent)}}.site-header--contact #mobile-navigation{background:var(--foreground);color:var(--background)}.site-wordmark{letter-spacing:-.045em;flex-shrink:0;font-size:.95rem;font-weight:600;line-height:1;transition:color .18s,opacity .18s}.site-wordmark:hover,.site-wordmark:focus-visible{color:var(--accent)}.nav-link{letter-spacing:-.02em;padding-block:1rem;font-size:1rem;transition:color .18s;position:relative}.nav-link:after{content:"";transform-origin:100%;background:currentColor;height:1px;transition:transform .24s;position:absolute;bottom:.75rem;left:0;right:0;transform:scaleX(0)}.nav-link:hover:after,.nav-link:focus-visible:after{transform-origin:0;transform:scaleX(1)}.header-control{min-height:44px;font-family:var(--font-mono), monospace;white-space:nowrap;background:0 0;border:0;flex-shrink:0;justify-content:center;align-items:center;padding-inline:.25rem;font-size:.75rem;transition:color .18s;display:inline-flex}.header-control:hover,.header-control:focus-visible{color:var(--accent)}.header-control:focus-visible,button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.header-control:disabled{cursor:default;opacity:.5}.hero-section{min-height:100svh;position:relative;overflow:hidden}.grid-backdrop{--grid-backdrop-color:var(--border);pointer-events:none;background-image:linear-gradient(to right, var(--grid-backdrop-color) 1px, transparent 1px), linear-gradient(to bottom, var(--grid-backdrop-color) 1px, transparent 1px);background-size:25% 25%;position:absolute;inset:0}.grid-backdrop__cross{width:13px;height:13px;position:absolute;transform:translate(-50%,-50%)}.grid-backdrop__cross:before,.grid-backdrop__cross:after{background:var(--foreground);position:absolute;top:50%;left:50%}@supports (color:color-mix(in lab, red, red)){.grid-backdrop__cross:before,.grid-backdrop__cross:after{background:color-mix(in srgb, var(--foreground) 45%, transparent)}}.grid-backdrop__cross:before,.grid-backdrop__cross:after{content:"";transform:translate(-50%,-50%)}.grid-backdrop__cross:before{width:13px;height:1px}.grid-backdrop__cross:after{width:1px;height:13px}.grid-backdrop--hero{--grid-backdrop-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.grid-backdrop--hero{--grid-backdrop-color:color-mix(in srgb, var(--border) 56%, transparent)}}.grid-backdrop--hero{opacity:1;-webkit-mask-image:linear-gradient(#000 0% 62%,#0000 96%);mask-image:linear-gradient(#000 0% 62%,#0000 96%)}.grid-backdrop--hero .grid-backdrop__cross:before,.grid-backdrop--hero .grid-backdrop__cross:after{background:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.grid-backdrop--hero .grid-backdrop__cross:before,.grid-backdrop--hero .grid-backdrop__cross:after{background:color-mix(in srgb, var(--foreground) 25%, transparent)}}.grid-backdrop--hero:after{background:radial-gradient(ellipse at center, var(--background) 0%, var(--background) 22%, var(--background) 48%, var(--background) 68%, transparent 86%);position:absolute;inset:7% 5% 9%}@supports (color:color-mix(in lab, red, red)){.grid-backdrop--hero:after{background:radial-gradient(ellipse at center, color-mix(in srgb, var(--background) 78%, transparent) 0%, color-mix(in srgb, var(--background) 68%, transparent) 22%, color-mix(in srgb, var(--background) 42%, transparent) 48%, color-mix(in srgb, var(--background) 16%, transparent) 68%, transparent 86%)}}.grid-backdrop--hero:after{content:""}.section-grid-host{isolation:isolate;position:relative;overflow:hidden}.section-grid-host>.section-shell{z-index:1;position:relative}.grid-backdrop--quiet{opacity:.28;-webkit-mask-image:linear-gradient(#0000,#000 14% 86%,#0000);mask-image:linear-gradient(#0000,#000 14% 86%,#0000)}.grid-backdrop--fade-edges{-webkit-mask-image:radial-gradient(#000 42%,#0000 94%);mask-image:radial-gradient(#000 42%,#0000 94%)}.grid-backdrop--footer{--grid-backdrop-color:var(--background)}@supports (color:color-mix(in lab, red, red)){.grid-backdrop--footer{--grid-backdrop-color:color-mix(in srgb, var(--background) 18%, transparent)}}.grid-backdrop--footer{opacity:.44;-webkit-mask-image:linear-gradient(#000,#0000 94%);mask-image:linear-gradient(#000,#0000 94%)}.grid-backdrop--footer .grid-backdrop__cross:before,.grid-backdrop--footer .grid-backdrop__cross:after{background:var(--background)}@supports (color:color-mix(in lab, red, red)){.grid-backdrop--footer .grid-backdrop__cross:before,.grid-backdrop--footer .grid-backdrop__cross:after{background:color-mix(in srgb, var(--background) 42%, transparent)}}.footer-point-cloud{z-index:0;opacity:.88;pointer-events:none;width:55%;height:76%;position:absolute;top:3%;right:-7%;-webkit-mask-image:radial-gradient(#000 40%,#0000 94%);mask-image:radial-gradient(#000 40%,#0000 94%)}.hero-point-cloud{opacity:1;-webkit-mask-image:radial-gradient(#000 44%,#0000 90%);mask-image:radial-gradient(#000 44%,#0000 90%)}.asset-loading-bar{z-index:100;pointer-events:none;opacity:0;height:2px;transition:opacity .18s;position:fixed;inset:0 0 auto;overflow:hidden}.asset-loading-bar.is-visible{opacity:1}.asset-loading-bar>span{transform-origin:0;background:var(--accent);width:100%;height:100%;transition:transform .18s cubic-bezier(.22,1,.36,1);display:block}.hero-section>.section-shell{z-index:1;position:relative}.section-heading{border-bottom:1px solid var(--border);grid-template-columns:repeat(12,minmax(0,1fr));align-items:start;gap:1rem;margin-bottom:clamp(2.5rem,5vw,4.5rem);padding-bottom:1.25rem;display:grid}.section-heading>:first-child{grid-column:span 5}.section-heading>:last-child{grid-column:7/span 5}section[id]:not(.hero-section){padding-block:clamp(3.5rem,7vw,6rem)}.section-heading>.section-kicker:before{content:"";background:var(--accent);vertical-align:.08em;width:6px;height:6px;margin-right:.75rem;display:inline-block}#lab{background:var(--accent)}@supports (color:color-mix(in lab, red, red)){#lab{background:color-mix(in srgb, var(--accent) 3%, var(--background))}}.about-details{background:var(--background);margin-top:clamp(3.5rem,7vw,6rem)}.capability-row h2{transition:color .22s}.capability-row:hover h2{color:var(--accent)}.publication-copy a svg,.footer-email svg{transition:transform .24s}.publication-copy a:hover svg,.publication-copy a:focus-visible svg,.footer-email:hover svg,.footer-email:focus-visible svg{transform:translate(3px,-3px)}@media (min-width:1024px){.activity-grid .activity-panel{grid-column:7/-1;min-height:0}.activity-grid .activity-panel--focus{grid-area:1/1/3/7}.activity-grid .spotify-track{grid-template-columns:5.5rem minmax(0,1fr);padding-block:1.5rem}.activity-grid .spotify-track__title{font-size:1.75rem}.activity-grid .contribution-grid{max-width:26rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.publication-copy a svg,.footer-email svg{transition:none}}.section-kicker{font-family:var(--font-mono), monospace;letter-spacing:.04em;text-transform:uppercase;font-size:.7rem;line-height:1.4}.section-texture{isolation:isolate;position:relative;overflow:hidden}.section-texture:before{content:"";z-index:0;pointer-events:none;position:absolute;inset:0}.section-texture>.section-shell{z-index:1;position:relative}.section-texture--grid:before{opacity:.42;background-image:linear-gradient(to right, var(--border) 1px, transparent 1px), linear-gradient(to bottom, var(--border) 1px, transparent 1px);background-size:25% 8rem;-webkit-mask-image:linear-gradient(#0000,#000 18% 82%,#0000);mask-image:linear-gradient(#0000,#000 18% 82%,#0000)}.section-texture--ruled:before{opacity:.5;background-image:repeating-linear-gradient(to bottom, transparent 0 5.95rem, var(--border) 6rem);-webkit-mask-image:linear-gradient(90deg,#0000,#000 12% 88%,#0000);mask-image:linear-gradient(90deg,#0000,#000 12% 88%,#0000)}.project-placeholder{--project-accent:#a9c85b;isolation:isolate;aspect-ratio:16/9.5;border:1px solid var(--project-accent);width:100%;position:relative;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.project-placeholder{border:1px solid color-mix(in srgb, var(--project-accent) 35%, var(--border))}}.project-placeholder{background:radial-gradient(circle at 50% 55%, var(--project-accent), transparent 35%), var(--project-accent)}@supports (color:color-mix(in lab, red, red)){.project-placeholder{background:radial-gradient(circle at 50% 55%, color-mix(in srgb, var(--project-accent) 32%, transparent), transparent 35%), color-mix(in srgb, var(--project-accent) 9%, var(--card))}}.project-placeholder:before{content:"";z-index:-1;background:linear-gradient(135deg, transparent 0 45%, var(--project-accent) 45% 55%, transparent 55%);position:absolute;inset:0}@supports (color:color-mix(in lab, red, red)){.project-placeholder:before{background:linear-gradient(135deg, transparent 0 45%, color-mix(in srgb, var(--project-accent) 18%, transparent) 45% 55%, transparent 55%)}}.project-placeholder:before{transform:translate(-36%)}.project-placeholder__grid{opacity:.45;background-image:linear-gradient(to right, var(--foreground) 1px, transparent 1px), linear-gradient(to bottom, var(--foreground) 1px, transparent 1px);position:absolute;inset:0}@supports (color:color-mix(in lab, red, red)){.project-placeholder__grid{background-image:linear-gradient(to right, color-mix(in srgb, var(--foreground) 13%, transparent) 1px, transparent 1px), linear-gradient(to bottom, color-mix(in srgb, var(--foreground) 13%, transparent) 1px, transparent 1px)}}.project-placeholder__grid{background-size:7.5% 12.5%;-webkit-mask-image:linear-gradient(90deg,#0000,#000 20% 80%,#0000);mask-image:linear-gradient(90deg,#0000,#000 20% 80%,#0000)}.project-placeholder__orbit{border:1px solid var(--project-accent);position:absolute;top:50%;left:50%}@supports (color:color-mix(in lab, red, red)){.project-placeholder__orbit{border:1px solid color-mix(in srgb, var(--project-accent) 70%, var(--foreground))}}.project-placeholder__orbit{border-radius:50%;transition:transform .9s cubic-bezier(.22,1,.36,1);transform:translate(-50%,-50%)}.project-placeholder__orbit--one{aspect-ratio:1;width:49%}.project-placeholder__orbit--two{aspect-ratio:1;opacity:.5;border-style:dashed;width:68%}.project-placeholder__device{aspect-ratio:4/5;border:1px solid var(--foreground);background:var(--background);place-items:center;width:min(31%,330px);display:grid;position:absolute;top:50%;left:50%}@supports (color:color-mix(in lab, red, red)){.project-placeholder__device{background:color-mix(in srgb, var(--background) 74%, transparent)}}.project-placeholder__device{box-shadow:18px 18px 0 var(--project-accent)}@supports (color:color-mix(in lab, red, red)){.project-placeholder__device{box-shadow:18px 18px 0 color-mix(in srgb, var(--project-accent) 55%, transparent)}}.project-placeholder__device{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:transform .7s cubic-bezier(.22,1,.36,1),box-shadow .7s;transform:translate(-50%,-50%)rotate(-6deg)}.project-placeholder__device span{font-family:var(--font-mono), monospace;letter-spacing:-.1em;color:var(--project-accent);font-size:clamp(2.5rem,8vw,8rem);font-weight:600}.project-placeholder__meta{font-family:var(--font-mono), monospace;letter-spacing:.04em;justify-content:space-between;font-size:clamp(.55rem,1vw,.7rem);display:flex;position:absolute;top:clamp(.8rem,2vw,1.5rem);left:clamp(.8rem,2vw,1.5rem);right:clamp(.8rem,2vw,1.5rem)}.project-placeholder__title{letter-spacing:-.07em;text-align:right;text-overflow:ellipsis;white-space:nowrap;opacity:.2;max-width:90%;font-size:clamp(2.2rem,8vw,8.5rem);font-weight:600;line-height:.9;position:absolute;bottom:clamp(.5rem,1.5vw,1.2rem);right:clamp(.8rem,2vw,1.5rem);overflow:hidden}.project-placeholder:hover .project-placeholder__device{box-shadow:8px 8px 0 var(--project-accent)}@supports (color:color-mix(in lab, red, red)){.project-placeholder:hover .project-placeholder__device{box-shadow:8px 8px 0 color-mix(in srgb, var(--project-accent) 72%, transparent)}}.project-placeholder:hover .project-placeholder__device{transform:translate(-50%,-50%)rotate(0)scale(1.04)}.project-placeholder:hover .project-placeholder__orbit--one{transform:translate(-50%,-50%)rotate(30deg)scale(1.06)}.project-placeholder:hover .project-placeholder__orbit--two{transform:translate(-50%,-50%)rotate(-20deg)scale(.96)}.project-artwork{isolation:isolate;aspect-ratio:16/10;border:1px solid var(--border);background:#eae7ee;width:100%;position:relative;overflow:hidden}.project-artwork--phones{background:#17191e}.project-artwork--tablet{background:#eeece5}.project-artwork__background{object-fit:cover}.project-artwork__stage{justify-content:center;align-items:center;gap:7%;padding:5%;display:flex;position:absolute;inset:0}.project-artwork__frame{background:#fafafa;border:1px solid #ffffff8c;border-radius:clamp(6px,1.1vw,18px);flex:none;width:83%;transition:transform .7s cubic-bezier(.22,1,.36,1);position:relative;overflow:hidden;box-shadow:0 18px 55px #23184629,0 2px 8px #0000001a}.project-artwork__screen{width:100%;height:auto;display:block}.project-screenshot-crop{width:100%;position:relative;overflow:hidden}.project-artwork__browser-bar{background:#f1f1f2;border-bottom:1px solid #00000014;align-items:center;gap:.45%;padding:1.3% 1.6%;display:flex}.project-artwork__browser-bar i{aspect-ratio:1;background:#b7b7bb;border-radius:50%;width:.8%}.project-artwork__browser-bar span{background:#e1e1e4;border-radius:3px;width:36%;height:clamp(3px,.5vw,8px);margin-inline:auto}.project-artwork--browser .project-artwork__frame{width:83%}.project-artwork--web-mobile .project-artwork__frame--browser{width:82%;transform:translate(-5%)}.project-artwork--web-mobile .project-artwork__frame--phone{z-index:1;background:#101522;border:1px solid #526283;border-radius:14%/6.5%;width:19%;padding:.4%;position:absolute;right:8%;transform:translateY(10%)rotate(3deg);box-shadow:0 18px 40px #00000059}.project-artwork__frame--phone .project-screenshot-crop{border-radius:13%/6%}.project-artwork--phones .project-artwork__frame{background:#131315;border:1px solid #65666b;border-radius:15%/7%;width:24%;padding:3px;box-shadow:0 24px 50px #00000073}.project-artwork--phones .project-artwork__screen{border-radius:14%/6.5%}.project-artwork--phones .project-artwork__frame:first-child{transform:translateY(3%)rotate(-6deg)}.project-artwork--phones .project-artwork__frame:last-child{transform:translateY(-3%)rotate(6deg)}.project-artwork--tablet .project-artwork__frame{background:#161619;border:1px solid #414144;border-radius:clamp(10px,1.5vw,24px);width:77%;padding:clamp(4px,.7vw,11px);transform:rotate(-3deg)}.project-artwork--tablet .project-artwork__screen{border-radius:clamp(5px,.8vw,12px)}@media (hover:hover) and (prefers-reduced-motion:no-preference){a:hover .project-artwork--phones .project-artwork__frame:first-child{transform:translateY(1%)rotate(-3deg)}a:hover .project-artwork--phones .project-artwork__frame:last-child{transform:translateY(-1%)rotate(3deg)}a:hover .project-artwork--tablet .project-artwork__frame{transform:rotate(-1deg)}a:hover .project-artwork--window .project-artwork__frame,a:hover .project-artwork--browser .project-artwork__frame{transform:translateY(-1%)}}.project-gallery{margin:0 0 clamp(3rem,7vw,7rem)}.project-gallery__heading{border-top:1px solid var(--border);justify-content:space-between;gap:1rem;margin-bottom:1.5rem;padding-top:1.5rem;display:flex}.project-gallery__heading>p:last-child{color:var(--muted);font-size:.8rem}.project-gallery__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(1rem,2vw,2rem);display:grid}.project-gallery--phones .project-gallery__grid{grid-template-columns:repeat(4,minmax(0,1fr))}.project-gallery__image{border:1px solid var(--border);aspect-ratio:3/2;background:#f8f8f8;justify-content:center;align-items:center;display:flex;overflow:hidden}.project-gallery__image img{object-fit:contain;width:100%;height:100%;display:block}.project-gallery--phones .project-gallery__image{aspect-ratio:1/2.35;background:#1b1b1e;padding:9%}.project-gallery--phones .project-gallery__image img{border-radius:14%/6.5%}.project-gallery__image--phone{aspect-ratio:3/2;background:#101a31;padding:4%}.project-gallery--web-mobile .project-gallery__image{background:#101a31}.project-gallery__image--phone img{border-radius:7px;width:auto;max-width:100%}.project-gallery__image--phone .project-screenshot-crop{border-radius:7px;width:auto;height:100%}.project-gallery figcaption{gap:.8rem;padding-top:.8rem;font-size:.8rem;line-height:1.5;display:flex}.project-gallery figcaption span{font-family:var(--font-mono), monospace;color:var(--muted);font-size:.65rem}@media (max-width:767px){.project-artwork{aspect-ratio:4/3}.project-artwork--phones .project-artwork__frame{width:28%;padding:2px}.project-artwork--tablet .project-artwork__frame{width:87%}.project-artwork--window .project-artwork__frame,.project-artwork--browser .project-artwork__frame{width:93%}.project-artwork--web-mobile .project-artwork__frame--browser{width:89%;transform:translate(-4%)}.project-artwork--web-mobile .project-artwork__frame--phone{width:23%;right:5%}.project-gallery__grid{grid-template-columns:1fr}.project-gallery--phones .project-gallery__grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-gallery figcaption{gap:.5rem;font-size:.7rem}}.archive-row{transition:color .24s,background .24s}.archive-row:hover{color:var(--accent)}.archive-arrow,.archive-row:hover .archive-year{display:none}.archive-row:hover .archive-arrow{display:inline}.inner-page{padding-block:calc(var(--header-height) + clamp(3rem, 8vw, 7rem)) clamp(5rem, 10vw, 9rem)}.back-link{font-family:var(--font-mono), monospace;text-transform:uppercase;color:var(--muted);align-items:center;gap:.5rem;font-size:.7rem;transition:color .18s;display:inline-flex}.back-link:hover{color:var(--accent)}.case-hero{margin-block:clamp(2rem,4vw,3.5rem) clamp(2.5rem,5vw,4rem)}.case-page{padding-top:calc(var(--header-height) + clamp(2rem, 4vw, 4rem))}.case-hero__meta,.article-header__meta{font-family:var(--font-mono), monospace;text-transform:uppercase;color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:1rem;font-size:.68rem;display:flex}.case-hero h1{letter-spacing:-.085em;margin-top:clamp(1.75rem,3.5vw,3rem);font-size:clamp(4rem,12vw,11rem);font-weight:600;line-height:.76}.case-hero__intro{grid-template-columns:repeat(12,minmax(0,1fr));gap:1rem;margin-top:clamp(2rem,4vw,3.5rem);display:grid}.case-hero__intro>:first-child{font-family:var(--font-mono), monospace;text-transform:uppercase;color:var(--accent);grid-column:1/span 4;font-size:.72rem}.case-hero__intro>:last-child{letter-spacing:-.02em;grid-column:7/span 5;max-width:36rem;font-size:clamp(1.1rem,2vw,1.65rem);line-height:1.45}.project-hero-carousel__viewport{aspect-ratio:16/10;touch-action:pan-y;cursor:grab;width:100%;overflow:hidden}.project-hero-carousel__viewport:active{cursor:grabbing}.project-hero-carousel__viewport img{pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.project-hero-carousel__track{width:100%;height:100%;transition:transform .6s cubic-bezier(.22,1,.36,1);display:flex}.project-hero-carousel__slide{flex:0 0 100%;min-width:0;height:100%}.project-hero-carousel__slide .project-artwork{height:100%}.project-hero-carousel__slide--video{background:#081022;position:relative}.project-hero-carousel__slide--video video{object-fit:contain;border:1px solid var(--border);width:100%;height:100%;display:block}.project-hero-carousel__playback{color:#fff;font-family:var(--font-mono), monospace;text-transform:uppercase;cursor:pointer;background:#081022d1;border:1px solid #ffffff59;align-items:center;gap:.5rem;padding:.65rem .8rem;font-size:.65rem;display:inline-flex;position:absolute;bottom:clamp(.75rem,2vw,1.75rem);right:clamp(.75rem,2vw,1.75rem)}.project-hero-carousel__nav{min-height:3.75rem;font-family:var(--font-mono), monospace;text-transform:uppercase;color:var(--muted);grid-template-columns:auto 1fr auto;align-items:center;gap:clamp(.75rem,2vw,2rem);font-size:.68rem;display:grid}.project-hero-carousel__count{color:var(--accent)}.project-hero-carousel__arrows{gap:.25rem;display:flex}.project-hero-carousel__arrows button{border:1px solid var(--border);width:2.25rem;height:2.25rem;color:var(--foreground);cursor:pointer;place-items:center;display:grid}.project-hero-carousel__arrows button:disabled{opacity:.3;cursor:default}.project-hero-carousel__arrows button:not(:disabled):hover{border-color:var(--accent);color:var(--accent)}@media (max-width:767px){.project-hero-carousel__viewport{aspect-ratio:4/3}.project-hero-carousel__hint{font-size:.58rem}}@media (prefers-reduced-motion:reduce){.project-hero-carousel__track{transition:none}}.case-details{grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(3rem,6vw,6rem) 1rem;margin-top:clamp(5rem,10vw,9rem);display:grid}.case-details>section:first-child{grid-column:1/span 5}.case-details>section:nth-child(2),.case-details>section:nth-child(3){grid-column:7/span 6}.case-label{font-family:var(--font-mono), monospace;text-transform:uppercase;color:var(--muted);margin-bottom:1.5rem;font-size:.68rem;display:block}.case-details h2{letter-spacing:-.055em;max-width:16ch;font-size:clamp(2rem,4vw,4.25rem);font-weight:500;line-height:.98}.case-details section>p:last-child{max-width:38rem;color:var(--muted);margin-top:2rem;font-size:.95rem;line-height:1.7}.case-highlight-list li{border-top:1px solid var(--border);padding-block:1rem;font-size:clamp(1rem,1.8vw,1.35rem);line-height:1.35}.case-highlight-list li:last-child{border-bottom:1px solid var(--border)}.case-tech-list{flex-wrap:wrap;gap:.5rem;display:flex}.case-tech-list li{background:var(--card);font-family:var(--font-mono), monospace;text-transform:uppercase;padding:.55rem .75rem;font-size:.68rem}.case-external{font-family:var(--font-mono), monospace;text-transform:uppercase;align-items:center;gap:.45rem;margin-top:2rem;font-size:.68rem;display:inline-flex}.case-external:hover{color:var(--accent)}.case-story{border-top:1px solid var(--border);width:min(100%,70rem);margin:clamp(3rem,5vw,5.5rem) auto 0}.case-story__intro,.case-story__row{grid-template-columns:minmax(12rem,4fr) minmax(20rem,7fr);gap:clamp(2rem,6vw,7rem);display:grid}.case-story__intro{padding-block:clamp(2rem,4vw,4rem)}.case-story__intro h2{letter-spacing:-.06em;font-size:clamp(2.5rem,5vw,5rem);font-weight:500;line-height:.95}.case-story__row{border-top:1px solid var(--border);padding-block:clamp(2.5rem,6vw,5rem)}.case-story__heading h3{letter-spacing:-.045em;max-width:23ch;margin-top:clamp(1.5rem,3vw,2.5rem);font-size:clamp(1.7rem,3vw,3rem);font-weight:500;line-height:1.05}.case-story__meta{font-family:var(--font-mono), monospace;text-transform:uppercase;color:var(--muted);gap:clamp(1.5rem,3vw,3rem);font-size:.7rem;display:flex}.case-story__meta span:first-child{color:var(--accent)}.case-story__body{color:var(--muted);font-size:clamp(1rem,1.5vw,1.15rem);line-height:1.8}.next-entry{border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding-block:clamp(2rem,4vw,3.5rem);grid-template-columns:1fr auto;align-items:end;gap:1rem;margin-top:clamp(6rem,12vw,12rem);padding-right:clamp(2rem,4vw,4.5rem);display:grid}.next-entry .case-label{grid-column:1/-1;margin-bottom:0}.next-entry>span:nth-child(2){letter-spacing:-.06em;font-size:clamp(2.25rem,6vw,6rem);font-weight:500;line-height:.95;transition:color .2s}.next-entry svg{width:clamp(1.75rem,4vw,3.25rem);height:auto;transition:transform .22s}.next-entry:hover>span:nth-child(2){color:var(--accent)}.next-entry:hover svg{transform:translate(.5rem)}.note-list{border-top:1px solid var(--border)}.note-row{border-bottom:1px solid var(--border);grid-template-columns:3rem minmax(15rem,5fr) minmax(14rem,4fr) auto;align-items:start;gap:clamp(1rem,3vw,3rem);padding-block:clamp(1.75rem,4vw,3rem);display:grid}.note-row__index,.note-row__meta,.note-row__action{font-family:var(--font-mono), monospace;text-transform:uppercase;color:var(--muted);font-size:.67rem}.note-row__meta{margin-bottom:.75rem}.note-row__title{letter-spacing:-.045em;max-width:18ch;font-size:clamp(1.5rem,3vw,3rem);font-weight:500;line-height:1.05;transition:color .2s,transform .24s}.note-row__excerpt{max-width:34rem;color:var(--muted);font-size:.9rem;line-height:1.65}.note-row__action{white-space:nowrap;align-items:center;gap:.45rem;display:inline-flex}.note-row__action svg{transition:transform .22s}.note-row:hover .note-row__title{color:var(--accent);transform:translate(.35rem)}.note-row:hover .note-row__action svg{transform:translate(.2rem,-.2rem)}.notes-index__header{grid-template-columns:repeat(12,minmax(0,1fr));align-items:end;gap:1rem;margin-bottom:clamp(5rem,10vw,9rem);display:grid}.notes-index__header .section-kicker{grid-column:1/span 3;align-self:start}.notes-index__header h1{letter-spacing:-.075em;grid-column:4/-1;max-width:9ch;font-size:clamp(4rem,10vw,10rem);font-weight:600;line-height:.85}.notes-index__header>p:last-child{color:var(--muted);grid-column:8/span 4;margin-top:2rem;font-size:.95rem;line-height:1.65}.article-page{max-width:100%;padding-top:calc(var(--header-height) + clamp(2rem, 4vw, 4rem))}.article-page>.section-shell>.back-link,.article-header,.article-prose,.article-page .next-entry{width:min(100%,70rem);margin-inline:auto}.article-header{margin-block:clamp(2.5rem,5vw,4.5rem) clamp(4rem,8vw,7rem)}.article-header__meta{justify-content:flex-start;gap:.75rem 1.25rem}.article-header h1{letter-spacing:-.07em;margin-top:clamp(2rem,4vw,3.5rem);font-size:clamp(3.5rem,8vw,7rem);font-weight:600;line-height:.88}.article-header>p{max-width:44rem;color:var(--muted);margin-top:clamp(2rem,5vw,4rem);font-size:clamp(1.15rem,2.2vw,1.75rem);line-height:1.45}.article-prose section{border-top:1px solid var(--border);grid-template-columns:minmax(12rem,4fr) minmax(20rem,7fr);gap:clamp(2rem,6vw,7rem);padding-block:clamp(2.5rem,6vw,5rem);display:grid}.article-prose section:last-child{border-bottom:1px solid var(--border)}.article-prose h2{letter-spacing:-.045em;font-size:clamp(1.7rem,3vw,3rem);font-weight:500;line-height:1.05}.article-prose p{color:var(--muted);font-size:clamp(1rem,1.5vw,1.15rem);line-height:1.8}.article-prose p+p{margin-top:1.5rem}.about-statement{letter-spacing:-.06em;max-width:22ch;font-size:clamp(2.4rem,6.5vw,7rem);font-weight:500;line-height:.98}.scroll-word{color:var(--foreground);will-change:transform, opacity;margin-right:.22em;display:inline-block}.scroll-word--emphasis{color:var(--accent);position:relative}.scroll-word--emphasis:after{content:"";transform-origin:0;opacity:.5;background:currentColor;height:.035em;position:absolute;bottom:-.04em;left:0;right:0;transform:scaleX(.5)}.detail-row{justify-content:space-between;gap:2rem;padding-bottom:2.25rem;display:flex}.detail-row+.detail-row{border-top:1px solid var(--border);padding-top:2rem}.education-list .detail-row+.detail-row{border-top:0}.capability-list{border-bottom:1px solid var(--border)}.capability-row{border-top:1px solid var(--border);grid-template-columns:minmax(2rem,1fr) 4fr 7fr;align-items:baseline;gap:1rem;padding-block:clamp(1.5rem,3vw,2.5rem);display:grid}.capability-row h2{letter-spacing:-.05em;font-size:clamp(1.7rem,3.2vw,3.75rem);font-weight:500;line-height:1}.capability-row p{font-family:var(--font-mono), monospace;color:var(--muted);font-size:.72rem;line-height:1.75}.activity-grid{border-top:1px solid var(--border);border-left:1px solid var(--border);grid-template-columns:repeat(12,minmax(0,1fr));display:grid}.activity-panel{border-right:1px solid var(--border);border-bottom:1px solid var(--border);background:0 0;flex-direction:column;grid-column:span 4;justify-content:space-between;min-height:350px;padding:clamp(1.25rem,2.5vw,2.25rem);transition:background .24s;display:flex}a.activity-panel:hover{background:var(--card)}.activity-panel--github{background:0 0}.activity-panel--focus{min-height:470px}.activity-value{letter-spacing:-.05em;max-width:18ch;font-size:clamp(1.75rem,3vw,3.25rem);font-weight:500;line-height:1.02}.activity-focus-copy{letter-spacing:-.02em;max-width:27ch;font-size:1rem;line-height:1.4}.focus-status{font-family:var(--font-mono), monospace;text-transform:uppercase;color:var(--muted);font-size:.6rem}.focus-editorial{border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding-block:clamp(1.25rem,3vw,2.25rem)}.focus-editorial>p{font-family:var(--font-mono), monospace;text-transform:uppercase;color:var(--muted);font-size:.6rem;line-height:1.5}.focus-editorial h3{letter-spacing:-.06em;margin-top:1rem;font-size:clamp(2.2rem,4vw,4.4rem);font-weight:500;line-height:.88}.focus-editorial__notes{font-family:var(--font-mono), monospace;text-transform:uppercase;color:var(--muted);justify-content:space-between;gap:1rem;margin-top:clamp(1.5rem,3vw,2.5rem);font-size:.58rem;display:flex}.activity-meta{border-top:1px solid var(--border);font-family:var(--font-mono), monospace;text-transform:uppercase;color:var(--muted);justify-content:space-between;gap:1rem;padding-top:1rem;font-size:.65rem;line-height:1.4;display:flex}.spotify-track{flex:1;grid-template-columns:clamp(7rem,11vw,10rem) minmax(0,1fr);align-items:center;gap:clamp(1.25rem,2.5vw,2.5rem);padding-block:clamp(2rem,5vw,4rem);display:grid}.spotify-artwork{aspect-ratio:1;border-radius:50%;width:100%;position:relative}.spotify-artwork:after{aspect-ratio:1;border:2px solid var(--background);width:.72rem;position:absolute;top:50%;left:50%}@supports (color:color-mix(in lab, red, red)){.spotify-artwork:after{border:2px solid color-mix(in srgb, var(--background) 55%, transparent)}}.spotify-artwork:after{background:var(--foreground);content:"";border-radius:50%;transform:translate(-50%,-50%)}.spotify-art{object-fit:cover;filter:grayscale();border-radius:50%;width:100%;height:100%;transition:filter .4s}.spotify-artwork.is-playing .spotify-art{animation:14s linear infinite spotify-record-spin}.activity-panel--spotify:hover .spotify-art{filter:grayscale(0)}@keyframes spotify-record-spin{to{transform:rotate(1turn)}}.spotify-track__copy{min-width:0}.spotify-track__state{font-family:var(--font-mono), monospace;text-transform:uppercase;color:var(--muted);margin-bottom:.9rem;font-size:.6rem;line-height:1.4}.spotify-track__title{letter-spacing:-.045em;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:clamp(1.5rem,2.8vw,2.75rem);font-weight:500;line-height:1.02;display:-webkit-box;overflow:hidden}.spotify-track__artist{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin-top:.75rem;font-size:.82rem;line-height:1.4;overflow:hidden}.spotify-art--placeholder{background:repeating-linear-gradient(45deg, transparent 0 7px, var(--border) 7px 8px), var(--card);place-items:center;font-size:1.5rem;display:grid}.equalizer{align-items:end;gap:2px;height:16px;display:flex}.equalizer span{background:currentColor;width:2px;height:3px}.equalizer.is-playing span:first-child{animation:.7s ease-in-out infinite alternate equalize}.equalizer.is-playing span:nth-child(2){animation:.5s ease-in-out .12s infinite alternate equalize}.equalizer.is-playing span:nth-child(3){animation:.85s ease-in-out .22s infinite alternate equalize}@keyframes equalize{to{height:15px}}.contribution-grid{grid-template-columns:repeat(16,minmax(0,1fr));gap:3px;width:100%;display:grid}.contribution-week{grid-template-rows:repeat(7,minmax(0,1fr));gap:3px;min-width:0;display:grid}.contribution-day{aspect-ratio:1;background:var(--border);width:100%}.contribution-day[data-level="1"]{background:var(--accent)}@supports (color:color-mix(in lab, red, red)){.contribution-day[data-level="1"]{background:color-mix(in srgb, var(--accent) 30%, var(--border))}}.contribution-day[data-level="2"]{background:var(--accent)}@supports (color:color-mix(in lab, red, red)){.contribution-day[data-level="2"]{background:color-mix(in srgb, var(--accent) 52%, var(--border))}}.contribution-day[data-level="3"]{background:var(--accent)}@supports (color:color-mix(in lab, red, red)){.contribution-day[data-level="3"]{background:color-mix(in srgb, var(--accent) 75%, var(--border))}}.contribution-day[data-level="4"]{background:var(--accent)}.publication-list{border-top:1px solid var(--border)}.publication-row{border-bottom:1px solid var(--border);grid-template-columns:1fr 6.5fr 3.5fr;align-items:start;gap:clamp(1rem,3vw,3rem);padding-block:clamp(2rem,5vw,4.5rem);display:grid}.publication-index{min-height:4rem;font-family:var(--font-mono), monospace;color:var(--muted);flex-direction:column;justify-content:space-between;font-size:.68rem;display:flex}.publication-venue{font-family:var(--font-mono), monospace;text-transform:uppercase;color:var(--accent);margin-bottom:1rem;font-size:.68rem;line-height:1.4}.publication-meta__mobile{display:none}.publication-row h2{letter-spacing:-.05em;max-width:25ch;font-size:clamp(1.8rem,4vw,4.75rem);font-weight:500;line-height:1.03}.publication-copy{color:var(--muted);font-size:.875rem;line-height:1.65}.publication-copy a{font-family:var(--font-mono), monospace;text-transform:uppercase;color:var(--foreground);align-items:center;gap:.4rem;margin-top:1.5rem;font-size:.68rem;display:inline-flex}.publication-copy a:hover{color:var(--accent)}.site-footer{isolation:isolate;min-height:calc(100svh - var(--header-height));border-top:1px solid var(--border);background:var(--foreground);color:var(--background);padding-block:clamp(3.5rem,8vw,7rem) 2rem;position:relative;overflow:hidden}.site-footer>.section-shell{z-index:1;position:relative}.footer-title{font-kerning:none;letter-spacing:-.02em;text-transform:uppercase;max-width:14ch;font-size:clamp(3.2rem,9.8vw,10rem);font-weight:600;line-height:.84}.scramble-word{margin-right:.18em;display:inline-block;position:relative}.scramble-word:last-child{margin-right:0}.scramble-word__target{visibility:hidden}.scramble-word__value{white-space:nowrap;position:absolute;inset:0;overflow:visible}.scramble-character--active{color:var(--accent);transition:color .1s linear}.hero-scramble .scramble-word{margin-right:.15em;padding-bottom:.08em}.github-overview{grid-template-columns:minmax(0,1.65fr) minmax(8.5rem,.85fr);align-items:center;gap:clamp(1.25rem,3vw,3rem);margin-block:1.5rem;display:grid}.github-stack{border-left:1px solid var(--border);min-width:0;font-family:var(--font-mono), monospace;text-transform:uppercase;flex-direction:column;gap:.8rem;padding-left:clamp(1rem,2vw,2rem);font-size:.6rem;line-height:1.5;display:flex}.github-stack__label{color:var(--muted)}.github-stack__items{color:var(--foreground);flex-direction:column;gap:.35rem;display:flex}.github-stack__item{grid-template-columns:1.8rem minmax(0,1fr);gap:.35rem;display:grid}.github-stack__item>span{color:var(--accent)}.footer-email{border-top:1px solid var(--background);justify-content:space-between;align-items:center;gap:1rem;margin-top:clamp(4rem,8vw,7rem);padding-block:1.5rem;display:flex}@supports (color:color-mix(in lab, red, red)){.footer-email{border-top:1px solid color-mix(in srgb, var(--background) 30%, transparent)}}.footer-email{border-bottom:1px solid var(--background)}@supports (color:color-mix(in lab, red, red)){.footer-email{border-bottom:1px solid color-mix(in srgb, var(--background) 30%, transparent)}}.footer-email{letter-spacing:-.04em;font-size:clamp(1.05rem,3vw,3rem)}.footer-email svg{width:clamp(1.5rem,4vw,3.5rem);height:auto}.footer-meta{font-family:var(--font-mono), monospace;text-transform:uppercase;color:var(--background);grid-template-columns:minmax(0,3fr) minmax(0,4fr) minmax(0,5fr);gap:1rem;margin-top:2rem;font-size:.65rem;line-height:1.7;display:grid}@supports (color:color-mix(in lab, red, red)){.footer-meta{color:color-mix(in srgb, var(--background) 66%, transparent)}}.footer-meta a:hover{color:var(--background)}.footer-meta__links{white-space:nowrap;align-items:baseline;gap:clamp(.9rem,2vw,2rem);display:flex}.footer-music--desktop{text-align:right;justify-self:end}.footer-music--mobile{display:none}.sound-spinner{vertical-align:-.12em;width:1ch;height:1em;animation:1.4s linear infinite sound-line-spin;display:inline-block;position:relative}.sound-spinner:after{content:"";background:currentColor;height:1px;position:absolute;top:50%;left:.08em;right:.08em;transform:translateY(-50%)}@keyframes sound-line-spin{0%{transform:rotate(45deg)}to{transform:rotate(405deg)}}html{scrollbar-width:thin;scrollbar-color:var(--foreground) transparent}@supports (color:color-mix(in lab, red, red)){html{scrollbar-color:color-mix(in srgb, var(--foreground) 38%, transparent) transparent}}::-webkit-scrollbar{width:11px;height:11px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-button{display:none}::-webkit-scrollbar-corner{background:0 0}::-webkit-scrollbar-thumb{background:var(--foreground);border:3px solid #0000;border-radius:999px;min-height:3rem}@supports (color:color-mix(in lab, red, red)){::-webkit-scrollbar-thumb{background:color-mix(in srgb, var(--foreground) 38%, transparent)}}::-webkit-scrollbar-thumb{background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background:var(--accent);border-width:2px}@supports (color:color-mix(in lab, red, red)){::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb, var(--accent) 82%, var(--foreground))}}::-webkit-scrollbar-thumb:hover{background-clip:padding-box}::-webkit-scrollbar-thumb:active{background:var(--accent);background-clip:padding-box}.page-scrollbar{display:none}@media (hover:hover) and (pointer:fine){html{scrollbar-width:none}::-webkit-scrollbar{width:0;height:0}.page-scrollbar{z-index:45;cursor:pointer;opacity:0;pointer-events:none;width:18px;height:clamp(14rem,42vh,21rem);transition:opacity .24s;display:block;position:fixed;top:50%;right:clamp(.5rem,1vw,.875rem);transform:translateY(-50%)}.page-scrollbar[data-visible=true]{opacity:1;pointer-events:auto}.page-scrollbar:before{background:var(--foreground);border-radius:999px;width:8px;position:absolute;top:0;bottom:0;right:5px}@supports (color:color-mix(in lab, red, red)){.page-scrollbar:before{background:color-mix(in srgb, var(--foreground) 22%, transparent)}}.page-scrollbar:before{content:""}.page-scrollbar__thumb{background:var(--foreground);cursor:grab;touch-action:none;border-radius:999px;width:8px;min-height:48px;transition:width .18s,right .18s,background-color .18s;position:absolute;top:0;right:5px}.page-scrollbar:hover .page-scrollbar__thumb,.page-scrollbar__thumb:focus-visible{background:var(--foreground);width:10px;right:4px}.page-scrollbar__thumb:active{cursor:grabbing}}@media print{.page-scrollbar{display:none!important}}::selection{background:var(--accent);color:#fff}@media (min-width:1024px){:root{--header-height:80px}}@media (min-width:768px){.site-footer{height:calc(100svh - var(--header-height));min-height:40rem;overflow:hidden}.site-footer>.section-shell{flex-direction:column;height:100%;display:flex}.site-footer .footer-title{font-size:clamp(3.2rem,min(9.8vw,13vh),10rem)}.footer-email{margin-top:auto}}@media (max-width:1023px){.activity-panel{grid-column:span 6}.activity-panel:first-child{grid-column:span 12;min-height:300px}}@media (max-width:1023px) and (hover:hover) and (pointer:fine){.page-scrollbar{width:10px;height:clamp(12rem,36vh,17rem);right:2px}.page-scrollbar:before,.page-scrollbar__thumb{width:4px;right:2px}.page-scrollbar:hover .page-scrollbar__thumb,.page-scrollbar__thumb:focus-visible{width:6px;right:1px}}@media (max-width:767px){.site-footer{min-height:calc(100dvh - var(--header-height))}.site-footer>.section-shell{min-height:calc(100dvh - var(--header-height) - clamp(3.5rem, 8vw, 7rem) - 2rem);flex-direction:column;display:flex}.site-footer .footer-title{max-width:none;font-size:clamp(3.05rem,12.4vw,5.6rem)}.site-footer .footer-email{margin-top:auto;padding-block:1.1rem}.site-footer .footer-meta{margin-top:.9rem;padding-top:0}.footer-meta__links{flex-wrap:wrap;gap:.5rem clamp(.5rem,2.3vw,.875rem);font-size:.6rem;display:flex}.footer-meta__links .footer-music--mobile{white-space:nowrap;margin-left:auto}.footer-music--desktop{display:none}.footer-music--mobile{display:inline}.hero-point-cloud{opacity:.7}.footer-point-cloud{opacity:.62;width:150%;right:-47%}.section-heading{grid-template-columns:1fr;gap:1.5rem}.section-heading>:first-child,.section-heading>:last-child{grid-column:auto}.project-placeholder{aspect-ratio:4/5}.project-placeholder__device{width:49%}.project-placeholder__orbit--one{width:77%}.project-placeholder__orbit--two{width:105%}.capability-row{grid-template-columns:2rem 1fr}.capability-row p{grid-column:2}.activity-panel,.activity-panel:first-child{grid-column:span 12;min-height:300px}.activity-panel--spotify{min-height:0}.github-overview{grid-template-columns:1fr}.github-stack{border-top:1px solid var(--border);border-left:0;padding-top:1rem;padding-left:0}.spotify-track{grid-template-columns:6.5rem minmax(0,1fr);padding-block:2.25rem}.publication-row{grid-template-columns:1fr;gap:2rem}.publication-index{min-height:0}.publication-year--desktop{display:none}.publication-meta{font-family:var(--font-mono), monospace;text-transform:uppercase;align-items:baseline;gap:.5rem;margin-bottom:1rem;font-size:.68rem;line-height:1.4;display:flex}.publication-venue{margin-bottom:0}.publication-meta__mobile{color:var(--muted);display:inline}.case-hero__intro{grid-template-columns:1fr;gap:1.5rem}.case-hero__intro>:first-child,.case-hero__intro>:last-child{grid-column:auto}.case-details{grid-template-columns:1fr}.case-details>section:first-child,.case-details>section:nth-child(2),.case-details>section:nth-child(3){grid-column:auto}.case-story__intro,.case-story__row{grid-template-columns:1fr;gap:1.5rem}.note-row{grid-template-columns:2rem 1fr auto;gap:1rem}.note-row__excerpt,.note-row__action{grid-column:2/-1}.notes-index__header{grid-template-columns:1fr}.notes-index__header .section-kicker,.notes-index__header h1,.notes-index__header>p:last-child{grid-column:auto}.notes-index__header h1{margin-top:2rem}.article-prose section{grid-template-columns:1fr;gap:1.5rem}.footer-meta{grid-template-columns:1fr;gap:.75rem}}@media (max-width:380px){.section-shell{padding-inline:.75rem}.header-control{font-size:.68rem}}@media (prefers-reduced-motion:reduce){.spotify-artwork.is-playing .spotify-art{animation:none}.note-row__title,.note-row__action svg,.next-entry svg{transition:none}html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.sound-spinner{transform:rotate(45deg)}}@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-duration{syntax:"*";inherits:false}@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}
