html:has(.gallery-page){height:auto;overflow:auto;scrollbar-gutter:stable}.gallery-page{height:auto;min-height:100vh;overflow:visible;background:var(--paper)}.gallery-menu{position:fixed;top:0;left:0;right:0;z-index:100;min-height:96px;padding:20px 40px;display:flex;align-items:center;justify-content:space-between;gap:30px;background:#f4f3eea8;backdrop-filter:blur(24px) saturate(.6);-webkit-backdrop-filter:blur(24px) saturate(.6);border-bottom:1px solid #ffffff66}.gallery-menu nav{display:flex;gap:32px;font-size:14px}.gallery-menu nav a{padding:8px 0}.gallery-menu nav a:hover,.gallery-menu nav a[aria-current]{text-decoration:underline;text-underline-offset:6px}.gallery-main{padding:150px 28px 45px;max-width:2000px;margin:auto}.gallery-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;padding:0 12px 35px}.gallery-heading h1{font-size:clamp(35px,5.5vw,85px);font-weight:400;line-height:1.1;letter-spacing:-.06em}.serif{font-family:var(--serif);font-style:italic}.gallery-heading button{font-size:13px;white-space:nowrap;padding:8px 0;border-bottom:1px solid}.gallery-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:78px;grid-auto-flow:dense;gap:12px;isolation:isolate}.gallery-card{grid-column:span var(--cols);grid-row:span var(--rows);min-width:0;position:relative;border-radius:11px;transition:opacity .35s,filter .35s,transform .4s;transform-origin:center;z-index:1;color:var(--card-ink);background:var(--card-bg)}.card-button{width:100%;height:100%;border-radius:inherit;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden;padding:22px;text-align:left}.gallery-card:hover{transform:scale(1.022);z-index:3}.gallery-card.selected{z-index:10;opacity:1;filter:none;transform:scale(1.012)}.gallery-grid.has-selection .gallery-card:not(.selected){opacity:.24;filter:brightness(.7) saturate(.3)}.gallery-grid.has-selection .gallery-card:not(.selected):hover{opacity:.65}.card-top,.card-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;position:relative;z-index:1}.card-top{font-size:15px}.card-top>span:last-child{font-size:10px;letter-spacing:.06em}.card-foot{font-size:10px;letter-spacing:.08em;opacity:.75}.placeholder-number{font-size:clamp(70px,10vw,170px);font-weight:400;line-height:1;letter-spacing:-.09em;align-self:center;opacity:.85}.gallery-card:nth-child(3n) .placeholder-number{font-family:var(--serif);font-style:italic}.gallery-card.motion .placeholder-number{animation:float-type 6s ease-in-out infinite alternate}.gallery-card.motion:nth-child(2n) .placeholder-number{animation-delay:-3s}.motion-paused .gallery-card.motion .placeholder-number{animation-play-state:paused}.lilac{--card-bg:#d0b8ed;--card-ink:#382448}.charcoal{--card-bg:#29272e;--card-ink:#e3d6f2}.silver{--card-bg:#d9d8d3;--card-ink:#4a4b48}.yellow{--card-bg:#e1e69a;--card-ink:#424a2a}.mint{--card-bg:#bed6ca;--card-ink:#2d514b}.purple{--card-bg:#8152b9;--card-ink:#f0e2fa}.pink{--card-bg:#ddbabd;--card-ink:#623e50}.gallery-footer{display:flex;justify-content:space-between;padding:55px 12px 10px;font-size:15px}.gallery-footer a{border-bottom:1px solid;padding-bottom:5px}.project-detail{position:absolute;z-index:40;width:320px;padding:30px;background:#f7f5ee;border:1px solid #29272e1f;border-radius:11px;box-shadow:0 16px 55px #2222;animation:reveal-detail .35s ease both;overflow-wrap:anywhere}.project-detail[hidden]{display:none}.project-detail[data-side='right']{--reveal-x:-22px;--reveal-y:0px}.project-detail[data-side='left']{--reveal-x:22px;--reveal-y:0px}.project-detail[data-side='bottom']{--reveal-x:0px;--reveal-y:-22px}.project-detail h2{font-size:35px;font-weight:400;letter-spacing:-.055em;margin:18px 0}.project-detail>span{font-size:12px;display:block;padding-right:20px}.project-detail p{font-size:16px;line-height:1.55;margin:0;color:#5e5961}.detail-close{position:absolute;right:15px;top:11px;font-size:27px;line-height:1;padding:5px}.gallery-card button:focus-visible{outline:3px solid var(--purple);outline-offset:4px}@keyframes float-type{from{transform:translate(-10%,-6%) rotate(-7deg)}to{transform:translate(10%,6%) rotate(7deg)}}@keyframes reveal-detail{from{opacity:0;transform:translate(var(--reveal-x),var(--reveal-y))}to{opacity:1;transform:translate(0,0)}}
@media(min-width:1600px){.gallery-grid{grid-auto-rows:100px}}
@media(max-width:1000px){.gallery-grid{grid-auto-rows:65px;gap:10px}.card-button{padding:16px}.card-top{font-size:13px}.card-top>span:last-child{font-size:9px}.gallery-menu{padding:20px 28px}.gallery-menu nav{gap:24px}}
@media(max-width:700px){.gallery-menu{min-height:84px;padding:18px;gap:15px}.gallery-menu nav{gap:15px;font-size:11px}.gallery-menu .profession{display:none}.gallery-main{padding:117px 12px 30px}.gallery-heading{padding:0 5px 25px;align-items:start}.gallery-heading h1{font-size:38px;max-width:230px}.gallery-heading .serif{display:block;font-size:26px;margin-top:6px}.gallery-heading button{font-size:11px;margin-top:7px}.gallery-grid{grid-template-columns:repeat(6,minmax(0,1fr));grid-auto-rows:55px;gap:9px}.gallery-card{grid-column:span 3;grid-row:span 4}.gallery-card:nth-child(5n+1){grid-column:span 6;grid-row:span 4}.gallery-card:nth-child(4n+2){grid-row:span 5}.gallery-card:nth-child(4n+3){grid-row:span 3}.card-button{padding:14px}.card-top{font-size:12px;display:block}.card-top>span:last-child{display:block;margin-top:5px;font-size:9px}.card-foot{font-size:8px;gap:8px}.placeholder-number{font-size:90px}.project-detail{padding:25px}.project-detail h2{font-size:30px}.project-detail p{font-size:15px}.gallery-footer{font-size:14px;padding:38px 5px 5px}}
@media(prefers-reduced-motion:reduce){.gallery-card.motion .placeholder-number{animation:none}.project-detail{animation:none}}
/* Image-only gallery, shared palette and edge-to-edge packed layout. */
.gallery-page{background:#181818;color:var(--paper)}.gallery-menu{display:grid;grid-template-columns:1fr auto 1fr;background:#181818a6;color:var(--paper);border-color:#FAF4E615;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px)}.gallery-menu nav{justify-self:end;font-weight:700}.gallery-main{padding:103px 8px 8px;max-width:none}.gallery-grid{grid-auto-rows:calc((100vw - 32px)/12);grid-auto-flow:row;gap:8px}.gallery-card{background:var(--purple);border-radius:9px;grid-column:auto;grid-row:auto}.card-button{padding:0}.gallery-card:nth-child(1){grid-area:1/1/5/5}.gallery-card:nth-child(2){grid-area:1/5/3/10}.gallery-card:nth-child(3){grid-area:1/10/5/13}.gallery-card:nth-child(4){grid-area:3/5/5/8}.gallery-card:nth-child(5){grid-area:3/8/5/10}.gallery-card:nth-child(6){grid-area:5/1/9/7}.gallery-card:nth-child(7){grid-area:5/7/7/10}.gallery-card:nth-child(8){grid-area:5/10/9/13}.gallery-card:nth-child(9){grid-area:7/7/9/10}.gallery-card:nth-child(10){grid-area:9/1/13/5}.gallery-card:nth-child(11){grid-area:9/5/11/10}.gallery-card:nth-child(12){grid-area:9/10/13/13}.gallery-card:nth-child(13){grid-area:11/5/13/8}.gallery-card:nth-child(14){grid-area:11/8/13/10}.gallery-grid.has-selection .gallery-card:not(.selected){opacity:.22;filter:brightness(.6)}.project-detail{background:var(--paper);color:var(--ink);border-color:#18181833}.project-detail p{color:var(--ink)}.gallery-card.motion .abstract-placeholder:before{animation:placeholder-drift 5s ease-in-out 1 alternate}.gallery-card:hover{transform:scale(1.018)}@keyframes placeholder-drift{from{opacity:.4;translate:0 -8%}to{opacity:1;translate:0 0}}.card-button:focus-visible{outline-color:var(--paper)}
@media(min-width:1600px){.gallery-grid{grid-auto-rows:calc((100vw - 32px)/12)}}
@media(max-width:1000px){.gallery-menu .identity{flex-direction:column;align-items:flex-start;gap:4px}.gallery-menu .profession{font-size:9px}.gallery-menu{gap:18px}}
@media(max-width:700px){.gallery-menu{grid-template-columns:1fr auto auto;padding:18px 14px;gap:12px}.gallery-menu nav{gap:12px;font-size:10px}.gallery-menu .profession{display:block;font-size:7px}.gallery-menu .social-icons{gap:5px}.gallery-menu .wordmark{font-size:24px}.gallery-main{padding:90px 6px 6px}.gallery-grid{grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:calc((100vw - 24px)/7);gap:6px}.gallery-card{border-radius:6px}.gallery-menu .social-icons a{width:18px}.gallery-menu .social-icons svg{width:18px;height:18px}.gallery-menu .social-icons span{font-size:17px}.pattern-3:before{border-width:10px}}
@media(prefers-reduced-motion:reduce){.gallery-card.motion .abstract-placeholder:before{animation:none}}
