/* EndlingX / field expedition. Decorative layers never capture input. */
.nature-scene { position:relative; isolation:isolate; }
.nature-stage { position:absolute; inset:0; z-index:1; overflow:clip; pointer-events:none; contain:paint; }
.nature-depth { position:absolute; inset:0; perspective:1100px; }
.nature-object { position:absolute; display:block; width:clamp(160px,25vw,410px); height:auto; opacity:.75; transform-origin:50% 85%; user-select:none; }
.nature-left { left:-145px; bottom:-62px; transform:translateY(var(--nature-scroll,0px)) rotate(18deg); filter:drop-shadow(22px 24px 15px #0008); }
.nature-right { right:-115px; top:30px; width:clamp(170px,23vw,350px); transform:translateY(calc(var(--nature-scroll,0px) * -1)) rotate(-32deg) scaleX(-1); opacity:.55; filter:blur(1px) drop-shadow(12px 18px 14px #0007); }
.nature-near { left:-180px; top:-100px; width:390px; opacity:.2; filter:blur(8px); transform:rotate(115deg) scale(1.2); }
.nature-light { position:absolute; inset:0; opacity:.25; background:radial-gradient(ellipse at 90% 25%,#92b35630,transparent 44%); }
.nature-dust { position:absolute; inset:0; opacity:.6; }
.nature-dust i { position:absolute; width:3px; height:3px; border-radius:50%; background:#dedaa8; box-shadow:0 0 12px #dceab680; top:26%; left:8%; }
.nature-dust i:nth-child(2){top:72%;left:94%;width:2px;height:2px;animation-delay:-4s!important}
.nature-dust i:nth-child(3){top:45%;left:97%;animation-delay:-8s!important}
.nature-dust i:nth-child(4){top:83%;left:3%;animation-delay:-2s!important}
.nature-dust i:nth-child(5){top:12%;left:85%;width:2px;height:2px;animation-delay:-6s!important}
.nature-scene > .wrap { position:relative; z-index:2; }
.nature-scene .sec-kicker::after { content:''; display:block; width:74px; height:1px; margin-top:15px; background:linear-gradient(90deg,currentColor,transparent); transform-origin:left; }
.nature-forest .nature-right { top:78px; right:-135px; opacity:.68; }
.hero.nature-scene .nature-stage { z-index:1; }
.hero.nature-scene .nature-left { width:340px; left:-255px; bottom:25px; opacity:.5; }
.hero.nature-scene .nature-right { right:-195px; opacity:.45; filter:blur(2px) drop-shadow(12px 18px 14px #0007); }
.hero.nature-scene .nature-near { left:auto; right:-230px; top:auto; bottom:-60px; width:460px; transform:rotate(-35deg); opacity:.38; }
.nature-grassland .nature-object { filter:drop-shadow(12px 20px 10px #0007); }
.nature-grassland .nature-left { width:310px; left:-155px; bottom:-105px; }
.nature-grassland .nature-right { width:240px; right:-120px; top:45px; opacity:.4; }
.nature-grassland .nature-near { filter:blur(7px); opacity:.18; }
.nature-grassland .nature-light { background:radial-gradient(ellipse at 0% 95%,#a6934038,transparent 45%); }
.nature-stone .nature-left { left:-160px; bottom:-115px; width:300px; transform:translateY(var(--nature-scroll,0px)) rotate(-12deg); opacity:.52; filter:blur(.6px) drop-shadow(14px 20px 20px #0009); }
.nature-stone .nature-right { top:5px; right:-210px; width:350px; transform:translateY(calc(var(--nature-scroll,0px) * -1)) rotate(160deg); opacity:.35; filter:blur(4px); }
.nature-stone .nature-near { display:none; }
.nature-stone .nature-light { background:radial-gradient(ellipse at 90% 30%,#a4bfc734,transparent 50%); }
.nature-river .nature-right { top:auto; bottom:-70px; right:-120px; opacity:.65; width:300px; transform:rotate(-20deg); }
.nature-river .nature-light { background:repeating-radial-gradient(ellipse at 105% 110%,transparent 0 48px,#9ecfbb12 49px 50px,transparent 52px 78px); opacity:.28; }
.nature-archive .nature-stage { z-index:0; }
.nature-archive .nature-depth { position:sticky; top:0; height:100svh; }
.nature-archive .nature-left { left:-165px; opacity:.35; width:330px; }
.nature-archive .nature-right { right:-150px; opacity:.23; }
.nature-archive .nature-near { display:none; }
.nature-ocean .nature-left { width:350px; left:-150px; bottom:-75px; transform:translateY(var(--nature-scroll,0px)) rotate(12deg); opacity:.7; }
.nature-ocean .nature-right { width:300px; right:-120px; top:20px; opacity:.35; filter:blur(3px); }
.nature-ocean .nature-near { top:auto;bottom:-100px;left:auto;right:-200px;opacity:.25;transform:rotate(-30deg); }
.nature-ocean .nature-light { background:repeating-radial-gradient(ellipse at 80% -10%,transparent 0 65px,#87ddda19 68px 70px,transparent 73px 115px); mask-image:linear-gradient(#000,transparent 80%); opacity:.5; }
.nature-ocean .nature-dust i { background:#b6e5df; box-shadow:0 0 10px #b6e5df80; }
.cta-band.nature-scene .nature-right { top:auto; bottom:-65px; width:260px; transform:rotate(-20deg); }
/* Long idle loops are restricted to the visible scene. The owner requested
   ambient motion on this desktop even with Windows motion effects disabled. */
.nature-dust i { animation:natureMote 12s ease-in-out infinite!important; animation-play-state:paused!important; }
.nature-visible .nature-dust i { animation-play-state:running!important; }
.nature-ocean .nature-light { animation:natureWater 16s ease-in-out infinite alternate!important; animation-play-state:paused!important; }
.nature-ocean.nature-visible .nature-light { animation-play-state:running!important; }
.nature-visible .sec-kicker::after { animation:natureTrace 1.5s ease both!important; }
@keyframes natureMote { 0%,100%{opacity:0;transform:translate3d(0,22px,0)} 30%,65%{opacity:.65} 90%{opacity:0;transform:translate3d(16px,-40px,0)} }
@keyframes natureWater { from{transform:scale(1) rotate(-4deg)} to{transform:scale(1.12) rotate(3deg)} }
@keyframes natureTrace { from{transform:scaleX(0)} to{transform:scaleX(1)} }
/* Replace the generic opposite slides with a distinct gesture per biome. */
@keyframes motionCards { from{opacity:.2;transform:perspective(1200px) translateY(45px) rotateX(5deg)} to{opacity:1;transform:none} }
@keyframes motionRarities { from{opacity:.2;transform:translateY(32px) scale(.965)} to{opacity:1;transform:none} }
@keyframes motionMethod { from{opacity:.2;transform:translate(-35px,16px) skewX(-1deg)} to{opacity:1;transform:none} }
@keyframes motionFaq { from{opacity:.2;transform:translateY(40px) scale(1.025)} to{opacity:1;transform:none} }
#cards[data-motion]:not(.motion-visible) > .wrap { transform:perspective(1200px) translateY(45px) rotateX(5deg); }
#rarities[data-motion]:not(.motion-visible) > .wrap { transform:translateY(32px) scale(.965); }
#method[data-motion]:not(.motion-visible) > .wrap { transform:translate(-35px,16px) skewX(-1deg); }
#faq[data-motion]:not(.motion-visible) > .wrap { transform:translateY(40px) scale(1.025); }
@media(max-width:900px){
 .nature-object{max-width:220px;opacity:.4}
 .nature-left{left:-150px!important}.nature-right{right:-155px!important}
 .nature-near{display:none!important}.nature-dust i:nth-child(n+3){display:none}
 .hero.nature-scene .nature-left{left:-160px!important;width:230px;bottom:60px}
 .nature-stage{opacity:.8}.nature-scene .sec-kicker::after{width:48px}
}

/* Independent choreography: staged objects, rather than a slide of the whole
   section. Animations own only the outer card; inner flip/tilt stays intact. */
[data-expedition] > .wrap { opacity:1!important; transform:none!important; animation:none!important; transition:none!important; }
[data-expedition] .exp-item { transform-origin:50% 85%; }
[data-expedition] .exp-item.exp-enter { animation:expRise 1.35s cubic-bezier(.16,1,.3,1) var(--exp-delay,0ms) both!important; }
[data-expedition="fan"] .flip.exp-enter { animation-name:expFan!important; }
[data-expedition="flow"] .step.exp-enter { animation-name:expFlow!important; }
[data-expedition="float"] .faq-item.exp-enter { animation-name:expFloat!important; }
[data-expedition] .sec-head.exp-enter,[data-expedition] .faq-head.exp-enter { animation-name:expHeading!important; }
@keyframes expFan { from{opacity:0;transform:perspective(1100px) translateY(125px) rotateX(18deg) rotateZ(var(--exp-angle)) scale(.88)} to{opacity:1;transform:none} }
@keyframes expRise { from{opacity:0;transform:translateY(85px) scale(.94)} to{opacity:1;transform:none} }
@keyframes expFlow { from{opacity:0;transform:translateX(-85px) rotateY(-12deg)} to{opacity:1;transform:none} }
[data-expedition="float"] .faq-item:nth-child(even) { --exp-float:-55px; }
@keyframes expFloat { from{opacity:0;transform:translate(var(--exp-float,55px),45px) scale(.96)} to{opacity:1;transform:none} }
@keyframes expHeading { from{opacity:0;transform:translateY(55px);clip-path:inset(0 0 70%)} to{opacity:1;transform:none;clip-path:inset(0)} }
.nature-right { filter:blur(3px) drop-shadow(12px 18px 14px #0007); }

/* Home: hanging branches attached to the edge, not isolated oversized leaves. */
#top.nature-canopy .nature-right { width:520px; max-width:none; right:-210px; top:74px; opacity:.7; transform:rotate(-6deg); transform-origin:100% 0; filter:blur(.6px) drop-shadow(0 16px 18px #0009); }
#top.nature-canopy .nature-left { width:360px; max-width:none; left:-245px; bottom:0; opacity:.4; transform:rotate(148deg); filter:blur(3px); }
#top.nature-canopy .nature-light { inset:0; opacity:.3; background:conic-gradient(from 160deg at 95% -15%,transparent 0deg,#c2d2a323 8deg,transparent 16deg,#b7c99216 23deg,transparent 36deg); mask-image:linear-gradient(#000,transparent 85%); }
#top.nature-visible .nature-right { animation:canopyBreeze 9s ease-in-out infinite alternate!important; }
#top.nature-visible .nature-light { animation:canopyLight 12s ease-in-out infinite alternate!important; }
#top[data-expedition] .exp-item.exp-enter { animation:homeArrival 1.5s cubic-bezier(.16,1,.3,1) var(--exp-delay,0ms) both!important; }
#top[data-expedition] h1.exp-item.exp-enter { animation-name:homeTitleReveal!important; }
#top[data-expedition] h1.exp-enter em { display:inline-block; animation:homeAccent 1.65s cubic-bezier(.16,1,.3,1) .2s both!important; }
#top[data-expedition] .hero-ctas.exp-enter { animation-duration:1.1s!important; }
#top[data-expedition] .specimen-note.exp-enter { animation-name:homeNote!important; }
@keyframes homeArrival { from{opacity:0;transform:translateY(32px)} to{opacity:1;transform:none} }
@keyframes homeTitleReveal { from{opacity:0;transform:translateY(48px);clip-path:inset(0 0 100%)} 60%{opacity:1} to{opacity:1;transform:none;clip-path:inset(0)} }
@keyframes homeAccent { from{transform:translateY(32px);opacity:0} to{transform:none;opacity:1} }
@keyframes homeNote { from{opacity:0;transform:translateX(24px)} to{opacity:1;transform:none} }
@keyframes canopyBreeze { from{transform:rotate(-6deg) translateY(0)} to{transform:rotate(-3deg) translateY(7px)} }
@keyframes canopyLight { from{opacity:.18} to{opacity:.4} }
@media(max-width:900px){
 #top.nature-canopy .nature-right { width:300px;right:-190px!important;top:65px;opacity:.4;filter:blur(1.5px); }
 #top.nature-canopy .nature-left { width:240px;left:-205px!important;bottom:70px;opacity:.25; }
 #top[data-expedition] h1.exp-enter em { display:inline; }
}
