:root{--bg: #000;--text: rgba(255, 255, 255, .85);--text-soft: rgba(255, 255, 255, .75);--text-muted: rgba(255, 255, 255, .42);--border: rgba(255, 255, 255, .18);--site-max-width: 150rem;--site-width: min(100vw, var(--site-max-width));--site-left: max(0px, calc((100vw - var(--site-max-width)) / 2));--nav-width: clamp(27rem, 20vw, 31rem);--content-width: calc(var(--site-width) - var(--nav-width));--pad: 2rem;--footer-height: 4.7rem;--radius: 1rem;--font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--mono: "SF Mono", "IBM Plex Mono", "Roboto Mono", monospace;color-scheme:dark}*{box-sizing:border-box}html{min-height:100%;background:var(--bg);color:var(--text);font-family:var(--font);font-size:10px;letter-spacing:0;color-scheme:dark}body{position:relative;display:flex;flex-direction:column;min-height:100vh;margin:0;background:var(--bg);color:var(--text);font-size:2.05rem;font-weight:440;line-height:1.2;font-variation-settings:"opsz" 24;overflow-x:hidden;opacity:1;transition:opacity .9s cubic-bezier(.16,1,.3,1)}html.is-loading body{opacity:0}html.is-ready body{opacity:1}body:before{content:"";position:fixed;inset:-100vh 0;z-index:-1;background:#000;pointer-events:none}body:has(.canopy-stage){overflow:hidden}a{color:inherit;text-decoration:none}a:hover,a:focus-visible{color:#fff}:where(a,button,input,textarea,select,[tabindex]):focus,:where(a,button,input,textarea,select,[tabindex]):focus-visible,:where(.project-image-link,.photo-link,.project-card-link,.projects-toolbar button):focus,:where(.project-image-link,.photo-link,.project-card-link,.projects-toolbar button):focus-visible{outline:0!important;box-shadow:none!important}a:active,button:active{opacity:.7}button{border:0;padding:0;color:inherit;font:inherit;background:transparent;cursor:pointer}.project-card-link,.projects-toolbar button,.lightbox-close,.lightbox-nav{user-select:none;-webkit-tap-highlight-color:transparent}.project-image-link img,.photo-link img{user-select:none;-webkit-user-drag:none}.canopy-artwork,.canopy-artwork *,.desktop-nav,.desktop-nav *,.mobile-header,.mobile-header *,.mobile-menu,.mobile-menu *{user-select:none;-webkit-user-select:none;-webkit-user-drag:none}button:disabled{cursor:not-allowed;opacity:.42}img{display:block;max-width:100%}p,h1,h2,ol{margin:0}p+p{margin-top:1.2em}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.icon{width:1em;height:1em;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:butt;stroke-linejoin:miter;vertical-align:-.12em;flex:0 0 auto}.icon-broadcast circle,.icon-grid path{fill:currentColor;stroke:none}.desktop-nav{position:fixed;inset:0 auto auto var(--site-left);z-index:30;width:var(--nav-width);min-width:17.5rem;padding:var(--pad);pointer-events:none}.desktop-nav a,.desktop-nav button{pointer-events:auto}.brand-field{position:relative;width:100%;height:6.7rem;margin-bottom:1.9rem;overflow:hidden}.brand-bouncer,.mobile-brand{display:block;color:var(--text);font-size:4.5rem;font-weight:740;line-height:1;width:max-content;min-width:100%;user-select:none;touch-action:none;-webkit-user-drag:none}.brand-bouncer{position:relative;height:100%}.brand-bouncer span{position:absolute;display:inline-flex;align-items:center;gap:.08em;white-space:nowrap;padding-right:1rem;opacity:0;transition:none;will-change:transform}.brand-bouncer.is-positioned span,.mobile-brand.is-positioned span{transition:opacity 1.6s ease}.brand-bouncer.is-ready span,.mobile-brand.is-ready span{opacity:1}.brand-bouncer.is-clicked span,.mobile-brand.is-clicked span{opacity:.78}.logo-fx-canvas{position:fixed;inset:0;z-index:130;width:100vw;height:100vh;pointer-events:none}.work-list{margin:0 0 1.55rem;padding:0;line-height:1.28}.work-year-group+.work-year-group{margin-top:0}.work-year-group{display:grid;grid-template-columns:4.8rem minmax(0,1fr);column-gap:.25rem;align-items:start}.work-year{display:flex;align-items:center;margin:0;color:var(--text-muted);font-family:var(--mono);font-size:1.3rem;font-weight:400;min-height:2.72rem;line-height:1.28}.work-list ul{margin:0;padding:0;list-style:none}.work-list li{padding:0}.work-list li+li{margin-top:.08rem}.work-list a{display:flex;align-items:center;width:fit-content;max-width:100%;min-height:2.72rem}.work-list a.active,.nav-label-link.active{color:#fff;font-weight:620}.primary-projects-link{margin-bottom:1.2rem}.secondary-links{display:grid;gap:.08rem;margin-top:1.45rem;line-height:1.28}.nav-label-link,.contact-links a{display:inline-flex;align-items:center;width:fit-content}.nav-link-row{display:grid;grid-template-columns:1.18em var(--nav-label-column, 9rem);align-items:center;column-gap:.28em;width:calc(1.18em + .28em + var(--nav-label-column, 9rem));min-height:2.72rem;contain:layout}.nav-link-row>.icon{grid-column:1;grid-row:1;align-self:center;justify-self:start;width:1em;height:1em}.nav-label-link{display:inline-grid;grid-column:2;grid-row:1;grid-template-columns:max-content;width:100%;white-space:nowrap}.nav-label-link>.nav-label,.nav-label-link:after{grid-column:1;grid-row:1;white-space:nowrap}.nav-label-link:after{content:attr(data-nav-label);visibility:hidden;height:0;overflow:hidden;font-weight:620;pointer-events:none}.nav-gap{height:1.2rem}.mobile-header,.mobile-menu{display:none}.nav-preview{--string-width: 14rem;--string-angle: 0deg;position:fixed;z-index:28;top:0;left:0;display:block;width:clamp(12rem,14vw,17rem);aspect-ratio:3 / 2;overflow:visible;background:transparent;opacity:0;pointer-events:none;transform:translate3d(calc(var(--nav-width) + 1.6rem),2rem,0);transform-origin:left center;transition:opacity .16s ease,transform .22s cubic-bezier(.2,.8,.2,1)}.nav-preview.is-visible{opacity:1}.nav-preview-frame{position:relative;z-index:2;display:block;width:100%;height:100%;overflow:hidden;border:1px solid rgba(210,210,210,.78);border-radius:.45rem;background:#000}.nav-preview img{width:100%;height:100%;object-fit:cover;object-position:center center;opacity:0;transition:opacity .12s ease}.nav-preview.is-visible img{opacity:1}.nav-preview.is-loading img,.nav-preview img:not([src]){opacity:0}.nav-preview-line{position:absolute;z-index:1;right:100%;top:50%;width:var(--string-width);height:1px;transform:translateY(-50%) rotate(var(--string-angle));transform-origin:right center;background:#d2d2d28a;pointer-events:none}.main-shell{flex:1 0 auto;width:var(--content-width);margin-left:calc(var(--site-left) + var(--nav-width));padding:var(--pad);padding-bottom:var(--pad);opacity:1;transform:translateZ(0);transition:opacity .72s cubic-bezier(.16,1,.3,1),transform .82s cubic-bezier(.16,1,.3,1)}html.is-page-transitioning .main-shell{opacity:0;transform:translate3d(0,.45rem,0);transition-duration:.38s,.46s;transition-timing-function:cubic-bezier(.55,0,1,.45);pointer-events:none}.site-footer{flex:0 0 auto;position:relative;z-index:20;display:grid;grid-template-columns:1fr 1fr 1fr;align-items:center;margin-left:calc(var(--site-left) + var(--nav-width));width:var(--content-width);min-height:var(--footer-height);padding:.4rem var(--pad) 1.05rem;color:var(--text-muted);font-size:1.1rem;font-weight:400;font-family:var(--mono);line-height:1.2}.site-footer span{text-align:center}.footer-pattern{display:inline-flex;justify-content:center;align-items:center;gap:.22rem;white-space:nowrap;max-width:100%;overflow:hidden}.footer-square-group{display:grid;grid-auto-flow:column;grid-template-rows:repeat(5,.22rem);align-items:center;gap:.1rem;height:1.25rem;opacity:var(--square-opacity, .4)}.footer-square{width:.22rem;height:.22rem;background:currentColor}.canopy-stage{--canopy-stage-height: calc(100svh - var(--footer-height) - (var(--pad) * 2));--canopy-stage-width: calc(var(--content-width) - (var(--pad) * 2));--canopy-aspect-value: clamp(1.08, calc(var(--canopy-stage-width) / var(--canopy-stage-height)), 1.5);display:grid;place-items:center;height:var(--canopy-stage-height);min-height:31rem}.canopy-artwork{--canopy-reveal-duration: 1.6s;--canopy-refresh-cover-duration: .46s;position:relative;isolation:isolate;aspect-ratio:var(--canopy-aspect-value);width:min(100%,calc(var(--canopy-stage-height) * var(--canopy-aspect-value)),120rem);height:auto;max-height:100%;margin:auto;overflow:hidden;color:#fff;background:#000;border:1px solid #000;border-radius:var(--radius);box-shadow:0 1.8rem 5rem #00000061;contain:layout paint style}.canopy-artwork:before,.canopy-artwork:after{content:"";position:absolute;inset:0;pointer-events:none}.canopy-artwork:before{z-index:3;border:1px solid rgba(255,255,255,.84);border-radius:inherit;opacity:0;transition:opacity var(--canopy-reveal-duration) ease}.canopy-artwork:after{z-index:2;background:#000;opacity:1;transition:opacity var(--canopy-reveal-duration) ease}.canopy-artwork.is-canopy-refreshing:before,.canopy-artwork.is-canopy-refreshing:after{transition-duration:var(--canopy-refresh-cover-duration);transition-timing-function:ease-in}.canopy-artwork.is-canopy-ready:before,.canopy-artwork[data-reveal=none]:before{opacity:1}.canopy-artwork.is-canopy-ready:after,.canopy-artwork[data-reveal=none]:after{opacity:0}.canopy-artwork[data-reveal=none]:after{display:none}.canopy-svg{display:block;width:100%;height:100%;color:#fff;background:#000;border:1px solid #000;border-radius:calc(var(--radius) - 1px)}.canopy-layer{color:#fff}.canopy-atmosphere{color:#747474}.canopy-layer-haze{color:#383838}.canopy-layer-mist{color:#4f4f4f}.canopy-layer-far{color:#636363}.canopy-layer-back{color:#797979}.canopy-layer-middle{color:#8f8f8f}.canopy-layer-near{color:#bdbdbd}.canopy-layer-foreground{color:#e8e8e8}.canopy-cluster{color:inherit}.two-column{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:3rem}.project-intro{margin-bottom:0}.project-page h1,.about-page h1,.text-page h1{color:var(--text-soft);font-size:2.25rem;font-weight:650;line-height:1.1}.description{margin-top:.1rem;color:var(--text-soft);font-size:2.05rem;font-weight:270}.project-intro .description{font-size:1.82rem;line-height:1.12}.caption{color:var(--text-muted);font-size:1.1rem;font-weight:400;font-family:var(--mono);line-height:1.2}.meta-list{padding-top:.1rem}.meta-list p+p{margin-top:0}.project-body{align-items:stretch;margin-top:0;border-top:0}.project-body.project-rule-grid{border-top-width:0!important}.project-image{width:100%;height:auto;border-radius:var(--radius)}.project-rule-grid{gap:0;border:1px solid var(--border)}.project-rule-cell{min-width:0;padding:1.25rem}.project-rule-cell+.project-rule-cell{border-left:1px solid var(--border)}.meta-list.project-rule-cell,.about-note.project-rule-cell{display:grid;align-content:center}.project-frame{display:flex;align-items:flex-start;min-height:0}.project-frame>a,.project-frame>video,.project-frame>iframe{width:100%}.project-embed{display:block;width:100%;aspect-ratio:16 / 9;border:0;border-radius:var(--radius);background:#111}.project-image-link,.photo-link{cursor:zoom-in;user-select:none;-webkit-user-drag:none;-webkit-tap-highlight-color:transparent}.project-copy,.text-page,.photos-intro,.about-copy{max-width:72rem}.body-copy,.project-copy,.music-intro,.track-list li>p,.track-list li>ul,.track-list li>ol,.music-note,.photos-intro{max-width:none;color:var(--text-soft);font-size:1.72rem;font-weight:330;line-height:1.28}.project-tags,.project-card-tags{display:flex;flex-wrap:wrap;gap:.45rem .75rem}.project-tags{margin-top:0;padding:1.25rem;border:1px solid var(--border);border-top:0}.project-tags a,.project-card-tags a{color:var(--text-muted);font-family:var(--mono);font-size:1.1rem;text-decoration:underline;text-decoration-thickness:.055em;text-underline-offset:.18em}.project-tags a:hover,.project-tags a:focus-visible,.project-card-tags a:hover,.project-card-tags a:focus-visible{color:#fff}.project-pager{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:1.35rem;color:var(--text-muted);font-family:var(--mono);font-size:1.1rem;line-height:1.2}.project-pager a{width:fit-content}.project-pager a:last-child{justify-self:end}.project-pager a:hover,.project-pager a:focus-visible{color:#fff}.inline-link{display:inline-flex;align-items:center;gap:.18em;text-decoration:underline;text-decoration-thickness:.055em;text-underline-offset:.18em}.inline-link .icon{width:.85em;height:.85em}.narrow-page{max-width:62rem}.projects-index,.music-page,.photos-page{width:100%}.projects-index{--project-card-min: 29rem;--project-card-image-ratio: 3 / 2;--project-card-media-pad: 10px;--project-card-title-size: 2.05rem;--project-card-text-size: 1.62rem;--project-desc-lines: 2;--project-summary-lines: 2;--project-tag-lines: 2;--project-list-media: 24rem}.projects-toolbar{z-index:10;display:grid;grid-template-columns:auto auto minmax(0,1fr) max-content;gap:0;margin-bottom:1rem;background:var(--bg);border:1px solid var(--border);font-size:1.48rem;line-height:1}.project-search input,.projects-clear-filters,.projects-filter-toggle,.projects-view-controls button{color:var(--text);font:inherit}.project-search{display:block;grid-column:3;min-width:0}.project-search input{width:100%;height:4.6rem;border:0;padding:0 1.45rem;background:transparent;outline:0}.projects-clear-filters,.projects-filter-toggle,.projects-view-controls button{min-width:4.6rem;border-left:1px solid var(--border);padding:0 1rem}.projects-clear-filters{grid-column:1;border-left:0}.projects-clear-filters.is-active{color:#000;background:#fff;border-color:#fff}.projects-clear-filters.is-active:hover,.projects-clear-filters.is-active:focus-visible{color:#000;background:#ffffffdb}.projects-filter-toggle{grid-column:2;display:inline-grid;place-items:center;width:4.6rem;padding:0;border-left:1px solid var(--border);border-right:1px solid var(--border)}.projects-filter-toggle .icon,.projects-view-controls button .icon{width:1.85rem;height:1.85rem}.projects-clear-filters[hidden]{display:none}.projects-index:not([data-projects-ready]) .projects-clear-filters{display:none}.projects-view-controls{grid-column:4;display:flex;justify-self:end}.projects-view-controls button{display:inline-grid;place-items:center;width:4.6rem;border-left:0;padding:0}.projects-view-controls button+button{border-left:1px solid var(--border)}.projects-view-controls button:first-child{border-left:1px solid var(--border)}.projects-view-controls button[data-size-step]{font-size:2.4rem;font-weight:240}.projects-view-controls button[aria-pressed=true]{color:#fff;font-weight:650}.projects-filter-panel{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin-top:-1px;margin-bottom:1rem;border:1px solid var(--border)}.projects-filter-panel[hidden]{display:none}.projects-filter-panel fieldset{display:grid;grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));gap:.52rem 1.05rem;margin:0;padding:1rem 1.1rem 1.15rem;border:0;border-left:1px solid var(--border)}.projects-filter-panel fieldset:nth-child(odd){border-left:0}.projects-filter-panel fieldset:nth-child(n+3){border-top:1px solid var(--border)}.projects-filter-panel legend{grid-column:1 / -1;width:fit-content;margin-bottom:.62rem;padding:.22rem .45rem;border:1px solid var(--border);color:var(--text-muted);font-family:var(--mono);font-size:1.18rem;line-height:1}.projects-filter-panel label{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);gap:.5rem;align-items:start;color:var(--text-muted);font-size:1.34rem;line-height:1.24;cursor:pointer}.projects-filter-panel label>span:last-child{min-width:0;overflow-wrap:anywhere}.projects-filter-panel label:hover{color:#fff}.projects-filter-panel input{position:absolute;opacity:0;pointer-events:none}.filter-box{position:relative;display:inline-grid;place-items:center;width:1.05rem;height:1.05rem;border:1px solid var(--text-muted);color:var(--text);margin-top:.16em}.projects-filter-panel input:checked+.filter-box:before{content:"X";font-family:var(--mono);font-size:.86rem;line-height:1}.projects-filter-panel input:focus-visible+.filter-box{outline:0}.projects-count{margin-bottom:1rem}.project-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,var(--project-card-min, 25rem)),1fr));gap:1rem;justify-content:stretch;align-items:stretch}.projects-index[data-size=s]{--project-card-min: 22rem;--project-card-image-ratio: 3 / 2;--project-card-media-pad: 8px;--project-card-title-size: 1.7rem;--project-card-text-size: 1.38rem;--project-desc-lines: 2;--project-summary-lines: 2;--project-tag-lines: 2;--project-list-media: 16rem}.projects-index[data-size=m]{--project-card-min: 29rem;--project-card-image-ratio: 3 / 2;--project-card-media-pad: 10px;--project-card-title-size: 2.05rem;--project-card-text-size: 1.62rem;--project-desc-lines: 2;--project-summary-lines: 2;--project-tag-lines: 2;--project-list-media: 24rem}.projects-index[data-size=l]{--project-card-min: 38rem;--project-card-image-ratio: 3 / 2;--project-card-media-pad: 12px;--project-card-title-size: 2.35rem;--project-card-text-size: 1.82rem;--project-desc-lines: 2;--project-summary-lines: 3;--project-tag-lines: 2;--project-list-media: 38rem}html[data-project-index-size=s] .projects-index{--project-card-min: 22rem;--project-card-image-ratio: 3 / 2;--project-card-media-pad: 8px;--project-card-title-size: 1.7rem;--project-card-text-size: 1.38rem;--project-desc-lines: 2;--project-summary-lines: 2;--project-tag-lines: 2;--project-list-media: 16rem}html[data-project-index-size=m] .projects-index{--project-card-min: 29rem;--project-card-image-ratio: 3 / 2;--project-card-media-pad: 10px;--project-card-title-size: 2.05rem;--project-card-text-size: 1.62rem;--project-desc-lines: 2;--project-summary-lines: 2;--project-tag-lines: 2;--project-list-media: 24rem}html[data-project-index-size=l] .projects-index{--project-card-min: 38rem;--project-card-image-ratio: 3 / 2;--project-card-media-pad: 12px;--project-card-title-size: 2.35rem;--project-card-text-size: 1.82rem;--project-desc-lines: 2;--project-summary-lines: 3;--project-tag-lines: 2;--project-list-media: 38rem}.projects-index[data-view=list] .project-card-grid,html[data-project-index-view=list] .projects-index .project-card-grid{grid-template-columns:1fr}.projects-index[data-view=list][data-size=s],html[data-project-index-view=list][data-project-index-size=s] .projects-index{--project-desc-lines: 1;--project-summary-lines: 1;--project-tag-lines: 1;--project-list-media: 16rem;--project-list-summary-display: none;--project-list-main-gap: .32rem;--project-list-main-padding: .72rem .9rem .62rem;--project-list-tag-padding: .42rem .9rem .5rem}.projects-index[data-view=list][data-size=m],html[data-project-index-view=list][data-project-index-size=m] .projects-index{--project-desc-lines: 2;--project-summary-lines: 2;--project-tag-lines: 2;--project-list-media: 24rem;--project-list-main-gap: .5rem;--project-list-main-padding: 1rem 1.15rem .85rem;--project-list-tag-padding: .66rem 1.15rem .76rem}.projects-index[data-view=list][data-size=l],html[data-project-index-view=list][data-project-index-size=l] .projects-index{--project-desc-lines: 2;--project-summary-lines: 3;--project-tag-lines: 2;--project-list-media: 36rem;--project-list-main-gap: .58rem;--project-list-main-padding: 1.15rem 1.25rem 1rem;--project-list-tag-padding: .78rem 1.25rem .9rem}.project-card{display:flex;flex-direction:column;height:100%;border:1px solid var(--border);transition:border-color .16s ease,outline-color .16s ease,transform .16s ease}.project-card[hidden]{display:none!important}.project-card:hover{border-color:#ffffffbf;outline:0;transform:scale(1.006)}.project-card-link{display:grid;grid-template-rows:auto 1fr;flex:1 1 auto;color:inherit}.projects-index[data-view=list] .project-card,html[data-project-index-view=list] .projects-index .project-card{display:grid;grid-template-columns:var(--project-list-media) minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto;height:calc((var(--project-list-media) * 2 / 3) + 2px);align-items:stretch;overflow:hidden}.projects-index[data-view=list] .project-card-link,html[data-project-index-view=list] .projects-index .project-card-link{display:contents}.project-card-media{position:relative;aspect-ratio:var(--project-card-image-ratio, 4 / 3);overflow:hidden;border-bottom:0;line-height:0}.project-card-media:after{content:"";position:absolute;inset:auto 0 0;height:1px;background:var(--border);pointer-events:none}.projects-index[data-view=list] .project-card-media,html[data-project-index-view=list] .projects-index .project-card-media{grid-column:1;grid-row:1 / 3;align-self:stretch;width:var(--project-list-media);height:100%;aspect-ratio:auto;border-bottom:0;border-right:0}.projects-index[data-view=list] .project-card-media:after,html[data-project-index-view=list] .projects-index .project-card-media:after{inset:0 0 0 auto;width:1px;height:auto}.project-card-thumb-frame{position:absolute;inset:var(--project-card-media-pad, 10px);min-width:0;min-height:0;overflow:hidden;border-radius:calc(var(--radius) * .65);background:transparent}.projects-index[data-view=grid] .project-card-thumb-frame,html[data-project-index-view=grid] .projects-index .project-card-thumb-frame{bottom:calc(var(--project-card-media-pad, 10px) + 1px)}.project-card-thumb{display:block;min-width:0;min-height:0;max-width:100%;max-height:100%;width:100%;height:100%;border-radius:inherit;object-fit:fill;object-position:center center}.project-card-preview{position:absolute;inset:0;display:block;width:100%;height:100%;opacity:0;object-fit:fill;object-position:center center;transition:opacity .18s ease;pointer-events:none}.project-card:hover .project-card-preview{opacity:1}.project-card-main{display:grid;gap:.45rem;padding:1rem;align-content:start}.projects-index[data-view=list] .project-card-main,html[data-project-index-view=list] .projects-index .project-card-main{grid-column:2;grid-row:1;min-height:0;overflow:hidden;align-content:start;gap:var(--project-list-main-gap, .58rem);padding:var(--project-list-main-padding, 1.15rem 1.2rem 1rem)}.project-card-main h2{color:var(--text-soft);font-size:var(--project-card-title-size, 2.05rem);line-height:1.05;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.project-card-main p{color:var(--text-soft);font-size:var(--project-card-text-size, 1.72rem)}.project-card-main p:not(.project-card-date){line-height:1.16;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:var(--project-desc-lines, 2)}.project-card-subtitle{max-height:calc(var(--project-desc-lines, 2) * 1.16em)}.projects-index[data-view=grid][data-size=s] .project-card-subtitle,html[data-project-index-view=grid][data-project-index-size=s] .projects-index .project-card-subtitle{display:block!important;max-height:none;overflow:visible;-webkit-line-clamp:unset}.project-card-summary{display:none!important;color:var(--text-muted)!important;font-size:calc(var(--project-card-text-size, 1.72rem) * .82)!important;line-height:1.22;max-height:calc(var(--project-summary-lines, 2) * 1.22em)}.projects-index[data-view=list] .project-card-summary,html[data-project-index-view=list] .projects-index .project-card-summary{display:var(--project-list-summary-display, block)!important;-webkit-line-clamp:var(--project-summary-lines, 2)}.project-card-date{color:var(--text-muted)!important;font-family:var(--mono);font-size:1.08rem!important}.project-card-tags{--project-tag-line-height: 1.18rem;padding:.78rem .95rem .9rem;border-top:1px solid var(--border);max-height:calc((var(--project-tag-line-height) * var(--project-tag-lines, 1)) + 1.68rem);overflow:hidden;line-height:var(--project-tag-line-height)}.projects-index[data-view=list] .project-card-tags,html[data-project-index-view=list] .projects-index .project-card-tags{grid-column:2;grid-row:2;display:var(--project-list-tags-display, flex);align-content:start;flex-wrap:wrap;min-width:0;min-height:0;height:auto;max-height:calc((var(--project-tag-line-height) * var(--project-tag-lines, 2)) + 1.68rem);margin:0;padding:var(--project-list-tag-padding, .78rem 1.2rem .9rem);border-top:1px solid var(--border);background:var(--bg)}.projects-index[data-view=list] .project-card-tags a,html[data-project-index-view=list] .projects-index .project-card-tags a{flex:0 0 auto;max-width:18rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.projects-index[data-view=list] .project-card-tags a:nth-child(n+7),html[data-project-index-view=list] .projects-index .project-card-tags a:nth-child(n+7){display:none}.projects-empty{margin-top:2rem;color:var(--text-muted)}.track-list{display:grid;gap:2.25rem;margin:3rem 0 2rem;padding:0;list-style:none}.track-list li{padding:0}.track-heading{display:block;margin-bottom:.9rem;color:var(--text-soft);font-size:1.72rem;font-weight:330;line-height:1.28}.audio-player{display:grid;grid-template-columns:3.8rem minmax(8rem,1fr) auto minmax(7rem,10rem);align-items:center;width:min(100%,42rem);min-height:3.3rem;margin-top:.8rem;color:var(--text);border:1px solid rgba(255,255,255,.25);border-radius:999px;background:#ffffff06;font-family:var(--mono);font-size:1.02rem;overflow:hidden}.audio-player audio{display:none}.audio-player-button{display:grid;place-items:center;height:100%;min-height:3.3rem;color:var(--text);border-right:1px solid rgba(255,255,255,.25);font:inherit}.audio-player-button:hover,.audio-player-button:focus-visible{background:#ffffff1c}.audio-player-progress{display:grid;align-items:center;height:100%;min-width:0;padding:0 1rem}.audio-player-time{min-width:4.4em;padding:0 .9rem;color:var(--text-muted);text-align:right}.audio-player-volume{display:grid;grid-template-columns:auto minmax(4.8rem,1fr);align-items:center;gap:.65rem;height:100%;min-height:3.3rem;padding:0 1rem 0 .85rem;color:var(--text-muted);border-left:1px solid rgba(255,255,255,.2);font-size:.92rem}.audio-player input[type=range]{--audio-progress: 0%;width:100%;min-width:0;height:1.2rem;margin:0;padding:0;appearance:none;-webkit-appearance:none;background:transparent;cursor:pointer}.audio-player input[type=range]::-webkit-slider-runnable-track{height:.22rem;border-radius:999px;background:linear-gradient(90deg,currentColor var(--audio-progress),rgba(255,255,255,.2) var(--audio-progress))}.audio-player input[type=range]::-moz-range-track{height:.22rem;border-radius:999px;background:linear-gradient(90deg,currentColor var(--audio-progress),rgba(255,255,255,.2) var(--audio-progress))}.audio-player input[type=range]::-webkit-slider-thumb{width:.72rem;height:.72rem;margin-top:-.25rem;border:1px solid currentColor;border-radius:50%;background:#000;appearance:none;-webkit-appearance:none}.audio-player input[type=range]::-moz-range-thumb{width:.72rem;height:.72rem;border:1px solid currentColor;border-radius:50%;background:#000}.audio-placeholder{display:grid;grid-template-columns:3.8rem minmax(0,1fr) auto;align-items:center;width:min(100%,32rem);height:3.3rem;color:var(--text);border:1px solid rgba(255,255,255,.25);border-radius:999px;background:linear-gradient(90deg,rgba(255,255,255,.12),rgba(255,255,255,.04) 48%,transparent 48%);font-family:var(--mono);font-size:1.1rem;overflow:hidden}.audio-placeholder-button{display:grid;place-items:center;height:100%;border-right:1px solid rgba(255,255,255,.25)}.audio-placeholder-track{height:100%;background:#ffffff13}.audio-placeholder-time{padding:0 1.2em;color:var(--text-muted)}.music-intro{margin-bottom:2rem;max-width:none}.photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.photo-column{display:grid;align-content:start;gap:1rem}.photo-link{display:block;overflow:hidden;border-radius:var(--radius);background:#ffffff09}.photo-link img{width:100%;height:auto;border-radius:var(--radius);transform:translateY(0)}.photo-link img.photo-reveal-pending{opacity:0;transform:translateY(.55rem)}.photo-link img.is-photo-revealed{opacity:1;transform:translateY(0);transition:opacity .52s ease,transform .68s cubic-bezier(.22,1,.36,1)}.music-note{margin-top:2rem}.about-note p+p{margin-top:0}.about-intro{margin-bottom:0}.about-copy{max-width:none;border-top-width:0}.about-copy>.project-rule-cell{color:var(--text-soft);font-size:1.72rem;font-weight:330;line-height:1.28}.contact-links{display:grid;justify-content:center;gap:.55rem;margin-top:1.4rem}.contact-row{display:inline-flex;flex-wrap:wrap;justify-content:center;gap:.55rem 1.4rem}.lightbox-open{overflow:hidden}.lightbox{position:fixed;inset:0;z-index:120;display:grid;place-items:center;padding:3rem;background:#000000f5;opacity:0;transition:opacity .28s ease;touch-action:pan-y}.lightbox.is-active{opacity:1}.lightbox.is-closing{pointer-events:none}.lightbox:focus{outline:0}.lightbox[hidden]{display:none}.lightbox-frame{position:relative;display:grid;justify-items:center;--lightbox-aspect: 3 / 2;--lightbox-ratio: 1.5;width:min(120rem,calc((100vh - 9rem) * var(--lightbox-ratio)),calc(100vw - 6rem));aspect-ratio:var(--lightbox-aspect);height:auto;max-height:100%;margin:0;overflow:hidden;border-radius:var(--radius);background:#000}.lightbox-frame img{position:absolute;inset:0;width:100%;height:100%;border-radius:inherit;object-fit:contain;transform-origin:center center;transition:opacity .16s ease;will-change:transform,opacity}.lightbox-frame img.is-loading{opacity:0}.lightbox-caption{display:none;color:var(--text-muted);font-family:var(--mono);font-size:1.1rem;line-height:1.2;text-align:center}.lightbox-close,.lightbox-nav{position:absolute;z-index:1;display:grid;place-items:center;width:3.6rem;height:3.6rem;color:var(--text);border-radius:999px;background:#57575759}.lightbox-close[hidden],.lightbox-nav[hidden]{display:none}.lightbox-close{top:2rem;right:2rem}.lightbox-nav{top:50%;transform:translateY(-50%)}.lightbox-prev{left:2rem}.lightbox-prev .icon{transform:scaleX(-1)}.lightbox-next{right:2rem}.lightbox-close .icon,.lightbox-nav .icon{width:1.8rem;height:1.8rem}.suppress-restored-focus:focus,.suppress-restored-focus:focus-visible{outline:0!important}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}@media(max-width:760px){:root{--pad: 1.33rem;--footer-height: 5rem}html{font-size:10.5px}body{overflow-x:hidden;font-size:2rem}body:has(.canopy-stage){overflow:auto}.desktop-nav{display:none}.mobile-header{position:relative;z-index:25;display:block;padding:.55rem var(--pad) var(--pad);background:var(--bg)}.mobile-topline{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1rem;align-items:start}.mobile-brand{position:relative;height:5.8rem;overflow:hidden;font-size:4rem;font-weight:740}.mobile-brand span{position:absolute;display:inline-flex;align-items:center;gap:.08em;white-space:nowrap;opacity:0;transition:none;will-change:transform}.menu-button{display:inline-grid;place-items:center;width:3.4rem;height:3.4rem;color:var(--text)}.menu-button .icon{width:2.7rem;height:2.7rem}.mobile-quick-links{display:flex;flex-wrap:wrap;justify-content:center;gap:.8rem 1.65rem;margin-top:1rem;text-align:center}.mobile-quick-links a{width:auto;justify-content:center}.mobile-quick-links .nav-link-row{--nav-label-column: 8rem}.mobile-menu{position:fixed;inset:0;z-index:80;display:block;overflow:auto;background:#1e1e1e}.mobile-menu[hidden]{display:none}.mobile-menu-inner{min-height:100%;padding:.55rem var(--pad) var(--pad)}.close-button{position:absolute;top:.55rem;right:var(--pad)}.mobile-menu-brand{display:inline-flex;align-items:center;gap:.08em;margin-bottom:2rem;padding-right:4rem;font-size:4rem;font-weight:740;line-height:1}.mobile-menu .primary-projects-link{margin-bottom:1.2rem}.mobile-menu .work-list{margin-top:0}.main-shell{width:100%;margin-left:0;padding-top:0}.site-footer{position:relative;grid-template-columns:1fr;gap:.3rem;margin-left:0;width:100%;min-height:var(--footer-height);margin-top:2rem;padding:1rem var(--pad) var(--pad)}body:has(.canopy-stage) .site-footer{margin-top:0}.canopy-stage{--canopy-stage-height: clamp(34rem, calc(100svh - 17.5rem) , 62rem);--canopy-stage-width: calc(100vw - (var(--pad) * 2));--canopy-stage-padding: 1.2rem;--canopy-aspect-value: clamp(.62, calc(var(--canopy-stage-width) / var(--canopy-stage-height)), 1.22);height:var(--canopy-stage-height);min-height:var(--canopy-stage-height);padding-block:calc(var(--canopy-stage-padding) / 2)}.canopy-artwork{width:100%;height:calc(var(--canopy-stage-height) - var(--canopy-stage-padding));max-width:100%;box-shadow:0 1.2rem 3.2rem #00000052}.two-column{grid-template-columns:1fr;gap:2rem}.project-intro{gap:0;margin-bottom:0}.about-intro,.about-copy,.project-body{gap:0}.project-rule-cell+.project-rule-cell{border-left:0;border-top:1px solid var(--border)}.about-page h1,.text-page h1{font-size:2.2rem}.project-page h1{font-size:1.86rem;line-height:1.08}.project-intro .description{font-size:1.38rem;line-height:1.16}.project-copy,.project-copy p,.project-copy li{font-size:1.42rem;line-height:1.28}.project-tags a,.project-pager,.project-card-tags a{font-size:.98rem}.photo-grid{grid-template-columns:1fr}.audio-player{grid-template-columns:3.5rem minmax(0,1fr) auto;width:100%;border-radius:var(--radius)}.audio-player-volume{grid-column:2 / 4;grid-template-columns:auto minmax(0,1fr);border-top:1px solid rgba(255,255,255,.2);border-left:0}.projects-toolbar{position:static;grid-template-columns:auto auto minmax(7.5rem,1fr) max-content;align-items:stretch;margin-bottom:.65rem;font-size:1.06rem}.projects-view-controls{grid-column:4;display:flex;justify-self:stretch;border-top:0}.projects-clear-filters,.projects-filter-toggle,.projects-view-controls button{min-width:3.55rem;min-height:3.55rem;border-left:0}.project-search input{height:3.55rem;min-height:3.55rem;padding:0 .95rem}.projects-filter-toggle,.projects-view-controls button{width:auto}.projects-filter-toggle .icon,.projects-view-controls button .icon{width:1.55rem;height:1.55rem}.projects-view-controls button[data-size-step]{font-size:1.68rem}.projects-clear-filters{border-right:1px solid var(--border)}.projects-filter-toggle,.projects-view-controls button:first-child,.projects-view-controls button+button{border-left:1px solid var(--border)}.projects-filter-panel{grid-template-columns:1fr}.projects-filter-panel fieldset,.projects-filter-panel fieldset:first-child,.projects-filter-panel fieldset:nth-child(odd){border-left:0;border-top:1px solid var(--border)}.projects-filter-panel fieldset:first-child{border-top:0}.projects-index[data-view=list] .project-card,html[data-project-index-view=list] .projects-index .project-card{grid-template-columns:var(--mobile-list-media, 10rem) minmax(0,1fr)}.projects-index[data-view=list] .project-card-link,html[data-project-index-view=list] .projects-index .project-card-link{display:contents}.projects-index[data-view=list] .project-card-media,html[data-project-index-view=list] .projects-index .project-card-media{grid-row:1 / 3;border-right:0;border-bottom:0}.projects-index[data-view=list] .project-card-main,html[data-project-index-view=list] .projects-index .project-card-main{min-width:0;min-height:0;grid-template-rows:auto auto auto minmax(0,1fr);align-content:stretch;gap:var(--project-list-main-gap, .34rem);padding:var(--project-list-main-padding, .72rem .78rem .66rem)}.projects-index[data-view=list] .project-card-tags,html[data-project-index-view=list] .projects-index .project-card-tags{grid-column:2;grid-row:2;margin:0;padding:var(--project-list-tag-padding, .52rem .78rem .62rem)}.projects-index[data-view=list] .project-card-summary,html[data-project-index-view=list] .projects-index .project-card-summary{display:var(--project-list-summary-display, block)!important;min-height:0;max-height:none;overflow:hidden;-webkit-line-clamp:unset}.projects-index[data-view=grid][data-size=s] .project-card-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.projects-index[data-view=grid][data-size=m] .project-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.projects-index[data-view=grid][data-size=l] .project-card-grid{grid-template-columns:1fr}html[data-project-index-view=grid][data-project-index-size=s] .projects-index .project-card-grid{grid-template-columns:repeat(3,minmax(0,1fr))}html[data-project-index-view=grid][data-project-index-size=m] .projects-index .project-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}html[data-project-index-view=grid][data-project-index-size=l] .projects-index .project-card-grid{grid-template-columns:1fr}.projects-index[data-view=grid] .project-card-main,html[data-project-index-view=grid] .projects-index .project-card-main{gap:.18rem;padding:.42rem}.projects-index[data-view=grid] .project-card-main h2,html[data-project-index-view=grid] .projects-index .project-card-main h2{font-size:var(--project-card-title-size)}.projects-index[data-view=grid] .project-card-main p,html[data-project-index-view=grid] .projects-index .project-card-main p{font-size:var(--project-card-text-size)}.projects-index[data-view=grid] .project-card-date,html[data-project-index-view=grid] .projects-index .project-card-date{font-size:.74rem!important}.projects-index[data-view=grid] .project-card-tags,html[data-project-index-view=grid] .projects-index .project-card-tags{display:none}.projects-index[data-view=grid] .project-card-tags a,html[data-project-index-view=grid] .projects-index .project-card-tags a{font-size:.9rem;line-height:1.05}.projects-index[data-view=grid][data-size=s],html[data-project-index-view=grid][data-project-index-size=s] .projects-index{--project-card-title-size: .9rem;--project-card-text-size: .74rem;--project-desc-lines: 1;--project-tag-lines: 1}.projects-index[data-view=grid][data-size=s] .project-card-subtitle,html[data-project-index-view=grid][data-project-index-size=s] .projects-index .project-card-subtitle{display:-webkit-box!important;max-height:calc(var(--project-desc-lines, 1) * 1.16em);overflow:hidden;-webkit-line-clamp:var(--project-desc-lines, 1)}.projects-index[data-view=grid][data-size=m],html[data-project-index-view=grid][data-project-index-size=m] .projects-index{--project-card-title-size: 1.04rem;--project-card-text-size: .86rem;--project-desc-lines: 1;--project-tag-lines: 1}.projects-index[data-view=grid][data-size=l],html[data-project-index-view=grid][data-project-index-size=l] .projects-index{--project-card-title-size: 1.26rem;--project-card-text-size: 1rem;--project-desc-lines: 2;--project-tag-lines: 2}.projects-index[data-view=list][data-size=s],html[data-project-index-view=list][data-project-index-size=s] .projects-index{--mobile-list-media: clamp(150px, 42vw, 180px);--project-list-media: var(--mobile-list-media);--project-list-summary-display: none;--project-list-tags-display: flex;--project-list-main-gap: .26rem;--project-list-main-padding: .58rem .66rem .46rem;--project-list-tag-padding: .34rem .66rem .42rem;--project-card-title-size: 1.2rem;--project-card-text-size: .98rem;--project-desc-lines: 2;--project-summary-lines: 1;--project-tag-lines: 1}.projects-index[data-view=list][data-size=m],html[data-project-index-view=list][data-project-index-size=m] .projects-index{--mobile-list-media: clamp(170px, 48vw, 210px);--project-list-media: var(--mobile-list-media);--project-list-summary-display: block;--project-list-tags-display: flex;--project-list-main-gap: .28rem;--project-list-main-padding: .66rem .76rem .54rem;--project-list-tag-padding: .42rem .76rem .5rem;--project-card-title-size: 1.3rem;--project-card-text-size: 1.02rem;--project-desc-lines: 2;--project-tag-lines: 1}.projects-index[data-view=list][data-size=l],html[data-project-index-view=list][data-project-index-size=l] .projects-index{--mobile-list-media: clamp(190px, 54vw, 240px);--project-list-media: var(--mobile-list-media);--project-list-summary-display: block;--project-list-tags-display: flex;--project-list-main-gap: .32rem;--project-list-main-padding: .76rem .82rem .62rem;--project-list-tag-padding: .48rem .82rem .56rem;--project-card-title-size: 1.42rem;--project-card-text-size: 1.08rem;--project-desc-lines: 2;--project-tag-lines: 1}html[data-project-index-view=list] .projects-index .project-card-grid{grid-template-columns:1fr}html[data-project-index-view=list] .projects-index .project-card{display:grid;grid-template-columns:var(--mobile-list-media, 10rem) minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto;height:calc((var(--project-list-media) * 2 / 3) + 2px)}html[data-project-index-view=list] .projects-index .project-card-link{display:contents}html[data-project-index-view=list] .projects-index .project-card-media{grid-column:1;grid-row:1 / 3;align-self:stretch;width:var(--project-list-media);height:100%;aspect-ratio:auto}html[data-project-index-view=list] .projects-index .project-card-main{grid-column:2;grid-row:1;grid-template-rows:auto auto auto minmax(0,1fr);align-content:stretch;gap:var(--project-list-main-gap, .34rem);padding:var(--project-list-main-padding, .72rem .78rem .66rem)}html[data-project-index-view=list] .projects-index .project-card-summary{display:var(--project-list-summary-display, block)!important;min-height:0;max-height:none;overflow:hidden;-webkit-line-clamp:unset}html[data-project-index-view=list] .projects-index .project-card-tags{grid-column:2;grid-row:2;display:var(--project-list-tags-display, flex);margin:0;padding:var(--project-list-tag-padding, .52rem .78rem .62rem)}.projects-index[data-view=list] .project-card-tags a,html[data-project-index-view=list] .projects-index .project-card-tags a{max-width:8.8rem;font-size:.82rem;line-height:1.05}.projects-index[data-view=list] .project-card-tags a:nth-child(n+4),html[data-project-index-view=list] .projects-index .project-card-tags a:nth-child(n+4){display:none}.contact-links{justify-content:center}.lightbox{padding:1.33rem}.lightbox-frame{width:min(120rem,calc((100vh - 4rem) * var(--lightbox-ratio)),calc(100vw - 2.66rem))}.lightbox-frame img{max-height:none}.lightbox-close{top:1.33rem;right:1.33rem}.lightbox-prev{left:1.33rem}.lightbox-next{right:1.33rem}}
