/* http://meyerweb.com/eric/tools/css/reset/ 
   v2.0 | 20110126
   License: none (public domain)
*/

html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed, 
figure, figcaption, footer, header, hgroup, 
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 100%;
	font: inherit;
	vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure, 
footer, header, hgroup, menu, nav, section {
	display: block;
}
body {
	line-height: 1;
}
ol, ul {
	list-style: none;
}
blockquote, q {
	quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
	content: '';
	content: none;
}
table {
	border-collapse: collapse;
	border-spacing: 0;
}
a {
    color: inherit;
    text-decoration: none;
}
.active {
    color: var(--color);
    pointer-events: none;
    opacity: 1;
}
.inactive {
    opacity: 0.5;
}
@media (hover: hover) {
    a {
        opacity: 0.75;
    }
    a:hover {
        opacity: 1;
    }
    .no-hover {
        opacity: 1;
    }
    .inverse-hover {
        opacity: 1;
    }
    .inverse-hover:hover {
        opacity: 0.75;
    }
}
@font-face {
	font-family: 'romie';
	src: url('../fonts/Romie-Regular.woff2') format('woff2');
	font-weight: regular;
	font-display: swap;
	font-style: normal;
}
@font-face {
	font-family: 'romie';
	src: url('../fonts/Romie-Regular-Italic.woff2') format('woff2');
	font-weight: regular;
	font-display: swap;
	font-style: italic;
}
@font-face {
	font-family: 'satoshi';
	src: url('../fonts/Satoshi-Medium.woff2') format('woff2');
	font-weight: regular;
	font-display: swap;
	font-style: normal;
}
@font-face {
	font-family: 'satoshi';
	src: url('../fonts/Satoshi-MediumItalic.woff2') format('woff2');
	font-weight: regular;
	font-display: swap;
	font-style: italic;
}
@font-face {
	font-family: 'satoshi';
	src: url('../fonts/Satoshi-Bold.woff2') format('woff2');
	font-weight: bold;
	font-display: swap;
	font-style: normal;
}
@font-face {
	font-family: 'satoshi';
	src: url('../fonts/Satoshi-BoldItalic.woff2') format('woff2');
	font-weight: bold;
	font-display: swap;
	font-style: italic;
}

* {
    --serif: romie, Times, serif;;
    --sans: satoshi, system-ui, 'Helvetica Neue', Helvetica, sans-serif;

    --white: #FFFFFF;
    --black: #000000;
    --grey: #85858578;
    --lightgrey: #e3e5e9;

    --xs: 12px;
    --s: 16px;
    --m: 26px;
    --l: 48px;
    --xl: 4vw;
    --xxl: 12vmin;

    --margintop: max(6vh, 4rem);
    --bigmargintop: calc(var(--margintop) * 2);
    --marginleft: var(--margintop);

    --gridgap: calc(var(--margintop) / 2);

    --100vh : 100svh;

}
@media screen and (max-width: 1023px) {
    * {
        --margintop: 50px;
        --gridgap: 2rem;
    }
}
@media screen and (orientation: portrait) and (max-width: 1024px) {
    * {
        --xl: 9vw;
    }
}
@media screen and (max-width: 719px) {
    * {
        --marginleft: 20px;
        --gridgap: 20px;
        --s: 14px;
        --m: 22px;
        --l: 42px;
        --xxl: 14vmin;
    }
}



html, body {
    height: 100%;
    -webkit-tap-highlight-color: transparent;
    overflow: hidden;
}

body {
    position: fixed;
    background: var(--white);
    color: var(--color);
    font-family: var(--sans);
    font-size: var(--s);
    /*font-feature-settings: "ss06";*/
    line-height: 1.33;
    -moz-osx-font-smoothing: grayscale;
    -webkit-font-smoothing: antialiased;
    display: flex;
    flex-direction: column;
}

.page-menu {
    --bgcolor: var(--white)
}
.page-press {
    --bgcolor: var(--black)
}

header {
    position: fixed;
    z-index: 999;
    top: 0;
    left: 0;
    right: 0;
    height: var(--margintop);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.5s ease-in-out;
}
.page-home header,
.page-news header,
.page-project header,
.page-publication header,
.page-article header {
    transform: translateY(-100%);
}
/*#home-logo {
    display: none;
}
.page-menu #home-logo {
    display: flex;
}*/
#menu-link {
    position: fixed;
    top: 0;
    left: var(--marginleft);
    height: var(--margintop);
}
.page-press header #menu-link,
.page-publication header #menu-link,
.page-article header #menu-link {
    color: var(--white)
}
/*.page-menu #home-link {
    display: none;
}*/
.page-menu #menu-link {
    display: none;
}
#logo svg {
    vertical-align: middle;
    fill: var(--black);
    transition: fill 0.2s ease-in-out;
}
.page-press header #logo svg,
.page-publication header #logo svg,
.page-article header #logo svg {
    fill: var(--white)
}

main {
    position: fixed;
    width: 100%;
    height: 100%;
}

figure {
    margin: 0;
    padding: 0;
}
figcaption {
    text-align: center;
    padding-top: 0.75em;
}
picture {
    /*display: none;*/
}
img {
    position: relative;
    display: block;
    color: transparent;
}
img.placeholder {
    position: absolute !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover;
}
.image {
    flex: 0 0 auto;
    position: relative;
    background-size: cover;
    background-position: center;
    overflow: hidden;
}


/*Themes*/

.clear {
    --bgcolor: var(--white);
    --color: var(--black);
    background: var(--bgcolor);
    color: var(--color);
}
.dark {
    --bgcolor: var(--black);
    --color: var(--white);
    background: var(--bgcolor);
    color: var(--color);

}
/*Type sizes*/

.xxl {
    font-size: var(--xxl);
    line-height: 1.2;
    margin-top: -0.2em;
}
.xl {
    font-size: var(--xl);
    line-height: 1.2;
}
em {
    font-style: italic;
}
sup {
    font-size: .75em;
    line-height: 0.5em;
    vertical-align: super;
}
/*MENU*/

#menu {
    position: relative;
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    font-family: var(--serif);
    text-align: center;
    z-index: 998;
}
#menu #lang-menu {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: var(--margintop);
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}
#menu #lang-menu ul {
    display: flex;
    flex-direction: row;
    gap: 1em;
    font-family: var(--sans);
}
#menu #lang-menu .active {
    /*display: none;*/
}

/*Interface*/

.header-bar {
    height: var(--margintop);
    /*background: linear-gradient(var(--bgcolor), transparent);*/
    background-color: var(--bgcolor);
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    z-index: 998;
    display: flex;
    justify-content: flex-end;
    align-items: center;
    padding: 0 var(--marginleft);
}
@media screen and (max-width: 720px) {
    #header-page-title {
        display: none;
    }
}

#page-caption, #page-action, #page-menu {
    /*position: fixed;*/
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: var(--margintop);
    padding: 0 var(--marginleft);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1em;
    text-align: center;
    transition: transform 0.5s ease-in-out
}
#page-switch {
    z-index: 999;
    position: absolute;
    top: 0;
    right: 0;
    height: var(--margintop);
    padding: 0 var(--marginleft);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1em;
    text-align: center;
    transition: transform 0.5s ease-in-out
}
#page-action {
    background-color: var(--bgcolor);
}
#page-close {
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    padding: calc(var(--marginleft) / 2);
}
#page-scroll {
    cursor: pointer;
    position: absolute;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
    padding: calc(var(--marginleft) / 2);
}
#page-menu {
    gap: 1em;
}
#page-menu a {
    width: auto;
}
.separator {
    display: block;
    width: 0.1em;
    background: var(--black);
    height: 1em;
}
.button {
    /*position: fixed;*/
    padding: 0.75em 1em;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1em;
    background: var(--bgcolor);
    color: #4e4e4e;
    border-radius: 2px;
    filter: drop-shadow(0px 0px 10px #00000015);
}
@media screen and (max-width: 1024px) {
    #page-close {
        /*background: linear-gradient(transparent, var(--bgcolor));*/
    }
}
#page-next {
    z-index: 999;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    color: var(--color);
    padding: calc(var(--marginleft) / 2);
    /*margin-left: calc(var(--bigmargintop) * -1 - var(--margintop));*/
    transform: translateX(-100%);
}
@media screen and (min-width: 1025px) {
    [data-next-color="dark"] #page-next {
        color: var(--white) !important;
    }
}
@media screen and (max-width: 1024px) {
    [data-slide-center-size="full"] [data-next-color="dark"] #page-next  {
        color: var(--white) !important;
    }
}

.slide[data-size="cover"] {
    background-color: var(--black);
}
.slide[data-size="cover"] .images-container {
    opacity: 0.9;
}

[data-slide-center-size="cover"][data-slide-center-color="dark"] #page-caption,
[data-slide-center-size="full"][data-slide-center-color="dark"] #page-caption {
        color: var(--white) !important;
}
[data-slide-left-color="dark"] .project-title {
    color: var(--white) !important;
}
[data-slide-left-color="light"] .project-title {
    color: var(--black) !important;
}
@media screen and (max-width: 1024px) {
    [data-slide-left-size="cover"][data-slide-left-color="dark"] #page-close,
    [data-slide-left-size="full"][data-slide-left-color="dark"] #page-close {
        color: var(--white) !important;
    }
    #page-close {
        top: auto;
        bottom: 0;
        left: 0;
        transform: none;
        height: var(--margintop);
        padding: 0 calc(var(--marginleft) * 2);
        display: flex;
        justify-content: center;
        align-items: center;
    }
    #page-scroll {
        top: auto;
        bottom: 0;
        right: 0;
        transform: none;
        height: var(--margintop);
        padding: 0 calc(var(--marginleft) * 2);
        display: flex;
        justify-content: center;
        align-items: center;
    }
    #page-action {
        top: auto;
        bottom: 0;
        left: 0;
        right: 0;
        height: var(--margintop);
        transform: none;
        padding: 0;
        display: flex;
        justify-content: center;
        align-items: center;
    }
    #page-switch {
        top: auto;
        bottom: 0;
        left: 0;
        background: var(--bgcolor);
    }
    #page-caption {
        top: 0;
        bottom: auto;
    }
    #page-next {
        align-self: flex-end;
        height: var(--margintop);
        padding: 0 calc(var(--marginleft) * 2);
    }
}
[data-slide-center-color="dark"] #page-scroll {
    color: var(--white);
}
@media screen and (min-width: 1025px) {
    [data-slide-left-color="dark"] #page-close {
        color: var(--white);
    }
}

.page-project #page-close, .page-project #page-scroll span, .page-project #page-caption {
    opacity: 0;
    animation: fadeout 0.3s ease-in-out 1s 1 reverse forwards;
}

.sticky-bottom {
    position: sticky;
    bottom: 0;
}

/*Scroll*/
::-webkit-scrollbar {
    display: none;
}

.scroll-h {
    position: absolute;
    height: 100%;
    width: 100%;
    overflow-y: hidden;
    overflow-x: auto;

}
/*@media screen and (orientation: portrait) {
    .scroll-h {
        overflow-y: auto;
        overflow-x: hidden;
    }
}*/
.scroll-v {
    position: absolute;
    height: 100%;
    width: 100%;
    overflow-x: hidden;
    overflow-y: auto;
    -ms-overflow-style: none;  /* IE and Edge */
    scrollbar-width: none;  /* Firefox */
}
.page-architecture .scroll-v {
    scroll-snap-type: y mandatory;
}
.page-news .scroll-h {
   /*scroll-snap-type: x mandatory;*/
}
#architecture.full .architecture-thumbnail {
    scroll-snap-align: center;
}
.page-about .scroll-v {
    scroll-behavior: smooth;
}

/*Grid*/

.grid {
    display: grid;
    gap: var(--gridgap);
    padding: var(--margintop) var(--marginleft);
    min-height: calc(100% - var(--margintop) * 2);
    align-content: center;
    align-items: flex-start;
}
.grid.full {
    grid-template-columns: repeat(1, 1fr);
    /*gap: var(--margintop);*/
    padding: 0;
    gap: 0;
}
#architecture.grid.list {
    grid-template-columns: repeat(2, 1fr);
    /*gap: var(--marginleft);*/
    width: auto;
}
@media screen and (orientation: portrait) and (max-width: 1024px) {
    #architecture.grid.list {
        grid-template-columns: repeat(1 ,1fr);
    }
}
#furniture .grid {
    grid-template-columns: repeat(3, 1fr);
}
#publication .grid {
    padding: var(--margintop) calc(var(--marginleft) * 2);
    grid-template-columns: repeat(4, 1fr);
}
@media screen and (max-width: 1024px) {
    #furniture .grid {
        grid-template-columns: repeat(2, 1fr);
    }

    #publication .grid {
        grid-template-columns: repeat(3, 1fr);
        padding: var(--margintop) var(--marginleft);
    }
}
@media screen and (max-width: 720px) {
    #publication .grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

/*Thumbnails*/

.thumbnail {
    /*display: flex;
    align-items: center;
    justify-content: center;*/
    width: 100%;
    height: 100%;
}
.thumbnail figure {
    position: relative;
    width: 100%;
    height: 100%;
}
#furniture .thumbnail figure {
    aspect-ratio: 3 / 4;
}
.thumbnail .image {
    width: 100%;
    height: 100%;
}
.thumbnail img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}



/*Slider*/

#diaporama {
    background: var(--white);
}

.slider, .swiper-wrapper {
    height: 100%;
    display: flex;
    flex-direction: row;
    justify-content: flex-start;
}
.swiper-vertical .swiper-wrapper {
    width: 100%;
    height: auto;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
}
.slide {
    position: relative;
    flex: 0 0 auto;
    margin-right: calc(var(--bigmargintop) + var(--margintop));
    display: flex;
    flex-direction: row;
    align-items: center;
}
.swiper-vertical .swiper-wrapper .slide {
    flex: 1 1 auto;
}
.images-container {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: row;
    align-items: center;
    overflow: hidden;
}
.slide[data-size="cover"] {
    justify-content: center;
}
.slide[data-size="cover"],
.slide[data-size="full"] {
    --height: var(--100vh)
}
.slide[data-size="cover"][data-fullscreen="false"],
.slide[data-size="large"] {
    --height: calc(var(--100vh) - var(--margintop) * 2)
}
.slide[data-size="small"] {
    --height: calc(var(--100vh) - var(--bigmargintop) * 2);
    gap: var(--gridgap)
}

#article .slide {
    margin-right: var(--marginleft);
}
.diaporama .slide {
    position: absolute;
}
.diaporama .slide:not(:first-child) {
    visibility: hidden;
}
#news .slide {
    margin-right: 0;
}


.slide:last-child {
    /*margin-right: 0;*/
}
.slide[data-size="cover"] {
    width: 100vw;
    height: var(--100vh);
    /*flex: 0 0 auto;
    overflow: hidden;*/
}
.slide figure {
    height: var(--height);
    width: auto;
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
}
.slide[data-size="cover"][data-fullscreen="true"] figure {
    width: 100vw;
    height: 100%;
}
.slide .image {
    position: relative;
    height: 100%;
    width: calc(var(--height) * var(--ratio));
}
.slide[data-size="cover"] .image {
    width: 100%;
    height: 100%;
}
.slide[data-size="cover"][data-fullscreen="false"] .image {
    height: auto;
    max-height: 100%;
}
.slide img {
    position: absolute;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.slide[data-size="cover"][data-fullscreen="false"] img {
    position: relative;
}

/*.slide[data-size="large"] picture,
.slide[data-size="cover"][data-fullscreen="false"] picture {
    height: calc(100% - var(--margintop)* 2);
}
.slide[data-size="small"] picture,
.slide[data-size="small"] img {
    height: calc(100% - var(--bigmargintop)* 2);
    gap: var(--gridgap)
}
.slide[data-size="cover"] picture,
.slide[data-size="cover"] img {
    width: 100%;
    object-fit: cover;
}
.slide[data-size="cover"][data-fullscreen="false"] picture,
.slide[data-size="cover"][data-fullscreen="false"] img {
    object-fit: contain;
}*/


/*.slide figure {
    height: var(--100vh);
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
}

.slide[data-size="cover"] figure {
    width: 100vw;
}
.slide .image {
    position: relative;
    width: auto;
    height: auto;
    display: flex;
    align-items: center;
    justify-content: center;
}
.slide[data-size="cover"][data-fullscreen="true"] .image {
    margin: 0;
    height: 100%;
    width: 100%;
}
.slide[data-size="cover"][data-fullscreen="false"] .image {
    display: block;
    max-width: calc(100vw - var(--marginleft)* 2);
    max-height: calc(var(--100vh) - var(--margintop)* 2);
}
.slide[data-size="full"] .image {
    margin: 0;
    height: 100%;
}
.slide[data-size="large"] .image {
    margin: var(--margintop) 0;
    height: calc(100% - var(--margintop) * 2);
}
.slide[data-size="small"] img {
    margin: var(--bigmargintop) 0;
    height: calc(100% - var(--bigmargintop) * 2);
}
.slide[data-size="small"] figure {
    gap: var(--gridgap)
}
.slide picture,
.slide img {
    height: 100%;
    width: auto;
}
.slide[data-size="cover"][data-fullscreen="true"] img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.slide[data-size="cover"][data-fullscreen="false"] .image img {
    width: 100%;
    max-width: 100%;
    height: 100%;
}*/

html.to-zoom #project .slide[data-size="cover"] .images-container {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    animation: 0.6s ease-in-out 1 reverse backwards zoomIn;
}
@-webkit-keyframes zoomIn {
    to {
        width: calc(100% - var(--marginleft) * 2);
        height: calc(100% - var(--margintop) * 2);
    }
}

.slide.mobile {
    display: none;
}

/*Temporary page*/
#temporary-contact {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: var(--gridgap);
    background-color: var(--bgcolor);
    text-align: center;
    font-family: var(--serif);
    font-size: var(--l);
    z-index: 999;
    transform: translateY(-100%);
    transition: all 1s cubic-bezier(0.5, 0, 0.15, 1);
}
.showcontacts #temporary-contact {
    transform: translateY(0);
}
#temporary-contact #title {
    line-height: 0;
} 
#temporary-contact a {
    display: inline-block;
    opacity: 1;
}
#temporary-contact a::after {
    content: '';
    display: block;
    height: 0.02em;
    background: var(--white);
}
.temporary-slider .slide {
    position: fixed;
    margin: 0;
    background: none;
    width: 50vw;
}
.temporary-slider .slide:nth-child(even) {
    right: 0;
}
@media screen and (orientation: portrait) {
    .temporary-slider .slide {
        width: 100vw;
    }
}
@media screen and (max-width: 600px) {
    #temporary-contact {
        font-size: var(--xl);
    } 
}
@media screen and (min-width: 600px) {
    #temporary-contact #title video {
        height: 9vw;
        max-height: 110px;
        width: auto;
        max-width: 100%;
    }
}


@media screen and (orientation: portrait) {
    /*
    .slider {
        flex-direction: column;
        gap: var(--margintop)
    }
    .slide {
        width: 100%;
        height: auto;
    }
    .slide[data-size="cover"] {
        flex: 0 0 auto;
        width: 100vw;
        height: var(--100vh);
        overflow: hidden;
    }
    .slide[data-size="cover"] img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }
    .slide[data-size="large"] {
        padding: 0 var(--marginleft);
        width: calc(100% - var(--bigmarginleft) * 2);
        height: auto;
    }
    .slide[data-size="small"] {
        padding: 0 var(--marginleft);
        width: calc(100% - var(--bigmarginleft) * 2);
        height: auto;
    }
    .slide:not([data-size="cover"]) figure {
        width: 100%;
        height: auto;
    }
    .slide figure img {
        width: 100%;
        height: auto;
    }
    */
    .slide[data-size="cover"] figure:nth-child(2),
    .slide[data-size="cover"] figure:nth-child(2) img {
        display: none;
    }
    .slide.mobile {
        display: flex;
    }
    #article .slide[data-size="large"] {
        --height: calc(var(--100vh) - var(--bigmargintop) * 2);
    }
}


/*NEWS*/

#news {
    position: absolute;
    width: 100%;
    height: 100%;
}

.page-news header {
    /*transform: translateY(-100%);*/
}
#news-diaporama {
    width: 100%;
    height: 100%;
}
#news-diaporama .slider {
    gap: 0;
    width: 100%;
}


#news-title {
    position: absolute;
    z-index: 997;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    padding: var(--marginleft);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--serif);
    text-align: center;
    pointer-events: none;
}
.js #news-title a {
    pointer-events: none;
}
#title {
    pointer-events: all;
    width: 100%;
    max-width: 1200px;
}
#title a {
    display: inline-block;
    transition: transform 0.2s ease-in-out;
}
@media (hover: hover) {
    #title a:hover {
        transform: scale(1.02);
    }
}
#menu-link {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    pointer-events: all;
}
@media screen and (max-width: 1023px) {
    #home-link svg, #home-logo {
        width: 275px;
        max-width: 65vw;
    }
}

@media screen and (min-width:600px) {
    #title img {
        height: 7vw;
        max-height: 92px;
        width: auto;
        max-width: 100%;
    }
    #title video {
        height: 7vw;
        max-height: 92px;
        width: auto;
        max-width: 100%;
    }
}
@media screen and (max-width:599px) {
    #title img {
        height: 22vw;
        width: auto;
        max-width: 100%;
    }
    #title video {
        height: 11vw;
        width: auto;
        max-width: 100%;
    }
}
.logo-anim {
    position: relative;
    display: inline-block;
    height: 5vmax;
}


#title a {
    pointer-events: all;
}
#news .slide figcaption {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: var(--margintop);
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}

/*Architecture-list*/

#architecture-nav {
    position: fixed;
    z-index: 999;
    top: 0;
    right: 0;
    height: var(--margintop);
    padding: 0 var(--marginleft);
    display: flex;
    align-items: center;
}
.architecture-thumbnail {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
}
#architecture.full .architecture-thumbnail {
    width: 100%;
    height: var(--100vh);
}
/*.architecture-thumbnail.fixed {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    margin: 0;
    pointer-events: none;
    animation: 0.5s ease-in-out 1 both zoomIn;
}
@-webkit-keyframes zoomIn {
    to {
      width: 100%;
      height: 100%;
    }
  }
*/
.architecture-thumbnail a {
    display: flex;
    align-items: center;
    justify-content: center;
    clip-path: inset(var(--margintop) var(--marginleft));
    clip-path: inset(0);
}
.architecture-thumbnail figure {
}
#architecture.full .architecture-thumbnail .thumbnail {
    width: calc(100% - var(--marginleft) * 2);
    height: calc(100% - var(--margintop) * 2);
    transition: all 0.5s ease-in-out 0.5s;
}
#architecture.list .architecture-thumbnail {
    height: auto;
    aspect-ratio: 3 / 2;
    overflow: hidden;
}
.architecture-thumbnail figcaption {
    background-color: rgb(0 0 0 / 20%);
    transition: background-color 0.3s ease-in-out ;
}
.architecture-thumbnail a:hover figcaption {
    background-color: rgb(0 0 0 / 10%);
}
#architecture.full .architecture-thumbnail figcaption,
.project-title {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    padding: calc(var(--margintop) + 0.5em) calc(var(--marginleft) + 0.5em);
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    font-family: var(--serif);
    font-size: var(--xxl);
    line-height: 1.2;
    pointer-events: none;
    color: var(--white);
}
.project-title {
    position: absolute;
}
.no-js .page-project .project-title {
    animation: fadeout 0.5s ease-in-out 1s 1 normal forwards;
}
@-webkit-keyframes fadeout {
    from {
      opacity: 1;
    }
    to {
      opacity: 0;
    }
}
#architecture.list .architecture-thumbnail figcaption {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    pointer-events: none;
    color: var(--white);
}
#architecture.list .architecture-thumbnail figcaption .xxl {
    font-family: var(--serif);
    font-size: var(--xl);
}
[data-category="architecture"] .project-title {
    color: var(--white);
}
[data-category="furniture"] .project-title {
    color: var(--black);
}

@media screen and (orientation: portrait) {
    #architecture.full .architecture-thumbnail figure:nth-child(2) {
        display: none;
    }
    #architecture.full .architecture-thumbnail figcaption {
        /*position: absolute;*/
    }
}

#furniture .furniture-thumbnail figcaption {
    font-family: var(--serif);
    font-size: var(--m);
    padding: 0.5em 0;
}

#furniture .thumbnail a:hover {
    opacity: 1;
}
#furniture .thumbnail .image:nth-child(2) {
    position: absolute;
    top: 0;
}
@media (hover: none) {
    #furniture .thumbnail .image:nth-child(2) {
        display: none;
    }
}
@media (hover: hover) {
    #furniture .thumbnail .image:nth-child(2) {
        opacity: 0;
        transition: opacity 0.3s ease-in-out
    }
    #furniture .thumbnail figure:hover .image:nth-child(2) {
        opacity: 1;
    }
}





/*PRESS*/



.page-press main {
    min-height: 100%;
}
#press {
    font-family: var(--serif);
    padding: var(--margintop) var(--marginleft);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: calc(100% - var(--margintop) * 2);
}
.press-item {
    text-align: center;
}

@media screen and (orientation: portrait) {
    #press.xxl {
        font-size: var(--xl);
    }
}


/*ARTICLE*/

/*.slide {
    position: relative;
    width: 100%;
    max-height: var(--100vh);
    display: flex;
    justify-content: center;
    overflow: hidden;
}
.slide figure {
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    padding: var(--margintop);
}
.page-article .slide figure img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}
#page-caption {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    height: var(--margintop);
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}
#page-close {
    position: fixed;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    padding: calc(var(--margintop) / 2 - 2em);
}*/

#article.slider {
    /*gap: var(--marginleft)*/
}

#article .slide:first-child {
    margin-left: var(--marginleft);
}
.no-js #article .slide:last-child:not(:first-child) {
    margin-right: var(--marginleft) !important;
}
@media screen and (orientation: portrait) {
    #article {
        /*padding: var(--margintop) 0;*/
    }
    #article .slide:first-child {
        /*margin-left: 0 !important;*/
    }
}
/*#article .slide {
    height: 100%;
    display: flex;
    justify-content: center;
}


#article .slide figure {
    padding: var(--margintop) 0;
    height: calc(100% - var(--margintop) * 2);
}
#article .slide figure img {
    height: 100%;
    width: auto;
}
@media screen and (orientation: portrait) {
    #article .slide:first-child {
        margin-left: 0 !important;
        margin-top: var(--margintop);
    }
    #article .slide:last-child {
        margin-right: 0 !important;
        margin-bottom: var(--margintop);
    }
    #article .slide figure {
        width: 100%;
        padding: 0 var(--marginleft);
        height: auto;
    }
    #article .slide figure img {
        width: 100%;
        height: auto;
    }
}*/




/*About*/

#about {
    position: relative;
}
#about section {
    position: relative;
    min-height: calc(var(--100vh) - var(--margintop) * 2);
    align-items: center;
}
.image-section {
    height: var(--100vh);
    align-content: center;
}
.image-section figure {
    padding: var(--margintop) var(--marginleft);
    width: calc(100vw - var(--marginleft)* 2);
    height: calc(var(--100vh) - var(--margintop)* 2);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}
.image-section a {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}
.image-section .image {
    display: block;
    position: relative;
    max-height: calc(var(--100vh) - var(--margintop) *2);
    max-width: calc(100vw - var(--marginleft) *2);
    overflow: hidden;
    /*display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;*/
}
.image-section img {
    max-width: 100%;
    height: 100%;
}
.image-section figcaption {
    height: 0;
}


.text-section {
    background: var(--lightgrey);
    padding: var(--margintop) var(--marginleft);
    display: flex;
    justify-content: center;
}
.text-container {
    max-width: 1200px;
    margin: var(--marginleft) 0;
}
.text-container > * {
    float: left;
}

.bio-text {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: var(--gridgap);
}
.bio-text .intro {
    font-family: var(--serif);
    font-size: var(--xl);
    line-height: 1.1;
    grid-column-end: span 2;
}
.bio-text .bigtext {
    font-family: var(--serif);
    font-size: var(--m);
    line-height: 1.4;
}
.bio-text .text {
    min-width: 260px;
}

.text h2 {
    font-family: var(--serif);
    font-size: var(--m);
    margin-bottom: 0.5em;
    break-after: avoid;
}
.text p {
    margin-bottom: 2em;
    break-inside: avoid-column;
}
.text p:last-child {
    margin-bottom: 0;
}
.column-text {
    break-inside: avoid-column;
    padding-bottom: 2em;
}
.agency .text {
    columns: 3;
    gap: var(--gridgap);
}
@media screen and (max-width: 1024px) {
    .bio-text {
        grid-template-columns: repeat(2, 1fr);
    }
    .agency .text {
        columns: 2;
    }
}
@media screen and (max-width: 720px) {
    .bio-text {
        grid-template-columns: 1fr;
    }
    .bio-text .intro {
        grid-column-end: span 1;
    }
    .agency .text {
        columns: 1;
    }
}

#about .contact-section {
    position: relative;
    width: 100%;
    height: var(--100vh);
}

#about .contact-section .background-image {
    position: absolute;
    width: 100%;
    height: 100%;
}
#about .contact-section .background-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
#about #contacttext {
    position: relative;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--serif);
    font-size: var(--xl);
    text-align: center;
}
#about #contacttext a {
    display: inline-block;
    opacity: 1;
}
#about #contacttext a::after {
    content: '';
    display: block;
    height: 0.02em;
    background: var(--black);
}
#about #credits {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: calc(var(--margintop) / 3);
    font-size: var(--xs);
    text-align: center;
}

/*Swup animations*/

.swup-progress-bar {
    height: 0.2em;
    background-color: var(--white);
    mix-blend-mode: difference;
}

.swup-enabled body {
    display: grid;
    width: 100%;
    height: 100%;
    grid-template-rows: 100% 100%;
}
#swup {
    grid-row: 1;
    grid-column: 1;
    overflow: hidden;
    /*transform: translateZ(0)*/
}
.transition-slide {
}
html.is-changing #swup.transition-slide {
    opacity: 1;
    transition: transform 1s cubic-bezier(0.5, 0, 0.15, 1), opacity 1s cubic-bezier(0.5, 0, 0.15, 1);
}
html.to-right #swup.transition-slide.is-next-container {
    transform: translateX(-100%);
}
html.to-right #swup.transition-slide.is-previous-container {
    transform: translateX(100%);
}
html.to-left #swup.transition-slide.is-next-container {
    transform: translateX(100%);
}
html.to-left #swup.transition-slide.is-previous-container {
    transform: translateX(-100%);
}
html.is-changing.to-bottom #swup.transition-slide.is-previous-container {
    z-index: -1;
}
html.to-bottom #swup.transition-slide.is-next-container {
    transform: translateY(100%);
}
html.to-bottom #swup.transition-slide.is-previous-container {
    transform: translateY(-50%);
    opacity: 0;
}
html.to-top #swup.transition-slide.is-next-container {
    transform: translateY(-100%);
}
html.to-top #swup.transition-slide.is-previous-container {
    transform: translateY(100%);
}

html.to-zoom {
    overflow: hidden;
}
html.is-changing.to-zoom .transition-slide.is-previous-container,
html.is-changing.to-right .transition-slide.is-next-container {
    z-index: -1;
}
html.to-zoom .is-next-container {
    opacity: 0;
    animation: 4s ease-in-out 1 reverse backwards fadein;
}
@keyframes fadein {
    to {
        opacity: 0;
    }
}
.zoom .scroll-v {
    pointer-events: none;
}
.zoom #architecture.full .architecture-thumbnail .thumbnail {
    width: 100%;
    height: 100%;
}
.zoom .architecture-thumbnail figcaption {
    background-color: rgb(0 0 0 / 10%)
}
.zoom .header-bar,
.zoom header {
    transform: translateY(-100%);
}
.zoom #page-action {
    transform: translateY(100%);
}
.zoom #page-switch {
    transform: translateY(-100%);
}
@media screen and (max-width: 1024px) {
    .zoom #page-switch {
        transform: translateY(100%);
    }
}
/*@media screen and (max-width: 1024px) {
    html.to-left #swup.transition-slide.is-next-container {
        transform: translateY(100%);
    }
    html.to-left #swup.transition-slide.is-previous-container {
        transform: translateY(-100%);
    }
    html.to-right #swup.transition-slide.is-next-container {
        transform: translateY(-100%);
    }
    html.to-right #swup.transition-slide.is-previous-container {
    transform: translateY(100%);
    }
}*/

/*test parralax*/

/*#architecture .architecture-thumbnail .image {
    position: relative;
    overflow: clip;
}

#architecture .architecture-thumbnail .image img {
    position: absolute;
    top: 0;
    width: 100%;
    height: calc(100% + var(--margintop) * 2);
    object-fit: cover;
    object-position: 0 100%;
    transform: translateY(calc(var(--margintop) * -1));
}

@supports (animation-timeline: view()) {
    @keyframes adjust-image {
        0% {
            transform: translateY(calc(var(--margintop) * -2));
        }
        100% {
            transform: translateY(var(--margintop) * 2);
        }
    }

    #architecture .architecture-thumbnail .image img {
        animation: adjust-image linear both;
        animation-timeline: view(y);
    }
}*/




/* Swiper */

:root {
    --swiper-navigation-size: 50%;
    --swiper-navigation-top-offset: 50%;
    --swiper-navigation-sides-offset: 0px;
    --swiper-navigation-color: var(--swiper-theme-color);
}
.scroll-h.swiper-initialized {
    overflow: hidden;
}
.swiper-initialized .swiper-button-prev,
.swiper-initialized .swiper-button-next {
    position: absolute;
    top: 0;
    width: 33%;
    height: 100%;
    z-index: 10;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--swiper-navigation-color, var(--swiper-theme-color));
}
@media (hover: none) {
    .swiper-initialized .swiper-button-prev,
    .swiper-initialized .swiper-button-next {
        display: none;
    }
}
.swiper-initialized .swiper-button-prev.swiper-button-disabled,
.swiper-initialized .swiper-button-next.swiper-button-disabled {
    opacity: 0.35;
    cursor: auto;
    pointer-events: none;
}
.swiper-initialized .swiper-button-prev.swiper-button-hidden,
.swiper-initialized .swiper-button-next.swiper-button-hidden {
    opacity: 0;
    cursor: auto;
    pointer-events: none;
}
.swiper-initialized .swiper-navigation-disabled .swiper-button-prev,
.swiper-initialized .swiper-navigation-disabled .swiper-button-next {
    display: none !important;
}
.swiper-initialized .swiper-button-prev,
.swiper-initialized .swiper-rtl .swiper-button-next {
    left: var(--swiper-navigation-sides-offset, 10px);
    right: auto;
}
.swiper-initialized .swiper-button-next,
.swiper-initialized .swiper-rtl .swiper-button-prev {
    right: var(--swiper-navigation-sides-offset, 10px);
    left: auto;
}
.swiper-initialized .swiper-button-lock {
    display: none;
}
.swiper-initialized .slide figcaption {
    display: none !important;
}
.swiper-initialized .swiper-caption .caption {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    height: var(--margintop);
    display: flex;
    align-items: center;
    justify-content: center;
}

.swiper-initialized .swiper-caption .swiper-pagination-bullet .caption {
    visibility: hidden;
    opacity: 0;
    transition: all 0.3s ease-in-out
}
.swiper-initialized .swiper-caption .swiper-pagination-bullet-active .caption {
    visibility: visible;
    opacity: 1;
    transition: all 0.3s ease-in-out
}
.swiper-initialized .cursorhover {
    cursor: none !important;
}
#cursor {
    display: none;
    position: fixed;
    z-index: 9999;
    top: 0;
    left: -50%;
    transform: translate3d(-50%, -50%, 0);
    word-break: keep-all;
    pointer-events: none!important;
}


.no-js video {
    display: none;
}



/*GRID*/

#site-grid {
    display: none;
    position: fixed;
    inset: 0;
    pointer-events: none;
}
.margin-top {
    border-top: 1px solid #7e7e7e80;
    border-bottom: 1px solid #7e7e7e80;
    position: absolute;
    left: 0;
    right: 0;
    top: var(--margintop);
    bottom: var(--margintop);
}
.bigmargin-top {
    border-top: 1px solid #7e7e7e80;
    border-bottom: 1px solid #7e7e7e80;
    position: absolute;
    left: 0;
    right: 0;
    top: var(--bigmargintop);
    bottom: var(--bigmargintop);
}
.margin-left {
    border-left: 1px solid #7e7e7e80;
    border-right: 1px solid #7e7e7e80;
    position: absolute;
    left: var(--marginleft);
    right: var(--marginleft);
    top: 0;
    bottom: 0;
}

html.lenis, html.lenis body {
    height: auto;
  }
  
  .lenis.lenis-smooth {
    scroll-behavior: auto !important;
  }
  
  .lenis.lenis-smooth [data-lenis-prevent] {
    overscroll-behavior: contain;
  }
  
  .lenis.lenis-stopped {
    overflow: hidden;
  }
  
  .lenis.lenis-scrolling iframe {
    pointer-events: none;
  }