/*------------------------------------*\
    Helpers
\*------------------------------------*/

/* Sizing */
.fill-height {
  height: -webkit-fill-available;
  width: -moz-available;
  width: stretch;
}

/* Loading */
.visibility-auto {
  content-visibility: auto;
}

/* Positions */
.absolute {
  position: absolute;
}

.relative {
  position: relative;
}

.sticky {
  position: sticky;
  top: 0;
  z-index: 99;
}

/* Text helpers */
.align-left {
  text-align: left;
}

.align-center {
  text-align: center;
}

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

.uppercase {
  text-transform: uppercase;
}

.text-2 {
  column-count: 2;
}

.text-3 {
  column-count: 3;
}

.text-4 {
  column-count: 4;
}

.initial::first-letter {
  font-size: 200%;
}

.vertical-lr {
  writing-mode: vertical-lr;
}

.sideways-lr {
  writing-mode: sideways-lr;
}

.vertical-rl {
  writing-mode: vertical-rl;
}

.sideways-rl {
  writing-mode: sideways-rl;
}

/* Spacers */
.no-padding {
  padding: 0 !important;
}

.no-margin {
  margin: 0 !important;
}

.spacer {
  height: 5em;
}

/* Touch helper */
.no-touch {
  -webkit-touch-callout: none;
}

/* Animation Helpers */
.smooth {
  scroll-behavior: smooth;
}

/* Shaper */
.circle-shape {
  shape-outside: circle(50%);
}

.img-fill {
  object-fit: fill;
}

.img-contain {
  object-fit: contain;
}

.img-cover {
  object-fit: cover;
}

.img-none {
  object-fit: none;
}

.img-scale-down {
  object-fit: scale-down;
}

/* Touch Manipulation */
.touch-container {
  overflow: auto;
  position: relative;
}

.touch-container .touch-manipulation {
  -ms-touch-action: manipulation;
  touch-action: manipulation;
}

/*------------------------------------*\
    Fullpage Scroll
\*------------------------------------*/
/* Horizontal Slide */
.fullpage-x-slide {
  scroll-snap-type: x mandatory;
  display: flex;
  -webkit-overflow-scrolling: touch;
  overflow-x: scroll;
}

.fullpage-y-slide {
  scroll-snap-type: y mandatory;
  -webkit-overflow-scrolling: touch;
  overflow-y: scroll;
}

.content-x-slide {
  scroll-snap-type: x proximity;
  display: flex;
  -webkit-overflow-scrolling: touch;
  overflow-x: scroll;
}

.content-y-slide {
  scroll-snap-type: y proximity;
  -webkit-overflow-scrolling: touch;
  overflow-y: scroll;
}

.scroll-element-start {
  scroll-snap-align: start;
}

.scroll-element-end {
  scroll-snap-align: end;
}

.scroll-element-center {
  scroll-snap-align: center;
}
