/** NCDE Experience Engine v1.0 — Shared Design & Runtime Foundation */
:root {
  --ncde-green-950:#031b14;
  --ncde-green-900:#05251c;
  --ncde-green-800:#0a392b;
  --ncde-bronze:#b78349;
  --ncde-gold:#d9b56d;
  --ncde-gold-soft:#f0d79f;
  --ncde-ivory:#f4efe4;
  --ncde-white:#fff;
  --ncde-text-muted:rgba(244,239,228,.72);
  --ncde-glass-bg:linear-gradient(145deg,rgba(8,39,30,.68),rgba(3,24,18,.48));
  --ncde-glass-border:rgba(217,181,109,.28);
  --ncde-glass-blur:18px;
  --ncde-shadow-premium:0 24px 70px rgba(0,0,0,.32),inset 0 1px 0 rgba(255,255,255,.06);
  --ncde-header-height:76px;
  --ncde-page-gutter:clamp(20px,5vw,84px);
  --ncde-content-max:1240px;
  --ncde-copy-max:760px;
  --ncde-radius-sm:14px;
  --ncde-radius-md:22px;
  --ncde-radius-lg:32px;
  --ncde-motion-fast:220ms;
  --ncde-motion-base:520ms;
  --ncde-motion-slow:900ms;
  --ncde-ease:cubic-bezier(.22,1,.36,1);
}

html { color-scheme:dark; background:var(--ncde-green-950); }
body { text-rendering:optimizeLegibility; -webkit-font-smoothing:antialiased; }

/* Background Isolation Engine: the environmental layer never follows pointer or scroll velocity. */
[data-ncde-background],
.ncde-c01__background,
.ncde-c02__background,
[class*="__background"] {
  will-change:auto !important;
  backface-visibility:hidden;
  transform:translateZ(0) !important;
  transform-origin:center center !important;
  animation-play-state:running;
  pointer-events:none;
}

html[data-ncde-performance="reduced"] [data-ncde-ambient],
html[data-ncde-network="save-data"] [data-ncde-ambient] {
  animation:none !important;
  transition-duration:1ms !important;
}

.ncde-glass {
  border:1px solid var(--ncde-glass-border);
  border-radius:var(--ncde-radius-md);
  background:var(--ncde-glass-bg);
  box-shadow:var(--ncde-shadow-premium);
  -webkit-backdrop-filter:blur(var(--ncde-glass-blur));
  backdrop-filter:blur(var(--ncde-glass-blur));
}

.ncde-semantic-summary {
  position:absolute !important;
  width:1px !important;
  height:1px !important;
  padding:0 !important;
  margin:-1px !important;
  overflow:hidden !important;
  clip:rect(0,0,0,0) !important;
  white-space:nowrap !important;
  border:0 !important;
}

@media (prefers-reduced-motion:reduce) {
  html:focus-within { scroll-behavior:auto; }
  *,*::before,*::after {
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
    scroll-behavior:auto !important;
  }
}

@media (max-width:767px) {
  :root {
    --ncde-header-height:68px;
    --ncde-page-gutter:clamp(18px,6vw,30px);
    --ncde-glass-blur:14px;
  }
}


/* EE 1.0.2 — Enterprise menu viewport isolation */
.gateway-menu-backdrop{z-index:1180!important;position:fixed!important;inset:0!important}
.gateway-menu-panel{z-index:1190!important;position:fixed!important;inset:0 0 0 auto!important;height:100vh!important;height:100dvh!important;max-height:none!important;overflow-y:auto!important;overscroll-behavior:contain!important;pointer-events:none}
body.is-menu-open .gateway-menu-panel,.gateway-menu-panel.active,.gateway-menu-panel.is-open{pointer-events:auto!important}
body.is-menu-open .ncde-journey-dock{opacity:0!important;pointer-events:none!important;transform:translate3d(-50%,24px,0)!important}
@media(max-width:560px){.gateway-menu-panel{width:100vw!important}}

/* =========================================================
   NCDE EXPERIENCE ENGINE 1.0.3
   Shared typography, reading window, glass and chapter flow
   ========================================================= */
:root{
  --ncde-story-left:clamp(28px,8vw,138px);
  --ncde-story-width:min(820px,calc(100vw - 56px));
  --ncde-opening-top:clamp(145px,23vh,250px);
  --ncde-reading-window-top:46%;
  --ncde-display-size:clamp(2.65rem,5.15vw,5.85rem);
  --ncde-display-line-height:1;
  --ncde-display-tracking:-.032em;
  --ncde-kicker-size:clamp(2rem,3.8vw,4rem);
  --ncde-body-size:clamp(1.14rem,1.62vw,1.48rem);
  --ncde-body-line-height:1.64;
  --ncde-panel-bg:linear-gradient(145deg,rgba(4,34,26,.91),rgba(2,22,17,.88));
  --ncde-card-bg:linear-gradient(145deg,rgba(5,43,32,.92),rgba(2,25,19,.90));
}

/* One typography contract for every cinematic chapter. */
.ncde-c01__opening,.ncde-c02__opening{
  left:var(--ncde-story-left)!important;
  top:var(--ncde-opening-top)!important;
  width:var(--ncde-story-width)!important;
}
.ncde-c01__we,.ncde-c02__we{
  font-size:var(--ncde-kicker-size)!important;
  line-height:1!important;
}
.ncde-c01__headline,.ncde-c02__headline{
  font-size:var(--ncde-display-size)!important;
  line-height:var(--ncde-display-line-height)!important;
  letter-spacing:var(--ncde-display-tracking)!important;
  font-weight:400!important;
}
.ncde-c01__narrative,.ncde-c02__narrative{
  left:var(--ncde-story-left)!important;
  top:var(--ncde-reading-window-top)!important;
  width:var(--ncde-story-width)!important;
  font-size:var(--ncde-body-size)!important;
  line-height:var(--ncde-body-line-height)!important;
}

/* Stable shared reading window: every paragraph enters at the same visual anchor. */
.ncde-c01__narrative p,.ncde-c02__narrative p{
  top:0!important;
  left:0!important;
  margin:0!important;
  transform-origin:left center!important;
}

/* Glass Engine 1.0.3: protect text from bright landscape areas. */
.ncde-c02__glass-panel.is-unified{
  border-color:rgba(242,213,140,.42)!important;
  background:var(--ncde-panel-bg)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.075),0 24px 70px rgba(0,0,0,.44),0 0 42px rgba(217,180,90,.08)!important;
  -webkit-backdrop-filter:blur(26px) saturate(.82)!important;
  backdrop-filter:blur(26px) saturate(.82)!important;
}
.ncde-c02__pillar-card{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  background:var(--ncde-card-bg)!important;
  border-color:rgba(242,213,140,.30)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.07),0 12px 34px rgba(0,0,0,.28)!important;
  -webkit-backdrop-filter:blur(22px) saturate(.80)!important;
  backdrop-filter:blur(22px) saturate(.80)!important;
}
.ncde-c02__pillar-card::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  pointer-events:none;
  background:linear-gradient(100deg,rgba(1,18,14,.28),rgba(1,18,14,.06));
}
.ncde-c02__pillar-card p{
  color:rgba(255,252,244,.94)!important;
  text-shadow:0 1px 12px rgba(0,0,0,.44);
}
.ncde-c02__pillar h2{color:#fffaf0!important;text-shadow:0 2px 16px rgba(0,0,0,.44)}

@media(max-width:760px){
  :root{
    --ncde-story-left:24px;
    --ncde-story-width:calc(100vw - 48px);
    --ncde-opening-top:clamp(128px,18vh,170px);
    --ncde-reading-window-top:42.5%;
    --ncde-display-size:clamp(1.56rem,6.65vw,2.35rem);
    --ncde-display-line-height:1.04;
    --ncde-display-tracking:-.018em;
    --ncde-kicker-size:clamp(1.85rem,7.7vw,2.75rem);
    --ncde-body-size:clamp(1.08rem,4.45vw,1.28rem);
    --ncde-body-line-height:1.65;
  }
  .ncde-c02__glass-panel.is-unified{background:linear-gradient(155deg,rgba(4,35,26,.95),rgba(2,20,16,.93))!important}
  .ncde-c02__pillar-card{background:linear-gradient(145deg,rgba(5,42,31,.96),rgba(2,23,18,.94))!important}
}
