/* One shared axis carries the shell, its fracture and the growing seedling. */
.story{--fracture:0;--burst:0;--grow:0;--shellExit:0}
.peanut-scene{--debris-scale:1}
.hero-shell{animation:none;opacity:calc(1 - var(--shellExit))}
.shell-left{translate:calc(var(--split)*-24%) calc(var(--split)*5%);rotate:calc(var(--split)*-22deg)}
.shell-right{translate:calc(var(--split)*24%) calc(var(--split)*5%);rotate:calc(var(--split)*22deg)}
.fracture{position:absolute;z-index:4;left:35%;top:4%;width:30%;height:92%;overflow:visible;opacity:calc(var(--fracture)*(1 - var(--sprout)));pointer-events:none}
.fracture path{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:100;stroke-dashoffset:calc((1 - var(--fracture))*100)}
.fracture-glow{stroke:#d9ff6d;stroke-width:5;filter:blur(8px);opacity:.95}
.fracture-core{stroke:#f7ffd1;stroke-width:1.6;filter:drop-shadow(0 0 5px #e9ff96) drop-shadow(0 0 15px #b7f042)}
.fracture-branch{stroke:#e6ffab;stroke-width:1;opacity:.85;filter:drop-shadow(0 0 6px #dcfc58)}
.burst-halo{position:absolute;left:50%;top:50%;width:80%;aspect-ratio:1;transform:translate(-50%,-50%) scale(calc(.25 + var(--split)*.9));background:radial-gradient(circle,rgba(240,255,189,.6) 0,rgba(207,246,89,.22) 13%,rgba(191,231,85,.08) 30%,transparent 65%);filter:blur(18px);opacity:var(--flash)}
.burst-ring{position:absolute;left:50%;top:50%;width:50%;aspect-ratio:1;border:1px solid #dafa95;border-radius:50%;transform:translate(-50%,-50%) scale(calc(.2 + var(--burst)*2.1));opacity:calc(var(--flash)*.65);box-shadow:0 0 18px rgba(222,255,130,.5),inset 0 0 18px rgba(222,255,130,.3)}
.shell-debris{position:absolute;inset:0;z-index:5;opacity:calc(var(--flash)*(1 - var(--sprout)))}
.shell-debris i{position:absolute;left:50%;top:50%;width:clamp(10px,2.3vw,30px);height:clamp(16px,4vw,52px);background:linear-gradient(135deg,#f2f1d3 0%,#77776c 18%,#171b19 49%,#a4a68d 54%,#262922 85%);clip-path:polygon(34% 0,100% 21%,77% 90%,14% 100%,0 43%);filter:drop-shadow(0 0 5px rgba(230,255,165,.55));transform:translate(calc(var(--dx)*var(--burst)*var(--debris-scale)),calc(var(--dy)*var(--burst)*var(--debris-scale))) rotate(calc(var(--spin)*var(--burst)));will-change:transform}
.shell-debris i:nth-child(1){--dx:-260px;--dy:-300px;--spin:-155deg}
.shell-debris i:nth-child(2){--dx:250px;--dy:-270px;--spin:160deg;width:15px;height:32px}
.shell-debris i:nth-child(3){--dx:-325px;--dy:-120px;--spin:150deg;width:24px;height:35px}
.shell-debris i:nth-child(4){--dx:340px;--dy:-105px;--spin:-160deg}
.shell-debris i:nth-child(5){--dx:-285px;--dy:135px;--spin:-200deg;width:13px;height:26px}
.shell-debris i:nth-child(6){--dx:295px;--dy:160px;--spin:180deg;width:22px;height:36px}
.shell-debris i:nth-child(7){--dx:-160px;--dy:265px;--spin:195deg;width:16px;height:27px}
.shell-debris i:nth-child(8){--dx:180px;--dy:270px;--spin:-170deg;width:14px;height:28px}
.particles{z-index:5}.particles i{transform:translate(calc(var(--x)*var(--burst)*var(--debris-scale)),calc(var(--y)*var(--burst)*var(--debris-scale))) scale(calc(.5 + var(--burst)))}
.sprout-anchor{position:absolute;z-index:2;left:50%;bottom:21%;width:55%;aspect-ratio:340/345;transform:translateX(-42.65%);opacity:min(1, calc(var(--grow)*4));filter:drop-shadow(0 0 28px rgba(205,244,93,.23));will-change:opacity}
.sprout-anchor img{display:block;width:100%;height:100%;object-fit:contain;transform-origin:42.65% 100%;transform:scaleX(calc(.42 + var(--grow)*.58)) scaleY(calc(.06 + var(--grow)*.94))}
.story-germination{transform:none}
.germination-photo{background:linear-gradient(0deg,rgba(5,6,4,.35),transparent 55%),linear-gradient(90deg,#050604 0%,rgba(5,6,4,.8) 22%,rgba(5,6,4,.12) 100%),url('assets/soil-bed.webp') center bottom/100% auto no-repeat,radial-gradient(ellipse at 62% 55%,#242616,#050604 58%)}
.germination-glow{background:radial-gradient(ellipse at 62% 60%,rgba(174,191,85,.12),transparent 42%)}
@media (hover:hover) and (pointer:fine){.peanut-scene{transform:translate(-50%,-50%) perspective(1200px) rotateY(calc(var(--mx, 0)*5deg*(1 - var(--fracture)))) rotateX(calc(var(--my, 0)*-5deg*(1 - var(--fracture))))}}
@media(max-width:700px){.peanut-scene{--debris-scale:.48}.sprout-anchor{width:63%;bottom:20%}.fracture{top:0;height:100%}.germination-photo{background:linear-gradient(0deg,rgba(5,6,4,.35),transparent 55%),linear-gradient(90deg,rgba(5,6,4,.8),rgba(5,6,4,.12)),url('assets/soil-bed.webp') center bottom/auto 40% no-repeat,radial-gradient(ellipse at 62% 65%,#242616,#050604 62%)}}
@media(prefers-reduced-motion:reduce){.fracture,.burst-halo,.burst-ring,.shell-debris,.sprout-anchor{display:none}.hero-shell{opacity:1;translate:none;rotate:none}.peanut-scene{transform:translate(-50%,-50%)}}
/* Fade the photographic soil into the scene instead of leaving an image edge. */
.germination-photo{background:radial-gradient(ellipse at 62% 55%,#242616,#050604 58%)}
.germination-photo::after{content:'';position:absolute;left:0;right:0;bottom:0;height:28%;background:linear-gradient(90deg,rgba(5,6,4,.85),transparent 65%),url('assets/soil-bed.webp') center bottom/cover no-repeat;mask-image:linear-gradient(transparent,#000 30%)}
@media(max-width:700px){.germination-photo{background:radial-gradient(ellipse at 62% 65%,#242616,#050604 62%)}.germination-photo::after{height:20%}}

@media(max-width:700px){.story-chapter,.story-ending{top:21%}.story-chapter p,.story-ending p{font-size:clamp(42px,10vw,64px);margin:18px 0}.story-chapter small,.story-ending small{text-shadow:0 2px 8px #050604}}
/* A cross-section keeps the seed at the soil surface and reveals the roots below. */
.story{--soil:0;--germination:0}
.fracture{opacity:calc(var(--fracture)*(1 - min(1,var(--split)*3)))}
.earth-cutaway{position:absolute;z-index:1;top:68%;left:50%;width:100vw;height:55%;transform:translateX(-50%);opacity:var(--soil);background:linear-gradient(180deg,rgba(25,20,13,.08),rgba(5,6,4,.72) 90%),url('assets/soil-bed.webp') center top/cover no-repeat;mask-image:linear-gradient(90deg,transparent 0%,#000 18%,#000 82%,transparent 100%);pointer-events:none}
.earth-cutaway::before{content:'';position:absolute;inset:0 0 auto;height:10px;background:linear-gradient(180deg,rgba(135,112,65,.4),transparent);filter:blur(4px)}
.sprout-sequence{position:absolute;z-index:2;left:50%;top:68%;width:70%;aspect-ratio:1;transform:translate(-50%,-44%);opacity:var(--germination);filter:drop-shadow(0 0 20px rgba(208,232,118,.15));pointer-events:none}
.sprout-sequence img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:0}
.sprout-sequence img:first-child{opacity:1}
.germination-photo::after{display:none}
@media(max-width:700px){.sprout-sequence{width:95%}.earth-cutaway{width:140vw;height:68%;mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}}
@media(prefers-reduced-motion:reduce){.sprout-sequence,.earth-cutaway{display:none}}
/* Blend the soil surface into the dark scene while keeping the seed partially buried. */
.earth-cutaway{top:64%;mask-image:linear-gradient(180deg,transparent,#000 8%),linear-gradient(90deg,transparent 0%,#000 18%,#000 82%,transparent 100%);mask-composite:intersect}
@media(max-width:700px){.earth-cutaway{mask-image:linear-gradient(180deg,transparent,#000 8%),linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask-composite:intersect}}

/* The header scrolls away; place each section's content near the top on anchor navigation. */
html{scroll-padding-top:0}
#services,#work,#partners,#founders,#about,#contact{scroll-margin-top:calc(64px - clamp(100px,11vw,170px))}
@media(max-width:700px){#services,#work,#partners,#founders,#about,#contact{scroll-margin-top:-50px}}
@media(prefers-reduced-motion:reduce){:root{scroll-behavior:auto}}

/* Put the header divider behind the peanut while keeping navigation interactive. */
.site-header{border-bottom:0}
.story-stage::before{content:'';position:absolute;z-index:1;top:87px;left:0;right:0;height:1px;background:rgba(255,255,255,.14);pointer-events:none}
@media(max-width:700px){.story-stage::before{top:71px}}

/* The shell floats as one object until it begins to split. */
@media(prefers-reduced-motion:no-preference){
 .hero-shell{animation:peanut-float 6s ease-in-out infinite}
 .hero-massive span{animation:letter-glimmer 7s ease-in-out infinite;animation-delay:calc(var(--letter-index)*.42s)}
}
@keyframes peanut-float{0%,100%{transform:translateY(0)}50%{transform:translateY(calc(-14px * (1 - var(--fracture))))}}
.hero-massive span{display:inline-block;position:relative;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,calc(.16 + var(--proximity,0)*.23));transition:-webkit-text-stroke-color .4s ease,text-shadow .4s ease;text-shadow:0 0 calc(var(--proximity,0)*20px) rgba(219,252,125,calc(var(--proximity,0)*.20))}
@keyframes letter-glimmer{0%,40%,100%{filter:drop-shadow(0 0 0 transparent)}48%{filter:drop-shadow(0 0 8px rgba(220,252,150,.48)) drop-shadow(0 0 20px rgba(220,252,150,.13))}}
@media(prefers-reduced-motion:reduce){.hero-shell,.hero-massive span{animation:none}.hero-massive span{text-shadow:none}}

/* Vector artwork avoids the system emoji glyph used for ✳ on iPhone. */
.asterisk-mark{display:inline-block;width:.9em;height:.9em;overflow:visible;vertical-align:-.08em;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:square}
.partners-backdrop .asterisk-mark{vertical-align:top}
.partners-stamp .asterisk-mark{display:block}
