Initial commit

This commit is contained in:
Jonas Heinrich 2021-11-13 22:46:04 +01:00
commit 7a795154c3
50 changed files with 13665 additions and 0 deletions

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

1
backup/Signal >> Home_files/bulma.css vendored Normal file

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,210 @@
(function() {
'use strict';
if (window.signalcounter && window.signalcounter.vars) // Compatibility
window.signalcounter = window.signalcounter.vars
else
window.signalcounter = window.signalcounter || {}
// Get all data we're going to send off to the counter endpoint.
var get_data = function(vars) {
var data = {
p: (vars.path === undefined ? signalcounter.path : vars.path),
r: (vars.referrer === undefined ? signalcounter.referrer : vars.referrer),
t: (vars.title === undefined ? signalcounter.title : vars.title),
e: !!(vars.event || signalcounter.event),
s: [window.screen.width, window.screen.height, (window.devicePixelRatio || 1)],
b: is_bot(),
q: location.search,
}
var rcb, pcb, tcb // Save callbacks to apply later.
if (typeof(data.r) === 'function') rcb = data.r
if (typeof(data.t) === 'function') tcb = data.t
if (typeof(data.p) === 'function') pcb = data.p
if (is_empty(data.r)) data.r = document.referrer
if (is_empty(data.t)) data.t = document.title
if (is_empty(data.p)) {
var loc = location,
c = document.querySelector('link[rel="canonical"][href]')
if (c) { // May be relative or point to different domain.
var a = document.createElement('a')
a.href = c.href
if (a.hostname.replace(/^www\./, '') === location.hostname.replace(/^www\./, ''))
loc = a
}
data.p = (loc.pathname + loc.search) || '/'
}
if (rcb) data.r = rcb(data.r)
if (tcb) data.t = tcb(data.t)
if (pcb) data.p = pcb(data.p)
return data
}
// Check if a value is "empty" for the purpose of get_data().
var is_empty = function(v) { return v === null || v === undefined || typeof(v) === 'function' }
// See if this looks like a bot; there is some additional filtering on the
// backend, but these properties can't be fetched from there.
var is_bot = function() {
// Headless browsers are probably a bot.
var w = window, d = document
if (w.callPhantom || w._phantom || w.phantom)
return 150
if (w.__nightmare)
return 151
if (d.__selenium_unwrapped || d.__webdriver_evaluate || d.__driver_evaluate)
return 152
if (navigator.webdriver)
return 153
return 0
}
// Object to urlencoded string, starting with a ?.
var urlencode = function(obj) {
var p = []
for (var k in obj)
if (obj[k] !== '' && obj[k] !== null && obj[k] !== undefined && obj[k] !== false)
p.push(encodeURIComponent(k) + '=' + encodeURIComponent(obj[k]))
return '?' + p.join('&')
}
// Get the endpoint to send requests to.
var get_endpoint = function() {
var s = document.querySelector('script[data-signalcounter]');
if (s && s.dataset.signalcounter)
return s.dataset.signalcounter
return (signalcounter.endpoint || window.counter) // counter is for compat; don't use.
}
// Filter some requests that we (probably) don't want to count.
signalcounter.filter = function() {
if ('visibilityState' in document && (document.visibilityState === 'prerender' || document.visibilityState === 'hidden'))
return 'visibilityState'
if (!signalcounter.allow_frame && location !== parent.location)
return 'frame'
// if (!signalcounter.allow_local && location.hostname.match(/(localhost$|^127\.|^10\.|^172\.(1[6-9]|2[0-9]|3[0-1])\.|^192\.168\.)/))
// return 'localhost'
if (!signalcounter.allow_local && location.protocol === 'file:')
return 'localfile'
if (localStorage && localStorage.getItem('skipsc') === 't')
return 'disabled with #toggle-signalcounter'
return false
}
// Get URL to send to SignalCounter.
window.signalcounter.url = function(vars) {
var data = get_data(vars || {})
if (data.p === null) // null from user callback.
return
data.rnd = Math.random().toString(36).substr(2, 5) // Browsers don't always listen to Cache-Control.
var endpoint = get_endpoint()
if (!endpoint) {
if (console && 'warn' in console)
console.warn('signalcounter: no endpoint found')
return
}
return endpoint + urlencode(data)
}
// Count a hit.
window.signalcounter.count = function(vars) {
var f = signalcounter.filter()
if (f) {
if (console && 'log' in console)
console.warn('signalcounter: not counting because of: ' + f)
return
}
var url = signalcounter.url(vars)
if (!url) {
if (console && 'log' in console)
console.warn('signalcounter: not counting because path callback returned null')
return
}
var img = document.createElement('img')
img.src = url
img.style.position = 'absolute' // Affect layout less.
img.setAttribute('alt', '')
img.setAttribute('aria-hidden', 'true')
var rm = function() { if (img && img.parentNode) img.parentNode.removeChild(img) }
setTimeout(rm, 3000) // In case the onload isn't triggered.
img.addEventListener('load', rm, false)
document.body.appendChild(img)
}
// Get a query parameter.
window.signalcounter.get_query = function(name) {
var s = location.search.substr(1).split('&')
for (var i = 0; i < s.length; i++)
if (s[i].toLowerCase().indexOf(name.toLowerCase() + '=') === 0)
return s[i].substr(name.length + 1)
}
// Track click events.
window.signalcounter.bind_events = function() {
if (!document.querySelectorAll) // Just in case someone uses an ancient browser.
return
var send = function(elem) {
return function() {
signalcounter.count({
event: true,
path: (elem.dataset.signalcounterClick || elem.name || elem.id || ''),
title: (elem.dataset.signalcounterTitle || elem.title || (elem.innerHTML || '').substr(0, 200) || ''),
referrer: (elem.dataset.signalcounterReferrer || elem.dataset.signalcounterReferral || ''),
})
}
}
Array.prototype.slice.call(document.querySelectorAll("*[data-signalcounter-click]")).forEach(function(elem) {
if (elem.dataset.signalcounterBound)
return
var f = send(elem)
elem.addEventListener('click', f, false)
elem.addEventListener('auxclick', f, false) // Middle click.
elem.dataset.signalcounterBound = 'true'
})
}
// Make it easy to skip your own views.
if (location.hash === '#toggle-signalcounter')
if (localStorage.getItem('skipsc') === 't') {
localStorage.removeItem('skipsc', 't')
alert('SignalCounter tracking is now ENABLED in this browser.')
}
else {
localStorage.setItem('skipgc', 't')
alert('SignalCounter tracking is now DISABLED in this browser until ' + location + ' is loaded again.')
}
if (!signalcounter.no_onload) {
var DOMReady = function(callback) {
document.readyState === "interactive" || document.readyState ==="complete" ? callback() : document.addEventListener("load", callback);
};
DOMReady(function() {
signalcounter.count()
// if (!signalcounter.no_events)
// signalcounter.bind_events()
});
/*
var go = function() {
signalcounter.count()
if (!signalcounter.no_events)
signalcounter.bind_events()
}
if (document.body === null)
document.addEventListener('DOMContentLoaded', function() { go() }, false)
else
go()
*/
}
})();

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

12036
files/bulma.css vendored Normal file

File diff suppressed because it is too large Load diff

0
files/custom.css Normal file
View file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

BIN
files/header1.jpeg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 797 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

3
files/jquery-3.js vendored Normal file

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

BIN
files/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 119 KiB

44
files/lottie-player-0.js Normal file

File diff suppressed because one or more lines are too long

BIN
files/picture1.jpeg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 444 KiB

BIN
files/picture2.jpeg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

BIN
files/picture3.jpeg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 522 KiB

View file

@ -0,0 +1,210 @@
(function() {
'use strict';
if (window.signalcounter && window.signalcounter.vars) // Compatibility
window.signalcounter = window.signalcounter.vars
else
window.signalcounter = window.signalcounter || {}
// Get all data we're going to send off to the counter endpoint.
var get_data = function(vars) {
var data = {
p: (vars.path === undefined ? signalcounter.path : vars.path),
r: (vars.referrer === undefined ? signalcounter.referrer : vars.referrer),
t: (vars.title === undefined ? signalcounter.title : vars.title),
e: !!(vars.event || signalcounter.event),
s: [window.screen.width, window.screen.height, (window.devicePixelRatio || 1)],
b: is_bot(),
q: location.search,
}
var rcb, pcb, tcb // Save callbacks to apply later.
if (typeof(data.r) === 'function') rcb = data.r
if (typeof(data.t) === 'function') tcb = data.t
if (typeof(data.p) === 'function') pcb = data.p
if (is_empty(data.r)) data.r = document.referrer
if (is_empty(data.t)) data.t = document.title
if (is_empty(data.p)) {
var loc = location,
c = document.querySelector('link[rel="canonical"][href]')
if (c) { // May be relative or point to different domain.
var a = document.createElement('a')
a.href = c.href
if (a.hostname.replace(/^www\./, '') === location.hostname.replace(/^www\./, ''))
loc = a
}
data.p = (loc.pathname + loc.search) || '/'
}
if (rcb) data.r = rcb(data.r)
if (tcb) data.t = tcb(data.t)
if (pcb) data.p = pcb(data.p)
return data
}
// Check if a value is "empty" for the purpose of get_data().
var is_empty = function(v) { return v === null || v === undefined || typeof(v) === 'function' }
// See if this looks like a bot; there is some additional filtering on the
// backend, but these properties can't be fetched from there.
var is_bot = function() {
// Headless browsers are probably a bot.
var w = window, d = document
if (w.callPhantom || w._phantom || w.phantom)
return 150
if (w.__nightmare)
return 151
if (d.__selenium_unwrapped || d.__webdriver_evaluate || d.__driver_evaluate)
return 152
if (navigator.webdriver)
return 153
return 0
}
// Object to urlencoded string, starting with a ?.
var urlencode = function(obj) {
var p = []
for (var k in obj)
if (obj[k] !== '' && obj[k] !== null && obj[k] !== undefined && obj[k] !== false)
p.push(encodeURIComponent(k) + '=' + encodeURIComponent(obj[k]))
return '?' + p.join('&')
}
// Get the endpoint to send requests to.
var get_endpoint = function() {
var s = document.querySelector('script[data-signalcounter]');
if (s && s.dataset.signalcounter)
return s.dataset.signalcounter
return (signalcounter.endpoint || window.counter) // counter is for compat; don't use.
}
// Filter some requests that we (probably) don't want to count.
signalcounter.filter = function() {
if ('visibilityState' in document && (document.visibilityState === 'prerender' || document.visibilityState === 'hidden'))
return 'visibilityState'
if (!signalcounter.allow_frame && location !== parent.location)
return 'frame'
// if (!signalcounter.allow_local && location.hostname.match(/(localhost$|^127\.|^10\.|^172\.(1[6-9]|2[0-9]|3[0-1])\.|^192\.168\.)/))
// return 'localhost'
if (!signalcounter.allow_local && location.protocol === 'file:')
return 'localfile'
if (localStorage && localStorage.getItem('skipsc') === 't')
return 'disabled with #toggle-signalcounter'
return false
}
// Get URL to send to SignalCounter.
window.signalcounter.url = function(vars) {
var data = get_data(vars || {})
if (data.p === null) // null from user callback.
return
data.rnd = Math.random().toString(36).substr(2, 5) // Browsers don't always listen to Cache-Control.
var endpoint = get_endpoint()
if (!endpoint) {
if (console && 'warn' in console)
console.warn('signalcounter: no endpoint found')
return
}
return endpoint + urlencode(data)
}
// Count a hit.
window.signalcounter.count = function(vars) {
var f = signalcounter.filter()
if (f) {
if (console && 'log' in console)
console.warn('signalcounter: not counting because of: ' + f)
return
}
var url = signalcounter.url(vars)
if (!url) {
if (console && 'log' in console)
console.warn('signalcounter: not counting because path callback returned null')
return
}
var img = document.createElement('img')
img.src = url
img.style.position = 'absolute' // Affect layout less.
img.setAttribute('alt', '')
img.setAttribute('aria-hidden', 'true')
var rm = function() { if (img && img.parentNode) img.parentNode.removeChild(img) }
setTimeout(rm, 3000) // In case the onload isn't triggered.
img.addEventListener('load', rm, false)
document.body.appendChild(img)
}
// Get a query parameter.
window.signalcounter.get_query = function(name) {
var s = location.search.substr(1).split('&')
for (var i = 0; i < s.length; i++)
if (s[i].toLowerCase().indexOf(name.toLowerCase() + '=') === 0)
return s[i].substr(name.length + 1)
}
// Track click events.
window.signalcounter.bind_events = function() {
if (!document.querySelectorAll) // Just in case someone uses an ancient browser.
return
var send = function(elem) {
return function() {
signalcounter.count({
event: true,
path: (elem.dataset.signalcounterClick || elem.name || elem.id || ''),
title: (elem.dataset.signalcounterTitle || elem.title || (elem.innerHTML || '').substr(0, 200) || ''),
referrer: (elem.dataset.signalcounterReferrer || elem.dataset.signalcounterReferral || ''),
})
}
}
Array.prototype.slice.call(document.querySelectorAll("*[data-signalcounter-click]")).forEach(function(elem) {
if (elem.dataset.signalcounterBound)
return
var f = send(elem)
elem.addEventListener('click', f, false)
elem.addEventListener('auxclick', f, false) // Middle click.
elem.dataset.signalcounterBound = 'true'
})
}
// Make it easy to skip your own views.
if (location.hash === '#toggle-signalcounter')
if (localStorage.getItem('skipsc') === 't') {
localStorage.removeItem('skipsc', 't')
alert('SignalCounter tracking is now ENABLED in this browser.')
}
else {
localStorage.setItem('skipgc', 't')
alert('SignalCounter tracking is now DISABLED in this browser until ' + location + ' is loaded again.')
}
if (!signalcounter.no_onload) {
var DOMReady = function(callback) {
document.readyState === "interactive" || document.readyState ==="complete" ? callback() : document.addEventListener("load", callback);
};
DOMReady(function() {
signalcounter.count()
// if (!signalcounter.no_events)
// signalcounter.bind_events()
});
/*
var go = function() {
signalcounter.count()
if (!signalcounter.no_events)
signalcounter.bind_events()
}
if (document.body === null)
document.addEventListener('DOMContentLoaded', function() { go() }, false)
else
go()
*/
}
})();

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

BIN
files/tiled1.jpeg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 454 KiB

BIN
files/tiled2.jpeg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

BIN
files/tiled3.jpeg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 776 KiB

BIN
files/tiled4.jpeg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 828 KiB

File diff suppressed because one or more lines are too long

29
files/ultramarine-bak.css Normal file
View file

@ -0,0 +1,29 @@
body{color:#1b1b1b;font-family:Inter, sans-serif;overflow-x:hidden}a:hover{color:#1851B4;text-decoration:underline}.content p{font-size:16px;font-weight:400;line-height:22px;margin-bottom:10px}h1{font-size:60px;font-weight:800;line-height:64px}h2{font-size:40px;font-weight:800;line-height:44px}h3{font-size:28px;font-weight:800;line-height:32px}h4{font-size:20px;font-weight:800;line-height:24px}p.body1{font-size:20px;font-weight:400;line-height:28px}p.body2{font-size:16px;font-weight:400;line-height:22px}p.body3{font-size:14px;font-weight:400;line-height:20px}@media (max-width: 768px){h1{font-size:40px;font-weight:800;line-height:44px}h2{font-size:28px;font-weight:800;line-height:32px}p.body1{font-size:16px;font-weight:400;line-height:22px}}.semibold{font-weight:600 !important}.hidden{display:none}.text-center{text-align:center}a.no-underline{text-decoration:none}.button{background-color:#2c6bed;border:none;border-radius:8px;color:#fff;font-family:BlinkMacSystemFont, -apple-system, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;font-weight:600;text-decoration:none}.button[disabled]{color:#1b1b1b}.button:hover{background-color:#1851B4;color:#fff;text-decoration:none}.button2{background-color:#fff;border-radius:8px;border:2px solid #2c6bed;color:#2c6bed;font-size:20px;line-height:28px}.button2:hover{background-color:#fff;border-color:#1851B4;color:#1851B4}.button-white{background-color:#fff;color:#2C6BED;font-size:20px;line-height:28px;padding:0 20px}.button-white:hover{background-color:#fff;color:#1851B4}.trailing-chevron::after{content:'\00bb';display:inline-block;margin-inline-start:0.25em}.separated-by-pipes li{display:inline-block}.separated-by-pipes li:not(:first-child){margin-inline-start:0.5em;padding-inline-start:0.5em;border-inline-start:1px solid #999}.signal-logo{height:30px;vertical-align:middle}body.has-navbar-fixed-top,html.has-navbar-fixed-top{padding-top:52px}.signal-navbar{border-bottom:1px solid #ebeaeb}@media (min-width: 1024px){body.has-navbar-fixed-top,html.has-navbar-fixed-top{padding-top:85px}.signal-navbar{padding:16px 0}.signal-logo{height:50px}}.signal-navbar .navbar-brand{align-items:center;padding-left:18px}@media (min-width: 1024px){.signal-navbar .navbar-brand{padding:0px}}.navbar-menu.is-active{position:absolute;width:100%}.signal-navbar .navbar-item,.signal-navbar .navbar-link{color:#1b1b1b;font-size:16px}.navbar-link:not(.is-arrowless)::after{border-color:#1b1b1b}.navbar-dropdown{max-height:200px;overflow:scroll}@media (max-width: 1024px){.navbar-link:not(.is-arrowless)::after{display:none}}.signal-navbar a.navbar-item:hover{background-color:inherit;text-decoration:none}.signal-navbar a.navbar-item:hover{color:#2C6BED}.signal-navbar .language-selector .icon{margin-right:4px}
.hero.hero-main{
background-color: #ED9B40;
color:#1b1b1b;
max-height:760px
}
@media (min-width: 1024px){.hero.hero-main{max-height:680px}}.hero-main h1{margin-bottom:24px}@media (min-width: 1024px){.hero-main h1{margin-top:120px}}.hero-main .hero-body{padding-bottom:0}.hero-main .subtitle{color:#1b1b1b;font-size:20px;line-height:30px}.hero-main .mobile-screenshots{position:relative}.hero-main .mobile-screenshots img{transform:rotate(22.5deg);width:218px}.hero-main .mobile-screenshots .screenshot1{margin-left:-50px;margin-top:55px}@media (min-width: 1024px){.hero-main .mobile-screenshots .screenshot1{margin-left:0px;margin-top:46px;width:320px}.hero-main .mobile-screenshots .screenshot2{width:300px}}.hero-main .mobile-screenshots .screenshot2{margin-left:-32px;position:absolute;top:0px}.section.quotes{background-color:#ECECEC}.section.quotes blockquote{color:#1b1b1b;font-size:20px;font-weight:800;line-height:24px;margin-bottom:16px}.section.quotes img{border-radius:50px}.section.quotes p{margin-bottom:48px}@media (min-width: 768px){.section.quotes blockquote{font-size:28px;line-height:32px}}.section.why-signal h2{margin-bottom:16px}@media (max-width: 768px){.section.why-signal{margin-bottom:-40px}}.section.information img{border-radius:16px}.section.information h2{margin-bottom:32px}.section.information .columns{flex-direction:row-reverse}.section.features{background-color:#F6F6F6}.section.features .box{background-color:#FFFFFF;border-radius:16px;box-shadow:0px 4px 12px rgba(0,0,0,0.12),0px 0px 2px rgba(0,0,0,0.08);height:100%;padding:30px}.section.features h3{color:#1b1b1b;font-size:28px;font-weight:800;line-height:32px;margin-top:18px;margin-bottom:4px}.section.features img{width:280px}@media (min-width: 768px){.section.features img{width:370px}}.lottie-wrapper{display:flex;justify-content:flex-end;width:100%}@media (max-width: 1024px){.lottie-wrapper{justify-content:center}}.lottie-animation{background-color:#a5cad5;border-radius:16px;padding:16px}.section.information img,.section.information .lottie-animation{width:384px}@media (min-width: 768px){.section.information img,.section.information .lottie-animation{width:680px}}.footer{background-color:#3C3744;color:#E9E9E9;font-size:16px;line-height:22px}.footer strong{color:#E9E9E9;display:block;font-weight:600;margin-bottom:12px}.footer a{color:#E9E9E9}.footer a:hover{text-decoration:underline}.icon{background-repeat:no-repeat;height:16px;width:16px}.icon-3x{height:40px;width:40px}.icon-external-link-alt{background-image:url(/assets/icons/external-link-alt-cdef7b31e9343f9af191079e0d6f34fe3f0d308d36376d6623457e5a8308dd6f.svg);background-position:center;height:20px !important}button .icon-external-link-alt{background-image:url(/assets/icons/external-blue-e505406cadaf1501969ead8ec71078f4f0ae840e827c0089e4a26c74c5f67482.svg)}.icon-globe{background-image:url(/assets/icons/solid_globe-35e2854ca14ff9b6018268f57a4e4c13b54df96239eebf876039b2cfde06f3ca.svg)}.icon-facebook{background-image:url(/assets/icons/facebook-64a08e71eaf9761bffde724aacd32b3270f07bb0264fd53049b4566676180360.svg);height:20px;width:20px}.icon-twitter{background-image:url(/assets/icons/twitter-75c765c3b019dd08fd7b2ce995d2161f73fccaaccf6125db3cbc2feea6436f5f.svg);height:20px;width:20px}.icon-instagram{background-image:url(/assets/icons/instagram-63876ccfbad266bbbc5b822d9d3fc0c92ebcbf1e3be12033f75ec3ac71a95bf9.svg);height:20px;width:20px}.icon-eye-slash{background-image:url(/assets/icons/eye-slash-09043cdac51b17673b86d130b008580f16592b958ffd1c16df939f3558693d33.svg)}.icon-users{background-image:url(/assets/icons/users-3b25256c28f817f7d08bbfa8621926abb1910dfec2a6f64af8715ffa3c73c4ea.svg)}.icon-dollar-sign{background-image:url(/assets/icons/dollar-02914d5ef1f8e051cf01e0e5d29f4dc8e210efe228e887f7db077780ded0e5bd.svg)}.icon-globe-americas{background-image:url(/assets/icons/globe-americas-1d6e11ba2fd59070ed4790df1622fcedaa1c4eeafa9d801fd8f144eb686d9e69.svg)}.icon-code{background-image:url(/assets/icons/code-3761afa1725a542f0cecf9fc304ebdd52e41000839f5310a4e214cb46ff565c4.svg)}.icon-certificate{background-image:url(/assets/icons/solid_certificate-1829dfc510ec3ad50fe05fba2c7c37db5c17182707dcd152d1036c6b680bca57.svg)}.download h2{margin-bottom:32px}.download h3{margin-bottom:24px}.download .button{margin:15px 30px}
.download-window.columns{
background-color:#ED9B40;
border-radius:12px;
height:300px;
margin:0;
margin-bottom:25px
}
.rentButton {
background-color: #ED9B40;
border-radius: 10px;
padding: 0px 20px !important;
margin-left: 10px;
font-weight: 400;
color: white !important;
max-height: 40px;
}
.download-window .column{height:100%;padding-bottom:0}.download-window .download-window-wrapper{align-items:center;display:flex;flex-direction:column;height:100%;justify-content:flex-end;margin:0 auto}.download .message{background:#f6f6f6;margin-top:16px}.download .message-body{border:none;font-size:14px;line-height:20px}.download .modal-card-body{padding:0}.download .modal-card-body pre{text-align:left}.blog{background-color:#f7f7f7}.post img{display:block;margin:0 auto}.post .author{border-radius:50%;display:block;height:80px;margin-left:auto;margin-right:auto;margin-top:-40px;width:80px}.blog-post-preview{background-color:#fff;border:1px solid #ddd;box-shadow:0 1px 2px rgba(0,0,0,0.05);margin-bottom:20px;margin-top:80px;padding-bottom:80px;padding-left:15px;padding-right:15px}.blog-post-preview h3{font-size:30px;line-height:40px;margin-bottom:16px;margin-top:40px}@media (max-width: 768px){.blog-post-preview h3{font-size:24px;line-height:36px}}.blog-post-preview h3 a{color:#1b1b1b}.blog-post-preview h3 a:hover{color:#1b1b1b;text-decoration:none}.blog-post-preview p{font-size:16px;font-weight:400;line-height:24px;margin-bottom:20px}.blog-post-header img.author{margin-top:0px}.blog-post-header h1{font-size:30px;line-height:40px;margin-bottom:16px;margin-top:40px}@media (max-width: 768px){.blog-post-header h1{font-size:24px;line-height:36px}}.blog-post-header .body2{margin-bottom:20px}.blog-post-content h1{font-size:30px;line-height:40px;margin-bottom:16px;margin-top:40px}.blog-post-content h2,.blog-post-content h3{font-weight:600;margin-top:60px;margin-bottom:16px}.blog-post-content h2{font-size:24px;line-height:36px}.blog-post-content h3{font-size:20px;line-height:30px}.blog-post-content p{font-size:20px;font-weight:400;line-height:30px}.blog-post-content div,.blog-post-content p{margin-bottom:36px}.blog-post-content ul{list-style-type:disc}.blog-post-content ul,.blog-post-content ol{margin-left:30px}.blog-post-content ul li,.blog-post-content ol li{margin-bottom:20px;font-size:20px;font-weight:400}@media (max-width: 768px){.blog-post-content h2,.blog-post-content h3{margin-top:30px}.blog-post-content h2{font-size:22px;line-height:34px}.blog-post-content p{font-size:16px;line-height:24px}.blog-post-content div,.blog-post-content p{margin-bottom:20px}.blog-post-content ul li,.blog-post-content ol li{font-size:16px}}.blog-post-content img.nice-left{float:left;margin-right:30px}.blog-post-content .social-sharing a{margin-right:20px}.blog-post-content pre.highlight{overflow:scroll}header.documentation{background-color:#f6f6f6;margin-bottom:40px;margin-top:12px;padding-bottom:0;padding-top:0}header.documentation h1{margin-bottom:24px}.docs h2{margin-bottom:24px}.docs .body2.semibold{margin-bottom:16px}.docs .spec{margin-bottom:30px}.docs li{margin-bottom:8px}.docs li a{font-weight:600}@media screen and (max-width: 769px){.is-reversed-column-order-mobile{display:flex;flex-direction:column-reverse}}header.jobs-header{background:#e7dfe0;margin-top:12px;padding-bottom:0;padding-top:0}header.jobs-header h1{margin-bottom:24px}.jobs{margin-top:40px}.jobs h2{margin-bottom:24px}.jobs h3{margin-top:16px;margin-bottom:16px}.jobs .columns:not(:last-child){margin-bottom:40px}p.stickers{font-size:17px}.android-screenshot{overflow:hidden;position:relative}.android-screenshot img{bottom:-223px;position:absolute;width:240px}html[dir=rtl] .signal-logo{margin-left:40px}html[dir=rtl].navbar-end{justify-content:flex-start;margin-left:0;margin-right:auto}html[dir=rtl] .mobile-screenshots{margin-right:60px}html[dir=rtl] .signal-navbar .language-selector .icon{margin-left:4px;margin-right:0}@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:local("Inter-Regular"),url(/assets/inter/Inter-Regular-c342b1b7f7d19be1429fef29bf3af6d9e8c3e21aba846e082cdee1db8a530c83.woff2) format("woff2"),url(/assets/inter/Inter-Regular-b825f1bc25dee8a67cf5a2c461410c2c755bca29b9297c8f930fe4486ba35dd3.woff) format("woff")}@font-face{font-family:'Inter';font-style:normal;font-weight:800;font-display:swap;src:local("Inter-ExtraBold"),url(/assets/inter/Inter-ExtraBold-74e72c6bbb7844899343c4783be9b4510e32951636acde44d5b4725e2132ea03.woff2) format("woff2"),url(/assets/inter/Inter-ExtraBold-585b4ce19c2d757e2f9f6925a280650188bd2a49e7613f687dabdb15543e17eb.woff) format("woff")}

879
files/ultramarine.css Normal file
View file

@ -0,0 +1,879 @@
body {
color: #1b1b1b;
font-family: Inter, sans-serif;
overflow-x: hidden
}
a:hover {
color: #1851B4;
text-decoration: underline
}
.content p {
font-size: 16px;
font-weight: 400;
line-height: 22px;
margin-bottom: 10px
}
h1 {
font-size: 60px;
font-weight: 800;
line-height: 64px
}
h2 {
font-size: 40px;
font-weight: 800;
line-height: 44px
}
h3 {
font-size: 28px;
font-weight: 800;
line-height: 32px
}
h4 {
font-size: 20px;
font-weight: 800;
line-height: 24px
}
p.body1 {
font-size: 20px;
font-weight: 400;
line-height: 28px
}
p.body2 {
font-size: 16px;
font-weight: 400;
line-height: 22px
}
p.body3 {
font-size: 14px;
font-weight: 400;
line-height: 20px
}
@media (max-width: 768px) {
h1 {
font-size: 40px;
font-weight: 800;
line-height: 44px
}
h2 {
font-size: 28px;
font-weight: 800;
line-height: 32px
}
p.body1 {
font-size: 16px;
font-weight: 400;
line-height: 22px
}
}
.semibold {
font-weight: 600 !important
}
.hidden {
display: none
}
.text-center {
text-align: center
}
a.no-underline {
text-decoration: none
}
.button {
background-color: #ED9B40;
text-shadow: none;
border: none;
border-radius: 8px;
color: #fff;
font-family: BlinkMacSystemFont, -apple-system, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
font-weight: 600;
text-decoration: none;
padding: 25px 30px;
}
.rentButton {
background-color: #ED9B40;
border-radius: 10px;
padding: 10px 20px !important;
margin-left: 10px;
font-weight: 600;
color: white !important;
}
.rentButton:hover {
background-color: #FFAA48 !important;
}
.button[disabled] {
color: #1b1b1b
}
.button:hover {
background-color: #FFAA48;
color: #fff;
text-decoration: none
}
.button2 {
background-color: #fff;
border-radius: 8px;
border: 2px solid #2c6bed;
color: #2c6bed;
font-size: 20px;
line-height: 28px
}
.button2:hover {
background-color: #fff;
border-color: #1851B4;
color: #1851B4
}
.button-white {
background-color: #fff;
color: #2C6BED;
font-size: 20px;
line-height: 28px;
padding: 0 20px
}
.button-white:hover {
background-color: #fff;
color: #1851B4
}
.trailing-chevron::after {
content: '\00bb';
display: inline-block;
margin-inline-start: 0.25em
}
.separated-by-pipes li {
display: inline-block
}
.separated-by-pipes li:not(:first-child) {
margin-inline-start: 0.5em;
padding-inline-start: 0.5em;
border-inline-start: 1px solid #999
}
.signal-logo {
height: 30px;
vertical-align: middle
}
body.has-navbar-fixed-top,
html.has-navbar-fixed-top {
padding-top: 52px
}
.signal-navbar {
border-bottom: 1px solid #ebeaeb
}
@media (min-width: 1024px) {
body.has-navbar-fixed-top,
html.has-navbar-fixed-top {
padding-top: 85px
}
.signal-navbar {
padding: 16px 0
}
.signal-logo {
height: 50px
}
}
.signal-navbar .navbar-brand {
align-items: center;
padding-left: 18px
}
@media (min-width: 1024px) {
.signal-navbar .navbar-brand {
padding: 0px
}
}
.navbar-menu.is-active {
position: absolute;
width: 100%
}
.signal-navbar .navbar-item,
.signal-navbar .navbar-link {
color: #1b1b1b;
font-size: 16px
}
.navbar-link:not(.is-arrowless)::after {
border-color: #1b1b1b
}
.navbar-dropdown {
max-height: 200px;
overflow: scroll
}
@media (max-width: 1024px) {
.navbar-link:not(.is-arrowless)::after {
display: none
}
}
.signal-navbar a.navbar-item:hover {
background-color: inherit;
text-decoration: none
}
.signal-navbar a.navbar-item:hover {
color: #C76E08;
}
.signal-navbar .language-selector .icon {
margin-right: 4px
}
.hero.hero-main {
background: url(header1.jpeg);
background-size: cover;
color: white;
text-shadow: 1px 1px #515151;
max-height: 760px;
min-height: 600px;
}
@media (min-width: 1024px) {
.hero.hero-main {
max-height: 680px
}
}
.hero-main h1 {
margin-bottom: 24px
}
@media (min-width: 1024px) {
.hero-main h1 {
margin-top: 120px
}
}
.hero-main .hero-body {
background: linear-gradient(
to left,
rgba(0, 0, 0, 0),
rgba(0, 0, 0, 0.6)
);
padding-bottom: 0;
}
.hero-main .subtitle {
color: #1whitb1b1b;
font-size: 20px;
line-height: 30px
}
.hero-main .mobile-screenshots {
position: relative
}
.hero-main .mobile-screenshots img {
transform: rotate(22.5deg);
width: 218px
}
.hero-main .mobile-screenshots .screenshot1 {
margin-left: -50px;
margin-top: 55px
}
@media (min-width: 1024px) {
.hero-main .mobile-screenshots .screenshot1 {
margin-left: 0px;
margin-top: 46px;
width: 320px
}
.hero-main .mobile-screenshots .screenshot2 {
width: 300px
}
}
.hero-main .mobile-screenshots .screenshot2 {
margin-left: -32px;
position: absolute;
top: 0px
}
.section.quotes {
background-color: #ECECEC
}
.section.quotes blockquote {
color: #1b1b1b;
font-size: 20px;
font-weight: 800;
line-height: 24px;
margin-bottom: 16px
}
.section.quotes img {
border-radius: 50px
}
.section.quotes p {
margin-bottom: 48px
}
@media (min-width: 768px) {
.section.quotes blockquote {
font-size: 28px;
line-height: 32px
}
}
.section.why-signal h2 {
margin-bottom: 16px
}
@media (max-width: 768px) {
.section.why-signal {
margin-bottom: -40px
}
}
.section.information img {
border-radius: 16px
}
.section.information h2 {
margin-bottom: 32px
}
.section.information .columns {
flex-direction: row-reverse
}
.section.features {
background-color: #F6F6F6
}
.section.features .box {
background-color: #FFFFFF;
border-radius: 16px;
box-shadow: 0px 4px 12px rgba(0, 0, 0, 0.12), 0px 0px 2px rgba(0, 0, 0, 0.08);
height: 100%;
padding: 30px
}
.section.features h3 {
color: #1b1b1b;
font-size: 28px;
font-weight: 800;
line-height: 32px;
margin-top: 18px;
margin-bottom: 4px
}
.section.features img {
width: 100%;
}
@media (min-width: 768px) {
.section.features img {
width: 100%;
}
}
.lottie-wrapper {
display: flex;
justify-content: flex-end;
width: 100%;
}
.firstImage {
height: 600px;
width: 90%;
border-radius: 20px;
background-image: url(picture1.jpeg);
background-size: cover;
background-position: center;
}
@media (max-width: 1024px) {
.lottie-wrapper {
justify-content: center
}
}
.lottie-animation {
background-color: #a5cad5;
border-radius: 16px;
padding: 16px
}
.section.information img,
.section.information .lottie-animation {
width: 384px
}
@media (min-width: 768px) {
.section.information img,
.section.information .lottie-animation {
width: 680px
}
}
.footer {
background-color: #3C3744;
color: #E9E9E9;
font-size: 16px;
line-height: 22px
}
.footer strong {
color: #E9E9E9;
display: block;
font-weight: 600;
margin-bottom: 12px
}
.footer a {
color: #E9E9E9
}
.footer a:hover {
text-decoration: underline
}
.icon {
background-repeat: no-repeat;
height: 16px;
width: 16px
}
.icon-3x {
height: 40px;
width: 40px
}
.icon-external-link-alt {
background-image: url(/assets/icons/external-link-alt-cdef7b31e9343f9af191079e0d6f34fe3f0d308d36376d6623457e5a8308dd6f.svg);
background-position: center;
height: 20px !important
}
button .icon-external-link-alt {
background-image: url(/assets/icons/external-blue-e505406cadaf1501969ead8ec71078f4f0ae840e827c0089e4a26c74c5f67482.svg)
}
.icon-globe {
background-image: url(/assets/icons/solid_globe-35e2854ca14ff9b6018268f57a4e4c13b54df96239eebf876039b2cfde06f3ca.svg)
}
.icon-facebook {
background-image: url(/assets/icons/facebook-64a08e71eaf9761bffde724aacd32b3270f07bb0264fd53049b4566676180360.svg);
height: 20px;
width: 20px
}
.icon-twitter {
background-image: url(/assets/icons/twitter-75c765c3b019dd08fd7b2ce995d2161f73fccaaccf6125db3cbc2feea6436f5f.svg);
height: 20px;
width: 20px
}
.icon-instagram {
background-image: url(/assets/icons/instagram-63876ccfbad266bbbc5b822d9d3fc0c92ebcbf1e3be12033f75ec3ac71a95bf9.svg);
height: 20px;
width: 20px
}
.icon-eye-slash {
background-image: url(/assets/icons/eye-slash-09043cdac51b17673b86d130b008580f16592b958ffd1c16df939f3558693d33.svg)
}
.icon-users {
background-image: url(/assets/icons/users-3b25256c28f817f7d08bbfa8621926abb1910dfec2a6f64af8715ffa3c73c4ea.svg)
}
.icon-dollar-sign {
background-image: url(/assets/icons/dollar-02914d5ef1f8e051cf01e0e5d29f4dc8e210efe228e887f7db077780ded0e5bd.svg)
}
.icon-globe-americas {
background-image: url(/assets/icons/globe-americas-1d6e11ba2fd59070ed4790df1622fcedaa1c4eeafa9d801fd8f144eb686d9e69.svg)
}
.icon-code {
background-image: url(/assets/icons/code-3761afa1725a542f0cecf9fc304ebdd52e41000839f5310a4e214cb46ff565c4.svg)
}
.icon-certificate {
background-image: url(/assets/icons/solid_certificate-1829dfc510ec3ad50fe05fba2c7c37db5c17182707dcd152d1036c6b680bca57.svg)
}
.download h2 {
margin-bottom: 32px
}
.download h3 {
margin-bottom: 24px
}
.download .button {
margin: 15px 30px
}
.download-window.columns {
background-color: #9dbbf8;
border-radius: 12px;
height: 300px;
margin: 0;
margin-bottom: 25px
}
.download-window .column {
height: 100%;
padding-bottom: 0
}
.download-window .download-window-wrapper {
align-items: center;
display: flex;
flex-direction: column;
height: 100%;
justify-content: flex-end;
margin: 0 auto
}
.download .message {
background: #f6f6f6;
margin-top: 16px
}
.download .message-body {
border: none;
font-size: 14px;
line-height: 20px
}
.download .modal-card-body {
padding: 0
}
.download .modal-card-body pre {
text-align: left
}
.blog {
background-color: #f7f7f7
}
.post img {
display: block;
margin: 0 auto
}
.post .author {
border-radius: 50%;
display: block;
height: 80px;
margin-left: auto;
margin-right: auto;
margin-top: -40px;
width: 80px
}
.blog-post-preview {
background-color: #fff;
border: 1px solid #ddd;
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
margin-bottom: 20px;
margin-top: 80px;
padding-bottom: 80px;
padding-left: 15px;
padding-right: 15px
}
.blog-post-preview h3 {
font-size: 30px;
line-height: 40px;
margin-bottom: 16px;
margin-top: 40px
}
@media (max-width: 768px) {
.blog-post-preview h3 {
font-size: 24px;
line-height: 36px
}
}
.blog-post-preview h3 a {
color: #1b1b1b
}
.blog-post-preview h3 a:hover {
color: #1b1b1b;
text-decoration: none
}
.blog-post-preview p {
font-size: 16px;
font-weight: 400;
line-height: 24px;
margin-bottom: 20px
}
.blog-post-header img.author {
margin-top: 0px
}
.blog-post-header h1 {
font-size: 30px;
line-height: 40px;
margin-bottom: 16px;
margin-top: 40px
}
@media (max-width: 768px) {
.blog-post-header h1 {
font-size: 24px;
line-height: 36px
}
}
.blog-post-header .body2 {
margin-bottom: 20px
}
.blog-post-content h1 {
font-size: 30px;
line-height: 40px;
margin-bottom: 16px;
margin-top: 40px
}
.blog-post-content h2,
.blog-post-content h3 {
font-weight: 600;
margin-top: 60px;
margin-bottom: 16px
}
.blog-post-content h2 {
font-size: 24px;
line-height: 36px
}
.blog-post-content h3 {
font-size: 20px;
line-height: 30px
}
.blog-post-content p {
font-size: 20px;
font-weight: 400;
line-height: 30px
}
.blog-post-content div,
.blog-post-content p {
margin-bottom: 36px
}
.blog-post-content ul {
list-style-type: disc
}
.blog-post-content ul,
.blog-post-content ol {
margin-left: 30px
}
.blog-post-content ul li,
.blog-post-content ol li {
margin-bottom: 20px;
font-size: 20px;
font-weight: 400
}
@media (max-width: 768px) {
.blog-post-content h2,
.blog-post-content h3 {
margin-top: 30px
}
.blog-post-content h2 {
font-size: 22px;
line-height: 34px
}
.blog-post-content p {
font-size: 16px;
line-height: 24px
}
.blog-post-content div,
.blog-post-content p {
margin-bottom: 20px
}
.blog-post-content ul li,
.blog-post-content ol li {
font-size: 16px
}
}
.blog-post-content img.nice-left {
float: left;
margin-right: 30px
}
.blog-post-content .social-sharing a {
margin-right: 20px
}
.blog-post-content pre.highlight {
overflow: scroll
}
header.documentation {
background-color: #f6f6f6;
margin-bottom: 40px;
margin-top: 12px;
padding-bottom: 0;
padding-top: 0
}
header.documentation h1 {
margin-bottom: 24px
}
.docs h2 {
margin-bottom: 24px
}
.docs .body2.semibold {
margin-bottom: 16px
}
.docs .spec {
margin-bottom: 30px
}
.docs li {
margin-bottom: 8px
}
.docs li a {
font-weight: 600
}
@media screen and (max-width: 769px) {
.is-reversed-column-order-mobile {
display: flex;
flex-direction: column-reverse
}
}
header.jobs-header {
background: #e7dfe0;
margin-top: 12px;
padding-bottom: 0;
padding-top: 0
}
header.jobs-header h1 {
margin-bottom: 24px
}
.jobs {
margin-top: 40px
}
.jobs h2 {
margin-bottom: 24px
}
.jobs h3 {
margin-top: 16px;
margin-bottom: 16px
}
.jobs .columns:not(:last-child) {
margin-bottom: 40px
}
p.stickers {
font-size: 17px
}
.android-screenshot {
overflow: hidden;
position: relative
}
.android-screenshot img {
bottom: -223px;
position: absolute;
width: 240px
}
html[dir=rtl] .signal-logo {
margin-left: 40px
}
html[dir=rtl] .navbar-end {
justify-content: flex-start;
margin-left: 0;
margin-right: auto
}
html[dir=rtl] .mobile-screenshots {
margin-right: 60px
}
html[dir=rtl] .signal-navbar .language-selector .icon {
margin-left: 4px;
margin-right: 0
}
@font-face {
font-family: 'Inter';
font-style: normal;
font-weight: 400;
font-display: swap;
src: local("Inter-Regular"), url(/assets/inter/Inter-Regular-c342b1b7f7d19be1429fef29bf3af6d9e8c3e21aba846e082cdee1db8a530c83.woff2) format("woff2"), url(/assets/inter/Inter-Regular-b825f1bc25dee8a67cf5a2c461410c2c755bca29b9297c8f930fe4486ba35dd3.woff) format("woff")
}
@font-face {
font-family: 'Inter';
font-style: normal;
font-weight: 800;
font-display: swap;
src: local("Inter-ExtraBold"), url(/assets/inter/Inter-ExtraBold-74e72c6bbb7844899343c4783be9b4510e32951636acde44d5b4725e2132ea03.woff2) format("woff2"), url(/assets/inter/Inter-ExtraBold-585b4ce19c2d757e2f9f6925a280650188bd2a49e7613f687dabdb15543e17eb.woff) format("woff")
}

178
index.html Normal file
View file

@ -0,0 +1,178 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Die Fachwerk-Sauna</title>
<link rel="preload"
href="https://signal.org/assets/inter/Inter-Regular-c342b1b7f7d19be1429fef29bf3af6d9e8c3e21aba846e082cdee1db8a530c83.woff2"
as="font" crossorigin="anonymous">
<link rel="preload"
href="https://signal.org/assets/inter/Inter-ExtraBold-74e72c6bbb7844899343c4783be9b4510e32951636acde44d5b4725e2132ea03.woff2"
as="font" crossorigin="anonymous">
<link type="text/css" rel="stylesheet" href="files/bulma.css">
<link type="text/css" rel="stylesheet" href="files/ultramarine.css">
</head>
<body id="signal" class="index has-navbar-fixed-top">
<nav class="navbar signal-navbar is-fixed-top" role="navigation" aria-label="main navigation">
<div class="container">
<div class="navbar-brand"> <a href="/"> <img class="signal-logo"
src="files/logo.png"> </a> <a
role="button" class="navbar-burger burger" aria-label="menu" aria-expanded="false"
data-target="signalNavbar"> <span aria-hidden="true"></span> <span aria-hidden="true"></span> <span
aria-hidden="true"></span> </a></div>
<div id="mainNavbar" class="navbar-menu">
<div class="navbar-end">
<a class="navbar-item" href="#sauna">Die Sauna</a>
<a class="navbar-item" href="#features">Features</a>
<a class="navbar-item" href="#story">Hintergründe</a>
<a class="navbar-item rentButton" href="#rent">Anfragen</a>
</div>
</div>
</div>
</nav>
<section class="hero-main hero">
<div class="hero-body">
<div class="container">
<div class="columns">
<div class="column is-two-fifths">
<h1>Mobile Sauna</h1>
<p class="body1">Handgefertigt in Fachwerkbauweise mit Naturbaustoffen
Holzofen. Die mobile Sauna für den eigenen Garten oder direkt am See.</p>
<p> <br>
<!--<a class="get-signal button" href="https://signal.org/download/">Jetzt mieten</a> -->
</p>
</div>
</div>
</div>
</div>
</section>
<section class="why-signal section">
<div class="container">
<div class="columns is-centered">
<div class="column has-text-centered">
<h2>Hohe Qualität</h2>
<p class="body1">Leichtbauweise dank Fachwerkbau mit hochwertiger
Korkdämmung und effizienten Holzofen
</p>
</div>
</div>
</div>
</section>
<section class="section information">
<div class="container">
<div class="columns is-desktop is-centered">
<div class="column has-text-right">
<div class="lottie-wrapper">
<div class="firstImage"></div>
</div>
</div>
<div class="column is-one-third">
<h2>Heizen mit Holz</h2>
<p class="body1">
Der Hariva-Holzofen sorgt für ein angenehmes Sauna-Klima in kürzester
Zeit und benötigt dafür nur wenig Feuerholz. Die Glasscheibe erhellt
den Innenraum zu Abendstunden in ein warmes und gemütliches Licht.
Er eignet sich perfekt für Aufgüsse und speichert in den Sauna-Steinen
Wärme und Energie.</p>
</div>
</div>
</div>
</section>
<section class="section features">
<div class="container">
<div class="columns is-centered">
<div class="column is-half has-text-centered">
<div class="box"> <img src="files/tiled1.jpeg">
<h3>Gemeinsam entspannen</h3>
<p class="body2">Lade deine Freunde und Verwandte auf ein gemeinsames Sauna-Erlebnis
ein, egal ob zuhause oder unterwegs.
</p>
</div>
</div>
<div class="column is-half has-text-centered">
<div class="box"> <img src="files/tiled2.jpeg">
<h3>Raus in die Natur</h3>
<p class="body2">Die Sauna lässt sich an einer handelsüblichen Anhängerkupplung
anschließen. Einfach spontan zum See und direkt am Wasser saunieren.</p>
</div>
</div>
</div>
<div class="columns is-centered">
<div class="column is-half has-text-centered">
<div class="box"> <img src="files/tiled3.jpeg">
<h3>Ein kleines Zuhause</h3>
<p class="body2">Mit wenigen Handriffen ist der Sauna-Raum zu einer großflächigen
Liege umfunktioniert. Solarpanele auf dem Dach liefern Strom für Licht und Mobilgeräte.
</p>
</div>
</div>
<div class="column is-half has-text-centered">
<div class="box"> <img src="files/tiled4.jpeg">
<h3>Saunieren in Gruppen</h3>
<p class="body2">Die Sitzbank bietet Platz für bis zu vier Personen. Der Innenraum
hat auch für größere Personen eine großzügige Höhe.
</p>
</div>
</div>
</div>
</div>
</section>
<section class="section information">
<div class="container">
<div class="columns is-desktop">
<div class="column"> <img src="files/picture2.jpeg">
</div>
<div class="column is-one-third">
<h2>No ads. No trackers. No kidding.</h2>
<p class="body1">
There are no ads, no affiliate marketers, and no creepy tracking in
Signal. So focus on sharing the moments that matter with the people who
matter to you.</p>
</div>
</div>
</div>
</section>
<section class="section information">
<div class="container">
<div class="columns is-desktop">
<div class="column is-hidden-desktop"> <img
src="files/picture3.jpeg"></div>
<div class="column is-one-third">
<h2>Free for Everyone</h2>
<p class="body1">
Signal is an independent nonprofit. We're not tied to any major tech
companies, and we can never be acquired by one either. Development is
supported by grants and donations from people like you. <br> <br> <a class="button button2"
href="https://signal.org/donate/"> Donate to Signal </a></p>
</div>
<div class="column is-hidden-touch has-text-right"> <img
src="files/picture3.jpeg"></div>
</div>
</div>
</section>
<footer class="footer">
<div class="container">
<div class="columns">
<div class="column is-two-fifths is-hidden-mobile grow-column"> <span class="copyright">© 20132021 Signal, a 501c3
nonprofit.</span><br> Signal is a registered trademark in the United States and other countries.
<br> <br> Presseanfragen bitte an <a href="mailto:simon.brose@gmail.com">simon.brose@gmail.com</a></div>
<div class="column"> <strong>Sitemap</strong>
<ul>
<li> <a href="/impressum">Impressum</a></li>
<li> <a href="/datenschutz">Datenschutz</a></li>
</ul>
</div>
<div class="column is-two-fifths is-hidden-tablet"> <span class="copyright">© 20132021 Signal, a 501c3
nonprofit.</span><br> Signal is a registered trademark in the United States and other countries.
<br> <br> For media inquiries, contact <a href="mailto:press@signal.org">press@signal.org</a></div>
</div>
</div>
</footer>
<script type="text/javascript" src="files/jquery-3.js"></script>
</body>
</html>