/*! tailwindcss v4.3.2 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-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-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-outline-style:solid;--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;--dot-progress:0%}}}@layer theme{:root,:host{--font-sans:"Bpmf Huninn", ui-sans-serif, system-ui, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--container-md:28rem;--container-xl:36rem;--container-2xl:42rem;--container-5xl:64rem;--container-7xl:80rem;--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-3xl:1.875rem;--text-3xl--line-height:calc(2.25 / 1.875);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--text-5xl:3rem;--text-5xl--line-height:1;--font-weight-medium:500;--font-weight-semibold:600;--tracking-wide:.025em;--leading-relaxed:1.625;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--font-display:"Mate SC", "Bpmf Huninn", ui-sans-serif, system-ui, sans-serif;--color-site:#013348;--color-ink:#dae5e7;--color-heading:#d2ffa5;--color-highlight:#f0a7b9}}@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,ui-sans-serif, system-ui, 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{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}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.top-0{top:0}.z-20{z-index:20}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.mx-auto{margin-inline:auto}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mt-10{margin-top:calc(var(--spacing) * 10)}.mt-auto{margin-top:auto}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.h-8{height:calc(var(--spacing) * 8)}.h-\[1em\]{height:1em}.h-px{height:1px}.min-h-full{min-height:100%}.w-8{width:calc(var(--spacing) * 8)}.w-\[1em\]{width:1em}.w-full{width:100%}.max-w-2xl{max-width:var(--container-2xl)}.max-w-5xl{max-width:var(--container-5xl)}.max-w-7xl{max-width:var(--container-7xl)}.max-w-\[16rem\]{max-width:16rem}.max-w-full{max-width:100%}.max-w-md{max-width:var(--container-md)}.max-w-xl{max-width:var(--container-xl)}.min-w-0{min-width:0}.min-w-6{min-width:calc(var(--spacing) * 6)}.flex-1{flex:1}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.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}.scroll-mt-24{scroll-margin-top:calc(var(--spacing) * 24)}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-center{justify-content:center}.justify-start{justify-content:flex-start}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-8{gap:calc(var(--spacing) * 8)}.gap-10{gap:calc(var(--spacing) * 10)}: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-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * 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)))}:where(.space-y-20>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 20) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 20) * calc(1 - var(--tw-space-y-reverse)))}.overflow-auto{overflow:auto}.overflow-x-auto{overflow-x:auto}.bg-ink\/40{background-color:#dae5e766}@supports (color:color-mix(in lab, red, red)){.bg-ink\/40{background-color:color-mix(in oklab, var(--color-ink) 40%, transparent)}}.bg-transparent{background-color:#0000}.object-contain{object-fit:contain}.p-4{padding:calc(var(--spacing) * 4)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-8{padding-inline:calc(var(--spacing) * 8)}.py-8{padding-block:calc(var(--spacing) * 8)}.pt-10{padding-top:calc(var(--spacing) * 10)}.pt-16{padding-top:calc(var(--spacing) * 16)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-10{padding-bottom:calc(var(--spacing) * 10)}.pb-16{padding-bottom:calc(var(--spacing) * 16)}.text-center{text-align:center}.text-left{text-align:left}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--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))}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.break-all{word-break:break-all}.text-\[var\(--color-heading\)\],.text-heading{color:var(--color-heading)}.text-ink{color:var(--color-ink)}.text-ink\/35{color:#dae5e759}@supports (color:color-mix(in lab, red, red)){.text-ink\/35{color:color-mix(in oklab, var(--color-ink) 35%, transparent)}}.text-ink\/70{color:#dae5e7b3}@supports (color:color-mix(in lab, red, red)){.text-ink\/70{color:color-mix(in oklab, var(--color-ink) 70%, transparent)}}.text-ink\/80{color:#dae5e7cc}@supports (color:color-mix(in lab, red, red)){.text-ink\/80{color:color-mix(in oklab, var(--color-ink) 80%, transparent)}}.capitalize{text-transform:capitalize}.underline{text-decoration-line:underline}.underline-offset-2{text-underline-offset:2px}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.backdrop-blur{--tw-backdrop-blur:blur(8px);-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))}@media (hover:hover){.hover\:text-ink:hover{color:var(--color-ink)}.hover\:underline:hover{text-decoration-line:underline}.hover\:underline-offset-4:hover{text-underline-offset:4px}.hover\:opacity-60:hover{opacity:.6}.hover\:opacity-70:hover{opacity:.7}}@media (width>=40rem){.sm\:max-w-none{max-width:none}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:gap-4{gap:calc(var(--spacing) * 4)}.sm\:px-8{padding-inline:calc(var(--spacing) * 8)}.sm\:py-10{padding-block:calc(var(--spacing) * 10)}.sm\:text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}}@media (width>=48rem){.md\:mt-10{margin-top:calc(var(--spacing) * 10)}.md\:w-\[min\(48\%\,28rem\)\]{width:min(48%,28rem)}.md\:w-\[min\(56\%\,34rem\)\]{width:min(56%,34rem)}.md\:flex-row{flex-direction:row}.md\:flex-row-reverse{flex-direction:row-reverse}.md\:items-stretch{align-items:stretch}.md\:gap-12{gap:calc(var(--spacing) * 12)}:where(.md\:space-y-25>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 25) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 25) * calc(1 - var(--tw-space-y-reverse)))}.md\:px-16{padding-inline:calc(var(--spacing) * 16)}.md\:text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}}@media (width>=64rem){.lg\:mt-0{margin-top:0}.lg\:-ml-24{margin-left:calc(var(--spacing) * -24)}.lg\:w-1\/2{width:50%}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}.lg\:px-0{padding-inline:0}.lg\:py-10{padding-block:calc(var(--spacing) * 10)}}}@font-face{font-family:Mate SC;src:url(/assets/MateSC-Regular-nM8BjiQQ.ttf)format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Bpmf Huninn;src:url(/assets/BpmfHuninn-Regular-DBnv6inh.ttf)format("truetype");font-weight:400;font-style:normal;font-display:swap}html,body{font-family:var(--font-sans);color:var(--color-ink);--carousel-width:65%;--bg-image-opacity:1;--image-radius:.5rem;--bg-fallback:#060d14;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;min-height:100%;position:relative}html{background-color:var(--bg-fallback);background-image:var(--site-bg-small,none);background-position:50%;background-repeat:no-repeat;background-size:cover;background-attachment:scroll}@media (width>=900px) and (hover:hover){html{background-image:var(--site-bg,var(--site-bg-small,none));background-attachment:fixed}}.site-bg{display:none}@media (width<=900px) and (orientation:portrait){html{background-image:none}body{isolation:isolate}.site-bg{z-index:-1;pointer-events:none;width:100dvw;height:100dvh;display:block;position:fixed;top:0;left:0;overflow:hidden}.site-bg--hold{view-transition-name:site-bg}.site-bg:before{content:"";background-image:var(--site-bg,var(--site-bg-small,none));background-position:50%;background-repeat:no-repeat;background-size:cover;width:100dvh;height:100dvw;position:absolute;top:50%;left:50%;translate:-50% -50%;rotate:90deg}}body{background:0 0}::selection{background-color:var(--color-highlight);color:var(--color-site)}img{border-radius:var(--image-radius)}h1,h2,.text-heading,.project-title-card__title{font-family:var(--font-display);text-shadow:0 1px 2px #00000073,0 2px 14px #00000059}.embla{width:var(--carousel-width,65%);--slide-spacing:4rem;--slide-size:min(56cqw, 17.5rem);--rail-y:calc(var(--slide-size) * .5);--arrow-shaft:7.5rem;--arrow-head:1.3rem;max-width:none;margin:0;position:relative;container-type:inline-size}.embla:before{content:"";left:calc(-1 * var(--arrow-shaft) + var(--arrow-head) * .45);right:calc(-1 * var(--arrow-shaft) + var(--arrow-head) * .45);top:var(--rail-y);z-index:0;background:var(--color-heading);pointer-events:none;height:2.5px;position:absolute;transform:translateY(-50%)}.embla__viewport{z-index:1;touch-action:pan-y pinch-zoom;position:relative;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000 0%,#000 10% 90%,#0000 100%);mask-image:linear-gradient(90deg,#0000 0%,#000 10% 90%,#0000 100%)}.embla__container{touch-action:pan-y pinch-zoom;margin-left:calc(var(--slide-spacing) * -1);display:flex}.embla__slide{flex:0 0 calc(var(--slide-size) + var(--slide-spacing));min-width:0;padding-left:var(--slide-spacing);transform:translate(0)}.embla__side{top:var(--rail-y);z-index:2;color:var(--color-heading);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;flex-direction:column;align-items:center;padding:0;display:flex;position:absolute}.embla__side--prev{width:var(--arrow-shaft);align-items:flex-start;left:0;transform:translate(-100%,-50%)}.embla__side--next{width:var(--arrow-shaft);align-items:flex-end;right:0;transform:translate(100%,-50%)}.embla__side-motion{align-items:inherit;transform-origin:50%;will-change:transform;flex-direction:column;width:100%;display:flex;position:relative}.embla__side--prev .embla__side-motion{transform-origin:0;align-items:flex-start}.embla__side--next .embla__side-motion{transform-origin:100%;align-items:flex-end}.embla__side-label{letter-spacing:.04em;text-transform:capitalize;white-space:nowrap;font-size:.8rem;font-weight:600;line-height:1;position:absolute;bottom:calc(100% + .4rem);left:50%;transform:translate(-50%)}.embla__side-arrow{width:1.55rem;height:1.55rem;display:block;overflow:visible}.project-title-card{-webkit-user-select:none;user-select:none;color:inherit;cursor:pointer;flex-direction:column;align-items:center;gap:.5rem;text-decoration:none;display:flex}.project-title-card__media{aspect-ratio:1;background:0 0;border-radius:1rem;width:100%;transition:border-radius .5s cubic-bezier(.37,0,.2,1);display:block;position:relative;overflow:hidden}.project-title-card__image{object-fit:cover;object-position:center;pointer-events:none;border-radius:0;width:100%;height:100%;display:block}.project-title-card__veil{opacity:0;pointer-events:none;background:#00000080;position:absolute;inset:0}.project-title-card__title{text-align:center;color:var(--color-heading);margin:0;padding-inline:.25rem;font-size:1.5rem;font-weight:600;line-height:1.3}.project-title-card__description{text-align:center;max-width:16rem;color:var(--color-ink);margin:0;padding-inline:.5rem;font-size:.875rem;font-weight:400;line-height:1.45}.project-system{font-weight:600;text-decoration:none}a.project-system:hover{text-underline-offset:.15em;text-decoration:underline}.project-system--design{color:#14ff64}.project-system--tech{color:#fb39b9}.project-system--realtime{color:#c9b4ff}.project-system--narrative{color:#04fff7}.project-system--production{color:#ff7307}@media (pointer:fine) and (hover:hover) and (prefers-reduced-motion:no-preference){html,body,*,:before,:after{cursor:none!important}}.about-reveal{z-index:0;pointer-events:none;position:fixed;inset:0;overflow:hidden}.about-reveal__image,.about-reveal__canvas{border-radius:0;width:100%;height:100%;display:block;position:absolute;inset:0}.about-reveal__image{object-fit:cover;object-position:center;opacity:0}.about-reveal[data-ready=true] .about-reveal__image{opacity:1}@media (width<=900px) and (orientation:portrait) and (pointer:coarse),(width<=900px) and (orientation:portrait) and (hover:none){.about-reveal__image{width:100dvh;max-width:none;height:100dvw;inset:50% auto auto 50%;translate:-50% -50%;rotate:90deg}}.about-me{z-index:1}.about-experience{flex-direction:column;align-items:center;width:100%;max-width:52rem;margin-inline:auto;display:flex}.about-experience__scroll{color:var(--color-heading);opacity:.85;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;margin-top:.25rem;padding:.5rem;transition:color .25s,opacity .2s;display:flex}.about-experience__scroll:hover{color:var(--color-highlight);opacity:1}.about-experience__scroll:active .site-arrow{transform:scale(1.25,.52)}.about-experience__scroll .site-arrow{transform-origin:50%;width:3.25rem;height:3.25rem;transition:transform .2s cubic-bezier(.37,0,.2,1);display:block;transform:scale(1.45,.58)}.about-experience__table{border-collapse:collapse;table-layout:fixed;width:100%;color:var(--color-ink);margin-top:10rem;font-size:.95rem;line-height:1.4}.about-experience__table td{border-top:1px solid #dae5e747;padding:.85rem 1rem .85rem 0}@supports (color:color-mix(in lab, red, red)){.about-experience__table td{border-top:1px solid color-mix(in oklab, var(--color-ink) 28%, transparent)}}.about-experience__table td{vertical-align:top}.about-experience__table tr:last-child td{border-bottom:1px solid #dae5e747}@supports (color:color-mix(in lab, red, red)){.about-experience__table tr:last-child td{border-bottom:1px solid color-mix(in oklab, var(--color-ink) 28%, transparent)}}.about-experience__table td:first-child{color:#dae5e7b8;width:4.5rem}@supports (color:color-mix(in lab, red, red)){.about-experience__table td:first-child{color:color-mix(in oklab, var(--color-ink) 72%, transparent)}}.about-experience__table td:first-child{white-space:nowrap}.about-experience__table td:nth-child(2){width:42%}.about-experience__table td:last-child{text-align:right;color:#dae5e7c7;padding-right:0}@supports (color:color-mix(in lab, red, red)){.about-experience__table td:last-child{color:color-mix(in oklab, var(--color-ink) 78%, transparent)}}@media (width<=640px){.about-experience__table{font-size:.875rem}.about-experience__table td{padding:.7rem .65rem .7rem 0}.about-experience__table td:first-child{width:3.5rem}}@media (prefers-reduced-motion:reduce){.about-reveal{display:none}}.email-copy-button{color:inherit;cursor:pointer;opacity:.8;background:0 0;border:none;justify-content:center;align-items:center;padding:.15em;line-height:1;transition:opacity .2s,color .2s;display:inline-flex}.email-copy-button:hover{opacity:1;color:var(--color-heading)}.cursor-fx{z-index:9999;pointer-events:none;width:100%;height:100%;display:block;position:fixed;inset:0}@media (prefers-reduced-motion:reduce){.cursor-fx{display:none}}.experiments-popup{z-index:40;border:1px solid #dae5e738;grid-template-columns:auto 1fr;width:min(21.5rem,100vw - 2.5rem);display:grid;position:fixed;bottom:1.5rem;right:1.5rem;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.experiments-popup{border:1px solid color-mix(in oklab, var(--color-ink) 22%, transparent)}}.experiments-popup{border-radius:var(--image-radius);background:var(--bg-fallback)}@supports (color:color-mix(in lab, red, red)){.experiments-popup{background:color-mix(in oklab, var(--bg-fallback) 72%, transparent)}}.experiments-popup{box-shadow:inset 0 1px #dae5e71a,0 18px 48px #0006}@supports (color:color-mix(in lab, red, red)){.experiments-popup{box-shadow:0 1px 0 color-mix(in oklab, var(--color-ink) 10%, transparent) inset, 0 18px 48px #0006}}.experiments-popup{-webkit-backdrop-filter:blur(14px)}.experiments-popup--enter{animation:.45s ease-out experiments-popup-in}.experiments-popup__accent{background:var(--color-heading);width:3px;box-shadow:0 0 18px #d2ffa573}@supports (color:color-mix(in lab, red, red)){.experiments-popup__accent{box-shadow:0 0 18px color-mix(in oklab, var(--color-heading) 45%, transparent)}}.experiments-popup__body{flex-direction:column;gap:.65rem;padding:1.05rem 1.15rem 1.2rem 1.2rem;display:flex}.experiments-popup__header{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.experiments-popup__eyebrow{font-family:var(--font-sans);letter-spacing:.12em;text-transform:lowercase;color:#dae5e7b8;align-items:center;gap:.4rem;margin:0;font-size:.72rem;font-weight:400;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.experiments-popup__eyebrow{color:color-mix(in oklab, var(--color-ink) 72%, transparent)}}.experiments-popup__eyebrow-arrow{width:.65rem;height:.65rem;color:var(--color-heading);flex-shrink:0}.experiments-popup__close{color:#dae5e78c;background:0 0;border:0;border-radius:.3rem;place-items:center;width:1.6rem;height:1.6rem;margin:-.25rem -.2rem -.25rem 0;padding:0;display:grid}@supports (color:color-mix(in lab, red, red)){.experiments-popup__close{color:color-mix(in oklab, var(--color-ink) 55%, transparent)}}.experiments-popup__close{cursor:pointer;transition:color .2s,background .2s}.experiments-popup__close:hover{color:var(--color-ink);background:#dae5e71a}@supports (color:color-mix(in lab, red, red)){.experiments-popup__close:hover{background:color-mix(in oklab, var(--color-ink) 10%, transparent)}}.experiments-popup__close-icon{width:.85rem;height:.85rem;display:block}.experiments-popup__title{font-family:var(--font-display);letter-spacing:.03em;color:var(--color-heading);text-shadow:0 1px 2px #00000073,0 2px 14px #00000059;margin:0;font-size:1.35rem;font-weight:600;line-height:1.2}.experiments-popup__message{font-family:var(--font-sans);color:#dae5e7d1;margin:0;font-size:.9rem;font-weight:400;line-height:1.45}@supports (color:color-mix(in lab, red, red)){.experiments-popup__message{color:color-mix(in oklab, var(--color-ink) 82%, transparent)}}.experiments-popup__cta{border:1px solid #f0a7b98c;align-self:flex-start;align-items:center;gap:.45rem;margin-top:.2rem;padding:.55rem .9rem .55rem .95rem;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.experiments-popup__cta{border:1px solid color-mix(in oklab, var(--color-highlight) 55%, transparent)}}.experiments-popup__cta{background:#f0a7b929;border-radius:.3rem}@supports (color:color-mix(in lab, red, red)){.experiments-popup__cta{background:color-mix(in oklab, var(--color-highlight) 16%, transparent)}}.experiments-popup__cta{color:var(--color-ink);font-family:var(--font-sans);letter-spacing:.04em;white-space:nowrap;cursor:pointer;font-size:.88rem;font-weight:400;line-height:1;transition:color .2s,background .2s,border-color .2s}.experiments-popup__cta:hover{color:var(--color-site);background:var(--color-highlight);border-color:var(--color-highlight)}.experiments-popup__cta:hover .experiments-popup__cta-arrow{color:var(--color-site);transform:translate(.15rem)}.experiments-popup__cta-arrow{width:.7rem;height:.7rem;color:var(--color-highlight);transition:transform .2s,color .2s}@keyframes experiments-popup-in{0%{opacity:0;transform:translateY(.75rem)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.experiments-popup--enter{animation:none}.experiments-popup__cta:hover .experiments-popup__cta-arrow{transform:none}}html[data-top-bar=persist] .site-top-bar{view-transition-name:site-top-bar}html[data-experiments-popup=persist] .experiments-popup{view-transition-name:experiments-popup}.page-portal{z-index:0;pointer-events:none;opacity:0;view-transition-name:page-portal;position:fixed;inset:0}.project-hero{width:100%;height:55vh;position:relative;overflow:visible}.project-hero__media{background:0 0;border-radius:0;transition:border-radius .5s cubic-bezier(.37,0,.2,1);position:absolute;inset:0;overflow:hidden}.project-hero__image{object-fit:cover;object-position:center;border-radius:0;width:100%;height:100%;display:block}.project-hero__veil{opacity:1;background:#00000080;position:absolute;inset:0}.project-hero__copy{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding-inline:2rem;display:flex;position:absolute;inset:0}.project-hero__title{color:var(--color-heading);margin:0;font-size:2.25rem;font-weight:600;line-height:1.2}@media (width>=768px){.project-hero__title{font-size:3rem}}.project-hero__description{max-width:36rem;color:var(--color-ink);margin:.75rem 0 0;font-size:1rem;line-height:1.5}@media (width>=768px){.project-hero__description{font-size:1.125rem}}.project-meta{flex-direction:column;align-items:stretch;width:100%;max-width:72rem;margin-inline:auto;padding-top:1.25rem;display:flex}@media (width>=768px){.project-meta{padding-top:1.75rem}}.project-meta__table{border-collapse:collapse;table-layout:fixed;width:100%;max-width:36rem;color:var(--color-ink);font-size:.95rem;line-height:1.4}.project-meta__table td{border-top:1px solid #dae5e747;padding:.85rem 1rem .85rem 0}@supports (color:color-mix(in lab, red, red)){.project-meta__table td{border-top:1px solid color-mix(in oklab, var(--color-ink) 28%, transparent)}}.project-meta__table td{vertical-align:top}.project-meta__table tr:last-child td{border-bottom:1px solid #dae5e747}@supports (color:color-mix(in lab, red, red)){.project-meta__table tr:last-child td{border-bottom:1px solid color-mix(in oklab, var(--color-ink) 28%, transparent)}}.project-meta__table td:first-child{color:#dae5e7b8;width:8.5rem}@supports (color:color-mix(in lab, red, red)){.project-meta__table td:first-child{color:color-mix(in oklab, var(--color-ink) 72%, transparent)}}.project-meta__table td:first-child{white-space:nowrap}.project-meta__table td:last-child{padding-right:0}.project-meta__table--compact{max-width:none;margin-top:2.25rem;font-size:.8125rem;line-height:1.35}.project-meta__table--compact td{padding:.4rem .75rem .4rem 0}.project-meta__table--compact td:first-child{width:6.75rem}.project-meta__play{--play-scale:min(1, calc(4 / var(--play-chars,4)));z-index:50;border:1px solid #f0a7b966;justify-content:center;align-items:center;width:12rem;height:12rem;padding:0;display:inline-flex;position:absolute;top:101%;left:75%}@supports (color:color-mix(in lab, red, red)){.project-meta__play{border:1px solid color-mix(in oklab, var(--color-highlight) 40%, transparent)}}.project-meta__play{background:#f0a7b914;border-radius:.6rem}@supports (color:color-mix(in lab, red, red)){.project-meta__play{background:color-mix(in oklab, var(--color-highlight) 8%, transparent)}}.project-meta__play{color:var(--color-ink);opacity:0;pointer-events:none;text-decoration:none;transition:opacity .85s cubic-bezier(.37,0,.2,1),background .35s cubic-bezier(.37,0,.2,1),border-color .35s cubic-bezier(.37,0,.2,1),box-shadow .35s cubic-bezier(.37,0,.2,1),transform .35s cubic-bezier(.37,0,.2,1);transform:translate(-50%,-50%)rotate(45deg);box-shadow:0 0 #0000}.project-meta__play--visible{opacity:1;pointer-events:auto}.project-meta__play:hover{background:#f0a7b929}@supports (color:color-mix(in lab, red, red)){.project-meta__play:hover{background:color-mix(in oklab, var(--color-highlight) 16%, transparent)}}.project-meta__play:hover{border-color:#f0a7b9a6}@supports (color:color-mix(in lab, red, red)){.project-meta__play:hover{border-color:color-mix(in oklab, var(--color-highlight) 65%, transparent)}}.project-meta__play:hover{transform:translate(-50%,-50%)rotate(45deg)scale(1.04);box-shadow:0 10px 28px #00000038}.project-meta__play:hover .site-arrow{color:var(--color-highlight);transform:translate(.3rem,-.12rem)}.project-meta__play:active{transform:translate(-50%,-50%)rotate(45deg)scale(.96);box-shadow:0 4px 14px #0000002e}.project-meta__play:active .site-arrow{transform:translate(.1rem,-.12rem)scale(.88)}.project-meta__play-inner{justify-content:center;align-items:center;gap:calc(.45rem * var(--play-scale));display:inline-flex;transform:rotate(-45deg)}.project-meta__play-label{font-family:var(--font-display);font-size:calc(3.2rem * var(--play-scale));letter-spacing:calc(.04em * var(--play-scale));color:var(--color-ink);text-shadow:0 1px 2px #00000073,0 2px 14px #00000059;font-weight:600;line-height:1;transition:color .25s;transform:translateY(-.5rem)}.project-meta__play:hover .project-meta__play-label{color:var(--color-highlight)}.project-meta__play .site-arrow{width:calc(2.75rem * var(--play-scale));height:calc(2.75rem * var(--play-scale));color:var(--color-ink);transition:color .25s,transform .35s cubic-bezier(.37,0,.2,1);display:block;transform:translateY(-.2rem)}@media (width<=768px){.project-meta__play{width:min(14rem,58vw);height:min(14rem,58vw);top:72%;left:70%}.project-meta__play-label{font-size:calc(2rem * var(--play-scale))}.project-meta__play .site-arrow{width:calc(1.85rem * var(--play-scale));height:calc(1.85rem * var(--play-scale))}}.project-section__heading{align-items:center;gap:.15rem;min-width:0;display:flex}.project-section__heading h2{min-width:0;margin:0}.project-section__play{--play-scale:min(1, calc(4 / var(--play-chars,4)));border:1px solid #f0a7b966;flex:none;justify-content:center;align-items:center;width:3.7rem;height:3.7rem;margin:.8rem .7rem .8rem 1.1rem;padding:0;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.project-section__play{border:1px solid color-mix(in oklab, var(--color-highlight) 40%, transparent)}}.project-section__play{background:#f0a7b914;border-radius:.44rem}@supports (color:color-mix(in lab, red, red)){.project-section__play{background:color-mix(in oklab, var(--color-highlight) 8%, transparent)}}.project-section__play{color:var(--color-ink);text-decoration:none;transition:background .35s cubic-bezier(.37,0,.2,1),border-color .35s cubic-bezier(.37,0,.2,1),transform .35s cubic-bezier(.37,0,.2,1);transform:rotate(45deg)}.project-section__play:hover{background:#f0a7b929}@supports (color:color-mix(in lab, red, red)){.project-section__play:hover{background:color-mix(in oklab, var(--color-highlight) 16%, transparent)}}.project-section__play:hover{border-color:#f0a7b9a6}@supports (color:color-mix(in lab, red, red)){.project-section__play:hover{border-color:color-mix(in oklab, var(--color-highlight) 65%, transparent)}}.project-section__play:hover{transform:rotate(45deg)scale(1.08)}.project-section__play:hover .site-arrow{color:var(--color-highlight);transform:translate(.2rem,-.08rem)}.project-section__play:hover .project-section__play-label{color:var(--color-highlight)}.project-section__play:active{transform:rotate(45deg)scale(.96)}.project-section__play-inner{justify-content:center;align-items:center;gap:calc(.24rem * var(--play-scale));display:inline-flex;transform:rotate(-45deg)}.project-section__play-label{font-family:var(--font-display);font-size:calc(1.04rem * var(--play-scale));letter-spacing:calc(.04em * var(--play-scale));color:var(--color-ink);text-shadow:0 1px 2px #00000073,0 2px 14px #00000059;font-weight:600;line-height:1;transition:color .25s}.project-section__play .site-arrow{width:calc(.96rem * var(--play-scale));height:calc(.96rem * var(--play-scale));color:var(--color-ink);transition:color .25s,transform .35s cubic-bezier(.37,0,.2,1);display:block}.project-section__copy{flex-direction:column;align-self:stretch;min-width:0;display:flex}.project-section--stacked .project-section__copy--stacked{text-align:left;align-self:stretch;width:100%;max-width:100%}.project-section--stacked .project-section__copy--stacked .project-section__writing{align-items:stretch;width:100%}.project-section__writing{flex-direction:column;align-items:flex-start;min-width:0;display:flex}.project-section__reveal{transition:height .55s cubic-bezier(.37,0,.2,1);position:relative;overflow:hidden}.project-section__summary,.project-section__original{transition:opacity .45s}.project-section__summary.is-hidden{opacity:0;pointer-events:none}.project-section__original{opacity:0;pointer-events:none;position:absolute;top:0;left:0;right:0}.project-section__original.is-shown{opacity:1;pointer-events:auto}.project-section__bullets{flex-direction:column;gap:.85rem;margin:0;padding:0;list-style:none;display:flex}.project-section__bullets li{color:var(--color-ink);padding-left:1.15rem;font-size:1.125rem;line-height:1.65;position:relative}.project-section__bullets li:before{content:"";background:var(--color-highlight);border-radius:1px;width:.38rem;height:.38rem;position:absolute;top:.62em;left:0;transform:rotate(45deg)}.project-section__more{cursor:pointer;width:fit-content;max-height:4.5rem;font-family:var(--font-display);letter-spacing:.08em;color:#dae5e76b;background:0 0;border:0;margin-top:.85rem;padding:0;font-size:1.05rem;line-height:1;display:block}@supports (color:color-mix(in lab, red, red)){.project-section__more{color:color-mix(in oklab, var(--color-ink) 42%, transparent)}}.project-section__more{text-align:left;transition:color .25s,opacity .4s,max-height .45s cubic-bezier(.37,0,.2,1),padding-top .45s cubic-bezier(.37,0,.2,1),margin-top .45s cubic-bezier(.37,0,.2,1);overflow:hidden}.project-section__more:hover,.project-section__more:focus-visible{color:var(--color-highlight);outline:none}.project-section--open:not(.project-section--pinned) .project-section__more{opacity:0;pointer-events:none;max-height:0;margin-top:0}@media (prefers-reduced-motion:reduce){.project-section__reveal,.project-section__summary,.project-section__original,.project-section__more{transition:none}}.project-gallery__viewport{aspect-ratio:16/9;border:1px solid #dae5e724;border-radius:.5rem;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.project-gallery__viewport{border:1px solid color-mix(in oklab, var(--color-ink) 14%, transparent)}}.project-gallery__viewport{background:#00000059}.project-gallery__container{touch-action:pan-y pinch-zoom;height:100%;display:flex}.project-gallery__slide{flex:0 0 100%;justify-content:center;align-items:center;min-width:0;height:100%;display:flex}.project-gallery__image{object-fit:contain;width:100%;height:100%;display:block}@property --dot-progress{syntax:"<percentage>";inherits:false;initial-value:0%}@keyframes gallery-dot-fill{to{--dot-progress:100%}}.project-gallery__dots{justify-content:center;align-items:center;gap:1.05rem;margin-top:.9rem;padding:.45rem .2rem;display:flex}.project-gallery__dot{z-index:0;border:1.5px solid #dae5e79e;width:.62rem;height:.62rem;padding:0;position:relative}@supports (color:color-mix(in lab, red, red)){.project-gallery__dot{border:1.5px solid color-mix(in oklab, var(--color-ink) 62%, transparent)}}.project-gallery__dot{background:#dae5e71f;border-radius:9999px}@supports (color:color-mix(in lab, red, red)){.project-gallery__dot{background:color-mix(in oklab, var(--color-ink) 12%, transparent)}}.project-gallery__dot{cursor:pointer;transition:background .22s,border-color .22s,box-shadow .22s,transform .28s cubic-bezier(.34,1.45,.64,1)}.project-gallery__dot:before{content:"";position:absolute;inset:-.48rem}.project-gallery__dot:hover,.project-gallery__dot:focus-visible{background:var(--color-highlight);border-color:var(--color-highlight);box-shadow:0 0 0 .16rem #f0a7b961}@supports (color:color-mix(in lab, red, red)){.project-gallery__dot:hover,.project-gallery__dot:focus-visible{box-shadow:0 0 0 .16rem color-mix(in oklab, var(--color-highlight) 38%, transparent)}}.project-gallery__dot:hover,.project-gallery__dot:focus-visible{outline:none;transform:translateY(-2px)scale(1.55)}.project-gallery__dot--active{background:var(--color-highlight);border-color:var(--color-highlight);transform:scale(1.22)}.project-gallery__dot--active:hover,.project-gallery__dot--active:focus-visible{transform:translateY(-2px)scale(1.55)}.project-gallery__dot-progress{z-index:-1;border-radius:inherit;background:conic-gradient(var(--color-highlight) var(--dot-progress), #dae5e747 0);position:absolute;inset:-.34rem}@supports (color:color-mix(in lab, red, red)){.project-gallery__dot-progress{background:conic-gradient(var(--color-highlight) var(--dot-progress), color-mix(in oklab, var(--color-ink) 28%, transparent) 0)}}.project-gallery__dot-progress{animation:gallery-dot-fill var(--gallery-auto-ms,5.2s) linear forwards;pointer-events:none;-webkit-mask:radial-gradient(farthest-side,#0000 calc(100% - 2.5px),#000 calc(100% - 1.5px));mask:radial-gradient(farthest-side,#0000 calc(100% - 2.5px),#000 calc(100% - 1.5px))}.project-gallery--held .project-gallery__dot-progress{animation-play-state:paused}@media (prefers-reduced-motion:reduce){.project-gallery__dot-progress{display:none}}.project-section__video{aspect-ratio:16/9;border:1px solid #dae5e724;border-radius:.5rem;position:relative;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.project-section__video{border:1px solid color-mix(in oklab, var(--color-ink) 14%, transparent)}}.project-section__video{background:#00000059}.project-section__video iframe{border:0;width:100%;height:100%;display:block;position:absolute;inset:0}.project-body__scroll{color:var(--color-heading);opacity:.85;cursor:pointer;background:0 0;border:none;justify-content:center;align-self:center;align-items:center;margin:1.25rem auto 0;padding:.5rem;transition:color .25s,opacity .2s;display:flex}.project-body__scroll:hover{color:var(--color-highlight);opacity:1}.project-body__scroll:active .site-arrow{transform:scale(1.25,.52)}.project-body__scroll .site-arrow{transform-origin:50%;width:3.25rem;height:3.25rem;transition:transform .2s cubic-bezier(.37,0,.2,1);display:block;transform:scale(1.45,.58)}@media (width<=640px){.project-meta__table{font-size:.875rem}.project-meta__table td{padding:.7rem .65rem .7rem 0}.project-meta__table td:first-child{width:7rem}.project-meta__table--compact td:first-child{width:6rem}}.project-morph-frame{view-transition-name:project-hero-frame}.project-morph-title{view-transition-name:project-hero-title;width:fit-content;max-width:100%}.project-morph-description{view-transition-name:project-hero-description;width:fit-content;max-width:100%}.project-morph-play{view-transition-name:project-play}@supports (view-transition-name:none){::view-transition{background-color:var(--bg-fallback);background-image:var(--site-bg-small,var(--site-bg,none));background-position:50%;background-repeat:no-repeat;background-size:cover}@media (width>=900px) and (hover:hover){::view-transition{background-image:var(--site-bg,var(--site-bg-small,none))}}@media (width<=900px) and (orientation:portrait){::view-transition{background-image:none}::view-transition-group(site-bg){z-index:1;animation:none}::view-transition-old(site-bg){animation:none}::view-transition-new(site-bg){animation:none}::view-transition-old(site-bg){opacity:1}::view-transition-new(site-bg){opacity:0}}::view-transition-group(page-portal){z-index:3;background-color:#0000;background-image:var(--portal-bg,none);background-position:50%;background-repeat:no-repeat;background-size:cover;animation:1.8s cubic-bezier(.37,0,.2,1) both vt-portal;overflow:visible}::view-transition-old(page-portal){opacity:0;animation:none}::view-transition-new(page-portal){opacity:0;animation:none}@media (width<=900px) and (orientation:portrait){::view-transition-group(page-portal){width:100dvh;height:100dvw;margin:0;top:50%;left:50%;translate:-50% -50%;rotate:90deg}}::view-transition-group(root){z-index:2}::view-transition-group(site-top-bar){z-index:40;animation:none}html[data-top-bar=persist] ::view-transition-old(site-top-bar){opacity:1;animation:none}html[data-top-bar=persist] ::view-transition-new(site-top-bar){opacity:0;animation:none}::view-transition-group(experiments-popup){z-index:45;animation:none}html[data-experiments-popup=persist] ::view-transition-old(experiments-popup){opacity:1;animation:none}html[data-experiments-popup=persist] ::view-transition-new(experiments-popup){opacity:0;animation:none}::view-transition-old(root){mix-blend-mode:normal;animation-duration:1.8s;animation-timing-function:cubic-bezier(.37,0,.2,1)}::view-transition-new(root){mix-blend-mode:normal;animation-duration:1.8s;animation-timing-function:cubic-bezier(.37,0,.2,1)}::view-transition-old(root){animation-name:vt-root-out}::view-transition-new(root){animation-name:vt-root-in}::view-transition-group(project-hero-frame){z-index:10;background:0 0;animation-duration:1.8s;animation-timing-function:cubic-bezier(.33,.1,.15,1);overflow:clip}html[data-project-morph=enter] ::view-transition-group(project-hero-frame){animation-name:-ua-view-transition-group-anim-project-hero-frame,vt-radius-enter;animation-duration:1.8s,1.8s;animation-timing-function:cubic-bezier(.33,.1,.15,1),cubic-bezier(.4,0,.2,1);animation-fill-mode:both,both}::view-transition-group(project-hero-title){z-index:12;animation-duration:1.8s;animation-timing-function:cubic-bezier(.33,.1,.15,1)}::view-transition-group(project-hero-description){z-index:12;animation-duration:1.8s;animation-timing-function:cubic-bezier(.33,.1,.15,1)}::view-transition-group(project-play){z-index:50;animation-duration:1.8s;animation-timing-function:cubic-bezier(.33,.1,.15,1)}::view-transition-old(project-hero-frame){mix-blend-mode:normal;object-fit:cover;object-position:center;background:0 0;width:100%;height:100%}::view-transition-new(project-hero-frame){mix-blend-mode:normal;object-fit:cover;object-position:center;background:0 0;width:100%;height:100%}html[data-project-morph=enter] ::view-transition-old(project-hero-frame){opacity:0;animation:none}html[data-project-morph=enter] ::view-transition-new(project-hero-frame){opacity:1;animation:none}html[data-project-morph=exit] ::view-transition-old(project-hero-frame){opacity:1;animation:none}html[data-project-morph=exit] ::view-transition-new(project-hero-frame){opacity:0;animation:none}html[data-spectrum-morph=exit] ::view-transition-group(project-hero-frame){animation-duration:.76s!important;animation-timing-function:cubic-bezier(.16,.72,.2,1)!important}html[data-spectrum-morph=exit] ::view-transition-group(project-hero-title){animation-duration:.76s!important;animation-timing-function:cubic-bezier(.16,.72,.2,1)!important}html[data-spectrum-morph=exit] ::view-transition-group(project-hero-description){animation-duration:.76s!important;animation-timing-function:cubic-bezier(.16,.72,.2,1)!important}html[data-spectrum-morph=exit] ::view-transition-old(project-hero-title){animation-duration:.76s!important;animation-timing-function:cubic-bezier(.16,.72,.2,1)!important}html[data-spectrum-morph=exit] ::view-transition-new(project-hero-title){animation-duration:.76s!important;animation-timing-function:cubic-bezier(.16,.72,.2,1)!important}html[data-spectrum-morph=exit] ::view-transition-old(project-hero-description){animation-duration:.76s!important;animation-timing-function:cubic-bezier(.16,.72,.2,1)!important}html[data-spectrum-morph=exit] ::view-transition-new(project-hero-description){animation-duration:.76s!important;animation-timing-function:cubic-bezier(.16,.72,.2,1)!important}html[data-spectrum-morph=exit] ::view-transition-old(root){animation-duration:.76s!important;animation-timing-function:cubic-bezier(.16,.72,.2,1)!important}html[data-spectrum-morph=exit] ::view-transition-new(root){animation-duration:.76s!important;animation-timing-function:cubic-bezier(.16,.72,.2,1)!important}html[data-spectrum-morph=exit] ::view-transition-group(page-portal){animation-duration:.76s!important;animation-timing-function:cubic-bezier(.16,.72,.2,1)!important}::view-transition-old(project-hero-title){animation-duration:1.8s;animation-timing-function:cubic-bezier(.33,.1,.15,1)}::view-transition-new(project-hero-title){animation-duration:1.8s;animation-timing-function:cubic-bezier(.33,.1,.15,1)}::view-transition-old(project-hero-description){animation-duration:1.8s;animation-timing-function:cubic-bezier(.33,.1,.15,1)}::view-transition-new(project-hero-description){animation-duration:1.8s;animation-timing-function:cubic-bezier(.33,.1,.15,1)}::view-transition-old(project-play){animation-duration:1.8s;animation-timing-function:cubic-bezier(.33,.1,.15,1)}::view-transition-new(project-play){animation-duration:1.8s;animation-timing-function:cubic-bezier(.33,.1,.15,1)}html[data-project-morph=enter] ::view-transition-old(project-hero-title){animation-name:vt-morph-fade-out}html[data-project-morph=exit] ::view-transition-old(project-hero-title){animation-name:vt-morph-fade-out}html[data-project-morph=enter] ::view-transition-old(project-hero-description){animation-name:vt-morph-fade-out}html[data-project-morph=exit] ::view-transition-old(project-hero-description){animation-name:vt-morph-fade-out}html[data-project-morph=enter] ::view-transition-new(project-hero-title){animation-name:vt-morph-fade-in}html[data-project-morph=exit] ::view-transition-new(project-hero-title){animation-name:vt-morph-fade-in}html[data-project-morph=enter] ::view-transition-new(project-hero-description){animation-name:vt-morph-fade-in}html[data-project-morph=exit] ::view-transition-new(project-hero-description){animation-name:vt-morph-fade-in}html[data-project-morph=enter] ::view-transition-old(project-play){animation-name:vt-play-fade-out}html[data-project-morph=exit] ::view-transition-old(project-play){animation-name:vt-play-fade-out}html:not([data-project-morph]) ::view-transition-old(project-play){animation-name:vt-play-fade-out}html[data-project-morph=enter] ::view-transition-new(project-play){animation-name:vt-play-fade-in}html[data-project-morph=exit] ::view-transition-new(project-play){animation-name:vt-play-fade-in}html:not([data-project-morph]) ::view-transition-new(project-play){animation-name:vt-play-fade-in}@keyframes vt-radius-enter{0%,68%{border-radius:1rem}to{border-radius:0}}@keyframes vt-portal{0%{opacity:0;filter:brightness(1.05)contrast(1.08)saturate(1.1)}16%{opacity:.78;filter:brightness(1.15)contrast(1.15)saturate(1.25)drop-shadow(4px 0 #ff3c8c66)drop-shadow(-4px 0 #00dcff66)drop-shadow(0 3px #50ffaa38)}34%,58%{opacity:1;filter:brightness(1.2)contrast(1.18)saturate(1.3)drop-shadow(7px 0 #ff328280)drop-shadow(-7px 0 #00e6ff73)drop-shadow(0 5px #5affb447)}78%{opacity:.7;filter:brightness(1.12)contrast(1.12)saturate(1.2)drop-shadow(5px 0 #ff3c8c52)drop-shadow(-5px 0 #00dcff52)drop-shadow(0 3px #50ffaa2e)}to{opacity:0;filter:brightness(1.05)contrast(1.05)}}@keyframes vt-root-out{0%{opacity:1}28%{opacity:.1}to{opacity:0}}@keyframes vt-root-in{0%{opacity:0}48%{opacity:.06}to{opacity:1}}@keyframes vt-morph-fade-out{0%{opacity:1}45%{opacity:0}to{opacity:0}}@keyframes vt-morph-fade-in{0%{opacity:0}45%{opacity:1}to{opacity:1}}@keyframes vt-play-fade-out{0%{opacity:1}6%{opacity:0}to{opacity:0}}@keyframes vt-play-fade-in{0%,to{opacity:0}}}@media (prefers-reduced-motion:reduce){@supports (view-transition-name:none){::view-transition-group(*){animation:none!important}::view-transition-old(*){animation:none!important}::view-transition-new(*){animation:none!important}}.page-portal,.site-top-bar,.experiments-popup,.project-morph-frame,.project-morph-title,.project-morph-description,.project-morph-play{view-transition-name:none}}.site-top-bar{padding:max(1.15rem, env(safe-area-inset-top)) max(2rem, env(safe-area-inset-right)) 1.15rem max(2rem, env(safe-area-inset-left));background:0 0;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;column-gap:1rem;display:grid}.site-top-bar__group{flex-wrap:wrap;align-items:center;gap:.35rem 1.5rem;min-width:0;display:flex}.site-top-bar__group--start{justify-content:flex-start}.site-top-bar__group--end{justify-content:flex-end}.site-top-bar__center{width:1px}.site-top-bar__link{letter-spacing:.025em;text-transform:capitalize;-webkit-tap-highlight-color:transparent;align-items:center;gap:.35em;min-height:2.25rem;font-size:.875rem;font-weight:500;line-height:1.2;display:inline-flex}.site-top-bar__link:active{opacity:.6}.home-screen{padding-top:clamp(1.5rem,8vh,5rem);padding-bottom:max(.75rem, env(safe-area-inset-bottom));padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);flex-direction:column;justify-content:center;align-items:center;gap:clamp(1.25rem,5vh,3.75rem);display:flex;position:fixed;inset:0;overflow:hidden}.home-headline-wrap{width:var(--carousel-width);max-width:calc(100% - .5rem);container-type:inline-size}.home-headline{letter-spacing:.04em;color:var(--color-heading);justify-content:space-between;align-items:baseline;gap:.35em;margin:0;font-size:clamp(.95rem,6.6cqi,4rem);font-weight:700;line-height:1.15;display:flex}.home-headline span{white-space:nowrap}.project-hero__title,.project-title-card__title,.project-section__heading h2,.project-body__prose,.project-meta__table td,.about-experience__table td{overflow-wrap:break-word}footer{padding-bottom:max(1rem, env(safe-area-inset-bottom))}@supports (height:100dvh){.home-screen,.experiments-screen,main.fixed.inset-0{height:100dvh;bottom:auto}}main.fixed.overflow-auto{overflow-x:clip}@media (width<=900px){.site-top-bar{padding-inline:max(.85rem, env(safe-area-inset-left));flex-wrap:wrap;justify-content:center;gap:0 .85rem;padding-bottom:.55rem;display:flex}.site-top-bar__center{display:none}.site-top-bar__group{justify-content:center;gap:.1rem .9rem}.site-top-bar__link{min-height:2.75rem}}@media (width<=720px){html{--carousel-width:calc(100% - 6.4rem)}.embla{--slide-spacing:.85rem;--slide-size:min(100cqw, 18rem);--arrow-shaft:2.85rem;--arrow-head:.95rem}.embla__viewport{-webkit-mask-image:linear-gradient(90deg,#0000 0%,#000 7% 93%,#0000 100%);mask-image:linear-gradient(90deg,#0000 0%,#000 7% 93%,#0000 100%)}.embla__side-label{font-size:.68rem}.embla__side--prev .embla__side-label{left:0;transform:none}.embla__side--next .embla__side-label{left:auto;right:0;transform:none}.embla .project-title-card__title{font-size:1.15rem}.embla .project-title-card__description{-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.project-hero{height:clamp(17.5rem,68vw,55vh);min-height:16.5rem}.project-hero__copy{padding-inline:1.15rem;padding-bottom:4.25rem}.project-hero__title{font-size:1.85rem}.project-meta__table td:first-child,.project-meta__table--compact td:first-child{white-space:normal}.project-section__heading{flex-wrap:wrap}.project-section__heading h2{font-size:1.65rem}.project-section__bullets li{font-size:1.02rem}.about-experience__table{margin-top:clamp(4rem,16vh,10rem)}.about-experience__table,.about-experience__table tbody,.about-experience__table tr,.about-experience__table td{width:auto;display:block}.about-experience__table tr{border-top:1px solid #dae5e747;padding:.8rem 0 .95rem}@supports (color:color-mix(in lab, red, red)){.about-experience__table tr{border-top:1px solid color-mix(in oklab, var(--color-ink) 28%, transparent)}}.about-experience__table tr:last-child{border-bottom:1px solid #dae5e747}@supports (color:color-mix(in lab, red, red)){.about-experience__table tr:last-child{border-bottom:1px solid color-mix(in oklab, var(--color-ink) 28%, transparent)}}.about-experience__table td{text-align:left;white-space:normal;border:0;padding:.12rem 0}.about-experience__table td:first-child{width:auto;font-size:.8rem}.about-experience__table td:last-child{text-align:left;padding-top:.15rem}.experiments-popup{right:max(.75rem, env(safe-area-inset-right));bottom:max(.75rem, env(safe-area-inset-bottom));width:min(21.5rem, calc(100vw - 1.5rem - env(safe-area-inset-left) - env(safe-area-inset-right)))}}@media (width<=900px),(height<=520px){.project-meta{padding-top:6.25rem}.project-meta__play{width:min(7.5rem,32vw);height:min(7.5rem,32vw);top:calc(100% - .15rem);left:auto;right:calc(.55rem + min(7.5rem,32vw)/4.7619);transform:translateY(-50%)rotate(45deg)}.project-meta__play:hover{transform:translateY(-50%)rotate(45deg)scale(1.04)}.project-meta__play:active{transform:translateY(-50%)rotate(45deg)scale(.96)}.project-meta__play-label{font-size:calc(1.55rem * var(--play-scale))}.project-meta__play .site-arrow{width:calc(1.45rem * var(--play-scale));height:calc(1.45rem * var(--play-scale))}}@media (height<=540px){.home-screen{padding-top:max(.75rem, env(safe-area-inset-top));justify-content:flex-start;gap:.75rem;overflow:auto}.embla{--slide-size:min(28vh, 9.5rem)}.embla .project-title-card__description{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.home-headline{font-size:clamp(.95rem,6cqi,2rem)}}@media (pointer:coarse){.embla__side{justify-content:center;min-width:2.75rem;min-height:2.75rem}.email-copy-button{min-width:2.75rem;min-height:2.75rem}.experiments-popup__close{width:2.25rem;height:2.25rem}.project-section__more{align-items:center;min-height:2.75rem;padding-top:.35rem;display:inline-flex}.project-gallery__dots{flex-wrap:wrap;gap:1.35rem 1.6rem;padding-top:.7rem;padding-bottom:.35rem}.project-gallery__dot{width:.72rem;height:.72rem}.project-gallery__dot:before{inset:-.8rem}.about-experience__scroll,.project-body__scroll{min-width:3rem;min-height:3rem}}.experiments-screen{overscroll-behavior:none;background:0 0;flex-direction:column;display:flex;position:fixed;inset:0;overflow:hidden}.experiments-empty{min-height:0;padding:1.25rem max(1.25rem, env(safe-area-inset-right)) max(1rem, env(safe-area-inset-bottom)) max(1.25rem, env(safe-area-inset-left));flex-direction:column;flex:1;display:flex}.experiments-empty>p{color:#dae5e7b8;margin-top:1rem}@supports (color:color-mix(in lab, red, red)){.experiments-empty>p{color:color-mix(in oklab, var(--color-ink) 72%, transparent)}}.experiments-spectrum{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;flex:1;min-height:0;position:relative}.experiments-spectrum canvas{border-radius:0;width:100%;height:100%;display:block;position:absolute;inset:0}.spectrum-labels{z-index:1;pointer-events:none;position:absolute;inset:0;overflow:hidden}.spectrum-labels,.spectrum-labels *{pointer-events:none!important}.spectrum-pole{letter-spacing:.04em;text-transform:capitalize;white-space:nowrap;text-shadow:0 1px 2px #0000008c,0 2px 14px #00000073;font-size:.8rem;font-weight:600;line-height:1}.spectrum-pole--x{color:#8fd4ff}.spectrum-pole--y{color:var(--color-highlight)}.spectrum-pole--z{color:var(--color-ink)}.spectrum-project{text-align:center;width:max-content;max-width:11.5rem;padding-top:.42rem;transition:opacity .25s}.spectrum-project__title{font-family:var(--font-display);letter-spacing:.02em;color:var(--color-heading);text-shadow:0 1px 2px #00000080,0 2px 12px #00000073;margin:0;font-size:.98rem;font-weight:600;line-height:1.25}.spectrum-project__description{opacity:0;max-width:13rem;max-height:0;color:var(--color-ink);text-shadow:0 1px 2px #000000a6,0 2px 10px #00000080;margin:0 auto;font-size:.8rem;line-height:1.4;transition:max-height .35s,opacity .25s,margin-top .35s;overflow:hidden}.spectrum-project.is-hot .spectrum-project__title,.spectrum-project.is-hot .spectrum-project__description{text-shadow:0 1px 2px #000000d9,0 4px 14px #000000b8,0 10px 28px #0000008c}.spectrum-project.is-hot .spectrum-project__description{opacity:1;max-height:8rem;margin-top:.28rem}.spectrum-morph{z-index:8;pointer-events:none;position:fixed;inset:0}.spectrum-morph__frame{background:0 0;border-radius:1rem;position:fixed;overflow:hidden}.spectrum-morph__frame img{object-fit:cover;object-position:center;border-radius:0;width:100%;height:100%;display:block}.spectrum-morph__text{margin:0;position:fixed}.spectrum-morph .spectrum-project__description{opacity:1;max-height:none;margin-top:0;overflow:visible}.spectrum-morph__veil{background:#00000080;position:absolute;inset:0}.spectrum-morph.is-dissolving .spectrum-morph__frame,.spectrum-morph.is-dissolving .spectrum-morph__text{transform-origin:50%;animation:.78s linear forwards spectrum-morph-dissolve}@keyframes spectrum-morph-dissolve{0%{opacity:1;transform:scale(1)}30%{opacity:.84;transform:scale(.9)}62%{opacity:.46;transform:scale(.72)}84%{opacity:.14;transform:scale(.58)}to{opacity:0;transform:scale(.52)}}.experiments-spectrum__legend{z-index:4;top:.15rem;left:max(1rem, env(safe-area-inset-left));pointer-events:none;max-width:16rem;position:absolute}.experiments-spectrum__title{letter-spacing:.04em;color:var(--color-heading);margin:0 0 .45rem;font-size:clamp(1.35rem,2.4vw,1.85rem);font-weight:600;line-height:1.1}.experiments-spectrum__axis{font:inherit;letter-spacing:.03em;text-align:left;text-transform:capitalize;text-shadow:0 1px 2px #0000008c,0 2px 10px #0006;pointer-events:auto;touch-action:manipulation;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:999px;align-items:center;gap:.35rem;min-height:2.25rem;margin:.2rem 0 0;padding:.28rem .6rem .28rem .4rem;font-size:.78rem;font-weight:600;line-height:1.2;display:flex}.experiments-spectrum__axis.is-selected{background:currentColor}@supports (color:color-mix(in lab, red, red)){.experiments-spectrum__axis.is-selected{background:color-mix(in oklab, currentColor 18%, transparent)}}.experiments-spectrum__axis.is-selected{box-shadow:inset 0 0 0 1px}@supports (color:color-mix(in lab, red, red)){.experiments-spectrum__axis.is-selected{box-shadow:inset 0 0 0 1px color-mix(in oklab, currentColor 62%, transparent)}}.experiments-spectrum__axis--x{color:#8fd4ff}.experiments-spectrum__axis--y{color:var(--color-highlight)}.experiments-spectrum__axis--z{color:var(--color-ink)}.experiments-spectrum__axis-id{opacity:.55;letter-spacing:0;text-transform:lowercase;width:.75rem;font-weight:500}.experiments-spectrum__axis-arrows{flex:none;align-items:center;gap:.02rem;display:inline-flex}.experiments-spectrum__axis-arrow{flex:none;width:.72rem;height:.72rem}.experiments-spectrum__hint{z-index:2;left:50%;bottom:max(.7rem, env(safe-area-inset-bottom));pointer-events:none;letter-spacing:.04em;white-space:nowrap;color:var(--color-ink);opacity:.78;text-shadow:0 1px 2px #0000008c;margin:0;font-size:.75rem;transition:opacity .7s;position:absolute;transform:translate(-50%)}.experiments-spectrum[data-used=true] .experiments-spectrum__hint{opacity:0}.experiments-spectrum__nav{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.experiments-spectrum__nav:focus-within{z-index:3;left:max(1rem, env(safe-area-inset-left));bottom:max(2.5rem, calc(env(safe-area-inset-bottom) + 1.6rem));clip:auto;white-space:normal;pointer-events:auto;flex-direction:column;gap:.3rem;width:auto;height:auto;margin:0;display:flex;overflow:visible}.experiments-spectrum__nav a{color:var(--color-heading);font-family:var(--font-display);font-size:1rem}.experiments-fallback{min-height:0;padding:.5rem max(1.25rem, env(safe-area-inset-right)) 2.5rem max(1.25rem, env(safe-area-inset-left));flex:1;overflow:auto}.experiments-fallback__grid{grid-template-columns:1fr;gap:2.5rem;max-width:64rem;margin:1.25rem auto 0;padding:0;list-style:none;display:grid}@media (width>=640px){.experiments-fallback__grid{grid-template-columns:1fr 1fr}}@media (width>=1024px){.experiments-fallback__grid{grid-template-columns:1fr 1fr 1fr}}@media (width<=720px){.spectrum-pole{font-size:.68rem}.spectrum-project{max-width:8.5rem}.spectrum-project__title{font-size:.82rem}.experiments-spectrum__axis{min-height:2.75rem;font-size:.68rem}.experiments-spectrum__legend{top:0;left:max(.75rem, env(safe-area-inset-left))}}@media (prefers-reduced-motion:reduce){.experiments-spectrum__hint,.spectrum-project,.spectrum-project__description,.experiments-spectrum__axis{transition:none}}@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-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@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}
