armona living ist ein junges Projektentwicklungsunternehmen mit Fokus auf modernes Wohnen für alle Altersgruppen. Im Zuge des Projekts entstehen am Thiersee 40 moderne Eigentumswohnungen, die durch ein zeitgemäßes Designkonzept überzeugen.  Für das Projekt habe ich die Visuelle Identität, Art Direction, Design und Development übernommen.

[service]

[tools in use]

[system]

2025

https://armona.living

Shiftify ist ein Unternehmen, das sich auf digitale Zeiterfassung für Notariate spezialisiert hat. Für dieses Projekt habe ich die visuelle Identität, Art Direction, das Design sowie die Entwicklung übernommen.

[service]

Webdesign

Development

Print

Branding

Art Direction

Interaktion

[tools in use]

Photoshop

Indesign

Illustrator

Figma

Bricks

Bricksforge

Advanced Themer


[system]

Wordpress

2025

https://shiftify.de/

Manuel Zoller ist Director of Photography (DoP). Für ihn habe ich das Design sowie die Entwicklung seiner Website übernommen und umgesetzt. Dabei lag mein Fokus auf der Gestaltung einer ansprechenden Typografie und der Entwicklung eines konsistenten Brandings, das seine Persönlichkeit und sein kreatives Schaffen optimal widerspiegelt.

[service]

Webdesign

Development

Branding

Art Direction

Animation

[tools in use]

Illustrator

Figma

Bricks

Bricksforge

Advanced Themer


[system]

Wordpress

2024

https://manuelzoller.com

Ich war für das vollständige Branding von Reduce Studio verantwortlich – einem exklusiven Schönheits- und Bodyforming-Studio in Thiersee, das sich auf ganzheitliche Körpermodellierung, Lymphdrainage und apparative Behandlungen zur Entgiftung, Entstauung und Hautstraffung spezialisiert. Mein Aufgabenbereich umfasste Art Direction, Logoentwicklung, Webdesign und -entwicklung sowie die Gestaltung sämtlicher Printmedien.

[service]

[tools in use]

[system]

2023

https://reduce-studio.at

[service]

[tools in use]

[system]

[service]

[tools in use]

[system]

[service]

[tools in use]

[system]

[service]

[tools in use]

[system]

[service]

[tools in use]

[system]

[service]

[tools in use]

[system]

[service]

[tools in use]

[system]

.blurr {
  filter: blur(50px);
  transition: filter 0.8s linear;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.12.5/gsap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.12.5/ScrambleTextPlugin.min.js"></script>

<script>
document.addEventListener("DOMContentLoaded", function () {
  const cards = document.querySelectorAll(".media");
  const headings = document.querySelectorAll(".marquee-big-txt");

  if (!cards.length || !headings.length) return;

  // Originaltexte merken
  const originalTexts = Array.from(headings).map(h => h.textContent);

  cards.forEach(card => {
    card.addEventListener("mouseenter", () => {
      const newTitle = card.getAttribute("data-bg-heading-titel");
      if (newTitle) {
        headings.forEach(h => {
          gsap.to(h, {
            duration: 1.2, 
            scrambleText: {
              text: newTitle,
              chars: "upperCase", // oder "lowerCase", "symbols", eigenes String-Set
              revealDelay: 0.3,
              tweenLength: true
            },
            ease: "power2.out"
          });
        });
      }
    });

    card.addEventListener("mouseleave", () => {
      headings.forEach((h, i) => {
        gsap.to(h, {
          duration: 1.2,
          scrambleText: {
            text: originalTexts[i],
            chars: "©ª15®°™±",
            revealDelay: 0.1,
						speed: 1.4,
            tweenLength: false
          },
          ease: "power2.out"
        });
      });
    });
  });
});
</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.12.5/gsap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.12.5/Flip.min.js"></script>
document.addEventListener("DOMContentLoaded", function () {
  // Warte 2 Sekunden
  setTimeout(() => {
    const startCards = document.querySelectorAll('.flip-card[data-flip-id]');
    const endContainers = document.querySelectorAll('.flip-card-fin[data-flip-id]');

    // Map: data-flip-id => Ziel-Container
    const endMap = {};
    endContainers.forEach(el => {
      const id = el.getAttribute("data-flip-id");
      if (id) endMap[id] = el;
    });

    // Zustand vor dem Verschieben speichern
    const state = Flip.getState('.flip-card[data-flip-id]');

    // Elemente verschieben
    startCards.forEach(card => {
      const id = card.getAttribute("data-flip-id");
      const target = endMap[id];

      if (target && card !== target) {
        target.appendChild(card); // Verschiebe das Element physisch ins Ziel
      }
    });

    // Flip Animation starten
    Flip.from(state, {
      duration: 1,
      ease: "power2.inOut",
      absolute: true, // Für präzisere Bewegungen
      stagger: 0.05
    });

  }, 2000); // Verzögerung in ms
});

Bene Hofer

Visuelle Gestaltung, Konzeption und Umsetzung.

Digital + Print

[site info]

(sbh)-v1

©2026

Germany