/* MSCO Hero 6.10.0 — adjustable transparent 3D container widget */
.msco-hero-v67{position:relative;width:100%;height:100%;min-height:100vh;max-width:none!important;box-sizing:border-box;background:transparent!important;pointer-events:none;overflow:hidden;background:transparent!important;pointer-events:none}
.msco-hero-v67,.msco-hero-v67 *{box-sizing:border-box}
.msco-hero-v67 .msco-stage{position:absolute;inset:0;width:100%;height:100%;min-height:100vh;overflow:hidden;background:transparent!important;isolation:isolate;pointer-events:none}
.msco-hero-v67 .msco-scene-frame{position:absolute;z-index:0;left:0;top:0;width:100%;height:100%;background:transparent!important;pointer-events:none;overflow:hidden;pointer-events:none;background:transparent}
.msco-hero-v67 canvas[data-msco="webgl"]{position:absolute;inset:0;width:100%;height:100%;display:block;z-index:4;background:transparent;pointer-events:none;transition:opacity .15s ease}
.msco-hero-v67 canvas[data-msco="fx"]{position:absolute;inset:0;width:100%;height:100%;display:block;z-index:5;background:transparent;pointer-events:none}
.msco-hero-v67 .msco-body-contact-shadow,.msco-hero-v67 .msco-body-cast-shadow{position:absolute;z-index:3;pointer-events:none;mix-blend-mode:multiply;transform-origin:50% 50%;display:none}
.msco-hero-v67[data-show-shadow="1"] .msco-body-contact-shadow,.msco-hero-v67[data-show-shadow="1"] .msco-body-cast-shadow{display:block}
.msco-hero-v67 .msco-body-contact-shadow{left:15.5%;top:63.8%;width:52%;height:22%;opacity:1;filter:blur(80px);background:linear-gradient(90deg,rgba(0,0,0,0) 0%,rgba(0,0,0,.08) 18%,rgba(0,0,0,.20) 42%,rgba(0,0,0,.46) 78%,rgba(0,0,0,.66) 100%)}
.msco-hero-v67 .msco-body-cast-shadow{left:3.9%;top:68.1%;width:64.9%;height:15.6%;opacity:1;filter:blur(80px);background:linear-gradient(90deg,rgba(0,0,0,0) 0%,rgba(0,0,0,.06) 16%,rgba(0,0,0,.16) 44%,rgba(0,0,0,.34) 78%,rgba(0,0,0,.50) 100%)}
.msco-hero-v67 .msco-door-shadow{display:none!important}
.elementor-widget-msco_hero_v67,.elementor-widget-msco_hero_v67>.elementor-widget-container{width:100%;height:100%;min-height:100vh;background:transparent!important;pointer-events:none;overflow:hidden!important;max-width:none!important;background:transparent!important;pointer-events:none}


/* V6.8.1 Elementor live-editor preview safety */
.elementor-editor-active .elementor-widget-msco_hero_v67,
.elementor-editor-active .elementor-widget-msco_hero_v67 > .elementor-widget-container,
.elementor-editor-active .msco-hero-v67,
.elementor-editor-active .msco-hero-v67 .msco-stage {
  min-height:100vh !important;
}
.elementor-editor-active .msco-hero-v67 canvas[data-msco="webgl"]{
  visibility:visible !important;
}


/* V6.8.2 GLB load diagnostics */
.msco-hero-v67 .msco-status{display:none;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:20;max-width:min(620px,90vw);padding:10px 14px;border-radius:8px;background:rgba(8,15,25,.88);color:#fff;font:12px/1.45 Arial,sans-serif;pointer-events:none;white-space:normal;text-align:center}
.msco-hero-v67 .msco-status[data-state="error"]{display:block;background:rgba(125,20,20,.92)}
.elementor-editor-active .msco-hero-v67 .msco-status[data-state="loading"]{display:block;background:rgba(8,15,25,.72)}
.elementor-editor-active .msco-hero-v67 canvas[data-msco="webgl"]{opacity:1!important;z-index:4!important}

/* V6.9.1 — self-contained story scroll runway */
.msco-story-scroll-shell{
  position:relative;
  width:100%;
  margin:0;
  padding:0;
}
.msco-story-scroll-shell > .hero.msco-story-pinned-hero{
  position:sticky !important;
  top:0 !important;
  height:100vh !important;
  min-height:100vh !important;
  max-height:100vh !important;
  overflow:hidden !important;
}

.msco-hero-v67 .msco-responsive-debug{position:absolute;left:10px;bottom:10px;z-index:50;padding:8px 10px;border-radius:6px;background:rgba(5,12,22,.82);color:#dce8ff;font:11px/1.35 ui-monospace,SFMono-Regular,Consolas,monospace;white-space:pre;pointer-events:none;text-align:left}

/* V6.9.6 fixed logical canvas cover */
.msco-hero-v67 .msco-scene-frame{transform-origin:0 0!important;}


/* V6.10.0 — camera-cover projection architecture.
   The WebGL/FX canvases fill the actual viewport. No CSS cover transform is applied to 3D.
   CSS-cover equivalence is solved inside the perspective projection matrix. */
.msco-hero-v67 .msco-scene-frame{
  left:0!important;top:0!important;width:100%!important;height:100%!important;
  transform:none!important;transform-origin:0 0!important;
}
.msco-hero-v67 canvas[data-msco="webgl"],
.msco-hero-v67 canvas[data-msco="fx"]{
  width:100%!important;height:100%!important;
}

/* V6.10.1 — the canvas fills the live clipping viewport, but its 3D projection
   is permanently the fixed reference frame. Cover happens post-projection in NDC. */

/* V6.10.2 — Native browser responsive fit.
   The canvas is a fixed-aspect replaced element, exactly like an <img>.
   Browser owns cover/contain and crop math through object-fit/object-position. */
.msco-hero-v67,
.msco-hero-v67 .msco-scene-frame{
  overflow:hidden !important;
}
.msco-hero-v67 canvas.msco-canvas,
.msco-hero-v67 .msco-scene-frame > canvas{
  display:block;
  width:100% !important;
  height:100% !important;
  object-fit:cover;
  object-position:center center;
}


/* V6.10.3 — exact-cover host portal.
   WebGL is no longer geometrically owned by the Elementor widget wrapper.
   The rendered reference image is mounted directly in the same .hero box. */
.msco-cover-portal{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  overflow:hidden!important;
  pointer-events:none!important;
  z-index:6;
}
.msco-cover-portal .msco-scene-frame{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  overflow:hidden!important;
  transform:none!important;
}
.msco-cover-portal canvas[data-msco="webgl"],
.msco-cover-portal canvas[data-msco="fx"]{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  display:block!important;
  object-fit:cover;
  object-position:center center;
  pointer-events:none!important;
}

/* V6.11 — contact shadow moved into WebGL ground plane. */
.msco-cover-portal .msco-body-contact-shadow,
.msco-cover-portal .msco-body-cast-shadow{
  display:none!important;
}


/* V6.12.0 — frontend tuner */
.msco-hero-v67 .msco-tune-toggle,
.msco-hero-v67 .msco-tune-panel{pointer-events:auto!important;font:12px/1.35 Inter,Arial,sans-serif}
.msco-hero-v67[data-frontend-tuner-enabled="0"] .msco-tune-toggle,
.msco-hero-v67[data-frontend-tuner-enabled="0"] .msco-tune-panel,
.elementor-editor-active .msco-hero-v67 .msco-tune-toggle,
.elementor-editor-active .msco-hero-v67 .msco-tune-panel{display:none!important}
.msco-hero-v67 .msco-tune-toggle{
  position:absolute;right:18px;bottom:18px;z-index:30;border:0;border-radius:999px;padding:10px 14px;
  background:rgba(7,14,24,.84);color:#fff;letter-spacing:.08em;font-weight:700;cursor:pointer;
  box-shadow:0 10px 30px rgba(0,0,0,.25);backdrop-filter:blur(10px)
}
.msco-hero-v67 .msco-tune-panel{
  position:absolute;right:18px;bottom:68px;z-index:31;width:min(420px,calc(100vw - 32px));max-height:min(78vh,900px);
  border-radius:16px;background:rgba(8,14,24,.90);color:#eff4ff;box-shadow:0 16px 50px rgba(0,0,0,.35);backdrop-filter:blur(14px);
  padding:14px;display:none;overflow:hidden
}
.msco-hero-v67 .msco-tune-panel.open{display:block}
.msco-hero-v67 .msco-tune-header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.msco-hero-v67 .msco-tune-header strong{font-size:13px;letter-spacing:.03em}
.msco-hero-v67 .msco-tune-actions{display:flex;gap:8px;flex-wrap:wrap}
.msco-hero-v67 .msco-tune-actions button{border:0;border-radius:10px;padding:8px 10px;background:#1c2940;color:#fff;cursor:pointer}
.msco-hero-v67 .msco-tune-controls{max-height:46vh;overflow:auto;padding-right:4px}
.msco-hero-v67 .tune-section{padding:10px 0;border-top:1px solid rgba(255,255,255,.08)}
.msco-hero-v67 .tune-section:first-child{border-top:0;padding-top:0}
.msco-hero-v67 .tune-section h3{margin:0 0 8px;font-size:12px;letter-spacing:.08em;color:#b8c9eb}
.msco-hero-v67 .tune-row{display:grid;grid-template-columns:110px 1fr 72px;gap:10px;align-items:center;margin:7px 0}
.msco-hero-v67 .tune-row label{font-size:11px;color:#d9e5ff}
.msco-hero-v67 .tune-row input[type=range]{width:100%}
.msco-hero-v67 .tune-row input[type=number],
.msco-hero-v67 .msco-tune-output{width:100%;border:1px solid rgba(255,255,255,.10);background:rgba(255,255,255,.04);color:#fff;border-radius:10px;padding:8px}
.msco-hero-v67 .msco-tune-output{margin-top:10px;height:120px;resize:vertical;font:11px/1.35 ui-monospace,SFMono-Regular,Consolas,monospace}
@media (max-width: 767px){
  .msco-hero-v67 .msco-tune-panel{right:8px;bottom:56px;width:min(92vw,420px);padding:12px}
  .msco-hero-v67 .msco-tune-toggle{right:8px;bottom:8px;padding:9px 12px}
  .msco-hero-v67 .tune-row{grid-template-columns:1fr;gap:6px}
}


/* V6.12.1 — FRONTEND TUNER BODY PORTAL FIX */
body > .msco-front-tuner-toggle{
  display:none;
  position:fixed!important;
  right:18px!important;
  bottom:18px!important;
  z-index:2147483001!important;
  pointer-events:auto!important;
  border:1px solid rgba(255,255,255,.15)!important;
  border-radius:999px!important;
  padding:11px 16px!important;
  background:rgba(8,15,25,.92)!important;
  color:#fff!important;
  font:700 12px/1 Inter,Arial,sans-serif!important;
  letter-spacing:.08em!important;
  cursor:pointer!important;
  box-shadow:0 12px 36px rgba(0,0,0,.38)!important;
  backdrop-filter:blur(12px)!important;
}
body > .msco-front-tuner-panel{
  position:fixed!important;
  right:18px!important;
  bottom:72px!important;
  z-index:2147483000!important;
  width:min(430px,calc(100vw - 36px))!important;
  max-height:min(78vh,860px)!important;
  margin:0!important;
  border:1px solid rgba(255,255,255,.10)!important;
  border-radius:16px!important;
  background:rgba(8,14,24,.94)!important;
  color:#eef4ff!important;
  box-shadow:0 18px 60px rgba(0,0,0,.45)!important;
  backdrop-filter:blur(16px)!important;
  padding:14px!important;
  overflow:hidden!important;
  pointer-events:auto!important;
  font:12px/1.35 Inter,Arial,sans-serif!important;
  display:none!important;
}
body > .msco-front-tuner-panel.open{display:block!important}
body > .msco-front-tuner-panel .msco-tune-controls{max-height:48vh!important;overflow:auto!important;padding-right:5px!important}
body > .msco-front-tuner-panel .msco-tune-header{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:10px!important;margin-bottom:10px!important}
body > .msco-front-tuner-panel .msco-tune-actions{display:flex!important;gap:7px!important;flex-wrap:wrap!important}
body > .msco-front-tuner-panel .msco-tune-actions button{border:0!important;border-radius:9px!important;padding:8px 10px!important;background:#1c2940!important;color:#fff!important;cursor:pointer!important}
body > .msco-front-tuner-panel .tune-section{padding:10px 0!important;border-top:1px solid rgba(255,255,255,.08)!important}
body > .msco-front-tuner-panel .tune-section h3{margin:0 0 8px!important;font-size:11px!important;letter-spacing:.09em!important;color:#b8c9eb!important}
body > .msco-front-tuner-panel .tune-row{display:grid!important;grid-template-columns:118px 1fr 68px!important;gap:9px!important;align-items:center!important;margin:7px 0!important}
body > .msco-front-tuner-panel .tune-row label{font-size:11px!important;color:#dbe7ff!important}
body > .msco-front-tuner-panel .tune-row input[type=range]{width:100%!important}
body > .msco-front-tuner-panel .tune-row input[type=number],
body > .msco-front-tuner-panel .msco-tune-output{box-sizing:border-box!important;width:100%!important;border:1px solid rgba(255,255,255,.10)!important;background:rgba(255,255,255,.045)!important;color:#fff!important;border-radius:8px!important;padding:7px!important}
body > .msco-front-tuner-panel .msco-tune-output{margin-top:10px!important;height:108px!important;resize:vertical!important;font:11px/1.35 ui-monospace,SFMono-Regular,Consolas,monospace!important}
@media(max-width:767px){
  body > .msco-front-tuner-toggle{right:10px!important;bottom:10px!important;padding:10px 13px!important}
  body > .msco-front-tuner-panel{right:10px!important;bottom:62px!important;width:calc(100vw - 20px)!important;max-height:74vh!important;padding:12px!important}
  body > .msco-front-tuner-panel .tune-row{grid-template-columns:1fr!important;gap:5px!important}
}


/* V6.13.0 — particle density map is sampled offscreen; the mask itself is never displayed. */


/* V6.14 — Master Story Timeline diagnostics */
.msco-timeline-debug{
  position:absolute;left:16px;bottom:16px;z-index:60;
  padding:10px 12px;border-radius:10px;
  background:rgba(5,11,20,.84);color:#e9f1ff;
  font:11px/1.45 ui-monospace,SFMono-Regular,Consolas,monospace;
  white-space:pre;pointer-events:none;backdrop-filter:blur(8px);
}

/* V6.20 — single-rAF synchronization.
   No DOM reparenting, no shared preserve-3d wrapper, no layout reads per frame. */
.msco-cover-portal,
.msco-cover-portal canvas{pointer-events:none!important}
