/** NCDE Gateway Sprint 3.0.3 — Chapter 02 Definitive Rebuild */
:root{
  --c02-gold:#d9b45a;
  --c02-gold-soft:#f2d58c;
  --c02-ivory:#f7f1e3;
  --c02-header:84px;
  --c02-stable-vh:100vh;
  --c02-dock-safe:112px;
}
html,body{background:#061c17}
body.c02-intro-lock,body.c02-cta-lock{overflow:hidden!important;overscroll-behavior:none!important;touch-action:none}
.ncde-c02{position:relative;height:760vh;min-height:4300px;background:#061c17;isolation:isolate}
.ncde-c02__stage{position:sticky;top:0;width:100%;height:var(--c02-stable-vh);min-height:560px;overflow:hidden;background:#061c17;contain:paint}
.ncde-c02__background,.ncde-c02__veil,.ncde-c02__grain,.ncde-c02__header-mask{position:absolute;inset:0}
.ncde-c02__background{z-index:0;background-position:center;background-repeat:no-repeat;background-size:cover;transform:none!important}
.ncde-c02__veil{z-index:1;background:linear-gradient(180deg,rgba(2,17,13,.28),rgba(2,17,13,.10) 34%,rgba(2,17,13,.25) 66%,rgba(2,17,13,.76)),linear-gradient(90deg,rgba(2,17,13,.64),rgba(2,17,13,.15) 62%,rgba(2,17,13,.24))}
.ncde-c02__grain{z-index:2;opacity:.04;pointer-events:none;mix-blend-mode:soft-light;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.65'/%3E%3C/svg%3E")}
.ncde-c02__header-mask{z-index:7;bottom:auto;height:calc(var(--c02-header) + 42px);pointer-events:none;background:linear-gradient(180deg,rgba(3,28,21,.99),rgba(3,28,21,.94) 58%,rgba(3,28,21,0))}
.ncde-c02__story{position:absolute;z-index:4;inset:0;pointer-events:none}
.ncde-c02__opening,.ncde-c02__narrative{position:absolute;left:clamp(28px,8vw,138px);width:min(820px,calc(100vw - 56px));text-shadow:0 4px 34px rgba(0,0,0,.50)}
.ncde-c02__opening{top:clamp(140px,23vh,250px);transform-origin:left center;will-change:opacity,transform}
.ncde-c02__chapter{margin:0 0 7px;color:rgba(242,213,140,.72);font-size:.72rem;font-weight:600;letter-spacing:.24em;text-transform:uppercase;opacity:0;transform:translateY(10px);transition:opacity .9s ease,transform .9s ease}
.ncde-c02__we{margin:0 0 16px;color:var(--c02-ivory);font-family:Georgia,'Times New Roman',serif;font-size:clamp(2rem,3.8vw,4rem);font-weight:400;line-height:1;opacity:0;transform:translateY(16px);transition:opacity 1.2s ease,transform 1.2s cubic-bezier(.22,.7,.25,1)}
.ncde-c02.is-we-visible .ncde-c02__chapter,.ncde-c02.is-we-visible .ncde-c02__we{opacity:1;transform:none}
.ncde-c02__headline{margin:0;color:var(--c02-ivory);font-family:Georgia,'Times New Roman',serif;font-size:clamp(2.65rem,5.15vw,5.85rem);font-weight:400;line-height:1;letter-spacing:-.032em}
.ncde-c02__headline span{display:block;min-height:1em}
.ncde-c02__headline span:nth-child(1),.ncde-c02__headline span:nth-child(3){color:var(--c02-gold-soft)}
.ncde-c02__headline span.is-typing::after{content:'';display:inline-block;width:1px;height:.78em;margin-left:.09em;vertical-align:-.03em;background:currentColor;animation:c02Caret .8s steps(1) infinite}
.ncde-c02__narrative{inset:auto auto auto clamp(28px,8vw,138px);top:50%;height:1px;max-width:760px;color:var(--c02-ivory);font-size:clamp(1.14rem,1.62vw,1.48rem);font-weight:350;line-height:1.64;letter-spacing:.005em}
.ncde-c02__narrative p{position:absolute;top:0;left:0;width:100%;max-width:700px;margin:0;opacity:0;filter:blur(7px);transform:translate3d(0,46px,0);will-change:opacity,filter,transform}
.ncde-c02__pillars{position:absolute;z-index:5;left:50%;top:calc(var(--c02-header) + 30px);bottom:var(--c02-dock-safe);width:min(920px,calc(100vw - 48px));display:flex;flex-direction:column;justify-content:center;gap:14px;opacity:0;visibility:hidden;transform:translate3d(-50%,30px,0);will-change:opacity,transform}
.ncde-c02__pillars-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin:0 4px 2px;color:var(--c02-ivory)}
.ncde-c02__pillars-heading span{color:var(--c02-gold-soft);font-family:Georgia,'Times New Roman',serif;font-size:clamp(1.45rem,2.3vw,2.2rem)}
.ncde-c02__pillars-heading strong{max-width:300px;color:rgba(247,241,227,.62);font-size:.68rem;font-weight:500;letter-spacing:.16em;line-height:1.5;text-align:right;text-transform:uppercase}
.ncde-c02__glass-panel{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:12px;border:1px solid rgba(242,213,140,0);border-radius:26px;background:rgba(5,36,27,0);box-shadow:0 24px 70px rgba(0,0,0,0);backdrop-filter:blur(0);transition:border-color .8s ease,background .8s ease,box-shadow .8s ease,backdrop-filter .8s ease}
.ncde-c02__glass-panel.is-unified{border-color:rgba(242,213,140,.34);background:linear-gradient(145deg,rgba(9,51,39,.68),rgba(3,27,21,.52));box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 24px 70px rgba(0,0,0,.30),0 0 38px rgba(217,180,90,.07);backdrop-filter:blur(22px)}
.ncde-c02__pillar{min-width:0;opacity:0;transform:translate3d(0,28px,0) scale(.985);filter:blur(7px);will-change:opacity,transform,filter}
.ncde-c02__pillar-header{display:grid;grid-template-columns:44px 26px minmax(0,1fr);align-items:center;gap:8px;margin-bottom:8px;padding:0 4px}
.ncde-c02__pillar-icon{display:grid;place-items:center;width:42px;height:42px;border:1px solid rgba(242,213,140,.45);border-radius:50%;color:var(--c02-gold-soft);background:rgba(7,44,33,.44);box-shadow:inset 0 0 18px rgba(242,213,140,.06),0 0 20px rgba(217,180,90,.08)}
.ncde-c02__pillar-icon svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.35;stroke-linecap:round;stroke-linejoin:round}
.ncde-c02__pillar-number{color:rgba(242,213,140,.48);font-size:.61rem;letter-spacing:.12em}
.ncde-c02__pillar h2{min-width:0;margin:0;color:var(--c02-ivory);font-family:Georgia,'Times New Roman',serif;font-size:clamp(1rem,1.7vw,1.35rem);font-weight:400;line-height:1.1}
.ncde-c02__pillar-card{min-height:84px;padding:15px 17px;border:1px solid rgba(242,213,140,.24);border-radius:18px;background:linear-gradient(145deg,rgba(11,59,44,.58),rgba(4,30,23,.48));box-shadow:inset 0 1px 0 rgba(255,255,255,.055),0 12px 30px rgba(0,0,0,.16);backdrop-filter:blur(16px)}
.ncde-c02__pillar-card p{margin:0;color:rgba(247,241,227,.79);font-size:clamp(.84rem,1.16vw,.98rem);font-weight:350;line-height:1.48}
.ncde-c02__scroll-cue{position:absolute;z-index:6;left:50%;bottom:max(98px,calc(env(safe-area-inset-bottom) + 78px));width:50px;height:50px;border:1px solid rgba(242,213,140,.52);border-radius:50%;background:rgba(4,31,24,.24);backdrop-filter:blur(12px);opacity:0;transform:translate(-50%,14px);transition:opacity .75s ease,transform .75s ease}
.ncde-c02.is-intro-complete .ncde-c02__scroll-cue{opacity:.94;transform:translate(-50%,0)}
.ncde-c02__scroll-cue span{position:absolute;left:50%;top:48%;width:9px;height:9px;border-right:1px solid var(--c02-gold-soft);border-bottom:1px solid var(--c02-gold-soft);transform:translate(-50%,-50%) rotate(45deg);animation:c02Cue 1.8s ease-in-out infinite}
.ncde-c02__continue{position:absolute;z-index:8;left:50%;top:52%;display:flex;flex-direction:column;align-items:center;gap:17px;opacity:0;visibility:hidden;pointer-events:none;transform:translate(-50%,28px);transition:opacity .9s ease,transform .9s cubic-bezier(.22,.7,.25,1),visibility .9s}
.ncde-c02__continue.is-visible{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%,0)}
.ncde-c02__continue-label{max-width:min(340px,calc(100vw - 54px));color:var(--c02-gold-soft);font-family:Georgia,'Times New Roman',serif;font-size:clamp(1.2rem,1.7vw,1.55rem);font-weight:400;line-height:1.28;letter-spacing:.12em;text-align:center;text-shadow:0 0 18px rgba(217,180,90,.48);animation:c02Label 4.5s ease-in-out infinite}
.ncde-c02__continue-circle{position:relative;display:grid;place-items:center;width:68px;height:68px;border:1px solid rgba(242,213,140,.66);border-radius:50%;color:var(--c02-gold-soft);background:rgba(4,31,24,.34);backdrop-filter:blur(15px);box-shadow:inset 0 0 20px rgba(242,213,140,.05),0 0 28px rgba(217,180,90,.12);text-decoration:none;transition:transform .25s ease,border-color .25s ease,background .25s ease}
.ncde-c02__continue-circle::before,.ncde-c02__continue-circle::after{content:'';position:absolute;inset:-1px;border:1px solid rgba(242,213,140,.32);border-radius:50%;animation:c02Pulse 3.2s ease-out infinite}
.ncde-c02__continue-circle::after{animation-delay:1.6s}
.ncde-c02__continue-circle svg{width:27px;height:27px;fill:none;stroke:currentColor;stroke-width:1.35;stroke-linecap:round;stroke-linejoin:round}
.ncde-c02__continue-circle:hover,.ncde-c02__continue-circle:focus-visible{transform:scale(1.06);border-color:var(--c02-gold-soft);background:rgba(7,45,34,.53);outline:none}
.ncde-c02__continue-circle:active{transform:scale(.94)}
.ncde-c02__light-sweep{position:absolute;z-index:9;left:-20%;right:-20%;bottom:-22%;height:22%;pointer-events:none;opacity:0;background:linear-gradient(180deg,transparent,rgba(242,213,140,.34),rgba(255,244,203,.08),transparent);filter:blur(16px);transform:translateY(120%)}
.ncde-c02.is-leaving .ncde-c02__light-sweep{animation:c02Sweep .75s cubic-bezier(.22,.72,.2,1) forwards}
@keyframes c02Label{0%,100%{opacity:.78;text-shadow:0 0 12px rgba(217,180,90,.25)}50%{opacity:1;text-shadow:0 0 23px rgba(217,180,90,.62)}}
@keyframes c02Pulse{0%{opacity:.52;transform:scale(1)}72%,100%{opacity:0;transform:scale(1.34)}}
@keyframes c02Caret{50%{opacity:0}}
@keyframes c02Cue{0%,100%{transform:translate(-50%,-65%) rotate(45deg);opacity:.4}50%{transform:translate(-50%,-15%) rotate(45deg);opacity:1}}
@keyframes c02Sweep{0%{opacity:0;transform:translateY(120%)}25%{opacity:1}100%{opacity:0;transform:translateY(-620%)}}
@media(max-width:760px){
  :root{--c02-header:76px;--c02-dock-safe:108px}
  .ncde-c02{height:820vh;min-height:4700px}
  .ncde-c02__opening,.ncde-c02__narrative{left:24px;width:calc(100vw - 48px)}
  .ncde-c02__opening{top:clamp(132px,19vh,182px)}
  .ncde-c02__chapter{font-size:.62rem;margin-bottom:6px}
  .ncde-c02__we{font-size:clamp(1.85rem,7.7vw,2.75rem);margin-bottom:14px}
  .ncde-c02__headline{font-size:clamp(1.98rem,8.45vw,3.25rem);line-height:1.025;letter-spacing:-.023em}
  .ncde-c02__narrative{top:47%;font-size:clamp(1.08rem,4.45vw,1.28rem);line-height:1.65}
  .ncde-c02__pillars{top:calc(var(--c02-header) + 14px);bottom:var(--c02-dock-safe);width:calc(100vw - 28px);gap:8px;justify-content:center}
  .ncde-c02__pillars-heading{align-items:flex-start;margin:0 6px 1px}
  .ncde-c02__pillars-heading span{font-size:1.28rem}
  .ncde-c02__pillars-heading strong{max-width:148px;font-size:.51rem;letter-spacing:.11em;line-height:1.45}
  .ncde-c02__glass-panel{grid-template-columns:1fr;gap:5px;padding:7px;border-radius:22px}
  .ncde-c02__pillar-header{grid-template-columns:34px 20px minmax(0,1fr);gap:6px;margin-bottom:4px;padding:0 4px}
  .ncde-c02__pillar-icon{width:33px;height:33px}
  .ncde-c02__pillar-icon svg{width:17px;height:17px}
  .ncde-c02__pillar-number{font-size:.52rem}
  .ncde-c02__pillar h2{font-size:clamp(.92rem,4vw,1.08rem)}
  .ncde-c02__pillar-card{min-height:0;padding:9px 12px;border-radius:13px}
  .ncde-c02__pillar-card p{font-size:clamp(.72rem,3.08vw,.84rem);line-height:1.38}
  .ncde-c02__continue{top:52%;gap:16px}
  .ncde-c02__continue-label{font-size:clamp(1.2rem,5.2vw,1.5rem);letter-spacing:.10em}
  .ncde-c02__continue-circle{width:68px;height:68px}
  .ncde-c02__scroll-cue{bottom:max(102px,calc(env(safe-area-inset-bottom) + 82px))}
}
@media(max-height:700px) and (max-width:760px){
  .ncde-c02__pillars{top:88px;bottom:88px}
  .ncde-c02__pillars-heading span{font-size:1.05rem}
  .ncde-c02__pillar-header{grid-template-columns:30px 18px minmax(0,1fr);margin-bottom:3px}
  .ncde-c02__pillar-icon{width:29px;height:29px}
  .ncde-c02__pillar-card{padding:7px 10px}
  .ncde-c02__pillar-card p{font-size:.69rem;line-height:1.28}
}
@media(prefers-reduced-motion:reduce){.ncde-c02__we,.ncde-c02__chapter,.ncde-c02__scroll-cue,.ncde-c02__continue{transition-duration:.01ms!important}.ncde-c02__headline span.is-typing::after,.ncde-c02__scroll-cue span,.ncde-c02__continue-label,.ncde-c02__continue-circle::before,.ncde-c02__continue-circle::after{animation:none!important}}

/* EE 1.0.1 corrective typography and opening lock */
.ncde-c02__we:empty{display:none!important}
@media(max-width:760px){
  .ncde-c02__headline{font-size:clamp(1.56rem,6.65vw,2.35rem);line-height:1.04;letter-spacing:-.018em}
  .ncde-c02__opening{top:clamp(128px,18vh,170px)}
}

/* Sprint 3.4.5 — Functional Journey Step Cue */
.ncde-c02__scroll-cue{appearance:none;cursor:pointer;padding:0;touch-action:manipulation;opacity:.46!important;border-color:rgba(226,190,99,.46)!important;background:rgba(4,31,24,.16)!important;box-shadow:0 0 0 1px rgba(226,190,99,.04),0 0 18px rgba(226,190,99,.08);transition:opacity .22s ease,transform .22s ease,border-color .22s ease,box-shadow .22s ease,background .22s ease!important}
.ncde-c02__scroll-cue:hover,.ncde-c02__scroll-cue:focus-visible,.ncde-c02__scroll-cue.is-activated{opacity:1!important;border-color:rgba(242,213,140,.9)!important;background:rgba(4,31,24,.52)!important;box-shadow:0 0 0 5px rgba(226,190,99,.08),0 0 28px rgba(226,190,99,.28);outline:none;transform:translate(-50%,0) scale(1.06)!important}
.ncde-c02__scroll-cue span{width:11px!important;height:11px!important;border-width:0 1.5px 1.5px 0!important;filter:drop-shadow(0 0 5px rgba(242,213,140,.65))}
