@font-face{font-family:"Alte Haas Grotesk";src:url("fonts/AlteHaasGrotesk-Bold.woff") format("woff");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:"Alte Haas Grotesk";src:url("fonts/AlteHaasGrotesk-Regular.woff") format("woff");font-weight:400;font-style:normal;font-display:swap}
:root{--bg:#111;--block:#000;--text:#5D5D5D;--soft:#5D5D5D;--blue:#002AFF;--gap:28px;--pad:20px;--full-cols:10;--open-cols:7;--header-height:72px;--header-font-size:clamp(19px,1.55vw,30px);--nav-font-size:var(--header-font-size);--header-letter-spacing:-.055em;--header-padding-top:10px;--ease:cubic-bezier(.22,.75,.2,1)}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:"Alte Haas Grotesk",Arial,Helvetica,sans-serif;font-weight:400;font-synthesis:none;-webkit-font-smoothing:antialiased}body:has(dialog[open]){overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;border:0;padding:0;background:none;color:inherit;cursor:pointer}a{color:inherit;text-decoration:none}a:hover,button:hover,a:focus-visible,button:focus-visible,a:active,button:active,a[aria-current="page"]{color:var(--blue)}button:focus-visible,a:focus-visible{outline:1px solid var(--blue);outline-offset:5px}::selection{background:var(--blue);color:#fff}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.header{height:var(--header-height);padding:var(--header-padding-top) var(--pad) 0;display:grid;grid-template-columns:1fr 1fr 1fr;align-items:start;position:sticky;top:0;z-index:20;background:var(--bg);font-size:var(--header-font-size);letter-spacing:var(--header-letter-spacing);line-height:1.2}.name{justify-self:start}.header nav{display:flex;gap:22px;justify-self:start}.index-toggle{justify-self:end;color:var(--text);font-size:var(--nav-font-size)}.index-toggle:hover,.index-toggle:focus-visible,.index-toggle:active{color:var(--blue)}.index-toggle[aria-expanded="true"]{color:var(--blue)}
main{padding:25px var(--pad) 0}.work-layout{display:grid;grid-template-columns:repeat(var(--full-cols),minmax(0,1fr));gap:var(--gap);align-items:start}.archive{grid-column:1/-1;display:grid;grid-template-columns:repeat(var(--full-cols),minmax(0,1fr));column-gap:var(--gap);row-gap:63px;position:relative;min-width:0}.index-open .archive{grid-column:1/span var(--open-cols);grid-template-columns:repeat(var(--open-cols),minmax(0,1fr))}.tile{min-width:0;position:relative;transform-origin:top left}.thumbnail{display:block;width:100%;aspect-ratio:5/3;background:var(--thumbnail-bg,var(--block));position:relative;overflow:hidden;text-align:left;outline:1px solid transparent;transition:opacity .23s,outline-color .23s}.thumbnail img{display:block;width:100%;height:100%;object-fit:contain;object-position:var(--thumbnail-position,center)}.thumbnail[data-frame="photo"] img{object-fit:cover}.thumbnail[data-frame="product"] img{padding:4.8% 0}.thumbnail:hover,.thumbnail:focus-visible{outline-color:var(--blue)}.caption{font-weight:700;-webkit-text-stroke:.35px currentColor;paint-order:stroke fill;margin-top:13px;display:flex;align-items:baseline;justify-content:center;text-align:center;gap:0;font-size:9px;line-height:1.45;min-height:30px;letter-spacing:-.025em;transition:color .2s,opacity .23s}.item-id{flex:none;font-variant-numeric:tabular-nums}.item-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text);transition:color .2s}.tile:hover .caption,.tile:focus-within .caption{color:var(--blue)}.archive.has-highlight .tile:not(.highlighted) .thumbnail{opacity:.18}.archive.has-highlight .tile:not(.highlighted) .caption{opacity:.3}.archive.has-highlight .tile.highlighted .thumbnail{outline-color:var(--blue)}.archive.has-highlight .tile.highlighted .caption,.archive.has-highlight .tile.highlighted .item-label{color:var(--blue)}
.project-index{grid-column:calc(var(--open-cols) + 1)/-1;position:sticky;top:calc(var(--header-height) + 25px);height:calc(100dvh - var(--header-height) - 50px);overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#333 transparent}.project-index[hidden]{display:none}.index-open .project-index{animation:enter .34s var(--ease) .12s both}.index-list{display:flex;flex-direction:column;gap:38px;padding:0 0 20px 4px}.index-item{display:block;width:100%;text-align:right;font-family:"Alte Haas Grotesk",Arial,Helvetica,sans-serif;font-weight:400;font-size:clamp(22px,1.8vw,34px);line-height:1.08;letter-spacing:-.055em;transition:color .2s,opacity .2s}.index-item .discipline{display:block;color:var(--soft);font:inherit;line-height:inherit;margin-top:2px;letter-spacing:inherit}.index-item.active{color:var(--blue)}.index-item.active .discipline{color:var(--blue)}.index-list.has-highlight .index-item:not(.active){opacity:.35}@keyframes enter{from{opacity:0;transform:translateX(12px)}to{opacity:1;transform:translateX(0)}}
footer{margin:70px var(--pad) 25px;display:flex;gap:30px;align-items:center;justify-content:space-between;font-size:10px;line-height:1.5;color:var(--text)}footer>span:first-child{color:var(--text)}.loading{font-size:12px;grid-column:1/-1}
dialog{margin:0;padding:0 var(--pad) 35px;background:var(--bg);color:var(--text);width:100%;max-width:none;height:100dvh;max-height:none;border:0;overscroll-behavior:contain}dialog::backdrop{background:#000c}dialog[open]{animation:enter .25s var(--ease)}.dialog-header{height:var(--header-height);display:flex;align-items:center;justify-content:space-between;font-size:14px;position:sticky;top:0;background:var(--bg);z-index:3}.close{font-family:"Alte Haas Grotesk",Arial,Helvetica,sans-serif;font-weight:400;font-size:var(--nav-font-size);letter-spacing:var(--header-letter-spacing);line-height:1.2}.info-dialog h2{font-size:clamp(40px,6vw,90px);font-weight:400;letter-spacing:-.06em;margin:60px 0 30px}.info-dialog p{max-width:700px;font-size:clamp(18px,2.2vw,30px);line-height:1.3;letter-spacing:-.04em}.info-dialog a{overflow-wrap:anywhere}
@media(min-width:1800px){:root{--gap:42px}.archive{row-gap:76px}.caption{font-size:11px;margin-top:19px;min-height:32px}.index-list{gap:44px}}
@media(max-width:1279px) and (min-width:1000px){:root{--full-cols:8;--open-cols:5;--gap:24px}:root{--header-font-size:22px}.archive{row-gap:50px}.index-list{gap:33px}.index-item{font-size:25px}}
@media(max-width:999px) and (min-width:761px){:root{--full-cols:6;--open-cols:4;--gap:22px}:root{--header-font-size:20px}.header nav{gap:17px}.archive{row-gap:46px}.index-list{gap:29px}.index-item{font-size:22px}.caption{font-size:9px}}
@media(max-width:760px){:root{--full-cols:3;--open-cols:3;--gap:18px;--pad:16px;--header-height:74px}:root{--header-font-size:18px;--nav-font-size:16px;--header-letter-spacing:-.045em;--header-padding-top:15px}.header{grid-template-columns:1.4fr 1fr auto}.header nav{font-size:14px;gap:14px;padding-top:2px}.index-toggle{padding-top:1px;min-height:25px}main{padding-top:14px}.archive{row-gap:35px}.caption{font-size:9px;display:flex;margin-top:10px;min-height:37px}.item-id{display:block}.item-label{display:block}.index-open .archive{grid-column:1/-1;grid-template-columns:repeat(3,minmax(0,1fr))}.project-index{position:fixed;top:var(--header-height);right:0;bottom:0;width:100%;height:calc(100dvh - var(--header-height));background:rgba(17,17,17,.98);padding:20px var(--pad) 40px;z-index:15;overflow:auto}.index-list{gap:32px;padding:0}.index-item{text-align:left;font-size:28px;letter-spacing:-.045em}.index-item .discipline{font-size:inherit;margin-top:2px}.index-open{overflow:hidden}footer{flex-wrap:wrap;gap:10px 25px;margin-top:50px;font-size:9px}footer span:nth-child(2){max-width:190px;text-align:right;margin-left:auto}.info-dialog h2{margin-top:40px;font-size:46px}.info-dialog p{font-size:20px}}
@media(max-width:399px){:root{--full-cols:2;--gap:17px}:root{--header-font-size:16px}.header nav{font-size:12px;gap:10px}.index-open .archive{grid-template-columns:repeat(2,minmax(0,1fr))}.caption{font-size:10px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.video-thumbnail{display:grid;place-items:center}.play-icon{width:0;height:0;border-top:11px solid transparent;border-bottom:11px solid transparent;border-left:17px solid currentColor;margin-left:4px;z-index:1}

.video-thumbnail img{position:absolute;inset:0}.video-thumbnail .play-icon{position:absolute;right:9px;bottom:9px;margin:0;border-top-width:7px;border-bottom-width:7px;border-left-width:11px;color:#fff;filter:drop-shadow(0 1px 3px #000)}.video-thumbnail:hover .play-icon,.video-thumbnail:focus-visible .play-icon{color:var(--blue)}

/* The About page uses one continuous column of large text. */
.about-dialog{--about-font-size:clamp(30px,4vw,67px);padding-bottom:0}
.about-dialog .about-intro{margin-top:0;max-width:none}
.about-dialog .about-intro p,.about-details p,.about-details ul{max-width:none;margin:0;font-size:var(--about-font-size);font-weight:400;line-height:1.04;letter-spacing:-.05em}
.about-details{display:flex;flex-direction:column;gap:34px;margin-top:30px}
.about-details h3{margin:0 0 22px;font-size:var(--header-font-size);font-weight:400;line-height:1.2;letter-spacing:var(--header-letter-spacing);text-align:center}
.about-details ul{list-style:none;padding:0}
.client-list li{display:inline}
.client-list li:not(:last-child)::after{content:", "}
.download-list li+li{margin-top:8px}
.credit-list{display:flex;flex-direction:column;gap:18px}
.credit-role{font-size:var(--header-font-size);letter-spacing:var(--header-letter-spacing);line-height:1.2;margin-right:.35em}
.about-dialog footer{margin-left:0;margin-right:0}
@media(max-width:760px){.about-dialog{--about-font-size:clamp(26px,5.9vw,41px)}.about-details{gap:28px;margin-top:28px}.about-details h3{margin-bottom:18px}.credit-list{gap:20px}.credit-role{font-size:16px}}

.info-dialog .dialog-header{justify-content:flex-end}

.lightbox{padding:24px;background:transparent;overflow:hidden}.lightbox::backdrop{background:rgba(0,0,0,.72);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.lightbox .close{position:absolute;top:var(--header-padding-top);right:var(--pad);z-index:2}.lightbox-shell{margin:0;padding:42px 20px 0;display:grid;grid-template-rows:minmax(0,1fr) auto;gap:18px;width:100%;height:100%}.lightbox-media{display:flex;align-items:center;justify-content:center;min-width:0;min-height:0}.lightbox-media img{display:block;width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain}.lightbox-media iframe{display:block;border:0;width:min(100%,calc((100dvh - 150px)*16/9));height:auto;aspect-ratio:16/9;max-height:100%;background:#000}.lightbox-caption{font-size:12px;line-height:1.4;text-align:center}.lightbox-caption a{display:block;margin-top:7px;text-decoration:underline;text-underline-offset:3px}
@media(max-width:760px){.lightbox{padding:16px}.lightbox-shell{padding:44px 0 0;gap:16px}.lightbox-caption{font-size:11px}}

.about-dialog .dialog-header{transition:transform .25s var(--ease);justify-content:space-between;align-items:flex-start;padding-top:var(--header-padding-top);font-size:var(--header-font-size);letter-spacing:var(--header-letter-spacing);line-height:1.2}.about-dialog .dialog-header .name{margin:0;font-size:inherit;font-weight:400;letter-spacing:inherit;line-height:inherit}

.about-dialog .dialog-header.is-hidden{transform:translateY(-100%);pointer-events:none}

.external-arrow{display:inline-block;width:.64em;height:.64em;vertical-align:.04em;fill:none;overflow:visible;transition:transform .2s var(--ease)}

a:hover .external-arrow{transform:rotate(45deg)}
