/* NCDE Sprint 4.3 — Museum Grade Experience */
html.ncde-c04-runtime,html.ncde-c04-runtime body{height:100%;overflow:hidden!important;overscroll-behavior:none}
body.ncde-chapter-page--nusantara-tree{overflow:hidden!important}
body.ncde-chapter-page--nusantara-tree #main-content{padding-top:0!important;min-height:0!important}
body.ncde-chapter-page--nusantara-tree .site-footer,body.ncde-chapter-page--nusantara-tree .chapter-navigation{display:none!important}
.c04-stage,.c04-stage *{box-sizing:border-box}
.c04-stage{
  --c04-ivory:#f4eddd;--c04-gold:#d5b56a;--c04-center:#235844;--c04-mid:#123d30;--c04-deep:#061d17;--c04-edge:#020c09;
  position:fixed;top:var(--ncde-header-height,84px);right:0;bottom:0;left:0;width:100%;overflow:hidden;isolation:isolate;color:var(--c04-ivory);
  background:radial-gradient(circle at 50% 48%,rgba(35,88,68,.98) 0 14%,rgba(25,69,53,.96) 29%,rgba(9,36,28,.98) 59%,var(--c04-edge) 100%);
  overscroll-behavior:none;touch-action:pan-x
}
.c04-stage__canvas,.c04-stage__grade,.c04-stage__grain,.c04-stage__vignette{position:absolute;inset:0;pointer-events:none}
.c04-stage__canvas{z-index:0;overflow:hidden;background:transparent}
.c04-stage__canvas::before{content:'';position:absolute;z-index:0;left:50%;top:43%;width:min(78vw,760px);aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,rgba(208,180,111,.12) 0,rgba(95,145,112,.10) 30%,transparent 70%);filter:blur(30px);opacity:.74;animation:c04Breathe 9s ease-in-out infinite}
.c04-stage__backdrop{display:none!important}
.c04-stage__film{position:absolute;z-index:1;left:50%;top:48%;width:min(64vw,620px);aspect-ratio:1;transform:translate(-50%,-50%) scale(1);display:grid;place-items:center;overflow:visible;transition:width 1.45s cubic-bezier(.22,.61,.36,1),top 1.45s cubic-bezier(.22,.61,.36,1),transform 1.45s cubic-bezier(.22,.61,.36,1),filter .9s ease;-webkit-mask-image:radial-gradient(circle at center,#000 0 61%,rgba(0,0,0,.96) 67%,rgba(0,0,0,.42) 79%,transparent 94%);mask-image:radial-gradient(circle at center,#000 0 61%,rgba(0,0,0,.96) 67%,rgba(0,0,0,.42) 79%,transparent 94%)}
.c04-stage.is-tree-settled .c04-stage__film{width:min(45vw,440px);top:43.5%;transform:translate(-50%,-50%) scale(1)}
.c04-stage.is-tree-breathing .c04-stage__film{animation:c04TreeBreath .95s cubic-bezier(.4,0,.2,1) both}
.c04-stage__film::before{content:'';position:absolute;inset:11%;border-radius:50%;background:radial-gradient(circle,rgba(199,174,106,.13),rgba(38,105,79,.08) 42%,transparent 72%);filter:blur(22px);opacity:.78;transition:opacity .9s ease}
.c04-stage.is-tree-breathing .c04-stage__film::before{animation:c04GlowBreath .95s ease-in-out both}
.c04-stage__video{position:relative;z-index:1;display:block;width:100%;height:100%;object-fit:cover;object-position:50% 50%;filter:saturate(.98) contrast(1.01) brightness(.98);background:transparent}
.c04-stage__grade{z-index:2;background:linear-gradient(180deg,rgba(1,7,5,.34),transparent 19%,transparent 73%,rgba(1,7,5,.58)),radial-gradient(ellipse at center,transparent 42%,rgba(0,4,3,.58) 100%)}
.c04-stage__grain{z-index:3;opacity:.08;mix-blend-mode:soft-light;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.78' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.32'/%3E%3C/svg%3E")}
.c04-stage__vignette{z-index:4;background:linear-gradient(180deg,rgba(1,7,5,.18),transparent 22%,transparent 74%,rgba(1,7,5,.46)),radial-gradient(ellipse at center,transparent 44%,rgba(0,4,3,.42) 100%)}
.c04-story{position:absolute;z-index:10;inset:0;text-align:center;pointer-events:none;text-shadow:0 8px 34px rgba(0,0,0,.44)}
.c04-story__identity{position:absolute;left:20px;right:20px;top:clamp(104px,12.4vh,136px);transform:translate3d(0,0,0);transition:transform 1.05s cubic-bezier(.22,.61,.36,1)}
.c04-story__chapter{margin:0 0 8px;color:rgba(224,197,132,.74);font-size:.7rem;font-weight:600;letter-spacing:.24em;text-transform:uppercase;opacity:0;transition:opacity .8s ease}
.c04-stage.is-title-awake .c04-story__chapter{opacity:1}
.c04-story__title{margin:0;color:var(--c04-ivory);font-family:Georgia,'Times New Roman',serif;font-size:clamp(2.45rem,5vw,5.6rem);font-weight:400;line-height:1;letter-spacing:-.035em;opacity:0;transition:opacity .8s ease,font-size .9s ease,letter-spacing .9s ease}
.c04-stage.is-title-awake .c04-story__title{opacity:1}
.c04-stage.is-identity-raised .c04-story__title{font-size:clamp(2.25rem,4.55vw,5.05rem);letter-spacing:-.027em}
.c04-story__title span{display:block;min-height:1em}
.c04-story__title span.is-typing::after{content:'';display:inline-block;width:1px;height:.78em;margin-left:.09em;vertical-align:-.03em;background:currentColor;animation:c04Caret .82s steps(1) infinite}
.c04-story__sacred{max-width:560px;margin:17px auto 0;color:rgba(244,236,217,.84);font-family:Georgia,'Times New Roman',serif;font-size:clamp(.92rem,1.33vw,1.15rem);font-style:italic;line-height:1.38;letter-spacing:.07em;opacity:0;filter:blur(5px);transform:translate3d(0,18px,0);transition:opacity .9s ease,filter .9s ease,transform .9s cubic-bezier(.22,.61,.36,1)}
.c04-stage.is-sacred-visible .c04-story__sacred{opacity:1;filter:blur(0);transform:translate3d(0,0,0)}
.c04-stage.is-identity-raised .c04-story__identity{transform:translate3d(0,calc(-1 * clamp(24px,3.7vh,42px)),0)}
.c04-story__narrative{position:absolute;left:50%;bottom:clamp(166px,20vh,220px);width:min(720px,82vw);height:clamp(118px,15vh,160px);transform:translateX(-50%);display:grid;place-items:center}
.c04-story__paragraph{grid-area:1/1;margin:0;max-width:700px;color:rgba(246,239,224,.86);font-family:Georgia,'Times New Roman',serif;font-size:clamp(.82rem,1.16vw,1.02rem);font-weight:400;line-height:1.6;letter-spacing:.012em;opacity:0;visibility:hidden;filter:blur(4px);transform:translate3d(0,12px,0);transition:opacity .66s ease,filter .66s ease,transform .66s cubic-bezier(.22,.61,.36,1),visibility 0s linear .66s}
.c04-story__paragraph.is-active{opacity:1;visibility:visible;filter:blur(0);transform:translate3d(0,0,0);transition-delay:.1s,.1s,.1s,0s}
.c04-vines{position:absolute;z-index:7;inset:0;width:100%;height:100%;pointer-events:none;opacity:0;transition:opacity 1.1s ease}
.c04-stage.is-vines-awake .c04-vines{opacity:.42}
.c04-vines__path,.c04-vines__branch{fill:none;stroke:rgba(75,126,96,.52);stroke-width:1.15;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1}
.c04-stage.is-vines-growing .c04-vines__path{animation:c04Grow 6s cubic-bezier(.2,.66,.25,1) forwards}
.c04-stage.is-vines-growing .c04-vines__path--right{animation-delay:.7s;animation-duration:5.3s}
.c04-stage.is-vines-growing .c04-vines__branch{animation:c04Grow 2.8s 3.1s ease-out forwards}
.c04-stage.is-vines-growing .c04-vines__branch--two{animation-delay:3.7s}
.c04-vines__leaf{fill:rgba(80,133,100,.34);opacity:0;transform-box:fill-box;transform-origin:center;scale:.15}
.c04-stage.is-vines-growing .c04-vines__leaf--one{animation:c04Leaf .9s 5.1s ease-out forwards}
.c04-stage.is-vines-growing .c04-vines__leaf--two{animation:c04Leaf .9s 5.6s ease-out forwards}
.c04-stage.is-vines-growing .c04-vines__leaf--three{animation:c04Leaf .9s 6s ease-out forwards}
.c04-essence{position:absolute;z-index:8;inset:0;pointer-events:none;overflow:hidden;opacity:0;transition:opacity 1s ease}
.c04-stage.is-essence-awake .c04-essence{opacity:1}
.c04-essence__particle{position:absolute;left:var(--x);top:var(--y);width:var(--size);height:var(--size);border-radius:50%;opacity:0;background:var(--tone);box-shadow:0 0 6px color-mix(in srgb,var(--tone) 65%,transparent),0 0 12px rgba(213,181,106,.12);transform:translate3d(-50%,-50%,0);will-change:transform,opacity;animation:c04Essence var(--duration) cubic-bezier(.16,.7,.3,1) forwards}
.c04-stage:not(.is-essence-awake) .c04-essence__particle{animation-play-state:paused}
.c04-stage__cue{position:absolute;z-index:15;left:50%;bottom:max(24px,calc(env(safe-area-inset-bottom) + 16px));width:28px;height:32px;opacity:0;transform:translateX(-50%);transition:opacity .7s ease;pointer-events:none}
.c04-stage.is-ready-for-intent:not(.is-dissolving):not(.is-cta) .c04-stage__cue{opacity:.62}
.c04-stage__cue span{position:absolute;left:50%;top:2px;width:1px;height:26px;overflow:hidden;background:rgba(242,233,211,.15);transform:translateX(-50%)}
.c04-stage__cue span::after{content:'';display:block;width:100%;height:42%;background:linear-gradient(180deg,transparent,rgba(216,188,119,.84));animation:c04Scroll 2.25s ease-in-out infinite}
.c04-stage__replay{position:absolute;z-index:16;right:20px;bottom:max(22px,calc(env(safe-area-inset-bottom) + 14px));display:flex;align-items:center;gap:7px;padding:8px;border:0;background:transparent;color:rgba(246,239,224,.38);font:inherit;font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;opacity:0;pointer-events:none;cursor:pointer;transition:opacity .6s ease,color .3s ease}
.c04-stage.is-ready-for-intent .c04-stage__replay{opacity:.66;pointer-events:auto}
.c04-stage__replay:hover,.c04-stage__replay:focus-visible{color:var(--c04-gold);outline:none}
.c04-cta{position:absolute;z-index:30;inset:0;display:grid;place-items:center;opacity:0;visibility:hidden;pointer-events:none;background:#071a14;transition:opacity 1.2s ease,visibility 0s linear 1.2s}
.c04-cta__veil{position:absolute;inset:0;background:radial-gradient(circle at 50% 44%,rgba(40,85,65,.42),transparent 48%),linear-gradient(180deg,#0b2b20 0%,#071a14 100%)}
.c04-cta__content{position:relative;text-align:center;opacity:0;filter:blur(6px);transform:translate3d(0,18px,0);transition:opacity 1s .45s ease,filter 1s .45s ease,transform 1s .45s ease}
.c04-cta__content p{margin:0 0 4px;color:rgba(222,195,128,.76);font-size:.74rem;font-weight:600;letter-spacing:.26em;text-transform:uppercase}
.c04-cta__content h2{margin:0;color:var(--c04-ivory);font-family:Georgia,'Times New Roman',serif;font-size:clamp(2.8rem,6.6vw,6.8rem);font-weight:400;line-height:.95;letter-spacing:-.035em}
.c04-stage.is-dissolving .c04-stage__canvas,.c04-stage.is-dissolving .c04-story,.c04-stage.is-dissolving .c04-vines,.c04-stage.is-dissolving .c04-essence{opacity:0;filter:blur(9px);transition:opacity 1.2s ease,filter 1.2s ease}
.c04-stage.is-cta .c04-cta{opacity:1;visibility:visible;pointer-events:auto;transition-delay:0s}
.c04-stage.is-cta .c04-cta__content{opacity:1;filter:blur(0);transform:translate3d(0,0,0)}
@keyframes c04Breathe{0%,100%{opacity:.48;transform:translate(-50%,-50%) scale(.9)}50%{opacity:.82;transform:translate(-50%,-50%) scale(1.04)}}
@keyframes c04TreeBreath{0%,100%{transform:translate(-50%,-50%) scale(1);filter:brightness(1)}50%{transform:translate(-50%,-50%) scale(.995);filter:brightness(.96)}}
@keyframes c04GlowBreath{0%,100%{opacity:.78}50%{opacity:.66}}
@keyframes c04Caret{50%{opacity:0}}
@keyframes c04Scroll{0%{transform:translateY(-125%);opacity:0}30%{opacity:1}100%{transform:translateY(245%);opacity:0}}
@keyframes c04Grow{to{stroke-dashoffset:0}}
@keyframes c04Leaf{0%{opacity:0;scale:.15}100%{opacity:1;scale:1}}
@keyframes c04Essence{0%{opacity:0;transform:translate3d(-50%,-50%,0) scale(.35)}18%{opacity:var(--peak,.4)}65%{opacity:calc(var(--peak,.4) * .7)}100%{opacity:0;transform:translate3d(calc(-50% + var(--dx)),calc(-50% + var(--dy)),0) scale(1.08)}}
@media(max-width:900px){.c04-stage{top:var(--ncde-header-height,84px)}}
@media(max-width:720px){
  .c04-stage__film{top:48%;width:min(66vw,370px);transform:translate(-50%,-50%)}
  .c04-stage.is-tree-settled .c04-stage__film{width:min(46vw,258px);top:43.8%}
  .c04-story__identity{top:clamp(76px,9.8vh,98px);left:14px;right:14px}
  .c04-story__chapter{font-size:.6rem;margin-bottom:6px}
  .c04-story__title{font-size:clamp(2.05rem,9.2vw,3.25rem)}
  .c04-stage.is-identity-raised .c04-story__title{font-size:clamp(1.9rem,8.35vw,2.95rem)}
  .c04-story__sacred{margin-top:12px;font-size:clamp(.84rem,3.95vw,1rem);letter-spacing:.055em}
  .c04-stage.is-identity-raised .c04-story__identity{transform:translate3d(0,-42px,0)}
  .c04-story__narrative{bottom:clamp(142px,18.5vh,182px);width:82vw;height:clamp(122px,17vh,162px)}
  .c04-story__paragraph{max-width:350px;font-size:clamp(.78rem,3.35vw,.91rem);line-height:1.58}
  .c04-stage__replay{right:10px}
}
@media(min-width:721px){.c04-stage__film{width:min(46vw,620px);top:48%;transform:translate(-50%,-50%)}}
@media(max-height:690px){.c04-stage__film{width:min(60vh,64vw,360px);top:48%;transform:translate(-50%,-50%)}.c04-stage.is-tree-settled .c04-stage__film{top:42.5%;width:min(43vh,42vw,280px)}.c04-story__identity{top:60px}.c04-story__narrative{bottom:116px;height:112px}.c04-story__paragraph{font-size:.78rem;line-height:1.5}.c04-story__sacred{margin-top:8px}}
@media(prefers-reduced-motion:reduce){.c04-story__title span.is-typing::after,.c04-stage__cue span::after,.c04-stage.is-vines-growing .c04-vines__path,.c04-stage.is-vines-growing .c04-vines__branch,.c04-stage.is-vines-growing .c04-vines__leaf,.c04-essence__particle,.c04-stage.is-tree-breathing .c04-stage__film,.c04-stage.is-tree-breathing .c04-stage__film::before{animation:none}.c04-stage.is-vines-growing .c04-vines__path,.c04-stage.is-vines-growing .c04-vines__branch{stroke-dashoffset:0}.c04-stage.is-vines-growing .c04-vines__leaf{opacity:1;scale:1}.c04-essence{display:none}}


/* === Sprint 4.2.6 — Cinematic Integration & Narrative Anchoring === */
.c04-stage__film{
  -webkit-mask-image:radial-gradient(ellipse 70% 68% at 50% 50%,#000 0 54%,rgba(0,0,0,.98) 62%,rgba(0,0,0,.78) 72%,rgba(0,0,0,.28) 84%,transparent 98%);
  mask-image:radial-gradient(ellipse 70% 68% at 50% 50%,#000 0 54%,rgba(0,0,0,.98) 62%,rgba(0,0,0,.78) 72%,rgba(0,0,0,.28) 84%,transparent 98%)
}
.c04-stage__film::after{
  content:'';position:absolute;z-index:2;inset:-1px;pointer-events:none;border-radius:50%;
  background:
    linear-gradient(180deg,rgba(3,24,18,.82) 0%,rgba(3,24,18,.15) 15%,transparent 29%,transparent 68%,rgba(4,26,20,.20) 82%,rgba(3,22,17,.84) 100%),
    radial-gradient(ellipse at center,transparent 49%,rgba(7,38,29,.18) 66%,rgba(4,24,18,.68) 88%,rgba(3,17,13,.95) 100%);
  mix-blend-mode:normal
}
.c04-stage__canopy-aura,.c04-stage__root-glow{position:absolute;left:50%;pointer-events:none;transform:translateX(-50%);opacity:0;will-change:opacity,transform,filter}
.c04-stage__canopy-aura{z-index:1;top:32.5%;width:min(44vw,420px);height:min(20vw,190px);border-radius:50%;background:radial-gradient(ellipse at center,rgba(226,198,128,.18) 0%,rgba(83,137,103,.14) 36%,rgba(18,70,52,.07) 58%,transparent 76%);filter:blur(24px);transition:opacity 1.35s ease,transform 1.35s ease}
.c04-stage__root-glow{z-index:5;top:57.3%;width:min(34vw,300px);height:42px;border-radius:50%;background:radial-gradient(ellipse at center,rgba(255,243,196,.78) 0%,rgba(226,190,99,.46) 22%,rgba(189,139,49,.18) 49%,rgba(70,117,84,.08) 68%,transparent 78%);filter:blur(9px);transition:opacity 1.15s ease,transform 1.15s ease,filter 1.15s ease}
.c04-stage__root-glow::before{content:'';position:absolute;left:50%;top:50%;width:68%;height:4px;border-radius:999px;transform:translate(-50%,-50%);background:linear-gradient(90deg,transparent,rgba(255,239,184,.45) 16%,rgba(255,246,211,.88) 50%,rgba(224,183,87,.42) 84%,transparent);filter:blur(1.8px);opacity:.7}
.c04-stage.is-tree-settled .c04-stage__canopy-aura{opacity:.38;transform:translateX(-50%) scale(1)}
.c04-stage.is-tree-settled .c04-stage__root-glow{opacity:.34;transform:translateX(-50%) scaleX(.92)}
.c04-stage.is-tree-breathing .c04-stage__canopy-aura{opacity:.5;transform:translateX(-50%) scale(1.035)}
.c04-stage.is-tree-breathing .c04-stage__root-glow{opacity:.56;transform:translateX(-50%) scaleX(1.02);filter:blur(10px)}
.c04-stage.is-vines-awake .c04-stage__root-glow{opacity:.72;transform:translateX(-50%) scaleX(1.06);filter:blur(10px)}
.c04-stage.is-vines-awake .c04-stage__canopy-aura{opacity:.48}
.c04-story__identity{top:clamp(92px,10.7vh,118px)}
.c04-story__sacred{position:absolute;left:50%;top:clamp(190px,22.8vh,246px);width:min(560px,84vw);margin:0;transform:translate3d(-50%,18px,0)}
.c04-stage.is-sacred-visible .c04-story__sacred{transform:translate3d(-50%,0,0)}
.c04-stage.is-identity-raised .c04-story__identity{transform:translate3d(0,calc(-1 * clamp(16px,2.2vh,28px)),0)}
.c04-story__narrative{top:64.4%;bottom:clamp(164px,18.8vh,210px);height:auto;display:grid;place-items:start center;align-content:start}
.c04-story__paragraph{align-self:start;width:100%;transform:translate3d(0,10px,0)}
.c04-story__paragraph.is-active{transform:translate3d(0,0,0)}
.c04-stage.is-essence-awake .c04-essence{opacity:1}
.c04-essence__particle{box-shadow:0 0 7px color-mix(in srgb,var(--tone) 82%,transparent),0 0 15px rgba(213,181,106,.22)}
@media(max-width:720px){
  .c04-story__identity{top:clamp(72px,8.4vh,88px)}
  .c04-story__sacred{top:clamp(174px,19.2vh,208px);font-size:clamp(.84rem,3.9vw,.98rem);line-height:1.34}
  .c04-stage.is-identity-raised .c04-story__identity{transform:translate3d(0,-22px,0)}
  .c04-stage__canopy-aura{top:31.4%;width:min(62vw,330px);height:min(27vw,145px);filter:blur(20px)}
  .c04-stage__root-glow{top:57.2%;width:min(44vw,250px);height:36px;filter:blur(8px)}
  .c04-story__narrative{top:64.8%;bottom:clamp(156px,18.5vh,190px);width:82vw;height:auto}
  .c04-story__paragraph{max-width:350px}
}
@media(max-height:690px){
  .c04-story__sacred{top:138px}
  .c04-stage__canopy-aura{top:29%}
  .c04-stage__root-glow{top:55.5%}
  .c04-story__narrative{top:61.5%;bottom:112px}
}
@media(prefers-reduced-motion:reduce){.c04-stage__canopy-aura,.c04-stage__root-glow{transition:none}}


/* === Sprint 4.3 — Museum Grade Experience (Final Polish) === */
/* Museum-grade integration: the film dissolves into the native atmosphere rather than reading as a rectangular asset. */
.c04-stage__canvas::after{
  content:'';position:absolute;z-index:0;left:50%;top:44%;width:min(92vw,900px);height:min(76vw,720px);transform:translate(-50%,-50%);pointer-events:none;border-radius:50%;
  background:radial-gradient(ellipse at center,rgba(37,91,69,.34) 0%,rgba(20,63,47,.22) 34%,rgba(7,31,24,.10) 61%,transparent 78%);filter:blur(34px);opacity:.82
}
.c04-stage__film{
  -webkit-mask-image:radial-gradient(ellipse 66% 65% at 50% 50%,#000 0 48%,rgba(0,0,0,.98) 58%,rgba(0,0,0,.72) 69%,rgba(0,0,0,.26) 82%,transparent 97%);
  mask-image:radial-gradient(ellipse 66% 65% at 50% 50%,#000 0 48%,rgba(0,0,0,.98) 58%,rgba(0,0,0,.72) 69%,rgba(0,0,0,.26) 82%,transparent 97%);
}
.c04-stage__film::before{inset:5%;background:radial-gradient(circle,rgba(212,184,110,.13) 0%,rgba(47,112,84,.10) 36%,rgba(9,45,33,.05) 56%,transparent 75%);filter:blur(28px)}
.c04-stage__film::after{
  background:
    linear-gradient(180deg,rgba(2,17,13,.88) 0%,rgba(5,31,23,.22) 17%,transparent 31%,transparent 66%,rgba(5,31,23,.28) 82%,rgba(2,17,13,.91) 100%),
    radial-gradient(ellipse at center,transparent 43%,rgba(8,43,32,.12) 58%,rgba(5,30,23,.55) 78%,rgba(2,15,11,.94) 100%),
    linear-gradient(90deg,rgba(2,17,13,.82),transparent 22%,transparent 78%,rgba(2,17,13,.82));
  mix-blend-mode:multiply;opacity:.92
}
.c04-stage__video{filter:saturate(.96) contrast(1.015) brightness(.97)}

/* Subtitle is the editorial bridge between the title and the living tree. */
.c04-story__sacred{top:clamp(174px,20.5vh,222px);transition:opacity .9s ease,filter .9s ease,transform .9s cubic-bezier(.22,.61,.36,1),color .8s ease}
.c04-stage[data-c04-state^="paragraph-"] .c04-story__sacred{opacity:.34;color:rgba(244,236,217,.72)}

/* A visible but refined ground of energy: wide, luminous and rooted beneath the tree. */
.c04-stage__root-glow{top:57.1%;width:min(42vw,360px);height:58px;background:radial-gradient(ellipse at center,rgba(255,246,207,.96) 0%,rgba(235,202,119,.72) 18%,rgba(207,159,62,.39) 39%,rgba(80,135,96,.14) 63%,transparent 79%);filter:blur(10px)}
.c04-stage__root-glow::before{width:76%;height:6px;background:linear-gradient(90deg,transparent,rgba(238,199,107,.42) 10%,rgba(255,246,210,.96) 50%,rgba(232,190,93,.40) 90%,transparent);filter:blur(2px);opacity:.88}
.c04-stage__root-glow::after{content:'';position:absolute;left:50%;top:51%;width:54%;height:18px;border-radius:50%;transform:translate(-50%,-50%);background:radial-gradient(ellipse,rgba(255,239,184,.42),rgba(214,166,69,.18) 45%,transparent 75%);filter:blur(5px)}
.c04-stage.is-tree-settled .c04-stage__root-glow{opacity:.62;transform:translateX(-50%) scaleX(.95)}
.c04-stage.is-tree-breathing .c04-stage__root-glow{opacity:.90;transform:translateX(-50%) scaleX(1.035);filter:blur(11px)}
.c04-stage.is-vines-awake .c04-stage__root-glow{opacity:.94;transform:translateX(-50%) scaleX(1.08);filter:blur(11px);animation:c04GroundPulse 6.8s ease-in-out infinite}

/* Every paragraph opens on the same fixed line and remains clear of the dock. */
.c04-story__narrative{top:63.1%;bottom:clamp(190px,22vh,242px);width:min(660px,80vw);height:clamp(128px,16vh,174px);overflow:hidden;place-items:start center;align-content:start}
.c04-story__paragraph{max-width:620px;font-size:clamp(.80rem,1.10vw,.98rem);line-height:1.55}

/* Longer, more legible essence particles without becoming glitter. */
.c04-essence__particle{box-shadow:0 0 8px color-mix(in srgb,var(--tone) 86%,transparent),0 0 17px rgba(213,181,106,.26)}

@keyframes c04GroundPulse{0%,100%{opacity:.86;transform:translateX(-50%) scaleX(1.02)}50%{opacity:.98;transform:translateX(-50%) scaleX(1.09)}}

@media(max-width:720px){
  .c04-story__sacred{top:clamp(156px,17.6vh,190px);font-size:clamp(.82rem,3.7vw,.96rem)}
  .c04-stage__root-glow{top:57%;width:min(58vw,300px);height:52px}
  .c04-story__narrative{top:62.4%;bottom:clamp(182px,21.5vh,224px);width:80vw;height:clamp(126px,15.5vh,160px)}
  .c04-story__paragraph{max-width:338px;font-size:clamp(.76rem,3.18vw,.87rem);line-height:1.50}
}
@media(max-height:690px){
  .c04-story__sacred{top:126px}
  .c04-stage__root-glow{top:55.1%}
  .c04-story__narrative{top:59.6%;bottom:126px;height:116px}
  .c04-story__paragraph{font-size:.74rem;line-height:1.44}
}
@media(prefers-reduced-motion:reduce){.c04-stage.is-vines-awake .c04-stage__root-glow{animation:none}}


/* === Sprint 4.3.1 — Locked Tree Restoration & Seamless Video Blend === */
/* Preserve the locked tree treatment: crisp gold, balanced contrast, and native detail. */
.c04-stage__video{
  filter:saturate(.98) contrast(1.01) brightness(.98);
}

/* Selective mask: the tree core remains untouched while only the outer film perimeter dissolves. */
.c04-stage__film{
  -webkit-mask-image:radial-gradient(ellipse 78% 76% at 50% 50%,#000 0 56%,rgba(0,0,0,1) 64%,rgba(0,0,0,.92) 72%,rgba(0,0,0,.54) 82%,rgba(0,0,0,.16) 91%,transparent 100%);
  mask-image:radial-gradient(ellipse 78% 76% at 50% 50%,#000 0 56%,rgba(0,0,0,1) 64%,rgba(0,0,0,.92) 72%,rgba(0,0,0,.54) 82%,rgba(0,0,0,.16) 91%,transparent 100%);
}

/* Dual bridge overlays: emerald chroma matching plus black-green perimeter absorption. */
.c04-stage__film::before{
  inset:2%;
  background:radial-gradient(ellipse at center,rgba(211,182,106,.09) 0%,rgba(38,103,76,.10) 38%,rgba(11,53,39,.05) 58%,transparent 72%);
  filter:blur(24px);
  opacity:.74;
}
.c04-stage__film::after{
  background:
    radial-gradient(ellipse 82% 80% at 50% 50%,transparent 0 58%,rgba(13,62,46,.10) 68%,rgba(7,40,30,.38) 80%,rgba(3,23,17,.84) 93%,rgba(2,16,12,.97) 100%),
    linear-gradient(180deg,rgba(3,24,18,.60) 0%,rgba(5,35,26,.14) 18%,transparent 34%,transparent 68%,rgba(5,33,25,.18) 83%,rgba(3,22,17,.64) 100%),
    linear-gradient(90deg,rgba(3,23,17,.56),transparent 20%,transparent 80%,rgba(3,23,17,.56));
  mix-blend-mode:normal;
  opacity:.82;
}

/* Ambient depth remains outside the film so the restored tree itself stays clean. */
.c04-stage__canvas::after{
  width:min(96vw,940px);
  height:min(80vw,760px);
  background:radial-gradient(ellipse at center,rgba(45,105,78,.30) 0%,rgba(23,73,54,.20) 36%,rgba(8,37,28,.09) 62%,transparent 80%);
  filter:blur(38px);
  opacity:.76;
}

/* Stronger grounding: a visible pool of energy rather than a decorative line. */
.c04-stage__root-glow{
  width:min(48vw,390px);
  height:66px;
  background:radial-gradient(ellipse at center,rgba(255,248,219,.98) 0%,rgba(244,216,144,.82) 14%,rgba(218,174,78,.52) 34%,rgba(127,133,71,.22) 56%,rgba(57,111,80,.10) 70%,transparent 82%);
  filter:blur(9px);
}
.c04-stage__root-glow::before{
  width:68%;height:5px;
  background:linear-gradient(90deg,transparent,rgba(233,194,96,.44) 11%,rgba(255,247,211,.98) 50%,rgba(230,187,87,.42) 89%,transparent);
  filter:blur(1.6px);opacity:.92;
}
.c04-stage__root-glow::after{
  width:60%;height:24px;
  background:radial-gradient(ellipse,rgba(255,242,191,.54),rgba(217,168,68,.24) 46%,transparent 76%);
  filter:blur(5px);
}
.c04-stage.is-tree-settled .c04-stage__root-glow{opacity:.76;transform:translateX(-50%) scaleX(.96)}
.c04-stage.is-tree-breathing .c04-stage__root-glow{opacity:1;transform:translateX(-50%) scaleX(1.04);filter:blur(10px)}
.c04-stage.is-vines-awake .c04-stage__root-glow{opacity:1;transform:translateX(-50%) scaleX(1.10);filter:blur(10px);animation:c04GroundPulse431 6.8s ease-in-out infinite}

/* Slightly richer but still restrained Living Essence. Maximum opacity remains 80%. */
.c04-essence__particle{
  box-shadow:0 0 9px color-mix(in srgb,var(--tone) 88%,transparent),0 0 18px rgba(213,181,106,.28);
}
@keyframes c04GroundPulse431{0%,100%{opacity:.90;transform:translateX(-50%) scaleX(1.04)}50%{opacity:1;transform:translateX(-50%) scaleX(1.11)}}

@media(max-width:720px){
  .c04-stage__root-glow{width:min(64vw,320px);height:60px}
}
@media(prefers-reduced-motion:reduce){.c04-stage.is-vines-awake .c04-stage__root-glow{animation:none}}

/* === Sprint 4.3.2 — Sacred Stage Blend Restoration ===
   Surgical transplant from Sprint 4.0 only:
   feather mask, ambient overlay, color blend, vignette/perimeter, and video layer order.
   Museum Grade layout, story, narrative, vines, particles, and grounding remain unchanged.
*/

/* 1) Restore the proven Sacred Stage ambient halo. */
.c04-stage__canvas::before{
  z-index:0;
  inset:10% 18%;
  left:auto;
  top:auto;
  width:auto;
  height:auto;
  aspect-ratio:auto;
  transform:scale(.88);
  border-radius:50%;
  background:radial-gradient(circle,rgba(208,180,111,.12) 0,rgba(95,145,112,.09) 28%,transparent 68%);
  filter:blur(28px);
  opacity:.70;
  animation:c04SacredStageBreathe 9s ease-in-out infinite;
}

/* Remove later ambient-depth bridge; Sprint 4.0 halo is now the sole ambient layer. */
.c04-stage__canvas::after{display:none!important}

/* 2) Restore the exact Sprint 4.0 feather profile. */
.c04-stage__film{
  z-index:1;
  isolation:isolate;
  overflow:visible;
  -webkit-mask-image:radial-gradient(circle at center,#000 0 61%,rgba(0,0,0,.96) 67%,rgba(0,0,0,.42) 78%,transparent 94%);
  mask-image:radial-gradient(circle at center,#000 0 61%,rgba(0,0,0,.96) 67%,rgba(0,0,0,.42) 78%,transparent 94%);
}

/* 3) Restore the Sprint 4.0 inner ambient wash behind—not over—the video. */
.c04-stage__film::before{
  content:'';
  position:absolute;
  z-index:0;
  inset:11%;
  border-radius:50%;
  background:radial-gradient(circle,rgba(199,174,106,.13),rgba(38,105,79,.08) 40%,transparent 72%);
  filter:blur(22px);
  opacity:.78;
  pointer-events:none;
}

/* Later perimeter overlays are intentionally removed; the proven mask does the blending. */
.c04-stage__film::after{display:none!important}

/* 4) Restore native video color and normal compositing from Sprint 4.0. */
.c04-stage__video{
  position:relative;
  z-index:1;
  filter:none;
  mix-blend-mode:normal;
  background:transparent;
  box-shadow:none;
  border:0;
  border-radius:0;
}

/* 5) Restore the restrained Sprint 4.0 vignette/perimeter treatment. */
.c04-stage__grade{
  z-index:2;
  background:transparent;
}
.c04-stage__grain{z-index:3}
.c04-stage__vignette{
  z-index:4;
  background:
    linear-gradient(180deg,rgba(1,7,5,.34),transparent 19%,transparent 73%,rgba(1,7,5,.58)),
    radial-gradient(ellipse at center,transparent 42%,rgba(0,4,3,.58) 100%);
}

/* Preserve current Museum Grade grounding above the restored video stack. */
.c04-stage__canopy-aura{z-index:0}
.c04-stage__root-glow{z-index:5}

@keyframes c04SacredStageBreathe{
  0%,100%{opacity:.45;transform:scale(.88)}
  50%{opacity:.82;transform:scale(1.04)}
}

@media(prefers-reduced-motion:reduce){
  .c04-stage__canvas::before{animation:none}
}


/* === NCDE Chapter 04 — Mastering Session 1.0 (Final Grade) ===
   Mastering only: light, tonal balance, atmosphere, and living cadence.
   Layout, positioning, Sacred Stage blend, narrative anchors, and interaction states remain locked.
*/

/* Deep forest-black grade with a restrained emerald lift around the living tree. */
.c04-stage{
  --c04-ivory:#f4f0e6;
  --c04-edge:#010a07;
  background:
    radial-gradient(ellipse at 50% 46%,rgba(37,91,68,.985) 0 14%,rgba(24,67,51,.975) 30%,rgba(8,32,25,.99) 60%,#010a07 100%);
}

/* Ultra-subtle analogue texture: visible only as atmosphere, never as noise. */
.c04-stage__grain{opacity:.026;mix-blend-mode:soft-light}

/* Warm paper-ivory reading tone. */
.c04-story__paragraph{color:rgba(244,240,230,.89)}
.c04-story__title{color:#f4f0e6}

/* Emerald air surrounding the tree, without altering the proven Sacred Stage video blend. */
.c04-stage__canvas::before{
  background:radial-gradient(circle,rgba(211,182,109,.125) 0,rgba(101,153,118,.105) 29%,rgba(38,93,69,.045) 48%,transparent 69%);
  opacity:.73;
}

/* Gentle gold roll-off and centre grounding lift. */
.c04-stage__video{filter:saturate(.985) contrast(1.008) brightness(.985)}
.c04-stage__root-glow::after{
  background:radial-gradient(ellipse,rgba(255,246,207,.60),rgba(224,179,81,.27) 46%,transparent 76%);
}
.c04-stage.is-tree-settled .c04-stage__root-glow{opacity:.81}
.c04-stage.is-vines-awake .c04-stage__root-glow{opacity:1}

/* Story climax: only a two-percent atmosphere lift during the final paragraph. */
.c04-stage[data-c04-state="paragraph-4"]::before{
  content:'';position:absolute;z-index:5;inset:0;pointer-events:none;
  background:radial-gradient(ellipse at 50% 44%,rgba(67,125,92,.035),transparent 62%);
  opacity:1;transition:opacity 1.8s ease;
}

/* One restrained golden whisper after an idle pause. */
.c04-stage.is-idle-gold-pulse .c04-stage__film::before{animation:c04IdleGoldWhisper 2.2s cubic-bezier(.22,.61,.36,1) both}
.c04-stage.is-idle-gold-pulse .c04-stage__root-glow::after{animation:c04IdleRootWhisper 2.2s cubic-bezier(.22,.61,.36,1) both}

@keyframes c04IdleGoldWhisper{
  0%,100%{opacity:.78;filter:blur(22px);transform:scale(1)}
  42%{opacity:.96;filter:blur(24px);transform:scale(1.025)}
}
@keyframes c04IdleRootWhisper{
  0%,100%{opacity:1;transform:translate(-50%,-50%) scaleX(1)}
  42%{opacity:1;transform:translate(-50%,-50%) scaleX(1.10)}
}

/* Slightly richer essence definition while respecting the 80% ceiling set in JavaScript. */
.c04-essence__particle{
  box-shadow:0 0 9px color-mix(in srgb,var(--tone) 90%,transparent),0 0 19px rgba(213,181,106,.30);
}

@media(prefers-reduced-motion:reduce){
  .c04-stage.is-idle-gold-pulse .c04-stage__film::before,
  .c04-stage.is-idle-gold-pulse .c04-stage__root-glow::after{animation:none}
}
