{"id":8,"date":"2026-01-22T16:33:31","date_gmt":"2026-01-22T16:33:31","guid":{"rendered":"https:\/\/fabian-hartmann.ch\/?page_id=8"},"modified":"2026-01-22T17:03:29","modified_gmt":"2026-01-22T17:03:29","slug":"home","status":"publish","type":"page","link":"https:\/\/fabian-hartmann.ch\/","title":{"rendered":"Home"},"content":{"rendered":"<div class=\"fhp-root\">\n<header class=\"topbar glass\">\n    <a class=\"brand\" href=\"#top\" aria-label=\"Start\">\n      <img decoding=\"async\" src=\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Logo\/FH_logo_klein_w.png\" alt=\"Fabian Hartmann Logo\" class=\"logoImage\">\n      <span class=\"brandName\">fabian hartmann<\/span>\n    <\/a>\n\t<div class=\"testnerven\">\n\t\t<nav class=\"nav\" aria-label=\"Navigation\">\n\t\t  <a class=\"knopf\" href=\"#produktionen\">produktionen<\/a>\n\t\t  <a class=\"knopf\" href=\"#ueber-mich\">\u00fcber mich<\/a>\n\t\t  <a class=\"knopf\" href=\"#kontakt\">get in touch<\/a>\n    <\/nav>\n\t<\/div>\n    <button class=\"navToggle\" type=\"button\" aria-label=\"Menue oeffnen\" aria-expanded=\"false\">Men\u00fc<\/button>\n  <\/header>\n\n  <main id=\"top\">\n    <section class=\"hero\" aria-label=\"Einleitung\">\n      <h1 class=\"headline\">\n        Ich bin <span id=\"typing\" class=\"typing\" aria-live=\"polite\"><\/span><span class=\"cursor\" aria-hidden=\"true\">|<\/span>\n      <\/h1>\n\n      <a class=\"scrollHint\" href=\"#produktionen\" aria-label=\"Nach unten scrollen\">\n        <span class=\"arrow\" aria-hidden=\"true\"><\/span>\n      <\/a>\n    <\/section>\n\n    <section id=\"produktionen\" class=\"section\" aria-label=\"Produktionen\">\n      <div class=\"sectionHead\"><h2>produktionen<\/h2><\/div>\n\n      <div class=\"chips\" role=\"tablist\" aria-label=\"Filter\">\n        <button class=\"chip isActive\" type=\"button\" data-filter=\"all\">Alle<\/button>\n        <button class=\"chip\" type=\"button\" data-filter=\"video\">Videos<\/button>\n        <button class=\"chip\" type=\"button\" data-filter=\"photo\">Fotos<\/button>\n      <\/div>\n\n      <div id=\"mediaGrid\" class=\"mediaGrid\" aria-label=\"Medienraster\"><\/div>\n    <\/section>\n\n    <section id=\"ueber-mich\" class=\"section\" aria-label=\"Ueber mich\">\n      <div class=\"sectionHead\"><h2>\u00fcber mich<\/h2><\/div>\n\n      <div class=\"about glass\">\n        <div class=\"aboutImage\">\n          <img decoding=\"async\" src=\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Fabian%20Bild\/FH_WC_1025-193.jpg\" alt=\"Portrait von Fabian Hartmann\" loading=\"lazy\">\n        <\/div>\n        <div class=\"aboutText\">\n          <p class=\"aboutTitle\">hey du!<\/p>\n          <p>Willkommen auf meiner Seite! Hier gibt\u2019s den vollen Multimediaumfang. Ich bin Fabian, ein Multimedia Producer (Bachelor Media Engineering), der sich mit Leidenschaft in der digitalen Welt austobt.<\/p>\n          <p>Auf dieser Plattform zeige ich eine Auswahl von meinen Projekten aus Fotografie und Videoproduktion. Mit meiner Arbeit vertiefe ich nicht nur meine Tech-Skills, sondern lebe meine Kreativit\u00e4t aus, um Geschichten auf die best m\u00f6glichste Art zu erz\u00e4hlen.<\/p>\n          <p>Checkt meine Arbeiten, st\u00f6bt durch meine visuelle Spielwiese und lasst mich wissen, was ihr denkt.<\/p>\n          <p>Stay creative,<\/p>\n          <p>Fabian<\/p>\n\n          <div class=\"links\">\n            <a id=\"linkLinkedIn\" href=\"#\" target=\"_blank\" rel=\"noopener\">LinkedIn<\/a>\n            <a id=\"linkInstagram\" href=\"#\" target=\"_blank\" rel=\"noopener\">Instagram<\/a>\n            <a id=\"linkSector22\" href=\"#\" target=\"_blank\" rel=\"noopener\">Sektor 22<\/a>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/section>\n\n    <!--\n    <section id=\"kontakt\" class=\"section\" aria-label=\"Kontakt\">\n      <div class=\"sectionHead\"><h2>get in touch<\/h2><\/div>\n\n      <form id=\"contactForm\" class=\"contact glass\" action=\"https:\/\/formspree.io\/f\/YOUR_FORM_ID\" method=\"POST\">\n        <div class=\"row\">\n          <label> Name\n            <input name=\"name\" placeholder=\"Dein Name\" required>\n          <\/label>\n          <label> E-Mail\n            <input name=\"email\" type=\"email\" placeholder=\"deine@mail.ch\" required>\n          <\/label>\n        <\/div>\n\n        <label> Nachricht\n          <textarea name=\"message\" placeholder=\"Deine Nachricht...\" required><\/textarea>\n        <\/label>\n\n        <div class=\"rowEnd\">\n          <button class=\"sendBtn\" type=\"submit\">Absenden <span class=\"sendArrow\" aria-hidden=\"true\"><\/span><\/button>\n          <p id=\"formStatus\" class=\"formStatus\" aria-live=\"polite\"><\/p>\n        <\/div>\n      <\/form>\n    <\/section>\n    -->\n    <section id=\"kontakt\" class=\"section\" aria-label=\"Kontakt\">\n      <div class=\"sectionHead\"><h2>get in touch<\/h2><\/div>\n\n      <div class=\"contact glass\">\n         <p class=\"aboutTitle\">und jetzt?<\/p>\n        <p style=\"margin-bottom: 0.5em;\">Hast du Interesse an einer Zusammenarbeit oder eine Idee, die du umsetzen m\u00f6chtest?<\/p>\n        <p style=\"margin-bottom: 0.5em;\">Dann schreib mir gerne eine Mail an <span style=\"font-weight: 900; background-color: rgba(255, 255, 255, 0.113); border-radius: 5px; padding: 4px;\">fabianhartmann.info(at)gmail.com<\/span>.<\/p>\n        <p>Ich freue mich, von dir zu h\u00f6ren.<\/p>\n      <\/div>\n    <\/section>\n  <\/main>\n\n  <footer class=\"footer\">\n    <div class=\"footerInner\">\n      <div class=\"footerLinks\">\n        <button class=\"linkBtn\" type=\"button\" data-modal=\"impressum\">Impressum<\/button>\n        <button class=\"linkBtn\" type=\"button\" data-modal=\"datenschutz\">Datenschutz<\/button>\n        <button class=\"linkBtn\" type=\"button\" data-modal=\"agbs\">AGBs<\/button>\n      <\/div>\n      <p class=\"footerCopy\">\u00a9 <span id=\"year\"><\/span> fabian hartmann<\/p>\n    <\/div>\n  <\/footer>\n\n  <div id=\"modal\" class=\"modal hidden\" role=\"dialog\" aria-modal=\"true\" aria-label=\"Galerie\">\n    <div class=\"modalCard glass\">\n      <button class=\"modalClose\" type=\"button\" aria-label=\"Schliessen\">\u00d7<\/button>\n      <button id=\"modalPrev\" class=\"modalNav modalPrev\" type=\"button\" aria-label=\"Vorheriges\"><\/button>\n      <button id=\"modalNext\" class=\"modalNav modalNext\" type=\"button\" aria-label=\"Naechstes\"><\/button>\n\n      <div id=\"modalContent\" class=\"modalContent\"><\/div>\n    <\/div>\n  <\/div>\n\n  <script>\n    \/\/ ========= Konfiguration =========\n    const KONTAKT_EMAIL = \"hartmannf2@gmail.com\";\n\n    const SOCIAL_LINKS = {\n      linkedin: \"https:\/\/www.linkedin.com\/in\/fabian-hartmann-750628200\/\",\n      instagram: \"https:\/\/www.instagram.com\/fabianhartmann._\/\",\n      sector22: \"https:\/\/www.sektor22.ch\/\"\n    };\n\n    const TYPING_PHRASES = [\n      \"einfallsreich\",\n      \"technikaffin\",\n      \"innovativ\",\n      \"vielseitig\",\n      \"organisiert\",\n      \"begeisterungsf\u00e4hig\"\n    ];\n\n    \/\/ ========= Medien =========\n    \/\/ Wichtig:\n    \/\/ - In der Ansicht \"Alle\" werden IMMER alle Videos (bis max. 30) angezeigt\n    \/\/ - Der Rest wird mit zufaelligen Fotos aufgefuellt\n    \/\/ - Pro Render werden 30 Items angezeigt (oder weniger, falls nicht genug vorhanden)\n    const TARGET_COUNT = 30;\n\n    const MEDIA_ITEMS = [\n      { type:\"photo\", thumb:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-117.jpg\", src:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-117.jpg\" },\n      { type:\"photo\", thumb:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-118.jpg\", src:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-118.jpg\" },\n      { type:\"photo\", thumb:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-119.jpg\", src:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-119.jpg\" },\n      { type:\"photo\", thumb:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-120.jpg\", src:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-120.jpg\" },\n      { type:\"photo\", thumb:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-121.jpg\", src:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-121.jpg\" },\n      { type:\"photo\", thumb:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-122.jpg\", src:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-122.jpg\" },\n      { type:\"photo\", thumb:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-124.jpg\", src:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-124.jpg\" },\n      { type:\"photo\", thumb:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-125.jpg\", src:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-125.jpg\" },\n      { type:\"photo\", thumb:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-126.jpg\", src:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-126.jpg\" },\n      { type:\"photo\", thumb:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-127.jpg\", src:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-127.jpg\" },\n      { type:\"photo\", thumb:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-128.jpg\", src:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-128.jpg\" },\n      { type:\"photo\", thumb:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-129.jpg\", src:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-129.jpg\" },\n      { type:\"photo\", thumb:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-130.jpg\", src:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-130.jpg\" },\n      { type:\"photo\", thumb:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-131.jpg\", src:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-131.jpg\" },\n      { type:\"photo\", thumb:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-132.jpg\", src:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-132.jpg\" },\n      { type:\"photo\", thumb:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-133.jpg\", src:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-133.jpg\" },\n      { type:\"photo\", thumb:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-134.jpg\", src:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-134.jpg\" },\n      { type:\"photo\", thumb:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-135.jpg\", src:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-135.jpg\" },\n      { type:\"photo\", thumb:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-136.jpg\", src:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-136.jpg\" },\n      { type:\"photo\", thumb:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-137.jpg\", src:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-137.jpg\" },\n      { type:\"photo\", thumb:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-138.jpg\", src:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-138.jpg\" },\n      { type:\"photo\", thumb:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-139.jpg\", src:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-139.jpg\" },\n      { type:\"photo\", thumb:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-140.jpg\", src:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-140.jpg\" },\n      { type:\"photo\", thumb:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-141.jpg\", src:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-141.jpg\" },\n      { type:\"photo\", thumb:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-142.jpg\", src:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-142.jpg\" },\n      { type:\"photo\", thumb:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-143.jpg\", src:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-143.jpg\" },\n      { type:\"photo\", thumb:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-144.jpg\", src:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-144.jpg\" },\n      { type:\"photo\", thumb:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-145.jpg\", src:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-145.jpg\" },\n      { type:\"photo\", thumb:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-146.jpg\", src:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-146.jpg\" },\n      { type:\"photo\", thumb:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-147.jpg\", src:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-147.jpg\" },\n      { type:\"photo\", thumb:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-148.jpg\", src:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-148.jpg\" },\n      { type:\"photo\", thumb:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-149.jpg\", src:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-149.jpg\" },\n      { type:\"photo\", thumb:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-150.jpg\", src:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-150.jpg\" },\n      { type:\"photo\", thumb:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-151.jpg\", src:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-151.jpg\" },\n      { type:\"photo\", thumb:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-152.jpg\", src:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-152.jpg\" },\n      { type:\"photo\", thumb:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-153.jpg\", src:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-153.jpg\" },\n      { type:\"photo\", thumb:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-154.jpg\", src:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-154.jpg\" },\n      { type:\"photo\", thumb:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-155.jpg\", src:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-155.jpg\" },\n      { type:\"photo\", thumb:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-156.jpg\", src:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-156.jpg\" },\n      { type:\"photo\", thumb:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-157.jpg\", src:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-157.jpg\" },\n      { type:\"photo\", thumb:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-158.jpg\", src:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-158.jpg\" },\n      { type:\"photo\", thumb:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-159.jpg\", src:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-159.jpg\" },\n      { type:\"photo\", thumb:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-160.jpg\", src:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-160.jpg\" },\n      { type:\"photo\", thumb:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-161.jpg\", src:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-161.jpg\" },\n      { type:\"photo\", thumb:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-162.jpg\", src:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-162.jpg\" },\n      { type:\"photo\", thumb:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-163.jpg\", src:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-163.jpg\" },\n      { type:\"photo\", thumb:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-164.jpg\", src:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-164.jpg\" },\n      { type:\"photo\", thumb:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-165.jpg\", src:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-165.jpg\" },\n      { type:\"photo\", thumb:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-166.jpg\", src:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-166.jpg\" },\n      { type:\"photo\", thumb:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-167.jpg\", src:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-167.jpg\" },\n      { type:\"photo\", thumb:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-168.jpg\", src:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-168.jpg\" },\n      { type:\"photo\", thumb:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-169.jpg\", src:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-169.jpg\" },\n      { type:\"photo\", thumb:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-170.jpg\", src:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-170.jpg\" },\n      { type:\"photo\", thumb:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-171.jpg\", src:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-171.jpg\" },\n      { type:\"photo\", thumb:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-172.jpg\", src:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-172.jpg\" },\n      { type:\"photo\", thumb:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-173.jpg\", src:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-173.jpg\" },\n      { type:\"photo\", thumb:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-174.jpg\", src:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-174.jpg\" },\n      { type:\"photo\", thumb:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-175.jpg\", src:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-175.jpg\" },\n      { type:\"photo\", thumb:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-176.jpg\", src:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-176.jpg\" },\n      { type:\"photo\", thumb:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-177.jpg\", src:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-177.jpg\" },\n      { type:\"photo\", thumb:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-178.jpg\", src:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-178.jpg\" },\n      { type:\"photo\", thumb:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-179.jpg\", src:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-179.jpg\" },\n      { type:\"photo\", thumb:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-180.jpg\", src:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-180.jpg\" },\n      { type:\"photo\", thumb:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-181.jpg\", src:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-181.jpg\" },\n      { type:\"photo\", thumb:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-182.jpg\", src:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-182.jpg\" },\n      { type:\"photo\", thumb:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-183.jpg\", src:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-183.jpg\" },\n      { type:\"photo\", thumb:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-184.jpg\", src:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-184.jpg\" },\n      { type:\"photo\", thumb:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-185.jpg\", src:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-185.jpg\" },\n      { type:\"photo\", thumb:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-186.jpg\", src:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-186.jpg\" },\n      { type:\"photo\", thumb:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-187.jpg\", src:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-187.jpg\" },\n      { type:\"photo\", thumb:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-188.jpg\", src:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-188.jpg\" },\n      { type:\"photo\", thumb:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-189.jpg\", src:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-189.jpg\" },\n      { type:\"photo\", thumb:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-190.jpg\", src:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-190.jpg\" },\n      { type:\"photo\", thumb:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-191.jpg\", src:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-191.jpg\" },\n      { type:\"photo\", thumb:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-192.jpg\", src:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Bilder\/FH_WC_1025-192.jpg\" },\t\n\t\t\n      \/* Beispiel-Video: ersetze\/ergaenze hier deine echten Videos *\/\n      { type:\"video\", thumb:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Thumbnails\/maxresdefault%20dust%20and%20glory.jpg\", embed:\"https:\/\/youtu.be\/Yv-UD4dNdlU\" },\n      { type:\"video\", thumb:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Thumbnails\/FH_WC_1025-155.jpg\", embed:\"https:\/\/youtu.be\/wpBdlsZL7Vc\" },\n      { type:\"video\", thumb:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Thumbnails\/Maltschik-Logo(1)+(1)-min.png.webp\", embed:\"https:\/\/www.youtube.com\/watch?v=WWNQGQAVdqc\" },\n      { type:\"video\", thumb:\"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Thumbnails\/leidenschaft%20fuer%20literatur.jpg\", embed:\"https:\/\/youtu.be\/yNWLDQw1Ybo\" },\n      { type:\"video\", thumb: \"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/Thumbnails\/DSC00061.jpg\", embed: \"https:\/\/vimeo.com\/1157242435?share=copy&fl=sv&fe=ci\"}\n\n\n    ];\n\n    \/\/ ========= Typing Effekt =========\n    (function typingEffect(){\n      const el = document.getElementById(\"typing\");\n      if(!el) return;\n\n      let phraseIndex = 0;\n      let charIndex = 0;\n      let deleting = false;\n\n      const typeSpeed = 52;\n      const deleteSpeed = 28;\n      const pauseAfterTyped = 900;\n      const pauseAfterDeleted = 220;\n\n      function tick(){\n        const phrase = TYPING_PHRASES[phraseIndex] || \"\";\n        if(!deleting){\n          charIndex++;\n          el.textContent = phrase.slice(0, charIndex);\n          if(charIndex >= phrase.length){\n            deleting = true;\n            setTimeout(tick, pauseAfterTyped);\n            return;\n          }\n          setTimeout(tick, typeSpeed);\n        }else{\n          charIndex--;\n          el.textContent = phrase.slice(0, Math.max(0, charIndex));\n          if(charIndex <= 0){\n            deleting = false;\n            phraseIndex = (phraseIndex + 1) % TYPING_PHRASES.length;\n            setTimeout(tick, pauseAfterDeleted);\n            return;\n          }\n          setTimeout(tick, deleteSpeed);\n        }\n      }\n      tick();\n    })();\n\n    \/\/ ========= Social Links =========\n    document.getElementById(\"linkLinkedIn\").href = SOCIAL_LINKS.linkedin;\n    document.getElementById(\"linkInstagram\").href = SOCIAL_LINKS.instagram;\n    document.getElementById(\"linkSector22\").href = SOCIAL_LINKS.sector22;\n\n    \/\/ ========= Helpers =========\n    function shuffle(arr){\n      const a = arr.slice();\n      for(let i=a.length-1;i>0;i--){\n        const j = Math.floor(Math.random() * (i+1));\n        [a[i], a[j]] = [a[j], a[i]];\n      }\n      return a;\n    }\n\n    function pickRandom(arr, n){\n      if(n <= 0) return [];\n      const s = shuffle(arr);\n      return s.slice(0, Math.min(n, s.length));\n    }\n\n    function buildSelection(filter){\n      const photos = MEDIA_ITEMS.filter(x => x.type === \"photo\");\n      const videos = MEDIA_ITEMS.filter(x => x.type === \"video\");\n\n      if(filter === \"photo\"){\n        return pickRandom(photos, TARGET_COUNT);\n      }\n\n      if(filter === \"video\"){\n        return shuffle(videos); \/\/ alle Videos, random Reihenfolge\n      }\n\n      \/\/ filter === \"all\":\n      \/\/ 1) alle Videos rein (bis max TARGET_COUNT)\n      \/\/ 2) Rest mit random Fotos auffuellen\n      const videoPart = videos.slice(0, TARGET_COUNT);\n      const rest = TARGET_COUNT - videoPart.length;\n      const photoPart = pickRandom(photos, rest);\n      return shuffle(videoPart.concat(photoPart));\n    }\n\n    \/\/ ========= Modal Galerie =========\n    const modal = document.getElementById(\"modal\");\n    const modalContent = document.getElementById(\"modalContent\");\n    const btnPrev = document.getElementById(\"modalPrev\");\n    const btnNext = document.getElementById(\"modalNext\");\n\n    document.querySelector(\".modalClose\").addEventListener(\"click\", closeModal);\n    modal.addEventListener(\"click\", (e) => { if(e.target === modal) closeModal(); });\n    document.addEventListener(\"keydown\", (e) => {\n      if(modal.classList.contains(\"hidden\")) return;\n      if(e.key === \"Escape\") closeModal();\n      if(e.key === \"ArrowLeft\") showByDelta(-1);\n      if(e.key === \"ArrowRight\") showByDelta(1);\n    });\n\n    let currentView = [];\n    let currentIndex = 0;\n\n    btnPrev.addEventListener(\"click\", () => showByDelta(-1));\n    btnNext.addEventListener(\"click\", () => showByDelta(1));\n\n    function renderVideoFrame(url){\n      if(\/\\.mp4(\\?|$)\/i.test(url)){\n        return `<video controls playsinline preload=\"metadata\" src=\"${url}\"><\/video>`;\n      }\n      \/\/ Handle YouTube URLs\n      let embedUrl = url;\n      if (url.includes('youtu.be\/')) {\n        const videoId = url.split('youtu.be\/')[1].split('?')[0];\n        embedUrl = `https:\/\/www.youtube.com\/embed\/${videoId}`;\n      } else if (url.includes('youtube.com\/watch?v=')) {\n        const videoId = url.split('v=')[1].split('&')[0];\n        embedUrl = `https:\/\/www.youtube.com\/embed\/${videoId}`;\n      } else if (url.includes('vimeo.com\/')) {\n        const videoId = url.split('vimeo.com\/')[1].split('?')[0];\n        embedUrl = `https:\/\/player.vimeo.com\/video\/${videoId}`;\n      }\n      return `<iframe loading=\"lazy\" allow=\"autoplay; fullscreen; picture-in-picture\" referrerpolicy=\"strict-origin-when-cross-origin\" src=\"${embedUrl}\"><\/iframe>`;\n    }\n\n    function openModalAt(items, index){\n      currentView = items.slice();\n      currentIndex = Math.max(0, Math.min(index, currentView.length - 1));\n      modal.classList.remove(\"hidden\");\n      document.body.style.overflow = \"hidden\";\n      renderModalItem();\n    }\n\n    function closeModal(){\n      modal.classList.add(\"hidden\");\n      modalContent.innerHTML = \"\";\n      document.body.style.overflow = \"\";\n      currentView = [];\n      currentIndex = 0;\n    }\n\n    function showByDelta(delta){\n      if(!currentView.length) return;\n      currentIndex = (currentIndex + delta + currentView.length) % currentView.length;\n      renderModalItem();\n    }\n\n    function renderModalItem(){\n      const item = currentView[currentIndex];\n      if(!item) return;\n\n      const title = `${currentIndex + 1} \/ ${currentView.length}`;\n\n      let mediaHtml = \"\";\n      if(item.type === \"photo\"){\n        mediaHtml = `<div class=\"viewer\"><img decoding=\"async\" src=\"${item.src || item.thumb}\" alt=\"Foto\"><\/div>`;\n      }else{\n        mediaHtml = `<div class=\"viewer\">${renderVideoFrame(item.embed)}<\/div>`;\n      }\n\n      modalContent.innerHTML = `<div class=\"modalTitle\">${title}<\/div>${mediaHtml}`;\n    }\n\n    \/\/ ========= Grid Render =========\n    const grid = document.getElementById(\"mediaGrid\");\n\n    function applyAspectClass(tile, item, imgEl){\n      tile.classList.remove(\"isPortrait\",\"isLandscape\");\n\n      if(item.aspect === \"portrait\"){ tile.classList.add(\"isPortrait\"); return; }\n      if(item.aspect === \"landscape\"){ tile.classList.add(\"isLandscape\"); return; }\n\n      const w = imgEl.naturalWidth || 0;\n      const h = imgEl.naturalHeight || 0;\n      if(w && h){\n        if(w >= h) tile.classList.add(\"isLandscape\");\n        else tile.classList.add(\"isPortrait\");\n      }\n    }\n\n    function renderGrid(filter=\"all\"){\n      grid.innerHTML = \"\";\n\n      const items = buildSelection(filter);\n      const viewItems = items.slice(); \/\/ fuer Modal-Navigation\n\n      items.forEach((item, idx) => {\n        const tile = document.createElement(\"div\");\n        tile.className = \"tile\";\n\n        const media = document.createElement(\"div\");\n        media.className = \"tileMedia\";\n\n        const img = document.createElement(\"img\");\n        img.loading = \"lazy\";\n        img.alt = item.type === \"video\" ? \"Video\" : \"Foto\";\n        img.src = item.thumb || item.src || \"\";\n\n        img.addEventListener(\"load\", () => applyAspectClass(tile, item, img));\n\n        media.appendChild(img);\n        tile.appendChild(media);\n\n        if(item.type === \"video\"){\n          const b = document.createElement(\"div\");\n          b.className = \"playBadge\";\n          tile.appendChild(b);\n        }\n\n        tile.addEventListener(\"click\", () => {\n          openModalAt(viewItems, idx);\n        });\n\n        grid.appendChild(tile);\n      });\n    }\n\n    renderGrid(\"all\");\n\n    document.querySelectorAll(\".chip\").forEach(btn => {\n      btn.addEventListener(\"click\", () => {\n        document.querySelectorAll(\".chip\").forEach(b => b.classList.remove(\"isActive\"));\n        btn.classList.add(\"isActive\");\n        renderGrid(btn.dataset.filter || \"all\");\n      });\n    });\n\n    \/\/ ========= Kontakt (mailto) =========\n    \/\/ Footer Jahr\n    document.getElementById(\"year\").textContent = String(new Date().getFullYear());\n\n    \/\/ Legal Modal Buttons (optional)\n    const LEGAL = {\n      impressum: { type: \"text\", content: `\n\n    <h4>Kontakt-Adresse<\/h4>\n    <p>\n        Fabian Hartmann<br>\n        9000 St. Gallen<br>\n        Schweiz\n    <\/p>\n\n    <p>\n        Telefon: +41 79 812 38 50<br>\n        E-Mail: fabianhartmann.info(at)gmail.com\n    <\/p>\n\n    <h4>Haftungsausschluss<\/h4>\n    <p>\n        Der Autor \u00fcbernimmt keinerlei Gew\u00e4hr hinsichtlich der inhaltlichen Richtigkeit,\n        Genauigkeit, Aktualit\u00e4t, Zuverl\u00e4ssigkeit und Vollst\u00e4ndigkeit der Informationen.\n    <\/p>\n    <p>\n        Haftungsanspr\u00fcche gegen den Autor wegen Sch\u00e4den materieller oder immaterieller Art,\n        welche aus dem Zugriff oder der Nutzung bzw. Nichtnutzung der ver\u00f6ffentlichten\n        Informationen, durch Missbrauch der Verbindung oder durch technische St\u00f6rungen\n        entstanden sind, werden ausgeschlossen.\n    <\/p>\n    <p>\n        Alle Angebote sind unverbindlich. Der Autor beh\u00e4lt es sich ausdr\u00fccklich vor, Teile\n        der Seiten oder das gesamte Angebot ohne besondere Ank\u00fcndigung zu ver\u00e4ndern,\n        zu erg\u00e4nzen, zu l\u00f6schen oder die Ver\u00f6ffentlichung zeitweise oder endg\u00fcltig\n        einzustellen.\n    <\/p>\n\n    <h4>Haftungsausschluss f\u00fcr Links<\/h4>\n    <p>\n        Verweise und Links auf Webseiten Dritter liegen ausserhalb unseres\n        Verantwortungsbereichs. Es wird jegliche Verantwortung f\u00fcr solche Webseiten\n        abgelehnt.\n    <\/p>\n    <p>\n        Der Zugriff und die Nutzung solcher Webseiten erfolgen auf eigene Gefahr des\n        jeweiligen Nutzers.\n    <\/p>\n\n    <h4>Urheberrechte<\/h4>\n    <p>\n        Die Urheber- und alle anderen Rechte an Inhalten, Bildern, Fotos oder anderen\n        Dateien auf dieser Website geh\u00f6ren ausschliesslich Tina Frauenknecht oder den\n        speziell genannten Rechteinhabern.\n    <\/p>\n    <p>\n        F\u00fcr die Reproduktion jeglicher Elemente ist die schriftliche Zustimmung des\n        Urheberrechtstr\u00e4gers im Voraus einzuholen.\n    <\/p>\n\n    <p>\n        Quelle: Swiss Anwalt\n    <\/p>\n` },\n      datenschutz: { type: \"pdf\", url: \"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/datenschutzerklaerung_www_fabian_hartmann_ch_de.pdf\" }, \/\/ Ersetze mit deinem PDF-Link\n      agbs: { type: \"pdf\", url: \"https:\/\/gjfbnoscyvqjfdexjtnc.supabase.co\/storage\/v1\/object\/public\/Fabian%20Hartmann\/AGB_Fabian%20Hartmann.pdf\" } \/\/ Ersetze mit deinem PDF-Link\n    };\n    document.querySelectorAll(\"[data-modal]\").forEach(btn => {\n      btn.addEventListener(\"click\", () => {\n        const key = btn.dataset.modal;\n        const item = LEGAL[key];\n        if (item) {\n          if (item.type === \"pdf\") {\n            \/\/ oeffnet im gleichen Modal\n            openModalAt([{type:\"photo\", src:\"data:image\/gif;base64,R0lGODlhAQABAIAAAAAAAP\/\/\/ywAAAAAAQABAAACAUwAOw==\"}], 0);\n            modalContent.innerHTML = `<div class=\"modalTitle\">AGBs<\/div><iframe loading=\"lazy\" src=\"${item.url}\" width=\"100%\" height=\"600px\" style=\"border: none;\"><\/iframe>`;\n          } else {\n            \/\/ oeffnet im gleichen Modal\n            openModalAt([{type:\"photo\", src:\"data:image\/gif;base64,R0lGODlhAQABAIAAAAAAAP\/\/\/ywAAAAAAQABAAACAUwAOw==\"}], 0);\n            modalContent.innerHTML = `<div class=\"modalTitle\">${key === \"impressum\" ? \"Impressum\" : \"Datenschutz\"}<\/div>${item.content}`;\n          }\n        }\n      });\n    });\n\n    \n  <\/script>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-8","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/fabian-hartmann.ch\/index.php\/wp-json\/wp\/v2\/pages\/8","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fabian-hartmann.ch\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/fabian-hartmann.ch\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/fabian-hartmann.ch\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fabian-hartmann.ch\/index.php\/wp-json\/wp\/v2\/comments?post=8"}],"version-history":[{"count":14,"href":"https:\/\/fabian-hartmann.ch\/index.php\/wp-json\/wp\/v2\/pages\/8\/revisions"}],"predecessor-version":[{"id":36,"href":"https:\/\/fabian-hartmann.ch\/index.php\/wp-json\/wp\/v2\/pages\/8\/revisions\/36"}],"wp:attachment":[{"href":"https:\/\/fabian-hartmann.ch\/index.php\/wp-json\/wp\/v2\/media?parent=8"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}