:root{--color-bg: #ffffff;--color-fg: #111111;--color-muted: #555555;--color-border: #111111;--color-placeholder: #e8e8e8;--color-placeholder-outline: #999999;--font-sans: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono: ui-monospace, "Cascadia Code", "Source Code Pro", Menlo, Consolas, monospace;--text-xs: clamp(.75rem, .7rem + .2vw, .8125rem);--text-sm: clamp(.8125rem, .78rem + .25vw, .875rem);--text-base: clamp(.9375rem, .88rem + .35vw, 1rem);--text-lg: clamp(1.0625rem, .95rem + .5vw, 1.125rem);--text-xl: clamp(1.25rem, 1.05rem + .85vw, 1.5rem);--text-2xl: clamp(1.5rem, 1.2rem + 1.2vw, 2rem);--text-3xl: clamp(1.875rem, 1.35rem + 2vw, 2.75rem);--text-4xl: clamp(2.25rem, 1.5rem + 3.5vw, 3.75rem);--leading-tight: 1.2;--leading-snug: 1.35;--leading-normal: 1.5;--leading-relaxed: 1.65;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--space-7: 2.5rem;--space-8: 3.5rem;--max-width: 1200px;--content-pad: clamp(var(--space-4), 2vw, var(--space-6));--header-scroll-offset: 5rem;--section-gap: var(--space-6);--section-inner-gap: var(--space-4);--radius-sm: 2px;--radius-md: 4px;--border-width: 1px;--border: var(--border-width) solid var(--color-border);--link-underline-height: 2px;--link-underline-offset: .12em;--link-underline-duration: .3s;--grid-size: 1.5rem;--grid-origin-x: calc(max(0px, (100vw - var(--max-width)) / 2) + var(--content-pad));--color-grid: color-mix(in srgb, var(--color-fg) 5%, transparent);--card-hover-shadow: none;--motion-duration: .2s;--motion-ease: ease-in-out;--motion-ease-out: cubic-bezier(.22, 1, .36, 1);--motion-card: .3s var(--motion-ease-out)}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--color-bg: #000000;--color-fg: #ffffff;--color-muted: rgb(191, 191, 191);--color-border: #ffffff;--color-placeholder: rgb(38, 38, 38);--color-placeholder-outline: rgb(102, 102, 102);--color-grid: color-mix(in srgb, var(--color-fg) 12%, transparent);--card-hover-shadow: 0 10px 28px color-mix(in srgb, var(--color-fg) 14%, transparent)}}:root[data-theme=dark]{--color-bg: #000000;--color-fg: #ffffff;--color-muted: rgb(191, 191, 191);--color-border: #ffffff;--color-placeholder: rgb(38, 38, 38);--color-placeholder-outline: rgb(102, 102, 102);--color-grid: color-mix(in srgb, var(--color-fg) 12%, transparent);--card-hover-shadow: 0 10px 28px color-mix(in srgb, var(--color-fg) 14%, transparent)}:root[data-theme=light]{--color-bg: #ffffff;--color-fg: #111111;--color-muted: #555555;--color-border: #111111;--color-placeholder: #e8e8e8;--color-placeholder-outline: #999999;--color-grid: color-mix(in srgb, var(--color-fg) 4%, transparent)}@media (min-width: 769px){:root{--color-grid: color-mix(in srgb, var(--color-fg) 3%, transparent)}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--color-grid: color-mix(in srgb, var(--color-fg) 6%, transparent)}}:root[data-theme=dark]{--color-grid: color-mix(in srgb, var(--color-fg) 6%, transparent)}:root[data-theme=light]{--color-grid: color-mix(in srgb, var(--color-fg) 3%, transparent)}}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:var(--header-scroll-offset);scrollbar-gutter:stable;-webkit-text-size-adjust:100%;text-size-adjust:100%}body{margin:0;font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--color-fg);background-color:var(--color-bg);background-image:linear-gradient(var(--color-grid) 1px,transparent 1px),linear-gradient(90deg,var(--color-grid) 1px,transparent 1px);background-size:var(--grid-size) var(--grid-size);background-position:var(--grid-origin-x) 0;background-attachment:fixed}html.is-theme-switching *:not(.theme-toggle){transition:none!important}@media (max-width: 1200px){:root{--grid-origin-x: var(--content-pad)}body{background-attachment:scroll}}img{max-width:100%;height:auto;display:block}a{color:inherit;text-decoration-thickness:var(--border-width)}a:hover{text-decoration:underline}.site-header__brand,.site-header__link,.about__link,.project-card,.contact__email,.still-modal__watch,.film-stills__link,.hero__cta,.project-detail__back{text-decoration:none}.site-header__brand:is(:hover,:focus-visible),.site-header__link:is(:hover,:focus-visible),.about__link:is(:hover,:focus-visible),.project-card:is(:hover,:focus-visible,.is-thumb-playing),.contact__email:is(:hover,:focus-visible,.is-spotlight),.still-modal__watch:is(:hover,:focus-visible){text-decoration:none}ul{margin:0;padding:0}button,input,.hero__cta,.theme-toggle,.segmented-control__option,.project-gate__key,.project-gate__dev-bypass,.error-page__button,.about__focus-toggle,.still-modal__close,.still-modal__nav{-webkit-appearance:none;-moz-appearance:none;appearance:none;transition:background-color var(--motion-duration) var(--motion-ease),color var(--motion-duration) var(--motion-ease),border-color var(--motion-duration) var(--motion-ease),opacity var(--motion-duration) var(--motion-ease),transform .15s var(--motion-ease-out)}button:focus,a:focus,input:focus,.hero__cta:focus{outline:none}button:not(.about__focus-toggle):not(.film-stills__link):not(.theme-toggle):active,.hero__cta:not(.hero__cta--primary):active,.segmented-control__option:active,.project-gate__key:active,.project-gate__dev-bypass:active,.error-page__button:active,.still-modal__close:active,.still-modal__nav:active{transform:scale(.97)}@media (prefers-reduced-motion: reduce){button:not(.about__focus-toggle):not(.film-stills__link):not(.theme-toggle):active,.hero__cta:hover,.hero__cta:active,.hero__cta--primary:hover,.hero__cta--primary:active,.project-detail__back:active,.segmented-control__option:active,.project-gate__key:active,.project-gate__dev-bypass:active,.error-page__button:active,.still-modal__close:active,.still-modal__nav:active{transform:none}}a,.site-header__link,.site-header__brand,.contact__email,.contact__social-link,.project-detail__pager-link,.project-gate__hint-link,.error-page__link{transition:color var(--motion-duration) var(--motion-ease),opacity var(--motion-duration) var(--motion-ease),text-decoration-color var(--motion-duration) var(--motion-ease)}.site-header,.contact-container{transition:background-color var(--motion-duration) var(--motion-ease),color var(--motion-duration) var(--motion-ease),border-color var(--motion-duration) var(--motion-ease)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app{min-width:0;min-height:100vh;min-height:100dvh;display:grid;grid-template-rows:auto 1fr auto;overflow-x:clip}[data-page-enter]:not([data-page-entered]){opacity:0}@media (prefers-reduced-motion: reduce){[data-page-enter]:not([data-page-entered]){opacity:1}}.page-main{width:100%;max-width:var(--max-width);margin-inline:auto;padding:var(--space-6) var(--content-pad) var(--space-8);display:grid;grid-template-columns:minmax(0,1fr);gap:var(--section-gap)}.placeholder-block{background-color:var(--color-placeholder);outline:1px dashed var(--color-placeholder-outline);outline-offset:-1px;border-radius:var(--radius-sm)}.site-header{position:sticky;top:0;z-index:10;background-color:var(--color-bg);border-bottom:var(--border)}.site-header__inner{max-width:var(--max-width);margin-inline:auto;padding:var(--space-4) var(--content-pad);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-4)}.site-header__brand{position:relative;display:inline-block;font-weight:600;font-size:var(--text-lg);color:inherit;line-height:1;-webkit-tap-highlight-color:transparent}.site-header__brand,.site-header__link,.about__link,.still-modal__watch,.contact__email-text,.project-card__title{padding-bottom:var(--link-underline-offset)}.site-header__brand:after,.site-header__link:after,.about__link:after,.still-modal__watch:after,.contact__email-text:after,.project-card__title:after{content:"";position:absolute;left:0;right:0;bottom:0;height:var(--link-underline-height);background:currentColor;transform:scaleX(0);transform-origin:left center;transition:transform var(--link-underline-duration) var(--motion-ease-out);pointer-events:none}.site-header__brand:hover:after,.site-header__brand:focus-visible:after,.site-header__link:hover:after,.site-header__link:focus-visible:after,.about__link:hover:after,.about__link:focus-visible:after,.still-modal__watch:hover:after,.still-modal__watch:focus-visible:after,.contact__email:hover .contact__email-text:after,.contact__email:focus-visible .contact__email-text:after,.contact__email.is-spotlight .contact__email-text:after,.project-card:is(:hover,.is-thumb-playing) .project-card__title:after{transform:scaleX(1)}@media (prefers-reduced-motion: reduce){.site-header__brand:after,.site-header__link:after,.about__link:before,.about__link:after,.still-modal__watch:after,.contact__email-text:after,.project-card__title:after{transition:none}}.site-header__nav{display:flex;align-items:center}.site-header__list{list-style:none;display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-4)}.site-header__item{display:flex;align-items:center}.site-header__link{position:relative;display:inline-flex;align-items:center;font-size:var(--text-sm);line-height:1;color:inherit;-webkit-tap-highlight-color:transparent}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0;color:var(--color-fg);background:var(--color-placeholder);border:none;border-radius:4px;cursor:pointer;transform:scale(1);transition:background-color var(--motion-duration) var(--motion-ease),color var(--motion-duration) var(--motion-ease),opacity var(--motion-duration) var(--motion-ease),transform .12s var(--motion-ease-out)}.theme-toggle:hover{opacity:.85}.theme-toggle:active{transform:scale(.88)}.theme-toggle:focus-visible{outline:none;box-shadow:0 0 0 2px var(--color-bg),0 0 0 4px var(--color-fg)}@media (prefers-reduced-motion: reduce){.theme-toggle:active{transform:none}}.theme-toggle__icons{position:relative;display:block;width:1rem;height:1rem}.theme-toggle__icon{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;width:1rem;height:1rem;transform-origin:center center;will-change:transform,opacity}.theme-toggle__icon svg{width:1rem;height:1rem}@media (prefers-reduced-motion: reduce){.theme-toggle__icon{will-change:auto}}@media (max-width: 768px){.site-header__link{font-size:1rem}.theme-toggle{width:36px;height:36px}.theme-toggle__icons,.theme-toggle__icon,.theme-toggle__icon svg{width:1.125rem;height:1.125rem}}.section-heading{margin:0;font-size:var(--text-2xl);line-height:var(--leading-tight);font-weight:600}#work,#about,#contact{scroll-margin-top:var(--header-scroll-offset)}.hero__inner{display:grid;grid-template-columns:minmax(0,1fr) minmax(12.8rem,22.4rem);align-items:center;gap:var(--space-6);min-height:min(22.4rem,70vh)}.hero__title{margin:0 0 var(--space-1);font-size:var(--text-4xl);line-height:var(--leading-tight);font-weight:700}.hero__lede{margin:0 0 var(--space-5);max-width:46ch;font-size:var(--text-lg);line-height:var(--leading-relaxed);color:color-mix(in srgb,var(--color-fg) 80%,transparent)}.hero__actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-4)}.hero__ctas{display:flex;flex-wrap:wrap;gap:var(--space-3)}.hero__cta--primary,.project-detail__back{--btn-ring-enter: .4s;--btn-ring-exit: .5s;--btn-ring-press: .16s;--btn-ring-ease: cubic-bezier(.22, 1, .36, 1);position:relative;overflow:visible;transition:background-color var(--btn-ring-exit) ease,border-color var(--btn-ring-exit) ease,color var(--btn-ring-exit) ease,transform var(--btn-ring-press) var(--btn-ring-ease)}.hero__cta--primary:after,.project-detail__back:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border:2px solid var(--color-fg);border-radius:inherit;pointer-events:none;transition:top var(--btn-ring-exit) var(--btn-ring-ease),right var(--btn-ring-exit) var(--btn-ring-ease),bottom var(--btn-ring-exit) var(--btn-ring-ease),left var(--btn-ring-exit) var(--btn-ring-ease),border-radius var(--btn-ring-exit) var(--btn-ring-ease),border-color var(--btn-ring-exit) ease}.hero__cta--primary:hover,.hero__cta--primary:focus-visible,.project-detail__back:hover,.project-detail__back:focus-visible{opacity:1;transform:none;text-decoration:none;background-color:color-mix(in srgb,var(--color-fg) 25%,transparent);border-color:transparent;color:var(--color-fg);transition:background-color var(--btn-ring-enter) ease,border-color var(--btn-ring-enter) ease,color var(--btn-ring-enter) ease,transform var(--btn-ring-press) var(--btn-ring-ease)}.hero__cta--primary:hover:after,.hero__cta--primary:focus-visible:after,.project-detail__back:hover:after,.project-detail__back:focus-visible:after{top:-10px;right:-10px;bottom:-10px;left:-10px;border-radius:8px;border-color:color-mix(in srgb,var(--color-fg) 25%,transparent);transition:top var(--btn-ring-enter) var(--btn-ring-ease),right var(--btn-ring-enter) var(--btn-ring-ease),bottom var(--btn-ring-enter) var(--btn-ring-ease),left var(--btn-ring-enter) var(--btn-ring-ease),border-radius var(--btn-ring-enter) var(--btn-ring-ease),border-color var(--btn-ring-enter) ease}.hero__cta--primary:active,.project-detail__back:active{transform:scale(.92);transition-duration:var(--btn-ring-press);transition-timing-function:var(--btn-ring-ease)}.hero__cta--primary:hover:active,.hero__cta--primary:focus-visible:active,.project-detail__back:hover:active,.project-detail__back:focus-visible:active{border-color:transparent}.hero__cta--primary:active:after,.project-detail__back:active:after{top:0;right:0;bottom:0;left:0;border-radius:inherit;border-color:transparent;transition-duration:var(--btn-ring-press);transition-timing-function:var(--btn-ring-ease)}.hero__cta--primary:hover:active:after,.hero__cta--primary:focus-visible:active:after,.project-detail__back:hover:active:after,.project-detail__back:focus-visible:active:after{border-color:color-mix(in srgb,var(--color-fg) 25%,transparent)}@media (prefers-reduced-motion: reduce){.hero__cta--primary,.hero__cta--primary:after,.project-detail__back,.project-detail__back:after{transition-duration:1ms}.hero__cta--primary:active,.project-detail__back:active{transform:none}}.hero__cta{display:inline-flex;align-items:center;padding:var(--space-2) var(--space-4);font-size:calc(var(--text-sm) + 2px);font-weight:500;text-decoration:none;border-radius:var(--radius-sm);border:var(--border);-webkit-tap-highlight-color:transparent}.hero__cta:hover,.hero__cta:focus-visible{text-decoration:none}.hero__cta--primary{background:var(--color-fg);color:var(--color-bg);border:var(--border-width) solid transparent;border-radius:4px}.hero__cta--secondary{background:transparent;color:var(--color-fg)}.hero__cta--secondary:hover{background:var(--color-placeholder)}.hero__ctas:has(.hero__cta:only-child) .hero__cta{justify-content:center;min-width:10rem;padding-inline:var(--space-6)}.hero__content{min-width:0}.hero__media-wrap{--hero-glow-1: rgb(255 170 60);--hero-glow-2: rgb(255 210 110);--hero-glow-3: rgb(220 110 50);--hero-glow-4: rgb(160 80 100);--hero-hot-color: var(--hero-glow-1);--hero-hot-x: 50%;--hero-hot-y: 50%;--hero-glow-shift-x: 0px;--hero-glow-shift-y: 0px;--hero-hot-strength: 0;--hero-glow-bloom-opacity: .28;--hero-rim-opacity: .2;--hero-hot-opacity-max: .32;position:relative;justify-self:end;width:100%;max-width:22.4rem;aspect-ratio:1 / 1;isolation:isolate}:root[data-theme=light] .hero__media-wrap{--hero-glow-bloom-opacity: .12;--hero-rim-opacity: .1;--hero-hot-opacity-max: .18}@media (prefers-color-scheme: dark){:root:not([data-theme=light]) .hero__media-wrap{--hero-glow-bloom-opacity: .28;--hero-rim-opacity: .2;--hero-hot-opacity-max: .32}}:root[data-theme=dark] .hero__media-wrap{--hero-glow-bloom-opacity: .28;--hero-rim-opacity: .2;--hero-hot-opacity-max: .32}:root:not([data-theme=dark]):not([data-theme=light]) .hero__media-wrap{--hero-glow-bloom-opacity: .12;--hero-rim-opacity: .1;--hero-hot-opacity-max: .18}@media (prefers-color-scheme: dark){:root:not([data-theme=dark]):not([data-theme=light]) .hero__media-wrap{--hero-glow-bloom-opacity: .28;--hero-rim-opacity: .2;--hero-hot-opacity-max: .32}}.hero__glow{position:absolute;top:-12%;right:-12%;bottom:-12%;left:-12%;z-index:0;pointer-events:none;overflow:visible}.hero__glow-bloom{--hero-glow-breathe: 1.02;position:absolute;top:50%;left:50%;width:96%;height:96%;display:block;max-width:none;object-fit:cover;object-position:center bottom;border-radius:var(--radius-sm);transform:translate(calc(-50% + var(--hero-glow-shift-x)),calc(-50% + var(--hero-glow-shift-y))) scale(var(--hero-glow-breathe));filter:blur(40px) saturate(1.25) brightness(1.02);opacity:var(--hero-glow-bloom-opacity);will-change:transform}.hero__glow-rim{position:absolute;top:18%;right:18%;bottom:18%;left:18%;pointer-events:none}.hero__glow-rim-lobe{position:absolute;opacity:calc(var(--hero-rim-opacity) * .4);filter:blur(28px);transition:opacity .45s var(--motion-ease-out),transform .55s var(--motion-ease-out);mix-blend-mode:screen}.hero__glow-rim-lobe--top{top:-8%;left:10%;right:10%;height:42%;background:radial-gradient(ellipse 80% 70% at 50% 100%,var(--hero-glow-2),transparent 72%)}.hero__glow-rim-lobe--right{top:10%;right:-8%;bottom:10%;width:42%;background:radial-gradient(ellipse 70% 80% at 0% 50%,var(--hero-glow-1),transparent 72%)}.hero__glow-rim-lobe--bottom{left:10%;right:10%;bottom:-8%;height:42%;background:radial-gradient(ellipse 80% 70% at 50% 0%,var(--hero-glow-3),transparent 72%)}.hero__glow-rim-lobe--left{top:10%;left:-8%;bottom:10%;width:42%;background:radial-gradient(ellipse 70% 80% at 100% 50%,var(--hero-glow-4),transparent 72%)}.hero__media-wrap[data-active-edge=top] .hero__glow-rim-lobe--top,.hero__media-wrap[data-active-edge=top-left] .hero__glow-rim-lobe--top,.hero__media-wrap[data-active-edge=top-right] .hero__glow-rim-lobe--top{opacity:calc(var(--hero-rim-opacity) * (.55 + var(--hero-hot-strength) * .45));transform:translateY(-3%) scale(1.04)}.hero__media-wrap[data-active-edge=right] .hero__glow-rim-lobe--right,.hero__media-wrap[data-active-edge=top-right] .hero__glow-rim-lobe--right,.hero__media-wrap[data-active-edge=bottom-right] .hero__glow-rim-lobe--right{opacity:calc(var(--hero-rim-opacity) * (.55 + var(--hero-hot-strength) * .45));transform:translate(3%) scale(1.04)}.hero__media-wrap[data-active-edge=bottom] .hero__glow-rim-lobe--bottom,.hero__media-wrap[data-active-edge=bottom-left] .hero__glow-rim-lobe--bottom,.hero__media-wrap[data-active-edge=bottom-right] .hero__glow-rim-lobe--bottom{opacity:calc(var(--hero-rim-opacity) * (.55 + var(--hero-hot-strength) * .45));transform:translateY(3%) scale(1.04)}.hero__media-wrap[data-active-edge=left] .hero__glow-rim-lobe--left,.hero__media-wrap[data-active-edge=top-left] .hero__glow-rim-lobe--left,.hero__media-wrap[data-active-edge=bottom-left] .hero__glow-rim-lobe--left{opacity:calc(var(--hero-rim-opacity) * (.55 + var(--hero-hot-strength) * .45));transform:translate(-3%) scale(1.04)}:root[data-theme=light] .hero__glow-rim-lobe{mix-blend-mode:multiply}@media (prefers-color-scheme: dark){:root:not([data-theme=light]) .hero__glow-rim-lobe{mix-blend-mode:screen}}:root[data-theme=dark] .hero__glow-rim-lobe{mix-blend-mode:screen}.hero__glow-hotspot{position:absolute;top:8%;right:8%;bottom:8%;left:8%;border-radius:50%;background:radial-gradient(circle 32% at var(--hero-hot-x) var(--hero-hot-y),color-mix(in srgb,var(--hero-hot-color) 55%,transparent),color-mix(in srgb,var(--hero-hot-color) 18%,transparent) 48%,transparent 74%);opacity:0;filter:blur(20px) saturate(1.1);mix-blend-mode:screen;will-change:opacity,transform;pointer-events:none}:root[data-theme=light] .hero__glow-hotspot{mix-blend-mode:multiply}@media (prefers-color-scheme: dark){:root:not([data-theme=light]) .hero__glow-hotspot{mix-blend-mode:screen}}:root[data-theme=dark] .hero__glow-hotspot{mix-blend-mode:screen}.hero__media{position:relative;z-index:1;width:100%;height:100%;overflow:hidden;border-radius:var(--radius-sm);border:var(--border);background:var(--color-placeholder)}.hero__media-image{display:block;width:100%;height:100%;object-fit:cover;object-position:center bottom}@media (prefers-reduced-motion: reduce){.hero__glow-bloom,.hero__glow-hotspot,.hero__glow-rim-lobe{will-change:auto;transition:none}.hero__glow-hotspot{display:none}}@media (max-width: 768px){:root{--header-scroll-offset: 7rem}.section-heading{font-size:calc(var(--text-2xl) + 2px)}.hero{padding-block:0}.hero__inner{grid-template-columns:1fr;min-height:auto}.hero__media-wrap{justify-self:stretch;max-width:none;order:-1}.hero__glow{top:-8%;right:-8%;bottom:-8%;left:-8%}.hero__glow-bloom{width:98%;height:98%;filter:blur(32px) saturate(1.15) brightness(1.02)}.hero__glow-hotspot{display:none}.hero__actions{width:100%}.hero__ctas{width:100%;flex-wrap:nowrap}.hero__cta{flex:1 1 50%;justify-content:center;min-width:0}.hero__ctas:has(.hero__cta:only-child) .hero__cta{flex:1 1 100%;width:100%;min-width:0}}.segmented-control{display:inline-flex;flex-wrap:wrap;padding:var(--space-1);border:var(--border);border-radius:var(--radius-md);gap:var(--space-1)}.segmented-control__option{padding:var(--space-2) var(--space-3);font:inherit;font-size:var(--text-sm);color:var(--color-muted);background:transparent;border:0;border-radius:var(--radius-sm);cursor:pointer;outline:none}.segmented-control__option:hover{color:var(--color-fg);background:var(--color-placeholder)}.segmented-control__option--active{background:var(--color-fg);color:var(--color-bg)}.segmented-control__option--active:hover{background:var(--color-fg);color:var(--color-bg);opacity:.9}.segmented-control__option:focus,.segmented-control__option:focus-visible{outline:none}.segmented-control__option:focus-visible{box-shadow:0 0 0 2px var(--color-bg),0 0 0 4px var(--color-fg)}.segmented-control__label--short{display:none}@media (max-width: 768px){.work__header{flex-wrap:nowrap;align-items:center;justify-content:space-between;gap:var(--space-2)}.work__header .section-heading{min-width:0}.work__header .segmented-control{flex-shrink:0;padding:var(--space-1);gap:var(--space-1)}.work__header .segmented-control__option{padding:var(--space-2) var(--space-3);font-size:var(--text-sm);line-height:1.2}.work__header .segmented-control__label--full{display:none}.work__header .segmented-control__label--short{display:inline}}.work{display:grid;gap:var(--section-gap)}.work__header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-4)}.work__header .section-heading{margin-bottom:0}.work__content{display:flex;flex-direction:column;gap:0}.work__frames{margin-top:var(--section-inner-gap)}.work__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));gap:var(--space-5)}.work__grid>.work__grid-item{display:flex;min-width:0}.work__grid>.work__grid-item>.project-card{flex:1}.film-stills-section{display:grid;gap:var(--section-inner-gap)}.film-stills{overflow:hidden;border:var(--border);border-radius:var(--radius-md);background-color:var(--color-bg)}.film-stills__viewport{display:flex;width:max-content;animation:film-stills-marquee var(--film-stills-duration, 45s) linear infinite;backface-visibility:hidden}.film-stills:hover .film-stills__viewport,.film-stills:focus-within .film-stills__viewport,.film-stills.is-paused .film-stills__viewport{animation-play-state:paused}.film-stills__track{display:flex;flex-shrink:0}.film-stills__link{display:block;flex-shrink:0;height:180px;padding:0;margin:0;overflow:hidden;font:inherit;color:inherit;background:none;border:none;border-right:var(--border);border-radius:0;cursor:pointer;text-decoration:none;-webkit-tap-highlight-color:transparent}.film-stills__link:last-child{border-right:var(--border)}.film-stills__link:hover,.film-stills__link:focus-visible{text-decoration:none}.film-stills__link:focus-visible{outline:none;box-shadow:inset 0 0 0 2px var(--color-fg)}.film-stills__image{display:block;height:180px;width:auto;max-width:none;object-fit:cover;transform:scale(1);transform-origin:center center;transition:transform .45s var(--motion-ease-out)}.film-stills__link:hover .film-stills__image,.film-stills__link:focus-visible .film-stills__image{transform:scale(1.05)}.film-stills__link--portrait .film-stills__image{aspect-ratio:9 / 16;object-position:center 20%;transform-origin:center 30%}@keyframes film-stills-marquee{0%{transform:translateZ(0)}to{transform:translate3d(-50%,0,0)}}@media (max-width: 768px){.film-stills__link,.film-stills__image{height:140px}}@media (prefers-reduced-motion: reduce){.film-stills{overflow-x:auto}.film-stills__viewport{animation:none;width:100%}.film-stills__track--clone{display:none}.film-stills__image{transition:none}.film-stills__link:hover .film-stills__image,.film-stills__link:focus-visible .film-stills__image{transform:none}}.still-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:grid;place-items:center;padding:var(--space-5);background-color:color-mix(in srgb,var(--color-bg) 94%,transparent);opacity:0}.still-modal__dialog{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:var(--space-3);max-width:min(92vw,72rem)}.still-modal__figure{margin:0;display:grid;justify-items:center;gap:var(--space-3)}.still-modal__image{display:block;max-width:min(82vw,64rem);max-height:78vh;width:auto;height:auto;object-fit:contain;image-rendering:auto;-webkit-user-drag:none;border:var(--border);background-color:var(--color-bg)}.still-modal__caption{display:flex;align-items:center;justify-content:center;gap:var(--space-3);font-size:var(--text-sm);color:var(--color-muted)}.still-modal__watch{position:relative;display:inline-block;color:var(--color-fg);-webkit-tap-highlight-color:transparent}.still-modal__close,.still-modal__nav{display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;padding:0;color:inherit;background:none;border:var(--border);border-radius:var(--radius-sm);cursor:pointer}.still-modal__close{position:fixed;top:var(--space-4);right:var(--space-4);z-index:1}.still-modal__close svg,.still-modal__nav svg{width:1.15rem;height:1.15rem}.still-modal__close:hover,.still-modal__nav:hover,.still-modal__close:focus-visible,.still-modal__nav:focus-visible{outline:none;background-color:var(--color-fg);color:var(--color-bg)}@media (max-width: 768px){.still-modal{padding:var(--space-4)}.still-modal__dialog{grid-template-columns:1fr;width:100%}.still-modal__nav{display:none}.still-modal__close{top:var(--space-4);right:var(--space-4)}.still-modal__image{max-width:92vw;max-height:72vh}}.project-card{display:flex;flex-direction:column;border:var(--border);border-radius:var(--radius-md);text-decoration:none;color:inherit;background-color:var(--color-bg);overflow:hidden;isolation:isolate;transition:box-shadow var(--motion-card);-webkit-tap-highlight-color:transparent}.project-card:active{color:inherit;background-color:var(--color-bg)}.project-card:is(:hover,.is-thumb-playing){text-decoration:none;box-shadow:var(--card-hover-shadow)}.project-card:focus-visible{outline:none;box-shadow:0 0 0 2px var(--color-bg),0 0 0 4px var(--color-fg)}.project-card__thumb{aspect-ratio:16 / 10;width:100%;object-fit:cover;object-position:center;border-bottom:var(--border);border-radius:var(--radius-md) var(--radius-md) 0 0;overflow:hidden;transform:translateZ(0);transition:transform var(--motion-card);will-change:transform}.project-card__thumb--animated{display:block;overflow:hidden;object-fit:unset;will-change:auto}.project-card__thumb-stack{display:grid;grid-template-areas:"thumb";width:100%;border-bottom:var(--border);border-radius:var(--radius-md) var(--radius-md) 0 0;overflow:hidden;transform:translateZ(0)}.project-card__thumb-stack>.project-card__thumb{grid-area:thumb;border-bottom:none;border-radius:0}.project-card__thumb-frame .project-card__thumb-stack{border:none;border-radius:0;height:100%;aspect-ratio:unset}.project-card:not(.project-card--film):is(:hover,.is-thumb-playing) .project-card__thumb:not(.project-card__thumb--animated){transform:scale(1.03)}.epsilon-wireframe__svg,.core-ui-wireframe__svg{display:block;width:100%;height:100%}.project-card__thumb.ummahfy-logo{--ul-duration: .3s;--ul-ease: ease-in-out;--ul-filter-duration: .3s;--ul-flag-x: 9px;--ul-body-x: -10.1px;--ul-crown-y: -7.9px;--ul-part-scale: 1.09;--ul-card-brightness: brightness(1.05);--ul-flag-shadow: drop-shadow(0 6px 10px rgba(255, 255, 255, .12));--ul-body-shadow: drop-shadow(0 7px 12px rgba(255, 255, 255, .1));--ul-crown-shadow: drop-shadow(0 6px 10px rgba(255, 255, 255, .08));box-sizing:border-box;position:relative}.ummahfy-logo--light{--ul-flag-x: 10.1px;--ul-body-x: -11.3px;--ul-crown-y: -9px;--ul-card-brightness: brightness(1.06);--ul-flag-shadow: drop-shadow(0 0 6px rgba(255, 255, 255, .28)) drop-shadow(0 6px 12px rgba(20, 27, 58, .12));--ul-body-shadow: drop-shadow(0 0 7px rgba(255, 255, 255, .22)) drop-shadow(0 7px 14px rgba(20, 27, 58, .1));--ul-crown-shadow: drop-shadow(0 0 6px rgba(255, 255, 255, .24)) drop-shadow(0 6px 12px rgba(20, 27, 58, .1))}.ummahfy-logo__svg{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:block;width:80%;height:auto;max-height:80%;aspect-ratio:612.847 / 370.718;overflow:visible}.ummahfy-logo__part{transform-origin:center;transform-box:fill-box;transition:transform var(--ul-duration) var(--ul-ease),filter var(--ul-filter-duration) var(--ul-ease)}.ummahfy-logo__part--flag{transition-delay:.2s}.ummahfy-logo__part--body{transition-delay:.1s}.ummahfy-logo__part--crown{transition-delay:0s}.project-card:is(:hover,.is-thumb-playing) .ummahfy-logo__part--card{filter:var(--ul-card-brightness)}.project-card:is(:hover,.is-thumb-playing) .ummahfy-logo__part--flag{transform:translate(var(--ul-flag-x)) scale(var(--ul-part-scale));filter:var(--ul-flag-shadow);transition-delay:0s}.project-card:is(:hover,.is-thumb-playing) .ummahfy-logo__part--body{transform:translate(var(--ul-body-x)) scale(var(--ul-part-scale));filter:var(--ul-body-shadow);transition-delay:.1s}.project-card:is(:hover,.is-thumb-playing) .ummahfy-logo__part--crown{transform:translateY(var(--ul-crown-y)) scale(var(--ul-part-scale));filter:var(--ul-crown-shadow);transition-delay:.2s}@media (prefers-reduced-motion: reduce){.project-card:is(:hover,.is-thumb-playing) .ummahfy-logo__part--card,.project-card:is(:hover,.is-thumb-playing) .ummahfy-logo__part--flag,.project-card:is(:hover,.is-thumb-playing) .ummahfy-logo__part--body,.project-card:is(:hover,.is-thumb-playing) .ummahfy-logo__part--crown{transform:none;filter:none;transition-delay:0s}}.core-ui-wireframe{--cu-duration: .3s;--cu-ease: ease-in-out;--cu-accent-lag: .12s;--cu-stagger-max: .18s;--cu-heading-stagger-max: .24s;--cu-segment-shift: 50.5px;--cu-cell-bg-hover: drop-shadow(0 3px 6px rgba(32, 30, 29, .16));--cu-cell-bg-hover-back: drop-shadow(0 4px 5px rgba(32, 30, 29, .14));--cu-accent-hover-filter: none}.core-ui-wireframe--dark{--cu-cell-bg-hover: drop-shadow(0 7px 18px rgba(0, 0, 0, .85)) drop-shadow(0 0 1px #444444);--cu-cell-bg-hover-back: drop-shadow(0 6px 8px rgba(0, 0, 0, .72)) drop-shadow(0 0 1px #444444);--cu-accent-hover-filter: drop-shadow(0 0 4px rgba(77, 154, 255, .35))}.core-ui-wireframe .cell{transform-origin:center;transform-box:fill-box;transition:transform var(--cu-duration) var(--cu-ease),filter var(--cu-duration) var(--cu-ease);transition-delay:calc(var(--cu-stagger-max) - var(--cu-cell-delay, 0s))}.core-ui-wireframe__svg{isolation:isolate}.core-ui-wireframe .cell--back{z-index:1}.core-ui-wireframe .cell--front,.core-ui-wireframe .cell--picker{z-index:2}.core-ui-wireframe .cell--top{z-index:3}.project-card:is(:hover,.is-thumb-playing) .core-ui-wireframe .cell{transform:translateY(-5px);transition-delay:var(--cu-cell-delay, 0s)}.core-ui-wireframe .cell-bg{transition:filter var(--cu-duration) var(--cu-ease);transition-delay:calc(var(--cu-stagger-max) - var(--cu-cell-delay, 0s))}.project-card:is(:hover,.is-thumb-playing) .core-ui-wireframe .cell-bg{filter:var(--cu-cell-bg-hover);transition-delay:var(--cu-cell-delay, 0s)}.project-card:is(:hover,.is-thumb-playing) .core-ui-wireframe .cell--back .cell-bg{filter:var(--cu-cell-bg-hover-back)}.core-ui-wireframe .accent{transform-origin:center;transform-box:fill-box;transition:transform var(--cu-duration) var(--cu-ease),filter var(--cu-duration) var(--cu-ease);transition-delay:calc(var(--cu-stagger-max) - var(--cu-cell-delay, 0s))}.project-card:is(:hover,.is-thumb-playing) .core-ui-wireframe .accent:not(.accent--segment){transform:scale(1.08);filter:var(--cu-accent-hover-filter);transition-delay:calc(var(--cu-cell-delay, 0s) + var(--cu-accent-lag))}.project-card:is(:hover,.is-thumb-playing) .core-ui-wireframe .accent--segment{transform:translate(var(--cu-segment-shift));filter:var(--cu-accent-hover-filter);transition-delay:calc(var(--cu-cell-delay, 0s) + var(--cu-accent-lag))}.core-ui-wireframe__heading{transform-origin:left center;transform-box:fill-box;transition:transform var(--cu-duration) var(--cu-ease);transition-delay:calc(var(--cu-heading-stagger-max) - var(--cu-heading-delay, 0s))}.project-card:is(:hover,.is-thumb-playing) .core-ui-wireframe__heading{transform:translateY(-3px) skew(-14deg);transition-delay:var(--cu-heading-delay, 0s)}@media (prefers-reduced-motion: reduce){.project-card:is(:hover,.is-thumb-playing) .core-ui-wireframe .cell,.project-card:is(:hover,.is-thumb-playing) .core-ui-wireframe .accent,.project-card:is(:hover,.is-thumb-playing) .core-ui-wireframe__heading{transform:none;filter:none}.project-card:is(:hover,.is-thumb-playing) .core-ui-wireframe .cell-bg{filter:none}}.epsilon-wireframe{--ew-cell-scale: 1.006;--ew-canvas-scale: 1.07;--ew-canvas-delay: .15s;--ew-cell-duration: .3s;--ew-cell-ease: cubic-bezier(.4, 0, .2, 1);--ew-flow-fade: .5s;--ew-flow-duration: .7s;--ew-flow-opacity: .85;--ew-flow-stroke: #8a8a8a;--ew-flow-stagger-max: .23s;--ew-glow-duration: 2s;--ew-glow-delay: .15s;--ew-cell-hover-filter: brightness(1.25) drop-shadow(0 3px 6px rgba(0, 0, 0, .5));--ew-glow-from: brightness(1) drop-shadow(0 0 0 rgba(255, 255, 255, 0));--ew-glow-to: brightness(1.14) drop-shadow(0 0 10px rgba(255, 255, 255, .45))}.epsilon-wireframe--light{--ew-flow-opacity: .6;--ew-flow-stroke: #0063e6;--ew-glow-from: brightness(1) drop-shadow(0 1px 2px rgba(32, 30, 29, .04));--ew-glow-to: brightness(1.1) drop-shadow(0 4px 12px rgba(32, 30, 29, .12))}.epsilon-wireframe__cell{transform-origin:center;transform-box:fill-box;transition:transform var(--ew-cell-duration) var(--ew-cell-ease),filter var(--ew-cell-duration) var(--ew-cell-ease);transition-delay:var(--ew-canvas-delay)}.project-card:is(:hover,.is-thumb-playing) .epsilon-wireframe__cell{transform:scale(var(--ew-cell-scale));transition-delay:0s}.project-card:is(:hover,.is-thumb-playing) .epsilon-wireframe--dark .epsilon-wireframe__cell{filter:var(--ew-cell-hover-filter)}.epsilon-wireframe__highlight{transform-origin:center;transform-box:fill-box;transition:transform var(--ew-cell-duration) var(--ew-cell-ease),filter .5s var(--ew-cell-ease);transition-delay:0s}.epsilon-wireframe__highlight.is-glowing{animation:epsilon-wireframe-glow var(--ew-glow-duration) ease-in-out var(--ew-glow-delay) infinite}.project-card:is(:hover,.is-thumb-playing) .epsilon-wireframe__highlight{transform:scale(var(--ew-canvas-scale));transition-delay:var(--ew-canvas-delay)}.epsilon-wireframe__flow-line{stroke:var(--ew-flow-stroke);stroke-width:1px;stroke-dasharray:5 5;fill:none;opacity:0;transition:opacity var(--ew-flow-fade) var(--ew-cell-ease);transition-delay:calc(var(--ew-flow-stagger-max) - var(--ew-flow-delay, 0s));animation:epsilon-wireframe-dash var(--ew-flow-duration) linear infinite}.project-card:is(:hover,.is-thumb-playing) .epsilon-wireframe__flow-line{opacity:var(--ew-flow-opacity);transition-delay:var(--ew-flow-delay, 0s)}.project-card:is(:hover,.is-thumb-playing) .epsilon-wireframe__cell-seam{opacity:calc(var(--ew-flow-opacity) * .85)}@keyframes epsilon-wireframe-glow{0%,to{filter:var(--ew-glow-from)}50%{filter:var(--ew-glow-to)}}@keyframes epsilon-wireframe-dash{to{stroke-dashoffset:-24}}@media (prefers-reduced-motion: reduce){.epsilon-wireframe__flow-line{animation:none}.project-card:is(:hover,.is-thumb-playing) .epsilon-wireframe__cell,.epsilon-wireframe__highlight.is-glowing{transform:none;filter:none;animation:none}.project-card:is(:hover,.is-thumb-playing) .epsilon-wireframe__flow-line{opacity:.45}}.project-card__thumb.project-card__thumb--theme-light{opacity:0;pointer-events:none}.project-card__thumb.project-card__thumb--theme-dark{opacity:1;pointer-events:auto}@media (prefers-color-scheme: light){:root:not([data-theme=dark]) .project-card__thumb.project-card__thumb--theme-light{opacity:1;pointer-events:auto}:root:not([data-theme=dark]) .project-card__thumb.project-card__thumb--theme-dark{opacity:0;pointer-events:none}}@media (prefers-color-scheme: dark){:root:not([data-theme=light]) .project-card__thumb.project-card__thumb--theme-light{opacity:0;pointer-events:none}:root:not([data-theme=light]) .project-card__thumb.project-card__thumb--theme-dark{opacity:1;pointer-events:auto}}:root[data-theme=light] .project-card__thumb.project-card__thumb--theme-light{opacity:1;pointer-events:auto}:root[data-theme=light] .project-card__thumb.project-card__thumb--theme-dark{opacity:0;pointer-events:none}:root[data-theme=dark] .project-card__thumb.project-card__thumb--theme-light{opacity:0;pointer-events:none}:root[data-theme=dark] .project-card__thumb.project-card__thumb--theme-dark{opacity:1;pointer-events:auto}.project-card__thumb--top{object-position:top}.project-card__thumb-frame{position:relative;aspect-ratio:16 / 10;overflow:hidden;border-bottom:var(--border);border-radius:var(--radius-md) var(--radius-md) 0 0;transform:translateZ(0)}.project-card__thumb-frame .project-card__thumb{border:none;border-radius:0}.project-card__thumb-frame .project-card__thumb--top{aspect-ratio:unset;width:100%;height:120%;margin-top:-10%}.project-card__thumb-frame .project-card__thumb--zoom{aspect-ratio:unset;width:100%;height:100%;object-fit:cover;transform:scale(1.25);transform-origin:center center}.project-card:is(:hover,.is-thumb-playing) .project-card__thumb-frame .project-card__thumb--zoom{transform:scale(1.3)}.project-card--film .project-card__thumb{transform:scale(1.04);transform-origin:50% 45%;filter:brightness(.92);transition:transform .7s var(--motion-ease-out),filter .5s var(--motion-ease-out)}.project-card--film .project-card__thumb-frame .project-card__thumb--top{transform:none;transform-origin:50% 35%;filter:brightness(.92)}.project-card--film .project-card__thumb-frame .project-card__thumb--zoom{transform:scale(1.22);transform-origin:50% 48%;filter:brightness(.92)}.project-card--film:is(:hover,.is-thumb-playing) .project-card__thumb{transform:scale(1.14);filter:brightness(1)}.project-card--film:is(:hover,.is-thumb-playing) .project-card__thumb-frame .project-card__thumb--top{transform:scale(1.08) translateY(3%);filter:brightness(1)}.project-card--film:is(:hover,.is-thumb-playing) .project-card__thumb-frame .project-card__thumb--zoom{transform:scale(1.34) translate(1.2%,-1%);filter:brightness(1)}.project-card__play{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;display:grid;place-items:center;pointer-events:none}.project-card__play-btn{display:grid;place-items:center;width:2.75rem;height:2.75rem;padding-left:.12rem;color:var(--color-fg);background-color:color-mix(in srgb,var(--color-bg) 62%,transparent);border:1px solid color-mix(in srgb,var(--color-fg) 70%,transparent);border-radius:50%;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);opacity:0;transform:scale(.84);transition:opacity .35s var(--motion-ease-out),transform .35s var(--motion-ease-out)}.project-card__play-icon{width:1.05rem;height:1.05rem}.project-card--film:is(:hover,.is-thumb-playing) .project-card__play-btn{opacity:1;transform:scale(1)}.project-card__body{padding:var(--space-4) var(--space-4) var(--space-5);display:flex;flex-direction:column;gap:0}.project-card__media{position:relative}.project-card__title{position:relative;margin:0 0 var(--space-2);width:fit-content;font-size:var(--text-xl);line-height:var(--leading-tight);font-weight:600}.project-card__access{position:absolute;top:12px;right:12px;z-index:3;display:grid;place-items:center;width:1.75rem;height:1.75rem;color:var(--color-fg);background-color:color-mix(in srgb,var(--color-bg) 72%,transparent);border:1px solid color-mix(in srgb,var(--color-fg) 55%,transparent);border-radius:50%;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);pointer-events:none}.project-card__access-icon{width:.85rem;height:.85rem;flex:none}.project-card__tagline{margin:0 0 var(--space-4);font-size:var(--text-sm);line-height:var(--leading-snug);color:var(--color-muted);transition:color .3s ease-in-out}.project-card:is(:hover,.is-thumb-playing) .project-card__tagline{color:var(--color-fg)}.project-card__tags{list-style:none;display:flex;flex-wrap:wrap;gap:var(--space-2);margin:0;padding:0}.project-card__tag{font-size:var(--text-xs);line-height:var(--leading-snug);padding:.2rem .45rem;color:var(--color-muted);border:var(--border-width) solid color-mix(in srgb,var(--color-fg) 35%,transparent);border-radius:var(--radius-sm);transition:color .3s ease-in-out,border-color .3s ease-in-out}.project-card:is(:hover,.is-thumb-playing) .project-card__tag{color:var(--color-fg);border-color:var(--color-fg)}@media (prefers-reduced-motion: reduce){.project-card,.project-card__thumb,.project-card__tagline,.project-card__play-btn{transition:none}.project-card:is(:hover,.is-thumb-playing) .project-card__thumb{transform:none}.project-card:is(:hover,.is-thumb-playing) .project-card__thumb-frame .project-card__thumb--zoom{transform:scale(1.25)}.project-card--film .project-card__thumb,.project-card--film .project-card__thumb-frame .project-card__thumb--top,.project-card--film .project-card__thumb-frame .project-card__thumb--zoom,.project-card--film:is(:hover,.is-thumb-playing) .project-card__thumb,.project-card--film:is(:hover,.is-thumb-playing) .project-card__thumb-frame .project-card__thumb--top,.project-card--film:is(:hover,.is-thumb-playing) .project-card__thumb-frame .project-card__thumb--zoom{transform:none;filter:none}.project-card--film .project-card__thumb-frame .project-card__thumb--zoom{transform:scale(1.25)}}.about__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-7);align-items:start}@media (max-width: 768px){.about__grid{grid-template-columns:1fr}}.about__column{display:grid;gap:var(--section-inner-gap);align-content:start}.about__column-heading{margin:0}.about__bio p{margin:0 0 var(--space-4);line-height:var(--leading-relaxed);max-width:60ch}.about__bio p:last-child{margin-bottom:0}.about__link{position:relative;display:inline-block;margin:0;padding-top:0;padding-inline:0;border:0;color:inherit;font:inherit;line-height:1;letter-spacing:inherit;vertical-align:baseline;cursor:pointer;background:none;-webkit-tap-highlight-color:transparent}.about__link:before{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:color-mix(in srgb,currentColor 45%,transparent);pointer-events:none;transition:opacity var(--link-underline-duration) var(--motion-ease-out)}.about__link:hover:before,.about__link:focus-visible:before{opacity:0}.about__link:focus-visible{outline:none;border-radius:var(--radius-sm);box-shadow:0 0 0 2px var(--color-fg)}.about__link:active{color:inherit;opacity:1}.about__keep-together{white-space:nowrap}.about__skills{display:grid;gap:var(--space-4)}.about__skills-group{display:grid;gap:var(--space-2)}.about__skills-group-label{margin:0;font-size:var(--text-xs);font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--color-muted)}.about__skills-chips{list-style:none;display:flex;flex-wrap:wrap;gap:var(--space-2);margin:0;padding:.2rem}.about__skills-chip{position:relative;font-size:var(--text-xs);line-height:var(--leading-snug);padding:.28rem .5rem;color:var(--color-muted);background:transparent;border:var(--border-width) solid color-mix(in srgb,var(--color-fg) 35%,transparent);border-radius:var(--radius-sm);cursor:default;transition:color .18s var(--motion-ease-out),border-color .18s var(--motion-ease-out),opacity .18s var(--motion-ease-out) .14s}.about__skills-chip:after{content:"";position:absolute;top:-.45rem;right:-.45rem;bottom:-.45rem;left:-.45rem}@media (hover: hover) and (pointer: fine){.about__skills:has(.about__skills-chip:hover) .about__skills-chip{opacity:.22;transition-delay:0ms}.about__skills:has(.about__skills-chip:hover) .about__skills-chip:hover{opacity:1;color:var(--color-fg);border-color:var(--color-fg);transition-delay:0ms}}@media (prefers-reduced-motion: reduce){.about__skills-chip{transition:none}}.contact{display:grid;gap:var(--section-inner-gap)}.contact-container{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap;padding:var(--space-4);border-radius:var(--radius-md);border:var(--border)}.contact__lede{padding-left:.5rem;margin:0;font-size:var(--text-lg)}.contact__email{position:relative;display:inline-flex;align-items:center;gap:var(--space-2);padding:.15rem .35rem;margin:-.15rem -.35rem;font-weight:500;color:inherit;text-decoration:none;border-radius:var(--radius-sm);-webkit-tap-highlight-color:transparent}.contact__email:hover,.contact__email:focus-visible,.contact__email.is-spotlight{text-decoration:none}.contact__email:before{content:attr(data-tooltip);position:absolute;left:50%;bottom:calc(100% + .4rem);z-index:2;padding:.28rem .5rem;font-size:var(--text-xs);line-height:1.2;font-weight:500;letter-spacing:.01em;white-space:nowrap;color:var(--color-bg);background-color:var(--color-fg);border-radius:var(--radius-sm);opacity:0;transform:translate(-50%) translateY(.25rem);pointer-events:none;transition:opacity .18s ease-in,transform .18s ease-in}.contact__email:hover:before,.contact__email:focus-visible:before,.contact__email.is-spotlight:before{opacity:1;transform:translate(-50%) translateY(0);transition:opacity .25s var(--motion-ease-out),transform .25s var(--motion-ease-out)}.contact__email-text{position:relative;display:inline-block}@media (prefers-reduced-motion: reduce){.contact__email:before{transition:none}}.contact__icon{flex-shrink:0;width:1.1em;height:1.1em;stroke-width:1.75}.contact__social{list-style:none;display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:var(--space-3);margin:0;padding:0}.contact__social-item{position:relative}.contact__social-link{position:relative;display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;color:inherit;text-decoration:none;border-radius:var(--radius-sm);-webkit-tap-highlight-color:transparent}.contact__social-link:before{content:attr(data-tooltip);position:absolute;left:50%;bottom:calc(100% + .4rem);z-index:2;padding:.28rem .5rem;font-size:var(--text-xs);line-height:1.2;font-weight:500;letter-spacing:.01em;white-space:nowrap;color:var(--color-bg);background-color:var(--color-fg);border-radius:var(--radius-sm);opacity:0;transform:translate(-50%) translateY(.25rem);pointer-events:none;transition:opacity .18s ease-in,transform .18s ease-in}.contact__social-link:hover:before,.contact__social-link:focus-visible:before{opacity:1;transform:translate(-50%) translateY(0);transition:opacity .25s var(--motion-ease-out),transform .25s var(--motion-ease-out)}.contact__social-link:hover .contact__social-icon,.contact__social-link:focus-visible .contact__social-icon{opacity:.75}.contact__social-icon{width:1.5rem;height:1.5rem;transition:opacity .2s var(--motion-ease-out)}@media (prefers-reduced-motion: reduce){.contact__social-link:before,.contact__social-icon{transition:none}}@media (max-width: 768px){.contact-container{flex-direction:column;align-items:flex-start}.contact__social{justify-content:flex-start}}.site-footer{border-top:var(--border);margin-top:auto}.site-footer__inner{max-width:var(--max-width);margin-inline:auto;padding:var(--space-5) var(--content-pad);display:grid;grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));gap:var(--space-3);font-size:var(--text-sm);color:var(--color-muted)}.site-footer__copy,.site-footer__meta{margin:0}.project-detail__missing{margin:0 0 var(--space-4)}.project-detail__back{display:inline-flex;align-items:center;justify-content:center;text-align:center;gap:.35rem;width:fit-content;min-height:2.35rem;padding:.5rem .9rem;font-size:var(--text-sm);font-weight:500;line-height:1;color:var(--color-fg);text-decoration:none;background:transparent;border:var(--border-width) solid transparent;border-radius:4px;cursor:pointer;-webkit-tap-highlight-color:transparent}.project-detail__back:focus-visible{outline:none;box-shadow:0 0 0 2px var(--color-bg),0 0 0 4px var(--color-fg)}@media (max-width: 768px){.project-detail__back{width:100%;min-height:2.75rem;padding-inline:var(--space-4)}.project-detail__back:after{border-width:1px}}.page-main.project-detail{min-width:0}.project-detail__article{display:grid;gap:var(--space-6);min-width:0;max-width:100%}.project-detail__section,.project-detail__header,.project-detail__related,.project-detail__embed-wrap,.project-detail__slides,.project-detail__figure,.project-detail__figure-gallery{min-width:0;max-width:100%}.project-detail__title,.project-detail__tagline,.project-detail__section-title,.project-detail__section-body,.project-detail__external-link,.project-detail__pager-link{overflow-wrap:anywhere}.project-detail__header{display:grid;gap:var(--space-2)}.project-detail__title{margin:0;font-size:var(--text-3xl);line-height:var(--leading-tight)}.project-detail__tagline{margin:0;font-size:var(--text-lg);color:var(--color-muted)}.project-detail__hero.placeholder-block{width:100%;max-width:min(22rem,100%);margin-inline:auto;aspect-ratio:16 / 9;min-height:6rem}.project-detail__hero-image{display:block;width:100%;max-width:min(22rem,100%);height:auto;margin-inline:auto;object-fit:contain;border:var(--border);border-radius:var(--radius-md)}.project-detail__video,.project-detail__embed{position:relative;width:100%;max-width:min(48rem,100%);margin-inline:auto;aspect-ratio:16 / 9;border:var(--border);border-radius:var(--radius-md);overflow:hidden;background:var(--color-placeholder)}.project-detail__video iframe,.project-detail__embed iframe{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;max-width:100%;height:100%;border:0}.project-detail__embed-wrap{margin:0}.project-detail__embed-wrap--hero{width:100%}.project-detail__embed--hero{max-width:100%;width:100%;aspect-ratio:16 / 9;min-height:0}.project-detail__slides{display:grid;gap:var(--space-5)}.project-detail__slide{margin:0}.project-detail__slide-image{display:block;width:100%;max-width:min(48rem,100%);height:auto;margin-inline:auto;border:var(--border);border-radius:var(--radius-md)}.project-detail__related{display:grid;gap:var(--space-3);padding-top:var(--space-4);border-top:var(--border)}.project-detail__link-list{list-style:none;margin:0;padding:0}.project-detail__link-item{margin:0}.project-detail__external-link{font-size:var(--text-base);text-decoration:underline;text-underline-offset:2px}.project-detail__external-mark{font-size:var(--text-sm);color:var(--color-muted)}.project-detail__section{--rail-size: .5rem;--rail-gutter: calc(var(--rail-size) + 1.15rem);--rail-title-size: var(--text-xl);--rail-title-lh: var(--leading-tight);--rail-node-top: calc((var(--rail-title-size) * var(--rail-title-lh) - var(--rail-size)) / 2);--rail-inline-end: calc(.4rem + 8px) ;position:relative;display:grid;gap:var(--space-4);padding-top:0;padding-inline-start:var(--rail-gutter);border-top:none}.project-detail__writeup{display:grid;gap:0;margin-top:var(--space-2);padding-top:var(--space-7);border-top:var(--border);overflow:hidden}.project-detail__section+.project-detail__section{margin-top:var(--space-7)}.project-detail__rail{position:absolute;inset-block:0;inset-inline-start:0;width:var(--rail-gutter);pointer-events:none}.project-detail__section-text{position:relative;display:grid;gap:1rem;min-width:0;align-content:start}.project-detail__rail-node{position:absolute;top:var(--rail-node-top);inset-inline-start:calc(-1 * (var(--rail-size) + var(--rail-inline-end)));width:var(--rail-size);height:var(--rail-size);box-sizing:border-box;border:1px solid color-mix(in srgb,var(--color-fg) 55%,transparent);border-radius:1px;background:var(--color-bg);z-index:2}.project-detail__section:first-child .project-detail__rail-node,.project-detail__section:last-child .project-detail__rail-node{background:color-mix(in srgb,var(--color-fg) 18%,var(--color-bg));border-color:color-mix(in srgb,var(--color-fg) 70%,transparent)}.project-detail__rail-stem{position:absolute;top:0;bottom:calc(-1 * var(--space-7));inset-inline-start:auto;inset-inline-end:calc(var(--rail-inline-end) + (var(--rail-size) / 2) - .5px);width:1px;background:color-mix(in srgb,var(--color-fg) 22%,transparent);z-index:0}.project-detail__section:first-child .project-detail__rail-stem{top:var(--rail-node-top)}.project-detail__section:last-child .project-detail__rail-stem{bottom:auto;height:calc(var(--rail-node-top) + var(--rail-size))}.project-detail__rail-arrow{position:absolute;top:50%;left:50%;width:7px;height:7px;border-right:1px solid color-mix(in srgb,var(--color-fg) 45%,transparent);border-bottom:1px solid color-mix(in srgb,var(--color-fg) 45%,transparent);transform:translate(-50%,calc(-50% + 4px)) rotate(45deg);background:var(--color-bg);box-shadow:0 0 0 3px var(--color-bg),0 -2px 0 3px var(--color-bg)}.project-detail__section-copy{display:grid;gap:var(--space-4);min-width:0}.project-detail__section-media{min-width:0}.project-detail__section-copy .project-detail__section-body{margin-bottom:0}.project-detail__section--split{--rail-title-size: var(--text-2xl)}.project-detail__section--split .project-detail__section-title{font-size:var(--text-2xl);font-weight:600;letter-spacing:-.02em;line-height:var(--leading-tight)}.project-detail__section--gallery-below{grid-template-columns:1fr;gap:var(--space-4)}.project-detail__section--gallery-below .project-detail__section-media{order:-1}@media (min-width: 769px){.project-detail__writeup{padding-top:var(--space-8)}.project-detail__section{--rail-size: .5625rem;--rail-gutter: calc(var(--rail-size) + 1.25rem)}.project-detail__section+.project-detail__section{margin-top:var(--space-8)}.project-detail__rail-stem{bottom:calc(-1 * var(--space-8))}.project-detail__section:last-child .project-detail__rail-stem{bottom:auto;height:calc(var(--rail-node-top) + var(--rail-size))}.project-detail__section--split{grid-template-columns:minmax(0,1.2fr) minmax(14rem,.8fr);align-items:start;column-gap:var(--space-6)}.project-detail__section--gallery-below .project-detail__section-copy{max-width:68ch}}.project-detail__figure{margin:0;display:grid;gap:var(--space-2);max-width:min(22rem,100%)}.project-detail__figure--photo{max-width:min(48rem,100%)}.project-detail__section-media .project-detail__figure,.project-detail__section-media .project-detail__figure--photo,.project-detail__section-media .project-detail__figure-gallery{max-width:100%}.project-detail__figure-gallery{display:grid;gap:var(--space-4);max-width:min(48rem,100%)}.project-detail__figure-gallery .project-detail__figure{max-width:100%}@media (min-width: 769px){.project-detail__figure-gallery{grid-template-columns:1fr 1fr;align-items:start}.project-detail__section--split .project-detail__figure-gallery{grid-template-columns:1fr}}.project-detail__section-image{display:block;width:100%;aspect-ratio:16 / 10;border:var(--border);border-radius:var(--radius-md);object-fit:cover}.project-detail__figure--photo .project-detail__section-image{aspect-ratio:auto;width:100%;height:auto;object-fit:contain;object-position:center;background:var(--color-placeholder)}.project-detail__figure--crop .project-detail__section-image{aspect-ratio:auto;width:100%;height:18rem;object-fit:cover}.project-detail__section-image.placeholder-block{min-height:5rem}.project-detail__caption{margin:0;font-size:var(--text-sm);color:var(--color-muted)}.project-detail__section-title{margin:0;font-size:var(--text-xl);font-weight:600;line-height:var(--leading-tight)}.project-detail__section-body{margin:0 0 var(--space-4);line-height:var(--leading-relaxed)}.project-detail__section-body:last-child{margin-bottom:0}.project-detail__section-body a{color:inherit;text-decoration:underline;text-underline-offset:2px}.project-detail__pager{display:grid;grid-template-columns:1fr;gap:var(--space-3);padding-top:var(--space-6);border-top:var(--border)}@media (min-width: 769px){.project-detail__pager{grid-template-columns:1fr 1fr;gap:var(--space-4)}}.project-detail__pager-link{font-size:var(--text-sm);text-decoration:none}.project-detail__pager-link:hover{text-decoration:underline}.project-detail__pager-link--next{text-align:right}.project-detail__pager-placeholder{font-size:var(--text-sm);color:var(--color-muted)}.project-detail__pager-placeholder--next{text-align:right}.project-detail--wip{filter:blur(7px);pointer-events:none;-webkit-user-select:none;user-select:none}.project-wip{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:grid;place-items:center;padding:var(--space-6);background:color-mix(in srgb,var(--color-bg) 48%,transparent);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.project-wip__panel{width:min(100%,28rem);padding:var(--space-7) var(--space-6);text-align:center;background:var(--color-bg);border:var(--border);border-radius:var(--radius-md);box-shadow:0 18px 48px color-mix(in srgb,var(--color-fg) 12%,transparent)}.project-wip__eyebrow{margin:0 0 var(--space-3);font-size:var(--text-xs);font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--color-muted)}.project-wip__title{margin:0 0 var(--space-3);font-size:var(--text-3xl);font-weight:700;letter-spacing:-.03em;line-height:var(--leading-tight)}.project-wip__copy{margin:0 0 var(--space-6);font-size:var(--text-base);line-height:var(--leading-relaxed);color:var(--color-muted)}.project-wip__cta{display:inline-flex;align-items:center;justify-content:center;min-height:2.5rem;padding:.55rem 1.15rem;font-size:var(--text-sm);font-weight:500;color:var(--color-bg);text-decoration:none;background:var(--color-fg);border-radius:var(--radius-sm)}.project-wip__cta:hover,.project-wip__cta:focus-visible{opacity:.9;text-decoration:none}@media (prefers-reduced-motion: reduce){.project-detail--wip{filter:none;opacity:.35}.project-wip{backdrop-filter:none;-webkit-backdrop-filter:none}}.page-main.project-gate{position:relative;align-self:stretch;min-height:100%;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:var(--space-5)}.page-main.project-gate .project-detail__back{align-self:flex-start;margin-bottom:0}.page-main.project-gate .project-gate__panel{width:100%;max-width:28rem;margin-block:auto;margin-inline:auto}.project-gate__panel{width:100%;max-width:28rem;margin:0;padding:var(--space-6);border:var(--border);border-radius:var(--radius-md)}@media (max-width: 768px){.page-main.project-gate{gap:var(--space-4);padding-top:var(--content-pad)}.page-main.project-gate .project-detail__back{width:100%;justify-content:center;min-height:2.75rem;padding-inline:var(--space-4)}.page-main.project-gate .project-gate__panel{margin-block:0}.project-gate__panel{padding:var(--space-5);border-radius:var(--radius-sm)}.project-gate__title{font-size:var(--text-xl)}.project-gate__lede{margin-bottom:var(--space-5)}.project-gate__entry{gap:var(--space-4)}}@media (max-width: 480px){.project-gate__panel{padding:var(--space-4)}.project-gate__lede{font-size:var(--text-sm)}}.project-gate__title{margin:0 0 var(--space-3);font-size:var(--text-2xl);line-height:var(--leading-tight)}.project-gate__lede{margin:0 0 var(--space-6);line-height:var(--leading-relaxed);color:var(--color-muted)}.project-gate__entry{display:grid;gap:var(--space-5);width:min(100%,17.5rem);margin-inline:auto}.project-gate__pin{position:relative;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:var(--space-2)}.project-gate__pin.is-shaking{animation:project-gate-shake .42s ease}@keyframes project-gate-shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}@media (prefers-reduced-motion: reduce){.project-gate__pin.is-shaking{animation:none}}.project-gate__dot{display:block;aspect-ratio:1;width:100%;border:var(--border);border-radius:var(--radius-sm);background:transparent}.project-gate__dot.is-filled{background:var(--color-fg)}.project-gate__error{margin:0;font-size:var(--text-sm);color:var(--color-fg);border:var(--border);padding:var(--space-3);background:var(--color-placeholder)}.project-gate__keypad{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-2)}.project-gate__key{display:inline-flex;align-items:center;justify-content:center;aspect-ratio:1;width:100%;min-height:0;padding:0;font:inherit;font-size:var(--text-2xl);font-weight:500;font-variant-numeric:tabular-nums;line-height:1;cursor:pointer;color:var(--color-fg);background:var(--color-bg);border:var(--border);border-radius:var(--radius-sm)}.project-gate__key:hover,.project-gate__key:focus-visible{outline:none;background:var(--color-fg);color:var(--color-bg)}.project-gate__key:disabled{cursor:default;opacity:.55}.project-gate__key:disabled:hover,.project-gate__key:disabled:focus-visible{background:var(--color-bg);color:var(--color-fg);border-color:var(--color-border)}.project-gate__key--back svg{width:1.35rem;height:1.35rem}@media (max-width: 768px){.project-gate__key{aspect-ratio:1.25 / 1;font-size:var(--text-xl)}}@media (max-width: 480px){.project-gate__key{aspect-ratio:1.35 / 1}}.project-gate__hint{margin:var(--space-5) 0 0;font-size:var(--text-sm);color:var(--color-muted)}.project-gate__hint-link{color:inherit}.project-gate__dev-bypass{width:100%;margin-top:var(--space-4);padding:var(--space-2) var(--space-4);font:inherit;font-size:var(--text-sm);cursor:pointer;color:var(--color-muted);background:transparent;border:1px dashed var(--color-border);border-radius:var(--radius-sm)}.project-gate__dev-bypass:hover{color:var(--color-fg);background:var(--color-placeholder)}.error-page{display:flex;align-items:center;justify-content:center;min-height:60vh}.error-page__panel{width:100%;max-width:32rem;padding:var(--space-6);border:var(--border);border-radius:var(--radius-md)}.error-page__title{margin:0 0 var(--space-3);font-size:var(--text-2xl);line-height:var(--leading-tight)}.error-page__lede{margin:0 0 var(--space-5);line-height:var(--leading-relaxed);color:var(--color-muted)}.error-page__actions{display:flex;flex-wrap:wrap;gap:var(--space-4);align-items:center}.error-page__button{padding:var(--space-3) var(--space-4);font:inherit;font-size:var(--text-base);cursor:pointer;background:var(--color-fg);color:var(--color-bg);border:var(--border);border-radius:var(--radius-sm)}.error-page__button:hover{opacity:.9}.error-page__link{font-size:var(--text-sm);text-decoration:underline;text-underline-offset:2px}.error-page__details{margin-top:var(--space-5);font-size:var(--text-sm);color:var(--color-muted)}.error-page__stack{margin:var(--space-3) 0 0;padding:var(--space-3);font-family:var(--font-mono);font-size:var(--text-xs);line-height:var(--leading-snug);border:var(--border);border-radius:var(--radius-sm);background:var(--color-placeholder);color:var(--color-fg);overflow:auto;white-space:pre-wrap;word-break:break-word}.error-page__hint{margin:var(--space-5) 0 0;font-size:var(--text-sm);color:var(--color-muted)}.error-page__hint-link{color:inherit}
