/* ==============================================
   GLOBAL - Cursors
   Custom SVG cursors for default and links.
   ============================================== */

html {
  cursor: url(https://files.cargocollective.com/c1487890/cursor_active_2.svg), auto !important;
}

a {
  cursor: url(https://files.cargocollective.com/c1487890/cursor_go_3.svg), auto !important;
}

/* ==============================================
   GLOBAL - Base styles
   Default body, links, typography resets.
   ============================================== */

html {
  scroll-behavior: smooth;
}

body {
  background-color: #fff;
  color: #000;
}

a:active {
  opacity: 1;
}

.page a.active {
  opacity: 1;
  text-decoration: underline;
}

i, em { font-style: italic; }
b, strong { font-weight: bolder; }

sub, sup {
  position: relative;
  vertical-align: baseline;
}

sub { top: 0.3em; }
sup { top: -0.4em; }
s { text-decoration: line-through; }

img {
  border: 0;
  padding: 0;
}

ul, ol {
  margin: 0;
  padding: 0 0 0 1em;
}

blockquote {
  margin: 0;
  padding: 0 0 0 2em;
}

hr {
  background: rgba(127, 127, 127, 0.2);
  border: 0;
  height: 1px;
  display: block;
}

.content img {
  float: none;
  margin-bottom: .5em;
}

::-moz-selection {
  color: #d8d8d8;
  background: #2d2d2d;
}

::selection {
  color: #d8d8d8;
  background: #2d2d2d;
}

/* ==============================================
   GLOBAL - Typography
   DM Sans body, headings, small text styles.
   ============================================== */

[data-predefined-style="true"] bodycopy {
  font-size: 1.5rem;
  font-weight: 400;
  color: #2d2d2d;
  font-family: "DM Sans", Icons;
  font-style: normal;
  line-height: 1.3;
}

[data-predefined-style="true"] bodycopy a {
  color: #2d2d2d;
  padding-bottom: 0.1em;
  border-bottom: 0.0em solid rgba(127, 127, 127, 0.2);
  text-decoration: none;
}

[data-predefined-style="true"] bodycopy a:hover {
  text-decoration: none;
}

bodycopy a.image-link,
bodycopy a.icon-link,
bodycopy a.image-link:hover,
bodycopy a.icon-link:hover {
  border-bottom: 0;
  padding-bottom: 0;
}

[data-predefined-style="true"] h1 {
  font-family: "DM Sans", Icons;
  font-style: normal;
  font-weight: 400;
  padding: 0;
  margin: 0;
  font-size: 3rem;
  line-height: 1;
  color: #2d2d2d;
}

[data-predefined-style="true"] h1 a { color: #2d2d2d; }
[data-predefined-style="true"] h1 a:hover { color: rgba(45, 45, 45, 1); }
[data-predefined-style="true"] h1 a:active { color: rgba(0, 0, 0, 0.85); }

[data-predefined-style="true"] h2 {
  font-family: "DM Sans", Icons;
  font-style: normal;
  font-weight: 400;
  padding: 0;
  margin: 0;
  color: #2d2d2d;
  font-size: 3rem;
  line-height: 1.1;
}

[data-predefined-style="true"] h2 a { color: #2d2d2d; }

[data-predefined-style="true"] small {
  display: inline-block;
  font-size: 1.2rem;
  line-height: 1.3;
  font-family: "Space Grotesk", Icons;
  font-style: normal;
  font-weight: 400;
  color: rgba(46, 46, 46, 1);
}

[data-predefined-style="true"] small a {
  color: rgb(46, 46, 46);
  border-bottom-width: 0em;
}

/* ==============================================
   GLOBAL - Layout / Breakpoints
   Content width, padding, container settings.
   ============================================== */

[data-css-preset] .page {
  background-color: initial;
}

.mobile .page,
[data-css-preset].mobile .page {
  position: relative;
  min-height: 10px;
  max-width: 100%;
  width: 100%;
  background-color: transparent;
}

[data-css-preset] .container {
  margin-left: auto;
  margin-right: auto;
  text-align: left;
}

[data-css-preset] body {
  background-color: transparent;
}

[data-css-preset] .container_width {
  width: 85%;
}

[data-css-preset] .content_padding {
  padding-top: 1rem /*!main_margin*/;
  padding-bottom: 1rem /*!main_margin*/;
  padding-left: 1rem /*!main_margin*/;
  padding-right: 1rem /*!main_margin*/;
}

[data-css-preset] text-limit {
  display: inline-block;
  max-width: 66rem;
}

/* ==============================================
   GLOBAL - Gallery image caption
   Default caption style for all pages
   except commercial-work (overridden below).
   ============================================== */

body:not([data-page-id="38318176"]) .gallery_image_caption {
  margin-top: 1rem;
  margin-bottom: 0.5rem;
  font-size: 1.1rem;
  font-weight: 400;
  color: #2d2d2d;
  font-family: "DM Sans", Icons;
  font-style: normal;
  line-height: 1.3;
  text-align: center;
}

/* ==============================================
   GLOBAL - Thumbnails
   Grid layout and typography for project grids.
   ============================================== */

div[thumbnails] { justify-content: flex-start; }

[data-css-preset] .thumbnails {
  background-color: rgba(0, 0, 0, 0);
}

[data-css-preset] .thumbnails_width { width: 90%; }
[data-css-preset] [thumbnails-pad] { padding: 3.5rem; }
[data-css-preset] [thumbnails-gutter] { margin: -7rem; }

[data-css-preset] [responsive-layout] [thumbnails-pad] { padding: 1.175rem; }
[data-css-preset] [responsive-layout] [thumbnails-gutter] { margin: -2.35rem; }

.thumbnails .thumb_image {
  outline: 0px solid rgba(0,0,0,.12);
  outline-offset: -1px;
}

.thumbnails .title {
  margin-top: 0.7rem;
  margin-bottom: .3rem;
  font-size: 1.2rem;
  font-weight: normal;
  color: #2d2d2d;
  font-family: "Space Grotesk", Icons;
  font-style: normal;
  line-height: 1.1;
}

.thumbnails .tags {
  margin-top: 1.2rem;
  margin-bottom: 0.5rem;
  font-size: 1.1rem;
  line-height: 1.3;
  font-family: "Space Grotesk", Icons;
  font-style: normal;
  font-weight: 400;
  color: rgba(46, 46, 46, 1);
}

.thumbnails .tags a {
  border-bottom: 0;
  color: #2d2d2d;
  text-decoration: none;
}

.thumbnails .has_title .tags { margin-top: 0rem; }

/* ==============================================
   GLOBAL - Loading animation
   ============================================== */

.loading[data-loading] {
  position: fixed;
  bottom: 8px;
  left: 8px;
}

/* ==============================================
   GLOBAL - Site Menu
   Hamburger button and slide-out menu styles.
   ============================================== */

[data-css-preset] #site_menu_button {
  color: rgba(0, 0, 0, 0.75);
  line-height: 1;
  font-size: 28px;
  padding: 2px;
  background: rgba(33, 32, 46, 0);
  position: fixed;
  top: 1.6rem;
  right: 1.7rem;
}

body.mobile #site_menu_button {
  margin: -6px;
  font-size: 34px;
}

#site_menu_button.custom_icon { width: 40px; height: auto; }
#site_menu_button.active { display: inherit; }

#site_menu {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif, "Sans Serif", Icons;
  background: rgba(20, 20, 20, 0.95);
  font-size: 20px;
  font-style: normal;
  font-weight: 400;
  padding: 20px 30px 90px 30px;
  max-width: 400px;
  min-width: 300px;
  text-align: left;
  display: flex;
  justify-content: flex-start;
}

body.mobile #site_menu { width: 100%; height: 100%; }

#site_menu .page-link a { color: rgba(210, 103, 103, 0.75); }
#site_menu .set-link > a { color: rgba(255, 255, 255, 0.75); font-weight: bold; }
#site_menu a:active { opacity: .10; }
#site_menu a.active { opacity: .4; }

#site_menu .close {
  display: none;
  color: rgba(255, 255, 255, 0.4);
  line-height: .85em;
  font-size: 45px;
}

body.mobile #site_menu .close { display: block; font-size: 50px; line-height: 1em; }
#site_menu .break { height: 28px; }
#site_menu .indent { margin-left: 28px; }

/* ==============================================
   GLOBAL - Shop button and product widget
   ============================================== */

[data-css-preset] #shop_button {
  color: rgba(0, 0, 0, 0.85);
  background: transparent;
  font-size: 32px;
  font-style: normal;
  font-weight: 400;
  line-height: 1;
  position: fixed;
  padding: 6px;
  top: 2rem;
  right: 2rem;
}

#shop_button.text {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif, "Sans Serif", Icons;
  font-size: 2rem;
  padding: 0;
  font-weight: 400;
  color: rgba(0, 0, 0, 0.85);
}

#shop_button.custom_icon { width: 40px; height: auto; }
body.mobile #shop_button:not(.text) { margin: -6px; font-size: 36px; }

.shop_product {
  width: 100%;
  max-width: 23rem;
  position: relative;
  display: block;
}

.shop_product .price {
  font-family: "Space Grotesk", Icons;
  font-size: 2rem;
  line-height: 1;
  color: rgba(0, 0, 0, 0.85);
  display: block;
  margin-bottom: 1rem;
  font-style: normal;
  font-weight: 400;
}

.shop_product .dropdown {
  font-family: "DM Sans", Icons;
  font-size: 1.4rem;
  display: inline-block;
  width: 100%;
  border: 1px solid rgba(0,0,0,.2);
  background: white url(https://static.cargo.site/assets/images/select-arrows.svg) no-repeat right;
  margin-bottom: 1rem;
  line-height: 1.2;
  padding: .7rem 2.5rem .7rem 1rem;
  font-style: normal;
  font-weight: 400;
}

.shop_product .button {
  font-family: "DM Sans", Icons;
  font-size: 1.2rem;
  background: rgba(0, 0, 0, 1);
  color: rgba(255,255,255,1);
  flex: 0 0 50%;
  text-align: left;
  display: inline-block;
  line-height: 1;
  padding: .8rem 1rem .9rem;
  border-radius: 100px;
  font-style: normal;
  font-weight: 400;
}

/* ==============================================
   GLOBAL - Quick View
   Overlay styles for project quick view popup.
   ============================================== */

[data-css-preset] .quick-view {
  padding: 1.5rem;
  height: 100%;
  width: 100%;
}

body.mobile .quick-view { width: 100%; height: 100%; margin: 0; }

[data-css-preset] .quick-view-background {
  background: rgba(0, 0, 0, 0.85);
}

.quick-view-caption {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
  font-weight: 400;
  transition: 100ms opacity ease-in-out;
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  margin: 3.5rem 0;
  text-align: center;
  font-size: 1.5rem;
}

.quick-view-caption span {
  padding: 0.5rem 1rem;
  display: inline-block;
  background: rgba(0,0,0,.5);
  color: white;
}

.quick-view-navigation .left-arrow { left: 10px; }
.quick-view-navigation .right-arrow { right: 10px; }

.quick-view-navigation .left-arrow,
.quick-view-navigation .right-arrow {
  height: 36px;
  width: 36px;
}

.quick-view-navigation .left-arrow .inner-color,
.quick-view-navigation .right-arrow .inner-color {
  stroke: #fff;
  stroke-width: 1.5px;
}

.quick-view-navigation .left-arrow .outer-color,
.quick-view-navigation .right-arrow .outer-color {
  stroke: rgba(0, 0, 0, 0.6);
  stroke-width: 2.5px;
}

.quick-view-navigation .close-button {
  top: 10px;
  right: 10px;
  width: 36px;
  height: 36px;
}

.quick-view-navigation .close-button .inner-color { stroke: #fff; stroke-width: 1.5px; }
.quick-view-navigation .close-button .outer-color { stroke: #000; stroke-width: 2.5px; opacity: 0.6; }

/* ==============================================
   GLOBAL - Image Gallery Navigation Arrows
   ============================================== */

.image-gallery-navigation .left-arrow,
.image-gallery-navigation .right-arrow {
  height: 36px;
  width: 36px;
}

.image-gallery-navigation .left-arrow .inner-color,
.image-gallery-navigation .right-arrow .inner-color {
  stroke: #fff;
  stroke-width: 1.5px;
}

.image-gallery-navigation .left-arrow .outer-color,
.image-gallery-navigation .right-arrow .outer-color {
  stroke: rgba(0, 0, 0, 0.6);
  stroke-width: 2.5px;
}

/* ==============================================
   GLOBAL - Wallpaper Navigation Arrows
   ============================================== */

.wallpaper-navigation .left-arrow,
.wallpaper-navigation .right-arrow {
  width: 36px;
  height: 36px;
}

.wallpaper-navigation .left-arrow .inner-color,
.wallpaper-navigation .right-arrow .inner-color {
  stroke: #fff;
  stroke-width: 1.5px;
}

.wallpaper-navigation .left-arrow .outer-color,
.wallpaper-navigation .right-arrow .outer-color {
  stroke: rgba(0, 0, 0, 0.6);
  stroke-width: 2.5px;
}

/* ==============================================
   GLOBAL - Feed
   ============================================== */

.feed .content_container .page {
  border-top: 0px dashed rgba(0, 0, 0, 0.2);
}

.feed .content_container .page_container:first-child .page {
  border-top: 0;
}

/* ==============================================
   GLOBAL - Audio Player
   ============================================== */

.audio-player {
  max-width: 36rem;
  height: 3.3rem;
  outline: 1px solid rgba(0,0,0,0.15);
  color: rgba(0, 0, 0, 0.6);
  background: #fff;
  font-size: 1.2rem;
  line-height: 1.3;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif, "Sans Serif", Icons;
  font-style: normal;
  font-weight: 400;
  text-align: left;
  margin: 1px 1px 1em 1px;
}

body.mobile .audio-player { max-width: 100%; }

.audio-player .separator { width: 1px; background-color: rgba(0,0,0,0.15); }
.audio-player .button { background: transparent; cursor: pointer; fill: rgba(0, 0, 0, 0.85); }
.audio-player .icon { fill: rgba(0, 0, 0, 0.85); padding: 30%; width: 100%; margin: auto; }
.audio-player .buffer { background: rgba(0,0,0,0.03); }
.audio-player .progress { background: rgba(0,0,0,0.1); }

.audio-player .progress-indicator {
  border: 1px solid rgba(0, 0, 0, 0.7);
  width: 1px;
  height: 100%;
  right: 0;
  position: absolute;
  cursor: ew-resize;
}

.audio-player .note-icon { height: 100%; width: 3.8rem; padding: 1rem; fill: rgba(0, 0, 0, 0.5); }
.audio-player .current-time { padding-left: 1rem; }
.audio-player .total-time { padding-right: 1rem; }

/* ==============================================
   GLOBAL - Image Zoom
   ============================================== */

.content img.image-zoom:active { opacity: .7; }

/* ==============================================
   DESKTOP - Blur header
   Fixed frosted glass strip at top of page,
   fades out toward bottom edge.
   ============================================== */

.blur-header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 10%;
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
  z-index: 4;
  pointer-events: none;
  -webkit-mask-image: linear-gradient(to bottom, rgba(0,0,0,1) 0%, rgba(0,0,0,1) 50%, rgba(0,0,0,0) 100%);
  mask-image: linear-gradient(to bottom, rgba(0,0,0,1) 0%, rgba(0,0,0,1) 50%, rgba(0,0,0,0) 100%);
}

/* ==============================================
   DESKTOP - Header nav animated underline
   Underline slides in from left on active link,
   sits 5px below the text. Responsive height.
   ============================================== */

.page a,
[local-style="28411570"] a {
  position: relative;
  text-decoration: none !important;
}

.page a::after,
[local-style="28411570"] a::after {
  content: '';
  position: absolute;
  bottom: 0px;
  left: 0;
  width: 0;
  height: 0.1em;
  background-color: #2d2d2d;
  transition: width 0.3s ease;
}

.page a.active::after,
[local-style="28411570"] a.active::after {
  width: 100%;
}

/* Off-white underline on dark mode page */
body[data-page-id="38318176"] .page a::after,
body[data-page-id="38318176"] [local-style="28411570"] a::after {
  background-color: #f0ece4;
}

/* ==============================================
   DESKTOP - Scroll up button
   Frosted glass effect, light grey,
   arrow + "scroll up" text, DM Sans 1.5rem,
   less rounded, positioned bottom right.
   Blurs content passing behind it.
   ============================================== */

.scroll-up-btn {
  position: fixed;
  bottom: 5%;
  right: calc(7.5% + 1rem);
  background: rgba(255, 255, 255, 0.15);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  color: #2d2d2d;
  padding: 12px 12px;
  border-radius: 12px;
  font-size: 1.3rem;
  font-family: "DM Sans", sans-serif;
  cursor: pointer;
  z-index: 1000;
  border: 0px solid rgba(255, 255, 255, 0.3);
  opacity: 0;
  pointer-events: none;
  transform: translateY(40px);
  transition: opacity 0.4s ease, transform 0.4s ease;
}

.scroll-up-btn.visible {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}

/* ==============================================
   PAGE - Animation copy (page ID 38296418)
   Black background, white text.
   ============================================== */

body[data-page-id="38296418"] {
  background-color: #000000 !important;
  color: #ffffff !important;
}

body[data-page-id="38296418"] *,
body[data-page-id="38296418"] p,
body[data-page-id="38296418"] h1,
body[data-page-id="38296418"] h2,
body[data-page-id="38296418"] h3,
body[data-page-id="38296418"] span,
body[data-page-id="38296418"] div {
  color: #ffffff !important;
}

body[data-page-id="38296418"] a {
  color: #ffffff !important;
  text-decoration: underline;
}

/* ==============================================
   PAGE - Commercial work (page ID 38318176)
   Dark mode, gallery, arrows, captions,
   hover scale, page fade in.
   ============================================== */

/* Dark mode background and text */
body[data-page-id="38318176"] {
  background-color: #1a1a1a !important;
}

body[data-page-id="38318176"] *,
body[data-page-id="38318176"] p,
body[data-page-id="38318176"] h1,
body[data-page-id="38318176"] h2,
body[data-page-id="38318176"] h3,
body[data-page-id="38318176"] span,
body[data-page-id="38318176"] div,
body[data-page-id="38318176"] small {
  color: #f0ece4 !important;
}

body[data-page-id="38318176"] a {
  color: #f0ece4 !important;
}

/* Slideshow gallery rounded corners */
body[data-page-id="38318176"] .image-gallery .slick-list,
body[data-page-id="38318176"] .image-gallery .gallery_card,
body[data-page-id="38318176"] .image-gallery .gallery_card_image {
  border-radius: 12px !important;
  overflow: hidden !important;
}

/* Slideshow arrows - minimal bold, no outer ring */
body[data-page-id="38318176"] .image-gallery-navigation .left-arrow .outer-color,
body[data-page-id="38318176"] .image-gallery-navigation .right-arrow .outer-color {
  stroke: none !important;
}

body[data-page-id="38318176"] .image-gallery-navigation .left-arrow .inner-color,
body[data-page-id="38318176"] .image-gallery-navigation .right-arrow .inner-color {
  stroke: #2d2d2d !important;
  stroke-width: 3px !important;
}

/* Custom cursor on carousel arrows and images */
body[data-page-id="38318176"] .image-gallery .slick-arrow,
body[data-page-id="38318176"] .image-gallery .slick-slide img {
  cursor: url(https://files.cargocollective.com/c1487890/cursor_go_3.svg), auto !important;
}

/* Image hover scale */
body[data-page-id="38318176"] .gallery_card {
  transition: transform 0.4s ease !important;
}

body[data-page-id="38318176"] .gallery_card:hover {
  transform: scale(1.03) !important;
}

/* Hover caption overlay */
body[data-page-id="38318176"] .gallery_card.has_caption {
  position: relative !important;
}

body[data-page-id="38318176"] .gallery_card.has_caption .gallery_card_image {
  position: relative !important;
  overflow: hidden !important;
}

body[data-page-id="38318176"] .gallery_card.has_caption .gallery_image_caption {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: rgba(255, 255, 255, 0.3) !important;
  color: #2d2d2d !important;
  font-family: "DM Sans", sans-serif !important;
  font-size: 1.5rem !important;
  text-align: center !important;
  opacity: 0 !important;
  transition: opacity 0.4s ease !important;
  z-index: 10 !important;
}

body[data-page-id="38318176"] .gallery_card.has_caption:hover .gallery_image_caption {
  opacity: 1 !important;
}

/* Page fade in animation */
body[data-page-id="38318176"] .page_content {
  animation: pageFadeIn 1s ease forwards;
}

@keyframes pageFadeIn {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: translateY(0); }
}

