/* Cerezo, Inc. — Projects page styles */
.page-hero{padding:clamp(56px,7vw,104px) var(--gutter) clamp(40px,5vw,72px)}
.page-hero h1{font-size:clamp(52px,7vw,96px);font-weight:380;letter-spacing:-.025em;line-height:.98;margin:0 0 18px}
.ed{margin:0 0 clamp(72px,9vw,128px)}
.ed-head{max-width:var(--wrap);margin:0 auto 28px;padding:0 var(--gutter)}
.ed-head .kicker{margin-bottom:10px}
.ed-head h2,.ed-head h3{margin:0;font-family:var(--serif);font-weight:400;font-size:clamp(32px,4.2vw,56px);line-height:1.05;letter-spacing:-.015em;color:var(--ink)}
.ed-hero{position:relative;max-width:1400px;margin:0 auto;aspect-ratio:3/2;overflow:hidden;background:var(--deep)}
.ed-hero .ph{position:absolute;inset:0}
.ed-hero .ph img{width:100%;height:100%;object-fit:cover;object-position:var(--pos,50% 50%)}
.ed-intro{max-width:var(--wrap);margin:44px auto 40px;padding:0 var(--gutter);display:grid;grid-template-columns:1.7fr 1fr;gap:56px;align-items:start}
.ed-intro>p{font:300 clamp(19px,1.7vw,22px)/1.55 var(--serif);color:var(--deep);margin:0;max-width:60ch}
.ed-meta{margin:0;border-top:1.5px solid var(--deep);padding-top:6px;font-size:15px}
.ed-meta dt{font:600 11px/1.4 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--accent-hover);margin-top:14px}
.ed-meta dd{margin:2px 0 0;font-weight:500}
.mosaic{max-width:var(--wrap);margin:0 auto;padding:0 var(--gutter);display:flex;flex-direction:column;gap:12px}
.mrow{display:flex;gap:12px}
.mrow .ph{flex:var(--ar) 1 0;aspect-ratio:var(--ar);min-width:0}
.ph{display:block;position:relative;overflow:hidden;background:var(--sand);cursor:zoom-in}
button.ph{-webkit-appearance:none;appearance:none;border:0;border-radius:0;margin:0;padding:0;width:100%;font:inherit;color:inherit;text-align:left;line-height:normal;-webkit-tap-highlight-color:transparent}
.ph,.ph img,.ph .img-shield,dialog.lb,dialog.lb figure,dialog.lb img{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}
.ph .img-shield{z-index:2}
.ph img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.ph:hover img{transform:scale(1.02)}
.ph:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.collab-head{max-width:var(--wrap);margin:0 auto clamp(40px,5vw,64px);padding:clamp(48px,6vw,80px) var(--gutter) 0;border-top:1px solid var(--rule)}
.collab-head h2{margin-bottom:12px}
.projects-cta{padding:clamp(64px,8vw,112px) 0;text-align:center}
.projects-cta .cta-row{justify-content:center}
dialog.lb{border:0;padding:0;background:transparent;max-width:96vw;max-height:94vh;overflow:visible}
dialog.lb::backdrop{background:rgba(16,20,17,.92)}
dialog.lb figure{margin:0}
dialog.lb img{display:block;max-width:min(96vw,1600px);max-height:84vh;width:auto;height:auto;margin:0 auto}
dialog.lb figcaption{color:#eee;margin:.6rem auto 0;font-size:.9rem;text-align:center;max-width:70ch}
dialog.lb .lb-btn{position:fixed;background:rgba(0,0,0,.55);color:#fff;border:1px solid rgba(255,255,255,.5);border-radius:999px;width:48px;height:48px;font-size:24px;line-height:1;cursor:pointer;z-index:3}
dialog.lb .lb-btn:focus-visible{outline:3px solid #fff;outline-offset:2px}
dialog.lb .x{top:14px;right:14px}dialog.lb .pv{left:14px;top:50%;transform:translateY(-50%)}dialog.lb .nx{right:14px;top:50%;transform:translateY(-50%)}
@media(max-width:760px){
 .ed-hero{aspect-ratio:4/3}
 .ed-hero .ph img{object-position:var(--mpos,50% 50%)}
 .ed-intro{grid-template-columns:1fr;gap:20px;margin:24px auto 24px}
 .mosaic{padding:0 12px;gap:6px}.mrow{gap:6px}
 .mrow.r3{flex-wrap:wrap}
 .mrow.r3 .ph:first-child{flex-basis:100%}
 dialog.lb .pv,dialog.lb .nx{top:auto;bottom:16px;transform:none}
}
@media(prefers-reduced-motion:reduce){.ph img{transition:none}.ph:hover img{transform:none}}
