{"id":8370,"date":"2026-03-08T14:17:35","date_gmt":"2026-03-08T14:17:35","guid":{"rendered":"https:\/\/thefridolin.com\/?page_id=8370"},"modified":"2026-03-08T15:13:40","modified_gmt":"2026-03-08T15:13:40","slug":"coming-soon","status":"publish","type":"page","link":"https:\/\/thefridolin.com\/","title":{"rendered":"Coming soon"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"8370\" class=\"elementor elementor-8370\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b2f2e18 e-flex e-con-boxed e-con e-parent\" data-id=\"b2f2e18\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9377b09 elementor-widget elementor-widget-html\" data-id=\"9377b09\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!DOCTYPE html>\n<html lang=\"de\">\n<head>\n  <meta charset=\"UTF-8\" \/>\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" \/>\n  <title>theFridolin.com<\/title>\n  <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Cormorant+Garamond:ital,wght@1,300&display=swap\" rel=\"stylesheet\">\n  <style>\n    * { margin: 0; padding: 0; box-sizing: border-box; }\n    body {\n      width: 100vw; min-height: 100vh; overflow-x: hidden;\n      background: radial-gradient(ellipse at 60% 40%, #0f0c29, #302b63, #24243e);\n    }\n    #fridolin-wrap {\n      width: 100%; min-height: 100vh;\n      display: flex; flex-direction: column;\n      align-items: center; justify-content: center;\n      padding: 0 0 60px 0;\n    }\n    #fridolin-canvas-wrap {\n      width: 100%;\n      height: clamp(180px, 45vw, 500px);\n      position: relative;\n    }\n    #fridolin-canvas-wrap canvas { display: block; width: 100% !important; height: 100% !important; }\n    #fridolin-divider {\n      width: 48px; height: 1px;\n      background: linear-gradient(90deg, transparent, rgba(255,255,255,0.4), transparent);\n      margin: 0 auto 28px;\n      opacity: 0; animation: fadeUp 1s ease 0.5s forwards;\n    }\n    #fridolin-text {\n      max-width: 580px; margin: 0 auto;\n      padding: 0 clamp(20px, 6vw, 40px); text-align: center;\n    }\n    #fridolin-text p {\n      font-family: 'Cormorant Garamond', 'Palatino Linotype', Georgia, serif;\n      font-size: clamp(1rem, 2.5vw, 1.3rem);\n      font-weight: 300; font-style: italic;\n      letter-spacing: 0.04em; line-height: 1.85;\n      color: rgba(255,255,255,0.82);\n      text-shadow: 0 0 32px rgba(160,140,255,0.25);\n      opacity: 0; transform: translateY(18px);\n      animation: fadeUp 1.4s ease 0.8s forwards;\n    }\n    @keyframes fadeUp { to { opacity: 1; transform: translateY(0); } }\n    @media (max-width: 480px) {\n      #fridolin-wrap { padding-bottom: 40px; }\n      #fridolin-divider { margin-bottom: 20px; }\n    }\n  <\/style>\n<\/head>\n<body>\n<div id=\"fridolin-wrap\">\n  <div id=\"fridolin-canvas-wrap\"><\/div>\n  <div id=\"fridolin-divider\"><\/div>\n  <div id=\"fridolin-text\">\n    <p>Hier entsteht ein neuer digitaler Raum. Wir arbeiten an einer Umgebung f\u00fcr Projekte, Gestaltung und innovative visuelle Konzepte.<\/p>\n  <\/div>\n<\/div>\n\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/three.js\/r128\/three.min.js\"><\/script>\n<script>\n(function () {\n\n  \/\/ \u2554\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2557\n  \/\/ \u2551  GR\u00d6SSEN-MULTIPLIKATOR \u2013 hier anpassen!   \u2551\n  \/\/ \u2551  1.0 = normal  |  1.2 = 20% gr\u00f6\u00dfer       \u2551\n  \/\/ \u2551  0.8 = 20% kleiner  usw.                 \u2551\n  \/\/ \u255a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255d\n  const SCALE = 1.4;\n\n\n  const LETTERS = [\n    { char: \"t\",    color: \"#FF6B6B\", font: \"Georgia\",           size: 0.99  * SCALE, offsetY:  0.10 * SCALE },\n    { char: \"h\",    color: \"#FFD93D\", font: \"Impact\",            size: 1.21  * SCALE, offsetY: -0.05 * SCALE },\n    { char: \"e\",    color: \"#6BCB77\", font: \"Palatino Linotype\", size: 0.935 * SCALE, offsetY:  0.15 * SCALE },\n    { char: \"F\",    color: \"#4D96FF\", font: \"Times New Roman\",   size: 1.43  * SCALE, offsetY:  0.00 },\n    { char: \"r\",    color: \"#FF6FC8\", font: \"Courier New\",       size: 1.10  * SCALE, offsetY: -0.10 * SCALE },\n    { char: \"i\",    color: \"#FF9A3C\", font: \"Georgia\",           size: 0.88  * SCALE, offsetY:  0.20 * SCALE },\n    { char: \"d\",    color: \"#A78BFA\", font: \"Impact\",            size: 1.21  * SCALE, offsetY:  0.00 },\n    { char: \"o\",    color: \"#34D399\", font: \"Palatino Linotype\", size: 1.155 * SCALE, offsetY: -0.08 * SCALE },\n    { char: \"l\",    color: \"#F87171\", font: \"Times New Roman\",   size: 0.99  * SCALE, offsetY:  0.12 * SCALE },\n    { char: \"i\",    color: \"#FBBF24\", font: \"Courier New\",       size: 0.88  * SCALE, offsetY:  0.18 * SCALE },\n    { char: \"n\",    color: \"#60A5FA\", font: \"Georgia\",           size: 1.10  * SCALE, offsetY: -0.05 * SCALE },\n    { char: \".com\", color: \"#94A3B8\", font: \"Courier New\",       size: 0.495 * SCALE, offsetY: -0.38 * SCALE },\n  ];\n\n  const container = document.getElementById(\"fridolin-canvas-wrap\");\n  let W = container.clientWidth;\n  let H = container.clientHeight;\n\n  const renderer = new THREE.WebGLRenderer({ antialias: true, alpha: true });\n  renderer.setPixelRatio(Math.min(window.devicePixelRatio, 2));\n  renderer.setSize(W, H);\n  container.appendChild(renderer.domElement);\n\n  const scene  = new THREE.Scene();\n  const camera = new THREE.PerspectiveCamera(50, W \/ H, 0.1, 100);\n\n  function getCameraZ() {\n    \/\/ Kamera r\u00fcckt bei gr\u00f6\u00dferem SCALE etwas weiter weg\n    const base = W < 480 ? 22 : W < 768 ? 18 : W < 1024 ? 15 : 13;\n    return base \/ SCALE;\n  }\n  camera.position.set(0, 0, getCameraZ());\n\n  scene.add(new THREE.AmbientLight(0xffffff, 0.6));\n  const dir1 = new THREE.DirectionalLight(0xffffff, 0.9);\n  dir1.position.set(5, 8, 8); scene.add(dir1);\n  const dir2 = new THREE.DirectionalLight(0x8888ff, 0.4);\n  dir2.position.set(-5, -3, 5); scene.add(dir2);\n  const pointLight = new THREE.PointLight(0xffd700, 0.6, 30);\n  pointLight.position.set(0, 3, 6); scene.add(pointLight);\n\n  const letterMeshes = [];\n  const totalWidth  = 11.0 * SCALE;\n  const startX      = -totalWidth \/ 2;\n  const charWidths  = LETTERS.map(l => l.char === \".com\" ? 1.65 * SCALE : l.size * 0.72);\n  const totalCW     = charWidths.reduce((a, b) => a + b, 0);\n  const spacing     = totalWidth \/ totalCW;\n  let xPos          = startX;\n\n  LETTERS.forEach((ld, i) => {\n    const cw = charWidths[i];\n    const cx = xPos + (cw * spacing) \/ 2;\n    xPos += cw * spacing;\n\n    const cvs = document.createElement(\"canvas\");\n    cvs.width = 256; cvs.height = 256;\n    const ctx = cvs.getContext(\"2d\");\n    ctx.clearRect(0, 0, 256, 256);\n    const fs  = ld.char === \".com\" ? 76 : Math.round(140 * ld.size);\n    ctx.font  = `bold ${fs}px \"${ld.font}\"`;\n    ctx.fillStyle = ld.color; ctx.textAlign = \"center\"; ctx.textBaseline = \"middle\";\n    ctx.shadowColor = ld.color; ctx.shadowBlur = 20;\n    ctx.fillText(ld.char, 128, 128);\n\n    const tex   = new THREE.CanvasTexture(cvs);\n    const bH    = ld.char === \".com\" ? 1.1  * SCALE : 1.6  * ld.size;\n    const bW    = ld.char === \".com\" ? 1.75 * SCALE : 1.3  * ld.size;\n    const depth = ld.char === \".com\" ? 0.15 * SCALE : (0.35 + Math.random() * 0.25) * SCALE;\n\n    const geo   = new THREE.BoxGeometry(bW, bH, depth);\n    const side  = new THREE.MeshPhongMaterial({ color: new THREE.Color(ld.color).multiplyScalar(0.5) });\n    const back  = new THREE.MeshPhongMaterial({ color: new THREE.Color(ld.color).multiplyScalar(0.3) });\n    const front = new THREE.MeshPhongMaterial({ map: tex, transparent: true });\n    const mesh  = new THREE.Mesh(geo, [side, side, side, side, front, back]);\n\n    mesh.position.set(cx, ld.offsetY, 0);\n    mesh.userData = {\n      baseY:    ld.offsetY,\n      phase:    (i \/ LETTERS.length) * Math.PI * 2,\n      rotPhase: Math.random() * Math.PI * 2,\n    };\n    scene.add(mesh);\n    letterMeshes.push(mesh);\n  });\n\n  const pCount = 120;\n  const pGeo = new THREE.BufferGeometry();\n  const pPos = new Float32Array(pCount * 3);\n  const pCol = new Float32Array(pCount * 3);\n  const pPalette = [0xFF6B6B, 0xFFD93D, 0x6BCB77, 0x4D96FF, 0xFF6FC8, 0xA78BFA];\n  for (let i = 0; i < pCount; i++) {\n    pPos[i*3]   = (Math.random()-0.5)*20;\n    pPos[i*3+1] = (Math.random()-0.5)*10;\n    pPos[i*3+2] = (Math.random()-0.5)*8-2;\n    const c = new THREE.Color(pPalette[Math.floor(Math.random()*pPalette.length)]);\n    pCol[i*3]=c.r; pCol[i*3+1]=c.g; pCol[i*3+2]=c.b;\n  }\n  pGeo.setAttribute(\"position\", new THREE.BufferAttribute(pPos, 3));\n  pGeo.setAttribute(\"color\",    new THREE.BufferAttribute(pCol, 3));\n  const particles = new THREE.Points(pGeo,\n    new THREE.PointsMaterial({ size: 0.08, vertexColors: true, transparent: true, opacity: 0.7 })\n  );\n  scene.add(particles);\n\n  let resizeTimer;\n  window.addEventListener(\"resize\", () => {\n    clearTimeout(resizeTimer);\n    resizeTimer = setTimeout(() => {\n      W = container.clientWidth; H = container.clientHeight;\n      camera.aspect = W \/ H;\n      camera.position.z = getCameraZ();\n      camera.updateProjectionMatrix();\n      renderer.setSize(W, H);\n    }, 100);\n  });\n\n  let t = 0;\n  (function animate() {\n    requestAnimationFrame(animate);\n    t += 0.016;\n    letterMeshes.forEach(m => {\n      m.position.y = m.userData.baseY + Math.sin(t*1.2 + m.userData.phase) * 0.18 * SCALE;\n      m.rotation.y = Math.sin(t*0.7  + m.userData.rotPhase) * 0.22;\n      m.rotation.x = Math.sin(t*0.5  + m.userData.rotPhase*0.7) * 0.08;\n    });\n    particles.rotation.y  = t * 0.04;\n    pointLight.position.x = Math.sin(t*0.6) * 5;\n    pointLight.position.y = Math.cos(t*0.4) * 3;\n    renderer.render(scene, camera);\n  })();\n\n})();\n<\/script>\n<\/body>\n<\/html>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>theFridolin.com Hier entsteht ein neuer digitaler Raum. Wir arbeiten an einer Umgebung f\u00fcr Projekte, Gestaltung und innovative visuelle Konzepte.<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"_angie_page":false,"footnotes":""},"class_list":["post-8370","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/thefridolin.com\/index.php?rest_route=\/wp\/v2\/pages\/8370","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thefridolin.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/thefridolin.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/thefridolin.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/thefridolin.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=8370"}],"version-history":[{"count":19,"href":"https:\/\/thefridolin.com\/index.php?rest_route=\/wp\/v2\/pages\/8370\/revisions"}],"predecessor-version":[{"id":8410,"href":"https:\/\/thefridolin.com\/index.php?rest_route=\/wp\/v2\/pages\/8370\/revisions\/8410"}],"wp:attachment":[{"href":"https:\/\/thefridolin.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=8370"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}