html.viewport-locked .header{padding-top:calc(1.25rem + env(safe-area-inset-top))}html.viewport-locked body{position:relative}html.viewport-locked body:before{position:absolute;inset:0}@media(max-width:767px){html.viewport-locked body{background-color:var(--grid-cell);background-image:linear-gradient(to right,var(--grid-line) 1px,transparent 1px),linear-gradient(to bottom,var(--grid-line) 1px,transparent 1px);background-size:var(--grid-size) var(--grid-size),var(--grid-size) var(--grid-size);background-position:0 0}html.viewport-locked body:before,html.viewport-locked body:after{display:none}}.experiments-section{position:absolute;inset:0;z-index:5;pointer-events:none;opacity:0;transition:opacity .6s var(--ease-decelerate)}body[data-mode=experiments] .experiments-section{opacity:1;pointer-events:auto}html.dir-pending [data-section=directory]>*{visibility:hidden}body[data-mode=experiments] [data-section=directory]{opacity:0;visibility:hidden;pointer-events:none;transition:opacity .4s var(--ease-decelerate)}[data-section=directory]{transition:opacity .4s var(--ease-decelerate)}.experiments-canvas{width:100%;height:100%}body[data-mode=experiments] .experiments-section{touch-action:none;overscroll-behavior:none}@media(max-width:767px){html:has(body[data-mode=experiments]),body[data-mode=experiments]{overflow:hidden;height:100svh;overscroll-behavior:none}}@media(min-width:768px)and (max-height:450px){body:not([data-mode=experiments]){height:auto;overflow:visible}body:not([data-mode=experiments])>div.flex-col{height:auto;min-height:100svh}}.header{display:flex;flex-wrap:wrap;align-items:start;gap:0;position:relative;z-index:10}.header .nav-logo{order:1;margin-bottom:.5rem}.header .nav-button{order:2;margin-left:auto;margin-bottom:.5rem}.header .nav-col:nth-of-type(1){order:3;width:50%;margin-bottom:0}.header .nav-col:nth-of-type(2){order:4;width:50%;margin-bottom:0}@media(min-width:768px){.header{flex-wrap:nowrap;justify-content:space-between}.header .nav-logo{order:1;margin-bottom:0;margin-top:calc(1px + max(.625rem,9px))}.header .nav-col:nth-of-type(1){order:2;width:auto;margin-bottom:0;margin-top:calc(1px + max(.625rem,9px))}.header .nav-col:nth-of-type(2){order:3;width:auto;margin-bottom:0;margin-top:calc(1px + max(.625rem,9px))}.header .nav-button{order:4;margin-left:0;margin-bottom:0}}.nav-logo{display:inline-flex;align-items:center;font-family:var(--font-mono);font-size:max(12px,1rem);text-transform:uppercase;letter-spacing:.08em;line-height:1;color:#fff;text-decoration:none;white-space:nowrap}.nav-button{font-family:var(--font-tagline);font-size:max(var(--nav-min),.9rem);font-weight:500;text-transform:uppercase;letter-spacing:.08em;line-height:1;color:#fff;padding:max(.625rem,9px) 1.35rem;border:1px solid #ffffff;border-radius:999px;background:transparent;cursor:pointer;white-space:nowrap;overflow:hidden;transition:color .2s var(--ease-organic),background-color .2s var(--ease-organic),padding .32s var(--ease-organic),transform .12s var(--ease-organic)}.nav-button:active{transform:scale(.97)}.nav-button-arrow{display:inline-block;margin-right:0}.nav-button-arrow-glyph{display:inline-block;width:1ch;text-align:center}@media(hover:hover)and (pointer:fine){.nav-button:hover{background-color:#fff;color:#000}.nav-logo,.nav-link{font-size:max(16px,1rem)}}body.sheet-open .nav-button{background-color:#fff;color:#000}@media(prefers-reduced-motion:reduce){.nav-button:active{transform:none}}.nav-col{display:flex;flex-direction:column;gap:.25rem;align-items:flex-start}.bl-tagline{font-family:var(--font-tagline);font-size:2.25rem;font-weight:500;line-height:1.1;letter-spacing:-.022em;color:var(--color-text-primary)}.bl-arrow{display:inline-block;width:6rem;font-weight:500;color:var(--color-text-primary)}.bl-stats{font-family:var(--font-stats);font-size:.875rem;font-weight:500;text-transform:uppercase;letter-spacing:.02em;line-height:1.6;color:var(--color-text-primary);margin-top:.25rem}.bl-stats-label{color:var(--color-text-primary)}.bl-stats-body{color:var(--color-text-muted)}.bl-resume{font-family:var(--font-mono);font-size:.875rem;text-transform:uppercase;letter-spacing:.06em}.bl-resume-link{color:#fff;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;transition:color .2s var(--ease-organic)}.bl-resume-link .char{text-decoration:inherit}.bl-resume-link:hover{color:#fff}.project-list-header{display:block;font-family:var(--font-mono);font-size:max(.875rem,12px);text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);padding-bottom:.75rem;border-bottom:1px solid var(--color-border-default)}.project-list-items{list-style:none;margin:0;padding:0}.project-list-row{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:max(.875rem,12px) max(.75rem,10px);border-bottom:1px solid var(--color-border-default);font-family:var(--font-tagline);font-size:max(1.25rem,19px);font-weight:500;color:var(--color-text-primary);text-decoration:none;transition:background-color .15s var(--ease-organic),color .15s var(--ease-organic)}.project-list-row:hover{background-color:var(--color-text-primary);color:var(--color-text-inverse)}.char{display:inline-block}.char-space{white-space:pre}.project-list-label{display:inline-block;flex:1 1 auto;min-width:0;line-height:1.25}.project-list-arrow{font-size:max(.875rem,12px);flex-shrink:0;color:var(--color-text-muted);word-spacing:.25em;transition:color .15s var(--ease-organic),transform .2s var(--ease-organic)}.project-list-row:hover .project-list-arrow{color:var(--color-text-inverse);transform:translate(.125rem,-.125rem)}.project-list-row[href="#"]{cursor:default}.project-list-row[href="#"]:hover{background-color:transparent;color:var(--color-text-primary)}.project-list-row[href="#"] .project-list-arrow{font-size:0}.project-list-row[href="#"]:hover .project-list-arrow{color:var(--color-text-muted);transform:none}.project-list-row[href="#"] .project-list-arrow:after{content:"( soon )";font-size:max(.875rem,12px);letter-spacing:.02em}.project-list-item{position:relative}.project-list-thumb{position:absolute;bottom:45%;left:57%;transform:translate(-50%);width:45%;aspect-ratio:16 / 9;object-fit:cover;pointer-events:none;opacity:0;transition:opacity .2s var(--ease-organic);z-index:10}.project-list-item:hover .project-list-thumb{opacity:1}@media(max-width:767px){html{overscroll-behavior:none}body{min-height:100svh;overscroll-behavior-y:none}.project-list-thumb{left:70%}.nav-button{padding:.5rem .65rem}.nav-button-arrow{margin-right:0}.header{display:grid;grid-template-columns:1fr auto;column-gap:1rem;row-gap:1.25rem;align-items:start;position:absolute;top:0;left:0;right:0;z-index:10}.header .nav-logo,.header .nav-link{font-size:.875rem}.header .nav-logo{grid-area:1 / 1;margin-bottom:0}.header .nav-button{position:absolute;top:.75rem;right:1.5rem;margin:0}.header .nav-col:nth-of-type(1){grid-area:2 / 1;width:auto;margin:0}.header .nav-col:nth-of-type(2){grid-area:3 / 1;width:auto;margin:0}.project-list-row{align-items:flex-start}.breathing-room{display:none}.content-section[data-section=directory]{display:flex;flex-direction:column;align-items:stretch;gap:0;flex:0 0 auto;margin-top:40svh;min-height:94svh}.project-list{margin-top:2.5rem;padding-bottom:calc(env(safe-area-inset-bottom) + 1.5rem)}.content-section[data-section=directory] .bl-stack{max-width:min(100%,32rem)}.bl-tagline{font-size:1.75rem}}.nav-label{font-family:var(--font-mono);font-size:max(var(--nav-min),.9rem);text-transform:uppercase;line-height:1.1;color:#fff}.nav-link{display:inline-block;font-family:var(--font-mono);font-size:max(12px,1rem);text-transform:uppercase;line-height:1;color:#fff;background:transparent;border:none;padding:0;cursor:pointer;text-decoration:none;transition:color .45s var(--ease-organic);transition-delay:.16s}@media(hover:hover)and (pointer:fine){header:has(.nav-link:hover) .nav-link{color:var(--color-text-muted);transition-delay:0ms}header:has(.nav-link:hover) .nav-link:hover{color:var(--color-text-primary);transition-delay:0ms}}.nav-link.mode-link{color:var(--color-text-muted)}body[data-nav-mode=case-studies] [data-mode-target=case-studies],body[data-nav-mode=research] [data-mode-target=research],body[data-nav-mode=experiments] [data-mode-target=experiments]{color:var(--color-text-primary)}@media(min-width:768px)and (pointer:coarse){.header .nav-logo,.header .nav-link{font-size:max(1rem,13px)}.bl-stats,.bl-resume,.project-list-header{font-size:max(.875rem,12px)}}.sheet-root[data-astro-cid-lwx7e7gz]{position:fixed;inset:0;z-index:50;pointer-events:none;background:#0000;visibility:hidden;transition:background .4s var(--ease-organic),visibility 0s linear .6s}.sheet-root[data-astro-cid-lwx7e7gz].is-open{pointer-events:auto;background:#000000b8;visibility:visible;transition:background .4s var(--ease-organic)}.sheet-scroller[data-astro-cid-lwx7e7gz]{position:absolute;inset:0;overflow-y:auto;overflow-x:hidden;scrollbar-width:none;overscroll-behavior:none}.sheet-scroller[data-astro-cid-lwx7e7gz]::-webkit-scrollbar{display:none}.sheet-positioner[data-astro-cid-lwx7e7gz]{min-height:100%;box-sizing:border-box;padding:35svh 10rem 3rem 2.5rem;display:flex;justify-content:flex-end;align-items:flex-start;overflow:clip}@media(max-width:767px){.sheet-positioner[data-astro-cid-lwx7e7gz]{padding:35svh 1rem 2rem 1rem;justify-content:stretch}}.sheet[data-astro-cid-lwx7e7gz]{width:48.75rem;max-width:100%;background-color:#fff;color:var(--color-text-inverse);box-shadow:0 -1.25rem 5rem #0000008c,0 0 0 1px #00000014;transform:translateY(calc(100% + 30svh));transition:transform .55s var(--ease-organic)}.sheet-root[data-astro-cid-lwx7e7gz].is-open .sheet[data-astro-cid-lwx7e7gz]{transform:translateY(0);will-change:transform}.sheet[data-astro-cid-lwx7e7gz].grain:after{opacity:.06;mix-blend-mode:multiply}@media(prefers-reduced-motion:reduce){.sheet-root[data-astro-cid-lwx7e7gz],.sheet[data-astro-cid-lwx7e7gz]{transition:none}}.sheet-paper-inner[data-astro-cid-lwx7e7gz]{min-width:0;padding:2.5rem 3rem 3.5rem}.sheet-header[data-astro-cid-lwx7e7gz]{display:flex;justify-content:space-between;align-items:center}.sheet-logo[data-astro-cid-lwx7e7gz]{font-size:var(--text-base);font-weight:600;letter-spacing:-.01em}.sheet-close[data-astro-cid-lwx7e7gz]{background:none;border:none;cursor:pointer;font-family:var(--font-sans);font-size:var(--text-base);color:var(--color-text-inverse);padding:.75rem 1rem;min-height:2.75rem;min-width:2.75rem;display:inline-flex;align-items:center;margin:-.5rem -.5rem -.5rem 0}.sheet-close[data-astro-cid-lwx7e7gz]:hover{color:var(--color-text-inverse-muted)}.sheet-divider[data-astro-cid-lwx7e7gz]{border:none;border-top:1px solid rgba(0,0,0,.12);margin:1.25rem 0 3rem}.sheet-grid[data-astro-cid-lwx7e7gz]{display:grid;grid-template-columns:11.25rem 1fr;gap:3rem}@media(max-width:767px){.sheet-grid[data-astro-cid-lwx7e7gz]{grid-template-columns:1fr;gap:2rem}}.sheet-quote-col[data-astro-cid-lwx7e7gz]{display:flex;flex-direction:column;gap:1rem}.sheet-monogram[data-astro-cid-lwx7e7gz]{width:2.5rem;height:2.5rem;border:1px solid var(--color-text-inverse);border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.08em}.sheet-quote-col[data-astro-cid-lwx7e7gz] blockquote[data-astro-cid-lwx7e7gz]{font-size:var(--text-sm);line-height:1.4;margin:0;color:var(--color-text-inverse)}.sheet-quote-col[data-astro-cid-lwx7e7gz] cite[data-astro-cid-lwx7e7gz]{font-size:var(--text-sm);font-style:normal;color:var(--color-text-inverse-muted)}.sheet-form-col[data-astro-cid-lwx7e7gz]{min-width:0}.sheet-title[data-astro-cid-lwx7e7gz]{font-size:var(--text-2xl);line-height:1.05;letter-spacing:-.02em;font-weight:500;color:var(--color-text-inverse);margin:0 0 2.5rem}.sheet-form[data-astro-cid-lwx7e7gz]{display:flex;flex-direction:column;gap:1.75rem}.sheet-hp[data-astro-cid-lwx7e7gz]{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.sheet-field[data-astro-cid-lwx7e7gz]{display:flex;flex-direction:column;gap:.375rem}.sheet-field[data-astro-cid-lwx7e7gz] label[data-astro-cid-lwx7e7gz]{font-size:var(--text-sm);color:var(--color-text-inverse)}.sheet-field-num[data-astro-cid-lwx7e7gz]{font-weight:600;margin-right:.5rem;color:var(--color-text-inverse)}.sheet-req[data-astro-cid-lwx7e7gz]{color:#c0392b}.sheet-opt[data-astro-cid-lwx7e7gz]{color:var(--color-text-inverse-muted)}.sheet-field[data-astro-cid-lwx7e7gz] input[data-astro-cid-lwx7e7gz],.sheet-field[data-astro-cid-lwx7e7gz] textarea[data-astro-cid-lwx7e7gz]{background:transparent;border:none;border-bottom:1px solid rgba(0,0,0,.15);font-family:var(--font-sans);font-size:var(--text-base);color:var(--color-text-inverse);padding:.5rem 0;transition:border-color .2s var(--ease-organic)}.sheet-field[data-astro-cid-lwx7e7gz] input[data-astro-cid-lwx7e7gz]::placeholder,.sheet-field[data-astro-cid-lwx7e7gz] textarea[data-astro-cid-lwx7e7gz]::placeholder{color:var(--color-text-inverse-muted)}.sheet-field[data-astro-cid-lwx7e7gz] input[data-astro-cid-lwx7e7gz]:focus,.sheet-field[data-astro-cid-lwx7e7gz] textarea[data-astro-cid-lwx7e7gz]:focus{outline:none;border-bottom-color:var(--color-text-inverse)}.sheet-field[data-astro-cid-lwx7e7gz] textarea[data-astro-cid-lwx7e7gz]{resize:vertical}.sheet-submit[data-astro-cid-lwx7e7gz]{align-self:flex-start;background:none;border:none;cursor:pointer;font-family:var(--font-sans);font-size:var(--text-md);color:var(--color-text-inverse);padding:.5rem 0;margin-top:.5rem;display:inline-flex;align-items:center;gap:3.75rem;border-bottom:1px solid var(--color-text-inverse);transition:gap .3s var(--ease-organic)}.sheet-submit[data-astro-cid-lwx7e7gz]:hover{gap:5rem}.sheet-status[data-astro-cid-lwx7e7gz]{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-inverse-muted);margin:0}.sheet-footer-note[data-astro-cid-lwx7e7gz]{margin-top:4.5rem;text-align:center}.sheet-warning-label[data-astro-cid-lwx7e7gz]{font-family:var(--font-mono);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;color:#c0392b;margin:0 0 .5rem}.sheet-warning-copy[data-astro-cid-lwx7e7gz]{font-size:var(--text-sm);color:var(--color-text-inverse);margin:0 auto;max-width:21.25rem;line-height:1.45}.sheet-graphic[data-astro-cid-lwx7e7gz]{display:flex;justify-content:center;align-items:center;gap:1.5rem;margin-top:1.5rem;padding-top:1.5rem}.sheet-graphic-label[data-astro-cid-lwx7e7gz]{font-family:var(--font-mono);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;line-height:1.4;color:var(--color-text-inverse)}.sheet-graphic-globe[data-astro-cid-lwx7e7gz]{font-size:2.5rem;line-height:1;color:var(--color-text-inverse)}
