/* General and miscellaneous layout */
body {
    margin: 0;
    padding: 0;
    overflow-y: scroll;
    font-family: Helvetica, sans-serif;
    background-color: #1f1f23;
}

.elemental * {
    box-sizing: border-box;
}

.site-footer {
    background-color: #1f1f23;
    color: white;
    border-top: #cccccc 2px solid;
    margin-top: 30px;
}

.site-footer * {
    box-sizing: border-box;
}

.elemental .frame {
    font-size: 16px;
    height: 100%;
    width: 100%;
    position: relative;
}

@media (max-width: 900px) {
    .elemental .frame {
        font-size: 16px;
    }
}

@media (min-width: 700px) {
    .elemental .phone-only {
        display: none;
    }
}

@media (max-width: 700px) {
    .elemental .without-phone {
        display: none;
    }
}

@media (max-width: 900px) {
    .elemental .desktop-only {
        display: none;
    }
}

@media (min-width: 900px) {
    .elemental .without-desktop {
        display: none;
    }
}

.elemental .spacer {
    width: 100%;
}

.elemental .box {
    width: 100%;
    height: auto;
    padding: 0.5px 0 0.5px 0;
}

/* Site container with a max width for desktop layouts and a margin for mobile layouts */
.elemental .box.page-width {
    width: calc(100% - 40px);
    margin: auto;
}

@media (min-width: 900px) {
    .elemental .box.page-width {
        max-width: 1430px;
    }
}

/* Centering elements horizontally */
.elemental .center-horizontal > div,
.elemental .center-horizontal > a,
.elemental .center-horizontal .image img {
    margin: auto;
}

.elemental .center-horizontal > a {
    display: block;
}

@media (max-width: 900px) {
    .elemental .center-horizontal:not(.without-padding) {
        padding-right: 2.5%;
        padding-left: 2.5%;
    }
}

/* Aligning items in a grid */
.elemental .grid {
    display: inline-flex;
    flex-wrap: wrap;
    width: calc(100% + 10px);
    margin-left: -5px;
}

.elemental .grid .grid-item {
    padding: 5px;
    position: relative;
    overflow: hidden;
}

.elemental .grid .grid-item.no-padding {
    padding: 0;
}

.elemental .grid .grid-item.no-padding .hover-item {
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
}

.elemental .grid .grid-item img {
    display: block;
    width: 100%;
}

.elemental .grid .grid-item img:not(:first-child) {
    padding-top: 10px;
}

.elemental .grid .grid-item .textbox {
    height: 100%;
    margin: 0;
    padding: 25px 30px;
}

/* Two boxes besides each other */
.elemental .two-column-layout {
    display: flex;
}

.elemental .two-column-layout .column {
    display: block;
    width: 50%;
}

.elemental .two-column-layout .column .textbox {
    height: 100%;
    margin: 0;
    padding: 25px 30px 25px 30px;
}

@media (min-width: 900px) {
    .elemental .two-column-layout .column.text-align-top .textbox {
        margin-top: -15px;
        padding: 0 30px 25px 30px;
    }

    .elemental .two-column-layout .column.text-align-top-left .textbox {
        margin-top: -15px;
        padding: 0 30px 25px 0;
    }

    .elemental .two-column-layout .column.text-align-left .textbox {
        padding: 25px 30px 25px 0;
    }
}

@media (max-width: 900px) {
    .elemental .two-column-layout .column .textbox {
        padding: 25px 30px 25px 0;
    }
}

.elemental .two-column-layout .column.page-width-right {
    padding-right: calc((100% - 1400px) / 2);
}

.elemental .two-column-layout .column.page-width-left {
    padding-left: calc((100% - 1400px) / 2);
}

.elemental .two-column-layout.separator .column {
    width: calc(50% - 5px);
}

.elemental .two-column-layout.separator .column:first-child {
    margin-right: 10px;
    position: relative;
}

.elemental .two-column-layout.separator .column:first-child::after {
    content: '';
    display: block;
    position: absolute;
    background: #1f1f23;
    height: 100%;
    width: 10px;
    right: -10px;
    top: 0;
    bottom: 0;
}

@media (max-width: 900px) {
    .elemental .two-column-layout.split-mobile {
        display: block;
    }

    .elemental .two-column-layout.split-mobile .column {
        width: 100%;
    }

    .elemental .two-column-layout.split-mobile.separator .column:first-child {
        margin-right: 0;
        position: static;
    }

    .elemental .two-column-layout.split-mobile.separator .column:first-child::after {
        display: none;
    }
}

@media (max-width: 700px) {
    .elemental .two-column-layout.split-phone {
        display: block;
    }

    .elemental .two-column-layout.split-phone .column {
        width: 100%;
    }

    .elemental .two-column-layout.split-phone.separator .column:first-child {
        margin-right: 0;
        position: static;
    }

    .elemental .two-column-layout.split-phone.separator .column:first-child::after {
        display: none;
    }
}

/* One or multiple columns of text */
.elemental .textbox {
    position: relative;
    z-index: 0;
    margin: 2% 0;
    -webkit-column-count: 2;
    -moz-column-count: 2;
    column-count: 2;
    font-family: Helvetica, sans-serif;
    font-size: 1em;
    line-height: 1.45em;
    text-align: justify;
    -moz-column-fill: balance;
    column-fill: balance;
    column-gap: 25px;
    color: white;
}

.elemental .textbox p {
    margin: 0;
}

.elemental .textbox a {
    text-decoration-color: #3a45a8;
    color: white;
}

.elemental .textbox.white-text a {
    color: white;
}

@media (max-width: 700px) {
    .elemental .textbox {
        -webkit-column-count: 1;
        -moz-column-count: 1;
        column-count: 1;
        text-align: left;
    }

    .elemental .textbox.always-two-columns {
        -webkit-column-count: 2;
        -moz-column-count: 2;
        column-count: 2;
    }
}

.elemental .textbox.no-margin {
    margin: 0;
}

.elemental .textbox.one-column {
    -webkit-column-count: 1;
    -moz-column-count: 1;
    column-count: 1;
}

.elemental .textbox.three-columns:not(.manual) {
    -webkit-column-count: 3;
    -moz-column-count: 3;
    column-count: 3;
}

.elemental .textbox.manual {
    -webkit-column-count: 1;
    -moz-column-count: 1;
    column-count: 1;
}

@media (min-width: 700px) {
    .elemental .textbox.manual .column {
        float: left;
        width: calc(50% - 5px);
    }

    .elemental .textbox.manual .column:first-child {
        margin-right: 10px;
    }

    .elemental .textbox.manual.three-columns .column {
        float: left;
        width: calc(33.33% - 10px);
    }

    .elemental .textbox.manual.three-columns .column:first-child,
    .elemental .textbox.manual.three-columns .column:nth-child(2) {
        margin-right: 15px;
    }
}

@media (min-width: 700px) and (max-width: 900px) {
    .elemental .textbox.manual .column {
        width: calc(50% - 10px);
    }

    .elemental .textbox.manual .column:first-child {
        margin-right: 20px;
    }
}

@media (min-width: 700px) and (max-width: 900px) {
    .elemental .textbox.manual.three-columns .column {
        width: calc(33.33% - 10px);
    }

    .elemental .textbox.manual.three-columns .column:first-child,
    .elemental .textbox.manual.three-columns .column:nth-child(2) {
        margin-right: 15px;
    }
}

/* Default headline style */
.elemental h1 {
    font-family: "Helvetica", sans-serif;
    font-weight: bold;
    display: block;
    font-size: 50px;
    line-height: 60px;
    text-align: center;
    margin: 2% 0 1.5% 0;
    color: white;
}

@media (min-width: 901px) {
    .elemental h1.less-line-height {
        line-height: 50px;
    }
}

@media (max-width: 900px) {
    .elemental h1 {
        font-size: 30px;
        hyphens: none;
        -webkit-hyphens: none;
        -moz-hyphens: none;
        -ms-hyphens: none;
        line-height: 35px;
    }
}

.elemental .textbox h1 {
    padding: 0;
}

.elemental h2 {
    font-family: "Helvetica", sans-serif;
    font-weight: lighter;
    display: block;
    font-size: 24px;
    line-height: 21px;
    text-align: center;
    margin: 1% 0 1% 0;
    color: white;
}

@media (max-width: 900px) {
    .elemental h2 {
        font-size: 1.7em;
        hyphens: none;
        -webkit-hyphens: none;
        -moz-hyphens: none;
        -ms-hyphens: none;
    }
}

@media (max-width: 900px) {
    .elemental h2 {
        font-size: 1.0em;
    }
}

.elemental .textbox h2 {
    padding: 0;
}

/* Default image style */
.elemental .image img {
    display: none;
    width: 100%;
    height: auto;
}

@media (min-width: 900px) {
    .elemental .image img.desktop {
        display: block;
    }
}

@media (max-width: 900px) and (min-width: 700px) {
    .elemental .image img.tablet {
        display: block;
    }
}

@media (max-width: 700px) {
    .elemental .image img.phone {
        display: block;
    }
}

.elemental .image img:not(.desktop):not(.tablet):not(.phone) {
    display: block;
}

/* General text style */
.elemental .text-center {
    text-align: center;
    text-align-last: center;
}

.elemental .text-left {
    text-align: left;
    text-align-last: left;
}

.elemental .text-right {
    text-align: right;
    text-align-last: right;
}

.elemental .text-justify {
    text-align: justify;
}

.elemental .white-text {
    color: white;
}

.elemental .black-text {
    color: white;
}

.elemental .no-link-style {
    text-decoration: none;
    color: white;
}

.elemental .link {
    text-decoration-color: #3a45a8;
    color: white;
}

.elemental .no-underline {
    text-decoration: none;
}

/*# sourceMappingURL=main.css.map */

/* hover zoom effect */
.elemental .hover-zoom-effect:hover {
    animation: zoomInOut 0.4s forwards;
}
@keyframes zoomInOut {
    0% {
        transform: scale(1);
    }
    50% {
        transform: scale(1.06);
    }
    100% {
        transform: scale(1);
    }
}

/* ============================================
   Portfolio Hero Background Slideshow
   scoped for Daniel Mangler portfolio landing page
============================================ */

.elemental .portfolio-hero {
    position: relative;
    display: block;
    overflow: hidden;
    width: 100%;
    min-height: 100px;
    background-color: #1f1f23;
}

/* Existing hero content stays above the animated background */
.elemental .portfolio-hero > .center-horizontal {
    position: relative;
    z-index: 2;
}

/* Background wrapper */
.elemental .portfolio-hero .hero-bg {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;

    display: block;
    width: 100%;
    height: 100%;

    z-index: 1;
    overflow: hidden;
    pointer-events: none;
}

/* Shared layer styles */
.elemental .portfolio-hero .hero-bg__layer {
    position: absolute;
    top: -10px;
    right: -10px;
    bottom: -10px;
    left: -10px;

    display: block;
    width: calc(100% + 20px);
    height: calc(100% + 20px);

    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;

    filter: blur(3px);
    opacity: 0;
    transform: scale(1.02);

    animation-name: portfolioHeroFade;
    animation-duration: 70s;
    animation-timing-function: ease-in-out;
    animation-iteration-count: infinite;

    will-change: opacity, transform;
}

/* Project image paths */
.elemental .portfolio-hero .hero-bg__layer--1 {
    background-image: url('/site/pages/WA3000/WA3000_Appscreen_Collage_01.png');
    animation-delay: 0s;
}

.elemental .portfolio-hero .hero-bg__layer--2 {
    background-image: url('/site/pages/TADO/Tado_Appscreen_Mockup_03.png');
    animation-delay: -14s;
}

.elemental .portfolio-hero .hero-bg__layer--3 {
    background-image: url('/site/pages/MIPM/MIPM_Header.jpg');
    animation-delay: -28s;
}

.elemental .portfolio-hero .hero-bg__layer--4 {
    background-image: url('/site/pages/AIRO/airo_picture_0102.jpg');
    animation-delay: -42s;
}

.elemental .portfolio-hero .hero-bg__layer--5 {
    background-image: url('/site/pages/ORIGAMI/Rendering_Origami_hocker_Aufmacher_Landingpage.png');
    animation-delay: -56s;
}

/* Dark overlay keeps typography dominant */
.elemental .portfolio-hero .hero-bg__overlay {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;

    display: block;
    width: 100%;
    height: 100%;

    z-index: 2;

    background:
            radial-gradient(
                    circle at center,
                    rgba(0, 0, 0, 0.70),
                    rgba(0, 0, 0, 0.92)
            );
}

/* Slow crossfade with subtle zoom */
@keyframes portfolioHeroFade {
    0% {
        opacity: 0;
        transform: scale(1.00);
    }

    4% {
        opacity: 1;
    }

    20% {
        opacity: 1;
    }

    24% {
        opacity: 0;
        transform: scale(1.05);
    }

    100% {
        opacity: 0;
        transform: scale(1.05);
    }
}

/* Mobile: same slideshow, explicit sizing */
@media (max-width: 700px) {
    .elemental .portfolio-hero .hero-bg {
        display: block;
        width: 100%;
        height: 100%;
    }

    .elemental .portfolio-hero .hero-bg__layer {
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;

        width: 100%;
        height: 100%;

        filter: none;
        background-position: center center;
    }

    .elemental .portfolio-hero .hero-bg__overlay {
        background:
                linear-gradient(
                        to bottom,
                        rgba(0, 0, 0, 0.84),
                        rgba(0, 0, 0, 0.94)
                );
    }
}

/* Respect users who prefer reduced motion:
   keep crossfade, remove zoom movement */
@media (prefers-reduced-motion: reduce) {
    .elemental .portfolio-hero .hero-bg__layer {
        transform: none;
        animation-name: portfolioHeroFadeReduced;
    }
}

@keyframes portfolioHeroFadeReduced {
    0% {
        opacity: 0;
    }

    4% {
        opacity: 1;
    }

    20% {
        opacity: 1;
    }

    24% {
        opacity: 0;
    }

    100% {
        opacity: 0;
    }
}