/* Balance Numbers Bookkeeping - base layout styles */
html, body { margin: 0; padding: 0; }
body { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility; overflow-x: hidden; }
* { -webkit-tap-highlight-color: transparent; }

.sp { position: relative; display: block; overflow: hidden; width: 100%; }
.sb { position: relative; display: block; width: 100%; pointer-events: none; }
.ss-s { position: absolute; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; }
.ss { position: absolute; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; display: none; }
.ss.sactive { display: block; }
.ss.s-fading { display: block; }
.sc { position: relative; margin: 0 auto; height: 100%; pointer-events: none; }
.d .sc { width: 1200px !important; }
.m .sc { width: 320px !important; }

.se { position: absolute; display: block; box-sizing: border-box; overflow: visible; pointer-events: auto; margin: 0; padding: 0; }
.se.se-bd, .se.se-bm { overflow: hidden; }
a.se { text-decoration: none; color: inherit; cursor: pointer; }
.se-t { position: absolute; top: 0; left: 0; right: 0; bottom: 0; margin: 0; padding: 0; }
.se-t p, p.se-t { margin: 0; }
.se-simple { display: block; width: 100%; height: 100%; box-sizing: border-box; }
.se-icon { display: block; width: 100%; height: 100%; }
.se-icon svg { display: block; width: 100%; height: 100%; }
.se-img { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-repeat: no-repeat; background-size: cover; background-position: 50% 50%; }
.se-gal, .se-gal img { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; }

textarea.se-tf, input.se-tf { position: absolute; top: 0; left: 0; width: 100%; height: 100%; box-sizing: border-box; margin: 0; border: 0; outline: none; resize: none; background: transparent; overflow: hidden; -webkit-appearance: none; appearance: none; border-radius: 0; }
textarea.se-tf.s-invalid { box-shadow: inset 0 0 0 1px rgba(200, 60, 60, .8); }

/* block backgrounds */
.sb-m { position: absolute; top: 0; left: 0; width: 100%; height: 100%; overflow: hidden; pointer-events: none; }
.sb-mc { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; display: block; will-change: transform; }

/* instagram-style grid */
.si-social-grid { width: 100%; height: 100%; overflow: hidden; }
.sg-img-container { display: grid; grid-template-columns: 1fr 1fr; }
.si-social-image { display: block; width: 100%; aspect-ratio: 1 / 1; object-fit: cover; }

/* entrance animations: hidden until on screen */
.str-im { display: block; }
html.js .str-im:not(.str-go) > .se { visibility: hidden; }
.sb.sb-fade { opacity: 0; }
.sb.sb-fade.sb-in { opacity: 1; transition: opacity .5s ease; }

/* locked (sticky) blocks */
.sb.sb-fixed { position: fixed; left: 0; right: 0; }
