.physicsDiv:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:inherit;background-size:inherit;background-position:inherit;filter:url(#duotone-filter);transition:opacity .55s ease;pointer-events:none}.physicsDiv:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:inherit;background-size:inherit;background-position:inherit;filter:url(#duotone-warm);mix-blend-mode:multiply;transition:opacity .55s ease;pointer-events:none}.ghost-impression{position:absolute;transform-origin:center center;pointer-events:none;will-change:opacity;filter:grayscale(.5) contrast(.75) url(#ghost-inner-blur);mix-blend-mode:multiply;z-index:0}nav{position:sticky;top:0;z-index:103;margin:0;padding:0 var(--page-margin);width:100%;box-sizing:border-box;height:var(--nav-height);display:flex;align-items:center;background-color:#f9f9f6b8;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--border)}nav ul{z-index:101;margin:0;padding:0;list-style:none;display:grid;grid-template-columns:var(--page-cols);column-gap:var(--page-gap);align-items:center;width:100%}nav ul li:nth-child(1){grid-column:1 / 4}nav ul li:nth-child(2){grid-column:8 / 12}nav ul li:nth-child(3){grid-column:12 / 13;justify-self:end}nav ul li{display:flex;align-items:center}nav h2.title-item{font-size:1.5rem;font-weight:400;margin:0;padding:0;letter-spacing:.01em}.controls button{font-family:var(--font-heading);position:relative;cursor:pointer;padding:.4rem 0;background-color:transparent;border:none;font-size:1.5rem;font-weight:400;letter-spacing:.01em;white-space:nowrap;transition:opacity .2s ease;color:var(--text)}.controls button:hover{text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}.about-icon{background:none;border:none;padding:.4rem 0;font-family:var(--font-heading);font-weight:400;font-size:1.5rem;letter-spacing:.01em;cursor:pointer;transition:opacity .2s ease;color:var(--text)}.about-icon:hover{text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}@media(max-width:768px){nav{padding:0 var(--page-margin)}nav ul{display:flex;justify-content:space-between;padding:0;gap:.5rem}nav ul li:nth-child(1),nav ul li:nth-child(2),nav ul li:nth-child(3){grid-column:unset;justify-self:unset}nav h2.title-item{font-size:.875rem;white-space:nowrap}.about-icon{font-size:.875rem;padding:.4rem 0}.controls{padding:0;margin:0}.controls button{font-size:.875rem;padding:.4rem 0;letter-spacing:0}}.project-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg);z-index:1000;opacity:0;transition:opacity .25s ease}.project-overlay.is-open{opacity:1}.overlay-content{display:flex;flex-direction:column;width:100%;height:100%;overflow:hidden;transform:translateY(10px);transition:transform .28s ease}.project-overlay.is-open .overlay-content{transform:translateY(0)}.close-button{position:absolute;top:1.25rem;right:var(--page-gap);z-index:2000;background:none;border:none;font-family:var(--font-heading);font-size:1.4rem;line-height:1;cursor:pointer;color:var(--text-muted);padding:0;transition:color .2s ease}.close-button:hover{color:var(--text)}.gallery-header{flex:0 0 auto;padding:1.25rem var(--page-gap) 0}.gallery-title{font-family:var(--font-heading);font-weight:300;font-size:1.5rem;line-height:1.05;letter-spacing:.01em;margin:0 0 .3rem;color:var(--text);padding-right:2.5rem}.gallery-meta{font-family:var(--font-body);font-size:.68rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em;font-style:normal;margin:0}.gallery-body{flex:0 0 auto;display:grid;grid-template-columns:var(--page-cols);column-gap:var(--page-gap);padding:.75rem var(--page-gap) 1.25rem}.gallery-description{grid-column:1 / 6;font-family:var(--font-body);font-size:.875rem;line-height:1.4;color:var(--text-muted);max-width:none;margin:0;min-width:0;overflow:hidden}.gallery-description--long{grid-column:1 / 11;columns:2;column-gap:var(--page-gap)}@media(max-width:768px){.gallery-description--long{columns:1}}.gallery-description a{color:var(--text);text-decoration-thickness:1px;text-underline-offset:3px;transition:color .15s ease}.gallery-description a:hover{color:var(--accent)}.gallery-strip{flex:1 1 auto;min-height:0;display:flex;flex-direction:row;align-items:stretch;overflow-x:auto;overflow-y:hidden;gap:3px;padding:.75rem 0;cursor:grab;scroll-snap-type:x proximity;touch-action:pan-x;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none;-webkit-user-select:none;user-select:none}.gallery-strip::-webkit-scrollbar{display:none}@media(min-width:769px){.gallery-strip-item:first-child{margin-left:var(--page-gap)}.gallery-strip-item:last-child{margin-right:var(--page-gap)}.gallery-strip{scroll-padding-left:var(--page-gap);scroll-padding-right:var(--page-gap)}}.gallery-strip-item{flex:0 0 auto;overflow:hidden;scroll-snap-align:start;cursor:pointer;transition:opacity .2s ease}.gallery-strip-item:hover{opacity:.85}.gallery-strip-item img{height:100%;width:auto;display:block;pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.gallery-strip-item.is-native-video video{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none}.gallery-strip-item.is-video iframe{width:100%;height:100%;border:none;display:block;pointer-events:none}.gallery-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg);z-index:2000;display:none;align-items:center;justify-content:center;opacity:0;transition:opacity .2s ease}.gallery-lightbox.is-open{opacity:1}.lightbox-media{display:flex;align-items:center;justify-content:center;max-width:90vw;max-height:88vh}.lightbox-media img{display:block;max-width:90vw;max-height:88vh;width:auto;height:auto;object-fit:contain}.lightbox-media video{display:block;max-width:90vw;max-height:88vh;width:auto;height:auto}.lightbox-media iframe{display:block;width:min(80vw,calc(88vh * (16/9)));height:min(88vh,45vw);border:none}.lightbox-close{position:absolute;top:1rem;right:1.5rem;z-index:1;background:none;border:none;font-family:var(--font-heading);font-size:1.4rem;line-height:1;cursor:pointer;color:var(--text-muted);padding:0;transition:color .2s ease}.lightbox-close:hover{color:var(--text)}.lightbox-counter{position:absolute;bottom:1.2rem;left:50%;transform:translate(-50%);font-family:var(--font-body);font-size:.68rem;color:var(--text-muted);letter-spacing:.1em;font-variant-numeric:tabular-nums;pointer-events:none;-webkit-user-select:none;user-select:none}.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);background:none;border:none;font-family:var(--font-heading);font-size:1.3rem;cursor:pointer;color:var(--text-muted);padding:.8rem 1.2rem;opacity:0;transition:opacity .18s ease,color .18s ease;z-index:1}.gallery-lightbox:hover .lightbox-nav{opacity:.45}.lightbox-nav:hover{opacity:1!important;color:var(--text)}.lightbox-nav.prev{left:.4rem}.lightbox-nav.next{right:.4rem}@media(max-width:768px){.overlay-content{display:block;overflow-y:auto;overflow-x:hidden}.gallery-header{padding:1.25rem var(--page-gap) 0}.gallery-title{font-size:1.2rem;padding-right:2.5rem}.gallery-body{display:block;padding:.8rem var(--page-gap) 0}.gallery-description{font-size:.82rem;max-width:100%;line-height:1.5;grid-column:unset}.gallery-strip{flex:none;height:clamp(200px,48vh,420px);padding:.75rem 1rem 3rem}.close-button,.lightbox-close{top:.9rem;right:var(--page-margin)}.lightbox-nav{padding:.6rem .8rem;font-size:1rem}}.project-info-section a{color:var(--text);text-decoration:none}.project-info-section a:hover{color:var(--accent);text-decoration:underline}:root{--font-heading: "Site Sans", Helvetica, Arial, sans-serif;--font-body: "Site Sans", Helvetica, Arial, sans-serif;--bg: #F9F9F6;--text: rgba(81, 98, 124, .95);--text-muted: rgba(81, 98, 124, .5);--accent: #4357AD;--border: rgba(81, 98, 124, .14);--tag-bg: transparent;--tag-text: rgba(81, 98, 124, .87);--radius: 3px;--nav-height: 3.2rem;--gap-sm: .5rem;--gap-md: 1.5rem;--gap-lg: 3rem;--page-cols: repeat(12, 1fr);--page-gap: .75rem;--page-margin: .75rem;color:var(--text);background-color:var(--bg)}iframe{background-color:var(--bg)!important}h2{font-family:var(--font-heading);font-weight:800;cursor:pointer}p{font-family:var(--font-body)}html,body{margin:0;padding:0;height:100%;overflow-x:hidden}.ghost{position:relative;isolation:isolate;width:fit-content}.ghost:before{content:attr(data-ghost-text);position:absolute;top:0;right:0;bottom:0;left:0;transform:scaleX(-1) translate(.3em);color:currentColor;opacity:.24;pointer-events:none;z-index:-1;white-space:pre-wrap;font:inherit;letter-spacing:inherit;filter:blur(.4px)}.title-item{cursor:pointer;color:var(--text)}#loader{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:200px;height:200px;z-index:9}.hidden{display:none}.controls{position:relative;z-index:100}.project-item{display:flex;align-items:center;padding:20px;border-bottom:1px solid var(--border);cursor:pointer;transition:background-color .3s ease}.project-item:hover{background-color:#16120c08}nav ul li{cursor:pointer}.gallery-intro{position:fixed;top:calc(var(--nav-height) + var(--page-gap));left:var(--page-margin);width:calc((100vw - 2 * var(--page-margin) - 11 * var(--page-gap)) / 12 * 7 + 6 * var(--page-gap));z-index:0;pointer-events:none;font-family:var(--font-heading);font-size:1.5rem;font-weight:400;letter-spacing:.01em;line-height:1.2;color:var(--text-muted);opacity:0;transition:opacity .5s ease .15s}.gallery-intro.is-visible{opacity:1}.gallery-intro p{margin:0;font-family:var(--font-heading);font-size:1.5rem;font-weight:400;letter-spacing:.01em;line-height:1.2;color:var(--text-muted)}.gallery-copyright{position:fixed;top:calc(var(--nav-height) + var(--page-gap));left:calc(var(--page-margin) + (100vw - 2 * var(--page-margin) - 11 * var(--page-gap)) / 12 * 7 + 7 * var(--page-gap));z-index:0;pointer-events:none;font-family:var(--font-heading);font-weight:400;font-size:1.5rem;letter-spacing:.01em;line-height:1.2;color:var(--text-muted);opacity:0;transition:opacity .5s ease .15s}.gallery-copyright.is-visible{opacity:1}@media(max-width:768px){.gallery-copyright{display:none}}.grid-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:99999;pointer-events:none;display:grid;grid-template-columns:var(--page-cols);column-gap:var(--page-gap);padding:0 var(--page-margin);opacity:0;transition:opacity .2s ease}.grid-overlay.is-visible{opacity:1}.grid-overlay-col{background:#dc5a500a;box-shadow:inset 1px 0 #dc5a5059,inset -1px 0 #dc5a5059}@media(max-width:768px){:root{--page-cols: repeat(4, 1fr);--page-gap: .5rem;--page-margin: 1rem}.gallery-intro{display:none}.grid-overlay{overflow:hidden}.grid-overlay-col:nth-child(n+5){display:none}}html:not(.fx-ghost) .ghost:before{display:none}html:not(.fx-soft) .physicsDiv,html:not(.fx-soft) .physicsDiv:hover{filter:none}html:not(.fx-soft) nav{backdrop-filter:none;-webkit-backdrop-filter:none;background-color:var(--bg)}html:not(.fx-casual) .fx-casual-only{display:none}#fx-toast{position:fixed;left:50%;bottom:1rem;transform:translate(-50%);z-index:100000;padding:.3rem .6rem;font-family:var(--font-body);font-size:.75rem;color:var(--bg);background:var(--text);opacity:0;pointer-events:none;transition:opacity .2s ease}#fx-toast.is-visible{opacity:1}#app{width:100%;min-height:100vh;padding-bottom:8rem;position:relative;z-index:1;overflow-x:hidden}.project-container{display:grid;grid-template-columns:var(--page-cols);column-gap:var(--page-gap);align-items:start;padding:.65rem var(--page-margin);border-bottom:1px solid var(--border);cursor:pointer;transition:background-color .15s ease;position:relative;pointer-events:auto}.project-container:hover{background-color:#51627c08}.cell-index{grid-column:1 / 2}.cell-image{grid-column:2 / 4}.cell-title{grid-column:4 / 8}.cell-date{grid-column:8 / 9}.cell-count{grid-column:9 / 10}.cell-tags{grid-column:10 / 13}.cell-index,.cell-image,.cell-title,.cell-date,.cell-count,.cell-tags{display:flex;align-items:center;min-width:0;position:relative}.cell-index{font-family:var(--font-body);font-size:.68rem;color:var(--text-muted);letter-spacing:.08em;font-variant-numeric:tabular-nums}.cell-image{justify-content:flex-start}.cell-date{font-family:var(--font-body);font-size:.68rem;color:var(--text-muted);font-style:italic;letter-spacing:.04em;white-space:nowrap}.cell-count{font-family:var(--font-body);font-size:.65rem;color:var(--text-muted);font-variant-numeric:tabular-nums;letter-spacing:.05em;white-space:nowrap;opacity:.65}.project-title{font-family:var(--font-heading);font-weight:300;font-size:1.1rem;letter-spacing:.01em;margin:0;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100%}.project-container:hover .project-title{text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}.tags-flat{font-family:var(--font-body);font-size:.65rem;text-transform:uppercase;letter-spacing:.09em;color:var(--text-muted);white-space:normal;line-height:1.5;background:none;border:0;border-radius:0;padding:0}.debug-marker{background-color:transparent;border-radius:4px;position:relative;z-index:2}@media(max-width:768px){.project-container{grid-template-rows:auto auto;row-gap:.15rem;min-height:4rem}.cell-index{grid-column:1 / 2;grid-row:1 / 3;align-items:flex-start;padding-top:.15rem}.cell-image{grid-column:2 / 3;grid-row:1 / 3}.cell-title{grid-column:3 / 5;grid-row:1}.cell-date,.cell-count{display:none}.cell-tags{grid-column:3 / 5;grid-row:2}.project-title{font-size:.95rem}.tags-flat{font-size:.6rem}}.physicsDiv{transform-origin:center center;position:absolute;filter:drop-shadow(0 6px 14px rgba(102,131,196,.18));transition:filter .55s ease;z-index:1;pointer-events:auto;will-change:transform}.physicsDiv:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:inherit;background-size:inherit;background-position:inherit;filter:url(#duotone-filter);transition:opacity .55s ease;pointer-events:none}.physicsDiv:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:inherit;background-size:inherit;background-position:inherit;filter:url(#duotone-warm);mix-blend-mode:multiply;transition:opacity .55s ease;pointer-events:none}.physicsDiv.has-duo:before,.physicsDiv.has-duo:after{background-image:var(--duo)}.physicsDiv.is-circle,.physicsDiv.is-circle:before,.physicsDiv.is-circle:after{border-radius:50%}.physicsDiv:hover{filter:drop-shadow(0 10px 20px rgba(28,37,56,.25))}.physicsDiv:hover:before,.physicsDiv:hover:after{opacity:0}.physicsDiv.color-reveal:before,.physicsDiv.color-reveal:after{opacity:0}.ghost-impression{position:absolute;transform-origin:center center;pointer-events:none;will-change:opacity;filter:grayscale(.5) contrast(.75) url(#ghost-inner-blur);mix-blend-mode:multiply;z-index:0}#matter-container{position:fixed;top:0;left:0;width:100%;height:100vh;z-index:0;pointer-events:none;overflow:hidden}#matter-container canvas{position:absolute;pointer-events:auto;z-index:2;opacity:0}#list-view-container{position:relative;z-index:1;width:100%;pointer-events:auto}#list-view-container.hidden{display:none}.project-container,.debug-marker{pointer-events:auto}.about-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:var(--bg);z-index:9999;display:flex;justify-content:center;align-items:flex-start;opacity:0;transition:opacity .3s ease}.about-content{position:relative;width:100%;height:100%;background-color:var(--bg);display:flex;flex-direction:column;overflow-y:auto;font-family:var(--font-heading);font-size:1em;color:var(--text)}.about-wrapper{width:100%;box-sizing:border-box;padding:calc(var(--nav-height) + var(--gap-md)) var(--page-margin) var(--gap-lg);display:flex;flex-direction:column;gap:var(--gap-lg)}@media(min-width:992px){.about-wrapper{display:grid;grid-template-columns:var(--page-cols);column-gap:var(--page-gap);row-gap:var(--gap-lg);align-items:start}.about-column:nth-child(1){grid-column:1 / 5}.about-column:nth-child(2){grid-column:5 / 9}.about-column:nth-child(3){grid-column:9 / 13}}.about-column{min-width:0}.about-column h2{font-family:var(--font-heading);font-weight:400;font-size:.98rem;color:var(--text);padding-bottom:.75rem;border-bottom:1px solid var(--border);margin:0 0 1rem;overflow-wrap:break-word}.about-text{font-family:var(--font-body);font-size:.9em;color:var(--text);line-height:1.65}.about-text p{margin-bottom:1rem}.about-text ul{list-style-type:none;padding-left:0;margin:0}.about-text li{margin-bottom:.75rem;font-family:var(--font-body);color:var(--text)}.about-text h3{font-family:var(--font-heading);font-weight:400;font-size:.68rem;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);margin:1.25rem 0 .6rem}.about-text li a{color:var(--text);text-decoration:none;border-bottom:1px solid var(--border);transition:border-color .2s ease,color .2s ease;font-family:var(--font-body)}.about-text li a:hover{border-color:var(--accent);color:var(--accent)}#toggle{transition:opacity .3s ease}.event-preview-image{position:fixed;width:auto;height:auto;max-width:360px;max-height:520px;min-width:240px;min-height:160px;background-size:contain;background-position:center;background-repeat:no-repeat;pointer-events:none;z-index:10001;transition:opacity .15s ease;opacity:0}.event-preview-image[style*="display: block"]{opacity:1}.event-details{font-style:italic;color:var(--text-muted);font-family:var(--font-body)}@media(hover:none){.event-preview-image{display:none!important}}@media(max-width:768px){.about-wrapper{padding:calc(var(--nav-height) + var(--gap-sm)) var(--page-margin) var(--gap-md);gap:var(--gap-md)}.about-text{font-size:.875em}}@font-face{font-family:Site Sans;src:url(/fonts/ABCAreal-Medium.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Site Sans;src:url(/fonts/ABCAreal-MediumItalic.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Try Areal Semi Mono;src:url(/fonts/ABCArealSemiMono-Regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Try Areal Semi Mono;src:url(/fonts/ABCArealSemiMono-RegularItalic.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap}:root{--font-heading: "Site Sans", Helvetica, Arial, sans-serif;--font-body: "Site Sans", Helvetica, Arial, sans-serif;--w-regular: 400;--w-medium: 400;--fs: 14px;--L: 18px;--top: calc(var(--page-margin) + 4 * var(--L));--text: #51627C;--text-muted: #51627C;--ink-off: rgba(81, 98, 124, .36);--col: calc((100vw - 2 * var(--page-margin) - 11 * var(--page-gap)) / 12);--c3: calc(var(--page-margin) + 3 * (var(--col) + var(--page-gap)))}body,body *{font-family:var(--font-body)!important;font-size:var(--fs)!important;font-weight:var(--w-regular);line-height:var(--L)!important;letter-spacing:0!important;text-transform:none!important}body{color:var(--text)}h1,h2,h3,p,dl,dd,figure{margin:0}em{font-style:italic}nav.chrome h2.title-item,.pp-title,.pp-meta dt,.page-meta dt,.page-list dt{font-weight:var(--w-medium)!important}button{color:inherit;background:none;border:0;padding:0;cursor:pointer;text-align:left}a{color:inherit;text-decoration:none}a:hover,button:hover,.grid-slot:hover .project-title,.page-main a,.page-meta a,.page-list a{text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}nav.chrome{position:fixed;inset:0 0 auto 0;height:auto;margin:0;padding:var(--page-margin);display:grid;grid-template-columns:var(--page-cols);column-gap:var(--page-gap);align-items:start;background:none!important;border:0;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;pointer-events:none;z-index:103}nav.chrome>*{pointer-events:auto}.chrome-name{grid-column:1 / 4}.chrome-view{grid-column:4 / 7}.chrome-links{grid-column:10 / 13;display:flex;gap:var(--page-gap)}.chrome-links>*{padding:0!important;margin:0!important}html.about-open .about-icon{text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}html.page-open #toggle{opacity:0;pointer-events:none}nav.chrome h2.title-item{cursor:pointer}html.page-open nav.chrome{z-index:10001!important;background:var(--bg)!important;padding-bottom:calc(var(--page-margin) + var(--L))}.home-text{position:fixed;inset:var(--top) var(--page-margin) auto;display:grid;grid-template-columns:var(--page-cols);column-gap:var(--page-gap);align-items:start;z-index:0;pointer-events:none}.home-intro{grid-column:1 / 4;grid-row:1;width:auto;transition:opacity .3s ease-in-out}html.is-grid .home-intro{opacity:0}.area-term{pointer-events:auto;text-decoration:underline;text-decoration-color:var(--ink-off);text-underline-offset:3px;text-decoration-thickness:1px;transition:text-decoration-color .2s ease-in-out}.area-term.is-on{text-decoration-color:currentColor}.project-index{grid-column:1 / 4;grid-row:2;width:auto;margin:calc(2 * var(--L)) 0 0;pointer-events:auto;transition:transform .4s ease-in-out}html.is-grid .project-index{transform:translateY(calc(-1 * var(--intro-h, 0px) - 2 * var(--L)))}html.is-grid .home-text{z-index:2}.index-list{list-style:none;margin:0;padding:0}.index-item{display:grid;grid-template-columns:1fr auto;column-gap:var(--page-gap);width:100%;color:var(--text);transition:color .2s ease-in-out}.index-item:hover{text-decoration:none}.index-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.index-num,.grid-caption{font-variant-numeric:tabular-nums}.project-index.has-active .index-item{color:var(--ink-off)}.project-index.has-active .index-item.is-active{color:var(--text)}.chrome-foot{position:fixed;left:var(--page-margin);bottom:var(--page-margin);margin:0;color:var(--text);z-index:0;pointer-events:none}#toggle{color:var(--ink-off)}#toggle .is-on{color:var(--text)}#toggle .toggle-sep{margin:0 .3em}#toggle:hover{text-decoration:none}#toggle span:hover{text-decoration:underline;text-underline-offset:3px}html.is-grid #shake{opacity:0;pointer-events:none}.chrome-contact{position:fixed;right:var(--page-margin);bottom:var(--page-margin);display:flex;gap:var(--page-gap);z-index:103}.physicsDiv{z-index:1}.physicsDiv.is-focus{z-index:5!important}.physicsDiv.is-circle{border-radius:50%}.ghost-impression{transition:opacity .3s ease-in-out}html.is-grid #matter-container .ghost-impression{opacity:0!important}#app{min-height:100vh;padding:var(--top) var(--page-margin) calc(4 * var(--L)) var(--c3);box-sizing:border-box;pointer-events:none}.grid-slots{display:flex;flex-wrap:wrap;align-items:flex-end;column-gap:var(--page-gap);row-gap:0}.project-container.grid-slot{display:block;flex:none;padding:0 0 var(--L);border:0;background:none;cursor:pointer;pointer-events:auto}.project-container.grid-slot:hover{background:none}.grid-slot .debug-marker{width:100%;border-radius:0}.grid-caption{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.project-overlay{background:var(--bg)}.project-overlay .close-button{display:none}.overlay-content.page{display:block;height:100%;overflow-y:auto;overflow-x:hidden;transform:none;padding:var(--top) var(--page-margin) var(--page-margin);box-sizing:border-box}.pp{display:grid;grid-template-columns:var(--page-cols);column-gap:var(--page-gap);align-items:start}.pp-left,.pp-right{position:sticky;top:0;height:calc(100vh - var(--top) - var(--page-margin))}.pp-left{grid-column:1 / 4;display:flex;flex-direction:column}.pp-meta{margin-top:calc(2 * var(--L));display:grid;grid-template-columns:repeat(3,1fr);column-gap:var(--page-gap)}.pp-meta dt{grid-column:1}.pp-meta dd{grid-column:2 / 4}.pp-meta a{text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}.pp-nav{margin-top:auto;display:grid;grid-template-columns:repeat(3,1fr);column-gap:var(--page-gap)}.pp-right{grid-column:10 / 13;overflow-y:auto;scrollbar-width:none}.pp-right::-webkit-scrollbar{display:none}.pp-right p+p{margin-top:var(--L)}.pp-right a{text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}.page-grid{display:grid;grid-template-columns:var(--page-cols);column-gap:var(--page-gap);align-items:start}.page-nav{grid-column:1 / 3;grid-row:1 / span 3;position:sticky;top:var(--top);display:flex;flex-direction:column;align-items:flex-start}.page-main{grid-column:3 / 9;grid-row:1}.page-main>*+*{margin-top:var(--L)}.page-meta{grid-column:9 / 13;grid-row:1;display:grid;grid-template-columns:repeat(4,1fr);column-gap:var(--page-gap)}.page-meta dt{grid-column:1 / 3}.page-meta dd{grid-column:3 / 5}@media(max-width:768px){:root{--c3: var(--page-margin)}.chrome-name{grid-column:1 / 4;grid-row:1 / 3}.chrome-view{grid-column:4 / 5;grid-row:2;justify-self:end}.chrome-links{grid-column:4 / 5;grid-row:1;justify-self:end}.project-index,.chrome-contact a:first-child{display:none}#app{padding-left:var(--page-margin)}.grid-slots{column-gap:8px}.home-intro{grid-column:1 / -1}.pp{display:flex;flex-direction:column}.pp-left,.pp-right{position:static;height:auto}.pp-nav{order:-1;margin:0 0 calc(2 * var(--L));display:flex;gap:var(--page-gap)}.pp-meta{margin-top:var(--L)}.pp-right{margin-top:calc(2 * var(--L));overflow:visible}.page-grid{display:flex;flex-direction:column}.page-nav{position:static;flex-direction:row;gap:var(--page-gap);margin-bottom:calc(2 * var(--L))}.page-meta{margin-top:calc(2 * var(--L));grid-template-columns:1fr 2fr;width:100%}.page-meta dt{grid-column:1}.page-meta dd{grid-column:2}.page-list{grid-template-columns:1fr 2fr;width:100%}.page-list dt{grid-column:1}.page-list dd{grid-column:2}.page-list .yr{grid-template-columns:auto 1fr}.page-list .yr>:last-child{grid-column:2}.page-media{width:100%}}.shake-card{position:absolute;left:0;top:0;padding:0;color:var(--text);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;white-space:nowrap;pointer-events:auto;-webkit-user-select:none;user-select:none;z-index:1;transition:opacity .3s ease-in-out}html.is-grid .shake-card{opacity:0;pointer-events:none}.fall-text{position:absolute;left:0;top:0;white-space:nowrap;color:var(--text);pointer-events:auto;-webkit-user-select:none;user-select:none;z-index:1}.pp:not(.ab){grid-template-rows:auto 1fr}.pp-info{grid-column:1 / 10;grid-row:1;display:grid;grid-template-columns:repeat(9,1fr);column-gap:var(--page-gap)}.pp-info>:nth-child(1){grid-column:1 / 4}.pp-info>:nth-child(2){grid-column:4 / 7}.pp-info>:nth-child(3){grid-column:7 / 10}.pp:not(.ab)>.pp-media{grid-column:1 / 10;grid-row:2;margin-top:var(--page-gap);display:flex;flex-direction:column;gap:var(--page-gap)}.pp-row{display:flex;gap:var(--page-gap);align-items:flex-start}.pp-stack{display:flex;flex-direction:column;gap:var(--page-gap);flex:none}.pp-empty{flex:none}.pp-fig{flex:none;margin:0;cursor:zoom-in;background:#51627c0f;overflow:hidden}.pp-fig:has(iframe){background:none}.pp-fig img,.pp-fig video,.pp-fig iframe{display:block;width:100%;height:100%;object-fit:cover;border:0}.pp:not(.ab)>.pp-right{grid-row:1 / 3;display:flex;flex-direction:column;overflow:hidden}.pp-text{overflow-y:auto;scrollbar-width:none;min-height:0}.pp-text::-webkit-scrollbar{display:none}.pp-text p+p{margin-top:var(--L)}.pp-text a{text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}.pp-right>.pp-nav{margin-top:auto;padding-top:calc(2 * var(--L));grid-template-columns:repeat(3,1fr)}.viewer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20000;display:none;background:var(--bg);opacity:0;transition:opacity .2s ease}.viewer.is-open{opacity:1}.viewer-head{position:absolute;left:var(--page-margin);top:var(--page-margin)}.viewer-count{color:var(--ink-off);font-variant-numeric:tabular-nums}.viewer-close{position:absolute;left:calc(var(--page-margin) + 9 * (var(--col) + var(--page-gap)));top:var(--page-margin)}.viewer-stage{position:absolute;left:var(--page-margin);right:var(--page-margin);top:var(--top);bottom:calc(var(--page-margin) + 2 * var(--L));display:flex;align-items:center;justify-content:center;cursor:none}.viewer-frame{flex:none;background:#51627c0f}.viewer-frame:has(iframe){background:none;cursor:default}.viewer-frame video[controls]{cursor:default}.viewer-cursor{position:fixed;left:0;top:0;pointer-events:none;white-space:nowrap;opacity:0;z-index:1}.viewer-cursor.is-on{opacity:1}@media(pointer:coarse){.viewer-cursor{display:none}}.viewer-frame>*{display:block;width:100%;height:100%;object-fit:contain;border:0}.viewer-nav{position:absolute;left:var(--page-margin);right:var(--page-margin);bottom:var(--page-margin);display:grid;grid-template-columns:var(--page-cols);column-gap:var(--page-gap)}.viewer-prev{grid-column:11}.viewer-next{grid-column:12}@media(max-width:768px){.pp-info{display:flex;flex-direction:column;order:1}.pp:not(.ab)>.pp-right{order:2;margin-top:calc(2 * var(--L))}.pp:not(.ab)>.pp-media{order:3;margin-top:calc(2 * var(--L))}.pp-row,.pp-stack{gap:8px}.pp:not(.ab)>.pp-media{gap:8px}.pp-right>.pp-nav{order:-1;margin:0 0 calc(2 * var(--L));padding:0;display:flex;gap:calc(2 * var(--page-gap))}.viewer-nav{display:flex;justify-content:flex-end;gap:calc(2 * var(--page-gap))}.viewer-close{left:auto;right:var(--page-margin)}}.about-overlay{display:block;overflow:hidden}.about-overlay.is-open{opacity:1}.ab{position:absolute;inset:var(--top) var(--page-margin) var(--page-margin);display:grid;grid-template-columns:var(--page-cols);column-gap:var(--page-gap);align-items:start}.ab-m1{grid-column:1 / 4}.ab-m2{grid-column:4 / 7}.ab-m3{grid-column:7 / 10}.ab-m4{grid-column:10 / 13;align-self:stretch;display:flex;flex-direction:column}.ab-bio p+p{margin-top:var(--L)}.ab-contact{margin-top:calc(2 * var(--L));display:grid;grid-template-columns:1fr 2fr;column-gap:var(--page-gap)}.ab-contact dd{margin:0}.ab a{text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}.ab-list dd{margin:0}.ab-list dt{margin-bottom:calc(var(--page-gap) / 2)}.ab-list+.ab-list{margin-top:calc(2 * var(--L))}.ab-list .yr{display:grid;grid-template-columns:3.2em 1fr;column-gap:var(--page-gap);font-variant-numeric:tabular-nums}.ab-list [data-pic]{cursor:default;transition:color .2s ease-in-out}.ab.has-active .ab-list .yr{color:var(--ink-off)}.ab.has-active .ab-list .yr.is-active{color:var(--text)}.ab-nav{margin-top:auto}.ab-pile{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:2}.ab-card{pointer-events:none;left:0;top:0}@media(max-width:768px){.about-overlay{overflow-y:auto}.ab{position:static;display:flex;flex-direction:column;gap:calc(2 * var(--L));padding:var(--top) var(--page-margin) calc(2 * var(--L))}.ab-nav{margin-top:calc(2 * var(--L));order:2}.ab-pile{display:none}}html[data-font=semimono]{--font-body: "Try Areal Semi Mono", Helvetica, Arial, sans-serif;--font-heading: var(--font-body)}html.font-caps body,html.font-caps body *{text-transform:uppercase!important}#font-panel{position:fixed;left:50%;top:12px;transform:translate(-50%);z-index:100001;display:flex;gap:0;background:var(--bg, #fff);color:var(--text, #000);border:1px solid currentColor}#font-panel *{text-transform:none!important;font-family:Site Sans,Helvetica,sans-serif!important}#font-panel button{all:unset;cursor:pointer;padding:0 8px;font-family:Site Sans,Helvetica,sans-serif!important;text-transform:none!important}#font-panel button+button{border-left:1px solid currentColor}#font-panel button.is-on{background:currentColor}#font-panel button.is-on span{color:var(--bg, #fff)}#font-panel[hidden]{display:none}@media(max-width:768px){#font-panel{top:auto;bottom:12px;left:12px;right:12px;transform:none;flex-wrap:wrap}}#duotone-panel{position:fixed;right:var(--page-margin);bottom:calc(var(--page-margin) + 2 * var(--L));z-index:100001;width:calc(3 * var(--col) + 2 * var(--page-gap));padding:var(--page-gap);background:var(--bg);color:var(--text);border:1px solid currentColor}#duotone-panel[hidden]{display:none}#duotone-panel .dt-title{margin-bottom:var(--L)}#duotone-panel .dt-row{display:grid;grid-template-columns:7em 1fr 5em;column-gap:var(--page-gap);align-items:center}#duotone-panel input[type=range]{width:100%;accent-color:var(--text)}#duotone-panel input[type=color]{width:100%;height:14px;padding:0;border:1px solid currentColor;background:none}#duotone-panel .dt-val{text-align:right;font-variant-numeric:tabular-nums}#duotone-panel .dt-actions{display:flex;gap:calc(2 * var(--page-gap));margin-top:var(--L)}#duotone-panel .dt-slots{margin-top:var(--L)}#duotone-panel .dt-slot{display:grid;grid-template-columns:7em 1fr auto auto;column-gap:calc(2 * var(--page-gap));align-items:center}#duotone-panel .dt-swatch{height:10px;border:1px solid currentColor}#duotone-panel button:disabled{color:var(--ink-off);cursor:default;text-decoration:none}
