{"id":9454,"date":"2026-10-20T12:05:59","date_gmt":"2026-10-20T10:05:59","guid":{"rendered":"https:\/\/tausendberlin.com\/?page_id=9454"},"modified":"2026-10-24T09:58:36","modified_gmt":"2026-10-24T07:58:36","slug":"cantina","status":"publish","type":"page","link":"https:\/\/tausendberlin.com\/en\/cantina\/","title":{"rendered":"Cantina by CheHub \u2013 Restaurant in Berlin-Mitte"},"content":{"rendered":"\r\n<div class=\"et_pb_section_0 et_pb_section et_section_regular et_block_section ct-section ct-cantina-start\" id=\"cantina-start\">\r\n<div class=\"et_pb_row_0 et_pb_row et_flex_row ct-nav\">\r\n<div class=\"et_pb_column_0 et_pb_column et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone ct-brand\">\r\n<a class=\"et_pb_link_0 et_pb_link et_pb_module et_flex_module\" href=\"https:\/\/tausendberlin.com\/\"><span class=\"et_pb_link_inner\"><span class=\"et_pb_link_text\">BAR TAUSEND<\/span><\/span><\/a>\r\n<\/div>\r\n<div class=\"et_pb_column_1 et_pb_column et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone ct-nav-middle\">\r\n<div class=\"et_pb_text_0 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module ct-navlinks\"><div class=\"et_pb_text_inner\"><nav aria-label=\"Cantina\"><a href=\"#eva-che\">Eva Che<\/a><a href=\"#menue\">Men\u00fc<\/a><a href=\"#reservieren\">Reservierung<\/a><\/nav>\n<\/div><\/div>\r\n<\/div>\r\n<div class=\"et_pb_column_2 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone ct-language\">\r\n<a class=\"et_pb_link_1 et_pb_link et_pb_module et_flex_module\" href=\"https:\/\/tausendberlin.com\/en\/cantina\/\"><span class=\"et_pb_link_inner\"><span class=\"et_pb_link_text\">EN<\/span><\/span><\/a>\r\n<\/div>\r\n<\/div>\r\n<div class=\"et_pb_row_1 et_pb_row et_flex_row ct-hero-title\">\r\n<div class=\"et_pb_column_3 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone\">\r\n<div class=\"et_pb_text_1 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module ct-eyebrow\"><div class=\"et_pb_text_inner\"><p>Restaurant \u00b7 Berlin-Mitte<\/p>\n<\/div><\/div>\r\n<div class=\"et_pb_heading_0 et_pb_heading et_pb_module et_flex_module ct-h1\"><div class=\"et_pb_heading_container\"><h1 class=\"et_pb_module_header\">CANTINA<\/h1><\/div><\/div>\r\n<div class=\"et_pb_text_2 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module ct-chehub\"><div class=\"et_pb_text_inner\"><p>by CheHub<\/p>\n<\/div><\/div>\r\n<\/div>\r\n<\/div>\r\n<div class=\"et_pb_row_2 et_pb_row et_flex_row ct-hero-bottom\">\r\n<div class=\"et_pb_column_4 et_pb_column et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone ct-left\">\r\n<div class=\"et_pb_text_3 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module ct-hero-caption\"><div class=\"et_pb_text_inner\"><p>Ein besonderer Abend beginnt<br \/>hinter der Bar Tausend.<\/p>\n<\/div><\/div>\r\n<div class=\"et_pb_module et_pb_button_module_wrapper et_pb_button_0_wrapper\"><a class=\"et_pb_button_0 et_pb_button et_pb_bg_layout_light et_pb_module et_flex_module ct-button\" href=\"#reservieren\">Reservierung anfragen &#x2197;<\/a><\/div>\r\n<\/div>\r\n<div class=\"et_pb_column_5 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone ct-right\">\r\n<div class=\"et_pb_text_4 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module ct-hero-hours\"><div class=\"et_pb_text_inner\"><p>Soft Opening<br \/>Donnerstag \u2013 Samstag<br \/>19:00 \u2013 23:00 Uhr<\/p>\n<\/div><\/div>\r\n<\/div>\r\n<\/div>\r\n<div class=\"et_pb_row_3 et_pb_row et_flex_row ct-code-row\">\r\n<div class=\"et_pb_column_6 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone\">\r\n<div class=\"et_pb_code_0 et_pb_code et_pb_module\"><div class=\"et_pb_code_inner\"><style>\n\nbody.page-id-9454{--ct-copper:#c27a50;--ct-ink:#ebebeb;--ct-soft:#c8c8c8;--ct-line:rgba(194,122,80,.28);background:#0b0b0b!important}\nbody.page-id-9454 #page-container{padding-top:0!important;background:#0b0b0b}\nbody.page-id-9454 #main-header,body.page-id-9454 #top-header,body.page-id-9454 #main-footer,body.page-id-9454 .et-l--header,body.page-id-9454 .et-l--footer{display:none!important}\nbody.page-id-9454 #main-content{background:#0b0b0b!important}\nbody.page-id-9454 #main-content .ct-section{position:relative;isolation:isolate;min-height:100svh;padding:clamp(64px,8vh,110px) 6vw!important;overflow:hidden}\nbody.page-id-9454 .ct-section>.et_pb_row{width:100%!important;max-width:none!important;padding:0!important;margin:0 auto!important}\nbody.page-id-9454 .ct-section :is(.et_pb_column,.et_pb_module){min-width:0}\nbody.page-id-9454 .ct-section .et_pb_module{margin:0!important}\nbody.page-id-9454 .ct-section .et_pb_text_inner>p{padding:0!important;margin:0}\nbody.page-id-9454 .ct-section .et_pb_text_inner>p+p{margin-top:1.15em!important}\nbody.page-id-9454 .ct-section :is(h1,h2,h3){font-family:Oswald,sans-serif!important;font-weight:500!important;color:var(--ct-ink)!important;text-transform:uppercase;letter-spacing:-.025em}\nbody.page-id-9454 .ct-section h2{font-size:clamp(34px,3.3vw,54px)!important;line-height:1.04!important;padding:0!important}\nbody.page-id-9454 .ct-section :is(p,a,input,textarea,label,select){font-family:Poppins,sans-serif!important}\nbody.page-id-9454 .ct-section .et_pb_text_inner p{text-transform:none!important}\nbody.page-id-9454 .ct-section .ct-eyebrow p{text-transform:uppercase!important}\nbody.page-id-9454 .ct-section .ct-eyebrow p{font:400 11px\/1.6 Poppins,sans-serif!important;letter-spacing:.18em!important;text-transform:uppercase;color:var(--ct-copper)!important}\nbody.page-id-9454 .ct-section .ct-number p{font:400 12px\/1.5 Poppins,sans-serif!important;letter-spacing:.14em!important;color:#85766c!important}\nbody.page-id-9454 .ct-section a{color:var(--ct-copper)!important;text-decoration:none}\nbody.page-id-9454 .ct-section a:hover{color:#fff!important}\nbody.page-id-9454 .ct-section a:focus-visible,body.page-id-9454 .ct-section button:focus-visible{outline:2px solid var(--ct-copper)!important;outline-offset:6px}\nbody.page-id-9454 a.ct-button.et_pb_button{display:inline-flex!important;align-items:center;justify-content:center;min-height:48px!important;padding:13px 26px!important;border:1px solid var(--ct-copper)!important;border-radius:999px!important;background:transparent!important;color:var(--ct-copper)!important;font:400 16px\/1.2 Oswald,sans-serif!important;letter-spacing:.05em!important;text-transform:uppercase;transition:color .7s ease,border-color .7s ease,background-color .7s ease!important}\nbody.page-id-9454 a.ct-button.et_pb_button:hover{color:#fff!important;border-color:#fff!important;background:rgba(194,122,80,.1)!important}\nbody.page-id-9454 a.ct-button.et_pb_button::after{display:none!important}\nbody.page-id-9454 .ct-code-row{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;pointer-events:none!important;clip-path:inset(50%)}\nbody.page-id-9454 .ct-section img{max-width:100%;height:auto}\n@media(max-width:980px){body.page-id-9454 #main-content .ct-section{padding:84px 6vw!important}body.page-id-9454 .ct-section .et_pb_row{flex-wrap:wrap!important}body.page-id-9454 .ct-section .et_pb_row>.et_pb_column{width:100%!important;flex-basis:100%!important;max-width:100%!important;margin:0!important}body.page-id-9454 .ct-section h2{font-size:clamp(32px,4.8vw,46px)!important}}\n@media(max-width:600px){body.page-id-9454 #main-content .ct-section{padding:64px 24px!important}body.page-id-9454 .ct-section h2{font-size:32px!important}body.page-id-9454 .ct-section p{font-size:14px!important;line-height:1.8!important}}\n@media(prefers-reduced-motion:reduce){body.page-id-9454 .ct-section *,body.page-id-9454 .ct-section *::before,body.page-id-9454 .ct-section *::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}\n\n\nbody.page-id-9454 #main-content #cantina-start{min-height:100svh!important;display:flex!important;flex-direction:column;justify-content:space-between;padding:28px 6vw 40px!important;background:#090909!important}\nbody.page-id-9454 #cantina-start::before{content:\"\";position:absolute;inset:-7vh 0;background:linear-gradient(90deg,rgba(0,0,0,.58),rgba(0,0,0,.08) 75%),linear-gradient(0deg,rgba(0,0,0,.68),transparent 65%),url(\"https:\/\/tausendberlin.com\/wp-content\/uploads\/2026\/03\/BarTausend-Cantina-BG06.webp\") center\/cover;z-index:-1;transform:translate3d(0,var(--ct-shift,0px),0);pointer-events:none}\nbody.page-id-9454 #cantina-start .ct-nav{display:flex!important;align-items:center!important;justify-content:space-between;gap:24px;padding-bottom:16px!important;border-bottom:1px solid rgba(235,235,235,.19);z-index:2}\nbody.page-id-9454 #cantina-start .ct-nav>.et_pb_column{flex:0 1 auto!important;width:auto!important;max-width:none!important;flex-basis:auto!important}\nbody.page-id-9454 #cantina-start .ct-nav a{display:inline-flex;align-items:center;min-height:44px;font:400 11px\/1.5 Poppins,sans-serif!important;letter-spacing:.1em;text-transform:uppercase;color:#ebebeb!important}\nbody.page-id-9454 #cantina-start .ct-navlinks nav{display:flex;gap:clamp(18px,2.5vw,40px);align-items:center}\nbody.page-id-9454 #cantina-start .ct-nav a:hover{color:var(--ct-copper)!important}\nbody.page-id-9454 #cantina-start .ct-hero-title{padding:10vh 0 8vh!important}\nbody.page-id-9454 #cantina-start h1{font-size:clamp(64px,7.2vw,116px)!important;line-height:1.05!important;letter-spacing:-1px!important;padding:0!important}\nbody.page-id-9454 #cantina-start .ct-chehub p{font:300 clamp(22px,2.4vw,36px)\/1.4 Poppins,sans-serif!important;letter-spacing:-.035em!important;color:#ebebeb!important;text-transform:none!important}\nbody.page-id-9454 #cantina-start .ct-hero-bottom{display:flex!important;align-items:flex-end!important;justify-content:space-between;gap:48px;margin-top:0!important}\nbody.page-id-9454 #cantina-start .ct-hero-bottom>.et_pb_column{flex:0 1 auto!important;width:auto!important;max-width:650px!important;flex-basis:auto!important}\nbody.page-id-9454 #cantina-start .ct-hero-caption p{font:300 clamp(18px,1.7vw,26px)\/1.6 Poppins,sans-serif!important;color:#ebebeb!important;max-width:520px;letter-spacing:-.025em}\nbody.page-id-9454 #cantina-start .ct-hero-hours p{font:400 11px\/1.9 Poppins,sans-serif!important;color:#ebebeb!important;letter-spacing:.06em}\nbody.page-id-9454 #cantina-start .ct-hero-bottom .ct-right{text-align:right}\nbody.page-id-9454 #kb-mobile-burger,body.page-id-9454 #kb-mobile-menu{display:none!important}\nbody.page-id-9454 .ct-scene-video{position:absolute;inset:-7vh 0;z-index:-2;pointer-events:none;overflow:hidden;transform:translate3d(0,var(--ct-shift,0px),0)}\nbody.page-id-9454 .ct-scene-video video{display:block;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.2s ease}\nbody.page-id-9454 .ct-scene-video.is-playing video{opacity:1}\nbody.page-id-9454 .ct-motion-toggle{position:absolute;right:6vw;top:30px;z-index:5;width:44px;height:44px;border:1px solid rgba(235,235,235,.55);border-radius:50%;background:rgba(0,0,0,.28);color:#ebebeb;font:400 14px\/1 Poppins,sans-serif;cursor:pointer}\nbody.page-id-9454 .ct-motion-toggle:hover{border-color:#c27a50;color:#c27a50}\n@media(max-width:980px){\nbody.page-id-9454 #cantina-start .ct-nav{flex-wrap:nowrap!important;gap:16px}\nbody.page-id-9454 #cantina-start .ct-hero-title{padding:12vh 0!important}\nbody.page-id-9454 #cantina-start .ct-hero-bottom{gap:24px}\n}\n@media(max-width:600px){\nbody.page-id-9454 #main-content #cantina-start{padding:18px 24px 30px!important}\nbody.page-id-9454 #cantina-start .ct-nav{padding-bottom:12px!important}\nbody.page-id-9454 #cantina-start .ct-navlinks nav a:nth-child(1),body.page-id-9454 #cantina-start .ct-navlinks nav a:nth-child(2){display:none}\nbody.page-id-9454 #cantina-start .ct-nav a{font-size:10px!important}\nbody.page-id-9454 #cantina-start h1{font-size:clamp(56px,14vw,78px)!important}\nbody.page-id-9454 #cantina-start .ct-chehub p{font-size:23px!important}\nbody.page-id-9454 #cantina-start .ct-hero-title{padding:10vh 0!important}\nbody.page-id-9454 #cantina-start .ct-hero-bottom{display:block!important}\nbody.page-id-9454 #cantina-start .ct-hero-bottom>.et_pb_column{width:100%!important;max-width:100%!important;display:flex!important}\nbody.page-id-9454 #cantina-start .ct-hero-caption p{font-size:18px!important}\nbody.page-id-9454 #cantina-start .ct-hero-bottom .ct-right{text-align:left;margin-top:28px!important}\nbody.page-id-9454 #cantina-start .ct-hero-hours p{font-size:10px!important}\nbody.page-id-9454 .ct-motion-toggle{right:24px;top:20px}\n}\nbody.page-id-9454.admin-bar #main-content #cantina-start{padding-top:60px!important}\n@media(max-width:782px){body.page-id-9454.admin-bar #main-content #cantina-start{padding-top:64px!important}}\n@media(prefers-reduced-motion:reduce){body.page-id-9454 #cantina-start::before,body.page-id-9454 .ct-scene-video{transform:none!important}}\n<\/style>\n<script id=\"ct-cinema-motion-v1\">\n(function(){'use strict';\nfunction init(){\nif(!document.body.classList.contains('page-id-9454')||document.body.classList.contains('et-fb')||document.body.dataset.ctCinema)return;\ndocument.body.dataset.ctCinema='1';\nvar reduced=matchMedia('(prefers-reduced-motion:reduce)'),small=matchMedia('(max-width:767px)'),save=navigator.connection&&navigator.connection.saveData;\nvar prepare=function(){};var en=\/^en\/i.test(document.documentElement.lang);var hero=document.getElementById('cantina-start'),room=document.getElementById('cantina-raum'),active=new Set(),frame=0,manualPause=false,video,layer,control;\nfunction canMove(){return !reduced.matches&&!save}\nfunction syncVideo(){if(!video)return;if(canMove()&&!manualPause&&!document.hidden&&active.has(room)&&video.getAttribute('src')){var p=video.play();if(p)p.catch(function(){});}else{video.pause();layer.classList.remove('is-playing');}}\nfunction update(){frame=0;if(!canMove())return;var h=innerHeight;active.forEach(function(el){var r=el.getBoundingClientRect(),shift=Math.max(-48,Math.min(48,(h\/2-r.top-r.height\/2)*.09));el.style.setProperty('--ct-shift',(small.matches?shift*.45:shift).toFixed(1)+'px');});}\nfunction request(){if(!frame&&canMove()&&active.size)frame=requestAnimationFrame(update)}\nif(room){\nlayer=document.createElement('div');layer.className='ct-scene-video';layer.setAttribute('aria-hidden','true');\nvideo=document.createElement('video');video.muted=true;video.defaultMuted=true;video.loop=true;video.playsInline=true;video.preload='none';video.setAttribute('muted','');video.setAttribute('playsinline','');video.setAttribute('disablepictureinpicture','');\nlayer.appendChild(video);room.prepend(layer);\ncontrol=document.createElement('button');control.type='button';control.className='ct-motion-toggle';control.textContent='\u2161';control.setAttribute('aria-label',en?'Pause background video':'Hintergrundvideo pausieren');control.setAttribute('aria-pressed','false');control.hidden=true;room.appendChild(control);\ncontrol.addEventListener('click',function(){manualPause=!manualPause;control.textContent=manualPause?'\u25b7':'\u2161';control.setAttribute('aria-pressed',String(manualPause));control.setAttribute('aria-label',manualPause?(en?'Play background video':'Hintergrundvideo abspielen'):(en?'Pause background video':'Hintergrundvideo pausieren'));syncVideo()});\nvideo.addEventListener('playing',function(){layer.classList.add('is-playing');control.hidden=false});\nvideo.addEventListener('error',function(){layer.classList.remove('is-playing');control.hidden=true});\nprepare=function(){if(!canMove()||video.getAttribute('src'))return;video.src=small.matches?'https:\/\/tausendberlin.com\/wp-content\/uploads\/2026\/10\/Cantina-BG-Kitchen-mobile-v2.mp4':'https:\/\/tausendberlin.com\/wp-content\/uploads\/2026\/10\/Cantina-BG-Kitchen-v2.mp4';video.load();syncVideo()};\nif('IntersectionObserver'in window){var warm=new IntersectionObserver(function(es){es.forEach(function(e){if(e.isIntersecting&&canMove()){prepare();warm.unobserve(room)}})},{rootMargin:'300px 0px'});warm.observe(room)}\n}\nif('IntersectionObserver'in window){var io=new IntersectionObserver(function(es){es.forEach(function(e){if(e.isIntersecting&&e.intersectionRatio>.01)active.add(e.target);else active.delete(e.target)});request();syncVideo()},{threshold:[0,.01]});[hero,room].filter(Boolean).forEach(function(el){io.observe(el)})}\nwindow.addEventListener('scroll',request,{passive:true});window.addEventListener('resize',request,{passive:true});document.addEventListener('visibilitychange',syncVideo);\nreduced.addEventListener('change',function(){[hero,room].filter(Boolean).forEach(function(el){el.style.removeProperty('--ct-shift')});if(room&&canMove()&&active.has(room))prepare();syncVideo();request()});\n}\nif(document.readyState==='loading')document.addEventListener('DOMContentLoaded',init,{once:true});else init();\n})();\n<\/script><\/div><\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<div class=\"et_pb_section_1 et_pb_section et_section_regular et_block_section ct-section ct-cantina-raum\" id=\"cantina-raum\">\r\n<div class=\"et_pb_row_4 et_pb_row et_flex_row ct-intro-row\">\r\n<div class=\"et_pb_column_7 et_pb_column et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_12_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone ct-intro-left\">\r\n<div class=\"et_pb_text_5 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module ct-eyebrow\"><div class=\"et_pb_text_inner\"><p>01 \/ CANTINA by CheHub<\/p>\n<\/div><\/div>\r\n<div class=\"et_pb_heading_1 et_pb_heading et_pb_module et_flex_module ct-intro-heading\"><div class=\"et_pb_heading_container\"><h2 class=\"et_pb_module_header\">Eine eigene Handschrift.<\/h2><\/div><\/div>\r\n<\/div>\r\n<div class=\"et_pb_column_8 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_12_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone ct-intro-right\">\r\n<div class=\"et_pb_text_6 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module ct-intro-copy\"><div class=\"et_pb_text_inner\"><p>In der offenen K\u00fcche der Cantina verbinden Eva Che und ihr Team Genuss mit einer ganz eigenen Handschrift.<\/p>\n<p>Die Lichtinstallation \u201eFlying Cells\u201c von Arotin &amp; Serghej gibt dem Raum seine au\u00dfergew\u00f6hnliche Atmosph\u00e4re.<\/p>\n<\/div><\/div>\r\n<\/div>\r\n<\/div>\r\n<div class=\"et_pb_row_5 et_pb_row et_flex_row ct-intro-photo\">\r\n<div class=\"et_pb_column_9 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone\">\r\n<div class=\"et_pb_image_0 et_pb_image et_pb_module et_flex_module ct-room-image\"><span class=\"et_pb_image_wrap\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/tausendberlin.com\/wp-content\/uploads\/2026\/03\/BarTausend-Cantina-BG06.webp\" alt=\"Die Cantina in der Bar Tausend\" width=\"1920\" height=\"1278\" srcset=\"https:\/\/tausendberlin.com\/wp-content\/uploads\/2026\/03\/BarTausend-Cantina-BG06.webp 1920w, https:\/\/tausendberlin.com\/wp-content\/uploads\/2026\/03\/BarTausend-Cantina-BG06-1280x852.webp 1280w, https:\/\/tausendberlin.com\/wp-content\/uploads\/2026\/03\/BarTausend-Cantina-BG06-980x652.webp 980w, https:\/\/tausendberlin.com\/wp-content\/uploads\/2026\/03\/BarTausend-Cantina-BG06-480x320.webp 480w\" sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) and (max-width: 1280px) 1280px, (min-width: 1281px) 1920px, 100vw\" class=\"wp-image-3162\" \/><\/span><\/div>\r\n<div class=\"et_pb_text_7 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module ct-image-caption\"><div class=\"et_pb_text_inner\"><p>Offene K\u00fcche. Besondere Atmosph\u00e4re.<\/p>\n<\/div><\/div>\r\n<\/div>\r\n<\/div>\r\n<div class=\"et_pb_row_6 et_pb_row et_flex_row ct-code-row\">\r\n<div class=\"et_pb_column_10 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone\">\r\n<div class=\"et_pb_code_1 et_pb_code et_pb_module\"><div class=\"et_pb_code_inner\"><style>\nbody.page-id-9454 #main-content #cantina-raum{min-height:100svh!important;display:flex!important;flex-direction:column;justify-content:flex-end;padding:clamp(80px,12vh,140px) 6vw!important;background:#111 url('https:\/\/tausendberlin.com\/wp-content\/uploads\/2026\/03\/BarTausend-Cantina-01.webp') center\/cover!important}\nbody.page-id-9454 #cantina-raum::after{content:\"\";position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,rgba(0,0,0,.92),rgba(0,0,0,.38) 50%,rgba(0,0,0,.15));pointer-events:none}\nbody.page-id-9454 #cantina-raum .ct-intro-row{display:flex!important;gap:10vw;align-items:end}\nbody.page-id-9454 #cantina-raum .ct-intro-left{width:46%!important;flex-basis:46%!important}\nbody.page-id-9454 #cantina-raum .ct-intro-right{width:44%!important;flex-basis:44%!important;padding-top:0!important}\nbody.page-id-9454 #cantina-raum .ct-intro-copy p{font-size:15px!important;line-height:1.9!important;color:#ebebeb}\nbody.page-id-9454 #cantina-raum .ct-intro-photo{margin-top:38px!important}\nbody.page-id-9454 #cantina-raum .ct-room-image{display:none!important}\nbody.page-id-9454 #cantina-raum .ct-image-caption p{font-size:10px!important;letter-spacing:.1em!important;color:#c8c8c8!important}\n@media(max-width:980px){body.page-id-9454 #cantina-raum .ct-intro-row{gap:32px}body.page-id-9454 #cantina-raum .ct-intro-row>.et_pb_column{width:100%!important;flex-basis:100%!important}}\n@media(max-width:600px){body.page-id-9454 #main-content #cantina-raum{padding:90px 24px 60px!important}body.page-id-9454 #cantina-raum .ct-intro-copy p{font-size:14px!important}}\n<\/style><\/div><\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<div class=\"et_pb_section_2 et_pb_section et_section_regular et_block_section ct-section ct-eva-che\" id=\"eva-che\">\r\n<div class=\"et_pb_row_7 et_pb_row et_flex_row ct-chef-row\">\r\n<div class=\"et_pb_column_11 et_pb_column et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_12_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone ct-chef-photo\">\r\n<div class=\"et_pb_image_1 et_pb_image et_pb_module et_flex_module ct-eva-image\"><span class=\"et_pb_image_wrap\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/tausendberlin.com\/wp-content\/uploads\/2026\/10\/BarTausend-EvaChe-CheHub-04.png\" alt=\"Eva Che \u00b7 K\u00f6chin hinter CheHub\" width=\"1080\" height=\"1400\" srcset=\"https:\/\/tausendberlin.com\/wp-content\/uploads\/2026\/10\/BarTausend-EvaChe-CheHub-04.png 1080w, https:\/\/tausendberlin.com\/wp-content\/uploads\/2026\/10\/BarTausend-EvaChe-CheHub-04-980x1270.png 980w, https:\/\/tausendberlin.com\/wp-content\/uploads\/2026\/10\/BarTausend-EvaChe-CheHub-04-480x622.png 480w\" sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1080px, 100vw\" class=\"wp-image-8680\" \/><\/span><\/div>\r\n<\/div>\r\n<div class=\"et_pb_column_12 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_12_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone ct-chef-copy\">\r\n<div class=\"et_pb_text_8 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module ct-eyebrow\"><div class=\"et_pb_text_inner\"><p>02 \/ Die K\u00f6chin hinter CHEHUB<\/p>\n<\/div><\/div>\r\n<div class=\"et_pb_heading_2 et_pb_heading et_pb_module et_flex_module ct-eva-title\"><div class=\"et_pb_heading_container\"><h2 class=\"et_pb_module_header\">EVA CHE<\/h2><\/div><\/div>\r\n<div class=\"et_pb_text_9 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module ct-eva-claim\"><div class=\"et_pb_text_inner\"><p>Chinese roots.<br \/>Her own rules.<\/p>\n<\/div><\/div>\r\n<div class=\"et_pb_text_10 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module ct-chef-bio\"><div class=\"et_pb_text_inner\"><p>Chinesische Wurzeln, aufgewachsen in Tschechien, heute zwischen Prag und Berlin: Eva Che verbindet diese Einfl\u00fcsse in ihrer K\u00fcche. Mit CHEHUB bringt sie ihre pers\u00f6nliche Handschrift in die Cantina.<\/p>\n<p>2020 wechselte sie aus der Mode- und Luxuswelt in die K\u00fcche. Seitdem kocht sie f\u00fcr Saint Laurent, Soho House und internationale Events. 2024 wurde sie von Forbes in die Liste \u201e30 Under 30\u201c aufgenommen.<\/p>\n<\/div><\/div>\r\n<div class=\"et_pb_text_11 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module ct-eva-quote\"><div class=\"et_pb_text_inner\"><p>\u201eOhne guten Service schmeckt selbst das beste Essen nicht.\u201c<\/p>\n<p>\u2014 Eva Che<\/p>\n<\/div><\/div>\r\n<\/div>\r\n<\/div>\r\n<div class=\"et_pb_row_8 et_pb_row et_flex_row ct-code-row\">\r\n<div class=\"et_pb_column_13 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone\">\r\n<div class=\"et_pb_code_2 et_pb_code et_pb_module\"><div class=\"et_pb_code_inner\"><style>\n\nbody.page-id-9454 #main-content #eva-che{background:#101010!important;min-height:100svh;display:flex;align-items:center;padding-top:70px!important;padding-bottom:0!important}\nbody.page-id-9454 #eva-che .ct-chef-row{display:flex!important;align-items:end;gap:7vw}\nbody.page-id-9454 #eva-che .ct-chef-photo{width:48%!important;flex-basis:48%!important;align-self:stretch;background-image:none;display:flex!important;justify-content:flex-end!important;min-height:70svh}\nbody.page-id-9454 #eva-che .ct-eva-image{width:100%!important;line-height:0}\nbody.page-id-9454 #eva-che .ct-eva-image .et_pb_image_wrap{display:block!important;width:100%!important}\nbody.page-id-9454 #eva-che .ct-eva-image img{display:block!important;width:100%!important;max-height:84svh;object-fit:contain!important;object-position:center bottom!important}\nbody.page-id-9454 #eva-che .ct-chef-copy{width:45%!important;flex-basis:45%!important;padding:30px 0 70px!important}\nbody.page-id-9454 #eva-che .ct-eva-title h2{font-size:clamp(48px,4.7vw,76px)!important;line-height:.95!important;letter-spacing:-.04em}\nbody.page-id-9454 #eva-che .ct-eva-claim p{font-size:clamp(21px,2vw,30px)!important;line-height:1.35!important;letter-spacing:-.04em!important;color:var(--ct-copper)!important;margin-top:8px!important}\nbody.page-id-9454 #eva-che .ct-eva-claim p{font-family:Poppins,sans-serif!important;font-weight:300!important}body.page-id-9454 #eva-che .ct-chef-bio{margin-top:16px!important}\nbody.page-id-9454 #eva-che .ct-chef-bio p{font-size:15px!important;line-height:1.95!important}\nbody.page-id-9454 #eva-che .ct-eva-quote{border-left:1px solid var(--ct-copper);padding:0 0 0 22px!important;margin-top:22px!important}\nbody.page-id-9454 #eva-che .ct-eva-quote p:first-child{font:400 19px\/1.65 Poppins,sans-serif!important;color:#eee9e3!important}\nbody.page-id-9454 #eva-che .ct-eva-quote p+p{font-size:11px!important;margin-top:12px!important;letter-spacing:.1em!important;color:#a19080!important}\n@media(max-width:980px){body.page-id-9454 #eva-che .ct-chef-row{flex-direction:column-reverse!important}body.page-id-9454 #eva-che .ct-chef-copy,body.page-id-9454 #eva-che .ct-chef-photo{width:100%!important;flex-basis:auto!important}body.page-id-9454 #eva-che .ct-chef-copy{padding:0 0 30px!important}body.page-id-9454 #eva-che .ct-chef-photo{min-height:0!important;max-width:650px!important;align-self:center!important;background-position:center top}body.page-id-9454 #eva-che .ct-eva-title h2{font-size:60px!important}}\n@media(max-width:600px){body.page-id-9454 #main-content #eva-che{padding-top:64px!important;padding-bottom:0!important}body.page-id-9454 #eva-che .ct-eva-title h2{font-size:48px!important}body.page-id-9454 #eva-che .ct-eva-quote p:first-child{font-size:21px!important}body.page-id-9454 #eva-che .ct-eva-image img{max-height:620px}}\n\n<\/style><\/div><\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<div class=\"et_pb_section_3 et_pb_section et_section_regular et_block_section ct-section ct-menue\" id=\"menue\">\r\n<div class=\"et_pb_row_9 et_pb_row et_flex_row ct-menu-header\">\r\n<div class=\"et_pb_column_14 et_pb_column et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_16_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone ct-menu-top\">\r\n<div class=\"et_pb_text_12 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module ct-eyebrow\"><div class=\"et_pb_text_inner\"><p>03 \/ Cantina-Men\u00fc<\/p>\n<\/div><\/div>\r\n<div class=\"et_pb_heading_3 et_pb_heading et_pb_module et_flex_module ct-menu-title\"><div class=\"et_pb_heading_container\"><h2 class=\"et_pb_module_header\">Gerichte & Einblicke.<\/h2><\/div><\/div>\r\n<\/div>\r\n<div class=\"et_pb_column_15 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_8_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone ct-menu-hours-col\">\r\n<div class=\"et_pb_text_13 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module ct-menu-hours\"><div class=\"et_pb_text_inner\"><p>Soft Opening<br \/>Donnerstag \u2013 Samstag<br \/>19:00 \u2013 23:00 Uhr<\/p>\n<\/div><\/div>\r\n<\/div>\r\n<\/div>\r\n<div class=\"et_pb_row_10 et_pb_row et_flex_row ct-mosaic-top\">\r\n<div class=\"et_pb_column_16 et_pb_column et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_8_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone ct-tile ct-tile-0\">\r\n<div class=\"et_pb_image_2 et_pb_image et_pb_module et_flex_module ct-menu-photo\"><span class=\"et_pb_image_wrap\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/tausendberlin.com\/wp-content\/uploads\/2026\/03\/PULPO-scaled-1.webp\" alt=\"Verdeckte Men\u00fcvorschau der Cantina by CheHub\" width=\"2048\" height=\"2560\" srcset=\"https:\/\/tausendberlin.com\/wp-content\/uploads\/2026\/03\/PULPO-scaled-1.webp 2048w, https:\/\/tausendberlin.com\/wp-content\/uploads\/2026\/03\/PULPO-scaled-1-1280x1600.webp 1280w, https:\/\/tausendberlin.com\/wp-content\/uploads\/2026\/03\/PULPO-scaled-1-980x1225.webp 980w, https:\/\/tausendberlin.com\/wp-content\/uploads\/2026\/03\/PULPO-scaled-1-480x600.webp 480w\" sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) and (max-width: 1280px) 1280px, (min-width: 1281px) 2048px, 100vw\" class=\"wp-image-3178\" \/><\/span><\/div>\r\n<\/div>\r\n<div class=\"et_pb_column_17 et_pb_column et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_8_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone ct-tile ct-tile-1\">\r\n<div class=\"et_pb_image_3 et_pb_image et_pb_module et_flex_module ct-menu-photo\"><span class=\"et_pb_image_wrap\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/tausendberlin.com\/wp-content\/uploads\/2026\/03\/BarTausend_034.webp\" alt=\"Verdeckte Men\u00fcvorschau der Cantina by CheHub\" width=\"2500\" height=\"1667\" srcset=\"https:\/\/tausendberlin.com\/wp-content\/uploads\/2026\/03\/BarTausend_034.webp 2500w, https:\/\/tausendberlin.com\/wp-content\/uploads\/2026\/03\/BarTausend_034-1280x854.webp 1280w, https:\/\/tausendberlin.com\/wp-content\/uploads\/2026\/03\/BarTausend_034-980x653.webp 980w, https:\/\/tausendberlin.com\/wp-content\/uploads\/2026\/03\/BarTausend_034-480x320.webp 480w\" sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) and (max-width: 1280px) 1280px, (min-width: 1281px) 2500px, 100vw\" class=\"wp-image-3177\" \/><\/span><\/div>\r\n<\/div>\r\n<div class=\"et_pb_column_18 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_8_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone ct-tile ct-tile-2\">\r\n<div class=\"et_pb_image_4 et_pb_image et_pb_module et_flex_module ct-menu-photo\"><span class=\"et_pb_image_wrap\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/tausendberlin.com\/wp-content\/uploads\/2026\/03\/BarTausend_020.webp\" alt=\"Verdeckte Men\u00fcvorschau der Cantina by CheHub\" width=\"2500\" height=\"1667\" srcset=\"https:\/\/tausendberlin.com\/wp-content\/uploads\/2026\/03\/BarTausend_020.webp 2500w, https:\/\/tausendberlin.com\/wp-content\/uploads\/2026\/03\/BarTausend_020-1280x854.webp 1280w, https:\/\/tausendberlin.com\/wp-content\/uploads\/2026\/03\/BarTausend_020-980x653.webp 980w, https:\/\/tausendberlin.com\/wp-content\/uploads\/2026\/03\/BarTausend_020-480x320.webp 480w\" sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) and (max-width: 1280px) 1280px, (min-width: 1281px) 2500px, 100vw\" class=\"wp-image-3176\" \/><\/span><\/div>\r\n<\/div>\r\n<\/div>\r\n<div class=\"et_pb_row_11 et_pb_row et_flex_row ct-mosaic-bottom\">\r\n<div class=\"et_pb_column_19 et_pb_column et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_12_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone ct-tile ct-tile-3\">\r\n<div class=\"et_pb_image_5 et_pb_image et_pb_module et_flex_module ct-menu-photo\"><span class=\"et_pb_image_wrap\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/tausendberlin.com\/wp-content\/uploads\/2026\/03\/BarTausend_011.webp\" alt=\"Verdeckte Men\u00fcvorschau der Cantina by CheHub\" width=\"2500\" height=\"1667\" srcset=\"https:\/\/tausendberlin.com\/wp-content\/uploads\/2026\/03\/BarTausend_011.webp 2500w, https:\/\/tausendberlin.com\/wp-content\/uploads\/2026\/03\/BarTausend_011-1280x854.webp 1280w, https:\/\/tausendberlin.com\/wp-content\/uploads\/2026\/03\/BarTausend_011-980x653.webp 980w, https:\/\/tausendberlin.com\/wp-content\/uploads\/2026\/03\/BarTausend_011-480x320.webp 480w\" sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) and (max-width: 1280px) 1280px, (min-width: 1281px) 2500px, 100vw\" class=\"wp-image-3175\" \/><\/span><\/div>\r\n<\/div>\r\n<div class=\"et_pb_column_20 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_12_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone ct-tile ct-tile-4\">\r\n<div class=\"et_pb_image_6 et_pb_image et_pb_module et_flex_module ct-menu-photo\"><span class=\"et_pb_image_wrap\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/tausendberlin.com\/wp-content\/uploads\/2026\/03\/BarTausend_005-scaled-1.webp\" alt=\"Verdeckte Men\u00fcvorschau der Cantina by CheHub\" width=\"1707\" height=\"2560\" srcset=\"https:\/\/tausendberlin.com\/wp-content\/uploads\/2026\/03\/BarTausend_005-scaled-1.webp 1707w, https:\/\/tausendberlin.com\/wp-content\/uploads\/2026\/03\/BarTausend_005-scaled-1-1280x1920.webp 1280w, https:\/\/tausendberlin.com\/wp-content\/uploads\/2026\/03\/BarTausend_005-scaled-1-980x1470.webp 980w, https:\/\/tausendberlin.com\/wp-content\/uploads\/2026\/03\/BarTausend_005-scaled-1-480x720.webp 480w\" sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) and (max-width: 1280px) 1280px, (min-width: 1281px) 1707px, 100vw\" class=\"wp-image-3174\" \/><\/span><\/div>\r\n<\/div>\r\n<\/div>\r\n<div class=\"et_pb_row_12 et_pb_row et_flex_row ct-menu-overlay\">\r\n<div class=\"et_pb_column_21 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone\">\r\n<div class=\"et_pb_text_14 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module ct-menu-notice\"><div class=\"et_pb_text_inner\"><p>MENU GALLERY<br \/><span>SOON<\/span><\/p>\n<\/div><\/div>\r\n<\/div>\r\n<\/div>\r\n<div class=\"et_pb_row_13 et_pb_row et_flex_row ct-code-row\">\r\n<div class=\"et_pb_column_22 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone\">\r\n<div class=\"et_pb_code_3 et_pb_code et_pb_module bt-lg-code\"><div class=\"et_pb_code_inner\"><!-- CODE : CANTINA FLUESSIGGLAS V2 (Claude, 22.10.2026) \u00b7 dezent: kleine Fl\u00fcssigkeitszone an der Maus, Blendenfarbe, kein Kupfer \u00b7 nur Effektschicht \u00fcber verdeckten Men\u00fcfotos \u00b7 R\u00fcckweg: dieses Modul l\u00f6schen -->\n<style id=\"bt-liquid-glass-v1-css\">\nbody:not(.et-fb) .bt-lg-code{display:none!important}\n.bt-lg-canvas{position:absolute;display:block;margin:0;padding:0;border:0;pointer-events:none;z-index:auto;opacity:1;contain:strict}\n@media (prefers-reduced-motion:reduce),(forced-colors:active),(hover:none),(pointer:coarse){.bt-lg-canvas{display:none!important}}\n<\/style>\n<script id=\"bt-liquid-glass-v1\">\n(function(){\n  \"use strict\";\n  if (window.btLiquidGlassV1) return;\n  window.btLiquidGlassV1 = true;\n  var DEBUG = { tiles: null };\n  window.btLiquidGlassV1Debug = DEBUG;\n\n  var PAGES = {\n    \"9454\": { host: \"#menue\" },\n    \"9606\": { host: \"#bt-cantina-gallery-view\" }\n  };\n  var ZONE_PX = 85;\n  var TEX_W = 56;\n  var MAX_DPR = 1.5;\n  var MAX_PIXELS = 1100000;\n  var MIN_BLUR_PX = 4;\n  var STEP_MS = 1000 \/ 60;\n\n  var body = document.body;\n  if (!body) return;\n  var cls = \" \" + body.className + \" \";\n  if (cls.indexOf(\" et-fb \") > -1 || cls.indexOf(\" et-bfb \") > -1 || cls.indexOf(\" et-tb \") > -1) return;\n  var cfg = null;\n  for (var id in PAGES) { if (cls.indexOf(\" page-id-\" + id + \" \") > -1) { cfg = PAGES[id]; break; } }\n  if (!cfg) return;\n\n  var mqOk = window.matchMedia(\"(hover:hover) and (pointer:fine)\");\n  var mqRm = window.matchMedia(\"(prefers-reduced-motion:reduce)\");\n  var mqFc = window.matchMedia(\"(forced-colors:active)\");\n  function allowed(){ return mqOk.matches && !mqRm.matches && !mqFc.matches; }\n\n  var tiles = [];\n  var running = false;\n  var lastT = 0;\n  var acc = 0;\n\n  function parseFilter(str){\n    var out = { blur: 0, brightness: 1, contrast: 1, saturate: 1, opacity: 1 };\n    if (!str || str === \"none\") return out;\n    var parts = str.split(\")\");\n    for (var i = 0; i < parts.length; i++) {\n      var p = parts[i].trim();\n      var k = p.indexOf(\"(\");\n      if (k < 0) continue;\n      var name = p.slice(0, k).trim();\n      var raw = p.slice(k + 1).trim();\n      var v = parseFloat(raw);\n      if (isNaN(v)) continue;\n      if (raw.indexOf(\"%\") > -1) v = v \/ 100;\n      if (name === \"blur\") out.blur = v;\n      else if (name in out) out[name] = out[name] * v;\n    }\n    return out;\n  }\n\n  function bgColor(el){\n    while (el && el !== document.documentElement) {\n      var c = getComputedStyle(el).backgroundColor;\n      if (c && c !== \"transparent\" && c.indexOf(\"rgba(0, 0, 0, 0)\") !== 0) {\n        var n = c.slice(c.indexOf(\"(\") + 1, c.indexOf(\")\")).split(\",\");\n        return [parseFloat(n[0]) \/ 255, parseFloat(n[1]) \/ 255, parseFloat(n[2]) \/ 255];\n      }\n      el = el.parentElement;\n    }\n    return [0.08, 0.08, 0.08];\n  }\n\n  function findCover(img, host){\n    var el = img, cover = null, f = null;\n    while (el && el !== host) {\n      var ff = parseFilter(getComputedStyle(el).filter);\n      if (ff.blur >= MIN_BLUR_PX) { cover = el; f = ff; }\n      el = el.parentElement;\n    }\n    return cover ? { el: cover, f: f } : null;\n  }\n\n  function rgba(c){\n    if (!c || c.indexOf(\"(\") < 0) return null;\n    var n = c.slice(c.indexOf(\"(\") + 1, c.indexOf(\")\")).split(\",\");\n    return [parseFloat(n[0]) \/ 255, parseFloat(n[1]) \/ 255, parseFloat(n[2]) \/ 255, n.length > 3 ? parseFloat(n[3]) : 1];\n  }\n\n  function findVeil(img, host){\n    var ir = img.getBoundingClientRect();\n    if (ir.width < 40 || ir.height < 40) return null;\n    var cx = ir.left + ir.width \/ 2, cy = ir.top + ir.height \/ 2;\n    var all = host.querySelectorAll(\"*\");\n    for (var i = 0; i < all.length; i++) {\n      var el = all[i];\n      if (el === img || el.contains(img) || el.tagName === \"CANVAS\") continue;\n      var cs = getComputedStyle(el);\n      var bf = parseFilter(cs.backdropFilter || cs.webkitBackdropFilter);\n      if (bf.blur < MIN_BLUR_PX) continue;\n      var r = el.getBoundingClientRect();\n      if (cx < r.left || cx > r.right || cy < r.top || cy > r.bottom) continue;\n      var bg = rgba(cs.backgroundColor) || [0, 0, 0, 0];\n      bf.veil = bg;\n      return { el: el, f: bf };\n    }\n    return null;\n  }\n\n  var miss = \"WeakMap\" in window ? new WeakMap() : null;\n\n  function scan(){\n    var host = document.querySelector(cfg.host);\n    if (!host) return;\n    var imgs = host.querySelectorAll(\"img\");\n    for (var i = 0; i < imgs.length; i++) {\n      var img = imgs[i];\n      if (img.closest(\".bt-lg-skip\")) continue;\n      var known = false;\n      for (var j = 0; j < tiles.length; j++) if (tiles[j].img === img) known = true;\n      if (known) continue;\n      var nowT = Date.now();\n      if (miss && miss.get(img) > nowT - 2000) continue;\n      var c = findCover(img, host);\n      if (!c) c = findVeil(img, host);\n      if (!c) { if (miss) miss.set(img, nowT); continue; }\n      tiles.push(makeTile(img, c.el, c.f));\n    }\n    for (var t = tiles.length - 1; t >= 0; t--) {\n      var tt = tiles[t];\n      if (tt.on) continue;\n      if (!tt.img.isConnected || !tt.cover.isConnected) { destroyTile(tt); tiles.splice(t, 1); continue; }\n      var now = tt.f.veil ? findVeil(tt.img, host) : findCover(tt.img, host);\n      if (!now) { destroyTile(tt); tiles.splice(t, 1); continue; }\n      tt.f = now.f;\n    }\n  }\n\n  function makeTile(img, cover, f){\n    var t = { img: img, cover: cover, f: f, canvas: null, gl: null, prog: null, on: false,\n      cols: 0, rows: 0, h0: null, h1: null, pack: null, w: 0, h: 0,\n      px: -1, py: -1, sx: -1, sy: -1, lastX: -1, lastY: -1, inside: false, lens: 0,\n      energy: 0, quiet: 0, scene: false, bg: [0.08, 0.08, 0.08], dead: false, visible: true };\n    t.onEnter = function(e){ if (e.pointerType === \"touch\" || !allowed()) return; enter(t, e); };\n    t.onMove = function(e){ if (e.pointerType === \"touch\" || !allowed()) return; move(t, e); };\n    t.onLeave = function(){ t.inside = false; wake(); };\n    t.listen = f.veil ? commonParent(img, cover) : (cover.parentElement || cover);\n    t.listen.addEventListener(\"pointerenter\", t.onEnter, { passive: true });\n    t.listen.addEventListener(\"pointermove\", t.onMove, { passive: true });\n    t.listen.addEventListener(\"pointerleave\", t.onLeave, { passive: true });\n    return t;\n  }\n\n  function commonParent(a, b){\n    var p = b.parentElement;\n    while (p && !p.contains(a)) p = p.parentElement;\n    return p || b;\n  }\n\n  function box(t){\n    var r = t.cover.getBoundingClientRect();\n    if (!t.f.veil) return r;\n    var i = t.img.getBoundingClientRect();\n    var l = Math.max(r.left, i.left), tp = Math.max(r.top, i.top);\n    var rr = Math.min(r.right, i.right), bb = Math.min(r.bottom, i.bottom);\n    return { left: l, top: tp, width: Math.max(1, rr - l), height: Math.max(1, bb - tp) };\n  }\n\n  function destroyTile(t){\n    t.listen.removeEventListener(\"pointerenter\", t.onEnter);\n    t.listen.removeEventListener(\"pointermove\", t.onMove);\n    t.listen.removeEventListener(\"pointerleave\", t.onLeave);\n    if (t.gl) { var ext = t.gl.getExtension(\"WEBGL_lose_context\"); if (ext) ext.loseContext(); }\n    if (t.canvas && t.canvas.parentNode) t.canvas.parentNode.removeChild(t.canvas);\n    t.dead = true;\n  }\n\n  function anchor(t){ return t.f.veil ? t.img : t.cover; }\n\n  function place(t){\n    var parent = anchor(t).parentElement;\n    if (!parent) return false;\n    if (getComputedStyle(parent).position === \"static\") parent.style.position = \"relative\";\n    var pr = parent.getBoundingClientRect();\n    var r = box(t);\n    var cs = getComputedStyle(parent);\n    var w = Math.max(1, Math.round(r.width)), h = Math.max(1, Math.round(r.height));\n    var c = t.canvas;\n    c.style.left = (r.left - pr.left - parseFloat(cs.borderLeftWidth || 0)) + \"px\";\n    c.style.top = (r.top - pr.top - parseFloat(cs.borderTopWidth || 0)) + \"px\";\n    c.style.width = r.width + \"px\";\n    c.style.height = r.height + \"px\";\n    c.style.borderRadius = getComputedStyle(t.img).borderRadius;\n    var dpr = Math.min(window.devicePixelRatio || 1, MAX_DPR);\n    if (w * h * dpr * dpr > MAX_PIXELS) dpr = Math.sqrt(MAX_PIXELS \/ (w * h));\n    var bw = Math.round(w * dpr), bh = Math.round(h * dpr);\n    if (c.width !== bw || c.height !== bh) { c.width = bw; c.height = bh; }\n    if (t.w !== w || t.h !== h) {\n      t.w = w; t.h = h;\n      t.cols = Math.max(24, Math.min(140, Math.round(w \/ 5)));\n      t.rows = Math.max(16, Math.round(t.cols * h \/ w));\n      var n = t.cols * t.rows;\n      t.h0 = new Float32Array(n); t.h1 = new Float32Array(n);\n      t.pack = new Uint8Array(n * 4);\n      if (t.gl) buildScene(t);\n    }\n    return true;\n  }\n\n  var VS = \"attribute vec2 p; varying vec2 v; void main(){ v = p * 0.5 + 0.5; gl_Position = vec4(p, 0.0, 1.0); }\";\n  var FS = [\n    \"precision mediump float;\",\n    \"varying vec2 v;\",\n    \"uniform sampler2D uH; uniform sampler2D uS;\",\n    \"uniform vec2 uPx; uniform vec3 uBg; uniform vec3 uCu; uniform vec2 uM; uniform float uZone;\",\n    \"uniform float uBri; uniform float uCon; uniform float uSat; uniform float uOp; uniform float uBlur;\",\n    \"uniform float uScene; uniform float uRefr; uniform float uGain;\",\n    \"vec3 grade(vec3 c){ c = c * uBri; c = (c - 0.5) * uCon + 0.5; float l = dot(c, vec3(0.2126, 0.7152, 0.0722)); return clamp(mix(vec3(l), c, uSat), 0.0, 1.0); }\",\n    \"void main(){\",\n    \"  vec2 uv = vec2(v.x, 1.0 - v.y);\",\n    \"  vec4 hp = texture2D(uH, uv);\",\n    \"  vec2 g = (hp.rg - 0.5) * 2.0;\",\n    \"  float hh = (hp.b - 0.5) * 2.0;\",\n    \"  float caus = hp.a;\",\n    \"  vec3 n = normalize(vec3(-g * 2.4, 1.0));\",\n    \"  vec2 off = g * uRefr;\",\n    \"  vec2 dpx = uPx * min(min(uv.x, 1.0 - uv.x), min(uv.y, 1.0 - uv.y));\",\n    \"  float cov = smoothstep(-2.2 * uBlur, 2.2 * uBlur, min(dpx.x, dpx.y));\",\n    \"  vec3 base;\",\n    \"  if (uScene > 0.5) {\",\n    \"    float r = texture2D(uS, clamp(uv + off * 0.92, 0.0, 1.0)).r;\",\n    \"    float gg = texture2D(uS, clamp(uv + off, 0.0, 1.0)).g;\",\n    \"    float b = texture2D(uS, clamp(uv + off * 1.1, 0.0, 1.0)).b;\",\n    \"    base = mix(uBg, grade(vec3(r, gg, b)), uOp * cov);\",\n    \"  } else { base = uBg; }\",\n    \"  vec3 L = normalize(vec3(-0.45, -0.55, 0.70));\",\n    \"  float dif = dot(n, L) - L.z;\",\n    \"  vec3 R = reflect(-L, n);\",\n    \"  float sp = pow(max(R.z, 0.0), 60.0);\",\n    \"  float sp2 = pow(max(dot(R, normalize(vec3(0.35, 0.25, 1.0))), 0.0), 18.0) * 0.18;\",\n    \"  float rim = clamp(1.0 - n.z, 0.0, 1.0);\",\n    \"  vec3 col = base * (1.0 + clamp(dif * 0.9 + hh * 0.05, -0.32, 0.24));\",\n    \"  vec3 hi = clamp(uCu * 1.7 + 0.05, 0.0, 1.0);\",\n    \"  col += hi * (rim * 0.16 + caus * 0.12) * uGain;\",\n    \"  col += hi * (sp * 0.35 + sp2 * 0.4) * uGain;\",\n    \"  float e = clamp(length(g) * 9.0 + abs(hh) * 3.0 + caus * 2.0, 0.0, 1.0);\",\n    \"  float dm = length((uv - uM) * uPx);\",\n    \"  float zone = 1.0 - smoothstep(uZone * 0.45, uZone, dm);\",\n    \"  if (uScene > 0.5) {\",\n    \"    float a = smoothstep(0.0, 0.35, e) * cov * zone;\",\n    \"    gl_FragColor = vec4(col * a, a);\",\n    \"  } else {\",\n    \"    vec3 add = max(col - base, 0.0);\",\n    \"    float a = clamp(max(max(add.r, add.g), add.b), 0.0, 0.6) * cov * zone;\",\n    \"    gl_FragColor = vec4(add * cov * zone, a);\",\n    \"  }\",\n    \"}\"\n  ].join(\" \");\n\n  function sh(gl, type, src){\n    var s = gl.createShader(type); gl.shaderSource(s, src); gl.compileShader(s);\n    if (!gl.getShaderParameter(s, gl.COMPILE_STATUS)) { throw new Error(gl.getShaderInfoLog(s)); }\n    return s;\n  }\n\n  function initGL(t){\n    var c = document.createElement(\"canvas\");\n    c.className = \"bt-lg-canvas\";\n    c.setAttribute(\"aria-hidden\", \"true\");\n    c.setAttribute(\"role\", \"presentation\");\n    t.canvas = c;\n    anchor(t).insertAdjacentElement(\"afterend\", c);\n    var gl = c.getContext(\"webgl\", { alpha: true, premultipliedAlpha: true, antialias: false, depth: false, stencil: false, preserveDrawingBuffer: false, powerPreference: \"low-power\" });\n    if (!gl) { c.parentNode.removeChild(c); t.canvas = null; return false; }\n    t.gl = gl;\n    var p = gl.createProgram();\n    gl.attachShader(p, sh(gl, gl.VERTEX_SHADER, VS));\n    gl.attachShader(p, sh(gl, gl.FRAGMENT_SHADER, FS));\n    gl.linkProgram(p);\n    if (!gl.getProgramParameter(p, gl.LINK_STATUS)) throw new Error(\"link\");\n    gl.useProgram(p);\n    t.prog = p;\n    var buf = gl.createBuffer();\n    gl.bindBuffer(gl.ARRAY_BUFFER, buf);\n    gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([-1, -1, 1, -1, -1, 1, 1, 1]), gl.STATIC_DRAW);\n    var loc = gl.getAttribLocation(p, \"p\");\n    gl.enableVertexAttribArray(loc);\n    gl.vertexAttribPointer(loc, 2, gl.FLOAT, false, 0, 0);\n    t.texH = mkTex(gl, 0);\n    t.texS = mkTex(gl, 1);\n    t.u = {};\n    [\"uH\", \"uS\", \"uPx\", \"uBg\", \"uCu\", \"uBri\", \"uCon\", \"uSat\", \"uOp\", \"uBlur\", \"uScene\", \"uRefr\", \"uGain\", \"uM\", \"uZone\"].forEach(function(k){ t.u[k] = gl.getUniformLocation(p, k); });\n    gl.uniform1i(t.u.uH, 0);\n    gl.uniform1i(t.u.uS, 1);\n    c.addEventListener(\"webglcontextlost\", function(ev){ ev.preventDefault(); t.gl = null; t.on = false; }, false);\n    return true;\n  }\n\n  function mkTex(gl, unit){\n    var tx = gl.createTexture();\n    gl.activeTexture(gl.TEXTURE0 + unit);\n    gl.bindTexture(gl.TEXTURE_2D, tx);\n    gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);\n    gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);\n    gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n    gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n    gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 1, 1, 0, gl.RGBA, gl.UNSIGNED_BYTE, new Uint8Array([0, 0, 0, 0]));\n    return tx;\n  }\n\n  function buildScene(t){\n    var gl = t.gl, img = t.img;\n    t.scene = false;\n    if (!img.complete || !img.naturalWidth) { img.addEventListener(\"load\", function(){ if (t.gl) buildScene(t); }, { once: true }); return; }\n    var w = TEX_W, h = Math.max(8, Math.round(TEX_W * t.h \/ t.w));\n    var small = document.createElement(\"canvas\");\n    var sw = Math.max(12, Math.min(40, Math.round(t.w \/ (2.2 * Math.max(t.f.blur, MIN_BLUR_PX))))), shh = Math.max(4, Math.round(sw * t.h \/ t.w));\n    small.width = sw; small.height = shh;\n    var out = document.createElement(\"canvas\");\n    out.width = w; out.height = h;\n    try {\n      var cs = getComputedStyle(img);\n      var nw = img.naturalWidth, nh = img.naturalHeight;\n      var ir = img.getBoundingClientRect(), cr = box(t);\n      var fit = cs.objectFit;\n      var bw = ir.width, bh = ir.height, dx = 0, dy = 0, dw = bw, dh = bh;\n      if (fit === \"cover\" || fit === \"contain\") {\n        var s = fit === \"cover\" ? Math.max(bw \/ nw, bh \/ nh) : Math.min(bw \/ nw, bh \/ nh);\n        dw = nw * s; dh = nh * s;\n        var pos = (cs.objectPosition || \"50% 50%\").split(\" \");\n        var ox = parseFloat(pos[0]), oy = parseFloat(pos[1] || pos[0]);\n        if (isNaN(ox)) ox = 50; if (isNaN(oy)) oy = 50;\n        dx = (bw - dw) * ox \/ 100; dy = (bh - dh) * oy \/ 100;\n      }\n      var kx = sw \/ cr.width, ky = shh \/ cr.height;\n      var a = small.getContext(\"2d\");\n      a.fillStyle = \"rgb(\" + Math.round(t.bg[0] * 255) + \",\" + Math.round(t.bg[1] * 255) + \",\" + Math.round(t.bg[2] * 255) + \")\";\n      a.fillRect(0, 0, sw, shh);\n      a.imageSmoothingEnabled = true;\n      a.imageSmoothingQuality = \"high\";\n      a.drawImage(img, (ir.left - cr.left + dx) * kx, (ir.top - cr.top + dy) * ky, dw * kx, dh * ky);\n      var b = out.getContext(\"2d\");\n      b.imageSmoothingEnabled = true;\n      b.imageSmoothingQuality = \"high\";\n      b.drawImage(small, 0, 0, w, h);\n      if (\"filter\" in b) { b.filter = \"blur(1px)\"; b.drawImage(out, 0, 0); b.filter = \"none\"; }\n      gl.activeTexture(gl.TEXTURE1);\n      gl.bindTexture(gl.TEXTURE_2D, t.texS);\n      gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, out);\n      var px = small.getContext(\"2d\").getImageData(0, 0, sw, shh).data, sr = 0, sg = 0, sb = 0, cnt = 0;\n      for (var q = 0; q < px.length; q += 4) { sr += px[q]; sg += px[q + 1]; sb += px[q + 2]; cnt++; }\n      var f0 = t.f, k0 = f0.veil ? 1 : f0.brightness, o0 = f0.veil ? 1 : f0.opacity;\n      t.tint = [0, 1, 2].map(function(c){ var v = [sr, sg, sb][c] \/ cnt \/ 255 * k0; return t.bg[c] + (v - t.bg[c]) * o0; });\n      t.scene = true;\n    } catch (err) {\n      t.scene = false;\n    }\n  }\n\n  function enter(t, e){\n    if (t.dead) return;\n    if (!t.gl) {\n      try { if (!initGL(t)) return; } catch (err) { if (t.canvas && t.canvas.parentNode) t.canvas.parentNode.removeChild(t.canvas); t.canvas = null; t.gl = null; return; }\n      t.bg = bgColor(anchor(t).parentElement);\n      t.w = 0;\n      if (!place(t)) return;\n      buildScene(t);\n    } else {\n      place(t);\n    }\n    t.on = true;\n    t.inside = true;\n    var p = local(t, e);\n    t.px = p[0]; t.py = p[1];\n    if (t.lens < 0.02) { t.sx = p[0]; t.sy = p[1]; }\n    t.lastX = p[0]; t.lastY = p[1];\n    t.lastMoveT = performance.now();\n    wake();\n  }\n\n  function local(t, e){\n    var r = box(t);\n    return [(e.clientX - r.left) \/ r.width, (e.clientY - r.top) \/ r.height];\n  }\n\n  function move(t, e){\n    if (!t.gl) { enter(t, e); return; }\n    t.inside = true;\n    var ev = e.getCoalescedEvents ? e.getCoalescedEvents() : null;\n    if (!ev || !ev.length) ev = [e];\n    var now = performance.now();\n    for (var i = 0; i < ev.length; i++) {\n      var p = local(t, ev[i]);\n      var dt = Math.max(4, now - (t.lastMoveT || now));\n      var dx = (p[0] - t.lastX) * t.w, dy = (p[1] - t.lastY) * t.h;\n      var dist = Math.sqrt(dx * dx + dy * dy);\n      var speed = Math.min(dist \/ dt, 1.6);\n      if (t.lastX >= 0) stroke(t, t.lastX, t.lastY, p[0], p[1], speed);\n      t.lastX = p[0]; t.lastY = p[1];\n      t.px = p[0]; t.py = p[1];\n    }\n    t.lastMoveT = now;\n    wake();\n  }\n\n  function stroke(t, x0, y0, x1, y1, speed){\n    var cols = t.cols, rows = t.rows;\n    var gx0 = x0 * cols, gy0 = y0 * rows, gx1 = x1 * cols, gy1 = y1 * rows;\n    var len = Math.sqrt((gx1 - gx0) * (gx1 - gx0) + (gy1 - gy0) * (gy1 - gy0));\n    var steps = Math.max(1, Math.ceil(len \/ 0.9));\n    var amp = (0.09 + speed * 0.18) \/ steps * Math.min(len, 4) * 0.8;\n    if (amp < 0.0015) return;\n    var rad = 1.6 + speed * 0.4;\n    for (var s = 1; s <= steps; s++) {\n      var k = s \/ steps;\n      drop(t, gx0 + (gx1 - gx0) * k, gy0 + (gy1 - gy0) * k, rad, -amp);\n    }\n  }\n\n  function drop(t, gx, gy, rad, amp){\n    var cols = t.cols, rows = t.rows, h = t.h1;\n    var r = Math.ceil(rad * 1.8);\n    var cx = Math.round(gx), cy = Math.round(gy);\n    var inv = 1 \/ (rad * rad);\n    for (var y = Math.max(1, cy - r); y <= Math.min(rows - 2, cy + r); y++) {\n      for (var x = Math.max(1, cx - r); x <= Math.min(cols - 2, cx + r); x++) {\n        var ddx = x - gx, ddy = y - gy;\n        var d2 = (ddx * ddx + ddy * ddy) * inv;\n        if (d2 > 3.2) continue;\n        h[y * cols + x] += amp * Math.exp(-d2);\n      }\n    }\n  }\n\n  function simulate(t){\n    var cols = t.cols, rows = t.rows, a = t.h0, b = t.h1;\n    var e = 0;\n    var mx = t.sx * cols, my = t.sy * rows;\n    var zc = Math.min(ZONE_PX, Math.min(t.w, t.h) * 0.45) * cols \/ t.w;\n    var zi = 1 \/ (zc * zc);\n    var asp = (t.h \/ t.w) * cols \/ rows;\n    var calm = t.inside ? 0.0 : 0.012;\n    for (var y = 1; y < rows - 1; y++) {\n      var row = y * cols;\n      var dy = (y - my) * asp;\n      for (var x = 1; x < cols - 1; x++) {\n        var i = row + x;\n        var dx = x - mx;\n        var d2 = (dx * dx + dy * dy) * zi;\n        var damp = 0.977 - calm - (d2 > 0.25 ? Math.min(0.2, (d2 - 0.25) * 0.12) : 0);\n        var nb = b[i - 1] + b[i + 1] + b[i - cols] + b[i + cols];\n        var v = (nb * 0.5 - a[i]) * damp;\n        v = v * 0.985 + (nb * 0.25) * 0.015;\n        a[i] = v;\n        e += v < 0 ? -v : v;\n      }\n    }\n    t.h0 = b; t.h1 = a;\n    t.energy = e \/ (cols * rows);\n  }\n\n  function packTex(t){\n    var cols = t.cols, rows = t.rows, h = t.h1, o = t.pack;\n    var lx = t.sx * cols, ly = t.sy * rows;\n    var lr = Math.max(3, cols * 0.035);\n    var linv = 1 \/ (lr * lr);\n    var lamp = -0.12 * t.lens;\n    var aspect = t.h \/ t.w * cols \/ rows;\n    function H(x, y){\n      var v = h[y * cols + x];\n      if (lamp !== 0) {\n        var dx = x - lx, dy = (y - ly) * aspect;\n        var d2 = (dx * dx + dy * dy) * linv;\n        if (d2 < 9) v += lamp * Math.exp(-d2);\n      }\n      return v;\n    }\n    if (!t.buf || t.buf.length !== cols * rows) t.buf = new Float32Array(cols * rows);\n    var buf = t.buf;\n    for (var y = 0; y < rows; y++) for (var x = 0; x < cols; x++) buf[y * cols + x] = H(x, y);\n    for (var y2 = 0; y2 < rows; y2++) {\n      for (var x2 = 0; x2 < cols; x2++) {\n        var i = y2 * cols + x2;\n        var xl = x2 > 0 ? buf[i - 1] : buf[i], xr = x2 < cols - 1 ? buf[i + 1] : buf[i];\n        var yu = y2 > 0 ? buf[i - cols] : buf[i], yd = y2 < rows - 1 ? buf[i + cols] : buf[i];\n        var gx = (xr - xl) * 0.5, gy = (yd - yu) * 0.5;\n        gx = gx \/ (1 + Math.abs(gx) * 3.5); gy = gy \/ (1 + Math.abs(gy) * 3.5);\n        var lap = xl + xr + yu + yd - 4 * buf[i];\n        var j = i * 4;\n        o[j] = clamp8(128 + gx * 260);\n        o[j + 1] = clamp8(128 + gy * 260);\n        o[j + 2] = clamp8(128 + buf[i] * 140);\n        o[j + 3] = clamp8(lap > 0 ? lap * 900 : 0);\n      }\n    }\n  }\n  function clamp8(v){ return v < 0 ? 0 : v > 255 ? 255 : v | 0; }\n\n  function draw(t){\n    var gl = t.gl;\n    gl.viewport(0, 0, t.canvas.width, t.canvas.height);\n    gl.useProgram(t.prog);\n    gl.activeTexture(gl.TEXTURE0);\n    gl.bindTexture(gl.TEXTURE_2D, t.texH);\n    gl.pixelStorei(gl.UNPACK_ALIGNMENT, 1);\n    gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, t.cols, t.rows, 0, gl.RGBA, gl.UNSIGNED_BYTE, t.pack);\n    gl.activeTexture(gl.TEXTURE1);\n    gl.bindTexture(gl.TEXTURE_2D, t.texS);\n    var f = t.f;\n    gl.uniform2f(t.u.uPx, t.w, t.h);\n    gl.uniform3f(t.u.uBg, t.bg[0], t.bg[1], t.bg[2]);\n    var tn = t.tint || t.bg;\n    gl.uniform3f(t.u.uCu, tn[0], tn[1], tn[2]);\n    gl.uniform2f(t.u.uM, t.sx, t.sy);\n    gl.uniform1f(t.u.uZone, Math.min(ZONE_PX, Math.min(t.w, t.h) * 0.45));\n    gl.uniform1f(t.u.uBri, f.veil ? 1 : f.brightness);\n    gl.uniform1f(t.u.uCon, f.veil ? 1 : f.contrast);\n    gl.uniform1f(t.u.uSat, f.veil ? 1 : f.saturate);\n    gl.uniform1f(t.u.uOp, f.veil ? 1 : f.opacity);\n    gl.uniform1f(t.u.uBlur, f.veil ? 0.01 : f.blur);\n    gl.uniform1f(t.u.uScene, t.scene ? 1 : 0);\n    gl.uniform1f(t.u.uRefr, f.veil ? 0.11 : 0.06);\n    gl.uniform1f(t.u.uGain, f.veil ? 1.8 : 1.0);\n    gl.clearColor(0, 0, 0, 0);\n    gl.clear(gl.COLOR_BUFFER_BIT);\n    gl.drawArrays(gl.TRIANGLE_STRIP, 0, 4);\n  }\n\n  function clear(t){\n    if (!t.gl) return;\n    t.gl.clearColor(0, 0, 0, 0);\n    t.gl.clear(t.gl.COLOR_BUFFER_BIT);\n    for (var i = 0; i < t.h0.length; i++) { t.h0[i] = 0; t.h1[i] = 0; }\n  }\n\n  function wake(){\n    if (running || document.hidden || !allowed()) return;\n    running = true;\n    lastT = performance.now();\n    acc = 0;\n    requestAnimationFrame(frame);\n  }\n\n  function frame(now){\n    if (document.hidden || !allowed()) { running = false; return; }\n    var dt = Math.min(now - lastT, 100);\n    lastT = now;\n    acc += dt;\n    var steps = 0;\n    var any = false;\n    while (acc >= STEP_MS && steps < 3) { acc -= STEP_MS; steps++; }\n    if (steps === 3) acc = 0;\n    for (var i = 0; i < tiles.length; i++) {\n      var t = tiles[i];\n      if (!t.on || !t.gl) continue;\n      if (!t.visible) { clear(t); t.on = false; t.lens = 0; continue; }\n      var target = t.inside ? 1 : 0;\n      var idle = now - (t.lastMoveT || 0);\n      for (var s = 0; s < steps; s++) {\n        simulate(t);\n        t.lens += (target - t.lens) * (t.inside ? 0.085 : 0.06);\n        var kf = t.inside ? 0.16 : 0.0;\n        t.sx += (t.px - t.sx) * kf;\n        t.sy += (t.py - t.sy) * kf;\n      }\n      var follow = Math.abs(t.px - t.sx) * t.w + Math.abs(t.py - t.sy) * t.h;\n      var settling = Math.abs(target - t.lens) > 0.004 || (t.inside && follow > 0.4);\n      if (t.energy > 0.00035 || settling || idle < 120) {\n        t.quiet = 0;\n      } else {\n        t.quiet++;\n      }\n      if (!t.inside && t.lens < 0.01 && t.energy < 0.00035) {\n        clear(t); t.on = false; t.lens = 0; continue;\n      }\n      packTex(t);\n      draw(t);\n      if (t.quiet < 2) any = true;\n    }\n    if (any) requestAnimationFrame(frame); else running = false;\n  }\n\n  var io = \"IntersectionObserver\" in window ? new IntersectionObserver(function(list){\n    list.forEach(function(en){\n      for (var i = 0; i < tiles.length; i++) if (tiles[i].cover === en.target) tiles[i].visible = en.isIntersecting;\n    });\n    wake();\n  }, { rootMargin: \"0px\" }) : null;\n  var ro = \"ResizeObserver\" in window ? new ResizeObserver(function(){\n    for (var i = 0; i < tiles.length; i++) if (tiles[i].gl) place(tiles[i]);\n  }) : null;\n\n  function observeAll(){\n    for (var i = 0; i < tiles.length; i++) {\n      var t = tiles[i];\n      if (t.observed) continue;\n      t.observed = true;\n      if (io) io.observe(t.cover);\n      if (ro) ro.observe(t.cover);\n    }\n  }\n\n  var scanTimer = 0;\n  function rescan(){\n    clearTimeout(scanTimer);\n    scanTimer = setTimeout(function(){\n      var run = function(){ scan(); observeAll(); };\n      if (\"requestIdleCallback\" in window) requestIdleCallback(run, { timeout: 1500 }); else run();\n    }, 300);\n  }\n\n  function teardownIfDisallowed(){\n    if (allowed()) { wake(); return; }\n    for (var i = 0; i < tiles.length; i++) { var t = tiles[i]; t.inside = false; t.lens = 0; t.on = false; clear(t); }\n  }\n  [mqOk, mqRm, mqFc].forEach(function(m){\n    if (m.addEventListener) m.addEventListener(\"change\", teardownIfDisallowed);\n    else if (m.addListener) m.addListener(teardownIfDisallowed);\n  });\n  document.addEventListener(\"visibilitychange\", function(){ if (!document.hidden) wake(); });\n\n  function start(){\n    \/* bt-glass-near-v1 (GPT): erst starten, wenn die Galerie in die N\u00e4he des Sichtbereichs kommt *\/\n    if(!start.btNearReady && 'IntersectionObserver' in window){var btGlassHost=document.querySelector(cfg.host);if(btGlassHost){var btGlassNear=new IntersectionObserver(function(es){if(!es.some(function(e){return e.isIntersecting;}))return;btGlassNear.disconnect();start.btNearReady=true;start();},{rootMargin:'100% 0px 100% 0px'});btGlassNear.observe(btGlassHost);return;}}\n    DEBUG.tiles = tiles;\n    scan();\n    observeAll();\n    var host = document.querySelector(cfg.host);\n    if (host && \"MutationObserver\" in window) {\n      new MutationObserver(rescan).observe(host, { childList: true, subtree: true, attributes: true, attributeFilter: [\"class\", \"style\"] });\n    } else if (!host) {\n      var tries = 0;\n      var iv = setInterval(function(){\n        tries++;\n        if (document.querySelector(cfg.host)) { clearInterval(iv); start(); }\n        else if (tries > 20) clearInterval(iv);\n      }, 500);\n    }\n  }\n  if (document.readyState === \"complete\") start();\n  else window.addEventListener(\"load\", start, { once: true });\n})();\n<\/script><\/div><\/div>\r\n<\/div>\r\n<\/div>\r\n<div class=\"et_pb_row_14 et_pb_row et_flex_row ct-code-row\">\r\n<div class=\"et_pb_column_23 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone\">\r\n<div class=\"et_pb_code_4 et_pb_code et_pb_module\"><div class=\"et_pb_code_inner\"><style>\n\nbody.page-id-9454 #main-content #menue{background:#0c0c0c!important;min-height:100svh!important;display:flex!important;flex-direction:column;justify-content:center}\nbody.page-id-9454 #menue .ct-menu-header{display:flex!important;align-items:end;gap:36px;margin-bottom:40px!important}\nbody.page-id-9454 #menue .ct-menu-top{width:72%!important;flex-basis:72%!important}\nbody.page-id-9454 #menue .ct-menu-hours-col{width:28%!important;flex-basis:28%!important;text-align:right}\nbody.page-id-9454 #menue .ct-menu-hours p{font-size:11px!important;line-height:1.8!important;color:#a5978b!important;letter-spacing:.06em!important;text-transform:uppercase}\nbody.page-id-9454 #menue :is(.ct-mosaic-top,.ct-mosaic-bottom){display:flex!important;gap:18px!important;flex-wrap:nowrap!important}\nbody.page-id-9454 #menue .ct-mosaic-bottom{margin-top:18px!important}\nbody.page-id-9454 #menue .ct-tile{overflow:hidden;position:relative;background:#191613}\nbody.page-id-9454 #menue .ct-mosaic-top .ct-tile{width:33.333%!important;flex-basis:33.333%!important}\nbody.page-id-9454 #menue .ct-mosaic-bottom .ct-tile{width:50%!important;flex-basis:50%!important}\nbody.page-id-9454 #menue .ct-menu-photo{width:100%!important;filter:blur(12px) brightness(.65) saturate(.7)!important;transform:scale(1.05)}\nbody.page-id-9454 #menue .ct-menu-photo .et_pb_image_wrap{display:block!important;width:100%!important}\nbody.page-id-9454 #menue .ct-menu-photo img{display:block!important;width:100%!important;height:clamp(190px,25vh,300px)!important;object-fit:cover!important}\nbody.page-id-9454 #menue .ct-menu-overlay{position:absolute!important;left:6vw!important;right:6vw!important;top:52%!important;max-width:88vw!important;transform:translateY(-15%)!important;z-index:8!important;pointer-events:none}\nbody.page-id-9454 #menue .ct-menu-notice p{font:500 clamp(28px,3.2vw,46px)\/1.05 Oswald,sans-serif!important;text-align:center!important;letter-spacing:-.02em!important;color:#c27a50!important;text-shadow:0 3px 30px rgba(0,0,0,.5)}\nbody.page-id-9454 #menue .ct-menu-notice span{font-size:.36em!important;font-family:Poppins,sans-serif!important;letter-spacing:.3em!important;display:inline-block;margin-top:18px}\n@media(max-width:980px){body.page-id-9454 #menue .ct-menu-header{display:block!important}body.page-id-9454 #menue .ct-menu-top,body.page-id-9454 #menue .ct-menu-hours-col{width:100%!important;flex-basis:auto!important;text-align:left}body.page-id-9454 #menue .ct-menu-hours-col{margin-top:24px!important}body.page-id-9454 #menue .ct-menu-photo img{height:220px!important}}\n@media(max-width:600px){body.page-id-9454 #menue .ct-menu-header{margin-bottom:36px!important}body.page-id-9454 #menue :is(.ct-mosaic-top,.ct-mosaic-bottom){gap:10px!important}body.page-id-9454 #menue .ct-mosaic-top .ct-tile{width:50%!important;flex-basis:50%!important}body.page-id-9454 #menue .ct-mosaic-top .ct-tile:last-child{display:none}body.page-id-9454 #menue .ct-mosaic-bottom .ct-tile{width:50%!important;flex-basis:50%!important}body.page-id-9454 #menue .ct-mosaic-bottom{margin-top:10px!important}body.page-id-9454 #menue .ct-menu-photo img{height:190px!important}body.page-id-9454 #menue .ct-menu-overlay{top:58%!important;left:24px!important;right:24px!important}body.page-id-9454 #menue .ct-menu-notice p{font-size:30px!important}}\n\n<\/style><\/div><\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<div class=\"et_pb_section_4 et_pb_section et_section_regular et_block_section ct-section ct-raum\" id=\"raum\">\r\n<div class=\"et_pb_row_15 et_pb_row et_flex_row ct-dining-row\">\r\n<div class=\"et_pb_column_24 et_pb_column et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_12_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone ct-dining-text\">\r\n<div class=\"et_pb_text_15 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module ct-eyebrow\"><div class=\"et_pb_text_inner\"><p>04 \/ Ihr Abend in der Cantina<\/p>\n<\/div><\/div>\r\n<div class=\"et_pb_heading_4 et_pb_heading et_pb_module et_flex_module ct-dining-title\"><div class=\"et_pb_heading_container\"><h2 class=\"et_pb_module_header\">Zusammenkommen. Zusammen genie\u00dfen.<\/h2><\/div><\/div>\r\n<div class=\"et_pb_text_16 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module ct-dining-copy\"><div class=\"et_pb_text_inner\"><p>Firmendinner, Geburtstag oder ein Abend mit Freunden:<\/p>\n<p>Gemeinsam planen wir Ihr Men\u00fc und den passenden Rahmen.<\/p>\n<p>Die Cantina l\u00e4sst sich auch als separater VIP-, Bar- oder Backstage-Bereich nutzen.<\/p>\n<\/div><\/div>\r\n<div class=\"et_pb_module et_pb_button_module_wrapper et_pb_button_1_wrapper\"><a class=\"et_pb_button_1 et_pb_button et_pb_bg_layout_light et_pb_module et_flex_module ct-button\" href=\"mailto:event@tausendberlin.com?subject=Veranstaltung%20in%20der%20Cantina\">Veranstaltung anfragen &#x2197;<\/a><\/div>\r\n<\/div>\r\n<div class=\"et_pb_column_25 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_12_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone ct-dining-map\">\r\n<div class=\"et_pb_image_7 et_pb_image et_pb_module et_flex_module ct-floorplan\"><span class=\"et_pb_image_wrap\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/tausendberlin.com\/wp-content\/uploads\/2026\/09\/BarTausend-Cantina-BG08-4.png\" alt=\"Grundriss der Tausend Cantina mit offener K\u00fcche\" width=\"1012\" height=\"1920\" srcset=\"https:\/\/tausendberlin.com\/wp-content\/uploads\/2026\/09\/BarTausend-Cantina-BG08-4.png 1012w, https:\/\/tausendberlin.com\/wp-content\/uploads\/2026\/09\/BarTausend-Cantina-BG08-4-980x1859.png 980w, https:\/\/tausendberlin.com\/wp-content\/uploads\/2026\/09\/BarTausend-Cantina-BG08-4-480x911.png 480w\" sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1012px, 100vw\" class=\"wp-image-7666\" \/><\/span><\/div>\r\n<div class=\"et_pb_text_17 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module ct-image-caption\"><div class=\"et_pb_text_inner\"><p>Die Cantina im Tausend<\/p>\n<\/div><\/div>\r\n<\/div>\r\n<\/div>\r\n<div class=\"et_pb_row_16 et_pb_row et_flex_row ct-code-row\">\r\n<div class=\"et_pb_column_26 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone\">\r\n<div class=\"et_pb_code_5 et_pb_code et_pb_module\"><div class=\"et_pb_code_inner\"><style>\n\nbody.page-id-9454 #main-content #raum{background:#101010!important;min-height:100svh!important;display:flex!important;flex-direction:column;justify-content:center}\nbody.page-id-9454 #raum .ct-dining-row{display:flex!important;align-items:center;gap:7vw}\nbody.page-id-9454 #raum .ct-dining-text{width:48%!important;flex-basis:48%!important}\nbody.page-id-9454 #raum .ct-dining-map{width:45%!important;flex-basis:45%!important}\nbody.page-id-9454 #raum .ct-dining-title h2{font-size:clamp(34px,3.3vw,54px)!important;max-width:11ch}\nbody.page-id-9454 #raum .ct-dining-copy{max-width:42ch;margin-top:16px!important}\nbody.page-id-9454 #raum .ct-dining-copy p{font-size:15px!important;line-height:1.9!important}\nbody.page-id-9454 #raum .ct-floorplan img{display:block;width:100%;max-height:70svh;object-fit:contain!important}\nbody.page-id-9454 #raum .ct-dining-map .ct-image-caption p{text-align:center;font-size:10px!important;letter-spacing:.14em!important;text-transform:uppercase;color:#9a8a7a!important}\nbody.page-id-9454 #raum .ct-button{margin-top:20px!important}\n@media(max-width:980px){body.page-id-9454 #raum .ct-dining-text,body.page-id-9454 #raum .ct-dining-map{width:100%!important;flex-basis:100%!important}body.page-id-9454 #raum .ct-dining-map{margin-top:32px!important}}\n\n<\/style><\/div><\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<div class=\"et_pb_section_5 et_pb_section et_section_regular et_block_section ct-section ct-reservieren\" id=\"reservieren\">\r\n<div class=\"et_pb_row_17 et_pb_row et_flex_row ct-visit-row\">\r\n<div class=\"et_pb_column_27 et_pb_column et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_10_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone ct-visit-info\">\r\n<div class=\"et_pb_text_18 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module ct-eyebrow\"><div class=\"et_pb_text_inner\"><p>05 \/ Ihr Besuch<\/p>\n<\/div><\/div>\r\n<div class=\"et_pb_heading_5 et_pb_heading et_pb_module et_flex_module ct-visit-title\"><div class=\"et_pb_heading_container\"><h2 class=\"et_pb_module_header\">Ein Abend in der Cantina<\/h2><\/div><\/div>\r\n<div class=\"et_pb_text_19 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module ct-visit-hours\"><div class=\"et_pb_text_inner\"><p>Donnerstag \u2013 Samstag<br \/>19:00 \u2013 23:00 Uhr<\/p>\n<\/div><\/div>\r\n<div class=\"et_pb_text_20 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module ct-visit-address\"><div class=\"et_pb_text_inner\"><p>Schiffbauerdamm 11<br \/>10117 Berlin<\/p>\n<\/div><\/div>\r\n<a class=\"et_pb_link_2 et_pb_link et_pb_module et_flex_module ct-route\" href=\"https:\/\/www.google.com\/maps\/dir\/?api=1&#038;destination=Schiffbauerdamm+11+10117+Berlin\"><span class=\"et_pb_link_inner\"><span class=\"et_pb_link_text\">Route planen &#x2197;<\/span><\/span><\/a>\r\n<a class=\"et_pb_link_3 et_pb_link et_pb_module et_flex_module ct-back-bar\" href=\"https:\/\/tausendberlin.com\/#bar\"><span class=\"et_pb_link_inner\"><span class=\"et_pb_link_text\">Zur Bar Tausend &#x2197;<\/span><\/span><\/a>\r\n<\/div>\r\n<div class=\"et_pb_column_28 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_14_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone ct-visit-form\">\r\n<div class=\"et_pb_heading_6 et_pb_heading et_pb_module et_flex_module ct-form-heading\"><div class=\"et_pb_heading_container\"><h3 class=\"et_pb_module_header\">Reservierungsanfrage<\/h3><\/div><\/div>\r\n<div class=\"et_pb_text_21 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module ct-form-intro\"><div class=\"et_pb_text_inner\"><p>Ihre Anfrage ist noch keine best\u00e4tigte Reservierung.<\/p>\n<\/div><\/div>\r\n<div class=\"et_pb_contact_form_0 et_pb_contact_form_container clearfix et_pb_recaptcha_enabled et_pb_module et_flex_module ct-reservation-form\" data-form_unique_num=\"0\" data-form_unique_id=\"c9454000-2026-4024-8024-cafe00000001\" id=\"cantina-reservation-form\"><div class=\"et-pb-contact-message\"><\/div><div class=\"et_pb_contact\"><form class=\"et_pb_contact_form et_flex_module\" method=\"post\" action=\"https:\/\/tausendberlin.com\/en\/wp-json\/wp\/v2\/pages\/9454\">\r\n<div class=\"et_pb_contact_field_0 et_pb_contact_field et_pb_module et_flex_module et_flex_column_12_24 et_flex_column_12_24_tablet et_flex_column_24_24_phone\" data-id=\"name\" data-type=\"input\"><label class=\"et_pb_contact_form_label\" for=\"et_pb_contact_0_name_0\">Ihr Name *<\/label><input type=\"text\" name=\"et_pb_contact_0_name_0\" id=\"et_pb_contact_0_name_0\" class=\"input\" data-required_mark=\"required\" data-field_type=\"input\" data-original_id=\"name\" placeholder=\"Ihr Name *\" title=\"\" value=\"\" \/><\/div>\r\n<div class=\"et_pb_contact_field_1 et_pb_contact_field et_pb_module et_flex_module et_flex_column_12_24 et_flex_column_12_24_tablet et_flex_column_24_24_phone\" data-id=\"email\" data-type=\"email\"><label class=\"et_pb_contact_form_label\" for=\"et_pb_contact_0_email_1\">Ihre E-Mail-Adresse *<\/label><input type=\"text\" name=\"et_pb_contact_0_email_1\" id=\"et_pb_contact_0_email_1\" class=\"input\" data-required_mark=\"required\" data-field_type=\"email\" data-original_id=\"email\" placeholder=\"Ihre E-Mail-Adresse *\" title=\"\" value=\"\" \/><\/div>\r\n<div class=\"et_pb_contact_field_2 et_pb_contact_field et_pb_module et_flex_module et_flex_column_12_24 et_flex_column_12_24_tablet et_flex_column_24_24_phone\" data-id=\"date\" data-type=\"input\"><label class=\"et_pb_contact_form_label\" for=\"et_pb_contact_0_date_2\">Wunschdatum *<\/label><input type=\"text\" name=\"et_pb_contact_0_date_2\" id=\"et_pb_contact_0_date_2\" class=\"input\" data-required_mark=\"required\" data-field_type=\"input\" data-original_id=\"date\" placeholder=\"Wunschdatum *\" title=\"\" value=\"\" \/><\/div>\r\n<div class=\"et_pb_contact_field_3 et_pb_contact_field et_pb_module et_flex_module et_flex_column_12_24 et_flex_column_12_24_tablet et_flex_column_24_24_phone\" data-id=\"time\" data-type=\"input\"><label class=\"et_pb_contact_form_label\" for=\"et_pb_contact_0_time_3\">Wunschzeit *<\/label><input type=\"text\" name=\"et_pb_contact_0_time_3\" id=\"et_pb_contact_0_time_3\" class=\"input\" data-required_mark=\"required\" data-field_type=\"input\" data-original_id=\"time\" placeholder=\"Wunschzeit *\" title=\"\" value=\"\" \/><\/div>\r\n<div class=\"et_pb_contact_field_4 et_pb_contact_field et_pb_module et_flex_module et_flex_column_12_24 et_flex_column_12_24_tablet et_flex_column_24_24_phone\" data-id=\"guests\" data-type=\"input\"><label class=\"et_pb_contact_form_label\" for=\"et_pb_contact_0_guests_4\">Anzahl G\u00e4ste *<\/label><input type=\"text\" name=\"et_pb_contact_0_guests_4\" id=\"et_pb_contact_0_guests_4\" class=\"input\" data-required_mark=\"required\" data-field_type=\"input\" data-original_id=\"guests\" placeholder=\"Anzahl G\u00e4ste *\" title=\"\" value=\"\" \/><\/div>\r\n<div class=\"et_pb_contact_field_5 et_pb_contact_field et_pb_module et_flex_module et_flex_column_12_24 et_flex_column_12_24_tablet et_flex_column_24_24_phone\" data-id=\"phone\" data-type=\"input\"><label class=\"et_pb_contact_form_label\" for=\"et_pb_contact_0_phone_5\">Telefon (optional)<\/label><input type=\"text\" name=\"et_pb_contact_0_phone_5\" id=\"et_pb_contact_0_phone_5\" class=\"input\" data-required_mark=\"not_required\" data-field_type=\"input\" data-original_id=\"phone\" placeholder=\"Telefon (optional)\" title=\"\" value=\"\" \/><\/div>\r\n<div class=\"et_pb_contact_field_6 et_pb_contact_field et_pb_module et_flex_module et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone\" data-id=\"message\" data-type=\"textarea\"><label class=\"et_pb_contact_form_label\" for=\"et_pb_contact_0_message_6\">Nachricht und W\u00fcnsche (optional)<\/label><textarea name=\"et_pb_contact_0_message_6\" id=\"et_pb_contact_0_message_6\" class=\"et_pb_contact_message input\" data-required_mark=\"not_required\" data-field_type=\"textarea\" data-original_id=\"message\" placeholder=\"Nachricht und W\u00fcnsche (optional)\"><\/textarea><\/div>\r\n<input type=\"hidden\" name=\"et_pb_contactform_submit_c9454000-2026-4024-8024-cafe00000001\" value=\"et_contact_proccess\" \/><div class=\"et_contact_bottom_container\"><div class=\"et_pb_button_wrapper\"><button type=\"submit\" name=\"et_builder_submit_button\" class=\"et_pb_button et_pb_contact_submit\">Anfrage senden<\/button><\/div><\/div><input type=\"hidden\" id=\"_wpnonce-et-pb-contact-form-submitted-c9454000-2026-4024-8024-cafe00000001\" name=\"_wpnonce-et-pb-contact-form-submitted-c9454000-2026-4024-8024-cafe00000001\" value=\"abf0ecf2f3\" \/><input type=\"hidden\" name=\"_wp_http_referer\" value=\"\/en\/wp-json\/wp\/v2\/pages\/9454\" \/><\/form><\/div><\/div>\r\n<div class=\"et_pb_text_22 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module ct-form-privacy\"><div class=\"et_pb_text_inner\"><p><a href=\"https:\/\/tausendberlin.com\/impressum\/#datenschutz\">Datenschutzhinweise<\/a><\/p>\n<\/div><\/div>\r\n<\/div>\r\n<\/div>\r\n<div class=\"et_pb_row_18 et_pb_row et_flex_row ct-code-row\">\r\n<div class=\"et_pb_column_29 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone\">\r\n<div class=\"et_pb_code_6 et_pb_code et_pb_module\"><div class=\"et_pb_code_inner\"><style>\n\n<\/style>\n<script>\n(function(){'use strict';function init(){if(document.body.classList.contains('et-fb'))return;var host=document.getElementById('cantina-reservation-form');if(!host)return;var en=\/^en\/i.test(document.documentElement.lang);var inputs=host.querySelectorAll('input.input');inputs.forEach(function(i){var id=i.getAttribute('data-original_id')||'';if(id==='name')i.autocomplete='name';if(id==='email'){i.type='email';i.autocomplete='email'}if(id==='phone'){i.type='tel';i.autocomplete='tel'}if(id==='guests'){i.type='number';i.min='1';i.step='1'}if(id==='date'){i.type='date';try{var p=new Intl.DateTimeFormat('en-CA',{timeZone:'Europe\/Berlin',year:'numeric',month:'2-digit',day:'2-digit'}).formatToParts(new Date()),v={};p.forEach(function(x){v[x.type]=x.value});i.min=v.year+'-'+v.month+'-'+v.day}catch(e){}}if(id==='time'){i.type='time';i.min='19:00';i.max='23:00';i.step='900'}});}if(document.readyState==='loading')document.addEventListener('DOMContentLoaded',init,{once:true});else init()})();\n<\/script><\/div><\/div>\r\n<\/div>\r\n<\/div>\r\n<div class=\"et_pb_row_19 et_pb_row et_flex_row ct-code-row\">\r\n<div class=\"et_pb_column_30 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone\">\r\n<div class=\"et_pb_code_7 et_pb_code et_pb_module\"><div class=\"et_pb_code_inner\"><style>\n\nbody.page-id-9454 #main-content #reservieren{background:#0b0b0b!important;min-height:100svh!important;display:flex!important;flex-direction:column;justify-content:center}\nbody.page-id-9454 #reservieren .ct-visit-row{display:flex!important;align-items:start;gap:8vw}\nbody.page-id-9454 #reservieren .ct-visit-info{width:38%!important;flex-basis:38%!important}\nbody.page-id-9454 #reservieren .ct-visit-form{width:54%!important;flex-basis:54%!important;padding-top:24px!important}\nbody.page-id-9454 #reservieren .ct-visit-title h2{max-width:9ch;font-size:clamp(36px,3.4vw,56px)!important}\nbody.page-id-9454 #reservieren .ct-visit-hours{margin-top:25px!important}\nbody.page-id-9454 #reservieren .ct-visit-hours p{font:400 23px\/1.5 Oswald,sans-serif!important;color:#c27a50!important}\nbody.page-id-9454 #reservieren .ct-visit-address p{font-size:15px!important;color:#b3aaa1!important}\nbody.page-id-9454 #reservieren :is(.ct-route,.ct-back-bar) a{display:inline-flex!important;align-items:center;min-height:44px;font:400 12px\/1.4 Poppins,sans-serif!important;letter-spacing:.08em}\nbody.page-id-9454 #reservieren .ct-form-heading h3{font-size:28px!important;line-height:1.2!important;text-transform:none!important;letter-spacing:-.02em!important}\nbody.page-id-9454 #reservieren .ct-form-intro p{font-size:12px!important;line-height:1.7!important;color:#a19386!important}\nbody.page-id-9454 #reservieren .ct-reservation-form{margin-top:14px!important}\nbody.page-id-9454 #reservieren .ct-reservation-form .et_pb_contact_form{display:flex!important;flex-wrap:wrap!important;flex-direction:row!important;gap:24px!important;align-items:flex-start!important;margin:0!important}\nbody.page-id-9454 #reservieren .ct-reservation-form .et_pb_contact_field{width:calc(50% - 12px)!important;max-width:none!important;flex:0 0 calc(50% - 12px)!important;margin:0!important;padding:0!important;min-width:0!important;display:block!important}\nbody.page-id-9454 #reservieren .ct-reservation-form .et_pb_contact_field[data-id=\"message\"]{width:100%!important;flex-basis:100%!important}\nbody.page-id-9454 #reservieren .ct-reservation-form .et_pb_contact_form_label{display:block!important;position:static!important;width:auto!important;height:auto!important;overflow:visible!important;clip-path:none!important;white-space:normal!important;font:400 11px\/1.5 Poppins,sans-serif!important;color:#b3a79c!important;text-transform:none!important;margin:0 0 4px!important}\nbody.page-id-9454 #reservieren .ct-reservation-form :is(input.input,textarea,select){box-sizing:border-box!important;width:100%!important;min-height:54px!important;padding:15px 2px!important;margin:0!important;background:transparent!important;border:0!important;border-bottom:1px solid #4e4842!important;border-radius:0!important;box-shadow:none!important;color:#eee9e3!important;font:400 14px\/1.5 Poppins,sans-serif!important;outline:none!important;color-scheme:dark}\nbody.page-id-9454 #reservieren .ct-reservation-form :is(input.input,textarea)::placeholder{color:#b3a79c!important;opacity:1}\nbody.page-id-9454 #reservieren .ct-reservation-form textarea{height:96px!important;min-height:96px!important;resize:vertical}\nbody.page-id-9454 #reservieren .ct-reservation-form :is(input.input,textarea,select):focus{border-bottom-color:#c27a50!important}\nbody.page-id-9454 #reservieren .ct-reservation-form .et_contact_error{border-bottom-color:#c27a50!important}\nbody.page-id-9454 #reservieren .ct-reservation-form .et_contact_bottom_container{width:100%!important;display:flex!important;justify-content:flex-start!important;margin:18px 0 0!important;padding:0!important}\nbody.page-id-9454 #reservieren .ct-reservation-form button.et_pb_contact_submit{display:inline-flex!important;align-items:center;justify-content:center;min-height:48px!important;padding:13px 28px!important;margin:0!important;border:1px solid #c27a50!important;border-radius:999px!important;background:transparent!important;color:#c27a50!important;font:400 16px\/1.2 Oswald,sans-serif!important;letter-spacing:.05em;text-transform:uppercase;transition:color .7s,border-color .7s,background-color .7s}\nbody.page-id-9454 #reservieren .ct-reservation-form button.et_pb_contact_submit:hover{color:#fff!important;border-color:#fff!important;background:rgba(194,122,80,.1)!important}\nbody.page-id-9454 #reservieren .ct-reservation-form button.et_pb_contact_submit::after{display:none!important}\nbody.page-id-9454 #reservieren .ct-form-privacy p{font-size:10px!important;color:#a89a8d!important}\nbody.page-id-9454 #reservieren .ct-form-privacy a{text-decoration:underline;text-underline-offset:4px}\nbody.page-id-9454 #reservieren .ct-reservation-form .et-pb-contact-message{font:400 13px\/1.8 Poppins,sans-serif;color:#d8c2ad}\n@media(max-width:980px){body.page-id-9454 #reservieren .ct-visit-info,body.page-id-9454 #reservieren .ct-visit-form{width:100%!important;flex-basis:100%!important}body.page-id-9454 #reservieren .ct-visit-form{padding-top:30px!important}}\n@media(max-width:600px){body.page-id-9454 #reservieren .ct-visit-title h2{font-size:36px!important}body.page-id-9454 #reservieren .ct-reservation-form .et_pb_contact_field{width:100%!important;flex-basis:100%!important}body.page-id-9454 #reservieren .ct-reservation-form .et_pb_contact_form{gap:12px!important}body.page-id-9454 #reservieren .ct-form-heading h3{font-size:26px!important}}\n\nbody.page-id-9454 #reservieren .ct-reservation-form .bt-required{display:none!important}\n<\/style><\/div><\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<div class=\"et_pb_section_6 et_pb_section et_section_regular et_block_section ct-section ct-cantina-footer\" id=\"cantina-footer\">\r\n<div class=\"et_pb_row_20 et_pb_row et_flex_row ct-footer-top\">\r\n<div class=\"et_pb_column_31 et_pb_column et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_12_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone ct-footer-left\">\r\n<a class=\"et_pb_link_4 et_pb_link et_pb_module et_flex_module ct-footer-brand\" href=\"#cantina-start\"><span class=\"et_pb_link_inner\"><span class=\"et_pb_link_text\">CANTINA by CheHub<\/span><\/span><\/a>\r\n<\/div>\r\n<div class=\"et_pb_column_32 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_12_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone ct-footer-right\">\r\n<div class=\"et_pb_text_23 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module ct-footer-nav\"><div class=\"et_pb_text_inner\"><nav aria-label=\"Footer\"><a href=\"https:\/\/tausendberlin.com\/\">Bar Tausend<\/a><a href=\"https:\/\/tausendberlin.com\/impressum\/\">Impressum<\/a><a href=\"https:\/\/tausendberlin.com\/impressum\/#datenschutz\">Datenschutz<\/a><\/nav>\n<\/div><\/div>\r\n<\/div>\r\n<\/div>\r\n<div class=\"et_pb_row_21 et_pb_row et_flex_row ct-footer-bottom\">\r\n<div class=\"et_pb_column_33 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone\">\r\n<div class=\"et_pb_text_24 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module ct-copyright\"><div class=\"et_pb_text_inner\"><p>\u00a9 2026 Bar Tausend \u00b7 CANTINA by CheHub<\/p>\n<\/div><\/div>\r\n<\/div>\r\n<\/div>\r\n<div class=\"et_pb_row_22 et_pb_row et_flex_row ct-code-row\">\r\n<div class=\"et_pb_column_34 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone\">\r\n<div class=\"et_pb_code_8 et_pb_code et_pb_module\"><div class=\"et_pb_code_inner\"><style>\n\nbody.page-id-9454 #main-content #cantina-footer{min-height:0!important;padding:48px 6vw 32px!important;border-top:1px solid rgba(194,122,80,.22);background:#0b0b0b!important}\nbody.page-id-9454 #cantina-footer .ct-footer-top{display:flex!important;align-items:center;justify-content:space-between;gap:30px}\nbody.page-id-9454 #cantina-footer .ct-footer-brand a{font:400 24px\/1.4 Oswald,sans-serif!important;letter-spacing:.01em;text-transform:none!important;min-height:44px;display:inline-flex;align-items:center}\nbody.page-id-9454 #cantina-footer .ct-footer-nav nav{display:flex;gap:24px;justify-content:flex-end;flex-wrap:wrap}\nbody.page-id-9454 #cantina-footer .ct-footer-nav a{font:400 10px\/1.5 Poppins,sans-serif!important;letter-spacing:.1em;text-transform:uppercase;min-height:44px;display:inline-flex;align-items:center}\nbody.page-id-9454 #cantina-footer .ct-footer-bottom{margin-top:28px!important}\nbody.page-id-9454 #cantina-footer .ct-copyright p{font-size:9px!important;letter-spacing:.08em!important;color:#a89a8d!important}\n@media(max-width:980px){body.page-id-9454 #cantina-footer .ct-footer-top{display:block!important}body.page-id-9454 #cantina-footer .ct-footer-nav nav{justify-content:flex-start}body.page-id-9454 #cantina-footer .ct-footer-right{margin-top:12px!important}}\n@media(max-width:600px){body.page-id-9454 #main-content #cantina-footer{padding:36px 24px 24px!important}body.page-id-9454 #cantina-footer .ct-footer-nav nav{gap:20px}}\n\n<\/style><\/div><\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n","protected":false},"excerpt":{"rendered":"<p>Cantina by CheHub hinter der Bar Tausend in Berlin-Mitte. Eva Che, offene K\u00fcche und Flying Cells. Soft Opening: Donnerstag bis Samstag, 19\u201323 Uhr.<\/p>","protected":false},"author":9,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"page-template-blank.php","meta":{"_et_pb_use_builder":"on","_et_pb_page_layout":"et_full_width_page","_et_pb_side_nav":"","footnotes":""},"class_list":["post-9454","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/tausendberlin.com\/en\/wp-json\/wp\/v2\/pages\/9454","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tausendberlin.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/tausendberlin.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/tausendberlin.com\/en\/wp-json\/wp\/v2\/users\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/tausendberlin.com\/en\/wp-json\/wp\/v2\/comments?post=9454"}],"version-history":[{"count":20,"href":"https:\/\/tausendberlin.com\/en\/wp-json\/wp\/v2\/pages\/9454\/revisions"}],"predecessor-version":[{"id":9577,"href":"https:\/\/tausendberlin.com\/en\/wp-json\/wp\/v2\/pages\/9454\/revisions\/9577"}],"wp:attachment":[{"href":"https:\/\/tausendberlin.com\/en\/wp-json\/wp\/v2\/media?parent=9454"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}