:root{font-size:var(--layout-unit,min(1.44vw,1.44vh));--mono:"Portfolio Diatype Mono","Courier New",monospace;--rail:19rem;--inset:2rem;--right:5rem;--body-size:.9rem;--gap:1rem}
@font-face{font-family:"Portfolio Diatype Mono";src:url("assets/fonts/ABCDiatypeMonoVariable.woff2") format("woff2"),url("assets/fonts/ABCDiatypeMonoVariable.woff") format("woff");font-weight:200 700;font-style:normal;font-display:swap}
@font-face{font-family:"Portfolio Diatype Mono";src:url("assets/fonts/ABCDiatypeMonoVariable.woff2") format("woff2"),url("assets/fonts/ABCDiatypeMonoVariable.woff") format("woff");font-weight:200 700;font-style:oblique 0deg 12deg;font-display:swap}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#0d1113;font-family:var(--mono);font-variation-settings:"MONO" 1,"slnt" 0;font-size:var(--body-size);line-height:1.1;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}a:focus-visible,button:focus-visible{outline:2px solid currentColor;outline-offset:4px}.skip{position:fixed;left:2rem;top:-100px;z-index:100;background:white;color:black;padding:12px}.skip:focus{top:2rem}
.rail-header{position:fixed;z-index:20;left:2.5rem;top:2rem;width:15.5rem;pointer-events:none}.brand{pointer-events:auto;display:flex;gap:.65rem;align-items:center;justify-content:center;width:100%;height:3rem;background:#deb956;color:#191919;border-radius:999px;font-size:.9rem;white-space:nowrap}.brand span{font-size:.9rem}.index-toggle{display:none}.project-nav{position:fixed;z-index:20;left:2rem;bottom:3rem;width:18rem}.project-nav a{position:relative;display:block;padding-left:1.85rem;line-height:1.1;color:#fff;opacity:.75;white-space:nowrap}.project-nav a:hover{opacity:1}.project-nav a[aria-current="location"]{font-weight:700;opacity:1}.project-nav a[aria-current="location"]::before{content:"→";position:absolute;left:0;font-weight:400}
.project{background:var(--background);color:var(--foreground);padding:2rem var(--right) 2rem calc(var(--rail) + var(--inset));scroll-margin-top:0}.metadata{display:grid;grid-template-columns:4fr 4fr 1fr 2fr 1fr;gap:1rem;align-items:start;margin-bottom:1rem}.metadata h2,.metadata p{margin:0;font-size:inherit;line-height:1.1;font-weight:400}.metadata .description p{font-size:calc(.9rem * var(--description-scale,1));line-height:1.1}.metadata .contribution p{font-size:calc(.9rem * var(--contribution-scale,1));line-height:1.1}.meta-label{opacity:0.75;display:block;font-size:.8rem;font-weight:400;line-height:1.24rem;text-transform:uppercase}.metadata h2 em{font-style:oblique 12deg;font-variation-settings:"MONO" 1,"slnt" -12}.client{grid-column:5;display:flex;justify-content:flex-end;padding-top:.4rem}.client img{width:100%;height:auto;max-height:3rem;object-fit:contain;object-position:top right}.contribution{grid-column:4}
.composition{display:grid;gap:calc(var(--project-gap,1) * 1rem)}.image-row{display:grid;grid-template-columns:var(--columns);gap:calc(var(--project-gap,1) * 1rem);align-items:start}.image-cell{position:relative;min-width:0;display:block;border:0;margin:0;padding:0;background:transparent;color:inherit;line-height:0;width:100%}.image-cell img,.image-cell video{display:block;width:100%;height:auto}.image-row[data-mode="crop"] .image-cell{aspect-ratio:var(--ratio,1.7778);overflow:hidden}.image-row[data-mode="crop"] .image-cell img,.image-row[data-mode="crop"] .image-cell video{height:100%;object-fit:cover;object-position:var(--position,center)}.image-cell:hover{cursor:zoom-in}.image-cell:active{opacity:.7}.image-caption{display:block;font-size:.8rem;line-height:1.3;text-align:left;padding-top:.5rem}.lightbox{position:fixed;inset:0;width:100%;height:100dvh;max-height:none;max-width:none;margin:0;border:0;background:#000;color:#fff;padding:3rem;overflow:hidden}.lightbox::backdrop{background:#000}.lightbox[open]{display:flex;align-items:center;justify-content:center}.lightbox figure{margin:0;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center}.lightbox img{max-width:100%;max-height:calc(100% - 2rem);object-fit:contain}.lightbox figcaption{height:1.5rem;font-size:.75rem;padding-top:.5rem}.lightbox button{position:absolute;border:0;border-radius:50%;width:32px;height:32px;background:#aaa9;color:#000;font:22px/1 sans-serif;z-index:1}.close-lightbox{right:20px;top:20px}.previous-image{left:20px;top:50%}.next-image{right:20px;top:50%}#load-error{margin:24px;color:white}
@media(max-width:800px){
  :root{font-size:10px;--body-size:clamp(9px,2.4vw,18px);--right:clamp(5px,1.5vw,12px);--rail:0px;--inset:clamp(5px,1.5vw,12px);--mobile-gallery-gap:clamp(4px,1.3vw,10px);--mobile-button-height:clamp(36px,8.6vw,68px);--mobile-header-height:calc(var(--mobile-button-height) + env(safe-area-inset-top,0px));--mobile-nav-inset:clamp(10px,3vw,24px);--mobile-nav-background:#deb956;--mobile-nav-foreground:#191919}
  .rail-header{left:0;top:0;width:100%;z-index:21}
  .brand{display:none}
  .index-toggle{pointer-events:auto;display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;height:var(--mobile-header-height);border:0;border-radius:0;margin:0;padding:env(safe-area-inset-top,0px) var(--mobile-nav-inset) 0;background:var(--mobile-nav-background);color:var(--mobile-nav-foreground);font-size:var(--body-size);text-align:left}
  .index-toggle:focus-visible{outline-offset:-4px}
  .index-chevron{flex:none;width:1em;height:1em}
  .index-toggle[aria-expanded="true"] .index-chevron{transform:rotate(90deg)}
  .project-nav{display:none;left:0;right:0;top:var(--mobile-header-height);bottom:auto;width:100%;padding:0 var(--mobile-nav-inset) var(--mobile-nav-inset);border:0;background:var(--mobile-nav-background);color:var(--mobile-nav-foreground);max-height:calc(100dvh - var(--mobile-header-height));overflow-y:auto;overscroll-behavior:contain;border-radius:0}
  .project-nav.is-open{display:block}.project-nav a{padding:0;white-space:normal;font-size:var(--body-size);line-height:1.15;opacity:1}.project-nav a[aria-current="location"]::before{content:none}
  #projects{padding-top:var(--mobile-header-height)}
  .project{padding-top:var(--mobile-nav-inset);padding-bottom:var(--inset);scroll-margin-top:var(--mobile-header-height)}
  .metadata{grid-template-columns:minmax(0,1fr)!important;gap:var(--body-size);margin-bottom:calc(var(--body-size) * 1.6)}
  .metadata .title{grid-column:1/-1;padding-right:0;padding-bottom:calc(var(--body-size) * 1.3)}
  .meta-label{font-size:calc(var(--body-size) * .6);line-height:2.3}
  .metadata .description{grid-column:1/-1;max-width:none}
  .metadata .description p{font-size:calc(var(--body-size) * var(--description-scale,1));line-height:1.1}
  .contribution{grid-column:1/-1}.metadata .contribution p{font-size:calc(var(--body-size) * var(--contribution-scale,1));line-height:1.1}
  .client{display:none}
  .composition,.image-row{gap:calc(var(--project-gap,1) * var(--mobile-gallery-gap))}
  .image-row{grid-template-columns:var(--mobile-columns,var(--columns))}
  .image-caption{font-size:var(--body-size)}
  .lightbox{padding:48px 10px}.lightbox figcaption{font-size:10px;height:25px}.lightbox img{max-height:calc(100% - 25px)}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

