/* --- BLOCK: Warm contact shadows give the illustrated objects weight --- */
body{--object-shadow:drop-shadow(0 5px 3px rgba(41,29,16,.23)) drop-shadow(0 13px 10px rgba(41,29,16,.19))}
body[data-theme=dark]{--object-shadow:drop-shadow(0 6px 4px rgba(0,0,0,.7)) drop-shadow(0 16px 12px rgba(0,0,0,.5))}
.scene[data-audience] .pillar-schematic{filter:saturate(.5) contrast(.96) var(--object-shadow)}
.scene[data-audience] .circuit-sector.is-lit .pillar-schematic{filter:saturate(.65) contrast(.98) var(--object-shadow) drop-shadow(0 0 12px rgba(var(--ambient),.5)) drop-shadow(0 0 25px rgba(var(--ambient),.3))}
.core-art{filter:saturate(.48) brightness(.95) contrast(.96) var(--object-shadow)}
.circuit-core:hover .core-art,.circuit-core:focus-visible .core-art,.circuit-core.is-sending .core-art{filter:saturate(.55) brightness(1) contrast(.96) var(--object-shadow) drop-shadow(0 0 15px rgba(var(--ambient),.45))}
/* --- BLOCK: Layout changes are held visually by the shared-element animation --- */
.circuit-sector{transition:opacity 1s ease}
.pillar-title{width:max-content;max-width:100%;margin-left:auto;margin-right:auto;transform-origin:0 0;transition:color .55s,text-shadow .55s}
.pillar-schematic,.pillar-number{transform-origin:0 0}
.pillar-number{width:max-content;margin-left:auto;margin-right:auto}
.circuit-world.is-focused .pillar-title{margin-left:0;margin-right:0}
.circuit-world,.circuit-core,.scene[data-audience] .circuit-world.is-focused .circuit-core{transition-duration:1.65s;transition-timing-function:cubic-bezier(.22,1,.36,1)}
.circuit-world.is-focused .solar-content{transition:opacity .8s ease .65s,transform .8s cubic-bezier(.22,1,.36,1) .65s}
/* --- BLOCK: Closer cards and a more legible light packet --- */
.service-journey{gap:clamp(30px,4vw,64px)}
.service-light-tail{stroke-width:2.6}
.service-light-head,.origin-light-head{fill:var(--circuit-accent);filter:drop-shadow(0 0 5px rgba(var(--ambient),.8)) drop-shadow(0 0 16px rgba(var(--ambient),.45))}
#main{position:relative}
.service-origin-light{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:4;overflow:visible}
.origin-light-tail{fill:none;stroke:var(--circuit-accent);stroke-linecap:round}
body:not([data-audience=startup]) .service-origin-light,body:has(.scene.branch-active) .service-origin-light{display:none}
@media(max-width:760px){.service-journey{gap:28px}}
@media(prefers-reduced-motion:reduce){.circuit-world,.circuit-core{transition:none!important}}

/* --- BLOCK: The light is absorbed into the card, rather than hovering above it --- */
.service-journey-packet{transition:none;opacity:0}
.service-card:after{transition:opacity .3s ease;content:'';position:absolute;inset:0;pointer-events:none;border-radius:inherit;opacity:var(--merge-light,0);background:radial-gradient(ellipse at 0 22%,rgba(var(--ambient),.17),transparent 60%);box-shadow:inset 0 0 0 1px rgba(var(--ambient),.32)}

/* The packet lives on the shared sheet; the strip contains only its three cards. */
.service-stop:nth-child(2){top:calc(var(--card-drop)*1px)}
.service-stop:nth-child(3){top:calc(var(--card-drop)*2px)}
