.loading{padding:100px 7%}.project-intro{padding:60px 7% 65px}.back-link{display:inline-block;font-size:12px;border-bottom:1px solid var(--line);padding-bottom:7px}.project-heading{display:grid;grid-template-columns:1.15fr 1fr;align-items:end;gap:7%;margin-top:60px}.project-category{font-size:12px;margin:0 0 20px}.project-intro h1{font-size:clamp(45px,6.5vw,100px);line-height:1.08;letter-spacing:-.06em;font-weight:500;max-width:1000px;margin:0;overflow-wrap:break-word}.project-lead{font-size:clamp(17px,1.5vw,22px);line-height:1.7;margin:0;max-width:580px}.project-meta{display:flex;justify-content:space-between;align-items:center;gap:20px;font-size:11px;color:var(--muted);margin-top:35px}.project-meta a{color:var(--ink);border-bottom:1px solid var(--line);padding-bottom:5px}.project-hero{padding:0 3%}.photo-entry{margin:0;min-width:0}.gallery-photo{padding:0;border:0;background:var(--gray);display:block;width:100%;cursor:zoom-in}.gallery-photo img{display:block;width:100%;height:auto}.hero-entry img{max-height:92svh;object-fit:contain}.photo-entry figcaption{font-size:12px;line-height:1.6;color:var(--muted);padding-top:12px;max-width:600px}.project-story{display:grid;grid-template-columns:1fr 1.15fr;gap:10%;padding:85px 11%;align-items:start}.project-story h2{font-size:clamp(28px,3.2vw,48px);line-height:1.15;letter-spacing:-.045em;font-weight:500;margin:0;max-width:450px}.project-story p{font-size:16px;line-height:1.85;max-width:610px;margin:0 0 20px}.project-story p:last-child{margin-bottom:0}.photo-gallery{padding:0 7% 80px;display:grid;grid-template-columns:1fr 1fr;gap:40px 30px;align-items:start;margin-top:50px}.photo-wide{grid-column:1/-1;margin-top:30px;margin-bottom:30px}.photo-wide img{max-height:95svh;object-fit:contain}.photo-gallery .project-chapter{grid-column:1/-1;padding:65px 5%;margin:15px 0;background:var(--gray)}.project-closing{border-top:1px solid var(--line)}.project-benefits{padding:0 11% 75px;display:grid;grid-template-columns:1fr 1.15fr;gap:10%}.project-benefits h2{font-size:13px;letter-spacing:0;font-weight:500;margin:0}.project-benefits ul{padding-left:18px;margin:0;display:grid;gap:12px;font-size:14px;line-height:1.65}.project-navigation{border-top:1px solid var(--line);padding:35px 7%;display:flex;justify-content:space-between;gap:35px;font-size:20px}.project-navigation a{max-width:45%;line-height:1.5}.project-navigation a span{display:block;font-size:10px;color:var(--muted);margin-bottom:8px}.project-navigation a:last-child{text-align:right}.project-contact{background:var(--gray);padding:70px 7%;display:flex;align-items:end;justify-content:space-between;gap:35px}.project-contact h2{font-size:clamp(32px,4vw,60px);font-weight:500;line-height:1.1;letter-spacing:-.05em;max-width:650px;margin:0}.project-contact a{font-size:13px;padding-bottom:8px;border-bottom:1px solid;white-space:nowrap}#photo-viewer{background:#191919;color:#fff;border:0;padding:20px;width:96vw;max-width:1600px;height:94svh;max-height:94svh;overflow:hidden}#photo-viewer::backdrop{background:#000c}.viewer-toolbar{display:flex;justify-content:space-between;align-items:center;font-size:12px}.viewer-toolbar button,.viewer-image button{background:transparent;border:0;color:white;padding:12px}.viewer-toolbar button:focus-visible,.viewer-image button:focus-visible{outline-color:#fff}.viewer-image{height:calc(100% - 100px);display:grid;grid-template-columns:40px 1fr 40px;align-items:center;gap:10px}.viewer-image img{width:100%;height:100%;min-height:0;object-fit:contain}.viewer-image button{font-size:25px}#photo-viewer>p{font-size:11px;text-align:center;color:#bbb}body:has(#photo-viewer[open]){overflow:hidden}@media(max-width:900px){.project-heading{gap:40px;grid-template-columns:1fr}.project-lead{max-width:650px}.project-meta{max-width:650px}.project-story{padding:65px 7%;gap:7%}.project-story p{font-size:15px}.project-benefits{padding:0 7% 65px}}@media(max-width:600px){.project-intro{padding:40px 6%}.project-heading{margin-top:40px;gap:30px}.project-intro h1{font-size:12vw}.project-lead{font-size:17px}.project-meta{margin-top:25px}.project-hero{padding:0}.hero-entry figcaption{padding-left:6%;padding-right:6%}.hero-entry img{max-height:85svh}.project-story{grid-template-columns:1fr;padding:55px 6%;gap:25px}.project-story h2{font-size:32px}.project-story p{font-size:15px;line-height:1.8}.photo-gallery{padding:0 6% 45px;grid-template-columns:1fr;gap:25px;margin-top:25px}.photo-wide{grid-column:auto;margin:0}.photo-gallery .project-chapter{padding:35px 20px;margin:15px -6.8%}.project-benefits{grid-template-columns:1fr;gap:25px;padding:0 6% 50px}.project-navigation{padding:25px 6%;font-size:15px}.project-contact{padding:50px 6%;align-items:start;flex-direction:column}.project-contact a{white-space:normal}#photo-viewer{padding:10px;width:100vw;height:100svh;max-height:100svh}.viewer-image{grid-template-columns:28px 1fr 28px;gap:0}.viewer-image button{padding:4px;font-size:24px}}
.project-tags{display:flex;flex-wrap:wrap;gap:8px 18px;list-style:none;margin:22px 0 0;padding:0;font-size:11px;color:var(--muted)}.project-contact>div{max-width:680px}.project-contact>div>p{max-width:550px;font-size:15px;line-height:1.75;margin:25px 0 0}
.project-presentation{padding:75px 7%;background:#e9e8e4;margin-bottom:60px}.presentation-heading{display:grid;grid-template-columns:1fr 1.15fr;gap:10%;margin-bottom:45px}.presentation-heading h2{font-size:clamp(30px,3.4vw,50px);font-weight:500;letter-spacing:-.05em;line-height:1.1;margin:0}.presentation-heading p{font-size:17px;line-height:1.7;margin:0;max-width:600px}.presentation-items{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:35px}.presentation-items article{border-top:1px solid #bdbdb7;padding-top:25px}.presentation-items h3{font-size:22px;font-weight:500;letter-spacing:-.7px}.presentation-items p{font-size:14px;line-height:1.8}.presentation-note{font-size:11px;line-height:1.7;color:#626260;max-width:700px;margin:35px 0 0}@media(max-width:700px){.project-presentation{padding:55px 6%;margin-bottom:35px}.presentation-heading{grid-template-columns:1fr;gap:25px;margin-bottom:35px}.presentation-heading p{font-size:16px}.presentation-items{grid-template-columns:1fr;gap:25px}.presentation-items h3{font-size:23px}}

/* Compact, proportion-preserving gallery inspired by photographic proofing layouts. */
.project-intro{padding-top:40px;padding-bottom:35px}.project-heading{margin-top:30px}.project-hero{padding:0 5%}.hero-entry img{width:100%;height:420px;max-height:55svh;object-fit:contain}.project-story{padding:45px 7%;gap:7%}.project-story h2{font-size:clamp(25px,2.7vw,39px)}.project-story p{font-size:14px;line-height:1.75}.photo-gallery{display:block;columns:3;column-gap:14px;padding:0 4% 35px;margin-top:20px}.photo-gallery .photo-entry{display:block;break-inside:avoid;margin:0 0 14px;page-break-inside:avoid}.photo-gallery .photo-entry img{display:block;width:100%;height:auto;max-height:none;object-fit:contain}.photo-gallery .gallery-photo{display:block;width:100%}.photo-gallery .photo-wide{margin:0 0 14px}.photo-gallery .project-chapter{column-span:all;display:grid;margin:15px 0 28px;padding:28px 3%;background:transparent;border-top:1px solid var(--line)}.photo-entry figcaption{font-size:10px;padding-top:7px;line-height:1.5}.project-closing{padding-top:40px;padding-bottom:40px}@media(min-width:1500px){.photo-gallery{columns:4}}@media(max-width:900px){.photo-gallery{columns:2;column-gap:12px}.hero-entry img{height:340px}.project-story{padding:35px 6%}}@media(max-width:600px){.project-intro{padding:30px 6%}.project-heading{margin-top:25px;gap:20px}.project-lead{font-size:15px}.project-meta{margin-top:18px}.project-hero{padding:0 4%}.hero-entry img{height:280px;max-height:42svh}.photo-gallery{columns:2;column-gap:8px;padding:0 3% 25px;margin-top:15px}.photo-gallery .photo-entry,.photo-gallery .photo-wide{margin-bottom:8px}.photo-gallery .project-chapter{display:block;padding:22px 3%;margin:20px 0}.photo-gallery .project-chapter h2{font-size:24px;margin-bottom:14px}.project-story p{font-size:13px}.photo-entry figcaption{font-size:9px;padding-top:5px}}

.experience-index{display:flex;gap:12px 24px;flex-wrap:wrap;margin:0 5% 45px;padding:20px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.experience-index a{font-size:12px;line-height:1.5;padding:6px 0;border-bottom:1px solid transparent}.experience-index a:hover{border-color:currentColor}.personal-experience{scroll-margin-top:100px;margin-bottom:40px}.experience-heading{padding:30px 5% 25px;display:grid;grid-template-columns:1.15fr 1fr;gap:10%}.experience-heading h2{font-size:clamp(30px,4vw,56px);font-weight:500;letter-spacing:-.05em;line-height:1.1;margin-bottom:18px}.experience-heading .experience-lead{font-size:17px;max-width:510px;line-height:1.55}.experience-heading p{font-size:14px;line-height:1.8;max-width:560px}.experience-count{display:block;font-size:11px;color:var(--muted);padding-top:5px}.personal-experience+.personal-experience{border-top:1px solid var(--line);padding-top:25px}.personal-experience .photo-gallery{padding-bottom:15px}@media(max-width:650px){.experience-index{gap:9px 17px;margin-bottom:20px}.experience-index a{font-size:11px}.experience-heading{grid-template-columns:1fr;gap:12px;padding:25px 5% 15px}.experience-heading h2{font-size:33px}.experience-heading .experience-lead{font-size:15px}.experience-heading p{font-size:13px}.personal-experience{margin-bottom:25px}}
/* Horizontal photographs interrupt the compact gallery as editorial spreads. */
.photo-gallery .photo-landscape{column-span:all;display:block;width:100%;margin:30px 0 38px;break-inside:avoid}
.photo-gallery .photo-landscape .gallery-photo{background:transparent}
.photo-gallery .photo-landscape img{width:100%;height:auto;max-height:78svh;object-fit:contain}
.photo-gallery .photo-landscape figcaption{max-width:760px;font-size:12px;padding:12px 0 0}
.project-hero:has(.photo-landscape){padding:0 4%}
.hero-entry.photo-landscape img{height:auto;max-height:78svh;object-fit:contain}
@media(max-width:600px){.photo-gallery .photo-landscape{margin:18px 0 23px}.photo-gallery .photo-landscape img{max-height:none}.photo-gallery .photo-landscape figcaption{font-size:10px;padding-top:8px}.hero-entry.photo-landscape img{height:auto;max-height:none}}
/* Opening images fill their frame without letterboxing. */
.project-hero .hero-entry .gallery-photo{height:min(72svh,850px);background:transparent;overflow:hidden}
.project-hero .hero-entry img{display:block;width:100%;height:100%;max-height:none;object-fit:cover;object-position:center 35%}
.project-hero .hero-entry.photo-landscape .gallery-photo{height:auto;aspect-ratio:16/9;max-height:78svh}
.project-hero .hero-entry.photo-landscape img{height:100%;max-height:none;object-fit:cover;object-position:center}
@media(max-width:600px){.project-hero .hero-entry .gallery-photo{height:68svh}.project-hero .hero-entry.photo-landscape .gallery-photo{height:auto;aspect-ratio:3/2;max-height:none}.project-hero .hero-entry img{height:100%;max-height:none}}
/* Portrait service: a consistent grid, with horizontal images as spreads. */
body[data-project-slug="retratos"] .photo-gallery{display:grid;columns:auto;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;align-items:start}
body[data-project-slug="retratos"] .photo-gallery .photo-entry{margin:0;width:100%}
body[data-project-slug="retratos"] .photo-gallery .photo-entry:not(.photo-landscape) img{aspect-ratio:2/3;object-fit:cover;object-position:center 35%}
body[data-project-slug="retratos"] .photo-gallery .photo-landscape{grid-column:1/-1;margin:20px 0;column-span:none}
body[data-project-slug="retratos"] .photo-gallery .project-chapter{grid-column:1/-1;margin:20px 0;padding:30px 0}
@media(max-width:700px){body[data-project-slug="retratos"] .photo-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}body[data-project-slug="retratos"] .photo-gallery .photo-landscape{margin:12px 0}}
.project-navigation{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;padding:45px 7%;background:#e8e7e3}
.project-navigation>a{display:block;max-width:none;background:#f8f7f4;border:1px solid #d1d0ca;overflow:hidden;transition:box-shadow .3s,transform .3s}
.project-navigation>a:last-child{text-align:left}
.navigation-preview{overflow:hidden;aspect-ratio:16/9;background:#d8d8d2}
.navigation-preview img{width:100%;height:100%;object-fit:cover;object-position:center 35%;transition:transform .6s cubic-bezier(.22,1,.36,1)}
.navigation-caption{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 22px}
.navigation-caption strong{font-size:clamp(20px,2.5vw,32px);font-weight:500;letter-spacing:-.04em;line-height:1.15;display:block}
.navigation-caption svg{width:34px;height:34px;flex:none;fill:none;stroke:currentColor;stroke-width:1.5;border:1px solid #aaa9a2;border-radius:50%;padding:7px;transition:background .25s,color .25s}
.project-navigation>a:hover{transform:translateY(-3px);box-shadow:0 12px 25px #0001}.project-navigation>a:hover img{transform:scale(1.04)}.project-navigation>a:hover svg{background:#242424;color:#fff}
@media(max-width:600px){.project-navigation{padding:28px 4%;gap:12px}.navigation-caption{padding:14px 12px;gap:8px}.navigation-caption strong{font-size:18px}.navigation-caption svg{width:27px;height:27px;padding:5px}.project-navigation a span{font-size:9px}.navigation-preview{aspect-ratio:4/3}}
