/* Standalone behavior hooks. Source geometry lives in generated.css. */
html { scroll-behavior:smooth; }
/* Project films use visible native controls instead of a blank nested player. */
/* CCC canvas page: share the home navigation and give the film its own opening space. */
body.page-id-5500 { background:#000!important; }
body.page-id-5500 .elementor-5500 {
  padding-top:clamp(112px,8vw,180px);
}
body.page-id-5500 .elementor-location-header .elementor-element.elementor-element-6fa8af8 {
  animation:none;
}
@media(max-width:812px) {
  body.replica-video-page .elementor-5680 [data-id="ef4c71e"] a,
  body.replica-video-page .elementor-5680 [data-id="45afeac"] a.elementor-icon {
    display:flex;align-items:center;justify-content:center;width:44px;height:44px;
  }
  body.replica-video-page .elementor-5680 [data-id="ef4c71e"] img {
    width:26px;max-width:26px;height:auto;
  }
  body.replica-video-page .elementor-5680 [data-id="45afeac"] .elementor-icon {
    font-size:26px;
  }
  body.replica-video-page .elementor-5680 .elementor-element.elementor-element-45afeac .elementor-icon svg {
    width:26px;height:26px;
  }
}
/* The 1920 x 190 cloud image must reach its black end, even on wide screens. */
body.page-id-5500 .elementor-5500 .elementor-element.elementor-element-64248279 {
  position:relative;
  --margin-top:clamp(96px,9vw,180px);
  --margin-bottom:0px;
  --min-height:max(148px,calc(9.895833vw + 64px));
  --padding-top:clamp(18px,2vw,32px);
  --padding-bottom:24px;
  margin-top:clamp(96px,9vw,180px);
  min-height:max(148px,calc(9.895833vw + 64px));
  background-color:#000;
}
body.page-id-5500 .elementor-5500 .elementor-element.elementor-element-64248279:not(.elementor-motion-effects-element-type-background),
body.page-id-5500 .elementor-5500 .elementor-element.elementor-element-64248279 > .elementor-motion-effects-container > .elementor-motion-effects-layer {
  background-repeat:no-repeat;
  background-position:center top;
  background-size:max(960px,100%) auto;
}
@media(max-width:812px) {
  body.page-id-5500 .elementor-5500 .elementor-element.elementor-element-64248279:not(.elementor-motion-effects-element-type-background),
  body.page-id-5500 .elementor-5500 .elementor-element.elementor-element-64248279 > .elementor-motion-effects-container > .elementor-motion-effects-layer {
    background-size:max(720px,100%) auto;
  }
}
body.page-id-5500 .elementor-5500 .elementor-element.elementor-element-64248279 > a.replica-back-link {
  position:absolute;top:clamp(24px,3vw,48px);right:clamp(12px,2vw,36px);bottom:auto;
  width:40px;height:40px;z-index:10;
}
body.page-id-5500 .elementor-5500 .elementor-element.elementor-element-64248279 > a.replica-back-link svg {
  width:16px;height:16px;
}
body.page-id-5500 .elementor-5500 .elementor-element.elementor-element-37095414 {
  margin:0;
  padding:0;
  text-align:center;
}
body.page-id-5500 .elementor-5500 .elementor-element.elementor-element-37095414:hover {
  background-image:none;
}
body.page-id-5500 .elementor-5500 .elementor-element.elementor-element-37095414 img {
  display:block;
  width:clamp(90px,11vw,160px);
  max-width:min(40vw,160px);
  height:auto;
  margin:0 auto;
}
.replica-project-player { position:absolute;inset:0;background:#000; }
.replica-project-player video { display:block;width:100%;height:100%;object-fit:contain; }
.replica-film-play { position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:64px;height:64px;border:2px solid white;border-radius:50%;background:#b000bddd;color:white;font:28px/1 sans-serif;cursor:pointer; }
.replica-film-play[hidden], .replica-film-fallback[hidden] { display:none; }
.replica-film-fallback { position:absolute;bottom:48px;left:50%;transform:translateX(-50%);padding:10px 16px;background:#000d;color:#7fff00;font:16px/1.4 sans-serif; }
.replica-vimeo-link { position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);padding:14px 20px;background:#000e;color:#7fff00;border:1px solid #7fff00;z-index:2;font:clamp(14px,1.4vw,20px)/1.4 sans-serif;text-align:center; }
/* One cloud row, and a smaller contact mark in normal flow below the gallery. */
footer.elementor-7106 { position:relative;margin-top:clamp(28px,3vw,64px);isolation:isolate; }
body footer.elementor.elementor-7106 .elementor-element.elementor-element-8eccccc {
  --min-height:0px;--padding-top:clamp(24px,3vw,56px);--padding-bottom:20px;
  --padding-left:16px;--padding-right:16px;--margin-top:0px;--margin-bottom:0px;
  min-height:0;background-repeat:no-repeat;background-size:100% auto;background-position:center top;
  background-color:#000;z-index:0;
}
footer.elementor-7106 .elementor-element.elementor-element-dad2da8 {
  margin:0;padding:0;width:100%;text-align:center;
}
footer.elementor-7106 .elementor-element.elementor-element-dad2da8 img {
  display:block;width:clamp(240px,27vw,420px);max-width:85vw;height:auto;margin:0 auto;
}
/* Film pages share the CCC spacing and one proportional cloud footer. */
body.replica-video-page:not(.page-id-5500) .elementor-location-single {
  padding-top:clamp(112px,8vw,180px);
}
/* Elementor's HTML widget otherwise collapses to zero height around the
   absolutely positioned film, placing the project copy over the picture. */
body.replica-video-page:not(.page-id-5500) .elementor-widget-html:has(.replica-project-player) {
  height:auto!important;
  min-height:0!important;
  aspect-ratio:16/9;
}
@media(max-width:767px) {
  body.replica-video-page:not(.page-id-5500) .elementor-widget-html:has(.replica-project-player) {
    height:56.25vw!important;
    min-height:56.25vw!important;
    flex:0 0 56.25vw!important;
  }
}
body.replica-video-page .elementor-location-header .elementor-element.elementor-element-6fa8af8 {
  visibility:visible!important;
  animation:none!important;
}
body.replica-video-page footer.elementor-7106 {
  margin-top:clamp(96px,9vw,180px);
}
body.replica-video-page footer.elementor-7106 .elementor-element.elementor-element-8eccccc {
  position:relative;
  --min-height:max(148px,calc(9.895833vw + 64px));
  --padding-top:clamp(18px,2vw,32px);
  --padding-bottom:24px;
  min-height:max(148px,calc(9.895833vw + 64px));
  background-size:max(960px,100%) auto;
}
body.replica-video-page footer.elementor-7106 .elementor-element.elementor-element-dad2da8 img {
  width:clamp(90px,11vw,160px);
  max-width:min(40vw,160px);
}
body.replica-video-page footer.elementor-7106 .elementor-element.elementor-element-8eccccc > a.replica-back-link {
  position:absolute;
  top:clamp(24px,3vw,48px);
  right:clamp(12px,2vw,36px);
  bottom:auto;
  width:40px;
  height:40px;
  z-index:10;
}
body.replica-video-page footer.elementor-7106 .elementor-element.elementor-element-8eccccc > a.replica-back-link svg {
  width:16px;
  height:16px;
}
@media(max-width:812px) {
  body.replica-video-page footer.elementor-7106 .elementor-element.elementor-element-8eccccc {
    background-size:max(720px,100%) auto;
  }
}
/* Oregon project typography follows viewport width with readable floors. */
body.page-id-2560 .elementor-2056 .elementor-element.elementor-element-36599bd { --margin-top:clamp(24px,4vw,72px); }
body.page-id-2560 .elementor-2056 .elementor-element.elementor-element-abac3d8 .elementor-heading-title { font-size:clamp(16px,2vw,40px); line-height:1.25; }
body.page-id-2560 .elementor-2056 .elementor-element.elementor-element-4f771c9 .elementor-heading-title { font-size:clamp(14px,1.4vw,24px); line-height:1.35; }
body.page-id-2560 .elementor-2056 .elementor-element.elementor-element-87e4257 .elementor-heading-title { font-size:clamp(14px,1.6vw,27.2px); line-height:1.35; }
body { overflow-x:clip; }
/* The navigation anchor belongs to the first featured project, not the work grid below it. */
.replica-selected-work-anchor { height:0; scroll-margin-top:125px; }
/* Reuse Target's artwork and responsive layout as an additional opening panel. */
.elementor-7778 .elementor-element.replica-opening-target.e-con {
  --order:-100000;
  --margin-bottom:0px;
  --z-index:0;
}
/* The original Elementor parent fades from fully transparent on first paint.
   On a static host that can leave an all-white-looking first frame; show the
   blue hero immediately while the individual logo/wordmark motion continues. */
.elementor-7778 .elementor-element.elementor-element-7693e73 {
  animation:none!important;
  opacity:1;
}
.elementor-7778 .elementor-element.elementor-element-d00f493,
.elementor-7778 .elementor-element.elementor-element-32e873d {
  animation:none!important;
  opacity:1!important;
  transform:none!important;
}
/* A persistent return path, including standalone video pages without a header. */
a.replica-back-link { position:fixed;right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));z-index:10000;display:flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;box-sizing:border-box;border:0;border-radius:0;background:transparent;color:#7fff00;text-decoration:none; }
a.replica-back-link:hover { background:transparent;color:#7fff00; }
a.replica-back-link:focus-visible { outline:2px solid #7fff00;outline-offset:3px; }
.replica-back-link svg { display:block;width:21px;height:21px;flex:none; }
.elementor-location-header { position:fixed; top:0; width:100%; z-index:100; }
.elementor-location-header .elementor-sticky { position:relative; top:0; }
.replica-sticky-spacer { visibility:hidden; pointer-events:none; }
.e-off-canvas[aria-hidden="true"] { visibility:hidden; pointer-events:none; }
.replica-menu-open { overflow:hidden; }
.replica-menu-open .e-off-canvas { visibility:visible; pointer-events:auto; }
.premium-gallery-container { display:flex; flex-wrap:wrap; height:auto!important; }
.premium-gallery-item { position:relative!important; }
.premium-gallery-item:not([data-replica-leaving]) {left:auto!important;top:auto!important;}
.premium-gallery-item[hidden] { display:none!important; }
.premium-gallery-item[data-replica-leaving] {position:absolute!important;pointer-events:none;}
.premium-adv-carousel__inner-container { overflow:hidden; }
.premium-adv-carousel__items { position:relative; }
.premium-adv-carousel__item-outer-wrapper { position:absolute; right:0; }
/* Requested homepage refinements: cloud behind border, logos above it. */
@media(min-width:813px) {.elementor-7778 .elementor-element.elementor-element-184f3a7 { z-index:5; transition:transform 100ms; }}
.elementor-7778 .elementor-element.elementor-element-3ff45c8 { z-index:6; }
.elementor-7778 .elementor-element.elementor-element-657dffe { z-index:7; transition:none; }
.elementor-7778 .elementor-element.elementor-element-657dffe .premium-adv-carousel__media-wrap { line-height:0; }
.elementor-7778 .elementor-element.elementor-element-657dffe img.premium-adv-carousel__item-img { display:block;object-fit:contain;object-position:center; }
/* Scroll-linked opacity must reach true black without a delayed transition. */
/* Keep the left foreground cloud above the type, below the logo border. */
.elementor-7778 .elementor-element.elementor-element-184f3a7 { z-index:8; }
.elementor-7778 .elementor-element.elementor-element-3ff45c8 { z-index:9; }
.elementor-7778 .elementor-element.elementor-element-657dffe { z-index:10; }
@media(max-width:812px) {
  /* The border ends the cloud section; no trailing cloud box or spacer may
     leave the fixed blue landing page exposed before the opening video. */
  .elementor-7778 .elementor-element.elementor-element-b007457 { min-height:0; padding-bottom:0; }
  .elementor-7778 .elementor-element.elementor-element-3ff45c8 { order:100001; margin-bottom:0; }
  .elementor-7778 .elementor-element.elementor-element-3ff45c8 img { display:block; }
  .elementor-7778 .elementor-element.elementor-element-5b729da { margin-top:0; padding-top:0; }
  /* Keep the same continuous logo strip on phones; its visual position is
     measured against the border by sizeHomeLogos, without adding flow height. */
  .elementor-7778 .elementor-element.elementor-element-657dffe {
    display:block!important; position:absolute; left:0; bottom:0; width:100%; margin:0!important;
  }
}
.elementor-7778 .elementor-element.elementor-element-7693e73 { transition:none; }
/* Fade onto solid black, never the global patterned wallpaper. */
body.home { background-image:none!important; background-color:#000; }
/* One shared artwork scale: fluid with the composition, with a readable
   half-desktop-size floor on phones. Preserve the complete cloud silhouette. */
.elementor-7778 .elementor-element.elementor-element-3ff45c8 { overflow:hidden; }
.elementor-7778 .elementor-element.elementor-element-3ff45c8 img {
  display:block; width:max(960px,100%); max-width:none; height:auto;
  position:relative; left:50%; transform:translateX(-50%);
}
.replica-opening-video { display:block; width:100%; background:center/cover no-repeat url('/assets/original/opening-final-poster.jpg'); }
.elementor-7778 .elementor-element.elementor-element-7693e73.replica-hero-black { opacity:0!important; }
.replica-lightbox-open { overflow:hidden; }
.replica-lightbox { border:0; padding:0; margin:0; background:#FFFFFF70; width:100%; height:100%; max-width:none; max-height:none; overflow:hidden; }
.replica-lightbox[open] { display:flex;align-items:center;justify-content:center; }
.replica-lightbox::backdrop { background:transparent; }
.replica-lightbox-stage { position:absolute;inset:0;display:flex;align-items:center;justify-content:center;touch-action:none;cursor:grab; }
.replica-lightbox img { max-width:calc(100% - 140px); max-height:calc(100% - 140px); object-fit:contain;border-radius:2px;box-shadow:0 0 30px #0000004d,0 0 8px -5px #0000004d;user-select:none;transition:transform 300ms ease; }
.replica-lightbox button { position:absolute;border:0;background:transparent;color:#ededede6;z-index:2; }
.replica-lightbox button[hidden] {display:none;}
.replica-lightbox-prev,.replica-lightbox-next { top:0;height:100%;width:15%;font-size:40px;padding:0; }
.replica-lightbox-prev { left:0; }.replica-lightbox-next { right:0; }
/* Source toolbar has zero-size icons; preserve its quiet look with keyboard access. */
.replica-lightbox-close,.replica-lightbox-fullscreen,.replica-lightbox-zoom {top:15px;font-size:24px;opacity:0;padding:8px;line-height:1;}
.replica-lightbox-close {right:16px;}.replica-lightbox-fullscreen {right:60px;}.replica-lightbox-zoom {right:104px;}
.replica-lightbox-close:focus-visible,.replica-lightbox-fullscreen:focus-visible,.replica-lightbox-zoom:focus-visible {opacity:1;background:#222b;outline:2px solid white;}
.replica-lightbox-zoomed .replica-lightbox-stage:active {cursor:grabbing;}
@media(max-width:767px) {.replica-lightbox img{max-width:100%}.replica-lightbox-prev,.replica-lightbox-next{width:20%;}.replica-lightbox-prev{text-align:left}.replica-lightbox-next{text-align:right}}
@media(prefers-reduced-motion:reduce) {html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important}}

/* Keep viewer controls visible and above the full-height next/previous hit areas. */
.replica-lightbox .replica-lightbox-close,.replica-lightbox .replica-lightbox-fullscreen,.replica-lightbox .replica-lightbox-zoom{z-index:3;opacity:1;background:#222b;border-radius:4px;}
