:root{
  --paper:#f5f3ee;
  --ink:#111;
  --muted:#77726b;
  --line:#d7d2ca;
  --black:#080808;
  --white:#f7f5ef;
  --accent:#ee4b2b;
  --max:1540px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif}
a{color:inherit;text-decoration:none}
img{display:block;width:100%;height:100%;object-fit:contain}
figure{margin:0}
.site-header{
  position:sticky;top:0;z-index:40;
  display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:28px;
  padding:18px 30px;border-bottom:1px solid rgba(0,0,0,.12);
  background:rgba(245,243,238,.92);backdrop-filter:blur(14px)
}
.brand{font-weight:800;font-size:21px;letter-spacing:.05em}
.nav{display:flex;gap:20px;align-items:center}
.nav a,.lang{font-size:10px;letter-spacing:.13em;font-weight:700}
.lang{border:0;background:transparent;padding:5px;cursor:pointer}
.hero{
  max-width:var(--max);margin:auto;
  min-height:calc(100vh - 62px);
  display:grid;grid-template-columns:1.25fr .75fr;
  border-bottom:1px solid var(--line)
}
.hero-art{position:relative;min-height:760px;padding:0;overflow:hidden;background:#090909}
.hero-art img{position:absolute;inset:0;display:block;width:100%;height:100%;max-height:none;object-fit:cover;object-position:center}
.hero-copy{padding:70px 48px 60px;display:flex;flex-direction:column;justify-content:flex-end;border-left:1px solid var(--line)}
.kicker,.label,.number{font-size:10px;letter-spacing:.16em;font-weight:700;text-transform:uppercase;color:var(--muted)}
h1{font-size:clamp(78px,10vw,170px);letter-spacing:-.07em;line-height:.8;margin:22px 0 30px}
.hero-sub{font-size:23px;margin:0 0 20px}
.hero-text{font-size:18px;line-height:1.45;max-width:460px;color:#3b3935}
.view-link{margin-top:42px;font-size:11px;letter-spacing:.14em;font-weight:700}
.series{padding:105px max(30px,calc((100vw - var(--max))/2 + 30px));border-bottom:1px solid var(--line)}
.series-intro{display:grid;grid-template-columns:70px 1.05fr 1fr;gap:40px;align-items:start;margin-bottom:70px}
.series h2,.films h2,.about h2,.contact h2{font-size:clamp(54px,7vw,112px);line-height:.88;letter-spacing:-.06em;margin:7px 0 0}
.series-text{font-size:19px;line-height:1.5;max-width:600px;margin:20px 0 0}
.gallery{display:grid;grid-template-columns:repeat(12,1fr);gap:20px}
.gallery figure{background:#e9e6df;display:flex;flex-direction:column;min-height:540px}
.gallery figure img{background:transparent;padding:0;object-fit:cover;flex:1 1 0;min-height:0}
.gallery figcaption{padding:13px 0 4px;font-size:12px;line-height:1.4;color:var(--muted);background:inherit}
.gallery-native figure:nth-child(1){grid-column:span 7;min-height:760px}
.gallery-native figure:nth-child(2){grid-column:span 5;min-height:760px}
.gallery-native figure:nth-child(3){grid-column:span 5;min-height:650px}
.gallery-native figure:nth-child(4){grid-column:span 7;min-height:650px}
.series-dark{background:#070707;color:var(--white);border-color:#222}
.series-dark .series-text,.series-dark .number,.series-dark .label,.series-dark figcaption{color:#aaa49c}
.series-dark .gallery figure{background:#070707}
.bloom-grid figure:nth-child(1){grid-column:span 6;min-height:760px}
.bloom-grid figure:nth-child(2){grid-column:span 3;min-height:760px}
.bloom-grid figure:nth-child(3){grid-column:span 3;min-height:760px}
.origami-grid figure{grid-column:span 6;min-height:620px}
.origami-grid figure img{background:#ece9e2}
.cartela{background:#fff}
.cartela-grid figure{grid-column:span 6;min-height:760px}
.cartela-grid figure img{background:#fff}
.films{
  background:#111;color:#f3f0e9;
  padding:110px max(30px,calc((100vw - var(--max))/2 + 30px))
}
.films-head{display:grid;grid-template-columns:70px 1fr 1fr;gap:40px;align-items:start;margin-bottom:60px}
.films-head>p:last-child{font-size:18px;line-height:1.5;color:#aaa59d;max-width:560px}
.film-row{display:grid;grid-template-columns:120px .85fr 1.4fr;gap:35px;padding:25px 0;border-top:1px solid #333;align-items:start}
.film-row:last-child{border-bottom:1px solid #333}
.film-row span{font-size:11px;color:#858079}
.film-row strong{font-size:26px}
.film-row p{margin:0;color:#bbb5ac;line-height:1.45}
.about{
  max-width:var(--max);margin:auto;padding:110px 30px;
  display:grid;grid-template-columns:1fr 1.2fr;gap:90px;border-bottom:1px solid var(--line)
}
.about-title .number{margin-bottom:30px}
.about-copy .lead{font-size:32px;line-height:1.22;margin:0 0 30px}
.about-copy p:last-child{font-size:18px;line-height:1.55;max-width:760px}
.trajectory{max-width:var(--max);margin:auto;padding:70px 30px 105px}
.trajectory-grid{margin-top:24px;border-top:1px solid var(--line)}
.trajectory-grid div{display:grid;grid-template-columns:180px 1fr;padding:20px 0;border-bottom:1px solid var(--line)}
.trajectory-grid span{font-size:10px;letter-spacing:.13em;color:var(--muted);font-weight:700}
.trajectory-grid p{font-size:18px;margin:0}
.contact{
  padding:90px max(30px,calc((100vw - var(--max))/2 + 30px));
  background:#f05a2c;color:#111;
  display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:end
}
.contact .label{color:#3e1c13}
.contact-links{display:flex;flex-direction:column;gap:14px;font-size:22px}
.contact-links a:hover{text-decoration:underline}
footer{display:flex;justify-content:space-between;padding:22px max(30px,calc((100vw - var(--max))/2 + 30px));font-size:10px;letter-spacing:.12em;background:#111;color:#eee}

@media(max-width:980px){
  .site-header{grid-template-columns:1fr auto}.nav{display:none}
  .hero{grid-template-columns:1fr}.hero-art{min-height:62vh}.hero-copy{border-left:0;border-top:1px solid var(--line);padding:45px 24px}
  .series{padding:76px 24px}.series-intro,.films-head{grid-template-columns:1fr;gap:16px}.series-intro{margin-bottom:45px}
  .gallery{grid-template-columns:1fr}.gallery figure,.gallery-native figure:nth-child(n),.bloom-grid figure:nth-child(n),.origami-grid figure,.cartela-grid figure{grid-column:auto;min-height:520px}
  .films{padding:80px 24px}.film-row{grid-template-columns:75px 1fr}.film-row p{grid-column:2}
  .about{grid-template-columns:1fr;padding:80px 24px;gap:45px}.about-copy .lead{font-size:26px}
  .trajectory{padding:65px 24px 85px}.trajectory-grid div{grid-template-columns:105px 1fr}
  .contact{grid-template-columns:1fr;padding:70px 24px}
}
@media(max-width:560px){
  h1{font-size:74px}
  .series h2,.films h2,.about h2,.contact h2{font-size:50px}
  .gallery figure,.gallery-native figure:nth-child(n),.bloom-grid figure:nth-child(n),.origami-grid figure,.cartela-grid figure{min-height:430px}
  .film-row{grid-template-columns:1fr}.film-row p{grid-column:1}
  .trajectory-grid div{grid-template-columns:1fr;gap:8px}
}


/* Portfolio gallery: natural proportions, full size, responsive layout. */
html { scroll-padding-top: 80px; }
.hero {
  grid-template-columns: minmax(0,1.12fr) minmax(0,.88fr);
  min-height: 0;
  align-items: start;
}
.hero-art {
  position: static;
  height: auto;
  min-height: 0;
  overflow: visible;
  padding: 0;
  background: transparent;
}
.hero-art img {
  position: static;
  display: block;
  max-height: none;
  width: 100%;
  height: auto;
  object-fit: contain;
  object-position: center;
}
.hero-copy {
  min-width: 0;
  padding: clamp(28px,4vw,60px);
  align-self: stretch;
}
.hero-copy h1 {
  font-size: clamp(54px,7vw,120px);
  margin: 18px 0 26px;
  line-height: .9;
  white-space: nowrap;
}
.hero-copy .hero-text { font-size: clamp(15px,1.4vw,18px); line-height:1.55; }
.series {
  padding: clamp(65px,7vw,105px) max(24px,calc((100vw - var(--max))/2 + 32px));
}
.series-intro {
  display: grid;
  grid-template-columns: 58px minmax(0,1fr) minmax(0,1fr);
  gap: clamp(16px,3vw,42px);
  align-items: start;
}
.series-intro > * { min-width: 0; }
.series h2 {
  font-size: clamp(40px,5.4vw,86px);
  line-height: .95;
  margin: 8px 0 0;
  letter-spacing: -.055em;
  overflow-wrap: anywhere;
}
.series-text {
  font-size: clamp(15px,1.35vw,19px);
  line-height: 1.58;
  margin: 0;
  max-width: 700px;
  overflow-wrap: break-word;
}
.gallery,
.gallery.bloom-grid {
  display: block;
  column-count: 2;
  column-gap: clamp(22px,3vw,42px);
  grid-template-columns: none;
}
.gallery figure,
.gallery figure:nth-child(n),
.gallery-native figure:nth-child(n),
.bloom-grid figure:nth-child(n),
.origami-grid figure:nth-child(n),
.cartela-grid figure:nth-child(n),
.series-dark .gallery figure {
  display: inline-block;
  width: 100%;
  min-width: 0;
  min-height: 0;
  height: auto;
  margin: 0 0 clamp(28px,4vw,52px);
  background: transparent;
  break-inside: avoid;
  page-break-inside: avoid;
  grid-column: auto;
  vertical-align: top;
}
.gallery figure img,
.origami-grid figure img,
.cartela-grid figure img {
  display: block;
  width: 100%;
  height: auto;
  max-width: 100%;
  min-height: 0;
  max-height: none;
  flex: none;
  object-fit: contain;
  background: transparent;
  padding: 0;
  cursor: zoom-in;
}
.gallery figcaption {
  margin-top: 10px;
  padding: 0 2px;
  background: transparent;
  font-size: 12px;
  line-height: 1.45;
}
.gallery img:focus-visible { outline: 3px solid var(--accent); outline-offset: 4px; }
.art-dialog {
  border: none;
  padding: 50px clamp(46px,7vw,110px) 24px;
  position: fixed;
  inset: 0;
  background: #090909;
  color: #f7f5ef;
  width: 100vw;
  max-width: none;
  height: 100dvh;
  max-height: none;
  box-sizing: border-box;
  overflow: auto;
}
.art-dialog::backdrop { background: rgba(0,0,0,.96); }
.art-dialog figure { margin: 0; display: grid; justify-items: center; align-content: center; min-height: calc(100dvh - 100px); }
.art-dialog img {
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: calc(100dvh - 140px);
  object-fit: contain;
  display: block;
}
.art-dialog figcaption { font-size: 13px; letter-spacing: .025em; text-align: center; margin: 16px 0 0; color: #c9c4bc; }
.art-dialog button {
  position: fixed;
  display: grid;
  place-items: center;
  z-index: 5;
  border: 1px solid rgba(255,255,255,.45);
  border-radius: 50%;
  background: rgba(5,5,5,.75);
  color: white;
  width: 38px;
  height: 38px;
  cursor: pointer;
  font-size: 22px;
}
.art-dialog .art-close { right: 17px; top: 16px; font-size: 26px; }
.art-dialog .art-prev { left: 10px; top: 50%; }
.art-dialog .art-next { right: 10px; top: 50%; }
@media (max-width: 1240px) {
  .series-intro { grid-template-columns: 46px minmax(0,1fr); }
  .series-intro .series-text { grid-column: 2; }
  .hero { grid-template-columns: 1fr; }
  .hero-copy { border-left: 0; border-top: 1px solid var(--line); }
}
@media (max-width: 680px) {
  .gallery,
  .gallery.bloom-grid { column-count: 1; }
  .series { padding: 68px 22px; }
  .series-intro { grid-template-columns: 1fr; gap: 12px; margin-bottom: 34px; }
  .series-intro .series-text { grid-column: 1; }
  .series h2 { font-size: clamp(42px,11vw,68px); }
  .hero-copy { padding: 40px 22px; }
  .hero-copy h1 { font-size: clamp(54px,13vw,88px); }
  .art-dialog { padding: 58px 42px 24px; }
}


/* Paintings: full artwork with framing shown, no zoom-crop. */
.paintings-series { background: #eeeae3; }
.paintings-grid { column-count: 2; column-gap: clamp(26px,3vw,54px); }
.paintings-grid figure, .paintings-grid figure:nth-child(n) { display: inline-block; width: 100%; break-inside: avoid; margin: 0 0 30px; }
.paintings-grid img { display: block; width: 100%; height: auto; object-fit: contain; }
.nav { flex-wrap: wrap; justify-content: flex-end; row-gap: 10px; }
@media (max-width: 680px) { .paintings-grid { column-count: 1; } }

/* Added original portfolio projects — no image cropping. */
.new-project .gallery { column-count: 2; column-gap: clamp(22px, 3vw, 42px); }
.new-project .gallery figure { display: inline-block; width: 100%; break-inside: avoid; margin-bottom: clamp(28px,4vw,52px); }
.new-project .gallery img { width: 100%; height: auto; object-fit: contain; max-height: none; }
#editorial { background: #f4f2ec; }
#urbanos { background: #121212; color: #f4f2ea; }
#urbanos .series-text, #urbanos .number, #urbanos .label, #urbanos figcaption { color: #b8b3aa; }
.site-header .nav { gap: 12px 16px; }
@media (max-width: 680px) {
  .new-project .gallery { column-count: 1; }
}


/* Wix CMS live galleries. Keep source photography and paintings uncropped. */
#cms-portfolio-root[hidden] { display: none !important; }
#cms-portfolio-root .gallery img { width: 100%; height: auto; max-height: none; object-fit: contain; }
#cms-portfolio-root .gallery figure { break-inside: avoid; }
#cms-portfolio-root .series .series-intro > * { min-width: 0; }

/* Hero name visible immediately at the top on desktop and mobile. */
.hero-copy { justify-content: flex-start; }
@media (max-width: 1240px) {
  .hero-copy { order: -1; }
}

/* SOUZA Films: click-to-play, external fallback, on-demand iframe. */
.film-title-link { display: inline-flex; flex-direction: column; align-items: flex-start; gap: 9px; width: fit-content; }
.film-title-link strong { color: #f3f0e9; }
.film-title-link:hover strong, .film-title-link:focus-visible strong { text-decoration: underline; text-underline-offset: 5px; }
.film-watch-label { color: #a9a39b; font-size: 10px; letter-spacing: .14em; font-weight: 700; }
.film-dialog { position: fixed; inset: 0; margin: auto; border: 1px solid #383838; padding: clamp(20px, 3vw, 42px); width: min(94vw, 1180px); max-width: 1180px; max-height: 94dvh; overflow: auto; background: #0a0a0a; color: #f3f0e9; }
.film-dialog::backdrop { background: rgba(0,0,0,.92); }
.film-dialog h3 { font-size: clamp(20px,3vw,36px); margin: 4px 38px 22px 0; line-height: 1.12; }
.film-frame { width: 100%; aspect-ratio: 16/9; background: #000; }
.film-frame iframe { display: block; border: 0; width: 100%; height: 100%; }
.film-close { position: absolute; right: 14px; top: 12px; border: 1px solid #aaa; background: #111; color: #fff; border-radius: 50%; width: 37px; height: 37px; cursor: pointer; font-size: 25px; }
.film-external { display: inline-block; font-size: 11px; letter-spacing: .09em; padding-top: 20px; color: #f2d6c6; }
.film-external:hover, .film-external:focus-visible { text-decoration: underline; }
@media (max-width:680px) { .film-dialog { width: 96vw; padding: 42px 10px 22px; } .film-dialog h3 { padding: 0 12px; } .film-external { padding: 16px 12px 0; } }

/* SOUZA / Small Works: distinguish original 8×11 cm paper works. */
#small-works { background: #faf9f6; }
#small-works .gallery, #cms-portfolio-root #small-works .gallery { display: block; column-count: 3; column-gap: clamp(18px, 2.2vw, 34px); }
#small-works .gallery figure, #cms-portfolio-root #small-works .gallery figure, #small-works .gallery figure:nth-child(n) { display: inline-block; width: 100%; margin: 0 0 clamp(24px, 3vw, 42px); break-inside: avoid; min-height: 0; background: transparent; }
#small-works .gallery figure img, #cms-portfolio-root #small-works .gallery img { width: 100%; height: auto; max-height: none; object-fit: contain; }
#small-works .gallery figcaption { padding-top: 12px; background: transparent; }
@media (max-width: 1100px) { #small-works .gallery, #cms-portfolio-root #small-works .gallery { column-count: 2; } }
@media (max-width: 620px) { #small-works .gallery, #cms-portfolio-root #small-works .gallery { column-count: 1; } }

/* SOUZA Films: visible watch buttons for YouTube videos. */
#films .film-title-link { display:inline-flex; flex-direction:column; align-items:flex-start; gap:15px; text-decoration:none; max-width:100%; }
#films .film-title-link strong { color:#f3f0e9; }
#films .film-title-link .film-watch-label { display:inline-flex; align-items:center; justify-content:center; box-sizing:border-box; min-height:46px; padding:13px 18px; color:#111; background:#f4f0e9; border:1px solid #f4f0e9; border-radius:2px; font-size:11px; font-weight:800; letter-spacing:.105em; text-transform:uppercase; text-align:center; line-height:1.35; cursor:pointer; transition:background .15s ease, border-color .15s ease; }
#films .film-title-link:hover .film-watch-label, #films .film-title-link:focus-visible .film-watch-label { background:#f05a2c; border-color:#f05a2c; color:#101010; }
#films .film-title-link:focus-visible { outline:2px solid #f05a2c; outline-offset:5px; }
@media (max-width: 560px) { #films .film-title-link .film-watch-label { width:auto; min-height:48px; } }

/* SOUZA discreet personal monogram in the page header. */
.site-header .brand { display:inline-flex; align-items:center; gap:12px; width:max-content; max-width:100%; text-decoration:none; }
.site-header .brand .brand-mark { display:block; width:32px; height:32px; border-radius:50%; object-fit:cover; flex:0 0 32px; background:#000; }
.site-header .brand span { white-space:nowrap; }
@media (max-width:680px) { .site-header .brand { gap:9px; } .site-header .brand .brand-mark { width:27px; height:27px; flex-basis:27px; } }

/* SOUZA square Small Works paper frames: wood, white passe-partout, subtle glass; artwork unchanged. */
#small-works .gallery .square-paper-work .paper-frame {box-sizing:border-box;width:100%;padding:clamp(5px,.65vw,9px);border:1px solid #b88d61;background:linear-gradient(120deg,#bb9367,#e6c396 18%,#c59c6e 42%,#dbb78b 66%,#b78a5e);box-shadow:0 5px 14px rgba(39,27,18,.12),1px 2px 3px rgba(39,27,18,.10)}
#small-works .gallery .square-paper-work .paper-mat {box-sizing:border-box;position:relative;width:100%;padding:clamp(19px,3.6vw,48px);border:1px solid #f4f0e8;background:#f9f8f4;box-shadow:inset 0 2px 4px rgba(0,0,0,.07)}
#small-works .gallery .square-paper-work .paper-mat > img {display:block;width:100%;height:auto;aspect-ratio:1/1;object-fit:contain;flex:none;min-height:0;background:transparent}
#small-works .gallery .square-paper-work .paper-mat::after {content:"";position:absolute;inset:0;background:linear-gradient(132deg,rgba(255,255,255,.14),transparent 26%,transparent 79%,rgba(255,255,255,.065));pointer-events:none}
